me like nix
0

Configure Feed

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

1{ inputs, ... }: 2 3let 4 zjctl = pkgs: import ../packages/zjctl.nix { inherit pkgs; }; 5 zrpc-wasm = pkgs: import ../packages/zrpc-wasm.nix { inherit pkgs; }; 6 harpoon-wasm = pkgs: import ../packages/harpoon-wasm.nix { inherit pkgs; }; 7in 8{ 9 flake.modules.homeManager.shell = 10 { pkgs, config, ... }: 11 { 12 home.packages = with pkgs; [ 13 yazi 14 fd 15 ripgrep 16 rsync 17 zoxide 18 (zjctl pkgs) 19 ]; 20 21 programs.direnv.enable = true; 22 23 programs.atuin = { 24 enable = true; 25 enableFishIntegration = true; 26 daemon.enable = true; 27 settings = { 28 filter_mode_shell_up_key_binding = "session"; 29 }; 30 }; 31 32 programs.zellij = { 33 enable = true; 34 settings = { 35 keybinds = { 36 unbind = [ 37 "Ctrl q" 38 "Ctrl o" 39 ]; 40 normal = { 41 "bind \"Ctrl m\"" = { 42 SwitchToMode = "Session"; 43 }; 44 }; 45 "shared_except \"locked\"" = { 46 "bind \"Ctrl y\"" = { 47 "LaunchOrFocusPlugin \"file:~/.config/zellij/plugins/harpoon.wasm\"" = { 48 floating = true; 49 move_to_focused_tab = true; 50 }; 51 }; 52 }; 53 }; 54 load_plugins = { 55 "\"file:~/.config/zellij/plugins/zrpc.wasm\"" = { }; 56 }; 57 pane_frames = false; 58 show_startup_tips = false; 59 theme = "noctalia"; 60 theme_dir = "~/.config/zellij/themes"; 61 ui = { 62 pane_frames.hide_session_name = true; 63 }; 64 }; 65 }; 66 67 xdg.configFile."zellij/plugins/zrpc.wasm".source = "${zrpc-wasm pkgs}/zrpc.wasm"; 68 xdg.configFile."zellij/plugins/harpoon.wasm".source = "${harpoon-wasm pkgs}/harpoon.wasm"; 69 70 xdg.configFile."zellij/layouts/split.kdl".text = '' 71 layout { 72 tab { 73 pane size="50%" 74 pane split_direction="vertical" size="50%" { 75 pane 76 pane 77 } 78 } 79 } 80 ''; 81 82 programs.zoxide = { 83 enable = true; 84 enableFishIntegration = true; 85 }; 86 87 programs.fish = { 88 enable = true; 89 shellAliases = { 90 agenix = "agenix -i ~/.config/agenix/yubikey-identity.txt"; 91 }; 92 interactiveShellInit = '' 93 set fish_greeting 94 # Prefer forwarded agents inside SSH sessions. Otherwise use the 95 # local 1Password GUI agent when available. 96 if set -q SSH_CONNECTION; or set -q SSH_CLIENT 97 set forwarded_sock (tr '\0' '\n' < /proc/$PPID/environ 2>/dev/null | sed -n 's/^SSH_AUTH_SOCK=//p' | head -n1) 98 if test -n "$forwarded_sock"; and test -S "$forwarded_sock" 99 set -gx SSH_AUTH_SOCK "$forwarded_sock" 100 end 101 else if test -S ${config.home.homeDirectory}/.1password/agent.sock 102 set -gx SSH_AUTH_SOCK ${config.home.homeDirectory}/.1password/agent.sock 103 end 104 # Load 1Password CLI plugins, but keep AWS CLI using agenix-managed 105 # credentials via AWS_SHARED_CREDENTIALS_FILE rather than the 1Password plugin. 106 if test -f ~/.config/op/plugins.sh 107 source ~/.config/op/plugins.sh 108 functions -e aws 2>/dev/null || true 109 end 110 # Auto-launch zellij if not already inside a session 111 # Use systemd-run to escape niri's session scope so the server 112 # survives logout 113 if not set -q ZELLIJ 114 systemd-run --user --scope zellij 115 else 116 fastfetch --logo small 117 end 118 119 function y 120 set tmp (mktemp -t "yazi-cwd.XXXXXX") 121 yazi $argv --cwd-file="$tmp" 122 if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] 123 builtin cd -- "$cwd" 124 end 125 rm -f -- "$tmp" 126 end 127 ''; 128 functions = { 129 s3edit = '' 130 set file (basename $argv[1]) 131 set tmpfile /tmp/$file 132 aws s3 cp $argv[1] $tmpfile 133 and $EDITOR $tmpfile 134 and aws s3 cp $tmpfile $argv[1] 135 ''; 136 }; 137 }; 138 139 programs.starship = { 140 enable = true; 141 enableFishIntegration = true; 142 }; 143 144 xdg.configFile."alacritty/alacritty.toml".force = true; 145 146 programs.alacritty = { 147 enable = true; 148 settings = { 149 general.import = [ "~/.config/alacritty/themes/noctalia.toml" ]; 150 terminal.shell.program = "fish"; 151 window = { 152 decorations = "none"; 153 opacity = 0.9; 154 }; 155 font = { 156 normal = { 157 family = "BerkeleyMono Nerd Font"; 158 style = "Regular"; 159 }; 160 size = 12.0; 161 }; 162 }; 163 }; 164 }; 165}