diff --git a/nix/flake.nix b/nix/flake.nix index 654bd69..61c5594 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -19,51 +19,50 @@ nixpkgs, home-manager, ... - }@inputs: let - lib = nixpkgs.lib; - inherit (self) outputs; + } @ inputs: let + lib = nixpkgs.lib; + inherit (self) outputs; - systems = [ "x86_64-linux" ]; - forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); - pkgsFor = lib.genAttrs systems ( - system: - import nixpkgs { - inherit system; - config.allowUnfree = true; + systems = ["x86_64-linux"]; + forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system}); + pkgsFor = lib.genAttrs systems ( + system: + import nixpkgs { + inherit system; + config.allowUnfree = true; + } + ); + in { + packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;}); + formatter = forEachSystem (pkgs: pkgs.alejandra); + devShells = forEachSystem (pkgs: import ./shells {inherit pkgs;}); + nixosModules = import ./modules/nixos; + homeManagerModules = import ./modules/home-manager; + overlays = import ./overlays {inherit inputs outputs;}; + + nixosConfigurations = let + pkgs = pkgsFor.x86_64-linux; + in { + ytnix = lib.nixosSystem { + specialArgs = {inherit inputs outputs;}; + modules = [ + { + nixpkgs = {inherit pkgs;}; } - ); - in - { - packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; }); - formatter = forEachSystem (pkgs: pkgs.alejandra); - devShells = forEachSystem (pkgs: import ./shells { inherit pkgs; }); - nixosModules = import ./modules/nixos; - homeManagerModules = import ./modules/home-manager; - overlays = import ./overlays {inherit inputs outputs;}; - - nixosConfigurations = let - pkgs = pkgsFor.x86_64-linux; - in { - ytnix = lib.nixosSystem { - specialArgs = { inherit inputs outputs; }; - modules = [ - { - nixpkgs = {inherit pkgs;}; - } - ./hosts/ytnix - inputs.sops-nix.nixosModules.sops - ]; - }; - }; - - homeConfigurations = { - "yt@ytnix" = home-manager.lib.homeManagerConfiguration { - pkgs = pkgsFor.x86_64-linux; - extraSpecialArgs = { inherit inputs outputs; }; - modules = [ - ./home/yt/ytnix.nix - ]; - }; + ./hosts/ytnix + inputs.sops-nix.nixosModules.sops + ]; }; }; + + homeConfigurations = { + "yt@ytnix" = home-manager.lib.homeManagerConfiguration { + pkgs = pkgsFor.x86_64-linux; + extraSpecialArgs = {inherit inputs outputs;}; + modules = [ + ./home/yt/ytnix.nix + ]; + }; + }; + }; } diff --git a/nix/hosts/ytnix/default.nix b/nix/hosts/ytnix/default.nix index 1f277cc..0f5dbe9 100644 --- a/nix/hosts/ytnix/default.nix +++ b/nix/hosts/ytnix/default.nix @@ -19,7 +19,7 @@ channel.enable = false; optimise = { automatic = true; - dates = [ "03:45" ]; + dates = ["03:45"]; }; gc = { automatic = true; @@ -33,9 +33,9 @@ sops.defaultSopsFormat = "yaml"; sops.age.keyFile = "/root/.config/sops/age/keys.txt"; sops.secrets = { - "borg/yt" = { }; - "azure" = { }; - "ntfy" = { }; + "borg/yt" = {}; + "azure" = {}; + "ntfy" = {}; }; boot = { @@ -68,10 +68,10 @@ dns = "none"; wifi.backend = "iwd"; }; - nameservers = [ "127.0.0.1" "::1" ]; + nameservers = ["127.0.0.1" "::1"]; resolvconf.enable = true; firewall = { - trustedInterfaces = [ "wgnord" ]; + trustedInterfaces = ["wgnord"]; }; }; programs.nm-applet.enable = true; @@ -91,7 +91,7 @@ "bluez5.enable-sbc-xq" = true; "bluez5.enable-msbc" = true; "bluez5.enable-hw-volume" = true; - "bluez5.roles" = [ "a2dp_sink" "a2dp_source" ]; + "bluez5.roles" = ["a2dp_sink" "a2dp_source"]; }; }; }; @@ -100,7 +100,7 @@ users.users.yt = { isNormalUser = true; - extraGroups = [ "wheel" "libvirtd" "docker" ]; + extraGroups = ["wheel" "libvirtd" "docker"]; shell = pkgs.zsh; }; @@ -167,7 +167,7 @@ programs.sway.enable = true; services.borgbackup.jobs.ytnixRsync = { - paths = [ "/root" "/home" "/var/lib" "/var/log" "/opt" "/etc" ]; + paths = ["/root" "/home" "/var/lib" "/var/log" "/opt" "/etc"]; exclude = [ "**/.cache" "**/node_modules" @@ -192,7 +192,7 @@ }; compression = "auto,zstd"; startAt = "daily"; - extraCreateArgs = [ "--stats" ]; + extraCreateArgs = ["--stats"]; # warnings are often not that serious failOnWarnings = false; postHook = '' @@ -209,8 +209,8 @@ snapshot_preserve_min = "2d"; snapshot_dir = "/snapshots"; subvolume = { - "/home" = { }; - "/" = { }; + "/home" = {}; + "/" = {}; }; }; }; diff --git a/nix/hosts/ytnix/hardware-configuration.nix b/nix/hosts/ytnix/hardware-configuration.nix index 1b21813..6198b36 100644 --- a/nix/hosts/ytnix/hardware-configuration.nix +++ b/nix/hosts/ytnix/hardware-configuration.nix @@ -1,57 +1,58 @@ # 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. -{ config, lib, pkgs, modulesPath, ... }: - { - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { - device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; - fsType = "btrfs"; - options = [ "subvol=root" "compress=zstd" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; + fsType = "btrfs"; + options = ["subvol=root" "compress=zstd"]; + }; boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/c6098a16-c8a6-4a97-8648-6f46ca919d13"; - fileSystems."/home" = - { - device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; - fsType = "btrfs"; - options = [ "subvol=home" "compress=zstd" ]; - }; + fileSystems."/home" = { + device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; + fsType = "btrfs"; + options = ["subvol=home" "compress=zstd"]; + }; - fileSystems."/nix" = - { - device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" "noatime" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; + fsType = "btrfs"; + options = ["subvol=nix" "compress=zstd" "noatime"]; + }; - fileSystems."/swap" = - { - device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; - fileSystems."/boot" = - { - device = "/dev/disk/by-uuid/29B7-F46D"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/29B7-F46D"; + fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; + }; - swapDevices = [{ - device = "/swap/swapfile"; - }]; + swapDevices = [ + { + device = "/swap/swapfile"; + } + ]; boot.resumeDevice = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3"; - boot.kernelParams = [ "resume_offset=53224704" ]; + boot.kernelParams = ["resume_offset=53224704"]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/nix/pkgs/anki-bin.nix b/nix/pkgs/anki-bin.nix index 01cc31e..782fb8d 100644 --- a/nix/pkgs/anki-bin.nix +++ b/nix/pkgs/anki-bin.nix @@ -1,18 +1,16 @@ -{ fetchurl -, stdenv -, lib -, buildFHSEnv -, appimageTools -, writeShellScript -, anki -, undmg -, zstd -, cacert -, commandLineArgs ? [ ] -, -}: - -let +{ + fetchurl, + stdenv, + lib, + buildFHSEnv, + appimageTools, + writeShellScript, + anki, + undmg, + zstd, + cacert, + commandLineArgs ? [], +}: let pname = "anki-bin"; # Update hashes for both Linux and Darwin! version = "24.11"; @@ -37,7 +35,7 @@ let unpacked = stdenv.mkDerivation { inherit pname version; - nativeBuildInputs = [ zstd ]; + nativeBuildInputs = [zstd]; src = sources.linux; installPhase = '' @@ -55,7 +53,8 @@ let }; meta = with lib; { - inherit (anki.meta) + inherit + (anki.meta) license homepage description @@ -67,7 +66,7 @@ let "x86_64-darwin" "aarch64-darwin" ]; - maintainers = with maintainers; [ mahmoudk1000 ]; + maintainers = with maintainers; [mahmoudk1000]; }; passthru = { @@ -87,14 +86,12 @@ let ''; # Dependencies of anki - targetPkgs = - pkgs: - (with pkgs; [ - xorg.libxkbfile - xcb-util-cursor-HEAD - krb5 - zstd - ]); + targetPkgs = pkgs: (with pkgs; [ + xorg.libxkbfile + xcb-util-cursor-HEAD + krb5 + zstd + ]); runScript = writeShellScript "anki-wrapper.sh" '' exec ${unpacked}/bin/anki ${lib.strings.escapeShellArgs commandLineArgs} "$@" @@ -114,22 +111,24 @@ let } ); in + if stdenv.hostPlatform.isLinux + then fhsEnvAnki + else + stdenv.mkDerivation { + inherit pname version passthru; -if stdenv.hostPlatform.isLinux then - fhsEnvAnki -else - stdenv.mkDerivation { - inherit pname version passthru; + src = + if stdenv.hostPlatform.isAarch64 + then sources.darwin-aarch64 + else sources.darwin-x86_64; - src = if stdenv.hostPlatform.isAarch64 then sources.darwin-aarch64 else sources.darwin-x86_64; + nativeBuildInputs = [undmg]; + sourceRoot = "."; - nativeBuildInputs = [ undmg ]; - sourceRoot = "."; + installPhase = '' + mkdir -p $out/Applications/ + cp -a Anki.app $out/Applications/ + ''; - installPhase = '' - mkdir -p $out/Applications/ - cp -a Anki.app $out/Applications/ - ''; - - inherit meta; - } + inherit meta; + } diff --git a/nix/pkgs/default.nix b/nix/pkgs/default.nix index bae0711..f69472f 100644 --- a/nix/pkgs/default.nix +++ b/nix/pkgs/default.nix @@ -1,3 +1,3 @@ pkgs: { - anki-bin = pkgs.callPackage ./anki-bin.nix { }; + anki-bin = pkgs.callPackage ./anki-bin.nix {}; }