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 ui = { 60 pane_frames.hide_session_name = true; 61 }; 62 }; 63 }; 64 65 xdg.configFile."zellij/plugins/zrpc.wasm".source = "${zrpc-wasm pkgs}/zrpc.wasm"; 66 xdg.configFile."zellij/plugins/harpoon.wasm".source = "${harpoon-wasm pkgs}/harpoon.wasm"; 67 68 xdg.configFile."zellij/layouts/split.kdl".text = '' 69 layout { 70 tab { 71 pane size="50%" 72 pane split_direction="vertical" size="50%" { 73 pane 74 pane 75 } 76 } 77 } 78 ''; 79 80 programs.zoxide = { 81 enable = true; 82 enableFishIntegration = true; 83 }; 84 85 programs.fish = { 86 enable = true; 87 shellAliases = { 88 agenix = "agenix -i ~/.config/agenix/yubikey-identity.txt"; 89 }; 90 interactiveShellInit = '' 91 set fish_greeting 92 # Prefer forwarded agents inside SSH sessions. Otherwise use the 93 # local 1Password GUI agent when available. 94 if set -q SSH_CONNECTION; or set -q SSH_CLIENT 95 set forwarded_sock (tr '\0' '\n' < /proc/$PPID/environ 2>/dev/null | sed -n 's/^SSH_AUTH_SOCK=//p' | head -n1) 96 if test -n "$forwarded_sock"; and test -S "$forwarded_sock" 97 set -gx SSH_AUTH_SOCK "$forwarded_sock" 98 end 99 else if test -S ${config.home.homeDirectory}/.1password/agent.sock 100 set -gx SSH_AUTH_SOCK ${config.home.homeDirectory}/.1password/agent.sock 101 end 102 # Load 1Password CLI plugins, but keep AWS CLI using agenix-managed 103 # credentials via AWS_SHARED_CREDENTIALS_FILE rather than the 1Password plugin. 104 if test -f ~/.config/op/plugins.sh 105 source ~/.config/op/plugins.sh 106 functions -e aws 2>/dev/null || true 107 end 108 # Auto-launch zellij if not already inside a session 109 # Use systemd-run to escape niri's session scope so the server 110 # survives logout 111 if not set -q ZELLIJ 112 systemd-run --user --scope zellij 113 else 114 fastfetch --logo small 115 end 116 117 function y 118 set tmp (mktemp -t "yazi-cwd.XXXXXX") 119 yazi $argv --cwd-file="$tmp" 120 if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] 121 builtin cd -- "$cwd" 122 end 123 rm -f -- "$tmp" 124 end 125 ''; 126 functions = { 127 s3edit = '' 128 set file (basename $argv[1]) 129 set tmpfile /tmp/$file 130 aws s3 cp $argv[1] $tmpfile 131 and $EDITOR $tmpfile 132 and aws s3 cp $tmpfile $argv[1] 133 ''; 134 }; 135 }; 136 137 programs.starship = { 138 enable = true; 139 enableFishIntegration = true; 140 }; 141 142 xdg.configFile."alacritty/alacritty.toml".force = true; 143 144 programs.alacritty = { 145 enable = true; 146 settings = { 147 general.import = [ "~/.config/alacritty/themes/noctalia.toml" ]; 148 terminal.shell.program = "fish"; 149 window = { 150 decorations = "none"; 151 opacity = 0.9; 152 }; 153 font = { 154 normal = { 155 family = "BerkeleyMono Nerd Font"; 156 style = "Regular"; 157 }; 158 size = 12.0; 159 }; 160 }; 161 }; 162 }; 163}