nixos/sway.nix

129 lines
3.3 KiB
Nix
Raw Permalink Normal View History

2024-06-16 10:10:36 +00:00
{ config, pkgs, lib, ... }:
{
home.packages = with pkgs; [
brightnessctl
wl-clipboard
];
wayland.windowManager.sway = {
enable = true;
config = rec {
modifier = "Mod4";
input = {
"*" = {
xkb_layout = "dk";
};
};
terminal = "kitty";
keybindings = lib.mkOptionDefault {
"${modifier}+Shift+e" = "exec emacsclient --create-frame";
"${modifier}+Ctrl+e" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'";
"${modifier}+Ctrl+q" = "exec swaynag -t warning -m 'You pressed the quit shortcut. Do you really want to shutdown? This will end your session.' -b 'Yes, shutdown' 'shutdown now'";
"${modifier}+Ctrl+l" = "exec swaylock -fF";
"${modifier}+Ctrl+s" = "exec swaylock -fF && systemctl suspend";
"XF86MonBrightnessDown" = "exec brightnessctl set 5%-";
"XF86MonBrightnessUp" = "exec brightnessctl set 5%+";
};
bars = [
{
fonts = {
names = [ "pango:Hack Nerd" ];
size = 9.0;
};
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs /home/ed/.config/i3status-rust/config-default.toml";
}
];
};
};
services.dunst = {
enable = true;
iconTheme = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = "16x16";
};
};
programs.i3status-rust = {
enable = true;
bars = {
default = {
theme = "solarized-dark";
icons = "material-nf";
blocks = [
{
block = "maildir";
inboxes = [ "~/.mail/hackerncoder/Inbox" ];
interval = 120;
}
{
block = "backlight";
}
{
block = "net";
format = " $icon {$signal_strength $ssid $frequency|Wired connection} via $device ";
}
{
block = "disk_space";
path = "/";
info_type = "available";
interval = 60;
alert = 10.0;
warning = 20.0;
format = " $icon $available.eng(w:2) ";
}
{
block = "time";
format = " $icon $timestamp.datetime(f:'%a %d/%m')";
interval = 3600;
}
{
block = "time";
format = "$timestamp.datetime(f:'%H %Z')";
timezone = "Etc/UTC";
interval = 600;
}
{
block = "time";
format = "$timestamp.datetime(f:'%R') ";
interval = 60;
}
];
};
};
};
programs.swaylock = {
enable = true;
settings = {
color = "000000";
#font-size = 24;
indicator-idle-visible = false;
#indicator-radius = 100;
#line-color = "ffffff";
#show-failed-attempts = true;
};
};
services.swayidle = {
enable = true;
timeouts = [
{ timeout = 240; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ timeout = 480; command = "${pkgs.systemd}/bin/systemctl suspend"; }
];
};
# gtk = {
# enable = true;
# theme.name = "breeze";
# };
# qt = {
# enable = true;
# platformTheme.name = "kde";
# style.name = "breeze";
# };
}