nixos-config/home-manager/i3/default.nix

97 lines
2.7 KiB
Nix

{ config, lib, pkgs, user, ... }:
let
cfg = config.xsession.windowManager.i3;
font.name = "DejaVu Sans Mono";
font.size = 12.0;
in
{
imports = [
./i3status-rust.nix
];
home.file = {
workspaces = {
source = ./workspaces;
target = ".config/i3/workspaces";
recursive = true;
};
wallpapers = {
source = ./wallpapers;
target = ".config/i3/wallpapers";
recursive = true;
};
};
xsession.windowManager.i3 = {
enable = true;
config = {
modifier = "Mod4";
terminal = "${pkgs.kitty}/bin/kitty";
fonts = {
names = [ font.name ];
size = font.size;
};
window = {
titlebar = false;
border = 0;
};
floating = {
titlebar = false;
border = 0;
};
menu = "${pkgs.rofi}/bin/rofi -show drun";
bars = [{
mode = "hide";
position = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs ~/.config/i3status-rust/config-default.toml";
fonts = {
names = [ font.name ];
size = font.size;
};
}];
defaultWorkspace = "workspace number 1";
keybindings = lib.mkOptionDefault {
"${cfg.config.modifier}+Shift+o" = "exec xdg-open \"zoommtg://zoom.us/join?action=join&confno=4861587170&pwd=ZVk3aHphcWppY21ONjZOMVh6STN6dz09\"";
};
startup = [
{ command = "unclutter -idle 1"; notification = false; }
{ command = "i3-msg 'workspace 1; append_layout ~/.config/i3/workspaces/workspace-1.json'"; }
{ command = "i3-msg 'workspace 2; append_layout ~/.config/i3/workspaces/workspace-2.json'"; }
{ command = "i3-msg 'workspace 4; append_layout ~/.config/i3/workspaces/workspace-4.json'"; }
{ command = "i3-msg 'workspace 5; append_layout ~/.config/i3/workspaces/workspace-5.json'"; }
{ command = "kitty"; notification = false; }
{ command = "firefox"; notification = false; }
{ command = "element-desktop"; notification = false; }
{ command = "keepassxc"; notification = false; }
{ command = "nextcloud"; notification = false; }
{ command = "signal-desktop"; notification = false; }
{ command = "slack"; notification = false; }
{ command = "telegram-desktop"; notification = false; }
{ command = "thunderbird"; notification = false; }
{ command = "whatsapp-for-linux"; notification = false; }
{ command = "zoom"; notification = false; }
];
assigns = {
"6" = [{ class = "^\.zoom $"; }];
};
};
};
services.betterlockscreen = {
enable = true;
arguments = [ "--update /home/mandlm/.config/i3/wallpapers/nix-wallpaper-dracula.png" ];
};
}