Nixfiles/wm/default.nix

187 lines
4.6 KiB
Nix

{
config,
lib,
pkgs,
...
}: {
imports = [./terminal ./i3like.nix];
gtk = {
enable = true;
font = {
name = "DejaVu Sans";
};
theme = {
package = pkgs.gnome.gnome-themes-extra;
name = "Adwaita-dark";
};
};
terminal = {
enable = true;
kind = "foot";
colors = {
background = "1a1b26";
foreground = "c0caf5";
black = {
normal = "15161e";
bright = "414868";
};
red = {normal = "f7768e";};
green = {normal = "9ece6a";};
yellow = {normal = "e0af68";};
blue = {normal = "7aa2f7";};
magenta = {normal = "bb9af7";};
cyan = {normal = "7dcfff";};
white = {
normal = "a9b1d6";
bright = "c0caf5";
};
urls = "73daca";
selection = {
foreground = "c0caf5";
background = "33467c";
};
};
font = {
family = "Hack Nerd Font Mono";
size = 10;
};
};
wm = let
mod = config.wm.modifier;
in {
enable = true;
kind = "sway";
modifier = "Mod4";
font = {
name = "Hack Nerd Font";
style = "Regular";
size = 14.0;
};
bar = {
font = {
name = "Hack Nerd Font Mono";
style = "Regular";
size = 11.0;
};
};
wallpaper = "${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/backgrounds/nixos/nix-wallpaper-simple-dark-gray.png";
printScreen = {
enable = true;
keybind = "Print";
};
menu = {
enable = true;
keybind = "${mod}+e";
};
exit = {
enable = true;
keybind = "${mod}+Shift+e";
};
notifications = {
enable = true;
font = "hack nerd font 10";
defaultTimeout = 7000;
};
startup = [
{command = "signal-desktop";}
{command = "discord";}
{command = "firefox";}
{command = "element-desktop";}
{command = "thunderbird";}
{command = "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK";}
{command = "hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK";}
{
command = "${pkgs.plasma5Packages.kdeconnect-kde}/libexec/kdeconnectd";
always = true;
}
];
workspaces = {
moveModifier = "Shift";
definitions = {
"1:" = {key = "ampersand";};
"2:" = {
key = "bracketleft";
output = "DP-0";
};
"3:" = {key = "braceleft";};
"4" = {key = "braceright";};
"5" = {key = "parenleft";};
"6" = {key = "equal";};
"7" = {key = "asterisk";};
"" = {
key = "parenright";
output = "HDMI-0";
assign = ["Spotify"];
};
"" = {
key = "w";
output = "HDMI-0";
assign = [
"Element"
"Signal"
"Discord"
];
};
"" = {
key = "m";
output = "HDMI-0";
assign = ["Thunderbird"];
};
};
};
keybindings = {
"${mod}+Shift+l" = "exec ${pkgs.swaylock-fancy}/bin/swaylock-fancy";
# Media Keys
"XF86AudioRaiseVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ '+10%'";
"XF86AudioLowerVolume" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-volume @DEFAULT_SINK@ '-10%'";
"XF86AudioMute" = "exec ${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl -p spotify play-pause";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl -p spotify next";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl -p spotify previous";
# Gromit
"Ctrl+Shift+I" = "exec ${pkgs.gromit-mpx}/bin/gromit-mpx -a";
"Ctrl+Shift+D" = "exec ${pkgs.gromit-mpx}/bin/gromit-mpx -q";
"Ctrl+Shift+H" = "exec ${pkgs.gromit-mpx}/bin/gromit-mpx -c";
# Focus
"${mod}+Left" = "focus left";
"${mod}+Right" = "focus right";
"${mod}+Down" = "focus down";
"${mod}+Up" = "focus up";
"${mod}+Shift+Left" = "move left";
"${mod}+Shift+Right" = "move right";
"${mod}+Shift+Down" = "move down";
"${mod}+Shift+Up" = "move up";
# Layout
"${mod}+u" = "fullscreen toggle";
"${mod}+comma" = "layout tabbed";
# Misc
"${mod}+Shift+semicolon" = "kill";
"${mod}+Shift+J" = "reload";
"${mod}+Return" = "exec ${config.terminal.command}";
"${mod}+p" = "mode resize";
"${mod}+Shift+P" = "restart";
"${mod}+Shift+S" = "exec ~/bin/ssh-picker";
};
};
}