{ flake, flakeInputs, userName, config, pkgs, lib, sources, ... }: let user = config.users.users.${userName}; in { imports = (with flake.nixosModules.userProfiles.${userName}; [ zsh mpv yt-dlp ./greetd.nix ]) ++ (with flake.nixosModules.systemProfiles; [ niri-unstable flakeInputs.nixVirt.nixosModules.default ]); config = { users.users.gkleen.group = "gkleen"; users.groups.gkleen = {}; systemd.tmpfiles.settings.home-directories."/persistent/${user.home}" = lib.mkForce { v = { mode = user.homeMode; user = user.name; inherit (user) group; }; }; programs = { dconf.enable = true; niri.enable = true; }; environment.sessionVariables."GTK_USE_PORTAL" = "1"; services.niri-autoselect-portal.enable = true; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; config.niri = { default = lib.mkForce ["gnome" "gtk"]; "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; "org.freedesktop.impl.portal.OpenFile" = ["gtk"]; "org.freedesktop.impl.portal.Access" = ["gtk"]; "org.freedesktop.impl.portal.Notification" = ["gtk"]; "org.freedesktop.impl.portal.Secret" = ["none"]; "org.freedesktop.impl.portal.Inhibit" = ["none"]; }; }; security.pam.services.quickshell = {}; services.upower.enable = true; environment.persistence."/persistent".directories = [ "/var/lib/upower" ]; services.dbus.packages = with pkgs; [ dbus dconf xdg-desktop-portal-gtk gcr_4 ]; home-manager.users.${userName} = { sysConfig, config, ... }: { imports = [ flakeInputs.nix-index-database.homeModules.nix-index ./niri.nix ./shell ./emacs ./zsh ]; home.stateVersion = "26.05"; home.persistence."/persistent" = { directories = [ "Downloads" "documents" "screenshots" "media" ".ssh" ]; }; programs.nix-index.enable = true; programs.alacritty = { enable = true; theme = "kitty"; settings = { font = { normal = { family = "Fira Mono"; style = "Medium"; }; size = 10; }; hints = { alphabet = "aoeuhtns"; enabled = [ { command = lib.getExe' pkgs.xdg-utils "xdg-open"; hyperlinks = true; post_processing = true; persist = false; mouse.enabled = true; binding = { key = "O"; mods = "Control|Shift"; }; regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`\\\\\\\\]+"; } { command = lib.getExe' pkgs.wl-clipboard-rs "wl-copy"; hyperlinks = true; post_processing = true; persist = false; mouse.enabled = true; binding = { key = "Y"; mods = "Control|Shift"; }; regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`\\\\\\\\]+"; } ]; }; terminal.shell.program = lib.getExe config.programs.zsh.package; }; }; systemd.user.services.alacritty = { Unit = { Requisite = ["graphical-session.target"]; After = [ "graphical-session.target" ]; }; Service = { ExecStart = "${lib.getExe pkgs.alacritty} --daemon --socket %t/alacritty-activated.sock"; }; }; systemd.user.services.alacritty-proxy = { Unit = { Requires = ["alacritty.service" "alacritty-proxy.socket"]; After = ["alacritty.service" "alacritty-proxy.socket"]; }; Service = { Type = "notify"; ExecStart = "${sysConfig.systemd.package}/lib/systemd/systemd-socket-proxyd %t/alacritty-activated.sock"; }; }; systemd.user.sockets."alacritty-proxy" = { Socket = { SocketMode = "0600"; ListenStream = "%t/alacritty.sock"; }; Install = { WantedBy = ["sockets.target"]; }; }; programs.fuzzel = { enable = true; settings = { main = { terminal = "${lib.getExe config.programs.alacritty.package} msg --socket /run/user/1000/alacritty.sock create-window --command ${lib.getExe' sysConfig.systemd.package "systemd-run"} --user --pty --same-dir --wait --collect --quiet --service-type=exec --expand-environment=no {cmd}"; layer = "overlay"; icon-theme = "Paper"; font = "Fira Sans"; }; colors = { background = "000000cc"; text = "cdd6f4ff"; match = "94e2d5ff"; selection = "585b70ff"; selection-match = "94e2d5ff"; selection-text = "cdd6f4ff"; border = "b4befeff"; }; dmenu = { exit-immediately-if-empty = true; }; }; }; services.xembed-sni-proxy = { enable = true; package = pkgs.kdePackages.plasma-workspace; }; services.network-manager-applet.enable = true; services.blueman-applet.enable = true; home.pointerCursor = { package = pkgs.vanilla-dmz; name = "Vanilla-DMZ-AA"; size = 16; x11 = { enable = true; defaultCursor = "left_ptr"; }; gtk.enable = true; }; gtk = { enable = true; font = { package = pkgs.fira; name = "Fira Sans"; size = 10; }; theme = { package = pkgs.kdePackages.breeze-gtk; name = "Breeze-Dark"; }; iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; }; }; qt.enable = true; qt.platformTheme.name = "gtk"; home.sessionVariables = { QT_QPA_PLATFORMTHEME = lib.mkForce "gtk3"; }; home.extraProfileCommands = '' export XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}''${XDG_DATA_DIRS:+:''${XDG_DATA_DIRS}}" ''; xdg.configFile."systemd/user/home-manager.service.d/before-graphical-session.conf".text = '' [Unit] Before=graphical-session-pre.target ''; fonts = { fontconfig.enable = true; }; i18n.inputMethod = { enable = true; type = "fcitx5"; fcitx5 = { waylandFrontend = true; settings = { globalOptions."Behavior/DisabledAddons" = { "0" = "clipboard"; }; inputMethod = { "Groups/0" = { Name = "Default"; "Default Layout" = "us"; DefaultIM = "keyboard-us"; }; "Groups/0/Items/0" = { Name = "keyboard-us"; Layout = ""; }; "GroupOrder"."0" = "Default"; }; addons = { classicui.globalSection = { "Vertical Candidate List" = "True"; Font = "Fira Sans 10"; MenuFont = "Fira Sans 10"; TrayFont = "Fira Sans Demi-Bold 10"; UseDarkTheme = "True"; }; quickphrase = { globalSection = { "Choose Modifier" = "None"; Spell = "True"; FallbackSpellLanguage = "en"; }; sections.TriggerKey."0" = "Super+E"; }; }; }; }; }; }; }; }