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

134 lines
3.2 KiB
Nix
Raw Normal View History

2023-09-24 19:56:38 +00:00
{ config, lib, pkgs, user, ... }:
let
font.name = "DejaVu Sans Mono";
font.size = 12.0;
2023-09-26 11:06:56 +00:00
lock_command = "${pkgs.swaylock-fancy}/bin/swaylock-fancy --daemonize --show-failed-attempts --ignore-empty-password";
swaymsg = "${pkgs.sway}/bin/swaymsg";
2023-09-24 19:56:38 +00:00
in
{
imports = [
./i3status-rust.nix
2023-09-29 05:51:31 +00:00
./dunst.nix
2023-09-24 19:56:38 +00:00
];
2023-09-25 12:16:42 +00:00
home.packages = with pkgs; [
xdg-utils
2023-09-26 06:48:56 +00:00
swaylock-fancy
2023-10-01 08:53:24 +00:00
shotman
wl-clipboard
2023-09-25 12:16:42 +00:00
];
2023-09-24 19:56:38 +00:00
programs.fuzzel = {
enable = true;
settings = {
main = {
terminal = "${pkgs.kitty}/bin/kitty";
layer = "overlay";
2023-09-25 12:16:31 +00:00
font = "DejaVu Sans Mono:size=12";
2023-09-24 19:56:38 +00:00
};
2023-09-25 12:16:31 +00:00
colors = {
background = "002b36ff";
border = "ffffffaa";
};
};
};
2023-09-25 12:16:57 +00:00
home.pointerCursor = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 24;
x11 = {
enable = true;
defaultCursor = "Adwaita";
2023-09-24 19:56:38 +00:00
};
};
2023-09-26 11:06:56 +00:00
services.swayidle = {
enable = true;
events = [
{ event = "before-sleep"; command = lock_command; }
];
timeouts = [
2023-10-10 06:59:32 +00:00
{ timeout = 900; command = "${swaymsg} output '*' power off"; resumeCommand = "${swaymsg} output '*' power on"; }
{ timeout = 1000; command = lock_command; }
2023-09-26 11:06:56 +00:00
];
};
2023-09-24 19:56:38 +00:00
wayland.windowManager.sway = {
enable = true;
config = rec {
modifier = "Mod4";
terminal = "${pkgs.kitty}/bin/kitty";
input = {
"type:keyboard" = {
xkb_layout = "de";
};
"type:touchpad" = {
natural_scroll = "enabled";
tap = "enabled";
accel_profile = "flat";
dwt = "enabled";
};
};
seat = {
"*" = {
hide_cursor = "5000";
2023-09-24 19:56:38 +00:00
};
};
2023-09-25 12:17:30 +00:00
defaultWorkspace = "1";
2023-10-03 16:42:11 +00:00
focus.newWindow = "urgent";
2023-09-24 19:56:38 +00:00
fonts = {
names = [ font.name ];
size = font.size;
};
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;
};
}];
menu = "${pkgs.fuzzel}/bin/fuzzel";
2023-09-25 12:17:12 +00:00
keybindings =
let
modifier = config.wayland.windowManager.sway.config.modifier;
in
lib.mkOptionDefault {
"${modifier}+Shift+o" = "exec xdg-open \"zoommtg://zoom.us/join?action=join&confno=4861587170&pwd=ZVk3aHphcWppY21ONjZOMVh6STN6dz09\"";
2023-10-01 08:53:24 +00:00
"${modifier}+Shift+s" = "exec shotman --capture region --copy";
2023-09-26 11:06:56 +00:00
"${modifier}+l" = "exec ${lock_command}";
"${modifier}+Shift+m" = "output DP-2 power off, output DP-3 power off, output DP-2 power on, output DP-3 power on";
2023-09-25 12:17:12 +00:00
};
assigns = {
"6" = [{ class = "^\.zoom $"; }];
};
startup = [
{ command = "keepassxc"; }
{ command = "nextcloud"; }
{ command = "swaymsg 'workspace 1"; }
{ command = "kitty"; }
{ command = "swaymsg 'workspace 2"; }
{ command = "element-desktop"; }
{ command = "swaymsg 'workspace 4"; }
{ command = "thunderbird"; }
{ command = "swaymsg 'workspace 5"; }
{ command = "firefox"; }
];
};
2023-09-24 19:56:38 +00:00
};
}