1
0
mirror of https://github.com/tiyn/wiki.git synced 2026-03-09 16:44:46 +01:00

Compare commits

...

19 Commits

Author SHA1 Message Date
b6c6419ba9 nvidia: fixed compatibility packages for nvidia 2026-03-06 02:50:05 +01:00
63a7ada580 added todos 2026-03-04 05:06:58 +01:00
5be328f04e Merge branch 'master' of github:/tiyn/wiki 2026-03-04 05:05:09 +01:00
55e2798363 linux: added fingerprint readers on linux 2026-03-04 05:05:02 +01:00
0b7874156a python: added rocm pytorch guide 2026-03-04 01:25:58 +01:00
b6e77adf69 Merge branch 'master' of github.com:tiyn/wiki 2026-03-04 00:58:50 +01:00
4f8c819370 added programming language super entry 2026-03-04 00:58:40 +01:00
94aa933c17 programming language: added rocq 2026-03-04 00:41:30 +01:00
febc5d6532 Merge branch 'master' of github:/tiyn/wiki 2026-03-01 10:33:23 +01:00
f9c5c5196a linux/git: added graphing and amending 2026-03-01 10:22:22 +01:00
2d336a9a30 linux/git: added graphing and amending 2026-03-01 10:18:34 +01:00
dcb6698530 speech recognition: added alternative list 2026-02-28 11:04:28 +01:00
467b28c797 added speech recognition and synthesis 2026-02-28 10:10:16 +01:00
2af682fbc7 networkmanager: added prioritization 2026-02-28 09:54:25 +01:00
162781d14d removed html files 2026-02-28 09:50:07 +01:00
803be69021 linux: added appimage 2026-02-28 09:49:46 +01:00
34d31024f2 linux/easyeffects: added new noise suppression 2026-02-28 08:48:31 +01:00
f3ea6e7f04 audio: added spotiflac 2026-02-28 06:01:10 +01:00
cfcb0f24f6 android/grapheneos: added comparison and backup 2026-02-28 05:58:57 +01:00
19 changed files with 466 additions and 322 deletions

View File

@@ -96,13 +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
### Android-based Operating Systems
Besides the stock-firmware of vendors there are also custom ROMs.
Besides the stock-firmware of vendors there are also so called custom ROMs.
These are alternative firmware variants made by third party providers.
Well known custom ROMs [LineageOS](/wiki/android/lineageos.md) and
[GrapheneOS](/wiki/android/grapheneos.md).
A general comparison of different operating systems based on Android can be found in a
[table by eylenburg](https://eylenburg.github.io/android_comparison.htm).
It is possible that some custom ROMs require the user to
[unlock the bootloader](#unlocking-the-bootloader) before the installation can happen.

View File

@@ -21,3 +21,12 @@ This section addresses the usage of GrapheneOS.
GrapheneOS features various settings and possibilities for configurations.
A general overview of this was give in a
[Reddit post by Tryptamine9](https://www.reddit.com/r/GrapheneOS/comments/18te8no/my_ride_through_grapheneos_what_works_and_guide/).
Another recommendation on settings for GrapheneOS can be found in
[a post by ventral digital](https://ventral.digital/posts/2024/12/9/practical-grapheneos-for-the-paranoid/).
### Backup
GrapheneOS features a built-in backup utility.
It can be found in the settings under `System` and `Backup`.
When enabled a recovery code made up by mutliple words have to be stored to be able to restore the
backed up data.

View File

@@ -15,6 +15,11 @@ For voice based communication, social platforms or messengers navigate to the
[section](/wiki/communication.md#social-platforms-messengers-and-voip-services).
For headphones navigate to the [headphones article](/wiki/headphones.md):
## Speech Recognition and Synthesis
[Speech recognition and synthesis](/wiki/speech_recognition_and_synthesis.md) describe processes to
understand and convert spoken language to text aswell as the reverse process.
## Technical Specifications
This section aswell as its subsections address all technical things about audio, like connections,
@@ -128,6 +133,10 @@ Another option is to use [OpenAudible](/wiki/openaudible.md).
This program features various functions to manage Audible audiobooks that include download,
converting and splitting.
[SpotiFLAC](https://github.com/afkarxyz/SpotiFLAC) is a software that is able to download Spotify
tracks, albums, artists and playlists as `.flac`-files from Tidal, Qobuz, Amazon Music and Deezer.
An account on any of these services - or any account at all - is not required.
## Digitalizing and Analyzing Physical Mediums
This section focusses on physical audio mediums like CDs, their digitalization to a digital audio

21
wiki/linux/appimage.md Normal file
View File

@@ -0,0 +1,21 @@
# AppImage
[AppImage](https://appimage.org/) is a portable Linux application format that allows programs to
run without being installed through a traditional package manager.
## Usage
This section addresses the usage of AppImage files.
### Running and Installing AppImage Files
This section is based on an
[article by Sujit Kumar](https://dev.to/sujit-shrc/install-appimages-on-arch-based-linux-lm2).
AppImages are executed directly as standalone binaries.
To start an application make the AppImage executable using the following command.
`<appimage-path>` is the path to the AppImage file.
```sh
chmod +x <appimage-path>
```

View File

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

View File

@@ -1,15 +1,12 @@
# Easyeffects
[Easyeffects](https://github.com/wwmm/easyeffects) is a free and open-source
GUI-software for applying sound effects and filters on input and output audio
streams.
Easyeffects uses [Pipewire](./pipewire.md) as
[sound server](/wiki/linux/audio.md#sound-server).
[Easyeffects](https://github.com/wwmm/easyeffects) is a free and open-source GUI-software for
applying sound effects and filters on input and output audio streams.
Easyeffects uses [Pipewire](./pipewire.md) as [sound server](/wiki/linux/audio.md#sound-server).
## Setup
Easyeffects can be installed on most distributions by installing the
`easyeffects` package.
Easyeffects can be installed on most distributions by installing the `easyeffects` package.
An installation via [Flatpak](./flatpak.md) is also possible.
## Usage
@@ -19,27 +16,29 @@ Easyeffects can apply `Effects` to input and output sound.
### Noise cancellation
Setup
Noise cancellation can be achieved by installing
Easyeffects.
Make sure to check the box `Process all Inputs` and `Process all Outputs` to
route everything through `easyeffects`.
Noise cancellation can be achieved by installing Easyeffects.
Make sure to check the box `Process all Inputs` and `Process all Outputs` to route everything
through `easyeffects`.
Make log out of your system afterwards.
To enable noise cancellation navigate `Inputs` and click `Plugins`.
After that click `Add Plugin` and select `Noise Reduction`.
An alternative way to achieve noise cancellation is using the the `Deep Noise Remover` plugin.
There is a
[guide by Adam Gradzki](https://adamgradzki.com/adding-deepfilternet-noise-reduction-to-easy-effects-on-arch-linux.html)
which describes the setup.
### Presets
Presets can be created by selecting `Presets`, setting the name and clicking the
`+` to save it.
Presets can be created by selecting `Presets`, setting the name and clicking the `+` to save it.
It is then displayed in the list below from where it can be loaded or deleted.
Presets are saved in the directory `~/.config/easyeffects/input` and
`~/.config/easyeffects/output`.
#### Recommended Presets
The following is a list of presets that have been tested and only need slight
configuration to adjust them to the specific system.
The following is a list of presets that have been tested and only need slight configuration to
adjust them to the specific system.
- [tiyns voice input preset](https://github.com/tiyn/dotfiles/blob/master/.config/easyeffects/input/voice.json)
is a list of different effects to achieve an enhanced quality of microphone
sound for speach.
is a list of different effects to achieve an enhanced quality of microphone sound for speach.

View File

@@ -0,0 +1,126 @@
# Fingerprint Reader
Fingerprint readers can be used for local authentication on
[Linux](/wiki/linux.md) systems.
## Setup
Support for most fingerprint reader devices is provided by the `libfprint` library and the
`fprintd` daemon, which in turn need to be installed.
Many [Linux](/wiki/linux.md) distributions package both components directly under this name.
After installation restart the daemon.
```sh
sudo systemctl restart fprintd
```
By default enrolling fingerprints may require administrative privileges.
This can be changed using a `polkit` rule that allows members of the `wheel` group to enroll
fingerprints without using `sudo`.
Create the file `/etc/polkit-1/rules.d/49-fprint.rules`.
```sh
sudo vim /etc/polkit-1/rules.d/49-fprint.rules
```
Insert the following rule.
```txt
polkit.addRule(function(action, subject) {
if (action.id == "net.reactivated.fprint.device.enroll" &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
});
```
## Usage
This section addresses the usage of fingerprint readers.
### Enrolling a Fingerprint
A fingerprint can be registered using the following command.
```sh
fprintd-enroll
```
The program will repeatedly ask to place a finger on the reader until the fingerprint has been
successfully recorded.
### Listing Stored Fingerprints
Stored fingerprints of the current user can be displayed with the following command.
`<user>` describes the username to list fingerprints for.
```sh
fprintd-list <user>
```
Fingerprints of other users can be inspected using administrative privileges.
```sh
sudo fprintd-list root
```
### Removing Fingerprints
Fingerprints can be deleted using `fprintd-delete`.
The following displays the removal of a finger called `<finger>` (for example `right-index-finger`)
for a user called `<user>`.
```sh
sudo fprintd-delete <user> <finger>
```
### Using Fingerprints with `sudo`
Fingerprint authentication can be used with `sudo` through PAM.
Edit the configuration file.
```sh
sudo vim /etc/pam.d/sudo
```
Add the following line near the top of the file.
The line should be placed near the top of the file so that fingerprint authentication is attempted
before password authentication.
```txt
auth sufficient pam_fprintd.so
```
With this configuration the fingerprint reader can be used for `sudo` authentication while the
password remains available as a fallback.
## Troubleshooting
This section will focus on errors and the fixing of errors of fingerprint readers.
### Permission denied when enrolling fingerprints
When attempting to enroll a fingerprint the following error may occur:
```txt
EnrollStart failed: GDBus.Error:net.reactivated.Fprint.Error.PermissionDenied:
Not Authorized: net.reactivated.fprint.device.enroll
```
In this case `fprintd` requires elevated privileges to enroll fingerprints.
The issue can be solved by creating a `polkit` rule which allows members of the `wheel` group to
enroll fingerprints.
In this case the polkit rule `/etc/polkit-1/rules.d/49-fprint.rules` most likely was not set as
described in the [setup section](#setup).
After adding the rule the error should vanish.
The rule fingerprint enrollment can then be executed without `sudo`.
```sh
fprintd-enroll
```

View File

@@ -28,6 +28,58 @@ There is also an interactive
Robertson also made guides on [post production](https://github.com/SethRobertson/GitPostProduction)
and [best practices](http://sethrobertson.github.io/GitBestPractices).
### Modify a Commit Already Done
In Git it is possible to alter a commit.
This can be done by using the `--amend` flag in the `commit` option.
Together with the `--no-edit` flag it will create a new commit that will replace the old one with
the same message and the newly changed files.
This command will look like the following.
```sh
git commit --amend --no-edit
```
A graphic that visualizes the way amending works was made by
[jubb0bs in a Stackoverflow comment](https://stackoverflow.com/questions/26050327/how-does-git-commit-amend-work-exactly).
After amending a normal `git push` will not work as a commit was removed.
In this case to [push it has to be done forcefully](#force-pushing).
### Force Pushing
Force pushing in Git allows you to overwrite the history of a remote branch.
Using the following command replaces the remote branch with your local state, even if other commits
have been pushed in the meantime, which can in turn permanently remove these commits.
```sh
git push --force
```
Using the force command with the `--force-with-lease` flag, as shown in the following command,
performs a safety check before overwriting.
It only proceeds if the remote branch is still in the expected state and rejects the push
otherwise.
Most of the time, especially when using shared branches, this is generally considered the safer and
preferred option.
```sh
git push --force-with-lease
```
### Visualize Commit Graph
The commit history of a Git repository can best be visualized using a graph.
This can be done by using the default `git` command as the following command shows.
```sh
git log --graph
```
This however is a bit hard to read.
Therefore other tools have been created, that display the graph a bit more intuitively.
One of this tools is called [keifu](https://github.com/trasta298/keifu).
### Ignore files having local changes
If you need to make changes to a file that are local you can run

View File

@@ -1,32 +1,32 @@
# Hardware (Linux)
This entry focusses on various hardware components of a [Linux](/wiki/linux.md) desktop PC or a
This entry focuses on various hardware components of a [Linux](/wiki/linux.md) desktop PC or a
laptop.
For non-Linux specific or general topics in hardware see the
[correspoding entry](/wiki/hardware_%28general%29.md)
[corresponding entry](/wiki/hardware_%28general%29.md)
## Battery
## Battery
The battery of a notebook can be inspected by using the `upower` command.
To use it the tool needs to be installed.
In most [Linux](/wiki/linux.md) distributions this is bundled in a package of the same name.
This section is based on [a video by eKiwi](https://youtu.be/t9KMFDTb79E) which addresses battery
health.
This section is based on [a YouTube video by the user eKiwi](https://youtu.be/t9KMFDTb79E) which
addresses battery health.
To find out about a battery, its name needs to be known, which can be done using the following
To find out about a battery, its name needs to be known which can be done using the following
command.
```sh
upower -e
```
Afterwards different values like the state, voltage, percentage and many other can be displayed.
Additionally it will show the original capacity (`energy-full-design`) and the current capacity
Afterward different values like the state, voltage, percentage and much other can be displayed.
Additionally, it will show the original capacity (`energy-full-design`) and the current capacity
(`energy-full`), which can be used to determine the health of the battery.
The following is an example command where `<battery-name>` is the name of the batter returned from
the previous step.
This might by similar to `/org/freedesktop/UPower/devices/battery_BAT0`.
This might be similar to `/org/freedesktop/UPower/devices/battery_BAT0`.
```sh
upower -i <battery-name>
@@ -47,14 +47,14 @@ Tools, programs and guides to manage the power usage and improve battery life ar
## (Liquid) Coolers
The viewing of temperatures of coolers aswell as the selection of RGB-settings can be achieved by
The viewing of temperatures of coolers as well as the selection of RGB-settings can be achieved by
using [liquidctl](https://github.com/liquidctl/liquidctl).
## Temperature
## Temperature
To check the temperature the command `sensors` can be used which (on most distributions) is a part
of the `lm_sensors` package.
It will then display all the available temperature sensors available aswell as many other sensors
It will then display all the available temperature sensors available as well as many other sensors
like the RPM for fans.
## ThinkPad TrackPoint
@@ -62,15 +62,22 @@ like the RPM for fans.
This section is based on a
[Reddit comment by zedbraxmen](https://www.reddit.com/r/thinkpad/comments/wjb8qz/configuring_trackpoint_in_wayland/).
The sensitivity and speed of the classic trackpoint on ThinkPads can be changed using UDEV rules.
The sensitivity and speed of the classic TrackPoint on ThinkPads can be changed using UDEV rules.
The following lines are an example for a potential file `.rules` located at `/etc/udev/rules.d/`.
It could look something like the following.
The values for sensitivity and speed could be adjusted.
```txt
ACTION=="add",
SUBSYSTEM=="input",
ATTR{name}=="TPPS/2 IBM TrackPoint",
ACTION=="add",
SUBSYSTEM=="input",
ATTR{name}=="TPPS/2 IBM TrackPoint",
ATTR{device/sensitivity}="275",
ATTR{device/speed}="215",
```
## Fingerprint Readers
Many modern laptops include fingerprint sensors which can be used for authentication on
[Linux](/wiki/linux.md).
Setup and usage is described in the
[entry regarding fingerprint reader](/wiki/linux/fingerprint_reader.md).

View File

@@ -19,7 +19,7 @@ After installation `networkmanager.service` has to be enabled by the used
[init-system](/wiki/linux/init.md) (for example
[systemD](/wiki/linux/systemd.md#startstopenabledisable-a-service)).
### OpenVPN
### OpenVPN Integration
NetworkManager needs a plugin to work with openvpn configurations.
This plugin can be installed with the `networkmanager-openvpn` package.
@@ -28,6 +28,14 @@ OpenVPNs `.ovpn` files can then be imported by running
`nmcli connection import type openvpn file <openvpn-file>`.
Afterwards they can be modified accordingly.
### Prioritize Connections
Connections can be prioritized making NetworkManager chose specific ones over others.
This can be done using `nm-connection-editor`.
Select the connection and navigate to `General`.
Then set the priority under `Connect automaticcally with priority` where `0` is the highest
priority, `1` being the next highest and so on.
## Troubleshooting
This section focusses on the troubleshooting of situations where the system does not connect

View File

@@ -41,8 +41,9 @@ drivers are not compatible with Pascal GPUs anymore as explained in
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`.
On Arch Linux-based systems this can be achieved by replacing the packages `lib32-nvidia-utils`,
`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

View File

@@ -1,6 +1,8 @@
# Package Manager
Package managers are important programs to get software onto your system.
Package managers are used to handle the installation and management of programs on systems.
## List of Package Managers
The following is a list of package managers and the corresponding [Linux](/wiki/linux.md)
distributions.
@@ -9,4 +11,14 @@ distributions.
[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.
[Pacman](/wiki/linux/package_manager/pacman_and_aur.md) and various managers for the AUR.
## Alternative Software Distribution Formats
Besides traditional package managers, there are portable or universal application formats that work
across distributions.
These formats are not package managers.
They distribute standalone applications that can run independently of the system package database.
- [AppImage](/wiki/linux/appimage.md)
- [Flatpak](/wiki/linux/flatpak.md)

View File

@@ -314,8 +314,8 @@ This section is based on a
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`.
But please note that [pyenv](/wiki/programming_language/python.md#pyenv-installation) 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

View File

@@ -0,0 +1,18 @@
# Programming Language
A programming language is a language for expressing computer programs.
## List of Programming Languages
The following is a list of programming languages that are featured in this wiki.
- [C](/wiki/programming_language/c.md)
- [Go](/wiki/programming_language/go.md)
- [Nim](/wiki/programming_language/nim.md)
- [Python](/wiki/programming_language/python.md)
- [Rocq](/wiki/programming_language/rocq.md)
- [Rust](/wiki/programming_language/rust.md)
- [VHDL](/wiki/programming_language/vhdl.md)
- [Viper](/wiki/programming_language/viper.md)
<!-- TODO: add short sentences -->
<!-- TODO: add SHELL script? -->

View File

@@ -174,21 +174,20 @@ This section addresses the [PyTorch module](https://pytorch.org/).
Pytorch is a machine learning resource which is often used for
[neural networks](/wiki/neural_network.md).
#### Setup Pytorch with Cuda for GPU usage
#### Setup Pytorch with CUDA for GPU usage
Please note that according to
[various sources](https://www.reddit.com/r/archlinux/comments/1nxipcu/nvidia_pascal/gpu_not_supporting_cuda_13_can_i)
Cuda 13 does not support nVidia Pascal GPUs.
In this case an earlier version of Cuda has to be used.
CUDA is also only available for Nvidia GPUs.
For AMD GPUs refer to [the ROCm section](#setup-pytorch-with-rocm-for-gpu-usage).
If you are on Arch Linux or a distribution based on it install
`python-pytorch-cuda` via `pacman -S python-pytorch-cuda`.
After that visit
[the official pytorch website](https://pytorch.org/get-started/locally/) and
install pytorch for your custom configuration.
[the official PyTorch website](https://pytorch.org/get-started/locally) and
install PyTorch for your custom configuration.
After that try to run the following python script:
After that try to run the following python script.
This should give back `True` if the setup was successful and the GPU is available.
```python
import torch
@@ -196,7 +195,66 @@ import torch
torch.cuda.is_available()
```
This should give back `True`.
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.
#### Setup PyTorch with ROCm for GPU usage
ROCm is also only available for AMD GPUs.
For Nvidia GPUs refer to [the CUDA section](#setup-pytorch-with-cuda-for-gpu-usage).
For ROCm to work some system packages have to be installed.
For Linux refer to the
[official Linux guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-radeon.html).
For [Arch Linux](/wiki/linux/arch-linux.md) although it is not listed the required
[AUR packages](/wiki/linux/package_manager.md) include `rocm-core`, `rocminfo`, `roctracer` and
`rccl`.
For Windows refer to the
[official Windows guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/windows/howto_windows.html).
After the systemwide setup the project environment can be setup.
It is recommended to use [virtual environments](#using-virtual-environments).
The easiest way to achieve ROCm support is by using [pip](#modules).
As explained in the
[official PyTorch guide](https://rocm.docs.amd.com/projects/radeon-ryzen/en/latest/docs/install/installrad/native_linux/install-pytorch.html)
the following example can be used inside the environment to install all needed ROCm packages.
In this example the version `7.2` is installed.
Adjustments to the command may have to be done in case another version should be installed.
```sh
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchvision-0.24.0%2Brocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/triton-3.5.1%2Brocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
wget https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torchaudio-2.9.0%2Brocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl
pip install \
torch-2.9.1+rocm7.2.0.lw.git7e1940d4-cp312-cp312-linux_x86_64.whl \
torchvision-0.24.0+rocm7.2.0.gitb919bd0c-cp312-cp312-linux_x86_64.whl \
torchaudio-2.9.0+rocm7.2.0.gite3c6ee2b-cp312-cp312-linux_x86_64.whl \
triton-3.5.1+rocm7.2.0.gita272dfa8-cp312-cp312-linux_x86_64.whl
```
If old versions of `torch`, `torchvision`, `torchaudio` or `triton` are installed inside the
environment they may need to be removed.
After this installation for some GPUs - especially integrated GPUs like the Radeon 660M - an
additional step has to be taken.
In this case the following global shell variable has to be set.
```sh
export HSA_OVERRIDE_GFX_VERSION=10.3.0
```
After that try to run the following python script.
Since ROCm uses a bridge to access CUDA it should give back `True` if the setup was successful and
the GPU is available.
```python
import torch
torch.cuda.is_available()
```
### Hailo

View File

@@ -0,0 +1,75 @@
# Rocq
[Rocq](https://rocq-prover.org/) is an interactive theorem prover.
It was formerly known as Coq.
## Setup
Rocq can be installed as explained on [the official website](https://rocq-prover.org/install).
The easiest way to install Rocq is by using Opam due to it also being able to manage packages for
Rocq.
Opam needs to be installed for this.
On most [Linux-based Systems](/wiki/linux.md) the [package manager](/wiki/linux/package_manager.md)
contains a package called `opam`.
If Opam was not initialized before, do it using the following commands.
The command may ask to edit the config file for the shell.
This is needed to function correctly.
```sh
opam init
eval $(opam env)
```
Then Rocq can be installed using the following command.
`<version>` has to be set to the desired version to install (for example `9.0.0`).
```sh
opam pin add rocq-prover <version>
```
## Usage
This section addresses the usage of Rocq.
### Basic Usage
Rocq proves are saved in `.v` files.
These can be compiled using the following command where `<file>` is a Rocq proof file.
```sh
rocq c <file>
```
If nothing is shown as output and files like a `.vo` file are generated the proof was successful.
Otherwise it was not successful.
### Examples
The following example proofs can be used to confirm the [Rocq setup](#setup) to work correctly.
The following is a simple proof for commutativity of addition.
This proof is correct.
```v
Theorem plus_comm : forall n m : nat, n + m = m + n.
Proof.
intros n m.
induction n as [| n' IH].
- simpl. rewrite <- plus_n_O. reflexivity.
- simpl. rewrite IH. rewrite <- plus_n_Sm. reflexivity.
Qed.
```
The following proof attempts to proof that all natural numbers are equal to zero which is obviously
false.
```v
Theorem all_zero : forall n : nat, n = 0.
Proof.
intros n.
destruct n.
- reflexivity.
- reflexivity.
Qed.
```

View File

@@ -0,0 +1,17 @@
# Speech Recognition and Synthesis
Speech recognition describes the process of understanding and interpreting spoken language.
The most common form of this is speech-to-text (STT) programs, that convert spoken language into
text.
On the other hand speech synthesis describes the artificial production of human speech.
A Text-to-speech (TTS) program is one, that converts an input text to speech.
## Speech-to-Text Programs
The following is a list of STT programs.
- [Nerd Dictation](https://github.com/ideasman42/nerd-dictation/) is an offline speech recognition
software for [Linux](/wiki/linux.md)-based operating systems.
Some alternatives mostly for Linux systems were listed in a
[Reddit post by tuananh_org](https://www.reddit.com/r/archlinux/comments/1j77921/speech_to_text_app/).