diff --git a/flake.lock b/flake.lock index efbb83a..4b94bd5 100644 --- a/flake.lock +++ b/flake.lock @@ -275,11 +275,11 @@ "utils": "utils_2" }, "locked": { - "lastModified": 1663835995, - "narHash": "sha256-XNHQ+mdHbjNR1Oit00SFAEcrAZoCS08E7uAFcVMtwhM=", + "lastModified": 1663932797, + "narHash": "sha256-IH8ZBW99W2k7wKLS+Sat9HiKX1TPZjFTnsPizK5crok=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd83eab6220226085c82e637931a7ae3863d9893", + "rev": "de3758e31a3a1bc79d569f5deb5dac39791bf9b6", "type": "github" }, "original": { @@ -296,11 +296,11 @@ "wlroots": "wlroots" }, "locked": { - "lastModified": 1663866803, - "narHash": "sha256-wfhZ//vxhipvF9n9f+s4W0Ql35B5IsLiO5cYAqbxIDQ=", + "lastModified": 1663953535, + "narHash": "sha256-bGIIXSdEpkw1XWuOeJZtF4f8/EEo1HghNAQPaY+EKCg=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "ef3eb37c7f2cdbbab23e611aedc438c317463ef8", + "rev": "959557ecc35ed8708facf979f5b255b80885a50a", "type": "github" }, "original": { @@ -370,11 +370,11 @@ ] }, "locked": { - "lastModified": 1661448932, - "narHash": "sha256-0Ryhy6w3f8AhQn5ZllCt6+6t5+ky5PtTesslMXFjLUw=", + "lastModified": 1659964474, + "narHash": "sha256-PK8yYgRg7IG07Town2pVWB0tmtBBzIXtX5pqssHW6B4=", "owner": "lourkeur", "repo": "miniguest", - "rev": "6182fb1f074efe16bdab59b159e910c81b165e2f", + "rev": "dd5c5ef2dc4933bcb0504d7120c410219de607e2", "type": "github" }, "original": { @@ -546,11 +546,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1663867771, - "narHash": "sha256-4vu3CatfxujbDX6FkHhY29Q1bFzjo/uvsWLa83MZx8w=", + "lastModified": 1663957247, + "narHash": "sha256-LKzVntuuwkXGezUnxTTYG5NlxYUTFFmMPe/EshDQAgc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a22f7345336c7bbb785d3525c6760c5391c3171f", + "rev": "05914af3e0b0a358abf23bb4d80853acc4861b07", "type": "github" }, "original": { @@ -594,11 +594,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1663760840, - "narHash": "sha256-ym5Iycs5H4cOaLfE2/vC0tsLp8XuBJQIHGV8/uXSy8M=", + "lastModified": 1663855239, + "narHash": "sha256-A2B7rlFKmBikRwz/cmayWcTAhyIOdp2whjVCDGhg9Xw=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9bdbbaa634aa666eb6a27096bdcb991c59181244", + "rev": "bcc68429a50c4ac051920c72c60e417202c19d79", "type": "github" }, "original": { @@ -618,11 +618,11 @@ ] }, "locked": { - "lastModified": 1663787477, - "narHash": "sha256-gk4hht7ukjipy5Xw6glCwgCY3nNqQxrsNLsj6PxtDe0=", + "lastModified": 1663957741, + "narHash": "sha256-iAV7vaPsPIbJ4+dShe9VNdjOeIcMlMKtlnqpSvC9iz0=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "3c06306de01e463b09e88d312bfe17971aaadb9d", + "rev": "007dde17cf749db8e78cb9f2e74c562483b06e60", "type": "github" }, "original": { @@ -665,11 +665,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1663761423, - "narHash": "sha256-bDLXl2BVq7eIQz/8CduZI1SLyhG9u/CrckHd6f7bwPE=", + "lastModified": 1663850217, + "narHash": "sha256-tp9nXo1/IdN/xN9m06ryy0QUAEfoN6K56ObM/1QTAjc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d6490a0bd9dfb298fcd8382d3363b86870dc7340", + "rev": "ae1dc133ea5f1538d035af41e5ddbc2ebcb67b90", "type": "github" }, "original": { @@ -681,11 +681,11 @@ }, "nur": { "locked": { - "lastModified": 1663871140, - "narHash": "sha256-1HLjTL67ubOdPnIyECioP9TPNtL+NuxlY9D/qHpk7rA=", + "lastModified": 1663955967, + "narHash": "sha256-Ohl1Cnf6Dv9QmZNq5grMV1fV4srTtHIO6wwtTsQFshw=", "owner": "nix-community", "repo": "NUR", - "rev": "a643ef20f4722ae40f8949be4c453271172be25a", + "rev": "bc25b7916941f381a0a1a3b2a8659422f2d7aab1", "type": "github" }, "original": { @@ -806,11 +806,11 @@ "rycee": { "flake": false, "locked": { - "lastModified": 1663819364, - "narHash": "sha256-+dv4D+C2NRS6OnzfAvxYbE9GA65FhZQ0E+biMtHWDNo=", + "lastModified": 1663933333, + "narHash": "sha256-h4m8WDfnR0OrdAbMagzAPA7ENBJ+0WL33mtb3EeIcFI=", "owner": "rycee", "repo": "nur-expressions", - "rev": "7f27fc9880250a0eaf6386aa93286198ceaecbe0", + "rev": "4c461713bc88c297fae426b0fb63a0d459e869fb", "type": "gitlab" }, "original": { diff --git a/flake.nix b/flake.nix index bd0cc40..0e39b3d 100644 --- a/flake.nix +++ b/flake.nix @@ -89,9 +89,9 @@ if [[ -z $1 ]]; then echo "Usage: $(basename $0) {switch|boot|test}" elif [[ $1 = "iso" ]]; then - nix build .#nixosConfigurations.Flakes-ISO.config.system.build.isoImage + nix build .#nixosConfigurations.Flakes-ISO.config.system.build.isoImage "$@" else - sudo nixos-rebuild $1 --flake . + sudo nixos-rebuild $1 --flake . "$@" fi ''); update-vscode = (pkgs: pkgs.writeShellScriptBin "update-vscode" '' diff --git a/install/install-zsh.sh b/install/install-zfs.sh old mode 100644 new mode 100755 similarity index 70% rename from install/install-zsh.sh rename to install/install-zfs.sh index 6fb09bb..5007860 --- a/install/install-zsh.sh +++ b/install/install-zfs.sh @@ -1,15 +1,14 @@ #! /usr/bin/env nix-shell -#! nix-shell -i bash -p perl -p gptfdisk -p parted +#! nix-shell -i bash -p perl -p gptfdisk -p parted -p git set -e CONFIG_FOLDER="$(dirname "$(pwd)")" -DEVICE_NAME=NixOS-VM -MAX_JOBS=4 -SWAP_SIZE=2GiB -NIXOS_COMMIT="84917aa00bf23c88e5874c683abe05edb0ba4078" +DEVICE_NAME=AMD-Workstation +MAX_JOBS=8 +SWAP_SIZE=16GiB USE_ECNRYPTION=false -ZFS_ARC_MAX=1073741824 # Max ARC cache size. default = 4GiB +ZFS_ARC_MAX=8589934592 # ZFS_ARC_MAX=4294967296 # Max ARC cache size. default = 4GiB ZFS_ASHIFT=12 # recommended=12 which 1<<12 (4096) @@ -56,7 +55,7 @@ create_new_part_table() { sgdisk -n 3 -t 3:8309 "$DISK" else pprint "Creating ROOT partition" - sgdisk -n 3 -t 3:8300 "$DISK" + sgdisk -n 3 -t 3:BF00 "$DISK" fi LINUX="$DISK-part3" @@ -158,42 +157,50 @@ if [[ "$SWAP" != "NONE" ]]; then fi pprint "Create ZFS pool on $ZFS" -zpool create -f -m none -o ashift=$ZFS_ASHIFT -O compression=lz4 -O normalization=formD -O atime=on -O relatime=on -O dedup=off -O com.sun:auto-snapshot=true -R /mnt rpool "$ZFS" +zpool create \ + -f \ + # -m none \ + -o ashift=$ZFS_ASHIFT \ + -o autotrim=on \ + -R /mnt \ + -O acltype=posixacl \ + -O atime=on \ + -O canmount=off \ + -O compression=zstd \ + -O dnodesize=auto + -O normalization=formD \ + -O relatime=on \ + -O xattr=sa \ + -O dedup=off \ + # -O com.sun:auto-snapshot=true \ + -O mountpoint=/ \ + rpool "$ZFS" pprint "Create ZFS datasets" -zfs create -o mountpoint=none rpool/local -zfs create -o mountpoint=legacy -o com.sun:auto-snapshot=false -o atime=off -o recordsize=16K rpool/local/bittorrent -zfs create -o mountpoint=legacy -o com.sun:auto-snapshot:frequent=false -o com.sun:auto-snapshot:monthly=false -o atime=off rpool/local/nix -zfs create -o mountpoint=legacy -o xattr=sa -o atime=off -o recordsize=8K -o com.sun:auto-snapshot:frequent=false rpool/local/libvirt -zfs create -o mountpoint=none -o com.sun:auto-snapshot:frequent=false rpool/system -zfs create -o mountpoint=legacy rpool/system/root -zfs create -o mountpoint=legacy -o xattr=sa -o acltype=posixacl rpool/system/var -zfs create -o mountpoint=none rpool/user -zfs create -o mountpoint=legacy rpool/user/home +zfs create -o canmount=off -o mountpoint=none rpool/nixos +zfs create -o canmount=off -o mountpoint=none rpool/user +zfs create -o canmount=on -o mountpoint=/ rpool/nixos/root +zfs create -o canmount=noauto -o mountpoint=/ rpool/nixos/empty +zfs create -o canmount=on -o mountpoint=/nix rpool/nixos/nix +zfs create -o canmount=on -o mountpoint=/home rpool/user/home +zfs create -o canmount=off -o mountpoint=/var rpool/nixos/var +zfs create -o canmount=on rpool/nixos/var/lib +zfs create -o canmount=on rpool/nixos/var/log +zfs create -o canmount=on -o mountpoint=/media/bittorrent -o atime=off -o recordsize=256K rpool/nixos/bittorrent +zfs create -o canmount=on -o mountpoint=/media/libvirt -o atime=off -o recordsize=64K rpool/nixos/libvirt # Create blank zfs snapshot -zfs snapshot rpool/local@blank -zfs snapshot rpool/system@blank +zfs snapshot rpool/nixos@blank +zfs snapshot rpool/user@blank +zfs snapshot rpool/nixos/empty@start -pprint "Mount ZFS datasets" -mount -t zfs rpool/system/root /mnt - -mkdir /mnt/nix -mount -t zfs rpool/local/nix /mnt/nix - -mkdir /mnt/var -mount -t zfs rpool/system/var /mnt/var - -mkdir /mnt/home -mount -t zfs rpool/user/home /mnt/home - -mkdir -p /mnt/home/alukard/.libvirt -chown -R 1000:100 /mnt/home/alukard -mount -t zfs rpool/local/libvirt /mnt/home/alukard/.libvirt - -mkdir /mnt/bittorrent -mount -t zfs rpool/local/bittorrent /mnt/bittorrent +# Disable cache, stale cache will prevent system from booting +mkdir -p /mnt/etc/zfs/ +rm -f /mnt/etc/zfs/zpool.cache +touch /mnt/etc/zfs/zpool.cache +chmod a-w /mnt/etc/zfs/zpool.cache +chattr +i /mnt/etc/zfs/zpool.cache mkdir /mnt/boot mount "$BOOT" /mnt/boot @@ -212,6 +219,7 @@ if [[ "$USE_ECNRYPTION" = true ]] then cat <<CONFIG > "$HARDWARE_CONFIG" networking.hostId = "$HOSTID"; + boot.kernelParams = [ "nohibernate" ]; boot.initrd.luks.devices."$LUKS_DEVICE_NAME".device = "/dev/disk/by-partuuid/$LINUX_DISK_UUID"; boot.zfs.devNodes = "$ZFS"; boot.supportedFilesystems = [ "zfs" ]; @@ -220,6 +228,7 @@ CONFIG else cat <<CONFIG > "$HARDWARE_CONFIG" networking.hostId = "$HOSTID"; + boot.kernelParams = [ "nohibernate" ]; boot.zfs.devNodes = "$ZFS"; boot.supportedFilesystems = [ "zfs" ]; boot.kernelParams = [ "zfs.zfs_arc_max=$ZFS_ARC_MAX" ]; @@ -228,24 +237,25 @@ fi pprint "Append ZFS configuration to hardware-configuration.nix" sed -i "\$e cat $HARDWARE_CONFIG" /mnt/etc/nixos/hardware-configuration.nix +sed -i 's|fsType = "zfs";|fsType = "zfs"; options = [ "zfsutil" "X-mount.mkdir" ];|g' /mnt/etc/nixos/hardware-configuration.nix if [[ "$SWAP" != "NONE" ]]; then perl -0777 -pi -e "s#swapDevices.+#swapDevices = [\n {\n device = \"/dev/disk/by-partuuid/$SWAP_UUID\";\n randomEncryption.enable = true;\n }\n ];#" /mnt/etc/nixos/hardware-configuration.nix fi -pprint "Copy minimal config to destination system" +pprint "Copy hardware config to machines folder" cp /mnt/etc/nixos/hardware-configuration.nix $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix +chown 1000:users ../machines/$DEVICE_NAME/hardware-configuration.nix # Change <not-detected> for flakes -sed -i 's#<nixpkgs/nixos/modules/installer/scan/not-detected.nix>#"${inputs.nixpkgs}/nixos/modules/installer/scan/not-detected.nix"#' $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix -cp ./min-config.nix /mnt/etc/nixos/configuration.nix -sed -i "s#changeme#${DEVICE_NAME}#" /mnt/etc/nixos/configuration.nix +sed -i "s#<nixpkgs/nixos/modules/installer/scan/not-detected.nix>#\"\${inputs.nixpkgs}/nixos/modules/installer/scan/not-detected.nix\"#" $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix +git add -A clean_stdin read -p "> Do you want to execute nixos-install command?" -n 1 -r echo if [[ "$REPLY" =~ ^[Yy]$ ]] then - nixos-install -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$NIXOS_COMMIT.tar.gz --max-jobs $MAX_JOBS --no-root-passwd + nixos-install --flake "../#$DEVICE_NAME" --max-jobs $MAX_JOBS --no-root-passwd --impure fi pprint "Copy config to destination system" diff --git a/machines/Testing-VM/default.nix b/machines/Testing-VM/default.nix new file mode 100644 index 0000000..c65b01d --- /dev/null +++ b/machines/Testing-VM/default.nix @@ -0,0 +1,32 @@ +{ inputs, config, lib, pkgs, ... }: { + imports = [ + "${modulesPath}/profiles/qemu-guest.nix" + ./hardware-configuration.nix + inputs.self.nixosRoles.desktop + ]; + + deviceSpecific.devInfo = { + cpu = { + vendor = "amd"; + clock = 3700; + cores = 2; + }; + drive = { + type = "ssd"; + speed = 2000; + size = 30; + }; + gpu = { + vendor = "other"; + }; + bigScreen = false; + ram = 4; + }; + deviceSpecific.isHost = true; + deviceSpecific.isShared = false; + deviceSpecific.isGaming = false; + deviceSpecific.enableVirtualisation = false; + deviceSpecific.wireguard.enable = false; + + hardware.video.hidpi.enable = lib.mkForce false; +} diff --git a/machines/Testing-VM/system b/machines/Testing-VM/system new file mode 100644 index 0000000..9bdfd5f --- /dev/null +++ b/machines/Testing-VM/system @@ -0,0 +1 @@ +x86_64-linux \ No newline at end of file diff --git a/profiles/applications/firefox.nix b/profiles/applications/firefox.nix index 80d03a3..33eda5b 100755 --- a/profiles/applications/firefox.nix +++ b/profiles/applications/firefox.nix @@ -86,7 +86,7 @@ in { "general.autoScroll" = true; "extensions.pocket.enabled" = false; "browser.startup.page" = 1; - "browser.startup.homepage" = "https://organizr.ataraxiadev.com"; + "browser.startup.homepage" = "https://startpage.ataraxiadev.com"; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "browser.search.suggest.enabled" = true; "ui.context_menus.after_mouseup" = true; @@ -126,7 +126,7 @@ in { "signon.rememberSignons" = false; "general.autoScroll" = true; "extensions.pocket.enabled" = false; - "browser.startup.homepage" = "https://organizr.ataraxiadev.com"; + "browser.startup.homepage" = "https://startpage.ataraxiadev.com"; "toolkit.legacyUserProfileCustomizations.stylesheets" = true; "browser.search.suggest.enabled" = true; "browser.urlbar.suggest.searches" = true; @@ -135,9 +135,9 @@ in { "media.eme.enabled" = true; "browser.startup.page" = 3; - "network.cookie.lifetimePolicy" = 0; "browser.sessionstore.privacy_level" = 0; "privacy.clearOnShutdown.history" = false; + "privacy.clearOnShutdown.cookies" = false; "privacy.cpd.history" = false; "font.name.monospace.x-western" = "${fonts.mono.family}"; diff --git a/profiles/sound/pipewire.nix b/profiles/sound/pipewire.nix index 3caa356..e2f978b 100644 --- a/profiles/sound/pipewire.nix +++ b/profiles/sound/pipewire.nix @@ -72,6 +72,27 @@ ]; }; + environment.etc = { + "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' + bluez_monitor.properties = { + ["bluez5.enable-sbc-xq"] = true, + ["bluez5.enable-msbc"] = true, + ["bluez5.hw-volume"] = "[ hfp_ag hsp_ag a2dp_source a2dp_sink ]", + ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag a2dp_sink ]", + ["bluez5.reconnect-profiles"] = "[ hsp_hs hfp_hf a2dp_sink ]", + } + ''; + }; + + home-manager.users.alukard.xdg.configFile."wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = '' + bluez_monitor.properties = { + ["bluez5.enable-sbc-xq"] = true, + ["bluez5.enable-msbc"] = true, + ["bluez5.hw-volume"] = "[ hfp_ag hsp_ag a2dp_source a2dp_sink ]", + ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag a2dp_sink ]", + ["bluez5.reconnect-profiles"] = "[ hsp_hs hfp_hf a2dp_sink ]", + } + ''; security.rtkit.enable = true; home-manager.users.alukard.home.packages = [ pkgs.pavucontrol pkgs.pulseaudio ]; diff --git a/profiles/workspace/hyprland/default.nix b/profiles/workspace/hyprland/default.nix index f889871..93a4e7d 100644 --- a/profiles/workspace/hyprland/default.nix +++ b/profiles/workspace/hyprland/default.nix @@ -76,12 +76,11 @@ in with config.deviceSpecific; with lib; { ''} general { ${if config.device == "AMD-Workstation" then '' - sensitivity=0.7 + sensitivity=0.65 '' else '' sensitivity=1.3 ''} apply_sens_to_raw=false - main_mod=${modifier} border_size=1 no_border_on_floating=false gaps_in=6 @@ -144,6 +143,9 @@ in with config.deviceSpecific; with lib; { col.group_border_active=0xAA${thm.base08-hex} } '' '' + bindm=${modifier},mouse:272,movewindow + bindm=${modifier},mouse:273,resizewindow + bind=${modifier},q,killactive, bind=${modifier},f,fullscreen,0 bind=${modifier}SHIFT,F,togglefloating,