hannah-eee/arch-wiki-docs huggingface dataset:
SABnzbd

SABnzbd is an open-source binary newsreader written in Python.
From
sabnzbd.org
:
It's totally free, incredibly easy to use, and works practically everywhere. SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction.
Installation
Install
sabnzbd
AUR
or
sabnzbd-git
AUR
.
SSL Support
Install
python-pyopenssl
to enable SSL support for news servers:
Transmission of data from the server to the NNTP client is encrypted, protecting your privacy
Decreasing the chances of throttling NNTP traffic done by the ISP.
Archive unpacking
Install
7zip
and
unzip
to allow unpacking of archives.
Usage
SABnzbd is able to run globally (settings apply to all users) and locally (per user settings). The way of setting up SABnzbd depends on the way it is intended to be used. A local configuration may prove more useful on a desktop system when used by several people simultaneously.
Note
Both
sabnzbd
AUR
and
sabnzbd-git
AUR
provide the
sabnzbd.service
systemd
unit, create the
user
and
user group
sabnzbd
, and use
/var/lib/sabnzbd/sabnzbd.ini
for configuration.
If SABnzbd is started for the first time, the webinterface will present a setup wizard for configuring UI language and a single news server.
Further configuration can be done from within the UI (adding additional servers, setting folder paths etc.) or by editing
sabnzbd.ini
.
Global usage
Start/enable
sabnzbd.service
.
Add users to the
sabnzbd
user group
to allow read/write access to SABnzbd files.
Running as a user
Alternatively,
enable
and
start
the
sabnzbd@
myuser
.service
to run SABnzbd under the preferred user.
Stopping SABnzbd
SABnzbd can be easily shutdown in the web-interface or the
systemd
sabnzbd.service
unit.
It is also possible to shutdown a running (remote) SABnzbd client using the provided API:
$ curl "http(s)://host:port/sabnzbd/api?mode=shutdown&apikey=API-key"
Accessing the web-interface
After starting SABnzbd, access the web-interface by browsing to
http://127.0.0.1:8080
.
Tip
SABnzbd can only be accessed on the running computer. Change
host = 127.0.0.1
in
/var/lib/sabnzbd/sabnzbd.ini
(or
~/.sabnzbd.ini/sabnzbd.ini
when running as user) to
host = 0.0.0.0
(or the host IP-address) to allow access from another computer.
SABnzbd listens on port
8080
. Change
port = 8080
in
/var/lib/sabnzbd/sabnzbd.ini
to the preferred port.
See also
SABnzbd homepage
SABnzbd wiki
Samsung ATIV Book 9 Lite NP905S3G-K02

This article or section is a candidate for merging with
Laptop/Samsung
.
Notes:
Nothing here that can't be summed in the table. (Discuss in
Talk:Samsung ATIV Book 9 Lite NP905S3G-K02
)
Hardware
PCI/USB ID
Working?
Touchpad
Yes
Keyboard
Yes
GPU
1002:983d
Yes
Webcam
2232:1054
Untested
Ethernet
10ec:8168
Yes
Bluetooth
0cf3:3004
Untested
Audio
1002:9840
Untested
Wi-Fi
168c:0036
Untested
This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing a Firmware, Accessibility and "Function keys" section. (Discuss in
Talk:Samsung ATIV Book 9 Lite NP905S3G-K02
)
Installation
Set the firmware to EFI OS and deactivate
Secure Boot
. If GRUB UEFI will not be loaded after installation and configuration, then the GRUB EFI executable might not at the right location. In this case, the GRUB EFI executable can be moved to the right location on the EFI system partition as described in
GRUB#Default/fallback boot path
.
Samsung ATIV Smart PC Pro XE700T1C

This article or section is a candidate for merging with
Laptop/Samsung#Model list
.
Notes:
Only has an ancient and likely now irrelevant advice about the backlight. (Discuss in
Talk:Samsung ATIV Smart PC Pro XE700T1C
)
This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing function keys table, accessibility section (Discuss in
Talk:Samsung ATIV Smart PC Pro XE700T1C
)
This article or section is out of date.
Reason:
This page is ancient (Discuss in
Talk:Laptop#Old laptop pages
)
Hardware
PCI/USB ID
Working?
Video
8086:0166
Yes
Front camera
2232:1036
No
Rear camera
2232:1034
Yes
Bluetooth
8087:07da
Yes
Audio
8086:1e20
Yes
Wi-Fi
8086:088e
Yes
Touchscreen
03eb:8411
Yes
Stylus input (Wacom digitiser)
056a:00ec
Yes
Sensors
0483:91d1
Untested
Power management
For the backlight brightness to be adjustable,
acpi_backlight=video
must be added. Consult
Backlight#Kernel command-line options
for more information.
Samsung Series 7 Slate XE700T1A

This article or section does not follow the
Laptop page guidelines
.
Reason:
Needs PCI/USB IDs in hardware table (Discuss in
Talk:Samsung Series 7 Slate XE700T1A
)
Hardware
PCI/USB ID
Working?
Touchscreen
Yes
Video
Yes
Webcam
Yes
Bluetooth
Yes
Accelerometer
Untested
Audio
Yes
Wireless
Yes
Installation
Get into BIOS by holding down the home button after powering on the device.
From there enable Legacy USB which lets you use a USB keyboard and boot from a flash drive.
Function keys
The volume rocker buttons and power button seem to be recognised by default. However the rotation lock and home buttons do not.
Press the lock button and the home button, then you should get the following:
# dmesg | tail
[11888.422895] atkbd serio0: Use 'setkeycodes e027 <keycode>' to make it known.
[11888.664814] atkbd serio0: Unknown key released (translated set 2, code 0xa7 on isa0060/serio0).
[11888.664820] atkbd serio0: Use 'setkeycodes e027 <keycode>' to make it known.
[11890.058469] atkbd serio0: Unknown key pressed (translated set 2, code 0xad on isa0060/serio0).
[11890.058476] atkbd serio0: Use 'setkeycodes e02d <keycode>' to make it known.
[11890.058941] atkbd serio0: Unknown key released (translated set 2, code 0xad on isa0060/serio0).
[11890.058947] atkbd serio0: Use 'setkeycodes e02d <keycode>' to make it known.
See
Setkeycodes
on how to set up these 2 keys.
In addition to that article, first run setkeycodes, you can easily check whether the key you are about to set it to is already set by running
# getkeycodes | grep
keycode
where
keycode
is your desired keycode.
Touchscreen
In order to get the pen button to emulate a right click, go into the Wacom settings in System Preferences.
The touch screen will be recognized as a finger input by many applications, such as Gnome Files or chromium by default and will result in dragging causing the page to scroll, rather than selecting text or objects.
Screen rotation
If you like to use the tablet in portrait mode, or some other orientation than, normal. Simply setting the screen rotation is not enough since the touchscreen and wacom inputs will still be calibrated to the standard landscape mode.
The touchscreen is calibrated via axis inversion and axes swap. Swapping the axes basically means that the x axis becomes the y and vice verse. Inverting the axis swaps up and down or left and right.
The wacom tablet however, simply uses a number, 0, 1, 2 or 3, however, these do not correspond to the XRandR numbers.
Orientation
XRandR
Evdev Axis Inversion
Evdev Axis Swap
Wacom Rotation
0°
0
0 0
0
0
90°
1
1 0
1
2
180°
2
1 1
0
3
270°
3
0 1
1
1
SB Live! Midi

SB Live!
uses a wavetable synthesizer for its MIDI output. Therefore, in order to get MIDI output you need to load the SoundFont banks into the card.
Installation
Install
the
awesfx
AUR
package.
Copy the SoundFont files from your SB Live driver CD somewhere on your disk. On the SB Live! Value CD, they are named:
2GMGSMT.SF2
,
4GMGSMT.SF2
and
8MBGMSFX.SF2
.
Load the bank by executing
asfxload
bankfile
. See
sfxload(1)
for more advanced options. Some users have reported that
snd_emu10k1_synth
needs to be preloaded in order for this to work.
Configuration
Which bank to load?
The bank names (at least for SB Live! Value) correspond to their respective sizes (2 Mb, 4 Mb, 8 Mb). The bigger the bank is, the better the quality, although more RAM is also used, since SB Live Value does not have its own memory banks.
Automating
Create a
systemd service file
to start
asfxload
fullbankfilepathname
as a
oneshot
.
Scala

Related articles
Java
List of programming languages
From
Wikipedia
:
Scala is an object-functional programming and scripting language for general software applications. Scala has full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.) and a very strong static type system. This allows programs written in Scala to be very concise and thus smaller in size than most general purpose programming languages. Many of Scala's design decisions were inspired by criticism over the shortcomings of Java.
Installation
Install
the
scala
AUR
package. Additionally you can install the packages
scala-docs
AUR
and/or
scala-sources
AUR
for further reference.
Since Scala runs on the
JVM
(Java Virtual Machine), you will need a fully functional
Java Runtime Environment
(JRE) in order to execute or compile your programs.
For scala3 (which is also known as
dotty
), you can install
scala3
AUR
or
scala-dotty
AUR
. Note that scala3 is
incompatible
with scala 2.13 or older.
Build tools
Most build tools are available:
sbt
mill
AUR
maven
gradle
Scala CLI
As an alternative to using build tools or the compiler directly, you can use
Scala CLI
for building and distributing your software.
Install the
scala-cli
AUR
package.
Usage and IDEs
This article or section needs expansion.
Reason:
Redirect to IDE pages, a lot of IDEs provide scala as a plugin, so list how to install said plugin (Discuss in
Talk:Scala
)
Just as in other programming languages like
Python
, you can interact with an interpreter
$ scala

Welcome to Scala version 2.*.* (OpenJDK Server VM, Java 1.*.*).
Type in expressions to have them evaluated.
Type :help for more information.

scala>
as well as simply compile and run your programs from the command line.
$ scalac HelloWorld.scala
$ scala HelloWorld
Many different
IDEs
such as
Eclipse
or
Netbeans
offer support for Scala. Alternatively, consider
scala-ide
AUR
or
ammonite
. You can also download an IDE that is optimized for Scala and also based on Eclipse directly from
the official Scala Website
.
See also
Scala Lang
- official website
Scala Tutorial
- a series of small Scala tutorials
Learn X=Scala in Y minutes
Scheme

Related articles
Clojure
Common Lisp
Emacs Lisp
From
Wikipedia
:
Scheme
is a
dialect
of the
Lisp
family of
programming languages
. Scheme was created during the 1970s at the
MIT Computer Science and Artificial Intelligence Laboratory
(MIT CSAIL) and released by its developers,
Guy L. Steele
and
Gerald Jay Sussman
, via a series of memos now known as the
Lambda Papers
.
Implementations
Bigloo
— Fast scheme compiler
https://www-sop.inria.fr/mimosa/fp/Bigloo/
||
bigloo
Chez
— Chez Scheme is a compiler and run-time system for the language of the Revised^6 Report on Scheme (R6RS), with numerous extensions.
https://cisco.github.io/ChezScheme/
||
chez-scheme
AUR
CHICKEN
— Feature rich R5RS/R7RS Scheme compiler and interpreter
https://call-cc.org/
||
chicken
Gambit Scheme
— Efficient implementation of the Scheme programming language
https://gambitscheme.org/
||
gambit-c
AUR
Gauche
— R7RS Scheme implementation (includes gosh)
https://practical-scheme.net/gauche/
||
gauche
AUR
Gerbil
— 	Modern Scheme implementation for systems programming built on Gambit
https://cons.io/
||
gerbil-scheme
AUR
GNU Guile
— Portable, embeddable Scheme implementation written in C
https://www.gnu.org/software/guile/
||
guile
,
guile2.0
AUR
,
guile1.8
AUR
Kawa
— A Scheme implementation and framework targeted the JVM
https://www.gnu.org/software/kawa/
||
kawa
AUR
Larceny
— Larceny is a simple and efficient implementation of the Scheme programming language.
https://larcenists.org/
||
larceny-bin
AUR
MIT/GNU Scheme
— MIT/GNU Scheme
https://www.gnu.org/software/mit-scheme/
||
mit-scheme
AUR
Racket
— A full-spectrum language with DrRacket IDE. Formerly known as PLT Scheme.
https://racket-lang.org/
||
racket
,
racket-minimal
Scheme48
— Scheme interpreter for experimentation
https://s48.org/
||
scheme48
AUR
See also
Scheme.org
Scheme Standards
Scheme Requests for Implementation
Comparison of Scheme and Common Lisp
Structure and Interpretation of Computer Programs, 2
nd
Edition (1996)
by Harold Abelson, Gerald Jay Sussman, and Julie Sussman (also available in
EPUB3
and
PDF
formats)
sdcv

Sdcv
is a command line dictionary. It provides access to dictionaries in
StarDict
's format.
Installation
Install
the
sdcv
package.
Usage
sdcv
can be started from the command line:
$ sdcv
This gives you a 'shell-like' command-line from which you can query the database.
Adding dictionaries
This article or section needs expansion.
Reason:
Mention
AUR packages
. (Discuss in
Talk:Sdcv
)
There are various places on the web where you can download StarDict dictionaries (e.g.
https://web.archive.org/web/20200702000038/http://download.huzheng.org/
).
Once you have the appropriate files you can extract them into
/usr/share/stardict/dic
.
If you do not have root permission, you can set the
STARDICT_DATA_DIR
environment variable
:
STARDICT_DATA_DIR=$XDG_DATA_HOME
sdcv will look in the
dic
subdirectory so make sure that it is created and then place your dictionary files inside it.
If all is done correctly, sdcv should be able to output definitions for words passed into it.
Tips and tricks
Output Formatting
You can use a wrapper around sdcv to conveniently format its output (
Source
):
function def() {
	sdcv -n --utf8-output --color "$@" 2>&1 | \
	fold --width=$(tput cols) | \
	less --quit-if-one-screen -RX
}
An
environment variable
can achieve similar formatting functionality without the need of a wrapper, affecting all normal calls of
sdcv
:
SDCV_PAGER='less --quit-if-one-screen -RX'
Piping also works:
SDCV_PAGER='lolcat -f | less --quit-if-one-screen -RX'
See Also
Official web site
owenh.net - StarDict Dictionaries
Post on askubuntu.com
SDL

From
Wikipedia
:
SDL
(Simple DirectMedia Layer) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows. SDL manages video, audio, input devices, CD-ROM, threads, shared object loading, networking and timers. For 3D graphics, it can handle an OpenGL, Vulkan, Metal, or Direct3D11 (older Direct3D version 9 is also supported) context. A common misconception is that SDL is a game engine. However, the library is suited to building games directly, or is usable indirectly by engines built on top of it.
Installation
Install
the
sdl3
package for the latest major version of SDL,
SDL3
. Binary releases for the official additional modules are still in progress; see
this search query
for the current status.
For SDL2 applications, the
sdl2-compat
compatibility layer is recommended as it uses SDL3 behind the scenes and will benefit from updates. SDL2 proper, from
sdl2
AUR
, is also an option. Additional SDL2 modules are:
sdl2_image
,
sdl2_mixer
, and
sdl2_ttf
.
For SDL 1.2 applications, you can install the
sdl12-compat
compatibility layer. Additional SDL 1.2 modules are:
sdl_image
,
sdl_mixer
,
sdl_ttf
.
Configuration
SDL allows the application and user to specify "hints" to alter (usually platform-specific) functionality. See
SDL3 hint documentation
,
SDL2 hint documentation
.
For specific considerations, see
Wayland#SDL
and
HiDPI#SDL
.
Documentation
The official
SDL3 Wiki
provides the most essential resources to learn and utilize SDL3. Additionally,
SDL3 Examples
has a selection of small sample programs.
See also
Wikipedia:Simple DirectMedia Layer
SDL Main Website
SDR++

Related articles
RTL-SDR
SDRplay
SDR++
is a cross-platform and open source software-defined radio application with the aim of being bloat free and simple to use. It is comparable to the Windows program SDR# (SDRSharp).
Installation
SDR++ is available in the
AUR
from
sdrpp-git
AUR
. This will build the default modules in
this list
along with BladeRF, LimeSDR,
SDRplay
,
PortAudio
and
M17 decoding
support.
See also
Official Website
Official GitHub repository
SDRplay

Related articles
GNU Radio
RTL-SDR
SDRplay
is a manufacturer for a range of Software Defined Radio (SDR) receivers all based on the Mirics Semiconductor
MSi2500
which is used in a variety of applications from DVB-T to AM Radio.
Installation
The SDRplay driver is closed source so it is only available in binary format: it can be
downloaded
or preferably
installed
from
libsdrplay
AUR
.
Start/enable
sdrplay.service
.
SoapySDR
Not many applications currently support libmirsdrapi-rsp so it is a good idea to install
soapysdr
or
soapysdr-git
AUR
.
The SoapySDRPlay module is also required and is available from
soapysdrplay3-git
AUR
.
GNU Radio
This article or section is out of date.
Reason:
The package is broken and has been removed.
[1]
Can
gnuradio-osmosdr
maybe replace that? (Discuss in
Talk:SDRplay
)
Users wanting to use the SDRplay with
GNU Radio
will need to install
gr-osmosdr-nonfree-git
AUR
[
broken link
: package not found]
.
Other applications
cubicsdr
AUR
provides a fully functional and easy to use SDR application.
gqrx
another easy to use SDR application built on GNU Radio.
sdrangel-bin
AUR
or
sdrangel-git
AUR
a versatile tool with a nice looking interface, can also decode digital voice
See also
Official Website
Official Forum (suspended)
[
dead link
2025-11-17—HTTP 404]
Official Forum (current)
Community Forum
Secure Shell

Related articles
SSHFS
Mosh
Tailscale
VPN over SSH
This article or section is a candidate for merging with
OpenSSH
.
Notes:
Ambiguation of questionable value (Discuss in
Talk:Secure_Shell#Remove ambiguation
)
According to
Wikipedia
:
Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
Examples of services that can use SSH are
Git
,
rsync
and
X11 forwarding
. Services that always use SSH are
SCP and SFTP
.
An SSH server, by default, listens on the standard TCP port 22. An SSH client program is typically used for establishing connections to an
sshd
daemon accepting remote connections. Both are commonly present on most modern operating systems, including macOS, GNU/Linux, Solaris and OpenVMS. Proprietary, freeware and open source versions of various levels of complexity and completeness exist.
Software
Dropbear
— Lightweight SSH server. The command-line SSH client is named
dbclient(1)
.
https://matt.ucc.asn.au/dropbear/dropbear.html
||
dropbear
OpenSSH
— Premier connectivity tool for remote login with the SSH protocol
https://www.openssh.com/portable.html
||
openssh
Server only
TinySSH
— A minimalistic SSH server which implements only a subset of SSHv2 features; glibc as its single dependency.
https://tinyssh.org/
||
tinyssh
Client only
PuTTY
— A terminal integrated SSH/Telnet client
https://www.chiark.greenend.org.uk/~sgtatham/putty/
||
putty
Securing
See
Security#SSH
.
See also
Terminal multiplexers
(often used over SSH)
Wikipedia:Comparison of SSH clients
Wikipedia:Comparison of SSH servers
SSH Key Fingerprint formats
[
dead link
2025-11-17—domain name not resolved]
Serial input device to kernel input

Although USB is the most popular way to connect input devices such as mice, serial input devices, such as older mice, and more exotic input devices such as 3Dconnexion Spaceballs are still quite usable, either with a serial port built into the computer, or via a USB to serial converter dongle.
The traditional way to support these serially attached input devices was to configure
each
application with the details such as which serial port the input device was attached to and what protocol the device used. As the most common application people used with a serial input device was X.org / XFree86, this was not too much of a problem. However, if you used a variety of applications that needed to talk to the serial input device directly, you may encounter limitations to which serial input device or protocol each application supported. Some applications may not have supported a serial input device you would have preferred to use.
A better approach is to have the Linux kernel input subsystem manage the serially attached input device, and then present the input signals the device generates in the same way that USB and PS/2 input device signals are presented to applications, via the
/dev/input/
device
files.
This guide describes the simple steps necessary to "attach" a serial input device to the Linux kernel input subsystem.
Installation
Install
the
linuxconsole
package: the
inputattach
utility tells the kernel input subsystem which serial port the input device is attached to, and what type of device is attached to the specified serial port.
Configuration
Once installed, view the
inputattach --help
, to see the large list of serial input devices the Linux kernel input subsystem supports.
For example, if you have a Logitech TrackMan Marble serial mouse you would specify
--mouseman
/
-mman
.
The default configuration file assumes a Microsoft serial mouse, and assumes the mouse is attached to the first serial port of the computer. The
'IAPARAMS'
variable is an array of inputattach arguments. An inputattach instance will be started for each element. See
inputattach --help
for details on arguments.
Here is an example configuration, modified to suit a Logitech TrackMan Marble serial mouse:
/etc/conf.d/inputattach
#
# Configuration for inputattach
#
# IAPARAMS is an array of inputattach arguments, see 'inputattach --help'.
# An inputattach instance will be started for each element.

IAPARAMS=(
  "--mouseman /dev/ttyS0"
)
Usage
Start
inputattach.service
.
If you happen to be within Xorg when you do this, and have an
InputDevice
mouse section that specifies
/dev/input/mice
as the input device file, your new input device is likely to now be another source for Xorg mouse pointer movements, in addition to other input devices e.g., a USB mouse.
Another way to confirm that it worked is to check your system's kernel log using the
dmesg
utility. For a Logitech TrackMan Marble serial mouse, the kernel output is:
serio: Serial port ttyS0
input: Logitech M+ Mouse as /class/input/input6
To have your serial input device work every time you boot,
enable
inputattach.service
.
Shairport Sync

Shairport Sync
is an
AirPlay
audio player — it plays audio streamed from iTunes, iOS devices and third-party AirPlay sources such as ForkedDaapd and others. Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible without difficulty.
Shairport Sync does not support AirPlay video or photo streaming.
Shairport Sync is a fork of the original Shairport which was based on reverse-engineering Apple's key used in its AirPort Express. Be advised that this functionality may be removed at Apple's discretion.
Installation
Install
the
shairport-sync
package.
Note
Shairport Sync requires the
Avahi
daemon to be running. You can
start/enable
avahi-daemon.service
using systemd.
Configuration
The configuration file can be found at
/etc/shairport-sync.conf
. It contains useful comments and configuration hints. More documentation is available in the
README
file.
Audio backend
Shairport Sync works well with
PulseAudio
, while the timing information is not as accurate as that of
ALSA
or sndio, it is often impractical to remove or disable PulseAudio. In that case, the
pa
backend can be used.
[1]
If you would like to change the backend, check the list of output devices, e.g. by using tools from
alsa-utils
, and look at the raw audio device, like:
$ aplay -L
...
sysdefault:CARD=PCH
    HDA Intel PCH, ALC269VC Analog
    Default Audio Device
...
Then add the device name:
/etc/shairport-sync.conf
// These are parameters for the "alsa" audio back end.
// For this section to be operative, Shairport Sync must be built with the following configuration flag:
// --with-alsa
alsa =
{
    output_device = "sysdefault";
}
System service
Starting
Start
/
enable
shairport-sync.service
.
Daemon Setup
If you want to run shairport-sync as a daemon you will need to have a folder created in
/run
which is a tempfs by default in Arch Linux. To have a folder created automatically on boot create a tempfiles configuration file, for example:
/usr/lib/tmpfiles.d/shairport-sync.conf
d /run/shairport-sync 0755 username group
you can now use
shairport-sync -d
to run shairport-sync as a daemon, and
shairport-sync -k
to kill the daemon.
User service
According to the
author
, the PulseAudio backend with the default PulseAudio configuration can only work as a
user service
. As of 2022-01-27, it seems to just work as a system service with pulseaudio (pipewire-pulse) without modification, not needing the user service.
To run
shairport-sync
as user daemon, you can add it to the desktop environment autostart, or
enable
shairport-sync.service
as a
user unit
.
Next,
edit
shairport-sync.service
and comment out the next lines:
[Unit]
...
#Requires=avahi-daemon.service
#After=avahi-daemon.service
...
[Service]
...
#User=shairport-sync
#Group=shairport-sync
...
Now, you are ready to
enable/start
shairport-sync.service
as user
:
To obtain logs, use the
journal
or check the
unit status
.
SHA hashes

Related articles
Security#Password hashes
The
Secure Hash Algorithms
(SHA) are a set of
hash functions
, frequently used for a large variety of
purposes
.
Some examples of usage of the SHA hash functions in Arch Linux are:
Verifying the integrity of the
Arch Linux ISO
and
packages
,
Pinning software revisions with
git
,
Securing and verifying cryptographic keys, for example
disc encryption
,
Data integrity and resource management of file systems, for example
btrfs
, and
Password verification, covered in
Security#Password hashes
and this article for SHA hashes.
SHA password hashes
By default Arch Linux used
SHA-512
for passwords with package
shadow
releases from 4.1.4.3-3 (see
bug 13591
) to 4.14.0 (see
yescrypt
). It replaced the older
MD5
hash function, which has been found compromised by
collision vulnerabilities
. See
wikipedia:Secure Hash Algorithms#Comparison of SHA functions
for more information.
Configuration
The SHA-512 password hashing can be configured with the
rounds=N
option to improve
key strengthening
. For example,
rounds=65536
means that an attacker has to compute 65536 hashes for each password they test against the hash in the
/etc/shadow
password file.
Therefore the attacker will be delayed by a factor of 65536. This also means that your computer must compute 65536 hashes every time you log in, but even on slow computers that takes less than one second.
Since
pam
release 1.6.0 the SHA-512
rounds
option can be configured by either editing the
/etc/login.defs
file and setting an value for the
SHA_CRYPT_MAX_ROUNDS
parameter, or editing
/etc/pam.d/passwd
and adding the
rounds
with an appropriate value.
[1]
If you do not use the
rounds
option, PAM will use a
default
different to the
5000
rounds example commented in
/etc/login.defs
.
For example:
/etc/pam.d/passwd
password	required	pam_unix.so sha512 shadow nullok
rounds=65536
Warning
Explicitly configuring a hash like
sha512
in above example overrides the default
yescrypt
hash for subsequent
passwd
invocations.
For a more detailed explanation of the
/etc/pam.d/passwd
password options check the
pam_unix(8)
man page.
Usage
Even though you have changed the encryption settings, your passwords are not automatically re-hashed. To fix this, you must reset all user passwords so that they can be re-hashed.
As root issue the following command,
# passwd
username
where
username
is the name of the user whose password you are changing. Then re-enter their current password, and it will be re-hashed.
To verify that your passwords have been re-hashed, check the
/etc/shadow
file as root. Passwords hashed with SHA-256 begin with a
$5
, passwords hashed with SHA-512 will begin with
$6
and yescrypt hashes with
$y
.
Sheepit

SheepIt
is a free, distributed renderfarm for
Blender
. Blender files are submitted to the renderfarm where they are distributed to the participants for rendering. A scheduler takes into account factors relating to both the project and the machines participating, when distributing the frames.
Launcher
The
sheepit-client-launcher
AUR
package is the method preferred by the SheepIt developers. This package provides a launcher which checks for, and downloads, the latest client release on launch.
Client
Installation
Install either
sheepit-client-launcher
AUR
or
sheepit-client-bin
AUR
which provide the SheepIt client. These packages do not conflict and can be installed at the same time.
Launching the client
Launch the client using either
sheepit-client-launcher
(when using
sheepit-client-launcher
AUR
) or
sheepit-client
(when using
sheepit-client-bin
AUR
).
Running as a service
sheepit-client-systemd
AUR
provides
systemd
and configuration files for running the SheepIt client as a service.
sheepit-client-git
Use of this package is dissuaded by the SheepIt developers as it compiles a bleeding edge version of the client, intended for use with the development sandbox. Please consider using the other packages described instead (e.g.
sheepit-client-systemd
AUR
provides equivalent functionality).
Troubleshooting
Client spends most of its time downloading projects
As the scheduler finds the optimal project for your client to work on for each job request it makes, this can cause it to switch to a different project each time. If your internet connection is slow, this leads to a lot of 'project download' overhead. Launching the client with the
-extras scheduler slow_connectivity
argument hints to the scheduler to keep your client on the same project as much as possible, reducing the amount of projects downloaded.
Client shows 503 errors or 'leaked connection'
Due to the load on the servers, they can temporarily become overloaded. The client will recover without interference once the servers become available again.
No jobs available
As the scheduler takes into account a lot of factors while determining which frames to provide a client to render, sometimes no suitable work can be found. Viewing the clients session on the SheepIt website can indicate why this is the case (e.g. not enough memory) but
Renderable
does not mean your client will be asked to do it, due to other reasons, only that it could be.
See also
Official SheepIt site
Shell 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
Related articles
Command-line shell
Install
For users to
change shells
, the shell must appear in
/etc/shells
. Most shell packages have install scripts like below:
shellname
.install
post_install() {
    grep -Fqx /bin/
shellname
/etc/shells || echo /bin/
shellname
>>/etc/shells
    grep -Fqx /usr/bin/
shellname
/etc/shells || echo /usr/bin/
shellname
>>/etc/shells
}

post_upgrade() {
    post_install
}

post_remove() {
    sed -i -r '/^(\/usr)?\/bin\/
shellname
$/d' etc/shells
}
Shell completions
Most shells provide a built in set of completions for a few common commands while also scanning at least one system directory for functions that may be supplied by other packages. The following table is a summary of where packages may place completion files and what the files should be named.
Shell
Directory
File
Bash
/usr/share/bash-completion/completions/
binary_name
Elvish
/usr/share/elvish/lib/
binary_name
.elv
Fish
/usr/share/fish/vendor_completions.d/
binary_name
.fish
Zsh
/usr/share/zsh/site-functions/
_
binary_name
Other shells:
Nushell
provides some default completions, but does
not
have a system-wide directory where completions can be provided yet
[1]
. For packages that generate Nushell completion functions, one solution would be to package them
/usr/share/nushell/autoload/
binary_name
.nu
and use a
post_install()
function to print a tip for users to add a
use /path/to/file
statement to their configs.
Tip
As a general rule, packages should have neither
depends
nor
optdepends
on shells. Just because they happen to supply completions for them does not imply a package dependency relationship any way. The exception is packages that do not supply their own completions; the completions do not exist in the default shell package, but they
are provided
by the supplemental collection packages
bash-completion
or
zsh-completions
. When completion files exist in these packages, add them to
optdepends
.
Shell functions or modules
Shell
Directory
File
Elvish
/usr/share/elvish/lib/
module_name
.elv
Fish
/usr/share/fish/vendor_functions.d/
function_name
.fish
Zsh
/usr/share/zsh/site-functions/
function_name
SickChill

SickChill
(a fork of SickRage which was
abandoned and malicious
, which in turn was already a fork of SickBeard) is an automatic video library manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.
Installation
Install
sickchill-git
AUR
. It contains the application and a systemd service file.
Running as a systemd service
Enable/start
sickchill.service
.
Password protecting the webui
By default, the SickChill webui running on port 8081 is not protected by a password. To set a username and password, edit the SickChill configuration file at
/opt/sickchill/data/config.ini
and change the
web_username
and
web_password
settings:
/opt/sickchill/data/config.ini
web_username =
web_password =
Compatible torrent clients
For some you will need to enable the web-interface to work.
Transmission
Deluge
rtorrent
qbittorrent
"Black Hole" (saves .torrent files to a directory)
uTorrent
Synologie DS
First time usage
SickChill is a web-application that can be accessed on
http://localhost:8081
, when SickChill reports that it does not know its version, just hit the update button. It will check for updates, restart itself and set its current version. The settings are pretty straightforward. If you already have a storage of series, just point SickChill to it and it will analyze it and try to add your already downloaded series to its own list.
Sieve filters

Sieve
is a programming language that can be used to create filters for email on mail server.
Servers
pigeonhole
can be used with
Dovecot
. It implements the ManageSieve protocol (specifically
RFC 5804
).
Client tools
To manage sieve filters remotely, clients exist for servers implementing the ManageSieve protocol (
RFC 5804
).
sieve-connect
— Client for the MANAGESIEVE protocol
https://github.com/philpennock/sieve-connect
||
sieve-connect
Sieve Script Editor
— A graphical client for the ManageSieve protocol for securely managing Sieve Script on a remote IMAP server
https://github.com/thsmi/sieve
||
sieve-app-bin
AUR
sieve-connect
To connect:
$ sieve-connect -s mail.example.com -u user@example.com
Then the help is short and explicit:
> help
Slime

SLIME
(Superior Lisp Interaction Mode for
Emacs
) provides a development environment for Common Lisp in
Emacs
. This article assumes that
SBCL
will be used. It can be replaced with
other
implementations, e.g.
CMUCL
,
ECL
,
CLISP
.
Installation
Install
emacs-slime
and your preferred Common Lisp implementation. Alternatively, SLIME can be installed via
quicklisp
.
Configuration
To make use of SLIME, add the following lines to your
init file
:
(setq inferior-lisp-program "/path/to/lisp-executable")
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(require 'slime)
(slime-setup)
Then run
M-x slime
from within emacs.
Alternatively, for a fancier SLIME setup, you can change the above lines to:
(setq inferior-lisp-program "/path/to/lisp-executable")
(add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/")
(require 'slime)
(slime-setup '(slime-fancy))
Resources
The Common Lisp wiki
Practical Common Lisp
Structure and Interpretation of Computer Programs
Paul Graham's Lisp resources
.
Slock

Related articles
Session lock
List of applications/Security#Screen lockers
Slock, or the "Simple X display locker", is a display locker for
X
that aims to be minimal, fast, and lightweight.
[1]
.
Installation
Install
the
slock
package.
Configuration
Configuration is done by
editing
the
config.h
header file and then recompiling the package. After configuration you should
create a package
.
Usage
Simply run
slock
to lock the screen. You can also provide an argument to be run after the screen has been locked:
$ slock
cmd
[arg ...]
To unlock the screen, just type your password.
Tips and tricks
Lock on suspend
Create
the following service which locks the screen.
/etc/systemd/system/slock@.service
[Unit]
Description=Lock X session using slock for user %i
Before=sleep.target

[Service]
User=%i
Environment=DISPLAY=:0
ExecStart=/usr/bin/slock

[Install]
WantedBy=sleep.target
Enable
the
slock@
user
.service
systemd unit for it to take effect for the username
user
.
Block VT switching and prevent killing X
slock
recommends blocking VT switching so that the screen lock cannot be bypassed. For the same reason,
slock
recommends preventing users from killing the X server. See
Xorg#Block TTY access
and
Xorg#Prevent a user from killing X
.
See also
Official homepage
slrn

slrn
is a text-based news client. It runs through a textual user interface and is highly customizable. It uses the S-Lang library.
Installation
Install
the
slrn
AUR
package.
Configuration
To run slrn, you will have to set up an
environment variable
with the newsgroups server you wish to use:
NNTPSERVER='my.news.server' && export NNTPSERVER
Two important slrn configuration files are .slrnrc for basic configuration and .jnewsrc that contains the list of newsgroups.
To create .slrnrc from a sample startup file for slrn:
# cp /usr/share/doc/slrn/examples/slrn.rc.gz ~/.
# gunzip -c ~/.slrn >~/.slrn.rc
After creating .slrnrc you should
configure the user account
and then create .jnewsrc:
# slrn -f ~/.jnewsrc --create
User account
To set up your newsgroup account, you have to set up the following parameters in .slrnrc
set username "desired_username"
set hostname "desired_hostname"
set replyto "some_name <email@example.com>"
Signature
To set up a signature uncomment the following line in .slrnrc:
set signature ".signature"
Also, you have to create .signature file in your home folder and put your signature in it.
Encoding
To set up encoding (i.e. utf8) uncomment the following lines in .slrnrc:
charset display utf8
charset outgoing utf8
Displaying all posts
By default slrn will only shows unread posts. If you are used to having all posts listed in a certain newsgroup, this will be a big change for you. To have all posts listed add the following to your .slrnrc:
setkey group "set_prefix_argument(4); () = select_group();" " "
Managing usergroups
You can manage usergroups directly through slrn or by editing .jnewsrc file. If you decide to manage them using .jnewsrc file, you can do it by changing the ! and : at the end of each newsgroup.
Unsubscribed group example:
misc.test! 1-210917
Subscribed group example:
misc.test: 1-210917
Snmpd

SNMP
is a standard Internet protocol (
RFC 1157
) designed for the management and monitoring of network devices. Arch Linux offers
Net-SNMP
, among other
SNMP
implementations. This article discusses configuration and testing of the
snmpd
daemon which is part of the
net-snmp
package.
Installation
There is a single package for
net-snmp
in Arch Linux which contains both the snmpd daemon, and the accompanying utilities.
Install
the
net-snmp
package.
Configuration
Note
If
/var/net-snmp/snmpd.conf
is modified while snmpd is running, any changes will be lost when the daemon is restarted. It is therefore crucial that the snmpd service is stopped while editing the configuration file.
SNMP 1 and 2c
There are three versions of SNMP which are supported by net-snmp: 1, 2c and 3. Versions 1 and 2c start with the same basic configuration, using
/etc/snmp/snmpd.conf
.
# mkdir /etc/snmp/
# echo rocommunity
read_only_community_string
>> /etc/snmp/snmpd.conf
The above commands will add a community string that can be used for monitoring. Optionally, you can add another community string used for management. This is not recommended unless you have a specific reason to do so.
# echo rwcommunity
read_write_community_string
>> /etc/snmp/snmpd.conf
SNMP 3
SNMP v3 adds security and encrypted authentication/communication. It uses a different configuration scheme in
/etc/snmp/snmpd.conf
and additional configuration in
/var/net-snmp/snmpd.conf
.
For the former configuration file in
/etc/
, write directly to it
or
use the
snmpconf
wizard:
# mkdir /etc/snmp/
# echo rouser
read_only_user
>> /etc/snmp/snmpd.conf
$ snmpconf -g basic_setup
For the latter configuration file in
/var/
, write directly to it
or
use
net-snmp-create-v3-user
:
# mkdir -p /var/net-snmp/
# echo createUser
read_only_user
SHA
password1
AES
password2
> /var/net-snmp/snmpd.conf
# net-snmp-create-v3-user -ro -a SHA -x AES
Note that once snmpd is (re)started,
/var/net-snmp/snmpd.conf
will be rewritten, and the clear-text passwords that you have entered will be encrypted.
Daemon
Start/enable
snmpd.service
.
Testing
If using SNMP 1 or 2c, use one of the following commands to test configuration:
# snmpwalk -v 1 -c
read_only_community_string
localhost | less
# snmpwalk -v 2c -c
read_only_community_string
localhost | less
If using SNMP 3, use the following command to test configuration:
# snmpwalk -v 3 -u
read_only_user
-a SHA -A
password1
-x AES -X
password2
-l authNoPriv localhost | less
Either way, you should see several lines of data looking something like:
SNMPv2-MIB::sysDescr.0 = STRING: Linux myhost 2.6.37-ARCH #1 SMP PREEMPT Sat Jan 29 20:00:33 CET 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: ccitt.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (307772) 0:51:17.72
SNMPv2-MIB::sysContact.0 = STRING: root@localhost
SNMPv2-MIB::sysName.0 = STRING: myhost
...SNIP...
Solo

Related articles
Smartcards
Universal 2nd Factor
The
Solo
(or SoloKey) is a small
USB security token
supporting
Universal 2nd Factor
(U2F) requests, thus acting as a second factor for authentication. It also supports the newer
FIDO2
standard allowing for passwordless logins.
Compared to a
YubiKey
it offers less features, but supports firmware upgrades to extend the functionality in the future. The key-hardware and software are released as
open source
. The keys are distributed in different form factors and two versions: Solo V1 (STM32L432 chip) and Solo V2 (LPC55S69 chip).
Installation
Special drivers are not required for the key to work. It is recommended to install the Solo software and upgrade the firmware of your Solo.
Upgrading the firmware
This article or section is out of date.
Reason:
project is now available as
solo1-cli
and
solo2-cli
(Discuss in
Talk:Solo
)
Managing your Solo V1, e.g. upgrading the firmware or setting a PIN, can be performed with the
solo1
AUR
package. After installing the package, first check if your key is detected:
$ solo ls
:: Solos
123456XXXXXX: SoloKeys Solo 3.0.1
Then you can use
solo key update
to perform a firmware upgrade,
solo key set-pin
to set a PIN, and
solo key change-pin
to change your pin.
Test the Solo in your browser
Visit the
Webauthn demo
, type in a username and click on "Register". Your Solo's LED will flash until you click it. After that, you can login to the page only using your Solo, no need for username or password.
See also
SoloKeys Official Website
Solo Technical Documentation
SonarQube

Related articles
Gogs
Git
SonarQube
is code quality tool for better code and published under the LGPL3 license.
Installation
Install
the
sonarqube-bin
AUR
package.
SonarQube uses H2 database by default (not recommended). 
Or requires the use of a database backend, the following are supported:
PostgreSQL
Oracle
MSSQL
Configuration
The user configuration file is located at
/etc/webapps/sonarqube/sonar.properties
.
See the
SonarQube docs
for more configuration examples.
PostgreSQL
Install
and
configure
PostgreSQL
.
SonarQube seems to support only TCP Socket
With TCP socket
Connect do postgresql:
[postgres]$ psql
Create the new user while connecting to the server as
postgres
user (you will be prompted for a password for the new user):
postgres=# CREATE USER sonarqube WITH PASSWORD
password
;
Create the
sonarqube
database, owned by
sonarqube
user:
postgres=# CREATE DATABASE sonarqube OWNER sonarqube;
postgres=#GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
PostgreSQL#Configure PostgreSQL to be accessible from remote hosts
Verify it works:
$ psql --host=
ip_address
--dbname=sonarqube --username=sonarqube --password
Configure SonarQube through the update
sonar.properties
:
/etc/webapps/sonarqube/sonar.properties
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
sonar.jdbc.username=sonarqube
sonar.jdbc.password=
password
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.javaAdditionalOpts=-server
sonar.web.host=0.0.0.0
sonar.web.port=9000
sonar.log.level=INFO
sonar.path.logs=logs
Upgrade
After upgrading SonarQube, follow these steps:
Update the
sonar.properties
file to match the new version.
Once SonarQube is running, a page will appear prompting you to upgrade. For detailed instructions, visit the
upgrade guide
.
Navigate to the setup page of your SonarQube server at
https://
ip
:
port
/setup
and click the upgrade button.
Once the upgrade process is complete, the normal login page will be displayed.
Usage
Start/enable
sonarqube.service
, the webinterface should listen on
http://localhost:9000
.
Default credentials are
admin/admin
.
Note
You might want to configure a reverse proxy to access remotely, e.g.
nginx
.
If you want Sonarqube to not listen on all interfaces, set
sonar.web.host
to e.g. 127.0.0.1 in
/etc/webapps/sonarqube/sonar.properties
.
Usage with maven
$ mvn clean verify sonar:sonar -Dsonar.projectKey=
project key
-Dsonar.projectName=
project
-Dsonar.host.url=
http://localhost:9000
-Dsonar.token=
token
Note
The values
project key
,
project
and
token
can be created in web interface
Usage with sonar-scanner
There is a package
sonar-scanner
AUR
. Usage is:
$ /opt/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=
project key
-Dsonar.sources=. -Dsonar.host.url=
http://localhost:9000
-Dsonar.token=
token
Note
The values
project key
and
token
can be created in web interface
Troubleshooting
You can check the
unit status
or the
journal
.
And there are sonarqube logs in:
# /var/log/sonarqube/
If sonarqube is not active, one of these logs will contain an error.
See also
Sonarqube Documentation
Manual for installation sonarqube
Sonic Visualiser

From
https://www.sonicvisualiser.org/
:
Sonic Visualiser
is the first program you reach for when want to study a music recording closely. It's designed for musicologists, archivists, signal-processing researchers, and anyone else looking for a friendly way to look at what lies inside the audio file.
Installation
Install
the
sonic-visualiser
package.
Known issues
Play button does not play the track (No audio)
Sonic visualiser requires
PulseAudio
to be set up to hear anything. For
ALSA
-only users, using
apulse
AUR
as described in
Advanced Linux Sound Architecture#apulse
gets the audio working.
$ apulse sonic-visualiser
The terminal messages will still have
WARNING: AudioFactory::createCallbackIO: Failed to open JACK I/O
, but can be ignored. Audio should play with no issues.