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

137 lines
3.3 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\"";
"${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;
};
};
};
};
}