{pkgs, lib, ...}: { home-manager.users.steveej = _: { imports = [ ../../../home-manager/configuration/graphical-fullblown.nix (_: { programs.chromium.extensions = [ # can define host-specific extensions here ]; }) ]; }; # TODO: delegate graphical session to home-manager config (mostly) # FIXME: move this to home-manager entirely # programs.sway.enable = true; # programs.sway.package = null; services.xserver = { enable = lib.mkForce false; desktopManager = { gnome.enable = lib.mkForce false; xterm.enable = lib.mkForce false; # FIXME: gnome should be moved to user session # gnome.enable = true; # xterm.enable = true; }; displayManager = { # gdm.enable = lib.mkForce false; # FIXME: does the home-manager session have an explicit name? # defaultSession = "xterm"; # autoLogin = { # enable = true; # user = "steveej"; # }; # session = [ # { # manage = "desktop"; # name = "xsession"; # start = ""; # } # ]; }; }; services.greetd = let # exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit" swayConfig = pkgs.writeText "greetd-sway-config" '' # `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet. exec "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK; ${pkgs.greetd.regreet}/bin/regreet; swaymsg exit" bindsym Mod4+shift+e exec swaynag \ -t warning \ -m 'What do you want to do?' \ -b 'Poweroff' 'systemctl poweroff' \ -b 'Reboot' 'systemctl reboot' ''; in { enable = true; settings = { vt = 1; default_session = { command = "${pkgs.sway}/bin/sway --config ${swayConfig}"; }; }; }; environment.etc."greetd/environments".text = '' sway jay ''; # required by swaywm security.polkit.enable = true; security.pam.services.swaylock = { }; services.teamviewer.enable = false; system.stateVersion = "20.09"; # TODO: move this into home-manager environment.systemPackages = with pkgs.gnomeExtensions; [ pop-shell vitals soft-brightness # TODO: currently not compatible # window-switcher-current-workspace-first # mmod-panel ]; }