hannah-eee/arch-wiki-docs huggingface dataset:
Audio plugins package guidelines

Arch package guidelines
32-bit
–
CLR
–
CMake
–
Cross
–
DKMS
–
Eclipse
–
Electron
–
Font
–
Free Pascal
–
GNOME
–
Go
–
Haskell
–
Java
–
KDE
–
Kernel modules
–
Lisp
–
Meson
–
MinGW
–
Node.js
–
Nonfree
–
OCaml
–
Perl
–
PHP
–
Python
–
R
–
Ruby
–
Rust
-
Security
–
Shell
–
VCS
–
Web
–
Wine
This document covers proposed standards and guidelines on writing
PKGBUILDs
for plugins for
Professional audio
.
Note
The package name should be entirely lowercase.
Ultimately there is no hard rule for naming, i.e. these are only
guidelines
. In general, naming follows upstream.
Destination directory and naming rules
Plugin format
Package naming
Destination directory
File naming
Directory naming
Groups
Optdepends
CLAP
name
-clap
/usr/lib/clap/
name
.clap
name
.clap
pro-audio clap-plugins
clap-host
DSSI
name
-dssi
/usr/lib/dssi/
name
-dssi.so
name
-dssi
pro-audio dssi-plugins
dssi-host
LADSPA
name
-ladspa
/usr/lib/ladspa/
name
-ladspa.so
name
-ladspa
pro-audio ladspa-plugins
ladspa-host
LV2
name
-lv2
/usr/lib/lv2/
name
.lv2
pro-audio lv2-plugins
lv2-host
VCV Rack
vcvrack-
name
/usr/lib/vcvrack/plugins/
name
pro-audio vcvrack-plugins
VST 2
name
-vst
/usr/lib/vst/
name
.so
name
.vst
pro-audio vst-plugins
vst-host
VST 3
[1]
name
-vst3
/usr/lib/vst3/
name
.so
name
.vst3
pro-audio vst3-plugins
vst3-host
Package description
The package description should at least contain the word
plugin
and what type of plugin it is:
CLAP
,
DSSI
,
LADSPA
,
LV2
,
VCV Rack
,
VST2
,
VST3
.
Windows plugins
Some plugins, which are not available in a native Linux version, but are available for Windows, can be used on Linux via
Wine
and
yabridge
or other bridging solutions,
Also read the
Wine package guidelines
.
Architecture
Plugin format
Package naming
Destination directory
File naming
Directory naming
Application data
Groups
Optdepends
x86_64
CLAP
name
-clap-x86_64-windows
/usr/lib/wine/x86_64-windows/clap/
name
.clap
name
.clap
/usr/share/wine/clap/
pro-audio clap-plugins-x86_64-windows
clap-host wine-staging yabridge
x86_64
VST 2
name
-vst-x86_64-windows
/usr/lib/wine/x86_64-windows/vst/
name
.dll
name
.vst
/usr/share/wine/vst/
pro-audio vst-plugins-x86_64-windows
vst-host wine-staging yabridge
x86_64
VST 3
[2]
name
-vst3-x86_64-windows
/usr/lib/wine/x86_64-windows/vst3/
name
.vst3
name
.vst3
/usr/share/wine/vst3/
pro-audio vst3-plugins-x86_64-windows
vst3-host wine-staging yabridge
i386
CLAP
name
-clap-i386-windows
/usr/lib32/wine/i386-windows/clap/
name
.clap
name
.clap
/usr/share/wine/clap/
pro-audio clap-plugins-i386-windows
clap-host wine-staging yabridge
i386
VST 2
name
-vst-i386-windows
/usr/lib32/wine/i386-windows/vst/
name
.dll
name
.vst
/usr/share/wine/vst/
pro-audio vst-plugins-i386-windows
vst-host wine-staging yabridge
i386
VST 3
[3]
name
-vst3-i386-windows
/usr/lib32/wine/i386-windows/vst3/
name
.vst3
name
.vst3
/usr/share/wine/vst3/
pro-audio vst3-plugins-i386-windows
vst3-host wine-staging yabridge
Package description
The package description should at least contain the word
Windows
,
plugin
and what type of plugin it is:
CLAP
,
VST2
,
VST3
.
Autostarting

This article links to various methods to launch scripts or applications automatically when some particular event is taking place.
On bootup / shutdown
Enable
the relevant
systemd
services. If an application does not provide a systemd service,
write
your own.
On user login / logout
Enable
the relevant
user unit
.
On device plug in / unplug
Use
udev
rules.
On time events
Periodically at certain times, dates or intervals:
systemd/Timers
Cron
Once at a date and time:
systemd/Timers
at
On filesystem events
Use an
inotify
event watcher:
inotify-tools
, see
inotifywait(1)
incron
fswatch
AUR
entr
systemd
can activate units on filesystem events using
systemd.path(5)
files
On shell login / logout
See
Command-line shell#Configuration files
.
On Xorg startup
xinitrc
if you are starting
Xorg
manually with
xinit
.
xprofile
if you are using a
display manager
.
On desktop environment startup
Most
desktop environments
implement
XDG Autostart
.
If the desktop environments has an article, see its
Autostart
section.
GNOME#Autostart
KDE#Autostart
Xfce#Autostart
LXDE#Autostart
LXQt#Autostart
On window manager startup
Many
window managers
(and
Wayland compositors
) implement
XDG Autostart
.
If it has an article, see its
Autostart
section.
awesome#Autostart
dwm#Autostart
Fluxbox#Autostart
FVWM#Autostart
Hyprland#Autostart
i3#Autostart
IceWM#Autostart
JWM#Autostart
Labwc#Autostart
Niri#Autostart
Openbox#Autostart
PekWM#Autostart
Qtile#Autostart
Ratpoison#Autostart
River#Autostart
Sway#Autostart
AWK

Related articles
List of programming languages
AWK
is a small programming language designed for text processing. Its name is derived from the surnames of its authors:
Alfred Aho
,
Peter Weinberger
, and
Brian Kernighan
. The language is
standardized and widely available
on Unix-like systems.
Installation
On Arch, the
awk(1p)
command is provided by
gawk
, which is
installed by default
, with native Unicode support and a load of
extra
features
.
Note
gawk
is designed to be able to gain additional language features at runtime by dynamically loading the so-called
extensions
--
extensions that were bundled within
the software distribution are out-of-box to use, but the separately maintained
gawkextlib
AUR
-* plugins do require manual installation.
Alternative implementations
Like many other
core utilities
, there are several more-or-less compliant
implementations
available:
BusyBox
— The BusyBox implementation is not that well performant but has a smaller footprint suitable for memory strained environment.
https://git.busybox.net/busybox/tree/editors/awk.c
||
busybox
GoAWK
— AWK implementation in Go language.
https://github.com/benhoyt/goawk
||
goawk
AUR
nawk
— The "new" AWK as described in
The AWK Programming Language
, a.k.a. BWK AWK or the One-True-AWK, is now co-maintained by Arnold Robbins and B. W. Kernighan, featuring UTF-8 and csv support.
https://awk.dev/
||
nawk
mawk
— A rather performant AWK implementation.
https://invisible-island.net/mawk/
||
mawk
AUR
Troubleshooting
Assignment to
ARGC
variable via
-v
option does not preserve in runtime
Although undocumented,
it appears
that many implementations will reset the
ARGC
variable internally after processing the variable assignment of
-v
options specified on command line. Therefore, to get desired value of
ARGC
variable in runtime (e.g.
BEGIN
code blocks), it's required to set the variable in code block directly:
BEGIN {
  ARGC=1;
  ...
}
Note
An upcoming update to POSIX has
documented this issue specifically
.
See also
nawk(1)
: a refcard-style man page of
nawk
The GNU AWK manual
: both a comprehensive tutorial and a canonical reference text on
gawk(1)
Alpine Linux's community wiki article on AWK
: has some notes on implementation difference between BusyBox and other AWKs
AWK tech notes
: language gotchas and design difference compared to other modern programming languages
Idiomatic AWK
: how concise an AWK program could be
AYA NEO 2021

This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing an Accessibility and Firmware section. (Discuss in
Talk:AYA NEO 2021
)
Hardware
PCI/USB ID
Working?
Display
Yes
Touchscreen
Yes
GPU
1002:0123
Yes
GPU (Pro)
1002:1636
Yes
Wi-Fi
14c3:7961
Yes
Wi-Fi (Pro)
14c3:0608
Yes
Bluetooth
0e8d:7961
Yes
Bluetooth (Pro)
0e8d:0608
Yes
Audio
8086:9dc8
Yes
Gamepad
045e:028e
Yes
Gyro/IMU
10EC:5280
Yes
Display
The integrated 800x1280 display is a portrait tablet display that is displayed in a landscape orientation without software correction.
Controller
The built-in controller registers as an Xbox360 controller. A linear vibration motor exists and is functional using the xpad_noone driver.
Bluetooth
Bluetooth on the non-Pro is working as of 5.15.12 (possibly earlier) for the AMD RZ608, which is a re-badged Mediatek MT7921E. The Pro model uses the Mediatek MT7921K and requires the workaround posted in the Wireless section below to work.
Wireless
The Wi-Fi module is the AMD RZ608, which is a re-badged Mediatek MT7921E for the regular model, and a Mediatek MT7921K for the pro model. The Wireless module does not handle power state changes well and will fail to return to operation after system resume. the
rz608-fix-git
AUR
package resolves this issue by unloading the kernel driver at sleep and reloading it at resume.
Function keys
This article or section needs expansion.
Reason:
List all the physical keys and their effects if any, e.g. see
Steam Deck#Function keys
. (Discuss in
Talk:AYA NEO 2021
)
The front of the device has 4 special keys on the bottom right that are mapped through an additional USB keyboard device:
Key
Visible?
1
Marked?
2
Effect
WIN
Yes
Yes
Inputs
Super
ESC
Yes
Yes
Inputs
Esc
KB
Yes
Yes
Inputs
Ctrl+Super+O
(Opens the virtual keyboard on Windows)
3
TM
Yes
Yes
Inputs
Ctrl+Alt+Del
(Opens the Task Manager on Windows)
4
The key is visible to
xev
and similar tools
The physical key has a symbol on it, which describes its function
KB key cannot be mapped to toggling the OSK on
Gnome Shell
. A
feature request
has been opened for it.
Prompts to shutdown the machine on
Gnome Shell
It is possible to remap the keys to button codes using
python-evdev
.
See also
Product page:
https://www.ayaneo.com/goods/6781273145498
Hardware probe of AYA NEO 2021:
https://linux-hardware.org/?probe=e87776a955
Hardware probe of AYA NEO Founder's Edition:
https://linux-hardware.org/?computer=2c83d8545bd7
Back In Time

From
upstream
:
Back In Time is an easy-to-use tool to backup files and folders. It runs on GNU/Linux (not on Windows or OS X/macOS) and provides a command line tool
backintime
and a GUI
backintime-qt
both written in Python3. It uses
rsync
to take manual or scheduled snapshots and stores them locally or remotely through SSH. Each snapshot is in its own folder with copies of the original files, but unchanged files are hard-linked between snapshots to save storage space. It was inspired by FlyBack.
Installation
Install
backintime
AUR
for the GUI version or
backintime-cli
AUR
for a CLI-only version.
Usage
For the graphical interface (GUI) run
backintime-qt
. For the command line interface (CLI), run
backintime
.
For the GUI version two starters are installed in your desktop environment:
Back In Time
and
Back In Time (root)
. The latter will
start the GUI with root privileges
(using
pkexec(1)
) and can be used to backup files other than the current user's own files in
/home
.
Enable scheduling
The scheduling of backup jobs is realized using
cron
.
By default, no service are
automatically enabled
: you will need to
enable
the
cron service
relevant to the cron provider you have installed.
See also
Upstream project
at Microsoft GitHub
Known Problems and Workarounds
(README.md)
FAQ
Errors & Solutions
Mailing list
bit-dev
User manual
badwolf

Badwolf
is a minimal, privacy oriented,
WebKitGTK browser
for Linux and BSD on x86(-64) and arm7&8 running on
X11
and
Wayland
. Badwolf features toggles for JavaScript and image loading, a tabbed browsing experience in a mouse-driven user interface. It has a low memory footprint and small binary size.
Installation
Install
badwolf
AUR
.
Video streaming
For video streaming to work make sure to install
gst-plugins-good
,
gst-plugins-bad
and
gst-plugins-ugly
.
Note
Badwolf does not support DRM, so streaming websites that use it will not work.
Configuration
Interface
The interface can be modified using css located at
$XDG_DATA_HOME/badwolf/interface.css
for a per-user configuration or in
/usr/local/share/badwolf/interface.css
for a system-wide configuration.
For a list if configurable properties see
the gtk manual
.
Extensions
Badwolf does not support JavaScript user extensions, but it does support WebKit extensions such as
wyebadblock
.
Keybindings
The default keybings can be changed in the
keybindings.c
file. Custom keybinds can also be added that run arbitrary C code.
config.h
Certain properties can be changed in the
config.c
file. Further documentation can be found in the file itself.
Homepage
The default homepage (for new tabs and fresh browser sessions) can be set in
uri.c
.
Note
Remember to include the full URI for your homepage, including its scheme, e.g
https://
or
file://
.
Bioperl

This article or section is out of date.
Reason:
This page is largely outdated/deprecated;
perl-bioperl
AUR
just works. (Discuss in
Talk:Bioperl
)
BioPerl
is a set of scripts in the Perl programming language to aid researchers in
computational biology
and
bioinformatics
.
Installation
Install
the
perl-bioperl
AUR
package.
Configuration
If you installed from the AUR to the
/usr
path (default), the path to bioperl should be added to the @INC array of perl: add
PERL5LIB=$PERL5LIB:/usr/share/perl5/site_perl/5.10.0
as an
environment variable
.
Note
Please take a look at folder
/usr/share/perl5/site_perl/
to see if the version is the same, the folder 5.10.0 (or a newer version) should contain a folder named BIO. If nor 5.10.0 neither other version is found, look for the Bio folder in
vendor_perl
or any other perl5 folder where the Bio folder may have been installed, add the path where the Bio folder is to the bash file.
It is adviced to install extra modules from CPAN, to avoid having dependencies errors.
Upgrade CPAN
# perl -MCPAN -e shell
install Bundle::CPAN
q
Install/upgrade
Module::Build
, and make it your preferred installer
# cpan
install Module::Build
o conf prefer_installer MB
o conf commit
q
Extras
The package Bioperl-run, which provides wrapper modules around many common bioinformatics applications and tools, is not installed by default.
# cpan
d /bioperl/
Which would return something like this:
Distribution    BIRNEY/bioperl-1.2.2.tar.gz
Distribution    BIRNEY/bioperl-1.2.3.tar.gz
Distribution    BIRNEY/bioperl-1.2.tar.gz
Distribution    BIRNEY/bioperl-1.4.tar.gz
Distribution    BIRNEY/bioperl-db-0.1.tar.gz
Distribution    BIRNEY/bioperl-ext-1.4.tar.gz
Distribution    BIRNEY/bioperl-gui-0.7.tar.gz
Distribution    BIRNEY/bioperl-run-1.4.tar.gz
Distribution    BOZO/Fry-Lib-BioPerl-0.15.tar.gz
Distribution    CJFIELDS/BioPerl-1.6.0.tar.gz
Distribution    CJFIELDS/BioPerl-1.6.1.tar.gz
Distribution    CJFIELDS/BioPerl-db-1.6.0.tar.gz
Distribution    CJFIELDS/BioPerl-network-1.6.0.tar.gz
Distribution    CJFIELDS/BioPerl-run-1.6.1.tar.gz
Distribution    CRAFFI/Bundle-BioPerl-2.1.8.tar.gz
15 items found
Then simply do (check the version compatibility):
install CJFIELDS/BioPerl-run-1.6.1.tar.gz
q
Troubleshooting
If you run into trouble while compiling your perl scripts, with an error like
Can't locate (Name of the Module) in @INC
, install the missing modules like this:
# cpan
install Module::Name
q
See also
https://bioperl.org/INSTALL.html
BitNet-git

BitNet-git (AUR) Wiki
bitnet-git
provides the official inference framework for 1-bit Large Language Models (LLMs), based on
Microsoft's bitnet.cpp
. It is optimized for fast and energy-efficient inference on CPUs and GPUs using 1.58-bit quantization.
Installation
The easiest way to install is using an
AUR helper
like
paru
or
yay
:
$ paru -S bitnet-git
Alternatively, you can build manually using
makepkg
:
$ git clone
https://aur.archlinux.org/bitnet-git.git
$ cd bitnet-git
$ makepkg -si
Hardware Optimization
The package automatically detects your architecture and uses the most appropriate kernels:
x86_64:
Uses
TL2
(optimized Lookup Table kernel) for maximum performance.
aarch64:
Uses
TL1
(optimized for ARMv8.2+).
Global Models Management
To streamline your workflow, we recommend setting up a global models directory and a shell helper. This allows you to run models by name without typing full paths or URIs.
Create the Models Directory
Create a standard directory in your home folder:
$ mkdir -p ~/.local/share/bitnet/models
Configure Your Shell
Add the following to your
~/.bashrc
or
~/.zshrc
:
# BitNet Models Directory
export BITNET_MODELS_DIR="$HOME/.local/share/bitnet/models"
# BitNet Runner Helper
bitnet-run() {
   if [ -z "$1" ]; then
       echo "Usage: bitnet-run <model_filename> [additional_args]"
       return 1
   fi
   local model_name="$1"
   shift
   llama-cli -m "$BITNET_MODELS_DIR/$model_name" "$@"
   }
Reload your shell: `source ~/.bashrc` (or `~/.zshrc`).
Download a Model
Download a recommended model directly into your new directory:
# Download the BitNet 2B model
wget -P "$BITNET_MODELS_DIR"
https://huggingface.co/microsoft/BitNet-b1.58-2B-4T-gguf/resolve/main/ggml-model-i2_s.gguf
Run Inference with Ease
Now you can run the model simply by referencing its filename:
bitnet-run ggml-model-i2_s.gguf -p "What are the benefits of 1-bit LLMs?" -cnv
Options
-m <path>:
Path to the GGUF model file.
-p <"prompt">:
Initial prompt for the model.
-t <threads>:
Number of CPU threads to use (e.g.,
-t 4
).
-temp <value>:
Control randomness (e.g.,
-temp 0.7
).
-cnv:
Enable conversation/chat mode.
Serving the Model via API
You can also run a local API server compatible with OpenAI's API:
bitnet-run -m ggml-model-i2_s.gguf --port 8080
Then you can access it via
http://localhost:8080
.
Recommended Models (x86_64)
Model
Parameters
Size (GGUF)
Description
bitnet_b1_58-large
0.7B
~150 MB
Blazing fast, great for testing.
BitNet-b1.58-2B-4T
2.4B
~500 MB
Best overall balance for daily use.
bitnet_b1_58-3B
3.3B
~700 MB
High performance, slightly more capable.
Llama3-8B-1.58
8.0B
~1.6 GB
High quality, requires more RAM.
Troubleshooting
Build Failures:
Ensure you have
base-devel
,
cmake
, and
clang
installed.
Model Errors:
Verify the model file is a valid GGUF and resides in your
$BITNET_MODELS_DIR
.
Blackbox

Related articles
Window manager
Blackbox
is a lightweight
stacking window manager
. It was last updated November 3, 2005 with no plans for future releases, however its design has inspired many forks and spiritual successors.
An updated version of the original CVS source plus collected patches is maintained at
BlackBox GitHub
and is used by the Arch package.
Installation
Install
the
blackbox
package.
Starting
Run
blackbox
with
xinit
.
Utilities
There are several additional packages to enhance the functionality of Blackbox (though they may also work well with other minimalist window managers):
bbrun
AUR
a run dialog for starting programs
bbpager
a pager
bbkeys
AUR
configures keyboard shortcuts, including support for switching windows using
Alt+Tab
See also
Blackbox Wiki
- Official documentation
HOWTO: A Blackbox Guide
- Ubuntu forums
Bmpanel

BMPanel
(
BitMap Panel
) is a lightweight, NETWM compliant panel for X11 Window System, which contains a desktop switcher, taskbar, system tray and clock. The application is inspired by simplicity of fspanel. BMPanel has a modern look and feel, while keeping itself tiny and small.
Installation
Install
bmpanel2
AUR
.
Themes
Further information about available themes can be found
here
. Here you can find more themes. Extract them to
~/.local/share/bmpanel2/themes
(respectively
~/.bmpanel/themes
for bmpanel legacy). Altering design of the theme can be done by adapting the
~/.local/share/bmpanel2/themes/
theme name
/theme
file (respectively
~/.bmpanel/themes/
theme name
/theme
). More information on this can be found
here
.
Starting bmpanel
To start BMPanel automatically after login, add the following to your
xinitrc
:
~/.xinitrc
bmpanel2 --theme=
theme_name
&
Launchbar
BMPanel2 features a simple launchbar that you may configure manually.
In order for this to work, the theme must have the launchbar enabled. Edit the theme file and make sure that it has something to this extent (the xx's represent icon size):
launchbar
	icon_size xx xx
Next, you must edit the configuration file for bmpanel2, usually located at
~/.config/bmpanel2/bmpanel2rc
. For each entry, you must provide the command to execute along with an icon.
Note
Icons must be png files
An example configuration is given below:
theme xsocam_dark

launchbar
	exec urxvt
		icon /usr/share/pixmaps/gnome-term.png
	exec firefox
		icon /usr/share/pixmaps/firefox.png
	exec blender
		icon /usr/share/pixmaps/blender.png
	exec urxvt -e htop
		icon /usr/share/pixmaps/htop.png
	exec gvim
		icon /usr/share/pixmaps/gvim.png
Borgmatic

borgmatic
is a Python-based wrapper script for
Borg backup
, designed to simplify and automate backups. It aims to provide an easy-to-use and flexible solution for creating backups using
borgbackup
.
Installation
Install
the
borgmatic
package.
Configuration
By default no configuration file is installed. To create one you can use the command
borgmatic config generate
to generate one:
# borgmatic config generate
Generating a configuration file at: /etc/borgmatic/config.yaml

This includes all available configuration options with example values, the few
required options as indicated. Please edit the file to suit your needs. 

If you ever need help:
https://torsion.org/borgmatic/#issues
summary:
Generate successful
The configuration file for
borgmatic
is located at one of the following
/etc/borgmatic/config.yaml
(or drop-ins in
/etc/borgmatic.d
)
~/.config/borgmatic/config.yaml
(or drop-ins in
~/.config/borgmatic.d
)
The configuration file allows you to define backup repositories, backup sources, retention policies, and other parameters.
Usage
Once you have configured
borgmatic
to your liking, you can run it using the following command:
# borgmatic --verbosity 2
This will start the backup process using the settings specified in your configuration file.
borgmatic
provides various options and flags that you can use to customize your backup behavior.
Borgmatic also provides systemd system and user units and timers.
See also
How to snapshot your filesystems
Bottles

Related articles
Wine
Proton
Bottles is a graphical
Wine
prefix manager written in Python using the GTK framework. It can be used to easily create and manage Wine prefixes as well as automatically handling the installation of various Wine runners and Windows dependencies.
Installation
Note
The Bottles developers strongly
recommend
that users install Bottles through
Flatpak
as it is used for sandboxing.
Install Bottles from Flatpak using the following command:
$ flatpak install com.usebottles.bottles
Alternatively, Bottles is also available as
bottles
AUR
and
bottles-git
AUR
.
Usage
Bottles has an extensive documentation available. Check
https://docs.usebottles.com/getting-started/first-run
for first steps.
See also
Project homepage
Project Github repository
Project documentation
Bridge with netctl

Related articles
Network bridge
netctl
This article or section is a candidate for merging with
Network bridge
.
Notes:
I suggest to move the netctl-specific parts of this article into a subsection of "Network bridge" (Discuss in
Talk:Bridge with netctl
)
Make sure
netctl
is installed.
Copy
/etc/netctl/examples/bridge
to
/etc/netctl/bridge
.
In this example, we create a bridge called
br0
which has real Ethernet adapter
eth0
and (optionally) a tap device
tap0
connected to it. Of course, edit
br0
,
eth0
and
tap0
to your needs.
/etc/netctl/bridge
Description="Example Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(eth0 tap0)
IP=dhcp
This example creates a statically assigned bridge called
br0
which has real Ethernet adapter
eth0
connected to it. Edit
Interface
,
BindsToInterfaces
,
MACAddress
,
Address
, and
Gateway
according to your needs.
/etc/netctl/bridge
Description="Example Bridge connection"
Interface=br0
Connection=bridge
BindsToInterfaces=(eth0)
MACAddress='12:34:56:78:90'
IP=static
Address='192.168.10.20/24'
Gateway='192.168.10.200'
## Ignore (R)STP and immediately activate the bridge
SkipForwardingDelay=yes
Tip
If you are using static IP, see
netctl(1)
, and also edit
/etc/resolv.conf
if necessary.
You can bridge any combination of network devices editing
BindsToInterfaces
option.
If any of the bridged devices (e.g.
eth0
,
tap0
) had
dhcpcd
enabled,
stop and disable
the
dhcpcd@eth0.service
daemon. Or set
IP=no
to the netctl profiles.
Finally,
start and enable
your
/etc/netctl/bridge
.
Brutal Doom

Related articles
List of games
Gaming
Doom
Brutal Doom
is a gore-themed gameplay mod for
Doom
that was created in 2010 by Marcos Abenante (A.K.A.
Sergeant_Mark_IV
). It is compatible with Doom, The Ultimate Doom, Doom II: Hell on Earth, Final Doom, and other custom WADs. Brutal Doom won the first ever Cacoward in 2011 for Best Gameplay Mod and a MOTY award for creativity by Mod DB in 2012.
The mod adds features many new graphical effects like additional blood (blood gets splattered on walls and ceilings if enemies or the player get hit), the ability to blow off body parts with strong weapons like the shotgun, new death animations, fake flares and 3D blood effects for OpenGL, and the addition of special illuminating effects on projectiles and pick ups. It is compatible with the source ports ZDoom, GZDoom, Skulltag, and Zandronum.
While primarily a gore mod, it goes further and alters the gameplay by changing the weapons, monster AI, sounds, graphics, and combat. One such change is the increased difficulty, making enemy behavior much faster, unpredictable and dangerous (many attacks do double the normal damage to the player) and altering their attacks. It makes the animations smoother and gives the player new abilities.
[1]
[2]
Installation
Install
the
brutal-doom
AUR
package, which requires having two
gzdoom.ini
files. Alternatively
gzdoom-git
AUR
can be modified directly as shown below. However, if you want to be able to run both
gzdoom
and
brutal-doom
separately in order to play both versions, then you would need the
brutal-doom
package.
Brutal Doom Mod
Acquire a registered IWAD (Internal WAD) file for
DOOM
:
doom.wad
,
doom2.wad
,
doomu.wad
,
tnt.wad
, or
plutonia.wad
.
freedoom1.wad
and
freedoom2.wad
from
freedoom
AUR
are also compatible.
Download the
.zip
file containing the
.pk3
for the latest
Brutal Doom
. You may need to install
unzip
.
Optionally you can acquire some
metal music
for the gameplay.
Place all the
.wad
and
.pk3
files in a created folder such as
/usr/share/games/brutal-doom
.
Configuration
Change
~/.config/gzdoom/gzdoom.ini
as follows (the
Search.Directories
mentioned are the only directories needed):
[IWADSearch.Directories]
Path=/usr/share/games/brutal-doom
...

[FileSearch.Directories]
Path=/usr/share/games/brutal-doom
Path=/usr/share/gzdoom
...

[Global.Autoload]
Path=/usr/share/games/brutal-doom/
modfile
.pk3
Path=/usr/share/games/brutal-doom/DoomMetalVol4.wad
...

vid_defheight=
<height in pixels>
vid_defwidth=
<width in pixels>
modfile
is the downloaded
.pk3
file.
<height in pixels>
and
<width in pixels>
should be roughly the size of your screen resolution or preferred size.
The folder permissions for the created folder and files (all the files inside the
brutal-doom
directory):
drwxr-xr-x root root brutal-doom
-rw-r--r-- root root
<files in directory>
To start the program:
$ gzdoom
See Also
Brutal Doom on Wikia
Brutal Doom on Doom Wiki
IWAD files on ZDoom Wiki
Btcpayserver

BTCPayServer is an open source payment processor for crypto currencies licensed under the MIT license. While Bitcoin is supported natively, other crypto currencies are supported via extensions. The software is written in C# and is accessed over the web browser. The core idea of the project is to give merchants full control over payments without a middleman.
Installation
Install
the package
btcpayserver
AUR
.
Configuration
Bitcoin
BTCPayServer communicates with the Bitcoin node via RPC. For this, those values need to be set. Edit
/etc/bitcoin/bitcoin.conf
and set
rpcuser=
and
rpcpassword=
. Moreover, a whitelist must be defined with
whitelist=127.0.0.1
.
Note
Bitcoin requires several hundreds GiB of disk space. You may want to run a pruned node. This is done by uncommenting
prune=550
in
/etc/bitcoin/bitcoin.conf
.
Optional configuration
Usage of the lightning network is optional. Information on the lightning connection string can be found
here
. Decide for one lightning implementation.
LND
Execute
lnd
as a private key needs to be generated. Then, execute
lncli create
and create your needed wallet or restore an existing one. Edit
/etc/bitcoin/bitcoin.conf
and add the following settings.
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
Usage
Start/enable
bitcoind.service
Lightning
Core Lightning
lightningd --bitcoin-rpcpassword "${bitcoin_rpc_password}" --bitcoin-rpcuser "${USER}" --log-level info --network bitcoin --rpc-file "${XDG_STATE_HOME}"/lightning/lightning-rpc
LND
lnd --bitcoin.active --bitcoin.mainnet --bitcoin.node bitcoind --bitcoind.rpcpass "${bitcoin_rpc_password}" --bitcoind.rpcuser "${USER}" --bitcoind.zmqpubrawblock tcp://127.0.0.1:28332 --bitcoind.zmqpubrawtx tcp://127.0.0.1:28333 --externalip localhost
lncli unlock
NBXplorer
nbxplorer --btcrpcpassword "${bitcoin_rpc_password}" --btcrpcuser "${USER}" -d "${XDG_DATA_HOME}"/nbxplorer/ --postgres "User ID=\"${USER}\";Password=\"${postgresql_password}\";Host=localhost;Port=5432;Database=nbxplorer;"
BTCPayServer
When running no lightning node, just skip the option
--btclightning
.
With Core Lightning
btcpayserver --btclightning type=clightning;unix://"${XDG_STATE_HOME}"/lightning/lightning-rpc -d "${XDG_DATA_HOME}"/btcpayserver/ --explorerpostgres "User ID=\"${USER}\";Password=\"${postgresql_password}\";Host=localhost;Port=5432;Database=nbxplorer;\" --sqlitefile btcpayserver.db
With LND
btcpayserver --btclightning type=lnd-rest;server=
https://127.0.0.1:8080/;macaroonfilepath=/home/
"${USER}"/.lnd/data/chain/bitcoin/mainnet/admin.macaroon;certthumbprint="$(openssl x509 -noout -fingerprint -sha256 -in ~/.lnd/tls.cert | sed -e "s/.*=//;s/://g")" -d "${XDG_DATA_HOME}\"/btcpayserver/ --explorerpostgres "UserID=\"${USER}\";Password=${postgresql_password};Host=localhost;Port=5432;Database=nbxplorer;\" --sqlitefile btcpayserver.db
Bugzilla

Related articles
LAMP
MariaDB
Sqlite
Bugzilla
is server software designed to help you manage software development.
Installation
Install
the
bugzilla
package.
Configuration
Module dependencies
Perform a module check first:
# cd /srv/http/bugzilla
# ./checksetup.pl --check-modules
Check the output for which modules are required and which are optional. The shell commands to install missing modules will also be shown.
Install all required and optional modules using:
# perl install-module.pl --all
Final module check
What follows is some more configuration to let BugZilla connect to
MySQL
and create initial tables in it.
Run
checksetup.pl
again, this time without the
–check-modules
switch:
# ./checksetup.pl
A file called
localconfig
is generated if everything is okay. Then, modify some of the file's parameters:
$webservergroup = 'http';
$db_driver = 'DATABASE_TO_USE_HERE';
$db_name = 'DATABASE_NAME_HERE';
$db_user = 'DATABASE_USER_HERE';
$db_pass = 'YOUR_PASSWORD_HERE';
Apache
Finally, configure
Apache HTTP Server
to run BugZilla using mod_cgi (can also be configured using
mod_perl
; refer to this for details).
First uncomment the following line in
/etc/httpd/conf/httpd.conf
:
LoadModule cgi_module modules/mod_cgi.so
Then add the following lines to
/etc/httpd/conf/httpd.conf
:
<Directory /srv/http/bugzilla>
  AddHandler cgi-script .cgi
  Options +ExecCGI
  DirectoryIndex index.cgi
  AllowOverride All
</Directory>
Now restart Apache and required modules.
Access
http://
server_domain_or_ip
/bugzilla/
using your web browser.
See also
bugzilla documentation
https://web.archive.org/web/20200111080219/http://blog.samsonis.me/2009/04/bugzilla-on-archlinux/
Bug Day

Bug Day is a day dedicated to raising awareness about our overflowing
bug tracker
. The goal of the day is to get the community involved in trying to help us eliminate as many bugs as possible.
When?
Bug Day happens whenever a Developer, Bug Wrangler or Package Maintainer gets bored.
Where?
The bugs themselves are documented on the
bug tracker
Discussion about the bugs should be taking place in
#archlinux-bugs
on
IRC
. We will try to have a few people with write access to the bugtracker active during Bug Day.
Who?
Everyone
is allowed, invited, and encouraged to participate in Bug Day.
Burp Suite

From the
official website
:
Burp Suite is an integrated platform for performing security testing of web applications. Its various tools work seamlessly together to support the entire testing process, from initial mapping and analysis of an application's attack surface, to finding and exploiting security vulnerabilities.
Installation
Install
burpsuite
AUR
or
burpsuite-pro
AUR
.
This will install Burp Suite Community (free edition) or the commercial edition (license needed).
Configuration
Burp Proxy will work out of the box with HTTP connections. For HTTPS, PortSwigger's certificate must be installed first.
Install HTTPS certificate in Firefox
Start up Burp:
$ burpsuite
Open the
Proxy > Options
. In the
Proxy Listeners
section add a new interface. Set
Interface
to
127.0.0.1:8080
and make sure the
Running
checkbox is enabled.
Navigate to
http://127.0.0.1:8080/
in Firefox, click the
CA Certificate
link at top right and save the certificate file somewhere.
In Firefox open the
Options
tab and go to
Privacy & Security > Certificates > View Certificates... > Authorities
. Click
Import
and select the file. Check the
Trust this CA to identify websites
checkbox and click
OK
.
Troubleshooting
Fix segfault during startup
The
harfbuzz
package update to 4.0.0 causes Burp to segfault during startup when used with the JRE that ships with Burp.
Use Java 18 instead of the 16 JRE that ships with Burp:
$ app_java_home=/usr/lib/jvm/java-18-openjdk ~/BurpSuitePro/BurpSuitePro
For the desktop entry change the Exec line to:
~/.local/share/applications/install4j_
<install_id>
-BurpSuitePro.desktop
Exec=env app_java_home=/usr/lib/jvm/java-18-openjdk /home/user/BurpSuitePro/BurpSuitePro %U
Fix small fonts on screens with HiDPI
Screens with high resolutions will show Burp's GUI with very small fonts when opened. To solve this, run the burp suite from the command line providing VMOptions to scale it up.
$ java -Dsun.java2d.dpiaware=true -Dsun.java2d.uiScale=2.0 -jar /usr/share/burpsuite/burpsuite.jar
Wayland support
Java has experimental support for Wayland through project
Wakefield
. This is beneficial when using HiDPI monitor with scaling.
Install
jdk-openjdk-wakefield
AUR
or
jre-openjdk-wakefield
AUR
, set
java-25-openjdk-wakefield
as the
default Java environment
then launch Burp Suite Pro using the following command, or include the Java options in the script that executes the JAR (by default
/usr/bin/burpsuite-pro
):
$ _JAVA_OPTIONS="-Dawt.toolkit.name=WLToolkit -Dsun.java2d.vulkan=True" burpsuite-pro
Alternatively, install
Xwayland
and restart your compositor. HiDPI monitors with scaling enabled will lead to blurriness.
See also
Burp Suite video tutorials
BusyBox

Related articles
mkinitcpio
init
BusyBox
provides many common UNIX utilities in a single small executable for embedded systems. The package includes runit; see
runit
for more information.
Note
Do not expect full drop-in replacement and compatibility. Certain utilities may not exist, and for those that do, there may be missing options.
Installation
Install
the
busybox
package.
Busybox commands are symbolic links to
/usr/bin/busybox
and thus take very little space. This is especially interesting for low-footprint systems.
Usage
getty
The gettys are defined in the file
/etc/inittab
. By default, getty is started on ttys 1 through 4.
In order to enable/disable gettys:
/etc/inittab
tty2::respawn:/sbin/agetty -8 -s 38400 tty2 linux
Just replace
tty2
with the tty you want getty to start on.
If you want init to ask you before starting getty, then replace
respawn
with
askfirst
.
mdev
See
Gentoo:mdev
.
runit
See
runit
.
See also
Wikipedia:ToyBox
Bus Pirate

The
Bus Pirate
is a versatile tool for communicating with various hardware.
Interfacing a new microchip can be a hassle. Breadboarding a circuit, writing code, hauling out the programmer, or maybe even prototyping a PCB. We never seem to get it right on the first try.
The Bus Pirate is a universal bus interface that talks to most chips from a PC serial terminal, eliminating a ton of early prototyping effort when working with new or unknown chips. Many serial protocols are supported at 0–5.5 volts, more can be added.
Installation
Note
All scripts will assume the device is named
/dev/buspirate
.
The drivers for the FTDI chip is included in the kernel, so it should be detected as soon as it is plugged in, and assigned to device
/dev/ttyUSB[0-9]
.
To check where it got assigned, run:
# journalctl -k
The output will contain a line that looks something like this:
# usb 1-4.4: FTDI USB Serial Device converter now attached to ttyUSB0
Rename the device with udev
It can be annoying to have to look up what
/dev/ttyUSB[0-9]
the device gets assigned, so it is a good idea to add a simple udev rule that creates the symlink from
/dev/buspirate
to
/dev/ttyUSB
X
when it is plugged in.
To figure out the current path to the bus pirate you can use the
udevadm(8)
monitor command and then plugging in the device the output should be some thing like this:
$ udevadm monitor --environment --udev
...
DEVICENAME=/dev/ttyUSB
X
DRIVER=tty
PRODUCT=403/6001/600
...
After you have plugged it in and the output is given press
Ctrl+c
to break the text stream.
Using the Product/Vendor ID
By using the Vendor/Product ID the bus pirate device can be replaced without needing to change the configuration again. To use this method, add the following lines:
/etc/udev/rules.d/98-buspirate.rules
# Bus pirate v3
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="users", MODE="0666", SYMLINK+="buspirate"
# Bus pirate v4
SUBSYSTEM=="tty", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fb00", GROUP="users", MODE="0666", SYMLINK+="buspirate"
Using the serial number
You can also do it by serial number, to do this, you will need to find out the serial number of FTDI chip on the bus pirate. This can be achieved by running the following, assuming your device is plugged in:
# udevadm info --attribute-walk -n /dev/ttyUSB
X
| sed -n '/FTDI/,/serial/p'
Now add/create the following
udev
rule:
/etc/udev/rules.d/98-buspirate.rules
SUBSYSTEM=="tty", ATTRS{serial}=="
MYSERIALNUMBER
", GROUP="users", MODE="0660", SYMLINK+="buspirate"
Load the new rule
: at this point, whenever you plug in the device, the symlink should be created.
To verify that, run the udev monitor command mentioned above and it should report some thing like this:
DEVLINKS=/dev/buspirate
Communication
To communicate with the device, you can use any of the following, to name a few:
minicom
:
# minicom -b 115200 -8 -D /dev/buspirate
screen
:
# screen /dev/buspirate 115200 8N1
picocom
:
# picocom -b 115200 /dev/buspirate
cu
from the
uucp
package:
# cu -l /dev/buspirate
Type
?
and press
Enter
and the device should reply with a list of possible commands.
C

Related articles
List of programming languages
The Linux
kernel
and the
GNU
userland are written primarily in
C
.
Arch Linux
uses the
GNU C Library
(
glibc
) as the C standard library; it is a dependency of the
base
meta package
.
You can use the
GNU toolchain
or the
LLVM toolchain
to develop software in C,
C++
or
Objective-C
.
Useful tools
Also see
List of applications/Utilities#Debuggers
.
distcc
— Distributed compiling GCC front-end.
https://github.com/distcc/distcc
||
distcc
rr
— Lightweight recording and deterministic debugging tool for C/C++, uses
GDB
.
https://rr-project.org/
||
rr
AUR
Static code analyzers
Cppcheck
— A tool for static C/C++ code analysis.
https://cppcheck.sourceforge.net/
||
cppcheck
Clang
has the
scan-build
static analyzer.
Splint
— A tool for statically checking C programs for security vulnerabilities and coding mistakes.
https://repo.or.cz/splint-patched.git
||
splint
ikos
— Static analyzer for C and C++ developed by NASA
https://github.com/NASA-SW-VnV/ikos
||
ikos
AUR
Alternative compilers
TCC
— Tiny C Compiler, claims to be faster than GCC.
https://bellard.org/tcc/
||
tcc
ACK
— Amsterdam Compiler Kit.
https://tack.sourceforge.net/
||
ack-git
AUR
SDCC
— Retargettable ANSI C compiler.
https://sdcc.sourceforge.net/
||
sdcc
See also
Wikipedia:List of compilers#C compilers
.
Alternative libc implementations
dietlibc
— a libc optimized for small size
https://www.fefe.de/dietlibc/
[
dead link
2025-08-15—SSL error]
||
dietlibc
AUR
musl
— Lightweight implementation of C standard library.
https://musl.libc.org/
||
musl
Libraries
FFmpeg
- includes libav, the audio and video library (not to be confused with the FFmpeg fork of the same name).
GLib
— Low-level system library by
GNOME
, includes
GObject
and
GIO
.
https://wiki.gnome.org/Projects/GLib
||
glib2
GStreamer
– pipeline-based multimedia framework
Libcvec
— An open-source
C
library for
std::vector
-like containers like in
C++
.
https://tvoygit.ru/vi_is_lonely/libcvec
||
libcvec
AUR
See also:
Archiving and compression#Compression libraries
Wikipedia:Category:C (programming language) libraries
A list of open source C libraries
See also
man pages
in section 2 for system calls
man pages
in section 3 for library functions
GCC and Make – Compiling, Linking and Building C/C++ Applications
SEI CERT C Coding Standard
#C IRC channel
Caddy

Caddy
is a HTTP/3 capable
web server
with automatic HTTPS.
Installation
Install
the
caddy
package.
Plugins
If you need more than the base version of caddy, you can use
xcaddy-bin
AUR
to customize your caddy server build. This is useful if you need the additional plugins for DNS challenge, etc. 
Alternatively, if a pre-built package, with the plugins you require, is already available you may choose to install those from
AUR
, for example
caddy-cloudflare
AUR
.
For a custom caddy server build you can use xcaddy to build caddy with the necessary plugin modules:
$ xcaddy build [<caddy_version>]
   [--output <file>]
   [--with <module[@version][=replacement]>...]
For more information, see the
xcaddy repository
.
Configuration
Caddy 2 supports various configuration formats, see
config adapters
(caddyfile,
nginx
, json, yaml, toml, among others).
Most commonly, Caddy is configured using a plain text file called
Caddyfile
. The
Caddyfile
starts with (an optional
global options block
and) an address of the site to be served, and is followed by a number of directives.
A simple
Caddyfile
hosting the site at
localhost:2020
:
{
  http_port 2020
}

localhost:2020
file_server
Usage
$ caddy help
$ caddy help run
Caddy can be run by any user from the page's directory, and the
Caddyfile
should be in the same directory:
$ caddy run
Alternatively you may specify a custom
Caddyfile
:
$ caddy run --config ../path/to/Caddyfile
Troubleshooting
Certificate error
If you are facing any issues related to SSL certificates (especially on non-public domains), it is probably because the running caddy instance does not have permission to add the certificate to the system's trust store. This seems to be the case when
caddy.service
is used to autostart caddy.
To fix this, run the following as root. You only have to run this once in a very long time (lifetime of the root certificate).
# XDG_DATA_HOME=/var/lib caddy trust
If you are using admin API through socket use this instead :
# XDG_DATA_HOME=/var/lib caddy trust --address unix//run/caddy/admin.socket
See also
Caddy Official Website
Caddy User Guide
Caddyfile documentation
Cagebreak

Related articles
Wayland#Compositors
Window manager
Ratpoison
Stumpwm
Cagebreak
is a manually tiling compositor for
Wayland
, based on
cage
and inspired by
ratpoison
, which is easily controlled through the keyboard and a UNIX domain socket.
Installation
Install
cagebreak
AUR
or
cagebreak-bin
AUR
. 
Alternatively, download the
release tarball
or clone the
repository
.
Optional dependencies
wl-clipboard
for copy/paste capabilities
xorg-xwayland
for allowing
Xorg
applications to run under cagebreak
Configuration
The general configuration for cagebreak is located in
$XDG_CONFIG_PATH/cagebreak/config
. This defaults to
~/.config/cagebreak/config
.
Read
cagebreak-config(5)
for detailed information. Note that you can also add configuration by using
#Interaction through socket
.
An example configuration file may be found on
GitHub
.
Usage
Start
cagebreak
like any other binary.
Getting started
The following is an example of how to install and use cagebreak with the configuration file provided on
GitHub
.
Follow
#Installation
.
Copy the example configuration from
GitHub
to
$XDG_CONFIG_PATH/cagebreak/config
. Documentation is provided in
cagebreak-config(5)
.
Install
xterm
or replace
xterm
with your preferred terminal emulator in the configuration file.
Run
XKB_DEFAULT_LAYOUT=us cagebreak
or
autostart
it to run cagebreak on login (see
#Keyboard layout
for details).
Cagebreak should start up and display the terminal emulator you specified above. Press
C-t
t
to open a new terminal or
C-t
S
to split the screen. You can also use
Alt-
n
to switch to the workspace
n
. For a full list of available keybindings, read the configuration file and
cagebreak-config(5)
.
If you wish, you may also interact with cagebreak using the UNIX domain socket. See
#Interaction through socket
for further information.
Also, please file any bugs you may find:
GitHub issue tracker
or via email as per
the SECURITY.md
for cagebreak
AUR comments for the
cagebreak-bin
AUR
and
cagebreak
AUR
PKGBUILDs
Keyboard layout
Set the environment variable
XKB_DEFAULT_LAYOUT
to the desired keyboard layout. See
cagebreak(1) § ENVIRONMENT
for further information.
Interaction through socket
If cagebreak is invoked with the
-e
option, cagebreak opens a UNIX domain socket through which interaction with the compositor is possible
at run-time. The path to this socket is stored in the
CAGEBREAK_SOCKET
environment variable.
For example,
openbsd-netcat
may be invoked with:
$ nc -U $CAGEBREAK_SOCKET
to send cagebreak any configuration while it is running. The syntax is identical to the syntax of the configuration file.
Add the
--bs
(bad security) option, if you want to see the names of views over the socket (please consider the security implications on your local system).
See also
GitHub
PKGBUILD on GitHub
FAQ on GitHub
Cardano

Cardano
is an open-source blockchain platform based on proof-of-stake. Its flagship cryptocurrency is
Ada
.
Running a node
Install
cardano-node
AUR
or
cardano-node-bin
AUR
, which will also install
cardano-node.service
which can then be
started
.
By default, the logging is quite verbose. If you would like to tune that down, find the appropriate configuration file (likely
mainnet-config.json
under
/var/lib/cardano-node/config
and make changes like:
"TracingVerbosity": "MinimalVerbosity",
"minSeverity": "Warning",
Using a wallet
There are several
wallets
that support Ada. Not mentioned on the site is the CLI tool,
cardano-wallet
.
cardano-wallet
Install
either
cardano-wallet
AUR
or
cardano-wallet-bin
AUR
. The latter will also install a systemd service, so you can
start
cardano-wallet.service
(after also starting the node).
Again, the default logging is quite verbose, and also the wallet will simply stay in memory by default. If you wish to tune down the logging, and write the wallet to disk,
edit
the systemd service file:
cardano-wallet.service
[Unit]
Description=Cardano wallet
Requires=network.target

[Service]
Type=simple
EnvironmentFile=/etc/conf.d/cardano-node
ExecStart=cardano-wallet serve --mainnet \
    --log-level WARNING \
    --database /path/to/your/wallet \
    --node-socket $SOCKET_PATH
KillSignal=SIGINT
Restart=always
RestartSec=60
User=cardano
TimeoutStopSec=90

[Install]
WantedBy=multi-user.target