From 58d355e6823c0ca2f2a024cce86110c713a23552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Fri, 9 Jan 2026 12:36:46 +0100 Subject: [PATCH] work profile --- configs/applicative.nix | 124 ++++++++++++++++++++++++++++++++++++++++ configs/default.nix | 62 +------------------- 2 files changed, 125 insertions(+), 61 deletions(-) create mode 100644 configs/applicative.nix diff --git a/configs/applicative.nix b/configs/applicative.nix new file mode 100644 index 0000000..46cc091 --- /dev/null +++ b/configs/applicative.nix @@ -0,0 +1,124 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + users.users.applicative = { + name = "applicative"; + description = "<*>"; + hashedPasswordFile = config.age.secrets.kfm-password.path; + isNormalUser = true; + extraGroups = [ + "pipewire" + "audio" + ]; + }; + + # to run nspawn in nix sandbox + nix.settings = { + auto-allocate-uids = true; + system-features = [ "uid-range" ]; + experimental-features = [ + "auto-allocate-uids" + "cgroups" + ]; + extra-sandbox-paths = [ "/dev/net" ]; # needed for tests of VPNs + }; + + services.restic.backups.niveum = { + extraBackupArgs = [ + "--exclude=${config.users.users.applicative.home}/src/nixpkgs/.git" + ]; + paths = [ + config.users.users.applicative.home + ]; + }; + + security.sudo.extraRules = [ + { + # still required for systemd-nspawn + users = [ config.users.users.applicative.name ]; + commands = [ "ALL" ]; + } + ]; + + home-manager.users.applicative = + let + mainGitConfig = (import ./git.nix { + inherit pkgs lib config; + }).home-manager.users.me.programs.git; + mainAlacrittyConfig = (import ./alacritty.nix { + inherit pkgs lib config; + }).home-manager.users.me.programs.alacritty; + in + lib.recursiveUpdate + (import ./graphical/home-manager.nix { + inherit lib pkgs config; + }) + { + xdg.enable = true; + home.stateVersion = "25.11"; + + programs.git = { + enable = true; + settings = { + inherit (mainGitConfig.settings) alias; + }; + }; + + programs.alacritty = mainAlacrittyConfig; + + services.hyprpaper = + let + # asgWallpaper = pkgs.fetchurl { + # url = "http://c.krebsco.de/asg-wallpaper.png"; + # hash = "sha256-XLp8XcUgFgDKW5Qae0//0Xw9lhribcevQTVSQvClEB4="; + # }; + + backgroundColor = config.lib.stylix.colors.withHashtag.base06; + foregroundColor = config.lib.stylix.colors.withHashtag.base01; + width = 1920; + height = 1080; + + svgUrl = "https://applicative.systems/_astro/logo-full.D8zRvqBZ.svg"; + logoSvg = pkgs.fetchurl { + url = svgUrl; + hash = "sha256-qXDIEZsAPn4eUJ3kb5U6L3PMUCtWGYqhqyIaBt7FntE="; + }; + + asgWallpaper = + pkgs.runCommand "applicative-wallpaper.png" + { + nativeBuildInputs = [ pkgs.imagemagick ]; + } + '' + # 1. We use -background to set the canvas color + # 2. We use -fuzz and -opaque to replace the logo's internal colors + # 3. We use -gravity and -extent to center it on a wallpaper-sized canvas + + convert \ + -background none \ + -density 300 \ + "${logoSvg}" \ + -fuzz 100% -fill "${foregroundColor}" -opaque black \ + -resize 800x800 \ + -gravity center \ + -background "${backgroundColor}" \ + -extent ${toString width}x${toString height} \ + $out + ''; + in + { + enable = true; + settings = { + ipc = false; + splash = true; + preload = [ "${asgWallpaper}" ]; + wallpaper = [ ",${asgWallpaper}" ]; + }; + }; + + }; +} diff --git a/configs/default.nix b/configs/default.nix index 73e871e..ba4b9ed 100644 --- a/configs/default.nix +++ b/configs/default.nix @@ -105,67 +105,6 @@ in supportedLocales = [ "all" ]; }; } - { - # services.displayManager.cosmic-greeter.enable = false; - services.desktopManager.cosmic.enable = true; - # services.system76-scheduler.enable = true; - - xdg.portal = { - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-cosmic ]; - }; - - users.users.applicative = { - name = "applicative"; - description = "<*>"; - hashedPasswordFile = config.age.secrets.kfm-password.path; - isNormalUser = true; - extraGroups = [ - "pipewire" - "audio" - ]; - }; - - # to run nspawn in nix sandbox - nix.settings = { - auto-allocate-uids = true; - system-features = [ "uid-range" ]; - experimental-features = [ - "auto-allocate-uids" - "cgroups" - ]; - }; - - services.restic.backups.niveum = { - extraBackupArgs = [ - "--exclude=${config.users.users.applicative.home}/src/nixpkgs/.git" - ]; - paths = [ - config.users.users.applicative.home - ]; - }; - - security.sudo.extraRules = [ - { - # still required for systemd-nspawn - users = [ config.users.users.applicative.name ]; - commands = [ "ALL" ]; - } - ]; - - home-manager.users.applicative = - lib.recursiveUpdate - (import ./graphical/home-manager.nix { - inherit lib pkgs config; - }) - { - xdg.enable = true; - home.stateVersion = "25.11"; - services.hyprpaper.enable = false; - # programs.git = config.home-manager.users.me.programs.git; - # programs.alacritty = config.home-manager.users.me.programs.alacritty; - }; - } { services.power-profiles-daemon.enable = true; } @@ -302,6 +241,7 @@ in ./vscode.nix ./wallpaper.nix ./zsh.nix + ./applicative.nix { home-manager.users.me.home.file.".zshrc".text = '' # nothing to see here