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

Compare commits

...

68 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
ee660899d1 linux: added proxmox major version upgrade guide 2025-11-11 04:19:47 +01:00
ca7b3971f5 linux: split package managers in multiple entries 2025-11-11 04:00:44 +01:00
d3c7daca15 linux: added debian an apt (minor and major) upgrades 2025-11-11 03:41:34 +01:00
85 changed files with 2330 additions and 624 deletions

View File

@@ -4,10 +4,10 @@
## 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 If it was lost it can easily be regenerated/recovered by using the website
[BIOSBug](https://www.biosbug.com/acer). [BIOSBug](https://www.biosbug.com/acer).

View File

@@ -4,23 +4,6 @@
[Linux](/wiki/linux.md) kernel. [Linux](/wiki/linux.md) kernel.
It is designed primarily for mobile devices with touch screens like tablets or smart phones. 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 ## App Store
The most used app store of android is the [Google Play Store](https://play.google.com/). The most used app store of android is the [Google Play Store](https://play.google.com/).
@@ -50,7 +33,28 @@ This section addresses various useful applications.
- [Fossify](https://github.com/FossifyOrg) is a suite of open-source apps that among other include - [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. 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. Security and privacy are important topics, especially so when dealing with mobile phones.
This section focusses on improving them on a standard Android system. This section focusses on improving them on a standard Android system.
@@ -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". 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. 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 [Multi-factor authentication](/wiki/multi-factor_authentication.md) can easily be set up on android
systems. 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 [Google Play Store](#app-store) by the
[same name](https://f-droid.org/de/packages/org.liberty.android.freeotpplus/). [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. These are alternative firmware variants made by third party providers.
A well known custom ROM is [LineageOS](/wiki/android/lineageos.md). A well known custom ROM is [LineageOS](/wiki/android/lineageos.md).
It is possible that some custom ROMs require the user to It is possible that some custom ROMs require the user to
[unlock the bootloader](#unlocking-the-bootloader) before the installation can happen. [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. 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. 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 Make sure to not apply for unlocking again and do not add your account to your phone again as this
will reset the timer. 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. setup.
There are differences depending on your preffered software interface. 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 Digital Audio Workstations - short DAWs - is an application that can be used to record, edit or
produce audio files. produce audio files.
- [LMMS](https://lmms.io/) is a free and cross-platform DAW that is highly compatible with - [LMMS](https://lmms.io/) is a free and cross-platform DAW that is highly compatible with
[Linux-based systems](/wiki/linux.md). [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 ### Software for Music/Podcasts/Audiobooks

View File

@@ -3,6 +3,7 @@
[BetterDiscord](https://betterdiscord.app) is an unofficial extension to [BetterDiscord](https://betterdiscord.app) is an unofficial extension to
[Discord](/wiki/discord.md) which allows to add various functionality through plugins and new [Discord](/wiki/discord.md) which allows to add various functionality through plugins and new
themes. themes.
It is not a standalone client.
## Setup ## Setup
@@ -26,10 +27,10 @@ betterdiscordctl self-upgrade
### Pacman Hook ### Pacman Hook
When using [Arch Linux](/wiki/linux/arch-linux.md) and its package managers When using [Arch Linux](/wiki/linux/arch-linux.md) and its package managers
[Pacman and Yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay) a hook can be set that [Pacman and Yay](/wiki/linux/package_manager/pacman_and_aur.md) a hook can be set that
automatically updates the discord installation to setup betterdiscord using betterdiscordctl. automatically updates the discord installation to setup betterdiscord using betterdiscordctl.
The following is a [pacman hook](/wiki/linux/package_manager.md#hooks) that can be used to update The following is a [pacman hook](/wiki/linux/package_manager/pacman_and_aur.md#hooks) that can be
betterdiscord automatically. used to update betterdiscord automatically.
Make sure to change the three occurences of `<username>` to the name of the user to install Make sure to change the three occurences of `<username>` to the name of the user to install
betterdiscord for. betterdiscord for.

View File

@@ -6,4 +6,5 @@ It produces citations for the stored records that are used in scholarly research
## Software Solutions ## Software Solutions
- [Papis](/wiki/linux/papis.md) is a [command-line based](/wiki/linux/shell.md) for - [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 [Discord](https://discord.com/) is an social platform that combines voice and video conferences as
well as instant messaging chats. 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 ## Usage
@@ -9,7 +24,7 @@ This section addresses various features of Discord.
### Disable Automatic Update Checks ### 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 On [Linux](/wiki/linux.md)-based systems it can be disabled by adding `"SKIP_HOST_UPDATE": true` to
the `~/.config/discord/settings.json` file. the `~/.config/discord/settings.json` file.
@@ -20,9 +35,23 @@ 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'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 ### Themes and Plugins
By default Discord has no option to use themes or 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. 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 ### rebuild.sh
```sh ```sh

View File

@@ -1,6 +1,6 @@
# traefik # 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 The official container and documentation was made by
[traefik](https://hub.docker.com/_/traefik). [traefik](https://hub.docker.com/_/traefik).
This docker-rebuild is made up by a `docker-compose.yml` file. 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 Place the files `data/traefik.yml` and `data/config/dynamic.yml` in the
according directories. according directories.
Change the settings according to your needs and run `./rebuild.sh` afterwards. 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 ### Volumes
@@ -145,7 +147,7 @@ certificatesResolvers:
### data/config/dynamic.yml ### 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`. `echo $(htpasswd -nb <user> <pasword>) | sed -e s/\\$/\\$\\$/g`.
```yml ```yml
@@ -162,19 +164,7 @@ http:
user-auth: user-auth:
basicAuth: basicAuth:
users: users:
- "username:htpasswd" - "<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}"
tls: tls:
options: options:
@@ -188,73 +178,3 @@ tls:
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
minVersion: VersionTLS12 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 ## 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 ## Server
If you want to host your own mail-server there are solutions with and without If you want to host your own mail-server there are solutions with and without
interfaces. 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. mail server that has no interface.
## Client ## 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) - [Neomutt](linux/neomutt.md) is a [terminal-based](/wiki/linux/system_console.md)
mail client for linux, that has a simple interface. mail client for linux, that has a simple interface.
- [Thunderbird](/wiki/thunderbird.md) is a free and open source mail client which is cross - [Thunderbird](/wiki/thunderbird.md) is a free and open-source mail client which is
platform. cross-platform.
It also features, contact, todo and calendar management. 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 Some examples for these are [territorial.io](https://territorial.io/) and
[slither.io](http://slither.io/). [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. popular tabletop game.
For Windows there is the popular old-school pinball game 3d Pinball Space Cadet. 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 ## 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 First set up Syncthing as described in the
[Syncthing entry](../syncthing.md#setup). [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) [user space configuration](../syncthing.md#user-space-configuration-for-linux)
is recommended. is recommended.
Afterwards move the game saves to the directory set up by Syncthing and create 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
[Magic: The Gathering](https://magic.wizards.com) - often shortened to MTG or Magic - is a tabletop [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 MTG is published by [Wizards of the Coast](https://company.wizards.com) - which are commonly
reffered to as Wizards. reffered to as Wizards.
In Magic: The Gathering there are many different formats that are all listed on 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. 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 - "Rename 'Stem' to 'Log'" from Vanilla Tweaks is a resource pack that changes the Nether woods to
use 'Stem' instead of 'Log'. use 'Stem' instead of 'Log'.
- "Icons" is a ressource pack that adds icons into the menu and game. - "Icons" is a resource pack that adds icons into the menu and game.
Additionally "Icons Advertisement Removal" removes the logo of the "Icons" ressource pack. Additionally "Icons Advertisement Removal" removes the logo of the "Icons" resource pack.
- "Hoffen's Minimal Armor" is a ressource pack that minimizes the look of armor. - "Hoffen's Minimal Armor" is a resource pack that minimizes the look of armor.
- "Vertical Nuggets" is a ressource pack that flips all nuggets to be vertical. - "Vertical Nuggets" is a resource pack that flips all nuggets to be vertical.
- "Colorful Canines" is a ressource pack that makes dog armor more colorful. - "Colorful Canines" is a resource pack that makes dog armor more colorful.
- "Colorful Sheared Sheep" is a ressource pack that makes the color of sheep wool visible even - "Colorful Sheared Sheep" is a resource pack that makes the color of sheep wool visible even
after the shearing. 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. 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 - "Scribble" is a mod that makes editing books easier by adding buttons for color, bold font and
more. more.
- "Chat Patches" is a mod that extends the chat history and adds some more tweaks. - "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. - "Armor Chroma for Fabric" is a resource pack that shows the type of armor in the bar.
- "Colorful Ping" is a ressource pack that shows the ping symbol in color. - "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 following are possible client-side mods that change the gameplay or give other information in
the game. the game.

View File

@@ -2,7 +2,7 @@
[Pokemon](https://www.pokemon.com/) is a multi-media franchise owned by Nintendo. [Pokemon](https://www.pokemon.com/) is a multi-media franchise owned by Nintendo.
It consists of video games, animated series, films, a 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 ## Resources

View File

@@ -12,7 +12,8 @@ The Steam software suite is available on [Linux](/wiki/linux.md) and [Windows](/
systems. systems.
For Linux-based operating systems there often exists a package named `steam`. For Linux-based operating systems there often exists a package named `steam`.
For [Arch Linux](/wiki/linux/arch-linux.md) the For [Arch Linux](/wiki/linux/arch-linux.md) the
[multilib repository](/wiki/linux/package_manager.md#enabling-multilib) needs to be enabled. [multilib repository](/wiki/linux/package_manager/pacman_and_aur.md#enabling-multilib) needs to be
enabled.
## Usage ## Usage

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. After starting the program the portal address has to be added and is followed by a login.
Afterwards the client will connect. 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 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 [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. 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. 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 - [ImageMagick](/wiki/imagemagick.md) is another cross-platform software suite for creating and
- editing (raster) images. - editing (raster) images.
- [upscayl](https://github.com/upscayl/upscayl) is an upscaler that can be used cross-platform. - [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.

View File

@@ -7,7 +7,7 @@ It places files or directories in an archive and is able to compress them.
7-zip can be installed by installing the packages `p7zip-full` and `p7zip-rar` on Ubuntu systems. 7-zip can be installed by installing the packages `p7zip-full` and `p7zip-rar` on Ubuntu systems.
On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed with the package `7-zip` On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed with the package `7-zip`
from the [AUR](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay). from the [AUR](/wiki/linux/package_manager/pacman_and_aur.md).
## Usage ## Usage

View File

@@ -3,17 +3,19 @@
[Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose [Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose
[Linux](/wiki/linux.md) [Linux](/wiki/linux.md)
distribution. distribution.
The package manager of Arch Linux is generally
[Pacman and various possible AUR ones](/wiki/linux/package_manager/pacman_and_aur.md).
## Package Manager and AUR ## Package Manager and AUR
Arch Linux uses the Arch Linux uses the
[pacman](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay) package [pacman](/wiki/linux/package_manager/pacman_and_aur.md) package
manager. manager.
An additional repository for user made software exists. An additional repository for user made software exists.
It is called Arch User Repository (AUR). It is called Arch User Repository (AUR).
The Arch User Repositories (AUR) features community-made packages that can be The Arch User Repositories (AUR) features community-made packages that can be
installed with different installed with different
[package manager for that purpose](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay). [package manager for that purpose](/wiki/linux/package_manager/pacman_and_aur.md).
## Installation ## Installation

View File

@@ -208,7 +208,7 @@ en_US.UTF-8 UTF-8
In [Arch Linux](/wiki/linux/arch-linux.md) 32-bit software is managed via the `multilib` In [Arch Linux](/wiki/linux/arch-linux.md) 32-bit software is managed via the `multilib`
repository, which is for example needed for the `steam` package. repository, which is for example needed for the `steam` package.
Due to it not being enabled by default, this has to be Due to it not being enabled by default, this has to be
[done manually](/wiki/linux/package_manager.md#enabling-multilib). [done manually](/wiki/linux/package_manager/pacman_and_aur.md#enabling-multilib).
For this navigate to `/etc/pacman.conf` and find and uncomment the following lines. For this navigate to `/etc/pacman.conf` and find and uncomment the following lines.
```txt ```txt
@@ -244,7 +244,7 @@ should be checked for further setups.
In some cases the Arch keyring needs to be repopulated. In some cases the Arch keyring needs to be repopulated.
This is discussed in This is discussed in
[the package manager entry](/wiki/linux/package_manager.md#error-during-updating-is-marginal-trust). [the package manager entry](/wiki/linux/package_manager/pacman_and_aur.md#error-during-updating-is-marginal-trust).
Additionally if you have a NVidia Graphics Cards you should read Additionally if you have a NVidia Graphics Cards you should read
[the NVidia article](../nvidia.md) too. [the NVidia article](../nvidia.md) too.

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 ## 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. Additionally the `bluez-utils` package needs to be installed.
To load the kernel module `modprobe btusb` needs to be run. To load the kernel module `modprobe btusb` needs to be run.
Afterwards the 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. [terminal](/wiki/linux/system_console.md) user interface.
It is included in a package of the same name, that needs to be installed It is included in a package of the same name, that needs to be installed
before usage. 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`.

67
wiki/linux/debian.md Normal file
View File

@@ -0,0 +1,67 @@
# Debian
[Debian](https://www.debian.org/) is a free and open-source [Linux](/wiki/linux.md) distribution.
Debian uses the [APT](/wiki/linux/package_manager/apt.md) package manager.
## Usage
This section addresses the usage of Debian specific tasks.
### Retrieve Debian Version
The current version of a Debian system can be retrieved by running the following command.
```sh
cat /etc/os-release
```
### Upgrading to a Higher Major Version
The first step for a major upgrade usually is
[retrieving the current version](#retrieve-debian-version) to check the version that should be
installed.
If the user of the system to perform a major version upgrade on is using [Docker](/wiki/docker.md)
some additional steps have to be taken before the upgrade.
It is generally recommended to hold the Docker upgrade and performing it later.
For this reason the following command has to be run first.
```sh
apt-mark hold docker-ce docker-ce-cli containerd.io
```
Afterward the packages of the current major release version have to be
[upgrading](/wiki/linux/package_manager/apt.md#updating-upgrading) using APTs `full-upgrade`
option.
Then a reboot is recommended.
After restarting APT needs to be assigned new sources.
This can be done by editing the file `/etc/apt/sources.list` and replacing everything within with
the new sources.
For Debians 12th version called bookworm this lines to add are the following.
```txt
deb http://deb.debian.org/debian bookworm main contrib non-free
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
```
Following this a [full upgrade](/wiki/linux/package_manager/apt.md#updating-upgrading) has to be
performed.
Sometimes this process asks if the user wants to replace the local configuration files with newer
ones.
It is generally recommended to select `N` and reject these new configurations.
Finally another reboot is needed and the version number can be
[checked again](#retrieve-debian-version) confirming that the major version upgrade was
successfully performed.
When the system ran Docker and its upgrade was put on hold as described at the start of this
section the following commands have to be run to finalize the major upgrade, take Docker from the
hold list and upgrade it.
```sh
apt-mark unhold docker-ce docker-ce-cli containerd.io
apt update
apt install --only-upgrade docker-ce docker-ce-cli containerd.io
```

View File

@@ -1,6 +1,6 @@
# Disk Management # 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 For [LVM](lvm.md), [NTFS](./ntfs.md), [Samba](./samba.md), [MDADM](./mdadm.md) and [LUKS volumes](./dm-crypt.md) there
are separate entries. are separate entries.
@@ -8,6 +8,35 @@ are separate entries.
This section focusses on various usages for disk management related topics. 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 ### Benchmarking Data Transfer Rates
Real data transfer rates can easily be checked using the program `pv`. Real data transfer rates can easily be checked using the program `pv`.
@@ -143,15 +172,28 @@ There are various files that are unused but saved by default.
The following list shows some options to quickly clean up space. The following list shows some options to quickly clean up space.
- [System Trash](#clearing-system-trash-bin) - [System Trash](#clearing-system-trash-bin)
- [Arch Linux/Pacman/Yay Cache](/wiki/linux/package_manager.md#clear-cache) - [Package Mangers](/wiki/linux/package_manager.md)
- [ViFM Trash Bin](/wiki/linux/vifm.md#empty-trash) - [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 ## Error solving
This section addresses various problems that can occur and are related to This section addresses various problems that can occur and are related to
disk-management. 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 Ususally the filesystem will go into read-only mode whe the system is running
and there is a consistency error. and there is a consistency error.
@@ -163,7 +205,7 @@ To fix it run:
you may want to try using the ext4-specific fsck: you may want to try using the ext4-specific fsck:
- `fsck.ext4 -f /dev/sda1` - `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 This error message can occur if a mounted directory is left mounted due to a
crash of the filesystem but not accessible anymore. crash of the filesystem but not accessible anymore.

View File

@@ -12,7 +12,41 @@ Another possible tagging software is [MusicBrainz Picard](../picard.md)
## Usage ## Usage
This section addresses the usage of the flac package.
### Splitting Flac file according to cue file ### Splitting Flac file according to cue file
`shnsplit` can be used to split flac files. `shnsplit` can be used to split flac files.
In the [shnsplit article](/wiki/linux/shntool.md) an explanation on this is given. 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

@@ -5,8 +5,8 @@ linux systems.
## Setup ## Setup
The `flatpak` package can be installed by most distribution specific package The `flatpak` package can be installed by most distribution specific
managers (e.g. [pacman or yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay)). [package managers](/wiki/linux/package_manager.md)).
After installation it is important to add [flathub](https://flathub.org/home), After installation it is important to add [flathub](https://flathub.org/home),
a source for many Flatpak packages. a source for many Flatpak packages.
The addition of this can be done by running The addition of this can be done by running

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 This section addresses important commands and packages for the configuration of
fonts. 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. 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. 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. Authentication by default is done via a username and a password.
For some services such as GitHub. For some services such as GitHub.
it is not possible to use password as an authentication method. it is not possible to use password as an authentication method.
The other possibility to authenticate to git is by using The other possibility to authenticate to git is by using [SSH](/wiki/ssh.md).
[SSH](/wiki/linux/ssh.md).
The following sections assumes using a [Linux-based system](/wiki/linux.md) using
[OpenSSH](/wiki/linux/openssh.md).
For this a For this a
[SSH certificate has to be created](/wiki/linux/ssh.md#generate-new-keys) and [SSH certificate has to be created](/wiki/linux/openssh.md#generate-new-keys) and
[added to the authentication agent](/wiki/linux/ssh.md#adding-keys-to-authentication-agent). [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. Afterwards it the public SSH key to be added to the git server.
For GitHub there is 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). [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 By using the SSH config file the clone command can be shortened to
`git clone github:tiyn/wiki`. `git clone github:tiyn/wiki`.
For this follow the 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`. Set `Host` to `github`, `HostName` to `github.com` and `User` to `git`.
### Improved `git diff` ### Improved `git diff`
[Diff So Fancy](https://github.com/so-fancy/diff-so-fancy) is a drop in There are different possibilities to improve the diff of git.
replacement for the default `git diff` look. One of them is [diff-so-fancy](#git-diff-diff-so-fancy) which allows word specific `git diff`.
It can be installed via the A second and more modern option is [delta](#git-diff-delta) which additionally allows syntax
[repository](https://github.com/so-fancy/diff-so-fancy) or the `diff-so-fancy` highlighting and a side-by-side view.
package. 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. Afterwards the following lines need to be run to complete the configuration.
```sh ```sh

View File

@@ -15,15 +15,21 @@ This section addresses the usage of Gnirehtet.
## Setting Up and Running Reverse Tethering ## Setting Up and Running Reverse Tethering
The following command can be used to setup the reverse tethering and also run it. 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`). 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 ```sh
gnirehtet run gnirehtet run
``` ```
Alternatively and only after being set up correctly the reverse tethering can be started and When the `run` command is active the reverse tethering can be started and stopped using the
stopped with the corresponding two commands that follow. following commands.
If the `run` command is not active the reverse tethering will not work.
```sh ```sh
gnirehtet start gnirehtet start

View File

@@ -1,7 +1,7 @@
# GPG # GPG
[GNU Privacy Guard](https://gnupg.org/) - short GnuPG or just GPG - is a free and open-source [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. It is used to savely encrypt and decrypt messages or files using assymetric encryption.
## Setup ## Setup
@@ -13,6 +13,15 @@ Sometimes it is also called `gnupg2`.
This section addresses the usage of the Open GPG. 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 ### Generating a Key Pair
A fast way to generate a key pair is by running the following command. 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> 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 ## Troubleshooting
This section will focus on errors and the fixing of errors of GPG. This section will focus on errors and the fixing of errors of GPG.

View File

@@ -1,17 +1,17 @@
# Khard # 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). [terminal](/wiki/linux/system_console.md).
You can sync it with [vdirsyncer](vdirsyncer.md). You can sync it with [vdirsyncer](vdirsyncer.md).
## Setup ## 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). Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
### Configuration ### Configuration
- Add and configure a config for khard - Add and configure a config for Khard
- `mkdir ~/.config/khard` - add a directory for the config - `mkdir ~/.config/khard` - add a directory for the config
- `cp /usr/share/doc/khard/khard.conf.example ~/.config/khard/khard.conf` - - `cp /usr/share/doc/khard/khard.conf.example ~/.config/khard/khard.conf` -
Copy the example configuration Copy the example configuration
@@ -19,5 +19,5 @@ Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
#### Mutt #### Mutt
It is possible to use your khard-addressbook in mutt. It is possible to use your Khard address book in mutt.
To see how it works check out the [Mutt](/#application/neomutt.md). 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 ## 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. 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`. 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` `X Server Display Configuration` select your display and click on `Advanced`
and select either `Force Composition Timeline` or and select either `Force Composition Timeline` or
`Force Full Composition Timeline`. `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. [OpenSSH](https://www.openssh.com) is an implementation of the [SSH protocol](/wiki/ssh.md).
In this article it is assumed that `openssh` is used.
## Usage ## Usage
This section addresses the usage of OpenSSH.
### Generate New Keys ### Generate New Keys
To generate new ssh keys simply run `ssh-keygen -t ed25519` or To generate new ssh keys simply run `ssh-keygen -t ed25519` or
`ssh-keygen -t rsa -b 4096`. `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 The keys can then be added to the authentication agent by as described in the
[corresponding article](#adding-keys-to-authentication-agent) [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 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` `~/.ssh/id_rsa.pub` from your local machine to the file `~/.ssh/authorized_keys`
on the machine you want to log into. 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 ```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). [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 ### Mount Directory With SSHFS
This section is loosely based on 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 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. [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,326 +1,12 @@
# Package Managers # Package Manager
Package managers are important programs to get software onto your system. Package managers are important programs to get software onto your system.
## Arch Linux: Pacman and Yay The following is a list of package managers and the corresponding [Linux](/wiki/linux.md)
distributions.
In [Arch Linux](/wiki/linux/arch-linux.md) there are 2 main types of
package managers. - [Debian](/wiki/linux/debian.md) and Debian-based distributions like
The first is pacman, the default package manager. [Proxmox](/wiki/linux/proxmox.md) use the [APT](/wiki/linux/package_manager/apt.md) package
manager.
For the second type there are many different managers to chose from. - [Arch Linux](/wiki/linux/arch-linux.md) and Arch-based distributions use
Those managers are handling for the Arch User Repositories (AUR). [Pacman]() and various managers for the AUR.
In this article yay is used as the go to AUR manager.
yay is also a wrapper for pacman so yay can be used instead of pacman to
install and update both AUR and main repository programs.
It features the same syntax.
### Usage
This section addresses various usages of the arch linux package managers.
#### Ignoring Packages
Packages can be ignored by adding the package in `/etc/pacman.conf` under `IgnorePkg`.
In the following example `waybar` is ignored from updates.
To add more packages just add them separated by spaces.
```txt
IgnorePkg = waybar
```
To unignore the package from updates remove it from this line.
#### Downgrading Packages
Packages of the AUR can be downgraded by using the
[Downgrade](https://github.com/archlinux-downgrade/downgrade) program.
This program can then easily be used to an AUR package.
This works like the following assuming the package `v4l2loopback-dmks` needs to be downgraded.
```sh
sudo downgrade v4l2loopback-dmks
```
Afterwards the target version can be selected and the downgrading process will conclude.
After the downgrade of a package you will get asked if you want to
[ignore future updates](#ignoring-packages).
#### Manual Installation of a `PKGBUILD` File
A `PKGBUILD` file is a [shell](/wiki/linux/shell.md) script that contains the installation
information that is required by the Arch Linux.
Using the `makepkg` command it can be installed like the following command shows.
```sh
makepkg -sirc
```
Afterwards it is installed on the system and can be further managed (especially uninstalled) by the
Pacman package manager.
#### Installing an AUR Program with a Specific Version
The installation of a specific version of an AUR program can be easily achieved.
For this navigate to the AUR page of the program to install.
On the right-hand side click on `View Changes` and select the version you want to install in the
commit list.
Next to `download` a `.tar.gz` file can be downloaded which includes a `PKGBUILD` file.
Afterwards it needs to be [uncompressed](/wiki/linux/tar.md#uncompressing-a-tar-archive).
#### Clear Cache
The cache of all packages except the one installed can be deleted by running the following command.
```sh
pacman -Sc
```
Alternatively the pacman cache can be deleted partly by running the following command which will
clear the cache of pacman except for the latest version.
The amount of versions to keep can be specified by changing the number in the following command
accordingly.
```sh
paccache -rvk1
```
And finally the following command will remove all cached files that belong to uninstalled packages.
Again the number can be changed to keep a specific number of versions.
```sh
paccache -rvuk0
```
Since `yay` mirrors the usage of `pacman` it can be used the same way and will clean both caches.
```sh
yay -Sc
```
Similar to `paccache` a command called [yaycache](https://github.com/aokellermann/yaycache) can be
used.
It follows the same options as `paccache`.
The clearing of the cache can be automated by using a [hook](#hook-clear-cache).
#### Enabling `multilib`
`multilib` is a repository that contains 32-bit software and libraries.
By default it is not enabled.
To enable it search and uncomment the following lines in the file `/etc/pacman.conf`.
```txt
[multilib]
Include = /etc/pacman.d/mirrorlist
```
#### Hooks
Hooks are commands that are run before or after installation of one or more packages.
They are needed to have the `.hook` extension and can be found inside two directories.
The first one is `/usr/share/libalpm/hooks/`.
The second one is defined in `HookDir` inside the file `/etc/pacman.conf`.
By default it points towards `/etc/pacman.d/hooks`.
Examples of hooks can be found in the following sections.
##### Hook: List Orphans
The following hook will display orphans after any package is update.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references a
[gist by Strykar](https://gist.github.com/Strykar/3b3cd5bbdabe7e5c77f9414b2b4fe7e8).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *
[Action]
Description = Searching for orphaned packages...
When = PostTransaction
Exec = /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '==> no orphans found.'"
```
##### Hook: Clear Cache
The following hook will [clear the pacman cache](#clear-cache) except for the last version of a package.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references an
[AUR comment by itaranto](https://aur.archlinux.org/packages/pacman-cleanup-hook).
```txt
[Trigger]
Type = Package
Operation = Remove
Operation = Install
Operation = Upgrade
Target = *
[Action]
Description = Removing unnecessary cached files (keeping the latest one)...
When = PostTransaction
Exec = /usr/bin/paccache -rvk1 && paccache -ruvk0
```
##### Hook: Informant
The following hook will use [informant](https://github.com/bradford-smith94/informant) to check for
Arch News that may require manual intervention and not allow the update if there are news unread.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references the
[informant Github](https://github.com/bradford-smith94/informant/blob/master/informant.hook).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *
Target = !informant
[Action]
Description = Checking Arch News with Informant...
When = PreTransaction
Exec = /usr/bin/informant check
Depends = informant
AbortOnFail
```
##### Hook: Update Package Mirrorlist
The following hook will use [reflector](https://xyne.dev/projects/reflector/) to update the pacman
mirrorlist.
It will use german mirrors (`-c de`), will list the fastest 15 mirrors (`-n 15`) and only do so if
the mirror was online in the last 24 hours (`-a 24`).
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references the
[pacman-hooks Github](https://github.com/desbma/pacman-hooks/blob/master/reflector/reflector.hook).
```txt
[Trigger]
Operation = Upgrade
Type = Package
Target = pacman-mirrorlist
[Action]
Description = Updating pacman-mirrorlist with reflector...
When = PostTransaction
Depends = reflector
Exec = /bin/bash -c 'reflector -c de -n 15 -a 24 > /etc/pacman.d/mirrorlist ; test -f /etc/pacman.d/mirrorlist.pacnew && mv -v /etc/pacman.d/mirrorlist.{pacnew,orig} || true'
```
##### Hook: Kernel Reboot Needed
The following hook will use determine if a reboot is needed because the kernel was updated.
It was found in a
[reddit commend by progandy](https://www.reddit.com/r/archlinux/comments/dsnu81/comment/f6sogat).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = File
Target = usr/lib/modules/*
[Action]
Description = Check for upgrade of running kernel...
When = PostTransaction
Exec = /bin/bash -c "[[ -f \"/proc/modules\" && ! -d \"/usr/lib/modules/$(uname -r)\" ]] && printf '==> WARNING: %s\n -> %s\n' 'Running kernel has been updated or removed!' 'A reboot is required!' || true"
```
### Troubleshooting
This section will focus on errors and the fixing of errors of package managers.
#### `/usr/lib/firmware/nvidia/ad104` exists in filesystem linux-firmware-nvidia
This error comes from a decision to split the firmware modules into different parts.
An easy way to fix it is by simply reinstalling the `linux-firmware` package and updating the
packages of the system.
```sh
pacman -Syu linux-firmware
```
#### Update Mirrorlist
After a while not updating the system it is possible for the mirrorlist to be
outdated.
This can be fixed by updating it with the following command:
```sh
curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
```
#### Error While Importing Keys
Both `yay` and `pacman` use [GPG keys](/wiki/linux/gpg.md).
It is possible that it runs into errors when importing new keys.
If this happens you should try to restart the GPG key server
[as explained in the GPG entry](/wiki/linux/gpg.md#restart-the-gpg-server).
#### Unknown Public Key
If the error `ERROR: One or more PGP signatures could not be verified!`, you
have to manually receive the key and trust it.
This can be done [as explained in the GPG entry](/wiki/linux/gpg.md#receive-a-key-and-trust-it).
The identifier of the key usually gets gets printed in the line above the error looking like
`FAILED (unknown public key <KEYID>)`.
#### Error During Updating `is marginal trust`
If the error `[...] Key [...] is marginal trust` (also `of unknown trust`) occurs while updating
the system, it can be fixed by running the following commands and then restarting
the update process of the package manager.
```sh
pacman -Sy archlinux-keyring
pacman-key --populate archlinux
pacman-key --refresh-keys
```
#### Error During Updating `the following untracked working tree files would be overwritten`
The error `the following untracked working tree files would be overwritten` can happen when the
cache features a changed version of the files used by yay to update the package.
This can easily be fixed by removing the cache of the corresponding package.
#### Python `ModuleNotFoundError: No module named...`
This section is based on a
[StackOverflow post by Helen](https://stackoverflow.com/questions/55923868/how-to-fix-modulenotfounderror-no-module-named-setuptools).
In this case the error stems from a missing package.
Normally it can easily be fixed by installing that corresponding package.
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
global Python version is set to something other than `system`.
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
In this case the global Version has to be changed to `system` or the package installed to the
non-system Python version.
#### Error `exists in filesystem`
This section is based on a
[reddit post by 194668PT](https://www.reddit.com/r/archlinux/comments/17jempk/pacman_exists_in_filesystem_errors/).
If an error shows up that describes that a file of a package `exists in filesystem` usually a
permission/owner error happened.
This can happen when running `pacman -Syyu`.
To update the package either way the following command can be used.
`<package name>` should be exchanged for the package that throws the error.
```sh
sudo pacman -S --overwrite "*" <package name>
```

View File

@@ -0,0 +1,38 @@
# APT
In [Debian](/wiki/linux/debian.md) the APT package manager is used.
It is also used for various Debian-based distributions.
## Usage
This section addresses various usages of the APT package manager.
### Updating & Upgrading
This section addresses the updating of all packages managed by APT.
To update the packages it is recommended to first update the package list with the following
command.
```sh
apt update
```
Afterwards there are two possible update types without changing the major release version.
The following command - `upgrade` - updates the packages only if no new or previously removed dependencies are
needed.
It is generally used for day-to-day updating without bigger jumps between versions.
```sh
apt upgrade
```
The other option is `full-upgrade` which was previously also known as `dist-upgrade`.
This command will also install, remove and replace dependencies if it is needed to update the
package.
It is mostly used for bigger updates like Kernel or release upgrade without changing the major
version.
```sh
apt full-upgrade
```

View File

@@ -0,0 +1,350 @@
# Pacman and AUR
In [Arch Linux](/wiki/linux/arch-linux.md) there are 2 main types of
package managers.
The first is pacman, the default package manager.
For the second type there are many different managers to chose from.
Those managers are handling for the Arch User Repositories (AUR).
In this article yay is used as the go to AUR manager.
yay is also a wrapper for pacman so yay can be used instead of pacman to
install and update both AUR and main repository programs.
It features the same syntax.
## Usage
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`.
In the following example `waybar` is ignored from updates.
To add more packages just add them separated by spaces.
```txt
IgnorePkg = waybar
```
To unignore the package from updates remove it from this line.
### Downgrading Packages
Packages of the AUR can be downgraded by using the
[Downgrade](https://github.com/archlinux-downgrade/downgrade) program.
This program can then easily be used to an AUR package.
This works like the following assuming the package `v4l2loopback-dmks` needs to be downgraded.
```sh
sudo downgrade v4l2loopback-dmks
```
Afterwards the target version can be selected and the downgrading process will conclude.
After the downgrade of a package you will get asked if you want to
[ignore future updates](#ignoring-packages).
### Manual Installation of a `PKGBUILD` File
A `PKGBUILD` file is a [shell](/wiki/linux/shell.md) script that contains the installation
information that is required by the Arch Linux.
Using the `makepkg` command it can be installed like the following command shows.
```sh
makepkg -sirc
```
Afterwards it is installed on the system and can be further managed (especially uninstalled) by the
Pacman package manager.
### Installing an AUR Program with a Specific Version
The installation of a specific version of an AUR program can be easily achieved.
For this navigate to the AUR page of the program to install.
On the right-hand side click on `View Changes` and select the version you want to install in the
commit list.
Next to `download` a `.tar.gz` file can be downloaded which includes a `PKGBUILD` file.
Afterwards it needs to be [uncompressed](/wiki/linux/tar.md#uncompressing-a-tar-archive).
### Clear Cache
The cache of all packages except the one installed can be deleted by running the following command.
```sh
pacman -Sc
```
Alternatively the pacman cache can be deleted partly by running the following command which will
clear the cache of pacman except for the latest version.
The amount of versions to keep can be specified by changing the number in the following command
accordingly.
```sh
paccache -rvk1
```
And finally the following command will remove all cached files that belong to uninstalled packages.
Again the number can be changed to keep a specific number of versions.
```sh
paccache -rvuk0
```
Since `yay` mirrors the usage of `pacman` it can be used the same way and will clean both caches.
```sh
yay -Sc
```
Similar to `paccache` a command called [yaycache](https://github.com/aokellermann/yaycache) can be
used.
It follows the same options as `paccache`.
The clearing of the cache can be automated by using a [hook](#hook-clear-cache).
### Enabling `multilib`
`multilib` is a repository that contains 32-bit software and libraries.
By default it is not enabled.
To enable it search and uncomment the following lines in the file `/etc/pacman.conf`.
```txt
[multilib]
Include = /etc/pacman.d/mirrorlist
```
### Hooks
Hooks are commands that are run before or after installation of one or more packages.
They are needed to have the `.hook` extension and can be found inside two directories.
The first one is `/usr/share/libalpm/hooks/`.
The second one is defined in `HookDir` inside the file `/etc/pacman.conf`.
By default it points towards `/etc/pacman.d/hooks`.
Examples of hooks can be found in the following sections.
#### Hook: List Orphans
The following hook will display orphans after any package is update.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references a
[gist by Strykar](https://gist.github.com/Strykar/3b3cd5bbdabe7e5c77f9414b2b4fe7e8).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *
[Action]
Description = Searching for orphaned packages...
When = PostTransaction
Exec = /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '==> no orphans found.'"
```
#### Hook: Clear Cache
The following hook will [clear the pacman cache](#clear-cache) except for the last version of a package.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references an
[AUR comment by itaranto](https://aur.archlinux.org/packages/pacman-cleanup-hook).
```txt
[Trigger]
Type = Package
Operation = Remove
Operation = Install
Operation = Upgrade
Target = *
[Action]
Description = Removing unnecessary cached files (keeping the latest one)...
When = PostTransaction
Exec = /usr/bin/paccache -rvk1 && paccache -ruvk0
```
#### Hook: Informant
The following hook will use [informant](https://github.com/bradford-smith94/informant) to check for
Arch News that may require manual intervention and not allow the update if there are news unread.
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references the
[informant Github](https://github.com/bradford-smith94/informant/blob/master/informant.hook).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = *
Target = !informant
[Action]
Description = Checking Arch News with Informant...
When = PreTransaction
Exec = /usr/bin/informant check
Depends = informant
AbortOnFail
```
#### Hook: Update Package Mirrorlist
The following hook will use [reflector](https://xyne.dev/projects/reflector/) to update the pacman
mirrorlist.
It will use german mirrors (`-c de`), will list the fastest 15 mirrors (`-n 15`) and only do so if
the mirror was online in the last 24 hours (`-a 24`).
It was found in a
[reddit post by IBNash](https://www.reddit.com/r/archlinux/comments/dsnu81/hear_ye_archers_share_your_pacman_hooks/)
which references the
[pacman-hooks Github](https://github.com/desbma/pacman-hooks/blob/master/reflector/reflector.hook).
```txt
[Trigger]
Operation = Upgrade
Type = Package
Target = pacman-mirrorlist
[Action]
Description = Updating pacman-mirrorlist with reflector...
When = PostTransaction
Depends = reflector
Exec = /bin/bash -c 'reflector -c de -n 15 -a 24 > /etc/pacman.d/mirrorlist ; test -f /etc/pacman.d/mirrorlist.pacnew && mv -v /etc/pacman.d/mirrorlist.{pacnew,orig} || true'
```
#### Hook: Kernel Reboot Needed
The following hook will use determine if a reboot is needed because the kernel was updated.
It was found in a
[reddit commend by progandy](https://www.reddit.com/r/archlinux/comments/dsnu81/comment/f6sogat).
```txt
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = File
Target = usr/lib/modules/*
[Action]
Description = Check for upgrade of running kernel...
When = PostTransaction
Exec = /bin/bash -c "[[ -f \"/proc/modules\" && ! -d \"/usr/lib/modules/$(uname -r)\" ]] && printf '==> WARNING: %s\n -> %s\n' 'Running kernel has been updated or removed!' 'A reboot is required!' || true"
```
## Troubleshooting
This section will focus on errors and the fixing of errors of package managers.
### `/usr/lib/firmware/nvidia/ad104` exists in filesystem linux-firmware-nvidia
This error comes from a decision to split the firmware modules into different parts.
An easy way to fix it is by simply reinstalling the `linux-firmware` package and updating the
packages of the system.
```sh
pacman -Syu linux-firmware
```
### Update Mirrorlist
After a while not updating the system it is possible for the mirrorlist to be
outdated.
This can be fixed by updating it with the following command:
```sh
curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
```
### Error While Importing Keys
Both `yay` and `pacman` use [GPG keys](/wiki/linux/gpg.md).
It is possible that it runs into errors when importing new keys.
If this happens you should try to restart the GPG key server
[as explained in the GPG entry](/wiki/linux/gpg.md#restart-the-gpg-server).
### Unknown Public Key
If the error `ERROR: One or more PGP signatures could not be verified!`, you
have to manually receive the key and trust it.
This can be done [as explained in the GPG entry](/wiki/linux/gpg.md#receive-a-key-and-trust-it).
The identifier of the key usually gets gets printed in the line above the error looking like
`FAILED (unknown public key <KEYID>)`.
### Error During Updating `is marginal trust`
If the error `[...] Key [...] is marginal trust` (also `of unknown trust`) occurs while updating
the system, it can be fixed by running the following commands and then restarting
the update process of the package manager.
```sh
pacman -Sy archlinux-keyring
pacman-key --populate archlinux
pacman-key --refresh-keys
```
### Error During Updating `the following untracked working tree files would be overwritten`
The error `the following untracked working tree files would be overwritten` can happen when the
cache features a changed version of the files used by yay to update the package.
This can easily be fixed by removing the cache of the corresponding package.
### Python `ModuleNotFoundError: No module named...`
This section is based on a
[StackOverflow post by Helen](https://stackoverflow.com/questions/55923868/how-to-fix-modulenotfounderror-no-module-named-setuptools).
In this case the error stems from a missing package.
Normally it can easily be fixed by installing that corresponding package.
But please note that [pyenv](/wiki/programming_language/golang.md#setup) can hide packages if the
global Python version is set to something other than `system`.
This is especially the case on [Arch Linux-systems](/wiki/linux/arch-linux.md) because Python
packages are also installed via [Pacman or Yay](#arch-linux-pacman-and-yay).
In this case the global Version has to be changed to `system` or the package installed to the
non-system Python version.
### Error `exists in filesystem`
This section is based on a
[reddit post by 194668PT](https://www.reddit.com/r/archlinux/comments/17jempk/pacman_exists_in_filesystem_errors/).
If an error shows up that describes that a file of a package `exists in filesystem` usually a
permission/owner error happened.
This can happen when running `pacman -Syyu`.
To update the package either way the following command can be used.
`<package name>` should be exchanged for the package that throws the error.
```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 [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 [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 ## Setup

View File

@@ -3,7 +3,7 @@
[PlayerCTL](https://github.com/altdesktop/playerctl) is a MPRIS (Media Player [PlayerCTL](https://github.com/altdesktop/playerctl) is a MPRIS (Media Player
Remote Interfacing Specification) [media player](/wiki/audio.md#media-software) Remote Interfacing Specification) [media player](/wiki/audio.md#media-software)
command-line controller for Spotify, [Sonixd](/wiki/subsonic.md#client), MPV and 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 ## Setup

View File

@@ -1,8 +1,103 @@
# Proxmox # Proxmox
Proxmox is an environment for virtual machines and containers. [Proxmox](https://proxmox.com/) is an environment for virtual machines and containers.
It is based on [Debian](/wiki/linux/debian.md) and uses the package manager
[APT](/wiki/linux/package_manager/apt.md).
## Disk Management ## Usage
This section addresses the usage of Proxmox specific tasks.
### Retrieve PVE Version
The current version of the Proxmox Virtual Environment can be retrieved by running the following
command.
```sh
pveversion
```
### Upgrading to a Higher Major Version
The first step for a major upgrade usually is
[retrieving the current version](#retrieve-pve-version) to check the version that should be
installed.
The way of updating Proxmox is very similar to [Debian](/wiki/linux/debian.md) since it is also
based on it.
However there are some differences.
Therefore it is described here in detail.
If the user of the system to perform a major version upgrade on is using [Docker](/wiki/docker.md)
some additional steps have to be taken before the upgrade.
It is generally recommended to hold the Docker upgrade and performing it later.
For this reason the following command has to be run first.
```sh
apt-mark hold docker-ce docker-ce-cli containerd.io
```
First the packages of the current major release version have to be
[upgrading](/wiki/linux/package_manager/apt.md#updating-upgrading) using APTs `full-upgrade`
option.
Then a reboot is recommended.
At this point the state of the system can be checked this can be done by a special Proxmox command.
Depending on the version the system is on the command may differ.
If the system is for example running PVE 8 (based on [Debian 12](/wiki/linux/debian.md)) then the
following command can be used.
Similar commands exist for other versions (for example `pve7to8`).
```
pve8to9
```
This will check if the current state of the system is ready for the major version upgrade.
It is not recommended to continue with errors or without running these checks
Now APT needs to be assigned new sources.
This can be done by editing the file `/etc/apt/sources.list` and replacing everything within with
the new sources.
For PVE 8 - which corresponds to Debians 12th version called bookworm - this lines to add are the
following.
```txt
deb http://deb.debian.org/debian bookworm main contrib non-free
deb http://deb.debian.org/debian bookworm-updates main contrib non-free
deb http://security.debian.org/debian-security bookworm-security main contrib non-free
```
On Proxmox there are two additional source lists that need to be changed.
The first one is located at `/etc/apt/sources.list.d/pve-no-subscription.list` and should look
similar to the following.
```txt
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
```
The list placed at `/etc/apt/sources.list.d/pve-enterprise.list` should be commented out entirely
if the system is not running the enterprise version.
Following this a [full upgrade](/wiki/linux/package_manager/apt.md#updating-upgrading) has to be
performed.
Sometimes this process asks if the user wants to replace the local configuration files with newer
ones.
It is generally recommended to select `N` and reject these new configurations.
Finally another reboot is needed and the version number can be
[checked again](#retrieve-pve-version) confirming that the major version upgrade was
successfully performed.
When the system ran Docker and its upgrade was put on hold as described at the start of this
section the following commands have to be run to finalize the major upgrade, take Docker from the
hold list and upgrade it.
```sh
apt-mark unhold docker-ce docker-ce-cli containerd.io
apt update
apt install --only-upgrade docker-ce docker-ce-cli containerd.io
```
### Adding a LVM to Proxmox ### Adding a LVM to Proxmox
@@ -12,7 +107,7 @@ Then add the LVM via the web-interface.
Select Datacenter and Storage. The `Add` and choose `LVM`. Select Datacenter and Storage. The `Add` and choose `LVM`.
After that follow the instructions and fill in the fields to your liking. After that follow the instructions and fill in the fields to your liking.
### Enlarging disk of a VM ### Enlarging Disk of a VM
Make sure there is enough disk space available. Make sure there is enough disk space available.
For further information see [the disk management article](./disk-management.md) For further information see [the disk management article](./disk-management.md)
@@ -39,7 +134,7 @@ can be referenced for LVM systems.
After that grow the filesystem in the vm as described in After that grow the filesystem in the vm as described in
[the disk management article](/wiki/linux/disk-management.md#growing-a-file-system). [the disk management article](/wiki/linux/disk-management.md#growing-a-file-system).
## Remove local-lvm and add its size to local ### Remove Local-LVM and Add Its Size to Local
First remove `local-lvm` with `lvremove /dev/pve/data`. First remove `local-lvm` with `lvremove /dev/pve/data`.
Then remove `local-lvm` in the proxmox gui via `Datacenter/Storage/Remove`. Then remove `local-lvm` in the proxmox gui via `Datacenter/Storage/Remove`.
@@ -47,9 +142,7 @@ Change the `Content` of the remaining storage according to your needs.
Add the free storage to the remaining storage with `lvresize -rl +100%FREE /dev/pve/root`. Add the free storage to the remaining storage with `lvresize -rl +100%FREE /dev/pve/root`.
Finally extend the filesystem `resize2fs /dev/mapper/pve-root`. Finally extend the filesystem `resize2fs /dev/mapper/pve-root`.
## VM passthrough ### USB Passthrough
### USB passthrough
On the host system find the usb you're looking to pass through with On the host system find the usb you're looking to pass through with
@@ -69,14 +162,14 @@ for example
qm set 101 -usb0 host=aaaa:8816 qm set 101 -usb0 host=aaaa:8816
``` ```
### PCI/GPU passthrough ### PCI/GPU Passthrough
To use GPUs or other PCI devices you need to work with PCI passthrough. To use GPUs or other PCI devices you need to work with PCI passthrough.
For documentation you can look in the [Proxmox wiki](https://pve.proxmox.com/wiki/Pci_passthrough). For documentation you can look in the [Proxmox wiki](https://pve.proxmox.com/wiki/Pci_passthrough).
There is also an [article](https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough) There is also an [article](https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough)
on reddit, that focusses especially on windows 10 VMs with GPU passthrough. on reddit, that focusses especially on windows 10 VMs with GPU passthrough.
### Increasing backup-limit of Proxmox storage ### Increasing Backup-Limit of Proxmox Storage
The default limit for backup is 1. The default limit for backup is 1.
This is a bit too low. This is a bit too low.
@@ -88,7 +181,7 @@ your liking.
This section addresses various errors that can happen when using Proxmox. This section addresses various errors that can happen when using Proxmox.
### No internet after mainboard swap ### No Internet After Mainboard Swap
If you change the mainboard of your proxmox-virtual-environment it is possible, If you change the mainboard of your proxmox-virtual-environment it is possible,
that the NIC changes. that the NIC changes.

View File

@@ -38,7 +38,8 @@ This is also described in the
A simple way to achieve this in Qt is the installation of A simple way to achieve this in Qt is the installation of
[adwaita-qt6](https://github.com/FedoraQt/adwaita-qt) which is also available as an [adwaita-qt6](https://github.com/FedoraQt/adwaita-qt) which is also available as an
[AUR](/wiki/linux/package_manager.md#installing-an-aur-program-with-a-specific-version) package. [AUR](/wiki/linux/package_manager/pacman_and_aur.md#installing-an-aur-program-with-a-specific-version)
package.
After the installation it can be selected by `qt6ct` as described in the After the installation it can be selected by `qt6ct` as described in the
[configuration section](#configuration). [configuration section](#configuration).

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 `/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). 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 - [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 powerful scripting language.
[default user shell](#changing-the-default-user-shell) because of its user It is often set to be the [default user shell](#changing-the-default-user-shell) because of its
friendliness and a more features like the possibility for user friendliness and a more features like the possibility for
[syntax highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting) [syntax highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting)
and [auto suggestions](https://github.com/zsh-users/zsh-autosuggestions) and even an improved and [auto suggestions](https://github.com/zsh-users/zsh-autosuggestions) and even an improved
version of [auto completion](https://github.com/marlonrichert/zsh-autocomplete). 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 ## Usage

View File

@@ -8,6 +8,9 @@ Notable works of Suckless are the following.
- [ii](https://tools.suckless.org/ii/) is an IRC client - [ii](https://tools.suckless.org/ii/) is an IRC client
- [slock](https://tools.suckless.org/slock/) is a screen locker - [slock](https://tools.suckless.org/slock/) is a screen locker
- [st](https://st.suckless.org/) is a [terminal](/wiki/linux/system_console.md) - [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 Additionally to this Suckless maintains a list of free and open-source software that is endorsed by
Suckless. Suckless.

View File

@@ -10,3 +10,12 @@ data.
list of security flaws of your system list of security flaws of your system
- [arch-audit](https://gitlab.archlinux.org/archlinux/arch-audit) is a tool to find vulnerabilities - [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. 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
[TLP](https://linrunner.de/tlp) is a linux command line utility for [TLP](https://linrunner.de/tlp) is a [Linux command](/wiki/linux.md) line utility for
[saving laptop battery power](/wiki/linux/battery_saving.md) aswell as optimizing battery life. [saving laptop battery power](/wiki/linux/hardware_%28linux%29.md#power-management) as well as
optimizing battery life.
## Setup ## Setup
TLP can be installed on most distributions by installing the `tlp` package. 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. radio devices.
Afterwards the TLP Afterward the TLP [service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
[service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
started and enabled. started and enabled.
In contrast to other In contrast to other
[SystemD services](/wiki/linux/systemd.md#startstopenabledisable-a-service) this [SystemD services](/wiki/linux/systemd.md#startstopenabledisable-a-service) this

View File

@@ -92,7 +92,7 @@ This section is based on an
To fix it downgrade the packages `v4l2loopback-dkms` and `v4l2loopback-utils` to the last working To fix it downgrade the packages `v4l2loopback-dkms` and `v4l2loopback-utils` to the last working
version. version.
For [Arch Linux](/wiki/linux/arch-linux.md) this can be achieved by using For [Arch Linux](/wiki/linux/arch-linux.md) this can be achieved by using
[Downgrade](/wiki/linux/package_manager.md#downgrading-packages). [Downgrade](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages).
### `Error! Bad return status for module build on kernel` ### `Error! Bad return status for module build on kernel`
@@ -100,4 +100,4 @@ When updating the `v4l2loopback` package this error can occur after the creation
[initramfs](/wiki/linux/mkinitcpio.md). [initramfs](/wiki/linux/mkinitcpio.md).
This may point to an incompatibility of the package and kernel version which can only but easily This may point to an incompatibility of the package and kernel version which can only but easily
and temporarily be fixed by downgrading the package as described in and temporarily be fixed by downgrading the package as described in
[the corresponding package manager section](/wiki/linux/package_manager.md#downgrading-packages). [the corresponding package manager entry](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages).

View File

@@ -21,8 +21,8 @@ project is now unmaintained.
An alternative to using this project is An alternative to using this project is
[Überzug++](https://github.com/jstkdng/ueberzugpp) that can be used as a drop-in [Überzug++](https://github.com/jstkdng/ueberzugpp) that can be used as a drop-in
alternative. alternative.
It can be installed by the On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed by the
[Arch User Repository package `ueberzugpp`](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay). [Arch User Repository](/wiki/linux/package_manager/pacman_and_aur.md) package `ueberzugpp`.
After that you need to add 2 files to your path which can be found on After that you need to add 2 files to your path which can be found on
[thimc' Repository](https://github.com/thimc/vifmimg): [thimc' Repository](https://github.com/thimc/vifmimg):

View File

@@ -15,3 +15,13 @@ For this to work the compositor needs to use wlroots.
```sh ```sh
wlr-randr 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

@@ -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 Using [SXHKD](/wiki/linux/sxhkd.md) a hotkey can be setup to seamlessly transition between the two
layouts. 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 #### Display
This section describes the handling of displays by X. This section describes the handling of displays by X.
@@ -135,7 +154,7 @@ EndSection
This can be disabled temporarily by running `xset s off`. 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`. 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 ```txt
Section "ServerFlags" Section "ServerFlags"

View File

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

View File

@@ -1,8 +1,10 @@
# Markup Language # Markup Language
A markup Language is way to encode text so that it has great amounts of structure and formatting. 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). 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 ## Grammar Checking
@@ -26,3 +28,32 @@ One of the most used ones is the
### XML ### XML
XML is a markup language often used together with [RSS Feeds](/wiki/rss.md). 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

@@ -10,16 +10,16 @@ To setup a Meshtastic Node a device that is capable of communicating via LoRa is
Often used devices are [microcontrollers](/wiki/microcontroller.md) based on the 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 [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 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/). 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. 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 flasher works especially well on [Chrome-based Browsers](/wiki/web_browser.md).
The firmware can also be flashed using the command line. The firmware can also be flashed using the command line.
To first check if the device is connected correctly the To first check if the device is connected correctly the
[Python-package](/wiki/programming-languages/python.md) `esptool` can be used which can be [Python-package](/wiki/programming_language/python.md) `esptool` can be used which can be
installed using [pip](/wiki/programming-languages/python.md#modules). installed using [pip](/wiki/programming-languages/python.md#modules).
Some [package managers](/wiki/linux/package_manager.md) of Some [package managers](/wiki/linux/package_manager.md) of
[Linux-based operating systems](/wiki/linux.md) also feature a standalone `esptool` package. [Linux-based operating systems](/wiki/linux.md) also feature a standalone `esptool` package.
@@ -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. `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. 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 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 `device-install.sh` (for Linux and Mac) or the `device-install.bat` script (for
[Windows](/wiki/windows.md)). [Windows](/wiki/windows.md)).
@@ -42,7 +42,7 @@ The firmware can be downloaded from the [official website](https://meshtastic.or
[the GitHub page of the project](https://github.com/meshtastic/firmware/releases). [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 Make sure to select the firmware (starting with `firmware-`) `zip`-archive that corresponds with
your target device. 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. Make sure to adjust `<Board>` and `<Version>` accordingly.
```sh ```sh

View File

@@ -4,8 +4,7 @@
apps from websites. apps from websites.
This way a single website can be used as an application in contrast to opening it in a This way a single website can be used as an application in contrast to opening it in a
[browser](/wiki/web_browser.md). [browser](/wiki/web_browser.md).
It uses [Electron](https://www.electronjs.org/) which in turn uses Nativefier creates [Electron-based web-apps](/wiki/electron.md).
[Chromium](https://www.chromium.org/).
## Setup ## 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 - [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). [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. 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 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). [the Eisvogel Panoc-Latex-Template](https://github.com/Wandmalfarbe/pandoc-latex-template).

View File

@@ -1,7 +1,7 @@
# Office Suite # Office Suite
An office Suite are bundled programs that usually include productivity tools like word processing, 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 ## Programs
@@ -18,3 +18,8 @@ The following is a list of programs that are popular.
and [Linux](/wiki/linux.md). and [Linux](/wiki/linux.md).
Most of the time this suite is not used anymore in favor for LibreOffice due to lackluster Most of the time this suite is not used anymore in favor for LibreOffice due to lackluster
development. 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 ### Converting MS Word to LaTeX
By using the following command a proprietary Microsoft Word document (named `input.docx` in this 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 ```sh
pandoc input.docx -o output.tex 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. 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 - PDF files can easily be used for presenting cross-platform but often used for
[Linux-based operating systems](/wiki/linux.md). [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 - [pympress](https://github.com/Cimbali/pympress) is a cross-platform tool for the presentation via
PDF files. PDF files.
It is also usable for dual screen setups. It is also usable for dual screen setups.

View File

@@ -8,3 +8,39 @@ language.
You can install nim using choosenim with You can install nim using choosenim with
`curl https://nim-lang.org/choosenim/init.sh -sSf | sh`. `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). 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/). 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. 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. When another Python version is needed the version number has to be adapted accordingly.
First make sure all the dependencies are installed. First make sure all the dependencies are installed.
@@ -71,6 +71,38 @@ python3.9 --version
## Usage ## 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 ### Create a requirements file
To automatically create a `requirements.txt` of your current project, navigate To automatically create a `requirements.txt` of your current project, navigate
@@ -115,7 +147,7 @@ directory.
## Modules ## 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`. `pip`.
For this usually a virtual environment is needed - as it is described in For this usually a virtual environment is needed - as it is described in
[the setup section](#setup). [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. `--break-system-packages` flag.
This flag is to be used with care. This flag is to be used with care.
This section addresses various different modules.
### PyTorch ### PyTorch
This section addresses the [PyTorch module](https://pytorch.org/). 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 #### 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 If you are on Arch Linux or a distribution based on it install
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`. `python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
@@ -150,9 +191,27 @@ torch.cuda.is_available()
This should give back `True`. 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 ### TensorFlow
This section addresses the [TensorFlow module](https://www.tensorflow.org/). 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
@@ -163,3 +222,18 @@ Additionally it is noted that the dataset may have to be shuffled manually as de
Finally Finally
[a Medium blog post](https://medium.com/@danielonugha0/how-to-change-the-learning-rate-of-tensorflow-b5d854819050) [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. 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. Screen capture describes the process of recording a computer screen.
For the remotely displaying the screen to another device the 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 ## Screen Capture options
Windows systems using an Nvidia graphics card can make use of ShadowPlay a Windows systems using an Nvidia graphics card can make use of ShadowPlay a
screen recording software integrated in Nvidias suite GeForce Experience. 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 Screen Recorder](/wiki/linux/gpu_screen_recorder.md) to make
gpu-accelerated screen recordings. GPU accelerated screen recordings.
It features similar features to ShadowPlay. 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 [Signal](https://signal.org) is an encrypted, open-source messenger that allows voice and video
calls as well as instant messaging chats. calls as well as instant messaging chats.
ahe desktop client comes in the form of an [Electron based-app](/wiki/electron.md).
## Usage ## 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
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 They are often used to [communicate](/wiki/communication.md) or
[surfing the internet](/wiki/web_browser.md). [surfing the internet](/wiki/web_browser.md).
Most of the time smartphones and tablets also feature a [webcam](/wiki/webcam.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).

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 The software can be setup via [Docker](/wiki/docker.md) with the
[linuxserver image](./docker/linuxserver_-_syncthing.md). [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 [official website](https://syncthing.net/downloads/) and download it from
there. there.
@@ -21,7 +21,7 @@ Syncthing can be configured in root and in user space.
This section assumes that a Linux system is used. This section assumes that a Linux system is used.
For root space configuration you can use the Docker image for easy setup. 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. to sync.
#### User space configuration for Linux #### 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 The user space configuration is a bit more difficult than the root space
configuration. configuration.
The following steps are adapted from a 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 - Download Syncthing from their website as described in the
[setup section][#setup]. [setup section](#setup).
- Extract the downloaded `.tar.gz` file - Extract the downloaded `.tar.gz` file
- Copy the file named `syncthing` to your home directory - Copy the file named `syncthing` to your home directory
- In the downloaded folder copy the file - 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. There are 2 versions currently maintained.
Teamspeak3 is the older version. TeamSpeak3 is the older version.
Teampeak5 or just short Teamspeak is the newer version that is not completely released yet. Teampeak5 or just short TeamSpeak is the newer version that is not completely released yet.
Teamspeak3 servers are also used by Teamspeak5. TeamSpeak3 servers are also used by TeamSpeak5.
## Setup ## 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 ### Client
Teamspeak3 is available for [Windows](/wiki/windows.md) on the TeamSpeak3 is available for [Windows](/wiki/windows.md) on the
[Teamspeak website](https://www.teamspeak.de/download/). [TeamSpeak website](https://www.teamspeak.de/download/).
On most [Linux](/wiki/linux.md) distributions it can be installed with the `teamspeak3` package. On most [Linux](/wiki/linux.md) distributions it can be installed with the `teamspeak3` package.
Teamspeak5 is available for Windows on the TeamSpeak5 is available for Windows on the
[Teamspeak website](https://teamspeak.com/de/downloads/#ts5). [TeamSpeak website](https://teamspeak.com/de/downloads/#ts5).
On most Linux distributions it can be installed with the `teamspeak` package. On most Linux distributions it can be installed with the `teamspeak` package.
### Server ### Server
The server software can be setup via [Docker](/wiki/docker.md) with the The server software can be setup via [Docker](/wiki/docker.md) with the
[teamspeak image](./docker/teamspeak.md). [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): [DNS SRV-record](./dns.md#srv-record):
```txt ```txt
@@ -45,34 +45,34 @@ target: ts3.<domain>.<TLD>
## Usage ## Usage
This section addresses various features of Teamspeak3. This section addresses various features of TeamSpeak.
### Installing a Sound Pack ### Installing a Sound Pack
Sound packs can be found on the 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. They are often available as a `.ts3_soundpack` file.
This file is similar to a `.zip` archive and can be unpacked the same way. 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 Afterwards the folder containing the audio files (`.wav` files) needs to be inserted into the sound
folder of teamspeak. folder of TeamSpeak.
For Teamspeak3 on [Linux](/wiki/linux.md) systems this folder can be found at For TeamSpeak3 on [Linux](/wiki/linux.md) systems this folder can be found at
`/opt/teamspeak3/sound`. `/opt/teamspeak3/sound`.
For Teamspeak5 on Linux the folder is available at `/opt/teamspeak/html/client_ui/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. Following this the sound pack is available after the next (re-)start of TeamSpeak.
### Setting Up a Music Bot ### 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. 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's closed-source and free of charge.
It also features [Discord](/wiki/discord.md) support. It also features [Discord](/wiki/discord.md) support.
### Channel Visibility ### Channel Visibility
As explained by 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. 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 It is however possible to set the subscription and description view power of a channel to a high
value. value.

View File

@@ -1,13 +1,37 @@
# Thunderbird # Thunderbird
[Thunderbird](https://www.thunderbird.net/en-US/) is a free and open-source program to manage [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 ## Usage
The following section addresses different uses and add-ons of Thunderbird. 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 This section is based on a
[superuser comment by blnks](https://superuser.com/questions/1757333/how-can-i-view-thunderbird-in-full-dark-mode). [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. This is called the message pane.
It can be hidden by drag and drop or by pressing the F8-key. It can be hidden by drag and drop or by pressing the F8-key.
Using the same key it can also be shown again. 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 The software can be setup via [Docker](/wiki/docker.md) with the
[traefik image](./docker/traefik.md). [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, [terminals](/wiki/linux/system_console.md) of a remote server,
[dockerized](/wiki/docker.md#dockerize-a-graphical-application) or virtualized [dockerized](/wiki/docker.md#dockerize-a-graphical-application) or virtualized
program. 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. - [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. - [WireGuard](/wiki/wireguard.md) is a modern, fast and secure implementation of the VPN protocol.
It is free and open-source. 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. 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 Additionally guvcview provides an interface to configure various webcam settins
and enable a few effects on top of it. 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 It is possible to use [smart devices](/wiki/smart_device.md) as a webcam.
replacement for a webcam. For [Android](/wiki/android.md) devices the guide to achieve this, can be found in the
For [Android](/wiki/android.md) smartphones this can be easily achieved by using [corresponding section of the Android entry](/wiki/android.md#usage-as-a-webcam.)
[DroidCam](/wiki/android/droidcam.md).
An alternative to DroidCam with a with decidedly better resolution is
[IP Webcam](/wiki/android/ip_webcam.md).

View File

@@ -9,9 +9,10 @@ including subscriptions.
- [Invidious](/wiki/invidious.md) is self-hosted and provides a cross-platform web service. - [Invidious](/wiki/invidious.md) is self-hosted and provides a cross-platform web service.
This frontend allows the usage of [SponsorBlock](#automatically-skip-sponsorships). This frontend allows the usage of [SponsorBlock](#automatically-skip-sponsorships).
- [FreeTube](https://freetubeapp.io/) is a alternative frontend that provides a local desktop - [FreeTube](https://freetubeapp.io/) is an alternative [Electron-based](/wiki/electron.md)
application for [Linux](/wiki/linux.md), Mac and [Windows](/wiki/windows.md) systems. frontend that provides a local desktop application for [Linux](/wiki/linux.md), Mac and
This application has [SponsorBlock](#automatically-skip-sponsorships) built in. [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 - [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). application that is available via the [F-Droid Appstore](/wiki/android/f-droid.md).