From ae9a80c1f012686c1f65fce7ce76fdd1b77b0b71 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 23 Sep 2026 21:08:35 +0200 Subject: ... --- accounts/gkleen@skadhi/default.nix | 206 +++++++++++++++++++++++++++++++++---- 1 file changed, 185 insertions(+), 21 deletions(-) (limited to 'accounts/gkleen@skadhi/default.nix') diff --git a/accounts/gkleen@skadhi/default.nix b/accounts/gkleen@skadhi/default.nix index 4c0c4028..fc969348 100644 --- a/accounts/gkleen@skadhi/default.nix +++ b/accounts/gkleen@skadhi/default.nix @@ -1,10 +1,13 @@ -{ flake, flakeInputs, userName, config, lib, ... }: +{ flake, flakeInputs, userName, config, pkgs, lib, sources, ... }: let user = config.users.users.${userName}; in { - imports = with flake.nixosModules.userProfiles.${userName}; [ - zsh - ]; + 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"; @@ -17,9 +20,32 @@ in { }; }; - home-manager.users.${userName} = let sysConfig = config; in { config, ... }: { + 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 = {}; + + home-manager.users.${userName} = { sysConfig, config, ... }: { imports = [ flakeInputs.nix-index-database.homeModules.nix-index + ./niri.nix ./shell ./emacs ./zsh ]; home.stateVersion = "26.05"; @@ -30,26 +56,164 @@ in { ]; }; - programs.zsh.dirHashes = let - flakeHashes = lib.mapAttrs' (n: v: lib.nameValuePair (inputNames.${n} or n) (toString v)) flakeInputs; - inputNames = { - self = "nixos"; + 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; }; - in flakeHashes // { - docs = "$HOME/documents"; - dl = "$HOME/Downloads"; - scrot = "$HOME/screenshots"; - media = "$HOME/media"; + }; + 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; + }; }; - programs.starship.settings = { - directory.substitutions = lib.mapAttrs' (name: value: let - value' = builtins.unsafeDiscardStringContext value; - value'' = if lib.hasPrefix "$HOME/" value' then "~" + lib.removePrefix "$HOME" value' else value'; - in lib.nameValuePair value'' "~${name}" - ) config.programs.zsh.dirHashes; }; - programs.nix-index.enable = 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"; + }; + }; + }; + }; + }; }; }; } -- cgit v1.2.3