mirror of
https://github.com/tiyn/wiki.git
synced 2025-11-07 05:31:17 +01:00
merge
This commit is contained in:
@@ -11,6 +11,8 @@ from the [AUR](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay).
|
||||
|
||||
## Usage
|
||||
|
||||
The following section describes various ways of usage of 7-zip.
|
||||
|
||||
### Compressing and Uncompressing a Directory
|
||||
|
||||
For directories to be compressed the Lempel–Ziv–Markov chain algorithm is recommended.
|
||||
|
||||
@@ -61,3 +61,61 @@ initrd /<installed microcode package>.img
|
||||
```
|
||||
|
||||
`<installed microcode package>` is either `amd-ucode` or `intel-ucode`.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
This section addresses problems that can occur when using Arch Linux.
|
||||
|
||||
### Troubleshooting Setup for not Bootable Systems
|
||||
|
||||
This section focusses on a basic guide to troubleshoot systems that are not bootable.
|
||||
To access the files of the system an Arch Linux boot stick has to be created as explained in
|
||||
[a previous section](#iso-medium).
|
||||
After booting into it set your keymap layout using the `loadkeys` setup similar to
|
||||
[the installation preparation](/wiki/linux/arch-linux/installation.md#1-preparation).
|
||||
Afterwards [mount](/wiki/linux/disk-management.md#mounting) the partition that contains the root
|
||||
file system to the `/mnt` directory.
|
||||
It is possible that LUKS encrypted file systems need to be
|
||||
[opened](/wiki/linux/dm-crypt.md#openclose-an-encrypted-volume) and then mounted using the
|
||||
`/dev/mapper` symbolic link.
|
||||
On some systems there are home or boot file system that have to be mounted on `/mnt/boot` or
|
||||
`/mnt/home` after mounting the root file system.
|
||||
Afterwards use `arch-chroot /mnt` to get into the not bootable system.
|
||||
Now the command line of the system can be accessed for troubleshooting.
|
||||
After troubleshooting `exit` the system and [unmount](/wiki/linux/disk-management.md#mounting) all previously
|
||||
mounted file systems and try to boot back into the system.
|
||||
|
||||
If the system broke during an update then the easiest way to fix it, is by running the same update
|
||||
command again.
|
||||
The used command can be found in `/var/log/pacman.log`.
|
||||
Make sure to run exactly this command.
|
||||
Afterwards try to reboot into the system.
|
||||
|
||||
Another common source for not bootable systems is
|
||||
[the initial ramdisk](#problems-with-the-initial-ramdisk).
|
||||
|
||||
### Problems with the Initial Ramdisk
|
||||
|
||||
A common problem (especially after a interrupted update lies in the initial ramdisk environment).
|
||||
An error like this will mean that the system is
|
||||
[not bootable](#troubleshooting-setup-for-not-bootable-systems).
|
||||
To fix this generate the initial ramdisk manually as described in
|
||||
[the mkinitcpio entry](/wiki/linux/mkinitcpio.md#manually-generate-initial-ramdisk).
|
||||
|
||||
### Stuck in Boot Screen
|
||||
|
||||
There is a known problem described in the Arch Linux forums by
|
||||
[TheRealNubby](https://bbs.archlinux.org/viewtopic.php?id=300292) where the system goes into a
|
||||
perceived freeze after the boot process.
|
||||
This problem seems to be most prevalent on systems that use an [Nvidia](/wiki/nvidia.md) GPU
|
||||
since its only known occurences were found on Nvidia GTX 1080 GPUs.
|
||||
The boot screen will not show any errors and when
|
||||
[troubleshooting using a installation medium](#troubleshooting-setup-for-not-bootable-systems)
|
||||
logs like [the ones of SystemD](/wiki/linux/systemd.md#retrieving-the-systemd-logs) will look
|
||||
normal and won't show any errors.
|
||||
|
||||
In this case there is the possibility that logging into Arch Linux blindly will work.
|
||||
For this type in user name and password some moments after the perceived freeze as you normally
|
||||
would do if the login screen came up.
|
||||
If the graphical interface still does not work, the command to start the graphical interface (like
|
||||
`startx` for [X11](/wiki/linux/x_window_system.md) systems) can also work.
|
||||
|
||||
@@ -34,3 +34,11 @@ With additional software it can also be used to control audio/music by pressing
|
||||
hotkeys.
|
||||
This is explained in the
|
||||
[PlayerCTL entry](/wiki/linux/playerctl.md#using-hotkeys).
|
||||
|
||||
## Sound Board
|
||||
|
||||
There are various available software solutions for sound boards.
|
||||
One option is [CasterSoundboard](https://github.com/JupiterBroadcasting/CasterSoundboard).
|
||||
Another is the cue player
|
||||
[Linux Show Player](https://linux-show-player-users.readthedocs.io/en/latest/index.html) which
|
||||
should be installed using [flatpak](/wiki/linux/flatpak.md) (`org.linuxshowplayer.LinuxShowPlayer`).
|
||||
|
||||
14
wiki/linux/display_control.md
Normal file
14
wiki/linux/display_control.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Display Control
|
||||
|
||||
Display control describes the process of controlling the display with means other than the hardware
|
||||
buttons.
|
||||
|
||||
## DDC
|
||||
|
||||
DDC - short for Display Data Channel - is a specific way to control the display.
|
||||
On [Linux](/wiki/linux.md)-based Systems this can be achieved by using the
|
||||
[`ddcutil`](https://github.com/rockowitz/ddcutil) command line interface that can be found in the
|
||||
package of the same name.
|
||||
For a graphical user interface [`ddcui`](https://github.com/rockowitz/ddcui) can be used.
|
||||
After installation it is possible that the system needs to be restarted due to the i2c-dev kernel
|
||||
module.
|
||||
@@ -6,7 +6,7 @@ linux systems.
|
||||
## Setup
|
||||
|
||||
The `flatpak` package can be installed by most distribution specific package
|
||||
managers (e.g. [pacman or yay](./arch-linux/package_manager.md)).
|
||||
managers (e.g. [pacman or yay](/wiki/linux/package_manager.md#arch-linux-pacman-and-yay)).
|
||||
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
|
||||
|
||||
@@ -45,7 +45,7 @@ A configuration typically looks like the following lines.
|
||||
|
||||
This configuration requires some fonts that are not necessarily present in any
|
||||
Linux installation so they may have to be installed.
|
||||
Follow the section on [adding new fonts](#adding-new-font) and
|
||||
Follow the section on [adding new fonts](#adding-new-font-to-configuration) and
|
||||
[recommended fonts](#recommended-fonts) as needed.
|
||||
|
||||
## Usage
|
||||
@@ -53,6 +53,33 @@ Follow the section on [adding new fonts](#adding-new-font) and
|
||||
This section addresses important commands and packages for the configuration of
|
||||
fonts.
|
||||
|
||||
### 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.
|
||||
|
||||
```ssh
|
||||
fontforge arial.ttf
|
||||
```
|
||||
|
||||
### Add TTF Font
|
||||
|
||||
A font can be added to the local users fonts using a `.ttf` file.
|
||||
The file has to be copied into the local fonts directory `~/.local/share/fonts`.
|
||||
Afterwards the [cache should be reloaded](#reload-the-cache).
|
||||
Finally the font can be [found](#list-or-find-font-family).
|
||||
|
||||
### Reload the Cache
|
||||
|
||||
The cache needs to be reloaded in certain situations like after a new font
|
||||
has been added.
|
||||
This can be achieved by the following command.
|
||||
|
||||
|
||||
```sh
|
||||
fc-cache -f -c
|
||||
```
|
||||
|
||||
### List or Find Font Family
|
||||
|
||||
A list of all fonts can be displayed using the command `fc-match -a`.
|
||||
@@ -63,17 +90,18 @@ For matching the command `fc-match -s <search term>` is be used.
|
||||
This will display a list of font families that match best with the given search
|
||||
term.
|
||||
|
||||
### Adding New Font
|
||||
### Adding New Font to Configuration
|
||||
|
||||
A new font can be added by placing its name inside `<family>`/`</family>`-tags.
|
||||
Make sure to place it inside the correct [font family](/wiki/font.md#typefaces).
|
||||
If you want to add a font into the configuration make sure its name
|
||||
[matches](#list-or-find-font-family) correctly.
|
||||
|
||||
|
||||
### Recommended Fonts
|
||||
|
||||
In this section various fonts are listed for the different typefaces.
|
||||
Make sure to follow [the adding new fonts section](#adding-new-font) after
|
||||
Make sure to follow [the adding new fonts section](#adding-new-font-to-configuration) after
|
||||
installing new fonts.
|
||||
|
||||
#### Monospace
|
||||
@@ -119,3 +147,14 @@ displayed properly.
|
||||
[JoyPixels](https://joypixels.com) feature many emoji icons.
|
||||
The fonts can be obtained from their [website](https://joypixels.com/download)
|
||||
or for most distributions from the `ttf-joypixels` package.
|
||||
|
||||
#### Special Fonts
|
||||
|
||||
This section lists some fonts that are good in certain situations but are not
|
||||
intended to be used as day-to-day font.
|
||||
|
||||
- [MagicMedieval & MagicSymbols](http://www.thealmightyguru.com/GameFonts/Series-MagicTheGathering.html)
|
||||
are fonts that are similar to the font used in the game
|
||||
[Magic: The Gathering](/wiki/games/magic%3A_the_gathering.md).
|
||||
An overview of the glyphs can be found in a
|
||||
[StackExchange post by Cicada](https://tex.stackexchange.com/questions/570890/how-can-i-typeset-magic-the-gathering-symbols-using-the-pifont-package-in-latex).
|
||||
|
||||
@@ -22,6 +22,8 @@ This section addresses various use cases of git.
|
||||
|
||||
There is also an interactive
|
||||
[fixup guide by Seth Robertson](https://sethrobertson.github.io/GitFixUm/fixup.html).
|
||||
Robertson also made guides on [post production](https://github.com/SethRobertson/GitPostProduction)
|
||||
and [best practices](http://sethrobertson.github.io/GitBestPractices).
|
||||
|
||||
### Ignore files having local changes
|
||||
|
||||
|
||||
@@ -28,10 +28,10 @@ Disabling works accordingly by running:
|
||||
ip link set wlan0 down
|
||||
```
|
||||
|
||||
### Get Outside IP
|
||||
### Get Outside IP Address
|
||||
|
||||
For VPN and other applications using a tunnel it can be useful to check the
|
||||
outside IP of your system.
|
||||
outside [IP address](/wiki/ip_address.md) of your system.
|
||||
The following command uses the `dig` command.
|
||||
It is either bundled in the `dig` package - like in
|
||||
[Arch Linux](/wiki/linux/arch-linux.md) - or in the `dnsutils`
|
||||
|
||||
@@ -8,7 +8,7 @@ linux system via YAML files.
|
||||
### Add more IP addresses to a system
|
||||
|
||||
In the file `/etc/netplan/50-cloud-init.yaml` create an `addresses:` section
|
||||
for a device (for example an ethernet device) and list the IP addresses you
|
||||
for a device (for example an ethernet device) and list the [IP addresses](/wiki/ip_address.md) you
|
||||
want to add to the system to it.
|
||||
It has to be noted, that the added addresses should be outside of the DHCP
|
||||
range of your router.
|
||||
|
||||
@@ -25,3 +25,13 @@ where `plaintext.txt` is the message to encrypt and `encrypted.txt` is the
|
||||
encrypted message.
|
||||
You can decrypt the message using the private key `private.key` as follows
|
||||
`openssl rsautl -decrypt -inkey private.key -in encrypted.txt -out plaintext.txt`.
|
||||
|
||||
### Password Generator
|
||||
|
||||
OpenSSL can be used to create a password.
|
||||
For this use the following command.
|
||||
It will create a hexadecimal password with 32 characters.
|
||||
|
||||
```ssh
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
@@ -17,9 +17,31 @@ It features the same syntax.
|
||||
|
||||
### Usage
|
||||
|
||||
This section addresses various uses of the pacman and yay package managers.
|
||||
This section addresses various usages of the arch linux package managers.
|
||||
|
||||
#### Clean Cache
|
||||
#### 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.
|
||||
|
||||
@@ -27,6 +49,10 @@ The cache of all packages except the one installed can be deleted by running the
|
||||
pacman -Sc
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
This section addresses various uses of the pacman and yay package managers.
|
||||
|
||||
#### Update Mirrorlist
|
||||
|
||||
After a while not updating the system it is possible for the mirrorlist to be
|
||||
|
||||
133
wiki/linux/papis.md
Normal file
133
wiki/linux/papis.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Papis
|
||||
|
||||
[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.
|
||||
|
||||
## Setup
|
||||
|
||||
Papis can be installed on most distributions by acquiring the `papis` package.
|
||||
Alternatively it can be downloaded from [the GitHub page](https://github.com/papis/papis).
|
||||
|
||||
### Configuration
|
||||
|
||||
To use Papis a config file needs to be created.
|
||||
The path of the global config file is `~/.config/papis/config`.
|
||||
A minimal config can look like the following.
|
||||
Make sure to change the path of the papers directory.
|
||||
|
||||
```txt
|
||||
[papers]
|
||||
dir = ~/cloud/bibliography/papis
|
||||
|
||||
[settings]
|
||||
default-library = papers
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
The following section describes various ways of usage of Papis.
|
||||
|
||||
### Adding, Removing, Editing and Browsing Entries
|
||||
|
||||
An entry can be added by running a command similar to the following.
|
||||
The values for the different keys needs to be changed, added or omitted accordingly.
|
||||
|
||||
```sh
|
||||
papis add ~/Documents/interesting.pdf \
|
||||
--folder-name interesting-paper-2021 \
|
||||
--set author 'John Smith' \
|
||||
--set title 'The interesting life of bees' \
|
||||
--set year 1985 \
|
||||
--set tags 'biology interesting bees'
|
||||
```
|
||||
|
||||
Papis can also add sources directly via their DOI code.
|
||||
|
||||
```sh
|
||||
papis add --from doi 10.10763/1.3237134
|
||||
```
|
||||
|
||||
For the most well known journals are also recognized by Papis
|
||||
|
||||
```sh
|
||||
papis add https://arxiv.org/abs/1712.03134
|
||||
```
|
||||
|
||||
To remove an entry the following command can be run.
|
||||
Afterwards the entry that should be removed can be easily selected via the terminal user interface.
|
||||
|
||||
```sh
|
||||
papis rm
|
||||
```
|
||||
|
||||
Entries can be edited by using the following command.
|
||||
|
||||
```sh
|
||||
papis edit
|
||||
```
|
||||
|
||||
Entries can be browsed and viewed either in the terminal or via a local website.
|
||||
For the first run the following command.
|
||||
|
||||
```sh
|
||||
papis browse
|
||||
```
|
||||
|
||||
For the latter the following command can be run to start the server.
|
||||
The command-line output will show the address to reach the service.
|
||||
|
||||
```sh
|
||||
papis serve
|
||||
```
|
||||
|
||||
### Create a BibTeX file
|
||||
|
||||
A BibTeX file containing all the entries of all the libraries can be created by running the
|
||||
following command.
|
||||
For this the command will create a file called `lib.bib`.
|
||||
|
||||
```sh
|
||||
papis export --all --format bibtex --out lib.bib
|
||||
```
|
||||
|
||||
### Clearing the Cache
|
||||
|
||||
The cache of Papis can be cleared by running the following command.
|
||||
|
||||
```sh
|
||||
papis --cc
|
||||
```
|
||||
|
||||
### Import Entries from a BibTeX File
|
||||
|
||||
This section will discuss the way to add the contents of a BibTeX file to the database.
|
||||
First the BibTeX file (in this case called `mylib.bib`) will be used to create a new database
|
||||
inside the folder `tmp-db`.
|
||||
|
||||
```sh
|
||||
papis bibtex read mylib.bib import -a -o tmp-db
|
||||
```
|
||||
|
||||
Afterwards the contents of the temporary database should be checked to be correctly imported.
|
||||
|
||||
```sh
|
||||
papis -l tmp-db edit
|
||||
```
|
||||
|
||||
Afterwards the contents of the temporary library should be moved to the actualy directory where
|
||||
papis stores its entries.
|
||||
The path for that can be found in the [config file](#configuration).
|
||||
|
||||
```sh
|
||||
mv tmp-db/* /path/to/your/library/folder/
|
||||
```
|
||||
|
||||
Finally the cache needs to be cleared for Papis to display the new entries correctly.
|
||||
|
||||
```sh
|
||||
papis --cc
|
||||
```
|
||||
|
||||
Finally the cache needs to be [cleared](#clearing-the-cache) for Papis to display the new entries
|
||||
correctly.
|
||||
@@ -10,18 +10,212 @@ For clients that use the [PulseAudio](/wiki/linux/pulseaudio.md) API
|
||||
packages on other distros) can be installed.
|
||||
It will automatically remove unneeded and conflicting PulseAudio packages.
|
||||
Additionally `pipewire-alsa` and `pipewire-jack` for JACK and Alsa clients are
|
||||
available.
|
||||
available and recommended to install for full compatibility with most software.
|
||||
Make sure to restart to be sure everything is running correctly.
|
||||
|
||||
## Usage
|
||||
|
||||
This section will focus on the usage of Pipewire.
|
||||
|
||||
### Mixing
|
||||
|
||||
For simple sound processing in the form of volume adjustment as well as setting
|
||||
the default input and output devices
|
||||
[`pavucontrol`](https://freedesktop.org/software/pulseaudio/pavucontrol/) can be
|
||||
used as a simple mixer.
|
||||
|
||||
### Routing
|
||||
|
||||
This section focusses on graph-based interfaces also called patchbays.
|
||||
For more advanced routing [qpwgraph](https://github.com/rncbc/qpwgraph) can be used, but the
|
||||
GTK-based [Helvum](https://gitlab.freedesktop.org/pipewire/helvum) is recommended.
|
||||
Both are graph-based interface also called patchbays.
|
||||
GTK-based [Helvum](https://gitlab.freedesktop.org/pipewire/helvum) is also available.
|
||||
The third available option is [Patchance](https://github.com/Houston4444/Patchance) - this is the
|
||||
currently recommended software of this wiki.
|
||||
|
||||
### Equalizer, Noise Reduction, etc
|
||||
|
||||
For further sound processing the easiest way to do so is using
|
||||
[easyeffects](/wiki/linux/easyeffects.md) which features a wide range of effects
|
||||
to apply to sound streams including noise reduction.
|
||||
|
||||
### Get ID of an Input or Output
|
||||
|
||||
Using the following command a list of all connected input and output aswell as streams and devices
|
||||
can be displayed.
|
||||
|
||||
```sh
|
||||
wpctl status
|
||||
```
|
||||
|
||||
Under the `Sinks` the outputs are displayed and under `Sources` the inputs.
|
||||
Defaults are noted with an asterix.
|
||||
The identificator is displayed prior to the name of the input, output, device or stream.
|
||||
|
||||
If a device name is known (in this case `"Starship/Matisse HD Audio Controller Analog Stereo"`).
|
||||
The following command will return its identificator.
|
||||
|
||||
```sh
|
||||
NAME=$(wpctl status | grep "Starship/Matisse HD Audio Controller Analog Stereo")
|
||||
ID=$( echo $NAME | cut -d '.' -f 1 | cut -c 11-)
|
||||
|
||||
echo ID: $ID
|
||||
```
|
||||
|
||||
### Loopback Input
|
||||
|
||||
An input can be output to the default output by using the following command.
|
||||
In that command `<id>` is the identificator of the input that should be looped back.
|
||||
It needs to be set accordingly.
|
||||
|
||||
```sh
|
||||
pw-loopback -C <id>
|
||||
```
|
||||
|
||||
### Virtual Devices
|
||||
|
||||
This section focusses on the temporary and permanent creation and removal of virtual devices like
|
||||
virtual sinks and sources aswell as coupled nodes like loopbacks.
|
||||
|
||||
#### Creating a Null Device
|
||||
|
||||
This section will focus on the creation of a dummy device.
|
||||
That is a virtual device that can be selected as output but is not used by default.
|
||||
This can be useful to record applications as their sound can cleanly be passed to the dummy device
|
||||
which will eliminate other applications sounds.
|
||||
If the goal is to record and listen to an application at the same time navigate to
|
||||
[the application loopback section](#creating-an-application-loopback)
|
||||
|
||||
The source for this section of the entry is derived by
|
||||
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes).
|
||||
|
||||
A dummy device, or null sink, can be created permanently by creating a `.conf` file inside the
|
||||
`~/.config/pipewire/pipewire.conf.d` directory with the following lines.
|
||||
|
||||
|
||||
```txt
|
||||
context.objects = [
|
||||
{ factory = adapter
|
||||
args = {
|
||||
factory.name = support.null-audio-sink
|
||||
node.name = "null-sink-0"
|
||||
node.description = "Null Sink 0"
|
||||
media.class = Audio/Sink
|
||||
audio.position = [ FL FR ]
|
||||
monitor.channel-volumes = true
|
||||
monitor.passthrough = true
|
||||
adapter.auto-port-config = {
|
||||
mode = dsp
|
||||
monitor = true
|
||||
position = preserve
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Multiple devices can be created by creating different files in the directory.
|
||||
|
||||
If the null sink is only needed temporarily (until the next restart) the following line can be used
|
||||
to create it.
|
||||
Use different `sink_name`s to create multiple dummy devices.
|
||||
|
||||
```sh
|
||||
pactl load-module module-null-sink media.class=Audio/Sink sink_name=null-sink-0 channel_map=stereo
|
||||
```
|
||||
|
||||
This will return an id that can be used to remove the sink with the following command.
|
||||
|
||||
```sh
|
||||
pactl unload-module <id>
|
||||
```
|
||||
|
||||
#### Creating a Device Loopback
|
||||
|
||||
In this section a device loopback is defined as a loopback that takes a device as input.
|
||||
This can be useful to listen to input devices, such as audio interfaces with connected microphones,
|
||||
instruments, etc.
|
||||
|
||||
The source for this section of the entry is derived by
|
||||
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes)
|
||||
and [the official website](https://docs.pipewire.org/page_module_loopback.html).
|
||||
|
||||
A device loopback can be created permanently by creating a `.conf` file inside the
|
||||
`~/.config/pipewire/pipewire.conf.d` directory with the following lines.
|
||||
|
||||
```txt
|
||||
context.modules = [
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
audio.position = [ FL FR ]
|
||||
capture.props = {
|
||||
media.class = "Stream/Input/Audio"
|
||||
node.name = "device-loopback-1-recording"
|
||||
node.description = "Device-Loopback 1 Recording"
|
||||
}
|
||||
playback.props = {
|
||||
media.class = "Stream/Output/Audio"
|
||||
node.name = "device-loopback-1-playback"
|
||||
node.description = "Device-Loopback 1 Playback"
|
||||
}
|
||||
audio.volume = 0.5
|
||||
audio.mute = true
|
||||
}
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
The created device loopback is made up by two parts that can be found in different places inside a
|
||||
mixer like [pavucontrol](#volume-control).
|
||||
The part called `Device-Loopback 1 Recording` in the example config can be found in the `Recording`
|
||||
tab.
|
||||
There the device to loopback can be selected.
|
||||
The second part called `Device-Loopback 1 Playback` is available under the `Playback` tab and
|
||||
allows to switch the selection of the output device.
|
||||
|
||||
#### Creating an Application Loopback
|
||||
|
||||
This section will focus on the creation of an application loopback.
|
||||
In this section an application loopback is defined as a loopback that takes an application as input.
|
||||
This can be useful to record applications as their sound can cleanly be passed to the sink sink of
|
||||
the applicatino loopback which will eliminate other applications sounds.
|
||||
If the goal is to record and not listen to the application at the same time navigate to
|
||||
[the null device section](#creating-a-null-device).
|
||||
Alternatively the null device can also be selected as a output device for the playback part of the
|
||||
application loopback which makes it easily and seemlessly possible to switch between listening in
|
||||
and not listening without changing the device that is recorded by the capturing program.
|
||||
|
||||
The source for this section of the entry is derived by
|
||||
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes)
|
||||
and [the official website](https://docs.pipewire.org/page_module_loopback.html).
|
||||
|
||||
An application loopback can be created permanently by creating a `.conf` file inside the
|
||||
`~/.config/pipewire/pipewire.conf.d` directory with the following lines.
|
||||
|
||||
```txt
|
||||
context.modules = [{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
audio.position = [ FL FR ]
|
||||
capture.props = {
|
||||
media.class = "Audio/Sink"
|
||||
node.name = "application-loopback-1-sink"
|
||||
node.description = "Application-Loopback 1 Sink"
|
||||
}
|
||||
playback.props = {
|
||||
media.class = "Stream/Output/Audio"
|
||||
node.name = "application-loopback-1-playback"
|
||||
node.description = "Application-Loopback 1 Playback"
|
||||
}
|
||||
}
|
||||
}]
|
||||
```
|
||||
|
||||
The created device loopback is made up by two parts that can be found in different places inside a
|
||||
mixer like [pavucontrol](#volume-control).
|
||||
The part called `Application-Loopback 1 Sink` in the example config can be found in the `Output
|
||||
Devices` tab.
|
||||
The second part called `Application-Loopback 1 Playback` is available under the `Playback` tab and
|
||||
allows to switch the selection of the output device.
|
||||
Also in the `Playback` tab `Application-Loopback 1 Sink` can be selected as an output for currently
|
||||
running applications which will loopback the sound to the selected output device.
|
||||
|
||||
@@ -6,8 +6,10 @@
|
||||
|
||||
## Usage
|
||||
|
||||
This section will discuss the usage of PulseAudio.
|
||||
|
||||
### Mixing
|
||||
|
||||
For simple sound processing in the form of volume adjustment as well as setting
|
||||
the default input and output devices `pavucontrol` can be used as a simple
|
||||
mixer.
|
||||
the default input and output devices [`pavucontrol`](/wiki/linux/pipewire.md#mixing) can be
|
||||
used as a simple mixer.
|
||||
|
||||
27
wiki/linux/qt.md
Normal file
27
wiki/linux/qt.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Qt
|
||||
|
||||
[Qt](https://www.qt.io/) is an application and widget toolkit.
|
||||
|
||||
## Setup
|
||||
|
||||
On most linux distributions different Qt versions are installed as a dependency of various programs
|
||||
that use graphical user interfaces.
|
||||
|
||||
### Configuration
|
||||
|
||||
The configuration can easily be achieved by using the programs
|
||||
[qt5ct](https://github.com/desktop-app/qt5ct) or [qt6ct](https://github.com/trialuser02/qt6ct)
|
||||
the latter working with the current version of Qt.
|
||||
qt5ct is officially archived and qt6ct is the recommended program to use and will mainly be
|
||||
discussed in this article.
|
||||
These programs can sometimes be found as [package](/wiki/linux/package_manager.md) of the same
|
||||
name.
|
||||
Afterwards `qt6ct` can be run to get a graphical user interface to set the theme and icons of Qt
|
||||
applications.
|
||||
This will create or edit a configuration file located at `~/.config/qt6ct/qt6ct.conf`.
|
||||
To make this config apply for all Qt applications the following line needs to be inserted into the
|
||||
`~/.profile` file.
|
||||
|
||||
```sh
|
||||
export QT_QPA_PLATFORMTHEME="qt6ct"
|
||||
```
|
||||
@@ -26,6 +26,12 @@ This section addresses various different functions by and actions that can be
|
||||
taken with shell commands.
|
||||
The focus is mostly on POSIX-compliant shells and scripts that are compatible with POSIX.
|
||||
|
||||
A helpful resource for shell scripts is
|
||||
[the pure sh bible](https://github.com/dylanaraps/pure-sh-bible).
|
||||
There are similar repositories and resources for functions that are outside the scope of POSIX
|
||||
shells.
|
||||
Because of that and their issue regarding compatibility they will not be mentioned here.
|
||||
|
||||
### Symbolic Links using `ln`
|
||||
|
||||
`ln` is a command to create links between files and folders.
|
||||
|
||||
@@ -43,7 +43,7 @@ Alternatively it can be enabled to start at every boot by running:
|
||||
sudo systemctl enable unturned
|
||||
```
|
||||
|
||||
## Start/Stop/Enable/Disable a service
|
||||
### Start/Stop/Enable/Disable a service and Retrieve its Logs
|
||||
|
||||
Services can be started by running `systemctl start <service-name>`.
|
||||
They respectively can be stopped by replacing the `start`
|
||||
@@ -51,3 +51,15 @@ keyword for `stop`.
|
||||
To start the service after boot it has to be enabled.
|
||||
This works accordingly with the keyword `enable`.
|
||||
The `disable` keyword stops the service from starting automatically.
|
||||
|
||||
Logs of the last start of the service can be found by running `systemctl status <service-name>`.
|
||||
|
||||
### Retrieving the SystemD Logs
|
||||
|
||||
SystemD logs can easily be found using the `journalctl` command.
|
||||
One of the most notable usages of the command is for checking the logs of the previous boot.
|
||||
This can be achieved by running the following command.
|
||||
|
||||
```sh
|
||||
journalctl -b-1
|
||||
```
|
||||
|
||||
16
wiki/linux/tar.md
Normal file
16
wiki/linux/tar.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# tar
|
||||
|
||||
tar is a package that acts a an archiving utility.
|
||||
|
||||
## Usage
|
||||
|
||||
This section addresses the usage of the tar package.
|
||||
|
||||
### Uncompressing a tar Archive
|
||||
|
||||
A tar archive (`.tar`, `.tar.gz`, etc.) can be uncompressed by running the following command.
|
||||
In this command `<tar archive>` stands in as a placeholder for the path of the tar archive.
|
||||
|
||||
```sh
|
||||
tar -xf <tar archive>
|
||||
```
|
||||
57
wiki/linux/watson.md
Normal file
57
wiki/linux/watson.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Watson
|
||||
|
||||
[Watson](https://tailordev.github.io/Watson) is a free and open-source time-tracker for
|
||||
[Linux](/wiki/linux.md) that uses the [command-line interface](/wiki/linux/shell.md).
|
||||
|
||||
## Setup
|
||||
|
||||
On most Linux distributions Watson can be installed with the `watson` package.
|
||||
Additionally Watson can be installed using Pythons pip package manager.
|
||||
The pip package is called ´td-watson`.
|
||||
Alternatively it can be installed via [GitHub](https://github.com/TailorDev/Watson).
|
||||
|
||||
## Usage
|
||||
|
||||
The following section describes various ways of usage of Watson.
|
||||
|
||||
### Tracking Time and Displaying Tracked Time
|
||||
|
||||
Time can be tracked by running the following command.
|
||||
This example tracks time to a project called `world-domination` and uses the tag `cats` and `dogs`.
|
||||
Additional tags can be appended or tags can be ommited if not needed.
|
||||
This should be adapted to specific needs.
|
||||
|
||||
```sh
|
||||
watson start world-domination +cats +dogs
|
||||
```
|
||||
|
||||
Alternatively the start time can be set in the past by adding the `--at` flag with a time.
|
||||
|
||||
```sh
|
||||
watson start world-domination +cats +dogs --at 13:37
|
||||
```
|
||||
|
||||
The tracking of the time can be stopped by running the following command.
|
||||
|
||||
```sh
|
||||
watson stop
|
||||
```
|
||||
|
||||
Afterwards the summary of the tracked time can be displayed by running the following command.
|
||||
|
||||
```sh
|
||||
watson report
|
||||
```
|
||||
|
||||
### Adding a Time Frame in Retrospect
|
||||
|
||||
It can be useful to add time frames in retrospect if the starting and stopping of that task was
|
||||
forgotten at that time.
|
||||
For this the following command can be run.
|
||||
It works similarly to starting a time frame as explained in the
|
||||
[section above](#tracking-time-and-displaying-tracked-time).
|
||||
Additionally the start and stop time are specified with the `--from` and `--to` flags.
|
||||
|
||||
```sh
|
||||
watson add --from "2018-03-20 12:00:00" --to "2018-03-20 13:00:00" programming +addfeature
|
||||
```
|
||||
@@ -151,3 +151,36 @@ This usually means that either the [Nvidia](/wiki/nvidia.md) kernel module is no
|
||||
This can be fixed by [installing Nvidia](/wiki/linux/nvidia.md#setup).
|
||||
If this is not the problem then the [initial ramdisk](/wiki/linux/mkinitcpio.md) should be
|
||||
[regenerated](/wiki/linux/mkinitcpio.md#manually-generate-initial-ramdisk).
|
||||
|
||||
### File Picker Doesn't Work
|
||||
|
||||
If the file picker doesn't work in applications like [Discord](/wiki/discord.md) for example first
|
||||
check if the desktop portal is installed.
|
||||
For that search for the package `xdg-desktop-portal` or a similar named one using your
|
||||
[package manager](/wiki/linux/package_manager.md).
|
||||
If it is installed check if it starts up correctly by using the command
|
||||
`systemctl --user status xdg-desktop-portal` as described in the
|
||||
[SystemD entry](/wiki/linux/systemd.md#startstopenabledisable-a-service-and-retrieve-its-logs).
|
||||
|
||||
A possible error is `cannot open display` as it was described and fixed by rockzombie2 and V1del in
|
||||
an [Arch Linux](/wiki/linux/arch-linux.md)
|
||||
[forum post](https://bbs.archlinux.org/viewtopic.php?id=294808).
|
||||
To fix this you can run the following commands to temporarily make the file picker work.
|
||||
|
||||
```sh
|
||||
systemctl --user import-environment DISPLAY XAUTHORITY
|
||||
systemctl --user restart xdg-desktop-portal
|
||||
```
|
||||
|
||||
If that works make sure the Xorg configs are sourced for users aswell.
|
||||
It is possible that the following code block is missing in the local `.xinitrc`.
|
||||
This would create similar errors to the ones experienced.
|
||||
|
||||
```sh
|
||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user