Compare commits

...

21 Commits

Author SHA1 Message Date
andonome 58f794d7b8 Remote into new sway session 2026-06-13 09:09:35 +02:00
andonome 49452db82d How to remote into sway 2026-06-13 08:59:32 +02:00
andonome a3ffdd8ae6 CMD: share directory locally 2026-06-13 07:38:04 +02:00
andonome fe1c524dc3 Example: RSS feed 2026-06-11 14:01:57 +02:00
andonome 668d605dcb CMD: get sway info 2026-06-11 11:36:47 +02:00
andonome cc3ac0d7b0 Remove colon from rundown lists 2026-06-06 14:14:33 +02:00
andonome 8811e94b11 Soft: add standard commands 2026-06-05 17:20:30 +02:00
andonome cd7ddd15b2 CMD: sort 2026-06-03 06:07:28 +02:00
andonome 88eefd2c1e CMD: read sizes 2026-06-03 05:43:07 +02:00
andonome 54e4cc5149 Publish lists with title 'Rundown:' 2026-06-02 07:46:03 +02:00
andonome 9901404a91 Rename git setup 2026-06-02 07:36:03 +02:00
andonome 4e76fec33c Systemd fixups 2026-05-26 02:53:36 +02:00
andonome d7f8c9bae1 Rename pass setup 2026-05-25 19:52:22 +02:00
andonome 6a10468d4d Fix ed link 2026-05-24 18:41:52 +02:00
andonome ab079fedfa Fix kubernetes names 2026-05-24 18:40:14 +02:00
andonome 2bdc293263 Rename fail2ban 2026-05-24 18:37:24 +02:00
andonome 2f7ad89bbb Note setup tags 2026-05-24 18:37:16 +02:00
andonome 5e9d08286b Reformat cron 2026-05-24 18:30:36 +02:00
andonome 4c9dacbd45 Mark git-secret as a review 2026-05-24 18:30:21 +02:00
andonome 9e4889daea Remove old mpd notes 2026-05-24 18:30:12 +02:00
andonome e35e9a7766 Remove monitor notes 2026-05-24 18:29:38 +02:00
22 changed files with 201 additions and 96 deletions
+51 -2
View File
@@ -200,6 +200,13 @@ shell: sh
bin: fzf
tag: comfy
aim: Read the minimal size of a git repo
cmd: git count-objects -vH | grep -Po 'size-pack: \K.*'
note: Git repositories are never at their minimal size.
shell: sh
bin: git
tag: size
aim: Email a pull request which points to your git server
tag: git
shell: sh
@@ -286,7 +293,7 @@ shell: sh
bin: journalctl
tag: system
aim: Find errors since a date
aim: Find service errors in systemd since a date
cmd: date=2027-01-01
+ journalctl --since=${date} --grep="EXT4-fs error"
shell: sh
@@ -294,7 +301,8 @@ bin: journalctl
tag: system
aim: Limit the systemd's journal size to 2 gigabytes
cmd: journalctl --vacuum-size=2G
cmd: journalctl --disk-usage
+ journalctl --vacuum-size=2G
+ journalctl --disk-usage
shell: sh
bin: journalctl
@@ -413,6 +421,13 @@ bin: ntpd
tag: time
tag: system
aim: Convert bytes to human readable size
cmd: b=10392309
+ echo "$b" | numfmt --to=eic
shell: sh
bin: numfmt
tag: size
aim: Uncompress a PDF
cmd: pdftk ${input}.pdf output ${output}.pdf uncompress
shell: sh
@@ -477,6 +492,14 @@ bin: ssh
tag: system
tag: comfy
aim: List enabled systemd services
cmd: systemctl list-unit-files --state enabled
cmd: systemctl --user list-unit-files --state enabled
shell: sh
bin: systemd
tag: system
tag: service
aim: Check a service
cmd: sudo systemctl status mpd
shell: sh
@@ -559,3 +582,29 @@ bin: vipw
bin: sudo
tag: system
tag: groups
aim: Check current keyboard layout on sway
cmd: swaymsg -t get_inputs --raw | jq -r '.[0].xkb_active_layout_name'
bin: sway
bin: jq
tag: keyboard
tag: locale
shell: sh
aim: Show name of currently selected app in sway
cmd: swaymsg -t get_tree | jq -C '.. | select(.type?) | select(.focused==true)'
bin: sway
bin: jq
tag: bar
shell: sh
aim: Share a directory as a local website
cmd: python3 -m http.server
note: Anyone can go to your computer's IP address and access all files in the current directory.
shell: sh
bin: python3
tag: tip
tag: network
tag: share
cmd: qrencode -t ansi "$(ip route show | grep -Pom1 'src \K[\d.]+')"
+ sudo python -m http.server 80
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: git
title: Setup git
tags:
- data
- setup
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: git-secret
title: "Review: git-secret"
tags:
- data
- git
+1
View File
@@ -2,6 +2,7 @@
title: newsboat
tags:
- RSS
- Setup
---
Create the configuration directory before you start, and add at least 1 URL.
+1
View File
@@ -3,6 +3,7 @@ title: Newsraft
tags:
- data
- RSS
- Setup
---
# Setup
+2 -1
View File
@@ -1,7 +1,8 @@
---
title: pass
title: Store passwords
tags:
- data
- Setup
- credentials
- secrets
requires:
+1
View File
@@ -10,5 +10,6 @@ requires:
- networking/nginx.md
---
- [Soft-Serve with https](soft-serve/commands.md)
- [Soft-Serve with https](soft-serve/soft_https.md)
- [Maintenance](soft-serve/soft_maintenance.md)
+29
View File
@@ -0,0 +1,29 @@
---
title: Soft-Serve Commands
tags:
- data
- git server
- CLI
requires:
- data/git.md
- networking/ssh.md
---
Some commands to try with an active soft server:
```sh
ssh -p 2222 splint.rs repo list
ssh -p 2222 splint.rs repo info nd6
ssh -p 2222 splint.rs repo tree nd6 /
ssh -p 2222 splint.rs repo info newsraft
ssh -p 2222 splint.rs repo tree newsraft main doc
ssh -p 2222 splint.rs repo tree mkdots all scripts
ssh -p 2222 splint.rs repo -cl cat mkdots all scripts/nb | less -R
```
+33 -11
View File
@@ -1,6 +1,5 @@
%rec: example
%key: name
%type: note line
name: Default systemd service file
filename: default.service
@@ -148,9 +147,7 @@ content: ### Variables
+
+ .PHONY: help
+ help:
+ @awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
+ sort | \
+ column -s ':' -t
+ @awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | + sort | + column -s ':' -t
+
+ .PHONY: check
+ check: ## Check you have the required dependencies
@@ -209,8 +206,7 @@ content: hdr = @printf "\n\033[37;1;4m%s\033[0m\n"
+ @printf "\033[36m%s\t" "done"
+ @printf "\033[0m %s " "Close $$(basename -s .md $(last_modified) | tr '_' ' ')"
+ @printf "\033[0m %s\n" "[$$(grep -Pom1 'title: \K.*' $(last_modified))]"
+ @awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
+ column -s ':' -t
+ @awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | + column -s ':' -t
+
+ $(closed_issues): closed/%.md: open/%.md
+ @git add $<
@@ -249,8 +245,34 @@ content: hdr = @printf "\n\033[37;1;4m%s\033[0m\n"
+ .PHONY: rundown
+ rundown: ## Summarize events
+ @printf "\033[33;5m# %s\033[0m\n" "Outstanding Calamities"
+ @$(foreach bug, $(wildcard open/*.md), \
+ a="$$(lowdown -X responsible $(bug))" && \
+ n="$$(echo $(bug) | cut -d_ -f2 | cut -d. -f1)" && \
+ t="$$(lowdown -X title $(bug))" && echo "$$n: $$t ($$a)" ;\
+ )
+ @$(foreach bug, $(wildcard open/*.md), + a="$$(lowdown -X responsible $(bug))" && + n="$$(echo $(bug) | cut -d_ -f2 | cut -d. -f1)" && + t="$$(lowdown -X title $(bug))" && echo "$$n: $$t ($$a)" ;+ )
name: RSS feed
filename: rss.xml
note: Only 'description', 'link', and 'title' are required.
+
+ Extra fields include 'textInput' (for a paragraph about the feed), 'skipHours' (for the hours to wait before refreshing), and 'language'.
content: <?xml version="1.0" encoding="UTF-8" ?>
+ <rss version="2.0">
+
+ <channel>
+ <title>{{title}}</title>
+ <link>{{url}}</link>
+ <generator>Recutils</generator>
+ <docs>https://www.w3schools.com/XML/xml_rss.asp</docs>
+ <skipDays>{{frequency}}</skipDays>
+ <description>{{description}}</description>
note: Output the next content field separately to produce multiple post items.
content: <item>
+ <guid>{{post_id}}</guid>
+ <category>{{post_category}}</category>
+ <pubDate>{{post_date}}</pubDate>
+ <title>{{post_title}}</title>
+ <link>{{url}}/{{post_link}}</link>
+ <description>{{post_description}}</description>
+ <source>{{post_source}}</source>
+ </item>
note: The last content field closes the XML tags opened in the first content field.
content: </channel>
+
+ </rss>
-17
View File
@@ -1,17 +0,0 @@
---
title: monitor
tags:
- hardware
---
See screen size
```sh
xrandr -q
```
Automatically configure:
```sh
xrandr --auto
```
+3 -1
View File
@@ -1,7 +1,9 @@
---
title: fail2ban
title: fail2ban for ssh
tags:
- networking
- system
- Setup
requires:
- networking/ssh.md
---
+49
View File
@@ -0,0 +1,49 @@
---
title: Remote Desktop between Sway
tags:
- networking
requires:
- networking/ssh.md
---
# On the Host
Install and run `wayvnc`.
```sh
export WAYLAND_DISPLAY=wayland-1
wayvnc
```
Only the `localhost` can access this (highly insecure) desktop sharing, at port 5900.
# On the Client
You'll need to disable your main modifier key on the client while accessing the host.
Edit `~/.config/sway/config`, and create a new `passthrough` mode where the modifier key does nothing.
```config
mode passthrough {
bindsym $mod+c mode default
}
bindsym $mod+c mode passthrough
```
Reload sway to make the changes take effect.
```sh
swaymsg reload
```
Use `ssh` to grab the host's port 5900.
```sh
ssh -L 5900:localhost:5900 ${remote_username}@${remote_ip}
```
Leave that session running, and connect with `vncviewer`:
```sh
vncviewer localhost:5900
```
+22
View File
@@ -0,0 +1,22 @@
---
title: New Sway Remote Desktop
tags:
- networking
requires:
- networking/remote_sway.md
---
Check the host is using only one display:
```sh
test "$WAYLAND_DISPLAY" = "wayland-1"
```
Start a new sway session, and a `wayvnc` session:
```sh
WLR_BACKENDS=headless WLR_LIBINPUT_NO_DEVICES=1 sway &
WAYLAND_DISPLAY=wayland-2 wayvnc
```
On the client, [connect as usual](networking/remote_sway.md).
+1 -2
View File
@@ -8,9 +8,8 @@ tags:
Try out basic ssh by accessing `git.charm.sh`, without needing authentication:
```sh
ssh git.charm.sh
ssh -t git.charm.sh
```
Start an ssh server to try it out.
+1 -1
View File
@@ -18,7 +18,7 @@ $(publish): .publish/%.md: %.md | .dbs/notes.rec .dbs/requires.fmt
cmds != recsel command.rec -t command -G bin -CP bin | sort -u
lists = $(patsubst %,.publish/lists/%.md, $(cmds))
get_title = printf 'title: %s\n' '${1}'
get_title = printf 'title: "Rundown: %s"\n' '${1}'
get_tags = recsel -t $(basename $<) $< -G bin \
-e 'bin = "$(1)"' -U -CP tag,bin | \
sed 's/.*/- &/'
-53
View File
@@ -1,53 +0,0 @@
---
title: mpd
tags:
- sound
---
# Setup
## Configuration
This is a minimum configuration file for /etc/mpd.conf
> music_directory "/var/lib/mpd/music"
>
> playlist_directory "/var/lib/mpd/playlists"
>
> db_file "/var/lib/mpd/mpd.db"
>
>
> pid_file "/run/mpd/mpd.pid"
>
> state_file "/var/lib/mpd/mpdstate"
>
>
> user "mpd"
>
> audio_output {
> type "pulse"
> name "My Pulse Output"
> }
>
> audio_output {
> type "fifo"
> name "my_fifo"
> path "/tmp/mpd.fifo"
> format "44100:16:2"
> }
You can use alsa instead of pulse, but don't unless you're on a Pi.
Since this is run as the mpd user, you'll need to grant that user pulse acceess, often with the user-group `pulse` or `pulse-access`, but your distro may vary.
```sh
sudo usermod -aG pulse-access mpd
```
Working with mpd will be easier if you have access to its files, so maybe:
```sh
sudo usermod -aG mpd $USER
```
-3
View File
@@ -4,9 +4,6 @@ tags:
- basics
- time
---
# Cronie
The `cronie` program is also known as `crond`.
## Install
+1
View File
@@ -6,6 +6,7 @@ tags:
- makefiles
- graphviz
- python
- Setup
requires:
- system/makefiles.md
---
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: Making Services
title: Make a Service
tags:
- systemd
---
@@ -4,6 +4,7 @@ tags:
- virtualization
- kubernetes
- minikube
- Setup
requires:
- virtualization/docker.md
---
+1 -1
View File
@@ -1,5 +1,5 @@
---
title: Proxy API
title: Kubernetes Proxy API
tags:
- virtualization
- kubernetes
+1 -1
View File
@@ -15,7 +15,7 @@ You would type a command to the computer, and it would type out any errors.
It would not waste paper, ink, and time by typing out `COMMAND RUN SUCCESSFULLY` after each command.
A silent machine meant a happy machine.
To fully appreciate `ed`, you should [slow down your terminal].
To fully appreciate `ed`, you should [slow down your terminal][slow].
[slow]: shell/slow.md