Compare commits

...

21 Commits

Author SHA1 Message Date
stupidcomputer 3b44d72d0f install paperless-ngx 2024-11-13 22:00:07 -06:00
stupidcomputer fc13c1cd7d allow some more liberal port ranges on copernicus 2024-11-13 21:55:58 -06:00
stupidcomputer b73c435f5a add knowledge to misc.md 2024-11-09 21:39:27 -06:00
stupidcomputer b6b86824de change port number? 2024-11-09 21:35:11 -06:00
stupidcomputer ae22abd986 inc flake.lock 2024-11-09 20:09:03 -06:00
stupidcomputer 3d87c8bfca Merge branch 'master' of https://git.beepboop.systems/stupidcomputer/dot_testing 2024-11-09 20:08:49 -06:00
stupidcomputer 8efb0b321a add a little development testing thing 2024-11-09 20:08:44 -06:00
stupidcomputer 4ab7330eb5 update .gitignore 2024-11-08 16:36:34 -06:00
stupidcomputer a5b1bc0b80 rotate ssh keys for phone 2024-11-08 14:15:55 -06:00
stupidcomputer b084dc49e1 substitute nextcloud for photoprism 2024-11-05 16:10:37 -06:00
stupidcomputer 71659092dc add the google play app declarations to the phone init 2024-11-05 14:09:42 -06:00
stupidcomputer fd07fdbb34 add misc.md 2024-11-05 11:58:47 -06:00
stupidcomputer 66424aa9b1 whoops 2024-11-04 02:33:03 -06:00
stupidcomputer 18ccd71602 add the stupid static site generator 2024-11-04 02:31:48 -06:00
stupidcomputer 6f2c96613b some misc changes 2024-11-04 01:45:16 -06:00
stupidcomputer 7f4055435b merge the phone sxhkdrc with the regular one 2024-11-04 01:26:35 -06:00
stupidcomputer 657287d513 stop prompting for package installation 2024-11-04 01:15:54 -06:00
stupidcomputer 4640167eb0 write a script to synchronize music to phone 2024-11-04 01:14:57 -06:00
stupidcomputer 3edb488963 move rbw from hm config to .config for phone 2024-11-04 00:50:54 -06:00
stupidcomputer a03d535034 Merge pull request 'make statusbar work with phone' (#3) from statusbar-experimental into master
Reviewed-on: #3
2024-11-04 00:41:07 -06:00
stupidcomputer e7a6168d72 add some media packages to copernicus 2024-11-04 00:13:01 -06:00
28 changed files with 241 additions and 102 deletions

1
.config/.gitignore vendored
View File

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

6
.config/rbw/config.json Normal file
View File

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

View File

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

View File

@ -1,21 +0,0 @@
# 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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,25 @@
{ 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

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

View File

@ -17,8 +17,9 @@
./nginx.nix
./franklincce.nix
./wireguard.nix
./photoprism-bridge.nix
./nextcloud-bridge.nix
./grafana-bridge.nix
./paperless-bridge.nix
./prometheus.nix
./socks.nix
];
@ -100,7 +101,7 @@
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILBGh1FHPneg7PCDkhMs2BCJPTIRVJkRTKpOj1w02ydD usr" # copernicus
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrpVDLQszFKoYbvYKRyVTTpehxR0BVU47SXkz39l2wK usr" # mainsail
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB2xUbQw9+RCPVw7qCFm4NNCP/MpS2BIArcwMv0KdKOI usr" # mlg
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHZw5bg0TrvSkW/XQa4c+2iLbIKOxfMGbjy5Nb3HSfBv usr" # phone
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILuVT5W3kzjzsuMIWk1oeGtL8jZGtAhRSx8dK8oBJQcG u0_a291" # 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
];
isNormalUser = true;

View File

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

View File

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

View File

@ -0,0 +1,15 @@
{ 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

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

View File

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

3
boxes/phone/init/gpapps Normal file
View File

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

View File

@ -4,3 +4,31 @@ for i in $(cat apps); do
curl "$i" --max-redirs 999 -L -C - -o "app_cache/$output_name"
adb install "app_cache/$output_name"
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

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

View File

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

View File

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

28
builds/sssg.nix Normal file
View File

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

View File

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

View File

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

View File

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

22
misc.md Normal file
View File

@ -0,0 +1,22 @@
## 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.