Compare commits

..

61 Commits
master ... vhs

Author SHA1 Message Date
30bc3b7055
Merge branch 'dev' into vhs 2025-02-14 13:06:12 +01:00
aa32bfc249
bibliographies with recfiles 2025-02-14 13:05:28 +01:00
fc88ab6200
recfile example 2025-02-13 17:39:55 +01:00
eaec01076b
ip addresses with recfiles 2025-02-13 17:39:38 +01:00
0abc2818e8
use title as db key 2025-02-13 03:52:15 +01:00
4250f619c3
unify kernel notes 2025-02-13 01:42:50 +01:00
4d53f7c7d6
rebuild on $dir/$file.md changes
Still not rebuilding on changes to $dir/$dir/$file.md.
2025-02-13 01:34:33 +01:00
38feabb79f
name fix 2025-02-13 01:16:24 +01:00
b4683a8681
add contents to databases 2025-02-13 00:08:34 +01:00
d2934bf8a3
recfile fixes 2025-02-12 23:01:50 +01:00
5afc414a52
small edits 2025-02-12 23:01:40 +01:00
d8b4a9d00b
stop duplicate db entries 2025-02-12 22:51:27 +01:00
a15b565e09
metadata fixes 2025-02-12 22:50:27 +01:00
6ccba626c8
edit git lfs 2025-02-12 17:46:59 +01:00
c95ad1076e
Merge branch 'dev' into vhs 2025-02-12 17:06:33 +01:00
8f5298bc2f
Merge branch 'dev' into vhs 2025-02-11 20:51:23 +01:00
dcfe955cfe
Merge branch 'dev' into vhs 2025-02-10 20:32:15 +01:00
1dc717bdc1
Merge branch 'dev' into vhs 2025-02-10 01:02:29 +01:00
fe5f856590
place tape in recfiles.md 2025-02-07 20:30:35 +01:00
987208d232
Merge branch 'dev' into vhs 2025-02-07 20:26:22 +01:00
d0d0ddf079
make recfiles tape 2025-02-07 20:24:45 +01:00
a26b9a8287
remove recfiles tape 2025-02-07 19:20:06 +01:00
6e9d2bd0c0
Merge branch 'dev' into vhs 2025-02-07 19:15:07 +01:00
5460e90137
Merge branch 'dev' into vhs 2025-01-17 19:23:42 +01:00
4cc4603b2e
Merge branch 'dev' into vhs 2025-01-14 05:05:49 +01:00
a8617fb5b1
Merge branch 'dev' into vhs 2024-12-16 00:44:45 +01:00
04814ff498
Merge branch 'dev' into vhs 2024-12-07 14:06:39 +01:00
7eea76f2be
Merge branch 'dev' into vhs 2024-12-05 16:28:34 +01:00
f3143876db
Merge branch 'master' into vhs 2024-11-28 17:08:54 +01:00
3457ed4c61
Merge branch 'dev' into vhs 2024-11-28 02:50:59 +01:00
786178195b
Merge branch 'master' into vhs 2024-08-13 19:05:17 +02:00
29bff234fd
place requirements for at tape 2024-08-07 18:01:34 +02:00
3e3e072623 Merge branch 'master' into vhs 2024-08-06 20:47:23 +01:00
a6907d7a91
Merge branch 'master' into vhs 2024-06-02 05:27:58 +02:00
3f98db3d3a
Merge branch 'dev' into vhs 2023-12-02 03:10:14 +01:00
17b90a54cb
Merge branch 'dev' into vhs 2023-09-23 09:29:51 +02:00
0587e9914a
place requirements for tapes 2023-09-14 19:06:16 +02:00
257ece871c
provide yes.tape 2023-09-14 19:05:47 +02:00
89ec9614e5
Merge branch 'dev' into vhs 2023-09-14 19:00:06 +02:00
6f8902ff8f
add lf tape 2023-09-04 21:06:03 +02:00
1eab64e1bc
Merge branch 'dev' into vhs 2023-09-04 20:29:11 +02:00
92f90b51f7
Merge branch 'dev' into vhs 2023-09-04 19:24:52 +02:00
b44d6b88ed
Merge branch 'dev' into vhs 2023-08-23 22:10:21 +02:00
23160b22ad
Merge branch 'dev' into vhs 2023-07-19 15:16:42 +02:00
fd2c44f49b
Merge branch 'dev' into vhs 2023-07-12 03:23:28 +02:00
8b599e2c77
Merge branch 'master' into vhs 2023-07-02 12:39:49 +02:00
4a9d2d61d2
Merge branch 'dev' into vhs 2023-06-20 15:08:40 +02:00
fda9fcdec4
unify sc-im formatting 2023-06-08 17:45:22 +02:00
395cb363db
place w3m gif in file 2023-06-08 16:34:33 +02:00
abc2add177
add w3m tape 2023-06-08 16:30:59 +02:00
2dbc7965da
Merge branch 'master' into vhs 2023-06-08 13:37:46 +02:00
4dd6c979b6
Merge branch 'dev' into vhs 2023-04-20 21:02:21 +02:00
8672905dc4
fix at.gif syntax 2023-04-13 22:23:05 +02:00
6a3703a2d0
add at tape 2023-04-13 06:18:57 +02:00
8bb0c57ddb
Merge branch 'master' into vhs 2023-04-13 06:17:15 +02:00
8994bbe0e2
include tapes in xbps 2023-04-11 14:02:51 +02:00
ea5ecad274
Merge branch 'master' into vhs 2023-04-11 14:02:28 +02:00
c6f2891003
add xbps tapes 2023-04-11 14:01:43 +02:00
46f538bbe8
Merge branch 'master' into vhs 2023-04-11 12:37:51 +02:00
f80bc47a24
fix path 2023-04-10 17:15:31 +02:00
6162bb1502
add which.tape 2023-04-10 17:09:30 +02:00
41 changed files with 763 additions and 175 deletions

View File

@ -4,6 +4,8 @@ EDITOR ?= vi
FZF != command -v sk || command -v fzy || command -v fzf || \
{ echo install a fuzzy finder && exit 1 ;}
spill_contents = sed -e '1,/---/d'
help: ## Print the help message
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
sort | \
@ -11,31 +13,38 @@ help: ## Print the help message
articles != find * -type f -name "*.md"
categories != ls -d */
dirs != ls -d */
categories = $(patsubst %/, %, $(dirs))
databases = $(patsubst %/, .dbs/%.rec, $(categories))
databases = $(patsubst %, .dbs/%.rec, $(categories))
default += $(databases)
$(databases): .dbs/%.rec: %/ | .dbs/
$(foreach dir, $(categories), \
$(eval .dbs/$(dir).rec: $(wildcard $(dir)/*)) \
)
$(databases): .dbs/%.rec: %/
$(info making $(@F))
mkdir -p $(@D)
@mkdir -p $(@D)
for entry in $(shell find $< -type f -name "*.md") ; do \
sed -n '2,/^---$$/ {/^---$$/d; p}' "$$entry" |\
sed -e 's/\[ //' -e 's/ \]//' |\
tr -d '"' ;\
printf "wordcount: %s\n" "$$(wc -w < $$entry)" ;\
printf "file: %s\n\n" "$$entry" ;\
done >> $@
done > $@
for entry in $(shell find $< -type f -name "*.md"); do \
recset $@ -e "file = '$${entry}'" -f wordcount --set-add="$$(wc -w < $${entry})" ;\
recset $@ -e "file = '$${entry}'" -f content --set-add="$$($(spill_contents) $${entry})" ;\
done
db.rec: $(databases)
printf '%s\n' '%rec: guide' > $@
printf '%s\n' '%key: title' >> $@
printf '%s\n' '%type: wordcount int' >> $@
printf '%s\n\n' '%sort: title' >> $@
cat $^ >> $@
recsel $^ >> $@
recsel $@ -e "requires != ''" -CR title,requires |\
while read title requires; do \
IFS=', ' && for provider in $$requires; do \

View File

@ -20,6 +20,7 @@ recsel db.rec -q gpg
recsel db.rec -e "title = 'ssh'"
recsel db.rec -e "title ~ 'ssh'"
recsel db.rec -e "title ~ 'bash'" -R title,wordcount
recsel db.rec -m 1 -P content | less -R
```
# Style

View File

@ -64,6 +64,8 @@ atrm 2
Check `/var/spool/atd/` to see the jobs.
![At it again](/tapes/at.gif)
## Automation
Automatically add a job for later, by setting the date, then using echo for the command.

42
basics/at.tape Normal file
View File

@ -0,0 +1,42 @@
Require at
Require atd
Sleep 500ms
Type "at teatime"
Enter
Sleep 1.5s
Type "./"
Sleep 500ms
Type "baskup.sh"
Sleep 1.5s
Enter
Sleep 1.5s
Ctrl+D
Sleep 3.5s
Type "atq"
Enter
Sleep 1.5s
Type "atq 1"
Sleep 500ms
Type "4"
Enter
Sleep 500ms
Type "at"
Sleep 1s
Type " -c 15"
Enter
Sleep 1.5s
Type "at"
Sleep 500ms
Type " "
Sleep 500ms
Type "-"
Sleep 500ms
Type "c 15 | grep PWD"
Enter
Sleep 5.5s
Type "atrm 15"
Sleep 2s
Enter
Sleep 3s
Ctrl+D

View File

@ -1,34 +0,0 @@
---
title: "kernel"
tags: [ "Basics" ]
---
## Living Space
Kernel modules live in lib/modules/$(uname -r)
## Change
Load them with
```bash
sudo modprobe ath9k
```
Or remove one with
```bash
sudo modprove uvcvideo
```
The PC's irritating speaker beep can be really annoying. Disable it with:
```bash
sudo modprobe -r pcspeaker
```
Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
```bash
echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
```

View File

@ -13,6 +13,8 @@ type -P ls
type -a cat
```
![where is cmus?](/tapes/which.gif)
# Whereis the Program
Where is `grep` and all its configuration files?

33
basics/which.tape Normal file
View File

@ -0,0 +1,33 @@
Require cmus
Type "whereis cmus"
Enter
Sleep 1s
Type "which cmus"
Enter
Sleep 500ms
Type "type /bin/cmus"
Enter
Sleep 5s
Type "man cmus"
Enter
Sleep 1s
Type " "
Sleep 1s
Type " "
Sleep 1s
Type " "
Sleep 500ms
Type " "
Sleep 1.5s
Type " "
Sleep 500ms
Type " "
Sleep 1.5s
Type " "
Sleep 500ms
Type " q"
Sleep 500ms
Type "cmus"
Sleep 3s
Ctrl+D

View File

@ -1,6 +1,6 @@
---
title: "Base 16"
tags: [ "Data" ]
tags: [ "data" ]
---
```bash

View File

@ -5,5 +5,10 @@ tags: [ "data", "calendar", "daylight savings" ]
## Setup
The UK government keeps an ics file with clock, [here](https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics).
The UK government keeps an `ics` file with clock.
```sh
wget https://www.gov.uk/when-do-the-clocks-change/united-kingdom.ics
calcurse -i united-kingdom.ics
```

View File

@ -9,10 +9,10 @@ Install `opensmtpd` (or similar), then `ncat` or `nc` or `netcat` (this mysterio
Start the `opensmtpd` service, then use netcat to speak with the mail-daemon:
```
```sh
nc localhost 25
```
The computer should respond with code `220`, which means 'I am listening'.
> 220 hex ESMTP OpenSMTPD
@ -40,7 +40,7 @@ Tell the mail daemon who you are in this format.
Then tell it who you're sending to.
```
```sh
RCPT TO: <www@dmz.rs>
```
@ -67,7 +67,7 @@ You will find the email under `/var/spool` or `/var/mail` or similar.
If unsure, just take a part of your email, like `FRAGMENT="turn off server please"`, then `grep` for it:
```bash
```sh
sudo grep -r $FRAGMENT /var/spool/*
```

View File

@ -1,17 +1,17 @@
---
title: "exiftool"
tags: [ "Metadata" ]
tags: [ "metadata", "exifdata" ]
---
Find metadata.
Find metadata:
```bash
exiftool image.jpg
```sh
exiftool "$file".jpg
```
Find info on all images in current directory.
Find info on all `.png` images in current directory.
```bash
```sh
exiftool -ext .png .
```
@ -19,22 +19,14 @@ You can make this recurring with the -r switch.
And overwrite all metadata:
```bash
```sh
exiftool -all= -overwrite_original -ext jpg .
```
(NB: This does not work on pdf data. See [here](pdf_erasure.md) for erasing all pdf data)
Or just GPS data:
```bash
```sh
exiftool -gps:all= *.jpg
```
You can also use the imagemagick tool:
```bash
identify -verbose
```

View File

@ -1,24 +1,72 @@
---
title: "git-lfs"
tags: [ "data" ]
tags: [ "data", "git" ]
---
Install, and add with
Git Large File Storage ('LFS') needs to change your `~/.gitconfig` to check out those binary files:
```bash
```sh
cat ~/.gitconfig
git lfs install
cat ~/.gitconfig
```
Then track some filetype with:
Then track some filetypes with:
```bash
git lfs track "\*.ttf"
```sh
cd $git_repository
ext=ttf
git lfs track "*.$ext"
```
Or a directory with:
```bash
```sh
git lfs track "images/"
```
All changes require adding `.gitattributes`.
Track the changes to `.gitattributes`:
```sh
git status
git add .gitattributes
git commit -m "add $ext to lfs"
```
## Bash Completion
If bash completion does not work, you'll have to add it:
```sh
git lfs completion bash | sudo tee /usr/share/bash-completion/completions/git-lfs
```
## Trouble Shooting
You have some file "$FILE".png, which has some problem.
Check the filetype:
```sh
file "$FILE".png
```
This should say the type is 'image'.
If it says the type is 'text', then this file is really just a reminder to `git-lfs` to check out that file.
Check `git-lfs` is expecting that file:
```sh
git lfs status
git lfs ls-files
```
...then try these commands, and check the filetype again:
```sh
git lfs fetch --all
git lfs fsck
git lfs checkout
git lfs status
```

View File

@ -1,5 +1,5 @@
---
title: "git"
title: "git subtree"
tags: [ "data", "git", "subtree" ]
---

View File

@ -1,6 +1,6 @@
---
title: "gpg"
tags: [ "data", "GPG" ]
tags: [ "data", "gpg" ]
---
- [Setup](gpg/basics.md)

View File

@ -1,5 +1,5 @@
---
title: "gpg"
title: "gpg with vim"
tags: [ "vim", "data", "GPG" ]
requires: [ "GPG Basics", "vim basics" ]
---

View File

@ -1,6 +1,6 @@
---
title: "groff"
tags: [ "Data" ]
tags: [ "data", "logic" ]
---
# Basic Documents

View File

@ -4,57 +4,49 @@ tags: [ "Data" ]
---
Get the basic config:
```bash
```sh
mkdir ~/.config/khard
```
```bash
```sh
cp /usr/share/doc/khard/examples/khard/khard.conf.example ~/.config/khard.conf
```
Short list
```bash
```sh
khard list
```
Longer list
```bash
```sh
khard show
```
Show from addressbook 'work'
```bash
```sh
khard list -a work
```
Make a new contact in address book 'family'
```bash
```sh
khard new -a family
```
```bash
```sh
khard edit grampa
```
```bash
```sh
khard remove bob
```
Move contact 'nina' from 'work' to 'home' address book.
```bash
```sh
khard move -a home nina -A work
```
## Advanced
Merge:
```bash
khard merge [-a source_abook] [-u uid|search terms [search terms ...]] [-A target_abook] [-U target_uid|-t target_search_terms]
```

View File

@ -1,42 +1,42 @@
---
title: "pass"
tags: [ "data" ]
requires: "GPG Basics"
---
[Video instructions](https://www.hooktube.com/watch?v=hlRQTj1D9LA)
Setup [gpg](./gpg.md) keys.
Show your gpg secret it:
```bash
```sh
gpg --list-secret-keys
```
Then use the id number under `sec` to make a pass repo:
```bash
```sh
KEY="$(gpg --list-secret-keys | grep -m 1 -A1 '^sec' | tail -n 1)"
```
```bash
```sh
pass init $KEY
```
To add a basic password, e.g. for `$WEBSITE`:
```bash
```sh
pass $WEBSITE
```
To insert a multiline password, e.g. with a login name:
```bash
```sh
pass add -m $WEBSITE
```
Remove a password:
```bash
```sh
pass rm $WEBSITE
```

View File

@ -2,7 +2,8 @@
title: "pdf to txt"
tags: [ "data", "pdf", "ocr" ]
---
How to translate pdf book images to text (results are very poor, and will need lots of corrections).
How to translate pdfs to text (results are very poor, and will need lots of corrections).
## Dependencies
@ -17,8 +18,8 @@ pdftoppm -png *file*.pdf test
```
```bash
for x in \*png; do
tesseract -l eng "$x" - >> *out*.txt
for x in *png; do
tesseract -l eng "$x" - >> out.txt
done
```

View File

@ -44,8 +44,13 @@ recset -f "$new_field" --delete $database
- [Extended example](recfiles/extended.md)
- [Playing with board games data](recfiles/Board_Games.md)
- [Playing with IP addresses](recfiles/IP_ASN.md)
- [Manage LaTeX Bibliographies](recfiles/bibliography.md)
- [Fixes](recfiles/recfixes.md)
# Resources
- [Recfiles for gemini capsules](gemini://tilde.town/~dozens/gemlog/21.gmi)
![Recfiles](/tapes/recfiles.gif)

16
data/recfiles/IP_ASN.md Normal file
View File

@ -0,0 +1,16 @@
---
title: "IP Addresses with Recfiles"
tags: [ "data", "recfiles", "games" ]
requires: "Recfiles"
---
## Download the Database
Download the csv data, and separate the ipv4 data from the ipv6.
```sh
curl -Lo ips.zip 'https://www.kaggle.com/api/v1/datasets/download/ipinfo/ipinfo-country-asn'
unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '\.'" > ipv4.rec
unzip -p ips.zip country_asn.csv | csv2rec | recsel -e "start_ip ~ '::'" > ipv6.rec
```

View File

@ -0,0 +1,121 @@
---
title: "Recfile Bibliography for TeX"
tags: [ "data", "database", "recfiles", "tex" ]
requires: [ "Recfiles", "TeX", "Makefile" ]
---
Store your bibliography in a `recfile` database, then extract any part with `make`.
For example, you could store books like this in `bibliography.rec`:
```recfile
%rec: book
%key: slug
slug: thinkingexperience
author: H. H. Price
title: Thinking and Experience
year: 1953
publisher: Harvard University Press, Cambridge
slug: inventingrightwrong
author: John Leslie Mackie
title: Inventing Right and Wrong
year: 1997
publisher: Penguin Books, England
```
Run `make book` to extract `book.bib`, ready for LaTeX to use:
```bib
@book{thinkingexperience,
author = {H. H. Price},
title = {Thinking and Experience},
year = {1953},
publisher = {Harvard University Press, Cambridge},
}
@book{inventingrightwrong,
author = {John Leslie Mackie},
title = {Inventing Right and Wrong},
year = {1997},
publisher = {Penguin Books, England},
}
```
The `makefile` syntax is just a few lines (though admittedly employs some garbled shell-crud):
```make
bibs != grep -Po '%rec: \K.*' bibliography.rec
bibfiles = $(patsubst %, %.bib, $(bibs))
$(bibfiles): %.bib: bibliography.rec
recsel $< -t $(basename $@) |\
sed 's/slug: \(.*\)/@$(basename $@){\1,/g' |\
sed 's/^\(\b.*\b\): \(.*\)/ \1 = {\2},/gI' |\
sed 's/^$$/}\n/g' > $@
echo '}' >> $@
```
Here's a longer `bibliography.rec` file, which can also produce `article.bib`:
```recfile
%rec: book
%key: slug
%type: year int
%constraint: year > -2000
%sort: year month
slug: thinkingexperience
author: H. H. Price
title: Thinking and Experience
year: 1953
publisher: Harvard University Press, Cambridge
slug: inventingrightwrong
author: John Leslie Mackie
title: Inventing Right and Wrong
year: 1997
publisher: Penguin Books, England
slug: metaphysicscontemporaryintro
author: Michael J. Loux
title: Metaphysics: A Contemporary Introduction
year: 1998
publisher: Routledge, London
slug: pluralityworlds
author: David Lewis
title: On the Plurality of Worlds
publisher: Blackwell Publishing, Oxford
year: 2001
%rec: article
%key: slug
%sort: year month
slug: genuinerealisttheory
author: John Divers
title: A Genuine Realist Theory of Advanced Modalizing
year: 1999
pages: 217240
month: april
journaltitle: Mind
uri: https://academic.oup.com/mind/article-abstract/108/430/217/975258?redirectedFrom=fulltext
volume: 108
publisher: Harvard University Press, Cambridge
slug: twokindsmentalrealism
author: Tam\'{a}s Demeter
title: Two Kinds of Mental Realism
year: 2009
pages: 40:59-71
uri: https://www.researchgate.net/profile/Tamas_Demeter2/publication/41554923_Two_Kinds_of_Mental_Realism/links/0deec53247f5a4ae21000000.pdf
month: august
journaltitle: Journal for General Philosophy of Science
volume: 30
publisher: Harvard University Press, Cambridge
```

View File

@ -0,0 +1,68 @@
Require recins
Set Shell "bash"
Set TypingSpeed 0.1
Set FontSize 25
Set Width 900
Set Height 700
Enter
Type "touch games.rec"
Enter
Sleep 2s
Type 'recins --record "Name: Vojvodina" games.rec'
Enter
Sleep 2s
Type 'recsel games.rec'
Enter
Sleep 2s
Type 'for g in Saboter Carcassonne Chess; do recins -r "Name: $g" games.rec; done'
Enter
Type 'recsel games.rec'
Enter
Sleep 2s
Type 'cat games.rec'
Enter
Sleep 1s
Type 'recsel --quick=Carc games.rec'
Enter
Type 'recsel -q Carc games.rec'
Enter
Sleep 2s
Type 'recsel -q "sabot" --print=Name games.rec'
Enter
Sleep 1s
Type 'recsel --case-insensitive -q "sabot" --print=Name games.rec'
Enter
Sleep 2s
Type 'recsel -i -q "chess" -p Name games.rec'
Enter
Sleep 1s
Type 'recset -f "Played" --set-add="no" games.rec'
Enter
Type 'recsel games.rec'
Enter
Sleep 1s
Type 'recset -iq chess -f "Played" --set=yes games.rec'
Enter
Type 'recsel games.rec'
Enter
Sleep 1s
Type 'recset -f "Played" --delete games.rec'
Enter
Type 'recsel games.rec'
Enter
Hide
Type 'rm games.rec'
Enter
Sleep 3s

33
data/recfiles/recfixes.md Normal file
View File

@ -0,0 +1,33 @@
---
title: "Recfixes"
tags: [ "data", "recfiles" ]
requires: "Recfiles"
---
Sometimes `recsel` chokes on a large query, and you need to break the query into chunks with a pipe.
This Kickstarter file has 374,853 records.
Here's the chonky query:
```sh
recsel kick.rec -e "Category = 'Games'" -p "Subcategory,Avg(Goal)" -G Subcategory
```
It breaks down like this:
| Chunk | Meaning |
|:-----------------------------:|:---------------------------------------------:|
| `recsel kick.rec` | Select records from `kick.rec` |
| `-e "Category = 'Games'"` | Select only records where Category = 'Games' |
| `-p "Subcategory,Avg(Goal)"` | Print the Subcategory and average goal |
| `-G "Subcategory"` | Group by subcategory |
Two ways to break the query apart:
```sh
recsel kick.rec -e "Category = 'Games'" | recsel -p "Subcategory,Avg(Goal)" -G "Subcategory"
recsel kick.rec -e "Category = 'Games'" > games.rec
recsel games.rec -p "Subcategory" -G "Subcategory"
```

View File

@ -47,6 +47,7 @@ echo 'set autowrap' >> .config/sc-im/scimrc
|:----------------------|:---:|
| text (left align) | < |
| text (right align) | > |
| text (right align) | `|` |
| Edit existing text | E |
### Meta Actions
@ -61,6 +62,26 @@ echo 'set autowrap' >> .config/sc-im/scimrc
| paste with format | Pc |
| delete a cell | x |
# Movement
| Action | Key |
|:-------------------------------:|:---:|
| highest part | H |
| lowest part | L |
| top | gg |
| move right | g$ |
| move left | g0 |
| insert middle | \ |
| insert left | \> |
| insert right | < |
| to to cell b4 | b4 |
| see all text in cells | aa |
| format cells so you can see it. | f |
| format wider right | fl |
| format smaller left | fh |
| format wider down | fj |
| format smaller down | fk |
### Functions

View File

@ -19,3 +19,4 @@ w3m ddg.gg
| T | new tab |
| { / } | switch tabs |
![w3m browser](/tapes/w3m.gif)

43
data/w3m.tape Normal file
View File

@ -0,0 +1,43 @@
Require w3m
Sleep 1s
Type "w3m ddg.gg"
Sleep 500ms
Enter
Sleep 1.5s
Tab
Enter
Type "cats"
Enter
Sleep 2s
Tab
Enter
Sleep 2s
Type "jjjjjjjjjjjj"
Tab
Enter
Sleep 2s
Type "U"
Sleep 500ms
Ctrl+U
Sleep 500ms
Type "dmz.rs"
Sleep 500ms
Enter
Sleep 4.5s
Type "jjjjjjjj"
Tab
Type "j"
Sleep 500ms
Enter
Sleep 1s
Type " "
Sleep 2s
Backspace
Sleep 500ms
Type " "
Sleep 1.5s
Type " "
Sleep 2s
Type "qy"
Sleep 500ms

View File

@ -1,6 +1,6 @@
---
title: "fonts"
tags: [ "distros" ]
title: "Ach Linux GPU Setup"
tags: [ "arch", "GPU" ]
---
# Step 1: Multilib
@ -60,4 +60,3 @@ You should see 'true' here.
```bash
sudo pacman -S --needed lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader xf86-video-amdgpu
```

View File

@ -0,0 +1,28 @@
Require xbps-query
Require xbps-install
Set Shell "bash"
Set FontSize 20
Set Width 1400
Set Height 900
Type "sudo xbps-install --sync" Enter Sleep 700ms Enter
Type "sudo xbps-install --update --yes" Sleep 700ms
Backspace 33
Type "echo same but faster!" Sleep 200ms Enter
Type "sudo xbps-install -uy" Enter Sleep 700ms
Type "echo now we just download" Sleep 2s Enter
Type "sudo xbps-install -SD --yes" Sleep 700ms Enter
Type "echo and install from the downloaded updates..." Sleep 2s Enter
Type "sudo xbps-install -Du" Sleep 700ms Enter
Sleep 4s

View File

@ -0,0 +1,64 @@
Require xbps-query
Require xbps-install
Set Shell "bash"
#Set FontSize 20
#Set Width 1400
#Set Height 900
#Hide
#
#Type "sudo xbps-remove -y cowsay xcowsay aerc"
Show
Type "xbps-query cows" Enter Sleep 1s
Type "nothing..."
Backspace 11
Type "xbps-query --search cows" Sleep 500ms Enter
Type "xbps-query --repository --search cows" Sleep 500ms Enter
Type "echo same but faster!" Sleep 200ms Enter
Type "xbps-query -Rs cows" Sleep 500ms Enter
Sleep 3s
Type "sudo xbps-install -y xcowsay" Enter Sleep 700ms Enter
Sleep 5
Type "xbps-query --repository --search 'email'" Sleep 300ms Enter
Type "too much...." Sleep 1s
Backspace 13
Sleep 1s
Type "xbps-query -R --search '^email'" Sleep 300ms Enter
Sleep 2s
Type "xbps-query -Rs --regex '^email terminal'" Sleep 300ms Enter
Type "???" Sleep 2s
Backspace 3
Sleep 3s
Type "regex first!" Sleep 2s
Backspace 12
Type "xbps-query --regex -Rs '^email.*terminal'" Sleep 300ms Enter Sleep 900ms
Type "xbps-query --regex -Rs '^terminal.*email'" Sleep 300ms Enter Sleep 900ms
Type "sudo xbps-install aerc" Enter Sleep 300ms Enter Sleep 2s

View File

@ -0,0 +1,28 @@
Require xbps-query
Require xbps-install
Set Shell "bash"
#Set FontSize 20
#Set Width 1400
#Set Height 900
Type "sudo xbps-remove --yes thunderbird" Enter Sleep 2s
Type "time to kill orphans" Sleep 600ms
Backspace 21
Enter
Type "xbps-remove --remove-orphans --dry-run" Sleep 700ms
Backspace 38
Enter
Type "xbps-remove -on | cowsay" Sleep 300ms Enter Sleep 1.5s
Type "sudo xbps-remove --yes -o" Sleep 700ms Enter
Sleep 2s

View File

@ -22,6 +22,8 @@ Search with regex:
xbps-query --regex -Rs 'cow(s)?\w'
```
![xbps searches](/tapes/xbps-query.gif)
List what's required for cowsay
```bash
@ -68,6 +70,8 @@ Upgrade current packages.
xbps-install -Suv
```
![xbps searches](/tapes/xbps-install.gif)
## Remove/ Uninstall
Remove cowsay
@ -90,6 +94,8 @@ xbps-remove -o
Show information about cowsay
![xbps searches](/tapes/xbps-remove.gif)
## Fixes
Reinstall cowsay

View File

@ -9,7 +9,7 @@ This works everywhere, including in a bare-ass tty.
Select a keymap, and create a new custom map.
```bash
```sh
su root
basemap=/usr/share/kbd/keymaps/i386/qwerty/pl1.map.gz
@ -22,7 +22,7 @@ gunzip -c $basemap | \
Tell the system to use this keymap at startup by naming it in the `rc.conf` file:
```bash
```sh
echo "KEYMAP=$newmap" >> /etc/rc.conf
cat /etc/rc.conf
@ -33,24 +33,24 @@ reboot
Set layout to British English.
```bash
```sh
setxkbmap -layout gb
```
Or Polish with:
```bash
```sh
setxkbmap -layout pl
```
| Language | short |
|:--------|:------|
| Polish | pl |
| Serbian | rs |
|:---------|:------|
| Polish | `pl` |
| Serbian | `rs` |
Set 'alt + shift', as the command which cycles through the British English, Polish and Serbian keyboard layout.
```bash
```sh
setxkbmap -layout gb,pl,rs -option grp:alt_shift_toggle
```

View File

@ -1,7 +1,8 @@
---
title: "wifi"
title: "network"
tags: [ "Networking" ]
---
# Netstat Stuff
Stats on local net usage within domain.

View File

@ -1,6 +1,6 @@
---
title: "wireguard"
tags: [ "Networking", "VPN" ]
tags: [ "networking", "VPN" ]
---
<!--
from
@ -11,25 +11,22 @@ https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/
Install `wireguard-tools` on the server.
```bash
sudo -i
```
```bash
```sh
su root
cd /etc/wireguard
```
umask 077
```bash
```sh
wg genkey | tee server_private_key | wg pubkey > server_public_key
```
```bash
```sh
wg genkey | tee client_private_key | wg pubkey > client_public_key
```
```bash
```sh
echo "
[Interface]
Address = 10.0.0.1/24
@ -46,20 +43,20 @@ wg genkey | tee client_private_key | wg pubkey > client_public_key
" > /etc/wireguard/wg0.conf
```
```bash
```sh
echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/wg.conf
```
```bash
```sh
systemctl enable --now wg-quiqck@wg0
```
```bash
```sh
chown -R root:root /etc/wireguard/
```
```bash
chmod -R og-rwx /etc/wireguard/\*
```sh
chmod -R og-rwx /etc/wireguard/*
```
Forward traffic from port 51900 to the server.
@ -72,7 +69,9 @@ Install `wireguard-tools` on the client.
Copy the client private key and server public key to the server (or just fill in the variables).
> server_ip=*your server's public ip*
```sh
server_ip=$PUBLIC_IP
echo "
[Interface]
@ -86,7 +85,9 @@ Copy the client private key and server public key to the server (or just fill in
AllowedIPs = 0.0.0.0/0, ::/0
" > /etc/wireguard/wg0-client.conf
> wg-quick up wg0-client
wg-quick up wg0-client
```
## Extras
@ -98,6 +99,6 @@ Add multiple peers by copying the `[peer]` section (they each get called `peer`)
Make a standard client configuration, then:
```bash
```sh
qrencode -t ansiutf8 < /etc/wireguard/mobile_user.conf
```

View File

@ -1,60 +1,63 @@
---
title: "wireless"
tags: [ "Networking" ]
tags: [ "networking" ]
---
# Check wifi's working
```bash
Check wifi's working
```sh
lspci -k
```
Or for usb wifi:
```bash
```sh
dmesg | grep usbcore
```
...and hopefully it'll say the new interface is registered.
# Check if a wifi interface has been created
Check if a wifi interface has been created
```bash
```sh
ip link
```
or
...or
```bash
```sh
iw dev
```
Assuming it's wlan0, bring it up with
```bash
```sh
ip link set wlan0 up
```
Error messages probably means your wireless chipset requires a firmware to function. In this case, check the kernel messages for firmware being loaded
```bash
```sh
dmesg | grep firmware
```
# Utilities
iw doesn't do wpa/wpa2. wpa_supplicant does everything. iwd does everything except WEXT encryption.
- `iw` doesn't do wpa/wpa2.
- `iwd` does everything except WEXT encryption.
- `wpa_supplicant` does everything.
# Connecting
Get the link status:
```bash
```sh
iw dev wlan0 link
```
Scan for available points:
```bash
```sh
iw dev wlan0 scan
```

View File

@ -3,55 +3,55 @@ title: "wpa_supplicant"
tags: [ "Networking" ]
---
wpa_supplicant configurations are stored in /etc/wpa_supplicant/wpa_supplicant-wlan0 (or equivalent).
`wpa_supplicant` configurations are stored in `/etc/wpa_supplicant/wpa_supplicant-wlan0` (or equivalent).
## WiFi Connection
```bash
```sh
wpa_cli
```
Once in, scan the network, add an empty place to store credentials, then input them.
```bash
```sh
scan
```
```bash
```sh
scan_results
```
```bash
```sh
add_network
```
This outputs a network number, e.g. '3'. This is the new network you'll work with.
```bash
```sh
set_network *3* ssid *"Kosachok Cafe"*
```
```bash
```sh
set_network 3 psk *"Kosachok2019"*
```
OR (for no password)
```bash
```sh
set_network *3* key_mgmt NONE
```
```bash
```sh
enable_network 3
```
```bash
```sh
save_config
```
This takes a while to connect, so to speed things up, restart the service:
```bash
```sh
sudo sv restart wpa_supplicant
```
@ -59,13 +59,13 @@ sudo sv restart wpa_supplicant
You can script like this:
```bash
```sh
wpa_cli add_network
```
That returns an ID, so you can say:
```bash
```sh
newNetwork="$(wpa_cli add_network)"
```
@ -73,19 +73,19 @@ Then `$newNetwork` would equal that number, and you can add/ remove networks wit
But remember to escape the quotes, so adding a network would be:
```bash
```sh
wpa_cli set_network *3* psk *\""passphrase"\"*
```
## Generating Keys Manually
```bash
```sh
wpa_passphrase [ssid] [password]
```
For example:
```bash
```sh
wpa_passphrase 'Cafe Kosachok' 'Kosachok2019'
```
@ -95,8 +95,11 @@ If you encounter problems, you will probably need to delete the old device pid i
Next up, start wpa_supplicant:
```bash
```sh
wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant-wlan0
```
The -B flag runs this as a background process. Remove this to see real-time output in order to solve problems. The -i flag denotes the physical device used for the wifi. The -c flag points to the configuration file for use.
The `-B` flag runs this as a background process.
Remove this to see real-time output in order to solve problems.
The `-i` flag denotes the physical device used for the wifi.
The `-c` flag points to the configuration file for use.

View File

@ -1,5 +1,5 @@
---
title: "Makefiles"
title: "make help target"
tags: [ "system", "make", "help" ]
---

View File

@ -1,8 +1,36 @@
---
title: "kernel"
title: "kernel modules"
tags: [ "system" ]
---
Kernel modules live in lib/modules/$(uname -r)
## Change
Load them with
```sh
modprobe ath9k
```
Or remove one with
```sh
modprove uvcvideo
```
The PC's irritating speaker beep can be really annoying. Disable it with:
```sh
modprobe -r pcspeaker
```
Permanently disable a module by blacklisting it in `/etc/modprobe.d`:
```sh
echo 'blacklist pcspkr' > /etc/modprobe.d/*nobeep*.conf
```
Check which kernel modules are loaded into memory:
```sh

View File

@ -3,6 +3,8 @@ title: "lf - The Light File Manager"
tags: [ "File Browser", "TUI" ]
---
![lf](/tapes/lf.gif)
## Config File
If you don't have a `~/.config/lf/lfrc` file, you can probably find an example in `/usr/share/examples/lf`.

24
system/lf.tape Normal file
View File

@ -0,0 +1,24 @@
Require lf
Set Shell "bash"
Set FontSize 12
Set Width 800
Set Height 600
Type "lf"
Sleep 1.5s
Enter
Sleep 1.5s
Type "jjj"
Sleep 1s
Enter
Sleep 2s
Type "fortune > file"
Enter
Sleep 2s
Enter
Type "/file"
Enter
Sleep 3s
Type "q"