https://wiki.archlinux.org/api.php?action=feedcontributions&user=Rjt&feedformat=atomArchWiki - User contributions [en]2024-03-29T02:15:00ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Sudo&diff=715377Sudo2022-02-04T07:57:42Z<p>Rjt: /* Example entries */ New syntax update</p>
<hr />
<div>[[Category:Security]]<br />
[[Category:Commands]]<br />
[[de:sudo]]<br />
[[es:Sudo]]<br />
[[fa:sudo]]<br />
[[fr:Sudo]]<br />
[[it:Sudo]]<br />
[[ja:Sudo]]<br />
[[pt:Sudo]]<br />
[[ru:Sudo]]<br />
[[sr:Sudo]]<br />
[[uk:Sudo]]<br />
[[zh-hans:Sudo]]<br />
{{Related articles start}}<br />
{{Related|Users and groups}}<br />
{{Related|su}}<br />
{{Related|doas}}<br />
{{Related articles end}}<br />
[https://www.sudo.ws/sudo/ Sudo] allows a system administrator to delegate authority to give certain users—or groups of users—the ability to run commands as root or another user while providing an audit trail of the commands and their arguments.<br />
<br />
Sudo is an alternative to [[su]] for running commands as root. Unlike [[su]], which launches a root shell that allows all further commands root access, sudo instead grants temporary privilege elevation to a single command. By enabling root privileges only when needed, sudo usage reduces the likelihood that a typo or a bug in an invoked command will ruin the system.<br />
<br />
Sudo can also be used to run commands as other users; additionally, sudo logs all commands and failed access attempts for security auditing.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|sudo}} package.<br />
<br />
== Usage ==<br />
<br />
To begin using {{ic|sudo}} as a non-privileged user, it must be properly configured. See [[#Configuration]].<br />
<br />
To use ''sudo'', simply prefix a command and its arguments with {{ic|sudo}} and a space:<br />
<br />
$ sudo ''cmd''<br />
<br />
For example, to use pacman:<br />
<br />
$ sudo pacman -Syu<br />
<br />
See {{man|8|sudo}} for more information.<br />
<br />
== Configuration ==<br />
<br />
{{Expansion|Create an intro discussing {{ic|Defaults}}, perhaps with a table that lists common settings}}<br />
<br />
=== Defaults skeleton ===<br />
<br />
{{man|5|sudoers|SUDOERS OPTIONS}} lists all the options that can be used with the {{ic|Defaults}} command in the {{ic|/etc/sudoers}} file.<br />
<br />
See [https://gist.github.com/AladW/7eca9799b9ea624eca31] for a list of options (parsed from the version 1.8.7 source code) in a format optimized for {{ic|sudoers}}.<br />
<br />
See {{man|5|sudoers}} for more information, such as configuring the password timeout.<br />
<br />
=== View current settings ===<br />
<br />
Run {{ic|sudo -ll}} to print out the current sudo configuration, or {{ic|sudo -lU ''user''}} for a specific user.<br />
<br />
=== Using visudo ===<br />
<br />
The configuration file for sudo is {{ic|/etc/sudoers}}. It should '''always''' be edited with the {{man|8|visudo}} command. ''visudo'' locks the {{ic|sudoers}} file, saves edits to a temporary file, and checks it for syntax errors before copying it to {{ic|/etc/sudoers}}.<br />
<br />
{{Warning|<br />
* It is imperative that {{ic|sudoers}} be free of syntax errors! Any error makes sudo unusable. '''Always''' edit it with ''visudo'' to prevent errors.<br />
* {{man|8|visudo}} warns that configuring ''visudo'' to honor the user environment variables for their editor of choice may be a security hole, since it allows the user with ''visudo'' privileges to run arbitrary commands as root without logging simply by setting that variable to something else.<br />
}}<br />
<br />
The default editor for ''visudo'' is ''vi''. The {{Pkg|sudo}} package is compiled with {{ic|--with-env-editor}} and honors the use of the {{ic|SUDO_EDITOR}}, {{ic|VISUAL}} and {{ic|EDITOR}} variables. {{ic|EDITOR}} is not used when {{ic|VISUAL}} is set.<br />
<br />
To establish [[nano]] as the ''visudo'' editor for the duration of the current shell session, export {{ic|1=EDITOR=nano}}; to use a different editor just once simply set the variable before calling ''visudo'':<br />
<br />
# EDITOR=nano visudo<br />
<br />
Alternatively you may edit a copy of the {{ic|/etc/sudoers}} file and check it using {{ic|visudo -c ''/copy/of/sudoers''}}. This might come in handy in case you want to circumvent locking the file with ''visudo''.<br />
<br />
To change the editor permanently, see [[Environment variables#Per user]]. To change the editor of choice permanently system-wide only for ''visudo'', add the following to {{ic|/etc/sudoers}} (assuming [[nano]] is your preferred editor):<br />
<br />
# Reset environment by default<br />
Defaults env_reset<br />
# Set default EDITOR to restricted version of nano, and do not allow visudo to use EDITOR/VISUAL.<br />
Defaults editor=/usr/bin/rnano, !env_editor<br />
<br />
=== Example entries ===<br />
<br />
To allow a user to gain full root privileges when they precede a command with {{ic|sudo}}, add the following line:<br />
<br />
USER_NAME ALL=(ALL:ALL) ALL<br />
<br />
To allow a user to run all commands as any user but only on the machine with hostname {{ic|HOST_NAME}}:<br />
<br />
USER_NAME HOST_NAME=(ALL:ALL) ALL<br />
<br />
To allow members of group [[wheel]] sudo access:<br />
<br />
%wheel ALL=(ALL:ALL) ALL<br />
<br />
{{Tip|When creating new administrators, it is often desirable to enable sudo access for the {{ic|wheel}} group and [[Users and groups#Other examples of user management|add the user to it]], since by default [[Polkit#Administrator identities|Polkit]] treats the members of the {{ic|wheel}} group as administrators. If the user is not a member of {{ic|wheel}}, software using Polkit may ask to authenticate using the root password instead of the user password.}}<br />
<br />
To disable asking for a password for user {{ic|USER_NAME}}:<br />
<br />
{{Warning|This will allow any process running with your user name to use sudo without asking for permission.}}<br />
<br />
Defaults:USER_NAME !authenticate<br />
<br />
Enable explicitly defined commands only for user {{ic|USER_NAME}} on host {{ic|HOST_NAME}}:<br />
<br />
USER_NAME HOST_NAME=/usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu<br />
<br />
{{Note|The most customized option should go at the end of the file, as the later lines overrides the previous ones. In particular such a line should be after the {{ic|%wheel}} line if your user is in this group.}}<br />
<br />
Enable explicitly defined commands only for user {{ic|USER_NAME}} on host {{ic|HOST_NAME}} without password:<br />
<br />
USER_NAME HOST_NAME= NOPASSWD: /usr/bin/halt,/usr/bin/poweroff,/usr/bin/reboot,/usr/bin/pacman -Syu<br />
<br />
A detailed {{ic|sudoers}} example is available at {{ic|/usr/share/doc/sudo/examples/sudoers}}. Otherwise, see the {{man|5|sudoers}} for detailed information.<br />
<br />
=== Sudoers default file permissions ===<br />
<br />
The owner and group for the {{ic|sudoers}} file must both be 0. The file permissions must be set to 0440. These permissions are set by default, but if you accidentally change them, they should be changed back immediately or sudo will fail.<br />
<br />
# chown -c root:root /etc/sudoers<br />
# chmod -c 0440 /etc/sudoers<br />
<br />
== Tips and tricks ==<br />
<br />
=== Disable password prompt timeout ===<br />
<br />
A common annoyance is a long-running process that runs on a background terminal somewhere that runs with normal permissions and elevates only when needed. This leads to a sudo password prompt which goes unnoticed and times out, at which point the process dies and the work done is lost or, at best, cached. Common advice is to enable passwordless sudo, or extend the timeout of sudo remembering a password. Both of these have negative security implications. The '''prompt''' timeout can also be disabled and since that does not serve any reasonable security purpose it should be the solution here:<br />
<br />
Defaults passwd_timeout=0<br />
<br />
=== Add terminal bell to the password prompt ===<br />
<br />
To draw attention to a sudo prompt in a background terminal, users can simply make it echo a [[Wikipedia:Bell character|bell character]]:<br />
<br />
Defaults passprompt="^G[sudo] password for %p: "<br />
<br />
Note the {{ic|^G}} is a literal bell character. E.g. in [[vim]], insert using the sequence {{ic|Ctrl+v}} {{ic|Ctrl+g}}, or in [[nano]], {{ic|Alt+v}} {{ic|Ctrl+g}}.<br />
<br />
=== Passing aliases ===<br />
<br />
If you use a lot of aliases, you might have noticed that they do not carry over to the root account when using sudo. However, there is an easy way to make them work. Simply add the following to your {{ic|~/.bashrc}} or {{ic|/etc/bash.bashrc}}:<br />
<br />
alias sudo='sudo '<br />
<br />
=== Disable per-terminal sudo ===<br />
<br />
{{Warning|This will let any process use your sudo session.}}<br />
<br />
If you are annoyed by sudo's defaults that require you to enter your password every time you open a new terminal, set {{ic|timestamp_type}} to {{ic|global}}:<br />
<br />
Defaults timestamp_type=global<br />
<br />
=== Reduce the number of times you have to type a password ===<br />
<br />
If you are annoyed that you have to re-enter your password every 5 minutes (default), you can change this by setting a longer value for {{ic|timestamp_timeout}} (in minutes):<br />
<br />
Defaults timestamp_timeout=10<br />
<br />
If you are using a lot of sudo commands on a row, it is more logical to refresh the timeout every time you use sudo than<br />
to increase {{ic|timestamp_timeout}}. Refreshing the timeout can be done with {{ic|sudo -v}} (whereas {{ic|sudo -K}} revokes immediately).<br />
<br />
You might want to automate this by adding the following to your {{ic|.bashrc}}:<br />
<br />
alias sudo='sudo -v; sudo '<br />
<br />
It is also possible to use a bash function; for more details see [https://unix.stackexchange.com/questions/584725/expand-certain-aliases-from-within-sudo-bash-function stackexchange].<br />
<br />
=== Environment variables ===<br />
<br />
If you have a lot of environment variables, or you export your proxy settings via {{ic|1=export http_proxy="..."}}, when using sudo these variables do not get passed to the root account unless you run sudo with the {{ic|-E}} option.<br />
<br />
$ sudo -E pacman -Syu<br />
<br />
The recommended way of preserving environment variables is to append them to {{ic|env_keep}}:<br />
<br />
{{hc|/etc/sudoers|2=<br />
Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"<br />
}}<br />
<br />
=== Root password ===<br />
<br />
Users can configure sudo to ask for the root password instead of the user password by adding {{ic|targetpw}} (target user, defaults to root) or {{ic|rootpw}} to the Defaults line in {{ic|/etc/sudoers}}:<br />
Defaults targetpw<br />
<br />
To prevent exposing your root password to users, you can restrict this to a specific group:<br />
Defaults:%wheel targetpw<br />
%wheel ALL=(ALL) ALL<br />
<br />
=== Disable root login ===<br />
<br />
Users may wish to disable the root login. Without root, attackers must first guess a user name configured as a sudoer as well as the user password. See for example [[OpenSSH#Deny]].<br />
<br />
{{Warning|<br />
* Be careful, you may lock yourself out by disabling root login. Sudo is not automatically installed and its default configuration allows neither passwordless root access nor root access with your own password. Ensure a user is properly configured as a sudoer ''before'' disabling the root account!<br />
* If you have changed your sudoers file to use rootpw as default, then do not disable root login with any of the following commands!<br />
* If you are already locked out, see [[Password recovery]] for help.<br />
}}<br />
<br />
The account can be locked via {{ic|passwd}}:<br />
<br />
# passwd -l root<br />
<br />
A similar command unlocks root.<br />
<br />
$ sudo passwd -u root<br />
<br />
Alternatively, edit {{ic|/etc/shadow}} and replace the root's encrypted password with "!":<br />
<br />
root:!:12345::::::<br />
<br />
To enable root login again:<br />
<br />
$ sudo passwd root<br />
<br />
{{Tip|To get to an interactive root prompt, even after disabling the ''root'' account, use {{ic|sudo -i}}.}}<br />
<br />
==== kdesu ====<br />
<br />
kdesu may be used under [[KDE]] to launch GUI applications with root privileges. It is possible that by default kdesu will try to use su even if the root account is disabled. Fortunately one can tell kdesu to use sudo instead of su. Create/edit the file {{ic|~/.config/kdesurc}}:<br />
<br />
[super-user-command]<br />
super-user-command=sudo<br />
<br />
or use the following command:<br />
<br />
$ kwriteconfig5 --file kdesurc --group super-user-command --key super-user-command sudo<br />
<br />
Alternatively, install {{AUR|kdesudo}}, which has the added advantage of tab-completion for the command following.<br />
<br />
=== Harden with sudo example ===<br />
<br />
Let us say you create 3 users: admin, devel, and joe. The user "admin" is used for journalctl, systemctl, mount, kill, and iptables; "devel" is used for installing packages, and editing config files; and "joe" is the user you log in with. To let "joe" reboot, shutdown, and use netctl we would do the following:<br />
<br />
Edit {{ic|/etc/pam.d/su}} and {{ic|/etc/pam.d/su-l}}. Require user be in the wheel group, but do not put anyone in it.<br />
<br />
#%PAM-1.0<br />
auth sufficient pam_rootok.so<br />
# Uncomment the following line to implicitly trust users in the "wheel" group.<br />
#auth sufficient pam_wheel.so trust use_uid<br />
# Uncomment the following line to require a user to be in the "wheel" group.<br />
auth required pam_wheel.so use_uid<br />
auth required pam_unix.so<br />
account required pam_unix.so<br />
session required pam_unix.so<br />
<br />
Limit SSH login to the 'ssh' group. Only "joe" will be part of this group.<br />
<br />
# groupadd -r ssh<br />
# gpasswd -a joe ssh<br />
# echo 'AllowGroups ssh' >> /etc/ssh/sshd_config<br />
<br />
[[Restart]] {{ic|sshd.service}}.<br />
<br />
Add users to other groups.<br />
<br />
# for g in power network ;do ;gpasswd -a joe $g ;done<br />
# for g in network power storage ;do ;gpasswd -a admin $g ;done<br />
<br />
Set permissions on configs so devel can edit them.<br />
<br />
# chown -R devel:root /etc/{http,openvpn,cups,zsh,vim,screenrc}<br />
<br />
Cmnd_Alias POWER = /usr/bin/shutdown -h now, /usr/bin/halt, /usr/bin/poweroff, /usr/bin/reboot<br />
Cmnd_Alias STORAGE = /usr/bin/mount -o nosuid\,nodev\,noexec, /usr/bin/umount<br />
Cmnd_Alias SYSTEMD = /usr/bin/journalctl, /usr/bin/systemctl<br />
Cmnd_Alias KILL = /usr/bin/kill, /usr/bin/killall<br />
Cmnd_Alias PKGMAN = /usr/bin/pacman<br />
Cmnd_Alias NETWORK = /usr/bin/netctl<br />
Cmnd_Alias FIREWALL = /usr/bin/iptables, /usr/bin/ip6tables<br />
Cmnd_Alias SHELL = /usr/bin/zsh, /usr/bin/bash<br />
%power ALL = (root) NOPASSWD: POWER<br />
%network ALL = (root) NETWORK<br />
%storage ALL = (root) STORAGE<br />
root ALL = (ALL) ALL<br />
admin ALL = (root) SYSTEMD, KILL, FIREWALL<br />
devel ALL = (root) PKGMAN<br />
joe ALL = (devel) SHELL, (admin) SHELL <br />
<br />
With this setup, you will almost never need to login as the Root user.<br />
<br />
"joe" can connect to his home WiFi.<br />
<br />
$ sudo netctl start home<br />
$ sudo poweroff<br />
<br />
"joe" can not use netctl as any other user.<br />
<br />
$ sudo -u admin -- netctl start home<br />
<br />
When "joe" needs to use journalctl or kill run away process he can switch to that user.<br />
<br />
$ sudo -i -u devel<br />
$ sudo -i -u admin<br />
<br />
But "joe" cannot switch to the root user.<br />
<br />
$ sudo -i -u root<br />
<br />
If "joe" want to start a gnu-screen session as admin he can do it like this:<br />
<br />
$ sudo -i -u admin<br />
[admin]$ chown admin:tty `echo $TTY`<br />
[admin]$ screen<br />
<br />
=== Configure sudo using drop-in files in /etc/sudoers.d ===<br />
<br />
''sudo'' parses files contained in the directory {{ic|/etc/sudoers.d/}}. This means that instead of editing {{ic|/etc/sudoers}}, you can change settings in standalone files and drop them in that directory. This has two advantages:<br />
<br />
* There is no need to edit a {{ic|sudoers.pacnew}} file;<br />
* If there is a problem with a new entry, you can remove the offending file instead of editing {{ic|/etc/sudoers}} (but see the warning below).<br />
<br />
The format for entries in these drop-in files is the same as for {{ic|/etc/sudoers}} itself. To edit them directly, use {{ic|visudo -f /etc/sudoers.d/''somefile''}}. See {{man|5|sudoers|Including other files from within sudoers}} for details.<br />
<br />
The files in {{ic|/etc/sudoers.d/}} directory are parsed in lexicographical order, file names containing {{ic|.}} or {{ic|~}} are skipped. To avoid sorting problems, the file names should begin with two digits, e.g. {{ic|01_foo}}.<br />
<br />
{{Note|The order of entries in the drop-in files is important: make sure that the statements do not override themselves.}}<br />
<br />
{{Warning|The files in {{ic|/etc/sudoers.d/}} are just as fragile as {{ic|/etc/sudoers}} itself: any improperly formatted file will prevent {{ic|sudo}} from working. Hence, for the same reason it is strongly advised to use {{ic|visudo}}}}<br />
<br />
=== Editing files ===<br />
<br />
{{ic|sudo -e}} or {{ic|sudoedit}} lets you edit a file as another user while still running the text editor as your user.<br />
<br />
This is especially useful for editing files as root without elevating the privilege of your text editor, for more details read {{man|8|sudo|e}}.<br />
<br />
Note that you can set the editor to any program, so for example one can use {{Pkg|meld}} to manage [[Pacman/Pacnew_and_Pacsave|pacnew]] files:<br />
<br />
$ SUDO_EDITOR=meld sudo -e /etc/''file''{,.pacnew''}<br />
<br />
=== Enable insults ===<br />
<br />
Users can enable the insults easter egg in sudo by adding the following line in the {{ic|sudoers}} file with {{ic|visudo}}.<br />
<br />
{{hc|1=/etc/sudoers|2=<br />
Defaults insults<br />
}}<br />
<br />
Upon entering an incorrect password this will replace {{ic|Sorry, try again.}} message with humorous insults.<br />
<br />
== Troubleshooting ==<br />
<br />
=== SSH problem without TTY ===<br />
<br />
{{Merge|#Configuration}}<br />
<br />
SSH does not allocate a tty by default when running a remote command. Without an allocated tty, sudo cannot prevent the password from being displayed. You can use ssh's {{ic|-t}} option to force it to allocate a tty.<br />
<br />
The {{ic|Defaults}} option {{ic|requiretty}} only allows the user to run sudo if they have a tty.<br />
<br />
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear text. You have to run "ssh -t hostname sudo <cmd>".<br />
#<br />
#Defaults requiretty<br />
<br />
=== Permissive umask ===<br />
<br />
{{Merge|#Configuration}}<br />
<br />
Sudo will union the user's [[umask]] value with its own umask (which defaults to 0022). This prevents sudo from creating files with more open permissions than the user's umask allows. While this is a sane default if no custom umask is in use, this can lead to situations where a utility run by sudo may create files with different permissions than if run by root directly. If errors arise from this, sudo provides a means to fix the umask, even if the desired umask is more permissive than the umask that the user has specified. Adding this (using {{ic|visudo}}) will override sudo's default behavior:<br />
<br />
Defaults umask = 0022<br />
Defaults umask_override<br />
<br />
This sets sudo's umask to root's default umask (0022) and overrides the default behavior, always using the indicated umask regardless of what umask the user as set.</div>Rjthttps://wiki.archlinux.org/index.php?title=User:Rjt&diff=704142User:Rjt2021-12-03T14:33:24Z<p>Rjt: Contact info update</p>
<hr />
<div>Hi! <br />
<br />
If you want to contact me about my wiki contributions you can use:<br />
* The form at [[Special:EmailUser/Rjt]].<br />
* XMPP: [xmpp:rjt@chinwag.im?message rjt@chinwag.im].<br />
<br />
Note:<br />
* I use he/him/his or they/them/their pronouns.<br />
* I'm in the AEST/AEDT timezone, which is UTC+10/11.</div>Rjthttps://wiki.archlinux.org/index.php?title=Talk:Yt-dlp&diff=704140Talk:Yt-dlp2021-12-03T14:17:10Z<p>Rjt: /* Project Inactivity */ new section</p>
<hr />
<div>== Project Inactivity ==<br />
<br />
I don't have a particular idea of the best way to add this to the page, but it's worth noting that ytdl in not currently maintained, and lots of people have switched to a fork called [https://github.com/yt-dlp/yt-dlp yt-dlp]. There's a package for it in the community repo. See: https://github.com/ytdl-org/youtube-dl/issues/29965 for a little info. on project status. — [[User:Rjt|rjt]] ([[User talk:Rjt|talk]]) 14:17, 3 December 2021 (UTC)</div>Rjthttps://wiki.archlinux.org/index.php?title=Talk:Rofi&diff=695888Talk:Rofi2021-09-15T15:49:45Z<p>Rjt: /* Configuration */ update RE deprecated XResources</p>
<hr />
<div>according to the latest [https://github.com/DaveDavenport/rofi/blob/1ab3e571eca1768d437246ca6ec09f44432b0e20/doc/rofi.1.markdown rofi doc page], config file location is as below . i don't understand why the wiki specify the .local folder as the suggested location, as I've never used it before for configs (i may just be uninformed). anyway this is not a huge diff but posting here for consideration.<br />
<br />
== Configuration ==<br />
<br />
There are currently three methods of setting configuration options (evaluated in order below):<br />
<br />
* System configuration file (for example `/etc/rofi.conf`).<br />
* Xresources: A method of storing key values in the Xserver.<br />
* Rasi theme file: The new *theme* format can be used to set configuration values.<br />
* Configuration File: This uses the same format as the Xresources file. By default it looks in `XDG_USER_CONFIG_DIR`/rofi/config, but can be overridden on commandline. By default XDG_USER_CONFIG_DIR defaults to `$HOME/.config`. (See `rofi -h` for current location). This is the recommended way of configuring **rofi**.<br />
* Command-line options: Arguments passed to **rofi**.<br />
[[User:Yair|Yair]] ([[User talk:Yair|talk]]) 11:21, 3 February 2018 (UTC)<br />
<br />
: I suspect it's just old information, but it also exists in the [https://github.com/DaveDavenport/rofi/blob/next/README.md README.md on the github page]. Perhaps it's best to test if a config in <code>.local/ etc</code> is still even read, and if not just replace the info.<br />
: As far as I know using <code>.local</code> in this way is not good contemporary practice.<br />
: [[User:Rjt|Rjt]] ([[User talk:Rjt|talk]]) 12:09, 3 February 2018 (UTC)<br />
<br />
:: I read and followed the docs and even then put it in <code>~/.config</code> instead of <code>~/.local</code> out of sheer habit - didn't even catch the error!<br />
<br />
:: I have tested it in <code>~/.local</code> and it doens't work, so I'm going to edit the wiki page and ask them about it over at GH.<br />
<br />
:: [[User:Benoliver999|Benoliver999]] ([[User talk:Benoliver999|talk]]) 13:18, 3 February 2018 (UTC)<br />
<br />
:: UPDATE - they have pulled the changes to their readme [[User:Benoliver999|Benoliver999]] ([[User talk:Benoliver999|talk]]) 20:43, 3 February 2018 (UTC)<br />
<br />
: Update: .XResources config now no longer works. .rasi (CSS-like) is recommended, as launch flags are limited. [[User:Rjt|Rjt]] ([[User talk:Rjt|talk]]) 15:49, 15 September 2021 (UTC)</div>Rjthttps://wiki.archlinux.org/index.php?title=Desktop_entries&diff=579034Desktop entries2019-08-06T07:48:30Z<p>Rjt: /* Validation */ inserted a missing 'to'</p>
<hr />
<div>[[Category:Freedesktop.org]]<br />
[[Category:Configuration files]]<br />
[[Category:Package development]]<br />
[[ja:デスクトップエントリ]]<br />
[[ru:Desktop entries]]<br />
[[zh-hans:Desktop entries]]<br />
The [https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html XDG Desktop Entry specification] defines a standard for applications to integrate into application menus of [[desktop environment]]s implementing the [https://specifications.freedesktop.org/menu-spec/menu-spec-latest.html XDG Desktop Menu] specification.<br />
<br />
== Basics ==<br />
<br />
Each desktop entry must have a {{ic|Type}} and a {{ic|Name}} key and can optionally define its appearance in the application menu.<br />
<br />
The three available types are:<br />
<br />
;Application<br />
:Defines how to launch an application and what MIME types it supports (used by [[XDG MIME Applications]]). With [[XDG Autostart]] Application entries can be [[Autostarting|started automatically]] by placing them in specific directories. Application entries use the {{ic|.desktop}} file extension. See [[#Application entry]].<br />
<br />
;Link<br />
:Defines a shortcut to a {{ic|URL}}. Link entries use the {{ic|.desktop}} file extension.<br />
<br />
;Directory<br />
:Defines the appearance of a submenu in the application menu. Directory entries use the {{ic|.directory}} file extension.<br />
<br />
The following sections will roughly explain how these are created and validated. <br />
<br />
== Application entry ==<br />
<br />
Desktop entries for applications, or {{ic|.desktop}} files, are generally a combination of meta information resources and a shortcut of an application. These files usually reside in {{ic|/usr/share/applications/}} or {{ic|/usr/local/share/applications/}} for applications installed system-wide, or {{ic|~/.local/share/applications/}} for user-specific applications. User entries take precedence over system entries.<br />
<br />
=== File example ===<br />
<br />
Following is an example of its structure with additional comments. The example is only meant to give a quick impression, and does not show how to utilize all possible entry keys. The complete list of keys can be found in the [https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys freedesktop specification].<br />
<br />
[Desktop Entry]<br />
<br />
# The type as listed above<br />
Type=Application<br />
<br />
# The version of the desktop entry specification to which this file complies<br />
Version=1.0<br />
<br />
# The name of the application<br />
Name=jMemorize<br />
<br />
# A comment which can/will be used as a tooltip<br />
Comment=Flash card based learning tool<br />
<br />
# The path to the folder in which the executable is run<br />
Path=/opt/jmemorise<br />
<br />
# The executable of the application, possibly with arguments.<br />
Exec=jmemorize<br />
<br />
# The name of the icon that will be used to display this entry<br />
Icon=jmemorize<br />
<br />
# Describes whether this application needs to be run in a terminal or not<br />
Terminal=false<br />
<br />
# Describes the categories in which this entry should be shown<br />
Categories=Education;Languages;Java;<br />
<br />
{{Note|Only {{ic|Type}} and {{ic|Name}} are required.}}<br />
<br />
=== Key definition ===<br />
<br />
All recognized entries can be found on the [https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys freedesktop] site.<br />
For example, the {{Ic|Type}} key defines three types of desktop entries: Application (type 1), Link (type 2) and Directory (type 3).<br />
<br />
* {{Ic|Version}} key does not stand for the version of the application, but for the version of the desktop entry specification to which this file complies.<br />
<br />
* {{Ic|Name}}, {{Ic|GenericName}} and {{Ic|Comment}} often contain redundant values in the form of combinations of them, like:<br />
<br />
Name=Pidgin Internet Messenger<br />
GenericName=Internet Messenger<br />
or<br />
Name=NoteCase notes manager<br />
Comment=Notes Manager<br />
<br />
This should be avoided, as it will only be confusing to users. The {{Ic|Name}} key should only contain the name, or maybe an abbreviation/acronym if available.<br />
<br />
* {{Ic|GenericName}} should state what you would generally call an application that does what this specific application offers (i.e. Firefox is a "Web Browser").<br />
* {{Ic|Comment}} is intended to contain any usefull additional information.<br />
<br />
=== Validation ===<br />
<br />
As some keys have become deprecated over time, you may want to validate your desktop entries using {{man|1|desktop-file-validate}} which is part of the {{Pkg|desktop-file-utils}} package. To validate, run:<br />
<br />
$ desktop-file-validate <''your desktop file''><br />
<br />
This will give you very verbose and useful warnings and error messages.<br />
<br />
== Icons ==<br />
<br />
See also the [https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html Icon Theme Specification].<br />
<br />
=== Common image formats ===<br />
<br />
Here is a short overview of image formats commonly used for icons.<br />
<br />
{| class="wikitable" align="center"<br />
|+ Support for image formats for icons as specified by the freedesktop.org standard.<br />
! Extension<br />
! Full Name and/or Description<br />
! Graphics Type<br />
! Container Format<br />
! Supported<br />
|-<br />
!align="left" | .[[wikipedia:Portable Network Graphics|png]]<br />
| Portable Network Graphics<br />
| [[wikipedia:Raster graphics|Raster]]<br />
| {{No}}<br />
| {{Yes}}<br />
|-<br />
!align="left" | .[[wikipedia:Scalable Vector Graphics|svg(z)]]<br />
| Scalable Vector Graphics<br />
| [[wikipedia:Vector graphics|Vector]]<br />
| {{No}}<br />
| {{G|Yes (optional)}}<br />
|-<br />
!align="left" | .[[wikipedia:X PixMap|xpm]]<br />
| X PixMap<br />
| [[wikipedia:Raster graphics|Raster]]<br />
| {{No}}<br />
| {{Y|Yes (deprecated)}}<br />
|-<br />
!align="left" | .[[wikipedia:Graphics Interchange Format|gif]]<br />
| Graphics Interchange Format<br />
| [[wikipedia:Raster graphics|Raster]]<br />
| {{No}}<br />
| {{No}}<br />
|-<br />
!align="left" | .[[wikipedia:ICO (icon image file format)|ico]]<br />
| MS Windows Icon Format<br />
| [[wikipedia:Raster graphics|Raster]]<br />
| {{Yes}}<br />
| {{No}}<br />
|-<br />
!align="left" | .[[wikipedia:Apple Icon Image|icns]]<br />
| Apple Icon Image<br />
| [[wikipedia:Raster graphics|Raster]]<br />
| {{Yes}}<br />
| {{No}}<br />
|-<br />
|}<br />
<br />
=== Converting icons ===<br />
<br />
{{Merge|ImageMagick#Usage|Belongs there.}}<br />
<br />
If you stumble across an icon which is in a format that is not supported by the freedesktop.org standard (like {{ic|gif}} or {{ic|ico}}), you can use the ''convert'' tool (which is part of the {{Pkg|imagemagick}} package) to convert it to a supported/recommended format, e.g.:<br />
<br />
$ convert <icon name>.gif <icon name>.png<br />
<br />
If you convert from a container format like {{ic|ico}}, you will get all images that were encapsulated in the {{ic|ico}} file in the form {{ic|<icon name>-<number>.png}}. If you want to know the size of the image, or the number of images in a container file like {{ic|ico}} you can use the ''identify'' tool (also part of the {{Pkg|imagemagick}} package):<br />
<br />
{{hc|$ identify /usr/share/vlc/vlc48x48.ico|<br />
/usr/share/vlc/vlc48x48.ico[0] ICO 32x32 32x32+0+0 8-bit DirectClass 84.3kb<br />
/usr/share/vlc/vlc48x48.ico[1] ICO 16x16 16x16+0+0 8-bit DirectClass 84.3kb<br />
/usr/share/vlc/vlc48x48.ico[2] ICO 128x128 128x128+0+0 8-bit DirectClass 84.3kb<br />
/usr/share/vlc/vlc48x48.ico[3] ICO 48x48 48x48+0+0 8-bit DirectClass 84.3kb<br />
/usr/share/vlc/vlc48x48.ico[4] ICO 32x32 32x32+0+0 8-bit DirectClass 84.3kb<br />
/usr/share/vlc/vlc48x48.ico[5] ICO 16x16 16x16+0+0 8-bit DirectClass 84.3kb<br />
}}<br />
<br />
As you can see, the example ''ico'' file, although its name might suggest a single image of size 48x48, contains no less than 6 different sizes, of which one is even greater than 48x48, namely 128x128.<br />
<br />
Alternatively, you can use ''icotool'' (from {{Pkg|icoutils}}) to extract png images from ico container:<br />
$ icotool -x <icon name>.ico<br />
<br />
For extracting images from .icns container, you can use ''icns2png'' (provided by {{Pkg|libicns}}):<br />
$ icns2png -x <icon name>.icns<br />
<br />
=== Obtaining icons ===<br />
<br />
Although packages that already ship with a ''.desktop'' file most certainly contain an icon or a set of icons, there is sometimes the case when a developer has not created a ''.desktop'' file, but may ship icons, nonetheless. So a good start is to look for icons in the source package.<br />
You can i.e. first filter for the extension with '''find''' and then use '''grep''' to filter further for certain buzzwords like the package name, "icon", "logo", etc, if there are quite a lot of images in the source package.<br />
$ find /path/to/source/package -regex ".*\.\(svg\|png\|xpm\|gif\|ico\)$"<br />
If the developers of an application do not include icons in their source packages, the next step would be to search on their web sites.<br />
Some projects, like i.e. ''tvbrowser'' have an [http://enwiki.tvbrowser.org/index.php/Banners,_Logos_and_other_Promotion_Material artwork/logo page] where additional icons may be found. If a project is multi-platform, there may be the case that even if the linux/unix package does not come with an icon, the Windows package might provide one. If the project uses a [[wikipedia:Version control system|Version control system]] like CVS/SVN/etc. and you have some experience with it, you also might consider browsing it for icons.<br />
If everything fails, the project might simply have no icon/logo yet.<br />
<br />
=== Icon path ===<br />
The [https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html freedesktop.org standard] specifies in which order and directories programs should look for icons:<br />
# {{ic|$HOME/.icons}} (for backwards compatibility)<br />
# {{ic|$XDG_DATA_DIRS/icons}}<br />
# {{ic|/usr/share/pixmaps}}<br />
<br />
== Tools ==<br />
<br />
=== gendesk ===<br />
{{Pkg|gendesk}} started as an Arch Linux-specific tool for generating .desktop files by fetching the needed information directly from PKGBUILD files. Now it is a general tool that takes command-line arguments.<br />
<br />
Icons can be automatically downloaded from [http://openiconlibrary.sourceforge.net/ openiconlibrary], if available. (The source for icons is configurable).<br />
<br />
==== How to use ====<br />
<br />
* Add {{Ic|gendesk}} to makedepends<br />
<br />
* Start the {{Ic|prepare()}} function with:<br />
<br />
{{bc|gendesk --pkgname "$pkgname" --pkgdesc "$pkgdesc"}}<br />
<br />
* Alternatively, if an icon is already provided ($pkgname.png, for instance). The {{Ic|-n}} flag is for not downloading an icon or using the default icon. Example:<br />
<br />
{{bc|gendesk -n --pkgname "$pkgname" --pkgdesc "$pkgdesc"}}<br />
<br />
* {{Ic|$srcdir/$pkgname.desktop}}&nbsp;will be created and can be installed in the {{Ic|package()}} function with:<br />
<br />
{{bc|install -Dm644 "$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"}}<br />
<br />
* The icon can be installed with:<br />
<br />
{{bc|install -Dm644 "$pkgname.png" "$pkgdir/usr/share/pixmaps/$pkgname.png"}}<br />
<br />
* Use {{Ic|1=--name='Program Name'}} for choosing a name for the menu entry.<br />
<br />
* Use {{Ic|1=--exec='/opt/some_app/elf --some-arg --other-arg'}} for setting the exec field.<br />
<br />
* See the [https://github.com/xyproto/gendesk gendesk project] for more information.<br />
<br />
=== lsdesktopf ===<br />
<br />
{{AUR|lsdesktopf}} can list available ''.desktop'' files or search their contents.<br />
<br />
$ lsdesktopf<br />
$ lsdesktopf --list<br />
$ lsdesktopf --list gtk zh_TW,zh_CN,en_GB<br />
<br />
It can also perform MIME-type-related searches. See [[XDG MIME Applications#lsdesktopf]].<br />
<br />
=== fbrokendesktop ===<br />
<br />
The {{AUR|fbrokendesktop}} Bash script detects broken {{ic|Exec}} values pointing to non-existent paths. Without any arguments it uses preset directories in the {{ic|DskPath}} array. It shows only broken ''.desktop'' with full path and filename that is missing.<br />
<br />
Examples<br />
<br />
$ fbrokendesktop<br />
$ fbrokendesktop /usr<br />
$ fbrokendesktop /usr/share/apps/kdm/sessions/icewm.desktop<br />
<br />
== Tips and tricks ==<br />
<br />
=== Run a desktop file from a terminal ===<br />
<br />
Install the {{Pkg|dex}} package and run {{ic|dex ''/path/to/application.desktop''}}.<br />
<br />
=== Hide desktop entries ===<br />
<br />
Firstly, copy the desktop entry file in question to {{ic|~/.local/share/applications}} to avoid your changes being overwritten.<br />
<br />
Then, to hide the entry in all environments, open the desktop entry file in a text editor and add the following line: {{ic|NoDisplay&#61;true}}.<br />
<br />
To hide the entry in a specific desktop, add the following line to the desktop entry file: {{ic|NotShowIn&#61;''desktop-name''}}<br />
<br />
where ''desktop-name'' can be option such as ''GNOME'', ''Xfce'', ''KDE'' etc. A desktop entry can be hidden in more than desktop at once - simply separate the desktop names with a semi-colon.<br />
<br />
=== Modify environment variables ===<br />
<br />
To set [[environment variables]], edit the {{ic|1=Exec=}} command line by prepending ''env''. For example:<br />
<br />
{{hc|~/.local/share/applications/abiword.desktop|2=<br />
Exec=env LANG=he_IL.UTF-8 abiword %U<br />
}}<br />
<br />
{{Tip|It may be preferable to copy the ''.desktop'' file to the {{ic|~/.local/share/applications/}} directory instead of modifying it in the {{ic|/usr/share/applications/}} one.}}<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:.desktop]]<br />
* [https://freedesktop.org/wiki/Howto_desktop_files/ Information for developers]</div>Rjthttps://wiki.archlinux.org/index.php?title=User:Rjt&diff=544996User:Rjt2018-09-30T03:36:41Z<p>Rjt: Created -- added contact info</p>
<hr />
<div>Hi! <br />
<br />
If you want to contact me about my wiki contributions you can at:<br />
* Fediverse: [https://mastodon.social/@ryliejamesthomas @ryliejamesthomas@mastodon.social]<br />
* E-Mail: [mailto:contact@ryliejamesthomas.net contact@ryliejamesthomas.net]<br />
<br />
Note:<br />
* I use he/him/his or they/them/their pronouns.<br />
* I'm in AEST timezone, which is UTC+10</div>Rjthttps://wiki.archlinux.org/index.php?title=MIDI&diff=544990MIDI2018-09-30T03:22:33Z<p>Rjt: /* VLC */ Added AUR package 'vlc-plugin-fluidsynth' to the notes section</p>
<hr />
<div>[[Category:Music]]<br />
[[ja:MIDI]]<br />
[[ru:MIDI]]<br />
[[Wikipedia:MIDI|MIDI]] itself, which stands for "Musical Instrument Digital Interface", is just a protocol and standard for communication between musical instruments and any device that understands the language. It can be used to control an array of synthesizers, make a tin can sound like a drum, or even operate industrial equipments.<br />
<br />
The scope of this article, however, will mainly focus on the usage of MIDI in computer systems for playback of files that contain MIDI data. These files usually come with the {{ic|.mid}} extension, and were hugely popular in the golden days of multimedia computing to share music. In professional music composition/arrangement, it still plays a vital role.<br />
<br />
== MIDI file ==<br />
<br />
Without going into the details of what the format is composed of, you just need to understand that a MIDI file eg. {{ic|foobar.mid}} does not contain any digital audio data, hence no "PCM stream". It is a common misconception that MIDI is a sound file format, and as such you usually see people complaining that music players like Amarok cannot play the file. Here is a very newbie-friendly outline of what a MIDI/MID file contains:<br />
<br />
'''# FOOBAR.MID'''<br />
Note ON<br />
''Use Instrument #1''<br />
''Play Note C1''<br />
''Set Volume at 100''<br />
''Set Pitch at 50''<br />
<br />
In order for such a file to be useful, there needs to be an "engine" that can translate the data to music. This engine will have a "tone generator", and this is what we call a "synthesizer". So any player that can play back a MIDI file without MIDI-capable hardware (your computer's sound device), has a synthesizer built-in or uses an external one. A typical keyboard (not the thing you are typing on) is actually made up of two components - a MIDI "controller" (the keys) and a synthesizer (tone generator/module; the thing that makes sound).<br />
<br />
So up to this point, you should be able to understand that:<br />
<br />
* There needs to be a synthesizer to play a MIDI file.<br />
* A synthesizer can be hardware or software.<br />
* Most computer soundcards/chipsets do NOT have synthesizers.<br />
* You need a synthesizer with a proper "bank" (collection of sounds) to be able to enjoy all the glory of MIDI files.<br />
* If a certain instrument is not in the bank, your synthesizer will not play anything for notes using that instrument.<br />
* If a certain instrument in the file corresponds to a different one in the bank, your synthesizer will play a different sound (obviously).<br />
<br />
== GM Bank ==<br />
<br />
General MIDI (GM) is a specification to standardise numerous MIDI-related matters, particularly that of instruments layout in a collection of sounds. A "soundbank" which is GM-compatible means that it meets the criteria of General MIDI, and as long as the MIDI file is also GM-compatible (as in nothing extraordinary is defined - such as introducing a new instrument or having one in a different location of the bank), the playback will be as intended since the bank has the correct instrument/handler for the MIDI message/event. One of the most popular soundbank formats is that of '''SoundFont''', particularly ''SF2''.<br />
<br />
* If you have a soundcard which can make use of soundfonts, you can load a '''.sf2''' file onto it.<br />
<br />
* If you do not have a soundcard which can make use of soundfonts (basically no hardware synthesizer), you can use a software synthesizer and load the SF2 file. In turn, you can find some way to globally make use of this synthesizer.<br />
<br />
== Playback ==<br />
<br />
"Why can I play MIDI with Windows Media Player, then?"<br />
<br />
Well, because Windows has a default software synthesizer which acts globally. Even then, it lacks the quality which should be expected of modern computers. If there were a way to do it on Linux, you would be able to play back MIDI from any player too. Perhaps a MIDI server (which will hold a synthesizer of choice like {{Pkg|timidity++}} or {{Pkg|fluidsynth}}) that sits within the sound server, like Phonon or PulseAudio. Nevertheless, nothing of this sort has been implemented and you can only play MIDI with a player that has a plug-in to source a synthesizer (for example {{AUR|xmms}} or {{Pkg|audacious}}) or has a synthesizer itself.<br />
<br />
=== Hardware ===<br />
<br />
''(More details on soundcards and MIDI, possibly links to SBLive MIDI here...)''<br />
<br />
If you simply need to play a MIDI file on a MIDI-capable hardware device (e.g. a hardware synthesizer), you can use the {{ic|aplaymidi}} command. <br />
To get the list of the available MIDI ports use the command<br />
$ aplaymidi -l<br />
Then to play a MIDI file specify it along with an available port of the preferred MIDI device that you got from the output of the previous command, for example like this:<br />
$ aplaymidi -p 24:0 midi_file.mid<br />
<br />
<br />
==== SB Audigy 1 - Emu10k1 WaveTable ====<br />
<br />
First, make sure that the '''Synth''' mixer control is not muted and that '''Audigy Analog/Digital output Jack''' is set to '''[Off]'''.<br />
<br />
To check and adjust them, use {{ic|alsamixer}} or your mixer of choice.<br />
<br />
Next, build and install the {{AUR|awesfx}}{{Broken package link|{{aur-mirror|awesfx}}}} package from the [[AUR]]. Then, load a SoundFont file on the Emux WaveTable, like so:<br />
$ asfxload /path/to/any/file.sf2<br />
The .SF2 file can be any SoundFont. If you have access to ''2GMGSMT.SF2'' on Windows, you can use that one.<br />
<br />
You should be all set now. To play your .mid files with {{ic|aplaymidi}}, you will have to do as follows:<br />
<br />
Get a list of the available MIDI ports by running<br />
$ aplaymidi -l<br />
Sample output:<br />
Port Client name Port name<br />
14:0 Midi Through Midi Through Port-0<br />
28:0 SB Live! 5.1 [SB0060] EMU10K1 MPU-401 (UART)<br />
29:0 Emu10k1 WaveTable Emu10k1 Port 0<br />
29:1 Emu10k1 WaveTable Emu10k1 Port 1<br />
29:2 Emu10k1 WaveTable Emu10k1 Port 2<br />
29:3 Emu10k1 WaveTable Emu10k1 Port 3<br />
Then, pick an available "Emu10k1 WaveTable" MIDI port, in this case 29:0, and specify it as such:<br />
$ aplaymidi -p 29:0 midi_file.mid<br />
<br />
=== Software ===<br />
<br />
==== DeaDBeeF ====<br />
<br />
You can play MIDI files in {{Pkg|deadbeef}} player after installing and configuring ''freepats.cfg'' which is provided by {{Pkg|timidity-freepats}}. See [[Timidity#Freepats|how to configure freepats.]] <br />
You can also change the ''freepats.cfg'' file location in DeaDBeeF by going to ''Edit > Preferences > Plugins > WildMidi Player > Configure''.<br />
<br />
==== GStreamer-based players ====<br />
<br />
You can play MIDI files on GNOME Videos and all other players using [[GStreamer]] as backend after having installed {{Pkg|gst-plugins-bad}} and {{Pkg|fluidsynth}}, and installed a soundfont ({{Pkg|soundfont-fluid}} for example). See [[FluidSynth]] for more info.<br />
<br />
If you choose to use {{Pkg|soundfont-fluid}}, the default search strategy will probably select FluidR3_GS.sf2 rather than FluidR3_GM.sf2. There can be no audio if that's the case. To prevent this, you can use a symlink:<br />
# mkdir -p /usr/share/sounds/sf2/<br />
# ln -s ../../soundfonts/FluidR3_GM.sf2 /usr/share/sounds/sf2/FluidR3_GM.sf2<br />
<br />
==== VLC ====<br />
<br />
You can play MIDI files on [[VLC]] if you configure the location of the Sound Font file. Previously you need to install a [[Timidity#SoundFonts|sound sample]], as well as the {{Pkg|fluidsynth}} package.<br />
<br />
In VLC choose ''Tools > Preferences'': you have to show all settings. Then, go to ''Input/Codecs > Audio codecs > FluidSynth''.<br />
<br />
And, if you installed e.g. fluidr3 as wiki says, set the location to:<br />
<br />
/usr/share/soundfonts/FluidR3_GM.sf2<br />
<br />
{{Note|<br />
* Read the [https://mailman.archlinux.org/pipermail/aur-general/2014-February/027378.html mailing list thread] about merging fluidr3 with {{Pkg|soundfont-fluid}}.<br />
* Fluidsynth support is not included in the {{Pkg|vlc}} package, however it is included in {{AUR|vlc-git}}, or can be added with {{AUR|vlc-plugin-fluidsynth}}<br />
}}<br />
<br />
==== Audacious ====<br />
{{Pkg|audacious}} has a built-in MIDI synthesizer which makes it essentially the easiest way to play a MIDI file with no extra setup. You can specify the soundfont to use for playback in the settings of its MIDI output plugin (''File > Preferences > Plugins > Input > AMIDI-Plug > Preferences''). As such the only prerequisites you need is the player and a soundfont file.<br />
<br />
==== TiMidity++ ====<br />
<br />
MIDI to WAVE converter and player. See [[Timidity|TiMidity++]].<br />
<br />
==== FluidSynth ====<br />
<br />
MIDI player and a daemon adding MIDI support to ALSA. See [[FluidSynth]].</div>Rjthttps://wiki.archlinux.org/index.php?title=Talk:Rofi&diff=509474Talk:Rofi2018-02-03T12:09:10Z<p>Rjt: Responding to Yair's comment regarding config dirs</p>
<hr />
<div>according to the latest [https://github.com/DaveDavenport/rofi/blob/1ab3e571eca1768d437246ca6ec09f44432b0e20/doc/rofi.1.markdown rofi doc page], config file location is as below . i don't understand why the wiki specify the .local folder as the suggested location, as I've never used it before for configs (i may just be uninformed). anyway this is not a huge diff but posting here for consideration.<br />
<br />
== Configuration ==<br />
<br />
There are currently three methods of setting configuration options (evaluated in order below):<br />
<br />
* System configuration file (for example `/etc/rofi.conf`).<br />
* Xresources: A method of storing key values in the Xserver.<br />
* Rasi theme file: The new *theme* format can be used to set configuration values.<br />
* Configuration File: This uses the same format as the Xresources file. By default it looks in `XDG_USER_CONFIG_DIR`/rofi/config, but can be overridden on commandline. By default XDG_USER_CONFIG_DIR defaults to `$HOME/.config`. (See `rofi -h` for current location). This is the recommended way of configuring **rofi**.<br />
* Command-line options: Arguments passed to **rofi**.<br />
[[User:Yair|Yair]] ([[User talk:Yair|talk]]) 11:21, 3 February 2018 (UTC)<br />
<br />
: I suspect it's just old information, but it also exists in the [https://github.com/DaveDavenport/rofi/blob/next/README.md README.md on the github page]. Perhaps it's best to test if a config in <code>.local/ etc</code> is still even read, and if not just replace the info.<br />
: As far as I know using <code>.local</code> in this way is not good contemporary practice.<br />
: [[User:Rjt|Rjt]] ([[User talk:Rjt|talk]]) 12:09, 3 February 2018 (UTC)</div>Rjthttps://wiki.archlinux.org/index.php?title=Rofi&diff=492818Rofi2017-10-09T16:06:30Z<p>Rjt: Removed references to the 'official theme generator', as it no longer seems to exist. Tidied 'Rofi Theme' section, and moved under 'Custom Themes'.</p>
<hr />
<div>{{DISPLAYTITLE:rofi}}<br />
[[Category:Application launchers]]<br />
[[ja:Rofi]]<br />
{{Related articles start}}<br />
{{Related|List of applications/Other#Application launchers}}<br />
{{Related articles end}}<br />
<br />
[https://github.com/DaveDavenport/rofi Rofi] is a window switcher, run dialog, ssh-launcher and [[dmenu]] replacement that started as a clone of [https://github.com/seanpringle/simpleswitcher simpleswitcher], written by [https://github.com/seanpringle Sean Pringle] and later expanded by [https://github.com/DaveDavenport Dave Davenport].<br />
<br />
== Installation ==<br />
<br />
[[Install]] {{Pkg|rofi}} from the [[official repositories]].<br />
<br />
==Rofi as dmenu replacement==<br />
<br />
If called as dmenu (via a symlink), rofi acts like dmenu. You may want to install {{AUR|rofi-dmenu}}, which symlinks dmenu to rofi. Then programs that call dmenu from a script (like passmenu from [[pass]]) will use rofi instead of dmenu.<br />
<br />
If you prefer the look of dmenu, this approximates it:<br />
<br />
rofi -show run -modi run -location 1 -width 100 \<br />
-lines 2 -line-margin 0 -line-padding 1 \<br />
-separator-style none -font "mono 10" -columns 9 -bw 0 \<br />
-disable-history \<br />
-hide-scrollbar \<br />
-color-window "#222222, #222222, #b1b4b3" \<br />
-color-normal "#222222, #b1b4b3, #222222, #005577, #b1b4b3" \<br />
-color-active "#222222, #b1b4b3, #222222, #007763, #b1b4b3" \<br />
-color-urgent "#222222, #b1b4b3, #222222, #77003d, #b1b4b3" \<br />
-kb-row-select "Tab" -kb-row-tab ""<br />
<br />
==Custom Themes==<br />
<br />
# Requires the {{pkg|xorg-xrdb}} package.<br />
# Add your customisations to your [[X_resources|.Xresources file]] (see below for examples).<br />
# Reload .Xresources with <code>xrdb -load ~/.Xresources</code>.<br />
<br />
===Contributed Themes===<br />
<br />
See the official [https://github.com/DaveDavenport/rofi-themes rofi-themes] repository for a list of custom themes.</div>Rjthttps://wiki.archlinux.org/index.php?title=List_of_games&diff=467542List of games2017-02-03T13:29:39Z<p>Rjt: /* Rogue-like */ Added Brogue</p>
<hr />
<div>[[Category:Gaming]]<br />
[[da:List of games]]<br />
[[es:List of games]]<br />
[[it:List of games]]<br />
[[ja:ゲーム一覧]]<br />
[[lt:Games]]<br />
[[ru:Gaming]]<br />
[[zh-hans:List of games]]<br />
{{Related articles start}}<br />
{{Related|List of applications}}<br />
{{Related|List of applications#Emulators}}<br />
{{Related articles end}}<br />
<br />
This page strives to list all games which have a package available in the [[official repositories]] or the [[AUR]]. There are many more Linux games available, which are not packaged. See [[Gaming#Getting games]] for ways to obtain them.<br />
<br />
For more about running games, related system configuration tips, see [[Gaming]]. For an up to date selection of games available in the AUR, try checking the [https://aur.archlinux.org/packages/?SeB=k&K=game AUR 'game' keyword].<br />
<br />
== Action and adventure ==<br />
<br />
* {{App|Abuse|Side-scroller action game that pits you against ruthless alien killers.|http://abuse.zoy.org/|{{Pkg|abuse}}}}<br />
* {{App|[[Wikipedia:Aquaria (video game)|Aquaria]]|2D sidescrolling action-adventure game, heavily focused on exploration and puzzle-solving, with non-linear gameplay. The game engine is open source.|http://www.bit-blot.com/aquaria|{{AUR|aquaria-ose}}, {{AUR|aquaria-hib}}}}<br />
* {{App|Astromenace|Modern 3D scrolling space shooter with ship upgrade possibilities.|https://sourceforge.net/projects/openastromenace/|{{Pkg|astromenace}}}}.<br />
* {{App|1=Barrage|2=Violent ''point-and-click'' shooting game with nice effects|3=http://lgames.sourceforge.net/Barrage/|4={{Pkg|barrage}}}}<br />
* {{App|[[Wikipedia:Blob Wars|Blob Wars: Metal Blob Solid]]|2D Action-adventure game with various weapons and missions.|https://sourceforge.net/projects/blobwars/|{{Pkg|blobwars}}}}<br />
* {{App|[[Wikipedia:BZFlag|BZFlag]]|Multiperson, first-person tank shooter.|http://bzflag.org/|{{Pkg|bzflag}}}}<br />
* {{App|[[Wikipedia:Dink Smallwood|Freedink]]|Free and enhanced version of the action-adventure "Dink Smallwood".|https://www.freedink.org/|{{AUR|freedink}}}}<br />
* {{App|[[Wikipedia:Gish (video game)|Gish]]|2D physics platformer about adventures of ball of tar.|https://github.com/freegish/freegish|{{AUR|freegish-git}}}}<br />
* {{App|[[Wikipedia:Hammerfight|Hammerfight]]|2-dimensional physics-based combat game.|http://www.koshutin.com/|{{AUR|hammerfight}}}}<br />
:* The open-source Unix port of the Haaf's Game Engine is available at [https://icculus.org/hge-unix/ icculus.org].<br />
* {{App|kobodeluxe|An enhanced version of Akira Higuchi's game XKobo, an addictive space shoot'em up|http://www.olofson.net/kobodl/|{{Pkg|kobodeluxe}}}}<br />
* {{App|Kollision|Moving a ball to avoid other balls. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kollision/|{{Pkg|kollision}}}}<br />
* {{App|KSpaceDuel|Player attempts to destroy opponent’s satellite and controll their own one to keep it orbiting. Part of {{Grp|kdegames}}|https://kde.org/applications/games/kspaceduel/|{{Pkg|kdegames-kspaceduel}}}}<br />
* {{App|[[Wikipedia:Liquid_War|Liquid War]] | 2D multiplayer game with a simple and unique game mechanic. It could be classified as a fast-paced strategy. | http://www.ufoot.org/liquidwar/ | {{AUR|liquidwar}}}}<br />
:* A rewrite of the game program, now adopted as a GNU project: {{AUR|liquidwar6}}, homepage: [http://www.gnu.org/software/liquidwar6/ | Liquid War 6]<br />
* {{App|[[Minecraft]]|Java based sandbox game.<br />
|https://minecraft.net/|{{AUR|minecraft}}}}<br />
* {{App|[[Wikipedia:Neverball|Neverball]]|3D game to guide a ball through a maze.|http://neverball.org/|{{Pkg|neverball}}}}<br />
* {{App|[[Wikipedia:Rune (video game)|Rune]]|3rd person Adventure / Hack'n Slay using Unreal Engine. Runs great from box installation.|http://www.rune-world.com|{{AUR|rune}}}}<br />
* {{App|1=Paintball Party 2|2=Paintball Party 2 is the sequel to Paintball Party, a multiplayer action platformer for all ages.|3=http://www.t3-i.com/pages/project.php?id=paintball_party_2|4={{AUR|paintball-party-2}}}}<br />
* {{App|XBill|Kill all instances of a virus before it infects all computers with a malware resembling Microsoft® Windows®.|http://www.xbill.org/|{{Pkg|xbill}}}}<br />
<br />
== Arcade ==<br />
* {{App|Bomber|A 2D game with a goal by hitting targets with bombs before their plane crashes into them. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/bomber/|{{Pkg|bomber}}}}<br />
* {{App|Bomberclone|Free Bomberman-like game for Linux and Windows. The rules of the game are simple: run though a level and bomb other players.|http://www.bomberclone.de/core.html|{{Pkg|bomberclone}}}}<br />
* {{App|[[Wikipedia:Cave Story|Cave Story/Doukutsu]]|Addictive 1-man-made metroid-vania-esque platformer. If there happens to be a noticible lag when there are lots of enemies on screen or in larger levels, try running the Windows version through Wine. This should fix the problem.|http://cavestory.org|{{AUR|doukutsu}}}}<br />
* {{App|Chromium|Fast paced, arcade-style, top-scrolling space shooter.|http://chromium-bsu.sourceforge.net/|{{Pkg|chromium-bsu}}}}<br />
* {{App|Counter-Strike 2D|2D clone (+additional features) of the popular Counter-Strike Mod|http://cs2d.com|{{AUR|counter-strike-2d}}}}<br />
* {{App|Crack-attack|Free OpenGL game, based on the Super Nintendo classic Tetris Attack.|http://www.nongnu.org/crack-attack/|{{AUR|crack-attack}}}}<br />
* {{App|[[Wikipedia:Frozen Bubble|Frozen Bubble]]|Arcade game with colorful animated penguin eyecandy|http://frozen-bubble.org|{{Pkg|frozen-bubble}}}}<br />
* {{App|Granatier|A clone of ''Bomberman''. Part of {{Grp|kdegames}}|https://www.kde.org/applications/games/granatier/|{{Pkg|granatier}}}}<br />
* {{App|[[Wikipedia:Hedgewars|Hedgewars]]|Yet another Worms clone, considered to be better than its predecessor by many. Take turns to blast your opponents into oblivion with comedic results! Best in Multiplayer.|https://hedgewars.org/|{{Pkg|hedgewars}}}}<br />
* {{App|kapman|A clone of ''PacMan''. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kapman/|{{Pkg|kapman}}}}<br />
* {{App|kbreakout|''Breakout''-style game. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kbreakout/|{{Pkg|kbreakout}}}}<br />
* {{App|1=lbreakout2|2=Breakout-style arcade game in the manner of Arkanoid|3=http://lgames.sourceforge.net/LBreakout2/|4={{Pkg|lbreakout2}}}}<br />
* {{App|kbounce|Building walls to limit amount of space occupied by two balls bouncing off the walls. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kbounce/|{{Pkg|kbounce}}}}<br />
* {{App|ksnakeduel|''Snake''-like game for 2 players which compete to survive longer than the opponent. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/ksnakeduel/|{{Pkg|kdegames-ksnakeduel}}}}<br />
* {{App|1=LTris|2=Arcade version of Tetris|3=http://lgames.sourceforge.net/LTris/|4={{Pkg|ltris}}}}<br />
* {{App|[[Wikipedia:Mari0|Mari0]]|The Mario game with Portal gun mechanics.|http://stabyourself.net/mari0/|{{Pkg|mari0}}}}<br />
* {{App|Nikki and the Robots|Cute physics platformer|https://github.com/nikki-and-the-robots/nikki|{{AUR|nikki}}}}<br />
* {{App|Penguin Command|Clone of the classic game "Missile Command" with improved graphics and sound.|http://www.linux-games.com/penguin-command/|{{AUR|penguin-command}}}}<br />
* {{App|Pinball|Open source pinball simulator for Linux and other Unix systems.|http://pinball.sourceforge.net/|{{AUR|pinball}}}}<br />
* {{App|PowerManga|Arcade 2D shoot-em-up game with 41 levels and more than 200 sprites.|http://linux.tlk.fr/games/Powermanga/|{{AUR|powermanga}}}}<br />
* {{App|Quadrapassel|A ''Tetris'' remake for GNOME.|https://wiki.gnome.org/Apps/Quadrapassel|{{Pkg|quadrapassel}}}}<br />
* {{App|Streets of Rage Remake|A remake of the classic Streets of Rage 1, 2 and 3 by Sega.|http://sorr.forumotion.net/|{{AUR|streetsofrageremake}}}}<br />
* {{App|opsu!|An open source Java client for the rhythm game osu!.|https://itdelatrisu.github.io/opsu/|{{AUR|opsu}}}}<br />
* {{App|[[Wikipedia:Teeworlds|Teeworlds]]|Fast-paced 2D multiplayer shooter|https://www.teeworlds.com/|{{Pkg|teeworlds}}}}<br />
* {{App|Tetrinet|Multiplayer online Tetris game for up to six people.|http://www.tetrinet.info/|{{AUR|gtetrinet}}}}<br />
* {{App|Ultrastar-ng|Clone of SingStar, a music video game.|http://performous.org/|{{AUR|ultrastardx-git}}}}<br />
* {{App|[[Wikipedia:Warmux|Warmux]] (previously ''Wormux'')|Somewhat similar to Worms 2/Worms Armageddon|https://gna.org/projects/warmux/|{{AUR|warmux}}}}<br />
<br />
== Casual games ==<br />
* {{App|Aisleriot|A collection of solitaire card games.|https://wiki.gnome.org/Apps/Aisleriot|{{Pkg|aisleriot}}}}<br />
* {{App|Atanks|A multi-platform Scorched Earth clone similar to the Worms series of games|http://atanks.sourceforge.net/|{{Pkg|atanks}}}}<br />
* {{App|bs|Battleships based shooter for the console|http://www.catb.org/~esr/bs/|{{AUR|bs}}}}<br />
* {{App|BSD Games|Collection of classic text games distributed with *BSD|http://wiki.linuxquestions.org/wiki/BSD_games|{{Pkg|bsd-games}}}}<br />
* {{App|Kajongg|An implementation of [https://en.wikipedia.org/wiki/Mahjong Mahjong] for 4 players. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kajongg/|{{Pkg|kdegames-kajongg}}}}<br />
* {{App|KHangMan|[https://en.wikipedia.org/wiki/Hangman_(game) Hangman]. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/education/khangman/|{{Pkg|khangman}}}}<br />
* {{App|KPatience|A set of solitarire card games. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kpatience/|{{Pkg|kpatience}}}}<br />
* {{App|KSquares|A [https://en.wikipedia.org/wiki/Dots_and_Boxes dots-and-boxes] game for two players. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/ksquares/|{{Pkg|ksquares}}}}<br />
* {{App|Lskat|A variation of [https://en.wikipedia.org/wiki/Skat Skat] card game for two players. Part of {{Grp|kdegames}}|https://www.kde.org/applications/games/lskat/|{{Pkg|kdegames-lskat}}}}<br />
* {{App|Mah-Jong|Chinese Classical mahjong (not solitaire) with network support|http://mahjong.julianbradfield.org/|{{Pkg|mahjong}}}}<br />
* {{App|nInvaders|Ncurses based space invaders clone|http://ninvaders.sourceforge.net/|{{AUR|ninvaders}}}}<br />
* {{App|xroach|cockroaches hide under your windows||{{AUR|xroach}}}}<br />
<br />
== Chess simulators ==<br />
* {{App|[[Wikipedia:GNU Chess|GNU Chess]]|One of the oldest computer chess programs for Unix-based computers, lets most modern computers play a full game of chess|https://gnu.org/s/chess|{{Pkg|gnuchess}}}}<br />
* {{App|chessx|Chess Database and PGN viewer|http://chessx.sourceforge.net|{{AUR|chessx}}}}<br />
* {{App|Eboard|Chess interface to ICS and chess engines|http://bergo.eng.br/eboard|{{AUR|eboard}}}}<br />
* {{App|1=Knights|2=Simple chess board for KDE 4. It is a rewrite of the KDE3 Knights.|3=https://www.linux-apps.com/content/show.php/Knights?content=122046|4={{Pkg|knights}}}}<br />
* {{App|PyChess|An advanced chess client for linux following the GNOME Human Interface Guidelines.|http://pychess.org/|{{Pkg|pychess}}}}<br />
* {{App|[[Wikipedia:GNOME Chess|GNOME Chess]]|A 2D chess game which can use third party chess engines.|https://wiki.gnome.org/Apps/Chess|{{Pkg|gnome-chess}}}}<br />
* {{App|glChess|3D Chess Frontend.|https://wiki.gnome.org/Apps/Chess|{{AUR|glchess}}}}<br />
<br />
== Education ==<br />
<br />
* {{App|Blinken|A sequence-remembering game for training memory. Part of {{Grp|kdeedu}}.|https://www.kde.org/applications/education/blinken/|{{Pkg|blinken}}}}<br />
* {{App|GCompris|Educational software suite comprising of numerous activities for children aged 2 to 10.|https://gcompris.net/|{{Pkg|gcompris}}}}<br />
* {{App|katomic|Slide elements so they resemble a chemical molecule. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/katomic/|{{Pkg|katomic}}}}<br />
* {{App|Tux Paint|Free drawing program designed for young children.|http://tuxpaint.org/|{{Pkg|tuxpaint}}}}<br />
* {{App|Tux Type|Educational typing tutor for kids starring Tux.|https://tux4kids.alioth.debian.org/tuxtype/|{{AUR|tuxtype}}}}<br />
* {{App|TuxMath|Arcade game that helps kids practice their math facts.|https://tux4kids.alioth.debian.org/tuxmath/|{{AUR|tuxmath}}}}<br />
<br />
== Interactive fiction ==<br />
<br />
See also [[Wikipedia:Interactive fiction#Development systems]].<br />
<br />
* {{App|[[Wikipedia:Inform|Inform]]|Design system for interactive fiction based on natural language|http://inform7.com/|{{AUR|inform7}}}}<br />
* {{App|INSTEAD|Quest interpreter using Lua macros as game writing language|https://instead.syscall.ru/|{{Pkg|instead-launcher}} {{Pkg|instead}}}}<br />
* {{App|[[Wikipedia:TADS|TADS]]|Prototype-based domain-specific programming language and set of standard libraries for creating interactive fiction (IF) games|http://tads.org|{{AUR|frobtads}}}}<br />
<br />
== Massively multiplayer online games (MMO) ==<br />
<br />
See also [[Wikipedia:List of massively multiplayer online games]] and [[Wikipedia:Comparison of massively multiplayer online role-playing games]].<br />
<br />
* {{App|[[Dofus]]|Free, manga inspired, Massively Multiplayer Online Role-playing Game (MMORPG) for Adobe AIR|http://www.dofus.com|{{AUR|dofus}}}}<br />
* {{App|[[Wikipedia:Eternal Lands|Eternal Lands]]|3D fantasy online role playing game|http://www.eternal-lands.com|{{AUR|eternallands}}}}<br />
* {{App|[[Wikipedia:PlaneShift (video game)|Planeshift]]|Role Playing Game immersed into a 3D virtual fantasy world which is FULLY FREE to play. Fully free means you will have no surprises of premium content which will limit your gameplay or unbalance the game. There are no limitations in skills, ranks, abilities, items you can gain with your free account|http://www.planeshift.it|{{AUR|planeshift}}}}<br />
* {{App|[[RuneScape]]|Massive online adventure game by Jagex|http://www.runescape.com|{{AUR|unix-runescape-client}} (old Java client), {{AUR|runescape-launcher}} (new NXT client)}}<br />
* {{App|[[Wikipedia:Ryzom|Ryzom]]|3D Fantasy MMORPG|http://www.ryzom.com|{{AUR|ryzom-client}}}}<br />
* {{App|[[Wikipedia:Savage: The Battle for Newerth|Savage: The Battle for Newerth]]|Online multiplayer team-based FPS/RTS hybrid. Open-sourced in September 2006. Savage XR, the most improved continuation (including SFE patches), is completely free (no purchasing/ads whatsoever) however closed-source to reduce cheating.|http://www.newerth.com/|{{AUR|savage}}}}<br />
* {{App|[[Wikipedia:Savage 2: A Tortured Soul|Savage 2: A Tortured Soul]]|Fantasy themed online multiplayer team-based FPS/RTS/RPG hybrid. Free-to-play as of December 2008. Pay for premium accounts providing crucial game elements such as extra inventory slots, access to clans and removal of the Hellbourne unit restrictions (per-account), as well as access to replays and stats.|http://savage2.com|{{AUR|savage2}}}}<br />
* {{App|The Mana World|Serious effort to create an innovative free and open source MMORPG|https://www.themanaworld.org|{{Pkg|manaplus}}}}<br />
<br />
== Platformer ==<br />
<br />
* {{App|[[Wikipedia:Frogatto|Frogatto]]|Platformer with adventure elements.|https://frogatto.com|{{Pkg|frogatto}}}}<br />
* {{App|KGoldrunner|A platform game with the goal of collecting gold. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kgoldrunner/|{{Pkg|kdegames-kgoldrunner}}}}<br />
* {{App|1=Knyttstories|2=Platformer with adventure elements, heavy exploration and downloadable levels.|3=http://nifflas.ni2.se/?page=Knytt+Stories|4={{AUR|knyttstories}}}}<br />
* {{App|Secret Maryo Chronicles|Mario-style game.|http://www.secretmaryo.org/|{{AUR|smc}}}}<br />
* {{App|SuperTux|Mario-style game featuring Tux.|http://supertux.lethargik.org/|{{Pkg|supertux}}}}<br />
* {{App|Toppler|Reimplementation of the classic jump & run game "Nebulus".|http://toppler.sourceforge.net/|{{AUR|toppler}}}}<br />
* {{App|The Secret Chronicles of Dr. M.|A fork of Secret Maryo Chronicles.|https://github.com/secretchronicles/TSC|{{AUR|tsc}}}}<br />
<br />
== Puzzle ==<br />
<br />
* {{App|Blockout II|3D tetris, free adaptation of the original BlockOut DOS game edited by California Dreams in 1989|http://www.blockout.net/blockout2/|{{AUR|blockout2}}}}<br />
* {{App|Bovo|[https://en.wikipedia.org/wiki/Gomoku Gomoku]-like game. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/bovo/|{{Pkg|bovo}}}}<br />
* {{App|Cgoban3|Kiseido Go and SGF client.|http://www.igoweb.org/~wms/comp/cgoban/|{{Pkg|cgoban}}}}<br />
* {{App|Chroma|Puzzle game like Sokoban with ncurses and graphics mode|http://www.level7.org.uk/chroma/|{{AUR|chroma}}}}<br />
* {{App|Crack Attack!|Free OpenGL game based on the Super Nintendo classic Tetris Attack.|http://www.aluminumangel.org/attack/|{{AUR|crack-attack}}}}<br />
* {{App|Gnu Go|A terminal-based implementation of Go from GNU.|https://www.gnu.org/software/gnugo/|{{Pkg|gnugo}}}}<br />
* {{App|Gopanda|Client for the Pandanet-IGS go Server.|http://pandanet-igs.com/communities/gopanda2|{{AUR|Gopanda}}}}<br />
* {{App|gweled|Eliminating tiles by joining them in groups of three.|https://launchpad.net/gweled/|{{Pkg|gweled}}}}<br />
* {{App|Hitori|Small application written to allow one to play the eponymous puzzle game, which is similar in theme to more popular puzzles such as Sudoku.|https://wiki.gnome.org/Apps/Hitori|{{Pkg|hitori}}}}<br />
* {{App|kblackbox|Finding positions of hidden balls by using hints. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kblackbox/|{{Pkg|kblackbox}}}}<br />
* {{App|kblocks|''Tetris'' clone. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kblocks/|{{Pkg|kblocks}}}}<br />
* {{App|KDiamond|Eliminating tiles by joining them in groups of three. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kdiamond/|{{Pkg|kdiamond}}}}<br />
* {{App|KFourInLine|Competition between two players to put a line of four pieces before the opponent. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kfourinline/|{{Pkg|kfourinline}}}}<br />
* {{App|Kigo|''Go'' for KDE. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kigo/|{{Pkg|kdegames-kigo}}}}<br />
* {{App|Killbots|A turn-based game with an objective of avoiding robots that are trying to kill the player. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/killbots/|{{Pkg|killbots}}}}<br />
* {{App|KJumpingCube|Take-all-tiles game in which one gains fields by increasing value of one’s own nearby fields. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kjumpingcube/|{{Pkg|kjumpingcube}}}}<br />
* {{App|1=Klickety|2=Clearing the board by removing aligned tiles. Part of {{Grp|kdegames}}.|3=https://games.kde.org/game.php?game=klickety|4={{Pkg|klickety}}}}<br />
* {{App|KLines|Moving balls around the board to form a line of 5 of the same color. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/klines/|{{Pkg|klines}}}}<br />
* {{App|KMines|[https://en.wikipedia.org/wiki/Minesweeper_(video_game) Minesweeper], part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kmines/|{{Pkg|kmines}}}}<br />
* {{App|KNetwalk|Rotating tiles with wires to connect all computers to internet. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/knetwalk/|{{Pkg|knetwalk}}}}<br />
* {{App|Kolf|A minigolf game with 2D overhead view. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kolf/|{{Pkg|kdegames-kolf}}}}<br />
* {{App|KShisen|[https://en.wikipedia.org/wiki/Shisen-Sho Shisen-Sho]. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kshisen/|{{Pkg|kshisen}}}}<br />
* {{App|Ksudoku|Sudoku game and more for KDE. Part of {{Grp|kdegames}}.|http://ksudoku.sourceforge.net/|{{Pkg|kdegames-ksudoku}}}}<br />
* {{App|Kubrick|A Rubik’s cube solving game. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kubrick/|{{Pkg|kdegames-kubrick}}}}<br />
* {{App|Palapeli|Jigsaw puzzle game. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/palapeli/|{{Pkg|kdegames-palapeli}}}}<br />
* {{App|Pathological|Complete all wheels on the board by collecting marbles of the same color in each of them.|http://pathological.sourceforge.net/howtoplay.php|{{Pkg|pathological}}}}<br />
* {{App|Picmi|Nonogram puzzle game|https://games.kde.org/picmi|{{Pkg|picmi}}}}<br />
* {{App|Pingus|Lemmings clone, i.e. a level-based puzzle game.|http://pingus.seul.org/|{{Pkg|pingus}}}}<br />
* {{App|Ri-li|Toy wood engine GPL game|http://ri-li.sourceforge.net/|{{AUR|ri-li}}}}<br />
* {{App|qgo|A Go client and full featured SGF editor |https://github.com/pzorin/qgo|{{Pkg|qgo}}}}<br />
* {{App|Simon Tatham's Portable Puzzle Collection|30+ "quick" puzzle games with simplistic but polished GTK GUI |http://www.chiark.greenend.org.uk/~sgtatham/puzzles/|{{Pkg|puzzles}}}}<br />
* {{App|[[Wikipedia:VVVVVV|VVVVVV]]|Highly praised 2D puzzle platform indie game with a C64 retro theme, with a great chiptune soundtrack. You can buy the full version for £1.67, or play the [http://www.kongregate.com/games/TerryCavanagh/vvvvvv-demo/ demo] in a browser.<br />
:{{Tip|You may want to backup your save file, which is found at {{Ic|~/.macromedia/Flash_Player/#SharedObjects/''string''/localhost...}}.}}<br />
|http://thelettervsixtim.es/|{{AUR|vvvvvv}}}}<br />
* {{App|XMahjongg|Mahjong solitaire for X.|https://www.lcdf.org/xmahjongg/|{{Pkg|xmahjongg}}}}<br />
* {{App|Xscorch|Clone of the classic DOS game Scorched Earth.|http://www.xscorch.org/|{{AUR|xscorch}}}}<br />
* {{App|[[Wikipedia:World of Goo|World of Goo]]|Great 2D puzzle game.|https://www.2dboy.com|{{AUR|worldofgoo}}}}<br />
<br />
== Racing ==<br />
<br />
* {{App|Armagetron Advanced|Tron Clone in 3D.|http://armagetronad.net/|{{Pkg|armagetronad}}}}<br />
* {{App|Extreme Tux Racer|3D game where you guide Tux the penguin down a course of snow and ice collecting herring.|https://sourceforge.net/projects/extremetuxracer|{{Pkg|extremetuxracer}}}}<br />
* {{App|Maniadrive|Arcade car game on acrobatic tracks with quick and nervous gameplay.|http://maniadrive.raydium.org/|{{AUR|maniadrive}}}}<br />
* {{App|Moon Buggy|Simple game for the text mode.|http://seehuhn.de/pages/moon-buggy/|{{AUR|moon-buggy}}}}<br />
* {{App|Speed Dreams|Fork of Torcs, aiming to implement exciting new features as well as improving realism.|http://speed-dreams.org/|{{Pkg|speed-dreams}}}}<br />
* {{App|Stunt Rally|Racing game with rally style of driving, mostly on gravel.|http://stuntrally.tuxfamily.org/|{{AUR|stuntrally}}}}<br />
* {{App|Supertux Kart|Kart racing game featuring Tux and his friends.|http://supertuxkart.sourceforge.net/|{{Pkg|supertuxkart}}}}<br />
* {{App|Torcs|3D racing cars simulator using OpenGL.|http://torcs.sourceforge.net/|{{Pkg|torcs}}}}<br />
* {{App|Trigger Rally|Free OpenGL rally car racing game.|https://sourceforge.net/projects/trigger-rally/|{{AUR|trigger}}}}<br />
* {{App|Ultimate Stunts|Remake of the famous DOS-game 'stunts'.|http://www.ultimatestunts.nl/|{{AUR|ultimatestunts}}}}<br />
* {{App|VDrift|Open source driving simulation made with drift racing in mind.|http://vdrift.net/|{{Pkg|vdrift}}}}<br />
* {{App|[[Wikipedia:X-Moto|XMoto]]|Challenging 2D motocross platform game, where physics play an important role.|https://xmoto.tuxfamily.org/|{{Pkg|xmoto}}}}<br />
<br />
== Rogue-like ==<br />
<br />
See also [[Wikipedia:Chronology of roguelike video games]].<br />
<br />
* {{App|[[Wikipedia:ADOM|ADOM]]|Ancient Domains Of Mystery.|http://adom.de|{{AUR|adom}}}}<br />
* {{App|[[Wikipedia:Angband (video game)|Angband]]|Roguelike dungeon exploration game based on the writings of JRR Tolkien.|http://rephial.org/|{{Pkg|angband}}}}<br />
* {{App|ASCIIpOrtal|Sidescrolling game with ANSI text graphics in which you are a person holding a device which creates portals, or links to other parts of the level.|https://github.com/cymonsgames/ASCIIpOrtal|{{Pkg|asciiportal}}}}<br />
* {{App|[[Wikipedia:Brogue (video game)|Brogue]]|A beginner-friendly Rogue-like.|https://sites.google.com/site/broguegame/|{{AUR|brogue}}}}<br />
* {{App|[[Wikipedia:Cataclysm: Dark Days Ahead|Cataclysm: Dark Days Ahead]]|Post-apocalyptic roguelike.|http://en.cataclysmdda.com/|{{Pkg|cataclysm-dda}}}}<br />
* {{App|[[Wikipedia:Linley's Dungeon Crawl|Linley's Dungeon Crawl]]||http://www.dungeoncrawl.org/|{{AUR|crawl}}}}<br />
* {{App|[[Wikipedia:DoomRL|DoomRL]]|Simple roguelike game, based on Doom. Perfect for starters.|http://doom.chaosforge.org/|{{AUR|doomrl}}}}<br />
* {{App|[[Wikipedia:Dwarf_Fortress|Dwarf Fortress]]|Single-player fantasy game. You control a dwarven outpost or an adventurer in a randomly generated persistent world.|http://www.bay12games.com/dwarves/|{{Pkg|dwarffortress}}}}<br />
* {{App|glHack|An OpenGL-based clone of NetHack.|http://glhack.sourceforge.net/|{{Pkg|glhack}}}}<br />
* {{App|[[Wikipedia:NetHack|Nethack]]|Single player dungeon exploration game.|http://www.nethack.org/|{{Pkg|nethack}}}}<br />
* {{App|[[Wikipedia:Rogue (video game)|Rogue]]|Original dungeon crawl game.|http://rogue.rogueforge.net/rogue-5-4/|{{Pkg|rogue}}}}<br />
* {{App|[[Wikipedia:Dungeon Crawl Stone Soup|Stone Soup]]|Dungeon Crawl Stone Soup.|https://crawl.develz.org/wordpress/|{{Pkg|stone-soup}}}}<br />
* {{App|[[Wikipedia:Tales of Maj'Eyal|Tales of Maj'Eyal]] (previously ''Troubles of Middle Earth'')|A dungeon crawler similar to Angband, based on the works of Tolkien.|https://te4.org/|{{AUR|tome2}}, {{AUR|tome4}}}}<br />
* {{App|wanderer|Wanderer is a game similar to Boulderdash, Repton, XOR and others.|http://e271.net/~marina/wanderer.html|{{AUR|wanderer}} {{AUR|wanderer-git}}}}<br />
<br />
== Role-playing games (RPG) ==<br />
<br />
* {{App|Arx Libertatis|This project is a fully working, open source port of Arx Fatalis, a 2002 first-person role-playing game developed by Arkane Studios. It features some improvements over the original engine like bug fixes and wide screen support.|https://arx-libertatis.org/|{{AUR|arxlibertatis}}}}<br />
* {{App|Egoboo|Open-source action RPG/dungeon crawling adventure with OpenGL 3D graphics.|http://egoboo.sourceforge.net/|{{AUR|egoboo}}}}<br />
* {{App|fheores2|Attempt to reimplement the [[Wikipedia:Heroes of Might and Magic II|Heroes of Might and Magic II]] engine using SDL.|https://sourceforge.net/projects/fheroes2/|{{AUR|fheroes2-svn}}}}<br />
* {{App|Flare|Action game similar to Diablo.|http://www.flarerpg.org/|{{AUR|flare-game-git}}}}<br />
* {{App|FreedroidRPG|Mature science fiction role playing game set in the future|http://freedroid.org/|{{Pkg|freedroidrpg}}}}<br />
* {{App|GemRB|Attempt to reimplement the [[Wikipedia:Infinity Engine|Bioware's Infinity Engine]] under GNU GPL.|http://www.gemrb.org/|{{Pkg|gemrb}}}}<br />
* {{App|OpenMW|Attempt to reimplement the popular role-playing game [[Wikipedia:Morrowind|Morrowind]]. OpenMW aims to be a fully playable, open source implementation of the game's engine.|https://openmw.org/|{{Pkg|openmw}}}}<br />
* {{App|VCMI|Attempt to reimplement [[Wikipedia:Heroes of Might and Magic III|Heroes of Might and Magic III]].|http://forum.vcmi.eu/portal.php|{{AUR|vcmi}} {{AUR|vcmi-git}}}}<br />
<br />
== Shooters (FPS, third person) ==<br />
<br />
* {{App|[[Wikipedia:CodeRED: Alien Arena|Alien Arena]]|Free, standalone FPS focused mainly on online multiplayer, but can also be played singleplayer against bots.|http://red.planetarena.org/|{{Pkg|alienarena}}}}<br />
* {{App|[[Wikipedia:AssaultCube|AssaultCube]]|Free multiplayer FPS, based on the cube engine. Realistic environments, fast, arcade gameplay. Much like Counter-Strike.|https://assault.cubers.net/|{{Pkg|assaultcube}}}}<br />
* {{App|AssaultCube Reloaded|AssaultCube improved.|http://acr.victorz.ca|{{AUR|assaultcube-reloaded}}}}<br />
* {{App|[[Wikipedia:Cube 2: Sauerbraten|Cube 2: Sauerbraten]]|Improved version of the Cube engine.|http://sauerbraten.org/|{{Pkg|sauerbraten}}}}<br />
* [[Wikipedia:Doom (1993 video game)|Doom]]: the famous shooter from ID Software has several ports for Linux. None of the id-engine games have copyleft game resources, only the game engine code was open sourced. See [http://doom.wikia.com/wiki/Source_port] for details.<br />
:* Doom 1 Demo data &ndash; {{AUR|doom1-wad}}<br />
:* {{App|Freedoom|Project aimed at creation of free Doom data files.|http://www.nongnu.org/freedoom/|{{AUR|freedoom1}}, {{AUR|freedoom2}}}}<br />
:* {{App|Chocolate Doom|Doom port reproducing the behavior of the original DOS version.|https://www.chocolate-doom.org/|{{AUR|chocolate-doom}}}}<br />
:* {{App|Doomsday|Advanced port of the Doom game engine, capable also of running Heretic, and Hexen games.|http://www.dengine.net/|{{AUR|doomsday}}}}<br />
:* {{App|GZDoom|Doom source port based on ZDoom with an OpenGL renderer.|https://github.com/coelckers/gzdoom|{{AUR|gzdoom}}}}<br />
:* {{App|PrBoom Plus|Enhanced version of the PrBoom Doom engine port.|http://prboom-plus.sourceforge.net/|{{AUR|prboom-plus}}}}<br />
:* {{App|ZDoom|Enhanced Doom port with additional support for Heretic, Hexen and Strife.|https://www.zdoom.org/|{{AUR|zdoom}}}}<br />
:* {{App|Doom Retro|DOOM Retro is the classic, refined DOOM source port. Based on Chocolate DOOM with enhancements from other source ports.|http://doomretro.com/|{{AUR|doom-retro-git}}}}<br />
* [[Wikipedia:Doom 3|Doom 3]]<br />
:* {{App|Doom 3|Stock Doom 3 binaries|http://www.idsoftware.com|{{AUR|doom3-bin}}}}<br />
:* {{App|Doom 3 Engine|Source-based Doom 3 engine|http://www.idsoftware.com|{{AUR|doom3}}}}<br />
:* {{App|dhemw3|Fork of iodoom3|https://github.com/dhewm/dhewm3|{{AUR|dhewm3}}}}<br />
:* {{App|RBDOOM-3-BFG|Fork of Doom 3 BFG Edition|https://github.com/RobertBeckebans/RBDOOM-3-BFG|{{AUR|rbdoom-3-bfg}}}}<br />
* {{App|ezQuake|Fast paced multiplayer FPS focusing on movement and trick jumps. The popular, modern and maintained Quake/QuakeWorld client. Can play on-line for free |http://ezquake.sourceforge.net/|{{AUR|ezquake}}}}<br />
* [[Wikipedia:Duke Nukem 3D|Duke Nukem 3D]]<br />
:* {{App|eduke32|Advanced source port.|http://eduke32.com/|{{AUR|eduke32}}}}<br />
* {{App|[[Wikipedia:Enemy Territory: Quake Wars|Enemy Territory: Quake Wars]]|Commercial team and class-based multiplayer game. Full version requires retail DVD to play.|http://zerowing.idsoftware.com/linux/etqw/ETQWFrontPage/|{{AUR|etqw}}}}<br />
* {{App|HHeretic|Linux port of Raven Game's old shooter, Heretic.|http://hhexen.sourceforge.net/hheretic.html|{{AUR|hheretic}}}}<br />
:* Heretic Demo game data &ndash; {{AUR|heretic1-wad}}<br />
* {{App|HHexen|Linux port of Raven Game's old shooter, Hexen.|http://hhexen.sourceforge.net/hhexen.html|{{AUR|hhexen}}}}<br />
:* Hexen 1 Demo game data &ndash; {{AUR|hexen1-wad}}<br />
* {{App|[[Wikipedia:Nexuiz|Nexuiz]]|Free, open-source first person shooter. Development ceased, most of the developers moved to project [http://xonotic.org/ Xonotic].|http://alientrap.org/nexuiz|{{AUR|nexuiz}}}}<br />
* {{App|nQuake|Fast paced multiplayer FPS focusing on movement and trick jumps. This is the popular Quake / QuakeWorld package, including ezQuake client, 24bit textures, maps, bots and more. Can play on-line for free.|http://nquake.sourceforge.net/|{{AUR|nquake}}}}<br />
* {{App|[[Wikipedia:OpenArena|OpenArena]]|Fast multiplayer shooter based on the quake3-engine.|http://openarena.ws|{{AUR|openarena}}}}<br />
* {{App|[[Wikipedia:Prey (video game)|Prey]]|First Person Shooter released in 2006 (with a GNU/Linux port in 2008), published by 3D Realms.|https://www.3drealms.com/prey/index.html|{{AUR|prey}}}}<br />
* [[Wikipedia:Quake (video game)|Quake]]<br />
:* Advanced Quake 1 game engine &ndash; {{AUR|darkplaces}}<br />
:* High quality textures for Quake from the Quake Revitalization Project &ndash; {{AUR|quake-qrp-textures}}<br />
* [[Wikipedia:Quake II|Quake II]]<br />
:* {{App|Quake 2|Built by Icculus|https://www.icculus.org/quake2/|{{AUR|quake2}}}}<br />
:* A true color retexture pak for Quetoo and other Quake2 engines supporting 32bpp tga textures &ndash; {{AUR|quake2-retexture}}<br />
:* Quake 2 engine focused on single player and 64bits. {{AUR|yamagi-quake2}}<br />
* [[Wikipedia:Quake III Arena|Quake III Arena]]<br />
:* Quake III Arena binaries &ndash; {{AUR|quake3}}<br />
:* {{App|ioquake3|De-facto FOSS Quake 3 distribution.|https://ioquake3.org/|{{AUR|ioquake3}}}}<br />
* [[Wikipedia:Quake 4|Quake 4]]<br />
:* Demo version &ndash; {{AUR|quake4-demo}}<br />
:* Quake 4 engine &ndash; {{AUR|quake4}}<br />
* {{App|[[Wikipedia:Red Eclipse|Red Eclipse]]|Single-player and multi-player first-person ego-shooter, built as a total conversion of Cube Engine 2.|http://redeclipse.net|{{AUR|redeclipse}}}}<br />
* {{App|Tesseract|Smooth FPS with map editing, instagib, DM and CTF.|http://tesseract.gg/|{{AUR|tesseract-game}}}}<br />
* {{App|[[Wikipedia:Tremulous|Tremulous]]|FPS with elements of real time strategy, featuring humans and aliens.|http://tremulous.net/|{{AUR|tremulous}}}}<br />
* {{App|[[Wikipedia:Unreal Tournament (upcoming video game)|Unreal Tournament (upcoming)]]|Free and open-source remake of the original using Unreal Engine 4|https://www.unrealtournament.com/|{{AUR|unreal-tournament-4}}}}<br />
* {{App|[[Wikipedia:Unvanquished (video game)|Unvanquished]]|Team-based fps/rts hybrid game which pits aliens against humans. Monthly release that can be played on official servers.|https://unvanquished.net/|{{AUR|unvanquished}}}}<br />
* {{App|[[Urban Terror]]|Modern multiplayer FPS based on the ioquake3 engine.|http://urbanterror.info|{{Pkg|urbanterror}}}}<br />
* {{App|[[Wikipedia:Warsow (game)|Warsow]]|Fast paced multiplayer FPS focusing on movement and trick jumps.|https://warsow.net|{{Pkg|warsow}}}}<br />
* [[Wolfenstein: Enemy Territory]]<br />
:* Completely free, standalone, team-based, multiplayer FPS &ndash; {{AUR|enemy-territory}}<br />
:* Advanced open source project and fully compatible client and server &ndash; {{AUR|etlegacy32}}<br />
* {{App|[[Wikipedia:World of Padman|World of Padman]]|Stand slone somplex &ndash; cartoon-style multiplayer first-person shooter.|http://worldofpadman.net/website|{{AUR|worldofpadman}}}}<br />
* {{App|[[Wikipedia:Xonotic|Xonotic]]|Free, open-source first person shooter (a fork of Nexuiz but with modified gameplay).|http://xonotic.org|{{Pkg|xonotic}}}}<br />
* {{App|Mutant Factions|Free multiplayer action coop game.|http://mutantfactions.net|{{AUR|mutantfactions}}}}<br />
<br />
== Simulation ==<br />
<br />
* {{App|[[Wikipedia:Beyond the Red Line|Beyond the Red Line]]|Completely free stand-alone conversion of Freespace 2 based on the TV show Battlestar Galactica. Presumed abandoned, see Diaspora: Shattered Armistice for an alternative.|http://www.beyondtheredline.net/|{{AUR|btrl}}}}<br />
* {{App|Endless Sky|Open source, 2D space trading and combat game similar to the classic Escape Velocity series.|https://endless-sky.github.io/|{{AUR|endless-sky-git}}}}<br />
* {{App|[[Wikipedia:Flight Gear|Flight Gear]]|Open-source, multi-platform flight simulator.|http://www.flightgear.org/|{{Pkg|flightgear}}}}<br />
* {{App|[[Wikipedia:FooBillard|Foobillard++]]|Successor to Foobillard, OpenGL billiard game for Linux.|http://foobillardplus.sourceforge.net/|{{Pkg|foobillard++}}}}<br />
* {{App|[[Wikipedia:FreeSpace 2|FreeSpace 2]]|Open sourced space emulator.|https://icculus.org/freespace2/|{{AUR|fs2_open}}}}<br />
* {{App|[[Minetest]]|Voxel-based sandbox game engine and game.|http://www.minetest.net/|{{Pkg|minetest}}}}<br />
* {{App|Naev|Open source, 2D space trading and combat game, taking inspiration from the Escape Velocity series.|http://blog.naev.org/|{{Pkg|naev}}}}<br />
* {{App|[[Wikipedia:BVE Trainsim#openBVE|openBVE]]|Free-as-in-freedom train simulator placed in the public domain.|https://web.archive.org/web/odakyufan.zxq.net/openbve/|{{Pkg|openbve}}}}<br />
* {{App|[[Wikipedia:Pioneer (video game)|Pioneer]]|Open source, 3D, freeform single player space adventure set in the Milkyway galaxy at the turn of the 31st century in the spirit of Frontier: Elite II.|http://pioneerspacesim.net/|{{AUR|pioneer}}}}<br />
* {{App|Pydance|Python Dance Dance Revolution style game.|https://icculus.org/pyddr/|{{AUR|pydance}}}}<br />
* {{App|[[Wikipedia:Stepmania|Stepmania]]|Advanced dance simulation game.|http://www.stepmania.com/|{{AUR|stepmania}}}}<br />
* {{App|Terasology|Open source voxel world.|http://terasology.org|{{AUR|minetest}}}}<br />
* {{App|The Powder Toy|Open source physics sandbox game, which simulates air pressure and velocity, heat, gravity and a countless number of interactions between different substances.|http://powdertoy.co.uk/|{{AUR|powder-toy}}}}<br />
* {{App|Voxelands|A fork of Minetest, an Infiniminer/Minecraft inspired game.|http://www.voxelands.com/|{{AUR|voxelands}}}}<br />
<br />
== Strategy ==<br />
<br />
* {{App|[[0 A.D.]]|3D and historically-based real-time strategy game, alpha stage.|https://play0ad.com/|{{Pkg|0ad}}}}<br />
* {{App|Advanced Strategic Command|Turn based strategy game in the tradition of the Battle Isle series.|http://www.asc-hq.org/|{{AUR|advanced-strategic-command}}}}<br />
* {{App|Dark Oberon|Open source real-time strategy game similar to Warcraft II.|http://dark-oberon.sourceforge.net/|{{AUR|dark-oberon}}}}<br />
* {{App|[[Wikipedia:Endgame: Singularity|Endgame Singularity]]|Turn based single player strategy/simulation about a AI hiding, growing and evolving.|http://www.emhsoft.com/singularity/|{{Pkg|singularity}}}}<br />
* {{App|Factorio|A game about mining resources, planning and building factories, automating production and fighting alien enemies.|http://www.factorio.com/|{{AUR|factorio}}}}<br />
* {{App|Factorio demo|A game about mining resources, planning and building factories, automating production and fighting alien enemies. (Demo)|http://www.factorio.com/|{{AUR|factorio-demo}}}}<br />
* {{App|[[Wikipedia:Freeciv|Freeciv]]|Multiuser clone of the famous Microprose game of Civilization.|http://freeciv.wikia.com/wiki/Main_Page|{{Pkg|freeciv}}}}<br />
* {{App|[[Wikipedia:FreeCol|FreeCol]]|Turn-based strategy game based on Colonization.|http://www.freecol.org/|{{Pkg|freecol}}}}<br />
* {{App|[[Wikipedia:FTL:_Faster_Than_Light|FTL: Faster Than Light]]|Popular rogue-like space-sim released to positive reception in 2012.|http://www.ftlgame.com/|{{AUR|ftl}}}}<br />
* {{App|Globulation 2|Multiplayer RTS with some "economic" elements minimizing the amount of micromanagement.|https://globulation2.org/wiki/Main_Page|{{Pkg|glob2}}}}<br />
* {{App|[[Wikipedia:Heroes of Newerth|Heroes of Newerth]]|Online, multi-player strategy game that is based upon DoTA (Defense of the Ancients). Free-to-own (gameplay free; pay for cosmetic upgrades only)|https://heroesofnewerth.com/|{{AUR|hon}}}}<br />
* {{App|KReversi|A ''reversi'' implementation. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/kreversi/|{{Pkg|kdegames-kreversi}}}}<br />
* {{App|KsirK|A ''risk''-styled game in which players try to conquer the world by deciding which area to be invaded next. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/ksirk/|{{Pkg|kdegames-ksirk}}}}<br />
* {{App|[[Wikipedia:Spring_Engine#Kernel_Panic|Kernel Panic]]|A game based around combat inside a computer, with 3 unique sides: the System, the Hacker and the Network waging war in a matrix of DOOM! No resource economy exists in KP, with the only constraints being time and space.|https://springrts.com/wiki/Kernel_Panic|{{Pkg|spring-kp}}}}<br />
* {{App|[[Wikipedia:MegaGlest|MegaGlest]]|Fork of Glest, a 3D real-time strategy game in a fantastic world.|https://github.com/megaglest|{{Pkg|megaglest}}}}<br />
* {{App|[[Wikipedia:Netpanzer|Netpanzer]]|Realtime Strategy game like Command and Conquer but without building bases.|http://www.netpanzer.org/|{{AUR|netpanzer}}}}<br />
* {{App|[[Wikipedia:Spring_Engine#Spring:1944|Spring:1944]]| A WWII themed game with four fully functional sides (US, Germany, USSR, Britain), period-accurate units and strengths. Realism comes second only to creating a game that is fun and accessible to play.|http://spring1944.org/|{{Pkg|spring-1944}}}}<br />
* {{App|[[Wikipedia:The Battle for Wesnoth|The Battle for Wesnoth]]|Free, turn-based tactical strategy game with a high fantasy theme, featuring both single-player, and online/hotseat multiplayer combat.|https://www.wesnoth.org/|{{Pkg|wesnoth}}}}<br />
* {{App|UFO Alien Invasion|Fight aliens trying to capture Earth.|http://ufoai.ninex.info/wiki/index.php/News|{{Pkg|ufoai}}}}<br />
* {{App|[[Wikipedia:Unknown Horizons|Unknown Horizons]]|2.5D isometric realtime strategy simulation with an emphasis on economy and city building. Expand your small settlement to a strong and wealthy colony, collect taxes and supply your inhabitants with valuable goods. Increase your power with a well balanced economy and with strategic trade and diplomacy.|http://www.unknown-horizons.org/|{{AUR|unknown-horizons-git}}}}<br />
* {{App|[[Wikipedia:Widelands|Widelands]]|Slow-paced strategy like "the Settlers 2".|https://widelands.org|{{Pkg|widelands}}}}<br />
* {{App|[[Warzone 2100]]|You command the forces of The Project in a battle to rebuild the world after mankind has almost been destroyed by nuclear missiles. The game offers campaign, multi-player, and single-player skirmish modes. An extensive tech tree with over 400 different technologies, combined with the unit design system, allows for a wide variety of possible units and tactics.|https://wz2100.net/|{{Pkg|warzone2100}}}}<br />
* {{App|[[Wikipedia:Zero-K|Zero-K]]|Zero-K is a free multi-platform open source real-time strategy computer game. Initially based on content from Total Annihilation on the open source Spring Engine, it was forked and all proprietary content replaced, and evolved into a completely new game with unique features. It can be easily installed by installing the flobby client from the AUR or alternatively (and preferably) by installing the official mono package and downloading and running the Zero-K lobby from the official website.|http://zero-k.info/|{{AUR|flobby-git}}}}<br />
<br />
== Tycoon/management games ==<br />
<br />
* {{App|Lincity-ng|City simulation game in which you are required to build and maintain a city. You can win the game either by building a sustainable economy or by evacuating all citizens with spaceships.|https://fedorahosted.org/LinCity-NG/|{{Pkg|lincity-ng}}}}<br />
* {{App|Konquest|A turn-based game in which the player wage wars by managing a fleet of spaceships and conquering other planets. Part of {{Grp|kdegames}}.|https://www.kde.org/applications/games/konquest/|{{Pkg|kdegames-konquest}}}}<br />
* {{App|[[Wikipedia:Simutrans|Simutrans]]|Another Transport simulation that works on linux with sdl.|https://www.simutrans.com/|{{Pkg|simutrans}}}}<br />
* {{App|[[OpenTTD]]|Open source clone of the Microprose game "Transport Tycoon Deluxe", a popular game originally written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.|https://www.openttd.org/|{{Pkg|openttd}}}}<br />
* {{App|OpenRCT2|Free reimplementation of the game "RollerCoaster Tycoon 2 (RCT2)" with multiplayer support. It requires a copy of the original game to play it.|https://openrct2.org/|{{AUR|openrct2}}}}<br />
<br />
== Visual novels ==<br />
<br />
* {{App|[[Wikipedia:Don't take it personally, babe, it just ain't your story|Don't take it personally]]|Almost kinetic visual novel that tells a story of a new high school literature teacher, set in a prestigious private high school, and on the social networks of 2027.|http://scoutshonour.com/donttakeitpersonallybabeitjustaintyourstory/|{{AUR|donttakeitpersonally}}}}<br />
* {{App|[[Wikipedia:Juniper's Knot|Juniper's Knot]]|Short game about boy and fiend.|http://junipersknot.dischan.org/|{{AUR|junipersknot}}}}<br />
* {{App|[[Wikipedia:Katawa Shoujo|Katawa Shoujo]]|Bishoujo-style visual novel game that tells a story of a young man and five other girls suffering with varying disabilities.|http://katawa-shoujo.com/|{{AUR|katawa-shoujo}}}}<br />
* {{App|[[Wikipedia:Narcissu|Narcissu]]|Visual novel, telling the story of a terminally ill young man and woman.|http://narcissu.insani.org/|{{AUR|narcissu2-en}}}}<br />
<br />
== Comparison table ==<br />
{| class="wikitable sortable"<br />
! style="width:190px;" | Name<br />
! Written in<br />
! Genre<br />
! License<br />
! style="width:130px;" | Package<br />
! Description<br />
|-<br />
| '''[[w:0 A.D. (video game)|0 A.D.]]'''<br/>- [https://play0ad.com/ play0ad.com]<br />
| style="background:#c6769b;" | C/C++<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU Lesser General Public License">LGPL</abbr>/<abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|0ad}}<br />
| 3D and historically-based real-time strategy game.<br />
|-<br />
| '''Abuse'''<br/>- [http://abuse.zoy.org abuse.zoy.org]<br />
| style="background:#f56f9f;" | C++<br />
| Action<br />
| style = "background:#9F9;" | <abbr title="Public Domain">PD</abbr>/<abbr title="GNU General Public License">GPL</abbr>/<abbr title="Do What the Fuck You Want To Public License">WTFPL</abbr><br />
| {{Pkg|abuse}}<br />
| Side-scroller action game that pits you against ruthless alien killers.<br />
|-<br />
| '''[[w:ADOM|ADOM]]'''<br/>- [http://adom.de adom.de]<br />
| style="background-color:#999999;" | C<br />
| Rogue-Like<br />
| style="background:#F99;" | Freemium<br />
| {{AUR|adom}}<br />
| Ancient Domains Of Mystery.<br />
|-<br />
| '''[[w:CodeRED: Alien Arena|Alien Arena]]'''<br/>- [http://red.planetarena.org/ red.planetarena.org]<br />
| style="background-color:#999999;" | C<br />
| <abbr title="First-Person Shooter">FPS</abbr><br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|alienarena}}<br />
| Free, standalone FPS focused mainly on online multiplayer, but can also be played singleplayer against bots.<br />
|-<br />
| '''[[w:Angband (video game)|Angband]]'''<br/>- [http://rephial.org rephial.org]<br />
| style="background-color:#999999;" | C<br />
| Rogue-Like<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|angband}}<br />
| Roguelike dungeon exploration game based on the writings of JRR Tolkien.<br />
|-<br />
| '''[[w:AssaultCube|AssaultCube]]'''<br/>- [http://assault.cubers.net/ assault.cubers.net]<br />
| style="background:#c6769b;" | C/C++<br />
| <abbr title="First-Person Shooter">FPS</abbr><br />
| style="background:#9F9;" | ZLIB<br />
| {{Pkg|assaultcube}}<br />
| Free multiplayer FPS, based on the cube engine. Realistic environments, fast, arcade gameplay. Much like Counter-Strike.<br />
|-<br />
| '''[[w:Endgame: Singularity|Endgame Singularity]]'''<br/>- [http://www.emhsoft.com/singularity/ emhsoft.com/singularity]<br />
| style="background:#5f8db3;" | Python<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|singularity}}<br />
| Turn based single player strategy/simulation about a AI hiding, growing and evolving.<br />
|-<br />
| '''[[w:FlightGear|FlightGear]]'''<br/>- [http://www.flightgear.org/ flightgear.org]<br />
| style="background:#c6769b;" | C/C++<br />
| Simulation<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|flightgear}}<br />
| Open-source, multi-platform flight simulator.<br />
|-<br />
| '''[[w:Foobillard++|Foobillard++]]'''<br/>- [http://foobillardplus.sourceforge.net/ foobillardplus.sourceforge.net]<br />
| style="background-color:#999999;" | C<br />
| Simulation<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|foobillard++}}<br />
| Successor to Foobillard, OpenGL billiard game for Linux.<br />
|-<br />
| '''[[w:Freeciv|Freeciv]]'''<br/>- [http://freeciv.wikia.com/wiki/Main_Page freeciv.wikia.com]<br />
| style="background-color:#999999;" | C<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|freeciv}}<br />
| Multiuser clone of the famous Microprose game of Civilization.<br />
|-<br />
| '''[[w:Freecol|Freecol]]'''<br/>- [http://www.freecol.org/ freecol.org]<br />
| style="background:#f2943b;" | Java<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|freecol}}<br />
| Turn-based strategy game based on Colonization.<br />
|-<br />
| '''[[w:Megaglest|Megaglest]]'''<br/>- [https://megaglest.org/ megaglest.org]<br />
| style="background:#c6769b;" | C/C++<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 3">GPLv3</abbr><br />
| {{Pkg|megaglest}}<br />
| Fork of Glest, a 3D real-time strategy game in a fantastic world.<br />
|-<br />
| '''[[w:Command_%26_Conquer:_Red_Alert#Open_source_remake|OpenRA]]'''<br/>- [http://www.openra.net openra.net]<br />
| style="background:#3ab922;" | C#<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 3">GPLv3</abbr><br />
| {{Pkg|openra}}, {{AUR|openra-git}}<br />
| An open-source implementation of the Command & Conquer: Red Alert engine using .NET/Mono and OpenGL.<br />
|-<br />
| '''PyChess'''<br/>- [http://pychess.org pychess.org]<br />
| style="background:#5f8db3;" | Python<br />
| Chess<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 3">GPLv3</abbr><br />
| {{Pkg|pychess}}<br />
| An advanced chess client for Linux following the GNOME Human Interface Guidelines.<br />
|-<br />
| rowspan = "2" | '''[[w:RuneScape|RuneScape]]'''<br/>- [http://www.runescape.com runescape.com]<br />
| style="background:#f2943b;" | Java (legacy)<br />
| rowspan = "2" | <abbr title="Massively Multiplayer Online Role-Playing Game">MMORPG</abbr><br />
| rowspan = "2" style="background:#F99;" | Freemium<br />
| {{AUR|unix-runescape-client}}<br />
| rowspan = "2" | Massive online medieval fantasy game by Jagex.<br />
|-<br />
| style="background:#f56f9f;" | C++ (NXT) <br />
| {{AUR|runescape-launcher}}<br />
|-<br />
| '''[[w:SuperTux|SuperTux]]'''<br/>- [http://supertux.github.io/ supertux.github.io]<br />
| style="background:#f56f9f;" | C++<br />
| Platform<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 3">GPLv3</abbr><br />
| {{Pkg|supertux}}<br/>{{AUR|supertux-git}}<br/>{{AUR|supertux-old}}<br />
| Classic 2D jump'n side-scroller game similar to the Super Mario Bros games, featuring Tux. <br/>Milestone 1 of the game was released in 2003 and is provided by supertux-old. <br/>Milestone 2, the current version of SuperTux in the Arch Linux community repository, was released in December 2015.<br />
|-<br />
| '''[[w:The Battle for Wesnoth|The Battle for Wesnoth]]'''<br/>- [http://www.wesnoth.org/ wesnoth.org]<br />
| style="background:#b5857b;" | C/C++/Java<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|wesnoth}}<br />
| Free, turn-based tactical strategy game with a high fantasy theme, featuring both single-player, and online/hotseat multiplayer combat.<br />
|-<br />
| '''The Mana World'''<br/>- [http://themanaworld.org/ themanaworld.org]<br />
| style="background:#f56f9f;" | C++<br />
| <abbr title="Massively Multiplayer Online Role-Playing Game">MMORPG</abbr><br />
| style="background:#9F9;" | <abbr title="GNU Affero General Public License Version 3">AGPLv3</abbr>/<abbr title="GNU General Public License Version 3">GPLv3</abbr><br />
| {{Pkg|manaplus}}<br />
| Serious effort to create an innovative free and open-source MMORPG.<br />
|-<br />
| '''[[Urban Terror]]'''<br/>- [http://urbanterror.info/ urbanterror.info]<br />
| style="background-color:#999999;" | C<br />
| <abbr title="First-Person Shooter">FPS</abbr><br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|urbanterror}}<br />
| Modern multiplayer FPS based on the ioquake3 engine.<br />
|-<br />
| '''[[Warzone 2100]]'''<br/>- [http://wz2100.net/ wz2100.net]<br />
| style="background:#f56f9f;" | C++<br />
| Strategy<br />
| style="background:#9F9;" | <abbr title="GNU General Public License Version 2">GPLv2</abbr><br />
| {{Pkg|warzone2100}}<br />
| 3D realtime strategy game on a future Earth.<br />
|}<br />
<br />
== See also ==<br />
* [http://liflg.org/ Linux Installers for Linux Gamers]<br />
* [http://www.icculus.org/lgfaq/gamelist.php The Linux Gamers' Game List]<br />
* [https://www.humblebundle.com/ The Humble Bundle]<br />
* [[Wikipedia:Humble Bundle]]<br />
* [http://store.steampowered.com/browse/linux/ Steam Linux store]<br />
* [https://steamdb.info/linux/ List of Linux Steam games]<br />
* [[Wikipedia:List of games developed by Valve]]<br />
* [[Wikipedia:Game engine recreation]]<br />
* [[Wikipedia:Source port]]<br />
* [http://www.lgdb.org/ Linux game database]<br />
* [http://www.penguspy.com/#/All/free_and_commercial/open_closed/sort=1/view=1/limit=0 Penguspy]<br />
* [[Wikipedia:Category:Linux_games|Lists of Linux games on Wikipedia]]<br />
* http://rewiki.regengedanken.de/wiki/Links_to_engine_reimplementations<br />
* [http://lgames.sourceforge.net/about.php LGames - open source games for Linux]</div>Rjt