diff --git a/flake.lock b/flake.lock index 007a22a..b29f72b 100644 --- a/flake.lock +++ b/flake.lock @@ -15,6 +15,27 @@ "type": "github" } }, + "disko": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1746728054, + "narHash": "sha256-eDoSOhxGEm2PykZFa/x9QG5eTH0MJdiJ9aR00VAofXE=", + "owner": "nix-community", + "repo": "disko", + "rev": "ff442f5d1425feb86344c028298548024f21256d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "latest", + "repo": "disko", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -294,6 +315,7 @@ }, "root": { "inputs": { + "disko": "disko", "jovian": "jovian", "lanzaboote": "lanzaboote", "nix-darwin": "nix-darwin", diff --git a/flake.nix b/flake.nix index c2ac45a..808d6a1 100644 --- a/flake.nix +++ b/flake.nix @@ -8,12 +8,14 @@ lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; nix-darwin.url = "github:LnL7/nix-darwin"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; + disko.url = "github:nix-community/disko/latest"; + disko.inputs.nixpkgs.follows = "nixpkgs"; jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; jovian.inputs.nixpkgs.follows = "nixpkgs"; nix-minecraft.url = "github:Infinidoge/nix-minecraft"; }; - outputs = { self, nixpkgs, lanzaboote, nix-darwin, jovian, nix-minecraft, ... }@inputs: { + outputs = { self, nixpkgs, lanzaboote, nix-darwin, disko, jovian, nix-minecraft, ... }@inputs: { nixosConfigurations.nijika = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -56,6 +58,7 @@ lanzaboote.nixosModules.lanzaboote ./hosts/nijika/configuration.nix + disko.nixosModules.disko ]; }; @@ -79,6 +82,7 @@ ./hosts/miki/configuration.nix ./hosts/nixos-common.nix + disko.nixosModules.disko ]; }; diff --git a/hosts/nijika/configuration.nix b/hosts/nijika/configuration.nix index 32ff55b..6ff5009 100644 --- a/hosts/nijika/configuration.nix +++ b/hosts/nijika/configuration.nix @@ -2,6 +2,7 @@ { imports = [ + ./disko.nix ./hardware-configuration.nix ]; diff --git a/hosts/nijika/disko.nix b/hosts/nijika/disko.nix new file mode 100644 index 0000000..5d73a54 --- /dev/null +++ b/hosts/nijika/disko.nix @@ -0,0 +1,61 @@ +{ ... }: + +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "512M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + luks = { + size = "100%"; + content = { + type = "luks"; + name = "root"; + passwordFile = "/tmp/secret.key"; + settings = { + allowDiscards = true; + }; +# additionalKeyFiles = [ "/tmp/additionalSecret.key" ]; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; + subvolumes = { + "/root" = { + mountpoint = "/"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/home" = { + mountpoint = "/home"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/nix" = { + mountpoint = "/nix"; + mountOptions = [ "compress=zstd" "noatime" ]; + }; + "/swap" = { + mountpoint = "/.swapvol"; + swap.swapfile.size = "1G"; + }; + }; + }; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/hosts/nijika/hardware-configuration.nix b/hosts/nijika/hardware-configuration.nix index 427e9df..77a2497 100644 --- a/hosts/nijika/hardware-configuration.nix +++ b/hosts/nijika/hardware-configuration.nix @@ -8,44 +8,17 @@ [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "uas" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/mapper/root"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; - - boot.initrd.luks.devices."root".device = "/dev/disk/by-uuid/4a0361b6-b3b4-48dd-a089-babdfa072fc2"; - - fileSystems."/nix" = - { device = "/dev/mapper/root"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; - - fileSystems."/.swapvol" = - { device = "/dev/mapper/root"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; - - fileSystems."/home" = - { device = "/dev/mapper/root"; - fsType = "btrfs"; - options = [ "subvol=home" ]; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/1653-F2C8"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; - - swapDevices = [ ]; + # 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 + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/modules/desktop/de/hyprland.nix b/modules/desktop/de/hyprland.nix index 4b18ead..ac7a1f0 100644 --- a/modules/desktop/de/hyprland.nix +++ b/modules/desktop/de/hyprland.nix @@ -19,7 +19,7 @@ wl-clipboard brightnessctl helvum - fuzzel + walker playerctl swaynotificationcenter hyprshot diff --git a/stow/.config/fuzzel/.gitignore b/stow/.config/fuzzel/.gitignore deleted file mode 100644 index 64550cc..0000000 --- a/stow/.config/fuzzel/.gitignore +++ /dev/null @@ -1 +0,0 @@ -colors.ini diff --git a/stow/.config/fuzzel/fuzzel.ini b/stow/.config/fuzzel/fuzzel.ini deleted file mode 100644 index 21e7912..0000000 --- a/stow/.config/fuzzel/fuzzel.ini +++ /dev/null @@ -1,24 +0,0 @@ -[main] -include = "~/.config/fuzzel/colors.ini" - -prompt="> " -placeholder="Search..." -password-character="*" - -width=40 -use-bold=no -dpi-aware=auto -tabs="4" -terminal="ghostty -e" -keyboard-focus=exclusive - -fields=filename,name,generic,exec,keywords,comment,categories -match-mode="fzf" -sort-result=yes - -layer=top - -[border] -width=2 -radius=10 -selection-radius=10 diff --git a/stow/.config/hypr/hyprland.conf b/stow/.config/hypr/hyprland.conf index 1c08bae..137e901 100755 --- a/stow/.config/hypr/hyprland.conf +++ b/stow/.config/hypr/hyprland.conf @@ -17,6 +17,7 @@ exec-once = uwsm app -- swww-daemon exec-once = uwsm app -- waybar exec-once = uwsm app -- swaync exec-once = hyprshade auto +exec-once = walker -A exec-once = uwsm app -- opensnitch-ui exec-once = systemctl --user start hyprpolkitagent @@ -145,7 +146,7 @@ input { # https://wiki.hyprland.org/Configuring/Variables/#gestures gesture = 3, horizontal, workspace -gesture = 4, pinch, dispatcher, exec, fuzzel +gesture = 4, pinch, dispatcher, exec, walker gesture = 4, left, dispatcher, exec, swaync-client -op gesture = 4, right, dispatcher, exec, swaync-client -cp @@ -167,7 +168,7 @@ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, uwsm app -- ghostty bind = $mainMod, B, exec, uwsm app -- firefox -bind = $mainMod, D, exec, fuzzel +bind = $mainMod, D, exec, walker bind = $mainMod shift, D, exec, uwsm app -- 1password --quick-access bind = $mainMod, S, exec, uwsm app -- hyprshot -z --clipboard-only -m region bind = $mainMod shift, S, exec, uwsm app -- hyprshot -z --clipboard-only -m window diff --git a/stow/.config/matugen/config.toml b/stow/.config/matugen/config.toml index a607365..9e3f0cd 100644 --- a/stow/.config/matugen/config.toml +++ b/stow/.config/matugen/config.toml @@ -72,7 +72,3 @@ output_path = '~/.cache/zsh_colours.sh' input_path = './templates/pure.fish' output_path = '~/.config/fish/pure_colours.fish' post_hook = 'fish ~/.config/fish/pure_colours.fish' - -[templates.fuzzel] -input_path = './templates/fuzzel.ini' -output_path = '~/.config/fuzzel/colors.ini' diff --git a/stow/.config/matugen/templates/fuzzel.ini b/stow/.config/matugen/templates/fuzzel.ini deleted file mode 100644 index d6c657f..0000000 --- a/stow/.config/matugen/templates/fuzzel.ini +++ /dev/null @@ -1,18 +0,0 @@ -# Fuzzel Colors -# Generated with Matugen - -[main] -font=ComicShannsMono Nerd Font - -[colors] -background={{colors.background.default.hex_stripped}}ff -text={{colors.on_surface.default.hex_stripped}}ff -prompt={{colors.secondary.default.hex_stripped}}ff -placeholder={{colors.tertiary.default.hex_stripped}}ff -input={{colors.primary.default.hex_stripped}}ff -match={{colors.tertiary.default.hex_stripped}}ff -selection={{colors.primary.default.hex_stripped}}ff -selection-text={{colors.background.default.hex_stripped}}ff -selection-match={{colors.on_primary.default.hex_stripped}}ff -counter={{colors.secondary.default.hex_stripped}}ff -border={{colors.primary.default.hex_stripped}}ff