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 = [ "udiskie -anv" ]; } 77 { command = [ "mako" ]; } 78 { command = [ "waybar" ]; } 79 { command = [ "/usr/bin/lxqt-policykit-agent" ]; } 80 { command = [ "wl-paste --watch cliphist store" ]; } 81 ]; 82 environment = { 83 DISPLAY = ":0"; 84 }; 85 }; 86 }; 87 88 nixpkgs.config.allowUnfree = true; 89 90 xdg.configFile."waybar/config.jsonc".source = ./waybar/config.jsonc; 91 programs.waybar = { 92 enable = true; 93 94 style = '' 95 96 * { 97 font-family: FantasqueSansMono Nerd Font; 98 font-size: 14px; 99 min-height: 0; 100 } 101 102 #waybar { 103 background: transparent; 104 color: @text; 105 margin: 4px 4px; 106 } 107 108 #workspaces { 109 border-radius: 1rem; 110 margin: 4px; 111 background-color: @surface0; 112 margin-left: 1rem; 113 } 114 115 #workspaces button { 116 color: @lavender; 117 border-radius: 1rem; 118 padding: 0.4rem; 119 } 120 121 #workspaces button.active { 122 color: @sky; 123 border-radius: 1rem; 124 } 125 126 #workspaces button:hover { 127 color: @sapphire; 128 border-radius: 1rem; 129 } 130 131 #custom-music, 132 #tray, 133 #backlight, 134 #clock, 135 #battery, 136 #pulseaudio, 137 #network, 138 #power-profiles-daemon, 139 #cpu, 140 #memory, 141 #temperature, 142 #custom-lock, 143 #custom-power { 144 background-color: @surface0; 145 padding: 0.5rem 1rem; 146 margin: 4px 0; 147 } 148 149 #clock { 150 color: @blue; 151 border-radius: 0px 1rem 1rem 0px; 152 margin-right: 1rem; 153 } 154 155 #battery { 156 color: @green; 157 } 158 159 #battery.charging { 160 color: @green; 161 } 162 163 #battery.warning:not(.charging) { 164 color: @red; 165 } 166 167 #backlight { 168 color: @yellow; 169 } 170 171 #backlight, #battery { 172 border-radius: 0; 173 } 174 175 #pulseaudio { 176 color: @maroon; 177 border-radius: 1rem 0px 0px 1rem; 178 margin-left: 1rem; 179 } 180 181 #custom-music { 182 color: @mauve; 183 border-radius: 1rem; 184 } 185 186 #custom-lock { 187 border-radius: 1rem 0px 0px 1rem; 188 color: @lavender; 189 } 190 191 #custom-power { 192 margin-right: 1rem; 193 border-radius: 0px 1rem 1rem 0px; 194 color: @red; 195 } 196 197 #tray { 198 margin-right: 1rem; 199 border-radius: 1rem; 200 } 201 ''; 202 }; 203 204 programs.ssh = { 205 enable = true; 206 extraConfig = '' 207 Host * 208 IdentityAgent ~/.1password/agent.sock 209 ''; 210 }; 211 212 # All your user-specific packages 213 home.packages = with pkgs; [ 214 helix 215 git 216 jujutsu 217 htop 218 zellij # terminal multiplexer 219 # --- ESSENTIAL HYPRLAND ECOSYSTEM TOOLS --- 220 alacritty 221 wofi # Application launcher (or pkgs.rofi-wayland) 222 waybar # Status bar (highly recommended) 223 mako # Notification daemon 224 swww # For setting wallpapers 225 cliphist # Clipboard history manager 226 slurp # For selecting a region for screenshots 227 grim # For taking screenshots 228 pavucontrol # GUI for PulseAudio/PipeWire volume control 229 fd 230 ripgrep 231 yazi 232 gh 233 signal-desktop 234 xwayland-satellite # for running x11 apps 235 nixfmt-rfc-style # nix formatter 236 nil # nix language server 237 atac # postman-like TUI 238 rsync # file sync utility 239 udiskie # for mounting external drives 240 darktable # photo editing 241 zoxide 242 chromium 243 claude-code 244 nautilus # file browser 245 xdg-desktop-portal-gnome # gnome gui stuff 246 sqlitebrowser 247 248 # --- FONTS ARE IMPORTANT --- 249 noto-fonts 250 noto-fonts-cjk-sans 251 noto-fonts-emoji 252 font-awesome # For icons in waybar, etc. 253 nerd-fonts.jetbrains-mono 254 # --- POLKIT AGENT (for 1Password GUI, etc.) --- 255 lxqt.lxqt-policykit # Lightweight polkit agent 256 ]; 257 258 services.udiskie = { 259 enable = true; 260 tray = "auto"; 261 automount = true; 262 }; 263 264 programs.zen-browser.enable = true; 265 # programs.swww.enable = true; 266 programs.zoxide = { 267 enable = true; 268 enableFishIntegration = true; 269 }; 270 271 # Program configurations 272 programs.git = { 273 enable = true; 274 userName = "seanaye"; 275 userEmail = "hello@seanaye.ca"; 276 extraConfig = { 277 init.defaultBranch = "main"; 278 }; 279 }; 280 programs.jujutsu = { 281 enable = true; 282 settings.user = { 283 email = "hello@seanaye.ca"; 284 name = "Sean Aye"; 285 }; 286 }; 287 288 programs.home-manager.enable = true; 289 290 programs.fish = { 291 enable = true; 292 interactiveShellInit = '' 293 set fish_greeting 294 ''; 295 }; 296 297 programs.starship = { 298 enable = true; 299 enableFishIntegration = true; 300 }; 301 302 catppuccin = { 303 enable = true; 304 flavor = "frappe"; 305 }; 306 307 programs.alacritty = { 308 enable = true; 309 settings = { 310 window = { 311 decorations = "none"; 312 }; 313 }; 314 315 }; 316 317 programs.helix = { 318 enable = true; 319 settings = { 320 editor = { 321 bufferline = "multiple"; 322 file-picker = { 323 hidden = false; 324 git-ignore = true; 325 }; 326 cursor-shape = { 327 insert = "bar"; 328 normal = "block"; 329 select = "underline"; 330 }; 331 line-number = "relative"; 332 cursorline = true; 333 auto-format = true; 334 end-of-line-diagnostics = "hint"; 335 soft-wrap = { 336 enable = true; 337 }; 338 lsp = { 339 display-inlay-hints = true; 340 display-messages = true; 341 display-progress-messages = true; 342 }; 343 inline-diagnostics = { 344 cursor-line = "hint"; 345 }; 346 }; 347 keys = { 348 normal = { 349 esc = [ 350 "keep_primary_selection" 351 "collapse_selection" 352 ]; 353 }; 354 355 }; 356 }; 357 languages = { 358 language = [ 359 { 360 name = "nix"; 361 auto-format = true; 362 formatter = { 363 command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; 364 }; 365 } 366 { 367 name = "rust"; 368 auto-format = true; 369 formatter = { 370 command = "${pkgs.rustfmt}/bin/rustfmt --edition 2024"; 371 }; 372 indent = { 373 tab-width = 4; 374 unit = "t"; 375 }; 376 } 377 ]; 378 }; 379 }; 380 381 # Session variables 382 home.sessionVariables = { 383 EDITOR = "hx"; 384 VISUAL = "hx"; 385 SUDO_EDITOR = "hx"; 386 NIXOS_OZONE_WL = "1"; 387 QT_QPA_PLATFORM = "wayland;xcb"; 388 QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 389 SDL_VIDEODRIVER = "wayland"; 390 XDG_CURRENT_DESKTOP = "Niri"; 391 XDG_SESSION_TYPE = "wayland"; 392 SSH_AUTH_SOCK = "~/.1password/agent.sock"; 393 }; 394 395 # Set the state version for Home Manager 396 home.stateVersion = "25.05"; 397}