diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..6189c1b --- /dev/null +++ b/.mailmap @@ -0,0 +1,4 @@ +stupidcomputer +stupidcomputer +stupidcomputer +stupidcomputer diff --git a/boxes/mlg/default.nix b/boxes/mlg/default.nix index 74fe11a..5964766 100644 --- a/boxes/mlg/default.nix +++ b/boxes/mlg/default.nix @@ -14,6 +14,13 @@ ../../modules/rbw.nix ]; + virtualisation.docker.enable = true; + + + users.users.usr.extraGroups = [ + "docker" + ]; + environment.systemPackages = with pkgs; [ wine xdotool diff --git a/boxes/netbox/default.nix b/boxes/netbox/default.nix index d67be89..8bf24e0 100644 --- a/boxes/netbox/default.nix +++ b/boxes/netbox/default.nix @@ -5,7 +5,17 @@ [ ./hardware-configuration.nix ../../modules/bootstrap.nix - ../../builds/gmail_mail_bridge.nix + + ./radicale.nix + ./ssh.nix + ./gitea.nix + ./radicale.nix + ./vaultwarden.nix + ./sslh.nix + ./rss2email.nix + ./fail2ban.nix + ./nginx.nix + ./franklincce.nix ]; # nix optimization @@ -14,7 +24,6 @@ dates = [ "03:45" ]; }; - networking.networkmanager.enable = true; time.timeZone = "America/Chicago"; @@ -35,100 +44,14 @@ neovim ]; - services.gmail_mail_bridge.enable = true; - - system.copySystemConfiguration = true; - system.stateVersion = "23.05"; # don't change this, lol - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/vda"; - - services.sslh = { - enable = true; - settings.protocols = [ - { - host = "localhost"; - name = "ssh"; - port = "55555"; - service = "ssh"; - } - { - host = "localhost"; - name = "tls"; - port = "442"; - } - ]; + system = { + copySystemConfiguration = true; + stateVersion = "23.05"; # don't change this, lol }; - networking.hostName = "netbox"; - - services.radicale = { - enable = true; - settings = { - auth = { - type = "htpasswd"; - htpasswd_filename = "radicale-passwd"; - htpasswd_encryption = "plain"; - }; - }; - }; - - services.rss2email = { - enable = true; - to = "ryan@beepboop.systems"; - feeds = { - "eff" = { - url = "https://www.eff.org/rss/updates.xml"; - }; - "nixos" = { - url = "https://nixos.org/blog/announcements-rss.xml"; - }; - "drewdevault" = { - url = "https://drewdevault.com/blog/index.xml"; - }; - "nullprogram" = { - url = "https://nullprogram.com/feed/"; - }; - }; - }; - - services.fail2ban = { - enable = true; - ignoreIP = [ - "192.168.1.0/24" - ]; - extraPackages = [pkgs.ipset]; - banaction = "iptables-ipset-proto6-allports"; - - jails = { - "nginx-bruteforce" = '' - enabled = true - filter = nginx-bruteforce - logpath = /var/log/nginx/access.log - backend = auto - maxretry = 6 - findtime = 600 - ''; - - "postfix-bruteforce" = '' - enabled = true - filter = postfix-bruteforce - maxretry = 6 - findtime = 600 - ''; - }; - }; - - environment.etc = { - "fail2ban/filter.d/nginx-bruteforce.conf".text = '' - [Definition] - failregex = ^.*GET.*(matrix/server|\.php|admin|wp\-).* HTTP/\d.\d\" 404.*$ - ''; - - "fail2ban/filter.d/postfix-bruteforce.conf".text = '' - [Definition] - failregex = warning: [\w\.\-]+\[\]: SASL LOGIN authentication failed.*$ - journalmatch = _SYSTEMD_UNIT=postfix.service - ''; + boot.loader = { + grub.enable = true; + grub.device = "/dev/vda"; }; users.users.ryan = { @@ -141,119 +64,14 @@ extraGroups = [ "wheel" "docker" ]; }; - services.openssh = { - enable = true; - ports = [55555]; - }; + networking = { + usePredictableInterfaceNames = false; + networkmanager.enable = true; + hostName = "netbox"; - services.vaultwarden.enable = true; - services.vaultwarden.config = { - DOMAIN = "https://bitwarden.beepboop.systems"; - SIGNUPS_ALLOWED = false; - }; - - networking.usePredictableInterfaceNames = false; - - services.gitea = { - enable = true; - appName = "beepboop.systems"; # Give the site a name - database = { - type = "postgres"; - passwordFile = "/etc/gittea-pass"; + firewall = { + enable = true; + allowedTCPPorts = [ 80 443 ]; }; - settings.security.INSTALL_LOCK = true; - settings.service.SHOW_REGISTRATION_BUTTON = false; - settings.ui.DEFAULT_THEME = "arc-green"; - settings.api.ENABLE_SWAGGER = false; - settings.server = { - DOMAIN = "git.beepboop.systems"; - ROOT_URL = "https://git.beepboop.systems/"; - LANDING_PAGE = "explore"; - HTTP_PORT = 3001; - }; - }; - - services.postgresql = { - enable = true; # Ensure postgresql is enabled - authentication = '' - local gitea all ident map=gitea-users - ''; - identMap = # Map the gitea user to postgresql - '' - gitea-users gitea gitea - ''; - }; - - services.nginx.enable = true; - services.nginx.clientMaxBodySize = "100m"; - services.nginx.defaultSSLListenPort = 442; - - services.nginx.virtualHosts."beepboop.systems" = { - forceSSL = true; - enableACME = true; - root = "/var/www/beepboop.systems"; - locations."/" = { - extraConfig = '' - port_in_redirect off; - absolute_redirect off; - ''; - }; - }; - - services.nginx.virtualHosts."git.beepboop.systems" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://localhost:3001"; - }; - }; - - services.nginx.virtualHosts."bit.beepboop.systems" = { - forceSSL = true; - enableACME = true; - globalRedirect = "bitwarden.beepboop.systems"; - }; - - services.nginx.virtualHosts."bitwarden.beepboop.systems" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://127.0.0.1:8000"; - }; - }; - - services.nginx.virtualHosts."radicale.beepboop.systems" = { - forceSSL = true; - enableACME = true; - locations."/" = { - proxyPass = "http://127.0.0.1:5232"; - extraConfig = '' - proxy_set_header X-Script-Name /; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass_header Authorization; - ''; - }; - }; - - services.nginx.virtualHosts."calendar.beepboop.systems" = { - forceSSL = true; - enableACME = true; - globalRedirect = "radicale.beepboop.systems"; - }; - - services.nginx.virtualHosts."cal.beepboop.systems" = { - forceSSL = true; - enableACME = true; - globalRedirect = "radicale.beepboop.systems"; - }; - - security.acme = { - acceptTerms = true; - defaults.email = "nickforanick@protonmail.com"; - }; - - networking.firewall = { - enable = true; - allowedTCPPorts = [ 80 443 ]; }; } diff --git a/boxes/netbox/fail2ban.nix b/boxes/netbox/fail2ban.nix new file mode 100644 index 0000000..b23a151 --- /dev/null +++ b/boxes/netbox/fail2ban.nix @@ -0,0 +1,42 @@ +{ lib, config, pkgs, ... }: +{ + services.fail2ban = { + enable = true; + ignoreIP = [ + "192.168.1.0/24" + ]; + extraPackages = [pkgs.ipset]; + banaction = "iptables-ipset-proto6-allports"; + + jails = { + "nginx-bruteforce" = '' + enabled = true + filter = nginx-bruteforce + logpath = /var/log/nginx/access.log + backend = auto + maxretry = 6 + findtime = 600 + ''; + + "postfix-bruteforce" = '' + enabled = true + filter = postfix-bruteforce + maxretry = 6 + findtime = 600 + ''; + }; + }; + + environment.etc = { + "fail2ban/filter.d/nginx-bruteforce.conf".text = '' + [Definition] + failregex = ^.*GET.*(matrix/server|\.php|admin|wp\-).* HTTP/\d.\d\" 404.*$ + ''; + + "fail2ban/filter.d/postfix-bruteforce.conf".text = '' + [Definition] + failregex = warning: [\w\.\-]+\[\]: SASL LOGIN authentication failed.*$ + journalmatch = _SYSTEMD_UNIT=postfix.service + ''; + }; +} diff --git a/boxes/netbox/franklincce.nix b/boxes/netbox/franklincce.nix new file mode 100644 index 0000000..f5cf6cd --- /dev/null +++ b/boxes/netbox/franklincce.nix @@ -0,0 +1,12 @@ +{ lib, config, pkgs, ... }: +{ + virtualisation.docker.enable = true; + + services.nginx.virtualHosts."franklincce.beepboop.systems" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:1337"; + }; + }; +} diff --git a/boxes/netbox/gitea.nix b/boxes/netbox/gitea.nix new file mode 100644 index 0000000..9977216 --- /dev/null +++ b/boxes/netbox/gitea.nix @@ -0,0 +1,43 @@ +{ lib, config, pkgs, ... }: +{ + services.gitea = { + enable = true; + appName = "beepboop.systems"; # Give the site a name + database = { + type = "postgres"; + passwordFile = "/etc/gittea-pass"; + }; + settings.security.INSTALL_LOCK = true; + settings.service = { + SHOW_REGISTRATION_BUTTON = false; + DISABLE_REGISTRATION = true; + }; + settings.ui.DEFAULT_THEME = "arc-green"; + settings.api.ENABLE_SWAGGER = false; + settings.server = { + DOMAIN = "git.beepboop.systems"; + ROOT_URL = "https://git.beepboop.systems/"; + LANDING_PAGE = "explore"; + HTTP_PORT = 3001; + }; + }; + + services.postgresql = { + enable = true; # Ensure postgresql is enabled + authentication = '' + local gitea all ident map=gitea-users + ''; + identMap = # Map the gitea user to postgresql + '' + gitea-users gitea gitea + ''; + }; + + services.nginx.virtualHosts."git.beepboop.systems" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://localhost:3001"; + }; + }; +} diff --git a/boxes/netbox/nginx.nix b/boxes/netbox/nginx.nix new file mode 100644 index 0000000..5db3d31 --- /dev/null +++ b/boxes/netbox/nginx.nix @@ -0,0 +1,23 @@ +{ lib, config, pkgs, ... }: +{ + services.nginx.enable = true; + services.nginx.clientMaxBodySize = "100m"; + services.nginx.defaultSSLListenPort = 442; + + services.nginx.virtualHosts."beepboop.systems" = { + forceSSL = true; + enableACME = true; + root = "/var/www/beepboop.systems"; + locations."/" = { + extraConfig = '' + port_in_redirect off; + absolute_redirect off; + ''; + }; + }; + + security.acme = { + acceptTerms = true; + defaults.email = "nickforanick@protonmail.com"; + }; +} diff --git a/boxes/netbox/radicale.nix b/boxes/netbox/radicale.nix new file mode 100644 index 0000000..25bb425 --- /dev/null +++ b/boxes/netbox/radicale.nix @@ -0,0 +1,38 @@ +{ lib, config, pkgs, ... }: +{ + services.radicale = { + enable = true; + settings = { + auth = { + type = "htpasswd"; + htpasswd_filename = "radicale-passwd"; + htpasswd_encryption = "plain"; + }; + }; + }; + + services.nginx.virtualHosts."radicale.beepboop.systems" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:5232"; + extraConfig = '' + proxy_set_header X-Script-Name /; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_pass_header Authorization; + ''; + }; + }; + + services.nginx.virtualHosts."calendar.beepboop.systems" = { + forceSSL = true; + enableACME = true; + globalRedirect = "radicale.beepboop.systems"; + }; + + services.nginx.virtualHosts."cal.beepboop.systems" = { + forceSSL = true; + enableACME = true; + globalRedirect = "radicale.beepboop.systems"; + }; +} diff --git a/boxes/netbox/rss2email.nix b/boxes/netbox/rss2email.nix new file mode 100644 index 0000000..63cc70e --- /dev/null +++ b/boxes/netbox/rss2email.nix @@ -0,0 +1,21 @@ +{ lib, config, pkgs, ... }: +{ + services.rss2email = { + enable = true; + to = "ryan@beepboop.systems"; + feeds = { + "eff" = { + url = "https://www.eff.org/rss/updates.xml"; + }; + "nixos" = { + url = "https://nixos.org/blog/announcements-rss.xml"; + }; + "drewdevault" = { + url = "https://drewdevault.com/blog/index.xml"; + }; + "nullprogram" = { + url = "https://nullprogram.com/feed/"; + }; + }; + }; +} diff --git a/boxes/netbox/ssh.nix b/boxes/netbox/ssh.nix new file mode 100644 index 0000000..cc84ac3 --- /dev/null +++ b/boxes/netbox/ssh.nix @@ -0,0 +1,13 @@ +{ lib, config, pkgs, ... }: + +{ + services.openssh = { + enable = true; + ports = [55555]; + settings = { + X11Forwarding = false; + PermitRootLogin = "no"; + PasswordAuthentication = false; + }; + }; +} diff --git a/boxes/netbox/sslh.nix b/boxes/netbox/sslh.nix new file mode 100644 index 0000000..6c86873 --- /dev/null +++ b/boxes/netbox/sslh.nix @@ -0,0 +1,19 @@ +{ lib, config, pkgs, ... }: +{ + services.sslh = { + enable = true; + settings.protocols = [ + { + host = "localhost"; + name = "ssh"; + port = "55555"; + service = "ssh"; + } + { + host = "localhost"; + name = "tls"; + port = "442"; + } + ]; + }; +} diff --git a/boxes/netbox/vaultwarden.nix b/boxes/netbox/vaultwarden.nix new file mode 100644 index 0000000..255e485 --- /dev/null +++ b/boxes/netbox/vaultwarden.nix @@ -0,0 +1,22 @@ +{ lib, config, pkgs, ... }: +{ + services.vaultwarden.enable = true; + services.vaultwarden.config = { + DOMAIN = "https://bitwarden.beepboop.systems"; + SIGNUPS_ALLOWED = false; + }; + + services.nginx.virtualHosts."bit.beepboop.systems" = { + forceSSL = true; + enableACME = true; + globalRedirect = "bitwarden.beepboop.systems"; + }; + + services.nginx.virtualHosts."bitwarden.beepboop.systems" = { + forceSSL = true; + enableACME = true; + locations."/" = { + proxyPass = "http://127.0.0.1:8000"; + }; + }; +} diff --git a/builds/gmail_mail_bridge.nix b/builds/gmail_mail_bridge.nix deleted file mode 100644 index a81985c..0000000 --- a/builds/gmail_mail_bridge.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ lib, pkgs, config, ... }: -let - cfg = config.services.gmail_mail_bridge; - appEnv = pkgs.python3.withPackages (p: with p; [ waitress (callPackage ./gmail_mail_bridge/default.nix {}) ]); -in { - options.services.gmail_mail_bridge = { - enable = lib.mkEnableOption "Enable the gmail_mail_bridge"; - }; - - config = lib.mkIf cfg.enable { - systemd.services.gmail_mail_bridge = { - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${appEnv}/bin/waitress-serve --port=8041 gmail_mail_bridge:app"; - StandardOutput = "journal"; - }; - }; - }; -} diff --git a/builds/gmail_mail_bridge/.gitignore b/builds/gmail_mail_bridge/.gitignore deleted file mode 100644 index aaca2e2..0000000 --- a/builds/gmail_mail_bridge/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache_/ diff --git a/builds/gmail_mail_bridge/README b/builds/gmail_mail_bridge/README deleted file mode 100644 index eae7b1c..0000000 --- a/builds/gmail_mail_bridge/README +++ /dev/null @@ -1,10 +0,0 @@ -synchronize email from gmail accounts whose OAuth access is heavily restricted - -background ----------- - -my school district disabled external OAuth access to email, which is not cool. this script gets around this and creates a bridge so you can recieve emails from your school email. - -do note that this is heavily unpolished and most definately insecure. there are some hardcoded credentials (which you can change, it just takes a little technical know-how) - -have fun! diff --git a/builds/gmail_mail_bridge/default.nix b/builds/gmail_mail_bridge/default.nix deleted file mode 100644 index bde908a..0000000 --- a/builds/gmail_mail_bridge/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, pythonPackages ? (import {}).python3Packages }: -pythonPackages.buildPythonPackage { - name = "gmail_mail_bridge"; - src = ./gmail_mail_bridge; - - propagatedBuildInputs = [ pythonPackages.flask pkgs.system-sendmail ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/${pythonPackages.python.sitePackages} - cp -r . $out/${pythonPackages.python.sitePackages}/gmail_mail_bridge - - runHook postInstall - ''; - - shellHook = "export FLASK_APP=gmail_mail_bridge"; - - format = "other"; -} diff --git a/builds/gmail_mail_bridge/gmail_mail_bridge/__init__.py b/builds/gmail_mail_bridge/gmail_mail_bridge/__init__.py deleted file mode 100644 index e6a7241..0000000 --- a/builds/gmail_mail_bridge/gmail_mail_bridge/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from flask import Flask -from flask import request -from flask import redirect -from flask import abort - -import logging - -import smtplib -import email - -from subprocess import Popen, PIPE, STDOUT - -pre_shared_secret = "amongus sussy imposter" -to = "ryan@beepboop.systems" - -app = Flask(__name__) - -def handle_post(request): - msg = email.message_from_string(request.form["payload"]) - del msg["To"] - msg["To"] = to - if not msg["From"]: - msg["From"] = "unknown-sender@mail.beepboop.systems" - - s = smtplib.SMTP('localhost') - s.send_message(msg) - s.quit() - -@app.route("/bridge-submit", methods = ["GET", "POST"]) -def testing(): - if request.method == 'POST': - data = request.form - if data['auth'] == pre_shared_secret: - handle_post(request) - else: - return 'you didn\'t use post' - return "default answer" diff --git a/builds/gmail_mail_bridge/shell.nix b/builds/gmail_mail_bridge/shell.nix deleted file mode 100644 index abd9f69..0000000 --- a/builds/gmail_mail_bridge/shell.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-23.11") {} }: - -pkgs.mkShell { - packages = [ - (pkgs.python3.withPackages (ps: [ - ps.flask - ])) - - pkgs.curl - pkgs.jq - ]; -} diff --git a/builds/gmail_mail_bridge/sync.gas b/builds/gmail_mail_bridge/sync.gas deleted file mode 100644 index 0df9d17..0000000 --- a/builds/gmail_mail_bridge/sync.gas +++ /dev/null @@ -1,23 +0,0 @@ -// google-side synchronization -// add a minute-wise trigger for mail synchronization -// go to the sidebar, select triggers, add a new one, configure it -// to run syncMail every minute - -function syncMail() { - var threads = GmailApp.search("label:need_processing"); - var label = GmailApp.getUserLabelByName("need_processing"); - for (var thread of threads) { - for (var message of GmailApp.getMessagesForThread(thread)) { - var formData = { - auth: 'amongus sussy imposter', - payload: message.getRawContent(), - }; - var options = { - 'method' : 'POST', - 'payload' : formData - }; - var resp = UrlFetchApp.fetch('https://mail.beepboop.systems/bridge-submit', options); - } - thread.removeLabel(label); - } -} diff --git a/builds/utils.nix b/builds/utils.nix index da53dba..a6f766f 100644 --- a/builds/utils.nix +++ b/builds/utils.nix @@ -34,8 +34,8 @@ stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin - for i in $(ls $src/sh); do - cp $src/sh/$i $out/bin + for i in $(ls $src/); do + cp $src/$i $out/bin ln -sf $out/bin/tmenu_run $out/bin/regenerate wrapProgram $out/bin/$i --prefix PATH : ${lib.makeBinPath [ sxhkd bash feh xrandr jq figlet curl fzy xkbset ytfzf sshuttle svkbd scrcpy xrectsel ffcast ]} done diff --git a/builds/utils/TODO b/builds/utils/TODO deleted file mode 100644 index 0d8b47b..0000000 --- a/builds/utils/TODO +++ /dev/null @@ -1,5 +0,0 @@ -TODO LIST ---------- - -- fix paste -- make the c programs less buggy and let them not suck as much diff --git a/builds/utils/sh/capture b/builds/utils/capture similarity index 100% rename from builds/utils/sh/capture rename to builds/utils/capture diff --git a/builds/utils/sh/connect b/builds/utils/connect similarity index 100% rename from builds/utils/sh/connect rename to builds/utils/connect diff --git a/builds/utils/sh/disp b/builds/utils/disp similarity index 100% rename from builds/utils/sh/disp rename to builds/utils/disp diff --git a/builds/utils/etc/southwest_tracker.py b/builds/utils/etc/southwest_tracker.py deleted file mode 100644 index 2cf2258..0000000 --- a/builds/utils/etc/southwest_tracker.py +++ /dev/null @@ -1,26 +0,0 @@ -import httplib2 -import json -import math -import time - -# fun fact: i got bored so made this on a southwest flight - -while True: - request = httplib2.Http() - # you have to look in the network tab in 'inspect element', and find the '_' parameter, and paste that in - # of course, you have to be connected to southwest's onboard wifi - _param = "fill this in" - data = request.request("https://getconnected.southwestwifi.com/fp3d_fcgi-php/portal/public/index.php?_url=/index/getFile&path=last&_=" + _param) - data = json.loads(data[1]) - print("-- Update --") - print("Nautical Miles: " + str(data["distanceToDestinationNauticalMiles"])) - print("Phase: " + data["presentPhase"]) - print("Speed: " + str(data["groundSpeedKnots"]) + "kts") - seconds = data['timeToDestination'] - minutes = math.floor(seconds / 60) - seconds = seconds % 60 - print("Minutes: " + str(minutes) + " Seconds: " + str(seconds)) - print("Flight Number: " + data["flightNumber"] + " Registration: " + data["tailNumber"]) - - time.sleep(3) - print('\033[H\033[2J') diff --git a/builds/utils/sh/gaming b/builds/utils/gaming similarity index 100% rename from builds/utils/sh/gaming rename to builds/utils/gaming diff --git a/builds/utils/sh/getphone b/builds/utils/getphone similarity index 100% rename from builds/utils/sh/getphone rename to builds/utils/getphone diff --git a/builds/utils/sh/is_school b/builds/utils/is_school similarity index 100% rename from builds/utils/sh/is_school rename to builds/utils/is_school diff --git a/builds/utils/sh/khalmacs b/builds/utils/khalmacs similarity index 100% rename from builds/utils/sh/khalmacs rename to builds/utils/khalmacs diff --git a/builds/utils/sh/lofi b/builds/utils/lofi similarity index 100% rename from builds/utils/sh/lofi rename to builds/utils/lofi diff --git a/builds/utils/sh/machine b/builds/utils/machine similarity index 100% rename from builds/utils/sh/machine rename to builds/utils/machine diff --git a/builds/utils/man/colors.1 b/builds/utils/man/colors.1 deleted file mode 100644 index e25818a..0000000 --- a/builds/utils/man/colors.1 +++ /dev/null @@ -1,32 +0,0 @@ -.TH COLORS 1 colors -.SH NAME -colors \- generate colorscheme and run hooks -.SH SYNOPSIS -.B colors [-hefc] [-w path] -.SH OPTIONS -.TP -.B -h -disable running hooks (implies -e) -.TP -.B -e -echo colors to stdout -.TP -.B -c -check colors using color checking algorithm -.TP -.B -f -print wallpaper filename to stdout -.TP -.B -w -provide wallpaper path -.SH HOOKS -When -h is not used, a program at ~/.config/cwal/handler is executed. The first sixteen arguments are the colors in the colorscheme, and the seventeenth argument is the filename. -.SH EXIT CODES -.TP -.B 0 -Normal exit code -.TP -.B 1 -check_colors(...) failed. -.SH AUTHOR -randomuser diff --git a/builds/utils/man/rndutils.1 b/builds/utils/man/rndutils.1 deleted file mode 100644 index 8b50645..0000000 --- a/builds/utils/man/rndutils.1 +++ /dev/null @@ -1,11 +0,0 @@ -.TH RNDUTILS 1 rndutils -.SH NAME -rndutils \- simple shell script utilities -.SH INSTALLATION -.B make install -.SH LICENSE -The author, randomuser (randomuser at tilde dot club) hereby -releases the software in this distribution and all -accompanying texts into the public domain, thereby relieving -him of any warranty of any kind. - diff --git a/builds/utils/man/timer.1 b/builds/utils/man/timer.1 deleted file mode 100644 index e06fcf4..0000000 --- a/builds/utils/man/timer.1 +++ /dev/null @@ -1,87 +0,0 @@ -.TH TIMER 1 timer -.SH NAME -timer \- simple command line timer program -.SH SYNOPSIS -.B timer [-evdbft] [-h int] [-m int] [-s int] -.SH OPTIONS -.TP -.B -e -enable usage of vt100 escape sequences for timer rendering (overrides -v) -.TP -.B -v -enable printing of timer status -.TP -.B -d -count down; when timer reaches 00:00, finish (use -h, -m, -s to set ending time) -.TP -.B -b -ASCII BEL when timer finish state reached -.TP -.B -f -timer display contains hour slot -.TP -.B -t -use a tomato timer (use -h, -m, -s to set work cycle time, rest cycle time is assumed to be half of the working time) -.TP -.B -p -disable pausing after finishing tomato timer cycle (required -t to work) -.TP -.B -z -enable build-specific runtime settings (default -ebf) -.TP -.B "-h int" -specify number of hours for timer parameters -.TP -.B "-m int" -specify number of minutes for timer parameters -.TP -.B "-s int" -specify number of seconds for timer parameters -.SH INTERACTIVE USAGE -.TP -.B pausing -a timer is paused when an astrisk prefixes the display (with -e) and/or when the timer ceases to update, e.g. count up or down. you can use the enter key to pause/unpause it (refer to the below example) -.nf -$ timer -e -* 05:45 -.fi -.TP -.B stopping a timer -should you wish to stop a timer prematurely, or a timer which has no specified end condition, you may press the key combination that sends a killing signal to the program (e.g. a la SIGTERM) in your shell, which is usually ^C. the timer has no major places to clean up. however, memory leaks might occur on some operating systems due to no free()ing of resources. -.SH EXIT CODES/TERMINATION SIGNALS -.TP -.B 0 -timer finished successfully -.TP -.B 1 / SIGABRT -error parsing arguments -.SH EXAMPLES -.B start a ten minute timer, counting up: -.nf -$ timer -m 10 -.fi -.B show the vt100 interface, too: -.nf -$ timer -em 10 -.fi -.B start a one hour sixty-two minute fourty-nine second timer counting down (with vt100 interface): -.nf -$ timer -edh 1 -m 62 -s 49 -.fi -.B start a tomato timer with a work interval of fourty minutes and a rest interval of twenty minutes: -.nf -$ timer -etm 40 -.fi -.SH REQUIRED HEADERS -.nf -#include -#include -#include -#include -#include -.fi -.SH BUGS -- when passing -p each tomato timer cycle is cut short one second -send email to random user at-sign tilde dot club -.SH AUTHOR -randomuser diff --git a/builds/utils/man/trss.1 b/builds/utils/man/trss.1 deleted file mode 100644 index 575a9e5..0000000 --- a/builds/utils/man/trss.1 +++ /dev/null @@ -1,30 +0,0 @@ -.TH TRSS 1 trss -.SH NAME -trss \- command oriented feed reader powered by sfeed -.SH SYNOPSIS -.B trss -.SH INTERFACE -.TP -.B ls -list all feed names in the 'feed home', or within a feed, list all items within -.TP -.B cd -focus another feed. in order to go back to the 'feed home', use 'cd' or 'cd ..' -.TP -.B sync -with no arguments and in the 'feed home', syncs all feeds. if in a specific feed, syncs that feed. a feed can be specified in an argument. -.TP -.B cat -open all feeds whose titles contain text as specified by an argument in 'lynx' - -.SH trss-yt-id -this script is designed to allow one to obtain an rss feed for the uploads of a youtube channel. this command takes the homepage of the youtube channel in question as an argument and then returns the rss feed for that channel. - -.SH BUGS -- when in a feed, you can't cd to another directly, you must go to to the 'feed home' and then cd - -.SH DEPENDS -sfeed - -.SH AUTHOR -randomuser diff --git a/builds/utils/man/xgetnewwindow.1 b/builds/utils/man/xgetnewwindow.1 deleted file mode 100644 index 8c5adab..0000000 --- a/builds/utils/man/xgetnewwindow.1 +++ /dev/null @@ -1,10 +0,0 @@ -.TH XGETNEWWINDOW 1 xgetnewwindow -.SH NAME -xgetnewwindow -.SH SYNOPSIS -xgetnewwindow blocks until it recieves a CreateNotify event; that is, until a new window is created within the current Xorg instance. Once a new window is created, xgetnewwindow prints the window id (in hexadecimal) to stdout and exits. -.SH EXIT CODES -1 for abnormal termination, 0 for success. -.SH AUTHOR -randomuser - diff --git a/builds/utils/sh/mode b/builds/utils/mode similarity index 100% rename from builds/utils/sh/mode rename to builds/utils/mode diff --git a/builds/utils/sh/mousehelper b/builds/utils/mousehelper similarity index 100% rename from builds/utils/sh/mousehelper rename to builds/utils/mousehelper diff --git a/builds/utils/sh/musexplore b/builds/utils/musexplore similarity index 100% rename from builds/utils/sh/musexplore rename to builds/utils/musexplore diff --git a/builds/utils/sh/nws b/builds/utils/nws similarity index 100% rename from builds/utils/sh/nws rename to builds/utils/nws diff --git a/builds/utils/sh/passmenu b/builds/utils/passmenu similarity index 100% rename from builds/utils/sh/passmenu rename to builds/utils/passmenu diff --git a/builds/utils/sh/special_ins b/builds/utils/special_ins similarity index 100% rename from builds/utils/sh/special_ins rename to builds/utils/special_ins diff --git a/builds/utils/sh/start-phone-bridge b/builds/utils/start-phone-bridge similarity index 100% rename from builds/utils/sh/start-phone-bridge rename to builds/utils/start-phone-bridge diff --git a/builds/utils/sh/start-termux-xorg b/builds/utils/start-termux-xorg similarity index 100% rename from builds/utils/sh/start-termux-xorg rename to builds/utils/start-termux-xorg diff --git a/builds/utils/sh/summarize b/builds/utils/summarize similarity index 100% rename from builds/utils/sh/summarize rename to builds/utils/summarize diff --git a/builds/utils/sh/sync b/builds/utils/sync similarity index 100% rename from builds/utils/sh/sync rename to builds/utils/sync diff --git a/builds/utils/sh/tabletmenu b/builds/utils/tabletmenu similarity index 100% rename from builds/utils/sh/tabletmenu rename to builds/utils/tabletmenu diff --git a/builds/utils/sh/tmenu b/builds/utils/tmenu similarity index 100% rename from builds/utils/sh/tmenu rename to builds/utils/tmenu diff --git a/builds/utils/sh/tmenu-backend b/builds/utils/tmenu-backend similarity index 100% rename from builds/utils/sh/tmenu-backend rename to builds/utils/tmenu-backend diff --git a/builds/utils/sh/tmenu_run b/builds/utils/tmenu_run similarity index 100% rename from builds/utils/sh/tmenu_run rename to builds/utils/tmenu_run diff --git a/builds/utils/sh/tmuxbird b/builds/utils/tmuxbird similarity index 100% rename from builds/utils/sh/tmuxbird rename to builds/utils/tmuxbird diff --git a/builds/utils/sh/vpn b/builds/utils/vpn similarity index 100% rename from builds/utils/sh/vpn rename to builds/utils/vpn diff --git a/modules/bootstrap.nix b/modules/bootstrap.nix index cdf4b36..e7ae8f0 100644 --- a/modules/bootstrap.nix +++ b/modules/bootstrap.nix @@ -4,6 +4,8 @@ environment.systemPackages = with pkgs; [ git neovim + + (pkgs.callPackage ../builds/rebuild.nix {}) ]; nix.settings.experimental-features = [ "nix-command" "flakes" ]; diff --git a/modules/common.nix b/modules/common.nix index dc3e8ac..501ecad 100644 --- a/modules/common.nix +++ b/modules/common.nix @@ -6,7 +6,6 @@ ]; environment.systemPackages = [ - (pkgs.callPackage ../builds/rebuild.nix {}) (pkgs.callPackage ../builds/st.nix { lightMode = false; }) (pkgs.callPackage ../builds/utils.nix {}) (pkgs.callPackage ../builds/statusbar {})