me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 3.9 kB View raw
1{ inputs, ... }: 2 3{ 4 flake.modules.homeManager.apps = 5 { pkgs, ... }: 6 { 7 home.packages = with pkgs; [ 8 # Browsers 9 chromium 10 11 # Communication 12 inputs.macro.packages.${pkgs.system}.tauri-desktop 13 (element-desktop.override { 14 commandLineArgs = "--password-store=gnome-libsecret"; 15 }) 16 signal-desktop 17 discord 18 19 # Media 20 immich-cli 21 darktable 22 loupe 23 glycin-loaders 24 25 # Dev tools 26 git 27 jujutsu 28 htop 29 iotop 30 ncdu 31 atac 32 trippy 33 just 34 docker-compose 35 flyctl 36 rainfrog 37 sqlitebrowser 38 cachix 39 40 # System tools 41 nautilus 42 gnome-characters 43 sendme 44 desktop-file-utils 45 gnome-network-displays 46 fastfetch 47 mangohud 48 prismlauncher 49 libnotify 50 sox 51 52 # Claude Code 53 pi-coding-agent 54 claude-code 55 (pkgs.writeShellScriptBin "claude-notify" '' 56 PANE_ID="$ZELLIJ_PANE_ID" 57 SESSION="$ZELLIJ_SESSION_NAME" 58 ID_FILE="/tmp/claude-notify-''${PANE_ID}" 59 ( 60 { 61 read -r NOTIFY_ID 62 echo "$NOTIFY_ID" > "$ID_FILE" 63 while read -r line; do 64 if [ "$line" = "default" ]; then 65 WIN_ID=$(niri msg windows | ${pkgs.gnugrep}/bin/grep -B1 "$SESSION" | ${pkgs.gnugrep}/bin/grep -oP '(?<=Window ID )\d+') 66 if [ -n "$WIN_ID" ]; then 67 niri msg action focus-window --id "$WIN_ID" 68 fi 69 zjctl pane focus --pane "id:terminal:$PANE_ID" 70 fi 71 done 72 } < <(${pkgs.libnotify}/bin/notify-send "Claude Code" "Waiting for your approval" \ 73 --app-name=claude-code \ 74 --action=default=Open \ 75 --print-id \ 76 --wait) 77 rm -f "$ID_FILE" 78 ) & 79 '') 80 (pkgs.writeShellScriptBin "claude-notify-clear" '' 81 PANE_ID="$ZELLIJ_PANE_ID" 82 ID_FILE="/tmp/claude-notify-''${PANE_ID}" 83 if [ -f "$ID_FILE" ]; then 84 NOTIFY_ID=$(cat "$ID_FILE") 85 ${pkgs.dbus}/bin/dbus-send --session \ 86 --print-reply \ 87 --dest=org.freedesktop.Notifications \ 88 --type=method_call \ 89 /org/freedesktop/Notifications \ 90 org.freedesktop.Notifications.CloseNotification \ 91 "uint32:$NOTIFY_ID" >/dev/null 2>&1 92 rm -f "$ID_FILE" 93 fi 94 '') 95 ]; 96 97 # Pi coding agent config 98 home.file.".pi/agent/AGENTS.md".source = ./_config/pi/AGENTS.md; 99 home.file.".pi/agent/skills/caveman".source = ./_config/pi/skills/caveman; 100 home.file.".pi/agent/extensions/permission-pi".source = ./_config/pi/extensions/permission-pi; 101 102 # Claude Code config 103 home.file.".claude/settings.json".text = builtins.toJSON { 104 preferences = { 105 thinking = "high"; 106 }; 107 enabledPlugins = { 108 "caveman@caveman" = true; 109 }; 110 hooks = { 111 Notification = [ 112 { 113 matcher = "permission_prompt"; 114 hooks = [ 115 { 116 type = "command"; 117 command = "claude-notify"; 118 } 119 ]; 120 } 121 ]; 122 Stop = [ 123 { 124 hooks = [ 125 { 126 type = "command"; 127 command = "claude-notify-clear"; 128 } 129 ]; 130 } 131 ]; 132 }; 133 }; 134 135 programs.zen-browser.enable = true; 136 137 programs.obs-studio = { 138 enable = true; 139 plugins = with pkgs.obs-studio-plugins; [ 140 obs-backgroundremoval 141 ]; 142 }; 143 144 }; 145}