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