refactor(tazjin/nixos): Split up desktop/laptop configurations

Change-Id: I0f5d631491be0c811ad171510568aac097d2fddd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5553
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
Vincent Ambo 2022-05-09 17:04:52 +02:00 committed by tazjin
parent c4a3500d70
commit 5518f620bb
5 changed files with 83 additions and 69 deletions

View file

@ -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
'';
}

View file

@ -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;
}

View file

@ -21,4 +21,6 @@
"/etc/machine-id"
];
};
programs.fuse.userAllowOther = true;
}

View file

@ -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;
};
}

View file

@ -14,11 +14,14 @@ in
lib.fix (self: {
imports = [
(mod "open_eid.nix")
(usermod "desktop.nix")
(usermod "fonts.nix")
(usermod "home-config.nix")
(usermod "laptop.nix")
(usermod "persistence.nix")
(usermod "physical.nix")
(usermod "zerotier.nix")
(pkgs.home-manager.src + "/nixos")
] ++ lib.optional (builtins.pathExists ./local-config.nix) ./local-config.nix;
@ -111,24 +114,9 @@ lib.fix (self: {
];
};
# from https://github.com/NixOS/nixpkgs/issues/64965
environment.etc."ipsec.secrets".text = ''
include ipsec.d/ipsec.nm-l2tp.secrets
'';
security.rtkit.enable = true;
services = {
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
redshift.enable = true;
blueman.enable = true;
mullvad-vpn.enable = true;
fwupd.enable = true;
printing.enable = true;
# expose i2c device as /dev/i2c-amdgpu-dm and make it user-accessible
@ -137,29 +125,7 @@ lib.fix (self: {
SUBSYSTEM=="i2c-dev", ACTION=="add", DEVPATH=="/devices/pci0000:00/0000:00:08.1/0000:06:00.0/i2c-5/i2c-dev/i2c-5", SYMLINK+="i2c-amdgpu-dm", TAG+="uaccess"
'';
# Enable power-saving features.
tlp.enable = true;
xserver = {
enable = true;
layout = "us";
xkbOptions = "caps:super";
videoDrivers = [ "amdgpu" ];
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";
};
};
xserver.videoDrivers = [ "amdgpu" ];
# Automatically collect garbage from the Nix store.
depot.automatic-gc = {
@ -171,39 +137,8 @@ lib.fix (self: {
};
};
# Set variables to enable EXWM-XIM
environment.sessionVariables = {
XMODIFIERS = "@im=exwm-xim";
GTK_IM_MODULE = "xim";
QT_IM_MODULE = "xim";
CLUTTER_IM_MODULE = "xim";
};
# Automatically detect location to use for redshift
location.provider = "geoclue2";
# 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
'';
time.timeZone = "Africa/Cairo";
programs = {
adb.enable = true;
fish.enable = true;
light.enable = true;
mosh.enable = true;
ssh.startAgent = true;
# Required by impermanence
fuse.userAllowOther = true;
};
systemd.user.services.lieer-tazjin = {
description = "Synchronise mail@tazj.in via lieer";
script = "${pkgs.lieer}/bin/gmi sync";