nixos/services/desktop.nix

80 lines
1.9 KiB
Nix

{
config,
lib,
fn,
pkgs,
...
}:
with lib;
let
cfg = config.machine;
desktopFiles = fn.lst {
path = toString ./desktop;
fullPath = true;
};
in
{
imports = desktopFiles;
}
// mkIf (elem "desktop" cfg.services) {
xdg.portal = {
enable = true;
wlr.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
xdg-desktop-portal-gnome
];
};
services = {
gvfs.enable = true;
libinput = {
enable = true;
touchpad = {
tapping = true;
disableWhileTyping = false;
naturalScrolling = false;
horizontalScrolling = true;
};
};
};
programs = {
dconf.enable = true;
regreet = {
enable = true;
# https://github.com/NixOS/nixpkgs/issues/226586
cageArgs = [ "-m" "last" ];
settings = {
background = {
path = "/persist/data/wallpaper.jpg";
# Available values: "Fill", "Contain", "Cover", "ScaleDown"
fit = "Fill";
};
GTK = {
application_prefer_dark_theme = true;
theme_name = lib.mkForce "Kanagawa-BL";
};
};
};
};
environment = {
systemPackages = with pkgs; [ kanagawa ];
etc."xdg/gtk-2.0/gtkrc".text = ''
gtk-key-theme-name = "Kanagawa-BL"
'';
etc."xdg/gtk-3.0/settings.ini".text = ''
[Settings]
gtk-key-theme-name = Kanagawa-BL
'';
# Set keyboard layout for regreet cage
# see man cage or:
# https://man.archlinux.org/man/cage.1.en#ENVIRONMENT
variables.XKB_DEFAULT_LAYOUT = "de";
};
# Allow users in the video group to change the display brightness
services.udev.extraRules = ''
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod 664 /sys/class/backlight/%k/brightness"
'';
}