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