From f6775ed1cf25139f592f2b05aa13b9241b4c0be8 Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sun, 18 Feb 2024 04:03:22 +0530 Subject: [PATCH] [feat] More refactoring --- config/nix/darwin/configuration.nix | 135 +++++++++++++++++++++++ config/nix/darwin/default.nix | 165 ++++++---------------------- config/nix/flake.nix | 90 +++------------ config/nix/linux/default.nix | 28 +++++ config/nix/nixos/default.nix | 35 ++++++ 5 files changed, 242 insertions(+), 211 deletions(-) create mode 100644 config/nix/darwin/configuration.nix create mode 100644 config/nix/linux/default.nix create mode 100644 config/nix/nixos/default.nix diff --git a/config/nix/darwin/configuration.nix b/config/nix/darwin/configuration.nix new file mode 100644 index 00000000..6e7369fb --- /dev/null +++ b/config/nix/darwin/configuration.nix @@ -0,0 +1,135 @@ +{ + pkgs, + ... +}: { + imports = [ + ./yabai.nix + ./skhd.nix + ]; + + environment.systemPackages = with pkgs; [ + nix + neovim + ]; + nix = { + settings = { + experimental-features = "nix-command flakes repl-flake"; + max-jobs = 8; + trusted-users = ["root" "fs0c131y"]; + }; + extraOptions = '' + build-users-group = nixbld + extra-nix-path = nixpkgs=flake:nixpkgs + ''; + package = pkgs.nix; + }; + + security.pam.enableSudoTouchIdAuth = true; + + programs.bash.enable = true; + programs.zsh.enable = true; + programs.fish.enable = true; + + services.nix-daemon.enable = true; + system.stateVersion = 4; + + system.keyboard.enableKeyMapping = true; + system.keyboard.remapCapsLockToControl = true; + system.keyboard.swapLeftCommandAndLeftAlt = true; + system.keyboard.userKeyMapping = [ + { + # Right Command to Option + HIDKeyboardModifierMappingSrc = 30064771303; + HIDKeyboardModifierMappingDst = 30064771302; + } + { + # Right Option to command + HIDKeyboardModifierMappingSrc = 30064771302; + HIDKeyboardModifierMappingDst = 30064771303; + } + ]; +} +# { +# description = "Example Darwin system flake"; +# inputs = { +# nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; +# # home-manager.url = "github:nix-community/home-manager/master"; +# # home-manager.inputs.nixpkgs.follows = "nixpkgs"; +# nix-darwin.url = "github:LnL7/nix-darwin"; +# nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; +# }; +# outputs = inputs @ { +# self, +# nix-darwin, +# nixpkgs, +# }: let +# configuration = {pkgs, ...}: { +# # List packages installed in system profile. To search by name, run: +# # $ nix-env -qaP | grep wget +# environment.systemPackages = with pkgs; [ +# neovim +# bat +# ripgrep +# fd +# fish +# nushellFull +# tmux +# wezterm +# # yabai +# nerdfonts +# ]; +# # Auto upgrade nix package and the daemon service. +# services.nix-daemon.enable = true; +# # nix.package = pkgs.nix; +# # Necessary for using flakes on this system. +# nix = { +# settings = { +# experimental-features = "nix-command flakes repl-flake"; +# max-jobs = 8; +# }; +# extraOptions = '' +# build-users-group = nixbld +# extra-nix-path = nixpkgs=flake:nixpkgs +# ''; +# # keep-outputs = true +# # keep-derivations = true +# }; +# # Create /etc/zshrc that loads the nix-darwin environment. +# # programs.zsh.enable = true; # default shell on catalina +# # programs.fish.enable = true; +# # Set Git commit hash for darwin-version. +# system.configurationRevision = self.rev or self.dirtyRev or null; +# system.keyboard.enableKeyMapping = true; +# system.keyboard.remapCapsLockToControl = true; +# system.keyboard.swapLeftCommandAndLeftAlt = true; +# system.keyboard.userKeyMapping = { +# # Right Command to Option +# HIDKeyboardModifierMappingSrc = 30064771303; +# HIDKeyboardModifierMappingDst = 30064771302; +# # Right Option to command +# HIDKeyboardModifierMappingSrc = 30064771302; +# HIDKeyboardModifierMappingDst = 30064771303; +# }; +# fonts.fonts = [(pkgs.nerdfonts.override {fonts = ["Hasklig" "Hack"];})]; +# system.defaults.finder.AppleShowAllExtensions = true; +# system.defaults.dock.autohide = true; +# # Used for backwards compatibility, please read the changelog before changing. +# # $ darwin-rebuild changelog +# system.stateVersion = 4; +# # The platform the configuration will be used on. +# nixpkgs.hostPlatform = "aarch64-darwin"; +# nix.package = pkgs.nix; +# }; +# in { +# # Build darwin flake using: +# # $ darwin-rebuild build --flake .#simple +# darwinConfigurations.Uttarayans-MacBook-Pro = nix-darwin.lib.darwinSystem { +# # system = "aarch64-darwin"; +# pkgs = import nixpkgs {system = "aarch64-darwin";}; +# modules = [configuration]; +# }; +# # Expose the package set, including overlays, for convenience. +# # darwinPackages = self.darwinConfigurations.Uttarayans-MacBook-Pro.pkgs; +# }; +# } + diff --git a/config/nix/darwin/default.nix b/config/nix/darwin/default.nix index 6b8acfaf..099e2af8 100644 --- a/config/nix/darwin/default.nix +++ b/config/nix/darwin/default.nix @@ -1,137 +1,34 @@ { - pkgs, - device, + devices, + inputs, + overlays, + home-manager, + nix-darwin, ... -}: { - imports = [ - ./yabai.nix - ./skhd.nix - ]; - - environment.systemPackages = with pkgs; [ - nix - neovim - ]; - nix = { - settings = { - experimental-features = "nix-command flakes repl-flake"; - max-jobs = 8; - trusted-users = ["root" "fs0c131y"]; +}: +builtins.listToAttrs +(builtins.map + (device: { + name = device.name; + value = nix-darwin.lib.darwinSystem { + system = device.system; + modules = [ + {nixpkgs.overlays = overlays;} + ./configuration.nix + home-manager.darwinModules.home-manager + { + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + users.${device.user}.imports = [../common/home.nix]; + }; + } + ]; }; - extraOptions = '' - build-users-group = nixbld - extra-nix-path = nixpkgs=flake:nixpkgs - ''; - package = pkgs.nix; - }; - - security.pam.enableSudoTouchIdAuth = true; - - programs.bash.enable = true; - programs.zsh.enable = true; - programs.fish.enable = true; - - nixpkgs.hostPlatform = device.system; - services.nix-daemon.enable = true; - system.stateVersion = 4; - - system.keyboard.enableKeyMapping = true; - system.keyboard.remapCapsLockToControl = true; - system.keyboard.swapLeftCommandAndLeftAlt = true; - system.keyboard.userKeyMapping = [ - { - # Right Command to Option - HIDKeyboardModifierMappingSrc = 30064771303; - HIDKeyboardModifierMappingDst = 30064771302; - } - { - # Right Option to command - HIDKeyboardModifierMappingSrc = 30064771302; - HIDKeyboardModifierMappingDst = 30064771303; - } - ]; -} -# { -# description = "Example Darwin system flake"; -# inputs = { -# nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; -# # home-manager.url = "github:nix-community/home-manager/master"; -# # home-manager.inputs.nixpkgs.follows = "nixpkgs"; -# nix-darwin.url = "github:LnL7/nix-darwin"; -# nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; -# }; -# outputs = inputs @ { -# self, -# nix-darwin, -# nixpkgs, -# }: let -# configuration = {pkgs, ...}: { -# # List packages installed in system profile. To search by name, run: -# # $ nix-env -qaP | grep wget -# environment.systemPackages = with pkgs; [ -# neovim -# bat -# ripgrep -# fd -# fish -# nushellFull -# tmux -# wezterm -# # yabai -# nerdfonts -# ]; -# # Auto upgrade nix package and the daemon service. -# services.nix-daemon.enable = true; -# # nix.package = pkgs.nix; -# # Necessary for using flakes on this system. -# nix = { -# settings = { -# experimental-features = "nix-command flakes repl-flake"; -# max-jobs = 8; -# }; -# extraOptions = '' -# build-users-group = nixbld -# extra-nix-path = nixpkgs=flake:nixpkgs -# ''; -# # keep-outputs = true -# # keep-derivations = true -# }; -# # Create /etc/zshrc that loads the nix-darwin environment. -# # programs.zsh.enable = true; # default shell on catalina -# # programs.fish.enable = true; -# # Set Git commit hash for darwin-version. -# system.configurationRevision = self.rev or self.dirtyRev or null; -# system.keyboard.enableKeyMapping = true; -# system.keyboard.remapCapsLockToControl = true; -# system.keyboard.swapLeftCommandAndLeftAlt = true; -# system.keyboard.userKeyMapping = { -# # Right Command to Option -# HIDKeyboardModifierMappingSrc = 30064771303; -# HIDKeyboardModifierMappingDst = 30064771302; -# # Right Option to command -# HIDKeyboardModifierMappingSrc = 30064771302; -# HIDKeyboardModifierMappingDst = 30064771303; -# }; -# fonts.fonts = [(pkgs.nerdfonts.override {fonts = ["Hasklig" "Hack"];})]; -# system.defaults.finder.AppleShowAllExtensions = true; -# system.defaults.dock.autohide = true; -# # Used for backwards compatibility, please read the changelog before changing. -# # $ darwin-rebuild changelog -# system.stateVersion = 4; -# # The platform the configuration will be used on. -# nixpkgs.hostPlatform = "aarch64-darwin"; -# nix.package = pkgs.nix; -# }; -# in { -# # Build darwin flake using: -# # $ darwin-rebuild build --flake .#simple -# darwinConfigurations.Uttarayans-MacBook-Pro = nix-darwin.lib.darwinSystem { -# # system = "aarch64-darwin"; -# pkgs = import nixpkgs {system = "aarch64-darwin";}; -# modules = [configuration]; -# }; -# # Expose the package set, including overlays, for convenience. -# # darwinPackages = self.darwinConfigurations.Uttarayans-MacBook-Pro.pkgs; -# }; -# } - + }) + devices) diff --git a/config/nix/flake.nix b/config/nix/flake.nix index d3f1dfd2..8350fa83 100644 --- a/config/nix/flake.nix +++ b/config/nix/flake.nix @@ -63,7 +63,7 @@ } ]; - mkDevice = {device, ...}: { + mkDevice = {device}: { isLinux = !isNull (builtins.match ".*-linux" device.system); isNix = if (builtins.hasAttr "isNix" device) @@ -90,83 +90,19 @@ anyrun-overlay ]; in { - nixosConfigurations = - builtins.listToAttrs - (builtins.map - (device: { - name = device.name; - value = nixpkgs.lib.nixosSystem { - system = device.system; - # system.packages = [anyrun.packages.${device.system}.anyrun]; - specialArgs = {inherit device;}; - modules = [ - {nixpkgs.overlays = overlays;} - ./nixos/configuration.nix - home-manager.nixosModules.home-manager - { - nixpkgs.config.allowUnfree = true; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit inputs; - inherit device; - }; - users.${device.user}.imports = [./common/home.nix]; - }; - } - ]; - }; - }) - nixos_devices); + nixosConfigurations = let + devices = nixos_devices; + in + import ./nixos {inherit devices inputs nixpkgs home-manager overlays;}; - homeConfigurations = builtins.listToAttrs (builtins.map - (device: { - name = device.user; - value = let - pkgs = nixpkgs.legacyPackages.${device.system}; - in - home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - inherit device; - }; - modules = [ - {nixpkgs.overlays = overlays;} - ./common/home.nix - ]; - }; - }) - linux_devices); + darwinConfigurations = let + devices = darwin_devices; + in + import ./darwin {inherit devices inputs nixpkgs home-manager overlays nix-darwin;}; - darwinConfigurations = - builtins.listToAttrs - (builtins.map - (device: { - name = device.name; - value = let - pkgs = nixpkgs.legacyPackages.${device.system}; - in - nix-darwin.lib.darwinSystem { - inherit pkgs; - modules = [ - {nixpkgs.overlays = overlays;} - ./darwin - home-manager.darwinModules.home-manager - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - extraSpecialArgs = { - inherit device; - }; - users.${device.user}.imports = [./common/home.nix]; - }; - } - ]; - }; - }) - darwin_devices); + homeConfigurations = let + devices = linux_devices; + in + import ./linux {inherit devices inputs nixpkgs home-manager overlays;}; }; } diff --git a/config/nix/linux/default.nix b/config/nix/linux/default.nix new file mode 100644 index 00000000..45e9a1a9 --- /dev/null +++ b/config/nix/linux/default.nix @@ -0,0 +1,28 @@ +{ + devices, + inputs, + overlays, + home-manager, + ... +}: +builtins.listToAttrs (builtins.map + (device: { + name = device.user; + value = let + pkgs = import inputs.nixpkgs { + inherit overlays; + system = device.system; + }; + in + home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + modules = [ + ../common/home.nix + ]; + }; + }) + devices) diff --git a/config/nix/nixos/default.nix b/config/nix/nixos/default.nix new file mode 100644 index 00000000..d947ed3b --- /dev/null +++ b/config/nix/nixos/default.nix @@ -0,0 +1,35 @@ +{ + nixpkgs, + devices, + inputs, + overlays, + home-manager, + ... +}: +builtins.listToAttrs +(builtins.map + (device: { + name = device.name; + value = nixpkgs.lib.nixosSystem { + system = device.system; + specialArgs = {inherit device;}; + modules = [ + {nixpkgs.overlays = overlays;} + ./configuration.nix + home-manager.nixosModules.home-manager + { + nixpkgs.config.allowUnfree = true; + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { + inherit inputs; + inherit device; + }; + users.${device.user}.imports = [../common/home.nix]; + }; + } + ]; + }; + }) + devices)