https://wiki.archlinux.org/api.php?action=feedcontributions&user=Time132&feedformat=atomArchWiki - User contributions [en]2024-03-29T07:43:18ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Easy-RSA&diff=633704Easy-RSA2020-08-29T19:51:37Z<p>Time132: We do not want to copy all the *.crt to the server but just the servername.crt</p>
<hr />
<div>[[Category:Virtual Private Network]]<br />
[[ja:Easy-RSA]]<br />
The first step when setting up [[OpenVPN]] is to create a [[Wikipedia:Public key infrastructure|Public Key Infrastructure (PKI)]]. In summary, this consists of:<br />
* A public master [[Wikipedia:Certificate Authority|Certificate Authority (CA)]] certificate and a private key.<br />
* A separate public certificate and private key pair for each server.<br />
* A separate public certificate and private key pair for each client.<br />
<br />
One can think of the key-based authentication in terms similar to that of how [[SSH keys]] work with the added layer of a signing authority (the CA). OpenVPN relies on a bidirectional authentication strategy, so the client must authenticate the server's certificate and in parallel, the server must authenticate the client's certificate. This is accomplished by the 3rd party's signature (the CA) on both the client and server certificates. Once this is established, further checks are performed before the authentication is complete. For more details, see [https://www.secure-computing.net/openvpn/howto.php#pki secure-computing's guide].<br />
<br />
{{Note|<br />
* The process outlined below requires users to securely transfer private key files to/from machines. For the purposes of this guide, using scp is shown, but readers may employ alternative methods as well. Since the Arch default is to deny the root user over ssh, using scp requires transferring ownership of the files to be exported to a non-root user called ''foo'' throughout the guide.<br />
* Avoid generating keys on devices without a good entropy source. See [https://community.openvpn.net/openvpn/wiki/GettingStartedwithOVPN#Configuringencryption]. Sometimes, [[Random_number_generation#Alternatives|cryptographically secure pseudorandom number generators]] can be used.<br />
}}<br />
<br />
== Certificate Authority (CA) ==<br />
For security purposes, it is recommended that the CA machine be separate from the machine running OpenVPN.<br />
<br />
On the '''CA machine''', install {{pkg|easy-rsa}}, initialize a new PKI and generate a CA keypair that will be used to sign certificates:<br />
<br />
# cd /etc/easy-rsa<br />
# export EASYRSA=$(pwd)<br />
# easyrsa init-pki<br />
# easyrsa build-ca<br />
<br />
Starting from OpenVPN 2.4, one can also use elliptic curves for TLS connections (e.g. tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384). Elliptic curve cryptography provides more security and eliminates the need for a Diffie-Hellman parameters file. See [https://forums.openvpn.net/viewtopic.php?f=4&t=23227] and [https://www.maths.tcd.ie/~fionn/misc/ec_vpn.php].<br />
<br />
Append the following lines to {{ic|/etc/easy-rsa/vars}} to make Easy-RSA use elliptic curves:<br />
<br />
{{hc|/etc/easy-rsa/vars|<br />
set_var EASYRSA_ALGO ec<br />
set_var EASYRSA_CURVE secp521r1<br />
set_var EASYRSA_DIGEST "sha512"<br />
}}<br />
<br />
Now set up PKI and generate a CA certificate:<br />
<br />
# cd /etc/easy-rsa<br />
# export EASYRSA=$(pwd)<br />
# export EASYRSA_VARS_FILE=/etc/easy-rsa/vars<br />
# easyrsa init-pki<br />
# easyrsa build-ca<br />
<br />
== OpenVPN server files ==<br />
<br />
A functional OpenVPN server requires the following:<br />
<br />
# The CA's public certificate<br />
# The Diffie-Hellman (DH) parameters file (required by TLS mode when not using TLS with elliptic curves).<br />
# The server key pair (a public certificate and a private key).<br />
# The Hash-based Message Authentication Code (HMAC) key.<br />
<br />
Upon completing the steps outlined in this article, users will have generated the following files on the server:<br />
<br />
# {{ic|/etc/openvpn/server/ca.crt}}<br />
# {{ic|/etc/openvpn/server/dh.pem}} (not when using TLS with elliptic curves)<br />
# {{ic|/etc/openvpn/server/servername.crt}} and {{ic|/etc/openvpn/server/servername.key}}<br />
# {{ic|/etc/openvpn/server/ta.key}}<br />
<br />
=== CA public certificate ===<br />
<br />
The CA public certificate {{ic|/etc/easy-rsa/pki/ca.crt}} generated in the previous step needs to be copied over to the machine that will be running OpenVPN.<br />
<br />
On the '''CA machine''':<br />
<br />
# scp /etc/easy-rsa/pki/ca.crt foo@hostname-of-openvpn-server:/tmp/ca.crt<br />
On the '''OpenVPN server machine''':<br />
<br />
# mv /tmp/ca.crt /etc/openvpn/server/<br />
# chown root:root /etc/openvpn/server/ca.crt<br />
<br />
=== Server certificate and private key ===<br />
<br />
On the '''OpenVPN server machine''', install {{pkg|easy-rsa}} and generate a key pair for the server:<br />
<br />
# cd /etc/easy-rsa<br />
# easyrsa init-pki<br />
# easyrsa gen-req servername nopass<br />
# cp /etc/easy-rsa/pki/private/servername.key /etc/openvpn/server/<br />
<br />
This will create two files:<br />
<br />
{{ic|/etc/easy-rsa/pki/reqs/servername.req}}<br />
{{ic|/etc/easy-rsa/pki/private/servername.key}}<br />
<br />
=== Diffie-Hellman (DH) parameters file ===<br />
<br />
{{Note|If you are using TLS with elliptic curves, skip this step.}}<br />
<br />
On the '''OpenVPN server machine''', create the initial dh.pem file:<br />
<br />
# openssl dhparam -out /etc/openvpn/server/dh.pem 2048<br />
<br />
{{Note|Although values higher than 2048 (4096 for example) may be used, they take considerably more time to generate and offer little benefit in security but advisable to have the DH prime number length to match the length of the RSA key. See [https://community.openvpn.net/openvpn/wiki/GettingStartedwithOVPN#Configuringencryption]}}<br />
<br />
=== Hash-based Message Authentication Code (HMAC) key ===<br />
<br />
On the '''OpenVPN server machine''', create the HMAC key:<br />
<br />
# openvpn --genkey --secret /etc/openvpn/server/ta.key<br />
<br />
This will be used to add an additional HMAC signature to all SSL/TLS handshake packets. In addition any UDP packet not having the correct HMAC signature will be immediately dropped, protecting against:<br />
<br />
* Portscanning.<br />
* DOS attacks on the OpenVPN UDP port.<br />
* SSL/TLS handshake initiations from unauthorized machines.<br />
* Any eventual buffer overflow vulnerabilities in the SSL/TLS implementation.<br />
<br />
== OpenVPN client files ==<br />
<br />
=== Client certificate and private key ===<br />
<br />
Any machine can generate client files provided that {{pkg|easy-rsa}} is installed.<br />
<br />
If the pki is not initialized, do so via:<br />
<br />
# cd /etc/easy-rsa<br />
# easyrsa init-pki<br />
<br />
Generate the client key and certificate:<br />
<br />
# cd /etc/easy-rsa<br />
# easyrsa gen-req client1 nopass<br />
<br />
This will create two files:<br />
<br />
{{ic|/etc/easy-rsa/pki/reqs/client1.req}}<br />
{{ic|/etc/easy-rsa/pki/private/client1.key}}<br />
<br />
The gen-req set can be repeated as many times as needed for additional clients.<br />
<br />
== Sign the certificates and pass them back to the server and clients ==<br />
<br />
=== Obtain and sign the certificates on the CA ===<br />
<br />
The server and client(s) certificates need to be signed by the CA then transferred back to the OpenVPN server/client(s).<br />
<br />
On the '''OpenVPN server''' (or the box used to generate the certificate/key pairs):<br />
<br />
# cp /etc/easy-rsa/pki/reqs/*.req /tmp<br />
# chown foo /tmp/*.req<br />
<br />
Securely transfer the files to the CA machine for signing:<br />
<br />
$ scp /tmp/*.req foo@hostname-of-CA:/tmp<br />
<br />
On the '''CA machine''', import and sign the certificate requests:<br />
<br />
# cd /etc/easy-rsa<br />
# easyrsa import-req /tmp/servername.req servername<br />
# easyrsa import-req /tmp/client1.req client1<br />
# easyrsa sign-req server servername<br />
# easyrsa sign-req client client1<br />
<br />
This will create the following signed certificates which can be transferred back to their respective machines:<br />
<br />
{{ic|/etc/easy-rsa/pki/issued/servername.crt}}<br />
{{ic|/etc/easy-rsa/pki/issued/client1.crt}}<br />
<br />
The leftover .req files can be safely deleted:<br />
<br />
# rm -f /tmp/*.req<br />
<br />
=== Pass the signed certificates back to the server and client(s) ===<br />
<br />
On the '''CA machine''', copy the signed certificates and transfer them to the server/client(s):<br />
<br />
# cp /etc/easy-rsa/pki/issued/*.crt /tmp<br />
# chown foo /tmp/*.crt<br />
$ scp /tmp/servername.crt foo@hostname-of-openvpn_server:/tmp<br />
$ scp /tmp/client1.crt foo@hostname-of-openvpn_client:/tmp<br />
<br />
On the '''OpenVPN server''', move the certificates in place and reassign ownership.<br />
For the server:<br />
# mv /tmp/servername.crt /etc/openvpn/server/<br />
# chown root:root /etc/openvpn/server/servername.crt<br />
For the client:<br />
# mkdir /etc/easy-rsa/pki/signed<br />
# mv /tmp/client1.crt /etc/easy-rsa/pki/signed<br />
<br />
That is it. To generate the client profile. See: [[OpenVPN#ovpngen]].<br />
<br />
== Revoking certificates and alerting the OpenVPN server ==<br />
<br />
=== Revoke a certificate ===<br />
<br />
Over time, it may become necessary to revoke a certificate thus denying access to the affected user(s). This example revokes the "client1" certificate.<br />
<br />
On the '''CA machine''':<br />
<br />
# cd /etc/easy-rsa<br />
# easyrsa revoke client1<br />
# easyrsa gen-crl<br />
<br />
This will produce the CRL file {{ic|/etc/easy-rsa/pki/crl.pem}} that needs to be transferred to the OpenVPN server and made active there.<br />
<br />
=== Alert the OpenVPN server ===<br />
<br />
On the '''CA machine''':<br />
<br />
# cp /etc/easy-rsa/pki/crl.pem /tmp<br />
# chown foo /tmp/crl.pem<br />
<br />
On the '''OpenVPN machine''', copy {{ic|crl.pem}} and inform the server to read it:<br />
# mv /tmp/crl.pem /etc/openvpn/server/<br />
# chown root:root /etc/openvpn/server/crl.pem<br />
<br />
Edit {{ic|/etc/openvpn/server/server.conf}} uncommenting the crl-verify directive, then [[restart]] openvpn-server@server.service to re-read it:<br />
<br />
{{hc|/etc/openvpn/server/server.conf|<br />
.<br />
crl-verify /etc/openvpn/server/crl.pem<br />
.<br />
}}<br />
<br />
== Abbreviated example specifically for containerized Openvpn ==<br />
This section is specifically for users wanting to run Openvpn in a Linux container ([[LXC]]). The code below is designed to be pasted into a root shell; the standard hash has been omitted to allow for easy copy/paste operations. It is recommended to have two different shell windows open, one for the host and one for the container.<br />
<br />
{{Note|<br />
* It is assumed that the CA machine is the host and the server machine is the container.<br />
* Both the host and container need to have both {{pkg|openvpn}} and {{pkg|easy-rsa}} installed.<br />
* The container needs to be running.<br />
* Define the name of the container in the CONTAINERNAME variable below.<br />
}}<br />
<br />
On the host:<br />
CONTAINERNAME=foo<br />
/etc/easy-rsa<br />
easyrsa init-pki && easyrsa build-ca<br />
cp /etc/easy-rsa/pki/ca.crt /var/lib/lxc/$CONTAINERNAME/rootfs/etc/openvpn/server/<br />
<br />
{{Note|One may substitute other names in the 2nd line of this code (the for loop). At a minimum, one needs to generate a key for the server and for at least 1 client. The generic words "server" and "client" are shown, but in reality, these can by any words such as the hostname of the container or the name of the intended user. As well, one can add additional words to the for loop if more than 2 keys are needed. If that is the case, just be sure to add corresponding lines to the subsequent steps for each of them.}}<br />
<br />
In the container:<br />
cd /etc/easy-rsa && easyrsa init-pki<br />
for i in server client; do easyrsa gen-req $i nopass; done<br />
cp /etc/easy-rsa/pki/private/server.key /etc/openvpn/server/<br />
openssl dhparam -out /etc/openvpn/server/dh.pem 2048<br />
openvpn --genkey --secret /etc/openvpn/server/ta.key<br />
<br />
Back on the host:<br />
easyrsa import-req /var/lib/lxc/$CONTAINERNAME/rootfs/etc/easy-rsa/pki/reqs/junk.req junk<br />
easyrsa import-req /var/lib/lxc/$CONTAINERNAME/rootfs/etc/easy-rsa/pki/reqs/client.req client<br />
easyrsa sign-req client client<br />
easyrsa sign-req server server<br />
mkdir /var/lib/lxc/$CONTAINERNAME/rootfs/etc/easy-rsa/pki/issued/<br />
mkdir /var/lib/lxc/$CONTAINERNAME/rootfs/etc/easy-rsa/pki/signed/<br />
cp /etc/easy-rsa/pki/issued/*.crt /var/lib/lxc/$CONTAINERNAME/rootfs/etc/easy-rsa/pki/issued/<br />
<br />
That will provide the needed files to make an OpenVPN compatible tunnel profile for the client, and the needed server key files for the server. To generate a client profile, refer to [[OpenVPN#ovpngen]].<br />
<br />
== See also ==<br />
<br />
* [https://github.com/OpenVPN/easy-rsa/blob/master/README.quickstart.md README.quickstart].<br />
* [https://github.com/OpenVPN/easy-rsa/blob/master/doc/EasyRSA-Advanced.md EASYRSA-Advanced].</div>Time132https://wiki.archlinux.org/index.php?title=KDE_Wallet&diff=513271KDE Wallet2018-03-10T13:04:06Z<p>Time132: Added Note: It isn’t possible to unlock KWallet with autologin enabled.</p>
<hr />
<div>[[Category:KDE]]<br />
[[ar:KDE Wallet]]<br />
[[es:KDE Wallet]]<br />
[[ja:KDE Wallet]]<br />
[[zh-hans:KDE Wallet]]<br />
[http://utils.kde.org/projects/kwalletmanager/ KDE Wallet Manager] is a tool to manage passwords on the [[KDE]] Plasma system. By using the KWallet subsystem it not only allows you to keep your own secrets but also to access and manage the passwords of every application that integrates with KWallet.<br />
<br />
== Unlock KDE Wallet automatically on login ==<br />
{{Note|<br />
* The chosen KWallet password must be the same as the current [[user]] password.<br />
* {{Pkg|kwallet-pam}} is not compatible with [[GnuPG]] keys, the KDE Wallet must use the standard {{ic|blowfish}} encryption.<br />
* The wallet must be named {{ic|kdewallet}} (default name). It does not unlock any other wallet(s).<br />
* It isn’t possible to unlock KWallet with autologin enabled.}}<br />
<br />
[[Install]] {{Pkg|kwallet-pam}} for the [[PAM]] compatible module.<br />
<br />
=== Configure display manager ===<br />
<br />
The following lines must be present under their corresponding sections:<br />
<br />
{{bc|1=<br />
auth optional pam_kwallet5.so<br />
session optional pam_kwallet5.so auto_start<br />
}}<br />
<br />
It may be needed to edit the [[display manager]] configuration:<br />
* For [[SDDM]] no further edits should be needed because the lines are already present in {{ic|/etc/pam.d/sddm}}.<br />
* For [[GDM]] edit {{ic|/etc/pam.d/gdm-password}} accordingly.<br />
* For [[LightDM]] edit {{ic|/etc/pam.d/lightdm}} and {{ic|/etc/pam.d/lightdm-greeter}} files:<br />
<br />
{{hc|/etc/pam.d/lightdm|2=<br />
#%PAM-1.0<br />
auth include system-login<br />
'''auth optional pam_kwallet5.so'''<br />
<br />
account include system-login<br />
<br />
password include system-login<br />
<br />
session include system-login<br />
'''session optional pam_kwallet5.so auto_start'''<br />
}}<br />
<br />
== Using the KDE Wallet to store ssh key passhprases ==<br />
{{Note|A [[SSH agent]] should be up and running.}}<br />
<br />
[[Install]] {{Pkg|ksshaskpass}} package.<br />
<br />
[[Create]] an [[KDE#Autostarting_applications|autostart script file]] and mark it as [[executable]]:<br />
{{hc|~/.config/autostart-scripts/ssh-add.sh|<br />
#!/bin/sh<br />
ssh-add </dev/null<br />
}}<br />
<br />
{{Tip|The above ssh-add.sh script will only add the default key {{ic|~/.ssh/id_rsa}}. Assuming you have different SSH keys named {{ic|key1}}, {{ic|key2}}, {{ic|key3}} in {{ic|~/.ssh/}}, you may add them automatically on login by changing the above script to:<br />
<br />
{{hc|~/.config/autostart-scripts/ssh-add.sh|<br />
#!/bin/sh<br />
ssh-add $HOME/.ssh/key1 $HOME/.ssh/key2 $HOME/.ssh/key3 </dev/null<br />
}}<br />
}}<br />
<br />
You also have to set the {{ic|SSH_ASKPASS}} [[environment variable]], see [[Environment variables#Defining variables]]. E.g.:<br />
<br />
{{bc|<nowiki><br />
export SSH_ASKPASS="/usr/bin/ksshaskpass"<br />
</nowiki>}}<br />
<br />
It will ask for your password and unlock your SSH keys. Upon restart your SSH keys should be unlocked once you give your kwallet password. <br />
<br />
To add a new key and store the password with kwallet use the following command<br />
<br />
$ ssh-add /path/to/new/key </dev/null<br />
<br />
and append the key to the list of keys in {{ic|~/.config/autostart-scripts/ssh-add.sh}} as explained above to have it unlocked upon providing the kwallet password.<br />
<br />
== KDE Wallet for Firefox ==<br />
{{Note|As of Firefox 57 this addon is not supported anymore. Use Firefox ESR if wanting to use this addon.}}<br />
<br />
There is an unofficial [[Firefox]] addon for [https://addons.mozilla.org/addon/kde5-wallet-password-integrati/ KDE5 Wallet] integration.<br />
<br />
== KDE Wallet for Chrome and Chromium ==<br />
<br />
Chrome/Chromium has built in wallet integration. To enable it, run Chromium with the {{ic|1=--password-store=kwallet}} or {{ic|1=--password-store=detect}} argument. To make the change persistent, see [[Chromium/Tips and tricks#Making flags persistent]]. (Setting CHROMIUM_USER_FLAGS will not work.)<br />
<br />
== See also ==<br />
<br />
* [https://www.dennogumi.org/2014/04/unlocking-kwallet-with-pam/ Unlocking KWallet with PAM]</div>Time132https://wiki.archlinux.org/index.php?title=Zsh&diff=304188Zsh2014-03-12T18:55:29Z<p>Time132: /* Key bindings */</p>
<hr />
<div>[[Category:Command shells]]<br />
[[cs:Zsh]]<br />
[[de:Zsh]]<br />
[[fr:Zsh]]<br />
[[ja:Zsh]]<br />
[[zh-CN:Zsh]]<br />
[http://www.zsh.org Zsh] is a powerful shell that operates as both an interactive shell and as a scripting language interpreter. While being compatible with [[Bash]] (not by default, only if issuing "emulate sh"), it offers many advantages such as:<br />
<br />
* Speed<br />
* Improved tab completion<br />
* Improved globbing<br />
* Improved array handling<br />
* Fully customisable<br />
<br />
The Zsh FAQ offers [http://zsh.sourceforge.net/FAQ/zshfaq01.html#l4 more reasons] to use Zsh.<br />
<br />
== Installation ==<br />
<br />
Before starting users may want to see what shell is currently being used:<br />
<br />
$ echo $SHELL<br />
<br />
[[pacman|Install]] the {{Pkg|zsh}} package available in the [[official repositories]].<br />
<br />
=== Initial configuration ===<br />
<br />
Make sure that Zsh has been installed correctly by running the following in a terminal:<br />
<br />
$ zsh<br />
<br />
You should now see '''zsh-newuser-install''', which will walk you through some basic configuration. If you want to skip this, press {{ic|q}}. If you did not see it, you can invoke it manually with<br />
<br />
$ zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f<br />
<br />
=== Making Zsh your default shell ===<br />
<br />
If the shell is listed in {{ic|/etc/shells}} you can use the {{ic|chsh}} command to change your default shell without root access. If you installed Zsh from the [[Official repositories|official repositories]], it should already have an entry in {{ic|/etc/shells}}.<br />
<br />
Change the default shell for the current user:<br />
<br />
$ chsh -s $(which zsh)<br />
<br />
{{Note|Log out and log back in, in order to start using Zsh as the default shell.}}<br />
<br />
After logging back in, notice Zsh's prompt, which by default looks different from Bash's. Also verify that Zsh is the current shell by issuing:<br />
<br />
$ echo $SHELL<br />
<br />
{{Tip|If replacing {{Pkg|bash}}, users may want to move some code from {{ic|~/.bashrc}} to {{ic|~/.zshrc}} (e.g. the prompt and the [[Bash#Aliases|aliases]]) and from {{ic|~/.bash_profile}} to {{ic|~/.zprofile}} (e.g. [[Start X at Boot|the code that starts the X Window System]]).}}<br />
<br />
== Configuration files ==<br />
<br />
At login, Zsh sources the following files in this order:<br />
;{{ic|~/.zshenv}}:This file should contain commands to set the [[#Configuring $PATH|command search path]], plus other important environment variables; it should not contain commands that produce output or assume the shell is attached to a tty.<br />
;{{ic|/etc/profile}}:This file is sourced by all Bourne-compatible shells upon login: it sets up an environment upon login and application-specific ({{ic|/etc/profile.d/*.sh}}) settings.<br />
;{{ic|~/.zprofile}}:This file is generally used for automatic execution of user's scripts.<br />
;{{ic|~/.zshrc}}:This is Zsh's main configuration file.<br />
;{{ic|~/.zlogin}}:This file is generally used for automatic execution of user's scripts.<br />
<br />
At logout it sources '''{{ic|~/.zlogout}}''', which is used for automatic execution of user's scripts.<br />
<br />
{{Note|<br />
* The paths used in Arch's {{Pkg|zsh}} package are different from the default ones used in the man pages.<br />
* {{ic|$ZDOTDIR}} defaults to {{ic|$HOME}}<br />
* {{ic|/etc/profile}} is not a part of the regular list of startup files run for Zsh, but is sourced from {{ic|/etc/zsh/zprofile}} in the {{Pkg|zsh}} package. Users should take note that {{ic|/etc/profile}} sets the {{ic|$PATH}} variable which will overwrite any {{ic|$PATH}} variable set in {{ic|~/.zshenv}}. To prevent this, either replace the {{ic|/etc/zsh/zprofile}} file with a custom one, or set the {{ic|$PATH}} variable from {{ic|~/.zshrc}}.<br />
}}<br />
<br />
== ~/.zshrc configuration ==<br />
<br />
Although Zsh is usable out of the box, it is almost certainly not set up the way most users would like to use it, but due to the sheer amount of customization available in Zsh, configuring Zsh can be a daunting and time-consuming experience.<br />
<br />
=== Simple .zshrc ===<br />
<br />
Included below is a sample configuration file, it provides a decent set of default options as well as giving examples of many ways that Zsh can be customized. In order to use this configuration save it as a file named {{ic|.zshrc}}. Apply the changes without needing to logout and then back in by running:<br />
<br />
$ source ~/.zshrc<br />
<br />
Here is a simple {{ic|.zshrc}}:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -U compinit promptinit<br />
compinit<br />
promptinit<br />
<br />
# This will set the default prompt to the walters theme<br />
prompt walters}}<br />
<br />
=== Configuring $PATH ===<br />
<br />
Information about setting up the system path per user in zsh can be found here: http://zsh.sourceforge.net/Guide/zshguide02.html#l24<br />
<br />
In short, put the following in {{ic|~/.zshenv}}:<br />
{{hc|~/.zshenv|<br />
typeset -U path<br />
path&#61;(~/bin /other/things/in/path $path)}}<br />
<br />
=== Command completion ===<br />
<br />
Perhaps the most compelling feature of Zsh is its advanced autocompletion abilities. At the very least, enable autocompletion in {{ic|.zshrc}}. To enable autocompletion, add the following to:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -U compinit<br />
compinit}}<br />
<br />
The above configuration includes ssh/scp/sftp hostnames completion but in order for this feature to work, users need to prevent ssh from hashing hosts names in {{ic|~/.ssh/known_hosts}}.<br />
{{Warning|This makes the computer vulnerable to [http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/ "Island-hopping" attacks]. In that intention, comment the following line or set the value to {{ıc|no}}:<br />
{{hc|/etc/ssh/ssh_config|<br />
#HashKnownHosts yes}}<br />
And move {{ic|~/.ssh/known_hosts}} somewhere else so that ssh creates a new one with un-hashed hostnames (previously known hosts will thus be lost). For more information, see the SSH readme for [http://nms.lcs.mit.edu/projects/ssh/README.hashed-hosts hashed-hosts].<br />
}}<br />
<br />
For autocompletion with an arrow-key driven interface, add the following to:<br />
{{hc|~/.zshrc|<br />
zstyle ':completion:*' menu select}}<br />
:''To activate the menu, press tab twice.''<br />
<br />
For autocompletion of command line switches for aliases, add the following to:<br />
{{hc|~/.zshrc|<br />
setopt completealiases}}<br />
<br />
=== The "command not found" hook ===<br />
<br />
See [[Pkgfile#.22Command_not_found.22_hook|Pkgfile/"Command not found" hook]].<br />
<br />
=== Prevent from putting duplicate lines in the history ===<br />
<br />
It is very convinient to ignore duplicate lines in the history. To do so, put the following:<br />
{{hc|~/.zshrc|<br />
setopt HIST_IGNORE_DUPS}}<br />
<br />
=== Key bindings ===<br />
<br />
Zsh does not use readline, instead it uses its own and more powerful zle. It does not read {{ic|/etc/inputrc}} or {{ic|~/.inputrc}}.<br />
Zle has an [[emacs]] mode and a [[vi]] mode. By default, it tries to guess whether emacs or vi keys from the {{ic|$EDITOR}} environment variable are desired. If it is empty, it will default to emacs. Change this with {{ic|bindkey -v}} or {{ic|bindkey -e}}.<br />
<br />
To get some special keys working:<br />
{{hc|~/.zshrc|2=<br />
# create a zkbd compatible hash;<br />
# to add other keys to this hash, see: man 5 terminfo<br />
typeset -A key<br />
<br />
key[Home]=${terminfo[khome]}<br />
<br />
key[End]=${terminfo[kend]}<br />
key[Insert]=${terminfo[kich1]}<br />
key[Delete]=${terminfo[kdch1]}<br />
key[Up]=${terminfo[kcuu1]}<br />
key[Down]=${terminfo[kcud1]}<br />
key[Left]=${terminfo[kcub1]}<br />
key[Right]=${terminfo[kcuf1]}<br />
key[PageUp]=${terminfo[kpp]}<br />
key[PageDown]=${terminfo[knp]}<br />
<br />
# setup key accordingly<br />
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line<br />
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line<br />
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode<br />
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char<br />
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history<br />
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history<br />
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char<br />
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char<br />
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" beginning-of-buffer-or-history<br />
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" end-of-buffer-or-history<br />
<br />
# Finally, make sure the terminal is in application mode, when zle is<br />
# active. Only then are the values from $terminfo valid.<br />
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then<br />
function zle-line-init () {<br />
printf '%s' "${terminfo[smkx]}"<br />
}<br />
function zle-line-finish () {<br />
printf '%s' "${terminfo[rmkx]}"<br />
}<br />
zle -N zle-line-init<br />
zle -N zle-line-finish<br />
fi<br />
}}<br />
<br />
{{Note|To get the proper sequences for certain key combinations, start {{ic|cat}} or {{ic|read}} without any parameters and press them; they should then be printed in the terminal. Both can be closed again via {{ic|Ctrl+c}}.}}<br />
<br />
==== Alternative method without using terminfo ====<br />
<br />
Run {{ic|autoload zkbd}} followed by just {{ic|zkbd}}. If users cannot press the key it asks for (e.g. {{ic|F11}} maximizes the window), press space to skip it. After finishing with zkbd, add the following to {{ic|~/.zshrc}}:<br />
<br />
{{hc|~/.zshrc|autoload zkbd<br />
source ~/.zkbd/$TERM-:0.0 # may be different - check where zkbd saved the configuration:<br />
<br />
[[ -n ${key[Backspace]} ]] && bindkey "${key[Backspace]}" backward-delete-char<br />
[[ -n ${key[Insert]} ]] && bindkey "${key[Insert]}" overwrite-mode<br />
[[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line<br />
[[ -n ${key[PageUp]} ]] && bindkey "${key[PageUp]}" up-line-or-history<br />
[[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char<br />
[[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line<br />
[[ -n ${key[PageDown]} ]] && bindkey "${key[PageDown]}" down-line-or-history<br />
[[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search<br />
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char<br />
[[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search<br />
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char<br />
}}<br />
<br />
==== Bind key to ncurses application ====<br />
<br />
Bind a ncurses application to a keystoke, but it will not accept interaction. Use {{ic|BUFFER}} variable to make it work. The following example lets users open ncmpcpp using {{ic|Alt+\}}:<br />
{{hc|~/.zshrc|2=<br />
ncmpcppShow() { BUFFER="ncmpcpp"; zle accept-line; }<br />
zle -N ncmpcppShow<br />
bindkey '^[\' ncmpcppShow<br />
}}<br />
<br />
=== History search ===<br />
<br />
Add these lines to .zshrc<br />
<br />
{{hc|~/.zshrc|<nowiki><br />
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" history-beginning-search-backward<br />
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" history-beginning-search-forward<br />
</nowiki>}}<br />
<br />
Doing this, only past commands beginning with the current input would have been shown.<br />
<br />
=== Prompts ===<br />
<br />
There is a quick and easy way to set up a colored prompt in Zsh. Make sure that prompt is set to autoload in {{ic|.zshrc}}. This can be done by adding these lines to:<br />
<br />
{{hc|~/.zshrc|<br />
autoload -U promptinit<br />
promptinit<br />
}}<br />
<br />
Available prompts are listed by running the command:<br />
<br />
$ prompt -l<br />
<br />
To try one of the commands that is listed, use the command prompt followed by the name of the prompt to explore. For example, to use the {{ic|walters}} prompt, enter:<br />
<br />
$ prompt walters<br />
<br />
To preview all available themes, use this command:<br />
<br />
$ prompt -p<br />
<br />
=== Customizing the prompt ===<br />
<br />
For users who are dissatisfied with the prompts mentioned above(or want to expand their usefulness), Zsh offers the possibility to build a custom custom prompt. Zsh supports a left- and right-sided prompt additional to the single, left-sided prompt that is common to all shells. Customize it by using {{ic|1=PROMPT=}} with the following variables:<br />
<br />
==== Prompt variables ====<br />
{| border="1" class="wikitable"<br />
! scope="col" width="10%"| Command || !scope="col" width="60%"|Description || !scope="col" width="30%"|Comment<br />
|-<br />
! colspan="3" | General<br />
|-<br />
|{{ic|%n}} || The username<br />
|-<br />
|{{ic|%m}} || The computer's hostname(truncated to the first period)<br />
|-<br />
|{{ic|%M}} || The computer's hostname<br />
|-<br />
|{{ic|%l}} || The current tty<br />
|-<br />
|{{ic|%?}} || The return code of the last-run application.<br />
|-<br />
|{{ic|%#}} || The prompt based on user privileges ({{ic|#}} for root and {{ic|%}} for the rest)<br />
|-<br />
! colspan="3" | Times<br />
|-<br />
| {{ic|%T}}|| System time(HH:MM)<br />
|-<br />
| {{ic|%*}}|| System time(HH:MM:SS)<br />
|-<br />
| {{ic|%D}}|| System date(YY-MM-DD)<br />
|-<br />
! colspan="3" | Directories<br />
|-<br />
| {{ic|%d}} || The current working directory.<br />
| rowspan="2" | Prefix an integer to show only certain parts of the working path. If users entered {{ic|%1d}} and were in {{ic|/usr/bin}} it would show {{ic|bin}}. This can also be done with negative integers: {{ic|%-1d}} using the same directory as above would show {{ic|/}}.<br />
|-<br />
| {{ic|%~}}|| The current working directory. If in {{ic|$HOME}} or its subdirectory, {{ic|$HOME}} part will be replaced by {{ic|~}}. <br />
|- <br />
! colspan="3" | Formatting<br />
|-<br />
| {{ic|%U [...] %u}} || Begin and end underlined print<br />
|-<br />
| {{ic|%B [...] %b}} || Begin and end bold print<br />
|-<br />
| {{ic|<nowiki>%{ [...] %}</nowiki>}} || Begin and enter area that will not be printed. Useful for setting colors. In fact, this tag forces Zsh to ignore anything inside them when making indents for the prompt as well. As such, not to use it can have some weird effects on the margins and indentation of the prompt. <br />
|-<br />
! colspan="3" | Colors<br />
|-<br />
| {{ic|$fg[color]}}||will set the text color (red, green, blue, etc. - defaults to bold)<br />
| rowspan="4" | Zsh sets colors differently than [[Color_Bash_Prompt|Bash]]. Add {{ic|autoload -U colors && colors}} before {{ic|1=PROMPT=}} in {{ic|.zshrc}} to use them. Usually you will want to put these inside {{ic|%{ [...] %} }} so the cursor does not move.<br />
|-<br />
| {{ic|$fg_no_bold[color]}}|| will set the non-bold text color<br />
|-<br />
| {{ic|$fg_bold[color]}}|| will set the bold text color<br />
|-<br />
| {{ic|$reset_color}}|| will reset the text color to the default color<br />
|}<br />
{| border="1" class="wikitable"<br />
|-<br />
! colspan="2" | Possible color values<br />
|-<br />
| {{ic|black}} || {{ic|red}}<br />
|-<br />
| {{ic|green}} || {{ic|yellow}}<br />
|-<br />
| {{ic|blue}} || {{ic|magenta}}<br />
|-<br />
| {{ic|cyan}} || {{ic|white}}<br />
|}<br />
<br />
{{Note| Bold text does not necessarily use the same colors as normal text. For example, {{ic|$fg['yellow']}} looks brown or a very dark yellow, while {{ic|$fg_no_bold['yellow']}} looks like bright or regular yellow.}}<br />
<br />
==== Example ====<br />
<br />
To have a two-sided promptcould write:<br />
PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg_no_bold[yellow]%}%1~ %{$reset_color%}%#"<br />
RPROMPT="[%{$fg_no_bold[yellow]%}%?%{$reset_color%}]"<br />
<br />
It would equal(without colors):<br />
username@host ~ % [0]<br />
<br />
=== Dirstack ===<br />
<br />
Zsh can be configured to remember the DIRSTACKSIZE last visited folders. This can then be used to ''cd'' them very quickly. You need to add some lines to you configuration file:<br />
<br />
{{hc|.zshrc|<nowiki><br />
DIRSTACKFILE="$HOME/.cache/zsh/dirs"<br />
if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then<br />
dirstack=( ${(f)"$(< $DIRSTACKFILE)"} )<br />
[[ -d $dirstack[1] ]] && cd $dirstack[1]<br />
fi<br />
chpwd() {<br />
print -l $PWD ${(u)dirstack} >$DIRSTACKFILE<br />
}<br />
<br />
DIRSTACKSIZE=20<br />
<br />
setopt autopushd pushdsilent pushdtohome<br />
<br />
## Remove duplicate entries<br />
setopt pushdignoredups<br />
<br />
## This reverts the +/- operators.<br />
setopt pushdminus<br />
</nowiki>}}<br />
<br />
Now use<br />
dirs -v<br />
to print the dirstack. Use {{ic|cd -<NUM>}} to go back to a visited folder. Use autocompletion after the dash. This proves very handy if using the autocompletion menu.<br />
<br />
=== Sample .zshrc files ===<br />
<br />
Here is a list of {{ic|.zshrc}} files:<br />
<br />
* [https://github.com/sorin-ionescu/prezto Prezto - Instantly Awesome Zsh] (AUR package: {{AUR|prezto-git}}) is a configuration framework for Zsh. It comes with modules, enriching the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.<br />
* Basic setup, with dynamic prompt and window title/hardinfo => http://github.com/MrElendig/dotfiles-alice/blob/master/.zshrc;<br />
* An Arch package named {{Pkg|grml-zsh-config}} comes from http://grml.org/zsh and provides a zshrc file that includes many tweaks for Zshell.<br />
* https://github.com/slashbeast/things/blob/master/configs/DOTzshrc - zshrc with multiple features, be sure to check out comments into it. Notable features: confirm function to ensure that user wnat to run poweroff, reboot or hibernate, support for GIT in prompt (done without vcsinfo), tab completion with menu, printing current executed command into window's title bar and more.<br />
<br />
== Global configuration ==<br />
<br />
Occasionally users might want to have some settings applied globally to all Zsh users. The Zsh wiki tells us that there are some global configuration files, for example {{ic|/etc/zshrc}}. This however is slightly different on ArchLinux, since it has been compiled with flags specifically to target {{ic|/etc/zsh/}} instead.<br />
<br />
So, for global configuration use {{ic|/etc/zsh/zshrc}}, not {{ic|/etc/zshrc}}. The same goes for {{ic|/etc/zsh/zshenv}}, {{ic|/etc/zsh/zlogin}} and {{ic|/etc/zsh/zlogout}}. Note that these files are not installed by default, so create them if desired.<br />
<br />
The only exception is zprofile, use {{ic|/etc/profile}} instead.<br />
<br />
=== Autostarting applications ===<br />
<br />
Zsh always executes {{ic|/etc/zsh/zshenv}} and {{ic|$ZDOTDIR/.zshenv}} so do not bloat these files.<br />
<br />
If the shell is a login shell, commands are read from {{ic|/etc/profile}} and then {{ic|$ZDOTDIR/.zprofile}}. Then, if the shell is interactive, commands are read from {{ic|/etc/zsh/zshrc}} and then {{ic|$ZDOTDIR/.zshrc}}. Finally, if the shell is a login shell, {{ic|/etc/zsh/zlogin}} and {{ic|$ZDOTDIR/.zlogin}} are read.<br />
<br />
See also the ''STARTUP/SHUTDOWN FILES'' section of {{ic|man zsh}}.<br />
<br />
== Uninstallation ==<br />
<br />
Change the default shell back to bash or csh or whatever, before removing the Zsh package.<br />
<br />
{{Warning|Failure to follow the below procedures will result in all kinds of problems: users will no longer have a working shell program.}}<br />
<br />
Paste the following command in terminal as root:<br />
# chsh -s /bin/bash user<br />
Use it for every user using Zsh.<br />
<br />
Now the Zsh package can be removed.<br />
<br />
Alternatively, change the default shell back to Bash by editing {{ic|/etc/passwd}} as root. <br />
<br />
{{Warning|It is '''strongly''' recommended to use {{ic|vipw}} when editing user information as it prevents badly formatted entries.}}<br />
<br />
For example:<br />
<br />
from:<br />
''username'':x:1000:1000:Full Name,,,:/home/''username'':/bin/zsh<br />
to:<br />
''username'':x:1000:1000:Full Name,,,:/home/''username'':/bin/bash<br />
<br />
== See also ==<br />
<br />
*[http://zsh.sourceforge.net/Intro/intro_1.html#SEC1 Zsh introduction]<br />
*[http://zsh.sourceforge.net/Guide/zshguide.html Users guide]<br />
*[http://zsh.sourceforge.net/Doc/Release/index-frame.html Zsh Docs] (choose a different format for the doc in http://zsh.sourceforge.net/Doc/)<br />
*[http://zsh.sourceforge.net/FAQ/zshfaq01.html Zsh FAQ]<br />
*[http://zshwiki.org/home/ Zsh wiki]<br />
*[http://grml.org/zsh/zsh-lovers.html Zsh-lovers]<br />
*[http://www.bash2zsh.com/zsh_refcard/refcard.pdf Bash2Zsh Reference Card]<br />
*[https://github.com/robbyrussell/oh-my-zsh Oh My Zshell by Robby Russell]<br />
*[http://www.gentoo.org/doc/en/zsh.xml Gentoo Linux Documentation -- Zsh configuration and installation guide]<br />
*[http://my.opera.com/blackbelt_jones/blog/2007/06/05/zsh-prompt-configuration-issue-solved Setting up the Zsh prompt]<br />
<br />
*'''IRC channel''': #zsh at irc.freenode.org</div>Time132https://wiki.archlinux.org/index.php?title=List_of_applications/Utilities&diff=255827List of applications/Utilities2013-05-01T18:01:03Z<p>Time132: /* Graphical */</p>
<hr />
<div><noinclude><br />
[[Category:Applications]]<br />
[[it:List of Applications/Utilities]]<br />
[[ja:List of Applications/Utilities]]<br />
[[zh-CN:List of Applications/Utilities]]<br />
{{List of Applications navigation}}<br />
</noinclude><br />
== Utilities ==<br />
=== Basic Shell Commands ===<br />
* {{App|[[Core Utilities]]|The basic file, shell and text manipulation utilities of the GNU operating system|http://www.gnu.org/software/coreutils|{{Pkg|coreutils}}}}<br />
<br />
=== Package management ===<br />
{{Box||See also: [[AUR Helpers]] and [[Pacman GUI Frontends]]|#E5E5FF|#FCFCFC}}<br />
* {{App|[[Pacmatic]] |A pacman wrapper to check Arch News before upgrading, avoid partial upgrades, and warn about configuration file changes.|http://kmkeen.com/pacmatic|{{Pkg|pacmatic}}}}<br />
* {{App|[[pkgfile]]|A tool that finds what package owns a file.|http://github.com/falconindy/pkgfile|{{Pkg|pkgfile}}}}<br />
* {{App|[[pkgtools]]|A collection of scripts for Arch Linux packages. |https://github.com/Daenyth/pkgtools|{{Pkg|pkgtools}}}}<br />
* {{App|srcpac|A simple tool that automates rebuilding packages from source.|https://projects.archlinux.org/srcpac.git|{{Pkg|srcpac}}}}<br />
<br />
=== Disk usage display programs===<br />
* {{App|[[Wikipedia:Disk Usage Analyzer|Disk Usage Analyzer]] (Baobab)|A disk usage analyzer for the [[GNOME]] desktop.|http://www.marzocca.net/linux/baobab|{{Pkg|gnome-utils}}}}<br />
* {{App|[[Wikipedia:Filelight|Filelight]]|A disk usage analyzer that creates an interactive map of concentric, segmented rings that help visualise disk usage on your computer.|http://methylblue.com/filelight/|{{Pkg|kdeutils-filelight}}}}<br />
* {{App|GdMap|A disk usage analyzer that draws a map of rectangles sized according to file or dir sizes.|http://gdmap.sourceforge.net/|{{Pkg|gdmap}}}}<br />
* {{App|gt5|A diff-capable "du-browser".|http://gt5.sourceforge.net|{{AUR|gt5}}}}<br />
* {{App|ncdu|A simple ncurses disk usage analyzer.|http://dev.yorhel.nl/ncdu|{{Pkg|ncdu}}}}<br />
<br />
=== CD/DVD burning tools ===<br />
{{Moveto|CD Burning}}<br />
<br />
{{Wikipedia|Comparison of disc authoring software}}<br />
<br />
* {{App|[[Wikipedia:AcetoneISO|AcetoneISO]]|An all in one ISO tool (supports BIN, MDF, NRG, IMG, DAA, DMG, CDI, B5I, BWI, PDI and ISO).|http://www.acetoneteam.org/|{{Pkg|acetoneiso2}}}}<br />
* {{App|BashBurn|A lightweight terminal based menu frontend for CD/DVD burning tools.|http://bashburn.dose.se/|{{Pkg|bashburn}}}}<br />
* {{App|[[Wikipedia:Brasero (software)|Brasero]]|A disc burning application for the GNOME desktop that is designed to be as simple as possible.<br />
|http://projects.gnome.org/brasero/|{{Pkg|brasero}}}}<br />
* {{App|cdw|An ncurses frontend to cdrecord, mkisofs, growisofs, dvd+rw-mediainfo, dvd+rw-format, xorriso.|http://cdw.sourceforge.net/|{{AUR|cdw}}}}<br />
* {{App|[[Wikipedia:GnomeBaker|GnomeBaker]]|A full featured CD/DVD burning application for the GNOME desktop.|http://gnomebaker.sourceforge.net/|{{AUR|gnomebaker}}}}<br />
* {{App|Graveman|A GTK+-based CD/DVD burning application.|http://graveman.tuxfamily.org/|{{AUR|graveman}}}}<br />
* {{App|[[Wikipedia:K3b|K3b]]|A feature-rich and easy to handle CD burning application.|http://www.k3b.org/|{{Pkg|k3b}}}}<br />
* {{App|Recorder|A simple frontend to cdrkit/cdrtools, cdrdao, mkisofs and growisofs with limited options and preferences.|http://code.google.com/p/recorder/|{{Pkg|recorder}}}}<br />
* {{App|[[Wikipedia:X-CD-Roast|X-CD-Roast]]|A lightweight cdrtools front-end for CD and DVD writing.|http://www.xcdroast.org/|{{AUR|xcdroast}}}}<br />
* {{App|Xfburn|A simple frontend to the libburnia libraries with support for CD/DVD(-RW), ISO images and BurnFree.|http://goodies.xfce.org/projects/applications/xfburn|{{Pkg|xfburn}}}}<br />
<br />
=== Clipboard managers ===<br />
* {{App|Anamnesis|A clipboard manager that stores all the clipboard history and offers an interface to do a full-text search. It has both a commandline and GUI mode available.|http://anamnesis.sourceforge.net/|{{AUR|anamnesis}}}}<br />
* {{App|ClipIt|A fork of Parcellite with additional features and bugfixes.|http://sourceforge.net/projects/gtkclipit/|{{AUR|clipit}}}}<br />
* {{App|CopyQ|A clever clipboard manager with searchable and editable history, custom actions on items and command line support.|https://github.com/hluk/CopyQ|{{AUR|copyq}}}}<br />
* {{App|[[Wikipedia:Glipper|Glipper]]|A clipboard manager for the GNOME desktop with many features and plugin support.|https://launchpad.net/glipper|{{AUR|glipper}}}}<br />
* {{App|[[Wikipedia:Klipper|Klipper]]|A full featured clipboard manager for the KDE desktop.|http://userbase.kde.org/Klipper|{{Pkg|kdebase-workspace}}}}<br />
* {{App|loliclip|A clipboard synchronizer developed for WM users.|https://github.com/Cloudef/PKGBUILDS/tree/master/loliclip|{{AUR|loliclip}}}}<br />
* {{App|Parcellite|A lightweight yet feature-rich clipboard manager.|http://parcellite.sourceforge.net/|{{Pkg|parcellite}}}}<br />
<br />
=== Compression tools ===<br />
{{Wikipedia|Comparison of file archivers}}<br />
<br />
==== Console ====<br />
* {{App|atool|A script for managing file archives of various types.|http://www.nongnu.org/atool/|{{Pkg|atool}}}}<br />
* {{App|[[p7zip]]|A port of 7-Zip for POSIX systems, including Linux. The commandline tool is called '''7z'''.|http://p7zip.sourceforge.net/|{{Pkg|p7zip}}}}<br />
<br />
==== Graphical ====<br />
* {{App|[[Wikipedia:Ark (software)|Ark]]|An archiving tool included in the KDE desktop.|http://kde.org/applications/utilities/ark/|{{Pkg|kdeutils-ark}}}}<br />
* {{App|[[Wikipedia:File Roller|File Roller]]|An archive manager included in the GNOME desktop.|http://fileroller.sourceforge.net/|{{Pkg|file-roller}}}}<br />
* {{App|[[p7zip]]|A port of 7-Zip for POSIX systems, including Linux. The GUI requires wxGTK and is called '''7zFM'''.|http://p7zip.sourceforge.net/|{{Pkg|p7zip}}}}<br />
* {{App|[[Wikipedia:PeaZip|PeaZip]]|An open source file and archive manager.|http://www.peazip.org/peazip-linux.html|{{AUR|peazip-gtk2}} {{AUR|peazip-qt}}}}<br />
* {{App|Squeeze|A featherweight front-end for commandline archiving tools.|http://squeeze.xfce.org/|{{AUR|squeeze-git}}}}<br />
* {{App|Xarchive|A generic GTK+ front-end that uses external wrappers around commandline archiving tools.|http://xarchive.sourceforge.net/|{{AUR|xarchive}}}}<br />
* {{App|[[Wikipedia:Xarchiver|Xarchiver]]|A lightweight desktop independent archive manager built with GTK+.|http://xarchiver.sourceforge.net/|{{AUR|xarchiver}}}}<br />
<br />
=== File managers ===<br />
{{Wikipedia|Comparison of file managers}}<br />
<br />
==== Console ====<br />
* {{App|[[Wikipedia:Dired|Dired]]|The directory editor integrated with [[Emacs]].|http://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html|{{pkg|emacs}}}}<br />
* {{App|[[Wikipedia:Midnight Commander|Midnight Commander]]|A console-based, dual-paneled file manager.|http://www.midnight-commander.org|{{Pkg|mc}}}}<br />
* {{App|Pilot|A file manager that comes with the [[Alpine]] email client.|http://re-alpine.sourceforge.net/|{{Pkg|re-alpine}}}}<br />
* {{App|[[Ranger]]|A console-based file manager with vi bindings, customizability, and lots of features.|http://nongnu.org/ranger|{{Pkg|ranger}}}}<br />
* {{App|[[Vifm]]|An ncurses-based two-panel file manager with vi-like keybindings.|http://vifm.sourceforge.net/|{{Pkg|vifm}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Andromeda|A Qt-based cross-platform file manager.|https://gitorious.org/andromeda|{{AUR|andromeda-git}}}}<br />
* {{App|Dino|An easy to use and powerful file manager built in Qt.|http://dfm.sourceforge.net/|{{AUR|dino-dfm}}}}<br />
* {{App|[[Wikipedia:Dolphin (file manager)|Dolphin]]|A file manager included in the KDE4 desktop.|http://dolphin.kde.org/|{{Pkg|kdebase-dolphin}}}}<br />
* {{App|[[Wikipedia:emelFM2|emelFM2]]|A file manager that implements the popular two-panel design.|http://emelfm2.net/|{{Pkg|emelfm2}}}}<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|A file manager for the KDE desktop.|http://www.konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:Krusader|Krusader]]|An advanced twin panel (Midnight Commander style) file manager for the KDE desktop.|http://www.krusader.org/|{{Pkg|krusader}}}}<br />
* {{App|[[Nautilus]]|An extensible, heavyweight file manager used by default in GNOME with support for custom scripts.|http://projects.gnome.org/nautilus/|{{Pkg|nautilus}}}}<br />
* {{App|[[Nemo]]|Nemo is the file manager of the Cinnamon desktop. A good alternative to Nautilus.|http://cinnamon.linuxmint.com/|{{Pkg|nemo}}}}<br />
* {{App|[[PCManFM]]|A lightweight file manager which features tabbed browsing and can optionally manage the desktop background.|http://pcmanfm.sourceforge.net/|{{Pkg|pcmanfm}}}}<br />
* {{App|QtFileMan|A file manager similar to PCManFM from LXDE.|http://gitorious.org/qtfileman|{{AUR|qtfileman-git}}}}<br />
* {{App|qtFM|A small, lightweight filemanager for Linux desktops based on pure Qt.|http://www.qtfm.org/|{{Pkg|qtfm}}}}<br />
* {{App|[[ROX]]|A small and fast file manager which can optionally manage the desktop background and panels.|http://rox.sourceforge.net|{{Pkg|rox}}}}<br />
* {{App|SpaceFM|A GTK+ multi-panel tabbed file manager.|http://ignorantguru.github.com/spacefm/|{{Pkg|spacefm}}}}<br />
* {{App|Sunflower|A small and highly customizable twin-panel file manager for Linux with support for plugins.|http://code.google.com/p/sunflower-fm/|{{AUR|sunflower}}}}<br />
* {{App|[[Thunar]]|A file manager that can be run as a daemon with excellent start up and directory load times.|http://thunar.xfce.org/index.html|{{Pkg|thunar}}}}<br />
* {{App|Tux Commander|A windowed file manager with two panels side by side similar to popular Total Commander or Midnight Commander file managers.|http://tuxcmd.sourceforge.net/description.php|{{Pkg|tuxcmd}}}}<br />
* {{App|Worker|A fast, lightweight and feature-rich file manager for the X Window System.|http://www.boomerangsworld.de/worker/|{{AUR|worker}}}}<br />
* {{App|[[Wikipedia:Xfe|Xfe]]|A Microsoft Explorer-like file manager for X (X File Explorer).|http://roland65.free.fr/xfe/index.php/|{{Pkg|xfe}}}}<br />
<br />
=== Merge tools ===<br />
{{Wikipedia|Comparison of file comparison tools}}<br />
<br />
* {{App|Diffuse|A small and simple text merge tool written in Python.|http://diffuse.sourceforge.net/|{{Pkg|diffuse}}}}<br />
* {{App|KDiff3|A file and directory diff and merge tool for the KDE desktop.|http://kdiff3.sourceforge.net/|{{Pkg|kdiff3}}}}<br />
* {{App|[[Wikipedia:Kompare|Kompare]]|A GUI front-end program for viewing and merging differences between source files. It supports a variety of diff formats and provides many options to customize the information level displayed.|http://www.caffeinated.me.uk/kompare/|{{Pkg|kdesdk-kompare}}}}<br />
* {{App|[[Wikipedia:Meld (software)|Meld]]|A visual diff and merge tool that can compare files, directories, and version controlled projects.|http://meld.sourceforge.net|{{Pkg|meld}}}}<br />
[[Vim]] and [[Emacs]] provide merge functionality with [[Vim#Merging_Files_.28Vimdiff.29|vimdiff]] and {{ic|ediff}}.<br />
<br />
=== Taskbars ===<br />
* {{App|[[Avant Window Navigator]]|A lightweight dock which sits at the bottom of the screen.|http://launchpad.net/awn|{{AUR|avant-window-navigator-bzr}}}}<br />
* {{App|[[Bmpanel]]|A lightweight, NETWM compliant panel for the X11 system.|http://code.google.com/p/bmpanel2/|{{AUR|bmpanel}}}}<br />
* {{App|[[Cairo-Dock]]|A highly customizable dock and launcher application.|http://www.glx-dock.org/|{{AUR|cairo-dock}}}}<br />
* {{App|Docker|A docking application which acts as a system tray.|http://icculus.org/openbox/2/docker/|{{Pkg|docker}}}}<br />
* {{App|[[fbpanel]]|A lightweight, NETWM compliant desktop panel.|http://fbpanel.sourceforge.net/|{{Pkg|fbpanel}}}}<br />
* {{App|KoolDock|A KDE3 docker with great effects that tries to resemble the Mac OS X dock.|http://sourceforge.net/projects/kooldock|{{AUR|kooldock}}}}<br />
* {{App|LXPanel|A lightweight X11 desktop panel and part of the LXDE desktop.|http://lxde.org/lxpanel|{{Pkg|lxpanel}}}}<br />
* {{App|pancake|A highly configurable, modular panel for the X11 system.|http://www.failedprojects.de/pancake/|{{AUR|pancake}}}}<br />
* {{App|[[PyPanel]]|A lightweight panel/taskbar written in Python and C.|http://pypanel.sourceforge.net/|{{Pkg|pypanel}}}}<br />
* {{App|qtpanel|A project to create useful and beautiful panel in Qt.|https://gitorious.org/qtpanel/qtpanel|{{AUR|qtpanel-git}}}}<br />
* {{App|[[Stalonetray]]|A stand-alone system tray.|http://stalonetray.sourceforge.net/|{{Pkg|stalonetray}}}}<br />
* {{App|[[Tint2]]|A simple panel/taskbar developed specifically for Openbox.|http://code.google.com/p/tint2/|{{Pkg|tint2}}}}<br />
* {{App|Trayer|A lightweight GTK+-based systray.|https://gna.org/projects/fvwm-crystal/|{{Pkg|trayer}}}}<br />
* {{App|[[wbar]]|A quick launch bar developed with speed in mind.|http://freecode.com/projects/wbar/|{{Pkg|wbar}}}}<br />
* {{App|Xfce Panel|A panel included in the [[Xfce]] desktop.|http://docs.xfce.org/xfce/xfce4-panel/start|{{Pkg|xfce4-panel}}}}<br />
<br />
=== Batch renamers ===<br />
<br />
* {{App|[[Wikipedia:GPrename|GPRename]]|A GTK+ batch renamer for files and directories.|http://gprename.sourceforge.net|{{Pkg|gprename}}}}<br />
* {{App|[[Wikipedia:KRename|KRename]]|A very powerful batch file renamer for the KDE desktop.|http://www.krename.net|{{Pkg|krename}}}}<br />
* {{App|pyRenamer|An application for the mass renaming of files.|http://www.infinicode.org/code/pyrenamer/|{{Aur|pyrenamer}}}}<br />
* {{App|rename.pl|A batch renamer based on perl regex.|http://search.cpan.org/~pederst/rename/bin/rename.PL|{{Pkg|perl-rename}}}}</div>Time132https://wiki.archlinux.org/index.php?title=Avahi&diff=195786Avahi2012-04-22T11:56:49Z<p>Time132: </p>
<hr />
<div>[[fr:Avahi]]<br />
[[Category:Networking (English)]]<br />
{{i18n|Avahi}}<br />
<br />
[http://avahi.org/ Avahi] is a free [[Wikipedia:Zero Configuration Networking|Zero Configuration Networking]] (Zeroconf) implementation, including a system for multicast DNS/DNS-SD service discovery. It allows programs to publish and discover services and hosts running on a local network with no specific configuration. For example you can plug into a network and instantly find printers to print to, files to look at and people to talk to. It is licensed under the GNU Lesser General Public License (LGPL). (Source: [[Wikipedia:Avahi (software)]])<br />
<br />
== Installation ==<br />
Install Avahi with:<br />
{{bc|<br />
# pacman -S avahi nss-mdns<br />
}}<br />
After installing Avahi you will need to restart the ''dbus'' daemon before you can start ''avahi-daemon''.<br />
<br />
To start Avahi at boot, add ''avahi-daemon'' to the DAEMONS line of /etc/rc.conf. Note that ''avahi-daemon'' must be started after the ''dbus'' daemon.<br />
<br />
{{Note|Sometimes adding avahi-daemon to {{ic|/etc/rc.conf}} can cause it to load too early and fail. One possible solution is to add it as "{{Ic|/etc/rc.d/avahi-daemon start}}" in {{ic|/etc/rc.local}}.}}<br />
<br />
== Using Avahi ==<br />
=== Obtaining IPv4LL IP address ===<br />
By default, if you are getting IP using DHCP, you are using {{Ic|dhcpcd}} package. It can attempt to obtain an IPv4LL address if it failed to get one via DHCP. By default this option is disabled. To enable it, comment noipv4ll string:<br />
<br />
{{hc|/etc/dhcpcd.conf|<br />
...<br />
#noipv4ll<br />
...}}<br />
<br />
Alternatively, run {{Ic|avahi-autoipd}}, included in {{Ic|avahi}} package:<br />
{{bc|# avahi-autoipd -D}}<br />
<br />
=== Hostname resolution ===<br />
Avahi also allows you to access computers using their hostnames. '''Note:''' you must install {{Ic|nss-mdns}} for this to work.<br />
<br />
Suppose you have machines with names maple, fig and oak, all running avahi. Avahi can be set up so that you do not have to manage a {{Ic|/etc/hosts}} file for each computer. Instead you can simply use {{Ic|maple.local}} to access whatever services {{Ic|maple}} has. However by default, .local querying is disabled in Arch Linux. To enable it edit the file {{Ic|/etc/nsswitch.conf}} and change the line:<br />
hosts: files dns<br />
to<br />
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4<br />
<br />
A small section of users in Ubuntu noticed a slowdown in DNS querying; it was attributed to this change. Whether it applies to Arch Linux too, is not known. (Reference: [https://bugs.launchpad.net/ubuntu/+source/avahi/+bug/94940 Ubuntu Bug 94940]) -- I found this to be true for Arch; However, I just used the line:<br />
hosts: files mdns4_minimal dns mdns4<br />
and I get the correct behavior without slower DNS.<br />
<br />
{{Note|I had to remove '''mdns''' completely to prevent slowdowns. However, '''mdns_minimal''' alone appeared to be sufficient.}} <br />
<br />
Avahi also has quite a few nifty utilities which can help you discover which services are being used on a network. <br />
The {{Ic|avahi-discover}} (Avahi Zeroconf Browser) shows the various services on your network. You can also browse SSH and VNC Servers using {{Ic|bssh}} and {{Ic|bvnc}} respectively.<br />
<br />
There's a good list of software with Avahi support at their website: http://avahi.org/wiki/Avah4users<br />
{{Note|For run {{Ic|avahi-discover}} you need to install Avahi, pygtk and python-dbus.}}<br />
<br />
===File sharing===<br />
<br />
====NFS====<br />
If you have an [[NFS]] share set up, you can use Avahi to be able to automount them in Zeroconf-enabled browsers (such as Konqueror on KDE and Finder on Mac OS X). Create a .service file in /etc/avahi/services with the following:<br />
<br />
<?xml version="1.0" standalone='no'?><br />
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"><br />
<service-group><br />
<name>Zephyrus Shared Music</name><br />
<service><br />
<type>_nfs._tcp</type><br />
<port>2049</port><br />
<txt-record>path=/data/shared/Music</txt-record><br />
</service><br />
</service-group><br />
<br />
The port is correct if you have ''insecure'' as an option in your /etc/exports; otherwise, it needs to be changed (note that ''insecure'' is needed for OS X clients). The path is the path to your export, or a subdirectory of it. For some reason the automount functionality has been removed from Leopard, however [http://www.macosxhints.com/article.php?story=20071116042238744 a script is available]. This was based upon [http://ubuntuforums.org/showthread.php?p=4387032#post4387032 this post].<br />
<br />
====GShare====<br />
You can grab {{aur|gshare}} from the [[Arch User Repository]] and have shared files between the LAN, with no configuration, no hours in samba hacking, no nothing - it just works.<br />
<br />
====Vsftpd====<br />
Sourced from [http://ubuntuforums.org/showthread.php?t=218630 ubuntuforums.org].<br />
If you would rather use a regular ftp service, install vsftpd and avahi. Change the settings of vsftpd according to what is shown on the ubuntuforums page or according to your own personal preferences (See 'man vsftpd.conf).<br />
<br />
Create a ftp.service file in /etc/avahi/services and paste in that file<br />
<?xml version="1.0" standalone='no'?><br />
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"><br />
<service-group><br />
<name>FTP file sharing</name><br />
<service><br />
<type>_ftp._tcp</type><br />
<port>21</port><br />
</service><br />
</service-group><br />
When you are done, (re)start avahi-daemon and vsftpd in your /etc/rc.d directory.<br />
/etc/rc.d/avahi-daemon restart<br />
/etc/rc.d/vsftpd restart<br />
<br />
After that you should be able to browse through the ftp server from another computer in your network. The steps shown in this section are created so that the ftp server is 'advertised' by avahi to the local Zeroconf network.<br />
<br />
Unless you are using GNOME or KDE, you might not be able to log in to the ftp server directly through your file manager, and so you will have to use a ftp client pointed to the IP address of the server or the hostname of the machine (as shown in [[Avahi#Hostname_resolution|this section]]).<br />
<br />
====Giver====<br />
[http://code.google.com/p/giver/ Giver] is a mono program that allows simple file-sharing between two desktops when both are running Giver. All you need to do is click and drag the file to the name or picture of the person you wish to send the file to.<br />
<br />
A package is on the [https://aur.archlinux.org/packages.php?ID=17139 AUR].<br />
<br />
Note that this depends on gnome-sharp, which has heavy GNOME dependencies.<br />
<br />
===Link-Local XMPP Chat===<br />
Link-Local XMPP clients need TCP port 5298 allowed for incoming connections. Check [[Simple_stateful_firewall_HOWTO#Opening_ports_to_incoming_connections|Simple stateful firewall: opening ports to incoming connections]] for more details if you use iptables.<br />
<br />
====Gajim====<br />
[http://www.gajim.org Gajim] is a Jabber/XMPP instant messenger client written in PyGTK. In the accounts setup just enable "Local" account.<br />
<br />
====Pidgin====<br />
[http://www.pidgin.im Pidgin] is an instant messaging client that supports quite a few commonly used IM protocols. In addition to these, it supports Bonjour.<br />
<br />
Just select 'Bonjour' as the protocol type when you add an account, and enter a username. The first and last name you enter in the 'Advanced' tab will be what the other person (whom you are chatting with) sees, and 'local alias' under 'User Options' in the 'Basic' tab will be what you see of your own name (you could try putting in something like I, me or myself).<br />
<br />
Once this is done, other Pidgin (iChat) users who are on the local network will see you and be able to chat with you. To implement file-sharing, you just send and receive files like you would do with a regular IM session.<br />
<br />
====Kopete====<br />
[http://kopete.kde.org/ Kopete] is the KDE equivalent of Pidgin. It supports the Bonjour/Link-local XMPP protocol. One need to create an account in Kopete, by simply entering the desired name.<br />
<br />
====Telepathy====<br />
[http://telepathy.freedesktop.org Telpathy] is a communication framework which supports different protocols using plugins. The [http://www.archlinux.org/packages/?sort=&q=telepathy-salut&maintainer=&last_update=&flagged=&limit=50 Telepathy Salut] plugin provides support for Bonjour/Link-Local XMPP protocol. Empathy is a GNOME front-end to Telepathy. Officially, KDE does not support Telepathy, but work is going on which will eventually replace Kopete. Development version of KDE Telepathy is available in [https://aur.archlinux.org/packages.php?O=0&K=telepathy&do_Search=Go AUR].<br />
===Airprint from Mobile Devices===<br />
Avahi along with CUPS also provides the capability to print to just about any printer from airprint compatible mobile devices. In order to enable print capability from your device, simply create an avahi service file for your printer in /etc/avahi/services and restart avahi. An example of a generic services file for an HP-Laserjet printer would be similar to the following with the name, rp, ty, adminurl and not fields changed. Save the file as /etc/avahi/services/youFileName.service:<br />
<?xml version="1.0" standalone='no'?><!--*-nxml-*--><br />
<!DOCTYPE service-group SYSTEM "avahi-service.dtd"><br />
<service-group><br />
<name>yourPrnterName</name><br />
<service><br />
<type>_ipp._tcp</type><br />
<subtype>_universal._sub._ipp._tcp</subtype><br />
<port>631</port><br />
<txt-record>txtver=1</txt-record><br />
<txt-record>qtotal=1</txt-record><br />
<txt-record>rp=printers/yourPrnterName</txt-record><br />
<txt-record>ty=yourPrnterName</txt-record><br />
<txt-record>adminurl=http://198.168.7.15:631/printers/yourPrnterName</txt-record><br />
<txt-record>note=Office Laserjet 4100n</txt-record><br />
<txt-record>priority=0</txt-record><br />
<txt-record>product=virtual Printer</txt-record><br />
<txt-record>printer-state=3</txt-record><br />
<txt-record>printer-type=0x801046</txt-record><br />
<txt-record>Transparent=T</txt-record><br />
<txt-record>Binary=T</txt-record><br />
<txt-record>Fax=F</txt-record><br />
<txt-record>Color=T</txt-record><br />
<txt-record>Duplex=T</txt-record><br />
<txt-record>Staple=F</txt-record><br />
<txt-record>Copies=T</txt-record><br />
<txt-record>Collate=F</txt-record><br />
<txt-record>Punch=F</txt-record><br />
<txt-record>Bind=F</txt-record><br />
<txt-record>Sort=F</txt-record><br />
<txt-record>Scan=F</txt-record><br />
<txt-record>pdl=application/octet-stream,application/pdf,application/postscript,image/jpeg,image/png,image/urf</txt-record><br />
<txt-record>URF=W8,SRGB24,CP1,RS600</txt-record><br />
</service><br />
</service-group><br />
<br />
== External Resources ==<br />
* [http://avahi.org/ Avahi] - Official project website<br />
* [http://en.wikipedia.org/wiki/Avahi_%28software%29 Wikipedia entry]<br />
* [http://www.apple.com/support/downloads/bonjourforwindows.html Bonjour for Windows] - Enable Zeroconf on Windows<br />
* http://www.zeroconf.org/</div>Time132https://wiki.archlinux.org/index.php?title=DVD_Playing&diff=194011DVD Playing2012-04-13T17:26:49Z<p>Time132: /* DVD players */</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:Optical (English)]]<br />
{{i18n|DVD Playing}}<br />
[[fr:Lecture DVD]]<br />
{{Article summary start}}<br />
{{Article summary text|An introduction to playing DVD-Video.}}<br />
{{Article summary heading|Series}}<br />
{{Article summary wiki|DVD Playing}}<br />
{{Article summary wiki|DVD Ripping}}<br />
{{Article summary wiki|DVD Burning}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Codecs}}<br />
{{Article summary wiki|MPlayer}}<br />
{{Article summary end}}<br />
<br />
DVD, also known as Digital Versatile Disc or Digital Video Disc, is an optical disc storage media format used for video and data storage.[http://en.wikipedia.org/wiki/DVD]<br />
<br />
==Requirements==<br />
If you wish to play encrypted DVDs, you must install the libdvd* packages:<br />
* {{Pkg|libdvdread}}<br />
* {{Pkg|libdvdcss}}<br />
* {{Pkg|libdvdnav}}<br />
<br />
Additionally, you must install player software. Popular DVD players are [[MPlayer]], [[Wikipedia:Xine|xine]] and [[Wikipedia:VLC|VLC]]. <br />
<br />
{{Tip|Users may need to belong to the {{ic|optical}} [[Users and Groups|group]] to be able to access the DVD drive. To add {{ic|USERNAME}} to the {{ic|optical}} group, run the following:<br />
# gpasswd -a USERNAME optical<br />
Do not forget to log the user out and back in for the changes to take effect. You can see your user's current groups with {{ic|groups}} command.}}<br />
<br />
==DVD players==<br />
See also: [[Common Applications#Graphical_9|Video Players]]<br />
<br />
===MPlayer===<br />
[[MPlayer]] is efficient and supports a wide variety of media formats (i.e. almost everything). To play a DVD with MPlayer:<br />
$ mplayer dvd://N<br />
<br />
...where N is the desired chapter number. Start at 1 and work up if unsure.<br />
<br />
Mplayer checks {{ic|/dev/dvd}} by default. Tell it to use {{ic|/dev/sr0}} with the {{ic|dvd-device}} option at the command line, or the {{ic|dvd-device}} variable in {{ic|~/.mplayer/config}}.<br />
<br />
To play a DVD image file:<br />
$ mplayer -dvd-device movie.iso dvd://N<br />
<br />
To enable the DVD menu use (NOTE: you use arrow keys to navigate and the {{Keypress|Enter}} key to choose):<br />
$ mplayer dvdnav://<br />
<br />
To enable mouse support in DVD menus use:<br />
$ mplayer -mouse-movements dvdnav://<br />
<br />
To find the audio language, start MPlayer with the {{ic|-v}} switch to output audio IDs. An audio track is selected with {{ic|-aid <audio_id>}}. Set a default audio language by editing {{ic|~/.mplayer/config}} and adding the line {{ic|1=alang=en}} for English. <br />
<br />
With MPlayer, the DVD could be set to a low volume. To increase the maximum volume to 400%, use {{ic|1=softvol=yes}} and {{ic|1=softvol-max=400}}. The startup volume defaults to 100% of software volume and the global mixer levels will remain untouched. Using the 9 and 0 keys, volume can be adjusted between 0 and 400 percent.<br />
alang=en<br />
softvol=yes<br />
softvol-max=400<br />
<br />
[http://www.mplayerhq.hu/ MPlayer home page]<br />
<br />
===VLC===<br />
A capable player with a simple GUI, provided by the {{Pkg|vlc}} package.<br />
<br />
[http://www.videolan.org/vlc VLC home page]<br />
<br />
{{Tip|1=To make VLC the default DVD player in [[GNOME]], edit {{ic|/usr/share/applications/vlc.desktop}} and at the bottom of the file, add the following:<br />
{{bc|1=MimeType=video/dv;video/mpeg;video/x-mpeg;video/msvideo;video/quicktime;video/x-anim;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/x-flc;video/x-fli;application/ogg;application/x-ogg;application/x-matroska;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-m4a;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;misc/ultravox;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;image/vnd.rn-realpix;video/vnd.rn-realvideo;audio/x-pn-realaudio-plugin;application/x-extension-mp4;audio/mp4;video/mp4;video/mp4v-es;x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-cdda;x-content/audio-player;}}<br />
<br />
Then, as root, run:<br />
# update-desktop-database /usr/share/applications<br />
<br />
Finally, open '''System > Preferences >> File Management >>> Media''' and next to '''DVD Video''' select '''Open VLC media player'''.}}<br />
<br />
===xine===<br />
A lightweight media player supporting DVD menus.<br />
<br />
[http://www.xine-project.org/ xine home page]<br />
<br />
==Troubleshooting==<br />
<br />
===DVD drive is noisy===<br />
If playing DVD videos causes the system to be very loud, it may be because the disk is spinning faster than it needs to. To temporarily change the speed of the drive, as root, run:<br />
# eject -x 12 /dev/dvd<br />
<br />
sometimes:<br />
# hdparm -E12 /dev/dvd<br />
<br />
Any speed that is supported by the drive can be used, or 0 for the maximum speed.<br />
<br />
[http://hektor.umcs.lublin.pl/~mikosmul/computing/tips/cd-rom-speed.html Setting CD-ROM and DVD-ROM drive speed]</div>Time132https://wiki.archlinux.org/index.php?title=DVD_Playing&diff=194010DVD Playing2012-04-13T17:25:34Z<p>Time132: /* DVD players */</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
[[Category:Optical (English)]]<br />
{{i18n|DVD Playing}}<br />
[[fr:Lecture DVD]]<br />
{{Article summary start}}<br />
{{Article summary text|An introduction to playing DVD-Video.}}<br />
{{Article summary heading|Series}}<br />
{{Article summary wiki|DVD Playing}}<br />
{{Article summary wiki|DVD Ripping}}<br />
{{Article summary wiki|DVD Burning}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Codecs}}<br />
{{Article summary wiki|MPlayer}}<br />
{{Article summary end}}<br />
<br />
DVD, also known as Digital Versatile Disc or Digital Video Disc, is an optical disc storage media format used for video and data storage.[http://en.wikipedia.org/wiki/DVD]<br />
<br />
==Requirements==<br />
If you wish to play encrypted DVDs, you must install the libdvd* packages:<br />
* {{Pkg|libdvdread}}<br />
* {{Pkg|libdvdcss}}<br />
* {{Pkg|libdvdnav}}<br />
<br />
Additionally, you must install player software. Popular DVD players are [[MPlayer]], [[Wikipedia:Xine|xine]] and [[Wikipedia:VLC|VLC]]. <br />
<br />
{{Tip|Users may need to belong to the {{ic|optical}} [[Users and Groups|group]] to be able to access the DVD drive. To add {{ic|USERNAME}} to the {{ic|optical}} group, run the following:<br />
# gpasswd -a USERNAME optical<br />
Do not forget to log the user out and back in for the changes to take effect. You can see your user's current groups with {{ic|groups}} command.}}<br />
<br />
==DVD players==<br />
See also: [[Common Applications#Graphical_9]]<br />
<br />
===MPlayer===<br />
[[MPlayer]] is efficient and supports a wide variety of media formats (i.e. almost everything). To play a DVD with MPlayer:<br />
$ mplayer dvd://N<br />
<br />
...where N is the desired chapter number. Start at 1 and work up if unsure.<br />
<br />
Mplayer checks {{ic|/dev/dvd}} by default. Tell it to use {{ic|/dev/sr0}} with the {{ic|dvd-device}} option at the command line, or the {{ic|dvd-device}} variable in {{ic|~/.mplayer/config}}.<br />
<br />
To play a DVD image file:<br />
$ mplayer -dvd-device movie.iso dvd://N<br />
<br />
To enable the DVD menu use (NOTE: you use arrow keys to navigate and the {{Keypress|Enter}} key to choose):<br />
$ mplayer dvdnav://<br />
<br />
To enable mouse support in DVD menus use:<br />
$ mplayer -mouse-movements dvdnav://<br />
<br />
To find the audio language, start MPlayer with the {{ic|-v}} switch to output audio IDs. An audio track is selected with {{ic|-aid <audio_id>}}. Set a default audio language by editing {{ic|~/.mplayer/config}} and adding the line {{ic|1=alang=en}} for English. <br />
<br />
With MPlayer, the DVD could be set to a low volume. To increase the maximum volume to 400%, use {{ic|1=softvol=yes}} and {{ic|1=softvol-max=400}}. The startup volume defaults to 100% of software volume and the global mixer levels will remain untouched. Using the 9 and 0 keys, volume can be adjusted between 0 and 400 percent.<br />
alang=en<br />
softvol=yes<br />
softvol-max=400<br />
<br />
[http://www.mplayerhq.hu/ MPlayer home page]<br />
<br />
===VLC===<br />
A capable player with a simple GUI, provided by the {{Pkg|vlc}} package.<br />
<br />
[http://www.videolan.org/vlc VLC home page]<br />
<br />
{{Tip|1=To make VLC the default DVD player in [[GNOME]], edit {{ic|/usr/share/applications/vlc.desktop}} and at the bottom of the file, add the following:<br />
{{bc|1=MimeType=video/dv;video/mpeg;video/x-mpeg;video/msvideo;video/quicktime;video/x-anim;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/x-flc;video/x-fli;application/ogg;application/x-ogg;application/x-matroska;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-m4a;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;misc/ultravox;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;image/vnd.rn-realpix;video/vnd.rn-realvideo;audio/x-pn-realaudio-plugin;application/x-extension-mp4;audio/mp4;video/mp4;video/mp4v-es;x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-cdda;x-content/audio-player;}}<br />
<br />
Then, as root, run:<br />
# update-desktop-database /usr/share/applications<br />
<br />
Finally, open '''System > Preferences >> File Management >>> Media''' and next to '''DVD Video''' select '''Open VLC media player'''.}}<br />
<br />
===xine===<br />
A lightweight media player supporting DVD menus.<br />
<br />
[http://www.xine-project.org/ xine home page]<br />
<br />
==Troubleshooting==<br />
<br />
===DVD drive is noisy===<br />
If playing DVD videos causes the system to be very loud, it may be because the disk is spinning faster than it needs to. To temporarily change the speed of the drive, as root, run:<br />
# eject -x 12 /dev/dvd<br />
<br />
sometimes:<br />
# hdparm -E12 /dev/dvd<br />
<br />
Any speed that is supported by the drive can be used, or 0 for the maximum speed.<br />
<br />
[http://hektor.umcs.lublin.pl/~mikosmul/computing/tips/cd-rom-speed.html Setting CD-ROM and DVD-ROM drive speed]</div>Time132https://wiki.archlinux.org/index.php?title=Beginners%27_guide/Post-installation&diff=193878Beginners' guide/Post-installation2012-04-12T12:17:43Z<p>Time132: /* Sudo */</p>
<hr />
<div><noinclude><br />
[[Category:Getting and installing Arch (English)]] [[Category:About Arch (English)]]<br />
[[Category:Website Resources]]<br />
{{i18n|Beginners' Guide/Extra}}<br />
{{Tip|This is part of a multi-page article for The Beginners' Guide. '''[[Beginners' Guide|Click here]]''' if you would rather read the guide in its entirety.}}<br />
</noinclude><br />
==Extra==<br />
You should now have a completely functional Arch system which will act as a suitable base for you to build upon based on your needs. However, most people are interested in a desktop system, complete with sound and graphics. This part of the guide will provide a brief overview of the procedure to acquire these extras.<br />
<br />
===Sudo===<br />
Install Sudo:<br />
{{bc|# pacman -S sudo}}<br />
To add a user as a sudo user (a &quot;sudoer&quot;), the visudo command must be run as root.<br />
<br />
By default, the visudo command uses the editor [[vi]]. If you do not know how to use vi, you may set the EDITOR environment variable to the editor of your choice, such as in this example with the editor "nano":<br />
# EDITOR=nano visudo<br />
{{Note|Please note that you are setting the variable and starting visudo on the same line at the same time. This will not work properly as two separated commands.}}<br />
<br />
If you are comfortable using vi, issue the visudo command without the EDITOR=nano variable:<br />
{{bc|# visudo}}<br />
This will open the file {{ic|/etc/sudoers}} in a special session of vi. visudo copies the file to be edited to a temporary file, edits it with an editor, (vi by default), and subsequently runs a sanity check. If it passes, the temporary file overwrites the original with the correct permissions.<br />
<br />
{{Warning|Do not edit {{ic|/etc/sudoers}} directly with an editor; errors in syntax can cause annoyances (like rendering the root account unusable). You '''must''' use the ''visudo'' command to edit {{ic|/etc/sudoers}}.}}<br />
<br />
In the previous section we added your user to the "wheel" group. To give users in the wheel group full root privileges when they precede a command with &quot;sudo&quot;, uncomment the following line:<br />
%wheel ALL=(ALL) ALL<br />
Now you can give any user access to the sudo command by simply adding them to the wheel group.<br />
<br />
For more information, such as sudoer <TAB> completion, see [[Sudo#Enabling_tab-completion_in_bash]].<br />
<br />
===Sound===<br />
If you want sound, proceed to [[Advanced Linux Sound Architecture]] for instructions. Alternatively, proceed to the [[#Graphical User Interface|next section]] first, and set up sound later.<br />
<br />
{{Note|ALSA usually works out-of-the-box, it just needs to be unmuted.}}<br />
<br />
The [[Wikipedia:Advanced Linux Sound Architecture|Advanced Linux Sound Architecture]] (ALSA) is included with the kernel and it is recommended to try it first. However, if it does not work or you are not satisfied with the quality, the [[Wikipedia:Open Sound System|Open Sound System]] is a viable alternative. OSSv4 has been released under a free license and is generally considered a significant improvement over the older OSSv3 which was replaced by ALSA. Instructions can be found in the [[OSS|OSS article]].<br />
<br />
If you have advanced audio requirements, take a look at [[Sound]] for an overview of various articles.<br />
<br />
==='''G'''raphical '''U'''ser '''I'''nterface===<br />
<br />
====Install X====<br />
The [[Wikipedia:X Window System|X Window System]] (commonly '''X11''', or '''X''') is a networking and display protocol which provides windowing on bitmap displays. It provides the standard toolkit and protocol to build graphical user interfaces (GUIs).<br />
<br />
Now we will install the base '''[[Xorg]]''' packages using pacman.<br />
<br />
Install the base packages:<br />
{{bc|# pacman -S xorg-server xorg-xinit xorg-server-utils}}<br />
<br />
Install [[Wikipedia:Mesa 3D (OpenGL)|mesa]] for 3D support:<br />
{{bc|# pacman -S mesa}}<br />
<br />
The 3D utilities glxgears and [http://dri.freedesktop.org/wiki/glxinfo glxinfo] are included in the '''mesa-demos''' package. Install if needed:<br />
{{bc|# pacman -S mesa-demos}}<br />
<br />
{{Note|If you are installing Arch as a Virtualbox guest, you need a different way to complete X installation. See [[Arch Linux VirtualBox Guest]], then jump to the configuration part below.}}<br />
<br />
====Install video driver====<br />
Next, you should install a driver for your graphics card.<br />
<br />
You will need knowledge of which video chipset your machine has. If you do not know, use the {{ic|/usr/sbin/lspci}} program:<br />
{{bc|<nowiki>$ lspci | grep VGA</nowiki>}}<br />
<br />
{{Note| The '''vesa''' driver is the most generic, and should work with almost any modern video chipset. If you cannot find a suitable driver for your video chipset, vesa ''should'' work with any video card, but it offers only unaccelerated 2D performance.}}<br />
<br />
For a complete list of all '''open-source''' video drivers, search the package database:<br />
{{bc|<nowiki>$ pacman -Ss xf86-video | less</nowiki>}}<br />
<br />
{{Note|Proprietary drivers for NVIDIA and ATI are covered in the next sections. If you plan on doing heavy 3D processing such as gaming, consider using these.}}<br />
<br />
Use pacman to install the appropriate video driver for your video card/onboard video. Example for the Savage driver:<br />
{{bc|# pacman -S xf86-video-savage}}<br />
<br />
{{Tip|For some Intel graphics cards, configuration may be necessary to get proper 2D or 3D performance, see [[Intel]] for more information.}}<br />
<br />
=====NVIDIA Graphics Cards=====<br />
NVIDIA users have three options for drivers (in addition to the vesa driver):<br />
* The open-source nouveau driver, which offers fast 2d acceleration and basic 3d support which is good enough for basic compositing (note: does not fully support powersaving yet). [http://nouveau.freedesktop.org/wiki/FeatureMatrix Feature Matrix.]<br />
* The open-source (but obfuscated) nv driver, which is very slow and only has 2d support.<br />
* The proprietary nvidia drivers, which offer good 3d performance and powersaving. Even if you plan on using the proprietary drivers, it is recommended to start with nouveau and then switch to the binary driver after you have X set up and working. Nouveau often works out-of-the-box, while nvidia will require configuration and likely some troubleshooting. See [[NVIDIA]] for more information.<br />
<br />
The open-source nouveau driver should be good enough for most users and is recommended:<br />
{{bc|# pacman -S xf86-video-nouveau}}<br />
<br />
For experimental 3D support:<br />
{{bc|# pacman -S nouveau-dri}}<br />
<br />
{{Tip|For advanced instructions, see [[Nouveau]].}}<br />
<br />
=====ATI Graphics Cards=====<br />
ATI owners have two options for drivers (in addition to the vesa driver):<br />
* The open source '''radeon''' driver provided by the '''xf86-video-ati''' package. See the [http://wiki.x.org/wiki/RadeonFeature radeon feature matrix] for details.<br />
* The proprietary '''fglrx''' driver provided by the [https://aur.archlinux.org/packages.php?O=0&K=catalyst&do_Search=Go catalyst] package located in the [[AUR]]. It supports only newer devices (HD2xxx and newer). It was once a package offered by Arch in the '''extra''' repository, but as of March 2009, official support has been dropped because of dissatisfaction with the quality and speed of development of the proprietary driver. See [[ATI Catalyst]] for more information.<br />
<br />
The open-source driver is the recommended choice. Install the '''radeon''' ATI Driver:<br />
{{bc|# pacman -S xf86-video-ati}}<br />
<br />
{{Tip|For advanced instructions, see [[ATI]].}}<br />
<br />
=====SiS Graphics Cards=====<br />
SiS cards are not officially supported on Linux. Despite this fact 3 more or less outdated drivers can be installed from the [[official repositories]]:<br />
{{bc|# pacman -S xf86-video-sis}}<br />
or<br />
{{bc|# pacman -S xf86-video-sisusb}}<br />
or<br />
{{bc|# pacman -S xf86-video-sisimedia}}<br />
<br />
If neither of them works for you, searching in the [[AUR]] and compiling a driver (with possible downgrading of {{pkg|xorg-server}}) is the only option.<br />
<br />
{{Tip|<br />
*You can learn more about current state of sis drivers at http://dri.freedesktop.org/wiki/SiS.<br />
*For advanced instructions, see [[SiS]].}}<br />
<br />
====Install input drivers====<br />
Udev should be capable of detecting your hardware without problems and evdev ('''xf86-input-evdev''') is the modern, hotplugging input driver for almost all devices so in most cases, installing input drivers is not needed. At this point, evdev has already been installed as a dependency of Xorg.<br />
<br />
If evdev does not support your device, install the needed driver from the xorg-input-drivers group.<br />
<br />
For a complete list of available input drivers, invoke a pacman search:<br />
{{bc|<nowiki># pacman -Ss xf86-input | less</nowiki>}}<br />
{{Note|You only need xf86-input-keyboard or xf86-input-mouse if you plan on disabling hotplugging, otherwise, evdev will act as the input driver.}}<br />
<br />
Laptop users (or users with a touchscreen) will also need the synaptics package to allow X to configure the touchpad/touchscreen:<br />
{{bc|# pacman -S xf86-input-synaptics}}<br />
<br />
{{Tip|For instructions on fine tuning or troubleshooting touchpad settings, see the [[Touchpad Synaptics]] article.}}<br />
<br />
====Configure X (Optional)====<br />
{{Warning|Proprietary drivers usually require a reboot after installation along with configuration. See [[NVIDIA]] or [[ATI Catalyst]] for details.}}<br />
<br />
X Server features auto-configuration and therefore can function without an {{ic|xorg.conf}}. If you still wish to manually configure X Server, please see the [[Xorg]] wiki page.<br />
<br />
=====Non-US keyboard=====<br />
If you do not use a standard US keyboard, you need to set the keyboard layout in {{ic|/etc/X11/xorg.conf.d/10-evdev.conf}}:<br />
<br />
Section "InputClass"<br />
Identifier "evdev keyboard catchall"<br />
MatchIsKeyboard "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Driver "evdev"<br />
'''Option "XkbLayout" "be"'''<br />
EndSection<br />
<br />
If, for example, you wish to use a variant of the US keyboard, add the following into the same section from the previous example:<br />
Option "XkbLayout" "us"<br />
Option "XkbVariant" "dvorak"<br />
<br />
{{Note|The '''XkbLayout''' key may differ from the keymap code you used with the km or loadkeys command. A list of many keyboard layouts and variants can be found in {{ic|/usr/share/X11/xkb/rules/base.lst}} (see text after line beginning with {{ic|<nowiki>! layout</nowiki>}}). For instance the layout: '''gb''' corresponds to "English (UK)".<br />
}}<br />
<br />
====Testing X====<br />
This section will explain how to start a very basic graphical environment in order to test '''X'''. This uses the simple default '''X''' window manager, twm.<br />
<br />
Install the default test environment:<br />
<br />
{{bc|# pacman -S xorg-twm xorg-xclock xterm}}<br />
<br />
The default X environment is rather bare. [[#Choose and install a graphical interface|This section below]] will deal with installing a desktop environment or window manager of your choice to supplement X.<br />
<br />
If you installed Xorg before creating your regular user, there will be an empty {{ic|.xinitrc}} file in your $HOME that you need to either delete or edit in order to start a graphical environment. Simply deleting it will cause '''X''' to run with the default environment (twm, xclock, xterm).<br />
<br />
{{bc|$ rm ~/.xinitrc}}<br />
<br />
=====Message bus=====<br />
{{Note|[[dbus]] is likely required for many of your applications to work properly, if you know you do not need it, skip this section.}}<br />
<br />
Install [[dbus]]:<br />
{{bc|# pacman -S dbus}}<br />
<br />
Start the dbus daemon:<br />
{{bc|# rc.d start dbus}}<br />
<br />
{{Note|{{ic|/usr/sbin/rc.d}} is an Arch-peculiar command which acts as a shortcut for executing [[daemon]] actions in place of using the full {{ic|/etc/rc.d/''daemon''}} path commonly used in other distributions.}}<br />
<br />
Add dbus to the {{ic|DAEMONS}} array in {{ic|/etc/rc.conf}} so it starts automatically on boot:<br />
{{bc|1=DAEMONS=(... dbus ...)}}<br />
<br />
=====Start X=====<br />
{{Note|The Ctrl-Alt-Backspace shortcut traditionally used to kill X has been deprecated and will not work to exit out of this test. You can enable Ctrl-Alt-Backspace by editing {{ic|xorg.conf}}, as described [[Xorg#Ctrl-Alt-Backspace_does_not_work|here]].}} Both the following commands can be found in the {{pkg|xorg-xinit}} package if you have troubles running them.<br />
Finally, start Xorg:<br />
{{bc|$ startx}}<br />
<br />
or:<br />
{{bc|$ xinit -- /usr/bin/X -nolisten tcp}}<br />
<br />
A few movable windows should show up, and your mouse should work. Once you are satisfied that '''X''' installation was a success, you may exit out of '''X''' by issuing the {{ic|exit}} command into the prompts until you return to the console.<br />
<br />
If the screen goes black, you may still attempt to switch to a different virtual console (CTRL-Alt-F2, for example), and login blindly as root, followed by <Enter>, followed by root's password followed by <Enter>.<br />
<br />
You can attempt to kill the '''X''' server with {{ic|/usr/bin/pkill}} (note the capital letter '''X'''):<br />
{{bc|# pkill X}}<br />
<br />
If '''pkill''' does not work, reboot blindly with:<br />
{{bc|# reboot}}<br />
<br />
=====In case of errors=====<br />
If a problem occurs, look for errors in {{ic|/var/log/Xorg.0.log}}. Be on the lookout for any lines beginning with {{ic|(EE)}} which represent errors, and also {{ic|(WW)}} which are warnings that could indicate other issues.<br />
{{bc|$ grep EE /var/log/Xorg.0.log}}<br />
<br />
Errors may also be searched for in the console output of the virtual console from which '''X''' was started.<br />
<br />
See the [[Xorg]] article for detailed instructions and troubleshooting.<br />
<br />
=====Need Help?=====<br />
If you are still having trouble after consulting the [[Xorg]] article and need assistance via the Arch forums, be sure to install and use {{Pkg|wgetpaste}}:<br />
<br />
{{bc|# pacman -S wgetpaste}}<br />
Use '''wgetpaste''' and provide links for the following files when asking for help in your forum post:<br />
* ~/.xinitrc<br />
* /etc/X11/xorg.conf<br />
* /var/log/Xorg.0.log<br />
* /var/log/Xorg.0.log.old<br />
Use it like so:<br />
{{bc|$ wgetpaste </path/to/file>}}<br />
Post the corresponding links given within your forum post. Be sure to provide appropriate hardware and driver information as well.<br />
{{Note|It is very important to provide detail when troubleshooting X. Please provide all pertinent information as detailed above when asking for assistance on the Arch forums.}}<br />
<br />
====Install Fonts====<br />
At this point, you may wish to save time by installing visually pleasing, true type fonts, before installing a desktop environment/window manager. DejaVu is a set of high quality, general-purpose fonts.<br />
<br />
Install with:<br />
{{bc|# pacman -S ttf-dejavu}}<br />
<br />
*Refer to [[Font Configuration]] for how to configure font rendering and [[Fonts]] for font suggestions and installation instructions.<br />
*Steps to install Microsoft fonts are detailed in the [[MS Fonts]] article.<br />
<br />
====Choose and install a graphical interface====<br />
The X Window System provides the basic framework for building a graphical user interface (GUI).<br />
<br />
{{Note|Choosing your DE or WM is a very subjective and personal decision. Choose the best environment for ''your'' needs.}}<br />
<br />
;Window Manager (WM) : Controls the placement and appearance of application windows in conjunction with the X Window System. '''See [[Window Manager#Window managers|Window managers]] for more information.'''<br />
<br />
;Desktop Environment (DE): Works atop and in conjunction with X, to provide a completely functional and dynamic GUI. A DE typically provides a window manager, icons, applets, windows, toolbars, folders, wallpapers, a suite of applications and abilities like drag and drop.''' See [[Desktop Environment#Desktop environments|Desktop environments]] for more information.'''<br />
<br />
{{Note|You can build your own DE by using a WM and the applications of your choice.}}<br />
<br />
After installing a graphical interface, you may wish to continue with [[General Recommendations]] for post-installation instructions.<br />
<br />
====Methods for starting your Graphical Environment====<br />
=====Manually=====<br />
You might prefer to start X manually from your terminal rather than booting straight into the desktop. For DE-specific commands, please see the wiki page corrosponding to your DE for more information. For more generic '''X''' commands, please see the [[Xorg#Methods for starting your Graphical Environment|section on the Xorg page]].<br />
<br />
=====Automatically=====<br />
You might prefer to have the desktop start automatically during boot instead of starting X manually. See [[Display Manager]] for instructions on using a login manager or [[Start X at Boot]] for two lightweight methods that do not rely on a display manager.<br />
<br />
==Appendix==<br />
For a list of applications that may be of interest, see [[Common Applications]].<br />
<br />
See [[General Recommendations]] for post-installation tutorials like setting up CPU frequency scaling or font rendering.<noinclude><br />
{{Beginners' Guide navigation}}</noinclude></div>Time132