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

Ganglia
is a scalable distributed system monitor tool for high-performance computing systems such as clusters and grids. It allows the user to remotely view live or historical statistics (such as CPU load averages or network utilization) for all machines that are being monitored.
The
Ganglia Wiki
contains all the information you need to get started with Ganglia.
Installation
Ganglia can be
installed
with the
ganglia
AUR
package, along with the web frontend
ganglia-web
AUR
. There is also a reduced-dependency version named
ganglia-minimal
AUR
for headless systems.
Ganglia Web Interface
The ganglia web frontend is available as the
ganglia-web
AUR
package on the AUR.
You will also need a
web server
with a working
PHP
setup. The following sections include some example setups.
Make sure that the
open_basedir
setting in your
/etc/php/php.ini
includes
/tmp
,
/usr/share/webapps
and
/var/lib/ganglia
.
Nginx with php-fpm
Firstly, install the
nginx
and
php-fpm
packages.
Secondly, read the
nginx
article. Note its
nginx#FastCGI
and subsequent php-fpm sections.
nginx#nginx configuration
details a minimum
nginx.conf
to use.
An older minimal configuration for nginx would be something like this:
/etc/nginx/nginx.conf
events {
  worker_connections  1024;
}

http {
  include mime.types;
  default_type application/octet-stream;

  upstream php {
    server unix:/run/php-fpm/php-fpm.sock;
  }

  server {
    listen 80 default_server;

    root /usr/share/webapps;
    index index.php;

    location ~ \.php$ {
      fastcgi_pass php;
      include fastcgi.conf;
    }
  }
}
Then
start
gmetad.service
,
gmond.service
,
php-fpm.service
and
nginx.service
.
Go to
http://localhost/ganglia
and check that your setup is working.
Troubleshooting
Issues with IP-address binding or undesirable hostnames
If
bind_hostname = yes
in the
udp_send_channel
section of
gmond.conf
, the
gmond
daemon will determine which
IP
to bind to (and report in the XML data) by determining the IP address of the default hostname.  You should be able to replicate this behaviour with one of these commands:
$ hostname -i
$ host $(hostname)
The
hostname
to report is determined by asking the system to look up a hostname for the chosen IP address, in order to ensure the hostname is that by which other machines on the network identify the monitored machine:
$ host <ip-address>
The hostname listed at the top of the list is the one that will be reported by
gmond
, and will appear in the web UI.  You can influence the returned hostname by modifying your
/etc/hosts
or
/etc/nsswitch.conf
files.  In particular, watch out for placing
myhostname
before
dns
on the
hosts
line in
/etc/nsswitch.conf
.  This will cause
gmond
to attempt to bind to a UDP port on 127.0.0.1, and it will fail to load.
If you are not able to achieve the desired behaviour, the hostname can be overridden in the
gmond.conf
file by adding the following lines to the
globals
section:
globals {
  ...
  override_hostname = myhostname.mydomain
  override_ip = 127.0.0.2
}
See also
E-mail exchange explaining IP and Hostname lookup:
https://www.mail-archive.com/ganglia-general@lists.sourceforge.net/msg01885.html
gcin

Gcin
is a new generation of Chinese
input method
server developed by Edward Liu. Gcin supports various input methods and works under most Unix-like operating systems. It is one of the most popular Chinese input engines in Taiwan.
Installation
Install
the
gcin
package.
Configuration
Set the following
environment variables
:
GTK_IM_MODULE=gcin
QT_IM_MODULE=gcin
XMODIFIERS=@im=gcin
LC_CTYPE=zh_TW.UTF-8
And configure gcin to run when the desktop starts. For example, by using
xprofile
:
gcin &
Usage
This article or section is out of date.
Reason:
Still references GTK2, Windows 2000/98 and IE6 for Wine. (Discuss in
Talk:Gcin
)
With GNOME/GTK 2 applications
gcin provides a gtk input module, thus all gtk2-based applications are directly supported, there is no need to configure anything after installation (it is not XIM, and gcin is automatically started when needed).
With other applications
1. Set environment locale to use UTF-8, for example:
export LC_CTYPE=en_US.UTF-8
Note
You must set the LC_CTYPE locale even if it is the same as LANG, otherwise gcin may not be activated in non-gtk2 programs that use x input.
2. Set XMODIFIERS:
export XMODIFIERS=@im=gcin
gcin uses the name "gcin" by default and you can change this with the environment variable GCIN_XIM in order to run multiple gcin instances, for example:
export GCIN_XIM=gcin_zh
export XMODIFIERS=@im=gcin_zh
Remember that gtk2 applications start one instance of gcin automatically if it does not exist.
3. Start gcin:
gcin &
4. Run your applications! If gcin is killed when your applications are running, it is likely to cause crash or other problems.
Additional notes for Wine/Crossover Office
If you run wine or Crossover Office, it is better to use Windows 2000 emulation instead of Windows 98, and you have to start gcin and wine/cxoffice with at least LC_CTYPE=zh_TW.utf8, otherwise wine will not be able to show Chinese correctly.
In wine+IE6 with Windows 98 emulation, LC_CTYPE is not enough if you want to input Chinese on the web-pages - you have to set either LANG or LC_ALL to zh_TW.utf8, which slows down wine a lot. However, you can always type Chinese in the location bar or other places and paste it.
GEDA

This article or section needs expansion.
Reason:
Add Configuration, Create PCB footprint, Export to gerber (Discuss in
Talk:GEDA
)
The gEDA project has produced and continues working on a full GPL'd suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.
(Source:
gEDA homepage
)
Installation
Installing
geda-gaf
AUR
will give you the schematic editor and attribute editor. It may also be necessary to install
ttf-dejavu
and
ttf-liberation
to get the correct font scaling.
Installing
pcb
AUR
will give you the PCB editor.
First PCB
Create schematic symbol
You can create new as you are creating schematics themselves. Open an empty file
$ gschem mysymbol.sym
and add pins with
ap
and attributes with
aa
. Check the
geda wiki
for details. After you are done, do not forget to translate your symbol to absolute zero with
et
. If you do not, your symbol will probably be outside of your viewport once you are going to place it in your schematic.
Save the symbol with
fs
and check it with
$ gsymcheck -vv mysymbol.sym
Schematic search path
Do not forget to place your symbol within the search path of gschem. It may also be helpful to extend this path to a folder in your own project by creating a file named
gafrc
in the project folder with the following content
(component-library "./symbols")
and then copy all symbols required by the project into a subfolder called "symbols".
Create schematic
Run schematic editor:
$ gschem
See also:
FAQ page
Create and route PCB
Once you have reached a point of your schematic where you want to start routing the PCB (you can do this in an iterative fashion), it is time to create a gsch2pcb project. Add the following lines to a newly created file, called
firstpcb.prj
:
schematics firstpcb.sch
empty-footprint nofootprint
output-name firstpcb
This project will read from firstpcb.sch, ignore any parts having a footprint called 'nofootprint' and the output files will start be:
The PCB: firstpcb.pcb
The netlist: firstpcb.net
Pin name commands: firstpcb.cmd
...
If you opted for a local symbols directory, you should include it here. Also you probably want a local footprint directory, too. So add these lines to the prj file:
elements-dir footprints
elements-dir symbols
Now execute gsch2pcb with this project file:
$ gsch2pcb -f firstpcb.prj
gsch2pcb will tell you what to do next or if there were any errors.
Gemini

Gemini
is a new, collaboratively designed internet protocol, which explores the space inbetween
gopher
and the web, striving to address (perceived) limitations of one while avoiding the (undeniable) pitfalls of the other.
agate server
agate
is a simple server for the Gemini hypertext protocol, written in
Rust
. Agate has very few features, and can only serve static files. It uses async I/O, and should be quite efficient even when running on low-end hardware and serving many concurrent requests.
Installation
Install
the
agate
AUR
package.
Configuration
Generate a self-signed TLS certificate and private key. For example, if you have OpenSSL 1.1 installed, you can use a command like the following. (Replace the hostname
example.com
with the address of your Gemini server.)
$ openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem \
     -days 3650 -nodes -subj "/CN=
example.com
"
Run the server. You can use the following arguments to specify the locations of the content directory, certificate and key files, IP address and port to listen on, host name to expect in request URLs, and default language code(s) to include in the MIME type for for text/gemini files: (Again replace the hostname
example.com
with the address of your Gemini server.)
$ agate --content path/to/content/ \
       --key key.rsa \
       --cert cert.pem \
       --addr [::]:1965 \
       --addr 0.0.0.0:1965 \
       --hostname
example.com
\
       --lang en-US
Gemini clients
Terminal clients
amfora
(
Go
), a "fancy" terminal client.
asuka-git
AUR
(
Rust
), an NCurses-based terminal client.
av-98
AUR
(
Python
), a terminal client derived from the popular VF-1 Gopher client.
bombadillo-git
AUR
(
Go
), a combined Gopher and Gemini terminal client with vim-inspired key mappings.
Elpher
(
Emacs
), a combined Gopher and Gemini client for the popular text editor / operating system.
Graphical clients
castor
AUR
(
Rust
,
GTK
), one of the earliest GUI clients, supporting Gemini, Gopher and finger.
kristall
AUR
(
C++
,
Qt
), a combined Gopher and Gemini GUI client.
lagrange
AUR
(
C
,
SDL
), a beautiful tabbed GUI client with prebuilt binaries for Windows and MacOS.
Web proxies
You can use one of the web proxies below to explore Geminispace from your web browser.
Mozz.us portal
geminize
(Firefox extension)
See also
Project Gemini
Awesome Gemini
Gemini clients and servers and software in general
General purpose mouse

GPM, short for General Purpose Mouse, is a daemon that provides mouse support for Linux virtual consoles.
Installation
Install
the
gpm
package. For touchpad support on a laptop, please see
Laptop#Touchpad
.
Configuration
The
-m
parameter precedes the declaration of the mouse to be used. The
-t
parameter precedes the type of mouse. To get a list of available types for the
-t
option, run
gpm
with
-t help
.
# gpm -m /dev/input/mice -t help
The
gpm
package needs to be started with a few parameters. These parameters can be recorded by
creating
the file
/etc/conf.d/gpm
, or used when running
gpm
directly. The
gpm.service
includes the parameters for USB mice (
ExecStart=/usr/bin/gpm -m /dev/input/mice -t imps2
).
Obviously, it should be edited, preferably in a
systemd friendly manner
, if there is another mouse type, and the service is used.
For PS/2 mice, the parameters are:
-m /dev/psaux -t ps2
And IBM Trackpoints need:
-m /dev/input/mice -t ps2
Note
If the mouse has only 2 buttons, pass
-2
to
GPM_ARGS
and second button will perform the paste function.
Once a suitable configuration has been found,
start
and
enable
the
gpm.service
.
For more information see
gpm(8)
.
QEMU or VirtualBox
The default mouse emulated by QEMU and VirtualBox has severe problems in both
gpm
and x with positioning and clicking.  The position becomes unsynchronized with the host, so there are areas that cannot be hovered over without repeatedly exiting and re-entering the window.  Clicks register in a different location than the cursor was showing at.
Both QEMU and VirtualBox solve this problem by providing emulation for a USB tablet, which gives absolute positioning.  (
libvirt
uses this automatically.)
However, the
gpm
only knows how to use the emulated mouse in relative positioning mode, so these problems remain.  Attempting to use other types via
-t
fail to get it working properly.
gpm-vm
AUR
includes a several year old
pull request
to add USB tablet support for VirtualBox (which also works under QEMU) and modifies the
gpm.service
file to use it by default.
You may need to change which event is used.  (Giving
gpm
the original
-m /dev/input/mice
will not work.)  By default:
/etc/gpm-vm.conf
event="/dev/input/event2"
You can determine the event to use by installing
evtest
and running:
# evtest
...
/dev/input/event2:      QEMU QEMU USB Tablet
...
If you need to give
gpm
additional options, you can set
additional_args
in
/etc/gpm-vm.conf
.
Once a suitable configuration has been found,
start
and
enable
the
gpm.service
.
See also
Gentoo:GPM
consolation
AUR
Alternative based on libinput
genfstab

This article or section is a candidate for merging with
fstab#Tips and tricks
.
Notes:
There is not enough content for a separate article. The
genfstab(8)
man page provides everything besides the warnings and examples. (Discuss in
Talk:Genfstab
)
Related articles
fstab
Persistent block device naming
File systems
genfstab(8)
is a
Bash
script that is used to automatically detect all mounts under a given mountpoint, its output can then be redirected into a file, usually
/etc/fstab
.
Installation
It is present by default on Arch installation media and can be
installed
as part of the
arch-install-scripts
package on an already installed system.
There is also a stand alone fork of this tool that can be used on other distributions, you can find it
here
.
Usage
You can get a list of your current mounts by using:
$ genfstab /
The script supports finding mounts by kernel descriptor, device/partition label or device/partition UUID. It will output
kernel descriptor
by default (kernel descriptor being
/dev/
xxx
), you can use
-L
,
-t PARTLABEL
,
-U
or
-t PARTUUID
for file system label, GPT partition label, file system UUID or GPT partition UUID respectively.
Warning
Kernel name descriptors for block devices
are not
persistent
and can change each boot, they should not be used in configuration files (including
/etc/fstab
).
The more common usage scenario would be getting an
fstab
for a
chroot
, for this you would do something like the following:
# mount /dev/sda3 /mnt
# mount --mkdir /dev/sda1 /mnt/efi
$ genfstab -U /mnt
# /dev/sda3
UUID=185aebd2-ce76-47dd-baf4-5ad0a80fa963       /               ext4            rw,noatime      0 1

# /dev/sda1
UUID=E5C7-6DD7          /efi       vfat             rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro   0 2
In this case
genfstab
shows both mounts below the mountpoint
/mnt
and list them by device
UUID
.
Tip
Notice we mounted the device
sda3
into
/mnt
yet genfstab shows it as being the main root mountpoint
/
, this is because it treats the given mountpoint as the root mount.
Usually you would want to redirect the output to a file, this can be achieved with the following:
# genfstab -U /mnt >> /mnt/etc/fstab
Warning
Make sure you create a backup of your existing
fstab
before overwriting it.
Be mindful of where you are saving the fstab file, for example if you want to create it for a chroot then you do not want to overwrite the one on your main installation.
Ghostty

This article is being considered for redirection to
List of applications/Utilities#Terminal
.
Notes:
Duplicates
ghostty(5)
. (Discuss in
Talk:Ghostty
)
Related articles
List_of_applications/Utilities#Terminal
Project's Website
:
Ghostty is a fast, feature-rich, and cross-platform
terminal emulator
that uses platform-native UI and GPU acceleration.
Installation
Install
the
ghostty
package.
Configuration
Note
See
ghostty(5)
or
Ghostty official documentation
for a more in-depth look.
The configuration file,
config
, is loaded from these locations in the following order. Configuration is optional and if no configuration file is found, Ghostty will use its defaults.
$XDG_CONFIG_HOME/ghostty/config
$HOME/.config/ghostty/config
if XDG_CONFIG_HOME is not defined
The full default configuration,
ghostty +show-config --default --docs
. Best viewed with the
less
command.
$ ghostty +show-config --default --docs | less
Basic syntax
# The syntax is "key = value". The whitespace around the
# equals does not matter.
background = 282c34
background=282c34
background =282c34
background= 282c34

# Comments start with a `#`

# Empty values reset the configuration to the default value
font-family =
Font
font-size = 15

font-family = "Monospace"
font-family-bold = "Monospace"
gitfs

From
gitfs
:
gitfs is a FUSE file system that fully integrates with git. You can mount a remote repository’s branch locally, and any subsequent changes made to the files will be automatically committed to the remote.
You can mount any repository, and all the changes you make will be automatically converted into commits. gitfs will also expose the history of the branch you’re currently working on by simulating snapshots of every commit.
gitfs is useful in places where you want to keep track of all your files, but at the same time you don’t have the possibility of organizing everything into commits yourself. A FUSE file system for git repositories, with local cache.
Installation
Install
gitfs
AUR
.
Usage
gitfs enables a user to mount a remote git repository as a
FUSE
filesystem, for example:
$ gitfs https://example.com/repository.git
/mount/directory
See its documentation for
options
.
Troubleshooting
Write access to /var/lib/gitfs
/var/lib/gitfs
needs to exist and is not automatically created. Also, if you want to mount gitfs as a regular user, make sure to make it writable for that user:
# mkdir /var/lib/gitfs
# chown username:users /var/lib/gitfs
Write access to pygit2
On first run gitfs tries to do some self-introspection which fails, if you run it as a regular user. To remedy this, run it once as root. You do not need to actually mount anything. It is enough to show the help message as root:
# gitfs -h
Options for use with ssh key
Gitfs (and pygit2 on which it relies) seems to be under heavy development and options change.
Although
the official docs
state that the option
-o key=
can be used to change the key, it turns out that version 0.4.1-1 from AUR requires the use of
-o ssh_key=
. 
Note that gitfs will not ask for a passphrase, if the key is passphrase protected. It simply returns with the error:
_pygit2.GitError: Failed to authenticate SSH session: Callback returned error
It is recommended to create a separate key for this by issuing:
ssh-keygen
/home/user/.ssh/gitfs_rsa
<empty passphrase>
<empty passphrase again>
See also
git worktree
Glusterfs

Related articles
Ceph
Glusterfs
is a scalable network
filesystem
.
Installation
Install
the package
glusterfs
.
Configuration
Glusterfs can be setup to run in many different configurations depending operating needs, including distributed and replicated.  For the example below, a two node replicated server is being created, with nodes gluster1 and gluster2 each have two disks, one containing the OS (
sda
), the other to be shared by glusterfs (
sdb
).  Unless stated, all setup is carried on gluster1:
Start/enable
glusterd.service
on both servers.
Connect the servers
# gluster peer probe gluster2
Partition and format the glusterfs drive on both servers
The upstream advises creating a single partition and formatting this as
XFS
On both servers automount the drives by
appending
/etc/fstab
to include the following line, where
/dev/sd
XY
is the appropriate device (e.g.,
/dev/sdb1
).
/etc/fstab
/dev/sd
XY
/export/sd
XY
xfs defaults 0 0
On both servers
mount
the drives. Then create a
brick
:
# mkdir -p /export/sd
XY
/brick
Enable replication on primary server
# gluster volume create gv0 replica 2 gluster1.mydomain.net:/export/sdb1/brick gluster2.mydomain.net:/export/sdb1/brick
Ensure volume is created correctly
# gluster volume info
Start volume
# gluster volume start gv0
Mount the volume
# mkdir -p /mnt/glusterClientMount
 # mount -t glusterfs gluster1:/gv0 /mnt/glusterClientMount
Automount gluster volume on boot
To mount a gluster volume on boot, systemd needs to wait for both the network, and the
glusterd
service to be started. You can specify the following fstab options to do this:
/etc/fstab
localhost:/gv0 /mnt/glusterClientMount glusterfs defaults,_netdev,x-systemd.requires=glusterd.service,x-systemd.automount 0 0
See also
Official glusterfs installation guide
Blog covering the setup of Glusterfs on Arch Linux
GnuTLS

According to
Wikipedia
:
GnuTLS
(the
GNU Transport Layer Security Library
) is a free software implementation of the TLS, SSL and DTLS protocols. It offers an application programming interface (API) for applications to enable secure communication over the network transport layer, as well as interfaces to access X.509, PKCS #12 and other structures.
Installation
Install
the
gnutls
package.
For integration with the
Apache HTTP Server
install
mod_gnutls
.
Usage
See
certtool(1)
for the command used in the following sections and the
info document
for the API documentation.
Generate a private key
$ certtool --generate-privkey --outfile
private_key
Generate a certificate signing request
$ certtool --generate-request --load-privkey
private_key
--outfile
file
Generate a self-signed certificate
$ certtool --generate-self-signed --load-privkey
private_key
--outfile
file
Inspect a certificate
$ certtool --certificate-info --infile
file
See also
Official website
GNU Compiler Collection

Related articles
C
LLVM
The
GNU Compiler Collection
(
GCC
) is part of the
GNU toolchain
and includes front ends for
C
and
C++
.
Installation
Install
the
gcc
package.
Other available front-ends are:
gcc-ada
for
Ada
gcc-gcobol
for
Cobol
gcc-d
for
D
gcc-fortran
for
Fortran
gcc-go
for
Go
gcc-m2
for
Modula-2
gcc-objc
for
Objective-C
gcc-rust
for
Rust
Old versions
Old versions of GCC may be useful for historical curiosity, old projects that cannot be compiled on the current versions, or for testing the compatibility of projects:
GCC 14:
gcc14
AUR
GCC 13:
gcc13
AUR
GCC 12:
gcc12
AUR
GCC 11:
gcc11
AUR
GCC 10:
gcc10
AUR
GCC 9:
gcc9
AUR
GCC 8:
gcc8
AUR
GCC 7:
gcc7
AUR
GCC 6:
gcc6
AUR
GCC 5:
gcc5
AUR
GCC 4.9:
gcc49
AUR
GCC 4.8:
gcc48
AUR
GCC 4.7:
gcc47
AUR
GCC 4.6:
gcc46
AUR
GCC 4.5:
gcc45
AUR
GCC 4.4:
gcc44
AUR
GCC 4.3:
gcc43
AUR
Other front-ends for old versions of GCC may be found on the official repositories and the AUR by searching for
gcc<
version_without_period
>
, e.g. searching for
gcc9
for GCC 9 front-ends.
Tip
Use the
CC
(for C)
[1]
and
CXX
(for C++)
[2]
environment variables
to specify which version of GCC will be used with e.g make or cmake. For example:
$ export CC=gcc-12 CXX=g++-12
See also
Info manual
Official website
gcc(1)
GNU Radio

Related articles
DVB-T
RTL-SDR
GNU Radio
is a free & open-source software development toolkit that provides signal processing blocks to implement software radios. It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in hobbyist, academic and commercial environments to support both wireless communications research and real-world radio systems.
Installation
The latest stable GNU Radio version can be
installed
with
gnuradio
.
Bleeding edge is
gnuradio-git
AUR
, and in some cases VOLK may need to be built separately from
libvolk-git
AUR
.
If you want
gnuradio-companion
, just install the
gnuradio-companion
package which will install GNU Radio, as well as some additional required packages.
Another popular package is
gnuradio-osmosdr
which provides the GRC source blocks for many of the popular SDR devices (Funcube Dongle,
RTL-SDR
, USRP, OsmoSDR, BladeRF and HackRF).
Troubleshooting
TypeError: in method 'source_sptr_set_gain_mode', argument 2 of type 'bool'
When using an (osmocom) RTL-SDR source, you might see this error. The workaround is to manually set the Gain Mode to
True
or
False
.
Gobby

From the
project web page
:
Gobby is a collaborative editor supporting multiple documents in one session and a multi-user chat.
Installation
Install
the
gobby
package.
To run the Infininote server protocol without the Gobby front end install
libinfinity
Infininote usage
To start the server portion, run
$ infinoted-0.7 --security-policy=no-tls
The server only needs to be running on one machine.
Then, run the gobby client and connect to the server via IP or localhost.
If you would rather have encryption, TLS is available. Use:
$ infinoted-0.7 --create-key --create-certificate -k key.pem  -c cert.pem
The keys creation is automatic, and you can launch the server just using:
$ infinoted-0.7 -k key.pem  -c cert.pem
See also
Gooby GitHub wiki
Godot Engine

Godot Engine
is an open-source game engine.
Installation
Install
the
godot
package.
Install
the
godot-mono
package for C# programming support.
Install
the
godot-preview-bin
AUR
package for the latest preview version, which offers the latest features but less stability.
Legacy versions
Note
This is not recommended for new projects. Only use for legacy projects and consider porting them to the latest version.
To use version 3 of the engine, install the
godot3
AUR
package.
To use version 2 of the engine, install the
godot2
AUR
package.
Export templates
To be able to export your project, you will need prebuilt binaries. If using the Git version, you will need to compile them yourself as described separately for each platform in
the official documentation
or use
godot-export-templates-linux
AUR
. If you are using the stable version, you can install the export templates provided by Godot. Install them by clicking on the engine settings icon in the top right corner, and then press "Install export templates" and provide the downloaded templates.
Troubleshooting
UI freezes in Wayland
Godot runs on Wayland using Xwayland, which causes a variety of UI issues, when not running in single window mode.
[1]
To get around this, start Godot with
godot --single-window
, then open a project, and enable single window mode in the editor settings.
This issue has been resolved in Godot 4.1.1.
[2]
This issue seems to have recurred in Godot 4.2
[3]
With Godot 4.3, Wayland can be used natively.
[4]
There are two ways to do this:
Set the command-line argument
--display-driver wayland
.
Enable the editor setting located at
run/platforms/linuxbsd/prefer_wayland
.
The above only makes Godot's client to run under native Wayland, but games still run under Xwayland. In order for games to run under native Wayland, go to project settings, click on "Display Server" at the sidebar, and at the option "Driver.linuxbsd" select wayland.
See also
Godot (game engine) on Wikipedia
Godot documentation
Godot source code
Godot: the Game-Changer for GameDevs
- Introduction and comparison with other engines
awesome-godot
- free/libre plugins, scripts and add-ons for Godot
/r/godot
community on reddit.com
Godot Engine Resources tutorials
Gamesfromscratch video tutorials
KidsCanCode video tutorials
Andreas Esau video tutorials
Heartbeast video tutorials
GDQuest video tutorials
Jose Moreno video tutorials
Brackey video tutorials
GoldenDict

GoldenDict
is a feature-rich dictionary lookup program.
Installation
There are several packages available to
install
GoldenDict with:
goldendict
AUR
and
goldendict-git
AUR
— Original version;
goldendict-ng
AUR
and
goldendict-ng-git
AUR
— A fork that includes countless fixes and improvements.
Configuration
Offline dictionary lookup with dictd
First
dictd
must be configured for hosting offline dictionaries. See
Dictd#Hosting offline dictionaries
.
Once the dictionaries have been installed, and
dictd
has been configured,
goldendict
can be configured to access the
dictd
dictionary databases by following these steps:
Press
F3
to bring up the
Dictionaries
window.
Click on the
DICT servers
tab
Click
Add...
Click to put a checkmark under
Enabled
Double click under
Address
and type:
dict://localhost
. Make sure to change
localhost
if
dictd
is running on another server.
And finally click
OK
.
Google Earth

From the
project web page
:
Google Earth allows you to travel the world through a virtual globe and view satellite imagery, maps, terrain, 3D buildings, and much more. With Google Earth's rich, geographical content, you are able to experience a more realistic view of the world. You can fly to your favorite place, search for businesses and even navigate through directions.
Installation
Install
the
google-earth-pro
AUR
package.
Troubleshooting
Tip
See the
official support forum
for topics not covered here.
Crash on startup
Google Earth can crash on startup for numerous reasons. Here are some of the most common ones.
Startup tips are enabled
While startup tips can be useful, they are also known to cause crashes. To disable them, change or add the line below to the
~/.config/Google/GoogleEarthPro.conf
:
~/.config/Google/GoogleEarthPro.conf
[General]
enableTips=false
No new line at the end of drirc
This can cause a crash with
-dri
drivers:
$ echo >> ~/.drirc
Corrupt settings
In case the cache is corrupt and needs recreation, remove it:
$ rm -r ~/.googleearth/Cache/
If that did not work, try removing the whole settings directory:
$ rm -r ~/.googleearth/
Another crash happened while handling crash!
You may try removing the following:
$ rm -f ~/.googleearth/Cache/cookies ~/.googleearth/instance-running-lock
Wayland
Google Earth does not seem to support Wayland yet, forcing X11 helps in this situation. Launch using:
$ QT_QPA_PLATFORM=xcb google-earth-pro
Panoramio photos not working
There have been numerous reports
[1]
[2]
[3]
on this in the
Google Earth forums
with varying solutions.
Graphical corruption
Either refer to the
#Corrupt settings
section above or disable texture compression in
Tools > Options... > 3D View > Compress
.
Earth shows nothing but yellow borders
Taken from the changelog of
7.0.3
this issue has improved to some extent but overall it is still there:
Imagery now displays for Linux users running specific families of Intel GPUs.
Excessive memory use
Memory use can be controlled by limiting the maximum cache size in
Tools > Options... > Cache
, or by lowering the graphics settings in the
3D View
tab.
Gopher

Related articles
Gemini
Gopher
is a protocol for information transfer over the internet that was very popular before HTTP took over as the dominant protocol, but there is still a community of gopher users that prefer the simplicity of the protocol over the more complex and large protocols more often encountered. Note that not all browsers support gopher, or have incomplete support.
Warning
All information sent and received over the gopher protocol is in plain text and thus is susceptible to interception and modification.
Gopher clients
Browsing gopherspace requires a client.
Lynx
can handle the gopher protocol; there are also a number to choose from in the AUR, including:
bombadillo
AUR
castor
AUR
cgo-git
AUR
ddwarf
AUR
sacc
AUR
gopherus
AUR
Search the AUR for
a full list
.
A good starting point to explore gopherspace is
http://gopher.quux.org:70/
Gopher server
Creating your own gopherspace is relatively straightforward. Install and configure a gopher server, and add your own content.
There are a number of gopher servers, including:
geomyidae
AUR
motsognir
AUR
stagit-gopher
AUR
gophernicus-git
AUR
Adding content
Gopher is a plain text protocol. Begin by creating a
gophermap
that defines the homepage of your gopherhole and includes links to the rest of your content. A
gophermap
includes item types that describe the content in the file. An example might look like this:
iWelcome to this Gopherhole!

0This is a text file in a link	file.txt
9This is a pdf file in a link	file.pdf
1This is a link to a directory	subdir

IAn image	img.gif

0A file on another server	/gopher/relevance.txt	gopher.floodgap.com	70
hA HTTP link to a website URL:https://archlinux.org
The format for the file is the
item type
as the very first character, the
display string
(i.e., the description text to display), a
selector
(i.e., a file-system pathname),
host name
(i.e., the domain name of the server on which the item resides), and
port
(i.e., the port number used by that server). The
item type
and
display string
are joined without a space; the other fields are separated by the tab character.
A full list of the available item types can be found on
Wikipedia:Gopher (protocol)#Item types
.
Overbite for Firefox
The Overbite Project
enables gopherspace in some browsers and devices, including Mozilla Firefox. Check the
firefox-extension-overbitenx
AUR
or
overbitewx
add-on.
Note
OverbiteNX and OverbiteWX are successors of the previous Firefox addon OverbiteFF, as noted in these extensions' websites.
HTTP access via Gopher proxy
You can use
https://gopher.floodgap.com/gopher/gw
to browse the Gopher network via HTTP, e.g. using a browser not Gopher-enabled.
See also
Example of Gopher websites
Gopro-webcam

This article or section needs language, wiki syntax or style improvements. See
Help:Style
for reference.
Reason:
A lot of content repeats with
GitHub wiki
(Discuss in
Talk:Gopro-webcam
)
Currently there is no official support for using your GoPro 8 and 9 (the only versions that offer this feature natively) as a webcam on Linux. The web is full of incomplete tutorials for this topic. This page tries to simplify this effort.
Installation
Install
the
gopro-webcam
AUR
package.
Usage
The following command starts the tool in the interactive mode and tries to identify the GoPro's device, find the interface and ultimately start the webcam mode:
# gopro webcam
There are a couple of options you can also set. See the
--help
option.
Examples
Start the webcam at a resolution of 1080p and with the linear FOV and start
FFmpeg
to expose the device to the OS:
# gopro webcam -a -r 1080 -f linear
Find a device that matches the pattern
enx
and starts the webcam mode without asking for user input (it also starts
ffmpeg
to expose the device to the OS):
# gopro webcam -p enx -n -a
Use the provided device
enxenx9245589250e7
and do not ask for user input (just start VLC to preview the output you will get from the Camera):
# gopro webcam -d enxenx9245589250e7 -n -v
Use the provided IP
172.27.187.52
and automatically start
ffmpeg
to expose the device to the OS (and do not ask for user input):
# gopro webcam -i 172.27.187.52 -a -n
Start on boot
Note
The GoPro needs to be plugged in and be in 'standby' mode (Charger symbol) when the computer boots.
In order to start the webcam on boot,
enable
gopro_webcam.service
.
If you would like to change the start parameters,
edit
gopro_webcam.service
.
Start on plug in
gopro-webcam
comes with a
udev rule
that will automatically start the
gopro_webcam
service when a GoPro Hero9 is plugged in, which may be undesirable to some users. The
udev
rule can be disabled as follows:
# ln -s /dev/null /etc/udev/rules.d/60-gopro.rules
To have the
udev
rule work with a GoPro Hero8 Black instead, change
GoPro HERO9
in
60-gopro.rules
to
HERO8 Black
.
Troubleshooting
Cannot find network device for GoPro
Double check that the USB connection mode is
GoPro Connect
and not
MTP
under
Preferences > Connections > USB Connection
. If that option does not exist, you likely need a firmware upgrade. Instructions can be found at
https://gopro.com/en/us/update
.
GPD MicroPC

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub (Discuss in
Talk:GPD MicroPC
)
Hardware
PCI/USB ID
Working?
GPU
8086:3185
Yes
Audio
8086:3198
Yes
Ethernet
10ec:8168
Yes
Wi-Fi
8086:3165
Yes
Bluetooth
8087:0a2a
Yes
SD Card Reader
0bda:0316
Yes
This page applies to the
GPD MicroPC
.
Installation
Install
the
linux-firmware-qlogic
package to fix most external display issues. UHD external displays on both DP and HDMI are supported at 60hz and above, lower refresh rates may cause a flashing or blank screen.
Configuration
Kernel modules
For an working keyboard during boot, add battery to the preloaded modules:
/etc/mkinitcpio.conf
...
MODULES=(battery)
...
Screen rotation
For the correct screen rotation see
Tablet PC#Screen rotation
.
Charge control
Charge control is not possible directly. Only with some hardware hack
manual
charge control can be added; see
this reddit post
for more information.
MongoDB Service will Coredump
See
MongoDB#Some computer just cannot run MongoDB
.
GPD Win

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub, misses a hardware table, accessibility, firmware and function key table. (Discuss in
Talk:GPD Win
)
GPD Win
is a small (5.5 inch screen) handheld device. More information about the GPD Win can be found here:
https://hansdegoede.livejournal.com/17445.html
Installation
Reboot holding either
Del
or
Esc
to enter BIOS. From the BIOS screen, either change the boot options to prioritize your USB drive or boot from it once.
On the Arch Linux boot option screen, with the first option highlighted, press
e
to edit boot options and add
fbcon=rotate:1
for screen to be rotated correctly.
Remember during installation:
The storage device is
/dev/mmcblk0p
X
See
Tablet PC#Screen rotation
for the
kernel parameters
to add for proper screen rotation.
GPD Win 3

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub (Discuss in
Talk:GPD Win 3
)
Hardware
PCI/USB ID
Working?
Video
Yes
Wireless
Yes
Bluetooth
Yes
Audio
Yes
Keyboard
Yes
Controller
Yes
Back buttons
Yes
Vibrator
Yes
Touchscreen
Yes
MicroSD Slot
Yes
Fingerprint sensor
No
This page provides information about the
GPD Win 3
.
Fixes
Audio
This device requires
Sound Open Firmware
in order for the soundcard to work.
Additionally, add the following
kernel module parameter
:
options snd-intel-dspcfg dsp_driver=1
Touchscreen
The device firmware does not properly initialize the touchscreen, so a patched goodix module is required.
In addition, the touchscreen must be rotated.
Edit, or create, if it does not exist, the file:
/etc/X11/xorg.conf.d/99-touchscreen.conf
.
/etc/X11/xorg.conf.d/99-touchscreen.conf
Section "InputClass"
  Identifier    "calibration"
  MatchProduct  "Goodix Capacitive TouchScreen"
  Option        "TransformationMatrix"   "0 1 0 -1 0 1 0 0 1"
EndSection
To fix the touchscreen initialization, install
goodix-gpdwin3-dkms
AUR
and reboot your device.
Suspend
Check
Low power S0 idle capability
is enabled in the UEFI (it should be by default).
See
Power management/Suspend and hibernate#Changing suspend method
and verify
s2idle
is used.
To reduce power consumption during sleep, go to
Advanced > RC ACPI Settings
in the UEFI and enable
CS PL1 Limit
and set
CS PL1 Value
to
3000
.
Known issues
Deep sleep
Deep sleep is not working and there is no fix.
Notes
Tearing when using Xorg and modesetting driver
You must install
xf86-video-intel
driver to alleviate tearing on GPD Win 3 when using Xorg.
You can additionally enable
TearFree
(see
Intel graphics#Tearing
), but be aware that there is a noticeable impact on performance.
GPS

There is a variety of
Global Positioning System
(GPS) hardware receivers supported in Arch Linux:
Bluetooth
GPS adapters
USB GPS adapters (internal or external)
WWAN-integrated adapters (some
Laptop/HP
EliteBook modules for example)
Smartphones are able to relay GPS data over USB or Bluetooth with additional software
Drivers
Usually a GPS device is presented as a serial device and the kernel uses a standard driver, but in some cases the drivers such as
mtkbabel
AUR
or
mbm-gpsd-pl4nkton-git
AUR
need to be
installed
.
Interfaces
GPS does not have a very unified interfacing and configuration in Linux. The raw GPS data is printed on the serial device and programs interpret the location by themselves, occupying the device in the process. Sharing the GPS adapter to multiple applications is possible with
gpsd
.
GPSD
GPSD
is a daemon to query the serial GPS device and make its output available on a TCP server. It is the most standard GPS interface in Linux and GPS-aware applications usually support it.
ModemManager
ModemManager is a Linux WWAN modem support package which interfaces with
NetworkManager
. It also supports querying GPS coordinates from GPS-enabled WWAN cards and it even displays the location in the
modem-manager-gui
. The most important commands are:
View locationing capabilities
# mmcli -m 0 --location-status
Enable GPS
# mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea
Display location
# watch mmcli -m 0 --location-get
Disable GPS
# mmcli -m 0 --location-disable-gps-raw --location-disable-gps-nmea
Clients
The
gpsd
package provides
cgps
, a simple console-based client for showing the current GPS device status.
Time Synchronization
See
Network Time Protocol daemon#Using ntpd with GPS
See also
Enabling GPS location in ModemManager
Grafana

Related articles
Zabbix
Munin
Grafana
is an open-source, general purpose dashboard and graph composer, which runs as a web application. It supports
graphite
,
InfluxDB
,
Prometheus
or opentsdb as backends.
Installation
Install
the
grafana
package.
After that you can
enable
and
start
grafana.service
and access the application on localhost, e.g.:
http://127.0.0.1:3000
. The default username is
admin
and password
admin
to access the web frontend.
Warning
The default configuration listens on
*:3000
so make sure to change the configuration or enable the relevant firewall rules.
Configuration
The default location of the configuration file is
/etc/grafana.ini
.
After making changes, remember to
restart
grafana.service
.
Example usage
InfluxDB
Installation
Follow the instructions to install
InfluxDB
.
Aggregate data
In case of scaleable server monitoring in combination with Grafana and InfluxDB, one could choose software like
collectd
AUR
. More generally any measurement data can be aggregated with InfluxDB and displayed with Grafana. There are modules and libraries for several programming languages to interact with InfluxDB and one could even store data with a simple http post command using the program
curl
.
Herefore, create a database named
example
:
$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE example"
Post data into the
example
database:
$ curl -i -XPOST 'http://localhost:8086/write?db=example' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
Add a data source
Click on
Data sources
in the left menu and then on
Add new
.
Name can be something like
influxdb
and the type should be set to
InfluxDB 0.9
. In this example, the URL for the HTTP settings is
http://localhost:8086
. Database name corresponds to the one earlier chosen, e.g.
example
. If not changed, username and password are
root
.
Click on
Test connection
to see everything is working and then on
Save
.
Creating a dashboard
Click
Home
in the left-upper corner and then on
New
.
Hover over and click the little green box on the left side, and then choose:
Add panel
and
Graph
.
Click on the title of the new graph and select
Edit
.
In the graph settings in
Metrics
choose
influxdb
as data source in the lower-right corner.
Create a query by selecting your aggregated data. Click on
select measurement
which is located beside
FROM
. In the drop-down menu should appear a list of "tables" in your database, e.g. the table named
localhost
. If no suggestions comes up, your connection to InfluxDB might be broken or no data has been aggregated yet.
Beside the bold text
SELECT
click on
value
and choose for example the measurement data
uptime
.
To save changes, click
Back to dashboard
, then the floppy disc icon.
Graphviz

From
Wikipedia
:
"Graphviz (short for Graph Visualization Software)  is a package of open-source tools [...] for drawing graphs specified in
DOT language
scripts."
Installation
Install
the
graphviz
package.
Viewers:
KGraphViewer
— Graphviz DOT graph file viewer from KDE.
https://apps.kde.org/kgraphviewer/
||
kgraphviewer
xdot.py
— Interactive viewer for graphs written in Graphviz's dot language (built on GTK).
https://github.com/jrfonseca/xdot.py
||
xdot
Font
You need to install a font to include strings in the graph. For information how to install fonts, see
Fonts
.
To see what fonts are available:
$ fc-list
To see what fonts dot is using:
$ dot example.gv -Tpng -o foo.png -v 2>&1 | grep font
Example
Tip
For interactive graph development try
vimdot(1)
.
Here is a dot file example.
example.gv
digraph graph_name {
  graph [
    charset = "UTF-8";
    label = "sample graph",
    labelloc = "t",
    labeljust = "c",
    bgcolor = "#343434",
    fontcolor = white,
    fontsize = 18,
    style = "filled",
    rankdir = TB,
    margin = 0.2,
    splines = spline,
    ranksep = 1.0,
    nodesep = 0.9
  ];

  node [
    colorscheme = "rdylgn11"
    style = "solid,filled",
    fontsize = 16,
    fontcolor = 6,
    fontname = "Migu 1M",
    color = 7,
    fillcolor = 11,
    fixedsize = true,
    height = 0.6,
    width = 1.2
  ];

  edge [
    style = solid,
    fontsize = 14,
    fontcolor = white,
    fontname = "Migu 1M",
    color = white,
    labelfloat = true,
    labeldistance = 2.5,
    labelangle = 70
  ];

  // node define
  alpha [shape = box];
  beta [shape = box];
  gamma [shape = Msquare];
  delta [shape = box];
  epsilon [shape = trapezium];
  zeta [shape = Msquare];
  eta;
  theta [shape = doublecircle];

  // edge define
  alpha -> beta [label = "a-b", arrowhead = normal];
  alpha -> gamma [label = "a-g"];
  beta -> delta [label = "b-d"];
  beta -> epsilon [label = "b-e", arrowhead = tee];
  gamma -> zeta [label = "g-z"];
  gamma -> eta [label = "g-e", style = dotted];
  delta -> theta [arrowhead = crow];
  zeta -> theta [arrowhead = crow];
}
To generate a png image from this file:
$ dot -Tpng example.gv -o example.png
See also
The official Graphviz website
Greenclip

Related articles
Rofi
Greenclip
is a simple
clipboard manager
designed to be integrated with
rofi
and written in
Haskell
.
Installation
Install
the
rofi-greenclip
AUR
package.
Usage
Spawn the daemon with
/usr/bin/greenclip daemon
or
start/enable
greenclip.service
.
Show entries as a list within
rofi
using:
rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}'
.
The entry that you have selected will be in your
clipboard
now.
Configuration file is placed in
~/.config/greenclip.toml
.
To clear all clipboard history, run
greenclip clear
.
Troubleshooting
Unable to record clipboard on i3wm
Put the following in the i3 configuration file. No need to start the service.
greenclip issue #70
~/.config/i3/config
# clipboard tool
exec --no-startup-id greenclip daemon>/dev/null
bindsym $mod+c exec --no-startup-id rofi -modi "clipboard:greenclip print" -show clipboard