nixos-config/system/sway.nix

76 lines
1.9 KiB
Nix
Raw Normal View History

{ pkgs, ... }:
let
inherit (pkgs.uservars) key accent font theme;
in
{
2022-11-07 11:24:40 -03:00
# Enable the X11 windowing system.
services.xserver.enable = false;
2022-10-18 21:45:20 -03:00
# enable sway window manager
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
services.dbus.enable = true;
2022-11-14 15:27:25 -03:00
programs.wshowkeys.enable = true;
2022-10-18 21:45:20 -03:00
xdg.portal = {
enable = true;
wlr.enable = true;
# gtk portal needed to make gtk apps happy
2022-10-26 23:41:02 -03:00
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
2022-10-18 21:45:20 -03:00
};
2023-01-22 18:12:04 -03:00
services.greetd =
let
greetd_main_script = pkgs.writeShellScriptBin "main" ''
${pkgs.dbus-sway-environment}/bin/dbus-sway-environment
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
2023-01-22 18:12:04 -03:00
${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c sway
swaymsg exit
'';
swayConfig = pkgs.writeText "greetd-sway-config" ''
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
exec "${greetd_main_script}/bin/main"
bindsym Mod4+shift+e exec swaynag \
-t warning \
-m 'What do you want to do?' \
-b 'Poweroff' 'systemctl poweroff' \
-b 'Reboot' 'systemctl reboot'
input "*" {
repeat_delay 200
repeat_rate 30
xkb_layout us(colemak)
xkb_numlock enabled
xkb_options lv3:lsgt_switch,grp:shifts_toggle
}
'';
in
{
enable = true;
settings = {
initial_session = {
command = "${pkgs.sway}/bin/sway";
user = "lelgenio";
};
default_session = {
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
};
2022-10-18 21:45:20 -03:00
};
};
environment.systemPackages = with pkgs; [
sway
swaylock
swayidle
wayland
pkgs.xdg-desktop-portal
pkgs.xdg-desktop-portal-wlr
2022-10-26 23:41:02 -03:00
## Theme
capitaine-cursors
2022-12-12 10:21:40 -03:00
bibata-cursors
2022-10-26 23:41:02 -03:00
orchis_theme_compact
papirus_red
2022-10-18 21:45:20 -03:00
];
}