hannah-eee/arch-wiki-docs huggingface dataset:
Lenovo Yoga Slim 7 Pro AMD (14ACH5)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Misses PCI/USB IDs in the hardware table, an Accessibility and a Function Keys section. (Discuss in
Talk:Lenovo Yoga Slim 7 Pro AMD (14ACH5)
)
Hardware
PCI/USB ID
Working?
Touchpad
PS/2
Yes
Keyboard
Yes
GPU
1002:1638
Yes
Webcam
13d3:5419
Yes
Bluetooth
0489:e0cd
Yes
Audio
1022:15e3
Yes
Wi-Fi
14c3:7961
Yes
TPM
Untested
This laptop comes in an O or D model:
O = Onboard Vega graphics
D = Onboard + Dedicated nVidia MX450 2GB GPU
Installation
In order to install,
Secure Boot
must be disabled in the UEFI. You can enter it by pressing
F2
(or
Fn+F2
) during boot. In order to access the boot-menu allowing you to choose a non standard boot device (like USB devices), press
F12
(or
Fn+F12
) during boot.
Firmware
While Lenovo is known to support
fwupd
in general, the Yoga Slim 7 has not been added yet.
UEFI
The UEFI can be accessed at boot by pressing
F2
, minimal options are available.
Updates are currently provided by Lenovo as Windows binaries.
Display
The laptop comes with an optional 2800x1800 90hz glossy display: recommended settings for Gnome are 200% scale and 85% font scale, KDE scaling is customizable enough to handle the resolution.
For more details, see
HiDPI
.
Graphics
The integrated Vega graphics are decent, on the D model the dedicated NVIDIA graphics can be disabled in the BIOS under the "UMA Graphics" setting.
When using the dedicated NVIDIA graphics it is recommended to keep the chip off when not in use using one of the
NVIDIA Optimus
solutions
Power management
Suspend
s0ix is the only supported sleep mode, this mode works well in kernel 5.16 onwards although a slight drain is observed while the machine is in a sleep state.
Hibernation
Untested although hibernation should work using kernels 5.16 onwards.
Battery Saving
Using GNOME, the battery saving profile can be changed which is reflected in the UEFI
Battery Life − Battery Saver
Balanced − Intelligent Cooling
High Performance − Performance
It is recommended to install
TLP
for battery saving.
A custom resolution of 2880x1800 at 60hz can be added to reduce drain from running the display at 90hz.
Note
When operating in Balanced power mode on AC power, the machines fan will often be spinning.
Battery conservation mode and Rapid Charge mode can be turned on from Windows using Lenovo Vantage program. It will stay turned on after booting Linux. They can also be controlled on Gnome via the
IdeaPad Controls extension
Lenovo Yoga Slim 9 (Intel)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing a few IDs in the hardware table, an accessibility and function keys section. (Discuss in
Talk:Lenovo Yoga Slim 9 (Intel)
)
Hardware
PCI/USB ID
Working?
Touchpad
Yes
Keyboard
No
Video
8086:9a49
Yes
Touchscreen
HID 5235
Yes
Webcam
04f2:b6df
Yes
Bluetooth
8087:0026
Partial
Audio
8086:a0c8
Partial
Wi-Fi
8086:a0f0
Yes
TPM
Untested
Installation
In order to install,
secure boot
must be disabled in the BIOS. You can enter it by pressing
F2
(or
Fn+F2
) during bootup. In order to access the boot-menu allowing you to choose a non standard boot device (like USB devices), press
F12
(or
Fn+F12
) during bootup.
Initially, both keyboard and touchpad are unusable, see individual Keyboard and Touchpad sections below.
Keyboard
The keyboard does not work in neither Xorg nor Wayland, only in the
TTY
. In order to get it working, add
i8042.dumbkbd
to the
kernel parameters
. Note that the Caps Lock LED stops turning on after this.
Touchpad
The touchpad is barely usable, only with the "right" pressure.
https://gitlab.freedesktop.org/libinput/libinput/-/issues/604
.
Luckily, the fix is easy. As mentioned in the bug report, just create file
/etc/libinput/local-overrides.quirks
with the following content:
[Lenovo Yoga Slim 9 Pressurepad]
MatchBus=i2c
MatchVendor=0x27C6
MatchProduct=0x01E8
AttrEventCodeDisable=ABS_MT_PRESSURE;ABS_PRESSURE;
After that, log out and log in again and the touchpad should work.
Firmware
While Lenovo is known to support
fwupd
in general, the Yoga Slim 9 has not been added yet.
Firmware data path
The BIOS comes with a "self healing" backup BIOS, stored in
EFI/Lenovo/BIOS/SelfHealing.fd
. The file is about 16M in size and is written each time you make changes to the BIOS (manual modification or BIOS update).
Bluetooth
Bluetooth mostly works out of the box. Sometimes it is necessary to restart the service (particularly after suspending).
Restart
bluetooth.service
to fix it.
Audio
The laptop comes with an Realtek ALC287 audio chipset, that is unfortunately known to have bad support in Linux, see
https://bugzilla.kernel.org/show_bug.cgi?id=208555
. To fix the speaker you can force snd_hda_intel instead of snd_sof to handle your audio. A configuration for modprobe.d can be found here:
https://github.com/PJungkamp/yoga9-linux/blob/main/config/etc/modprobe.d/snd.conf
Wireless
The laptop comes with an Intel Corporation Wi-Fi 6 AX201 (802.11 ax) wireless controller, working out of the box.
Battery Conservation Mode
Lenovo offers a "Battery Conservation Mode". When the conservation mode is enabled, your battery will only be charged to 60% to maximize its lifespan. You can use
ideapad-cm
AUR
to control the conservation mode.
See also
Official Hardware Maintainance Manual (HMM):
https://download.lenovo.com/consumer/mobiles_pub/yoga_slim_9i_hmm.pdf
Official Hardware Specs:
https://psref.lenovo.com/syspool/Sys/PDF/Yoga/Yoga_Slim_9_14ITL5/Yoga_Slim_9_14ITL5_Spec.pdf
Lenovo ZHAOYANG E43A

This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing a Firmware and Accessibility section, hardware table lacks entry for Audio, possibly more? (Discuss in
Talk:Lenovo ZHAOYANG E43A
)
Hardware
PCI/USB ID
Working?
Wi-Fi
8086:4237
Yes
Ethernet
14e4:1698
Yes
GPU
10de:06eb
Yes
Fingerprint reader
124e:1000
Untested
Installation
The UEFI boot options seems not working. Only legacy boot method tested.
Function keys
Key
Visible?
Marked?
Effect
Fn+F1
No
Yes
XF86MonBrightnessDown
Fn+F2
No
Yes
toggle screen off/on
Fn+F3
No
Yes
toggle display
Fn+F4
Yes
Yes
XF86Launch7
Fn+F5
Yes
Yes
XF86AudioLowerVolume
Fn+F8
No
Yes
toggle touchpad
Fn+F9
No
Yes
pulse/resume
Fn+F10
No
Yes
stop play
Fn+F11
No
Yes
play Next
Fn+F12
No
Yes
play Prev
Fn+Insert
Yes
Yes
Numlock
Fn+Delete
Yes
Yes
Scrlk
Fn+PrtSc
No
Yes
SysRq
Fn+Pause
Yes
Yes
Break
Lexmark

This article or section is being considered for removal.
Reason:
No ambiguity. Detailed information on what products Lexmark makes is already in
w:Lexmark
(Discuss in
Talk:Lexmark
)
Lexmark
is a printer- and scanner-manufacturer. See:
CUPS/Printer-specific problems#Lexmark
for issues about Lexmark printers with
CUPS
;
SANE/Scanner-specific problems#Lexmark
for issues about Lexmark scanners with
SANE
.
lf

Related articles
File manager functionality
Midnight Commander
nnn
ranger
Vifm
lf
(as in "list files") is a
terminal file manager
written in
Go
with a
heavy inspiration
from
ranger
.
Outstanding
features
are server/client architecture (so you can cut in one terminal window and paste in another) and high customization.
Unlike
ranger
, some features like tabs or windows are
intentionally
not included and instead left to be handled by
window managers
or
terminal multiplexers
.
Installation
Install
the
lf
package.
Configuration
Copy the default configuration at
/usr/share/doc/lf/lfrc.example
to
~/.config/lf/lfrc
to use as a template for further customization. Some common features are already included as comments in the configuration example.
For more extensive configurations see the
lf(1)
, also see the project
wiki
.
Usage
The default keybindings are similar to those of
vim
with some difference from
ranger'
s default, see
lf(1) § QUICK REFERENCE
.
Also see the
screencast
.
Tips and tricks
Transition from ranger to lf
For users who are already used to
ranger
as a file manager, moving to
lf
means less default features and a slightly different behavior.
The
lf
project wiki includes a step by step
guide
on how to configure
lf
to add features and defaults from
ranger
.
Using rifle file opener
lf
can use the file opener
rifle
which is included in the
ranger
package.
Set an environment variable to automatically use
rifle
to open files in the related applications:
export OPENER='rifle'
For editing file, you can also set your default editor:
export EDITOR='vim'
Previewing files
To automatically preview contents from currently selected files, set a custom previewer script in
~/.config/lf/lfrc
. It is possible to
add a wrapper
for the
scope.sh
script from ranger which serves as a good template for customization. There are many other
previewers
that can be used with
lf
.
Sandboxing previews
While the default lf configuration only previews text files, using more complex preview parsers is somewhat dangerous. In case there is a vulnerability in a preview parser like pdftotext, it is possible to use this simple script to sandbox the previewer using
bubblewrap
:
~/.config/lf/previewSandbox.sh
#!/bin/bash
set -euo pipefail
(
    exec bwrap \
     --ro-bind /usr/bin /usr/bin \
     --ro-bind /usr/share/ /usr/share/ \
     --ro-bind /usr/lib /usr/lib \
     --ro-bind /usr/lib64 /usr/lib64 \
     --symlink /usr/bin /bin \
     --symlink /usr/bin /sbin \
     --symlink /usr/lib /lib \
     --symlink /usr/lib64 /lib64 \
     --proc /proc \
     --dev /dev \
     --ro-bind /etc /etc \
     --ro-bind ~/.config ~/.config \
     --ro-bind ~/.cache ~/.cache \
     --ro-bind "$PWD" "$PWD" \
     --unshare-all \
     --new-session \
     bash ~/.config/lf/preview.sh "$@"
)
Set your previewer to the sandbox script and have your real preview script at
~/.config/lf/preview.sh
:
set previewer ~/.config/lf/previewSandbox.sh
LG Gram 14 2022

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub. (Discuss in
Talk:LG Gram 14 2022
)
Hardware
PCI/USB ID
Working?
Touchpad
Yes
Keyboard
Yes
GPU
8086:46a6
Yes
Webcam
0bda:5641
Yes
Bluetooth
8087:0aaa
Yes
SD-card reader
Untested
Audio
8086:51c8
Yes
Wi-Fi
8086:51f0
Yes
Fingerprint reader
27c6:6a94
Yes
TPM
Untested
Installation
Before installing it is necessary to modify some UEFI Settings. They can be accessed by pressing
F2
repeatedly when booting.
Disable secure boot to allow Linux to boot. Alternatively, you can choose to set up
Secure Boot
so that it works with Linux and you can take advantage of its potential security benefits.
Installation of Arch Linux can proceed normally. Refer to the
Installation guide
for more information.
Audio
In order to get audio working
Sound Open Firmware
needs to be installed.
LG Gram 16 2-in-1 2023

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub. (Discuss in
Talk:LG Gram 16 2-in-1 2023
)
Hardware
PCI/USB ID
Working?
Touchscreen
Yes
Touchpad
Yes
Keyboard
Yes
GPU
Yes
Webcam
0408:50c3
Yes
Bluetooth
Yes
Audio
8086:51ca
requires workaround
Wireless
Yes
Orientation and tablet-mode sensors
Yes
Micro-SD reader
Untested
TPM
Untested
Model 16T90R-K.ADB9U1 with Intel 13th-gen i7-1360P (Raptor Lake).
linux-hardware probe
.
Installation
Before installing it is necessary to modify some UEFI Settings. They can be accessed by pressing
F2
repeatedly when booting.
Disable secure boot to allow Linux to boot. Alternatively, you can choose to set up
Secure Boot
so that it works with Linux and you can take advantage of its potential security benefits.
Installation of Arch Linux can proceed normally. Refer to the
Installation guide
for more information.
Audio
Internal speakers are not working as of kernel 6.2 with sof-audio-pci-intel-tgl kernel module loaded.
This seems to be a common problem with the Realtek ALC298 codec (so it is a low-level HDA issue, that occurs with or without `sof` installed). (see eg
launchpad
,
superuser
(Ubuntu),
debian
, and
linuxmint forum
; and upstream
thesofproject#4363
).
The workaround is to apply solution (1) from comment 14 in
Kernel bug 212041
. This should work immediately and then needs to be applied on each (cold) boot with eg systemd.
Keyboard
Keyboard is decent with a "slim" numpad. It is properly disabled in tablet mode.
F-keys are working as F-keys by default which is a nice surprise, and there is no Fn-lock key if you prefer easier access to the special keys (volume etc) but you can toggle
/sys/devices/platform/lg-laptop/fn_lock
for this
(source:
superuser
).
As in many laptops, in Brazil, as their ABNT-2 layout as an additional key (102 keys), the right control key becomes mapped to this extra key ('/', key code 97 instead of 105, <AB11> in xkb).
Other
No HDMI port but USB-C/Thunderbolt docks work.
2560x1600 16" display works great with KDE fractional scaling set at around 125%.
Suspend, which is the new-ish s2idle, is working most of the time with very little battery drain.
KDE will show an on-screen-keyboard if one is installed (eg maliit-keyboard), when the touchscreen is being used, even in "laptop mode".
Libcamera

Related articles
Webcam setup
Libcamera
is a camera support library. It includes support for cameras that have poor or no support by upstream drivers.
Installation
Install
the
libcamera
package. Install the
pipewire-libcamera
package to add support for
PipeWire
.
Usage
For applications that support it, libcamera can be used as is. Some applications need to use V4L2, so
libcamerify
from
libcamera-tools
can use LD_PRELOAD to add a virtual V4L2 device that points to libcamera, for example running
cheese
AUR
through this virtual device:
$ libcamerify cheese
Debugging
Running
qcam
as provided by
libcamera-tools
can show whether the camera in use is working even if other software does not support the libcamera APIs.
See also
Libcamera website
IPU6 camera support/guide in Fedora, including ways to debug libcamera
Enabling/debugging libcamera in Firefox
Libcanberra

Related articles
GTK
Desktop notifications
Libcanberra
is a simple abstract interface for playing event sounds. It implements the
XDG Sound Theme and Naming Specifications
for generating event sounds on free desktops, such as GNOME. Further description
here
Installation
Libcanberra can be installed with the package
libcanberra
. libcanberra no longer requires any backends for ALSA, pulseaudio or gstreamer, as they are now built in to the
libcanberra
package.
It is necessary to have a sound theme installed in order to hear any event sound:
The default sound theme 'freedesktop' (
sound-theme-freedesktop
) will be installed as dependency of libcanberra.
Alternatively, search for "sound-theme" in the
official repositories
or the
Arch User Repository
.
Configuration
By default, the GTK module is loaded automatically when a GTK application launched. You can overwrite the default settings in the user's GtkSettings file:
$HOME/.gtkrc-2.0 and $XDG_CONFIG_HOME/gtk-3.0/settings.ini
gtk-enable-event-sounds=true
gtk-enable-input-feedback-sounds=true
gtk-sound-theme-name=freedesktop
In GNOME, these settings are managed by gnome-settings-daemon, and the configuration is available in GSettings under the
org.gnome.desktop.sound
schema.
systemd
To enable bootup, shutdown and reboot sounds using canberra,
enable
canberra-system-bootup.service
.
See also
Libcanberra Reference Manual
LilyPond

LilyPond
is a free score writing application.
Its input is a plain text file in the LilyPond music writing format, and its output is in either PostScript or PDF.
Installation
Install
the
lilypond
package.
Front-ends
Denemo
— Supports keyboard, MIDI and acoustic input, written in C.
http://denemo.org/
||
denemo
AUR
Frescobaldi
— Provides music view with two-way point & click, MIDI capturing and playback, written in Python with PyQt.
https://www.frescobaldi.org/index.html
||
frescobaldi
Usage
Create a test file like:
test.ly
{
 c' e' g' e'
}
To compile it, use:
$ lilypond test.ly
It will create
test.pdf
and
test.ps
files that contain your score.
LilyPond provides
musicxml2ly(1)
to convert
MusicXML
to the LilyPond format.
For more information, see
info lilypond
,
lilypond(1)
and the
documentation
.
Text editor support
LilyPond comes with modes for
Emacs
and
Vim
, see the
documentation
.
For Vim see the filetype plugin
/usr/share/vim/vimfiles/ftplugin/lilypond.vim
for the available key mappings.
Emacs lilypond-mode
lilypond
package installs some
Emacs
files including
/usr/share/emacs/site-lisp/lilypond-mode.el
.
To use
lilypond-mode
, firstly
M-x load-library <RET> lilypond-mode <RET>
then again
M-x lilypond-mode <RET>
.
NeoVim
nvim-lilypond-suite
is a plugin for writing LilyPond scores with asynchronous make, midi/MP3 player, "hyphenation" function for lyrics, fast syntax highlighting... This repository also contains an ftplugin for
LaTeX
files which allows embedded LilyPond syntax highlighting, and makeprg which support
lilypond-book
or
lyluatex-git
AUR
package out of the box.
See also
Wikipedia:LilyPond
List of applications/Multimedia#Scorewriters
Linux firmware

Related articles
Kernel
Microcode
fwupd
Linux firmware
is a collection of firmware
binary blobs
distributed alongside the
kernel
, necessary for partial or full functionality of certain hardware devices. These binary blobs were never permitted to include in a
GPL
'd work, but have been permitted to redistribute under separate cover.
Typical kinds of hardware requiring
firmware
:
GPUs
,
Wired
network adapters,
Wireless
network adapters,
Bluetooth
controllers,
Sound cards—
professional audio
or onboard audio.
Installation
Install
the
linux-firmware
meta package
to pull all commonly used firmware. This is the recommended way for most users. To save some space you could opt into installing firmware only for individual hardware vendors your system uses.
Warning
Lack of necessary firmware could make your system inoperable.
Primary packages pulled by
linux-firmware
:
linux-firmware-amdgpu
—
AMD
Radeon GPUs,
linux-firmware-atheros
—
Qualcomm Atheros
Wi-Fi and Bluetooth adapters,
linux-firmware-broadcom
—
Broadcom
and
Cypress
network adapters,
linux-firmware-cirrus
—
Cirrus Logic
audio devices,
linux-firmware-intel
—
Intel
audio devices, Bluetooth adapters, GPUs, network adapters, NPUs, webcams and other various devices,
linux-firmware-mediatek
—
MediaTek
and
Ralink
network adapters,
linux-firmware-nvidia
—
NVIDIA
GPUs and SoCs,
linux-firmware-other
— unsorted various devices,
linux-firmware-radeon
—
ATI
Radeon GPUs,
linux-firmware-realtek
—
Realtek
network and Bluetooth adapters.
Optional packages:
linux-firmware-liquidio
—
Cavium
LiquidIO server adapters,
linux-firmware-marvell
—
Marvell
network adapters,
linux-firmware-mellanox
—
Mellanox
Spectrum switches,
linux-firmware-nfp
—
Netronome
Flow Processors,
linux-firmware-qcom
—
Qualcomm
SoCs,
linux-firmware-qlogic
—
QLogic
networked devices.
Third-party packages:
alsa-firmware
— loader programs in
alsa-tools
and hotplug firmware loader, see
ALSA#Firmware
,
sane-gt68xx-firmware
—
gt68xx
-based scanners,
sigrok-firmware-fx2lafw
—
FX2 logic analyzers
,
sof-firmware
—
Sound Open Firmware
.
Tips and tricks
Detecting loaded firmware
Sometimes you want to know what firmware is loaded by your system, for debugging or to pick firmware packages to install. That could be achieved using
dynamic debug
:
Add
dyndbg="func fw_log_firmware_info +p"
to the
kernel parameters
.
Note
The quotes may need to be escaped depending upon
boot loader
.
List
loaded firmware
after modifying the kernel parameters:
# journalctl -kg 'loaded f'
Jan 01 00:00:00 example kernel: amdgpu 0000:03:00.0: Loaded FW: amdgpu/psp_13_0_0_sos.bin, sha256:
SHA_sum
Jan 01 00:00:00 example kernel: amdgpu 0000:6d:00.0: Loaded FW: amdgpu/vcn_3_1_2.bin, sha256:
SHA_sum
…
Jan 01 00:00:00 example kernel: bluetooth hci0: Loaded FW: mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin, sha256:
SHA_sum
Jan 01 00:00:00 example kernel: mt7921e 0000:0a:00.0: Loaded FW: mediatek/WIFI_RAM_CODE_MT7922_1.bin, sha256:
SHA_sum
…
See also
Gentoo:Linux firmware
List of applications

Documents
–
Internet
–
Multimedia
–
Science
–
Security
–
Utilities
–
Other
Related articles
Core utilities
List of games
This article is a general list of applications sorted by category, as a reference for those looking for packages. Many sections are split between console and graphical applications. Applications listed in "Console" sections can have graphical front-ends, official ones are currently omitted.
Tip
Please consider
installing
the
pkgstats
package, which provides a
timer
that sends a list of the packages installed on your system, along with the architecture and the mirrors you use, to the Arch Linux developers in order to help them prioritize their efforts and make the distribution even better. The information is sent anonymously and cannot be used to identify you. You can view the collected data at the
Statistics page
. More information is available in
this forum thread
.
Daemon packages usually include the relevant systemd unit file to
start
; some packages even include different ones. After installation
pacman -Qql
package
| grep -Fe .service -e .socket
can be used to check and find the relevant one.
The content is split into the following subpages for individual categories (also accessible via the navigation bar at the top of the page and each subpage):
/Documents
/Internet
/Multimedia
/Science
/Security
/Utilities
/Other
Generic software lists
Wikipedia:Portal:Free and open-source software
Wikipedia:List of free and open-source software packages
Wikipedia:List of GNU packages
AlternativeTo
— Linux alternatives to popular applications
Awesome Linux Software
— Collection of Linux applications and tools
Linux Alternative Project
— Linux equivalents to Windows software
Linux Links Directory
— Linux applications directory
Open Source Alternative
— Alternatives to commercial software
Software lists of other distributions
AppImageHub
Flathub
Snapcraft
Debian packages
and
screenshots
Fedora packages
Gentoo packages
openSUSE Software
Ubuntu packages
Specialized software lists
awesome-linuxaudio
— Software for audio/video/live production
awesome-selfhosted
— Network services and web applications
awesome-shell
— Command-line frameworks, toolkits and guides
awesome-sysadmin
— Software for system administrators
GNOME applications
KDE Applications
Inconsolation
— Lightweight and minimalist applications reviews
K.Mandla's blog
— Console applications screenshots and reviews
Libre Projects
— Open source hosted web services
LinApp
— Commercial applications and games for Linux
PRISM Break
— Software against mass surveillance
Privacy Guides
— Ad-Free Privacy Tool/Service Recommendations
Software forges
From
Wikipedia
:
a
forge
is a web-based collaborative software platform for both developing and sharing computer applications.
For a list of self-hostable software forges, see
List of applications/Utilities#Code forges
.
Codeberg
GitHub
GitLab
Launchpad
SourceHut
List of programming languages

Related articles
Debug adapter protocol
Formatter
Language Server Protocol
Lint
List of applications/Utilities#Development
This page attempts to list all
programming languages
—including
domain-specific
ones—with a compiler or interpreter packaged for
Arch Linux
. For the list of
shell languages
see
Command-line shell#List of shells
.
Ada
Agda
—
agda
APL
—
gnu-apl
AUR
,
dyalog-bin
AUR
BQN
—
cbqn-git
AUR
J
—
j9-git
AUR
Arturo
—
arturo
AUR
Assembly
—
as
of
binutils
,
fasm
,
nasm
,
yasm
AWK
Ballerina
—
ballerina-bin
AUR
BASIC
—
freebasic
AOZ Studio
Gambas
QB64
—
qb64
AUR
Beef
—
beeflang-git
AUR
C
—
GCC
,
Clang
C#
—
Mono
,
.NET
C++
—
GCC
,
Clang
HolyC
—
holyc-lang-git
AUR
,
aiwnios
AUR
Objective-C
—
GCC
,
Clang
C3
—
c3c
Chapel
—
chapel
AUR
ChucK
—
chuck
COBOL
—
gcc-gcobol
Crystal
Csound
—
csound
D
Dafny
—
dafny-bin
AUR
Dart
—
dart
Elm
—
elm-bin
AUR
Erlang
Elixir
Gleam
—
gleam
F*
—
fstar-bin
AUR
Factor
—
factor
AUR
Faust
—
faust
Flix
—
flix
AUR
Forth
—
4th
AUR
,
gforth
AUR
,
retroforth
AUR
Fortran
Futhark
—
futhark-bin
AUR
GDL
—
gnudatalanguage
AUR
Go
Hare
—
hare
AUR
Haskell
Haxe
—
haxe
Icon
—
icon
AUR
Idris
—
idris
,
idris2
AUR
Java
Groovy
—
groovy
JavaScript
—
rhino
,
v8-r
AUR
,
quickjs
AUR
Node.js
jq
—
jq
Julia
Kotlin
—
kotlin
Lean
Lisp
dialects
Clojure
Jank
—
jank-git
AUR
Common Lisp
Emacs Lisp
Fennel
—
fennel
Janet
—
janet-lang
AUR
LFE
—
lfe
AUR
newLISP
—
newlisp
AUR
PicoLisp
—
picolisp
AUR
Racket
—
racket
,
racket-minimal
Scheme
Lobster
—
lobster-language
AUR
Lua
ML
F#
—
dotnet-sdk
OCaml
—
ocaml
Standard ML
—
smlnj
,
mlton
,
polyml
,
mosml
AUR
,
smlsharp
AUR
Mercury
—
mercury
AUR
Modula-2
—
gcc-m2
Mojo
—
mojo-git
AUR
Neko
—
neko
Nim
—
nim
Nix
Numbat
—
numbat
Octave
Odin
—
odin
Pascal
—
fpc
,
lazarus
Perl
Raku
—
rakudo
AUR
PHP
Pike
—
pike
AUR
Pony
—
ponyc
Prolog
—
swi-prolog
,
gprolog
AUR
,
scryer-prolog
AUR
Pure
—
pure
AUR
PureScript
—
purescript-bin
AUR
Python
QCL
—
qcl
AUR
R
Red
—
red
AUR
Roc
—
roc-nightly-bin
AUR
Ruby
Rust
Scala
Scratch
—
scratch
Smalltalk
—
pharo-launcher
AUR
,
squeak-vm
Solidity
—
solidity
AUR
Squirrel
—
squirrel
AUR
Swift
Tcl
—
tcl
Unison
—
ucm-bin
AUR
V
—
vlang
AUR
Vala
—
vala
Zig
See also
Wikipedia:Comparison of programming languages
Wikipedia:History of programming languages
Wikipedia:List of programming languages
Wikipedia:List of programming languages by type
LLVM

Related articles
C
GNU Compiler Collection
From
Wikipedia
:
The LLVM compiler infrastructure project is a "collection of modular and reusable compiler and toolchain technologies" used to develop compiler front ends and back ends.
Toolchain
This article or section needs expansion.
Reason:
Add
openmp
,
ldc
,
emscripten
. (Discuss in
Talk:LLVM
)
Clang
— C language family frontend for LLVM.
https://clang.llvm.org/
||
clang
lld
— High-performance linker from the LLVM project.
https://lld.llvm.org/
||
lld
LLDB
— High-performance debugger for C, Objective-C and C++.
https://lldb.llvm.org/
||
lldb
llvm
— Compiler infrastructure and extra tools.
https://lld.llvm.org/
||
llvm
libc++
— LLVM C++ standard library, including full support for C++11 and C++14.
https://libcxx.llvm.org/
||
libc++
libclc
— Library requirements of the
OpenCL
C
programming language.
https://libclc.llvm.org/
||
libclc
Polly
— High-level loop and data-locality optimizer and optimization infrastructure for LLVM.
https://polly.llvm.org/
||
polly
See also
https://llvm.org/
LMMS

This article or section needs language, wiki syntax or style improvements. See
Help:Style
for reference.
Reason:
More a scratchpad than an article (Discuss in
Talk:LMMS
)
LMMS
is a free cross-platform software which allows you to produce music with your computer. This covers creating melodies and beats, synthesizing and mixing sounds and arranging samples. You can have fun with your MIDI keyboard and much more – all in a user-friendly and modern interface. Furthermore LMMS comes with many ready-to-use instrument and effect plugins, presets and samples.
Installation
Install
lmms
, or
lmms-git
AUR
for the development version. See
[1]
for release notes.
As always, if you want to use multiple audio applications simultaneously but your hardware does not natively support this, you will need either a
usermode sound server
, or to configure
ALSA dmix
.
MIDI and soundfonts
Depending on your setup and the installation method, you might need to manually setup a
soundfont
and
Timidity
.
Then, you will need to edit the FluidSynth configuration file:
/etc/conf.d/fluidsynth
. For the audio driver, choose the sound server that you installed.
Start
the
user service
fluidsynth.service
.
When LMMS starts, it will prompt you with the settings. Go to the audio settings, choose the same interface that you set for FluidSynth, and restart LMMS if you made a switch.
Troubleshooting
Some users are having troubles with drag-and-drop support on Wayland. To restore this functionality, you can try setting the environment variable
QT_QPA_PLATFORM=xcb
to let LMMS start in
Xwayland
.
Localization

Localization
(often abbreviated as l10n) and
internationalization
(often abbreviated as i18n) "are means of adapting computer software to different languages, regional peculiarities and technical requirements of a target locale." –
Wikipedia:Internationalization and localization
Subpages listed below contain instructions on localization of your system to specific languages:
Arabic
Arabic (العربية)
Bengali
Chinese
Chinese (Español)
Esperanto
Indic
Japanese
Korean
Korean (한국어)
Russian (Русский)
Simplified Chinese
Simplified Chinese (简体中文)
Sinhalese
Traditional Chinese (正體中文)
Fonts
See
Fonts#Non-latin scripts
for a non-exhaustive list of available non-Latin fonts.
Locale
See
Locale
for help with adding non-Latin language support to your system.
Input method
See
Input method
for help with non-Latin text input.
Keyboard layouts
See
Keyboard configuration in console
and
Keyboard configuration in Xorg
.
See also
Gentoo:Localization
Wikipedia:Internationalization and localization
XSETTINGS Specification
Running and Debugging GTK Applications
locate

Related articles
find
Core utilities
List of applications/Utilities#File searching
locate
is a common Unix tool for quickly finding files by name. It offers speed improvements over the
find
tool by searching a pre-constructed database file, rather than the
filesystem
directly. The downside of this approach is that changes made since the construction of the database file cannot be detected by
locate
. This problem can be minimised by scheduled database updates.
Over time, alternative implementations have replaced one another, from
slocate
(secure locate) that only showed files accessible to the user, to
mlocate
(merging locate) that merges databases at each update (which offers a performance speedup since it can skip previously examined files). The most recent iteration is
plocate
(posting locate), which is based on
posting lists
, consuming the database ahead of time, thus making a much faster (and smaller) index out of it.
Installation
Install
the
plocate
package.
While the
GNU findutils
also include a
locate
implementation, Arch's
findutils
package does not.
Usage
Before
plocate(1)
can be used, the database will need to be created, this is done with the
updatedb(8)
command, which (as the name suggests) updates the database.
plocate
contains a
plocate-updatedb.timer
unit, which invokes a database update each day and is enabled upon installation.
Start
it manually if you want to use it before reboot. You can also manually run
updatedb
as root at any time.
To save time,
updatedb
can be (and by default is) configured to ignore certain filesystems and paths by editing
/etc/updatedb.conf
.
updatedb.conf(5)
describes the semantics of this file. It is worth noting that among the paths ignored in the default configuration (
PRUNEPATHS
) are
/media
and
/mnt
, so
locate
may not discover files on external devices.
Troubleshooting
Btrfs
The default configuration prevents
Btrfs
filesystems from being included in the results. To allow including btrfs mountpoints, add:
/etc/updatedb.conf
PRUNE_BIND_MOUNTS = "no"
Note of course that this also means other bind mountpoints also will be included. If you need to exclude these mountpoints, the
PRUNEPATHS
setting in the same configuration file can be used.
See also
How locate works and rewrite it in one minute
Logitech G300

Installation
Install
ratslap
AUR
for drivers for the mouse. It can change colors, binding, and even create custom macros. After installation, use the
ratslap
binary to change the mouse.
Alternative script
Alternatively, if using the buttons is not required, disabling them with the following script allows using it as a simple mouse without requiring the installation of
ratslap
AUR
.
G300 is recognized as both mouse and keyboard, you can check with:
$ xinput list | grep G300
We have to disable the G300 keyboard to make it work correctly as follows:
#!/bin/sh
DEVICE_ID=$(xinput list |  grep "Logitech Gaming Mouse G300" | grep keyboard | sed 's/.*id=\([0-9]*\).*/\1/')

if xinput -list-props $DEVICE_ID | grep "Device Enabled" | grep "1$" > /dev/null
then
        xinput set-int-prop $DEVICE_ID "Device Enabled" 8 0
fi
Make this
executable
and run it to see if everything is working. You can also put it into your xinitrc.d to make it load automatically.
Another shorter version:
#!/bin/sh
G300ID=$( xinput --list | grep G300.*Keyboard | cut --field 2 | tr --delete "id=" )

let $( xinput --list-props $G300ID | grep "Device Enabled" | cut --field 3 ) && xinput --disable $G300ID
Logitech M570

The
Logitech M570
is a wireless trackball mouse. It is quite similar to the
Logitech Marble Mouse
.
Installation
No additional drivers need to be installed.
Configuration
Temporary
The factual accuracy of this article or section is disputed.
Reason:
Why not with libinput? See
Libinput#Configuration
(Discuss in
Talk:Logitech M570
)
If the system is not using
libinput
, the mouse can be configured on the fly using a script such as:
#!/bin/sh
dev="Logitech M570"
we="Evdev Wheel Emulation"

xinput set-int-prop "$dev" "$we" 8 1
xinput set-int-prop "$dev" "$we Button" 8 3
Permanent
To make the changes permanent, either a script such as the one above has to be run at startup/login or changes can be made to the
Xorg configuration files
. When changing the configuration files, the product name as reported by Xorg has to be known and used. Typically, your M570 should be known as
Logitech M570
, however, it can be valuable to check
/var/log/Xorg.0.log
for the match product name.
In the two configuration files below, only the essential changes are made to get button scrolling to work. Other worthwhile options are:
Option "EmulateWheelInertia" "5"
Option "EmulateWheelTimeout" "100"
It is important to find out if your system is using
only
evdev or libinput
and
evdev. See
Xorg#Input devices
for how to check the driver in use.
Changes made to Xorg configuration files do not take effect until the X session is restarted. To restart the X session, simply log out from your window manager and log back in.
Using libinput
Create a configuration file for libinput to recognise it:
/etc/X11/xorg.conf.d/41-libinput.conf
Section "InputClass"
        Identifier      "Logitech M570"
        MatchProduct    "Logitech M570"
        Driver          "libinput"
        Option          "ScrollMethod" "button"
        Option          "ScrollButton" "3"
	Option		"MiddleEmulation" "on"
EndSection
Using evdev
Create a configuration file for evdev to recognise it:
/etc/X11/xorg.conf.d/10-evdev.conf
Section "InputClass"
    Identifier      "Logitech M570"
    MatchProduct    "Logitech M570"
    Driver          "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "3"
EndSection
See also
Scroll Like A Ninja - Logitech M570 Trackball & Linux Mint
Ubuntu documentation
Logrotate

Related articles
Cron
systemd/Timers
From
https://github.com/logrotate/logrotate
:
The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files. Logrotate allows for the automatic rotation compression, removal and mailing of log files. Logrotate can be set to handle a log file daily, weekly, monthly or when the log file gets to a certain size.
By default, logrotate's
rotation
consists of renaming existing log files with a numerical suffix, then recreating the original
empty
log file. For example,
/var/log/syslog.log
is renamed
/var/log/syslog.log.1
. If
/var/log/syslog.log.1
already exists from a previous rotation, it is first renamed
/var/log/syslog.log.2
. (The number of backlogs to keep can be configured.)
Installation
Logrotate can be installed with the
logrotate
package.
By default, logrotate runs daily using a
systemd timer
:
logrotate.timer
.
Configuration
The primary configuration file for logrotate which sets default parameters is
/etc/logrotate.conf
; additional application-specific configuration files are included from the
/etc/logrotate.d
directory. Values set in application-specific configuration files override those same parameters in the primary configuration file. See
logrotate.conf(5)
for configuration examples and a reference of available directives.
To verify if logrotate works correctly, run it in debug mode, in this mode it does nothing except producing debug output:
$ logrotate --debug /etc/logrotate.conf
Compressing logs
Logrotate can compress logs with a custom command like
zstd
.
/etc/logrotate.conf
compress
compresscmd /usr/bin/zstd
compressext .zst
compressoptions -T0 --long
uncompresscmd /usr/bin/unzstd
See
logrotate.conf(5)
and
zstd(1)
for more details.
Usage
logrotate is usually run through the
systemd
service:
logrotate.service
.
To run logrotate manually:
# logrotate /etc/logrotate.conf
To rotate a single log file:
# logrotate /etc/logrotate.d/mylog
To simulate running your configuration file (
dry run
):
# logrotate --debug /etc/logrotate.d/mylog
To force running rotations even when conditions are not met, run:
# logrotate -vf /etc/logrotate.d/mylog
See
logrotate(8)
for more details.
Troubleshooting
exim log not rotated
If you have set the
olddir
variable in
/etc/logrotate.conf
, you will get a message such as:
error: failed to rename /var/log/exim/mainlog to /var/log/old/mainlog.1: Permission denied
To fix this, add the user
exim
to the group
log
. Then change the group of the
olddir
, usually
/var/log/old
, to
log
instead of the default
root
.
Check logrotate status
Logrotate rotations are usually logged to
/var/lib/logrotate.status
(the
-s
option allows you to specify another state file):
/var/lib/logrotate.status
"/var/log/mysql/query.log" 2016-3-20-5:0:0
"/var/log/samba/samba-smbd.log" 2016-3-21-5:0:0
"/var/log/httpd/access_log" 2016-3-20-5:0:0
...
Skipping log because parent directory has insecure permission
Configure which user and which group has to job
/etc/logrotate.d/job
to be run with:
file-to-be-rotated {
    su user group
    rotate 4
}
See also
Gentoo:Logrotate
logrotate(8)
manual page
logrotate.conf(5)
manual page
Logwatch

Logwatch
is a powerful and versatile log parser and analyzer. Logwatch is designed to give a unified report of all activity on a server, which can be delivered through the command line or email.
Installation
Install
logwatch
.
In addition to the logwatch binaries, scripts and configuration files, the package used to include a
cron
job that was installed as
/etc/cron.daily/0logwatch
. You need to
start/enable
logwatch.timer
to generate regular logwatch reports.
Configuration
Logwatch has a tiered configuration approach. There are several locations where configuration details can be specified, with each one superseding the previous one:
/usr/share/logwatch/default.conf/*
/etc/logwatch/conf/dist.conf/*
/etc/logwatch/conf/*
The script / command line arguments
Logwatch will parse all these location when called.
Within these directories, there are several areas of configuration. The
logwatch.conf
files are where most of the high-level settings are, which allow you to set where your reports are sent, how they are formatted, etc. The configuration file at
/usr/share/logwatch/default.conf/logwatch.conf
contains all the default settings and comments on what they do. It is recommended to leave the default configuration alone and instead re-define a setting variable you want to change in
/etc/logwatch/conf/logwatch.conf
.
Within the
logfiles
directory of any locations are configuration files detailing specific log files. By default, most of the common log files found in a Linux system are already accounted for. If you have some esoteric application that does not have a log file configuration already, copy an existing one from the
default.conf/logfiles
directory and customize it for your application.
The
services
folder contains similar definitions, but these one define the various services reported by logwatch. This is necessary because often multiple services will report to the same log (e.g. messages,
dmesg
, boot, etc.). For more information, examine some of the default
services
files.
Note that if you want logwatch messages delivered by email, you need to install a package that provides a sendmail frontend.
Postfix
is a good choice.
There is a helpful document supplied with the package to give further information on configuration. It is located at
/usr/share/logwatch/HOWTO-Customize-LogWatch
.
Lout

Lout
is a lightware document formatting system invented by Jeffrey H. Kingston. It reads a high-level description of a document similar in style to
LaTeX
and produces a PostScript.
Installation
Install
the
lout
package.
In order to enable cyrillic printout, fonts need to be installed separately (e.g
lout-dejavu-git
AUR
).
Usage
Lout supports only one byte encoding, thus you need to use specific character map in case of non-english input.
example.lout
@SysInclude {doc}
@SysInclude {dejavu}
@Document
  @InitialFont { DejaVuSerif Base 12p}
  @InitialLanguage { Russian }
@Text @Begin

@Display @Heading {Russian language example}

@LP
Параграф на русском языке.

@End @Text
iconv
could be used to obtain required encoding, before feed source to lout:
$ iconv -f utf-8 -t koi8-r example.lout example.koi8-r.lout
$ lout  example.koi8-r.lout example.ps
Ps2pdf
can be used to convert postscript to pdf:
$ ps2pdf example.ps example.pdf
See also
A User's Guide to the Lout Document Formatting System
An Expert’s Guide to the Lout Document Formatting System
Lout on Wikipedia
Lua

Related articles
List of programming languages
According to
lua.org
:
Lua
is a powerful, efficient, lightweight, embeddable scripting language.
This makes Lua ideal for configuration and extensions of other programs, also because of its great interoperation with
C
.
The basic Lua interpreter is less than 250K in size. As the official implementation is written in
ANSI C
it is available for many platforms and architectures.
Installation
There are multiple versions available:
lua
— Lua 5.5
lua54
— Lua 5.4
lua53
— Lua 5.3
lua52
— Lua 5.2
lua51
— Lua 5.1
JIT compilation support
Just-in-time compilation
is a method of compiling source code at run-time, rather than before.
LuaJIT
is a drop-in replacement for Lua 5.1. This version is best suited for higher performance constraints.
For JIT compilation support
install
the
luajit
package.
Modules
The
LuaRocks
package manager is available as
luarocks
.
Some modules are also available
in the official repositories
.
See also
Lua reference manuals
.
Ly

Related articles
Display manager
Ly
is a lightweight TUI (ncurses-like) display manager for Linux and BSD, designed with portability in mind (e.g. it does not require systemd to run).
Installation
Install
the
ly
package. for xserver support install
xorg-xauth
Dependencies
For the full
Ly
experience, Optionally install
brightnessctl
and
durdraw
AUR
for screen brightness changer and custom animations.
Usage
Two steps are required to start
Ly
at boot. First make sure to
enable
ly@tty
X
.service
, then
disable
getty@tty
X
.service
where
X
stands for a number from 1 to 6.
If you use systemd-logind to dynamically start
autovt@.service
instances when the switch to a new TTY occurs, any
ly
instances for TTYs except the default TTY need to be enabled using a different mechanism, see
Ly documentation
for instructions and
systemd#Using units
for information on template units.
Configuration
System-wide ly configuration files are in
/etc/ly/config.ini
while user configuration files are in
~/.config/ly
See also
official Ly repository
Ly on Github (mirror)
emptty Display Manager
Lemurs Display Manager
MacBookPro13,3

Hardware
PCI/USB ID
Working?
Touchpad
PS/2
Yes
Keyboard
PS/2
Yes
Touchbar
05ac:1281
No
Wi-Fi
14e4:4331
Yes
Bluetooth
Untested
Webcam
Untested
GPU (Intel)
8086:191b
Yes
GPU (AMD)
1002:67ef
Yes
Audio
No
Microphone
Untested
Thunderbolt
8086:15d4
Untested
Suspend
No
This page covers the following Apple models:
MacBookPro13,3 15" Late 2016
This laptop has been vastly documented over at
https://github.com/Dunedan/mbp-2016-linux
Installation
Unless you have a local repository on a USB disk, you need a USB to Ethernet adapter or a USB wireless adapter supported natively by the kernel to easily install Arch Linux, since you have to configure the Wi-Fi as per
#Wi-Fi
via
kernel parameters
otherwise
Accessibility
Macs such as this one generally have an intuitive way of booting to an Arch installation medium. Hold
Alt
as you are booting the laptop and it will open a graphical boot device selection screen.
The arrow keys are used to select between boot devices. Go to the selection that states
EFI Boot
with the icon of a USB drive after inserting the installation medium into the computer.
Wi-Fi
The wireless card works out of the box with
brcmfmac
, however has bad performance unless you set
kernel parameters
as per
Broadcom wireless#BCM43602 802.11ac Wireless LAN SoC
Touchpad and keyboard
The touchpad and keyboard works out of the box. Note that the keyboard depended on the touchbar for its function keys which currently does not work.
The keyboard backlight does not work (no solution yet).
Touchbar
Currently there is no support for the touchbar for T1-based MacBooks.
lspci
shows the touchbar as an "Apple, Inc. Apple Mobile Device [Recovery Mode]":
$ lspci
Bus 001 Device 003: ID 05ac:1281 Apple, Inc. Apple Mobile Device [Recovery Mode]
Audio
The factual accuracy of this article or section is disputed.
Reason:
The linked GitHub repository states audio should be working on this model, the table in
Laptop/Apple
showed audio as working before the last edit from this page author. (Discuss in
Talk:MacBookPro13,3
)
Audio from speakers and headphones
do not
work. External DACs for audio playback works fine otherwise.
Suspend
Suspend / hibernate does not work. The problem seems to be the NVMe that does not wake up. A potential solution to this has been offered, at
https://bbs.archlinux.org/viewtopic.php?pid=2176149#p2176149
.
When booting from an external drive, suspend / hibernate works out of the box.
Firmware
It is recommended to download the latest MacOS (Monteray) before wiping the device to install Linux on it. This will install the latest firmware for the Macbook.
fwupd
supports this device and lists the following devices:
fwupdmgr get-devices
Apple Inc. MacBookPro13,3
│
├─APPLE SSD SM0512L:
├─Apple Mobile Device (Recovery Mode):
├─Core™ i7-6820HQ CPU @ 2.70GHz:
├─ME: 
└─Radeon RX Graphics:
  └─Unknown Device:
Function keys
Normally, the Touchbar is used as function keys. As the touchbar currently does not work, there is no support for function keys.
See also
Mac
Laptop/Apple
https://github.com/Dunedan/mbp-2016-linux
Hardware Probe
Machine-check exception

This article aims to help users implement services to actively monitor, log, and report hardware errors. A machine check exception (MCE) is an error generated by the CPU when the CPU detects that a hardware error or failure has occurred.
Machine check exceptions (MCEs) can occur for a variety of reasons ranging from undesired or out-of-spec voltages from the power supply, from cosmic radiation flipping bits in memory DIMMs or the CPU, or from other miscellaneous faults, including faulty software triggering hardware errors.
Installation
Install
the
rasdaemon
AUR
package.
rasdaemon
written by Mauro Carvalho Chehab is one of the tools to gather MCE information.
Previously, the task was performed by the
mcelog
package. However, it has been deprecated, and Arch kernels are not even compiled with the necessary configuration option CONFIG_X86_MCELOG_LEGACY (
FS#55657
) now.
Configuration
There are two systemd services that need to be
started
and enabled.
ras-mc-ctl.service
registers DIMM labels (from
/etc/ras/dimm_labels.d/
) with EDAC drivers. On consumer-grade motherboards it usually logs a
No dimm labels for <motherboard model>
error and does nothing.
rasdaemon.service
runs as a daemon and logs RAS events to
systemd journal
.
See
ras-mc-ctl(8)
and
rasdaemon(1)
for more information.
Usage
You can use
ras-mc-ctl --error-count
and
ras-mc-ctl --summary
to quickly glance at the recorded errors. Errors are logged to the journal as well as the sqlite database at
/var/lib/rasdaemon/ras-mc_event.db
.
The schema of the sqlite database is changing often; after deleting the sqlite database file, restarting the rasdaemon service will create a fresh sqlite database file with the correct schema.
See also
Wikipedia:Machine_Check_Exception
Wikipedia:Machine_check_architecture
Rasdaemon initial announcement
Monitoring ECC memory on Linux with rasdaemon
Hardware documentation
AMD64 Architecture Programmer's Manual, Volume 2: System Programming
BIOS and Kernel Developer's Guide for AMD Athlon™ 64 and AMD Opteron™ Processors