1
0
mirror of https://github.com/tiyn/wiki.git synced 2026-01-11 09:09:45 +01:00

Compare commits

...

65 Commits

Author SHA1 Message Date
5849b76ee8 markup/latex: setup background color 2026-01-10 04:20:52 +01:00
620f57beb8 added gimp as standalone article 2026-01-05 17:11:23 +01:00
47081f9ab6 added vencord as standalone article 2026-01-05 17:07:26 +01:00
c070ba1d7b linux/pacman: error with database files added 2026-01-05 15:32:40 +01:00
90c8863021 linux/nvidia: pascal-gpu usage 2026-01-01 16:37:05 +01:00
f73e7d8ecc linux/suckless: link dwl 2025-12-23 14:52:35 +01:00
93479aa78d x: added compose key 2025-12-23 08:24:28 +01:00
ac608e09b8 markup languages: included, linked and expanded LaTeX 2025-12-23 03:21:50 +01:00
3d8f4c11c9 fixed typos 2025-12-23 03:13:49 +01:00
866cad47e1 nim: added modules 2025-12-23 03:13:36 +01:00
f82ba017c1 hailo: explained setup better 2025-12-23 03:02:59 +01:00
3bcff627c5 python: added combining tf models 2025-12-23 02:57:02 +01:00
1aa98200dc raspberry pi: added ssh troubleshooting 2025-12-23 02:50:07 +01:00
f7d0ca7f64 hailo: changed structure added resources 2025-12-23 02:45:42 +01:00
1d45041588 fixed typos 2025-12-23 02:31:01 +01:00
68e29c7290 anki: added french a0/a1 grammar resource 2025-12-23 02:30:21 +01:00
8c4f95fd24 linux: added flac compression command 2025-12-23 02:25:40 +01:00
d6785f6694 added kiwix 2025-12-23 02:13:57 +01:00
eb2011ac30 added kiwix 2025-12-23 02:11:35 +01:00
db0822bb6c anki: added styling guide 2025-12-23 02:08:48 +01:00
beb5044107 fixed typo 2025-12-23 02:08:32 +01:00
ea1c2524d4 Merge branch 'master' of github.com:tiyn/wiki 2025-12-16 04:09:10 +01:00
5ab0efdf25 raspberry pi: setup and minor troubleshooting added 2025-12-16 04:08:12 +01:00
a6b885bfc4 Merge branch 'master' of github:/tiyn/wiki 2025-12-16 03:36:24 +01:00
a52f596979 tf-hailo setup: added permission fix 2025-12-16 03:36:21 +01:00
abc3d7c7c6 discord: added alternatives 2025-12-05 01:36:48 +01:00
fa07d756b6 refactoring: fixing links and spelling 2025-12-01 07:46:01 +01:00
7974f6fa29 linux/bluez: added basic instructions 2025-12-01 07:34:19 +01:00
70849c9cb7 electron: added and linked, added keyring fix 2025-11-27 09:24:08 +01:00
a26318fedf thunderbird: added profile picture bug 2025-11-27 09:23:45 +01:00
8dbc4038ad neural networks: added and linked 2025-11-27 08:44:47 +01:00
28cf833feb neural networks: added and linked 2025-11-27 08:43:36 +01:00
5d8094e90b linux package managers: fix typo 2025-11-24 03:52:06 +01:00
8ed59c70fa email & pgp: added fairmail and linked pgp and email entries 2025-11-24 02:52:19 +01:00
0b19e61b10 added fairemail and improved thunderbird pgp 2025-11-24 02:37:28 +01:00
bc4e041588 android/webcam: improved structure 2025-11-24 02:21:41 +01:00
7d026b2e4b discord: added source for audio share 2025-11-24 02:06:16 +01:00
0d96d019c8 python: added note regarding cuda gpu compatibility 2025-11-24 01:59:33 +01:00
0592f59b7a markup language: added MDX 2025-11-24 01:58:58 +01:00
2d77ff796b zsh: added links to reference pages 2025-11-24 01:58:41 +01:00
97dd97efa9 YAY: added guide on settings 2025-11-24 01:58:09 +01:00
cbf4c8fd87 linux/font config: added section to find font for character 2025-11-24 01:57:34 +01:00
6ed14666a8 teamspeak: fix spelling 2025-11-24 01:56:56 +01:00
3fe39919c1 discord: added Vesktop 2025-11-24 01:56:42 +01:00
661ce3f20b git (package): improved diff with delta added 2025-11-23 10:14:59 +01:00
771ecc3b99 git (package): improved diff with delta added 2025-11-23 10:11:19 +01:00
d6c9c6fdae android: fixed typo 2025-11-23 09:37:22 +01:00
362aee2899 openssh: added pq-kex 2025-11-23 09:33:39 +01:00
9f162704d1 ssh: improved structure and linking 2025-11-23 09:10:38 +01:00
4a91f12dcd Meshtastic: linked Raspberry Pi 2025-11-23 08:45:09 +01:00
380f9b34d7 LightDM: changed structure for troubleshooting 2025-11-23 08:44:33 +01:00
2c48962955 wayland: added troubleshooting 2025-11-23 08:42:17 +01:00
d7770d09d9 raspberry pi: fixed spelling 2025-11-23 08:39:32 +01:00
b125fadd9c raspberry pi: added with guide to tf to hef conversion 2025-11-23 08:35:12 +01:00
71abe3c423 improved and expanded traefik entry 2025-11-23 08:08:39 +01:00
de74434cf3 added viper entries and for the programming language and its verifiers 2025-11-23 07:27:11 +01:00
0e2428f56e added vnc 2025-11-22 08:46:19 +01:00
bb030e70d5 python: added conversion to and from jupyter notebooks 2025-11-22 08:46:00 +01:00
0e0a9527c9 linux: added swap file resizing 2025-11-22 08:45:39 +01:00
f5bae3580d added openpgp and linked it 2025-11-22 08:45:19 +01:00
52aa5b2433 added anki 2025-11-22 08:44:47 +01:00
52b46126ab added anki 2025-11-22 08:44:37 +01:00
4b4a0b3080 audio: added link to audacity 2025-11-22 08:44:06 +01:00
142bb5e8fd improved globalprotect and vpn 2025-11-15 00:26:20 +01:00
da90bec3ff improved vnc and reverse tethering 2025-11-14 03:11:41 +01:00
74 changed files with 1770 additions and 275 deletions

View File

@@ -2,12 +2,12 @@
[Acer](https://www.acer.com) is a company that produces computers.
## Troubleshooting
## Troubleshooting
This section focusses on vendor specific problems and ways how to fix them.
This section focuses on vendor specific problems and ways how to fix them.
### Recovering the BIOS Password
### Recovering the BIOS Password
Acer laptops usually feature a 8-digit BIOS password.
Acer laptops usually feature an 8-digit BIOS password.
If it was lost it can easily be regenerated/recovered by using the website
[BIOSBug](https://www.biosbug.com/acer).

View File

@@ -4,23 +4,6 @@
[Linux](/wiki/linux.md) kernel.
It is designed primarily for mobile devices with touch screens like tablets or smart phones.
## Managing the Data
The data and files stored on Android
[smart devices](/wiki/smart_device.md#smartphones-and-tablet-computers) are sometimes needed on
computers.
For [Windows](/wiki/windows.md) this can easily be achieved by connecting it via USB.
No further software is needed as the device manager handles the phone correctly most of the times.
For [Linux-based systems](/wiki/linux.md) the
[device](/wiki/smart_device.md#smartphones-and-tablet-computers) also has to be connected to the
computer.
But in this case also a software is needed to [mount it](/wiki/linux/disk-management.md#mounting),
this software/program is called [android-file-transfer](/wiki/linux/android-file-transfer.md).
For further information and a guide on how to mount a Android device correctly navigate to the
[corresponding section](/wiki/linux/android-file-transfer.md#mounting-and-unmounting-android-device).
## App Store
The most used app store of android is the [Google Play Store](https://play.google.com/).
@@ -50,12 +33,33 @@ This section addresses various useful applications.
- [Fossify](https://github.com/FossifyOrg) is a suite of open-source apps that among other include
apps like calendar, file-manager, phone, messages and more.
## Improve Security and Privacy
## Usage
This section addresses the usage of Android.
### Managing the Data
The data and files stored on Android
[smart devices](/wiki/smart_device.md#smartphones-and-tablet-computers) are sometimes needed on
computers.
For [Windows](/wiki/windows.md) this can easily be achieved by connecting it via USB.
No further software is needed as the device manager handles the phone correctly most of the times.
For [Linux-based systems](/wiki/linux.md) the
[device](/wiki/smart_device.md#smartphones-and-tablet-computers) also has to be connected to the
computer.
But in this case also a software is needed to [mount it](/wiki/linux/disk-management.md#mounting),
this software/program is called [android-file-transfer](/wiki/linux/android-file-transfer.md).
For further information and a guide on how to mount a Android device correctly navigate to the
[corresponding section](/wiki/linux/android-file-transfer.md#mounting-and-unmounting-android-device).
### Improve Security and Privacy
Security and privacy are important topics, especially so when dealing with mobile phones.
This section focusses on improving them on a standard Android system.
The Elecronic Frontier Foundation recommends the following changes in their guide
The Elecronic Frontier Foundation recommends the following changes in their guide
[Guide](https://ssd.eff.org/module/how-to-get-to-know-android-privacy-and-security-settings).
- [2FA](#multi-factor-authentication)
@@ -69,7 +73,7 @@ The Elecronic Frontier Foundation recommends the following changes in their guid
- Disable WEP networks
- Obscure lockscreen notifications
The YouTube Channel 9to5Google also has a
The YouTube Channel 9to5Google also has a
[video on security and privcacy](https://www.youtube.com/watch?v=eswIeNxSIqo) which additionally
suggest the following changes.
@@ -80,7 +84,7 @@ Another option to add which may not improve security or privacy but improves usa
if a difficult passphrase is used - is the enabling of "Extend Unlock".
There "Trusted Devices" can be set or the "On-body Detection" can be enabled.
## Multi-Factor Authentication
### Multi-Factor Authentication
[Multi-factor authentication](/wiki/multi-factor_authentication.md) can easily be set up on android
systems.
@@ -92,16 +96,16 @@ This app is available at [F-Droid](/wiki/android/f-droid.md) as
[Google Play Store](#app-store) by the
[same name](https://f-droid.org/de/packages/org.liberty.android.freeotpplus/).
## Custom ROMs
### Custom ROMs
Besites the stock-firmware of vendors there are also custom ROMs.
Besides the stock-firmware of vendors there are also custom ROMs.
These are alternative firmware variants made by third party providers.
A well known custom ROM is [LineageOS](/wiki/android/lineageos.md).
It is possible that some custom ROMs require the user to
[unlock the bootloader](#unlocking-the-bootloader) before the installation can happen.
## Unlocking the Bootloader
### Unlocking the Bootloader
Unlocking the bootloader can be a bit challenging for some vendors especially.
@@ -136,3 +140,19 @@ It is possible that now 72 hours have to pass for the unlocking process to conti
If that is the case wait the specified amount of time and repeat the last step.
Make sure to not apply for unlocking again and do not add your account to your phone again as this
will reset the timer.
### Remote Control and Screen Mirroring
[Android](/wiki/android.md) based devices can use [scrcpy](/wiki/scrcpy.md) to mirror the screen
and allow controlling it by a [Windows](/wiki/windows.md) or [Linux-based](/wiki/linux.md) system.
### Usage as a Webcam
Most Android devices are equipped with a decent camera and a flashlight.
If a [Linux](/wiki/linux.md) or [Windows](/wiki/windows.md) system is missing a
[webcam](/wiki/webcam.md) which is only rarely used it can be useful to repurpose the
[smart device](/wiki/smart_device.md) as a webcam.
For this there are multiple options.
One of them is [DroidCam](/wiki/android/droidcam.md).
Another option with a decidedly better resolution is [IP Webcam](/wiki/android/ip_webcam.md).

33
wiki/android/fairemail.md Normal file
View File

@@ -0,0 +1,33 @@
# FairEmail
[FairEmail](https://email.faircode.eu/) is a free and open-source
[email client](/wiki/email.md#client) for [Android](/wiki/android.md).
## Setup
On [Android](/wiki/android.md) FairEmail is available on [F-Droid](/wiki/android/f-droid.md) in a
package called [FairEmail](https://f-droid.org/en/packages/eu.faircode.email/).
Additionally it is available on the[Google Play store](/wiki/android.md#app-store) in a package
called [FairEmail](https://play.google.com/store/apps/details?id=eu.faircode.email&hl=de).
## Usage
This section addresses the usage of FairEmail.
### Use PGP Key for Encryption, Decryption and Signing
FairEmail can use [OpenPGP](/wiki/openpgp.md) to sign, encrypt or decrypt mails.
To achieve this download [OpenKeychain](https://www.openkeychain.org/).
To connect FairEmail with OpenKeychain navigate to the settings and select `Encryption`.
There the provider of OpenPGP (`OpenPGP provider`) can be set to OpenKeychain
(`org.sufficientlysecure.keychain`).
Using OpenKeychain PGP keys can then be imported and stored.
After this is done outgoing mails can be encrypted by signed or encrypted by selecting the
`Encrypt` selection on the top bar when writing emails.
Decryption can be done by clicking on the padlock when inside an email that is encrypted.
Additionally in the settings under `Encryption` the signing (`Sign by default`), encryption
(`Sign and encrypt by default`), decryption (`Auomatically decrypt messages`) and validation
(`Automatically verify signed messages`) can be set to occurr automatically.

75
wiki/anki.md Normal file
View File

@@ -0,0 +1,75 @@
# Anki
[Anki](https://apps.ankiweb.net/) is a flashcard program for learning.
## Setup
Anki can be split up into client and server software.
The server software is fully optional, handles the syncing between multiple clients and can also be
done via the official Anki website.
### Setup Client
The default Anki client is made for computer systems and can be installed from source as described
[on GitHub](https://github.com/ankitects/anki).
Alternatively some [Linux](/wiki/linux.md) [package managers](/wiki/linux/package_manager.md)
package the Anki client in the `anki` package.
Adding to the Computer clients there are various possible clients for other platforms.
- [AnkiDroid](https://f-droid.org/de/packages/com.ichi2.anki/) is a client for
[Android](/wiki/android.md).
### Setup Server
The syncserver can be installed to handle the syncing of data in a self-hosted way.
It is described [on GitHub](https://github.com/ankitects/anki/tree/main/docs/syncserver) and can be
setup via [Docker](/wiki/docker.md) using
[the official manually build container](/wiki/docker/ankitects_-_syncserver.md).
## Usage
This section addresses the usage of Anki.
### Add Backwards Cards
When setting up a new deck and sometimes when importing a deck only cards for one-way learning are
added.
This guide assumes the default Anki client is used.
To change this select `Browse` and then navigate to the `Note Type` the deck to add backwards cards
uses.
Right click the note type and select `Cards`.
Afterwards the cards for backwards learning can be added by `Options` and `Add Card Types...`.
You can confirm the fields have been setup correctly by clicking through the card types and
verifying it.
### Make New Cards Gather Order Random
This section is based on a
[Anki forum entry by NameLessGO](https://forums.ankiweb.net/t/what-are-the-best-settings-here-to-review-cards-in-random-order/27112).
By default new cards are gathered in order and then also shown in order.
Most of the time it is useful for them to be gathered in order as it conserves the learning units
for example.
To change this navigate to the `Options` of a deck and then change `New card sort order` to
`Random` to randomize them before showing them without gathering them randomly.
To change this the `New card gather order` can also be set to `Random notes` or `Random cards`.
### Change Card Style
The layout and the style of the cards can be changed using CSS and HTML.
There are various resources that can be used for this.
One of them is [anki-prettify](https://github.com/pranavdeshai/anki-prettify).
The exact CSS an HTML has to be changed on a per-note base under `Tools`, `Manage Note Types`, and
`Cards` after selecting the corresponding note.
### Resources
The following are useful resources and (shared) decks for learning various languages with Anki.
#### French Resources
The following is a list of French resources.
- [French A0/A1 Anki Deck + Images/Audio/Explanations](https://ankiweb.net/shared/info/1070709392)
is a shared deck for various French grammar and idioms.
It is especially useful since it contains a practical note type for grammar questions.

View File

@@ -78,13 +78,15 @@ If you want to keep your system clean of much data, you can use this kind of
setup.
There are differences depending on your preffered software interface.
### Digital Audio Workstations
### Digital Audio Workstations and Recording Software
Digital Audio Workstations - short DAWs - is an application that can be used to record, edit or
produce audio files.
- [LMMS](https://lmms.io/) is a free and cross-platform DAW that is highly compatible with
[Linux-based systems](/wiki/linux.md).
- [Audacity](https://www.audacityteam.org/) is an open source and cross-platform software to record
and edit audio.
### Software for Music/Podcasts/Audiobooks

View File

@@ -3,6 +3,7 @@
[BetterDiscord](https://betterdiscord.app) is an unofficial extension to
[Discord](/wiki/discord.md) which allows to add various functionality through plugins and new
themes.
It is not a standalone client.
## Setup

View File

@@ -6,4 +6,5 @@ It produces citations for the stored records that are used in scholarly research
## Software Solutions
- [Papis](/wiki/linux/papis.md) is a [command-line based](/wiki/linux/shell.md) for
[Linux](/wiki/linux.md) bibliography manager that can be used for LaTeX using the BibTeX format.
[Linux](/wiki/linux.md) bibliography manager that can be used for
[LaTeX](/wiki/markup_language.md#latex) using the BibTeX format.

View File

@@ -2,6 +2,21 @@
[Discord](https://discord.com/) is an social platform that combines voice and video conferences as
well as instant messaging chats.
Additionally to the default website Discord also features a desktop client in the form of an
[Electron-based app](/wiki/electron.md).
## Alternatives
There are some alernative frontends and modifications available for Discord.
- [BetterDiscord](/wiki/betterdiscord.md) is a modification for Discord on
[Linux-based systems](/wiki/linux.md), which changes an existing installation of Discord.
It supports a wide range of plugins and themes.
- [Vencord](/wiki/vencord.md) is a standalone custom Discord App.
It supports a wide range of plugins and themes.
- [Revenge](https://github.com/revenge/revenge-manager) is a standalone client modification of
Discord for [Android](/wiki/android.md).
It supports a wide range of plugins and themes.
## Usage
@@ -9,7 +24,7 @@ This section addresses various features of Discord.
### Disable Automatic Update Checks
By default Discord performs an automatic check to see if it is up to date.
By default, Discord performs an automatic check to see if it is up to date.
On [Linux](/wiki/linux.md)-based systems it can be disabled by adding `"SKIP_HOST_UPDATE": true` to
the `~/.config/discord/settings.json` file.
@@ -18,11 +33,25 @@ the `~/.config/discord/settings.json` file.
For Discord there are various bots capable of playing music.
The following is a list of bots featured in this wiki that can do this.
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for Discord that can play music and sounds.
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for Discord that can play music and sounds.
It's closed-source and free of charge.
It also features [Teamspeak](/wiki/teamspeak.md) support.
It also features [TeamSpeak](/wiki/teamspeak.md) support.
### Themes and Plugins
By default Discord has no option to use themes or plugins.
This however can be changed by using [BetterDiscord](/wiki/betterdiscord.md).
To use themes or plugins [alternative frontends or client modifications](#alternatives) have to be
used.
## Troubleshooting
This section will focus on errors and the fixing of errors of Discord.
### Streaming Audio not Possible
Using the default client when sharing the screen the audio might not be streamed aswell.
this section is based on a
[Reddit comment by Malo1301](https://www.reddit.com/r/linux_gaming/comments/1kbplea/no_audio_when_sharing_screen_on_discord_for_linux/).
This can happen with both [Wayland](/wiki/linux/wayland.md) and
[X11](/wiki/linux/x_window_system.md).
The simplest way to fix is to use [Vesktop](https://github.com/Vencord/Vesktop).

View File

@@ -0,0 +1,58 @@
# ankitects - anki
This is a [Docker](/wiki/docker.md) container for a [Anki syncserver](/wiki/anki.md#setup-server).
The official container is part of the
[Anki GitHub repository](https://github.com/ankitects/anki/tree/main/docs/syncserver) and has to be
build manually.
The syncserver can be installed to handle the syncing of data in a self-hosted way.
It is described [on GitHub](https://github.com/ankitects/anki/tree/main/docs/syncserver) and can be
setup via [Docker](/wiki/docker.md).
## Set-up
Due to the syncserver having to be set up manually first navigate to the
[Anki syncserver GitHub subpage](/wiki/anki.md#setup-server).
From there download the `Dockerfile` and the `entrypoints.sh`.
Then create the file `rebuild.sh`.
Change the settings according to your needs and run `./rebuild.sh` afterwards.
Especially set the `<version>` (for example `24.11`) aswell as the `<user>` and `<password>`.
## Environment-variables
Set the following variables with the -e tag.
| Name | Usage | Default |
| -------------- | -------------------------------------------------------- | ------- |
| `SYNC_USER1` | contains the `<user>` and `<password>` of the first user | |
## Ports
Set the following ports in the `ports:` section.
| Container Port | Recommended outside port | Protocol | Description |
| -------------- | ------------------------ | --------- | ------------- |
| `27701` | `8080` | TCP | Default port |
## Volumes
Set the following volumes with the -v tag.
| Outside mount/volume name | Container mount | Description |
| ------------------------- | --------------- | ------------- |
| `akni-sync-server-data` | `/anki-data` | Data storage |
## rebuild.sh
```sh
#!/bin/sh
docker stop anki-sync-server
docker rm anki-sync-server
docker build -f ./Dockerfile --no-cache --build-arg ANKI_VERSION=<version> -t anki-sync-server .
docker run -d \
-e "SYNC_USER1=<user>:<password>" \
-p 27701:8080 \
--mount type=volume,src=anki-sync-server-data,dst=/anki_data \
--name anki-sync-server \
anki-sync-server
```

View File

@@ -0,0 +1,41 @@
# /maintainer/ - /name/
This is a [Docker](/wiki/docker.md) container for a [Kiwix](/wiki/kiwix.md) server.
The official container and documentation was made by
[kiwix](https://github.com/kiwix/kiwix-tools/pkgs/container/kiwix-serve).
## Set-up
Create the file `rebuild.sh`.
Make sure to place the `.zim` files inside the volume.
Change the settings according to your needs and run `./rebuild.sh` afterwards.
## Ports
Set the following ports in the `ports:` section.
| Container Port | Recommended outside port | Protocol | Description |
| -------------- | ------------------------ | --------- | ------------- |
| `80` | `80` | TCP | WebUI |
## Volumes
Set the following volumes with the -v tag.
| Outside mount/volume name | Container mount | Description |
| ------------------------- | --------------- | -------------- |
| `kiwix_data` | `/data` | Data directory |
## rebuild.sh
```sh
docker stop kiwix-serve
docker rm kiwix-serve
docker pull ghcr.io/kiwix/kiwix-serve
docker run --name kiwix-serve \
--restart unless-stopped \
-v kiwix_data:/data \
-p 80:80 \
-d ghcr.io/kiwix/kiwix-serve \
*.zim
```

View File

@@ -38,6 +38,21 @@ Finally if a reverse proxy is used check the
Afterwards you're ready to go by once again running the `rebuild.sh` file.
If setting up this mailserver with [Traefik](/wiki/traefik.md) as a reverse proxy some additional
steps should be taken.
No http or https is needed.
But a certificate for the mailserver is needed regardless.
In this case add the following lines to the file `docker-compose.yml` in the
`services:` section and adapt them.
```yml
whoami:
image: docker.io/traefik/whoami:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`<subdomain>.<domain>`)"
```
### rebuild.sh
```sh

View File

@@ -1,6 +1,6 @@
# traefik
This is a [Docker](/wiki/docker.md) container for a traefik edge router.
This is a [Docker](/wiki/docker.md) container for a [Traefik](/wiki/traefik.md) edge router.
The official container and documentation was made by
[traefik](https://hub.docker.com/_/traefik).
This docker-rebuild is made up by a `docker-compose.yml` file.
@@ -12,6 +12,8 @@ In that folder create the directories `data/config`.
Place the files `data/traefik.yml` and `data/config/dynamic.yml` in the
according directories.
Change the settings according to your needs and run `./rebuild.sh` afterwards.
Additional guides on the usage of Traefik for [Docker](/wiki/docker.md) services can be found in
the [Traefik wiki entry](/wiki/traefik.md#usage).
### Volumes
@@ -145,7 +147,7 @@ certificatesResolvers:
### data/config/dynamic.yml
In the config replace `username:htpasswd` with the output of
In the config replace `<username:htpasswd>` with the output of
`echo $(htpasswd -nb <user> <pasword>) | sed -e s/\\$/\\$\\$/g`.
```yml
@@ -162,19 +164,7 @@ http:
user-auth:
basicAuth:
users:
- "username:htpasswd"
redirect-non-www-to-www:
redirectregex:
permanent: true
regex: "^https?://(?:www\\.)?(.+)"
replacement: "https://www.${1}"
redirect-www-to-non-www:
redirectregex:
permanent: true
regex: "^https?://www\\.(.+)"
replacement: "https://${1}"
- "<username:htpasswd>"
tls:
options:
@@ -188,73 +178,3 @@ tls:
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
minVersion: VersionTLS12
```
The sections called `redirect-non-www-to-www` and `redirect-www-to-non-www` are adapted from a
article by Benjamin Rancourt on his
[website](https://www.benjaminrancourt.ca/how-to-redirect-from-non-www-to-www-with-traefik/).
## Usage
### Create reverse proxies
To create a reverse proxy from a docker container add the following lines in the
`labels:` section of the `docker-compose.yml` of the service to proxy.
```yml
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.<service name>-secure.entrypoints=websecure"
- "traefik.http.routers.<service name>-secure.rule=Host(`<subdomain>.<domain>`)"
- "traefik.http.routers.<service name>-secure.service=<service name>"
- "traefik.http.services.<service name>.loadbalancer.server.port=<port>"
```
This configuration automatically redirects http to https.
When using this configuration the port specified in the latter lines can be
ommitted in the `ports:` section if not used directly.
This ensures access only via https and restricts access via ip and port.
Change `<service name>` according to the service you want to publish and `<subdomain>` aswell as
`<domain>` to the domain you intent to publish the service to.
Additionally if you want to redirect domains not starting with `www` to one that does not append
the following line.
```yml
- "traefik.http.routers.<service name>.middlewares=redirect-non-www-to-www"
```
If the opposite is the case and it should always be redirected to a domain not starting with `www`
add the following line.
```yml
- "traefik.http.routers.<service name>.middlewares=redirect-www-to-non-www"
```
In both of those cases the line of the first code block in this section that specifies the domain
and subdomain needs to include both the www and the non-www domains.
This should look something like the following
Make sure to add the domain that will be redirected to the labels aswell.
For redirection to www domains this will look something like the following.
```yml
- "traefik.http.routers.<service name>.rule=Host(`<subdomain>.<domain>`)"
```
In the opposite case the domain will be `www.<subdomain>.<domain>`.
### Setup Mailserver
If setting up a
[docker-mailserver by mailserver](./mailserver_-_docker-mailserver.md) no http
or https is needed.
But a certificate for the mailserver is needed regardless.
In this case add the following lines to the file `docker-compose.yml` in the
`services:` section and adapt them.
```yml
whoami:
image: docker.io/traefik/whoami:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`<subdomain>.<domain>`)"
```

View File

@@ -0,0 +1,37 @@
# viperproject - viperserver
This is a [Docker](/wiki/docker.md) container for a [Viper](/wiki/programming_language/viper.md)
server, which is used for building the Viper verifiers
[Silicon and Carbon](/wiki/programming_language/viper.md#setup).
The official container and documentation was made by
[viperproject](https://hub.docker.com/r/viperproject/viperserver).
## Set-up
Create the file `rebuild.sh`.
Change the settings according to your needs and run `./rebuild.sh` afterwards.
Due to this container being used to build the Silicon and Carbon verifiers it is recommended to be
started in interactive mode as demonstrated in the [rebuild section](#rebuildsh).
Make sure to substitute `<path-to-carbon>` and `<path-to-silicon>`.
If only one of them is to be built, omit the other.
Additionally the version of viperproject has to be added for `<viperproject-version>`.
It also depends on the Z3 version which will be used later.
For example the version `v4_z3_4.8.7` is working for Z3 versions `4.8.7` and later.
## Volumes
Set the following volumes with the -v tag.
| Outside mount/volume name | Container mount | Description |
| ------------------------- | --------------- | ----------------------------------------- |
| `<path-to-silicon>` | `/mnt/silicon` | (optional) mount Silicon for installation |
| `<path-to-carbon>` | `/mnt/carbon` | (optional) mount Carbon for installation |
## rebuild.sh
```sh
docker run -it --name viperserver \
-v <path-to-silicon>:/mnt/silicon \
-v <path-to-carbon>:/mnt/carbon \
viperproject/viperserver:<viperproject-version>
```

48
wiki/electron.md Normal file
View File

@@ -0,0 +1,48 @@
# Electron
[Electron](https://electronjs.org/) is an open-source framework that allows developers to build
cross-platform desktop applications using web technologies like JavaScript,
[HTML](/wiki/markup_language.md), and CSS.
It combines the Chromium [browser](/wiki/web_browser.md) and Node.js.
## Troubleshooting
This section will focus on errors and the fixing of errors of /name/.
## Linux: `Could not detect a default secure credential storage on your device.`
A possible issue for Electron apps on [Linux](/wiki/linux.md) is the following error.
```sh
not detect a default secure credential storage on your device.
```
This occurs because Electron relies on a Secret Service such as the GNOME Keyring, among others) to
store passwords securely on the system.
And often appears on more minimal window managers on [Xorg](/wiki/linux/x_window_system.md) or
[Wayland](/wiki/linux/wayland.md).
If no compatible service is running or detected, apps cannot save credentials.
Using the following steps this issue can be solved.
Firstly - if not already done - install a secret service.
For the Gnome Keyring install the [packages](/wiki/linux/package_manager.md) `libsecret` and
`gnome-keyring`.
The name may differ slightly depending on the [package manager](/wiki/linux/package_manager.md)
used.
Afterwards make sure to run the service and enable it if not already done.
An example for this is shown in the following command
```sh
eval $(/usr/bin/gnome-keyring-daemon --start)
```
Finally the Electron app `<electron-app>` can be started.
For the secure credential storage to be reachable the environment variable `XDG_CURRENT_DESKTOP`
has to be set.
Due to this environment variable being possibly relevant for the system-wide settings it is
recommended to only set it for the Electron app by running the following command in a sub-shell.
```sh
export XDG_CURRENT_DESKTOP=GNOME
<electron-app>
```

View File

@@ -1,17 +1,17 @@
# E-mail
# Email
E-mail is a method of exchanging electronic messages.
Email is a method of exchanging electronic messages.
## Setup
E-mail usually consists of a [server](#server) and a [client](#client).
Email usually consists of a [server](#server) and a [client](#client).
## Server
If you want to host your own mail-server there are solutions with and without
interfaces.
- [Dovecot](./docker/tvial_-_docker-mailserver.md) is a simple dockerized
- [Dovecot](/wiki/docker/mailserver_-_docker-mailserver.md) is a simple dockerized
mail server that has no interface.
## Client
@@ -22,6 +22,8 @@ And even if you have it can be useful to keep your mails synced locally on your
- [Neomutt](linux/neomutt.md) is a [terminal-based](/wiki/linux/system_console.md)
mail client for linux, that has a simple interface.
- [Thunderbird](/wiki/thunderbird.md) is a free and open source mail client which is cross
platform.
- [Thunderbird](/wiki/thunderbird.md) is a free and open-source mail client which is
cross-platform.
It also features, contact, todo and calendar management.
- [FairEmail](/wiki/android/fairemail.md) is a free and open-source mail client for
[Android](/wiki/android.md).

View File

@@ -30,7 +30,7 @@ A notable amount of this group of games uses the top-level domain `.io`.
Some examples for these are [territorial.io](https://territorial.io/) and
[slither.io](http://slither.io/).
Another online game is [Massive Decks](/wiki/massivedecks.md) which is the online take on a similar
Another online game is [Massive Decks](/wiki/game/massive_decks.md) which is the online take on a similar
popular tabletop game.
For Windows there is the popular old-school pinball game 3d Pinball Space Cadet.
@@ -39,10 +39,10 @@ various platforms and operating systems.
## Syncing Game Saves Across Systems
By using [Syncthing](../syncthing.md) game saves can be synchronized.
By using [Syncthing](/wiki/syncthing.md) game saves can be synchronized.
First set up Syncthing as described in the
[Syncthing entry](../syncthing.md#setup).
If a system with only user access - like the [Steam Deck](./steam_deck.md) - is used the
If a system with only user access - like the [Steam Deck](/wiki/game/steam_deck.md) - is used the
[user space configuration](../syncthing.md#user-space-configuration-for-linux)
is recommended.
Afterwards move the game saves to the directory set up by Syncthing and create

View File

@@ -1,7 +1,7 @@
# Magic: The Gathering
[Magic: The Gathering](https://magic.wizards.com) - often shortened to MTG or Magic - is a tabletop
[collectible card game](/wiki/game/trading_card_game.md).
[collectible card game](/wiki/trading_card_game.md).
MTG is published by [Wizards of the Coast](https://company.wizards.com) - which are commonly
reffered to as Wizards.
In Magic: The Gathering there are many different formats that are all listed on

View File

@@ -258,14 +258,14 @@ The following are recommended client-side graphical mods.
redstone level of a music disc in game.
- "Rename 'Stem' to 'Log'" from Vanilla Tweaks is a resource pack that changes the Nether woods to
use 'Stem' instead of 'Log'.
- "Icons" is a ressource pack that adds icons into the menu and game.
Additionally "Icons Advertisement Removal" removes the logo of the "Icons" ressource pack.
- "Hoffen's Minimal Armor" is a ressource pack that minimizes the look of armor.
- "Vertical Nuggets" is a ressource pack that flips all nuggets to be vertical.
- "Colorful Canines" is a ressource pack that makes dog armor more colorful.
- "Colorful Sheared Sheep" is a ressource pack that makes the color of sheep wool visible even
- "Icons" is a resource pack that adds icons into the menu and game.
Additionally "Icons Advertisement Removal" removes the logo of the "Icons" resource pack.
- "Hoffen's Minimal Armor" is a resource pack that minimizes the look of armor.
- "Vertical Nuggets" is a resource pack that flips all nuggets to be vertical.
- "Colorful Canines" is a resource pack that makes dog armor more colorful.
- "Colorful Sheared Sheep" is a resource pack that makes the color of sheep wool visible even
after the shearing.
- "Real Arrrow Tip" is a ressource pack that makes the look of arrows correct ingame.
- "Real Arrrow Tip" is a resource pack that makes the look of arrows correct ingame.
The following are recommended client-side audio mods.
@@ -313,8 +313,8 @@ The following are recommended client-side HUD and other UI modifications
- "Scribble" is a mod that makes editing books easier by adding buttons for color, bold font and
more.
- "Chat Patches" is a mod that extends the chat history and adds some more tweaks.
- "Armor Chroma for Fabric" is a ressource pack that shows the type of armor in the bar.
- "Colorful Ping" is a ressource pack that shows the ping symbol in color.
- "Armor Chroma for Fabric" is a resource pack that shows the type of armor in the bar.
- "Colorful Ping" is a resource pack that shows the ping symbol in color.
The following are possible client-side mods that change the gameplay or give other information in
the game.

View File

@@ -2,7 +2,7 @@
[Pokemon](https://www.pokemon.com/) is a multi-media franchise owned by Nintendo.
It consists of video games, animated series, films, a
[trading card game](/wiki/game/trading_card_game.md) and more.
[trading card game](/wiki/trading_card_game.md) and more.
## Resources

20
wiki/gimp.md Normal file
View File

@@ -0,0 +1,20 @@
# GIMP
[GIMP](https://www.gimp.org/) is a popular cross-platform program for editing pictures.
## Setup
The GIMP program can be installed from files found on
[the official website](https://www.gimp.org/downloads/).
Alternatively many [Linux](/wiki/linux.md) [package managers](/wiki/linux/package_manager.md)
package GIMP in the `gimp` package.
## Usage
This section addresses the usage of GIMP.
### Scale Image
An image that is already loaded into GIMP can easily be scaled down (or up) by selecting
`Scale Image` under the `Image` tab.
Alternatively the scale tool reachable via `Ctrl+S` can be used.

View File

@@ -16,6 +16,13 @@ The usage of the GlobalProtect client is pretty simple.
After starting the program the portal address has to be added and is followed by a login.
Afterwards the client will connect.
The standard command to connect to a [VPN](/wiki/vpn.md) server is the following where
`<vpn-server>` is the domain of the server (for example `vpn.abc.de`).
```sh
gpclient connect <vpn-server>
```
GlobalProtect is usually used by bigger companies and universities like the
[University of Oldenburg](https://uol.de/it-services/services/campus-network) which wrote a proper
installation and usage guide for all the operating systems that are supported.

72
wiki/hailo.md Normal file
View File

@@ -0,0 +1,72 @@
# Hailo
[Hailo](https://hailo.ai) produces AI accelerator chips which are used for deep learning.
An example for a system that uses it is
[Raspberry Pi's AI Hat +](/wiki/linux/raspberry_pi.md#ai-hat).
## Setup
Depending on the system and the type of access various things may have to be setup.
For Ubuntu systems like the [Raspberry Pi](/wiki/linux/raspberry_pi.md) these are often named
`hailort-pcie-driver` and `hailort`.
When using the [Python prorgamming language](/wiki/programming_language/python.md) refer to the
[Hailo section](/wiki/programming_language/python.md#hailo).
## Usage
This section addresses various usages of the Hailo software.
### Preparing TensorFlow Models for the AI HAT+
For [neural networks](/wiki/neural_network.md) to run on the Hailo AI module and the AI HAT+ they
have to be converted to the `.hef` format.
This section assumes the neural network is using
[TensorFlow](/wiki/programming_language/python.md#tensorflow) and is available as a `.tf` or
`.tflite` file.
To convert TensorFlow models first the Hailo 8 Software Suite needs to be downloaded.
This can be done from the [official website](https://hailo.ai/developer-zone/software-downloads/)
altough an account is needed for it.
After downloading, extracting and then navigating into the folder a heavily customized
[Docker](/wiki/docker.md) container can be started by running the following command.
However it is recommended to slightly modify this file.
Add a volume that contains the TensorFlow model, that is to be converted, to the environment
variable `DOCKER_ARGS` which is set in the file `hailo_ai_sw_suite_docker_run.sh`.
```sh
./hailo_ai_sw_suite_docker_run.sh
```
Using the tools which come in this container a `.tf` or `.tflite` model can be converted to the
`.hef` format.
For this to work run the following commands inside the Docker container.
The first command takes the path to the tensorflow model (`<path-to-tf-model>`) and will output a
`.har` model.
The second command is optional but recommended and takes the path to this `.har` model
(`<path-to-har-model`) and returns an optimized `.har` model.
The third and final command compiles the (optimized) `.har` model, which is given as the input, and
outputs the final `.hre` model, which then can be used with the Hailo AI module.
```sh
hailo parser tf <path-to-tf-model>
hailo optimize --use-random-calib-set <path-to-har-model>
hailo compiler <path-to-optimized-har-model>
```
Note that the user in the Docker container usually uses anothr UID and GID.
To make the volume and files accessible inside the container the IDs of the files in the volume
should be changed accordingly - for example as shown in the following example.
`<volume-path>` is the path that points to the volume
`<uid>` is the UID of the Docker user - which can be found using `id -u` (for example `10642`) -
and `<gid>` the GID of the Docker user - which can be found using `id -g` (for example `10600`).
```sh
chown -R <uid>:<gid> <volume-path>
```
After the models have been converted it can be reversed using the systems user UID and GID.
The converted models can than be run using the Python programming language as described in the
[Python article](/wiki/programming_language/python.md#hailo).

View File

@@ -15,7 +15,7 @@ This entry also features medicinal image and visual formats such as DICOM.
Editing images can be done by various image manipulation software.
- [GIMP](https://www.gimp.org/) is a popular cross-platform program for editing pictures.
- [GIMP](/wiki/gimp.md) is a popular cross-platform program for editing pictures.
- [ImageMagick](/wiki/imagemagick.md) is another cross-platform software suite for creating and
- editing (raster) images.
- [upscayl](https://github.com/upscayl/upscayl) is an upscaler that can be used cross-platform.

24
wiki/kiwix.md Normal file
View File

@@ -0,0 +1,24 @@
# Kiwix
[Kiwix](https://kiwix.org) is a open-source software that allows to save web content like Wikipedia
or Stack Overflow locally and for offline usage.
## Setup
Kiwix is available for different operating systems and can be installed as described
[on the official website](https://kiwix.org/en/applications).
The software can also be setup via [Docker](/wiki/docker.md) with the
[kiwix image](/wiki/docker/kiwix_-_kiwix-serve.md).
## Usage
This section addresses the usage of Kiwix.
### Download content
The content to display using Kiwix has to be acquired as a `.zim` file.
The official collection of these files can be found on the
[official website](https://library.kiwix.org/).
For [Docker](/wiki/docker.md) the `.zim` files need to be placed accordingly to the
[corresponding article](/wiki/docker/kiwix_-_kiwix-serve.md).
After the downloading the files, Kiwix may have to be restarted.

271
wiki/linux/bluez.html Normal file
View File

@@ -0,0 +1,271 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>bluez</title>
<style>
/* Default styles provided by pandoc.
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
*/
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
svg {
height: auto;
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
border: none;
border-top: 1px solid #1a1a1a;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { color: #008000; } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { color: #008000; font-weight: bold; } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
</head>
<body>
<h1 id="bluez">BlueZ</h1>
<p><a href="http://www.bluez.org/">BlueZ</a> is an implementation of the
<a href="/wiki/bluetooth.md">Bluetooth</a> standard. This entry features
the BlueZ package and all software that is based on it.</p>
<h2 id="setup">Setup</h2>
<p>On most <a href="/wiki/linux.md">Linux</a> distributions BlueZ can be
installed with the <code>bluez</code> package. Additionally the
<code>bluez-utils</code> package needs to be installed. To load the
kernel module <code>modprobe btusb</code> needs to be run. Afterwards
the <a
href="/wiki/linux/systemd.md#startstopenabledisable-a-service">service</a>
can be started and enabled by running the following commands.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">systemctl</span> start bluetooth.service</span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="ex">systemctl</span> enable bluetooth.service</span></code></pre></div>
<h2 id="usage">Usage</h2>
<p>The Bluetooth features can be managed by different types of
front-ends.</p>
<ul>
<li><code>bluetoothctl</code> is a command-line interface included in
the <code>bluez-utils</code> package</li>
<li><code>bluetuith</code> can be used as a bluetooth manager with a <a
href="/wiki/linux/system_console.md">terminal</a> user interface. It is
included in a package of the same name, that needs to be installed
before usage. Using <code>bluetuith</code> the <a
href="/wiki/bluetooth.md">Bluetooth</a> can be turned on (or off) by
pressing <code>o</code>, devices can be searched for by pressing
<code>s</code>, a selected device can be paired by pressing
<code>p</code> and finally connected by pressing <code>c</code> before
<code>bluetuith</code> can be left with <code>Q</code>.</li>
</ul>
</body>
</html>

View File

@@ -6,7 +6,7 @@ This entry features the BlueZ package and all software that is based on it.
## Setup
On most linux distributions BlueZ can be installed with the `bluez` package.
On most [Linux](/wiki/linux.md) distributions BlueZ can be installed with the `bluez` package.
Additionally the `bluez-utils` package needs to be installed.
To load the kernel module `modprobe btusb` needs to be run.
Afterwards the
@@ -28,3 +28,6 @@ The Bluetooth features can be managed by different types of front-ends.
[terminal](/wiki/linux/system_console.md) user interface.
It is included in a package of the same name, that needs to be installed
before usage.
Using `bluetuith` the [Bluetooth](/wiki/bluetooth.md) can be turned on (or off) by pressing `o`,
devices can be searched for by pressing `s`, a selected device can be paired by pressing `p` and
finally connected by pressing `c` before `bluetuith` can be left with `Q`.

View File

@@ -1,6 +1,6 @@
# Disk Management
This article focusses on non-LVM and non-MDADM storage.
This article focusses on non-LVM and non-MDADM storage including swap.
For [LVM](lvm.md), [NTFS](./ntfs.md), [Samba](./samba.md), [MDADM](./mdadm.md) and [LUKS volumes](./dm-crypt.md) there
are separate entries.
@@ -8,6 +8,35 @@ are separate entries.
This section focusses on various usages for disk management related topics.
### Increasing Swap File Size
The size of a swap file can easily be increased using the following steps.
Using the following commands currently active swaps can be shown and the usage of them can be
checked.
```sh
swapon --show
free -h
```
Then the swap file can be changed using the following commands.
`<location>` is the location of the swap file (for example `/swap.img`).
`<size>` describes the new size of the swap file (for example `16G`)
```sh
swapoff <location>
fallocate -l <size> <location>
chmod 600 <location>
mkswap <location>
swapon <location>
```
Finally the swap can be checked again to confirm that it is online and has the correct size
```sh
swapon --show
```
### Benchmarking Data Transfer Rates
Real data transfer rates can easily be checked using the program `pv`.
@@ -15,14 +44,14 @@ The following command will create a file on the target drive and show the data t
writing.
In the following case `/mnt/usb1/tmp` is the path of the target file.
```sh
```sh
cat /dev/zero | pv > /mnt/usb1/tmp
```
After this the read speed can be checked by using the just created temporary file.
The following command will display the read speed.
```sh
```sh
cat /mnt/usb1/tmp | pv > /dev/zero
```
@@ -96,10 +125,10 @@ In the following it is assumed that the partition to enlarge is `/dev/sda2`
- change the size of the partition with `parted /dev/sda`
- inside of parted run `print free` and check where the free space after your
partition ends
partition ends
- run `resizepart` and follow the instructions; End is the number you checked in
the last step (alternatively you can insert `100%` as end, if you want to add all
the available free space to the partition)
the last step (alternatively you can insert `100%` as end, if you want to add all
the available free space to the partition)
- `quit` parted
Afterwards the file system need to be resized as described in a
@@ -146,12 +175,25 @@ The following list shows some options to quickly clean up space.
- [Package Mangers](/wiki/linux/package_manager.md)
- [ViFM Trash Bin](/wiki/linux/vifm.md#empty-trash)
## Accessing Disks as User
Sometimes - for example when flashing an SD card for a
[Raspberry Pi](/wiki/linux/raspberry_pi.md#setup) - it may be useful to do so with your default
user and not using the root user.
For this to work the user can be added to the `disk` group permanently.
Please note that this however reduces the systems security.
A command to do so, may look like the following (given the `$USER` variable is set correctly).
```sh
usermod -a -G disk $USER
```
## Error solving
This section addresses various problems that can occur and are related to
disk-management.
### sudo: unable to open ... Read-only file system
### `sudo: unable to open ... Read-only file system`
Ususally the filesystem will go into read-only mode whe the system is running
and there is a consistency error.
@@ -163,7 +205,7 @@ To fix it run:
you may want to try using the ext4-specific fsck:
- `fsck.ext4 -f /dev/sda1`
### cannot access: Transport endpoint is not connected
### `cannot access: Transport endpoint is not connected`
This error message can occur if a mounted directory is left mounted due to a
crash of the filesystem but not accessible anymore.

View File

@@ -12,7 +12,41 @@ Another possible tagging software is [MusicBrainz Picard](../picard.md)
## Usage
This section addresses the usage of the flac package.
### Splitting Flac file according to cue file
`shnsplit` can be used to split flac files.
In the [shnsplit article](/wiki/linux/shntool.md) an explanation on this is given.
### Compress or Recompress `.wav` and `.flac` files
`.flac` and `.wav` files can be compressed with the following command.
In this `<wav-flac-file>` is the path to the music file but can also use wildcards (for example
`*.wav`).
`<compression>` is the compression rate.
The highest compression preset is `8`.
```sh
flac -<compression> <wav-flac-file>
```
When recompressing `.flac` files the file does not have to be decoded to encode it again but can be
recompressed in one command.
According to a
[Reddit comment by berdmayne](https://www.reddit.com/r/foobar2000/comments1m3634l/best_way_to_reduce_flac_file_size_without_losing)
the compression rates of the different levels are the following.
| Level | Saving to level 0 | Saving to previous level |
| ---------------- | ------------------- | ------------------------ |
| 0 (uncompressed) | 0.0% | |
| 1 | 0.5% | 0.5% |
| 2 | 0.9% | 0.4% |
| 3 | 5.3% | 4.4% |
| 4 | 6.0% | 0.7% |
| 5 | 6.4% | 0.4% |
| 6 | 6.7% | 0.4% |
| 7 | 6.9% | 0.2% |
| 8 | 7.0% | 0.1% |

View File

@@ -53,7 +53,17 @@ Follow the section on [adding new fonts](#adding-new-font-to-configuration) and
This section addresses important commands and packages for the configuration of
fonts.
### Show Characters Of A Font
### Display Available Fonts for Character
To list all fonts that are able to display a specific unicode character use the following command.
`<unicode>` is the code for one (for example `26AA`) or more (for example `26AA,26AB`) unicode
characters.
```sh
fc-list :charset=<unicode>
```
### Show Characters of a Font
Using [FontForge](https://fontforge.org/en-US/) all characters of a given `.ttf` file can be shown.
The following shows the structure of a command to call FontForge with a file.

View File

@@ -48,12 +48,13 @@ git ls-files -v | grep "^S"
Authentication by default is done via a username and a password.
For some services such as GitHub.
it is not possible to use password as an authentication method.
The other possibility to authenticate to git is by using
[SSH](/wiki/linux/ssh.md).
The other possibility to authenticate to git is by using [SSH](/wiki/ssh.md).
The following sections assumes using a [Linux-based system](/wiki/linux.md) using
[OpenSSH](/wiki/linux/openssh.md).
For this a
[SSH certificate has to be created](/wiki/linux/ssh.md#generate-new-keys) and
[added to the authentication agent](/wiki/linux/ssh.md#adding-keys-to-authentication-agent).
[SSH certificate has to be created](/wiki/linux/openssh.md#generate-new-keys) and
[added to the authentication agent](/wiki/linux/openssh.md#adding-keys-to-authentication-agent).
Afterwards it the public SSH key to be added to the git server.
For GitHub there is
[a guide on that topic](https://docs.github.com/en/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password).
@@ -71,16 +72,52 @@ git clone https://github.com/tiyn/wiki
By using the SSH config file the clone command can be shortened to
`git clone github:tiyn/wiki`.
For this follow the
[corresponding section in the SSH entry](/wiki/linux/ssh.md#shorten-ssh-connection-commands).
[corresponding section in the SSH entry](/wiki/linux/openssh.md#shorten-ssh-connection-commands).
Set `Host` to `github`, `HostName` to `github.com` and `User` to `git`.
### Improved `git diff`
[Diff So Fancy](https://github.com/so-fancy/diff-so-fancy) is a drop in
replacement for the default `git diff` look.
It can be installed via the
[repository](https://github.com/so-fancy/diff-so-fancy) or the `diff-so-fancy`
package.
There are different possibilities to improve the diff of git.
One of them is [diff-so-fancy](#git-diff-diff-so-fancy) which allows word specific `git diff`.
A second and more modern option is [delta](#git-diff-delta) which additionally allows syntax
highlighting and a side-by-side view.
delta also improves the `git blame` command, which is another reason why it is widely more popular
then diff-so-fancy.
A more or less complete overview of the options was performed in an
[Article on Medium by Maxim Smolin](https://maximsmol.medium.com/improving-git-diffs-4519a6541cd1).
#### `git diff`: Delta
[delta](https://github.com/dandavison/delta) first needs to be installed.
Most [package managers](/wiki/linux/package_manager.md) package it in the package `git-delta`.
Afterwards it needs to be enabled.
To do this globally add the following lines to the configuration file of git, which can be found in
`~/.gitconfig`.
Depending on the system settings and preferences the dark-mode (`dark`) and the side-by-side view
(`side-by-side`) can and should be disabled.
```txt
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
dark = true
side-by-side = true
show-syntax-themes = true
[merge]
conflictStyle = zdiff3
```
#### `git diff`: diff-so-fancy
[diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) is a drop in replacement for the default
`git diff` look.
It can be installed via most [package managers](/wiki/linux/package_manager.md) using the
`diff-so-fancy` package.
Afterwards the following lines need to be run to complete the configuration.
```sh

View File

@@ -15,15 +15,21 @@ This section addresses the usage of Gnirehtet.
## Setting Up and Running Reverse Tethering
The following command can be used to setup the reverse tethering and also run it.
For it to work the mobile device has to enable `USB Debugging` so Gnirehtet can automatically be
For it to work the [Android](/wiki/android.md) device has to enable `USB Debugging` so Gnirehtet can automatically be
installed (which is internally done using `adb`).
Additionally `Use USB for` has to be set to `File Transfer` and not to
`USB Tethering` as this would start the normal tethering process and resolving internet access from
the [Linux](/wiki/linux.md) system to the Android device and not the other way around.
The initiating of the reverse tethering can be done by using the following command.
```sh
gnirehtet run
```
Alternatively and only after being set up correctly the reverse tethering can be started and
stopped with the corresponding two commands that follow.
When the `run` command is active the reverse tethering can be started and stopped using the
following commands.
If the `run` command is not active the reverse tethering will not work.
```sh
gnirehtet start

View File

@@ -1,7 +1,7 @@
# GPG
[GNU Privacy Guard](https://gnupg.org/) - short GnuPG or just GPG - is a free and open-source
implementation of OpenPGP from [RFC 4880](https://datatracker.ietf.org/doc/html/rfc4880).
implementation of [OpenPGP](/wiki/openpgp.md).
It is used to savely encrypt and decrypt messages or files using assymetric encryption.
## Setup
@@ -13,6 +13,15 @@ Sometimes it is also called `gnupg2`.
This section addresses the usage of the Open GPG.
### List or Find a Key
To find a key use the following command.
`<query>` is a search string and is optional.
```sh
gpg --list-keys <query>
```
### Generating a Key Pair
A fast way to generate a key pair is by running the following command.
@@ -104,6 +113,27 @@ gpg --recv-key <id>
gpg --lsign <id>
```
### Managing Multiple Users and E-Mails of an Existing Secret Key
A secret key can have more than one e-mail assigned to it.
After generating the key however only a single user is added by default.
To add another one use the following command where `<key-id>` is the id of the key to add the
e-mail to.
```sh
gpg --edit-key <key-id>
```
Afterwards a console will open.
Using `adduid` another user can be added by following the on-screen instructions.
Afterwards `save` will save the progress and exit from the console.
To delete an existing user and e-mail also open the edit-console.
Then list the existing users using the command `uid` and select the user id of the key to delete
with `uid <id>` where `<id>` is the key to delete.
Then delete it with `deluid` and save with `save`.
## Troubleshooting
This section will focus on errors and the fixing of errors of GPG.

View File

@@ -1,17 +1,17 @@
# Khard
[Khard](https://github.com/lucc/khard) is a adressbook that runs in your
[Khard](https://github.com/lucc/khard) is an address book that runs in your
[terminal](/wiki/linux/system_console.md).
You can sync it with [vdirsyncer](vdirsyncer.md).
## Setup
On most linux distributions Khal can be installed with the `khard` package.
On most [Linux](/wiki/linux.md) distributions Khal can be installed with the `khard` package.
Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
### Configuration
- Add and configure a config for khard
- Add and configure a config for Khard
- `mkdir ~/.config/khard` - add a directory for the config
- `cp /usr/share/doc/khard/khard.conf.example ~/.config/khard/khard.conf` -
Copy the example configuration
@@ -19,5 +19,5 @@ Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
#### Mutt
It is possible to use your khard-addressbook in mutt.
To see how it works check out the [Mutt](/#application/neomutt.md).
It is possible to use your Khard address book in mutt.
To see how it works check out the [Mutt](/wiki/linux/neomutt.md).

View File

@@ -175,5 +175,9 @@ password-border-radius = 0.341125em
## Troubleshooting
This section will focus on errors and the fixing of errors of LightDM.
### Bypass LightDM on Error
If it comes to problems that deny the login it can be useful to switch to another tty.
This can be done by hitting the key combination `CTRL+ALT+F2`.

View File

@@ -32,3 +32,19 @@ In `nvidia-settings` under
`X Server Display Configuration` select your display and click on `Advanced`
and select either `Force Composition Timeline` or
`Force Full Composition Timeline`.
### Pascal-GPUs and New Drivers
On some operating systems like [Arch Linux](/wiki/linux/arch-linux.md) the newer versions of
drivers are not compatible with Pascal GPUs anymore as explained in
[the german Arch forum](https://www.archlinux.de/news/35689-Nvidia-Treiber-ab-Version-590-stellen-den-Support-fuer-Pascal-GPUs-ein).
This is due to the drop of support for these cards from Nvidias site.
If Pascal-GPUs are still used some minor changes need to be performed and some packets need to be
replaced.
On Arch Linux-based systems this can be achieved by replacing the packages `nvidia-open` and
`nvidia-open-utils` with `nvidia-580xx-dkms`, `nvidia-580xx-utils` and `lib32-nvidia-580xx-utils`.
If upgrading from a Pascal-GPU to a newer version this change needs to be undone.
After the packages are changed it is important to
[rebuild the initial ramdisk](/wiki/linux/mkinitcpio.md#manually-generate-initial-ramdisk) and
reboot the system.

View File

@@ -1,14 +1,17 @@
# SSH
# OpenSSH
SSH is a network protocoll to securely connect to a computer.
In this article it is assumed that `openssh` is used.
[OpenSSH](https://www.openssh.com) is an implementation of the [SSH protocol](/wiki/ssh.md).
## Usage
This section addresses the usage of OpenSSH.
### Generate New Keys
To generate new ssh keys simply run `ssh-keygen -t ed25519` or
`ssh-keygen -t rsa -b 4096`.
For security reasons the Ed25519 is more secure, even if the key length is far smaller than its RSA
counterpart.
The keys can then be added to the authentication agent by as described in the
[corresponding article](#adding-keys-to-authentication-agent)
@@ -35,15 +38,30 @@ to `PermitRootLogin yes`.
To enable easy login without password you can add the contents of the file
`~/.ssh/id_rsa.pub` from your local machine to the file `~/.ssh/authorized_keys`
on the machine you want to log into.
You can use the modified command below for ease of use:
There are two options to add the public key to the remote machine.
The first is a more manual approach.
`<path-to-public-key>` is the path to the public key (for example `~/.ssh/id_rsa.pub`) and `<host>`
is the (user and) server to add the key to (for example `user@192.168.178.16`).
```sh
cat ~/.ssh/id_rsa.pub | ssh username@server 'cat >> ~/.ssh/authorized_keys'
cat <path-to-public-key> | ssh <host> 'cat >> ~/.ssh/authorized_keys'
```
This can also be more or less fully automated using the `-G` flag of SSH as described in
This can also be more or less fully automated using the `-G` flag of SSH as described in
[a YouTube video by nixhero](https://www.youtube.com/watch?v=xCX14u9XzE8).
The second option is a bit safer, due to using OpenSSHs tools, was described in a
[StackOverflow comment by Boy](https://stackoverflow.com/questions/18690691/how-to-add-a-ssh-key-to-remote-server).
It functions similar to the first and uses the following command.
```sh
ssh-copy-id -f -i <path-to-public-key> <host>
```
The `-f` flag can alos be omittet to check if the key is already installed.
For being very safe is important, a dry run can be performed using the `-n` flag.
### Mount Directory With SSHFS
This section is loosely based on
@@ -157,3 +175,18 @@ kill <process-id>
Files that are based on a remote server can be mounted as described in
[the corresponding section](#mount-directory-with-sshfs) to setup complete remote development.
### Specify Key Exchange Algorithms
It can be useful to specify the key exchange algorithms in the OpenSSH config file `~/.ssh/config`.
Some key exchange algorithms are more secure regarding post-quantum attacks.
The following configuration prefers and enforces hybrid post-quantumresistant key exchange
algorithms (`mlkem768x25519-sha256` and `sntrup761x25519-sha512`).
A modern classical fallback (`curve25519-sha256`) is included for compatibility.
This can be considered a form on
[system hardening](/wiki/linux/system-hardening.md#specific-steps-to-harden-a-system).
```
Host *
KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512,curve25519-sha256
```

View File

@@ -1,4 +1,4 @@
# Package Managers
# Package Manager
Package managers are important programs to get software onto your system.

View File

@@ -16,6 +16,20 @@ It features the same syntax.
This section addresses various usages of the arch linux package managers.
### Yay: Remove Make Dependencies
This section is based on a
[Reddit comment by AnalShart](https://www.reddit.com/r/archlinux/comments/116dd58/is_it_possible_to_default_remove_make).
The default behavious of Yay is not to remove the make dependencies.
This can be changed by adding the following lines to the config file `~/.config/yay/config.json` or
by editing it accordingly.
```json
{
"removemake": "yes"
}
```
### Ignoring Packages
Packages can be ignored by adding the package in `/etc/pacman.conf` under `IgnorePkg`.
@@ -321,3 +335,16 @@ To update the package either way the following command can be used.
```sh
sudo pacman -S --overwrite "*" <package name>
```
### Error `error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format`
If the error `error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format`
or a similar one with another database file is thrown it can mostly be easily fixed by removing the
database file with the following command.
```txt
rm -rf /var/lib/pacman/sync/*
```
Alternatively - and this is probably a bit safer - the files can be temporarily be moved somewhere
else and removed after confirming the error was fixed.

View File

@@ -2,7 +2,7 @@
[Papis](/wiki/linux/papis.md) is a [command-line based](/wiki/linux/shell.md) for
[Linux](/wiki/linux.md) [bibliography manager](/wiki/bibliographic_software.md) that can be used
for LaTeX using the BibTeX format.
for [LaTeX](/wiki/markup_language.md#latex) using the BibTeX format.
## Setup

View File

@@ -3,7 +3,7 @@
[PlayerCTL](https://github.com/altdesktop/playerctl) is a MPRIS (Media Player
Remote Interfacing Specification) [media player](/wiki/audio.md#media-software)
command-line controller for Spotify, [Sonixd](/wiki/subsonic.md#client), MPV and
many other different media clients aswell as [browser](/wiki/browser.md).
many other different media clients aswell as [browser](/wiki/web_browser.md).
## Setup

View File

@@ -0,0 +1,47 @@
# Raspberry Pi
A [Rapberry Pi](https://www.raspberrypi.com) is a single board comuter.
## Setup
For setting up a classic Raspberry Pi an SD card is needed that contains the operating system.
For this an image has to be flashed.
The images of the operating systems can be found on the
[official website](https://www.raspberrypi.com/software/operating-systems).
A command to flash may look similar to the following example, where `<img-path>` is the path to the
image and `<disk-path>` is the path to the device to flash to (for example `/dev/sdb1`).
```sh
dd if=<img-path> of=<disk-path> status=progress
```
This however can also be done using the Raspberry Pi imager - which most
[package managers](/wiki/linux/package_manager.md) package under `rpi-mager`.
It too can also be found on the [official website](https://www.raspberrypi.com/software).
When using the imager as a non-root user this user may have to be given rights to access disks or
at least the SD card as described in the
[corresponding article](/wiki/linux/disk-management.md#accessing-disks-as-user).
The setup using the imager is guided and easier.
## Hardware Additions
There are various hardware additions which can be used with the Raspberry Pi.
This section addresses them.
### AI HAT+
The [AI HAT](https://www.raspberrypi.com/documentation/accessories/ai-hat-plus.html) is an
extension which uses the [Hailo AI module](/wiki/hailo.md) for use with the
[Raspberry Pi 5](https://www.raspberrypi.com/products/raspberry-pi-5).
## Troubleshooting
This section addresses the usage of Raspberry Pi systems.
### SSH Servera Not Starting for Imager Setups
Sometimes the [imager](#setup) can run into errors which does not set up the
[SSH](/wiki/linux/openssh.md) server on the Pi correctly.
In this case the SSH server needs to be started manually by display and keyboard.

View File

@@ -14,12 +14,14 @@ The following is a list of Unix shells that are POSIX compliant.
`/bin/sh`. It is significantly faster than Bash and it is recommende to set
DASH to be [the system shell](#changing-the-system-shell-binsh).
- [Zsh](https://www.zsh.org/) is a shell designed to be interactive but also a
powerful scripting language. It is often set to be the
[default user shell](#changing-the-default-user-shell) because of its user
friendliness and a more features like the possibility for
powerful scripting language.
It is often set to be the [default user shell](#changing-the-default-user-shell) because of its
user friendliness and a more features like the possibility for
[syntax highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting)
and [auto suggestions](https://github.com/zsh-users/zsh-autosuggestions) and even an improved
version of [auto completion](https://github.com/marlonrichert/zsh-autocomplete).
For basic usage check [bash2zsh](https://www.bash2zsh.com/zsh_refcard/refcard.pdf) or
[zsh-lovers](https://grml.org/zsh/zsh-lovers.html).
## Usage

View File

@@ -8,6 +8,9 @@ Notable works of Suckless are the following.
- [ii](https://tools.suckless.org/ii/) is an IRC client
- [slock](https://tools.suckless.org/slock/) is a screen locker
- [st](https://st.suckless.org/) is a [terminal](/wiki/linux/system_console.md)
- [dwl](https://codeberg.org/dwl/dwl) is a window manager similar to dwm that can be used on
[Wayland](/wiki/linux/wayland.md) systems.
For the IPC-patch [dwlmsg](https://codeberg.org/notchoc/dwlmsg) can also be used.
Additionally to this Suckless maintains a list of free and open-source software that is endorsed by
Suckless.

View File

@@ -10,3 +10,12 @@ data.
list of security flaws of your system
- [arch-audit](https://gitlab.archlinux.org/archlinux/arch-audit) is a tool to find vulnerabilities
known to the [Arch](/wiki/linux/arch-linux.md) Security Team.
## Specific Steps to Harden a System
The following points are steps that harden a system.
- For [OpenSSH](/wiki/linux/openssh.md) enable hybrid post-quantum key exchange algorithms as
described in the [corresponding entry](/wiki/linux/openssh.md#specify-key-exchange-algorithms).
Using hybrid post-quantum-safe key exchange methods reduces the risk of so called "store-now,
decrypt-later" attacks.

View File

@@ -1,15 +1,15 @@
# TLP
[TLP](https://linrunner.de/tlp) is a linux command line utility for
[saving laptop battery power](/wiki/linux/battery_saving.md) aswell as optimizing battery life.
[TLP](https://linrunner.de/tlp) is a [Linux command](/wiki/linux.md) line utility for
[saving laptop battery power](/wiki/linux/hardware_%28linux%29.md#power-management) as well as
optimizing battery life.
## Setup
TLP can be installed on most distributions by installing the `tlp` package.
Additionally the installation of `tlp-rdw` is recommended, which is used to get better control over
Additionally, the installation of `tlp-rdw` is recommended, which is used to get better control over
radio devices.
Afterwards the TLP
[service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
Afterward the TLP [service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
started and enabled.
In contrast to other
[SystemD services](/wiki/linux/systemd.md#startstopenabledisable-a-service) this

View File

@@ -15,3 +15,13 @@ For this to work the compositor needs to use wlroots.
```sh
wlr-randr
```
## Troubleshooting
This section addresses problems that can occur when using Wayland and ways to solve them.
### Invisible Notifications and Pop-Ups
There is a chance that notifications and pop-ups are not displayed correctly at some time when
using Wayland.
To fix this the most simple way is to just restart the compositor that is currently used.

View File

@@ -23,14 +23,14 @@ One of them is `slock` by [suckless](/wiki/linux/suckless.md).
This will stand in as a screen locker for this section.
The screen can be run by simply running the following command.
```sh
```sh
slock
```
By default this will not be run automatically when the computer goes into sleep.
This can be changed by installing and using `xss-lock` like the following example shows.
```sh
```sh
xss-lock -- slock &
```
@@ -74,7 +74,7 @@ can be used that uses `synclient TouchpadOff=1` or `synclient TouchpadOff=0`.
This requires `xf86-input-synaptics` which is a synaptics driver for
notebook touchpads.
##### Enable Tap to Click
##### Enable Tap to Click
On Touchpads the tap to click option can be enabled by adding the following lines to the config
file `/etc/X11/xorg.conf.d/99-synaptics-overrides.conf`.
@@ -108,6 +108,25 @@ setxkbmap -query | grep -q '<layout 1>' && setxkbmap <layout 2> || setxkbmap <la
Using [SXHKD](/wiki/linux/sxhkd.md) a hotkey can be setup to seamlessly transition between the two
layouts.
##### Write Diacritics and Ligatures
In many languages there are ligatures (for example `œ`) and diacritics (for example `ç`).
An easy way to write them is by using the compose button.
Using the compose button these special symbols can be composed from their parts.
The `ç` can be written by chaining compose with `,` and `c`.
The `œ` can be written by chaining compose with `o` and `e`.
There are many other diacritics and ligatures that can be written this way.
To temporarily set up a compose key the following command can be used.
It will set the given key `<compose>` (for example the right control key with `rctrl`) to act as
the compose key when tapped.
`<layout>` specifies the layout of the keymap (for example german with `de`).
If it is omitted the english `en` layout will be set.
```sh
setxkbmap -layout <layout> -option compose:<compose>
```
#### Display
This section describes the handling of displays by X.
@@ -135,7 +154,7 @@ EndSection
This can be disabled temporarily by running `xset s off`.
The screen can also be turned off instantly with the command `xset dpms force off`.
If `OffTime` does not work add the following to the file `/etc/X11/xorg.conf.d/dpms.conf.
If `OffTime` does not work add the following to the file `/etc/X11/xorg.conf.d/dpms.conf`.
```txt
Section "ServerFlags"
@@ -147,8 +166,8 @@ Another option to do this is by using the command `xset`.
An example for this are the follwing commands which will enable the screensaver to act upon 10
minutes of inactivity.
```sh
xset s on
```sh
xset s on
xset s 600
```
@@ -236,7 +255,7 @@ an [Arch Linux](/wiki/linux/arch-linux.md)
[forum post](https://bbs.archlinux.org/viewtopic.php?id=294808).
To fix this you can run the following commands to temporarily make the file picker work.
```sh
```sh
systemctl --user import-environment DISPLAY XAUTHORITY
systemctl --user restart xdg-desktop-portal
```

View File

@@ -2,7 +2,8 @@
[LTeX](https://valentjn.github.io/ltex/index.html) is an offline grammar checking tool that can use
the Language Server Protocol - short LSP.
It is supports various [Markup languages](/wiki/markup_language.md) like LaTeX and Markdown.
It is supports various [Markup languages](/wiki/markup_language.md) like
[LaTeX](/wiki/markup_language.md#latex) and Markdown.
## Setup
@@ -48,8 +49,8 @@ onwards.
```
However this can be difficult when only using a few words.
Another easy and generally recommended way to change the language inside LaTeX documents is using
the babel package.
Another easy and generally recommended way to change the language inside
[LaTeX](/wiki/markup_language.md#latex) documents is using the babel package.
In the following examples `<language>` is the language indicator that babel uses (for example
`english`, `american`, `ngerman`).

View File

@@ -1,8 +1,10 @@
# Markup Language
A markup Language is way to encode text so that it has great amounts of structure and formatting.
The most common markup languages are [HTML](#html), Markdown, LaTeX and [XML](#xml).
The most common markup languages are [HTML](#html), Markdown, [LaTeX](#latex) and [XML](#xml).
Markup languages can be used for [note-taking](/wiki/note-taking.md).
Adding to normal markdown files, there are also `.mdx` files which allows the usage of JavaScripts
JSX in the markdown content for displaying charts and more.
## Grammar Checking
@@ -26,3 +28,32 @@ One of the most used ones is the
### XML
XML is a markup language often used together with [RSS Feeds](/wiki/rss.md).
### LaTeX
LaTeX provides a high-level, descriptive markup language.
It is mostly used in the scientific community but can be used for many things and as an alternative
to [Microsoft Word](/wiki/office_suite.md#programs).
LaTeX also features many different packages.
The following list contains some examples of it.
- [ZUGFeRD](https://ctan.org/pkg/zugferd) is a package for creating invoices.
- [Awesome-CV](https://github.com/posquit0/Awesome-CV) is a package for creating job applications.
#### Usage
This section addresses the usage of LaTeX.
##### Set Background Color
The background color can be set using the `xcolor` package and the `\pagecolor` command.
The following lines show a working example where the background color is set to the hexadecimal
color `<hexcol>`.
This needs to be changed (for example to `E0D6C0` for a parchment like color).
```tex
\usepackage{xcolor}
\definecolor{background}{HTML}{<hexcol>}
\pagecolor{background}
```

View File

@@ -6,26 +6,26 @@ needed.
## Setting Up a Meshtastic Node
To setup a Meshtastic Node a device that is capable of communicating via LoRa is needed.
To set up a Meshtastic Node a device that is capable of communicating via LoRa is needed.
Often used devices are [microcontrollers](/wiki/microcontroller.md) based on the
[ESP32-chip](/wiki/microcontroller.md#esp32) like the LILYGO TTGO T-BEAM or the Heltec V3, devices
based on the nRF52-chip like the RAK4631 and the LILYGO TTGO T-Echo or devices based on the
RP2040-chip like the Raspberry Pi Pico or the RAK11310 are needed.
RP2040-chip like the [Raspberry Pi](/wiki/linux/raspberry_pi.md) Pico or the RAK11310 are needed.
After the device acquisition the meshtastic firmware needs to be flashed on the device.
After the device acquisition the Meshtastic firmware needs to be flashed on the device.
This can be done using the [official Meshtastic Web Flasher](https://flasher.meshtastic.org/).
After selection of the device and the firmware the flashing process can be started.
The flasher works especially well on [Chrome-based Browsers](/wiki/web_browser.md).
The firmware can also be flashed using the command line.
To first check if the device is connected correctly the
[Python-package](/wiki/programming-languages/python.md) `esptool` can be used which can be
To first check if the device is connected correctly the
[Python-package](/wiki/programming_language/python.md) `esptool` can be used which can be
installed using [pip](/wiki/programming-languages/python.md#modules).
Some [package managers](/wiki/linux/package_manager.md) of
[Linux-based operating systems](/wiki/linux.md) also feature a standalone `esptool` package.
The following command will output the chip of the device connected.
```sh
```sh
esptool chip_id
```
@@ -33,7 +33,7 @@ Please note that on Linux sometimes the command varies a bit.
`esptool.py chip_id` is also common depending on the used distribution.
Because the command needs hardware access it also is possible that `sudo`-rights are needed.
After confirming that the device is recognized by esptool the flashing can be achieved by
After confirming that the device is recognized by ESPTool the flashing can be achieved by
downloading the firmware that corresponds with the selected device and running the
`device-install.sh` (for Linux and Mac) or the `device-install.bat` script (for
[Windows](/wiki/windows.md)).
@@ -42,17 +42,17 @@ The firmware can be downloaded from the [official website](https://meshtastic.or
[the GitHub page of the project](https://github.com/meshtastic/firmware/releases).
Make sure to select the firmware (starting with `firmware-`) `zip`-archive that corresponds with
your target device.
Afterwards unzip it and run one of the following commands depending on your operating system.
Afterward unzip it and run one of the following commands depending on your operating system.
Make sure to adjust `<Board>` and `<Version>` accordingly.
```sh
```sh
./device-install.sh -f firmware-<Board>-<Version>.bin
device-install.bat -f firmware-<Board>-<Version>.bin
```
To update a device to a newer firmware version one of the following commands can be used.
```sh
```sh
./device-update.sh -f firmware-<Board>-<Version>-update.bin
./device-update.bat -f firmware-<Board>-<Version>-update.bin
```

View File

@@ -4,8 +4,7 @@
apps from websites.
This way a single website can be used as an application in contrast to opening it in a
[browser](/wiki/web_browser.md).
It uses [Electron](https://www.electronjs.org/) which in turn uses
[Chromium](https://www.chromium.org/).
Nativefier creates [Electron-based web-apps](/wiki/electron.md).
## Setup

32
wiki/neural_network.md Normal file
View File

@@ -0,0 +1,32 @@
# Neural Network
A neural network - often shortened to NN - is a computational model which is part of so called
artificial intelligence.
## Useful Tools
There are some useful tools to use with neural networks.
- [Netron](https://github.com/lutzroeder/netron) is a open-source and self-hostable tool to
visualize neural networks.
It is also easily available from the [official website](https://netron.app/).
## Frameworks
The following is a list of frameworks to design or run neural networks.
- [PyTorch](/wiki/programming_language/python.md#pytorch)
- [Tensorflow](/wiki/programming_language/python.md#tensorflow)
## Neural Network Accelerators
Neural network accelerators are devices to run neural networks by inference.
The following is a list of possible devices.
- [Raspberry Pi AI Hat+](/wiki/linux/raspberry_pi.md#ai-hat) is a standalone accelerator which
directly attaches to a [Raspberry Pi](/wiki/linux/raspberry_pi.md) via the GPIO header.
- [ESP32S3](/wiki/microcontroller.md#esp32) is a self-contained microcontroller by Seeed with
integrated AI acceleration.
It does not need an external connection and is especially useful when a small form-factor is
needed.
- Google Coral Edge TPU is a USB-connected accelerator that is not embedded in the host system.

View File

@@ -10,6 +10,7 @@ The following list shows various ways of digital note-taking.
- [saber](https://github.com/saber-notes/saber) is a cross-platform app - available for
[Android](/wiki/android.md), [Windows](/wiki/windows.md), MacOS and [Linux](/wiki/linux.md).
It is mainly used for handwriting notes and annotating PDFs and images.
- [Markup](/wiki/markup_language.md) languages like Markdown or LaTeX can be used to type notes.
- [Markup](/wiki/markup_language.md) languages like Markdown or
[LaTeX](/wiki/markup_language.md#latex) can be used to type notes.
An easy template that combines the simplicity of Markdown and the features of LaTeX is
[the Eisvogel Panoc-Latex-Template](https://github.com/Wandmalfarbe/pandoc-latex-template).

View File

@@ -1,7 +1,7 @@
# Office Suite
An office Suite are bundled programs that usually include productivity tools like word processing,
spreadsheet editing, presentations aswell as e-mail and calendar software.
spreadsheet editing, presentations aswell as [email](/wiki/email.md) and calendar software.
## Programs
@@ -18,3 +18,8 @@ The following is a list of programs that are popular.
and [Linux](/wiki/linux.md).
Most of the time this suite is not used anymore in favor for LibreOffice due to lackluster
development.
Additionally to the full fledged office suites programs such as
[email clients](/wiki/email.md#client) exist.
Those are not part of the office suite category by definition but are at least adjacent and have to
be mentioned here aswell.

20
wiki/openpgp.md Normal file
View File

@@ -0,0 +1,20 @@
# OpenPGP
[OpenPGP](https://www.openpgp.org/) is the most widely used encryption standard proposed in from
[RFC 4880](https://datatracker.ietf.org/doc/html/rfc4880).
## Setup
There are different implementations of OpenPGP.
Many [Linux](/wiki/linux.md) [package managers](/wiki/linux/package_manager.md)
package the implementation called [Gnu Privacy Guard](/wiki/linux/gpg.md) in the `gnupg` or
sometimes also `gpg` or `gpg2` package.
## Usage
This section addresses the usage of OpenPGP.
### Encrypting, Decrypting, Signing and Verifying Emails
OpenPGP is often used to encrypt, decrypt or sign [emails](/wiki/email.md).
Most modern [email clients](/wiki/email.md#client) feature a way to do that.

View File

@@ -10,7 +10,8 @@ This section focusses on the usage of Pandoc.
### Converting MS Word to LaTeX
By using the following command a proprietary Microsoft Word document (named `input.docx` in this
example) can be converted to a file in LaTeX-Format (in this example named `output.tex`).
example) can be converted to a file in [LaTeX](/wiki/markup_language.md#latex)-Format (in this
example named `output.tex`).
```sh
pandoc input.docx -o output.tex

View File

@@ -11,7 +11,7 @@ The following is a list of these tools.
It can be used on dual screen setup to give the presenter an additional slide for comments.
- PDF files can easily be used for presenting cross-platform but often used for
[Linux-based operating systems](/wiki/linux.md).
They can easily be generated by LaTeX.
They can easily be generated by [LaTeX](/wiki/markup_language.md#latex).
- [pympress](https://github.com/Cimbali/pympress) is a cross-platform tool for the presentation via
PDF files.
It is also usable for dual screen setups.

View File

@@ -8,3 +8,39 @@ language.
You can install nim using choosenim with
`curl https://nim-lang.org/choosenim/init.sh -sSf | sh`.
If you're on an arch-based machine you can also run `yay -S choosenim` (install `yay` if necessary).
## Usage
This section addresses the usage of Nim.
### Use Python Packages
[Python modules](/wiki/programming_language/python.md#modules) can easily be used in Nim using the
module [nimpy](#nimpy).
## Modules
There are various modules for Nim.
As package manager `nimble` is used most of the time.
This section addresses various different modules.
### Arraymancer
[Arraymancer](https://github.com/mratsim/Arraymancer) is a tensor library for Nim which can be used
to run deep learning on CPUs, GPUs and embedded devices.
### nimpy
[nimpy](https://github.com/yglukhov/nimpy) is a [Python](/wiki/programming_language/python.md)
bridge for the Nim programming languages.
With it [Python modules](/wiki/programming_language/python.md#modules) can be used easily inside
Nim.
### SciNim
[SciNim](https://github.com/SciNim) is a collection of modules more than a single one.
It features various tools for scientific purposes from curve fitting to data visualization.
An overview of it can be achieved on the
[getting-started repository](https://github.com/SciNim/getting-started/blob/main/book/overview/index.md).

View File

@@ -30,7 +30,7 @@ A guide and description of the usage can be found on [gioele.io](https://gioele.
This section is based on a guide by [Linuxize](https://linuxize.com/post/how-to-install-python-3-9-on-ubuntu-20-04/).
On [Linux-based systems](/wiki/linux.md) Python can be easily installed using make.
The following shows a process of installing Python 3.9.1.
The following shows a process of installing Python `3.9.1`.
When another Python version is needed the version number has to be adapted accordingly.
First make sure all the dependencies are installed.
@@ -71,6 +71,38 @@ python3.9 --version
## Usage
This section addresses the usage of Python.
### Convert `.ipynb` Files to `.py` Files and Back
Jupyter notebooks in the `.ipynb` format can easily be converted to normal Python files using
[jupytext](https://jupytext.readthedocs.io/en/latest/).
This can sometimes be useful when trying to avoid using notebooks.
The following command will convert the file `<file>.ipynb` to a normal Python file.
`<input-file>` describes the path without the file extension.
```sh
jupytext --to py <input-file>.ipynb
```
The same also works the other way around.
```sh
jupytext --to ipynb <input-file>.py
```
Using `md` in the `--to` option the notebook can also be converted to a
[markdown](/wiki/markup_language.md) file and back.
Alternatively [notedown](https://pypi.org/project/notedown/) can also convert to markdown using the
following commands.
`<output-file>` is the path to the output file again without the extension.
```sh
notedown <input-file>.ipynb --to markdown > <output-file>.md
```
### Create a requirements file
To automatically create a `requirements.txt` of your current project, navigate
@@ -90,10 +122,10 @@ following command.
```sh
source ./bin/activate
```
And it can be disabled by running the following.
```sh
```sh
deactivate
```
@@ -115,7 +147,7 @@ directory.
## Modules
There are various modules and package managers to install these for python like
There are various modules and package managers to install these for Python like
`pip`.
For this usually a virtual environment is needed - as it is described in
[the setup section](#setup).
@@ -127,12 +159,21 @@ If it doesnt work the packages can be installed globally using `pip` together wi
`--break-system-packages` flag.
This flag is to be used with care.
This section addresses various different modules.
### PyTorch
This section addresses the [PyTorch module](https://pytorch.org/).
Pytorch is a machine learning resource which is often used for
[neural networks](/wiki/neural_network.md).
#### Setup Pytorch with Cuda for GPU usage
Please note that according to
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
Cuda 13 does not support nVidia Pascal GPUs.
In this case an earlier version of Cuda has to be used.
If you are on Arch Linux or a distribution based on it install
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
@@ -150,11 +191,29 @@ torch.cuda.is_available()
This should give back `True`.
### Hailo
The package for [Hailo chips](/wiki/hailo.md) has to be downloaded from the
[official website](https://hailo.ai/developer-zone/software-downloads).
Additionally additional setup may be required as explained in the
[Hailo article](/wiki/hailo.md#setup)
Hailo chips can be used to run converted [TensorFlow](#tensorflow) models.
The conversion process is explained in the
[Hailo article](/wiki/hailo.md#preparing-tensorflow-models-for-the-ai-hat)
To run the inference using Python on ARM boards like the
[Raspberry Pi AI Hat +](/wiki/linux/raspberry_pi.md#ai-hat)
[zlodeibaal's article in Medium](https://medium.com/@zlodeibaal/how-to-run-hailo-on-arm-boards-d2ad599311fa)
can be referenced.
### TensorFlow
This section addresses the [TensorFlow module](https://www.tensorflow.org/).
Tensorflos is a machine learning resource which is often used for
[neural networks](/wiki/neural_network.md).
#### Basic Usage of TensorFlow
#### Basic Usage of TensorFlow
The basic usage of TensorFlow is described in
[the official guide](https://www.tensorflow.org/guide/keras/serialization_and_saving).
@@ -163,3 +222,18 @@ Additionally it is noted that the dataset may have to be shuffled manually as de
Finally
[a Medium blog post](https://medium.com/@danielonugha0/how-to-change-the-learning-rate-of-tensorflow-b5d854819050)
describes how to easily change the learning rate.
#### Combining Models
Models that are normally run in sequence but trained and saved separately can be easily be combined
into a single model.
This can have some advantages, for example when using inteference for deep learning on Edge TPUs
like the [Hailo chips](/wiki/hailo.md) or the [EPS32S3](/wiki/microcontroller.md#esp32).
A simple example for the combination of two models (`model1` and `model2`) into a new model
(`combined_model`) is the following code.
```sh
output = model2(model1.output)
combined_model = tf.keras.models.Model(inputs=model1.input, outputs=output)
```

View File

@@ -0,0 +1,87 @@
# Viper
[Viper](https://www.pm.inf.ethz.ch/research/viper.html) is a verification language among other
tools.
## Setup
For the Viper language to work a verifier needs to be set up.
The two possibilities are [Carbon](https://github.com/viperproject/carbon) and
[Silicon](https://github.com/viperproject/silicon).
This section explains the installation for [Linux-based systems](/wiki/linux.md), but they are also
available for [Windows](/wiki/windows.md) systems though the steps to setup differ.
For this navigate download the code from [Silicons Github](https://github.com/viperproject/silicon)
and/or [Carbon Github](https://github.com/viperproject/carbon).
There are some dependencies.
For both Carbon and Silicon to work correctly Z3 has to be installed.
This can easily be done, for example by installing the `z3` package, which is available from
various [package managers](/wiki/linux/package_manager/pacman_and_aur.md).
For Carbon Boogie has to be installed too.
This is best done by installing a .NET SDK which is often packaged in a package called `dotnet-sdk`
or a similar named one.
Afterwards boogie can be installed using the following command.
```sh
dotnet tool install -g boogie
```
Afterwards the building of Silicon and/or Carbon can follow.
The easiest way to build one or both verifiers locally is creating a `.jar` file via
[Docker](/wiki/docker.md) using the
[viperproject image](/wiki/docker/viperproject_-_viperserver.md).
Start the Docker container as explained in the
[corresponding wiki entry](/wiki/docker/viperproject_-_viperserver.md).
Make sure to change the setting as described.
Then in the Docker container build Silicon by running the following commands.
```sh
cd /mnt/silicon
sbt assembly
```
For Carbon similarly run the following commands.
```sh
cd /mnt/carbon
sbt assembly
```
Afterwards leave the Docker container.
It is no longer needed.
The `.jar` files are now available in `<path-to-carbon>/target/scala-<version>/carbon.jar` or
`<path-to-silicon>/target/scala-2.13/silicon.jar` and are ready to be used outside the docker
container from the host machine.
Afterwards Carbon and/or Silicon are ready to be [used](#usage).
## Usage
This section addresses the usage of Viper.
### Basic Verifier Usage
After [Silicon](https://github.com/viperproject/silicon) and/or
[Carbon](https://github.com/viperproject/carbon) have been setup according to the
[setup section](#setup), they can be used.
For Silicon run the following command.
`<path-to-silicon-jar>` describes the path of the Silicon jar which was set in the [setup](#setup).
`<path-to-viper-file>` is the path to the Viper file to verify.
```sh
java -jar <path-to-silicon-jar> <path-to-viper-file>
```
For Carbon run the following command.
`<path-to-carbon-jar>` describes the path of the Carbon jar which was set in the [setup](#setup).
`<path-to-z3>` is the path to the Z3 binary (for example `/bin/z3`) and `<path-to-boogie>` is the
path to the boogie binary (for example `~/.dotnet/tools/boogie` when set up with .NET).
```sh
java -jar <path-to-carbon-jar> --z3Exe <path-to-z3> --boogieExe <path-to-boogie> <path-to-viper-file>
```

View File

@@ -2,14 +2,14 @@
Screen capture describes the process of recording a computer screen.
For the remotely displaying the screen to another device the
[corresponding entry](/wiki/screen_sharing.md) contains tips and tricks.
[corresponding entry](/wiki/screen-sharing.md) contains tips and tricks.
## Screen Capture options
Windows systems using an Nvidia graphics card can make use of ShadowPlay a
screen recording software integrated in Nvidias suite GeForce Experience.
Linux systems can use the
Linux's systems can use the
[GPU Screen Recorder](/wiki/linux/gpu_screen_recorder.md) to make
gpu-accelerated screen recordings.
GPU accelerated screen recordings.
It features similar features to ShadowPlay.

View File

@@ -2,6 +2,7 @@
[Signal](https://signal.org) is an encrypted, open-source messenger that allows voice and video
calls as well as instant messaging chats.
ahe desktop client comes in the form of an [Electron based-app](/wiki/electron.md).
## Usage

View File

@@ -23,19 +23,7 @@ an alternative to proprietary applications by the smart devices' vendor.
## Smartphones and Tablet Computers
Smartphones and Tablet computers are among the most used electronic devices.
Smartphones and tablet computers are among the most used electronic devices.
They are often used to [communicate](/wiki/communication.md) or
[surfing the internet](/wiki/web_browser.md).
### Remote Control and Screen Mirroring
[Android](/wiki/android.md) based devices can use [scrcpy](/wiki/android/scrcpy.md) to mirror the
screen and allow controlling it by a [Windows](/wiki/windows.md) or [Linux](/wiki/linux.md) system.
### Usage as a Webcam
Smartphones and Tablet computers usually are equipped with a decent camera.
If a [Linux](/wiki/linux.md) or [Windows](/wiki/windows.md) system is missing a
[webcam](/wiki/webcam.md) which is only rarely used it can be useful to repurpose the smart device
as a webcam.
This can be done as explained in the [webcam entry](/wiki/webcam.md#using-a-smartphone-as-webcam).
Most of the time smartphones and tablets also feature a [webcam](/wiki/webcam.md).

10
wiki/ssh.md Normal file
View File

@@ -0,0 +1,10 @@
# SSH
SSH is a network protocoll to securely connect to a computer.
## Implementations
There are various implementations of the SSH protocol.
- [OpenSSH](/wiki/linux/openssh.md) is an SSH implementation for
[Linux-based systems](/wiki/linux.md).

View File

@@ -9,7 +9,7 @@ The Software synchronizes files between multiple devices directly.
The software can be setup via [Docker](/wiki/docker.md) with the
[linuxserver image](./docker/linuxserver_-_syncthing.md).
Additionally the software can be installed by visiting the
Additionally, the software can be installed by visiting the
[official website](https://syncthing.net/downloads/) and download it from
there.
@@ -21,7 +21,7 @@ Syncthing can be configured in root and in user space.
This section assumes that a Linux system is used.
For root space configuration you can use the Docker image for easy setup.
Afterwards navigate to the set IP with your browser and set up the directories
Afterward navigate to the set IP with your browser and set up the directories
to sync.
#### User space configuration for Linux
@@ -30,10 +30,10 @@ This section assumes that a Linux system is used.
The user space configuration is a bit more difficult than the root space
configuration.
The following steps are adapted from a
[reddit post by tmplshdw](https://www.reddit.com/r/SteamDeck/comments/uhf8lw/comment/i77ojke/).
[Reddit post by tmplshdw](https://www.reddit.com/r/SteamDeck/comments/uhf8lw/comment/i77ojke/).
- Download synthing from their website as described in the
[setup section][#setup].
- Download Syncthing from their website as described in the
[setup section](#setup).
- Extract the downloaded `.tar.gz` file
- Copy the file named `syncthing` to your home directory
- In the downloaded folder copy the file

View File

@@ -1,33 +1,33 @@
# Teamspeak
# TeamSpeak
[Teamspeak](https://www.teamspeak.com) is a voice-over-IP service.
[TeamSpeak](https://www.teamspeak.com) is a voice-over-IP service.
There are 2 versions currently maintained.
Teamspeak3 is the older version.
Teampeak5 or just short Teamspeak is the newer version that is not completely released yet.
Teamspeak3 servers are also used by Teamspeak5.
TeamSpeak3 is the older version.
Teampeak5 or just short TeamSpeak is the newer version that is not completely released yet.
TeamSpeak3 servers are also used by TeamSpeak5.
## Setup
Teamspeak consists of two parts: [a client](#client) and [a server](#server).
TeamSpeak consists of two parts: [a client](#client) and [a server](#server).
### Client
Teamspeak3 is available for [Windows](/wiki/windows.md) on the
[Teamspeak website](https://www.teamspeak.de/download/).
TeamSpeak3 is available for [Windows](/wiki/windows.md) on the
[TeamSpeak website](https://www.teamspeak.de/download/).
On most [Linux](/wiki/linux.md) distributions it can be installed with the `teamspeak3` package.
Teamspeak5 is available for Windows on the
[Teamspeak website](https://teamspeak.com/de/downloads/#ts5).
TeamSpeak5 is available for Windows on the
[TeamSpeak website](https://teamspeak.com/de/downloads/#ts5).
On most Linux distributions it can be installed with the `teamspeak` package.
### Server
The server software can be setup via [Docker](/wiki/docker.md) with the
[teamspeak image](./docker/teamspeak.md).
This image can setup a Teamspeak3 server.
This image can setup a TeamSpeak3 server.
#### Link Teamspeak3 to a subdomain
#### Link TeamSpeak3 to a subdomain
To link Teamspeak3 to one of your subdomains you need to add a
To link TeamSpeak3 to one of your subdomains you need to add a
[DNS SRV-record](./dns.md#srv-record):
```txt
@@ -45,34 +45,34 @@ target: ts3.<domain>.<TLD>
## Usage
This section addresses various features of Teamspeak3.
This section addresses various features of TeamSpeak.
### Installing a Sound Pack
Sound packs can be found on the
[myTeamspeak website](https://www.myteamspeak.com/?search=&type=SOUNDPACK).
[myTeamSpeak website](https://www.myteamspeak.com/?search=&type=SOUNDPACK).
They are often available as a `.ts3_soundpack` file.
This file is similar to a `.zip` archive and can be unpacked the same way.
Afterwards the folder containing the audio files (`.wav` files) needs to be inserted into the sound
folder of teamspeak.
For Teamspeak3 on [Linux](/wiki/linux.md) systems this folder can be found at
folder of TeamSpeak.
For TeamSpeak3 on [Linux](/wiki/linux.md) systems this folder can be found at
`/opt/teamspeak3/sound`.
For Teamspeak5 on Linux the folder is available at `/opt/teamspeak/html/client_ui/sound`.
Following this the sound pack is available after the next (re-)start of teamspeak.
For TeamSpeak5 on Linux the folder is available at `/opt/teamspeak/html/client_ui/sound`.
Following this the sound pack is available after the next (re-)start of TeamSpeak.
### Setting Up a Music Bot
For Teamspeak there are various bots capable of playing music.
For TeamSpeak there are various bots capable of playing music.
The following is a list of bots featured in this wiki that can do this.
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for Teamspeak that can play music and sounds.
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for TeamSpeak that can play music and sounds.
It's closed-source and free of charge.
It also features [Discord](/wiki/discord.md) support.
### Channel Visibility
As explained by
[guisinho_DBR on the Teamspeak forums](https://community.teamspeak.com/t/room-that-nobody-can-see-only-some-people-with-powers/20471)
[guisinho_DBR on the TeamSpeak forums](https://community.teamspeak.com/t/room-that-nobody-can-see-only-some-people-with-powers/20471)
there is no way to hide a channel completely from view.
It is however possible to set the subscription and description view power of a channel to a high
value.

View File

@@ -1,13 +1,37 @@
# Thunderbird
[Thunderbird](https://www.thunderbird.net/en-US/) is a free and open-source program to manage
numerous e-mail addresses, calendars, todos and contacts.
numerous [email](/wiki/email.md) addresses, calendars, todos and contacts.
## Usage
The following section addresses different uses and add-ons of Thunderbird.
### Changing the (dark/light) Theme
### Use PGP Key for Encryption, Decryption and Signing
Thunderbird can use [OpenPGP](/wiki/openpgp.md) to sign, encrypt or decrypt mails.
To add this navigate to the `Account Settings` under `Edit` and then select the mail to add the PGP
key to and `End-to-End Encryption`.
There keys can be added by selecting `Add Keys...` and afterwards the private key can be selected
for encryption, decryption and signing.
This however is only possible if the key is issued to the same e-mail it should be added to.
In the `Account Settings` of emails with set up PGP key the default options can be set up.
Under `Deault settings for sending messages` it can be set to encrypt or not encrypt mails by
default.
Emails can also be signed by default if not encrypted (for this select
`Sign unencrypted messages`).
### Enable Spell Checking of a Specific Language
Spell checking can be changed in the `Settings` from the `Edit` tab.
The configuration can be done under `Composition` in the `Spelling` section.
There are two checkboxes to specify when the spell checking should occur.
And under `Languages:` various and also multiple languages can be checked.
To add another language follow the link and navigate to the language to install.
Then install only dictionary since the language pack is not needed.
### Changing the (Dark/Light) Theme
This section is based on a
[superuser comment by blnks](https://superuser.com/questions/1757333/how-can-i-view-thunderbird-in-full-dark-mode).
@@ -70,3 +94,29 @@ By default Thunderbird will show a preview for mails on the right hand side when
This is called the message pane.
It can be hidden by drag and drop or by pressing the F8-key.
Using the same key it can also be shown again.
### Downgrading Profile
Sometimes - mostly for [troubleshooting reasons](#troubleshooting) - it can be useful to downgrade
Thunderbird (for example using
[downgrade](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages) on
[Arch Linux](/wiki/linux/arch-linux.md)).
If this is done the profile will not be downwards compatible by default.
On [Linux](/wiki/linux.md) systems the following command can be used to safely downgrade the
profile.
```sh
thunderbird -profilemanager --allow-downgrade
```
## Troubleshooting
This section will focus on errors and the fixing of errors of Thunderbird.
### Not Displaying Profile Images Correctly
On version 145 of Thunderbird the profile pictures of contacts from a CardDAV-synced addressbook
may not be correctly displayed.
This bug was reported by [Andrewhotlab](https://bugzilla.mozilla.org/show_bug.cgi?id=2001944).
An easy fix for this and similar bugs is to [downgrade Thunderbird](#downgrading-profile) to the
last version which was not affected by the bug.

View File

@@ -7,3 +7,116 @@ a special integration of infrastructure components (e.g. [Docker](./docker.md)).
The software can be setup via [Docker](/wiki/docker.md) with the
[traefik image](./docker/traefik.md).
## Usage
This section addresses the usage of Traefik.
### Redirections for Docker Service
It is assumed that the service already has a reverse proxy setup as described in the
[corresponding section](#reverse-proxies-for-docker-service)
For redirections to work they have to be added to the `data/config/dynamic.yml` file.
For this to work define them inside the `data/config/dynamic.yml` set up in the
[Docker image](/wiki/docker/traefik.md) under `middlewares:`.
Redirections are specified by Regex as shown in the following example.
`<redirection-name>` is the name of the redirection and `<regex>` the regular expression to replace
while `<replacement>` is the replacement of the regular expression.
```yml
<redirection-name>:
redirectregex:
permanent: true
regex: <regex>
replacement: <replacement>
```
The `labels:` section of the [Docker](/wiki/docker.md) services that should use these redirections
have to be adapted.
The following line needs to be added.
`<service-name>` is the name of the service.
```yml
- "traefik.http.routers.<service-name>.middlewares=<redirection-name>@file"
```
Make sure to add the domain that will be redirected to and from the labels aswell.
This will look similar like the following.
In this case the subdomains `<subdomain-1>` and `<subdomain-2>` under the domain `<domain>` is
available, but the exact look can vary since also different domains or more than two addresses can
be added.
```yml
- "traefik.http.routers.<service-name>.rule=Host(`<subdomain-1>.<domain>`, `<subdomain-2>.<domain>`)"
```
#### Docker Redirection: Appending a `www.`
To always append a `www.` to the address the following redirection settings can be used.
```yml
redirect-non-www-to-www:
redirectregex:
permanent: true
regex: "^https?://(?:www\\.)?(.+)"
replacement: "https://www.${1}"
```
Additionally follow the setup regarding the service as explained in
[the general redirection sectino](#redirections-for-docker-service).
#### Docker Redirection: Removing a `www.`
To always remove a `www.` from the address the following redirection settings can be used.
```yml
redirect-www-to-non-www:
redirectregex:
permanent: true
regex: "^https?://www\\.(.+)"
replacement: "https://${1}"
```
Additionally follow the setup regarding the service as explained in
[the general redirection sectino](#redirections-for-docker-service).
#### Docker Redirection: Redirect a Domain to Another
For a simple redirection that replaces a domain with another the following redirection settings can
be used.
This will redirect the domain `<domain-1>` (for example `www.abc.de`) to domain `<domain-2>` (for
example `123.xyz.eu`).
```yml
redirect-<domain-1>-to-<domain-2>:
redirectregex:
permanent: true
regex: "^https://<domain-1>(.*)"
replacement: "https://<domain-2>${1}"
```
Additionally follow the setup regarding the service as explained in
[the general redirection sectino](#redirections-for-docker-service).
### Reverse Proxies for Docker Service
To create a reverse proxy from a docker container add the following lines in the
`labels:` section of the `docker-compose.yml` of the service to proxy.
```yml
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.<service-name>-secure.entrypoints=websecure"
- "traefik.http.routers.<service-name>-secure.rule=Host(`<subdomain>.<domain>`)"
- "traefik.http.routers.<service-name>-secure.service=<service-name>"
- "traefik.http.services.<service-name>.loadbalancer.server.port=<port>"
```
This configuration automatically redirects http to https.
When using this configuration the port specified in the latter lines can be
ommitted in the `ports:` section if not used directly.
This ensures access only via https and restricts access via ip and port.
Change `<service-name>` according to the service you want to publish and `<subdomain>` aswell as
`<domain>` to the domain you intent to publish the service to.

24
wiki/vencord.md Normal file
View File

@@ -0,0 +1,24 @@
# Vencord
[Vencord](https://vencord.dev/) is an unofficial [Discord](/wiki/discord.md) client mod which
allows the user to add various functionality through plugins and new themes.
Unlike [BetterDiscord](/wiki/betterdiscord.md) it is a standalone client and does not need the
official Discord client installed.
## Setup
The Vencord program can be installed using files from
[the official website](https://vencord.dev/download/).
Alternatively many [Linux](/wiki/linux.md) [package managers](/wiki/linux/package_manager.md)
package Vesktop in the `vesktop` (or `vesktop-git` and `vesktop-bin`) package.
## Usage
This section addresses the usage of Vesktop.
### Useful plugins
The following is a list of useful plugins for Vesktop.
- [PinDMs](https://vencord.dev/plugins/PinDMs) is a plugin that allows to pin private channels to
the top of the list of direct messages

View File

@@ -8,3 +8,19 @@ VNC is especially used for accessing graphical applications or
[terminals](/wiki/linux/system_console.md) of a remote server,
[dockerized](/wiki/docker.md#dockerize-a-graphical-application) or virtualized
program.
## VNC Clients
The following is a list of VNC clients.
- [AVNC](https://github.com/gujjwal00/avnc) is a VNC client for [Android](/wiki/android.md)
devices.
- bvnc is a VNC client for [Linux](/wiki/linux.md).
- Vinagre is a VNC client for [Linux](/wiki/linux.md).
- gvnc is a VNC client for [Linux](/wiki/linux.md).
## VNC Server
The following is a list of VNC server.
- [wayvnc](https://github.com/any1/wayvnc) is a VNC server for [Linux](/wiki/linux.md) systems.

View File

@@ -15,5 +15,5 @@ This section lists various VPN implementations.
- [OpenVPN](/wiki/openvpn.md) is probably the most well known VPN implementation.
- [WireGuard](/wiki/wireguard.md) is a modern, fast and secure implementation of the VPN protocol.
It is free and open-source.
- [Global Protect](/wiki/global_protect.md) is a proprietary VPN that is mostly used by corporation
- [Global Protect](/wiki/globalprotect.md) is a proprietary VPN that is mostly used by corporation
and learning facilities.

View File

@@ -21,11 +21,8 @@ This program provides a simple interface for capturing and viewing video from a
Additionally guvcview provides an interface to configure various webcam settins
and enable a few effects on top of it.
## Using a Smartphone as Webcam
## Using a Smart Device as a Webcam
A [smartphone](/wiki/smart_device.md) and its camera aswell as flashlight can be used as a simple
replacement for a webcam.
For [Android](/wiki/android.md) smartphones this can be easily achieved by using
[DroidCam](/wiki/android/droidcam.md).
An alternative to DroidCam with a with decidedly better resolution is
[IP Webcam](/wiki/android/ip_webcam.md).
It is possible to use [smart devices](/wiki/smart_device.md) as a webcam.
For [Android](/wiki/android.md) devices the guide to achieve this, can be found in the
[corresponding section of the Android entry](/wiki/android.md#usage-as-a-webcam.)

View File

@@ -9,9 +9,10 @@ including subscriptions.
- [Invidious](/wiki/invidious.md) is self-hosted and provides a cross-platform web service.
This frontend allows the usage of [SponsorBlock](#automatically-skip-sponsorships).
- [FreeTube](https://freetubeapp.io/) is a alternative frontend that provides a local desktop
application for [Linux](/wiki/linux.md), Mac and [Windows](/wiki/windows.md) systems.
This application has [SponsorBlock](#automatically-skip-sponsorships) built in.
- [FreeTube](https://freetubeapp.io/) is an alternative [Electron-based](/wiki/electron.md)
frontend that provides a local desktop application for [Linux](/wiki/linux.md), Mac and
[Windows](/wiki/windows.md) systems.
It also features [SponsorBlock](#automatically-skip-sponsorships) by default.
- [NewPipe](https://github.com/TeamNewPipe/NewPipe) for [Android](/wiki/android.md) phones is an
application that is available via the [F-Droid Appstore](/wiki/android/f-droid.md).