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