diff --git a/dotfiles/nvim/lua/custom/configs/lspconfig.lua b/dotfiles/nvim/lua/custom/configs/lspconfig.lua index 7e9c3df..b87b09b 100644 --- a/dotfiles/nvim/lua/custom/configs/lspconfig.lua +++ b/dotfiles/nvim/lua/custom/configs/lspconfig.lua @@ -72,7 +72,7 @@ lspconfig.nil_ls.setup { ['nil'] = { testSetting = 42, formatting = { - command = { "alejandra" }, + command = { "nixfmt" }, }, }, }, diff --git a/flake.nix b/flake.nix index 324004a..6906fba 100644 --- a/flake.nix +++ b/flake.nix @@ -40,33 +40,33 @@ }; }; - outputs = {nixpkgs, ...} @ inputs: let - inherit (nixpkgs) lib; - mkHost = host: { - ${host} = nixpkgs.lib.nixosSystem { - specialArgs = { - inherit inputs; + outputs = { nixpkgs, ... }@inputs: + let + inherit (nixpkgs) lib; + mkHost = host: { + ${host} = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs; - # Extend lib with lib.custom - lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; }); + # Extend lib with lib.custom + lib = nixpkgs.lib.extend (self: super: { + custom = import ./lib { inherit (nixpkgs) lib; }; + }); + }; + + modules = [ ./hosts/nixos/${host} ]; }; + }; + mkHostConfigs = hosts: + lib.foldl (acc: set: acc // set) { } + (lib.map (host: mkHost host) hosts); + readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder}); + in { + nixosConfigurations = mkHostConfigs (readHosts "nixos"); - modules = [ ./hosts/nixos/${host} ]; + devShell.x86_64-linux = let pkgs = nixpkgs.legacyPackages.x86_64-linux; + in pkgs.mkShell { + buildInputs = with pkgs; [ nil nixfmt-classic lua-language-server ]; }; }; - mkHostConfigs = hosts: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host) hosts); - readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder}); - in { - nixosConfigurations = mkHostConfigs (readHosts "nixos"); - - devShell.x86_64-linux = let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - in pkgs.mkShell { - buildInputs = with pkgs; [ - nil - alejandra - lua-language-server - ]; - }; - }; } diff --git a/home/shahab/common/core/alacritty.nix b/home/shahab/common/core/alacritty.nix index 83b15fc..a75db9f 100644 --- a/home/shahab/common/core/alacritty.nix +++ b/home/shahab/common/core/alacritty.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: { programs.alacritty = { @@ -21,9 +18,7 @@ decorations_theme_variant = "None"; }; - env = { - TERM = "xterm-256color"; - }; + env = { TERM = "xterm-256color"; }; terminal.shell.program = "zsh"; @@ -34,9 +29,7 @@ italic.family = config.hostSpec.font; }; - cursor = { - style = "Block"; - }; + cursor = { style = "Block"; }; general.live_config_reload = true; }; diff --git a/home/shahab/common/core/default.nix b/home/shahab/common/core/default.nix index 647ab49..dcf8bbc 100644 --- a/home/shahab/common/core/default.nix +++ b/home/shahab/common/core/default.nix @@ -1,16 +1,6 @@ -{ - config, - lib, - pkgs, - hostSpec, - ... -}: -{ +{ config, lib, pkgs, hostSpec, ... }: { imports = lib.flatten [ - (map lib.custom.relativeToRoot [ - "modules/common" - "modules/home-manager" - ]) + (map lib.custom.relativeToRoot [ "modules/common" "modules/home-manager" ]) ./alacritty.nix ./direnv.nix @@ -24,9 +14,7 @@ username = lib.mkDefault config.hostSpec.username; homeDirectory = lib.mkDefault config.hostSpec.home; stateVersion = lib.mkDefault "25.05"; - sessionPath = [ - "$HOME/.local/bin" - ]; + sessionPath = [ "$HOME/.local/bin" ]; sessionVariables = { FLAKE = "$HOME/src/nix/nix-config"; SHELL = "zsh"; @@ -37,7 +25,8 @@ }; file = { - "${config.xdg.configHome}/nvim".source = lib.custom.relativeToRoot "dotfiles/nvim"; + "${config.xdg.configHome}/nvim".source = + lib.custom.relativeToRoot "dotfiles/nvim"; }; }; @@ -81,10 +70,7 @@ nix = { package = lib.mkDefault pkgs.nix; settings = { - experimental-features = [ - "nix-command" - "flakes" - ]; + experimental-features = [ "nix-command" "flakes" ]; warn-dirty = false; }; }; diff --git a/home/shahab/common/core/fonts.nix b/home/shahab/common/core/fonts.nix index ae8e811..aa04b06 100644 --- a/home/shahab/common/core/fonts.nix +++ b/home/shahab/common/core/fonts.nix @@ -1,7 +1,4 @@ -{ pkgs, ... }: -{ +{ pkgs, ... }: { fonts.fontconfig.enable = true; - home.packages = with pkgs; [ - nerd-fonts.jetbrains-mono - ]; + home.packages = with pkgs; [ nerd-fonts.jetbrains-mono ]; } diff --git a/home/shahab/common/core/git.nix b/home/shahab/common/core/git.nix index bebf3ac..2881c22 100644 --- a/home/shahab/common/core/git.nix +++ b/home/shahab/common/core/git.nix @@ -1,9 +1,4 @@ -{ - lib, - pkgs, - config, - ... -}: { +{ lib, pkgs, config, ... }: { programs.git = { package = pkgs.gitAndTools.gitFull; enable = true; @@ -11,24 +6,14 @@ userEmail = config.hostSpec.email.user; extraConfig = { - gpg = { - format = "ssh"; - }; + gpg = { format = "ssh"; }; "gpg \"ssh\"" = { program = "${lib.getExe' pkgs._1password-gui "op-ssh-sign"}"; }; - commit = { - gpgsign = true; - }; - user = { - signingKey = "~/.ssh/id_rihla.pub"; - }; - pull = { - rebase = true; - }; - init = { - defaultBranch = "main"; - }; + commit = { gpgsign = true; }; + user = { signingKey = "~/.ssh/id_rihla.pub"; }; + pull = { rebase = true; }; + init = { defaultBranch = "main"; }; }; }; } diff --git a/home/shahab/common/optional/btop.nix b/home/shahab/common/optional/btop.nix index 0b11321..190500f 100644 --- a/home/shahab/common/optional/btop.nix +++ b/home/shahab/common/optional/btop.nix @@ -1,7 +1,5 @@ { ... }: { - programs.btop = { - enable = true; - }; + programs.btop = { enable = true; }; } diff --git a/home/shahab/common/optional/firefox.nix b/home/shahab/common/optional/firefox.nix index 70341ac..17af757 100644 --- a/home/shahab/common/optional/firefox.nix +++ b/home/shahab/common/optional/firefox.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{ pkgs, ... }: { programs.firefox = { enable = true; package = pkgs.firefox.override { diff --git a/home/shahab/common/optional/hyprland.nix b/home/shahab/common/optional/hyprland.nix index 704eb32..eef1d2a 100644 --- a/home/shahab/common/optional/hyprland.nix +++ b/home/shahab/common/optional/hyprland.nix @@ -1,19 +1,18 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, pkgs, ... }: { home = { file = { - "${config.xdg.configHome}/hypr".source = lib.custom.relativeToRoot "dotfiles/hypr"; - "${config.xdg.configHome}/waybar".source = lib.custom.relativeToRoot "dotfiles/waybar"; - "${config.xdg.configHome}/wofi".source = lib.custom.relativeToRoot "dotfiles/wofi"; - "${config.xdg.configHome}/mako".source = lib.custom.relativeToRoot "dotfiles/mako"; + "${config.xdg.configHome}/hypr".source = + lib.custom.relativeToRoot "dotfiles/hypr"; + "${config.xdg.configHome}/waybar".source = + lib.custom.relativeToRoot "dotfiles/waybar"; + "${config.xdg.configHome}/wofi".source = + lib.custom.relativeToRoot "dotfiles/wofi"; + "${config.xdg.configHome}/mako".source = + lib.custom.relativeToRoot "dotfiles/mako"; }; - + packages = with pkgs; [ hyprshot hyprlock diff --git a/home/shahab/common/optional/misc-packages.nix b/home/shahab/common/optional/misc-packages.nix index 04c64b0..d1a4a6a 100644 --- a/home/shahab/common/optional/misc-packages.nix +++ b/home/shahab/common/optional/misc-packages.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { home.packages = with pkgs; [ diff --git a/home/shahab/common/optional/nvim.nix b/home/shahab/common/optional/nvim.nix index 9ba7b94..9e67eda 100644 --- a/home/shahab/common/optional/nvim.nix +++ b/home/shahab/common/optional/nvim.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { programs.neovim = { diff --git a/home/shahab/common/optional/ssh.nix b/home/shahab/common/optional/ssh.nix index 36b34e6..c663494 100644 --- a/home/shahab/common/optional/ssh.nix +++ b/home/shahab/common/optional/ssh.nix @@ -1,5 +1,5 @@ -{...}: let - onePassPath = "~/.1password/agent.sock"; +{ ... }: +let onePassPath = "~/.1password/agent.sock"; in { programs.ssh = { enable = true; diff --git a/home/shahab/common/optional/starship.nix b/home/shahab/common/optional/starship.nix index bd7d594..dbfc87e 100644 --- a/home/shahab/common/optional/starship.nix +++ b/home/shahab/common/optional/starship.nix @@ -1,3 +1 @@ -{...}: { - programs.starship.enable = true; -} +{ ... }: { programs.starship.enable = true; } diff --git a/home/shahab/common/optional/tmux.nix b/home/shahab/common/optional/tmux.nix index 05fd705..f4eba69 100644 --- a/home/shahab/common/optional/tmux.nix +++ b/home/shahab/common/optional/tmux.nix @@ -1,18 +1,12 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, pkgs, ... }: { home = { file = { - "${config.xdg.configHome}/tmux".source = lib.custom.relativeToRoot "dotfiles/tmux"; + "${config.xdg.configHome}/tmux".source = + lib.custom.relativeToRoot "dotfiles/tmux"; }; - packages = with pkgs; [ - tmux - ]; + packages = with pkgs; [ tmux ]; }; } diff --git a/home/shahab/common/optional/zsh.nix b/home/shahab/common/optional/zsh.nix index edabb55..e7f06db 100644 --- a/home/shahab/common/optional/zsh.nix +++ b/home/shahab/common/optional/zsh.nix @@ -1,4 +1,4 @@ -{config, ...}: { +{ config, ... }: { programs.zsh = { enable = true; enableCompletion = true; diff --git a/home/shahab/rihla.nix b/home/shahab/rihla.nix index ce2dae9..f95451b 100644 --- a/home/shahab/rihla.nix +++ b/home/shahab/rihla.nix @@ -1,8 +1,4 @@ -{ - lib, - ... -}: -{ +{ lib, ... }: { imports = lib.flatten [ # # ========== Required Configs ========== diff --git a/hosts/common/core/default.nix b/hosts/common/core/default.nix index c842598..00d7462 100644 --- a/hosts/common/core/default.nix +++ b/hosts/common/core/default.nix @@ -1,10 +1,4 @@ -{ - pkgs, - inputs, - config, - lib, - ... -}: +{ pkgs, inputs, config, lib, ... }: { imports = lib.flatten [ @@ -20,9 +14,7 @@ hostSpec = { username = "shahab"; handle = "shahab96"; - email = { - user = "shahab@dogar.dev"; - }; + email = { user = "shahab@dogar.dev"; }; userFullName = "Shahab Dogar"; domain = "rihla"; networking.ports.tcp.ssh = 22; @@ -60,12 +52,11 @@ warn-dirty = false; trusted-users = [ "@wheel" ]; - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - experimental-features = [ - "nix-command" - "flakes" + substituters = [ "https://hyprland.cachix.org" ]; + trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; + experimental-features = [ "nix-command" "flakes" ]; }; }; @@ -79,9 +70,7 @@ }; # ========= Sops ========= - environment.systemPackages = with pkgs; [ - sops - ]; + environment.systemPackages = with pkgs; [ sops ]; # # ========== Localization ========== diff --git a/hosts/common/disks/rihla.nix b/hosts/common/disks/rihla.nix index ec34f04..970c3ef 100644 --- a/hosts/common/disks/rihla.nix +++ b/hosts/common/disks/rihla.nix @@ -1,12 +1,4 @@ -{ - lib, - config, - device, - withSwap, - swapSize, - label, - ... -}: +{ lib, config, device, withSwap, swapSize, label, ... }: { disko = { @@ -42,10 +34,8 @@ passwordFile = "/tmp/secret.key"; settings = { allowDiscards = true; - crypttabExtraOpts = [ - "fido2-device=auto" - "token-timeout=10" - ]; + crypttabExtraOpts = + [ "fido2-device=auto" "token-timeout=10" ]; }; content = { type = "lvm_pv"; @@ -72,35 +62,20 @@ size = "100%"; content = { type = "btrfs"; - extraArgs = [ - "-L" - label - "-f" - ]; + extraArgs = [ "-L" label "-f" ]; subvolumes = { "@root" = { mountpoint = "/"; - mountOptions = [ - "subvol=root" - "compress=zstd" - "noatime" - ]; + mountOptions = [ "subvol=root" "compress=zstd" "noatime" ]; }; "@persist" = { mountpoint = config.hostSpec.persist; - mountOptions = [ - "subvol=persist" - "compress=zstd" - "noatime" - ]; + mountOptions = + [ "subvol=persist" "compress=zstd" "noatime" ]; }; "@nix" = { mountpoint = "/nix"; - mountOptions = [ - "subvol=nix" - "compress=zstd" - "noatime" - ]; + mountOptions = [ "subvol=nix" "compress=zstd" "noatime" ]; }; }; }; diff --git a/hosts/common/optional/1password.nix b/hosts/common/optional/1password.nix index 624fd85..80664b7 100644 --- a/hosts/common/optional/1password.nix +++ b/hosts/common/optional/1password.nix @@ -1,7 +1,4 @@ -{ - config, - ... -}: +{ config, ... }: { programs = { diff --git a/hosts/common/optional/dconf.nix b/hosts/common/optional/dconf.nix index 317404d..11c2c3b 100644 --- a/hosts/common/optional/dconf.nix +++ b/hosts/common/optional/dconf.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { programs.dconf.enable = true; diff --git a/hosts/common/optional/docker.nix b/hosts/common/optional/docker.nix index 94ebc6d..073a7dc 100644 --- a/hosts/common/optional/docker.nix +++ b/hosts/common/optional/docker.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: { +{ pkgs, ... }: { virtualisation = { podman = { enable = true; @@ -14,11 +11,7 @@ }; }; - containers = { - registries = { - search = ["docker.io"]; - }; - }; + containers = { registries = { search = [ "docker.io" ]; }; }; libvirtd = { enable = true; @@ -27,7 +20,7 @@ ovmf = { enable = true; - packages = with pkgs; [OVMFFull.fd]; + packages = with pkgs; [ OVMFFull.fd ]; }; }; }; diff --git a/hosts/common/optional/gaming.nix b/hosts/common/optional/gaming.nix index a8f2f9f..4581c53 100644 --- a/hosts/common/optional/gaming.nix +++ b/hosts/common/optional/gaming.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { programs = { @@ -15,8 +12,5 @@ gamemode.enable = true; }; - environment.systemPackages = with pkgs; [ - mangohud - protonup-qt - ]; + environment.systemPackages = with pkgs; [ mangohud protonup-qt ]; } diff --git a/hosts/common/optional/hyprland.nix b/hosts/common/optional/hyprland.nix index fb45172..b6d338f 100644 --- a/hosts/common/optional/hyprland.nix +++ b/hosts/common/optional/hyprland.nix @@ -1,13 +1,10 @@ -{ - inputs, - pkgs, - ... -}: +{ inputs, pkgs, ... }: { programs.hyprland = { enable = true; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + package = + inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; }; diff --git a/hosts/common/optional/nix-ld.nix b/hosts/common/optional/nix-ld.nix index 0fd12d5..aaab925 100644 --- a/hosts/common/optional/nix-ld.nix +++ b/hosts/common/optional/nix-ld.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { programs.nix-ld.enable = true; diff --git a/hosts/common/optional/secure-boot.nix b/hosts/common/optional/secure-boot.nix index 675fc82..90a57f7 100644 --- a/hosts/common/optional/secure-boot.nix +++ b/hosts/common/optional/secure-boot.nix @@ -1,10 +1,5 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { - environment.systemPackages = with pkgs; [ - sbctl - ]; + environment.systemPackages = with pkgs; [ sbctl ]; } diff --git a/hosts/common/optional/services/audio.nix b/hosts/common/optional/services/audio.nix index d9a81b6..2a807a4 100644 --- a/hosts/common/optional/services/audio.nix +++ b/hosts/common/optional/services/audio.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { services = { @@ -17,7 +14,6 @@ }; security.rtkit.enable = true; - environment.systemPackages = builtins.attrValues { - inherit (pkgs) pavucontrol; - }; + environment.systemPackages = + builtins.attrValues { inherit (pkgs) pavucontrol; }; } diff --git a/hosts/common/optional/services/bluetooth.nix b/hosts/common/optional/services/bluetooth.nix index c1d413a..43d4a6a 100644 --- a/hosts/common/optional/services/bluetooth.nix +++ b/hosts/common/optional/services/bluetooth.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { services.blueman.enable = true; diff --git a/hosts/common/optional/services/firmware.nix b/hosts/common/optional/services/firmware.nix index 2482de6..52dc13e 100644 --- a/hosts/common/optional/services/firmware.nix +++ b/hosts/common/optional/services/firmware.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { services.fwupd.enable = true; diff --git a/hosts/common/optional/services/greetd.nix b/hosts/common/optional/services/greetd.nix index 924fba6..4e2fc33 100644 --- a/hosts/common/optional/services/greetd.nix +++ b/hosts/common/optional/services/greetd.nix @@ -1,14 +1,12 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { services.greetd = { enable = true; settings = { default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --greeting 'Welcome to NixOS!' --asterisks --remember --remember-user-session --time --cmd ${pkgs.hyprland}/bin/Hyprland"; + command = + "${pkgs.greetd.tuigreet}/bin/tuigreet --greeting 'Welcome to NixOS!' --asterisks --remember --remember-user-session --time --cmd ${pkgs.hyprland}/bin/Hyprland"; user = "greeter"; }; }; diff --git a/hosts/common/optional/services/openssh.nix b/hosts/common/optional/services/openssh.nix index 5a269fd..de26148 100644 --- a/hosts/common/optional/services/openssh.nix +++ b/hosts/common/optional/services/openssh.nix @@ -1,11 +1,6 @@ -{ - config, - ... -}: -let - sshPort = config.hostSpec.networking.ports.tcp.ssh; -in -{ +{ config, ... }: +let sshPort = config.hostSpec.networking.ports.tcp.ssh; +in { services.openssh = { enable = true; ports = [ sshPort ]; diff --git a/hosts/common/optional/services/printing.nix b/hosts/common/optional/services/printing.nix index c9b8527..ff19c63 100644 --- a/hosts/common/optional/services/printing.nix +++ b/hosts/common/optional/services/printing.nix @@ -1,7 +1,5 @@ # Reminder that CUPS cpanel defaults to localhost:631 -{ - ... -}: +{ ... }: { services.printing.enable = true; diff --git a/hosts/common/optional/services/smart-card.nix b/hosts/common/optional/services/smart-card.nix index 166db96..4033dbd 100644 --- a/hosts/common/optional/services/smart-card.nix +++ b/hosts/common/optional/services/smart-card.nix @@ -1,6 +1,4 @@ -{ - ... -}: +{ ... }: { services.pcscd.enable = true; diff --git a/hosts/common/optional/yubikey.nix b/hosts/common/optional/yubikey.nix index 749e350..704e66f 100644 --- a/hosts/common/optional/yubikey.nix +++ b/hosts/common/optional/yubikey.nix @@ -1,7 +1,4 @@ -{ - pkgs, - ... -}: +{ pkgs, ... }: { # yubikey login / sudo @@ -16,7 +13,5 @@ }; }; - environment.systemPackages = with pkgs; [ - yubikey-manager - ]; + environment.systemPackages = with pkgs; [ yubikey-manager ]; } diff --git a/hosts/common/users/primary/default.nix b/hosts/common/users/primary/default.nix index a2f7d21..2dc6410 100644 --- a/hosts/common/users/primary/default.nix +++ b/hosts/common/users/primary/default.nix @@ -1,10 +1,4 @@ -{ - pkgs, - config, - lib, - inputs, - ... -}: +{ pkgs, config, lib, inputs, ... }: let hostSpec = config.hostSpec; pubKeys = lib.filesystem.listFilesRecursive ./keys; @@ -19,20 +13,15 @@ in { shell = pkgs.zsh; home = hostSpec.home; isNormalUser = true; - hashedPassword = "$y$j9T$pvjyL7hL5x2VBarGNTnMl1$mLA2UsWTbfp8Hgp/ug5l8224thi..Mo8.p7ME.tDZ.4"; - extraGroups = [ - "networkmanager" - "wheel" - "input" - "libvirtd" - ]; + hashedPassword = + "$y$j9T$pvjyL7hL5x2VBarGNTnMl1$mLA2UsWTbfp8Hgp/ug5l8224thi..Mo8.p7ME.tDZ.4"; + extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" ]; # Read all keys in ./keys and add them to authorizedKeys. - openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key); + openssh.authorizedKeys.keys = + lib.lists.forEach pubKeys (key: builtins.readFile key); - packages = with pkgs; [ - libnotify - ]; + packages = with pkgs; [ libnotify ]; }; }; @@ -41,13 +30,12 @@ in { inherit pkgs inputs; hostSpec = config.hostSpec; }; - users.${hostSpec.username}.imports = lib.flatten [ - ( - { config, ... }: - import (lib.custom.relativeToRoot "home/${hostSpec.username}/${hostSpec.hostName}.nix") { - inherit pkgs inputs config lib hostSpec; - } - ) + users.${hostSpec.username}.imports = lib.flatten [ + ({ config, ... }: + import (lib.custom.relativeToRoot + "home/${hostSpec.username}/${hostSpec.hostName}.nix") { + inherit pkgs inputs config lib hostSpec; + }) ]; }; } diff --git a/hosts/nixos/rihla/default.nix b/hosts/nixos/rihla/default.nix index 9171809..2ef29f0 100644 --- a/hosts/nixos/rihla/default.nix +++ b/hosts/nixos/rihla/default.nix @@ -1,10 +1,4 @@ -{ - inputs, - pkgs, - lib, - config, - ... -}: +{ inputs, pkgs, lib, config, ... }: { imports = lib.flatten [ @@ -26,7 +20,8 @@ # ========= Disk Layout ========= # inputs.disko.nixosModules.disko - (lib.custom.relativeToRoot "hosts/common/disks/rihla.nix") { + (lib.custom.relativeToRoot "hosts/common/disks/rihla.nix") + { _module.args = { device = "/dev/nvme0n1"; withSwap = true; @@ -38,9 +33,7 @@ # # ========= Required Configs ========= # - (map lib.custom.relativeToRoot [ - "hosts/common/core" - ]) + (map lib.custom.relativeToRoot [ "hosts/common/core" ]) # # ========= Optional Configs ========= @@ -59,15 +52,16 @@ # # ========= Optional Services ========= # - (map (s: lib.custom.relativeToRoot "hosts/common/optional/services/${s}.nix") [ - "audio" - "bluetooth" - "firmware" - "greetd" - "openssh" - "printing" - "smart-card" - ]) + (map + (s: lib.custom.relativeToRoot "hosts/common/optional/services/${s}.nix") [ + "audio" + "bluetooth" + "firmware" + "greetd" + "openssh" + "printing" + "smart-card" + ]) ]; # @@ -91,30 +85,31 @@ efi.canTouchEfiVariables = true; }; - initrd.postResumeCommands = lib.mkIf config.hostSpec.impermanance (lib.mkAfter '' - mkdir /btrfs_tmp - mount /dev/crypt_vg/root /btrfs_tmp - if [[ -e /btrfs_tmp/root ]]; then - mkdir -p /btrfs_tmp/old_roots - timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S") - mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp" - fi + initrd.postResumeCommands = lib.mkIf config.hostSpec.impermanance + (lib.mkAfter '' + mkdir /btrfs_tmp + mount /dev/crypt_vg/root /btrfs_tmp + if [[ -e /btrfs_tmp/root ]]; then + mkdir -p /btrfs_tmp/old_roots + timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S") + mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp" + fi - delete_subvolume_recursively() { - IFS=$'\n' - for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do - delete_subvolume_recursively "/btrfs_tmp/$i" - done - btrfs subvolume delete "$1" - } + delete_subvolume_recursively() { + IFS=$'\n' + for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do + delete_subvolume_recursively "/btrfs_tmp/$i" + done + btrfs subvolume delete "$1" + } - for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do - delete_subvolume_recursively "$i" - done + for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do + delete_subvolume_recursively "$i" + done - btrfs subvolume create /btrfs_tmp/root - umount /btrfs_tmp - ''); + btrfs subvolume create /btrfs_tmp/root + umount /btrfs_tmp + ''); lanzaboote = { enable = config.hostSpec.secureBoot; @@ -124,9 +119,7 @@ security.rtkit.enable = true; - environment.systemPackages = with pkgs; [ - pciutils - ]; + environment.systemPackages = with pkgs; [ pciutils ]; system.stateVersion = "25.05"; } diff --git a/hosts/nixos/rihla/hardware-configuration.nix b/hosts/nixos/rihla/hardware-configuration.nix index e9b168a..9496b85 100644 --- a/hosts/nixos/rihla/hardware-configuration.nix +++ b/hosts/nixos/rihla/hardware-configuration.nix @@ -1,14 +1,8 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ - pkgs, - config, - lib, - modulesPath, - ... -}: { - imports = [(modulesPath + "/installer/scan/not-detected.nix")]; +{ pkgs, config, lib, modulesPath, ... }: { + imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; boot = { initrd = { @@ -21,11 +15,11 @@ "usb_storage" "sd_mod" ]; - kernelModules = []; + kernelModules = [ ]; }; - kernelModules = ["kvm-amd"]; - extraModulePackages = []; + kernelModules = [ "kvm-amd" ]; + extraModulePackages = [ ]; }; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking @@ -38,10 +32,11 @@ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware = { - cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + cpu.amd.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; graphics = { enable = true; - extraPackages = with pkgs; [amdvlk]; + extraPackages = with pkgs; [ amdvlk ]; }; }; } diff --git a/lib/default.nix b/lib/default.nix index b911f01..0674027 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,7 +1,4 @@ -{ - lib, - ... -}: +{ lib, ... }: { relativeToRoot = lib.path.append ../.; diff --git a/modules/common/default.nix b/modules/common/default.nix index 650f59d..023c3df 100644 --- a/modules/common/default.nix +++ b/modules/common/default.nix @@ -1,9 +1,5 @@ -{ - ... -}: +{ ... }: { - imports = [ - ./host-spec.nix - ]; + imports = [ ./host-spec.nix ]; } diff --git a/modules/common/host-spec.nix b/modules/common/host-spec.nix index fd1d0b3..7c58858 100644 --- a/modules/common/host-spec.nix +++ b/modules/common/host-spec.nix @@ -1,10 +1,5 @@ # Specifications For Differentiating Hosts -{ - config, - lib, - ... -}: -{ +{ config, lib, ... }: { options.hostSpec = { username = lib.mkOption { type = lib.types.str; @@ -68,7 +63,8 @@ scaling = lib.mkOption { type = lib.types.str; default = "1"; - description = "Used to indicate what scaling to use. Floating point number"; + description = + "Used to indicate what scaling to use. Floating point number"; }; font = lib.mkOption { type = lib.types.str; diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index 3823c69..a6ddcb1 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -1,9 +1,5 @@ -{ - ... -}: +{ ... }: { - imports = [ - ./yubikey-touch-detector.nix - ]; + imports = [ ./yubikey-touch-detector.nix ]; } diff --git a/modules/home-manager/yubikey-touch-detector.nix b/modules/home-manager/yubikey-touch-detector.nix index 100ca67..68f7d87 100644 --- a/modules/home-manager/yubikey-touch-detector.nix +++ b/modules/home-manager/yubikey-touch-detector.nix @@ -2,12 +2,11 @@ with lib; -let - cfg = config.services.yubikey-touch-detector; -in -{ +let cfg = config.services.yubikey-touch-detector; +in { options.services.yubikey-touch-detector = { - enable = mkEnableOption "a tool to detect when your YubiKey is waiting for a touch"; + enable = mkEnableOption + "a tool to detect when your YubiKey is waiting for a touch"; package = mkOption { type = types.package; @@ -18,7 +17,8 @@ in ''; }; - socket.enable = mkEnableOption "starting the process only when the socket is used"; + socket.enable = + mkEnableOption "starting the process only when the socket is used"; extraArgs = mkOption { type = types.listOf types.str; @@ -37,7 +37,8 @@ in # See https://github.com/maximbaz/yubikey-touch-detector/blob/c9fdff7163361d6323e2de0449026710cacbc08a/LICENSE # Author: Maxim Baz systemd.user.sockets.yubikey-touch-detector = mkIf cfg.socket.enable { - Unit.Description = "Unix socket activation for YubiKey touch detector service"; + Unit.Description = + "Unix socket activation for YubiKey touch detector service"; Socket = { ListenFIFO = "%t/yubikey-touch-detector.sock"; RemoveOnStop = true; @@ -50,15 +51,19 @@ in systemd.user.services.yubikey-touch-detector = { Unit = { Description = "Detects when your YubiKey is waiting for a touch"; - Requires = optionals cfg.socket.enable [ "yubikey-touch-detector.socket" ]; + Requires = + optionals cfg.socket.enable [ "yubikey-touch-detector.socket" ]; }; Service = { - ExecStart = "${cfg.package}/bin/yubikey-touch-detector ${concatStringsSep " " cfg.extraArgs}"; + ExecStart = "${cfg.package}/bin/yubikey-touch-detector ${ + concatStringsSep " " cfg.extraArgs + }"; Environment = [ "PATH=${lib.makeBinPath [ pkgs.gnupg ]}" ]; Restart = "on-failure"; RestartSec = "1sec"; }; - Install.Also = optionals cfg.socket.enable [ "yubikey-touch-detector.socket" ]; + Install.Also = + optionals cfg.socket.enable [ "yubikey-touch-detector.socket" ]; Install.WantedBy = [ "default.target" ]; }; };