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