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