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