From 42c65b27b52fd519072d8a8e67d1bddddb32ed24 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 19 Jul 2024 03:31:44 +0000 Subject: [PATCH] Initial commit --- .gitattributes | 1 + .gitignore | 6 + .gitmodules | 3 + README.md | 1 + build.sh | 27 + clean-old-generations.sh | 6 + flake.lock | Bin 0 -> 1564 bytes flake.nix | 30 + host/matrix/configuration.nix | 22 + host/matrix/services/matrix/coturn.nix | 53 + host/matrix/services/matrix/draupnir.nix | 55 + host/matrix/services/matrix/root.nix | 11 + host/matrix/services/matrix/synapse.nix | 216 +++ .../services/nginx/litenet.tel/matrix.nix | 59 + .../services/nginx/localhost/matrix.nix | 280 +++ .../nginx/matrix-upstreams-workers.nix | 26 + .../services/nginx/matrix-upstreams.nix | 26 + host/matrix/services/nginx/nginx.nix | 48 + host/matrix/services/postgres.nix | 83 + modules/base-server.nix | 94 + modules/base.nix | 145 ++ modules/packages/nginx/mime.types | 1028 ++++++++++ modules/packages/vim.nix | 22 + modules/users/Rory.client.nix | 53 + modules/users/Rory.nix | 190 ++ modules/users/Rory/p10k.zsh | 1723 +++++++++++++++++ modules/users/Rory/wallpaper.webp | Bin 0 -> 598752 bytes modules/users/chris.nix | 18 + rebuild-wsl-no-update.sh | 4 + rebuild-wsl.sh | 13 + rebuild.sh | 2 + update.sh | 12 + 32 files changed, 4257 insertions(+) create mode 100755 .gitattributes create mode 100755 .gitignore create mode 100644 .gitmodules create mode 100755 README.md create mode 100755 build.sh create mode 100755 clean-old-generations.sh create mode 100644 flake.lock create mode 100755 flake.nix create mode 100755 host/matrix/configuration.nix create mode 100755 host/matrix/services/matrix/coturn.nix create mode 100755 host/matrix/services/matrix/draupnir.nix create mode 100755 host/matrix/services/matrix/root.nix create mode 100755 host/matrix/services/matrix/synapse.nix create mode 100755 host/matrix/services/nginx/litenet.tel/matrix.nix create mode 100644 host/matrix/services/nginx/localhost/matrix.nix create mode 100644 host/matrix/services/nginx/matrix-upstreams-workers.nix create mode 100644 host/matrix/services/nginx/matrix-upstreams.nix create mode 100755 host/matrix/services/nginx/nginx.nix create mode 100755 host/matrix/services/postgres.nix create mode 100755 modules/base-server.nix create mode 100755 modules/base.nix create mode 100644 modules/packages/nginx/mime.types create mode 100755 modules/packages/vim.nix create mode 100755 modules/users/Rory.client.nix create mode 100755 modules/users/Rory.nix create mode 100644 modules/users/Rory/p10k.zsh create mode 100644 modules/users/Rory/wallpaper.webp create mode 100755 modules/users/chris.nix create mode 100755 rebuild-wsl-no-update.sh create mode 100755 rebuild-wsl.sh create mode 100755 rebuild.sh create mode 100755 update.sh diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..94f480d --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..fddba6b --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +hardware-configuration.nix +.vscode/ +matrix-user-tokens.txt +nixpkgs/ +result +wg/ \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..fffe1db --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "nixpkgs"] + path = nixpkgs + url = https://github.com/TheArcaneBrony/nixpkgs.git diff --git a/README.md b/README.md new file mode 100755 index 0000000..7f4e0c5 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +`^\s?\n(\s?\n)+` -> `\n`: REPLACE ALL MULTIPLE NEWLINES \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..a9a766b --- /dev/null +++ b/build.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p git nixos-install-tools nix-output-monitor +if [ $# -ne 2 ]; then + echo "Usage: $0 " + echo "NOTE: hardware config will be generated from root!" + echo "Defined configs:" + cat flake.nix | grep '.lib.nixosSystem' | sed 's/ =.*//' | sed 's/^[ \t]*//;s/[ \t]*$//' | while read cfg; do echo " - $cfg"; done + exit 1 +fi +if [ "$1" = "/" ]; then + [ -f "host/${2}/pre-rebuild.sh" ] && host/$2/pre-rebuild.sh + nixos-generate-config --show-hardware-config > hardware-configuration.nix + git add -f hardware-configuration.nix + nom build .#nixosConfigurations.${2}.config.system.build.toplevel && sudo nixos-rebuild switch --flake .#${HOSTNAME} || exit 1 + nixos-rebuild switch --flake ".#${2}" -j`nproc` --upgrade-all -L || exit 1 + [ -f "host/${2}/post-rebuild.sh" ] && host/$2/post-rebuild.sh + git rm --cached hardware-configuration.nix + exit +else + nixos-generate-config --show-hardware-config --root "${1}" > hardware-configuration.nix + git add -f hardware-configuration.nix + nix build .#nixosConfigurations.${2}.config.system.build.toplevel --extra-experimental-features nix-command --extra-experimental-features flakes || exit 1 + nixos-install --root "${1}" --flake ".#${2}" + git rm --cached hardware-configuration.nix + cp . "${1}/Rory-Open-Architecture" -r + exit +fi diff --git a/clean-old-generations.sh b/clean-old-generations.sh new file mode 100755 index 0000000..8b42df6 --- /dev/null +++ b/clean-old-generations.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +nix-collect-garbage -d +/nix/var/nix/profiles/system/bin/switch-to-configuration boot +nix-collect-garbage -d +/nix/var/nix/profiles/system/bin/switch-to-configuration boot diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000000000000000000000000000000000000..252331ea989e6201cc0d6655664d62cac2ac6e69 GIT binary patch literal 1564 zcmd5+%Wm5+5WM><3|(CVBxOBVpoi2>>N<(zCIO7}Qjj7kF_uI{l3xk(@1|i zOly#C_x00$V#O+0aAqKBte6z#wPI4p`VaIFgtmhnzd2RWBKepUQH5PZ1UYVh>~DVz;2lG!Gi$HRCs`IfHO^Y>)DczRque6b89wN7g(6~}&{l4P06a%)E9 zJX2Mo1MLPv&R5lMA{YV)QqF`xjAO(^zyU{&M{EXc!d)kDfz3?la+~q$Y$(fUNv%K1 zqjDL_l*Bq_XFy%pQz(lHHqn*T;tsfetmO!yn%Lg8H#6Tkon|A%{=oM=WYB4`(e9lO zo#0{l)C+&i{Vj;^@_h7Dj6Hbubuc;;z5CI{cC{W(&)RLA%FWGPo8+bkjr4ox0AM~~ z(DorfyxsL){_Zk%*qtvY8ky16<{yW=prApJWws-d6UHagi nYC1=U?5DaLnkQ%1Ec#pDa%-P=H&)fLRy;4HN;Mg;^V<0h8xM|- literal 0 HcmV?d00001 diff --git a/flake.nix b/flake.nix new file mode 100755 index 0000000..1d6b26d --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +{ + description = "Chris' services flake"; + + inputs = { + nixpkgs = { + url = "github:NixOS/nixpkgs/nixos-unstable"; + #url="path:/Rory-Open-Architecture/nixpkgs"; + }; + home-manager = { + url = "github:nix-community/home-manager/master"; + }; + }; + + outputs = { self, nixpkgs, home-manager, ... }@inputs: { + nixosConfigurations = { + matrix = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./host/matrix/configuration.nix + ./hardware-configuration.nix + home-manager.nixosModules.home-manager + ]; + specialArgs = { + inherit home-manager; + }; + }; + + }; + }; +} diff --git a/host/matrix/configuration.nix b/host/matrix/configuration.nix new file mode 100755 index 0000000..a8ead39 --- /dev/null +++ b/host/matrix/configuration.nix @@ -0,0 +1,22 @@ +{ config, pkgs, lib, ... }: + +{ + imports = + [ + ../../modules/base-server.nix + + ./services/postgres.nix + ./services/matrix/root.nix + ./services/nginx/nginx.nix + ]; + networking = { + hostName = "matrix"; + interfaces.ens18.ipv4.addresses = [ { + address = "10.10.0.3"; + prefixLength = 8; + } ]; + defaultGateway.interface = "ens18"; + }; + + system.stateVersion = "22.11"; # DO NOT EDIT! +} diff --git a/host/matrix/services/matrix/coturn.nix b/host/matrix/services/matrix/coturn.nix new file mode 100755 index 0000000..427721a --- /dev/null +++ b/host/matrix/services/matrix/coturn.nix @@ -0,0 +1,53 @@ +{ config, pkgs, lib, ... }: + +{ + # coturn (WebRTC) + services.coturn = rec { + enable = false; # Alicia - figure out secret first... + no-cli = true; + no-tcp-relay = true; + min-port = 49000; + max-port = 50000; + use-auth-secret = true; + static-auth-secret = "will be world readable for local users :("; + realm = "turn.example.com"; + # Alicia - figure out how to get this to work, since nginx runs on separate machine... + #cert = "${config.security.acme.certs.${realm}.directory}/full.pem"; + #pkey = "${config.security.acme.certs.${realm}.directory}/key.pem"; + extraConfig = '' + # for debugging + verbose + # ban private IP ranges + no-multicast-peers + denied-peer-ip=0.0.0.0-0.255.255.255 + denied-peer-ip=10.0.0.0-10.255.255.255 + denied-peer-ip=100.64.0.0-100.127.255.255 + denied-peer-ip=127.0.0.0-127.255.255.255 + denied-peer-ip=169.254.0.0-169.254.255.255 + denied-peer-ip=172.16.0.0-172.31.255.255 + denied-peer-ip=192.0.0.0-192.0.0.255 + denied-peer-ip=192.0.2.0-192.0.2.255 + denied-peer-ip=192.88.99.0-192.88.99.255 + denied-peer-ip=192.168.0.0-192.168.255.255 + denied-peer-ip=198.18.0.0-198.19.255.255 + denied-peer-ip=198.51.100.0-198.51.100.255 + denied-peer-ip=203.0.113.0-203.0.113.255 + denied-peer-ip=240.0.0.0-255.255.255.255 + denied-peer-ip=::1 + denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff + denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255 + denied-peer-ip=100::-100::ffff:ffff:ffff:ffff + denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff + denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff + ''; + }; + #services.matrix-synapse = with config.services.coturn; { + # turn_uris = ["turn:${realm}:3478?transport=udp" "turn:${realm}:3478?transport=tcp"]; + # turn_shared_secret = static-auth-secret; + # turn_user_lifetime = "1h"; + #}; + +} + diff --git a/host/matrix/services/matrix/draupnir.nix b/host/matrix/services/matrix/draupnir.nix new file mode 100755 index 0000000..8930f1e --- /dev/null +++ b/host/matrix/services/matrix/draupnir.nix @@ -0,0 +1,55 @@ +{ config, pkgs, lib, ... }: + +{ + # Alicia - doesnt work yet... until in nixpkgs... + services.draupnir = { + enable = true; + + pantalaimon = { + enable = true; + username = "draupnir"; + passwordFile = "/etc/draupnir-password"; + options = { + homeserver = "http://localhost:8008"; + ssl = false; + }; + }; + settings = { + managementRoom = "#draupnir-mgmt:rory.gay"; + verboseLogging = false; + recordIgnoredInvites = true; # Let's log ignored invites, just incase + autojoinOnlyIfManager = true; # Let's not open ourselves up to DoS attacks + automaticallyRedactForReasons = [ "*" ]; # I always want autoredact + fasterMembershipChecks = true; + + backgroundDelayMS = 10; # delay isn't needed, I don't mind the performance hit + pollReports = false; # this is a single person homeserver... let's save ourself the work + + admin.enableMakeRoomAdminCommand = true; + commands.ban.defaultReasons = [ + "spam" + "harassment" + "transphobia" + "scam" + ]; + protections = { + wordlist = { + words = [ + "tranny" + "faggot" + "ywnbaw" + "nigger" + ]; + minutesBeforeTrusting = 0; + }; + }; + }; + }; + +# services.pantalaimon-headless.instances.draupnir = { +# homeserver = "http://localhost:8008"; +# ssl = false; +# }; + +} + diff --git a/host/matrix/services/matrix/root.nix b/host/matrix/services/matrix/root.nix new file mode 100755 index 0000000..a7f4063 --- /dev/null +++ b/host/matrix/services/matrix/root.nix @@ -0,0 +1,11 @@ +{ config, pkgs, lib, botcore-v4, ... }: + +{ + imports = + [ + ./synapse.nix +# ./coturn.nix +# ./draupnir.nix + ]; + +} diff --git a/host/matrix/services/matrix/synapse.nix b/host/matrix/services/matrix/synapse.nix new file mode 100755 index 0000000..116e494 --- /dev/null +++ b/host/matrix/services/matrix/synapse.nix @@ -0,0 +1,216 @@ +{ config, pkgs, lib, ... }: + +{ + services.matrix-synapse = { + enable = true; + withJemalloc = true; + + dataDir = "/mnt/synapse-media"; + + # https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html + settings = { + server_name = "litenet.tel"; + + + enable_registration = true; + registration_requires_token = true; + + require_membership_for_aliases = false; + redaction_retention_period = null; + user_ips_max_age = null; + allow_device_name_lookup_over_federation = true; + + federation = { + client_timeout = "60s"; + max_short_retries = 6; + max_short_retry_delay = "10s"; + max_long_retries = 5; + max_long_retry_delay = "30s"; + }; + +# event_cache_size = "1200K"; #defaults to 10K +# caches = { +# global_factor = 5000.0; +# cache_entry_ttl = "12h"; +# expire_caches = true; +# sync_response_cache_duration = "6h"; +# cache_autotuning = { +# max_cache_memory_usage = "65536M"; +# target_cache_memory_usage = "32768M"; +# min_cache_ttl = "6h"; +# }; +# }; + + # Alicia - figure this out later... + #registration_shared_secret = builtins.exec ["cat" "/dev/urandom" "|" "tr" "-dc" "a-zA-Z0-9" "|" "fold" "-w" "256" "|" "head" "-n" "1"]; +# registration_shared_secret_path = "/mnt/synapse-media/registration_shared_secret.txt"; + registration_shared_secret = "fuck"; + + listeners = [ + { + port = 8008; + bind_addresses = [ "127.0.0.1" ]; + type = "http"; + tls = false; + x_forwarded = true; + resources = [ { + names = [ "client" "federation" ]; + compress = true; + } ]; + } + ]; + dynamic_thumbnails = true; + presence = { + enable = true; + update_interval = 60; + }; + url_preview_enabled = true; + database = { + name = "psycopg2"; + args = { + user = "matrix-synapse"; + #passwordFile = "/run/secrets/matrix-synapse-password"; + password = "somepassword"; + database = "matrix-synapse"; + host = "127.0.0.1"; + application_name = "matrix-synapse (liteniet.tel)"; + cp_min = 5; + cp_max = 50; + #cp_reconnect_interval = "True"; + }; + }; + app_service_config_files = [ + #"/etc/matrix-synapse/appservice-registration.yaml" +# "/var/lib/matrix-synapse/modas-registration.yaml" + ]; + +# rc_message = { +# per_second = 1000; +# burst_count = 1000; +# }; +# rc_login = { +# address = { +# per_second = 1000; +# burst_count = 1000; +# }; +# account = { +# per_second = 1000; +# burst_count = 1000; +# }; +# failed_attempts = { +# per_second = 0.1; +# burst_count = 3; +# }; +# }; +# rc_joins = { +# local = { +# per_second = 1000; +# burst_count = 1000; +# }; +# remote = { +# per_second = 1000; +# burst_count = 1000; +# }; +# }; +# rc_joins_per_room = { +# per_second = 1000; +# burst_count = 1000; +# }; +# rc_invites = { +# per_room = { +# per_second = 1000; +# burst_count = 1000; +# }; +# per_user = { +# per_second = 1000; +# burst_count = 1000; +# }; +# per_issuer = { +# per_second = 1000; +# burst_count = 1000; +# }; +# }; +# rc_federation = { +# window_size = 10; +# sleep_limit = 1000; +# sleep_delay = 100; +# reject_limit = 1000; +# concurrent = 100; +# }; +# federation_rr_transactions_per_room_per_second = 1; + + max_image_pixels = "100M"; + + ui_auth = { + session_timeout = "1m"; + }; + + login_via_existing_session = { + enabled = true; + require_ui_auth = true; + token_timeout = "1y"; + }; + + #sentry = { + # dsn = "https://77c8de07855d4e0c90dbcf0945a04f01@sentry.thearcanebrony.net/14"; + #}; + + report_stats = false; + + user_directory = { + enabled = true; + search_all_users = true; + prefer_local_users = true; + }; + + experimental_features = { + "org.matrix.msc3026.busy_presence" = true; + "fi.mau.msc2815" = true; + "org.matrix.msc3881" = true; + "org.matrix.msc3874" = true; + "org.matrix.msc3912" = true; + }; + }; + + plugins = with pkgs.matrix-synapse-plugins; [ + # Alicia - need to port draupnir... + #matrix-synapse-mjolnir-antispam +# matrix-synapse-pam + ]; +# extraConfigFiles = [ +# (pkgs.writeTextFile { +# name = "matrix-synapse-extra-config.yml"; +# text = '' +# modules: +# - module: "pam_auth_provider.PAMAuthProvider" +# config: +# create_users: true +# skip_user_check: false +# ''; +# }) +# ]; + }; + + systemd.services.matrix-synapse-reg-token = { + description = "Random registration token for Synapse."; + before = ["matrix-synapse.service"]; # So the registration can be used by Synapse + wantedBy = ["multi-user.target"]; + after = ["network.target"]; + + script = '' + + if [ ! -f "registration_shared_secret.txt" ] + then + cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 256 | head -n 1 > registration_shared_secret.txt + else + echo Not generating key, key exists; + fi''; + serviceConfig = { + User = "matrix-synapse"; + Group = "matrix-synapse"; + WorkingDirectory = "/mnt/synapse-media/"; + }; + }; + +} + diff --git a/host/matrix/services/nginx/litenet.tel/matrix.nix b/host/matrix/services/nginx/litenet.tel/matrix.nix new file mode 100755 index 0000000..aa348cc --- /dev/null +++ b/host/matrix/services/nginx/litenet.tel/matrix.nix @@ -0,0 +1,59 @@ +{ + enableACME = false; + addSSL = false; + locations."/" = { + #proxyPass = "http://127.0.0.1:9001"; + proxyPass = "http://localhost:8008"; + extraConfig = '' + if ($request_method = 'OPTIONS') { + more_set_headers 'Access-Control-Allow-Origin: *'; + more_set_headers 'Access-Control-Allow-Methods: *'; + # + # Custom headers and headers various browsers *should* be OK with but aren't + # + more_set_headers 'Access-Control-Allow-Headers: *, Authorization'; + # + # Tell client that this pre-flight info is valid for 20 days + # + more_set_headers 'Access-Control-Max-Age: 1728000'; + more_set_headers 'Content-Type: text/plain; charset=utf-8'; + more_set_headers 'Content-Length: 0'; + return 204; + } + ''; + }; + + locations."= /.well-known/matrix/server".extraConfig = '' + more_set_headers 'Content-Type application/json'; + more_set_headers 'Access-Control-Allow-Origin *'; + return 200 '${builtins.toJSON { + "m.server" = "matrix.litenet.tel:443"; + }}'; + ''; + locations."= /.well-known/matrix/client".extraConfig = '' + more_set_headers 'Content-Type application/json'; + more_set_headers 'Access-Control-Allow-Origin *'; + return 200 '${builtins.toJSON { + "m.homeserver".base_url = "https://matrix.litenet.tel"; + "m.identity_server".base_url = "https://matrix.litenet.tel"; + } + }'; + ''; + locations."= /.well-known/matrix/support".extraConfig = '' + more_set_headers 'Content-Type application/json'; + more_set_headers 'Access-Control-Allow-Origin *'; + return 200 '${builtins.toJSON { + admins = [ + { + matrix_id = "@emma:rory.gay"; + role = "admin"; + } + { + matrix_id = "@chris:litenet.tel"; + role = "admin"; + } + ]; + } + }'; + ''; +} diff --git a/host/matrix/services/nginx/localhost/matrix.nix b/host/matrix/services/nginx/localhost/matrix.nix new file mode 100644 index 0000000..0ab8e9a --- /dev/null +++ b/host/matrix/services/nginx/localhost/matrix.nix @@ -0,0 +1,280 @@ +{ + enableACME = false; + addSSL = false; + # locations."/_matrix" = { + # proxyPass = "http://192.168.1.5:8008"; + # extraConfig = '' + # if ($request_method = 'OPTIONS') { + # more_set_headers 'Access-Control-Allow-Origin: *'; + # more_set_headers 'Access-Control-Allow-Methods: *'; + # # + # # Custom headers and headers various browsers *should* be OK with but aren't + # # + # more_set_headers 'Access-Control-Allow-Headers: *'; + # # + # # Tell client that this pre-flight info is valid for 20 days + # # + # more_set_headers 'Access-Control-Max-Age' 1728000; + # more_set_headers 'Content-Type: text/plain; charset=utf-8'; + # more_set_headers 'Content-Length' 0; + # return 204; + # }; + # ''; + # }; + + # https://matrix-org.github.io/synapse/latest/workers.html#synapseappgeneric_worker + locations."~ ^/_matrix/client/(r0|v3)/sync$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + extraConfig = '' + proxy_read_timeout 3600; + proxy_connect_timeout 3600; + proxy_send_timeout 3600; + ''; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3)/events$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3)/initialSync$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3)/rooms/[^/]+/initialSync$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/createRoom$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/.*$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/v1/rooms/.*/hierarchy$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(v1|unstable)/rooms/.*/relations/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/v1/rooms/.*/threads$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/unstable/org.matrix.msc2716/rooms/.*/batch_send$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/account/3pid$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/account/whoami$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/devices$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/versions$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/v1/rooms/.*/timestamp_to_event$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/search$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/keys/query$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/keys/changes$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/keys/claim$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/room_keys/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/keys/upload/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/login$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/register$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/v1/register/m.login.registration_token/validity$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)$" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/join/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/profile/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + + # https://matrix-org.github.io/synapse/latest/workers.html#the-typing-stream + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/typing" = { + proxyPass = "http://stream_writer_typing_stream_workers_upstream$request_uri"; + }; + + # https://matrix-org.github.io/synapse/latest/workers.html#the-to_device-stream + locations."~ ^/_matrix/client/(r0|v3|unstable)/sendToDevice/" = { + proxyPass = "http://stream_writer_to_device_stream_workers_upstream$request_uri"; + }; + + # https://matrix-org.github.io/synapse/latest/workers.html#the-account_data-stream + locations."~ ^/_matrix/client/(r0|v3|unstable)/.*/tags" = { + proxyPass = "http://stream_writer_account_data_stream_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/.*/account_data" = { + proxyPass = "http://stream_writer_account_data_stream_workers_upstream$request_uri"; + }; + # https://matrix-org.github.io/synapse/latest/workers.html#the-receipts-stream + locations."~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/receipt" = { + proxyPass = "http://stream_writer_receipts_stream_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/client/(r0|v3|unstable)/rooms/.*/read_markers" = { + proxyPass = "http://stream_writer_receipts_stream_workers_upstream$request_uri"; + }; + # https://matrix-org.github.io/synapse/latest/workers.html#the-presence-stream + locations."~ ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/" = { + proxyPass = "http://stream_writer_presence_stream_workers_upstream$request_uri"; + }; + + ### DUPLICATES???? + # https://matrix-org.github.io/synapse/latest/workers.html#updating-the-user-directory + locations."~ ^/_matrix/client/(r0|v3|unstable)/user_directory/search$" = { + proxyPass = "http://user_dir_workers_upstream$request_uri"; + }; + + # ??? + locations."/" = { + #resolver 127.0.0.11 valid=5s; + #set $backend "matrix-synapse:8008"; + #proxyPass = "http://$backend"; + proxyPass = "http://127.0.0.1:8008"; + }; + + locations."~ ^/_matrix/federation/v1/event/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/state/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/state_ids/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/backfill/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/get_missing_events/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/publicRooms" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/query/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/make_join/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/make_leave/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/(v1|v2)/send_join/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/(v1|v2)/send_leave/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/(v1|v2)/invite/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/event_auth/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/timestamp_to_event/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/exchange_third_party_invite/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/user/devices/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/key/v2/query" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/hierarchy/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + locations."~ ^/_matrix/federation/v1/send/" = { + proxyPass = "http://generic_workers_upstream$request_uri"; + }; + + ##### media repo + + # https://matrix-org.github.io/synapse/latest/workers.html#synapseappmedia_repository + locations."~ ^/_matrix/media/" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/purge_media_cache$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/room/.*/media.*$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/user/.*/media.*$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/media/.*$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/quarantine_media/.*$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + locations."~ ^/_synapse/admin/v1/users/.*/media$" = { + proxyPass = "http://media_repository_workers_upstream$request_uri"; + }; + + #locations."/" = { + #resolver 127.0.0.11 valid=5s; + #set $backend "matrix-synapse:8048"; + #proxyPass = "http://$backend"; + #}; + + + locations."/_synapse/client".proxyPass = "http://127.0.0.1:8008"; +} diff --git a/host/matrix/services/nginx/matrix-upstreams-workers.nix b/host/matrix/services/nginx/matrix-upstreams-workers.nix new file mode 100644 index 0000000..00ccdee --- /dev/null +++ b/host/matrix/services/nginx/matrix-upstreams-workers.nix @@ -0,0 +1,26 @@ +{ + generic_workers_upstream.servers = { + "127.0.0.1:18111" = { }; + }; + stream_writer_typing_stream_workers_upstream.servers = { + "127.0.0.1:20012" = { }; + }; + stream_writer_to_device_stream_workers_upstream.servers = { + "127.0.0.1:20013" = { }; + }; + stream_writer_account_data_stream_workers_upstream.servers = { + "127.0.0.1:20014" = { }; + }; + stream_writer_receipts_stream_workers_upstream.servers = { + "127.0.0.1:20015" = { }; + }; + stream_writer_presence_stream_workers_upstream.servers = { + "127.0.0.1:20016" = { }; + }; + media_repository_workers_upstream.servers = { + "127.0.0.1:18551" = { }; + }; + user_dir_workers_upstream.servers = { + "127.0.0.1:18661" = { }; + }; +} \ No newline at end of file diff --git a/host/matrix/services/nginx/matrix-upstreams.nix b/host/matrix/services/nginx/matrix-upstreams.nix new file mode 100644 index 0000000..6ba45af --- /dev/null +++ b/host/matrix/services/nginx/matrix-upstreams.nix @@ -0,0 +1,26 @@ +{ + generic_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + stream_writer_typing_stream_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + stream_writer_to_device_stream_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + stream_writer_account_data_stream_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + stream_writer_receipts_stream_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + stream_writer_presence_stream_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + media_repository_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; + user_dir_workers_upstream.servers = { + "127.0.0.1:8008" = { }; + }; +} \ No newline at end of file diff --git a/host/matrix/services/nginx/nginx.nix b/host/matrix/services/nginx/nginx.nix new file mode 100755 index 0000000..e8d7fdd --- /dev/null +++ b/host/matrix/services/nginx/nginx.nix @@ -0,0 +1,48 @@ +{ 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; + ''; + upstreams = import ./matrix-upstreams.nix; + additionalModules = with pkgs.nginxModules; [ + moreheaders + ]; + virtualHosts = { + #matrix... + "matrix.litenet.tel" = import ./litenet.tel/matrix.nix; + "matrix.localhost" = import ./localhost/matrix.nix; + }; + }; + }; + systemd.services.nginx.serviceConfig = { + LimitNOFILE=5000000; + }; +# systemd.services.nginx.requires = [ "data.mount" ]; +# security.acme.acceptTerms = true; +# security.acme.defaults.email = "root@thearcanebrony.net"; + +# environment.systemPackages = with pkgs; [ + #gitfs +# ]; + +} diff --git a/host/matrix/services/postgres.nix b/host/matrix/services/postgres.nix new file mode 100755 index 0000000..5d2e39a --- /dev/null +++ b/host/matrix/services/postgres.nix @@ -0,0 +1,83 @@ +{ 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 matrix-synapse matrix-synapse 127.0.0.1/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 = { + # https://pgconfigurator.cybertec.at/ + max_connections = 250; + superuser_reserved_connections = 3; + +# shared_buffers = "32565MB"; +# work_mem = "512MB"; +# maintenance_work_mem = "1024MB"; +# huge_pages = "try"; +# effective_cache_size = "60GB"; #was 22 +# effective_io_concurrency = "8"; +# random_page_cost = 4; + + # can use this to view stats: SELECT query, total_time, calls, rows FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10; + # shared_preload_libraries = "pg_stat_statements"; + # track_io_timing = "on"; + # track_functions = "pl"; + # "pg_stat_statements.max" = "10000"; # additional + # "pg_stat_statements.track" = "all"; # additional + + # wal_level = "replica"; + # max_wal_senders = 0; + # synchronous_commit = "off"; #was on + + # checkpoint_timeout = "15min"; + # checkpoint_completion_target = "0.9"; + # max_wal_size = "1GB"; + # min_wal_size = "512MB"; +# +# wal_compression = "on"; +# wal_buffers = "-1"; +# wal_writer_delay = "200ms"; +# wal_writer_flush_after = "1MB"; +# #checkpoint_segments = "64"; # additional +# default_statistics_target = "250"; # additional + +# bgwriter_delay = "200ms"; +# bgwriter_lru_maxpages = "100"; +# bgwriter_lru_multiplier = "2.0"; +# bgwriter_flush_after = "0"; + +# max_worker_processes = "32"; #was 14 +# max_parallel_workers_per_gather = "16"; #was 7 +# max_parallel_maintenance_workers = "16"; #was 7 +# max_parallel_workers = "32"; #was 14 +# parallel_leader_participation = "on"; + +# enable_partitionwise_join = "on"; +# enable_partitionwise_aggregate = "on"; +# jit = "on"; +# max_slot_wal_keep_size = "1GB"; +# track_wal_io_timing = "on"; +# maintenance_io_concurrency = "4"; +# wal_recycle = "on"; + + }; + }; + +} + diff --git a/modules/base-server.nix b/modules/base-server.nix new file mode 100755 index 0000000..e57de83 --- /dev/null +++ b/modules/base-server.nix @@ -0,0 +1,94 @@ +{ config, pkgs, lib, ... }: + +{ + imports = + [ + ./base.nix + ./users/chris.nix + ]; + documentation.nixos.enable = false; + documentation.enable = false; + documentation.info.enable = false; + documentation.man.enable = false; + + + environment.variables.BROWSER = "echo"; + + nix.settings.trusted-users = [ "root" "@wheel" ]; + + time.timeZone = lib.mkDefault "UTC"; + systemd = { + # Given that our systems are headless, emergency mode is useless. + # We prefer the system to attempt to continue booting so + # that we can hopefully still access it remotely. + enableEmergencyMode = false; + + # For more detail, see: + # https://0pointer.de/blog/projects/watchdog.html + watchdog = { + # systemd will send a signal to the hardware watchdog at half + # the interval defined here, so every 10s. + # If the hardware watchdog does not get a signal for 20s, + # it will forcefully reboot the system. + runtimeTime = "20s"; + # Forcefully reboot if the final stage of the reboot + # hangs without progress for more than 30s. + # For more info, see: + # https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdShutdownWatchdog + rebootTime = "30s"; + }; + + sleep.extraConfig = '' + AllowSuspend=no + AllowHibernation=no + ''; + }; + + systemd.services.NetworkManager-wait-online.enable = false; + systemd.network.wait-online.enable = false; + # systemd.services.systemd-networkd.stopIfChanged = false; + # systemd.services.systemd-resolved.stopIfChanged = false; + nix.settings.max-free = lib.mkDefault (1000 * 1000 * 1000); + nix.settings.min-free = lib.mkDefault (128 * 1000 * 1000); + + nix.daemonCPUSchedPolicy = lib.mkDefault "batch"; + nix.daemonIOSchedClass = lib.mkDefault "idle"; + nix.daemonIOSchedPriority = lib.mkDefault 7; + + # My servers always use /dev/vda as boot disk... + boot = { + kernelPackages = pkgs.linuxPackages_latest; + loader = { + grub = { + devices = [ "/dev/vda" ]; # nodev for EFI only + # EFI + efiSupport = false; + efiInstallAsRemovable = false; + }; + timeout = 1; + }; + }; + + networking = { + hostName = lib.mkDefault "Rory-nix-base-server"; + networkmanager.enable = false; + useNetworkd = true; + wireless.enable = false; + enableIPv6 = false; + firewall = { + enable = false; + # allowedTCPPorts = [ ... ]; + # allowedUDPPorts = [ ... ]; + }; + + useDHCP = false; +# nameservers = [ "1.1.1.1" "1.0.0.1" "8.8.8.8" "8.4.4.8" ]; + nameservers = [ "10.0.0.1" "10.5.0.1" "1.1.1.1" "1.0.0.1" "8.8.8.8" "8.4.4.8" ]; + defaultGateway = "10.0.0.1"; + }; + + hardware.pulseaudio.enable = false; + + i18n.defaultLocale = "en_US.UTF-8"; +} + diff --git a/modules/base.nix b/modules/base.nix new file mode 100755 index 0000000..e2d8c7e --- /dev/null +++ b/modules/base.nix @@ -0,0 +1,145 @@ +{ config, pkgs, lib, ... }: + +{ + imports = + [ + ./packages/vim.nix + ./users/Rory.nix + ]; + + boot = { + initrd.systemd.enable = true; + kernelParams = [ + "memory_hotplug.memmap_on_memory=1" + "memhp_default_state=online" + "net.core.default_qdisc=fq" + "net.ipv4.tcp_congestion_control=bbr" + "mitigations=off" + "audit=0" + "consoleblank=0" + "kmemcheck=0" + "no_console_suspend" + "kernel.core_pattern=/dev/null" + "init_on_alloc=0" + "kernel.sysrq=1" + "kernel.dmesg_restrict=0" + "net.ipv4.ip_forward=1" + "vm.swappiness=10" + "net.core.netdev_max_backlog=16384" + "net.core.somaxconn=8192" + "net.core.rmem_default=1048576" + "net.core.rmem_max=16777216" + "net.core.wmem_default=1048576" + "net.core.wmem_max=16777216" + "net.core.optmem_max=65536" + #"net.ipv4.tcp_rmem=4096 1048576 2097152" + #"net.ipv4.tcp_wmem=4096 65536 16777216" + "net.ipv4.udp_rmem_min=4096" + "net.ipv4.udp_wmem_min=4096" + "net.ipv4.tcp_fastopen=3" + "net.ipv4.tcp_mtu_probing=1" + "net.ipv4.tcp_keepalive_time=30" + "net.ipv4.tcp_keepalive_intvl=15" + "net.ipv4.tcp_keepalive_probes=4" + "net.ipv4.tcp_timestamps=0" + ]; + kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + loader = { + grub = { + enable = true; + version = 2; + }; + timeout = 1; + }; + }; + + networking = { + hostName = lib.mkDefault "Rory-nix-base"; + firewall = { + enable = false; + # allowedTCPPorts = [ ... ]; + # allowedUDPPorts = [ ... ]; + }; + nameservers = [ "1.1.1.1" "1.0.0.1" "8.8.8.8" "8.4.4.8" ]; + }; + + i18n.defaultLocale = "en_US.UTF-8"; + + services = { + openssh = { + enable = true; + #allow more logins in cases where i have many ssh keys on a system + extraConfig = '' + MaxAuthTries 32 + ''; + }; + resolved = { + enable = true; + dnssec = lib.mkForce "false"; + dnsovertls = lib.mkForce "false"; + }; + }; + + systemd = { + sleep.extraConfig = '' + AllowSuspend=no + AllowHibernation=no + ''; + }; + + environment.systemPackages = with pkgs; [ + wget + neofetch + lnav + pciutils + git + lsd + duf + htop + btop + duf + kitty.terminfo + tmux + jq + yq + pv + dig + cloud-utils + nix-output-monitor + expect + unrar-wrapper + arch-install-scripts + debootstrap + file + unzip + brotli + + + # - zsh + zsh + zsh-powerlevel10k + zsh-nix-shell + zsh-you-should-use + zsh-syntax-highlighting + zsh-completions + ]; + + systemd.coredump.extraConfig = lib.mkDefault '' + Storage=none + ''; + nix = { + settings = { + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; + trusted-users = [ "@wheel" ]; + }; + }; + nixpkgs = { + config.allowUnfree = true; + }; + security = { + polkit.enable = true; + sudo.wheelNeedsPassword = false; + }; + +} diff --git a/modules/packages/nginx/mime.types b/modules/packages/nginx/mime.types new file mode 100644 index 0000000..3ac8468 --- /dev/null +++ b/modules/packages/nginx/mime.types @@ -0,0 +1,1028 @@ +types { +application/A2L a2l; +application/AML aml; +application/andrew-inset ez; +application/ATF atf; +application/ATFX atfx; +application/ATXML atxml; +application/atom+xml atom; +application/atomcat+xml atomcat; +application/atomdeleted+xml atomdeleted; +application/atomsvc+xml atomsvc; +application/atsc-dwd+xml dwd; +application/atsc-held+xml held; +application/atsc-rsat+xml rsat; +application/auth-policy+xml apxml; +application/bacnet-xdd+zip xdd; +application/calendar+xml xcs; +application/cbor cbor; +application/cccex c3ex; +application/ccmp+xml ccmp; +application/ccxml+xml ccxml; +application/CDFX+XML cdfx; +application/cdmi-capability cdmia; +application/cdmi-container cdmic; +application/cdmi-domain cdmid; +application/cdmi-object cdmio; +application/cdmi-queue cdmiq; +application/CEA cea; +application/cellml+xml cellml cml; +application/clr 1clr; +application/clue_info+xml clue; +application/cms cmsc; +application/cpl+xml cpl; +application/csrattrs csrattrs; +application/dash+xml mpd; +application/dashdelta mpdd; +application/davmount+xml davmount; +application/DCD dcd; +application/dicom dcm; +application/DII dii; +application/DIT dit; +application/dskpp+xml xmls; +application/dssc+der dssc; +application/dssc+xml xdssc; +application/dvcs dvc; +application/ecmascript es; +application/efi efi; +application/emma+xml emma; +application/emotionml+xml emotionml; +application/epub+zip epub; +application/exi exi; +application/fastinfoset finf; +application/fdt+xml fdt; +application/font-tdpfr pfr; +application/geo+json geojson; +application/geopackage+sqlite3 gpkg; +application/gltf-buffer glbin glbuf; +application/gml+xml gml; +application/gzip gz tgz; +application/hyperstudio stk; +application/inkml+xml ink inkml; +application/ipfix ipfix; +application/its+xml its; +application/javascript js; +application/jrd+json jrd; +application/json json; +application/json-patch+json json-patch; +application/ld+json jsonld; +application/lgr+xml lgr; +application/link-format wlnk; +application/lost+xml lostxml; +application/lostsync+xml lostsyncxml; +application/lpf+zip lpf; +application/LXF lxf; +application/mac-binhex40 hqx; +application/mads+xml mads; +application/marc mrc; +application/marcxml+xml mrcx; +application/mathematica nb ma mb; +application/mathml+xml mml; +application/mbox mbox; +application/metalink4+xml meta4; +application/mets+xml mets; +application/MF4 mf4; +application/mipc h5; +application/mmt-aei+xml maei; +application/mmt-usd+xml musd; +application/mods+xml mods; +application/mp21 m21 mp21; +application/msword doc; +application/mxf mxf; +application/n-quads nq; +application/n-triples nt; +application/ocsp-request orq; +application/ocsp-response ors; +application/octet-stream bin lha lzh exe class so dll img iso; +application/ODA oda; +application/ODX odx; +application/oebps-package+xml opf; +application/ogg ogx; +application/opc-nodeset+xml ; +application/oxps oxps; +application/p2p-overlay+xml relo; +application/pdf pdf; +application/PDX pdx; +application/pem-certificate-chain pem; +application/pgp-encrypted pgp; +application/pgp-signature sig; +application/pkcs10 p10; +application/pkcs12 p12 pfx; +application/pkcs7-mime p7m p7c; +application/pkcs7-signature p7s; +application/pkcs8 p8; +application/pkcs8-encrypted p8e; +application/pkix-cert cer; +application/pkix-crl crl; +application/pkix-pkipath pkipath; +application/pkixcmp pki; +application/pls+xml pls; +application/postscript ps eps ai; +application/provenance+xml provx; +application/prs.cww cw cww; +application/prs.hpub+zip hpub; +application/prs.nprend rnd rct; +application/prs.rdf-xml-crypt rdf-crypt; +application/prs.xsf+xml xsf; +application/pskc+xml pskcxml; +application/rdf+xml rdf; +application/route-apd+xml rapd; +application/route-s-tsid+xml sls; +application/route-usd+xml rusd; +application/reginfo+xml rif; +application/relax-ng-compact-syntax rnc; +application/resource-lists-diff+xml rld; +application/resource-lists+xml rl; +application/rfc+xml rfcxml; +application/rls-services+xml rs; +application/rpki-ghostbusters gbr; +application/rpki-manifest mft; +application/rpki-roa roa; +application/rtf rtf; +application/sarif-external-properties+json sarif-external-properties sarif-external-properties.json; +application/sarif+json sarif sarif.json; +application/scim+json scim; +application/scvp-cv-request scq; +application/scvp-cv-response scs; +application/scvp-vp-request spq; +application/scvp-vp-response spp; +application/sdp sdp; +application/senml-etch+cbor senml-etchc; +application/senml-etch+json senml-etchj; +application/senml+cbor senmlc; +application/senml+json senml; +application/senml+xml senmlx; +application/senml-exi senmle; +application/sensml+cbor sensmlc; +application/sensml+json sensml; +application/sensml+xml sensmlx; +application/sensml-exi sensmle; +application/sgml-open-catalog soc; +application/shf+xml shf; +application/sieve siv sieve; +application/simple-filter+xml cl; +application/smil+xml smil smi sml; +application/sparql-query rq; +application/sparql-results+xml srx; +application/sql sql; +application/srgs gram; +application/srgs+xml grxml; +application/sru+xml sru; +application/ssml+xml ssml; +application/stix+json stix; +application/swid+xml swidtag; +application/tamp-apex-update tau; +application/tamp-apex-update-confirm auc; +application/tamp-community-update tcu; +application/tamp-community-update-confirm cuc; +application/td+json jsontd; +application/tamp-error ter; +application/tamp-sequence-adjust tsa; +application/tamp-sequence-adjust-confirm sac; +application/tamp-update tur; +application/tamp-update-confirm tuc; +application/tei+xml tei teiCorpus odd; +application/thraud+xml tfi; +application/timestamp-query tsq; +application/timestamp-reply tsr; +application/timestamped-data tsd; +application/trig trig; +application/ttml+xml ttml; +application/urc-grpsheet+xml gsheet; +application/urc-ressheet+xml rsheet; +application/urc-targetdesc+xml td; +application/urc-uisocketdesc+xml uis; +application/vnd.1000minds.decision-model+xml 1km; +application/vnd.3gpp.5gnas ; +application/vnd.3gpp.pic-bw-large plb; +application/vnd.3gpp.pic-bw-small psb; +application/vnd.3gpp.pic-bw-var pvb; +application/vnd.3gpp2.sms sms; +application/vnd.3gpp2.tcap tcap; +application/vnd.3lightssoftware.imagescal imgcal; +application/vnd.3M.Post-it-Notes pwn; +application/vnd.accpac.simply.aso aso; +application/vnd.accpac.simply.imp imp; +application/vnd.acucobol acu; +application/vnd.acucorp atc acutc; +application/vnd.adobe.flash.movie swf; +application/vnd.adobe.formscentral.fcdt fcdt; +application/vnd.adobe.fxp fxp fxpl; +application/vnd.adobe.xdp+xml xdp; +application/vnd.adobe.xfdf xfdf; +application/vnd.afpc.modca list3820 listafp afp pseg3820; +application/vnd.afpc.modca-overlay ovl; +application/vnd.afpc.modca-pagesegment psg; +application/vnd.ahead.space ahead; +application/vnd.airzip.filesecure.azf azf; +application/vnd.airzip.filesecure.azs azs; +application/vnd.amazon.mobi8-ebook azw3; +application/vnd.americandynamics.acc acc; +application/vnd.amiga.ami ami; +application/vnd.android.ota ota; +application/vnd.anki apkg; +application/vnd.anser-web-certificate-issue-initiation cii; +application/vnd.anser-web-funds-transfer-initiation fti; +application/vnd.apple.installer+xml dist distz pkg mpkg; +application/vnd.apple.keynote keynote; +application/vnd.apple.mpegurl m3u8; +application/vnd.apple.numbers numbers; +application/vnd.apple.pages pages; +application/vnd.aristanetworks.swi swi; +application/vnd.artisan+json artisan; +application/vnd.astraea-software.iota iota; +application/vnd.audiograph aep; +application/vnd.autopackage package; +application/vnd.balsamiq.bmml+xml bmml; +application/vnd.banana-accounting ac2; +application/vnd.balsamiq.bmpr bmpr; +application/vnd.blueice.multipass mpm; +application/vnd.bluetooth.ep.oob ep; +application/vnd.bluetooth.le.oob le; +application/vnd.bmi bmi; +application/vnd.businessobjects rep; +application/vnd.cendio.thinlinc.clientconf tlclient; +application/vnd.chemdraw+xml cdxml; +application/vnd.chess-pgn pgn; +application/vnd.chipnuts.karaoke-mmd mmd; +application/vnd.cinderella cdy; +application/vnd.citationstyles.style+xml csl; +application/vnd.claymore cla; +application/vnd.cloanto.rp9 rp9; +application/vnd.clonk.c4group c4g c4d c4f c4p c4u; +application/vnd.cluetrust.cartomobile-config c11amc; +application/vnd.cluetrust.cartomobile-config-pkg c11amz; +application/vnd.coffeescript coffee; +application/vnd.collabio.xodocuments.document xodt; +application/vnd.collabio.xodocuments.document-template xott; +application/vnd.collabio.xodocuments.presentation xodp; +application/vnd.collabio.xodocuments.presentation-template xotp; +application/vnd.collabio.xodocuments.spreadsheet xods; +application/vnd.collabio.xodocuments.spreadsheet-template xots; +application/vnd.comicbook-rar cbr; +application/vnd.comicbook+zip cbz; +application/vnd.commerce-battelle ica icf icd ic0 ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8; +application/vnd.commonspace csp cst; +application/vnd.contact.cmsg cdbcmsg; +application/vnd.coreos.ignition+json ign ignition; +application/vnd.cosmocaller cmc; +application/vnd.crick.clicker clkx; +application/vnd.crick.clicker.keyboard clkk; +application/vnd.crick.clicker.palette clkp; +application/vnd.crick.clicker.template clkt; +application/vnd.crick.clicker.wordbank clkw; +application/vnd.criticaltools.wbs+xml wbs; +application/vnd.crypto-shade-file ssvc; +application/vnd.cryptomator.encrypted c9r c9s; +application/vnd.cryptomator.vault cryptomator; +application/vnd.ctc-posml pml; +application/vnd.cups-ppd ppd; +application/vnd.curl curl; +application/vnd.dart dart; +application/vnd.data-vision.rdz rdz; +application/vnd.dbf dbf; +application/vnd.debian.binary-package deb udeb; +application/vnd.dece.data uvf uvvf uvd uvvd; +application/vnd.dece.ttml+xml uvt uvvt; +application/vnd.dece.unspecified uvx uvvx; +application/vnd.dece.zip uvz uvvz; +application/vnd.denovo.fcselayout-link fe_launch; +application/vnd.desmume.movie dsm; +application/vnd.dna dna; +application/vnd.document+json docjson; +application/vnd.doremir.scorecloud-binary-document scld; +application/vnd.dpgraph dpg mwc dpgraph; +application/vnd.dreamfactory dfac; +application/vnd.dtg.local.flash fla; +application/vnd.dvb.ait ait; +application/vnd.dvb.service svc; +application/vnd.dynageo geo; +application/vnd.dzr dzr; +application/vnd.ecowin.chart mag; +application/vnd.enliven nml; +application/vnd.epson.esf esf; +application/vnd.epson.msf msf; +application/vnd.epson.quickanime qam; +application/vnd.epson.salt slt; +application/vnd.epson.ssf ssf; +application/vnd.ericsson.quickcall qcall qca; +application/vnd.espass-espass+zip espass; +application/vnd.eszigno3+xml es3 et3; +application/vnd.etsi.asic-e+zip asice sce; +application/vnd.etsi.asic-s+zip asics; +application/vnd.etsi.timestamp-token tst; +application/vnd.exstream-empower+zip mpw; +application/vnd.exstream-package pub; +application/vnd.evolv.ecig.profile ecigprofile; +application/vnd.evolv.ecig.settings ecig; +application/vnd.evolv.ecig.theme ecigtheme; +application/vnd.ezpix-album ez2; +application/vnd.ezpix-package ez3; +application/vnd.fastcopy-disk-image dim; +application/vnd.fdf fdf; +application/vnd.fdsn.mseed msd mseed; +application/vnd.fdsn.seed seed dataless; +application/vnd.ficlab.flb+zip flb; +application/vnd.filmit.zfc zfc; +application/vnd.FloGraphIt gph; +application/vnd.fluxtime.clip ftc; +application/vnd.font-fontforge-sfd sfd; +application/vnd.framemaker fm; +application/vnd.frogans.fnc fnc; +application/vnd.frogans.ltf ltf; +application/vnd.fsc.weblaunch fsc; +application/vnd.fujitsu.oasys oas; +application/vnd.fujitsu.oasys2 oa2; +application/vnd.fujitsu.oasys3 oa3; +application/vnd.fujitsu.oasysgp fg5; +application/vnd.fujitsu.oasysprs bh2; +application/vnd.fujixerox.ddd ddd; +application/vnd.fujixerox.docuworks xdw; +application/vnd.fujixerox.docuworks.binder xbd; +application/vnd.fujixerox.docuworks.container xct; +application/vnd.fuzzysheet fzs; +application/vnd.genomatix.tuxedo txd; +application/vnd.geocube+xml g3 g³; +application/vnd.geogebra.file ggb; +application/vnd.geogebra.slides ggs; +application/vnd.geogebra.tool ggt; +application/vnd.geometry-explorer gex gre; +application/vnd.geonext gxt; +application/vnd.geoplan g2w; +application/vnd.geospace g3w; +application/vnd.gmx gmx; +application/vnd.google-earth.kml+xml kml; +application/vnd.google-earth.kmz kmz; +application/vnd.grafeq gqf gqs; +application/vnd.groove-account gac; +application/vnd.groove-help ghf; +application/vnd.groove-identity-message gim; +application/vnd.groove-injector grv; +application/vnd.groove-tool-message gtm; +application/vnd.groove-tool-template tpl; +application/vnd.groove-vcard vcg; +application/vnd.hal+xml hal; +application/vnd.HandHeld-Entertainment+xml zmm; +application/vnd.hbci hbci hbc kom upa pkd bpd; +application/vnd.hdt hdt; +application/vnd.hhe.lesson-player les; +application/vnd.hp-HPGL hpgl; +application/vnd.hp-hpid hpi hpid; +application/vnd.hp-hps hps; +application/vnd.hp-jlyt jlt; +application/vnd.hp-PCL pcl; +application/vnd.hydrostatix.sof-data sfd-hdstx; +application/vnd.hzn-3d-crossword x3d; +application/vnd.ibm.electronic-media emm; +application/vnd.ibm.MiniPay mpy; +application/vnd.ibm.rights-management irm; +application/vnd.ibm.secure-container sc; +application/vnd.iccprofile icc icm; +application/vnd.ieee.1905 1905.1; +application/vnd.igloader igl; +application/vnd.imagemeter.folder+zip imf; +application/vnd.imagemeter.image+zip imi; +application/vnd.immervision-ivp ivp; +application/vnd.immervision-ivu ivu; +application/vnd.ims.imsccv1p1 imscc; +application/vnd.insors.igm igm; +application/vnd.intercon.formnet xpw xpx; +application/vnd.intergeo i2g; +application/vnd.intu.qbo qbo; +application/vnd.intu.qfx qfx; +application/vnd.ipunplugged.rcprofile rcprofile; +application/vnd.irepository.package+xml irp; +application/vnd.is-xpr xpr; +application/vnd.isac.fcs fcs; +application/vnd.jam jam; +application/vnd.jcp.javame.midlet-rms rms; +application/vnd.jisp jisp; +application/vnd.joost.joda-archive joda; +application/vnd.kahootz ktz ktr; +application/vnd.kde.karbon karbon; +application/vnd.kde.kchart chrt; +application/vnd.kde.kformula kfo; +application/vnd.kde.kivio flw; +application/vnd.kde.kontour kon; +application/vnd.kde.kpresenter kpr kpt; +application/vnd.kde.kspread ksp; +application/vnd.kde.kword kwd kwt; +application/vnd.kenameaapp htke; +application/vnd.kidspiration kia; +application/vnd.Kinar kne knp sdf; +application/vnd.koan skp skd skm skt; +application/vnd.kodak-descriptor sse; +application/vnd.las las; +application/vnd.las.las+json lasjson; +application/vnd.las.las+xml lasxml; +application/vnd.llamagraphics.life-balance.desktop lbd; +application/vnd.llamagraphics.life-balance.exchange+xml lbe; +application/vnd.logipipe.circuit+zip lcs lca; +application/vnd.loom loom; +application/vnd.lotus-1-2-3 123 wk4 wk3 wk1; +application/vnd.lotus-approach apr vew; +application/vnd.lotus-freelance prz pre; +application/vnd.lotus-notes nsf ntf ndl ns4 ns3 ns2 nsh nsg; +application/vnd.lotus-organizer or3 or2 org; +application/vnd.lotus-screencam scm; +application/vnd.lotus-wordpro lwp sam; +application/vnd.macports.portpkg portpkg; +application/vnd.mapbox-vector-tile mvt; +application/vnd.marlin.drm.mdcf mdc; +application/vnd.maxmind.maxmind-db mmdb; +application/vnd.mcd mcd; +application/vnd.medcalcdata mc1; +application/vnd.mediastation.cdkey cdkey; +application/vnd.MFER mwf; +application/vnd.mfmp mfm; +application/vnd.micrografx.flo flo; +application/vnd.micrografx.igx igx; +application/vnd.mif mif; +application/vnd.Mobius.DAF daf; +application/vnd.Mobius.DIS dis; +application/vnd.Mobius.MBK mbk; +application/vnd.Mobius.MQY mqy; +application/vnd.Mobius.MSL msl; +application/vnd.Mobius.PLC plc; +application/vnd.Mobius.TXF txf; +application/vnd.mophun.application mpn; +application/vnd.mophun.certificate mpc; +application/vnd.mozilla.xul+xml xul; +application/vnd.ms-3mfdocument 3mf; +application/vnd.ms-artgalry cil; +application/vnd.ms-asf asf; +application/vnd.ms-cab-compressed cab; +application/vnd.ms-excel xls xlm xla xlc xlt xlw; +application/vnd.ms-excel.template.macroEnabled.12 xltm; +application/vnd.ms-excel.addin.macroEnabled.12 xlam; +application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb; +application/vnd.ms-excel.sheet.macroEnabled.12 xlsm; +application/vnd.ms-fontobject eot; +application/vnd.ms-htmlhelp chm; +application/vnd.ms-ims ims; +application/vnd.ms-lrm lrm; +application/vnd.ms-officetheme thmx; +application/vnd.ms-powerpoint ppt pps pot; +application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam; +application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm; +application/vnd.ms-powerpoint.slide.macroEnabled.12 sldm; +application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm; +application/vnd.ms-powerpoint.template.macroEnabled.12 potm; +application/vnd.ms-project mpp mpt; +application/vnd.ms-tnef tnef tnf; +application/vnd.ms-word.document.macroEnabled.12 docm; +application/vnd.ms-word.template.macroEnabled.12 dotm; +application/vnd.ms-works wcm wdb wks wps; +application/vnd.ms-wpl wpl; +application/vnd.ms-xpsdocument xps; +application/vnd.msa-disk-image msa; +application/vnd.mseq mseq; +application/vnd.multiad.creator crtr; +application/vnd.multiad.creator.cif cif; +application/vnd.musician mus; +application/vnd.muvee.style msty; +application/vnd.mynfc taglet; +application/vnd.nebumind.line nebul line; +application/vnd.nervana entity request bkm kcm; +application/vnd.nimn nimn; +application/vnd.nitf nitf; +application/vnd.neurolanguage.nlu nlu; +application/vnd.nintendo.nitro.rom nds; +application/vnd.nintendo.snes.rom sfc smc; +application/vnd.noblenet-directory nnd; +application/vnd.noblenet-sealer nns; +application/vnd.noblenet-web nnw; +application/vnd.nokia.n-gage.ac+xml ac; +application/vnd.nokia.n-gage.data ngdat; +application/vnd.nokia.n-gage.symbian.install n-gage; +application/vnd.nokia.radio-preset rpst; +application/vnd.nokia.radio-presets rpss; +application/vnd.novadigm.EDM edm; +application/vnd.novadigm.EDX edx; +application/vnd.novadigm.EXT ext; +application/vnd.oasis.opendocument.chart odc; +application/vnd.oasis.opendocument.chart-template otc; +application/vnd.oasis.opendocument.database odb; +application/vnd.oasis.opendocument.formula odf; +application/vnd.oasis.opendocument.graphics odg; +application/vnd.oasis.opendocument.graphics-template otg; +application/vnd.oasis.opendocument.image odi; +application/vnd.oasis.opendocument.image-template oti; +application/vnd.oasis.opendocument.presentation odp; +application/vnd.oasis.opendocument.presentation-template otp; +application/vnd.oasis.opendocument.spreadsheet ods; +application/vnd.oasis.opendocument.spreadsheet-template ots; +application/vnd.oasis.opendocument.text odt; +application/vnd.oasis.opendocument.text-master odm; +application/vnd.oasis.opendocument.text-template ott; +application/vnd.oasis.opendocument.text-web oth; +application/vnd.olpc-sugar xo; +application/vnd.oma.dd2+xml dd2; +application/vnd.onepager tam; +application/vnd.onepagertamp tamp; +application/vnd.onepagertamx tamx; +application/vnd.onepagertat tat; +application/vnd.onepagertatp tatp; +application/vnd.onepagertatx tatx; +application/vnd.openblox.game+xml obgx; +application/vnd.openblox.game-binary obg; +application/vnd.openeye.oeb oeb; +application/vnd.openofficeorg.extension oxt; +application/vnd.openstreetmap.data+xml osm; +application/vnd.openxmlformats-officedocument.presentationml.presentation pptx; +application/vnd.openxmlformats-officedocument.presentationml.slide sldx; +application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx; +application/vnd.openxmlformats-officedocument.presentationml.template potx; +application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx; +application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx; +application/vnd.openxmlformats-officedocument.wordprocessingml.document docx; +application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx; +application/vnd.osa.netdeploy ndc; +application/vnd.osgeo.mapguide.package mgp; +application/vnd.osgi.dp dp; +application/vnd.osgi.subsystem esa; +application/vnd.oxli.countgraph oxlicg; +application/vnd.palm prc pdb pqa oprc; +application/vnd.panoply plp; +application/vnd.patentdive dive; +application/vnd.pawaafile paw; +application/vnd.pg.format str; +application/vnd.pg.osasli ei6; +application/vnd.piaccess.application-licence pil; +application/vnd.picsel efif; +application/vnd.pmi.widget wg; +application/vnd.pocketlearn plf; +application/vnd.powerbuilder6 pbd; +application/vnd.preminet preminet; +application/vnd.previewsystems.box box vbox; +application/vnd.proteus.magazine mgz; +application/vnd.psfs psfs; +application/vnd.publishare-delta-tree qps; +application/vnd.pvi.ptid1 ptid; +application/vnd.qualcomm.brew-app-res bar; +application/vnd.Quark.QuarkXPress qxd qxt qwd qwt qxl qxb; +application/vnd.quobject-quoxdocument quox quiz; +application/vnd.rainstor.data tree; +application/vnd.rar rar; +application/vnd.realvnc.bed bed; +application/vnd.recordare.musicxml mxl; +application/vnd.rig.cryptonote cryptonote; +application/vnd.route66.link66+xml link66; +application/vnd.sailingtracker.track st; +application/vnd.sar SAR; +application/vnd.scribus scd sla slaz; +application/vnd.sealed.3df s3df; +application/vnd.sealed.csf scsf; +application/vnd.sealed.doc sdoc sdo s1w; +application/vnd.sealed.eml seml sem; +application/vnd.sealed.mht smht smh; +application/vnd.sealed.ppt sppt s1p; +application/vnd.sealed.tiff stif; +application/vnd.sealed.xls sxls sxl s1e; +application/vnd.sealedmedia.softseal.html stml s1h; +application/vnd.sealedmedia.softseal.pdf spdf spd s1a; +application/vnd.seemail see; +application/vnd.sema sema; +application/vnd.semd semd; +application/vnd.semf semf; +application/vnd.shade-save-file ssv; +application/vnd.shana.informed.formdata ifm; +application/vnd.shana.informed.formtemplate itp; +application/vnd.shana.informed.interchange iif; +application/vnd.shana.informed.package ipk; +application/vnd.shp shp; +application/vnd.shx shx; +application/vnd.sigrok.session sr; +application/vnd.SimTech-MindMapper twd twds; +application/vnd.smaf mmf; +application/vnd.smart.notebook notebook; +application/vnd.smart.teacher teacher; +application/vnd.snesdev-page-table ptrom pt; +application/vnd.software602.filler.form+xml fo; +application/vnd.software602.filler.form-xml-zip zfo; +application/vnd.solent.sdkm+xml sdkm sdkd; +application/vnd.spotfire.dxp dxp; +application/vnd.spotfire.sfs sfs; +application/vnd.sqlite3 sqlite sqlite3; +application/vnd.stepmania.package smzip; +application/vnd.stepmania.stepchart sm; +application/vnd.sun.wadl+xml wadl; +application/vnd.sus-calendar sus susp; +application/vnd.sycle+xml scl; +application/vnd.syncml+xml xsm; +application/vnd.syncml.dm+wbxml bdm; +application/vnd.syncml.dm+xml xdm; +application/vnd.syncml.dmddf+xml ddf; +application/vnd.tao.intent-module-archive tao; +application/vnd.tcpdump.pcap pcap cap dmp; +application/vnd.theqvd qvd; +application/vnd.think-cell.ppttc+json ppttc; +application/vnd.tml vfr viaframe; +application/vnd.tmobile-livetv tmo; +application/vnd.trid.tpt tpt; +application/vnd.triscape.mxs mxs; +application/vnd.trueapp tra; +application/vnd.ufdl ufdl ufd frm; +application/vnd.uiq.theme utz; +application/vnd.umajin umj; +application/vnd.unity unityweb; +application/vnd.uoml+xml uoml uo; +application/vnd.uri-map urim urimap; +application/vnd.valve.source.material vmt; +application/vnd.vcx vcx; +application/vnd.vd-study mxi study-inter model-inter; +application/vnd.vectorworks vwx; +application/vnd.veryant.thin istc isws; +application/vnd.ves.encrypted VES; +application/vnd.vidsoft.vidconference vsc; +application/vnd.visio vsd vst vsw vss; +application/vnd.visionary vis; +application/vnd.vsf vsf; +application/vnd.wap.sic sic; +application/vnd.wap.slc slc; +application/vnd.wap.wbxml wbxml; +application/vnd.wap.wmlc wmlc; +application/vnd.wap.wmlscriptc wmlsc; +application/vnd.webturbo wtb; +application/vnd.wfa.p2p p2p; +application/vnd.wfa.wsc wsc; +application/vnd.wmc wmc; +application/vnd.wolfram.mathematica.package m; +application/vnd.wolfram.player nbp; +application/vnd.wordperfect wpd; +application/vnd.wqd wqd; +application/vnd.wt.stf stf; +application/vnd.wv.csp+wbxml wv; +application/vnd.xara xar; +application/vnd.xfdl xfdl xfd; +application/vnd.xmpie.cpkg cpkg; +application/vnd.xmpie.dpkg dpkg; +application/vnd.xmpie.ppkg ppkg; +application/vnd.xmpie.xlim xlim; +application/vnd.yamaha.hv-dic hvd; +application/vnd.yamaha.hv-script hvs; +application/vnd.yamaha.hv-voice hvp; +application/vnd.yamaha.openscoreformat osf; +application/vnd.yamaha.smaf-audio saf; +application/vnd.yamaha.smaf-phrase spf; +application/vnd.yaoweme yme; +application/vnd.yellowriver-custom-menu cmp; +application/vnd.zul zir zirz; +application/vnd.zzazz.deck+xml zaz; +application/voicexml+xml vxml; +application/voucher-cms+json vcj; +application/wasm wasm; +application/watcherinfo+xml wif; +application/widget wgt; +application/wsdl+xml wsdl; +application/wspolicy+xml wspolicy; +application/xcap-att+xml xav; +application/xcap-caps+xml xca; +application/xcap-diff+xml xdf; +application/xcap-el+xml xel; +application/xcap-error+xml xer; +application/xcap-ns+xml xns; +application/xhtml+xml xhtml xhtm xht; +application/xliff+xml xlf; +application/xml-dtd dtd; +application/xop+xml xop; +application/xslt+xml xsl xslt; +application/xv+xml mxml xhvml xvml xvm; +application/yang yang; +application/yin+xml yin; +application/zip zip; +application/zstd zst; +audio/32kadpcm 726; +audio/aac adts aac ass; +audio/ac3 ac3; +audio/AMR amr; +audio/AMR-WB awb; +audio/asc acn; +audio/ATRAC-ADVANCED-LOSSLESS aal; +audio/ATRAC-X atx; +audio/ATRAC3 at3 aa3 omg; +audio/basic au snd; +audio/dls dls; +audio/EVRC evc; +audio/EVRCB evb; +audio/EVRCNW enw; +audio/EVRCWB evw; +audio/iLBC lbc; +audio/L16 l16; +audio/mhas mhas; +audio/mobile-xmf mxmf; +audio/mp4 m4a; +audio/mpeg mp3 mpga mp1 mp2; +audio/ogg oga ogg opus spx; +audio/prs.sid sid psid; +audio/QCELP qcp; +audio/SMV smv; +audio/sofa sofa; +audio/usac loas xhe; +audio/vnd.audiokoz koz; +audio/vnd.dece.audio uva uvva; +audio/vnd.digital-winds eol; +audio/vnd.dolby.mlp mlp; +audio/vnd.dts dts; +audio/vnd.dts.hd dtshd; +audio/vnd.everad.plj plj; +audio/vnd.lucent.voice lvp; +audio/vnd.ms-playready.media.pya pya; +audio/vnd.nortel.vbk vbk; +audio/vnd.nuera.ecelp4800 ecelp4800; +audio/vnd.nuera.ecelp7470 ecelp7470; +audio/vnd.nuera.ecelp9600 ecelp9600; +audio/vnd.presonus.multitrack multitrack; +audio/vnd.rip rip; +audio/vnd.sealedmedia.softseal.mpeg smp3 smp s1m; +font/collection ttc; +font/otf otf; +font/ttf ttf; +font/woff woff; +font/woff2 woff2; +image/aces exr; +image/avci avci; +image/avcs avcs; +image/avif avif hif; +image/bmp bmp dib; +image/cgm cgm; +image/dicom-rle drle; +image/emf emf; +image/fits fits fit fts; +image/heic heic; +image/heic-sequence heics; +image/heif heif; +image/heif-sequence heifs; +image/hej2k hej2; +image/hsj2 hsj2; +image/gif gif; +image/ief ief; +image/jls jls; +image/jp2 jp2 jpg2; +image/jph jph; +image/jphc jhc; +image/jpeg jpg jpeg jpe jfif; +image/jpm jpm jpgm; +image/jpx jpx jpf; +image/jxl jxl; +image/jxr jxr; +image/jxrA jxra; +image/jxrS jxrs; +image/jxs jxs; +image/jxsc jxsc; +image/jxsi jxsi; +image/jxss jxss; +image/ktx ktx; +image/ktx2 ktx2; +image/png png; +image/prs.btif btif btf; +image/prs.pti pti; +image/svg+xml svg svgz; +image/t38 t38; +image/tiff tiff tif; +image/tiff-fx tfx; +image/vnd.adobe.photoshop psd; +image/vnd.airzip.accelerator.azv azv; +image/vnd.dece.graphic uvi uvvi uvg uvvg; +image/vnd.djvu djvu djv; +image/vnd.dwg dwg; +image/vnd.dxf dxf; +image/vnd.fastbidsheet fbs; +image/vnd.fpx fpx; +image/vnd.fst fst; +image/vnd.fujixerox.edmics-mmr mmr; +image/vnd.fujixerox.edmics-rlc rlc; +image/vnd.globalgraphics.pgb pgb; +image/vnd.microsoft.icon ico; +image/vnd.mozilla.apng apng; +image/vnd.ms-modi mdi; +image/vnd.pco.b16 b16; +image/vnd.radiance hdr rgbe xyze; +image/vnd.sealed.png spng spn s1n; +image/vnd.sealedmedia.softseal.gif sgif sgi s1g; +image/vnd.sealedmedia.softseal.jpg sjpg sjp s1j; +image/vnd.tencent.tap tap; +image/vnd.valve.source.texture vtf; +image/vnd.wap.wbmp wbmp; +image/vnd.xiff xif; +image/vnd.zbrush.pcx pcx; +image/wmf wmf; +message/global u8msg; +message/global-delivery-status u8dsn; +message/global-disposition-notification u8mdn; +message/global-headers u8hdr; +message/rfc822 eml mail art; +model/gltf-binary glb; +model/gltf+json gltf; +model/iges igs iges; +model/mesh msh mesh silo; +model/mtl mtl; +model/obj obj; +model/stl stl; +model/vnd.collada+xml dae; +model/vnd.dwf dwf; +model/vnd.gdl gdl gsm win dor lmp rsm msm ism; +model/vnd.gtw gtw; +model/vnd.moml+xml moml; +model/vnd.mts mts; +model/vnd.opengex ogex; +model/vnd.parasolid.transmit.binary x_b xmt_bin; +model/vnd.parasolid.transmit.text x_t xmt_txt; +model/vnd.pytha.pyox pyo pyox; +model/vnd.sap.vds vds; +model/vnd.usdz+zip usdz; +model/vnd.valve.source.compiled-map bsp; +model/vnd.vtu vtu; +model/vrml wrl vrml; +model/x3d+xml x3db; +model/x3d-vrml x3dv x3dvz; +multipart/vnd.bint.med-plus bmed; +multipart/voice-message vpm; +text/cache-manifest appcache manifest; +text/calendar ics ifb; +text/cql CQL; +text/css css; +text/csv csv; +text/csv-schema csvs; +text/dns soa zone; +text/gff3 gff3; +text/html html htm; +text/jcr-cnd cnd; +text/markdown markdown md; +text/mizar miz; +text/n3 n3; +text/plain txt asc text pm el c h cc hh cxx hxx f90 conf log nix nginx sh cs sln razor csproj; +text/provenance-notation provn; +text/prs.fallenstein.rst rst; +text/prs.lines.tag tag dsc; +text/richtext rtx; +text/SGML sgml sgm; +text/shaclc shaclc shc; +text/spdx spdx; +text/tab-separated-values tsv; +text/troff t tr roff; +text/turtle ttl; +text/uri-list uris uri; +text/vcard vcf vcard; +text/vnd.a a; +text/vnd.abc abc; +text/vnd.ascii-art ascii; +text/vnd.debian.copyright copyright; +text/vnd.DMClientScript dms; +text/vnd.dvb.subtitle sub; +text/vnd.esmertec.theme-descriptor jtd; +text/vnd.ficlab.flt flt; +text/vnd.fly fly; +text/vnd.fmi.flexstor flx; +text/vnd.graphviz gv dot; +text/vnd.hans hans; +text/vnd.hgl hgl; +text/vnd.in3d.3dml 3dml 3dm; +text/vnd.in3d.spot spot spo; +text/vnd.ms-mediapackage mpf; +text/vnd.net2phone.commcenter.command ccc; +text/vnd.senx.warpscript mc2; +text/vnd.si.uricatalogue uric; +text/vnd.sun.j2me.app-descriptor jad; +text/vnd.sosi sos; +text/vnd.trolltech.linguist ts; +text/vnd.wap.si si; +text/vnd.wap.sl sl; +text/vnd.wap.wml wml; +text/vnd.wap.wmlscript wmls; +text/vtt vtt; +text/xml xml xsd rng; +text/xml-external-parsed-entity ent; +video/3gpp 3gp 3gpp; +video/3gpp2 3g2 3gpp2; +video/iso.segment m4s; +video/mj2 mj2 mjp2; +video/mp4 mp4 mpg4 m4v; +video/mpeg mpeg mpg mpe m1v m2v; +video/ogg ogv; +video/quicktime mov qt; +video/vnd.dece.hd uvh uvvh; +video/vnd.dece.mobile uvm uvvm; +video/vnd.dece.mp4 uvu uvvu; +video/vnd.dece.pd uvp uvvp; +video/vnd.dece.sd uvs uvvs; +video/vnd.dece.video uvv uvvv; +video/vnd.dvb.file dvb; +video/vnd.fvt fvt; +video/vnd.mpegurl mxu m4u; +video/vnd.ms-playready.media.pyv pyv; +video/vnd.nokia.interleaved-multimedia nim; +video/vnd.radgamettools.bink bik bk2; +video/vnd.radgamettools.smacker smk; +video/vnd.sealed.mpeg1 smpg s11; +video/vnd.sealed.mpeg4 s14; +video/vnd.sealed.swf sswf ssw; +video/vnd.sealedmedia.softseal.mov smov smo s1q; +video/vnd.youtube.yt yt; +video/vnd.vivo viv; +application/mac-compactpro cpt; +application/metalink+xml metalink; +application/owl+xml owx; +application/rss+xml rss; +application/vnd.android.package-archive apk; +application/vnd.oma.dd+xml dd; +application/vnd.oma.drm.content dcf; +application/vnd.oma.drm.dcf o4a o4v; +application/vnd.oma.drm.message dm; +application/vnd.oma.drm.rights+wbxml drc; +application/vnd.oma.drm.rights+xml dr; +application/vnd.sun.xml.calc sxc; +application/vnd.sun.xml.calc.template stc; +application/vnd.sun.xml.draw sxd; +application/vnd.sun.xml.draw.template std; +application/vnd.sun.xml.impress sxi; +application/vnd.sun.xml.impress.template sti; +application/vnd.sun.xml.math sxm; +application/vnd.sun.xml.writer sxw; +application/vnd.sun.xml.writer.global sxg; +application/vnd.sun.xml.writer.template stw; +application/vnd.symbian.install sis; +application/vnd.wap.mms-message mms; +application/x-annodex anx; +application/x-bcpio bcpio; +application/x-bittorrent torrent; +application/x-bzip2 bz2; +application/x-cdlink vcd; +application/x-chrome-extension crx; +application/x-cpio cpio; +application/x-csh csh; +application/x-director dcr dir dxr; +application/x-dvi dvi; +application/x-futuresplash spl; +application/x-gtar gtar; +application/x-hdf hdf; +application/x-java-archive jar; +application/x-java-jnlp-file jnlp; +application/x-java-pack200 pack; +application/x-killustrator kil; +application/x-latex latex; +application/x-netcdf nc cdf; +application/x-perl pl; +application/x-rpm rpm; +application/x-sh sh; +application/x-shar shar; +application/x-stuffit sit; +application/x-sv4cpio sv4cpio; +application/x-sv4crc sv4crc; +application/x-tar tar; +application/x-tcl tcl; +application/x-tex tex; +application/x-texinfo texinfo texi; +application/x-troff-man man 1 2 3 4 5 6 7 8; +application/x-troff-me me; +application/x-troff-ms ms; +application/x-ustar ustar; +application/x-wais-source src; +application/x-xpinstall xpi; +application/x-xspf+xml xspf; +application/x-xz xz; +audio/midi mid midi kar; +audio/x-aiff aif aiff aifc; +audio/x-annodex axa; +audio/x-flac flac; +audio/x-matroska mka; +audio/x-mod mod ult uni m15 mtm 669 med; +audio/x-mpegurl m3u; +audio/x-ms-wax wax; +audio/x-ms-wma wma; +audio/x-pn-realaudio ram rm; +audio/x-realaudio ra; +audio/x-s3m s3m; +audio/x-stm stm; +audio/x-wav wav; +chemical/x-xyz xyz; +image/webp webp; +image/x-cmu-raster ras; +image/x-portable-anymap pnm; +image/x-portable-bitmap pbm; +image/x-portable-graymap pgm; +image/x-portable-pixmap ppm; +image/x-rgb rgb; +image/x-targa tga; +image/x-xbitmap xbm; +image/x-xpixmap xpm; +image/x-xwindowdump xwd; +text/html-sandboxed sandboxed; +text/x-pod pod; +text/x-setext etx; +video/webm webm; +video/x-annodex axv; +video/x-flv flv; +video/x-javafx fxm; +video/x-matroska mkv; +video/x-matroska-3d mk3d; +video/x-ms-asf asx; +video/x-ms-wm wm; +video/x-ms-wmv wmv; +video/x-ms-wmx wmx; +video/x-ms-wvx wvx; +video/x-msvideo avi; +video/x-sgi-movie movie; +x-conference/x-cooltalk ice; +x-epoc/x-sisx-app sisx; +} diff --git a/modules/packages/vim.nix b/modules/packages/vim.nix new file mode 100755 index 0000000..3524e2c --- /dev/null +++ b/modules/packages/vim.nix @@ -0,0 +1,22 @@ +{ pkgs, ... }: +{ + environment.variables = { EDITOR = "vim"; }; + + environment.systemPackages = with pkgs; [ + (neovim.override { + vimAlias = true; + configure = { + packages.myPlugins = with pkgs.vimPlugins; { + start = [ vim-lastplace vim-nix vim-airline ]; + opt = []; + }; + customRC = '' + " your custom vimrc + set nocompatible + set backspace=indent,eol,start + " ... + ''; + }; + } + )]; +} diff --git a/modules/users/Rory.client.nix b/modules/users/Rory.client.nix new file mode 100755 index 0000000..b3ef89f --- /dev/null +++ b/modules/users/Rory.client.nix @@ -0,0 +1,53 @@ +{ config, lib, pkgs, home-manager, ... }: + +{ + programs = { + ssh = { + startAgent = true; + setXAuthLocation = true; + enableAskPassword = true; + }; + }; + home-manager.users.Rory = { + services.gnome-keyring.enable = lib.mkForce false; + dconf.settings = { + "org/virt-manager/virt-manager/connections" = { + autoconnect = ["qemu:///system"]; + uris = ["qemu:///system"]; + }; + }; + # keepassxc, maybe? + systemd.user.services.keepassxc = { + Unit = { + Description = "KeePassXC password manager"; + #After = [ "graphical-session-pre.target" ]; + PartOf = [ "default.target" ]; + }; + + Install = { WantedBy = [ "default.target" ]; }; + + Service = { + ExecStart = "${pkgs.keepassxc}/bin/keepassxc ~/.secrets.kdbx"; + Restart = "always"; + }; + }; + + systemd.user.services.easyeffects = { + Unit = { + Description = "EasyEffects"; + #After = [ "graphical-session-pre.target" ]; + PartOf = [ "default.target" ]; + }; + + Install = { WantedBy = [ "default.target" ]; }; + + Service = { + ExecStart = "${pkgs.easyeffects}/bin/easyeffects"; + Restart = "always"; + }; + }; + + home.stateVersion = "22.11"; + }; +} + diff --git a/modules/users/Rory.nix b/modules/users/Rory.nix new file mode 100755 index 0000000..c6a4ed6 --- /dev/null +++ b/modules/users/Rory.nix @@ -0,0 +1,190 @@ +{ config, lib, pkgs, home-manager, ... }: + +{ + users.users.Rory = { + isNormalUser = true; + extraGroups = [ "wheel" "libvirtd" "ocp" ]; + packages = with pkgs; [ + lnav + age + git + lsd + duf + btop + htop + kitty.terminfo + tmux + jq + dig + + # - zsh + zsh + zsh-powerlevel10k + zsh-nix-shell + zsh-you-should-use + zsh-syntax-highlighting + zsh-completions + ]; + openssh.authorizedKeys.keys = [ + #"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICT+53Hy3wbIlNVIomK2RroaimMWrTlUkndjHt1dFuyh root@pfSense-arcane-home.localdomain" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILF2IuNu//0DP/wKMuDvBgVT3YBS2uULsipbdrhJCTM7 thearcanebrony@tab-linux-desktop" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN/kNkY/E5b6rvCQLMaSbpLQ/xoyywIwVVu9uo2j/B6p Rory@RoryNix" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJPRTuz83dVThuDVXhDz3w3uYBGJ+JPzdZFT6wvhQXQ3 Rory@Rory-wsl" # work laptop + ]; + useDefaultShell = true; + shell = pkgs.zsh; + }; + programs.zsh.enable = true; + environment.shells = with pkgs; [ zsh ]; + + home-manager.users.Rory = { + programs = { + git = { + enable = true; + userName = "Rory&"; + userEmail = "root@rory.gay"; + extraConfig = { + safe = { + directory = "/"; + }; + }; + }; + zsh = { + enable = true; + enableAutosuggestions = true; + enableVteIntegration = true; + autocd = true; + + initExtraFirst = '' + export EDITOR=nvim + export SYSTEMD_EDITOR=$EDITOR + export GIT_EDITOR=$EDITOR + export QT_QPA_PLATFORMTHEME=xdgdesktopportal + export GTK_USE_PORTAL=1 + export _JAVA_AWT_WM_NONREPARENTING=1 + export WINEDEBUG=-all + export DOTPROFILE_LOADED='yes' + 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 + ( + echo "Host $1" + echo " IdentityFile ~/.ssh/id_ed25519_$1" + ) >> ~/.ssh/config + echo 'Done! Public key:' + cat ~/.ssh/id_ed25519_$1.pub + } + + export DISABLE_AUTO_UPDATE=true + COMPLETION_WAITING_DOTS="true" + ''; + initExtra = '' + alias mv='mv -v' + alias pre='npx prettier -w' + alias git-commit='git commit --signoff --sign' + alias npm='NODE_OPTIONS=--openssl-legacy-provider npm' + alias npx='NODE_OPTIONS=--openssl-legacy-provider npx' + alias yarn='NODE_OPTIONS=--openssl-legacy-provider npx -y yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config' + alias node='NODE_OPTIONS=--openssl-legacy-provider node' + # - dotnet + alias drun='dotnet watch run --no-hot-reload --property WarningLevel=0' + alias dbuild='dotnet watch build --no-hot-reload --property WarningLevel=0' + alias ls='lsd -lA --color=always --icon=always' + alias transfetch='neofetch --kitty ~/trans_witch.jpg' + alias gc='git-commit' + [ -f "$HOME/.profile" ] && . $HOME/.profile + ''; + #alias knconfig='cp .config ../$(date ''+%Y%m%d_%k%M%S\'').config -v; make CC=clang LLVM=1 nconfig' + oh-my-zsh = { + enable = true; + plugins = [ + "git" + "sudo" + ]; + }; + + plugins = [ + { + name = "powerlevel10k"; + src = pkgs.zsh-powerlevel10k; + file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + } + { + name = "powerlevel10k-config"; + src = lib.cleanSource ./Rory; + file = "p10k.zsh"; + } + { + name = "zsh-syntax-highlighting"; + src = pkgs.zsh-syntax-highlighting; + file = "share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"; + } + { + name = "zsh-autosuggestions"; + src = pkgs.zsh-autosuggestions; + file = "share/zsh-autosuggestions/zsh-autosuggestions.zsh"; + } + ]; + + localVariables = { + POWERLEVEL9K_LEFT_PROMPT_ELEMENTS = [ + "os_icon" + "dir" + "vcs" + "prompt_char" + ]; + POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS = [ + "status" + "command_execution_time" + "background_jobs" + "direnv" + "virtualenv" + "pyenv" + "nodeenv" + "context" + "nix_shell" + "vi_mode" + "load" + "disk_usage" + "ram" + ]; + POWERLEVEL9K_MODE = "nerdfont-complete"; + POWERLEVEL9K_ICON_PADDING = "none"; + POWERLEVEL9K_PROMPT_ADD_NEWLINE = "false"; + POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR = "\uE0B1"; + POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR = "\uE0B3"; + POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR = "\uE0B0"; + POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR = "\uE0B2"; + POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL = "\uE0B0"; + POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL = "\uE0B2"; + POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE = true; + }; + }; + neovim = { + defaultEditor = true; + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + coc = { + enable = true; + + }; + }; + }; + + programs.neovim.plugins = with pkgs.vimPlugins; [ + pkgs.vimPlugins.nvim-tree-lua + { + plugin = pkgs.vimPlugins.vim-startify; + config = "let g:startify_change_to_vcs_root = 0"; + } + ]; + + home.stateVersion = "22.11"; + }; +} + diff --git a/modules/users/Rory/p10k.zsh b/modules/users/Rory/p10k.zsh new file mode 100644 index 0000000..e7f8e7c --- /dev/null +++ b/modules/users/Rory/p10k.zsh @@ -0,0 +1,1723 @@ +# Generated by Powerlevel10k configuration wizard on 2022-03-07 at 14:25 CET. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 19497. +# Wizard options: nerdfont-complete + powerline, small icons, rainbow, unicode, +# angled separators, sharp heads, flat tails, 1 line, compact, many icons, fluent, +# instant_prompt=verbose. +# Type `p10k configure` to generate another config. +# +# Config for Powerlevel10k with powerline prompt style with colorful background. +# Type `p10k configure` to generate your own config based on it. +# +# Tip: Looking for a nice color? Here's a one-liner to print colormap. +# +# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done + +# Temporarily change options. +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. This allows you to apply configuration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + autoload -Uz is-at-least && is-at-least 5.1 || return + + # The list of segments shown on the left. Fill it with the most important segments. + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + os_icon # os identifier + dir # current directory + vcs # git status + # prompt_char # prompt symbol + ) + + # The list of segments shown on the right. Fill it with less important segments. + # Right prompt on the last prompt line (where you are typing your commands) gets + # automatically hidden when the input line reaches it. Right prompt above the + # last prompt line gets hidden if it would overlap with left prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + status # exit code of the last command + command_execution_time # duration of the last command + background_jobs # presence of background jobs + direnv # direnv status (https://direnv.net/) + #asdf # asdf version manager (https://github.com/asdf-vm/asdf) + virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) + #anaconda # conda environment (https://conda.io/) + #pyenv # python environment (https://github.com/pyenv/pyenv) + #goenv # go environment (https://github.com/syndbg/goenv) + #nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) + #nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) + #nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) + # node_version # node.js version + # go_version # go version (https://golang.org) + # rust_version # rustc version (https://www.rust-lang.org) + # dotnet_version # .NET version (https://dotnet.microsoft.com) + # php_version # php version (https://www.php.net/) + # laravel_version # laravel php framework version (https://laravel.com/) + # java_version # java version (https://www.java.com/) + # package # name@version from package.json (https://docs.npmjs.com/files/package.json) + #rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) + #rvm # ruby version from rvm (https://rvm.io) + #fvm # flutter version management (https://github.com/leoafarias/fvm) + #luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) + #jenv # java version from jenv (https://github.com/jenv/jenv) + #plenv # perl version from plenv (https://github.com/tokuhirom/plenv) + #phpenv # php version from phpenv (https://github.com/phpenv/phpenv) + #scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) + #haskell_stack # haskell version from stack (https://haskellstack.org/) + #kubecontext # current kubernetes context (https://kubernetes.io/) + #terraform # terraform workspace (https://www.terraform.io) + # terraform_version # terraform version (https://www.terraform.io) + #aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) + #aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) + #azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) + #gcloud # google cloud cli account and project (https://cloud.google.com/) + #google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) + #toolbox # toolbox name (https://github.com/containers/toolbox) + context # user@hostname + #nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) + #ranger # ranger shell (https://github.com/ranger/ranger) + #nnn # nnn shell (https://github.com/jarun/nnn) + #xplr # xplr shell (https://github.com/sayanarijit/xplr) + vim_shell # vim shell indicator (:sh) + #midnight_commander # midnight commander shell (https://midnight-commander.org/) + nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) + vi_mode # vi mode (you don't need this if you've enabled prompt_char) + # vpn_ip # virtual private network indicator + load # CPU load + disk_usage # disk usage + ram # free RAM + # swap # used swap + #todo # todo items (https://github.com/todotxt/todo.txt-cli) + #timewarrior # timewarrior tracking status (https://timewarrior.net/) + #taskwarrior # taskwarrior task count (https://taskwarrior.org/) + # time # current time + # ip # ip address and bandwidth usage for a specified network interface + # public_ip # public IP address + # proxy # system-wide http/https/ftp proxy + # battery # internal battery + # wifi # wifi speed + # example # example user-defined segment (see prompt_example function below) + ) + + # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. + typeset -g POWERLEVEL9K_MODE=nerdfont-complete + # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid + # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. + typeset -g POWERLEVEL9K_ICON_PADDING=none + + # When set to true, icons appear before content on both sides of the prompt. When set + # to false, icons go after content. If empty or not set, icons go before content in the left + # prompt and after content in the right prompt. + # + # You can also override it for a specific segment: + # + # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false + # + # Or for a specific segment in specific state: + # + # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT= + + # Add an empty line before each prompt. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + + # Connect left prompt lines with these symbols. You'll probably want to use the same color + # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─' + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮' + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤' + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯' + + # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or + # '─'. The last two make it easier to see the alignment between left and right prompt and to + # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + # for more compact prompt if using using this option. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= + if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then + # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE + # ornaments defined above. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 + # Start filler from the edge of the screen if there are no left segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' + # End filler on the edge of the screen if there are no right segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' + fi + + # Separator between same-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' + # Separator between same-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' + # Separator between different-color segments on the left. + typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' + # Separator between different-color segments on the right. + typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' + # The right end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' + # The left end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' + # The left end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' + # The right end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + # Left prompt terminator for lines without any segments. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + + #################################[ os_icon: os identifier ]################################## + # OS identifier color. + typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=232 + typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' + + ################################[ prompt_char: prompt symbol ]################################ + # Transparent background. + typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND= + # Green prompt symbol if the last command succeeded. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 + # Red prompt symbol if the last command failed. + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 + # Default prompt symbol. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + # Prompt symbol in command vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + # Prompt symbol in visual vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' + # Prompt symbol in overwrite vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true + # No line terminator if prompt_char is the last segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= + # No line introducer if prompt_char is the first segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= + # No surrounding whitespace. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE= + + ##################################[ dir: current directory ]################################## + # Current directory background color. + typeset -g POWERLEVEL9K_DIR_BACKGROUND=4 + # Default current directory foreground color. + typeset -g POWERLEVEL9K_DIR_FOREGROUND=254 + # If directory is too long, shorten some of its segments to the shortest possible unique + # prefix. The shortened directory can be tab-completed to the original. + typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique + # Replace removed segment suffixes with this symbol. + typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= + # Color of the shortened directory segments. + typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250 + # Color of the anchor directory segments. Anchor segments are never shortened. The first + # segment is always an anchor. + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255 + # Display anchor directory segments in bold. + typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true + # Don't shorten directories that contain any of these files. They are anchors. + local anchor_files=( + .bzr + .citc + .git + .hg + .node-version + .python-version + .go-version + .ruby-version + .lua-version + .java-version + .perl-version + .php-version + .tool-version + .shorten_folder_marker + .svn + .terraform + CVS + Cargo.toml + composer.json + go.mod + package.json + stack.yaml + ) + typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" + # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains + # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is + # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) + # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers + # and other directories don't. + # + # Optionally, "first" and "last" can be followed by ":" where is an integer. + # This moves the truncation point to the right (positive offset) or to the left (negative offset) + # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" + # respectively. + typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false + # Don't shorten this many last directory segments. They are anchors. + typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 + # Shorten directory if it's longer than this even if there is space for it. The value can + # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, + # directory will be shortened only when prompt doesn't fit or when other parameters demand it + # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). + # If set to `0`, directory will always be shortened to its minimum length. + typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this + # many columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least + # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 + # If set to true, embed a hyperlink into the directory. Useful for quickly + # opening a directory in the file manager simply by clicking the link. + # Can also be handy when the directory is shortened, as it allows you to see + # the full directory that was used in previous commands. + typeset -g POWERLEVEL9K_DIR_HYPERLINK=false + + # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON + # and POWERLEVEL9K_DIR_CLASSES below. + typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 + + # The default icon shown next to non-writable and non-existent directories when + # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. + # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' + + # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different + # directories. It must be an array with 3 * N elements. Each triplet consists of: + # + # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with + # extended_glob option enabled. + # 2. Directory class for the purpose of styling. + # 3. An empty string. + # + # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. + # + # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories + # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=( + # '~/work(|/*)' WORK '' + # '~(|/*)' HOME '' + # '*' DEFAULT '') + # + # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one + # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or + # WORK_NON_EXISTENT. + # + # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an + # option to define custom colors and icons for different directory classes. + # + # # Styling for WORK. + # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NOT_WRITABLE. + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=255 + # + # # Styling for WORK_NON_EXISTENT. + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=254 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=250 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=255 + # + # If a styling parameter isn't explicitly defined for some class, it falls back to the classless + # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls + # back to POWERLEVEL9K_DIR_FOREGROUND. + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=() + + # Custom prefix. + # typeset -g POWERLEVEL9K_DIR_PREFIX='in ' + + #####################################[ vcs: git status ]###################################### + # Version control system colors. + typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 + typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 + typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 + + # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon. + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' + + # Untracked files icon. It's really a question mark, your font isn't broken. + # Change the value of this parameter to show a different icon. + typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' + + # Formatter for Git status. + # + # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. + # + # You can edit the function to customize how Git status looks. + # + # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: + # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. + function my_git_formatter() { + emulate -L zsh + + if [[ -n $P9K_CONTENT ]]; then + # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from + # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. + typeset -g my_git_format=$P9K_CONTENT + return + fi + + # Styling for different parts of Git status. + local meta='%7F' # white foreground + local clean='%0F' # black foreground + local modified='%0F' # black foreground + local untracked='%0F' # black foreground + local conflicted='%1F' # red foreground + + local res + + if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then + local branch=${(V)VCS_STATUS_LOCAL_BRANCH} + # If local branch name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show local branch name in full without truncation, delete the next line. + (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line + res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" + fi + + if [[ -n $VCS_STATUS_TAG + # Show tag only if not on a branch. + # Tip: To always show tag, delete the next line. + && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line + ]]; then + local tag=${(V)VCS_STATUS_TAG} + # If tag name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show tag name in full without truncation, delete the next line. + (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line + res+="${meta}#${clean}${tag//\%/%%}" + fi + + # Display the current Git commit if there is no branch and no tag. + # Tip: To always display the current Git commit, delete the next line. + [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line + res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" + + # Show tracking branch name if it differs from local branch. + if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then + res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" + fi + + # Display "wip" if the latest commit's summary contains "wip" or "WIP". + if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then + res+=" ${modified}wip" + fi + + # ⇣42 if behind the remote. + (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" + # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. + (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " + (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" + # ⇠42 if behind the push remote. + (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" + (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " + # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. + (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" + # *42 if have stashes. + (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" + # 'merge' if the repo is in an unusual state. + [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" + # ~42 if have merge conflicts. + (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" + # +42 if have staged changes. + (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" + # !42 if have unstaged changes. + (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" + # ?42 if have untracked files. It's really a question mark, your font isn't broken. + # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. + # Remove the next line if you don't want to see untracked files at all. + (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" + # "─" if the number of unstaged files is unknown. This can happen due to + # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower + # than the number of files in the Git index, or due to bash.showDirtyState being set to false + # in the repository config. The number of staged and untracked files may also be unknown + # in this case. + (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" + + typeset -g my_git_format=$res + } + functions -M my_git_formatter 2>/dev/null + + # Don't count the number of unstaged, untracked and conflicted files in Git repositories with + # more than this many files in the index. Negative value means infinity. + # + # If you are working in Git repositories with tens of millions of files and seeing performance + # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output + # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's + # config: `git config bash.showDirtyState false`. + typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 + + # Don't show Git status in prompt for repositories whose workdir matches this pattern. + # For example, if set to '~', the Git repository at $HOME/.git will be ignored. + # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. + typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' + + # Disable the default Git status formatting. + typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true + # Install our own Git status formatter. + typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter()))+${my_git_format}}' + # Enable counters for staged, unstaged, etc. + typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 + + # Custom icon. + # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_VCS_PREFIX='on ' + + # Show status of repositories of these types. You can add svn and/or hg if you are + # using them. If you do, your prompt may become slow even when your current directory + # isn't in an svn or hg reposotiry. + #typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) + + ##########################[ status: exit code of the last command ]########################### + # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and + # style them independently from the regular OK and ERROR state. + typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true + + # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as + # it will signify success by turning green. + typeset -g POWERLEVEL9K_STATUS_OK=true + typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 + + # Status when some part of a pipe command fails but the overall exit status is zero. It may look + # like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2 + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0 + + # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as + # it will signify error by turning red. + typeset -g POWERLEVEL9K_STATUS_ERROR=true + typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 + + # Status when the last command was terminated by a signal. + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true + # Use terse signal names: "INT" instead of "SIGINT(2)". + typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1 + + # Status when some part of a pipe command fails and the overall exit status is also non-zero. + # It may look like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3 + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1 + + ###################[ command_execution_time: duration of the last command ]################### + # Execution time color. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3 + # Show duration of the last command if takes at least this many seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 + # Show this many fractional digits. Zero means round to seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 + # Duration format: 1d 2h 3m 4s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' + # Custom icon. + # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' + + #######################[ background_jobs: presence of background jobs ]####################### + # Background jobs color. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6 + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0 + # Don't show the number of background jobs. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=true + # Custom icon. + # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ direnv: direnv status (https://direnv.net/) ]######################## + # Direnv color. + typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3 + typeset -g POWERLEVEL9K_DIRENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### + # Default asdf color. Only used to display tools for which there is no color override (see below). + # Tip: Override these parameters for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND and + # POWERLEVEL9K_ASDF_${TOOL}_BACKGROUND. + typeset -g POWERLEVEL9K_ASDF_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_BACKGROUND=7 + + # There are four parameters that can be used to hide asdf tools. Each parameter describes + # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at + # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to + # hide a tool, it gets shown. + # + # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and + # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: + # + # asdf local python 3.8.1 + # asdf global python 3.8.1 + # + # After running both commands the current python version is 3.8.1 and its source is "local" as + # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, + # it'll hide python version in this case because 3.8.1 is the same as the global version. + # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't + # contain "local". + + # Hide tool versions that don't come from one of these sources. + # + # Available sources: + # + # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" + # - local `asdf current` says "set by /some/not/home/directory/file" + # - global `asdf current` says "set by /home/username/file" + # + # Note: If this parameter is set to (shell local global), it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. + typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) + + # If set to false, hide tool versions that are the same as global. + # + # Note: The name of this parameter doesn't reflect its meaning at all. + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. + typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false + + # If set to false, hide tool versions that are equal to "system". + # + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. + typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true + + # If set to non-empty value, hide tools unless there is a file matching the specified file pattern + # in the current directory, or its parent directory, or its grandparent directory, and so on. + # + # Note: If this parameter is set to empty value, it won't hide tools. + # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. + # + # Example: Hide nodejs version when there is no package.json and no *.js files in the current + # directory, in `..`, in `../..` and so on. + # + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' + typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= + + # Ruby version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUBY_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Python version from asdf. + typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PYTHON_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Go version from asdf. + typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_GOLANG_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Node.js version from asdf. + typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_NODEJS_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Rust version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_RUST_BACKGROUND=208 + # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' + + # .NET Core version from asdf. + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Flutter version from asdf. + typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_FLUTTER_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Lua version from asdf. + typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_LUA_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Java version from asdf. + typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=1 + typeset -g POWERLEVEL9K_ASDF_JAVA_BACKGROUND=7 + # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Perl version from asdf. + typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PERL_BACKGROUND=4 + # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Erlang version from asdf. + typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ERLANG_BACKGROUND=1 + # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Elixir version from asdf. + typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_ELIXIR_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Postgres version from asdf. + typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_POSTGRES_BACKGROUND=6 + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' + + # PHP version from asdf. + typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_PHP_BACKGROUND=5 + # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Haskell version from asdf. + typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_HASKELL_BACKGROUND=3 + # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Julia version from asdf. + typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ASDF_JULIA_BACKGROUND=2 + # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' + + ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### + # NordVPN connection indicator color. + typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7 + typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4 + # Hide NordVPN connection indicator when not connected. + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= + # Custom icon. + # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## + # Ranger shell color. + typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 + typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### + # Nnn shell color. + typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 + typeset -g POWERLEVEL9K_NNN_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## + # xplr shell color. + typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 + typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6 + # Custom icon. + # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########################[ vim_shell: vim shell indicator (:sh) ]########################### + # Vim shell indicator color. + typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIM_SHELL_BACKGROUND=2 + # Custom icon. + # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### + # Midnight Commander shell color. + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3 + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## + # Nix shell color. + typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 + typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 + + # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. + # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ disk_usage: disk usage ]################################## + # Colors for different levels of disk usage. + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=7 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1 + # Thresholds for different levels of disk usage (percentage points). + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 + # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. + typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false + # Custom icon. + # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ vi_mode: vi mode (you don't need this if you've enabled prompt_char) ]########### + # Foreground color. + typeset -g POWERLEVEL9K_VI_MODE_FOREGROUND=0 + # Text and color for normal (a.k.a. command) vi mode. + typeset -g POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL + typeset -g POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=2 + # Text and color for visual vi mode. + typeset -g POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL + typeset -g POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=4 + # Text and color for overtype (a.k.a. overwrite and replace) vi mode. + typeset -g POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE + typeset -g POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=3 + # Text and color for insert vi mode. + typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= + typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 + + ######################################[ ram: free RAM ]####################################### + # RAM color. + typeset -g POWERLEVEL9K_RAM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RAM_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################################[ swap: used swap ]###################################### + # Swap color. + typeset -g POWERLEVEL9K_SWAP_FOREGROUND=0 + typeset -g POWERLEVEL9K_SWAP_BACKGROUND=3 + # Custom icon. + # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ load: CPU load ]###################################### + # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. + typeset -g POWERLEVEL9K_LOAD_WHICH=5 + # Load color when load is under 50%. + typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2 + # Load color when load is between 50% and 70%. + typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3 + # Load color when load is over 70%. + typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0 + typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1 + # Custom icon. + # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ + # Todo color. + typeset -g POWERLEVEL9K_TODO_FOREGROUND=0 + typeset -g POWERLEVEL9K_TODO_BACKGROUND=8 + # Hide todo when the total number of tasks is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true + # Hide todo when the number of tasks after filtering is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false + + # Todo format. The following parameters are available within the expansion. + # + # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. + # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. + # + # These variables correspond to the last line of the output of `todo.sh -p ls`: + # + # TODO: 24 of 42 tasks shown + # + # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. + # + # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ + # Timewarrior color. + typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=255 + typeset -g POWERLEVEL9K_TIMEWARRIOR_BACKGROUND=8 + + # If the tracked task is longer than 24 characters, truncate and append "…". + # Tip: To always display tasks without truncation, delete the following parameter. + # Tip: To hide task names and display just the icon when time tracking is enabled, set the + # value of the following parameter to "". + typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' + + # Custom icon. + # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## + # Taskwarrior color. + typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=0 + typeset -g POWERLEVEL9K_TASKWARRIOR_BACKGROUND=6 + + # Taskwarrior segment format. The following parameters are available within the expansion. + # + # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. + # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. + # + # Zero values are represented as empty parameters. + # + # The default format: + # + # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' + # + # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ context: user@hostname ]################################## + # Context color when running with privileges. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 + typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0 + # Context color in SSH without privileges. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_BACKGROUND=0 + # Default context color (no privileges, no SSH). + typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3 + typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0 + + # Context format when running with privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m' + # Context format when in SSH without privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' + # Default context format (no privileges, no SSH): user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' + + # Don't show context unless running with privileges or in SSH. + # Tip: Remove the next line to always show context. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' + + ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### + # Python virtual environment color. + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4 + # Don't show Python version next to the virtual environment name. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + # If set to "false", won't show virtualenv if pyenv is already shown. + # If set to "if-different", won't show virtualenv if it's the same as pyenv. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false + # Separate environment name from Python version only with a space. + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ anaconda: conda environment (https://conda.io/) ]###################### + # Anaconda environment color. + typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0 + typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4 + + # Anaconda segment format. The following parameters are available within the expansion. + # + # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. + # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. + # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). + # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). + # + # CONDA_PROMPT_MODIFIER can be configured with the following command: + # + # conda config --set env_prompt '({default_env}) ' + # + # The last argument is a Python format string that can use the following variables: + # + # - prefix The same as CONDA_PREFIX. + # - default_env The same as CONDA_DEFAULT_ENV. + # - name The last segment of CONDA_PREFIX. + # - stacked_env Comma-separated list of names in the environment stack. The first element is + # always the same as default_env. + # + # Note: '({default_env}) ' is the default value of env_prompt. + # + # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER + # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former + # is empty. + typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' + + # Custom icon. + # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ + # Pyenv color. + typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4 + # Hide python version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) + # If set to false, hide python version if it's the same as global: + # $(pyenv version-name) == $(pyenv global). + typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide python version if it's equal to "system". + typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true + + # Pyenv segment format. The following parameters are available within the expansion. + # + # - P9K_CONTENT Current pyenv environment (pyenv version-name). + # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). + # + # The default format has the following logic: + # + # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or + # starts with "$P9K_PYENV_PYTHON_VERSION/". + # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". + typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ + # Goenv color. + typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4 + # Hide go version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) + # If set to false, hide go version if it's the same as global: + # $(goenv version-name) == $(goenv global). + typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide go version if it's equal to "system". + typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## + # Nodenv color. + typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0 + # Hide node version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) + # If set to false, hide node version if it's the same as global: + # $(nodenv version-name) == $(nodenv global). + typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### + # Nvm color. + typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 + # Custom icon. + # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ + # Nodeenv color. + typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0 + # Don't show Node version next to the environment name. + typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false + # Separate environment name from Node version only with a space. + typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############################[ node_version: node.js version ]############################### + # Node version color. + typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2 + # Show node version only when in a directory tree containing package.json. + typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ go_version: go version (https://golang.org) ]######################## + # Go version color. + typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255 + typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2 + # Show go version only when in a go project subdirectory. + typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## + # Rust version color. + typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208 + # Show rust version only when in a rust project subdirectory. + typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ + # .NET version color. + typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7 + typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5 + # Show .NET version only when in a .NET project subdirectory. + typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ php_version: php version (https://www.php.net/) ]###################### + # PHP version color. + typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHP_VERSION_BACKGROUND=5 + # Show PHP version only when in a PHP project subdirectory. + typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### + # Laravel version color. + typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_LARAVEL_VERSION_BACKGROUND=7 + # Custom icon. + # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## + # Rbenv color. + typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1 + # Hide ruby version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) + # If set to false, hide ruby version if it's the same as global: + # $(rbenv version-name) == $(rbenv global). + typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide ruby version if it's equal to "system". + typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ java_version: java version (https://www.java.com/) ]#################### + # Java version color. + typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=1 + typeset -g POWERLEVEL9K_JAVA_VERSION_BACKGROUND=7 + # Show java version only when in a java project subdirectory. + typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true + # Show brief version. + typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false + # Custom icon. + # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### + # Package color. + typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=0 + typeset -g POWERLEVEL9K_PACKAGE_BACKGROUND=6 + + # Package format. The following parameters are available within the expansion. + # + # - P9K_PACKAGE_NAME The value of `name` field in package.json. + # - P9K_PACKAGE_VERSION The value of `version` field in package.json. + # + # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## + # Rvm color. + typeset -g POWERLEVEL9K_RVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_RVM_BACKGROUND=240 + # Don't show @gemset at the end. + typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false + # Don't show ruby- at the front. + typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ + # Fvm color. + typeset -g POWERLEVEL9K_FVM_FOREGROUND=0 + typeset -g POWERLEVEL9K_FVM_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### + # Lua color. + typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_LUAENV_BACKGROUND=4 + # Hide lua version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) + # If set to false, hide lua version if it's the same as global: + # $(luaenv version-name) == $(luaenv global). + typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide lua version if it's equal to "system". + typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ + # Java color. + typeset -g POWERLEVEL9K_JENV_FOREGROUND=1 + typeset -g POWERLEVEL9K_JENV_BACKGROUND=7 + # Hide java version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) + # If set to false, hide java version if it's the same as global: + # $(jenv version-name) == $(jenv global). + typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide java version if it's equal to "system". + typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ + # Perl color. + typeset -g POWERLEVEL9K_PLENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PLENV_BACKGROUND=4 + # Hide perl version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) + # If set to false, hide perl version if it's the same as global: + # $(plenv version-name) == $(plenv global). + typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide perl version if it's equal to "system". + typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ + # PHP color. + typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_PHPENV_BACKGROUND=5 + # Hide php version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) + # If set to false, hide php version if it's the same as global: + # $(phpenv version-name) == $(phpenv global). + typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide PHP version if it's equal to "system". + typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### + # Scala color. + typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=0 + typeset -g POWERLEVEL9K_SCALAENV_BACKGROUND=1 + # Hide scala version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) + # If set to false, hide scala version if it's the same as global: + # $(scalaenv version-name) == $(scalaenv global). + typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide scala version if it's equal to "system". + typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### + # Haskell color. + typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=0 + typeset -g POWERLEVEL9K_HASKELL_STACK_BACKGROUND=3 + + # Hide haskell version if it doesn't come from one of these sources. + # + # shell: version is set by STACK_YAML + # local: version is set by stack.yaml up the directory tree + # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) + typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) + # If set to false, hide haskell version if it's the same as in the implicit global project. + typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true + # Custom icon. + # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Don't show terraform workspace if it's literally "default". + typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false + # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current terraform workspace gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current terraform workspace is "project_test", its class is TEST because "project_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0 + # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ terraform_version: terraform version (https://www.terraform.io) ]############## + # Terraform version color. + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4 + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]################# + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf' + + #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# + # Show kubecontext only when the the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show kubecontext. + typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern' + + # Kubernetes context classes for the purpose of using different colors, icons and expansions with + # different contexts. + # + # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current kubernetes context gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current kubernetes context is "deathray-testing/default", its class is TEST + # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5 + # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext + # segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # Within the expansion the following parameters are always available: + # + # - P9K_CONTENT The content that would've been displayed if there was no content + # expansion defined. + # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE + # in the output of `kubectl config get-contexts`. If there is no + # namespace, the parameter is set to "default". + # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the + # output of `kubectl config get-contexts`. + # + # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), + # the following extra parameters are available: + # + # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. + # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. + # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. + # + # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, + # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=gke + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + # + # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=eks + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= + # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' + # Append the current context's namespace if it's not "default". + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' + + # Custom prefix. + typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' + + #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# + # Show aws only when the the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show aws. + typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt' + + # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current AWS profile gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current AWS profile is "company_test", its class is TEST + # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1 + # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # AWS segment format. The following parameters are available within the expansion. + # + # - P9K_AWS_PROFILE The name of the current AWS profile. + # - P9K_AWS_REGION The region associated with the current AWS profile. + typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' + + #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# + # AWS Elastic Beanstalk environment color. + typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2 + typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## + # Show azure only when the the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show azure. + typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' + # Azure account name color. + typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7 + typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### + # Show gcloud only when the the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show gcloud. + typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs' + # Google cloud color. + typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7 + typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4 + + # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or + # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative + # enough. You can use the following parameters in the expansions. Each of them corresponds to the + # output of `gcloud` tool. + # + # Parameter | Source + # -------------------------|-------------------------------------------------------------------- + # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' + # P9K_GCLOUD_ACCOUNT | gcloud config get-value account + # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project + # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. + # + # Obtaining project name requires sending a request to Google servers. This can take a long time + # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud + # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets + # set and gcloud prompt segment transitions to state COMPLETE. + # + # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL + # and COMPLETE. You can also hide gcloud in state PARTIAL by setting + # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and + # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. + typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' + typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' + + # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name + # this often. Negative value disables periodic polling. In this mode project name is retrieved + # only when the current configuration, account or project id changes. + typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 + + # Custom icon. + # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# + # Show google_app_cred only when the the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show google_app_cred. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' + + # Google application credentials classes for the purpose of using different colors, icons and + # expansions with different credentials. + # + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first + # element in each pair defines a pattern against which the current kubernetes context gets + # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion + # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION + # parameters, you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. + # The first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD + # '*:*test*:*' TEST + # '*' DEFAULT) + # + # If your current Google application credentials is "service_account deathray-testing x@y.com", + # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD # These values are examples that are unlikely + # '*:*test*:*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=7 + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_BACKGROUND=4 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by + # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # You can use the following parameters in the expansion. Each of them corresponds to one of the + # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. + # + # Parameter | JSON key file field + # ---------------------------------+--------------- + # P9K_GOOGLE_APP_CRED_TYPE | type + # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id + # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' + + ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### + # Toolbox color. + typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0 + typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3 + # Don't display the name of the toolbox if it matches fedora-toolbox-*. + typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' + # Custom icon. + # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' + + ###############################[ public_ip: public IP address ]############################### + # Public IP color. + typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7 + typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ########################[ vpn_ip: virtual private network indicator ]######################### + # VPN IP color. + typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0 + typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6 + # When on VPN, show just an icon without the IP address. + # Tip: To display the private IP address when on VPN, remove the next line. + typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= + # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN + # to see the name of the interface. + typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*' + # If set to true, show one segment per matching network interface. If set to false, show only + # one segment corresponding to the first matching network interface. + # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. + typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false + # Custom icon. + # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### + # IP color. + typeset -g POWERLEVEL9K_IP_BACKGROUND=4 + typeset -g POWERLEVEL9K_IP_FOREGROUND=0 + # The following parameters are accessible within the expansion: + # + # Parameter | Meaning + # ----------------------+------------------------------------------- + # P9K_IP_IP | IP address + # P9K_IP_INTERFACE | network interface + # P9K_IP_RX_BYTES | total number of bytes received + # P9K_IP_TX_BYTES | total number of bytes sent + # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt + # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt + # P9K_IP_RX_RATE | receive rate (since last prompt) + # P9K_IP_TX_RATE | send rate (since last prompt) + typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP' + # Show information for the first network interface whose name matches this regular expression. + # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. + typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' + # Custom icon. + # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #########################[ proxy: system-wide http/https/ftp proxy ]########################## + # Proxy color. + typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4 + typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0 + # Custom icon. + # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ battery: internal battery ]################################# + # Show battery in red when it's below this level and not connected to power supply. + typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 + typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1 + # Show battery in green when it's charging or fully charged. + typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2 + # Show battery in yellow when it's discharging. + typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3 + # Battery pictograms going from low to high level of charge. + typeset -g POWERLEVEL9K_BATTERY_STAGES='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578' + # Don't show the remaining time to charge/discharge. + typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false + typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0 + + #####################################[ wifi: wifi speed ]##################################### + # WiFi color. + typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0 + typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4 + # Custom icon. + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). + # + # # Wifi colors and icons for different signal strength levels (low to high). + # typeset -g my_wifi_fg=(0 0 0 0 0) # <-- change these values + # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values + # + # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' + # + # The following parameters are accessible within the expansions: + # + # Parameter | Meaning + # ----------------------+--------------- + # P9K_WIFI_SSID | service set identifier, a.k.a. network name + # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown + # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second + # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 + # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 + # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) + + ####################################[ time: current time ]#################################### + # Current time color. + typeset -g POWERLEVEL9K_TIME_FOREGROUND=0 + typeset -g POWERLEVEL9K_TIME_BACKGROUND=7 + # Format for the current time: 09:51:02. See `man 3 strftime`. + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + # If set to true, time will update when you hit enter. This way prompts for the past + # commands will contain the start times of their commands as opposed to the default + # behavior where they contain the end times of their preceding commands. + typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false + # Custom icon. + # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + typeset -g POWERLEVEL9K_TIME_PREFIX='at ' + + # Example of a user-defined prompt segment. Function prompt_example will be called on every + # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or + # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and yellow text on red background + # greeting the user. + # + # Type `p10k help segment` for documentation and a more sophisticated example. + function prompt_example() { + p10k segment -b 1 -f 3 -i '⭐' -t 'hello, %n' + } + + # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job + # is to generate the prompt segment for display in instant prompt. See + # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. + # + # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function + # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k + # will replay these calls without actually calling instant_prompt_*. It is imperative that + # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this + # rule is not observed, the content of instant prompt will be incorrect. + # + # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If + # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. + function instant_prompt_example() { + # Since prompt_example always makes the same `p10k segment` calls, we can call it from + # instant_prompt_example. This will give us the same `example` prompt segment in the instant + # and regular prompts. + prompt_example + } + + # User-defined prompt segments can be customized the same way as built-in segments. + typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=3 + typeset -g POWERLEVEL9K_EXAMPLE_BACKGROUND=1 + # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt + # when accepting a command line. Supported values: + # + # - off: Don't change prompt when accepting a command line. + # - always: Trim down prompt when accepting a command line. + # - same-dir: Trim down prompt when accepting a command line unless this is the first command + # typed after changing current working directory. + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off + + # Instant prompt mode. + # + # - off: Disable instant prompt. Choose this if you've tried instant prompt and found + # it incompatible with your zsh configuration files. + # - quiet: Enable instant prompt and don't print warnings when detecting console output + # during zsh initialization. Choose this if you've read and understood + # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. + # - verbose: Enable instant prompt and print a warning when detecting console output during + # zsh initialization. Choose this if you've never tried instant prompt, haven't + # seen the warning, or if you are unsure what this all means. + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. + # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload + # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you + # really need it. + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # If p10k is already loaded, reload configuration. + # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. + (( ! $+functions[p10k] )) || p10k reload +} + +# Tell `p10k configure` which file it should overwrite. +typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} + +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/modules/users/Rory/wallpaper.webp b/modules/users/Rory/wallpaper.webp new file mode 100644 index 0000000000000000000000000000000000000000..a2923f0adffe15c4988aca91c04c029a90f9aee6 GIT binary patch literal 598752 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 C}EZ(NYDi^hIJe4jX;jRtpW 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