diff --git a/flake.nix b/flake.nix index b8c07ca..ba096b8 100644 --- a/flake.nix +++ b/flake.nix @@ -66,23 +66,23 @@ in { # nixos-rebuild switch --flake .#hostname nixosConfigurations = { - # PCs and Laptops - firefly = mkNix [ ./hosts/firefly/system ]; - shuttleworth = mkNix [ ./hosts/shuttleworth/system ]; - lacros = mkNix [ ./hosts/lacros/system ]; - redmond = mkNix [ ./hosts/redmond/system ]; + firefly = mkNix [ ./hosts/firefly/system ]; # Main Desktop + shuttle = mkNix [ ./hosts/shuttleworth/system ]; # Pinebook Pro + lacros = mkNix [ ./hosts/lacros/system ]; # Dell Chromebook + redmond = mkNix [ ./hosts/redmond/system ]; # Lenovo Laptop + treefruit = mkNix [ ./hosts/treefruit/system ]; # Macbook 14,1 - # Servers - cyberspark = mkNix [ ./hosts/cyberspark/system ]; - bomberman = mkNix [ ./hosts/bomberman/system ]; + cyberspark = mkNix [ ./hosts/cyberspark/system ]; # Dell Optiplex 7010 + bomberman = mkNix [ ./hosts/bomberman/system ]; # Oracle ARM }; # home-manager switch --flake .#username@hostname homeConfigurations = { "jimbo@firefly" = mkHome [ ./hosts/firefly/home ] nixpkgs.legacyPackages.x86_64-linux; - "jimbo@shuttleworth" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux; + "jimbo@shuttle" = mkHome [ ./hosts/shuttleworth/home ] nixpkgs.legacyPackages.aarch64-linux; "jimbo@lacros" = mkHome [ ./hosts/lacros/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@redmond" = mkHome [ ./hosts/redmond/home ] nixpkgs.legacyPackages.x86_64-linux; + "jimbo@treefruit" = mkHome [ ./hosts/treefruit/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@cyberspark" = mkHome [ ./hosts/cyberspark/home ] nixpkgs.legacyPackages.x86_64-linux; "jimbo@bomberman" = mkHome [ ./hosts/bomberman/home ] nixpkgs.legacyPackages.aarch64-linux; diff --git a/hosts/firefly/system/hardware/default.nix b/hosts/firefly/system/hardware/default.nix index 038c02a..2edf666 100644 --- a/hosts/firefly/system/hardware/default.nix +++ b/hosts/firefly/system/hardware/default.nix @@ -91,48 +91,8 @@ }; # Network mounts - "/home/jimbo/JimboNFS/Downloads" = { - device = "${config.ips.server}:/export/JimboNFS/Downloads"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Documents" = { - device = "${config.ips.server}:/export/JimboNFS/Documents"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Photos" = { - device = "${config.ips.server}:/export/JimboNFS/Photos"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Videos/Random" = { - device = "${config.ips.server}:/export/JimboNFS/Videos/Random"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Videos/Media" = { - device = "${config.ips.server}:/export/JimboNFS/Videos/Media"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Music/Synced" = { - device = "${config.ips.server}:/export/JimboNFS/Music/Synced"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Music/Unsynced" = { - device = "${config.ips.server}:/export/JimboNFS/Music/Unsynced"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/Projects" = { - device = "${config.ips.server}:/export/JimboNFS/Projects"; - fsType = "nfs4"; - options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; - }; - "/home/jimbo/JimboNFS/School" = { - device = "${config.ips.server}:/export/JimboNFS/School"; + "/home/jimbo/JimboNFS" = { + device = "${config.ips.server}:/export/JimboNFS"; fsType = "nfs4"; options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; }; diff --git a/hosts/lacros/system/boot/default.nix b/hosts/lacros/system/boot/default.nix index 8b5e01f..4b60e8a 100644 --- a/hosts/lacros/system/boot/default.nix +++ b/hosts/lacros/system/boot/default.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { boot = { kernelPackages = pkgs.linuxPackages_latest; diff --git a/hosts/lacros/system/hardware/default.nix b/hosts/lacros/system/hardware/default.nix index 4b3b692..f04fcd6 100644 --- a/hosts/lacros/system/hardware/default.nix +++ b/hosts/lacros/system/hardware/default.nix @@ -49,7 +49,7 @@ "/home/jimbo/JimboNFS" = { device = "${config.ips.wgSpan}.1:/export/JimboNFS"; fsType = "nfs4"; - options = ["x-systemd.automount" "_netdev" "nofail" "noauto"]; + options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; }; }; diff --git a/hosts/shuttleworth/system/default.nix b/hosts/shuttleworth/system/default.nix index 06ca1a7..29a3ed1 100644 --- a/hosts/shuttleworth/system/default.nix +++ b/hosts/shuttleworth/system/default.nix @@ -26,7 +26,7 @@ hardware.nixosModules.pine64-pinebook-pro ]; - networking.hostName = "shuttleworth"; + networking.hostName = "shuttle"; hardware.opengl.driSupport32Bit = lib.mkForce false; networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.17/24" ]; } diff --git a/hosts/treefruit/home/default.nix b/hosts/treefruit/home/default.nix new file mode 100644 index 0000000..074429f --- /dev/null +++ b/hosts/treefruit/home/default.nix @@ -0,0 +1,25 @@ +{ config, nur, ... }: +{ + imports = [ + # Apps and programs + ../../../modules/home + ../../../modules/home/users + ../../../modules/home/files + ../../../modules/home/settings + ../../../modules/home/programs + ../../../modules/home/programs/misc/production + ../../../modules/home/programs/misc/gaming/launchers + ../../../modules/home/programs/misc/gaming/xash3d + ../../../modules/home/programs/misc/remote-desktop + ../../../modules/home/sway + ../../../modules/home/utils + + # Misc + ../../../overlays + ../../../variables + ../../../variables/look/colors/green + + # Imports + nur.nixosModules.nur + ]; +} diff --git a/hosts/treefruit/id_ed25519.pub b/hosts/treefruit/id_ed25519.pub new file mode 100644 index 0000000..089969c --- /dev/null +++ b/hosts/treefruit/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAzAyY6bLK/pOlijVOZjw3ikdIaOuCC1yQjxL922bON7 jimbo@treefruit diff --git a/hosts/treefruit/system/boot/default.nix b/hosts/treefruit/system/boot/default.nix new file mode 100644 index 0000000..b88ae29 --- /dev/null +++ b/hosts/treefruit/system/boot/default.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: +{ + boot = { + kernelPackages = pkgs.linuxPackages_latest; + kernel.sysctl."vm.max_map_count" = 2147483642; + initrd = { + systemd.enable = true; + luks.devices = { + crypt-mmc = { + device = "/dev/disk/by-uuid/5bc11b61-e4dc-465c-b87a-533955cf6177"; + preLVM = true; + allowDiscards = true; + }; + }; + }; + }; +} diff --git a/hosts/treefruit/system/default.nix b/hosts/treefruit/system/default.nix new file mode 100644 index 0000000..db774c6 --- /dev/null +++ b/hosts/treefruit/system/default.nix @@ -0,0 +1,31 @@ +{ config, lib, hardware, ... }: +{ + imports = [ + ./hardware + ./boot + + # Apps and programs + ../../../modules/system + ../../../modules/system/accounts + ../../../modules/system/desktop + ../../../modules/system/programs + ../../../modules/system/services + + # Devices and hardware + ../../../modules/system/devices + ../../../modules/system/devices/boot/systemd + ../../../modules/system/devices/networking/wireless + ../../../modules/system/devices/networking/firewall/pc + ../../../modules/system/devices/networking/wireguard/pc + + # Extras + ../../../overlays + ../../../variables + + # Imports + hardware.nixosModules.apple-macbook-pro-14-1 + ]; + + networking.hostName = "treefruit"; + networking.wireguard.interfaces."${config.ips.wgInt}".ips = [ "${config.ips.wgSpan}.21/24" ]; +} diff --git a/hosts/treefruit/system/hardware/default.nix b/hosts/treefruit/system/hardware/default.nix new file mode 100644 index 0000000..9975bc5 --- /dev/null +++ b/hosts/treefruit/system/hardware/default.nix @@ -0,0 +1,63 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + kernelModules = [ "kvm-intel" ]; + initrd = { + availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + kernelModules = [ "dm-snapshot" ]; + }; + }; + + fileSystems = { + "/" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@" ]; + }; + "/home" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@home" ]; + }; + "/nix" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@nix" ]; + }; + "/var" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@var" ]; + }; + "/.snapshots" = { + device = "/dev/disk/by-uuid/db67d9e8-2ead-4fe6-8a63-5c9e5071e06e"; + fsType = "btrfs"; + options = [ "subvol=@snapshots" ]; + }; + "/boot" = { + device = "/dev/disk/by-uuid/7B59-F17A"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + # Remote + "/home/jimbo/JimboNFS" = { + device = "${config.ips.wgSpan}.1:/export/JimboNFS"; + fsType = "nfs4"; + options = [ "x-systemd.automount" "_netdev" "nofail" "noauto" ]; + }; + }; + + swapDevices = [ + { device = "/dev/disk/by-uuid/25b5e281-f1be-49ca-991e-b340fed3e5da"; } + ]; + + networking.useDHCP = lib.mkDefault true; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/home/programs/gui/librewolf/default.nix b/modules/home/programs/gui/librewolf/default.nix index 83f1ef2..ed6ed67 100644 --- a/modules/home/programs/gui/librewolf/default.nix +++ b/modules/home/programs/gui/librewolf/default.nix @@ -294,7 +294,7 @@ in { sponsorblock return-youtube-dislikes simple-tab-groups - no-pdf-download + vimium ]; commonSearch = { force = true; diff --git a/modules/home/sway/waybar/default.nix b/modules/home/sway/waybar/default.nix index c3e0629..f7f400a 100644 --- a/modules/home/sway/waybar/default.nix +++ b/modules/home/sway/waybar/default.nix @@ -146,7 +146,7 @@ exec-if = "mpc status | grep -q '^\\[playing\\] \\|^\\[paused\\]'"; exec = pkgs.writeScript "mpvMetadata" '' get_metadata() { - mpc --format "%file%" | head -n 1 | sed -E 's/\.(mp3|mp4|m4a|mov|flac|opus|oga)$//; s/&/&/g' + mpc | head -n 1 } truncate_string() { diff --git a/modules/home/utils/zsh/default.nix b/modules/home/utils/zsh/default.nix index dbef8a8..9b04257 100644 --- a/modules/home/utils/zsh/default.nix +++ b/modules/home/utils/zsh/default.nix @@ -7,7 +7,7 @@ oh-my-zsh = { enable = true; theme = "agnoster"; - plugins = ["git"]; + plugins = [ "git" ]; }; shellAliases = { # NixOS aliases @@ -46,6 +46,7 @@ spotdl = "spotdl --m3u --format opus"; }; initExtra = '' + source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh ${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin; pfetch setopt HIST_IGNORE_SPACE setopt RM_STAR_WAIT diff --git a/modules/system/accounts/users/jimbo/default.nix b/modules/system/accounts/users/jimbo/default.nix index 967ab0e..8ad47c8 100644 --- a/modules/system/accounts/users/jimbo/default.nix +++ b/modules/system/accounts/users/jimbo/default.nix @@ -10,6 +10,7 @@ (builtins.readFile ../../../../../hosts/shuttleworth/id_ed25519.pub) (builtins.readFile ../../../../../hosts/lacros/id_ed25519.pub) (builtins.readFile ../../../../../hosts/redmond/id_ed25519.pub) + (builtins.readFile ../../../../../hosts/treefruit/id_ed25519.pub) (builtins.readFile ../../../../../hosts/cyberspark/id_ed25519.pub) (builtins.readFile ../../../../../hosts/bomberman/id_ed25519.pub) diff --git a/modules/system/services/pc/keyd/default.nix b/modules/system/services/pc/keyd/default.nix index 2af1288..20e30cf 100644 --- a/modules/system/services/pc/keyd/default.nix +++ b/modules/system/services/pc/keyd/default.nix @@ -7,21 +7,40 @@ settings = { main = { capslock = "overload(control,esc)"; - esc = "capslock"; + leftcontrol = "overload(ctrlmod,noop)"; + + esc = "`"; rightcontrol = "esc"; - leftcontrol = "noop"; left = "noop"; down = "noop"; up = "noop"; right = "noop"; }; + control = { h = "left"; j = "down"; k = "up"; l = "right"; + g = "macro(C-h)"; semicolon = "macro(C-l)"; }; + + ctrlmod = { + backspace = "delete"; + "1" = "f1"; + "2" = "f2"; + "3" = "f3"; + "4" = "f4"; + "5" = "f5"; + "6" = "f6"; + "7" = "f7"; + "8" = "f8"; + "9" = "f9"; + "0" = "f10"; + "-" = "f11"; + "=" = "f12"; + }; }; }; }; diff --git a/modules/system/services/server/webhost/default.nix b/modules/system/services/server/webhost/default.nix index a34929f..eaab380 100644 --- a/modules/system/services/server/webhost/default.nix +++ b/modules/system/services/server/webhost/default.nix @@ -2,7 +2,6 @@ { imports = [ ./nginx - ./rtmp ./virtualhosts ]; } diff --git a/modules/system/services/server/webhost/virtualhosts/default.nix b/modules/system/services/server/webhost/virtualhosts/default.nix index 33e6bd3..fa8df4b 100644 --- a/modules/system/services/server/webhost/virtualhosts/default.nix +++ b/modules/system/services/server/webhost/virtualhosts/default.nix @@ -1,6 +1,6 @@ { ... }: { imports = [ - ./jimDomain + ./jimDomain1 ]; } diff --git a/modules/system/services/server/webhost/virtualhosts/jimDomain/default.nix b/modules/system/services/server/webhost/virtualhosts/jimDomain1/default.nix similarity index 89% rename from modules/system/services/server/webhost/virtualhosts/jimDomain/default.nix rename to modules/system/services/server/webhost/virtualhosts/jimDomain1/default.nix index be8e6e5..034bc79 100644 --- a/modules/system/services/server/webhost/virtualhosts/jimDomain/default.nix +++ b/modules/system/services/server/webhost/virtualhosts/jimDomain1/default.nix @@ -32,8 +32,4 @@ }; }; }; - - systemd.services.nginx.serviceConfig = { - ReadWritePaths = [ "/var/www/Jimbo-Landing-Page/streams/hls/" ]; - }; }