me like nix
0

Configure Feed

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

1{ pkgs, lib, inputs, ... }: 2 3let 4 hasBerkeleyMono = inputs ? berkeley-mono && !(inputs.berkeley-mono ? isStub); 5 berkeley-mono-typeface = 6 if hasBerkeleyMono then inputs.berkeley-mono.packages.${pkgs.system}.default else null; 7 8in 9{ 10 11 nix.settings.experimental-features = [ 12 "nix-command" 13 "flakes" 14 ]; 15 nix.settings.download-buffer-size = 268435456; 16 17 hardware.bluetooth.enable = true; 18 hardware.bluetooth.powerOnBoot = true; 19 services.blueman.enable = true; 20 21 # Bootloader. 22 boot.loader.systemd-boot.enable = true; 23 boot.loader.systemd-boot.configurationLimit = 10; 24 boot.loader.efi.canTouchEfiVariables = true; 25 26 services.fwupd.enable = true; 27 # Use latest kernel. 28 boot.kernelPackages = pkgs.linuxPackages_latest; 29 boot.kernel.sysctl."kernel.task_delayacct" = 1; 30 31 # Fix USB disconnection issues with Dell U4025QW Thunderbolt dock 32 # Disables autosuspend and LPM for Dell hub (vendor ID: 1d5c, product ID: 5801) 33 # boot.kernelParams = [ "usbcore.quirks=1d5c:5801:gk" ]; 34 # If USB disconnects persist, try disabling UCSI ACPI instead: 35 # boot.kernelParams = [ "module_blacklist=ucsi_acpi" ]; 36 37 # Enable networking 38 networking.networkmanager.enable = true; 39 systemd.services.NetworkManager-wait-online.enable = false; 40 41 # Set your time zone. 42 # time.timeZone = "America/New_York"; 43 time.timeZone = "America/Toronto"; 44 45 # Select internationalisation properties. 46 i18n.defaultLocale = "en_US.UTF-8"; 47 48 i18n.extraLocaleSettings = { 49 LC_ADDRESS = "en_US.UTF-8"; 50 LC_IDENTIFICATION = "en_US.UTF-8"; 51 LC_MEASUREMENT = "en_US.UTF-8"; 52 LC_MONETARY = "en_US.UTF-8"; 53 LC_NAME = "en_US.UTF-8"; 54 LC_NUMERIC = "en_US.UTF-8"; 55 LC_PAPER = "en_US.UTF-8"; 56 LC_TELEPHONE = "en_US.UTF-8"; 57 LC_TIME = "en_US.UTF-8"; 58 }; 59 60 # Font configuration 61 fonts = { 62 fontDir.enable = true; 63 fontconfig = { 64 enable = true; 65 defaultFonts = { 66 monospace = 67 lib.optionals hasBerkeleyMono [ 68 "BerkeleyMono Nerd Font" 69 "BerkeleyMono" 70 ] 71 ++ [ "JetBrainsMono Nerd Font" ]; 72 }; 73 }; 74 packages = lib.optionals hasBerkeleyMono [ berkeley-mono-typeface ]; 75 }; 76 77 programs.niri = { 78 enable = true; 79 }; 80 81 catppuccin = { 82 enable = true; 83 flavor = "frappe"; 84 }; 85 86 programs.regreet = { 87 enable = true; 88 cageArgs = [ "-s" "-d" ]; 89 settings.GTK.application_prefer_dark_theme = true; 90 theme = { 91 package = pkgs.catppuccin-gtk.override { 92 variant = "frappe"; 93 accents = [ "lavender" ]; 94 size = "standard"; 95 }; 96 name = "catppuccin-frappe-lavender-standard"; 97 }; 98 iconTheme = { 99 package = pkgs.catppuccin-papirus-folders.override { 100 flavor = "frappe"; 101 accent = "lavender"; 102 }; 103 name = "Papirus-Dark"; 104 }; 105 cursorTheme = { 106 package = pkgs.catppuccin-cursors.frappeDark; 107 name = "catppuccin-frappe-dark-cursors"; 108 }; 109 }; 110 111 # Scale regreet's greeter for HiDPI displays 112 services.greetd.settings.default_session.command = lib.mkForce 113 "${pkgs.dbus}/bin/dbus-run-session ${lib.getExe pkgs.cage} -s -d -- env GDK_SCALE=2 ${lib.getExe pkgs.greetd.regreet}"; 114 115 # Enable CUPS to print documents. 116 services.printing.enable = true; 117 118 security.polkit.enable = true; 119 security.rtkit.enable = true; 120 services.pipewire = { 121 enable = true; 122 alsa.enable = true; 123 alsa.support32Bit = true; 124 pulse.enable = true; 125 # If you want to use JACK applications, uncomment this 126 #jack.enable = true; 127 128 # use the example session manager (no others are packaged yet so this is enabled by default, 129 # no need to redefine it in your config for now) 130 #media-session.enable = true; 131 }; 132 133 services.gnome.gnome-keyring.enable = true; 134 security.pam.services.greetd.enableGnomeKeyring = true; 135 136 services.udisks2.enable = true; 137 services.tailscale.enable = true; 138 services.pcscd.enable = true; # Smart card daemon for Yubikey 139 140 security.pam.u2f = { 141 enable = true; 142 control = "sufficient"; 143 cue = true; 144 settings = { 145 origin = "pam://nixos"; 146 appid = "pam://nixos"; 147 }; 148 }; 149 security.pam.services.sudo.u2fAuth = true; 150 151 programs.yubikey-touch-detector.enable = true; 152 153 # ZSA Keyboard udev rules for Oryx web flashing and live training 154 services.udev.extraRules = '' 155 # Rules for Oryx web flashing and live training 156 KERNEL=="hidraw*", ATTRS{idVendor}=="16c0", MODE="0664", GROUP="plugdev" 157 KERNEL=="hidraw*", ATTRS{idVendor}=="3297", MODE="0664", GROUP="plugdev" 158 159 # Legacy rules for live training over webusb (Not needed for firmware v21+) 160 # Rule for all ZSA keyboards 161 SUBSYSTEM=="usb", ATTR{idVendor}=="3297", GROUP="plugdev" 162 # Rule for the Moonlander 163 SUBSYSTEM=="usb", ATTR{idVendor}=="3297", ATTR{idProduct}=="1969", GROUP="plugdev" 164 # Rule for the Ergodox EZ 165 SUBSYSTEM=="usb", ATTR{idVendor}=="feed", ATTR{idProduct}=="1307", GROUP="plugdev" 166 # Rule for the Planck EZ 167 SUBSYSTEM=="usb", ATTR{idVendor}=="feed", ATTR{idProduct}=="6060", GROUP="plugdev" 168 169 # Wally Flashing rules for the Ergodox EZ 170 ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1" 171 ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1" 172 SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666" 173 KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666" 174 175 # Keymapp / Wally Flashing rules for the Moonlander and Planck EZ 176 SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666", SYMLINK+="stm32_dfu" 177 # Keymapp Flashing rules for the Voyager 178 SUBSYSTEMS=="usb", ATTRS{idVendor}=="3297", MODE:="0666", SYMLINK+="ignition_dfu" 179 # USB serial device access via Chrome/Chromium 180 KERNEL=="ttyUSB[0-9]*", MODE:="0666", GROUP="dialout" 181 KERNEL=="ttyACM[0-9]*", MODE:="0666", GROUP="dialout" 182 ''; 183 184 # Define a user account. Don't forget to set a password with ‘passwd’. 185 users.groups.storage = { }; 186 users.groups.plugdev = { }; 187 users.users.sean = { 188 isNormalUser = true; 189 description = "Sean Aye"; 190 extraGroups = [ 191 "docker" 192 "networkmanager" 193 "wheel" 194 "video" 195 "disk" 196 "storage" 197 "input" 198 "plugdev" 199 "dialout" 200 ]; 201 shell = pkgs.fish; 202 linger = true; 203 }; 204 205 programs.fish.enable = true; 206 programs._1password.enable = true; 207 programs._1password-gui = { 208 enable = true; 209 polkitPolicyOwners = [ "sean" ]; 210 }; 211 212 virtualisation.docker.enable = true; 213 214 # Allow unfree packages 215 nixpkgs.config.allowUnfree = true; 216 217 # List packages installed in system profile. To search, run: 218 # $ nix search wget 219 environment.systemPackages = with pkgs; [ 220 wl-clipboard 221 ]; 222 environment.variables = { 223 EDITOR = "hx"; 224 VISUAL = "hx"; 225 SUDO_EDITOR = "hx"; 226 }; 227}