{ 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\""; "${cfg.config.modifier}+Shift+s" = "exec flameshot gui"; }; startup = [ { 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 = "thunderbird"; notification = false; } ]; assigns = { "6" = [{ class = "^\.zoom $"; }]; }; }; }; services = { betterlockscreen = { enable = true; arguments = [ "--update /home/mandlm/.config/i3/wallpapers/nix-wallpaper-dracula.png" ]; }; flameshot = { enable = true; settings = { General = { showStartupLaunchMessage = false; }; }; }; unclutter.enable = true; dunst = { enable = true; settings = { global = { follow = "keyboard"; font = "DejaVu Sans Mono 11"; frame_width = 1; }; urgency_low = { frame_color = "#268bd2"; foreground = "#eee8d5"; background = "#002b36"; timeout = 4; }; urgency_normal = { frame_color = "#859900"; foreground = "#eee8d5"; background = "#002b36"; timeout = 6; }; urgency_critical = { frame_color = "#dc322f"; foreground = "#eee8d5"; background = "#002b36"; timeout = 8; }; }; }; }; }