diff options
Diffstat (limited to 'hosts/common.nix')
| -rw-r--r-- | hosts/common.nix | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/hosts/common.nix b/hosts/common.nix new file mode 100644 index 0000000..e6bc71d --- /dev/null +++ b/hosts/common.nix @@ -0,0 +1,185 @@ +{ user }: +{ + pkgs, + inputs, + lib, + config, + ... +}: +{ + nix.settings = { + trusted-users = [ "@wheel" ]; + experimental-features = [ + "nix-command" + "flakes" + ]; + auto-optimise-store = true; + }; + + programs.nh = { + enable = true; + clean.enable = true; + clean.extraArgs = "--keep-since 4d --keep 2"; + flake = "/home/${user}/beeSystems"; + }; + + boot.loader = { + efi.canTouchEfiVariables = true; + timeout = 50; + grub = { + enable = true; + device = "nodev"; + efiSupport = true; + useOSProber = true; + configurationLimit = 4; + theme = pkgs.fetchFromGitHub { + owner = "shvchk"; + repo = "fallout-grub-theme"; + rev = "80734103d0b48d724f0928e8082b6755bd3b2078"; + sha256 = "sha256-7kvLfD6Nz4cEMrmCA9yq4enyqVyqiTkVZV5y4RyUatU="; + }; + }; + }; + + services.kanata = { + enable = true; + keyboards.default = { + extraDefCfg = "process-unmapped-keys yes"; + + config = '' + ;; Define the physical keys on your keyboard that we want to modify + (defsrc + esc caps rctrl f1 + ) + + ;; Define custom actions (Aliases) + (defalias + ;; The smart key: + ;; - Tap: Sends Esc + ;; - Hold: Sends Left Control + ;; - "press": If you press another key while holding this, it triggers + ;; Left Control IMMEDIATELY (no lag). Perfect for Vim. + capesc (tap-hold-press 200 200 esc lctrl) + + ;; Switches to toggle between layers + game (layer-switch gaming) + base (layer-switch base) + ) + + ;; 3. Base Layer (Typing Mode) + ;; - Physical Esc -> Caps Lock (Standard swap) + ;; - Physical Caps -> Esc (tap) / Ctrl (hold) + ;; - Physical RCtrl -> Switch to "Gaming Mode" + ;; - Physical F1 -> Normal F1 behavior + (deflayer base + caps @capesc @game f1 + ) + + ;; 4. Gaming Layer (Gaming Mode) + ;; - Physical Esc -> Caps Lock (keeps light toggle working) + ;; - Physical Caps -> Left Ctrl (Pure Ctrl! Safe for crouching) + ;; - Physical RCtrl -> Switch back to "Typing Mode" + ;; - Physical F1 -> Escape (Your dedicated Pause button) + (deflayer gaming + caps lctrl @base esc + ) + ''; + }; + }; + + time.timeZone = "Asia/Kolkata"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_IN"; + LC_IDENTIFICATION = "en_IN"; + LC_MEASUREMENT = "en_IN"; + LC_MONETARY = "en_IN"; + LC_NAME = "en_IN"; + LC_NUMERIC = "en_IN"; + LC_PAPER = "en_IN"; + LC_TELEPHONE = "en_IN"; + LC_TIME = "en_IN"; + }; + + services.displayManager.ly = { + enable = true; + settings = { + load = true; + save = true; + }; + }; + + security.pam.services.ly.enableGnomeKeyring = true; + security.pam.services.login.enableGnomeKeyring = true; + + nixpkgs.config.allowUnfree = true; + nix.registry.${user}.flake = inputs.self; + nix.registry.nixpkgs.flake = inputs.nixpkgs; + + networking.networkmanager.wifi.powersave = false; + networking.networkmanager.enable = true; + + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = false; + services.blueman.enable = false; + + hardware.enableRedistributableFirmware = true; + + services.libinput.enable = true; + services.libinput.touchpad = { + naturalScrolling = true; + disableWhileTyping = true; + }; + + services.xserver.xkb = { + layout = "us"; + variant = ""; + }; + + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + jack.enable = true; + }; + + security.rtkit.enable = true; + security.polkit.enable = true; + + fonts.fontDir.enable = true; + fonts.packages = with pkgs; [ + # maple-mono.NF + nerd-fonts.jetbrains-mono + ]; + fonts.fontconfig.defaultFonts.monospace = [ + "Ioskeley Mono" + "JetBrainsMono Nerd Fonts" + "Symbols Nerd Font" + ]; + programs.fish.enable = true; + programs.nano.enable = false; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + services.upower.enable = true; + services.earlyoom.enable = false; + services.fwupd.enable = false; + services.gnome.gnome-keyring.enable = true; + services.power-profiles-daemon.enable = true; + services.printing.enable = false; + services.openssh.enable = true; + services.dbus.enable = true; + + services.gvfs.enable = true; + services.udisks2.enable = true; + + environment.systemPackages = with pkgs; [ + android-tools + ]; + + users.defaultUserShell = pkgs.fish; +} |
