me like nix
0

Configure Feed

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

1# This is the configuration for your user 'sean' 2{ pkgs, inputs, ... }: 3 4{ 5 # Import the home-manager modules you want to use 6 imports = [ 7 inputs.catppuccin.homeModules.catppuccin 8 inputs.niri.homeModules.niri 9 inputs.zen-browser.homeModules.beta 10 ]; 11 12 # Niri window manager settings, now controlled by the imported module 13 programs.niri = { 14 enable = true; 15 settings = { 16 layout = { 17 struts = { 18 top = 0; 19 bottom = 0; 20 }; 21 }; 22 gestures = { 23 hot-corners = { 24 }; 25 }; 26 binds = { 27 "Mod+d".action.spawn = [ 28 "wofi" 29 "--show" 30 "drun" 31 "--prompt" 32 "Search..." 33 ]; 34 "Mod+a".action.spawn = "alacritty"; 35 "Mod+h".action = { 36 focus-column-left = { }; 37 }; 38 "Mod+j".action = { 39 focus-workspace-down = { }; 40 }; 41 "Mod+k".action = { 42 focus-workspace-up = { }; 43 }; 44 "Mod+l".action = { 45 focus-column-right = { }; 46 }; 47 "Mod+p".action = { 48 show-hotkey-overlay = { }; 49 }; 50 "Mod+o".action = { 51 toggle-overview = { }; 52 }; 53 "Mod+q".action = { 54 close-window = { }; 55 }; 56 "Mod+s".action = { 57 screenshot = { 58 show-pointer = true; 59 }; 60 }; 61 "Mod+1".action = { 62 set-column-width = "100%"; 63 }; 64 "Mod+2".action = { 65 set-column-width = "50%"; 66 }; 67 }; 68 outputs = { 69 "DP-1" = { 70 scale = 2.0; 71 }; 72 }; 73 spawn-at-startup = [ 74 { command = [ "xwayland-satellite" ]; } 75 { command = [ "swww-daemon" ]; } 76 { command = [ "mako" ]; } 77 { command = [ "waybar" ]; } 78 { command = [ "wl-paste --watch cliphist store" ]; } 79 ]; 80 environment = { 81 DISPLAY = ":0"; 82 }; 83 }; 84 }; 85 86 nixpkgs.config.permittedInsecurePackages = [ 87 "libsoup-2.74.3" 88 ]; 89 90 xdg.configFile."waybar/config.jsonc".source = ./waybar/config.jsonc; 91 programs.waybar = { 92 enable = true; 93 94 style = builtins.readFile ./waybar/style.css; 95 }; 96 97 programs.ssh = { 98 enable = true; 99 extraConfig = '' 100 Host * 101 IdentityAgent ~/.1password/agent.sock 102 ''; 103 }; 104 105 # All your user-specific packages 106 home.packages = with pkgs; [ 107 helix 108 git 109 jujutsu # jj-cli 110 htop 111 zellij # terminal multiplexer 112 alacritty 113 wofi # Application launcher (or pkgs.rofi-wayland) 114 waybar # Status bar (highly recommended) 115 mako # Notification daemon 116 swww # For setting wallpapers 117 cliphist # Clipboard history manager 118 pavucontrol # GUI for PulseAudio/PipeWire volume control 119 fd 120 ripgrep 121 yazi # tui file browser 122 gh # github cli 123 signal-desktop 124 xwayland-satellite # for running x11 apps 125 nixfmt-rfc-style # nix formatter 126 nil # nix language server 127 atac # postman-like TUI 128 rsync # file sync utility 129 udiskie # for mounting external drives 130 darktable # photo editing 131 zoxide 132 chromium 133 claude-code 134 nautilus # file browser 135 sqlitebrowser 136 gnome-characters # symbol picker 137 sendme # file transfer 138 desktop-file-utils # for managing .desktop files 139 flyctl # fly.io cli 140 awscli2 # aws control 141 vscode-json-languageserver 142 143 # --- FONTS ARE IMPORTANT --- 144 noto-fonts 145 noto-fonts-cjk-sans 146 noto-fonts-emoji 147 font-awesome # For icons in waybar, etc. 148 nerd-fonts.jetbrains-mono 149 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 150 lxqt.lxqt-policykit # Lightweight polkit agent 151 ]; 152 153 services.udiskie = { 154 enable = true; 155 tray = "auto"; 156 automount = true; 157 }; 158 159 programs.direnv.enable = true; 160 161 programs.zellij = { 162 enable = true; 163 settings = { 164 keybinds = { 165 unbind = [ "Ctrl q" ]; 166 }; 167 }; 168 }; 169 170 programs.zen-browser.enable = true; 171 # programs.swww.enable = true; 172 programs.zoxide = { 173 enable = true; 174 enableFishIntegration = true; 175 }; 176 177 programs.obs-studio = { 178 enable = true; 179 plugins = with pkgs.obs-studio-plugins; [ 180 obs-backgroundremoval 181 ]; 182 }; 183 184 # Program configurations 185 programs.git = { 186 enable = true; 187 userName = "seanaye"; 188 userEmail = "hello@seanaye.ca"; 189 extraConfig = { 190 init.defaultBranch = "main"; 191 }; 192 }; 193 programs.jujutsu = { 194 enable = true; 195 settings.user = { 196 email = "hello@seanaye.ca"; 197 name = "Sean Aye"; 198 }; 199 }; 200 201 programs.home-manager.enable = true; 202 203 programs.fish = { 204 enable = true; 205 interactiveShellInit = '' 206 set fish_greeting 207 # Load 1Password CLI plugins 208 if test -f ~/.config/op/plugins.sh 209 source ~/.config/op/plugins.sh 210 end 211 ''; 212 functions = { 213 s3edit = '' 214 set file (basename $argv[1]) 215 set tmpfile /tmp/$file 216 aws s3 cp $argv[1] $tmpfile 217 and $EDITOR $tmpfile 218 and aws s3 cp $tmpfile $argv[1] 219 ''; 220 }; 221 }; 222 223 programs.starship = { 224 enable = true; 225 enableFishIntegration = true; 226 }; 227 228 catppuccin = { 229 enable = true; 230 flavor = "frappe"; 231 }; 232 233 programs.alacritty = { 234 enable = true; 235 settings = { 236 window = { 237 decorations = "none"; 238 }; 239 }; 240 241 }; 242 243 programs.helix = { 244 enable = true; 245 settings = { 246 editor = { 247 bufferline = "multiple"; 248 file-picker = { 249 hidden = false; 250 git-ignore = true; 251 }; 252 cursor-shape = { 253 insert = "bar"; 254 normal = "block"; 255 select = "underline"; 256 }; 257 line-number = "relative"; 258 cursorline = true; 259 auto-format = true; 260 end-of-line-diagnostics = "hint"; 261 soft-wrap = { 262 enable = true; 263 }; 264 lsp = { 265 display-inlay-hints = true; 266 display-messages = true; 267 display-progress-messages = true; 268 }; 269 inline-diagnostics = { 270 cursor-line = "hint"; 271 }; 272 }; 273 keys = { 274 normal = { 275 esc = [ 276 "keep_primary_selection" 277 "collapse_selection" 278 ]; 279 }; 280 281 }; 282 }; 283 languages = { 284 language = [ 285 { 286 name = "nix"; 287 auto-format = true; 288 formatter = { 289 command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 290 }; 291 } 292 { 293 name = "rust"; 294 auto-format = true; 295 formatter = { 296 command = "rustfmt"; 297 args = [ 298 "--edition" 299 "2024" 300 ]; 301 }; 302 indent = { 303 tab-width = 4; 304 unit = "t"; 305 }; 306 } 307 { 308 name = "astro"; 309 auto-format = true; 310 formatter = { 311 command = "npx"; 312 args = [ 313 "prettier" 314 "--plugin" 315 "prettier-plugin-astro" 316 "--parser" 317 "astro" 318 ]; 319 }; 320 } 321 { 322 name = "json"; 323 auto-format = true; 324 } 325 ]; 326 }; 327 }; 328 329 # Session variables 330 home.sessionVariables = { 331 EDITOR = "hx"; 332 VISUAL = "hx"; 333 SUDO_EDITOR = "hx"; 334 # NIXOS_OZONE_WL = "1"; 335 # QT_QPA_PLATFORM = "wayland;xcb"; 336 # QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 337 # SDL_VIDEODRIVER = "wayland"; 338 # XDG_CURRENT_DESKTOP = "niri"; 339 # XDG_SESSION_TYPE = "wayland"; 340 SSH_AUTH_SOCK = "~/.1password/agent.sock"; 341 }; 342 343 # Set the state version for Home Manager 344 home.stateVersion = "25.05"; 345}