mirror of
https://github.com/tiyn/wiki.git
synced 2026-01-11 09:09:45 +01:00
Compare commits
68 Commits
179a9d2426
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5849b76ee8 | |||
| 620f57beb8 | |||
| 47081f9ab6 | |||
| c070ba1d7b | |||
| 90c8863021 | |||
| f73e7d8ecc | |||
| 93479aa78d | |||
| ac608e09b8 | |||
| 3d8f4c11c9 | |||
| 866cad47e1 | |||
| f82ba017c1 | |||
| 3bcff627c5 | |||
| 1aa98200dc | |||
| f7d0ca7f64 | |||
| 1d45041588 | |||
| 68e29c7290 | |||
| 8c4f95fd24 | |||
| d6785f6694 | |||
| eb2011ac30 | |||
| db0822bb6c | |||
| beb5044107 | |||
| ea1c2524d4 | |||
| 5ab0efdf25 | |||
| a6b885bfc4 | |||
| a52f596979 | |||
| abc3d7c7c6 | |||
| fa07d756b6 | |||
| 7974f6fa29 | |||
| 70849c9cb7 | |||
| a26318fedf | |||
| 8dbc4038ad | |||
| 28cf833feb | |||
| 5d8094e90b | |||
| 8ed59c70fa | |||
| 0b19e61b10 | |||
| bc4e041588 | |||
| 7d026b2e4b | |||
| 0d96d019c8 | |||
| 0592f59b7a | |||
| 2d77ff796b | |||
| 97dd97efa9 | |||
| cbf4c8fd87 | |||
| 6ed14666a8 | |||
| 3fe39919c1 | |||
| 661ce3f20b | |||
| 771ecc3b99 | |||
| d6c9c6fdae | |||
| 362aee2899 | |||
| 9f162704d1 | |||
| 4a91f12dcd | |||
| 380f9b34d7 | |||
| 2c48962955 | |||
| d7770d09d9 | |||
| b125fadd9c | |||
| 71abe3c423 | |||
| de74434cf3 | |||
| 0e2428f56e | |||
| bb030e70d5 | |||
| 0e0a9527c9 | |||
| f5bae3580d | |||
| 52aa5b2433 | |||
| 52b46126ab | |||
| 4b4a0b3080 | |||
| 142bb5e8fd | |||
| da90bec3ff | |||
| ee660899d1 | |||
| ca7b3971f5 | |||
| d3c7daca15 |
@@ -4,10 +4,10 @@
|
||||
|
||||
## 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
|
||||
|
||||
Acer laptops usually feature a 8-digit BIOS password.
|
||||
Acer laptops usually feature an 8-digit BIOS password.
|
||||
If it was lost it can easily be regenerated/recovered by using the website
|
||||
[BIOSBug](https://www.biosbug.com/acer).
|
||||
|
||||
@@ -4,23 +4,6 @@
|
||||
[Linux](/wiki/linux.md) kernel.
|
||||
It is designed primarily for mobile devices with touch screens like tablets or smart phones.
|
||||
|
||||
## Managing the Data
|
||||
|
||||
The data and files stored on Android
|
||||
[smart devices](/wiki/smart_device.md#smartphones-and-tablet-computers) are sometimes needed on
|
||||
computers.
|
||||
|
||||
For [Windows](/wiki/windows.md) this can easily be achieved by connecting it via USB.
|
||||
No further software is needed as the device manager handles the phone correctly most of the times.
|
||||
|
||||
For [Linux-based systems](/wiki/linux.md) the
|
||||
[device](/wiki/smart_device.md#smartphones-and-tablet-computers) also has to be connected to the
|
||||
computer.
|
||||
But in this case also a software is needed to [mount it](/wiki/linux/disk-management.md#mounting),
|
||||
this software/program is called [android-file-transfer](/wiki/linux/android-file-transfer.md).
|
||||
For further information and a guide on how to mount a Android device correctly navigate to the
|
||||
[corresponding section](/wiki/linux/android-file-transfer.md#mounting-and-unmounting-android-device).
|
||||
|
||||
## App Store
|
||||
|
||||
The most used app store of android is the [Google Play Store](https://play.google.com/).
|
||||
@@ -50,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
|
||||
apps like calendar, file-manager, phone, messages and more.
|
||||
|
||||
## Improve Security and Privacy
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Android.
|
||||
|
||||
### Managing the Data
|
||||
|
||||
The data and files stored on Android
|
||||
[smart devices](/wiki/smart_device.md#smartphones-and-tablet-computers) are sometimes needed on
|
||||
computers.
|
||||
|
||||
For [Windows](/wiki/windows.md) this can easily be achieved by connecting it via USB.
|
||||
No further software is needed as the device manager handles the phone correctly most of the times.
|
||||
|
||||
For [Linux-based systems](/wiki/linux.md) the
|
||||
[device](/wiki/smart_device.md#smartphones-and-tablet-computers) also has to be connected to the
|
||||
computer.
|
||||
But in this case also a software is needed to [mount it](/wiki/linux/disk-management.md#mounting),
|
||||
this software/program is called [android-file-transfer](/wiki/linux/android-file-transfer.md).
|
||||
For further information and a guide on how to mount a Android device correctly navigate to the
|
||||
[corresponding section](/wiki/linux/android-file-transfer.md#mounting-and-unmounting-android-device).
|
||||
|
||||
### Improve Security and Privacy
|
||||
|
||||
Security and privacy are important topics, especially so when dealing with mobile phones.
|
||||
This section focusses on improving them on a standard Android system.
|
||||
@@ -80,7 +84,7 @@ Another option to add which may not improve security or privacy but improves usa
|
||||
if a difficult passphrase is used - is the enabling of "Extend Unlock".
|
||||
There "Trusted Devices" can be set or the "On-body Detection" can be enabled.
|
||||
|
||||
## Multi-Factor Authentication
|
||||
### Multi-Factor Authentication
|
||||
|
||||
[Multi-factor authentication](/wiki/multi-factor_authentication.md) can easily be set up on android
|
||||
systems.
|
||||
@@ -92,16 +96,16 @@ This app is available at [F-Droid](/wiki/android/f-droid.md) as
|
||||
[Google Play Store](#app-store) by the
|
||||
[same name](https://f-droid.org/de/packages/org.liberty.android.freeotpplus/).
|
||||
|
||||
## Custom ROMs
|
||||
### Custom ROMs
|
||||
|
||||
Besites the stock-firmware of vendors there are also custom ROMs.
|
||||
Besides the stock-firmware of vendors there are also custom ROMs.
|
||||
These are alternative firmware variants made by third party providers.
|
||||
A well known custom ROM is [LineageOS](/wiki/android/lineageos.md).
|
||||
|
||||
It is possible that some custom ROMs require the user to
|
||||
[unlock the bootloader](#unlocking-the-bootloader) before the installation can happen.
|
||||
|
||||
## Unlocking the Bootloader
|
||||
### Unlocking the Bootloader
|
||||
|
||||
Unlocking the bootloader can be a bit challenging for some vendors especially.
|
||||
|
||||
@@ -136,3 +140,19 @@ It is possible that now 72 hours have to pass for the unlocking process to conti
|
||||
If that is the case wait the specified amount of time and repeat the last step.
|
||||
Make sure to not apply for unlocking again and do not add your account to your phone again as this
|
||||
will reset the timer.
|
||||
|
||||
### Remote Control and Screen Mirroring
|
||||
|
||||
[Android](/wiki/android.md) based devices can use [scrcpy](/wiki/scrcpy.md) to mirror the screen
|
||||
and allow controlling it by a [Windows](/wiki/windows.md) or [Linux-based](/wiki/linux.md) system.
|
||||
|
||||
### Usage as a Webcam
|
||||
|
||||
Most Android devices are equipped with a decent camera and a flashlight.
|
||||
If a [Linux](/wiki/linux.md) or [Windows](/wiki/windows.md) system is missing a
|
||||
[webcam](/wiki/webcam.md) which is only rarely used it can be useful to repurpose the
|
||||
[smart device](/wiki/smart_device.md) as a webcam.
|
||||
|
||||
For this there are multiple options.
|
||||
One of them is [DroidCam](/wiki/android/droidcam.md).
|
||||
Another option with a decidedly better resolution is [IP Webcam](/wiki/android/ip_webcam.md).
|
||||
|
||||
33
wiki/android/fairemail.md
Normal file
33
wiki/android/fairemail.md
Normal 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
75
wiki/anki.md
Normal 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.
|
||||
@@ -78,13 +78,15 @@ If you want to keep your system clean of much data, you can use this kind of
|
||||
setup.
|
||||
There are differences depending on your preffered software interface.
|
||||
|
||||
### Digital Audio Workstations
|
||||
### Digital Audio Workstations and Recording Software
|
||||
|
||||
Digital Audio Workstations - short DAWs - is an application that can be used to record, edit or
|
||||
produce audio files.
|
||||
|
||||
- [LMMS](https://lmms.io/) is a free and cross-platform DAW that is highly compatible with
|
||||
[Linux-based systems](/wiki/linux.md).
|
||||
- [Audacity](https://www.audacityteam.org/) is an open source and cross-platform software to record
|
||||
and edit audio.
|
||||
|
||||
### Software for Music/Podcasts/Audiobooks
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
[BetterDiscord](https://betterdiscord.app) is an unofficial extension to
|
||||
[Discord](/wiki/discord.md) which allows to add various functionality through plugins and new
|
||||
themes.
|
||||
It is not a standalone client.
|
||||
|
||||
## Setup
|
||||
|
||||
@@ -26,10 +27,10 @@ betterdiscordctl self-upgrade
|
||||
### Pacman Hook
|
||||
|
||||
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.
|
||||
The following is a [pacman hook](/wiki/linux/package_manager.md#hooks) that can be used to update
|
||||
betterdiscord automatically.
|
||||
The following is a [pacman hook](/wiki/linux/package_manager/pacman_and_aur.md#hooks) that can be
|
||||
used to update betterdiscord automatically.
|
||||
Make sure to change the three occurences of `<username>` to the name of the user to install
|
||||
betterdiscord for.
|
||||
|
||||
|
||||
@@ -6,4 +6,5 @@ It produces citations for the stored records that are used in scholarly research
|
||||
## Software Solutions
|
||||
|
||||
- [Papis](/wiki/linux/papis.md) is a [command-line based](/wiki/linux/shell.md) for
|
||||
[Linux](/wiki/linux.md) bibliography manager that can be used for LaTeX using the BibTeX format.
|
||||
[Linux](/wiki/linux.md) bibliography manager that can be used for
|
||||
[LaTeX](/wiki/markup_language.md#latex) using the BibTeX format.
|
||||
|
||||
@@ -2,6 +2,21 @@
|
||||
|
||||
[Discord](https://discord.com/) is an social platform that combines voice and video conferences as
|
||||
well as instant messaging chats.
|
||||
Additionally to the default website Discord also features a desktop client in the form of an
|
||||
[Electron-based app](/wiki/electron.md).
|
||||
|
||||
## Alternatives
|
||||
|
||||
There are some alernative frontends and modifications available for Discord.
|
||||
|
||||
- [BetterDiscord](/wiki/betterdiscord.md) is a modification for Discord on
|
||||
[Linux-based systems](/wiki/linux.md), which changes an existing installation of Discord.
|
||||
It supports a wide range of plugins and themes.
|
||||
- [Vencord](/wiki/vencord.md) is a standalone custom Discord App.
|
||||
It supports a wide range of plugins and themes.
|
||||
- [Revenge](https://github.com/revenge/revenge-manager) is a standalone client modification of
|
||||
Discord for [Android](/wiki/android.md).
|
||||
It supports a wide range of plugins and themes.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -9,7 +24,7 @@ This section addresses various features of Discord.
|
||||
|
||||
### Disable Automatic Update Checks
|
||||
|
||||
By default Discord performs an automatic check to see if it is up to date.
|
||||
By default, Discord performs an automatic check to see if it is up to date.
|
||||
On [Linux](/wiki/linux.md)-based systems it can be disabled by adding `"SKIP_HOST_UPDATE": true` to
|
||||
the `~/.config/discord/settings.json` file.
|
||||
|
||||
@@ -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.
|
||||
It's closed-source and free of charge.
|
||||
It also features [Teamspeak](/wiki/teamspeak.md) support.
|
||||
It also features [TeamSpeak](/wiki/teamspeak.md) support.
|
||||
|
||||
### Themes and Plugins
|
||||
|
||||
By default Discord has no option to use themes or plugins.
|
||||
This however can be changed by using [BetterDiscord](/wiki/betterdiscord.md).
|
||||
To use themes or plugins [alternative frontends or client modifications](#alternatives) have to be
|
||||
used.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section will focus on errors and the fixing of errors of Discord.
|
||||
|
||||
### Streaming Audio not Possible
|
||||
|
||||
Using the default client when sharing the screen the audio might not be streamed aswell.
|
||||
this section is based on a
|
||||
[Reddit comment by Malo1301](https://www.reddit.com/r/linux_gaming/comments/1kbplea/no_audio_when_sharing_screen_on_discord_for_linux/).
|
||||
This can happen with both [Wayland](/wiki/linux/wayland.md) and
|
||||
[X11](/wiki/linux/x_window_system.md).
|
||||
The simplest way to fix is to use [Vesktop](https://github.com/Vencord/Vesktop).
|
||||
|
||||
58
wiki/docker/ankitects_-_syncserver.md
Normal file
58
wiki/docker/ankitects_-_syncserver.md
Normal 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
|
||||
```
|
||||
41
wiki/docker/kiwix_-_kiwix-serve.md
Normal file
41
wiki/docker/kiwix_-_kiwix-serve.md
Normal 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
|
||||
```
|
||||
@@ -38,6 +38,21 @@ Finally if a reverse proxy is used check the
|
||||
|
||||
Afterwards you're ready to go by once again running the `rebuild.sh` file.
|
||||
|
||||
If setting up this mailserver with [Traefik](/wiki/traefik.md) as a reverse proxy some additional
|
||||
steps should be taken.
|
||||
No http or https is needed.
|
||||
But a certificate for the mailserver is needed regardless.
|
||||
In this case add the following lines to the file `docker-compose.yml` in the
|
||||
`services:` section and adapt them.
|
||||
|
||||
```yml
|
||||
whoami:
|
||||
image: docker.io/traefik/whoami:latest
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.whoami.rule=Host(`<subdomain>.<domain>`)"
|
||||
```
|
||||
|
||||
### rebuild.sh
|
||||
|
||||
```sh
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# traefik
|
||||
|
||||
This is a [Docker](/wiki/docker.md) container for a traefik edge router.
|
||||
This is a [Docker](/wiki/docker.md) container for a [Traefik](/wiki/traefik.md) edge router.
|
||||
The official container and documentation was made by
|
||||
[traefik](https://hub.docker.com/_/traefik).
|
||||
This docker-rebuild is made up by a `docker-compose.yml` file.
|
||||
@@ -12,6 +12,8 @@ In that folder create the directories `data/config`.
|
||||
Place the files `data/traefik.yml` and `data/config/dynamic.yml` in the
|
||||
according directories.
|
||||
Change the settings according to your needs and run `./rebuild.sh` afterwards.
|
||||
Additional guides on the usage of Traefik for [Docker](/wiki/docker.md) services can be found in
|
||||
the [Traefik wiki entry](/wiki/traefik.md#usage).
|
||||
|
||||
### Volumes
|
||||
|
||||
@@ -145,7 +147,7 @@ certificatesResolvers:
|
||||
|
||||
### data/config/dynamic.yml
|
||||
|
||||
In the config replace `username:htpasswd` with the output of
|
||||
In the config replace `<username:htpasswd>` with the output of
|
||||
`echo $(htpasswd -nb <user> <pasword>) | sed -e s/\\$/\\$\\$/g`.
|
||||
|
||||
```yml
|
||||
@@ -162,19 +164,7 @@ http:
|
||||
user-auth:
|
||||
basicAuth:
|
||||
users:
|
||||
- "username:htpasswd"
|
||||
|
||||
redirect-non-www-to-www:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: "^https?://(?:www\\.)?(.+)"
|
||||
replacement: "https://www.${1}"
|
||||
|
||||
redirect-www-to-non-www:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: "^https?://www\\.(.+)"
|
||||
replacement: "https://${1}"
|
||||
- "<username:htpasswd>"
|
||||
|
||||
tls:
|
||||
options:
|
||||
@@ -188,73 +178,3 @@ tls:
|
||||
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
|
||||
minVersion: VersionTLS12
|
||||
```
|
||||
|
||||
The sections called `redirect-non-www-to-www` and `redirect-www-to-non-www` are adapted from a
|
||||
article by Benjamin Rancourt on his
|
||||
[website](https://www.benjaminrancourt.ca/how-to-redirect-from-non-www-to-www-with-traefik/).
|
||||
|
||||
## Usage
|
||||
|
||||
### Create reverse proxies
|
||||
|
||||
To create a reverse proxy from a docker container add the following lines in the
|
||||
`labels:` section of the `docker-compose.yml` of the service to proxy.
|
||||
|
||||
```yml
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.<service name>-secure.entrypoints=websecure"
|
||||
- "traefik.http.routers.<service name>-secure.rule=Host(`<subdomain>.<domain>`)"
|
||||
- "traefik.http.routers.<service name>-secure.service=<service name>"
|
||||
- "traefik.http.services.<service name>.loadbalancer.server.port=<port>"
|
||||
```
|
||||
|
||||
This configuration automatically redirects http to https.
|
||||
When using this configuration the port specified in the latter lines can be
|
||||
ommitted in the `ports:` section if not used directly.
|
||||
This ensures access only via https and restricts access via ip and port.
|
||||
Change `<service name>` according to the service you want to publish and `<subdomain>` aswell as
|
||||
`<domain>` to the domain you intent to publish the service to.
|
||||
Additionally if you want to redirect domains not starting with `www` to one that does not append
|
||||
the following line.
|
||||
|
||||
```yml
|
||||
- "traefik.http.routers.<service name>.middlewares=redirect-non-www-to-www"
|
||||
```
|
||||
|
||||
If the opposite is the case and it should always be redirected to a domain not starting with `www`
|
||||
add the following line.
|
||||
|
||||
```yml
|
||||
- "traefik.http.routers.<service name>.middlewares=redirect-www-to-non-www"
|
||||
```
|
||||
|
||||
In both of those cases the line of the first code block in this section that specifies the domain
|
||||
and subdomain needs to include both the www and the non-www domains.
|
||||
This should look something like the following
|
||||
|
||||
Make sure to add the domain that will be redirected to the labels aswell.
|
||||
For redirection to www domains this will look something like the following.
|
||||
|
||||
```yml
|
||||
- "traefik.http.routers.<service name>.rule=Host(`<subdomain>.<domain>`)"
|
||||
```
|
||||
|
||||
In the opposite case the domain will be `www.<subdomain>.<domain>`.
|
||||
|
||||
### Setup Mailserver
|
||||
|
||||
If setting up a
|
||||
[docker-mailserver by mailserver](./mailserver_-_docker-mailserver.md) no http
|
||||
or https is needed.
|
||||
But a certificate for the mailserver is needed regardless.
|
||||
In this case add the following lines to the file `docker-compose.yml` in the
|
||||
`services:` section and adapt them.
|
||||
|
||||
```yml
|
||||
whoami:
|
||||
image: docker.io/traefik/whoami:latest
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.whoami.rule=Host(`<subdomain>.<domain>`)"
|
||||
```
|
||||
|
||||
37
wiki/docker/viperproject_-_viperserver.md
Normal file
37
wiki/docker/viperproject_-_viperserver.md
Normal 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
48
wiki/electron.md
Normal 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>
|
||||
```
|
||||
@@ -1,17 +1,17 @@
|
||||
# E-mail
|
||||
# Email
|
||||
|
||||
E-mail is a method of exchanging electronic messages.
|
||||
Email is a method of exchanging electronic messages.
|
||||
|
||||
## Setup
|
||||
|
||||
E-mail usually consists of a [server](#server) and a [client](#client).
|
||||
Email usually consists of a [server](#server) and a [client](#client).
|
||||
|
||||
## Server
|
||||
|
||||
If you want to host your own mail-server there are solutions with and without
|
||||
interfaces.
|
||||
|
||||
- [Dovecot](./docker/tvial_-_docker-mailserver.md) is a simple dockerized
|
||||
- [Dovecot](/wiki/docker/mailserver_-_docker-mailserver.md) is a simple dockerized
|
||||
mail server that has no interface.
|
||||
|
||||
## Client
|
||||
@@ -22,6 +22,8 @@ And even if you have it can be useful to keep your mails synced locally on your
|
||||
|
||||
- [Neomutt](linux/neomutt.md) is a [terminal-based](/wiki/linux/system_console.md)
|
||||
mail client for linux, that has a simple interface.
|
||||
- [Thunderbird](/wiki/thunderbird.md) is a free and open source mail client which is cross
|
||||
platform.
|
||||
- [Thunderbird](/wiki/thunderbird.md) is a free and open-source mail client which is
|
||||
cross-platform.
|
||||
It also features, contact, todo and calendar management.
|
||||
- [FairEmail](/wiki/android/fairemail.md) is a free and open-source mail client for
|
||||
[Android](/wiki/android.md).
|
||||
@@ -30,7 +30,7 @@ A notable amount of this group of games uses the top-level domain `.io`.
|
||||
Some examples for these are [territorial.io](https://territorial.io/) and
|
||||
[slither.io](http://slither.io/).
|
||||
|
||||
Another online game is [Massive Decks](/wiki/massivedecks.md) which is the online take on a similar
|
||||
Another online game is [Massive Decks](/wiki/game/massive_decks.md) which is the online take on a similar
|
||||
popular tabletop game.
|
||||
|
||||
For Windows there is the popular old-school pinball game 3d Pinball Space Cadet.
|
||||
@@ -39,10 +39,10 @@ various platforms and operating systems.
|
||||
|
||||
## Syncing Game Saves Across Systems
|
||||
|
||||
By using [Syncthing](../syncthing.md) game saves can be synchronized.
|
||||
By using [Syncthing](/wiki/syncthing.md) game saves can be synchronized.
|
||||
First set up Syncthing as described in the
|
||||
[Syncthing entry](../syncthing.md#setup).
|
||||
If a system with only user access - like the [Steam Deck](./steam_deck.md) - is used the
|
||||
If a system with only user access - like the [Steam Deck](/wiki/game/steam_deck.md) - is used the
|
||||
[user space configuration](../syncthing.md#user-space-configuration-for-linux)
|
||||
is recommended.
|
||||
Afterwards move the game saves to the directory set up by Syncthing and create
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Magic: The Gathering
|
||||
|
||||
[Magic: The Gathering](https://magic.wizards.com) - often shortened to MTG or Magic - is a tabletop
|
||||
[collectible card game](/wiki/game/trading_card_game.md).
|
||||
[collectible card game](/wiki/trading_card_game.md).
|
||||
MTG is published by [Wizards of the Coast](https://company.wizards.com) - which are commonly
|
||||
reffered to as Wizards.
|
||||
In Magic: The Gathering there are many different formats that are all listed on
|
||||
|
||||
@@ -258,14 +258,14 @@ The following are recommended client-side graphical mods.
|
||||
redstone level of a music disc in game.
|
||||
- "Rename 'Stem' to 'Log'" from Vanilla Tweaks is a resource pack that changes the Nether woods to
|
||||
use 'Stem' instead of 'Log'.
|
||||
- "Icons" is a ressource pack that adds icons into the menu and game.
|
||||
Additionally "Icons Advertisement Removal" removes the logo of the "Icons" ressource pack.
|
||||
- "Hoffen's Minimal Armor" is a ressource pack that minimizes the look of armor.
|
||||
- "Vertical Nuggets" is a ressource pack that flips all nuggets to be vertical.
|
||||
- "Colorful Canines" is a ressource pack that makes dog armor more colorful.
|
||||
- "Colorful Sheared Sheep" is a ressource pack that makes the color of sheep wool visible even
|
||||
- "Icons" is a resource pack that adds icons into the menu and game.
|
||||
Additionally "Icons Advertisement Removal" removes the logo of the "Icons" resource pack.
|
||||
- "Hoffen's Minimal Armor" is a resource pack that minimizes the look of armor.
|
||||
- "Vertical Nuggets" is a resource pack that flips all nuggets to be vertical.
|
||||
- "Colorful Canines" is a resource pack that makes dog armor more colorful.
|
||||
- "Colorful Sheared Sheep" is a resource pack that makes the color of sheep wool visible even
|
||||
after the shearing.
|
||||
- "Real Arrrow Tip" is a ressource pack that makes the look of arrows correct ingame.
|
||||
- "Real Arrrow Tip" is a resource pack that makes the look of arrows correct ingame.
|
||||
|
||||
The following are recommended client-side audio mods.
|
||||
|
||||
@@ -313,8 +313,8 @@ The following are recommended client-side HUD and other UI modifications
|
||||
- "Scribble" is a mod that makes editing books easier by adding buttons for color, bold font and
|
||||
more.
|
||||
- "Chat Patches" is a mod that extends the chat history and adds some more tweaks.
|
||||
- "Armor Chroma for Fabric" is a ressource pack that shows the type of armor in the bar.
|
||||
- "Colorful Ping" is a ressource pack that shows the ping symbol in color.
|
||||
- "Armor Chroma for Fabric" is a resource pack that shows the type of armor in the bar.
|
||||
- "Colorful Ping" is a resource pack that shows the ping symbol in color.
|
||||
|
||||
The following are possible client-side mods that change the gameplay or give other information in
|
||||
the game.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[Pokemon](https://www.pokemon.com/) is a multi-media franchise owned by Nintendo.
|
||||
It consists of video games, animated series, films, a
|
||||
[trading card game](/wiki/game/trading_card_game.md) and more.
|
||||
[trading card game](/wiki/trading_card_game.md) and more.
|
||||
|
||||
## Resources
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ The Steam software suite is available on [Linux](/wiki/linux.md) and [Windows](/
|
||||
systems.
|
||||
For Linux-based operating systems there often exists a package named `steam`.
|
||||
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
|
||||
|
||||
|
||||
20
wiki/gimp.md
Normal file
20
wiki/gimp.md
Normal 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.
|
||||
@@ -16,6 +16,13 @@ The usage of the GlobalProtect client is pretty simple.
|
||||
After starting the program the portal address has to be added and is followed by a login.
|
||||
Afterwards the client will connect.
|
||||
|
||||
The standard command to connect to a [VPN](/wiki/vpn.md) server is the following where
|
||||
`<vpn-server>` is the domain of the server (for example `vpn.abc.de`).
|
||||
|
||||
```sh
|
||||
gpclient connect <vpn-server>
|
||||
```
|
||||
|
||||
GlobalProtect is usually used by bigger companies and universities like the
|
||||
[University of Oldenburg](https://uol.de/it-services/services/campus-network) which wrote a proper
|
||||
installation and usage guide for all the operating systems that are supported.
|
||||
|
||||
72
wiki/hailo.md
Normal file
72
wiki/hailo.md
Normal 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).
|
||||
@@ -15,7 +15,7 @@ This entry also features medicinal image and visual formats such as DICOM.
|
||||
|
||||
Editing images can be done by various image manipulation software.
|
||||
|
||||
- [GIMP](https://www.gimp.org/) is a popular cross-platform program for editing pictures.
|
||||
- [GIMP](/wiki/gimp.md) is a popular cross-platform program for editing pictures.
|
||||
- [ImageMagick](/wiki/imagemagick.md) is another cross-platform software suite for creating and
|
||||
- editing (raster) images.
|
||||
- [upscayl](https://github.com/upscayl/upscayl) is an upscaler that can be used cross-platform.
|
||||
|
||||
24
wiki/kiwix.md
Normal file
24
wiki/kiwix.md
Normal 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.
|
||||
@@ -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.
|
||||
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
|
||||
|
||||
|
||||
@@ -3,17 +3,19 @@
|
||||
[Arch Linux](https://archlinux.org/) is a rolling-release, general-purpose
|
||||
[Linux](/wiki/linux.md)
|
||||
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
|
||||
|
||||
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.
|
||||
An additional repository for user made software exists.
|
||||
It is called Arch User Repository (AUR).
|
||||
The Arch User Repositories (AUR) features community-made packages that can be
|
||||
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
|
||||
|
||||
|
||||
@@ -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`
|
||||
repository, which is for example needed for the `steam` package.
|
||||
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.
|
||||
|
||||
```txt
|
||||
@@ -244,7 +244,7 @@ should be checked for further setups.
|
||||
|
||||
In some cases the Arch keyring needs to be repopulated.
|
||||
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
|
||||
[the NVidia article](../nvidia.md) too.
|
||||
|
||||
271
wiki/linux/bluez.html
Normal file
271
wiki/linux/bluez.html
Normal 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>
|
||||
@@ -6,7 +6,7 @@ This entry features the BlueZ package and all software that is based on it.
|
||||
|
||||
## Setup
|
||||
|
||||
On most linux distributions BlueZ can be installed with the `bluez` package.
|
||||
On most [Linux](/wiki/linux.md) distributions BlueZ can be installed with the `bluez` package.
|
||||
Additionally the `bluez-utils` package needs to be installed.
|
||||
To load the kernel module `modprobe btusb` needs to be run.
|
||||
Afterwards the
|
||||
@@ -28,3 +28,6 @@ The Bluetooth features can be managed by different types of front-ends.
|
||||
[terminal](/wiki/linux/system_console.md) user interface.
|
||||
It is included in a package of the same name, that needs to be installed
|
||||
before usage.
|
||||
Using `bluetuith` the [Bluetooth](/wiki/bluetooth.md) can be turned on (or off) by pressing `o`,
|
||||
devices can be searched for by pressing `s`, a selected device can be paired by pressing `p` and
|
||||
finally connected by pressing `c` before `bluetuith` can be left with `Q`.
|
||||
|
||||
67
wiki/linux/debian.md
Normal file
67
wiki/linux/debian.md
Normal 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
|
||||
```
|
||||
@@ -1,6 +1,6 @@
|
||||
# Disk Management
|
||||
|
||||
This article focusses on non-LVM and non-MDADM storage.
|
||||
This article focusses on non-LVM and non-MDADM storage including swap.
|
||||
For [LVM](lvm.md), [NTFS](./ntfs.md), [Samba](./samba.md), [MDADM](./mdadm.md) and [LUKS volumes](./dm-crypt.md) there
|
||||
are separate entries.
|
||||
|
||||
@@ -8,6 +8,35 @@ are separate entries.
|
||||
|
||||
This section focusses on various usages for disk management related topics.
|
||||
|
||||
### Increasing Swap File Size
|
||||
|
||||
The size of a swap file can easily be increased using the following steps.
|
||||
Using the following commands currently active swaps can be shown and the usage of them can be
|
||||
checked.
|
||||
|
||||
```sh
|
||||
swapon --show
|
||||
free -h
|
||||
```
|
||||
|
||||
Then the swap file can be changed using the following commands.
|
||||
`<location>` is the location of the swap file (for example `/swap.img`).
|
||||
`<size>` describes the new size of the swap file (for example `16G`)
|
||||
|
||||
```sh
|
||||
swapoff <location>
|
||||
fallocate -l <size> <location>
|
||||
chmod 600 <location>
|
||||
mkswap <location>
|
||||
swapon <location>
|
||||
```
|
||||
|
||||
Finally the swap can be checked again to confirm that it is online and has the correct size
|
||||
|
||||
```sh
|
||||
swapon --show
|
||||
```
|
||||
|
||||
### Benchmarking Data Transfer Rates
|
||||
|
||||
Real data transfer rates can easily be checked using the program `pv`.
|
||||
@@ -96,10 +125,10 @@ In the following it is assumed that the partition to enlarge is `/dev/sda2`
|
||||
|
||||
- change the size of the partition with `parted /dev/sda`
|
||||
- inside of parted run `print free` and check where the free space after your
|
||||
partition ends
|
||||
partition ends
|
||||
- run `resizepart` and follow the instructions; End is the number you checked in
|
||||
the last step (alternatively you can insert `100%` as end, if you want to add all
|
||||
the available free space to the partition)
|
||||
the last step (alternatively you can insert `100%` as end, if you want to add all
|
||||
the available free space to the partition)
|
||||
- `quit` parted
|
||||
|
||||
Afterwards the file system need to be resized as described in a
|
||||
@@ -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.
|
||||
|
||||
- [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)
|
||||
|
||||
## Accessing Disks as User
|
||||
|
||||
Sometimes - for example when flashing an SD card for a
|
||||
[Raspberry Pi](/wiki/linux/raspberry_pi.md#setup) - it may be useful to do so with your default
|
||||
user and not using the root user.
|
||||
For this to work the user can be added to the `disk` group permanently.
|
||||
Please note that this however reduces the systems security.
|
||||
A command to do so, may look like the following (given the `$USER` variable is set correctly).
|
||||
|
||||
```sh
|
||||
usermod -a -G disk $USER
|
||||
```
|
||||
|
||||
## Error solving
|
||||
|
||||
This section addresses various problems that can occur and are related to
|
||||
disk-management.
|
||||
|
||||
### sudo: unable to open ... Read-only file system
|
||||
### `sudo: unable to open ... Read-only file system`
|
||||
|
||||
Ususally the filesystem will go into read-only mode whe the system is running
|
||||
and there is a consistency error.
|
||||
@@ -163,7 +205,7 @@ To fix it run:
|
||||
you may want to try using the ext4-specific fsck:
|
||||
- `fsck.ext4 -f /dev/sda1`
|
||||
|
||||
### cannot access: Transport endpoint is not connected
|
||||
### `cannot access: Transport endpoint is not connected`
|
||||
|
||||
This error message can occur if a mounted directory is left mounted due to a
|
||||
crash of the filesystem but not accessible anymore.
|
||||
|
||||
@@ -12,7 +12,41 @@ Another possible tagging software is [MusicBrainz Picard](../picard.md)
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of the flac package.
|
||||
|
||||
### Splitting Flac file according to cue file
|
||||
|
||||
`shnsplit` can be used to split flac files.
|
||||
In the [shnsplit article](/wiki/linux/shntool.md) an explanation on this is given.
|
||||
|
||||
### Compress or Recompress `.wav` and `.flac` files
|
||||
|
||||
`.flac` and `.wav` files can be compressed with the following command.
|
||||
In this `<wav-flac-file>` is the path to the music file but can also use wildcards (for example
|
||||
`*.wav`).
|
||||
`<compression>` is the compression rate.
|
||||
The highest compression preset is `8`.
|
||||
|
||||
```sh
|
||||
flac -<compression> <wav-flac-file>
|
||||
```
|
||||
|
||||
When recompressing `.flac` files the file does not have to be decoded to encode it again but can be
|
||||
recompressed in one command.
|
||||
|
||||
According to a
|
||||
[Reddit comment by berdmayne](https://www.reddit.com/r/foobar2000/comments1m3634l/best_way_to_reduce_flac_file_size_without_losing)
|
||||
the compression rates of the different levels are the following.
|
||||
|
||||
| Level | Saving to level 0 | Saving to previous level |
|
||||
| ---------------- | ------------------- | ------------------------ |
|
||||
| 0 (uncompressed) | 0.0% | |
|
||||
| 1 | 0.5% | 0.5% |
|
||||
| 2 | 0.9% | 0.4% |
|
||||
| 3 | 5.3% | 4.4% |
|
||||
| 4 | 6.0% | 0.7% |
|
||||
| 5 | 6.4% | 0.4% |
|
||||
| 6 | 6.7% | 0.4% |
|
||||
| 7 | 6.9% | 0.2% |
|
||||
| 8 | 7.0% | 0.1% |
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ linux systems.
|
||||
|
||||
## Setup
|
||||
|
||||
The `flatpak` package can be installed by most distribution specific package
|
||||
managers (e.g. [pacman or yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay)).
|
||||
The `flatpak` package can be installed by most distribution specific
|
||||
[package managers](/wiki/linux/package_manager.md)).
|
||||
After installation it is important to add [flathub](https://flathub.org/home),
|
||||
a source for many Flatpak packages.
|
||||
The addition of this can be done by running
|
||||
|
||||
@@ -53,7 +53,17 @@ Follow the section on [adding new fonts](#adding-new-font-to-configuration) and
|
||||
This section addresses important commands and packages for the configuration of
|
||||
fonts.
|
||||
|
||||
### Show Characters Of A Font
|
||||
### Display Available Fonts for Character
|
||||
|
||||
To list all fonts that are able to display a specific unicode character use the following command.
|
||||
`<unicode>` is the code for one (for example `26AA`) or more (for example `26AA,26AB`) unicode
|
||||
characters.
|
||||
|
||||
```sh
|
||||
fc-list :charset=<unicode>
|
||||
```
|
||||
|
||||
### Show Characters of a Font
|
||||
|
||||
Using [FontForge](https://fontforge.org/en-US/) all characters of a given `.ttf` file can be shown.
|
||||
The following shows the structure of a command to call FontForge with a file.
|
||||
|
||||
@@ -48,12 +48,13 @@ git ls-files -v | grep "^S"
|
||||
Authentication by default is done via a username and a password.
|
||||
For some services such as GitHub.
|
||||
it is not possible to use password as an authentication method.
|
||||
The other possibility to authenticate to git is by using
|
||||
[SSH](/wiki/linux/ssh.md).
|
||||
The other possibility to authenticate to git is by using [SSH](/wiki/ssh.md).
|
||||
|
||||
The following sections assumes using a [Linux-based system](/wiki/linux.md) using
|
||||
[OpenSSH](/wiki/linux/openssh.md).
|
||||
For this a
|
||||
[SSH certificate has to be created](/wiki/linux/ssh.md#generate-new-keys) and
|
||||
[added to the authentication agent](/wiki/linux/ssh.md#adding-keys-to-authentication-agent).
|
||||
[SSH certificate has to be created](/wiki/linux/openssh.md#generate-new-keys) and
|
||||
[added to the authentication agent](/wiki/linux/openssh.md#adding-keys-to-authentication-agent).
|
||||
Afterwards it the public SSH key to be added to the git server.
|
||||
For GitHub there is
|
||||
[a guide on that topic](https://docs.github.com/en/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password).
|
||||
@@ -71,16 +72,52 @@ git clone https://github.com/tiyn/wiki
|
||||
By using the SSH config file the clone command can be shortened to
|
||||
`git clone github:tiyn/wiki`.
|
||||
For this follow the
|
||||
[corresponding section in the SSH entry](/wiki/linux/ssh.md#shorten-ssh-connection-commands).
|
||||
[corresponding section in the SSH entry](/wiki/linux/openssh.md#shorten-ssh-connection-commands).
|
||||
Set `Host` to `github`, `HostName` to `github.com` and `User` to `git`.
|
||||
|
||||
### Improved `git diff`
|
||||
|
||||
[Diff So Fancy](https://github.com/so-fancy/diff-so-fancy) is a drop in
|
||||
replacement for the default `git diff` look.
|
||||
It can be installed via the
|
||||
[repository](https://github.com/so-fancy/diff-so-fancy) or the `diff-so-fancy`
|
||||
package.
|
||||
There are different possibilities to improve the diff of git.
|
||||
One of them is [diff-so-fancy](#git-diff-diff-so-fancy) which allows word specific `git diff`.
|
||||
A second and more modern option is [delta](#git-diff-delta) which additionally allows syntax
|
||||
highlighting and a side-by-side view.
|
||||
delta also improves the `git blame` command, which is another reason why it is widely more popular
|
||||
then diff-so-fancy.
|
||||
|
||||
A more or less complete overview of the options was performed in an
|
||||
[Article on Medium by Maxim Smolin](https://maximsmol.medium.com/improving-git-diffs-4519a6541cd1).
|
||||
|
||||
#### `git diff`: Delta
|
||||
|
||||
[delta](https://github.com/dandavison/delta) first needs to be installed.
|
||||
Most [package managers](/wiki/linux/package_manager.md) package it in the package `git-delta`.
|
||||
|
||||
Afterwards it needs to be enabled.
|
||||
To do this globally add the following lines to the configuration file of git, which can be found in
|
||||
`~/.gitconfig`.
|
||||
Depending on the system settings and preferences the dark-mode (`dark`) and the side-by-side view
|
||||
(`side-by-side`) can and should be disabled.
|
||||
|
||||
```txt
|
||||
[core]
|
||||
pager = delta
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
[delta]
|
||||
navigate = true
|
||||
dark = true
|
||||
side-by-side = true
|
||||
show-syntax-themes = true
|
||||
[merge]
|
||||
conflictStyle = zdiff3
|
||||
```
|
||||
|
||||
#### `git diff`: diff-so-fancy
|
||||
|
||||
[diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) is a drop in replacement for the default
|
||||
`git diff` look.
|
||||
It can be installed via most [package managers](/wiki/linux/package_manager.md) using the
|
||||
`diff-so-fancy` package.
|
||||
Afterwards the following lines need to be run to complete the configuration.
|
||||
|
||||
```sh
|
||||
|
||||
@@ -15,15 +15,21 @@ This section addresses the usage of Gnirehtet.
|
||||
## Setting Up and Running Reverse Tethering
|
||||
|
||||
The following command can be used to setup the reverse tethering and also run it.
|
||||
For it to work the mobile device has to enable `USB Debugging` so Gnirehtet can automatically be
|
||||
For it to work the [Android](/wiki/android.md) device has to enable `USB Debugging` so Gnirehtet can automatically be
|
||||
installed (which is internally done using `adb`).
|
||||
Additionally `Use USB for` has to be set to `File Transfer` and not to
|
||||
`USB Tethering` as this would start the normal tethering process and resolving internet access from
|
||||
the [Linux](/wiki/linux.md) system to the Android device and not the other way around.
|
||||
|
||||
The initiating of the reverse tethering can be done by using the following command.
|
||||
|
||||
```sh
|
||||
gnirehtet run
|
||||
```
|
||||
|
||||
Alternatively and only after being set up correctly the reverse tethering can be started and
|
||||
stopped with the corresponding two commands that follow.
|
||||
When the `run` command is active the reverse tethering can be started and stopped using the
|
||||
following commands.
|
||||
If the `run` command is not active the reverse tethering will not work.
|
||||
|
||||
```sh
|
||||
gnirehtet start
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# GPG
|
||||
|
||||
[GNU Privacy Guard](https://gnupg.org/) - short GnuPG or just GPG - is a free and open-source
|
||||
implementation of OpenPGP from [RFC 4880](https://datatracker.ietf.org/doc/html/rfc4880).
|
||||
implementation of [OpenPGP](/wiki/openpgp.md).
|
||||
It is used to savely encrypt and decrypt messages or files using assymetric encryption.
|
||||
|
||||
## Setup
|
||||
@@ -13,6 +13,15 @@ Sometimes it is also called `gnupg2`.
|
||||
|
||||
This section addresses the usage of the Open GPG.
|
||||
|
||||
### List or Find a Key
|
||||
|
||||
To find a key use the following command.
|
||||
`<query>` is a search string and is optional.
|
||||
|
||||
```sh
|
||||
gpg --list-keys <query>
|
||||
```
|
||||
|
||||
### Generating a Key Pair
|
||||
|
||||
A fast way to generate a key pair is by running the following command.
|
||||
@@ -104,6 +113,27 @@ gpg --recv-key <id>
|
||||
gpg --lsign <id>
|
||||
```
|
||||
|
||||
### Managing Multiple Users and E-Mails of an Existing Secret Key
|
||||
|
||||
A secret key can have more than one e-mail assigned to it.
|
||||
After generating the key however only a single user is added by default.
|
||||
|
||||
To add another one use the following command where `<key-id>` is the id of the key to add the
|
||||
e-mail to.
|
||||
|
||||
```sh
|
||||
gpg --edit-key <key-id>
|
||||
```
|
||||
|
||||
Afterwards a console will open.
|
||||
Using `adduid` another user can be added by following the on-screen instructions.
|
||||
Afterwards `save` will save the progress and exit from the console.
|
||||
|
||||
To delete an existing user and e-mail also open the edit-console.
|
||||
Then list the existing users using the command `uid` and select the user id of the key to delete
|
||||
with `uid <id>` where `<id>` is the key to delete.
|
||||
Then delete it with `deluid` and save with `save`.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section will focus on errors and the fixing of errors of GPG.
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
# Khard
|
||||
|
||||
[Khard](https://github.com/lucc/khard) is a adressbook that runs in your
|
||||
[Khard](https://github.com/lucc/khard) is an address book that runs in your
|
||||
[terminal](/wiki/linux/system_console.md).
|
||||
You can sync it with [vdirsyncer](vdirsyncer.md).
|
||||
|
||||
## Setup
|
||||
|
||||
On most linux distributions Khal can be installed with the `khard` package.
|
||||
On most [Linux](/wiki/linux.md) distributions Khal can be installed with the `khard` package.
|
||||
Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
|
||||
|
||||
### Configuration
|
||||
|
||||
- Add and configure a config for khard
|
||||
- Add and configure a config for Khard
|
||||
- `mkdir ~/.config/khard` - add a directory for the config
|
||||
- `cp /usr/share/doc/khard/khard.conf.example ~/.config/khard/khard.conf` -
|
||||
Copy the example configuration
|
||||
@@ -19,5 +19,5 @@ Alternatively it can be installed via [GitHub](https://github.com/lucc/khard).
|
||||
|
||||
#### Mutt
|
||||
|
||||
It is possible to use your khard-addressbook in mutt.
|
||||
To see how it works check out the [Mutt](/#application/neomutt.md).
|
||||
It is possible to use your Khard address book in mutt.
|
||||
To see how it works check out the [Mutt](/wiki/linux/neomutt.md).
|
||||
|
||||
@@ -175,5 +175,9 @@ password-border-radius = 0.341125em
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section will focus on errors and the fixing of errors of LightDM.
|
||||
|
||||
### Bypass LightDM on Error
|
||||
|
||||
If it comes to problems that deny the login it can be useful to switch to another tty.
|
||||
This can be done by hitting the key combination `CTRL+ALT+F2`.
|
||||
|
||||
@@ -32,3 +32,19 @@ In `nvidia-settings` under
|
||||
`X Server Display Configuration` select your display and click on `Advanced`
|
||||
and select either `Force Composition Timeline` or
|
||||
`Force Full Composition Timeline`.
|
||||
|
||||
### Pascal-GPUs and New Drivers
|
||||
|
||||
On some operating systems like [Arch Linux](/wiki/linux/arch-linux.md) the newer versions of
|
||||
drivers are not compatible with Pascal GPUs anymore as explained in
|
||||
[the german Arch forum](https://www.archlinux.de/news/35689-Nvidia-Treiber-ab-Version-590-stellen-den-Support-fuer-Pascal-GPUs-ein).
|
||||
This is due to the drop of support for these cards from Nvidias site.
|
||||
If Pascal-GPUs are still used some minor changes need to be performed and some packets need to be
|
||||
replaced.
|
||||
On Arch Linux-based systems this can be achieved by replacing the packages `nvidia-open` and
|
||||
`nvidia-open-utils` with `nvidia-580xx-dkms`, `nvidia-580xx-utils` and `lib32-nvidia-580xx-utils`.
|
||||
If upgrading from a Pascal-GPU to a newer version this change needs to be undone.
|
||||
|
||||
After the packages are changed it is important to
|
||||
[rebuild the initial ramdisk](/wiki/linux/mkinitcpio.md#manually-generate-initial-ramdisk) and
|
||||
reboot the system.
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
# SSH
|
||||
# OpenSSH
|
||||
|
||||
SSH is a network protocoll to securely connect to a computer.
|
||||
In this article it is assumed that `openssh` is used.
|
||||
[OpenSSH](https://www.openssh.com) is an implementation of the [SSH protocol](/wiki/ssh.md).
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of OpenSSH.
|
||||
|
||||
### Generate New Keys
|
||||
|
||||
To generate new ssh keys simply run `ssh-keygen -t ed25519` or
|
||||
`ssh-keygen -t rsa -b 4096`.
|
||||
For security reasons the Ed25519 is more secure, even if the key length is far smaller than its RSA
|
||||
counterpart.
|
||||
|
||||
The keys can then be added to the authentication agent by as described in the
|
||||
[corresponding article](#adding-keys-to-authentication-agent)
|
||||
@@ -35,15 +38,30 @@ to `PermitRootLogin yes`.
|
||||
To enable easy login without password you can add the contents of the file
|
||||
`~/.ssh/id_rsa.pub` from your local machine to the file `~/.ssh/authorized_keys`
|
||||
on the machine you want to log into.
|
||||
You can use the modified command below for ease of use:
|
||||
|
||||
There are two options to add the public key to the remote machine.
|
||||
The first is a more manual approach.
|
||||
`<path-to-public-key>` is the path to the public key (for example `~/.ssh/id_rsa.pub`) and `<host>`
|
||||
is the (user and) server to add the key to (for example `user@192.168.178.16`).
|
||||
|
||||
```sh
|
||||
cat ~/.ssh/id_rsa.pub | ssh username@server 'cat >> ~/.ssh/authorized_keys'
|
||||
cat <path-to-public-key> | ssh <host> 'cat >> ~/.ssh/authorized_keys'
|
||||
```
|
||||
|
||||
This can also be more or less fully automated using the `-G` flag of SSH as described in
|
||||
[a YouTube video by nixhero](https://www.youtube.com/watch?v=xCX14u9XzE8).
|
||||
|
||||
The second option is a bit safer, due to using OpenSSHs tools, was described in a
|
||||
[StackOverflow comment by Boy](https://stackoverflow.com/questions/18690691/how-to-add-a-ssh-key-to-remote-server).
|
||||
It functions similar to the first and uses the following command.
|
||||
|
||||
```sh
|
||||
ssh-copy-id -f -i <path-to-public-key> <host>
|
||||
```
|
||||
|
||||
The `-f` flag can alos be omittet to check if the key is already installed.
|
||||
For being very safe is important, a dry run can be performed using the `-n` flag.
|
||||
|
||||
### Mount Directory With SSHFS
|
||||
|
||||
This section is loosely based on
|
||||
@@ -157,3 +175,18 @@ kill <process-id>
|
||||
|
||||
Files that are based on a remote server can be mounted as described in
|
||||
[the corresponding section](#mount-directory-with-sshfs) to setup complete remote development.
|
||||
|
||||
### Specify Key Exchange Algorithms
|
||||
|
||||
It can be useful to specify the key exchange algorithms in the OpenSSH config file `~/.ssh/config`.
|
||||
Some key exchange algorithms are more secure regarding post-quantum attacks.
|
||||
The following configuration prefers and enforces hybrid post-quantum–resistant 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
|
||||
```
|
||||
@@ -1,326 +1,12 @@
|
||||
# Package Managers
|
||||
# Package Manager
|
||||
|
||||
Package managers are important programs to get software onto your system.
|
||||
|
||||
## Arch Linux: Pacman and Yay
|
||||
|
||||
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.
|
||||
|
||||
#### 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>
|
||||
```
|
||||
The following is a list of package managers and the corresponding [Linux](/wiki/linux.md)
|
||||
distributions.
|
||||
|
||||
- [Debian](/wiki/linux/debian.md) and Debian-based distributions like
|
||||
[Proxmox](/wiki/linux/proxmox.md) use the [APT](/wiki/linux/package_manager/apt.md) package
|
||||
manager.
|
||||
- [Arch Linux](/wiki/linux/arch-linux.md) and Arch-based distributions use
|
||||
[Pacman]() and various managers for the AUR.
|
||||
|
||||
38
wiki/linux/package_manager/apt.md
Normal file
38
wiki/linux/package_manager/apt.md
Normal 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
|
||||
```
|
||||
350
wiki/linux/package_manager/pacman_and_aur.md
Normal file
350
wiki/linux/package_manager/pacman_and_aur.md
Normal 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.
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[Papis](/wiki/linux/papis.md) is a [command-line based](/wiki/linux/shell.md) for
|
||||
[Linux](/wiki/linux.md) [bibliography manager](/wiki/bibliographic_software.md) that can be used
|
||||
for LaTeX using the BibTeX format.
|
||||
for [LaTeX](/wiki/markup_language.md#latex) using the BibTeX format.
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[PlayerCTL](https://github.com/altdesktop/playerctl) is a MPRIS (Media Player
|
||||
Remote Interfacing Specification) [media player](/wiki/audio.md#media-software)
|
||||
command-line controller for Spotify, [Sonixd](/wiki/subsonic.md#client), MPV and
|
||||
many other different media clients aswell as [browser](/wiki/browser.md).
|
||||
many other different media clients aswell as [browser](/wiki/web_browser.md).
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
@@ -1,8 +1,103 @@
|
||||
# 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
|
||||
|
||||
@@ -12,7 +107,7 @@ Then add the LVM via the web-interface.
|
||||
Select Datacenter and Storage. The `Add` and choose `LVM`.
|
||||
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.
|
||||
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
|
||||
[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`.
|
||||
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`.
|
||||
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
|
||||
|
||||
@@ -69,14 +162,14 @@ for example
|
||||
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.
|
||||
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)
|
||||
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.
|
||||
This is a bit too low.
|
||||
@@ -88,7 +181,7 @@ your liking.
|
||||
|
||||
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,
|
||||
that the NIC changes.
|
||||
|
||||
@@ -38,7 +38,8 @@ This is also described in the
|
||||
|
||||
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
|
||||
[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
|
||||
[configuration section](#configuration).
|
||||
|
||||
|
||||
47
wiki/linux/raspberry_pi.md
Normal file
47
wiki/linux/raspberry_pi.md
Normal 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.
|
||||
@@ -14,12 +14,14 @@ The following is a list of Unix shells that are POSIX compliant.
|
||||
`/bin/sh`. It is significantly faster than Bash and it is recommende to set
|
||||
DASH to be [the system shell](#changing-the-system-shell-binsh).
|
||||
- [Zsh](https://www.zsh.org/) is a shell designed to be interactive but also a
|
||||
powerful scripting language. It is often set to be the
|
||||
[default user shell](#changing-the-default-user-shell) because of its user
|
||||
friendliness and a more features like the possibility for
|
||||
powerful scripting language.
|
||||
It is often set to be the [default user shell](#changing-the-default-user-shell) because of its
|
||||
user friendliness and a more features like the possibility for
|
||||
[syntax highlighting](https://github.com/zdharma-continuum/fast-syntax-highlighting)
|
||||
and [auto suggestions](https://github.com/zsh-users/zsh-autosuggestions) and even an improved
|
||||
version of [auto completion](https://github.com/marlonrichert/zsh-autocomplete).
|
||||
For basic usage check [bash2zsh](https://www.bash2zsh.com/zsh_refcard/refcard.pdf) or
|
||||
[zsh-lovers](https://grml.org/zsh/zsh-lovers.html).
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@ Notable works of Suckless are the following.
|
||||
- [ii](https://tools.suckless.org/ii/) is an IRC client
|
||||
- [slock](https://tools.suckless.org/slock/) is a screen locker
|
||||
- [st](https://st.suckless.org/) is a [terminal](/wiki/linux/system_console.md)
|
||||
- [dwl](https://codeberg.org/dwl/dwl) is a window manager similar to dwm that can be used on
|
||||
[Wayland](/wiki/linux/wayland.md) systems.
|
||||
For the IPC-patch [dwlmsg](https://codeberg.org/notchoc/dwlmsg) can also be used.
|
||||
|
||||
Additionally to this Suckless maintains a list of free and open-source software that is endorsed by
|
||||
Suckless.
|
||||
|
||||
@@ -10,3 +10,12 @@ data.
|
||||
list of security flaws of your system
|
||||
- [arch-audit](https://gitlab.archlinux.org/archlinux/arch-audit) is a tool to find vulnerabilities
|
||||
known to the [Arch](/wiki/linux/arch-linux.md) Security Team.
|
||||
|
||||
## Specific Steps to Harden a System
|
||||
|
||||
The following points are steps that harden a system.
|
||||
|
||||
- For [OpenSSH](/wiki/linux/openssh.md) enable hybrid post-quantum key exchange algorithms as
|
||||
described in the [corresponding entry](/wiki/linux/openssh.md#specify-key-exchange-algorithms).
|
||||
Using hybrid post-quantum-safe key exchange methods reduces the risk of so called "store-now,
|
||||
decrypt-later" attacks.
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# TLP
|
||||
|
||||
[TLP](https://linrunner.de/tlp) is a linux command line utility for
|
||||
[saving laptop battery power](/wiki/linux/battery_saving.md) aswell as optimizing battery life.
|
||||
[TLP](https://linrunner.de/tlp) is a [Linux command](/wiki/linux.md) line utility for
|
||||
[saving laptop battery power](/wiki/linux/hardware_%28linux%29.md#power-management) as well as
|
||||
optimizing battery life.
|
||||
|
||||
## Setup
|
||||
|
||||
TLP can be installed on most distributions by installing the `tlp` package.
|
||||
Additionally the installation of `tlp-rdw` is recommended, which is used to get better control over
|
||||
Additionally, the installation of `tlp-rdw` is recommended, which is used to get better control over
|
||||
radio devices.
|
||||
Afterwards the TLP
|
||||
[service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
|
||||
Afterward the TLP [service](/wiki/linux/systemd.md#startstopenabledisable-a-service) needs to be
|
||||
started and enabled.
|
||||
In contrast to other
|
||||
[SystemD services](/wiki/linux/systemd.md#startstopenabledisable-a-service) this
|
||||
|
||||
@@ -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
|
||||
version.
|
||||
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`
|
||||
|
||||
@@ -100,4 +100,4 @@ When updating the `v4l2loopback` package this error can occur after the creation
|
||||
[initramfs](/wiki/linux/mkinitcpio.md).
|
||||
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
|
||||
[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).
|
||||
|
||||
@@ -21,8 +21,8 @@ project is now unmaintained.
|
||||
An alternative to using this project is
|
||||
[Überzug++](https://github.com/jstkdng/ueberzugpp) that can be used as a drop-in
|
||||
alternative.
|
||||
It can be installed by the
|
||||
[Arch User Repository package `ueberzugpp`](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay).
|
||||
On [Arch Linux](/wiki/linux/arch-linux.md) it can be installed by the
|
||||
[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
|
||||
[thimc' Repository](https://github.com/thimc/vifmimg):
|
||||
|
||||
|
||||
@@ -15,3 +15,13 @@ For this to work the compositor needs to use wlroots.
|
||||
```sh
|
||||
wlr-randr
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section addresses problems that can occur when using Wayland and ways to solve them.
|
||||
|
||||
### Invisible Notifications and Pop-Ups
|
||||
|
||||
There is a chance that notifications and pop-ups are not displayed correctly at some time when
|
||||
using Wayland.
|
||||
To fix this the most simple way is to just restart the compositor that is currently used.
|
||||
|
||||
@@ -108,6 +108,25 @@ setxkbmap -query | grep -q '<layout 1>' && setxkbmap <layout 2> || setxkbmap <la
|
||||
Using [SXHKD](/wiki/linux/sxhkd.md) a hotkey can be setup to seamlessly transition between the two
|
||||
layouts.
|
||||
|
||||
##### Write Diacritics and Ligatures
|
||||
|
||||
In many languages there are ligatures (for example `œ`) and diacritics (for example `ç`).
|
||||
An easy way to write them is by using the compose button.
|
||||
Using the compose button these special symbols can be composed from their parts.
|
||||
The `ç` can be written by chaining compose with `,` and `c`.
|
||||
The `œ` can be written by chaining compose with `o` and `e`.
|
||||
There are many other diacritics and ligatures that can be written this way.
|
||||
|
||||
To temporarily set up a compose key the following command can be used.
|
||||
It will set the given key `<compose>` (for example the right control key with `rctrl`) to act as
|
||||
the compose key when tapped.
|
||||
`<layout>` specifies the layout of the keymap (for example german with `de`).
|
||||
If it is omitted the english `en` layout will be set.
|
||||
|
||||
```sh
|
||||
setxkbmap -layout <layout> -option compose:<compose>
|
||||
```
|
||||
|
||||
#### Display
|
||||
|
||||
This section describes the handling of displays by X.
|
||||
@@ -135,7 +154,7 @@ EndSection
|
||||
This can be disabled temporarily by running `xset s off`.
|
||||
The screen can also be turned off instantly with the command `xset dpms force off`.
|
||||
|
||||
If `OffTime` does not work add the following to the file `/etc/X11/xorg.conf.d/dpms.conf.
|
||||
If `OffTime` does not work add the following to the file `/etc/X11/xorg.conf.d/dpms.conf`.
|
||||
|
||||
```txt
|
||||
Section "ServerFlags"
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
|
||||
[LTeX](https://valentjn.github.io/ltex/index.html) is an offline grammar checking tool that can use
|
||||
the Language Server Protocol - short LSP.
|
||||
It is supports various [Markup languages](/wiki/markup_language.md) like LaTeX and Markdown.
|
||||
It is supports various [Markup languages](/wiki/markup_language.md) like
|
||||
[LaTeX](/wiki/markup_language.md#latex) and Markdown.
|
||||
|
||||
## Setup
|
||||
|
||||
@@ -48,8 +49,8 @@ onwards.
|
||||
```
|
||||
|
||||
However this can be difficult when only using a few words.
|
||||
Another easy and generally recommended way to change the language inside LaTeX documents is using
|
||||
the babel package.
|
||||
Another easy and generally recommended way to change the language inside
|
||||
[LaTeX](/wiki/markup_language.md#latex) documents is using the babel package.
|
||||
In the following examples `<language>` is the language indicator that babel uses (for example
|
||||
`english`, `american`, `ngerman`).
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
# Markup Language
|
||||
|
||||
A markup Language is way to encode text so that it has great amounts of structure and formatting.
|
||||
The most common markup languages are [HTML](#html), Markdown, LaTeX and [XML](#xml).
|
||||
The most common markup languages are [HTML](#html), Markdown, [LaTeX](#latex) and [XML](#xml).
|
||||
Markup languages can be used for [note-taking](/wiki/note-taking.md).
|
||||
Adding to normal markdown files, there are also `.mdx` files which allows the usage of JavaScripts
|
||||
JSX in the markdown content for displaying charts and more.
|
||||
|
||||
## Grammar Checking
|
||||
|
||||
@@ -26,3 +28,32 @@ One of the most used ones is the
|
||||
### XML
|
||||
|
||||
XML is a markup language often used together with [RSS Feeds](/wiki/rss.md).
|
||||
|
||||
### LaTeX
|
||||
|
||||
LaTeX provides a high-level, descriptive markup language.
|
||||
It is mostly used in the scientific community but can be used for many things and as an alternative
|
||||
to [Microsoft Word](/wiki/office_suite.md#programs).
|
||||
|
||||
LaTeX also features many different packages.
|
||||
The following list contains some examples of it.
|
||||
|
||||
- [ZUGFeRD](https://ctan.org/pkg/zugferd) is a package for creating invoices.
|
||||
- [Awesome-CV](https://github.com/posquit0/Awesome-CV) is a package for creating job applications.
|
||||
|
||||
#### Usage
|
||||
|
||||
This section addresses the usage of LaTeX.
|
||||
|
||||
##### Set Background Color
|
||||
|
||||
The background color can be set using the `xcolor` package and the `\pagecolor` command.
|
||||
The following lines show a working example where the background color is set to the hexadecimal
|
||||
color `<hexcol>`.
|
||||
This needs to be changed (for example to `E0D6C0` for a parchment like color).
|
||||
|
||||
```tex
|
||||
\usepackage{xcolor}
|
||||
\definecolor{background}{HTML}{<hexcol>}
|
||||
\pagecolor{background}
|
||||
```
|
||||
|
||||
@@ -6,20 +6,20 @@ needed.
|
||||
|
||||
## Setting Up a Meshtastic Node
|
||||
|
||||
To setup a Meshtastic Node a device that is capable of communicating via LoRa is needed.
|
||||
To set up a Meshtastic Node a device that is capable of communicating via LoRa is needed.
|
||||
Often used devices are [microcontrollers](/wiki/microcontroller.md) based on the
|
||||
[ESP32-chip](/wiki/microcontroller.md#esp32) like the LILYGO TTGO T-BEAM or the Heltec V3, devices
|
||||
based on the nRF52-chip like the RAK4631 and the LILYGO TTGO T-Echo or devices based on the
|
||||
RP2040-chip like the Raspberry Pi Pico or the RAK11310 are needed.
|
||||
RP2040-chip like the [Raspberry Pi](/wiki/linux/raspberry_pi.md) Pico or the RAK11310 are needed.
|
||||
|
||||
After the device acquisition the meshtastic firmware needs to be flashed on the device.
|
||||
After the device acquisition the Meshtastic firmware needs to be flashed on the device.
|
||||
This can be done using the [official Meshtastic Web Flasher](https://flasher.meshtastic.org/).
|
||||
After selection of the device and the firmware the flashing process can be started.
|
||||
The flasher works especially well on [Chrome-based Browsers](/wiki/web_browser.md).
|
||||
|
||||
The firmware can also be flashed using the command line.
|
||||
To first check if the device is connected correctly the
|
||||
[Python-package](/wiki/programming-languages/python.md) `esptool` can be used which can be
|
||||
[Python-package](/wiki/programming_language/python.md) `esptool` can be used which can be
|
||||
installed using [pip](/wiki/programming-languages/python.md#modules).
|
||||
Some [package managers](/wiki/linux/package_manager.md) of
|
||||
[Linux-based operating systems](/wiki/linux.md) also feature a standalone `esptool` package.
|
||||
@@ -33,7 +33,7 @@ Please note that on Linux sometimes the command varies a bit.
|
||||
`esptool.py chip_id` is also common depending on the used distribution.
|
||||
Because the command needs hardware access it also is possible that `sudo`-rights are needed.
|
||||
|
||||
After confirming that the device is recognized by esptool the flashing can be achieved by
|
||||
After confirming that the device is recognized by ESPTool the flashing can be achieved by
|
||||
downloading the firmware that corresponds with the selected device and running the
|
||||
`device-install.sh` (for Linux and Mac) or the `device-install.bat` script (for
|
||||
[Windows](/wiki/windows.md)).
|
||||
@@ -42,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).
|
||||
Make sure to select the firmware (starting with `firmware-`) `zip`-archive that corresponds with
|
||||
your target device.
|
||||
Afterwards unzip it and run one of the following commands depending on your operating system.
|
||||
Afterward unzip it and run one of the following commands depending on your operating system.
|
||||
Make sure to adjust `<Board>` and `<Version>` accordingly.
|
||||
|
||||
```sh
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
apps from websites.
|
||||
This way a single website can be used as an application in contrast to opening it in a
|
||||
[browser](/wiki/web_browser.md).
|
||||
It uses [Electron](https://www.electronjs.org/) which in turn uses
|
||||
[Chromium](https://www.chromium.org/).
|
||||
Nativefier creates [Electron-based web-apps](/wiki/electron.md).
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
32
wiki/neural_network.md
Normal file
32
wiki/neural_network.md
Normal 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.
|
||||
@@ -10,6 +10,7 @@ The following list shows various ways of digital note-taking.
|
||||
- [saber](https://github.com/saber-notes/saber) is a cross-platform app - available for
|
||||
[Android](/wiki/android.md), [Windows](/wiki/windows.md), MacOS and [Linux](/wiki/linux.md).
|
||||
It is mainly used for handwriting notes and annotating PDFs and images.
|
||||
- [Markup](/wiki/markup_language.md) languages like Markdown or LaTeX can be used to type notes.
|
||||
- [Markup](/wiki/markup_language.md) languages like Markdown or
|
||||
[LaTeX](/wiki/markup_language.md#latex) can be used to type notes.
|
||||
An easy template that combines the simplicity of Markdown and the features of LaTeX is
|
||||
[the Eisvogel Panoc-Latex-Template](https://github.com/Wandmalfarbe/pandoc-latex-template).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Office Suite
|
||||
|
||||
An office Suite are bundled programs that usually include productivity tools like word processing,
|
||||
spreadsheet editing, presentations aswell as e-mail and calendar software.
|
||||
spreadsheet editing, presentations aswell as [email](/wiki/email.md) and calendar software.
|
||||
|
||||
## Programs
|
||||
|
||||
@@ -18,3 +18,8 @@ The following is a list of programs that are popular.
|
||||
and [Linux](/wiki/linux.md).
|
||||
Most of the time this suite is not used anymore in favor for LibreOffice due to lackluster
|
||||
development.
|
||||
|
||||
Additionally to the full fledged office suites programs such as
|
||||
[email clients](/wiki/email.md#client) exist.
|
||||
Those are not part of the office suite category by definition but are at least adjacent and have to
|
||||
be mentioned here aswell.
|
||||
|
||||
20
wiki/openpgp.md
Normal file
20
wiki/openpgp.md
Normal 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.
|
||||
@@ -10,7 +10,8 @@ This section focusses on the usage of Pandoc.
|
||||
### Converting MS Word to LaTeX
|
||||
|
||||
By using the following command a proprietary Microsoft Word document (named `input.docx` in this
|
||||
example) can be converted to a file in LaTeX-Format (in this example named `output.tex`).
|
||||
example) can be converted to a file in [LaTeX](/wiki/markup_language.md#latex)-Format (in this
|
||||
example named `output.tex`).
|
||||
|
||||
```sh
|
||||
pandoc input.docx -o output.tex
|
||||
|
||||
@@ -11,7 +11,7 @@ The following is a list of these tools.
|
||||
It can be used on dual screen setup to give the presenter an additional slide for comments.
|
||||
- PDF files can easily be used for presenting cross-platform but often used for
|
||||
[Linux-based operating systems](/wiki/linux.md).
|
||||
They can easily be generated by LaTeX.
|
||||
They can easily be generated by [LaTeX](/wiki/markup_language.md#latex).
|
||||
- [pympress](https://github.com/Cimbali/pympress) is a cross-platform tool for the presentation via
|
||||
PDF files.
|
||||
It is also usable for dual screen setups.
|
||||
|
||||
@@ -8,3 +8,39 @@ language.
|
||||
You can install nim using choosenim with
|
||||
`curl https://nim-lang.org/choosenim/init.sh -sSf | sh`.
|
||||
If you're on an arch-based machine you can also run `yay -S choosenim` (install `yay` if necessary).
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Nim.
|
||||
|
||||
### Use Python Packages
|
||||
|
||||
[Python modules](/wiki/programming_language/python.md#modules) can easily be used in Nim using the
|
||||
module [nimpy](#nimpy).
|
||||
|
||||
## Modules
|
||||
|
||||
There are various modules for Nim.
|
||||
As package manager `nimble` is used most of the time.
|
||||
|
||||
This section addresses various different modules.
|
||||
|
||||
### Arraymancer
|
||||
|
||||
[Arraymancer](https://github.com/mratsim/Arraymancer) is a tensor library for Nim which can be used
|
||||
to run deep learning on CPUs, GPUs and embedded devices.
|
||||
|
||||
### nimpy
|
||||
|
||||
[nimpy](https://github.com/yglukhov/nimpy) is a [Python](/wiki/programming_language/python.md)
|
||||
bridge for the Nim programming languages.
|
||||
With it [Python modules](/wiki/programming_language/python.md#modules) can be used easily inside
|
||||
Nim.
|
||||
|
||||
### SciNim
|
||||
|
||||
[SciNim](https://github.com/SciNim) is a collection of modules more than a single one.
|
||||
It features various tools for scientific purposes from curve fitting to data visualization.
|
||||
|
||||
An overview of it can be achieved on the
|
||||
[getting-started repository](https://github.com/SciNim/getting-started/blob/main/book/overview/index.md).
|
||||
|
||||
@@ -30,7 +30,7 @@ A guide and description of the usage can be found on [gioele.io](https://gioele.
|
||||
This section is based on a guide by [Linuxize](https://linuxize.com/post/how-to-install-python-3-9-on-ubuntu-20-04/).
|
||||
|
||||
On [Linux-based systems](/wiki/linux.md) Python can be easily installed using make.
|
||||
The following shows a process of installing Python 3.9.1.
|
||||
The following shows a process of installing Python `3.9.1`.
|
||||
When another Python version is needed the version number has to be adapted accordingly.
|
||||
|
||||
First make sure all the dependencies are installed.
|
||||
@@ -71,6 +71,38 @@ python3.9 --version
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Python.
|
||||
|
||||
### Convert `.ipynb` Files to `.py` Files and Back
|
||||
|
||||
Jupyter notebooks in the `.ipynb` format can easily be converted to normal Python files using
|
||||
[jupytext](https://jupytext.readthedocs.io/en/latest/).
|
||||
This can sometimes be useful when trying to avoid using notebooks.
|
||||
|
||||
The following command will convert the file `<file>.ipynb` to a normal Python file.
|
||||
`<input-file>` describes the path without the file extension.
|
||||
|
||||
```sh
|
||||
jupytext --to py <input-file>.ipynb
|
||||
```
|
||||
|
||||
The same also works the other way around.
|
||||
|
||||
```sh
|
||||
jupytext --to ipynb <input-file>.py
|
||||
```
|
||||
|
||||
Using `md` in the `--to` option the notebook can also be converted to a
|
||||
[markdown](/wiki/markup_language.md) file and back.
|
||||
|
||||
Alternatively [notedown](https://pypi.org/project/notedown/) can also convert to markdown using the
|
||||
following commands.
|
||||
`<output-file>` is the path to the output file again without the extension.
|
||||
|
||||
```sh
|
||||
notedown <input-file>.ipynb --to markdown > <output-file>.md
|
||||
```
|
||||
|
||||
### Create a requirements file
|
||||
|
||||
To automatically create a `requirements.txt` of your current project, navigate
|
||||
@@ -115,7 +147,7 @@ directory.
|
||||
|
||||
## Modules
|
||||
|
||||
There are various modules and package managers to install these for python like
|
||||
There are various modules and package managers to install these for Python like
|
||||
`pip`.
|
||||
For this usually a virtual environment is needed - as it is described in
|
||||
[the setup section](#setup).
|
||||
@@ -127,12 +159,21 @@ If it doesnt work the packages can be installed globally using `pip` together wi
|
||||
`--break-system-packages` flag.
|
||||
This flag is to be used with care.
|
||||
|
||||
This section addresses various different modules.
|
||||
|
||||
### PyTorch
|
||||
|
||||
This section addresses the [PyTorch module](https://pytorch.org/).
|
||||
Pytorch is a machine learning resource which is often used for
|
||||
[neural networks](/wiki/neural_network.md).
|
||||
|
||||
#### Setup Pytorch with Cuda for GPU usage
|
||||
|
||||
Please note that according to
|
||||
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
|
||||
Cuda 13 does not support nVidia Pascal GPUs.
|
||||
In this case an earlier version of Cuda has to be used.
|
||||
|
||||
If you are on Arch Linux or a distribution based on it install
|
||||
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
|
||||
|
||||
@@ -150,9 +191,27 @@ torch.cuda.is_available()
|
||||
|
||||
This should give back `True`.
|
||||
|
||||
### Hailo
|
||||
|
||||
The package for [Hailo chips](/wiki/hailo.md) has to be downloaded from the
|
||||
[official website](https://hailo.ai/developer-zone/software-downloads).
|
||||
Additionally additional setup may be required as explained in the
|
||||
[Hailo article](/wiki/hailo.md#setup)
|
||||
|
||||
Hailo chips can be used to run converted [TensorFlow](#tensorflow) models.
|
||||
The conversion process is explained in the
|
||||
[Hailo article](/wiki/hailo.md#preparing-tensorflow-models-for-the-ai-hat)
|
||||
|
||||
To run the inference using Python on ARM boards like the
|
||||
[Raspberry Pi AI Hat +](/wiki/linux/raspberry_pi.md#ai-hat)
|
||||
[zlodeibaal's article in Medium](https://medium.com/@zlodeibaal/how-to-run-hailo-on-arm-boards-d2ad599311fa)
|
||||
can be referenced.
|
||||
|
||||
### TensorFlow
|
||||
|
||||
This section addresses the [TensorFlow module](https://www.tensorflow.org/).
|
||||
Tensorflos is a machine learning resource which is often used for
|
||||
[neural networks](/wiki/neural_network.md).
|
||||
|
||||
#### Basic Usage of TensorFlow
|
||||
|
||||
@@ -163,3 +222,18 @@ Additionally it is noted that the dataset may have to be shuffled manually as de
|
||||
Finally
|
||||
[a Medium blog post](https://medium.com/@danielonugha0/how-to-change-the-learning-rate-of-tensorflow-b5d854819050)
|
||||
describes how to easily change the learning rate.
|
||||
|
||||
#### Combining Models
|
||||
|
||||
Models that are normally run in sequence but trained and saved separately can be easily be combined
|
||||
into a single model.
|
||||
This can have some advantages, for example when using inteference for deep learning on Edge TPUs
|
||||
like the [Hailo chips](/wiki/hailo.md) or the [EPS32S3](/wiki/microcontroller.md#esp32).
|
||||
|
||||
A simple example for the combination of two models (`model1` and `model2`) into a new model
|
||||
(`combined_model`) is the following code.
|
||||
|
||||
```sh
|
||||
output = model2(model1.output)
|
||||
combined_model = tf.keras.models.Model(inputs=model1.input, outputs=output)
|
||||
```
|
||||
|
||||
87
wiki/programming_language/viper.md
Normal file
87
wiki/programming_language/viper.md
Normal 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>
|
||||
```
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
Screen capture describes the process of recording a computer screen.
|
||||
For the remotely displaying the screen to another device the
|
||||
[corresponding entry](/wiki/screen_sharing.md) contains tips and tricks.
|
||||
[corresponding entry](/wiki/screen-sharing.md) contains tips and tricks.
|
||||
|
||||
## Screen Capture options
|
||||
|
||||
Windows systems using an Nvidia graphics card can make use of ShadowPlay a
|
||||
screen recording software integrated in Nvidias suite GeForce Experience.
|
||||
|
||||
Linux systems can use the
|
||||
Linux's systems can use the
|
||||
[GPU Screen Recorder](/wiki/linux/gpu_screen_recorder.md) to make
|
||||
gpu-accelerated screen recordings.
|
||||
GPU accelerated screen recordings.
|
||||
It features similar features to ShadowPlay.
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
[Signal](https://signal.org) is an encrypted, open-source messenger that allows voice and video
|
||||
calls as well as instant messaging chats.
|
||||
ahe desktop client comes in the form of an [Electron based-app](/wiki/electron.md).
|
||||
|
||||
## Usage
|
||||
|
||||
|
||||
@@ -23,19 +23,7 @@ an alternative to proprietary applications by the smart devices' vendor.
|
||||
|
||||
## Smartphones and Tablet Computers
|
||||
|
||||
Smartphones and Tablet computers are among the most used electronic devices.
|
||||
Smartphones and tablet computers are among the most used electronic devices.
|
||||
They are often used to [communicate](/wiki/communication.md) or
|
||||
[surfing the internet](/wiki/web_browser.md).
|
||||
|
||||
### Remote Control and Screen Mirroring
|
||||
|
||||
[Android](/wiki/android.md) based devices can use [scrcpy](/wiki/android/scrcpy.md) to mirror the
|
||||
screen and allow controlling it by a [Windows](/wiki/windows.md) or [Linux](/wiki/linux.md) system.
|
||||
|
||||
### Usage as a Webcam
|
||||
|
||||
Smartphones and Tablet computers usually are equipped with a decent camera.
|
||||
If a [Linux](/wiki/linux.md) or [Windows](/wiki/windows.md) system is missing a
|
||||
[webcam](/wiki/webcam.md) which is only rarely used it can be useful to repurpose the smart device
|
||||
as a webcam.
|
||||
This can be done as explained in the [webcam entry](/wiki/webcam.md#using-a-smartphone-as-webcam).
|
||||
Most of the time smartphones and tablets also feature a [webcam](/wiki/webcam.md).
|
||||
|
||||
10
wiki/ssh.md
Normal file
10
wiki/ssh.md
Normal 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).
|
||||
@@ -9,7 +9,7 @@ The Software synchronizes files between multiple devices directly.
|
||||
The software can be setup via [Docker](/wiki/docker.md) with the
|
||||
[linuxserver image](./docker/linuxserver_-_syncthing.md).
|
||||
|
||||
Additionally the software can be installed by visiting the
|
||||
Additionally, the software can be installed by visiting the
|
||||
[official website](https://syncthing.net/downloads/) and download it from
|
||||
there.
|
||||
|
||||
@@ -21,7 +21,7 @@ Syncthing can be configured in root and in user space.
|
||||
|
||||
This section assumes that a Linux system is used.
|
||||
For root space configuration you can use the Docker image for easy setup.
|
||||
Afterwards navigate to the set IP with your browser and set up the directories
|
||||
Afterward navigate to the set IP with your browser and set up the directories
|
||||
to sync.
|
||||
|
||||
#### User space configuration for Linux
|
||||
@@ -30,10 +30,10 @@ This section assumes that a Linux system is used.
|
||||
The user space configuration is a bit more difficult than the root space
|
||||
configuration.
|
||||
The following steps are adapted from a
|
||||
[reddit post by tmplshdw](https://www.reddit.com/r/SteamDeck/comments/uhf8lw/comment/i77ojke/).
|
||||
[Reddit post by tmplshdw](https://www.reddit.com/r/SteamDeck/comments/uhf8lw/comment/i77ojke/).
|
||||
|
||||
- Download synthing from their website as described in the
|
||||
[setup section][#setup].
|
||||
- Download Syncthing from their website as described in the
|
||||
[setup section](#setup).
|
||||
- Extract the downloaded `.tar.gz` file
|
||||
- Copy the file named `syncthing` to your home directory
|
||||
- In the downloaded folder copy the file
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
# Teamspeak
|
||||
# TeamSpeak
|
||||
|
||||
[Teamspeak](https://www.teamspeak.com) is a voice-over-IP service.
|
||||
[TeamSpeak](https://www.teamspeak.com) is a voice-over-IP service.
|
||||
There are 2 versions currently maintained.
|
||||
Teamspeak3 is the older version.
|
||||
Teampeak5 or just short Teamspeak is the newer version that is not completely released yet.
|
||||
Teamspeak3 servers are also used by Teamspeak5.
|
||||
TeamSpeak3 is the older version.
|
||||
Teampeak5 or just short TeamSpeak is the newer version that is not completely released yet.
|
||||
TeamSpeak3 servers are also used by TeamSpeak5.
|
||||
|
||||
## Setup
|
||||
|
||||
Teamspeak consists of two parts: [a client](#client) and [a server](#server).
|
||||
TeamSpeak consists of two parts: [a client](#client) and [a server](#server).
|
||||
|
||||
### Client
|
||||
|
||||
Teamspeak3 is available for [Windows](/wiki/windows.md) on the
|
||||
[Teamspeak website](https://www.teamspeak.de/download/).
|
||||
TeamSpeak3 is available for [Windows](/wiki/windows.md) on the
|
||||
[TeamSpeak website](https://www.teamspeak.de/download/).
|
||||
On most [Linux](/wiki/linux.md) distributions it can be installed with the `teamspeak3` package.
|
||||
Teamspeak5 is available for Windows on the
|
||||
[Teamspeak website](https://teamspeak.com/de/downloads/#ts5).
|
||||
TeamSpeak5 is available for Windows on the
|
||||
[TeamSpeak website](https://teamspeak.com/de/downloads/#ts5).
|
||||
On most Linux distributions it can be installed with the `teamspeak` package.
|
||||
|
||||
### Server
|
||||
|
||||
The server software can be setup via [Docker](/wiki/docker.md) with the
|
||||
[teamspeak image](./docker/teamspeak.md).
|
||||
This image can setup a Teamspeak3 server.
|
||||
This image can setup a TeamSpeak3 server.
|
||||
|
||||
#### Link Teamspeak3 to a subdomain
|
||||
#### Link TeamSpeak3 to a subdomain
|
||||
|
||||
To link Teamspeak3 to one of your subdomains you need to add a
|
||||
To link TeamSpeak3 to one of your subdomains you need to add a
|
||||
[DNS SRV-record](./dns.md#srv-record):
|
||||
|
||||
```txt
|
||||
@@ -45,34 +45,34 @@ target: ts3.<domain>.<TLD>
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses various features of Teamspeak3.
|
||||
This section addresses various features of TeamSpeak.
|
||||
|
||||
### Installing a Sound Pack
|
||||
|
||||
Sound packs can be found on the
|
||||
[myTeamspeak website](https://www.myteamspeak.com/?search=&type=SOUNDPACK).
|
||||
[myTeamSpeak website](https://www.myteamspeak.com/?search=&type=SOUNDPACK).
|
||||
They are often available as a `.ts3_soundpack` file.
|
||||
This file is similar to a `.zip` archive and can be unpacked the same way.
|
||||
Afterwards the folder containing the audio files (`.wav` files) needs to be inserted into the sound
|
||||
folder of teamspeak.
|
||||
For Teamspeak3 on [Linux](/wiki/linux.md) systems this folder can be found at
|
||||
folder of TeamSpeak.
|
||||
For TeamSpeak3 on [Linux](/wiki/linux.md) systems this folder can be found at
|
||||
`/opt/teamspeak3/sound`.
|
||||
For Teamspeak5 on Linux the folder is available at `/opt/teamspeak/html/client_ui/sound`.
|
||||
Following this the sound pack is available after the next (re-)start of teamspeak.
|
||||
For TeamSpeak5 on Linux the folder is available at `/opt/teamspeak/html/client_ui/sound`.
|
||||
Following this the sound pack is available after the next (re-)start of TeamSpeak.
|
||||
|
||||
### Setting Up a Music Bot
|
||||
|
||||
For Teamspeak there are various bots capable of playing music.
|
||||
For TeamSpeak there are various bots capable of playing music.
|
||||
The following is a list of bots featured in this wiki that can do this.
|
||||
|
||||
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for Teamspeak that can play music and sounds.
|
||||
- [Sinusbot](/wiki/sinusbot.md) is a self-hosted bot for TeamSpeak that can play music and sounds.
|
||||
It's closed-source and free of charge.
|
||||
It also features [Discord](/wiki/discord.md) support.
|
||||
|
||||
### Channel Visibility
|
||||
|
||||
As explained by
|
||||
[guisinho_DBR on the Teamspeak forums](https://community.teamspeak.com/t/room-that-nobody-can-see-only-some-people-with-powers/20471)
|
||||
[guisinho_DBR on the TeamSpeak forums](https://community.teamspeak.com/t/room-that-nobody-can-see-only-some-people-with-powers/20471)
|
||||
there is no way to hide a channel completely from view.
|
||||
It is however possible to set the subscription and description view power of a channel to a high
|
||||
value.
|
||||
|
||||
@@ -1,13 +1,37 @@
|
||||
# Thunderbird
|
||||
|
||||
[Thunderbird](https://www.thunderbird.net/en-US/) is a free and open-source program to manage
|
||||
numerous e-mail addresses, calendars, todos and contacts.
|
||||
numerous [email](/wiki/email.md) addresses, calendars, todos and contacts.
|
||||
|
||||
## Usage
|
||||
|
||||
The following section addresses different uses and add-ons of Thunderbird.
|
||||
|
||||
### Changing the (dark/light) Theme
|
||||
### Use PGP Key for Encryption, Decryption and Signing
|
||||
|
||||
Thunderbird can use [OpenPGP](/wiki/openpgp.md) to sign, encrypt or decrypt mails.
|
||||
To add this navigate to the `Account Settings` under `Edit` and then select the mail to add the PGP
|
||||
key to and `End-to-End Encryption`.
|
||||
There keys can be added by selecting `Add Keys...` and afterwards the private key can be selected
|
||||
for encryption, decryption and signing.
|
||||
This however is only possible if the key is issued to the same e-mail it should be added to.
|
||||
|
||||
In the `Account Settings` of emails with set up PGP key the default options can be set up.
|
||||
Under `Deault settings for sending messages` it can be set to encrypt or not encrypt mails by
|
||||
default.
|
||||
Emails can also be signed by default if not encrypted (for this select
|
||||
`Sign unencrypted messages`).
|
||||
|
||||
### Enable Spell Checking of a Specific Language
|
||||
|
||||
Spell checking can be changed in the `Settings` from the `Edit` tab.
|
||||
The configuration can be done under `Composition` in the `Spelling` section.
|
||||
There are two checkboxes to specify when the spell checking should occur.
|
||||
And under `Languages:` various and also multiple languages can be checked.
|
||||
To add another language follow the link and navigate to the language to install.
|
||||
Then install only dictionary since the language pack is not needed.
|
||||
|
||||
### Changing the (Dark/Light) Theme
|
||||
|
||||
This section is based on a
|
||||
[superuser comment by blnks](https://superuser.com/questions/1757333/how-can-i-view-thunderbird-in-full-dark-mode).
|
||||
@@ -70,3 +94,29 @@ By default Thunderbird will show a preview for mails on the right hand side when
|
||||
This is called the message pane.
|
||||
It can be hidden by drag and drop or by pressing the F8-key.
|
||||
Using the same key it can also be shown again.
|
||||
|
||||
### Downgrading Profile
|
||||
|
||||
Sometimes - mostly for [troubleshooting reasons](#troubleshooting) - it can be useful to downgrade
|
||||
Thunderbird (for example using
|
||||
[downgrade](/wiki/linux/package_manager/pacman_and_aur.md#downgrading-packages) on
|
||||
[Arch Linux](/wiki/linux/arch-linux.md)).
|
||||
If this is done the profile will not be downwards compatible by default.
|
||||
On [Linux](/wiki/linux.md) systems the following command can be used to safely downgrade the
|
||||
profile.
|
||||
|
||||
```sh
|
||||
thunderbird -profilemanager --allow-downgrade
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section will focus on errors and the fixing of errors of Thunderbird.
|
||||
|
||||
### Not Displaying Profile Images Correctly
|
||||
|
||||
On version 145 of Thunderbird the profile pictures of contacts from a CardDAV-synced addressbook
|
||||
may not be correctly displayed.
|
||||
This bug was reported by [Andrewhotlab](https://bugzilla.mozilla.org/show_bug.cgi?id=2001944).
|
||||
An easy fix for this and similar bugs is to [downgrade Thunderbird](#downgrading-profile) to the
|
||||
last version which was not affected by the bug.
|
||||
|
||||
113
wiki/traefik.md
113
wiki/traefik.md
@@ -7,3 +7,116 @@ a special integration of infrastructure components (e.g. [Docker](./docker.md)).
|
||||
|
||||
The software can be setup via [Docker](/wiki/docker.md) with the
|
||||
[traefik image](./docker/traefik.md).
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of Traefik.
|
||||
|
||||
### Redirections for Docker Service
|
||||
|
||||
It is assumed that the service already has a reverse proxy setup as described in the
|
||||
[corresponding section](#reverse-proxies-for-docker-service)
|
||||
For redirections to work they have to be added to the `data/config/dynamic.yml` file.
|
||||
|
||||
For this to work define them inside the `data/config/dynamic.yml` set up in the
|
||||
[Docker image](/wiki/docker/traefik.md) under `middlewares:`.
|
||||
|
||||
Redirections are specified by Regex as shown in the following example.
|
||||
`<redirection-name>` is the name of the redirection and `<regex>` the regular expression to replace
|
||||
while `<replacement>` is the replacement of the regular expression.
|
||||
|
||||
```yml
|
||||
<redirection-name>:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: <regex>
|
||||
replacement: <replacement>
|
||||
```
|
||||
|
||||
The `labels:` section of the [Docker](/wiki/docker.md) services that should use these redirections
|
||||
have to be adapted.
|
||||
The following line needs to be added.
|
||||
`<service-name>` is the name of the service.
|
||||
|
||||
```yml
|
||||
- "traefik.http.routers.<service-name>.middlewares=<redirection-name>@file"
|
||||
```
|
||||
|
||||
Make sure to add the domain that will be redirected to and from the labels aswell.
|
||||
This will look similar like the following.
|
||||
In this case the subdomains `<subdomain-1>` and `<subdomain-2>` under the domain `<domain>` is
|
||||
available, but the exact look can vary since also different domains or more than two addresses can
|
||||
be added.
|
||||
|
||||
```yml
|
||||
- "traefik.http.routers.<service-name>.rule=Host(`<subdomain-1>.<domain>`, `<subdomain-2>.<domain>`)"
|
||||
```
|
||||
|
||||
#### Docker Redirection: Appending a `www.`
|
||||
|
||||
To always append a `www.` to the address the following redirection settings can be used.
|
||||
|
||||
```yml
|
||||
redirect-non-www-to-www:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: "^https?://(?:www\\.)?(.+)"
|
||||
replacement: "https://www.${1}"
|
||||
```
|
||||
|
||||
Additionally follow the setup regarding the service as explained in
|
||||
[the general redirection sectino](#redirections-for-docker-service).
|
||||
|
||||
#### Docker Redirection: Removing a `www.`
|
||||
|
||||
To always remove a `www.` from the address the following redirection settings can be used.
|
||||
|
||||
```yml
|
||||
redirect-www-to-non-www:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: "^https?://www\\.(.+)"
|
||||
replacement: "https://${1}"
|
||||
```
|
||||
|
||||
Additionally follow the setup regarding the service as explained in
|
||||
[the general redirection sectino](#redirections-for-docker-service).
|
||||
|
||||
#### Docker Redirection: Redirect a Domain to Another
|
||||
|
||||
For a simple redirection that replaces a domain with another the following redirection settings can
|
||||
be used.
|
||||
This will redirect the domain `<domain-1>` (for example `www.abc.de`) to domain `<domain-2>` (for
|
||||
example `123.xyz.eu`).
|
||||
|
||||
```yml
|
||||
redirect-<domain-1>-to-<domain-2>:
|
||||
redirectregex:
|
||||
permanent: true
|
||||
regex: "^https://<domain-1>(.*)"
|
||||
replacement: "https://<domain-2>${1}"
|
||||
```
|
||||
|
||||
Additionally follow the setup regarding the service as explained in
|
||||
[the general redirection sectino](#redirections-for-docker-service).
|
||||
|
||||
### Reverse Proxies for Docker Service
|
||||
|
||||
To create a reverse proxy from a docker container add the following lines in the
|
||||
`labels:` section of the `docker-compose.yml` of the service to proxy.
|
||||
|
||||
```yml
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=proxy"
|
||||
- "traefik.http.routers.<service-name>-secure.entrypoints=websecure"
|
||||
- "traefik.http.routers.<service-name>-secure.rule=Host(`<subdomain>.<domain>`)"
|
||||
- "traefik.http.routers.<service-name>-secure.service=<service-name>"
|
||||
- "traefik.http.services.<service-name>.loadbalancer.server.port=<port>"
|
||||
```
|
||||
|
||||
This configuration automatically redirects http to https.
|
||||
When using this configuration the port specified in the latter lines can be
|
||||
ommitted in the `ports:` section if not used directly.
|
||||
This ensures access only via https and restricts access via ip and port.
|
||||
Change `<service-name>` according to the service you want to publish and `<subdomain>` aswell as
|
||||
`<domain>` to the domain you intent to publish the service to.
|
||||
|
||||
24
wiki/vencord.md
Normal file
24
wiki/vencord.md
Normal 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
|
||||
16
wiki/vnc.md
16
wiki/vnc.md
@@ -8,3 +8,19 @@ VNC is especially used for accessing graphical applications or
|
||||
[terminals](/wiki/linux/system_console.md) of a remote server,
|
||||
[dockerized](/wiki/docker.md#dockerize-a-graphical-application) or virtualized
|
||||
program.
|
||||
|
||||
## VNC Clients
|
||||
|
||||
The following is a list of VNC clients.
|
||||
|
||||
- [AVNC](https://github.com/gujjwal00/avnc) is a VNC client for [Android](/wiki/android.md)
|
||||
devices.
|
||||
- bvnc is a VNC client for [Linux](/wiki/linux.md).
|
||||
- Vinagre is a VNC client for [Linux](/wiki/linux.md).
|
||||
- gvnc is a VNC client for [Linux](/wiki/linux.md).
|
||||
|
||||
## VNC Server
|
||||
|
||||
The following is a list of VNC server.
|
||||
|
||||
- [wayvnc](https://github.com/any1/wayvnc) is a VNC server for [Linux](/wiki/linux.md) systems.
|
||||
|
||||
@@ -15,5 +15,5 @@ This section lists various VPN implementations.
|
||||
- [OpenVPN](/wiki/openvpn.md) is probably the most well known VPN implementation.
|
||||
- [WireGuard](/wiki/wireguard.md) is a modern, fast and secure implementation of the VPN protocol.
|
||||
It is free and open-source.
|
||||
- [Global Protect](/wiki/global_protect.md) is a proprietary VPN that is mostly used by corporation
|
||||
- [Global Protect](/wiki/globalprotect.md) is a proprietary VPN that is mostly used by corporation
|
||||
and learning facilities.
|
||||
|
||||
@@ -21,11 +21,8 @@ This program provides a simple interface for capturing and viewing video from a
|
||||
Additionally guvcview provides an interface to configure various webcam settins
|
||||
and enable a few effects on top of it.
|
||||
|
||||
## Using a Smartphone as Webcam
|
||||
## Using a Smart Device as a Webcam
|
||||
|
||||
A [smartphone](/wiki/smart_device.md) and its camera aswell as flashlight can be used as a simple
|
||||
replacement for a webcam.
|
||||
For [Android](/wiki/android.md) smartphones this can be easily achieved by using
|
||||
[DroidCam](/wiki/android/droidcam.md).
|
||||
An alternative to DroidCam with a with decidedly better resolution is
|
||||
[IP Webcam](/wiki/android/ip_webcam.md).
|
||||
It is possible to use [smart devices](/wiki/smart_device.md) as a webcam.
|
||||
For [Android](/wiki/android.md) devices the guide to achieve this, can be found in the
|
||||
[corresponding section of the Android entry](/wiki/android.md#usage-as-a-webcam.)
|
||||
|
||||
@@ -9,9 +9,10 @@ including subscriptions.
|
||||
|
||||
- [Invidious](/wiki/invidious.md) is self-hosted and provides a cross-platform web service.
|
||||
This frontend allows the usage of [SponsorBlock](#automatically-skip-sponsorships).
|
||||
- [FreeTube](https://freetubeapp.io/) is a alternative frontend that provides a local desktop
|
||||
application for [Linux](/wiki/linux.md), Mac and [Windows](/wiki/windows.md) systems.
|
||||
This application has [SponsorBlock](#automatically-skip-sponsorships) built in.
|
||||
- [FreeTube](https://freetubeapp.io/) is an alternative [Electron-based](/wiki/electron.md)
|
||||
frontend that provides a local desktop application for [Linux](/wiki/linux.md), Mac and
|
||||
[Windows](/wiki/windows.md) systems.
|
||||
It also features [SponsorBlock](#automatically-skip-sponsorships) by default.
|
||||
- [NewPipe](https://github.com/TeamNewPipe/NewPipe) for [Android](/wiki/android.md) phones is an
|
||||
application that is available via the [F-Droid Appstore](/wiki/android/f-droid.md).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user