diff options
Diffstat (limited to 'users/tazjin/nixos/modules')
-rw-r--r-- | users/tazjin/nixos/modules/desktop.nix | 53 | ||||
-rw-r--r-- | users/tazjin/nixos/modules/laptop.nix | 12 | ||||
-rw-r--r-- | users/tazjin/nixos/modules/persistence.nix | 2 | ||||
-rw-r--r-- | users/tazjin/nixos/modules/physical.nix | 12 |
4 files changed, 79 insertions, 0 deletions
diff --git a/users/tazjin/nixos/modules/desktop.nix b/users/tazjin/nixos/modules/desktop.nix new file mode 100644 index 000000000000..c78463386c46 --- /dev/null +++ b/users/tazjin/nixos/modules/desktop.nix @@ -0,0 +1,53 @@ +# EXWM and other desktop configuration. +{ depot, lib, pkgs, ... }: + +{ + services = { + pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + }; + + redshift.enable = true; + blueman.enable = true; + + xserver = { + enable = true; + layout = "us"; + xkbOptions = "caps:super"; + + libinput.enable = true; + + displayManager = { + # Give EXWM permission to control the session. + sessionCommands = "${pkgs.xorg.xhost}/bin/xhost +SI:localuser:$USER"; + lightdm.enable = true; + # lightdm.greeters.gtk.clock-format = "%H:%M"; # TODO(tazjin): TZ? + }; + + windowManager.session = lib.singleton { + name = "exwm"; + start = "${depot.users.tazjin.emacs}/bin/tazjins-emacs"; + }; + }; + }; + + # Set variables to enable EXWM-XIM and other Emacs features. + environment.sessionVariables = { + XMODIFIERS = "@im=exwm-xim"; + GTK_IM_MODULE = "xim"; + QT_IM_MODULE = "xim"; + CLUTTER_IM_MODULE = "xim"; + EDITOR = "emacsclient"; + }; + + # Do not restart the display manager automatically + systemd.services.display-manager.restartIfChanged = lib.mkForce false; + + # If something needs more than 10s to stop it should probably be + # killed. + systemd.extraConfig = '' + DefaultTimeoutStopSec=10s + ''; +} diff --git a/users/tazjin/nixos/modules/laptop.nix b/users/tazjin/nixos/modules/laptop.nix new file mode 100644 index 000000000000..9a4a095b26a4 --- /dev/null +++ b/users/tazjin/nixos/modules/laptop.nix @@ -0,0 +1,12 @@ +# Configuration specifically for laptops that move around. +{ ... }: + +{ + # Automatically detect location to use for redshift + location.provider = "geoclue2"; + + # Enable power-saving features. + services.tlp.enable = true; + + programs.light.enable = true; +} diff --git a/users/tazjin/nixos/modules/persistence.nix b/users/tazjin/nixos/modules/persistence.nix index c07ec9227ca2..c81958161fbf 100644 --- a/users/tazjin/nixos/modules/persistence.nix +++ b/users/tazjin/nixos/modules/persistence.nix @@ -21,4 +21,6 @@ "/etc/machine-id" ]; }; + + programs.fuse.userAllowOther = true; } diff --git a/users/tazjin/nixos/modules/physical.nix b/users/tazjin/nixos/modules/physical.nix index 4517d9aeb0d3..ee89284aa899 100644 --- a/users/tazjin/nixos/modules/physical.nix +++ b/users/tazjin/nixos/modules/physical.nix @@ -72,4 +72,16 @@ xsecurelock zoxide ]); + + # Run services & configure programs for all machines. + services = { + mullvad-vpn.enable = true; + fwupd.enable = true; + }; + + programs = { + fish.enable = true; + mosh.enable = true; + ssh.startAgent = true; + }; } |