dotfiles.nix/i3.nix

131 lines
3.8 KiB
Nix

{ lib, lockCmd, statusCmd, ... }: {
enable = true;
config = rec {
fonts = [ "Aileron" "FontAwesome 14" ];
colors = {
background = "#CBBB9B";
focused = {
border = "#421B28";
background = "#3F71A8";
text = "#EAE1CE";
indicator = "#A04060";
childBorder = "#3F71A8";
};
focusedInactive = {
border = "#7F6E73";
background = "#B59DA4";
text = "#383632";
indicator = "#484E50";
childBorder = "#5F676A";
};
unfocused = {
border = "#333333";
background = "#222222";
text = "#CDC5B4";
indicator = "#292D2E";
childBorder = "#222222";
};
placeholder = {
border = "#000000";
background = "#0C0C0C";
text = "#CDC5B4";
indicator = "#000000";
childBorder = "#0C0C0C";
};
urgent = {
border = "#1086E0";
background = "#1086E0";
text = "#383632";
indicator = "#1086E0";
childBorder = "#1086E0";
};
};
bars = [{
fonts = [ "Fira Code" "FontAwesome 11" ];
statusCommand = statusCmd;
colors = {
background = "#000000";
statusline = "#EAE1CE";
separator = "#CDC5B4";
focusedWorkspace = {
border = "#3F71A8";
background = "#3F71A8";
text = "#EAE1CE";
};
activeWorkspace = {
border = "#CDC5B4";
background = "#222222";
text = "#EAE1CE";
};
inactiveWorkspace = {
border = "#222222";
background = "#222222";
text = "#CDC5B4";
};
urgentWorkspace = {
border = "#1086E0";
background = "#1086E0";
text = "#383632";
};
bindingMode = {
border = "#1086E0";
background = "#1086E0";
text = "#383632";
};
};
}];
modifier = "Mod4";
keybindings = lib.mkOptionDefault {
"${modifier}+c" = "exec CM_ONESHOT=1 clipmenud";
"${modifier}+v" = "exec clipmenu";
# "${modifier}+Escape" = "exec ${lockCmd}";
"${modifier}+0" = "workspace number 0";
"${modifier}+1" = "workspace number 1";
"${modifier}+2" = "workspace number 2";
"${modifier}+3" = "workspace number 3";
"${modifier}+4" = "workspace number 4";
"${modifier}+5" = "workspace number 5";
"${modifier}+6" = "workspace number 6";
"${modifier}+7" = "workspace number 7";
"${modifier}+8" = "workspace number 8";
"${modifier}+9" = "workspace number 9";
# "${modifier}+Shift+Right" = "workspace next";
# "${modifier}+Shift+Left" = "workspace prev";
"${modifier}+d" = "exec --no-startup-id rofi -show run";
"XF86AudioRaiseVolume" = "exec --no-startup-id amixer sset Master 5%+";
"XF86AudioLowerVolume" = "exec --no-startup-id amixer sset Master 5%-";
"XF86MonBrightnessUp" = "exec --no-startup-id light -A 10";
"XF86MonBrightnessDown" = "exec --no-startup-id light -U 10";
};
workspaceLayout = "tabbed";
assigns = {
"1: web" = [{ class = "Firefox"; }];
"2: devel" = [
{ class = "(?i)kitty"; }
{ class = "(?i)(vsc|c)odium"; }
{ class = "(?i)thunar"; }
];
"3: social" = [
{ class = "(?i)nheko"; }
{ class = "Slack"; }
{ class = "discord"; }
{ class = "(?i)signal(-desktop)?"; }
{ class = "(?i)fractal"; }
{ class = "(?i)castor"; }
];
"4: other" = [{ class = ".*"; }];
};
};
extraConfig = ''
exec --no-startup-id firefox
exec --no-startup-id kitty
exec --no-startup-id Enpass
exec --no-startup-id deluged
exec --no-startup-id mullvad-vpn
# exec --no-startup-id slack
# exec --no-startup-id nheko
# exec --no-startup-id Discord
for_window [class="Firefox"] focus
'';
}