1
0
Files
dotfiles/home/i3.nix
T

102 lines
3.3 KiB
Nix

{
pkgs,
lib,
env,
...
}:
let
mod = "Mod4";
displays = if env ? displays then env.displays else null;
in
{
xsession.windowManager.i3 = {
enable = true;
config = {
modifier = mod;
fonts = {
names = [ "Monaco" ];
size = 8.0;
};
keybindings = lib.mkOptionDefault {
"${mod}+q" = "kill";
"${mod}+n" = "exec \"${
lib.concatStringsSep " " [
"${lib.getExe pkgs.rofi}"
"-show combi"
"-modes combi"
"-combi-modes drun,run"
"-combi-display-format {text}"
]
}\"";
"${mod}+Return" = "exec ${lib.getExe pkgs.kitty}";
"${mod}+Left" = "focus left";
"${mod}+Right" = "focus right";
"${mod}+Up" = "focus up";
"${mod}+Down" = "focus down";
"${mod}+Shift+Left" = "move left";
"${mod}+Shift+Right" = "move right";
"${mod}+Shift+Up" = "move up";
"${mod}+Shift+Down" = "move down";
"${mod}+Ctrl+Left" = "move workspace to output left";
"${mod}+Ctrl+Right" = "move workspace to output right";
"Print" = "exec ${lib.getExe pkgs.flameshot} gui";
};
};
extraConfig =
let
background = lib.concatStringsSep " " [
"exec --no-startup-id"
(lib.concatStringsSep " " [
(lib.getExe pkgs.xwinwrap)
"-g 3820x1080"
"-s"
"-b"
"-ni"
"-sp"
"-ov"
"-nf"
])
"--"
(lib.concatStringsSep " " [
(lib.getExe pkgs.mpv)
"${pkgs.wallpaper}/wallpaper.mov"
"-wid WID"
"--loop"
"--no-audio"
"--no-osc"
"--no-input-default-bindings"
"--no-input-cursor"
"--gpu-api=vulkan"
"--vo=gpu-next"
"--framedrop=vo"
"--profile=low-latency"
"--hwdec=auto"
])
];
displayConf =
if displays != null then
lib.concatStringsSep "\n" [
"workspace 1 output ${displays.primary}"
(if (displays ? secondary) then "workspace 2 output ${displays.secondary}" else "")
"exec i3-msg focus output ${displays.primary}"
(if (displays ? xrandr) then "exec \"${lib.getExe pkgs.xrandr} ${displays.xrandr}\"" else "")
]
else
"";
in
lib.concatStringsSep "\n" [
background
displayConf
];
};
}