me like nix
0

Configure Feed

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

add opencode and fj cli

author
Sean Aye
date (Mar 22, 2026, 8:03 PM -0400) commit 46cc1441 parent af849fce change-id kpntvsur
+193 -15
+115 -4
flake.lock
··· 78 78 }, 79 79 "crane": { 80 80 "locked": { 81 + "lastModified": 1773857772, 82 + "narHash": "sha256-5xsK26KRHf0WytBtsBnQYC/lTWDhQuT57HJ7SzuqZcM=", 83 + "owner": "ipetkov", 84 + "repo": "crane", 85 + "rev": "b556d7bbae5ff86e378451511873dfd07e4504cd", 86 + "type": "github" 87 + }, 88 + "original": { 89 + "owner": "ipetkov", 90 + "repo": "crane", 91 + "type": "github" 92 + } 93 + }, 94 + "crane_2": { 95 + "locked": { 81 96 "lastModified": 1771438068, 82 97 "narHash": "sha256-nGBbXvEZVe/egCPVPFcu89RFtd8Rf6J+4RFoVCFec0A=", 83 98 "owner": "ipetkov", ··· 162 177 "fenix_3": { 163 178 "inputs": { 164 179 "nixpkgs": [ 165 - "trmnl-rs", 180 + "mako-tui", 166 181 "nixpkgs" 167 182 ], 168 183 "rust-analyzer-src": "rust-analyzer-src_3" 169 184 }, 170 185 "locked": { 186 + "lastModified": 1773818109, 187 + "narHash": "sha256-Wsk92HrZODmCgBb+v7XfTMUAIEhqU+Obwj+09IKRTpU=", 188 + "owner": "nix-community", 189 + "repo": "fenix", 190 + "rev": "b8b443c5a1bd8dd99df899b4ac786a7f410193e5", 191 + "type": "github" 192 + }, 193 + "original": { 194 + "owner": "nix-community", 195 + "repo": "fenix", 196 + "type": "github" 197 + } 198 + }, 199 + "fenix_4": { 200 + "inputs": { 201 + "nixpkgs": [ 202 + "trmnl-rs", 203 + "nixpkgs" 204 + ], 205 + "rust-analyzer-src": "rust-analyzer-src_4" 206 + }, 207 + "locked": { 171 208 "lastModified": 1757400094, 172 209 "narHash": "sha256-5Rcs6juMoMTaMJSR1glravl4QB9yLAFBD8s7KLi4kdQ=", 173 210 "owner": "nix-community", ··· 232 269 "flake-utils_3": { 233 270 "inputs": { 234 271 "systems": "systems_4" 272 + }, 273 + "locked": { 274 + "lastModified": 1731533236, 275 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 276 + "owner": "numtide", 277 + "repo": "flake-utils", 278 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 279 + "type": "github" 280 + }, 281 + "original": { 282 + "owner": "numtide", 283 + "repo": "flake-utils", 284 + "type": "github" 285 + } 286 + }, 287 + "flake-utils_4": { 288 + "inputs": { 289 + "systems": "systems_5" 235 290 }, 236 291 "locked": { 237 292 "lastModified": 1731533236, ··· 355 410 "type": "github" 356 411 } 357 412 }, 413 + "mako-tui": { 414 + "inputs": { 415 + "crane": "crane", 416 + "fenix": "fenix_3", 417 + "flake-utils": "flake-utils_3", 418 + "nixpkgs": [ 419 + "nixpkgs" 420 + ] 421 + }, 422 + "locked": { 423 + "lastModified": 1773925569, 424 + "narHash": "sha256-YxBuMvOJcntRT7BSfDLK3tNr2NFhgOOm25aaUHf9ARY=", 425 + "ref": "refs/heads/main", 426 + "rev": "cc512df992b8acb92010c2257e6a65d9c3cb4ace", 427 + "revCount": 4, 428 + "type": "git", 429 + "url": "https://codeberg.org/seanaye/mako-tui" 430 + }, 431 + "original": { 432 + "type": "git", 433 + "url": "https://codeberg.org/seanaye/mako-tui" 434 + } 435 + }, 358 436 "naersk": { 359 437 "inputs": { 360 438 "fenix": "fenix", ··· 688 766 "fsel": "fsel", 689 767 "home-manager": "home-manager_2", 690 768 "kaleidux": "kaleidux", 769 + "mako-tui": "mako-tui", 691 770 "niri": "niri", 692 771 "nixarr": "nixarr", 693 772 "nixos-hardware": "nixos-hardware", ··· 732 811 } 733 812 }, 734 813 "rust-analyzer-src_3": { 814 + "flake": false, 815 + "locked": { 816 + "lastModified": 1773775226, 817 + "narHash": "sha256-413aE+fhubk1GA2v4IlRrpdZZzW/b89wJGuDfZCVtEs=", 818 + "owner": "rust-lang", 819 + "repo": "rust-analyzer", 820 + "rev": "4eac290b58a70961e78f2e0c04f61a08b995b2cb", 821 + "type": "github" 822 + }, 823 + "original": { 824 + "owner": "rust-lang", 825 + "ref": "nightly", 826 + "repo": "rust-analyzer", 827 + "type": "github" 828 + } 829 + }, 830 + "rust-analyzer-src_4": { 735 831 "flake": false, 736 832 "locked": { 737 833 "lastModified": 1757362324, ··· 808 904 "type": "github" 809 905 } 810 906 }, 907 + "systems_5": { 908 + "locked": { 909 + "lastModified": 1681028828, 910 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 911 + "owner": "nix-systems", 912 + "repo": "default", 913 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 914 + "type": "github" 915 + }, 916 + "original": { 917 + "owner": "nix-systems", 918 + "repo": "default", 919 + "type": "github" 920 + } 921 + }, 811 922 "trmnl-rs": { 812 923 "inputs": { 813 - "crane": "crane", 814 - "fenix": "fenix_3", 815 - "flake-utils": "flake-utils_3", 924 + "crane": "crane_2", 925 + "fenix": "fenix_4", 926 + "flake-utils": "flake-utils_4", 816 927 "nixpkgs": [ 817 928 "nixpkgs" 818 929 ],
+4
flake.nix
··· 43 43 url = "github:seanaye/berkeley-mono"; 44 44 inputs.nixpkgs.follows = "nixpkgs"; 45 45 }; 46 + mako-tui = { 47 + url = "git+https://codeberg.org/seanaye/mako-tui"; 48 + inputs.nixpkgs.follows = "nixpkgs"; 49 + }; 46 50 nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main"; 47 51 }; 48 52
+74 -11
hosts/common/home.nix
··· 31 31 zellij # terminal multiplexer 32 32 alacritty 33 33 inputs.fsel.packages.${pkgs.system}.default # App launcher / fuzzy finder 34 + inputs.mako-tui.packages.${pkgs.system}.default # Notification TUI 34 35 bemoji # emoji picker 35 36 networkmanager_dmenu # network picker for fuzzel 36 37 quickshell # Status bar (QML-based) ··· 43 44 }) 44 45 fd 45 46 ripgrep 47 + opencode 46 48 yazi # tui file browser 47 49 gh # github cli 50 + forgejo-cli 48 51 gh-dash # github dashboard TUI 49 52 diffnav # git diff viewer 50 53 signal-desktop ··· 64 67 (pkgs.writeShellScriptBin "claude-notify" '' 65 68 PANE_ID="$ZELLIJ_PANE_ID" 66 69 SESSION="$ZELLIJ_SESSION_NAME" 70 + ID_FILE="/tmp/claude-notify-''${PANE_ID}" 67 71 ( 68 - ACTION=$(${pkgs.libnotify}/bin/notify-send "Claude Code" "Waiting for your approval" \ 72 + { 73 + read -r NOTIFY_ID 74 + echo "$NOTIFY_ID" > "$ID_FILE" 75 + while read -r line; do 76 + if [ "$line" = "default" ]; then 77 + WIN_ID=$(niri msg windows | ${pkgs.gnugrep}/bin/grep -B1 "$SESSION" | ${pkgs.gnugrep}/bin/grep -oP '(?<=Window ID )\d+') 78 + if [ -n "$WIN_ID" ]; then 79 + niri msg action focus-window --id "$WIN_ID" 80 + fi 81 + zjctl pane focus --pane "id:terminal:$PANE_ID" 82 + fi 83 + done 84 + } < <(${pkgs.libnotify}/bin/notify-send "Claude Code" "Waiting for your approval" \ 69 85 --app-name=claude-code \ 70 86 --action=default=Open \ 87 + --print-id \ 71 88 --wait) 72 - if [ "$ACTION" = "default" ]; then 73 - WIN_ID=$(niri msg windows | ${pkgs.gnugrep}/bin/grep -B1 "$SESSION" | ${pkgs.gnugrep}/bin/grep -oP '(?<=Window ID )\d+') 74 - if [ -n "$WIN_ID" ]; then 75 - niri msg action focus-window --id "$WIN_ID" 76 - fi 77 - zjctl pane focus --pane "id:terminal:$PANE_ID" 78 - fi 89 + rm -f "$ID_FILE" 79 90 ) & 80 91 '') 92 + (pkgs.writeShellScriptBin "claude-notify-clear" '' 93 + PANE_ID="$ZELLIJ_PANE_ID" 94 + ID_FILE="/tmp/claude-notify-''${PANE_ID}" 95 + if [ -f "$ID_FILE" ]; then 96 + NOTIFY_ID=$(cat "$ID_FILE") 97 + ${pkgs.dbus}/bin/dbus-send --session \ 98 + --print-reply \ 99 + --dest=org.freedesktop.Notifications \ 100 + --type=method_call \ 101 + /org/freedesktop/Notifications \ 102 + org.freedesktop.Notifications.CloseNotification \ 103 + "uint32:$NOTIFY_ID" >/dev/null 2>&1 104 + rm -f "$ID_FILE" 105 + fi 106 + '') 81 107 nautilus # file browser 82 108 sqlitebrowser 83 109 gnome-characters # symbol picker ··· 122 148 clip-to-geometry = true; 123 149 draw-border-with-background = false; 124 150 } 151 + { 152 + matches = [ { app-id = "^fsel$"; } ]; 153 + open-floating = true; 154 + default-column-width.fixed = 800; 155 + default-window-height.fixed = 500; 156 + } 157 + { 158 + matches = [ { app-id = "^mako-tui$"; } ]; 159 + open-floating = true; 160 + default-column-width.fixed = 800; 161 + default-window-height.fixed = 500; 162 + } 125 163 ]; 126 164 debug = { 127 165 honor-xdg-activation-with-invalid-serial = { }; ··· 148 186 binds = { 149 187 "Mod+d".action.spawn = [ 150 188 "alacritty" 189 + "--class" 190 + "fsel" 151 191 "-e" 152 192 "fsel" 153 193 "--detach" 154 194 ]; 155 195 "Mod+c".action.spawn = [ 156 196 "alacritty" 197 + "--class" 198 + "fsel" 157 199 "-e" 158 200 "fsel" 159 201 "--cclip" 160 202 ]; 161 203 "Mod+e".action.spawn = "bemoji"; 162 - "Mod+n".action.spawn = "networkmanager_dmenu"; 204 + "Mod+n".action.spawn = [ 205 + "alacritty" 206 + "--class" 207 + "mako-tui" 208 + "-e" 209 + "mako-tui" 210 + ]; 163 211 "Mod+a".action.spawn = "alacritty"; 164 212 "Mod+h".action = { 165 213 focus-column-left = { }; ··· 550 598 }; 551 599 }; 552 600 load_plugins = { 553 - "\"file:~/.config/zellij/plugins/zrpc.wasm\"" = {}; 601 + "\"file:~/.config/zellij/plugins/zrpc.wasm\"" = { }; 554 602 }; 555 603 pane_frames = false; 556 604 show_startup_tips = false; ··· 571 619 Notification = [ 572 620 { 573 621 matcher = "permission_prompt"; 574 - hooks = [{ type = "command"; command = "claude-notify"; }]; 622 + hooks = [ 623 + { 624 + type = "command"; 625 + command = "claude-notify"; 626 + } 627 + ]; 628 + } 629 + ]; 630 + Stop = [ 631 + { 632 + hooks = [ 633 + { 634 + type = "command"; 635 + command = "claude-notify-clear"; 636 + } 637 + ]; 575 638 } 576 639 ]; 577 640 };