modularise home conf

This commit is contained in:
atagen 2023-09-28 13:15:38 +10:00
parent b07d950147
commit 4477d0d4a2
23 changed files with 1152 additions and 855 deletions

157
home/programs/sway.nix Normal file
View file

@ -0,0 +1,157 @@
{
config,
lib,
pkgs,
...
}: {
config.wayland.windowManager.sway = {
enable = true;
package = pkgs.sway;
config = with pkgs.rice; {
bars = [];
# reintroduces flicker
# output = {
# "*" = {
# adaptive_sync = "on";
# };
# };
focus = {
mouseWarping = "container";
wrapping = "no";
};
fonts = with fonts; {
names = [sans.name emoji.name];
size = 10.0;
};
gaps = {
inner = borders.gaps_in;
outer = borders.gaps_out;
smartGaps = true;
smartBorders = "no_gaps";
};
window = {
border = borders.thickness;
hideEdgeBorders = "smart";
titlebar = false;
commands = [
{
command = "move scratchpad";
criteria = {
app_id = "org.keepassxc.KeePassXC";
};
}
];
};
workspaceAutoBackAndForth = false;
input = {
"*" = {
accel_profile = "flat";
pointer_accel = "0.0";
xkb_options = "caps:escape";
};
};
startup = with pkgs; [
{command = "${lib.getExe' keepassxc "keepassxc"}";}
{command = "${lib.getExe' ckb-next "ckb-next"} -c -b";}
{command = "${lib.getExe' mullvad "mullvad"} connect";}
{command = "${lib.getExe' xorg.xrdb "xrdb"} -l ~/.Xresources";}
{command = "${lib.getExe' flashfocus "flashfocus"} -o 0.95 -t 175 -n 30 --no-flash-fullscreen -l on_open_close";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface gtk-theme '${rice.gtk-theme.name}'";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface font-name '${rice.fonts.sans.name}'";}
{command = "${lib.getExe' glib.bin "gsettings"} set org.gnome.desktop.interface icon-theme '${rice.icons.name}'";}
];
terminal = "kitty";
modifier = "Mod4";
keybindings = {
"Mod4+Return" = "exec kitty";
"Mod4+d" = "exec fuzzel";
"Mod4+e" = "exec thunar";
"Mod4+f" = "exec firefox";
"Mod4+Shift+e" = "exec wlogout";
"Mod4+Shift+s" = "exec grim -g \"$(slurp)\" -t png -o \"${config.home.homeDirectory}/Pictures/$(date +%F_%H-%m-%S).png\" && notify-send \"Screenshot taken.\"";
"Mod4+Shift+Ctrl+s" = "exec kooha";
"Mod4+n" = "exec swaync-client -t";
"Mod4+Space" = "floating toggle; move absolute position center";
"Mod4+c" = "focus floating; move absolute position center";
"Mod4+Shift+Space" = "fullscreen toggle";
"Mod4+a" = "focus parent";
"Mod4+Shift+a" = "focus child";
"Mod4+h" = "focus left";
"Mod4+j" = "focus down";
"Mod4+k" = "focus up";
"Mod4+l" = "focus right";
"Mod4+Shift+h" = "move left";
"Mod4+Shift+j" = "move down";
"Mod4+Shift+k" = "move up";
"Mod4+Shift+l" = "move right";
"Mod4+1" = "workspace 1";
"Mod4+Shift+1" = "move container to workspace 1";
"Mod4+2" = "workspace 2";
"Mod4+Shift+2" = "move container to workspace 2";
"Mod4+3" = "workspace 3";
"Mod4+Shift+3" = "move container to workspace 3";
"Mod4+4" = "workspace 4";
"Mod4+Shift+4" = "move container to workspace 4";
"Mod4+r" = "mode resize";
"Mod4+Shift+minus" = "move scratchpad";
"Mod4+minus" = "scratchpad show";
"Mod4+Shift+q" = "kill";
"Mod4+v" = "split toggle";
"XF86AudioMute" = "exec swayosd --output-volume mute-toggle";
"XF86AudioRaiseVolume" = "exec swayosd --output-volume raise";
"XF86AudioLowerVolume" = "exec swayosd --output-volume lower";
"XF86AudioStop" = "exec playerctl stop";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioNext" = "exec playerctl next";
"XF86MonBrightnessUp" = "exec swayosd --brightness raise";
"XF86MonBrightnessDown" = "exec swayosd --brightness lower";
};
menu = "fuzzel";
colors = with palette-hex; {
background = util.bg;
focused = {
background = util.bg;
border = bright.yellow;
childBorder = bright.yellow;
indicator = bright.yellow;
text = util.fg;
};
focusedInactive = {
background = normal.black;
border = util.bg;
childBorder = util.bg;
indicator = util.bg;
text = normal.white;
};
placeholder = {
background = util.bg;
border = bright.green;
childBorder = bright.green;
indicator = bright.green;
text = util.fg;
};
unfocused = {
background = normal.black;
border = util.bg;
childBorder = util.bg;
indicator = util.bg;
text = normal.white;
};
urgent = {
background = normal.red;
border = normal.red;
childBorder = normal.red;
indicator = normal.red;
text = normal.blue;
};
};
};
systemd.enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
xwayland = true;
};
}