{ 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; 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" ''; }