Compare commits

..

No commits in common. "master" and "statusbar-experimental" have entirely different histories.

28 changed files with 102 additions and 241 deletions

1
.config/.gitignore vendored
View File

@ -1,4 +1,5 @@
.config .config
mimeapps.list mimeapps.list
pulse/ pulse/
rbw
chromium/ chromium/

View File

@ -1,6 +0,0 @@
{
"base_url": "https://bitwarden.beepboop.systems",
"email": "bit@beepboop.systems",
"identity_url": null,
"lock_timeout": 3600
}

View File

@ -2,13 +2,6 @@
Escape Escape
mode sxhkdrc mode sxhkdrc
w
mode sxhkdrc
# send the escape key
]
xdotool key Escape
# move left # move left
{ctrl +,shift +,_} h {ctrl +,shift +,_} h
xdotool mousemove_relative -- {-5,-50,-20} 0 xdotool mousemove_relative -- {-5,-50,-20} 0

21
.config/sxhkd/phone Normal file
View File

@ -0,0 +1,21 @@
# essentially the same thing as sxhkdrc, but super is replaced with ctrl + b and all shortcuts are chorded
ctrl + b; c
st
ctrl + b; Return
st
ctrl + b; q
bspc node -c
ctrl + b; {_,shift + } {1-9,0}
bspc {desktop -f,node -d} '{1-9,10}'
ctrl + b; {_,ctrl +,shift + }{h,j,k,l}
bspc node -{f,p,s} {west,south,north,east}
ctrl + b; d
tmenu_run
ctrl + b; m
mode phonemouse

43
.config/sxhkd/phonemouse Normal file
View File

@ -0,0 +1,43 @@
# exit mouse mode
w
mode phone
# move left
{ctrl +,shift +,_} h
xdotool mousemove_relative -- {-5,-50,-20} 0
# move down
{ctrl +,shift +,_} j
xdotool mousemove_relative -- 0 {5,50,20}
# move up
{ctrl +,shift +,_} k
xdotool mousemove_relative -- 0 {-5,-50,-20}
# move right
{ctrl +,shift +,_} l
xdotool mousemove_relative -- {5,50,20} 0
# left, middle, right click
{ctrl +,_} {a,s,d}
xdotool {mousedown,click} {1,2,3}
# let go of clicked button
q
xdotool mouseup 1; xdotool mouseup 2; xdotool mouseup 3
# move the mouse to the top of the window
g ; g
mousehelper top
# ditto for bottom
G
mousehelper bottom
# ditto for left
0
mousehelper left
# ditto for right
dollar
mousehelper right

View File

@ -2,29 +2,15 @@
super + Return super + Return
st st
ctrl + b; c
st
ctrl + b; Return
st
# spawn the launcher # spawn the launcher
super + d super + d
tmenu_run tmenu_run
ctrl + b; d
tmenu_run
# kill sxhkd with USR1 and restart bspwm # kill sxhkd with USR1 and restart bspwm
super + r super + r
pkill -USR1 -x sxhkd; \ pkill -USR1 -x sxhkd; \
bspc wm -r bspc wm -r
ctrl + b; r
pkill -USR1 -x sxhkd; \
bspc wm -r
# show nws radar
super + {_,shift + }n super + {_,shift + }n
nws {local,national} nws {local,national}
@ -32,25 +18,14 @@ super + {_,shift + }n
super + m super + m
mode mouse mode mouse
ctrl + b; m
mode mouse
# kill the current node # kill the current node
super + q super + q
bspc node -c bspc node -c
ctrl + b; q
bspc node -c
# kill bspwm # kill bspwm
super + e super + e
bspc quit 0 bspc quit 0
ctrl + b; e
bspc quit 0; \
pkill X # phone starts bspwm differently
# to take everything down, we need to kill X
# systemctl suspend # systemctl suspend
super + shift + e super + shift + e
systemctl suspend systemctl suspend
@ -59,16 +34,14 @@ super + shift + e
super + z super + z
passmenu passmenu
ctrl + b; z # start a browser
passmenu super + b
chromium
# manipulate a node # manipulate a node
super + {_,ctrl +,shift + }{h,j,k,l} super + {_,ctrl +,shift + }{h,j,k,l}
bspc node -{f,p,s} {west,south,north,east} bspc node -{f,p,s} {west,south,north,east}
ctrl + b; {_,ctrl +,shift + }{h,j,k,l}
bspc node -{f,p,s} {west,south,north,east}
# change to or move a node to a desktop # change to or move a node to a desktop
super + {_,shift + } {1-9,0} super + {_,shift + } {1-9,0}
bspc {desktop -f,node -d} '0{1-9,0}' bspc {desktop -f,node -d} '0{1-9,0}'
@ -76,23 +49,13 @@ super + {_,shift + } {1-9,0}
super + space; {_,shift + } {1-9,0} super + space; {_,shift + } {1-9,0}
bspc {desktop -f,node -d} '1{1-9,0}' bspc {desktop -f,node -d} '1{1-9,0}'
ctrl + b; {_,shift + } {1-9,0}
bspc {desktop -f,node -d} '0{1-9,0}'
# change a node to tiling, floating, or fullscreen # change a node to tiling, floating, or fullscreen
super + {t,f,s} super + {t,f,s}
bspc node -t {tiled,floating,fullscreen} bspc node -t {tiled,floating,fullscreen}
ctrl + b; {t,f,s}
bspc node -t {tiled,floating,fullscreen}
# x230t specific -- activate the tablet menu # x230t specific -- activate the tablet menu
XF86RotateWindows XF86RotateWindows
tabletmenu tabletmenu
shift + Insert shift + Insert
special_ins special_ins
# phone specific -- send the escape key since we can't use it
super + b; [
xdotool key Escape

View File

@ -34,10 +34,6 @@
libreoffice libreoffice
texliveMedium texliveMedium
kdePackages.kdenlive kdePackages.kdenlive
audacity
bespokesynth
puddletag
musescore
unzip unzip
ledger ledger
@ -55,7 +51,6 @@
tigervnc tigervnc
(pkgs.callPackage ../../builds/archutils.nix {}) (pkgs.callPackage ../../builds/archutils.nix {})
(pkgs.callPackage ../../builds/sssg.nix {})
]; ];
services.hardware.bolt.enable = true; # thunderbolt support services.hardware.bolt.enable = true; # thunderbolt support
@ -117,7 +112,6 @@
allowedTCPPorts = [ 6000 ]; allowedTCPPorts = [ 6000 ];
allowedTCPPortRanges = [ allowedTCPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect { from = 1714; to = 1764; } # KDE Connect
{ from = 10000; to = 10100; } # temp stuff
]; ];
allowedUDPPortRanges = [ allowedUDPPortRanges = [
{ from = 1714; to = 1764; } # KDE Connect { from = 1714; to = 1764; } # KDE Connect

View File

@ -2,9 +2,8 @@
{ {
imports = [ imports = [
./photoprism.nix
./wireguard.nix ./wireguard.nix
./grafana.nix ./grafana.nix
./nextcloud.nix
./paperless.nix
]; ];
} }

View File

@ -1,25 +0,0 @@
{ lib, config, pkgs, ...}:
{
services.nextcloud = {
enable = true;
package = pkgs.nextcloud30;
hostName = "nextcloud.beepboop.systems";
config.adminpassFile = "/etc/nextcloud-admin";
settings.overwriteprotocol = "https";
extraApps = {
inherit (config.services.nextcloud.package.packages.apps) contacts calendar tasks;
phonetrack = pkgs.fetchNextcloudApp {
sha256 = "sha256-V92f+FiS5vZEkq15A51pHoDpUOBfUOEVIcsXdP/rSMQ=";
license = "agpl3Only";
url = "https://github.com/julien-nc/phonetrack/releases/download/v0.8.1/phonetrack-0.8.1.tar.gz";
};
};
extraAppsEnable = true;
};
services.nginx.virtualHosts."${config.services.nextcloud.hostName}".listen = [ {
addr = "10.100.0.2";
port = 5028;
} ];
}

View File

@ -1,10 +0,0 @@
{ lib, config, pkgs, ...}:
{
services.paperless = {
enable = true;
passwordFile = "/home/usr/wg-keys/paperless";
address = "10.100.0.2";
port = 6230;
};
}

View File

@ -2,19 +2,19 @@
{ {
networking = { networking = {
firewall.allowedUDPPorts = [ 50000 ]; firewall.allowedUDPPorts = [ 51820 ];
wireguard.interfaces = { wireguard.interfaces = {
wg0 = { wg0 = {
ips = [ "10.100.0.2/24" ]; ips = [ "10.100.0.2/24" ];
listenPort = 50000; listenPort = 51820;
privateKeyFile = "/home/usr/wg-keys/private"; privateKeyFile = "/home/usr/wg-keys/private";
peers = [ peers = [
{ # netbox { # netbox
publicKey = "0fOqAfsYO4HvshMPnlkKL7Z1RChq98hjDr0Q8o7OJFE="; publicKey = "0fOqAfsYO4HvshMPnlkKL7Z1RChq98hjDr0Q8o7OJFE=";
allowedIPs = [ "10.100.0.0/24" ]; # only stuff in the wg-subnet (10.100.0.*) allowedIPs = [ "10.100.0.0/24" ]; # only stuff in the wg-subnet (10.100.0.*)
endpoint = "149.28.63.115:50000"; endpoint = "149.28.63.115:51820";
persistentKeepalive = 25; persistentKeepalive = 25;
} }
]; ];

View File

@ -17,9 +17,8 @@
./nginx.nix ./nginx.nix
./franklincce.nix ./franklincce.nix
./wireguard.nix ./wireguard.nix
./nextcloud-bridge.nix ./photoprism-bridge.nix
./grafana-bridge.nix ./grafana-bridge.nix
./paperless-bridge.nix
./prometheus.nix ./prometheus.nix
./socks.nix ./socks.nix
]; ];
@ -101,7 +100,7 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILBGh1FHPneg7PCDkhMs2BCJPTIRVJkRTKpOj1w02ydD usr" # copernicus "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILBGh1FHPneg7PCDkhMs2BCJPTIRVJkRTKpOj1w02ydD usr" # copernicus
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrpVDLQszFKoYbvYKRyVTTpehxR0BVU47SXkz39l2wK usr" # mainsail "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrpVDLQszFKoYbvYKRyVTTpehxR0BVU47SXkz39l2wK usr" # mainsail
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB2xUbQw9+RCPVw7qCFm4NNCP/MpS2BIArcwMv0KdKOI usr" # mlg "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB2xUbQw9+RCPVw7qCFm4NNCP/MpS2BIArcwMv0KdKOI usr" # mlg
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILuVT5W3kzjzsuMIWk1oeGtL8jZGtAhRSx8dK8oBJQcG u0_a291" # phone "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHZw5bg0TrvSkW/XQa4c+2iLbIKOxfMGbjy5Nb3HSfBv usr" # phone
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCufie2JWc4ylZHIi03uR0RB/79/hTacn9qnlzqs+kaWcdk7eyHqpg3zmVrETCZQxJ8ssZx4+tlwC0+seOjgIfNktfKjiRpes2Sib0MowO3lRgzqJ0pZ5AEA/pc4314meAZP/CibFw54CWxOySEXsCWKm157HVJHpJ7P0HwqzHod4jXxUWKwMoZo5XyOTTMHv4oytcHTydIeiSymw3RtvEtqpBCRE3W5kIiJNuCXnZGZBxvOnhJsQ0FkeXgByeXOLFxUw0ma6Jy/621T2GrBnmFhiSIV+T7xk/cfgP+D1V9x2wCLX5gPQaNzwL03v3xohxnJwRa6EXTR9LzXE7Rhnolbmkb/YPPpI6U0RpueZrHv/1CIA3OSKnQh1cp/jMeP4DfeO+fSY1SsRZICQ3ndlnYkXtalEzGPxeLUgLsh6SxSIK+7jjlDGrJCUbOMHhR+92vBXy7XE8tgO2FuhrAIiroIsaWmZO/7sike3ps3GFEZHZMEe2v3IDqfX/Iecn++U= usr" # aristotle "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDCufie2JWc4ylZHIi03uR0RB/79/hTacn9qnlzqs+kaWcdk7eyHqpg3zmVrETCZQxJ8ssZx4+tlwC0+seOjgIfNktfKjiRpes2Sib0MowO3lRgzqJ0pZ5AEA/pc4314meAZP/CibFw54CWxOySEXsCWKm157HVJHpJ7P0HwqzHod4jXxUWKwMoZo5XyOTTMHv4oytcHTydIeiSymw3RtvEtqpBCRE3W5kIiJNuCXnZGZBxvOnhJsQ0FkeXgByeXOLFxUw0ma6Jy/621T2GrBnmFhiSIV+T7xk/cfgP+D1V9x2wCLX5gPQaNzwL03v3xohxnJwRa6EXTR9LzXE7Rhnolbmkb/YPPpI6U0RpueZrHv/1CIA3OSKnQh1cp/jMeP4DfeO+fSY1SsRZICQ3ndlnYkXtalEzGPxeLUgLsh6SxSIK+7jjlDGrJCUbOMHhR+92vBXy7XE8tgO2FuhrAIiroIsaWmZO/7sike3ps3GFEZHZMEe2v3IDqfX/Iecn++U= usr" # aristotle
]; ];
isNormalUser = true; isNormalUser = true;

View File

@ -26,9 +26,6 @@
absolute_redirect off; absolute_redirect off;
''; '';
}; };
locations."/groupme" = {
proxyPass = "http://10.100.0.2:7439";
};
}; };
security.acme = { security.acme = {

View File

@ -1,15 +0,0 @@
{ lib, config, pkgs, ... }:
{
services.nginx.virtualHosts."paperless.beepboop.systems" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://10.100.0.2:6230";
extraConfig = ''
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_buffering off;
'';
};
};
}

View File

@ -1,10 +1,10 @@
{ lib, config, pkgs, ... }: { lib, config, pkgs, ... }:
{ {
services.nginx.virtualHosts."nextcloud.beepboop.systems" = { services.nginx.virtualHosts."photos.beepboop.systems" = {
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
locations."/" = { locations."/" = {
proxyPass = "http://10.100.0.2:5028"; proxyPass = "http://10.100.0.2:2342";
proxyWebsockets = true; proxyWebsockets = true;
extraConfig = '' extraConfig = ''
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View File

@ -7,13 +7,13 @@
externalInterface = "eth0"; externalInterface = "eth0";
internalInterfaces = [ "wg0" ]; internalInterfaces = [ "wg0" ];
}; };
firewall.allowedUDPPorts = [ 50000 ]; firewall.allowedUDPPorts = [ 51820 ];
wireguard.interfaces = { wireguard.interfaces = {
wg0 = { wg0 = {
ips = [ "10.100.0.1/24" ]; ips = [ "10.100.0.1/24" ];
listenPort = 50000; listenPort = 51820;
postSetup = '' postSetup = ''
${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE

View File

@ -1,2 +1 @@
app_cache/ app_cache/
gpapp_cache/

View File

@ -1,3 +0,0 @@
com.ministrycentered.PlanningCenter
com.groupme.android
com.brivo.pass

View File

@ -4,31 +4,3 @@ for i in $(cat apps); do
curl "$i" --max-redirs 999 -L -C - -o "app_cache/$output_name" curl "$i" --max-redirs 999 -L -C - -o "app_cache/$output_name"
adb install "app_cache/$output_name" adb install "app_cache/$output_name"
done done
mkdir -p gpapp_cache
for i in $(cat gpapps); do
apkeep -a "$i" ./gpapp_cache/
done
for i in $(ls gpapp_cache/ | grep xapk); do
# this is specific to planning center online
xapk_playground=$(mktemp)
rm $xapk_playground
mkdir $xapk_playground
cp gpapp_cache/$i $xapk_playground
cd $xapk_playground
mkdir out
unzip $i -d out
cd -
cd $xapk_playground/out
rm icon.png
rm manifest.json
adb install-multiple *
cd -
done
cd gpapp_cache
for i in $(ls | grep '\.apk'); do
adb install $i
done

View File

@ -1,7 +0,0 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
packages = [
pkgs.apkeep
];
}

View File

@ -1,4 +1,2 @@
git-annex-install git-annex-install
git-annex-install.*
git-annex.linux git-annex.linux

View File

@ -21,17 +21,18 @@ utils-sh:
rebuild-sh: rebuild-sh:
mkdir -p ~/.local/bin mkdir -p ~/.local/bin
cp ../../../builds/rebuild/* ~/.local/bin cp ../../../builds/rebuild/* ~/.local/bin
pip-pkgs: pip-pkgs:
pip3 install vdirsyncer pip3 install vdirsyncer
pip3 install khal pip3 install khal
# pip3 install khard # pip3 install khard
termux-pkgs: termux-pkgs:
pkg install -y \ pkg install \
tur-repo \ tur-repo \
x11-repo x11-repo
pkg install -y \ pkg install \
neovim \ neovim \
python-pip \ python-pip \
feh \ feh \
@ -64,9 +65,10 @@ termux-pkgs:
pandoc \ pandoc \
wget \ wget \
which \ which \
rsync \ openssl
openssl \
chromium pkg install \
chromium # from tur-repo
termux-dots: termux-dots:
mkdir -p ~/.local/bin mkdir -p ~/.local/bin

View File

@ -1,28 +0,0 @@
{ stdenv
, lib
, pkgs
, fetchgit
, makeWrapper
, bash
, pandoc
}:
stdenv.mkDerivation rec {
pname = "sssg";
version = "1.00";
src = fetchgit {
url = "https://git.beepboop.systems/stupidcomputer/sssg";
hash = "sha256-b0lbHsu628CKPNC6HDLApZQ4HsinTrXCoFqr1KdVIYE=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash pandoc ];
installPhase = ''
mkdir -p $out/bin
cp $src/sssg.sh $out/bin/sssg
wrapProgram $out/bin/sssg --prefix PATH : ${lib.makeBinPath [ bash pandoc ]}
'';
}

View File

@ -173,16 +173,16 @@ case "$(hostname)" in
phone pair & disown phone pair & disown
;; ;;
"localhost") # phone in termux "localhost") # phone in termux
pkill sxhkd
cd ~
sxhkd -c ~/.config/sxhkd/phone & disown
cd -
xrandr --output VNC-0 --mode 1920x1080 xrandr --output VNC-0 --mode 1920x1080
bspc monitor VNC-0 -d 01 02 03 04 05 06 07 08 09 bspc monitor VNC-0 -d 1 2 3 4 5 6 7 8 9 # the phone uses different desktop descriptors
feh --bg-fill ~/.local/share/pape.jpg feh --bg-fill ~/.local/share/pape.jpg
bspc config top_padding 0 bspc config top_padding 0
bspc config bottom_padding 100 bspc config bottom_padding 100
mkdir -p ~/.cache/statusbar mkdir -p ~/.cache/statusbar
pgrep -a st | \
grep statusbar | \
awk '{print $1}' | \
xargs kill
termux-statusbar-polyfill start_statusbars termux-statusbar-polyfill start_statusbars
;; ;;
esac esac

View File

@ -1,3 +0,0 @@
#!/bin/sh
rsync -avv usr@192.168.1.210:~/annex/music/audio ~/storage/music

View File

@ -41,11 +41,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1731038603, "lastModified": 1730013417,
"narHash": "sha256-4eJQfKZnMwy7Y2bFHqw/mpZjsPWrXfITmgTLPGmfl/w=", "narHash": "sha256-nZ6ylS3/FAjsi9wwdZJpzIV0+bgJDAurZAi0w9q1Nxw=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "674763b3eb6f0bdfa1f987984711bd3f33efc7bf", "rev": "e9ec8d2766bbe4d242c9255247197372ac64f885",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -199,11 +199,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1730883749, "lastModified": 1729973466,
"narHash": "sha256-mwrFF0vElHJP8X3pFCByJR365Q2463ATp2qGIrDUdlE=", "narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dba414932936fde69f0606b4f1d87c5bc0003ede", "rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -1,13 +1,12 @@
{ lib, config, pkgs, home, ... }: { lib, config, pkgs, home, ... }:
{ {
home.packages = with pkgs; [ programs.rbw = {
rbw enable = true;
]; settings = {
base_url = "https://bitwarden.beepboop.systems";
home.file = { email = "bit@beepboop.systems";
".config/rbw/config.json" = { pinentry = pkgs.pinentry-gnome3;
source = ../../.config/rbw/config.json;
}; };
}; };
} }

22
misc.md
View File

@ -1,22 +0,0 @@
## cannot remove '/tmp/env-vars': Operation not permitted
If, when running nix-shell this happens:
```
coper:~/dot_testing/boxes/phone/init$ nvim shell.nix
coper:~/dot_testing/boxes/phone/init$ nix-shell
install: cannot remove '/tmp/env-vars': Operation not permitted
```
remove `/tmp/env-vars` (it's owned by root for some reason):
```
$ sudo rm /tmp/env-vars
```
Is there a fix for this?
## wireguard tunnel isn't working!
If one of your clients is showing 0 bytes recieved, then try changing the control port on both
the client and the server. See b6b86824def331d1a558aa7c5bd9f41bd3eb6aea for an example.