summaryrefslogtreecommitdiff
path: root/hosts/common.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/common.nix')
-rw-r--r--hosts/common.nix185
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;
+}