me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

remove hyprland for niri and split home manager

+207 -232
-98
configuration.nix
··· 44 44 }; 45 45 46 46 47 - programs.hyprland = { 48 - enable = true; 49 - xwayland.enable = true; 50 - }; 51 - 52 - 53 47 services.greetd = { 54 48 enable = true; 55 - settings = { 56 - default_session = { 57 - command = "${pkgs.hyprland}/bin/Hyprland"; 58 - user = "sean"; # Your username 59 - }; 60 - }; 61 49 # Example with regreet (graphical) 62 50 package = pkgs.greetd.regreet; 63 51 # Or tuigreet (console) ··· 102 90 extraGroups = [ "networkmanager" "wheel" ]; 103 91 shell = pkgs.fish; 104 92 }; 105 - home-manager.backupFileExtension = "backup"; 106 - home-manager.users.sean = { pkgs, inputs, ...}: { 107 - imports = [ 108 - inputs.catppuccin.homeManagerModules.catppuccin 109 - ]; 110 - 111 - programs.waybar.catppuccin = { 112 - enable = true; 113 - flavor = "mocha"; 114 - }; 115 - 116 - home.packages = [ 117 - pkgs.atool 118 - pkgs.httpie 119 - pkgs.helix 120 - pkgs.jujutsu 121 - pkgs.htop 122 - pkgs.zellij # terminal multiplexer 123 - # --- ESSENTIAL HYPRLAND ECOSYSTEM TOOLS --- 124 - pkgs.alacritty # Terminal emulator (popular choice, or pkgs.alacritty, pkgs.foot) 125 - pkgs.wofi # Application launcher (or pkgs.rofi-wayland) 126 - pkgs.waybar # Status bar (highly recommended) 127 - pkgs.mako # Notification daemon 128 - pkgs.swaybg # For setting wallpapers (or pkgs.hyprpaper, pkgs.swww) 129 - pkgs.cliphist # Clipboard history manager 130 - pkgs.slurp # For selecting a region for screenshots 131 - pkgs.grim # For taking screenshots 132 - pkgs.pavucontrol # GUI for PulseAudio/PipeWire volume control 133 - pkgs.fd 134 - pkgs.ripgrep 135 - pkgs.yazi 136 - 137 - # --- FONTS ARE IMPORTANT --- 138 - pkgs.noto-fonts 139 - pkgs.noto-fonts-cjk-sans 140 - pkgs.noto-fonts-emoji 141 - pkgs.font-awesome # For icons in waybar, etc. 142 - pkgs.nerd-fonts.jetbrains-mono 143 - 144 - # --- POLKIT AGENT (for 1Password GUI, etc.) --- 145 - pkgs.lxqt.lxqt-policykit # Lightweight polkit agent 146 - ]; 147 - programs.jujutsu = { 148 - enable = true; 149 - settings = { 150 - user = { 151 - email = "hello@seanaye.ca"; 152 - name = "Sean Aye"; 153 - }; 154 - }; 155 - }; 156 - home.sessionVariables = { 157 - EDITOR = "hx"; 158 - VISUAL = "hx"; 159 - SUDO_EDITOR = "hx"; 160 - # --- WAYLAND SPECIFIC ENV VARS --- 161 - NIXOS_OZONE_WL = "1"; # May help some electron apps use Wayland 162 - QT_QPA_PLATFORM = "wayland;xcb"; # Prefer Wayland for Qt, fallback to xcb (XWayland) 163 - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; # If you want Hyprland to draw all decorations 164 - SDL_VIDEODRIVER = "wayland"; 165 - XDG_CURRENT_DESKTOP = "Hyprland"; 166 - XDG_SESSION_TYPE = "wayland"; 167 - _JAVA_AWT_WM_NONREPARENTING = "1"; 168 - }; 169 - programs.home-manager.enable = true; 170 - programs.helix.enable = true; 171 - programs.fish = { 172 - enable = true; 173 - interactiveShellInit = '' 174 - set fish_greeting 175 - ''; 176 - }; 177 - programs.starship = { 178 - enable = true; 179 - enableFishIntegration = true; 180 - }; 181 - 182 - 183 - # --- HYPRLAND CONFIGURATION FILES --- 184 - # This tells home-manager to place your hyprland.conf in ~/.config/hypr/ 185 - # You will need to create the actual file (see step 2 below) 186 - xdg.configFile."hypr/hyprland.conf".source = ./hyprland.conf; # Points to a file named hyprland.conf in the same directory as your configuration.nix 187 - 188 - home.stateVersion = "25.05"; 189 - }; 190 - 191 93 192 94 # Install firefox. 193 95 programs.firefox.enable = true;
+108
flake.lock
··· 39 39 "type": "github" 40 40 } 41 41 }, 42 + "niri-flake": { 43 + "inputs": { 44 + "niri-stable": "niri-stable", 45 + "niri-unstable": "niri-unstable", 46 + "nixpkgs": [ 47 + "nixpkgs" 48 + ], 49 + "nixpkgs-stable": "nixpkgs-stable", 50 + "xwayland-satellite-stable": "xwayland-satellite-stable", 51 + "xwayland-satellite-unstable": "xwayland-satellite-unstable" 52 + }, 53 + "locked": { 54 + "lastModified": 1749567948, 55 + "narHash": "sha256-v+94gQWNxlr/iNmI81i0iSHK8ZP10jeWtf4FqdJaS68=", 56 + "owner": "sodiboo", 57 + "repo": "niri-flake", 58 + "rev": "c05ef2200a89709ddf87d3bf939b21837e3383cb", 59 + "type": "github" 60 + }, 61 + "original": { 62 + "owner": "sodiboo", 63 + "repo": "niri-flake", 64 + "type": "github" 65 + } 66 + }, 67 + "niri-stable": { 68 + "flake": false, 69 + "locked": { 70 + "lastModified": 1740117926, 71 + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", 72 + "owner": "YaLTeR", 73 + "repo": "niri", 74 + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", 75 + "type": "github" 76 + }, 77 + "original": { 78 + "owner": "YaLTeR", 79 + "ref": "v25.02", 80 + "repo": "niri", 81 + "type": "github" 82 + } 83 + }, 84 + "niri-unstable": { 85 + "flake": false, 86 + "locked": { 87 + "lastModified": 1749564212, 88 + "narHash": "sha256-bfA6nBTtCR3WUapgKXd6WqHQFp9vmzAaUyv6qjBmvYE=", 89 + "owner": "YaLTeR", 90 + "repo": "niri", 91 + "rev": "0407ac5e4ce67255388d7ed8d85ffdbe14ec99ab", 92 + "type": "github" 93 + }, 94 + "original": { 95 + "owner": "YaLTeR", 96 + "repo": "niri", 97 + "type": "github" 98 + } 99 + }, 42 100 "nixarr": { 43 101 "inputs": { 44 102 "nixpkgs": "nixpkgs_2", ··· 75 133 "type": "github" 76 134 } 77 135 }, 136 + "nixpkgs-stable": { 137 + "locked": { 138 + "lastModified": 1749494155, 139 + "narHash": "sha256-FG4DEYBpROupu758beabUk9lhrblSf5hnv84v1TLqMc=", 140 + "owner": "NixOS", 141 + "repo": "nixpkgs", 142 + "rev": "88331c17ba434359491e8d5889cce872464052c2", 143 + "type": "github" 144 + }, 145 + "original": { 146 + "owner": "NixOS", 147 + "ref": "nixos-25.05", 148 + "repo": "nixpkgs", 149 + "type": "github" 150 + } 151 + }, 78 152 "nixpkgs_2": { 79 153 "locked": { 80 154 "lastModified": 1748662220, ··· 111 185 "inputs": { 112 186 "catppuccin": "catppuccin", 113 187 "home-manager": "home-manager", 188 + "niri-flake": "niri-flake", 114 189 "nixarr": "nixarr", 115 190 "nixpkgs": "nixpkgs_3" 116 191 } ··· 148 223 "original": { 149 224 "owner": "rasmus-kirk", 150 225 "repo": "website-builder", 226 + "type": "github" 227 + } 228 + }, 229 + "xwayland-satellite-stable": { 230 + "flake": false, 231 + "locked": { 232 + "lastModified": 1739246919, 233 + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", 234 + "owner": "Supreeeme", 235 + "repo": "xwayland-satellite", 236 + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", 237 + "type": "github" 238 + }, 239 + "original": { 240 + "owner": "Supreeeme", 241 + "ref": "v0.5.1", 242 + "repo": "xwayland-satellite", 243 + "type": "github" 244 + } 245 + }, 246 + "xwayland-satellite-unstable": { 247 + "flake": false, 248 + "locked": { 249 + "lastModified": 1749315541, 250 + "narHash": "sha256-bEik1BfVOFnWvtOrcOHluos/edJ8f+G2y1QySbt/0Ak=", 251 + "owner": "Supreeeme", 252 + "repo": "xwayland-satellite", 253 + "rev": "da2ecb5be816de35e2efe23a408a1c49fe8b11ba", 254 + "type": "github" 255 + }, 256 + "original": { 257 + "owner": "Supreeeme", 258 + "repo": "xwayland-satellite", 151 259 "type": "github" 152 260 } 153 261 }
+7 -1
flake.nix
··· 13 13 14 14 catppuccin.url = "github:catppuccin/nix"; 15 15 16 + niri-flake = { 17 + url = "github:sodiboo/niri-flake"; 18 + inputs.nixpkgs.follows = "nixpkgs"; 19 + }; 20 + 16 21 # media server things 17 22 nixarr.url = "github:rasmus-kirk/nixarr"; 18 23 }; 19 24 20 - outputs = { self, nixpkgs, home-manager, catppuccin, nixarr, ... }@inputs: { 25 + outputs = { self, nixpkgs, home-manager, catppuccin, niri-flake, nixarr, ... }@inputs: { 21 26 nixosConfigurations = { 22 27 # Replace "nixos" with your actual desired hostname if it's different 23 28 # This "nixos" must match the `networking.hostName` in your configuration.nix ··· 34 39 # Home Manager module 35 40 home-manager.nixosModules.home-manager { 36 41 home-manager.extraSpecialArgs = { inherit inputs; }; 42 + home-manager.users.sean = import ./home.nix; 37 43 } 38 44 ]; 39 45 };
+92
home.nix
··· 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.niri-flake.homeModules.niri 8 + inputs.catppuccin.homeModules.catppuccin 9 + ]; 10 + 11 + # Niri window manager settings, now controlled by the imported module 12 + programs.niri.enable = true; 13 + 14 + # Catppuccin theme for Waybar 15 + catppuccin.waybar = { 16 + enable = true; 17 + flavor = "mocha"; 18 + }; 19 + 20 + # All your user-specific packages 21 + home.packages = with pkgs; [ 22 + atool 23 + httpie 24 + helix 25 + jujutsu 26 + htop 27 + zellij # terminal multiplexer 28 + # --- ESSENTIAL HYPRLAND ECOSYSTEM TOOLS --- 29 + alacritty # Terminal emulator (popular choice, or pkgs.alacritty, pkgs.foot) 30 + wofi # Application launcher (or pkgs.rofi-wayland) 31 + waybar # Status bar (highly recommended) 32 + mako # Notification daemon 33 + swaybg # For setting wallpapers (or pkgs.hyprpaper, pkgs.swww) 34 + cliphist # Clipboard history manager 35 + slurp # For selecting a region for screenshots 36 + grim # For taking screenshots 37 + pavucontrol # GUI for PulseAudio/PipeWire volume control 38 + fd 39 + ripgrep 40 + yazi 41 + 42 + # --- FONTS ARE IMPORTANT --- 43 + noto-fonts 44 + noto-fonts-cjk-sans 45 + noto-fonts-emoji 46 + font-awesome # For icons in waybar, etc. 47 + nerd-fonts.jetbrains-mono 48 + # --- POLKIT AGENT (for 1Password GUI, etc.) --- 49 + lxqt.lxqt-policykit # Lightweight polkit agent 50 + ]; 51 + 52 + # Program configurations 53 + programs.jujutsu = { 54 + enable = true; 55 + settings.user = { 56 + email = "hello@seanaye.ca"; 57 + name = "Sean Aye"; 58 + }; 59 + }; 60 + 61 + programs.home-manager.enable = true; 62 + programs.helix.enable = true; 63 + 64 + programs.fish = { 65 + enable = true; 66 + interactiveShellInit = '' 67 + set fish_greeting 68 + ''; 69 + }; 70 + 71 + programs.starship = { 72 + enable = true; 73 + enableFishIntegration = true; 74 + }; 75 + 76 + # Session variables 77 + home.sessionVariables = { 78 + EDITOR = "hx"; 79 + VISUAL = "hx"; 80 + SUDO_EDITOR = "hx"; 81 + NIXOS_OZONE_WL = "1"; 82 + QT_QPA_PLATFORM = "wayland;xcb"; 83 + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; 84 + SDL_VIDEODRIVER = "wayland"; 85 + XDG_CURRENT_DESKTOP = "Niri"; 86 + XDG_SESSION_TYPE = "wayland"; 87 + _JAVA_AWT_WM_NONREPARENTING = "1"; 88 + }; 89 + 90 + # Set the state version for Home Manager 91 + home.stateVersion = "25.05"; 92 + }
-133
hyprland.conf
··· 1 - # Sample hyprland.conf (save as e.g. /etc/nixos/hyprland.conf) 2 - # See https://wiki.hyprland.org/Configuring/Variables/ for more 3 - 4 - # Monitor setup (adjust to your needs) 5 - monitor=,preferred,auto,2 # preferred monitor, auto resolution, auto position, scale 1 6 - 7 - # Autostart some essential programs 8 - exec-once = waybar # Starts Waybar (if you configure it later) 9 - 10 - #exec-once = swaybg -m fill -i /path/to/your/wallpaper.png 11 - # You'll need to find/download a wallpaper 12 - # Or use `pkgs.swaybg` and specify a package path if you want 13 - 14 - exec-once = lxqt-policykit-agent # Starts the polkit agent for authentication 15 - exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # For portals 16 - exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # For portals 17 - # exec-once = mako # Starts Mako notification daemon (if you configure it later) 18 - # exec-once = cliphist store # Start clipboard history 19 - 20 - # Environment variables that Hyprland itself should set 21 - env = XCURSOR_SIZE,24 22 - # env = GDK_BACKEND,wayland,x11 # Already in home.sessionVariables generally 23 - # env = QT_QPA_PLATFORM,wayland;xcb # Already in home.sessionVariables 24 - # env = SDL_VIDEODRIVER,wayland # Already in home.sessionVariables 25 - # env = CLUTTER_BACKEND,wayland # Already in home.sessionVariables 26 - # env = XDG_CURRENT_DESKTOP,Hyprland # Already in home.sessionVariables 27 - # env = XDG_SESSION_TYPE,wayland # Already in home.sessionVariables 28 - # env = XDG_SESSION_DESKTOP,Hyprland # Already in home.sessionVariables 29 - 30 - # Input settings 31 - input { 32 - kb_layout = us 33 - kb_variant = 34 - kb_model = 35 - kb_options = 36 - kb_rules = 37 - 38 - follow_mouse = 1 39 - 40 - touchpad { 41 - natural_scroll = no 42 - } 43 - 44 - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 45 - } 46 - 47 - # General settings 48 - general { 49 - gaps_in = 5 50 - gaps_out = 10 51 - border_size = 2 52 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg 53 - col.inactive_border = rgba(595959aa) 54 - 55 - layout = dwindle # master or dwindle 56 - } 57 - 58 - # Decoration (window borders, shadows) 59 - decoration { 60 - rounding = 5 61 - blur { 62 - enabled = true 63 - size = 3 64 - passes = 1 65 - } 66 - 67 - } 68 - 69 - # Animations 70 - animations { 71 - enabled = yes 72 - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 73 - animation = windows, 1, 7, myBezier 74 - animation = windowsOut, 1, 7, default, popin 80% 75 - animation = border, 1, 10, default 76 - animation = fade, 1, 7, default 77 - animation = workspaces, 1, 6, default 78 - } 79 - 80 - # Dwindle layout specific 81 - dwindle { 82 - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 83 - preserve_split = yes # you probably want this 84 - } 85 - 86 - 87 - # Gestures (for touchpads) 88 - gestures { 89 - workspace_swipe = off 90 - } 91 - 92 - # Window rules (example) 93 - # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # Example to float kitty terminal 94 - 95 - # --- KEYBINDINGS --- 96 - $mainMod = SUPER # Sets the "Windows" key as the main modifier 97 - 98 - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more 99 - bind = $mainMod, RETURN, exec, kitty # Open terminal (kitty) 100 - bind = $mainMod, Q, exec, kitty # Alternative to open terminal 101 - bind = $mainMod, C, killactive, # Close active window 102 - bind = $mainMod SHIFT, Q, exit, # Exit Hyprland (ends session) 103 - bind = $mainMod, E, exec, nemo # Open file manager (nemo, install it if you want it) 104 - bind = $mainMod, V, togglefloating, # Toggle floating for active window 105 - bind = $mainMod, D, exec, wofi --show drun # Show application launcher (wofi) 106 - bind = $mainMod, P, pseudo, # dwindle 107 - bind = $mainMod, J, togglesplit, # dwindle 108 - 109 - # Move focus with mainMod + arrow keys 110 - bind = $mainMod, left, movefocus, l 111 - bind = $mainMod, right, movefocus, r 112 - bind = $mainMod, up, movefocus, u 113 - bind = $mainMod, down, movefocus, d 114 - 115 - # Switch workspaces with mainMod + [0-9] 116 - bind = $mainMod, 1, workspace, 1 117 - bind = $mainMod, 2, workspace, 2 118 - bind = $mainMod, 3, workspace, 3 119 - # ... up to 9 and 0 120 - 121 - # Move active window to a workspace with mainMod + SHIFT + [0-9] 122 - bind = $mainMod SHIFT, 1, movetoworkspace, 1 123 - bind = $mainMod SHIFT, 2, movetoworkspace, 2 124 - bind = $mainMod SHIFT, 3, movetoworkspace, 3 125 - # ... up to 9 and 0 126 - 127 - # Scroll through existing workspaces with mainMod + scroll 128 - bind = $mainMod, mouse_down, workspace, e+1 129 - bind = $mainMod, mouse_up, workspace, e-1 130 - 131 - # Move/resize windows with mainMod + LMB/RMB and dragging 132 - bindm = $mainMod, mouse:272, movewindow 133 - bindm = $mainMod, mouse:273, resizewindow