From d935a4f3e1d67152149945adc31b7886ccf37701 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Thu, 14 Dec 2023 07:24:04 +0100 Subject: Desktop updates --- flake.lock | 421 -------------------------- host/Rory-desktop/configuration.nix | 97 +++--- host/Rory-desktop/mariadb.nix | 10 + host/Rory-desktop/nginx.nix | 39 +++ host/Rory-desktop/nginx/discord.localhost.nix | 37 +++ host/Rory-desktop/postgres.nix | 34 +++ modules/base.nix | 6 + modules/users/Rory.nix | 1 + modules/users/Rory/p10k.zsh | 4 +- modules/users/Rory/wallpaper.webp | Bin 0 -> 598752 bytes 10 files changed, 181 insertions(+), 468 deletions(-) delete mode 100644 flake.lock create mode 100644 host/Rory-desktop/mariadb.nix create mode 100644 host/Rory-desktop/nginx.nix create mode 100755 host/Rory-desktop/nginx/discord.localhost.nix create mode 100755 host/Rory-desktop/postgres.nix create mode 100644 modules/users/Rory/wallpaper.webp diff --git a/flake.lock b/flake.lock deleted file mode 100644 index f484198..0000000 --- a/flake.lock +++ /dev/null @@ -1,421 +0,0 @@ -{ - "nodes": { - "botcore-v4": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1683656302, - "narHash": "sha256-I2eu+9/i0ktqNzQwkc0NuczQ2UThCBf8L9xnZ8v3NSM=", - "owner": "BotCore-Devs", - "repo": "BotCore-v4", - "rev": "0e8738ba7df060782df050dc733b0bfc8c499830", - "type": "gitlab" - }, - "original": { - "owner": "BotCore-Devs", - "ref": "staging", - "repo": "BotCore-v4", - "type": "gitlab" - } - }, - "conduit": { - "inputs": { - "crane": "crane", - "fenix": "fenix", - "flake-utils": "flake-utils", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1694631477, - "narHash": "sha256-35SgWnBkWTyyRwVPyUKoShjzXfX0H1+HDdEEjZ/LsXc=", - "owner": "famedly", - "repo": "conduit", - "rev": "3bfdae795d4d9ec9aeaac7465e7535ac88e47756", - "type": "gitlab" - }, - "original": { - "owner": "famedly", - "repo": "conduit", - "type": "gitlab" - } - }, - "crane": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": [ - "conduit", - "flake-utils" - ], - "nixpkgs": [ - "conduit", - "nixpkgs" - ], - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1688772518, - "narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=", - "owner": "ipetkov", - "repo": "crane", - "rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "fenix": { - "inputs": { - "nixpkgs": [ - "conduit", - "nixpkgs" - ], - "rust-analyzer-src": "rust-analyzer-src" - }, - "locked": { - "lastModified": 1689488573, - "narHash": "sha256-diVASflKCCryTYv0djvMnP2444mFsIG0ge5pa7ahauQ=", - "owner": "nix-community", - "repo": "fenix", - "rev": "39096fe3f379036ff4a5fa198950b8e79defe939", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "fenix", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1689068808, - "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1701071203, - "narHash": "sha256-lQywA7QU/vzTdZ1apI0PfgCWNyQobXUYghVrR5zuIeM=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "db1878f013b52ba5e4034db7c1b63e8d04173a86", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "master", - "repo": "home-manager", - "type": "github" - } - }, - "mtxclientSrc": { - "flake": false, - "locked": { - "lastModified": 1700483982, - "narHash": "sha256-xKuY3IxaFdrxlxDH3t3ZmVWWOcqzAZvl/97mQOk1Tek=", - "owner": "Nheko-reborn", - "repo": "mtxclient", - "rev": "901ec5e35f76ebdff732ea28953b772ec7024df3", - "type": "github" - }, - "original": { - "owner": "Nheko-reborn", - "ref": "master", - "repo": "mtxclient", - "type": "github" - } - }, - "nhekoSrc": { - "flake": false, - "locked": { - "lastModified": 1701184356, - "narHash": "sha256-gmMyj17GDtD3kkZwM9yvhrM3fxRgGkcqG6togS6IkNI=", - "owner": "Nheko-reborn", - "repo": "nheko", - "rev": "242f61c8a3e34c56cf6274f7f7bb9b6dc59fe347", - "type": "github" - }, - "original": { - "owner": "Nheko-reborn", - "ref": "master", - "repo": "nheko", - "type": "github" - } - }, - "nixos-wsl": { - "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1701180944, - "narHash": "sha256-trdDWPG5iuI07rEkmiGhmKs38bxMY6tqj4frB/W+yxE=", - "owner": "nix-community", - "repo": "NixOS-WSL", - "rev": "b4354a924111b7f09ba5a3d1ce38717c7f29a581", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "NixOS-WSL", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1683408522, - "narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-RoryNix": { - "locked": { - "lastModified": 1701053011, - "narHash": "sha256-8QQ7rFbKFqgKgLoaXVJRh7Ik5LtI3pyBBCfOnNOGkF0=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5b528f99f73c4fad127118a8c1126b5e003b01a9", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-rory": { - "locked": { - "lastModified": 1701265472, - "narHash": "sha256-zVOimU5+eb3jMM+k2U/rAJTCc4dU1nNHM/uQ2A9GLiM=", - "owner": "TheArcaneBrony", - "repo": "nixpkgs", - "rev": "9eb247bae34dc2db97cd7bb3b68a65e0eea800e9", - "type": "github" - }, - "original": { - "owner": "TheArcaneBrony", - "ref": "master", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1700794826, - "narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1697851979, - "narHash": "sha256-lJ8k4qkkwdvi+t/Xc6Fn74kUuobpu9ynPGxNZR6OwoA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5550a85a087c04ddcace7f892b0bdc9d8bb080c8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1701068326, - "narHash": "sha256-vmMceA+q6hG1yrjb+MP8T0YFDQIrW3bl45e7z24IEts=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8cfef6986adfb599ba379ae53c9f5631ecd2fd9c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "botcore-v4": "botcore-v4", - "conduit": "conduit", - "home-manager": "home-manager", - "mtxclientSrc": "mtxclientSrc", - "nhekoSrc": "nhekoSrc", - "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_4", - "nixpkgs-RoryNix": "nixpkgs-RoryNix", - "nixpkgs-rory": "nixpkgs-rory" - } - }, - "rust-analyzer-src": { - "flake": false, - "locked": { - "lastModified": 1689441253, - "narHash": "sha256-4MSDZaFI4DOfsLIZYPMBl0snzWhX1/OqR/QHir382CY=", - "owner": "rust-lang", - "repo": "rust-analyzer", - "rev": "996e054f1eb1dbfc8455ecabff0f6ff22ba7f7c8", - "type": "github" - }, - "original": { - "owner": "rust-lang", - "ref": "nightly", - "repo": "rust-analyzer", - "type": "github" - } - }, - "rust-overlay": { - "inputs": { - "flake-utils": [ - "conduit", - "crane", - "flake-utils" - ], - "nixpkgs": [ - "conduit", - "crane", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1688351637, - "narHash": "sha256-CLTufJ29VxNOIZ8UTg0lepsn3X03AmopmaLTTeHDCL4=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "f9b92316727af9e6c7fee4a761242f7f46880329", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/host/Rory-desktop/configuration.nix b/host/Rory-desktop/configuration.nix index be7f4b2..a34fc1c 100644 --- a/host/Rory-desktop/configuration.nix +++ b/host/Rory-desktop/configuration.nix @@ -7,6 +7,9 @@ ../../modules/packages/vim.nix # ../../modules/environments/home.nix ../../modules/software-templates/profilers.nix + ./postgres.nix + ./mariadb.nix + ./nginx.nix ]; boot = { @@ -50,42 +53,40 @@ enable = true; updateDbusEnvironment = true; videoDrivers = ["nvidia"]; - #videoDrivers = [ "intel" ]; - #desktopManager.gnome.enable = true; + desktopManager.gnome.enable = true; libinput.enable = true; layout = "us"; - #modules = [ pkgs.xorg.xf86videointel ]; windowManager.i3.enable = true; - #windowManager.i3.extraPackages = with pkgs; [ ]; windowManager.i3.extraSessionCommands = '' - xrandr --output DP-5 --auto --pos -1920x1080 - xrandr --output HDMI-0 --auto --primary --pos 1920x0 - polybar & - dunst & + # output from arandr: + xrandr --output DP-0 --off --output DP-1 --off --output DP-2 --off --output DP-3 --off --output HDMI-0 --primary --mode 3840x2160 --pos 0x0 --rotate normal --output DP-4 --off --output DP-5 --mode 1920x1080 --pos 3840x1080 --rotate normal + ${pkgs.polybarFull}/bin/polybar & + ${pkgs.dunst}/bin/dunst & + ${pkgs.feh}/bin/feh --no-fehbg --bg-fill ${../../modules/users/Rory/wallpaper.webp} ''; wacom.enable = true; }; picom.enable = true; picom.vSync = false; picom.backend = "glx"; - #gnome = { - # core-developer-tools.enable = false; - # core-utilities.enable = false; - # tracker-miners.enable = false; - # tracker.enable = false; - # sushi.enable = false; - # rygel.enable = false; - # gnome-user-share.enable = false; - # gnome-remote-desktop.enable = false; - # gnome-online-miners.enable = lib.mkForce false; - # gnome-online-accounts.enable = false; - # gnome-initial-setup.enable = false; - # gnome-browser-connector.enable = false; - # games.enable = false; - # gnome-keyring.enable = lib.mkForce false; - # evolution-data-server.enable = lib.mkForce false; - # at-spi2-core.enable = lib.mkForce false; - #}; + gnome = { + core-developer-tools.enable = false; + core-utilities.enable = false; + tracker-miners.enable = false; + tracker.enable = false; + sushi.enable = false; + rygel.enable = false; + gnome-user-share.enable = false; + gnome-remote-desktop.enable = false; + gnome-online-miners.enable = lib.mkForce false; + gnome-online-accounts.enable = false; + gnome-initial-setup.enable = false; + gnome-browser-connector.enable = false; + games.enable = false; + gnome-keyring.enable = lib.mkForce false; + evolution-data-server.enable = lib.mkForce false; + at-spi2-core.enable = lib.mkForce false; + }; openssh = { enable = true; extraConfig = '' @@ -120,6 +121,7 @@ }; environment.systemPackages = with pkgs; [ + qt6.qtwayland gnome-console feh @@ -130,6 +132,7 @@ # - IDEs jetbrains-toolbox jetbrains.rider + jetbrains.webstorm github-copilot-intellij-agent @@ -154,9 +157,6 @@ # extra packages dmenu - i3status - polybarFull - dunst cinnamon.nemo gnome.file-roller @@ -171,10 +171,11 @@ unrar-wrapper - (schildichat-desktop.override { electron = electron; }) + #(schildichat-desktop.override { electron = electron; }) (callPackage ../../modules/packages/nheko-git.nix { inherit nhekoSrc; inherit mtxclientSrc; voipSupport = false; }) #(callPackage ../../modules/packages/mc/server/modpack/curseforge/techopolis-2/5.4.nix { }) ]; + programs.steam.enable = true; programs.steam.gamescopeSession.enable = true; @@ -183,20 +184,20 @@ # pkgs.gnome-tour # pkgs.gnome-user-docs #]; - xdg = { - portal = { - enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-gtk - ]; - xdgOpenUsePortal = true; - }; - sounds.enable = true; - mime.enable = true; - menus.enable = true; - icons.enable = true; - autostart.enable = true; - }; + #xdg = { + # portal = { + # enable = true; + # extraPortals = with pkgs; [ + # xdg-desktop-portal-gtk + # ]; + # xdgOpenUsePortal = true; + # }; + # sounds.enable = true; + # mime.enable = true; + # menus.enable = true; + # icons.enable = true; + # autostart.enable = true; + #}; fonts = { fonts = with pkgs; [ (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) @@ -224,7 +225,13 @@ }; }; nixpkgs = { - config.allowUnfree = true; + config = { + allowUnfree = true; + permittedInsecurePackages = [ + "electron-25.9.0" + ]; + }; + }; security = { polkit.enable = true; diff --git a/host/Rory-desktop/mariadb.nix b/host/Rory-desktop/mariadb.nix new file mode 100644 index 0000000..3ebbb0b --- /dev/null +++ b/host/Rory-desktop/mariadb.nix @@ -0,0 +1,10 @@ +{ config, pkgs, lib, ... }: + +{ + services.mysql = { + enable = true; + package = pkgs.mariadb; + }; + +} + diff --git a/host/Rory-desktop/nginx.nix b/host/Rory-desktop/nginx.nix new file mode 100644 index 0000000..fc2adca --- /dev/null +++ b/host/Rory-desktop/nginx.nix @@ -0,0 +1,39 @@ +{ config, pkgs, lib, ... }: + +{ + services = { + nginx = { + enable = true; + #package = pkgs.nginxQuic; + recommendedProxySettings = true; + #recommendedTlsSettings = true; + recommendedZstdSettings = true; + recommendedGzipSettings = true; + recommendedBrotliSettings = true; + recommendedOptimisation = true; + #defaultMimeTypes = ../../../../modules/packages/nginx/mime.types; + appendConfig = '' + worker_processes 16; + ''; + eventsConfig = '' + #use kqueue; + worker_connections 512; + ''; + appendHttpConfig = '' + #sendfile on; + disable_symlinks off; + ''; + additionalModules = with pkgs.nginxModules; [ + moreheaders + ]; + virtualHosts = { + "discord.localhost" = import ./nginx/discord.localhost.nix { inherit pkgs; }; + + }; + }; + }; + systemd.services.nginx.serviceConfig = { + LimitNOFILE=5000000; + }; + +} diff --git a/host/Rory-desktop/nginx/discord.localhost.nix b/host/Rory-desktop/nginx/discord.localhost.nix new file mode 100755 index 0000000..149d2b1 --- /dev/null +++ b/host/Rory-desktop/nginx/discord.localhost.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: + +{ + root = "/www/discord"; + addSSL = true; + enableACME = false; + + # We don't care about certificates around here... + sslCertificate = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.cert.pem"; + sslCertificateKey = "${pkgs.path}/nixos/tests/common/acme/server/acme.test.key.pem"; + + + extraConfig = '' + autoindex on; + more_set_headers 'Access-Control-Allow-Origin: *'; + more_set_headers 'Access-Control-Allow-Methods: GET, POST, OPTIONS'; + more_set_headers 'Access-Control-Allow-Headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; + more_set_headers 'Access-Control-Expose-Headers: Content-Length,Content-Range'; + more_set_headers 'Access-Control-Allow-Credentials: true'; + ''; + + locations = { + "/" = { + index = "index.html"; + extraConfig = '' + more_set_headers 'Access-Control-Allow-Origin: *'; + more_set_headers 'Access-Control-Allow-Methods: *'; + more_set_headers 'Access-Control-Allow-Headers: *'; + more_set_headers 'Access-Control-Expose-Headers: *'; + more_set_headers 'Access-Control-Max-Age' 1728000; + + # default to /index.html if file not found + try_files $uri $uri/ /index.html; + ''; + }; + }; +} diff --git a/host/Rory-desktop/postgres.nix b/host/Rory-desktop/postgres.nix new file mode 100755 index 0000000..e1e4432 --- /dev/null +++ b/host/Rory-desktop/postgres.nix @@ -0,0 +1,34 @@ +{ config, pkgs, lib, ... }: + +{ + #systemd.tmpfiles.rules = [ "d /mnt/postgres/data 0750 postgres postgres" ]; + + services.postgresql = { + enable = true; + package = pkgs.postgresql_16; + enableTCPIP = true; + authentication = pkgs.lib.mkOverride 10 '' + # TYPE, DATABASE, USER, ADDRESS, METHOD + local all all trust + host all all 127.0.0.1/32 trust + host all all ::1/128 trust + host discordbots discordbots 192.168.1.2/32 trust + host matrix-synapse-rory-gay matrix-synapse-rory-gay 192.168.1.5/32 trust + host all all 0.0.0.0/0 md5 + ''; + # initialScript = pkgs.writeText "backend-initScript" '' + # CREATE ROLE nixcloud WITH LOGIN PASSWORD 'nixcloud' CREATEDB; + # CREATE DATABASE nixcloud; + # GRANT ALL PRIVILEGES ON DATABASE nixcloud TO nixcloud; + # ''; + #dataDir = "/mnt/postgres/data"; + settings = { + "max_connections" = "100"; + "shared_buffers" = "128MB"; + "max_wal_size" = "1GB"; + "min_wal_size" = "80MB"; + }; + }; + +} + diff --git a/modules/base.nix b/modules/base.nix index 2666af3..fb1e8d6 100755 --- a/modules/base.nix +++ b/modules/base.nix @@ -95,6 +95,12 @@ nix-output-monitor expect unrar-wrapper + arch-install-scripts + debootstrap + file + unzip + brotli + # - zsh zsh diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix index c8f4d45..f250863 100755 --- a/modules/users/Rory.nix +++ b/modules/users/Rory.nix @@ -55,6 +55,7 @@ export CHOKIDAR_USEPOLLING=true export MSBUILDLIVELOGGER=auto export DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER=1 + export DOTNET_CLI_TELEMETRY_OPTOUT=1 function mkkey() { echo "Making key for $1" ssh-keygen -t ed25519 -C "$HOST -> $1" -f ~/.ssh/id_ed25519_$1 diff --git a/modules/users/Rory/p10k.zsh b/modules/users/Rory/p10k.zsh index 5c77b68..e7f8e7c 100644 --- a/modules/users/Rory/p10k.zsh +++ b/modules/users/Rory/p10k.zsh @@ -33,7 +33,7 @@ typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( os_icon # os identifier dir # current directory - #vcs # git status + vcs # git status # prompt_char # prompt symbol ) @@ -1720,4 +1720,4 @@ typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} (( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} -'builtin' 'unset' 'p10k_config_opts' \ No newline at end of file +'builtin' 'unset' 'p10k_config_opts' diff --git a/modules/users/Rory/wallpaper.webp b/modules/users/Rory/wallpaper.webp new file mode 100644 index 0000000..a2923f0 Binary files /dev/null and b/modules/users/Rory/wallpaper.webp differ -- cgit 1.4.1