tvl-depot/users/tazjin/nixos/modules/desktop.nix
Vincent Ambo 11aacd7857 feat(tazjin/nixos): setup niri (scrolling window manager)
This commit is experimental for now.

The backstory is this: There are use-cases where tiling windows (as in EXWM,
which I normally use) annoy me. There are also use-cases where stacking
windows (as in e.g. XFCE, which I tried for a bit) are annoying.

Scrolling WMs are a new thing which is sort of similar to tiling, but as it adds
more screen real estate doesn't require shuffling around or resizing of existing
windows basically ever.

I'm going to trial this (assuming I can get everything that's relevant for me
set up) and see how it goes.

Change-Id: I603c87b8ebd7fbde763d9d4708e098e9079889c5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12402
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2024-08-31 23:47:57 +00:00

59 lines
1.2 KiB
Nix

# EXWM and other desktop configuration.
{ config, depot, lib, pkgs, ... }:
{
services = {
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
blueman.enable = true;
libinput.enable = true;
xserver = {
enable = true;
xkb.layout = "us";
xkb.options = "caps:super";
displayManager.sessionPackages = [ pkgs.niri ];
displayManager.gdm = {
enable = true;
wayland = true;
};
};
};
programs.xwayland.enable = true;
environment.systemPackages = with pkgs; [
# core packages
niri
xwayland-satellite
swaylock
# support tooling
qt5.qtwayland
sfwbar
swaybg
swayidle
wdisplays
wezterm
wl-mirror
xfce.xfce4-appfinder
];
# Do not restart the display manager automatically
systemd.services.display-manager.restartIfChanged = lib.mkForce false;
# swaylock needs an empty PAM configuration, otherwise it locks the user out
security.pam.services.swaylock = { };
# If something needs more than 10s to stop it should probably be
# killed.
systemd.extraConfig = ''
DefaultTimeoutStopSec=10s
'';
}