initial commit

This commit is contained in:
AustrianToast 2024-10-21 22:52:33 +02:00
parent abb2282343
commit ac88efbb9b
Signed by: AustrianToast
GPG Key ID: 1B4D0AAF6E558816
15 changed files with 990 additions and 0 deletions

7
.obsidian/app.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"newLinkFormat": "shortest",
"useMarkdownLinks": true,
"showUnsupportedFiles": true,
"attachmentFolderPath": "./",
"promptDelete": false
}

8
.obsidian/appearance.json vendored Normal file
View File

@ -0,0 +1,8 @@
{
"accentColor": "",
"cssTheme": "Ukiyo",
"textFontFamily": "",
"theme": "moonstone",
"monospaceFontFamily": "Hack",
"baseFontSize": 20
}

30
.obsidian/core-plugins-migration.json vendored Normal file
View File

@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}

30
.obsidian/core-plugins.json vendored Normal file
View File

@ -0,0 +1,30 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}

3
.obsidian/daily-notes.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"autorun": true
}

22
.obsidian/graph.json vendored Normal file
View File

@ -0,0 +1,22 @@
{
"collapse-filter": true,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}

7
.obsidian/themes/Ukiyo/manifest.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"name": "Ukiyo",
"version": "2.3.2",
"minAppVersion": "1.0.0",
"author": "kinmury",
"authorURI": "https://github.com/kinmury/obsidian-ukiyo"
}

478
.obsidian/themes/Ukiyo/theme.css vendored Normal file

File diff suppressed because one or more lines are too long

199
.obsidian/workspace.json vendored Normal file
View File

@ -0,0 +1,199 @@
{
"main": {
"id": "3b1350090083c35b",
"type": "split",
"children": [
{
"id": "c070334a11181ae1",
"type": "tabs",
"children": [
{
"id": "8b669fe838f51401",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Reasons why I use Obsidian.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Reasons why I use Obsidian"
}
}
]
}
],
"direction": "vertical"
},
"left": {
"id": "2f948c89e91b2b1f",
"type": "split",
"children": [
{
"id": "737a9832bd3544c6",
"type": "tabs",
"children": [
{
"id": "11dccb20e4fc4f35",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
"id": "0e049eebf730bc4b",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "tag:#warning",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Search"
}
},
{
"id": "38e455407c61bdb2",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
}
],
"direction": "horizontal",
"width": 287.5
},
"right": {
"id": "0bfa8326f85831ec",
"type": "split",
"children": [
{
"id": "4bfd5b1a8c7ba56d",
"type": "tabs",
"children": [
{
"id": "c25b13aa53abe4d3",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "Beehive.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Backlinks for Beehive"
}
},
{
"id": "154673b615c4160f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "Beehive.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Outgoing links from Beehive"
}
},
{
"id": "e8bb84fe228c7dbf",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "d7c450af99edeb10",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "Beehive.md"
},
"icon": "lucide-list",
"title": "Outline of Beehive"
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
"switcher:Open quick switcher": false,
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"templates:Insert template": false,
"command-palette:Open command palette": false
}
},
"active": "8b669fe838f51401",
"lastOpenFiles": [
"Framework.md",
"Beehive.md",
"Speech synthesis.md",
"Updating.md",
"Satan.md",
"Reasons why I use Obsidian.md",
"Knowledge Base/labwc.md",
"Knowledge Base",
"Hentai.md",
"Lutz.md",
"FHTW/KOKO/2024-09-25.md",
"FHTW/KOKO",
"FHTW/MACS/2024-09-23.md",
"FHTW/Technical English/2024-09-24.md",
"FHTW/Technical English",
"FHTW/MACS",
"FHTW",
"Technical English.md",
"NVS.md",
"The funny.md",
"Bee.md",
"Untitled 1",
"Personal/Major systematic changes to Hentai.md",
"Personal/Beehive.md",
"Personal/Updating.md",
"Inhaltsverzeichnis.md",
"Datei upload.md",
"Schnittstellen.md",
"XML vs JSON.md",
"Probleme.md",
"Chunking.md",
"Personal"
]
}

69
Beehive.md Normal file
View File

@ -0,0 +1,69 @@
#note Serial Number (SN) taken from output of `ls /dev/disk/by_id`
Drive Positions inside Case (Top to Bottom)
1. SN: ZDHA12Q8
2. SN: ZDHAQ59P
3. SN: ZHZ61CYE (only in for backups)
4. SN: ZR144EQN
## Backup Strategy
- weekly [incremental backups](https://xai.sh/2018/08/27/zfs-incremental-backups.html) send to hsmr
- I should consider automatically creating daily snapshots
## Systemd
- enabled
- sshd.service
- nfs-server.service
- fstrim.timer
- paccache.timer
- docker.service
- zfs-scrub@data.timer
- zfs-mount.service
## etc
- `/etc/ssh/sshd_config`
- PasswordAuthentication: no
- PubkeyAuthentication: yes
- `/etc/pacman.conf`: added `NetworkManager` to `HoldPkg`. `NetworkManager` is needed for internet.
## ZFS
https://wiki.archlinux.org/title/ZFS#Scrubbing
#important I need to at least monthly scrub hsmr manually
### zpools
- data
- SN: ZDHA12Q8
- SN: ZDHAQ59P
- SN: ZR144EQN
- hsmr
- SN: ZHZ61CYE
### common commands
Generally, you use the zpool command if you wanna work with pools and you use the zfs command if you wanna work with datasets. There are some exceptions to this.
To get a list of all importable pools.
```bash
zpool import
```
You can either import all or a specific pool. To export, you just replace import with export.
```bash
zpool import [-a|<poolname>]
```
If the pool wasn't auto-mounted, then you can use this. To unmount, you just need to replace mount with unmount.
```bash
zfs mount [-a|<poolname>]
```
To get a list of all datasets
```bash
zfs list
```
To get a list of all snapshots
```bash
zfs list -t snaphots
```
To create a recursive snapshot. A recursive snapshot means to also create a snapshot of all child datasets. #todo complete date command
```bash
zfs snapshot -r data@$(date +'%Y-%m-%dT%H:%M:%S')
```
To send a recursive snapshot to another zfs pool
```bash
zfs send -RI data@<some older date> data@<some newer date> | zfs send -Fu hsmr/data
```

1
Framework.md Normal file
View File

@ -0,0 +1 @@
I am currently in the process of a fresh re-install

14
Knowledge Base/labwc.md Normal file
View File

@ -0,0 +1,14 @@
## Description
[Labwc](https://labwc.github.io/) is a [[wlroots]]-based [[stacking compositor]] for [[wayland]]. It is very similar to [[openbox]]. Labwc uses the openbox 3.6 specification for the configuration files.
## Configs and Themes
### Locations
- configs => `XDG_CONFIG_HOME/labwc`
- [rc.xml](https://github.com/labwc/labwc/blob/master/docs/rc.xml.all)
- [menu.xml](https://github.com/labwc/labwc/blob/master/docs/menu.xml)
- [autostart](https://github.com/labwc/labwc/blob/master/docs/autostart)
- [shutdown](https://github.com/labwc/labwc/blob/master/docs/shutdown)
- [environment](https://github.com/labwc/labwc/blob/master/docs/environment)
- [themerc-override](https://github.com/labwc/labwc/blob/master/docs/themerc)
- themes => `XDG_DATA_{DIRS,HOME}/themes/<theme-name>/openbox-3/`

View File

@ -0,0 +1 @@
I want to use Obsidian for documentation purposes and to write down everything I know. I mostly document things like my NAS, PC, Laptop and random projects. For now I haven't really written down any of my knowledge about IT, Linux or any other field.

105
Satan.md Normal file
View File

@ -0,0 +1,105 @@
## Systemd
- enabled:
- fstrim.timer
- paccache.timer
- --user syncthing.service
- systemd-networkd
- disabled:
- none
- shadowed:
- none
## Firefox
To enable hardware acceleration, VA-API is needed. For my AMD GPU, I installed `libva-mesa-driver`. [Reference](https://wiki.archlinux.org/title/Hardware_video_acceleration)
Then in Firefox you type 'about:config' into the search bar. This should open a configuration menu with a search bar at the top. I set `media.ffmpeg.vaapi.enabled` to true. [Reference](https://wiki.archlinux.org/title/Firefox#Hardware_video_acceleration)
## System settings
- Input & Output
- Mouse & Touchpad
- Screen Edges
- Corner and Edge barrier: disabled
- Sound
- Line Out (Headset): Analog Stereo Output
- Navi 21/23 HDMI/DP Audio Controller (Monitor): Off
- Digital Input (Mic): Digital Stereo (IEC958) Input
- Accessibility
- Shake Cursor: disabled
- Apps & Windows
- Default Applications
- PDF viewer: Firefox Web Browser
- Window Management
- Desktop Effects
- Sheet: enabled
- Translucency: enabled
- Dim Screen for Administrator Mode: enabled
- Virtual Desktop Switching Animation: Fade Desktop
- Window Open/Close Animation: Fade
- Workspace
- Search
- File Indexing: disabled (delete prompt after disabling)
- Security & Privacy
- Recent Files: disabled and cleared history
- System
- Power Management
- After a period of inactivity: Do nothing
- Change screen brightness: 1%
- Dim automatically: Never
- Turn of screen: Never
## Desktop
- Taskbar
- Panel height: 34
- Visibility: dodge windows
- Digital Clock
- Show seconds: Always
- Date format: ISO date
- Widgets
- Fuzzy Clock to Left Monitor at the top left
## GPG Key
You first generate the key by using the following command.
```bash
gpg --full-generate-key
```
After this step you need to figure out your id.
```bash
gpg --list-secret-keys --keyid-format=long
```
The necessary key is the part after the / in the sec part.
```bash
gpg --armor --export <id>
```
Then I followed the instructions in Gitea for the rest. For the verification part, I needed to use a fix because it errors out. The fix can be found in the `etc` section.
## Git
```bash
git config --global user.name AustrianToast
git config --global user.email "austriantoast@hopeless-cloud.xyz"
git config --global user.signingkey 1B4D0AAF6E558816
git config --global commit.gpgsign true
```
I used ksshaskpass as a credentials helper. The necessary config lives at `~/.config/environment.d/git_askpass.conf`. Now my git credentials are stored in Kwallet.
To store and use the gpg passphrase in kwallet, I needed to tell gpg that I wanted to use a specific program for the gpg-agent. [Reference](https://wiki.archlinux.org/title/GnuPG#pinentry)
`~/.gnupg/gpg-agent.conf`
```
pinentry-program /usr/bin/pinentry-qt
```
But because of random KDE bullshit, I needed to modify a specific environment variable. I set `PINENTRY_KDE_USE_WALLET` to **any** non-empty value and I mean this quite literally.
## ZSH
For fancy ZSH, I mostly followed [this guide](https://bookstack.hopeless-cloud.xyz/books/zsh/page/setup). The only change is that I didn't go for powerlevel10k, because it is now only community maintained and I wanted to try something different. So I went with starship instead. Useful links:
- https://starship.rs/presets/nerd-font
- https://starship.rs/presets/bracketed-segments
## Random
I added myself to the following groups.
- docker: So I don't need to use sudo for docker
- uucp: Needed so I can upload programs to my esp32 inside Arduino IDE
```bash
sudo usermod -aG docker uucp <username>
```
## Yakuake
I added transparency to yakuake by doing the following: [Reference](https://www.reddit.com/r/kde/comments/7zy11k/transparent_yakuake)
Right-click the shell -> "modify current Profile" -> Appearance -> "Edit" button at the right -> Background transparency slider -> 20%.
I also the width to 80% and set the height to 50%. I also hid the borders.

16
Speech synthesis.md Normal file
View File

@ -0,0 +1,16 @@
## Goal
The goal is to write a text to speech program, where all sounds are purely created through mathematical equations, in order to create my own true 100% machine speech synthesis.
## Planning
### Language
The language is one of the most important aspects of this program and as such needs to be carefully chosen. The possible languages from which I wanted to choose from where German, English or Japanese.
In order to help me which of those three languages I should choose, I came up with these requirements.
- Small alphabet in order to minimise the amount of code required
- Individual letters stitched into words together require no further processing in order to be understandable
- The words need to be understandable even without proper or any emphasising at all
I speak German and English fluently and they have a relatively small alphabet. In the end, I chose Japanese, because it may have a way bigger alphabet, but at least it is consistent in the way different combinations of letters create words.
### Programming Language
There are a many options, but to help narrow it down, I came up with these requirements.
- functional programming (pure functions)
- compiles to ELF