diff options
| author | Dylan <boss@tehbox.org> | 2026-10-17 14:59:30 +1300 |
|---|---|---|
| committer | Dylan <boss@tehbox.org> | 2026-10-17 14:59:30 +1300 |
| commit | f29c5c4337febe2dc015d61f5c36b4c129e7f565 (patch) | |
| tree | 3d3ca9c5a7caf037adba35e955bdfd234f742533 /home-manager | |
| parent | 5af14f29f3ac99374d332f333a0a877415c09848 (diff) | |
| download | nixos-configuration-f29c5c4337febe2dc015d61f5c36b4c129e7f565.tar.gz nixos-configuration-f29c5c4337febe2dc015d61f5c36b4c129e7f565.zip | |
feat: Lots of changes
Diffstat (limited to 'home-manager')
| -rw-r--r-- | home-manager/claude-code-manifest-2.1.282.json | 84 | ||||
| -rw-r--r-- | home-manager/emacs/default.nix | 3 | ||||
| -rw-r--r-- | home-manager/home.nix | 35 | ||||
| -rw-r--r-- | home-manager/i3/config | 4 | ||||
| -rw-r--r-- | home-manager/i3/default.nix | 1 | ||||
| -rw-r--r-- | home-manager/i3/i3-commands.nix | 18 | ||||
| -rw-r--r-- | home-manager/i3/rofi-passmenu.nix | 72 |
7 files changed, 200 insertions, 17 deletions
diff --git a/home-manager/claude-code-manifest-2.1.282.json b/home-manager/claude-code-manifest-2.1.282.json new file mode 100644 index 0000000..78dbc55 --- /dev/null +++ b/home-manager/claude-code-manifest-2.1.282.json @@ -0,0 +1,84 @@ +{ + "version": "2.1.282", + "manifestSignatureEnforcement": "flag", + "commit": "88e628ac87357ab077f78e21f78aee6156f01ab3", + "modsCommit": "d78be9481b889e11186ec4578b4f5e9301396e25", + "buildDate": "2026-09-24T04:11:54Z", + "platforms": { + "darwin-arm64": { + "binary": "claude", + "checksum": "fcfd837103965c64de34a6b9b94370d77a347ea71819715a27d5f0ef01775ea4", + "size": 222245312 + }, + "darwin-x64": { + "binary": "claude", + "checksum": "5c34b00b5c0f3862b76011015c334e91904c4593afea7a5451e00746ad7934c1", + "size": 230651344 + }, + "linux-arm64": { + "binary": "claude", + "checksum": "6764ffc39e9fed425a493ff61ea28506d1ba83996ce81a48d1177dbb393419c9", + "size": 238084088 + }, + "linux-x64": { + "binary": "claude", + "checksum": "3afe8535c0cc33f0e24f7b25dab7a1727b8b592196f8496a8bc302ba2161eed3", + "size": 238767288 + }, + "linux-arm64-musl": { + "binary": "claude", + "checksum": "5c3b3c9904f84b59d01c4e7f5c9305a4fc1981b18b26745688c9c1dab9cb25ae", + "size": 230438720 + }, + "linux-x64-musl": { + "binary": "claude", + "checksum": "e01fc77a210c54acf69205db13d8d50d11fa6ac62b81b6c6201de8440c293b0d", + "size": 232525912 + }, + "win32-x64": { + "binary": "claude.exe", + "checksum": "fc0e3af017705624b9e1bce913f72761864ff994804514da1f5e41380fca4484", + "size": 242171040 + }, + "win32-arm64": { + "binary": "claude.exe", + "checksum": "a7f3db85706ca2ca123ea9088e565f10a657a15a0f5d7b9b34283609d857de25", + "size": 229716640 + } + }, + "sdkCompat": { + "testedWrapperVersions": [ + "0.3.243", + "0.3.245", + "0.3.246", + "0.3.247", + "0.3.248", + "0.3.250", + "0.3.251", + "0.3.252", + "0.3.257", + "0.3.258", + "0.3.259", + "0.3.260", + "0.3.261", + "0.3.263", + "0.3.265", + "0.3.266", + "0.3.267", + "0.3.268", + "0.3.269", + "0.3.270", + "0.3.271", + "0.3.272", + "0.3.273", + "0.3.274", + "0.3.275", + "0.3.276", + "0.3.277", + "0.3.278", + "0.3.280", + "0.3.281" + ], + "harnessSchema": 1 + } +} diff --git a/home-manager/emacs/default.nix b/home-manager/emacs/default.nix index 6bb1dc6..a2c2610 100644 --- a/home-manager/emacs/default.nix +++ b/home-manager/emacs/default.nix @@ -10,7 +10,8 @@ let wrapfig amsmath ulem hyperref capt-of; }); myEmacs = (pkgs.emacsPackagesFor pkgs.emacs30).emacsWithPackages (epkgs: with epkgs; [ - vterm + # vterm + ghostel treesit-grammars.with-all-grammars ]); in diff --git a/home-manager/home.nix b/home-manager/home.nix index 897a6b1..491e713 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,5 +1,11 @@ { pkgs, lib, inputs, ... }: +let + claude-code-latest = pkgs.claude-code.override { + manifest = lib.importJSON ./claude-code-manifest-2.1.282.json; + }; +in { + imports = [ ./shells/bash.nix ./emacs @@ -55,7 +61,7 @@ pavucontrol unzip zip appimage-run - lunar-client + # lunar-client libnotify xclip (python3.withPackages (ps: with ps; [ @@ -92,6 +98,10 @@ # inputs.hytale-launcher.packages.${pkgs.system}.default #adom flatpak + deadlock-mod-manager + nh + claude-code-latest + inputs.claude-desktop.packages.${system}.claude-desktop # openttd ]; @@ -116,6 +126,7 @@ }; services.gpg-agent.enable = true; + services.gpg-agent.pinentry.package = pkgs.pinentry-gtk2; services.dunst = { enable = true; @@ -131,11 +142,11 @@ enable = true; # optional Nvidia hardware acceleration - package = ( - pkgs.obs-studio.override { - cudaSupport = true; - } - ); + # package = ( + # pkgs.obs-studio.override { + # cudaSupport = true; + # } + # ); plugins = with pkgs.obs-studio-plugins; [ obs-pipewire-audio-capture @@ -144,7 +155,16 @@ }; # services.easyeffects.enable = true; - + + services.pass-secret-service.enable = true; + # Start with the X session rather than at boot, so it inherits DISPLAY/XAUTHORITY + # and gpg can show the GTK pinentry. Otherwise apps get logged out. + systemd.user.services.pass-secret-service = { + Unit.After = [ "graphical-session.target" ]; + Unit.PartOf = lib.mkForce [ "graphical-session.target" ]; + Install.WantedBy = lib.mkForce [ "graphical-session.target" ]; + }; + programs.firefox = { enable = true; @@ -170,6 +190,7 @@ in { enable = true; + spotifyLaunchFlags = "--disable-gpu --disable-software-rasterizer"; enabledExtensions = with spicePkgs.extensions; [ fullAppDisplay powerBar diff --git a/home-manager/i3/config b/home-manager/i3/config index 554d7bd..fc0afae 100644 --- a/home-manager/i3/config +++ b/home-manager/i3/config @@ -47,7 +47,7 @@ set $left h set $right l ##STARTUP -#exec_always --no-startup-id "feh --bg-scale ~/Wallpapers/val.png" +exec_always --no-startup-id "feh --bg-scale ~/Wallpapers/val.png" #exec_always --no-startup-id nitrogen --restore #exec_always --no-startup-id "picom --backend glx -fD 3 --vsync" exec_always --no-startup-id "~/.config/polybar/launch.sh" @@ -105,7 +105,7 @@ bindsym XF86AudioNext exec --no-startup-id playerctl next bindsym XF86AudioPrev exec --no-startup-id playerctl previous bindxym XF86AudioStop exec --no-startup-id playerctl stop -bindsym $mod+bracketleft exec --no-startup-id playerctl -p zen-twilight play-pause +bindsym $mod+bracketleft exec --no-startup-id playerctl -p firefox play-pause bindsym $mod+bracketright exec --no-startup-id playerctl -p spotify play-pause #Emoji picker diff --git a/home-manager/i3/default.nix b/home-manager/i3/default.nix index 5fba6e1..0272d79 100644 --- a/home-manager/i3/default.nix +++ b/home-manager/i3/default.nix @@ -37,5 +37,6 @@ nitrogen pamixer (pkgs.callPackage ./i3-commands.nix { }) + (pkgs.callPackage ./rofi-passmenu.nix { }) ]; } diff --git a/home-manager/i3/i3-commands.nix b/home-manager/i3/i3-commands.nix index 9b8705d..68cf7b6 100644 --- a/home-manager/i3/i3-commands.nix +++ b/home-manager/i3/i3-commands.nix @@ -1,16 +1,20 @@ { - stdenv + stdenv, + lib }: stdenv.mkDerivation { pname = "i3-commands"; version = "0.0.1"; - srcs = builtins.path { name = "scripts"; path = ./scripts/.; }; + srcs = lib.cleanSourceWith { + src = ./scripts; + filter = path: type: baseNameOf path != "rofi-passmenu"; + }; installPhase = '' -runHook preInstall -mkdir -p $out/bin -install -D -m 755 ./* $out/bin -runHook postInstall -''; + runHook preInstall + mkdir -p $out/bin + install -D -m 755 ./* $out/bin + runHook postInstall + ''; } diff --git a/home-manager/i3/rofi-passmenu.nix b/home-manager/i3/rofi-passmenu.nix new file mode 100644 index 0000000..153ffc3 --- /dev/null +++ b/home-manager/i3/rofi-passmenu.nix @@ -0,0 +1,72 @@ +{ + pkgs +}: + +pkgs.writeShellApplication { + name = "rofi-passmenu"; + + runtimeInputs = with pkgs; [ + pass + rofi + xclip + xdotool + gnugrep + gawk + coreutils + libnotify + ]; + + text = '' + #!/usr/bin/env bash + + store_dir="''${PASSWORD_STORE_DIR:-$HOME/.password-store}" + + get_passwords() { + echo "[+] Add New Password" + if [ -d "$store_dir" ]; then + find "$store_dir" -name "*.gpg" | sort | while IFS= read -r file; do + pass="''${file#"$store_dir"/}" + echo "''${pass%.gpg}" + done + fi + } + + selected=$(get_passwords | rofi -dmenu -i -p "pass") + [[ -z "$selected" ]] && exit 0 + + if [[ "$selected" == "[+] Add New Password" ]]; then + new_path=$(rofi -dmenu -p "Enter path/name for new password:") + [[ -z "$new_path" ]] && exit 0 + + choice=$(echo -e "Generate\nManual" | rofi -dmenu -p "Password method:") + if [[ "$choice" == "Generate" ]]; then + pass generate "$new_path" 20 + notify-send "Pass" "Generated password for $new_path" + elif [[ "$choice" == "Manual" ]]; then + new_pass=$(rofi -dmenu -p "Enter password:" -password) + [[ -n "$new_pass" ]] && echo "$new_pass" | pass insert -m "$new_path" + fi + exit 0 + fi + + action=$(echo -e "1. Type Password\n2. Type Username\n3. Copy Password\n4. Copy Username\n5. Show Password" | rofi -dmenu -i -p "$selected") + + case "$action" in + "1. Type Password") + pass show "$selected" | head -n 1 | tr -d '\n' | xdotool type --clearmodifiers -fi - + ;; + "2. Type Username") + pass show "$selected" | grep -i "^username:" | sed 's/^[^:]*:[[:space:]]*//' | tr -d '\n' | xdotool type --clearmodifiers -fi - + ;; + "3. Copy Password") + pass show -c "$selected" + ;; + "4. Copy Username") + pass show "$selected" | grep -i "^username:" | sed 's/^[^:]*:[[:space:]]*//' | xclip -selection clipboard + ;; + "5. Show Password") + pass show "$selected" | head -n 1 | rofi -dmenu -p "Password for $selected" + ;; + esac + ''; +} |
