https://wiki.archlinux.org/api.php?action=feedcontributions&user=Dante4d&feedformat=atomArchWiki - User contributions [en]2024-03-29T11:54:55ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=CUPS&diff=458584CUPS2016-12-06T09:44:20Z<p>Dante4d: typo</p>
<hr />
<div>[[Category:Printers]]<br />
[[cs:CUPS]]<br />
[[de:CUPS]]<br />
[[es:CUPS]]<br />
[[fr:CUPS]]<br />
[[it:CUPS]]<br />
[[ja:CUPS]]<br />
[[pl:CUPS]]<br />
[[ru:CUPS]]<br />
[[th:CUPS]]<br />
[[tr:CUPS]]<br />
[[zh-CN:CUPS]]<br />
[[zh-TW:CUPS]]<br />
{{Related articles start}}<br />
{{Related|CUPS/Printer sharing}}<br />
{{Related|CUPS/Printer-specific problems}}<br />
{{Related|CUPS/Troubleshooting}}<br />
{{Related|Samba}}<br />
{{Related|LPRng}}<br />
{{Related articles end}}<br />
<br />
[http://www.cups.org/ CUPS] is the standards-based, open source printing system developed by Apple Inc. for macOS® and other UNIX®-like operating systems.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|cups}} package.<br />
<br />
If you intend to "print" into a PDF document, also install the {{pkg|cups-pdf}} package. By default, pdf files are stored in {{ic|/var/spool/cups-pdf/$USER}}. The location can be changed in {{ic|/etc/cups/cups-pdf.conf}}.<br />
<br />
[[Enable]] and [[start]] {{ic|org.cups.cupsd.service}}.<br />
<br />
As of {{pkg|gtk3}} 3.22, in order to print from GTK3 applications you will need to additionally install the {{pkg|gtk3-print-backends}} package.<br />
<br />
== Connection Interfaces ==<br />
Additional steps for printer detection are listed below for various connection interfaces.<br />
<br />
{{Note|CUPS helper programs are run using the {{ic|lp}} group and {{ic|daemon}} user. This allows the helper programs to access printer devices '''and''' read config files in {{ic|/etc/cups/}}, which all belong to the {{ic|lp}} group. This default may conflict with non-printer parallel port device access:<br />
* Adding extra users to the {{ic|lp}} group will allow those users to read CUPS files, and<br />
* CUPS helpers may gain access to any non-printer parallel port devices.<br />
If this is a concern, consider using a [[Udev]] rule to assign a different group for any non-printer parallel port device ({{Bug|50009}}). The group and user that CUPS uses can be changed, but the permissions of some files may need to be manually fixed.}}<br />
<br />
=== USB ===<br />
To see if your USB printer is detected:<br />
{{hc|$ lsusb|<br />
(...)<br />
Bus 001 Device 007: ID 03f0:1004 Hewlett-Packard DeskJet 970c/970cse<br />
}}<br />
<br />
=== Parallel port ===<br />
To use a parallel port printer, the {{ic|lp}}, {{ic|parport}} and {{ic|parport_pc}} [[kernel modules]] are required.<br />
<br />
{{hc|$ dmesg {{!}} grep -i parport|<br />
parport0: Printer, Hewlett-Packard HP LaserJet 2100 Series<br />
lp0: using parport0 (polling)<br />
}}<br />
<br />
=== Network ===<br />
To use [[Avahi]] hostnames to connect to networked printers, set up [[Avahi#Hostname_resolution|.local hostname resolution]] and [[restart]] {{ic|org.cups.cupsd.service}}.<br />
<br />
If the system is connected to a networked printer using the [[Samba]] protocol, or if the system is to be a print server for Windows clients, install the {{Pkg|samba}} package.<br />
<br />
== Printer Drivers ==<br />
The drivers for a printer may come from any of the sources shown below. See [[CUPS/Printer-specific problems]] for an incomplete list of drivers that others have managed to get working.<br />
<br />
To drive a printer, CUPS needs a PPD file and, for most printers, some [https://www.cups.org/doc/man-filter.html filters].<br />
For details on how CUPS uses PPDs and filters, see [https://www.cups.org/doc/postscript-driver.html].<br />
<br />
The [http://www.openprinting.org/printers OpenPrinting Printer List] provides driver recommendations for many printers. It also supplies PPD files for each printer, but most are available through foomatic or the recommended driver package.<br />
<br />
When a PPD file is provided to CUPS, the CUPS server will regenerate the PPD files and save them in {{ic|/etc/cups/ppd/}}.<br />
<br />
=== CUPS ===<br />
CUPS provides a few PPDs and filter binaries by default, which should work out of the box.<br />
<br />
=== Foomatic ===<br />
The [https://wiki.linuxfoundation.org/openprinting/database/foomatic foomatic] project provides PPDs for many printer drivers, both free and nonfree. For more information about what foomatic does, see [http://www.openprinting.org/download/kpfeifle/LinuxKongress2002/Tutorial/IV.Foomatic-Developer/IV.tutorial-handout-foomatic-development.html Foomatic from the Developer's View].<br />
<br />
To use foomatic, install {{pkg|foomatic-db-engine}}, and at least one of {{pkg|foomatic-db}}, {{pkg|foomatic-db-ppds}}, {{pkg|foomatic-db-nonfree-ppds}}, or {{pkg|foomatic-db-gutenprint-ppds}}.<br />
<br />
The foomatic PPDs may require additional filters, such as {{pkg|gutenprint}}, {{pkg|ghostscript}}, or another source (for instance {{aur|min12xxw}}).<br />
For {{pkg|ghostscript}}, {{pkg|gsfonts}} may also be required.<br />
<br />
=== Manufacturer-specific drivers ===<br />
Many printer manufacturers supply their own Linux drivers. These are often available in the official Arch repositories or in the [[AUR]].<br />
<br />
Some of those drivers are described in more detail in [[CUPS/Printer-specific problems]].<br />
<br />
== Printer URI ==<br />
<br />
Listed below are additional steps to manually generate the URI if required.<br />
<br />
=== USB ===<br />
<br />
CUPS should be able to automatically generate a URI for USB printers, for example {{ic|1=usb://HP/DESKJET%20940C?serial=CN16E6C364BH}}.<br />
<br />
If it doesn't, see [[CUPS/Troubleshooting#USB printers]] for troubleshooting steps.<br />
<br />
=== Parallel port ===<br />
<br />
The URI should be of the form {{ic|parallel:''device''}}. For instance, if the printer is connected on {{ic|/dev/lp0}}, use {{ic|parallel:/dev/lp0}}.<br />
If you are using a USB to parallel port adapter, use {{ic|parallel:/dev/usb/lp0}} as the printer URI.<br />
<br />
=== Network ===<br />
<br />
If you have set up [[Avahi]] as in [[#Network]], CUPS should detect the printer URI. You can also use {{ic|avahi-discover}} to find the name of your printer and its address (for instance, {{ic|BRN30055C6B4C7A.local/10.10.0.155:631}}).<br />
<br />
The URI can also be generated manually, without using [[Avahi]].<br />
A list of the available URI schemes for networked printers is available in the CUPS documentation [https://www.cups.org/doc/network.html#PROTOCOLS]. As exact details of the URIs differ between printers, check either the manual of the printer or [[CUPS/Printer-specific problems]].<br />
<br />
Remote CUPS print servers can be accessed through a URI of the form {{ic|ipp://''hostname'':631/printers/''queue_name''}}. See [[CUPS/Printer sharing#Between GNU/Linux systems]] for details on setting up the remote print server.<br />
<br />
See [[CUPS/Troubleshooting#Networking issues]] for additional issues and solutions.<br />
<br />
{{Warning|1=Avoid configuring both the server and the client with a printer filter - either the print queue on the client or the server should be 'raw'. This avoids sending a print job through the filters for a printer twice, which can cause problems (for instance, [https://bbs.archlinux.org/viewtopic.php?pid=1589908#p1589908]). See [[#Usage]] for an example of setting a print queue to 'raw'.}}<br />
<br />
== Usage ==<br />
<br />
CUPS can be fully controlled using the lp* and cups* CLI tools.<br />
Alternatively, the [[#Web interface]] or one of several [[#GUI applications]] can be used.<br />
<br />
* The ''queue'' name is a short but descriptive name used on the system to identify the queue. This name should not contain spaces or any special characters. For instance, a print queue corresponding to a HP LaserJet 5P could be named "hpljet5p". More than one queue can be associated with each physical printer.<br />
* The ''location'' is a description of the printer's physical location (for instance "bedroom", or "kitchen"). This is to aid in maintaining several printers.<br />
* The ''description'' is a full description of the print queue. A common use is a full printer name (like "HP LaserJet 5P").<br />
<br />
=== CLI tools ===<br />
<br />
See [http://localhost:631/help/options.html CUPS local documentation] for more tips on the command-line tools.<br />
<br />
{{Note|Command-line switches cannot be grouped}}<br />
<br />
;List the devices<br />
# lpinfo -v # <br />
$ /usr/lib/cups/backend/snmp ''ip_address'' # Use SNMP to find a URI<br />
<br />
;List the drivers<br />
$ lpinfo -m<br />
<br />
;Add a new queue<br />
# lpadmin -p ''queue_name'' -E -v ''uri'' -m ''model''<br />
<br />
The ''queue_name'' is up to you.<br />
Example:<br />
# lpadmin -p HP_DESKJET_940C -E -v "usb://HP/DESKJET%20940C?serial=CN16E6C364BH" -m drv:///HP/hp-deskjet_940c.ppd.gz<br />
# lpadmin -p SHARED_PRINTER -m raw # Raw queue; no PPD or filter<br />
<br />
;Set the default printer<br />
$ lpoptions -d ''queue_name''<br />
<br />
;Change the options<br />
$ lpoptions -p ''queue_name'' -l # List the options<br />
$ lpoptions -p ''queue_name'' -o ''option''=''value'' # Set an option<br />
<br />
Example:<br />
$ lpoptions -p HP_DESKJET_940C -o PageSize=A4<br />
<br />
;Check the status<br />
$ lpstat -s<br />
$ lpstat -p ''queue_name''<br />
<br />
;Deactivate a printer<br />
# cupsdisable ''queue_name''<br />
<br />
;Activate a printer<br />
# cupsenable ''queue_name''<br />
<br />
;Set the printer to accept jobs<br />
# cupsaccept ''queue_name''<br />
<br />
;Remove a printer<br />
First set it to reject all incoming entries:<br />
# cupsreject ''queue_name''<br />
Then disable it.<br />
# cupsdisable ''queue_name''<br />
Finally remove it.<br />
# lpadmin -x ''queue_name''<br />
<br />
;Print a file<br />
$ lpr ''file''<br />
$ lpr -# 17 ''file'' # print the file 17 times<br />
$ echo "Hello, world!" | lpr -p # print the result of a command. The -p switch adds a header.<br />
<br />
;Check the queue<br />
$ lpq<br />
$ lpq -a # on all queues<br />
<br />
;Clear the queue<br />
# lprm # remove last entry only<br />
# lprm - # remove all entries<br />
<br />
=== Web interface ===<br />
<br />
The CUPS server can be fully administered through the web interface, available on http://localhost:631/.<br />
<br />
{{Note|If an HTTPS connection to CUPS is used, it ''may'' take a very long time before the interface appears the first time it is accessed. This is because the first request triggers the generation of SSL certificates which can be a time-consuming job.}}<br />
<br />
;Add a queue<br />
Go to the '''Administration''' page. <br />
<br />
;Modify existing queues<br />
Go to the '''Printers''' page, and select a queue to modify.<br />
<br />
;Test a queue<br />
Go to the '''Printers''' page, and select a queue.<br />
<br />
=== GUI applications ===<br />
<br />
If your user does not have sufficient privileges to administer CUPS, the applications will request the root password when they start. To give users administrative privileges without needing root access, see [[#Configuration]].<br />
<br />
* {{App|print-manager|A tool for managing print jobs and printers ([[KDE]]).|https://projects.kde.org/projects/kde/kdeutils/print-manager|{{Pkg|print-manager}}}}<br />
* {{App|system-config-printer|A CUPS printer configuration tool and status applet ([[GNOME]] and others)|http://cyberelk.net/tim/software/system-config-printer/|{{Pkg|system-config-printer}}}}<br />
* {{App|gtklp|GTK+ interface to CUPS.|http://gtklp.sirtobi.com/index.shtml|{{AUR|gtklp}}}}<br />
<br />
== Configuration ==<br />
<br />
The CUPS server configuration is located in {{ic|/etc/cups/cupsd.conf}} and {{ic|/etc/cups/cups-files.conf}}. After editing either file, [[restart]] {{ic|org.cups.cupsd.service}} to apply any changes. The default configuration is sufficient for most users.<br />
<br />
[[Groups]] with printer administration privileges are defined in {{ic|SystemGroup}} in the {{ic|/etc/cups/cups-files.conf}}. The {{ic|sys}} group is used by default.<br />
<br />
{{pkg|cups}} is built with {{pkg|libpaper}} support and libpaper defaults to the '''Letter''' paper size. To avoid having to change the paper size for each print queue you add, edit {{ic|/etc/papersize}} and set your system default paper size. See {{man|5|papersize}}.<br />
<br />
By default, all logs are sent to files in {{ic|/var/log/cups/}}. By changing the values of the {{ic|AccessLog}}, {{ic|ErrorLog}}, and {{ic|PageLog}} directives in {{ic|/etc/cups/cups-files.conf}} to {{ic|syslog}}, CUPS can be made to log to the [[systemd journal]] instead. See [https://fedoraproject.org/wiki/Changes/CupsJournalLogging the fedora wiki page] for information on the original proposed change.<br />
<br />
=== cups-browsed ===<br />
<br />
CUPS can use [[Avahi]] browsing to discover unknown shared printers in your network. This can be useful in large setups where the server is unknown. To use this feature, set up [[Avahi#Hostname_resolution|.local hostname resolution]], and start both {{ic|avahi-daemon.service}} and {{ic|cups-browsed.service}}. Note that jobs are sent directly to the printer without any processing so the created queues may not work.<br />
<br />
=== Printer sharing ===<br />
<br />
See [[CUPS/Printer sharing]].<br />
<br />
=== Without a local CUPS server ===<br />
<br />
CUPS can be configured to directly connect to remote printer servers instead of running a local print server. This requires [[install]]ation of the {{Pkg|libcups}} package. Some applications will still require the {{Pkg|cups}} package for printing.<br />
<br />
{{Warning|Accessing remote printers without a local CUPS server is not recommended by the developers. [http://www.cups.org/pipermail/cups/2015-October/027229.html]}}<br />
<br />
To use a remote CUPS server, set the {{ic|CUPS_SERVER}} [[environment variable]] to {{ic|printerserver.mydomain:port}}. For instance, if you want to use a different print server for a single [[Firefox]] instance (substitute {{ic|printserver.mydomain:port}} with your print server name/port):<br />
<br />
$ CUPS_SERVER=printserver.mydomain:port firefox<br />
<br />
== Troubleshooting ==<br />
<br />
See [[CUPS/Troubleshooting]].<br />
<br />
== See also ==<br />
<br />
* [http://localhost:631/help Official CUPS documentation], ''locally installed''<br />
* [[Wikipedia:CUPS]]<br />
* [http://www.linuxfoundation.org/collaborate/workgroups/openprinting OpenPrinting homepage]<br />
* [https://en.opensuse.org/Concepts_printing OpenSuSE Concepts printing guide - explains the full printing workflow]<br />
* [https://en.opensuse.org/SDB:CUPS_in_a_Nutshell OpenSuSE CUPS in a Nutshell - a quick CUPS overview]<br />
* [https://wiki.gentoo.org/wiki/Printing Gentoo's printing guide]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=VirtualBox&diff=103847VirtualBox2010-04-18T15:27:56Z<p>Dante4d: Note on absence of vbox_build_module binary in community packages</p>
<hr />
<div>[[Category:Emulators (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|VirtualBox}}<br />
<br />
[http://www.virtualbox.org VirtualBox] is a virtual pc emulator like vmware. It has many of the features vmware has, as well as some of its own. It is in constant development and new features are implemented all the time. eg. version 2.2 introduced OpenGL 3D acceleration support for Linux and Solaris guests. It has a nice GUI interface (Qt and/or SDL) or command line tools for managing virtual machines. Headless operation is also supported. Running iTunes under VirtualBox is the only way (currently) to sync iPod Touch/iPhone firmware 3.0+.<br />
<br />
==Editions==<br />
VirtualBox is available in two editions: VirtualBox (OSE) and VirtualBox (Personal Use and Evaluation License (PUEL))<br />
<br />
===VirtualBox (OSE)===<br />
VirtualBox (OSE) is the open source version of VirtualBox, which can be found in the community repository. It lacks some features such as USB device support and the built-in RDP server. <br />
<br />
===VirtualBox (PUEL)===<br />
VirtualBox PUEL is a binary-only version (free for personal use). There are several available from the AUR, but the most popular PKGBUILD was written by thotypous and is currently maintained by cryptocrack. You can download it from the [http://aur.archlinux.org/packages.php?ID=9753 AUR at this link] or directly from the <br />
[http://www.virtualbox.org/wiki/Downloads VirtualBox] website. The PUEL edition offers the following advantages:<br />
<br />
*'''Remote Display Protocol (RDP) Server''' - a complete RDP server on top of the virtual hardware, allowing users to connect to a virtual machine remotely using any RDP compatible client<br />
<br />
*'''USB support''' - a virtual USB controller which allows USB 1.1 and USB 2.0 devices to be passed through to virtual machines<br />
<br />
*'''USB over RDP''' - a combination of the RDP server and USB support, allowing users to make USB devices available to virtual machines running remotely<br />
<br />
*'''iSCSI initiator''' - a builtin iSCSI initiator making it possible to use iSCSI targets as virtual disks without the guest requiring support for iSCSI<br />
<br />
==Installation==<br />
<br />
===Install VirtualBox (OSE)===<br />
VirtualBox (OSE) is available from the community repository:<br />
# pacman -S virtualbox-ose<br />
<br />
{{Note | 1=This package is not in x86_64 Repositories (see [http://bbs.archlinux.org/viewtopic.php?id=80991&p=1 this thread] why). See the link to the PKGBUILD by thotypous in the AUR above if you are running Arch x86_64 and want to use VirtualBox.}}<br />
<br />
This will select by default <tt>virtualbox-ose</tt> and <tt>virtualbox-modules</tt> packages. Once installed, a desktop entry can be located in ''Applications &rarr; System Tools &rarr; VirtualBox OSE''<br />
<br />
Now, add the desired username to the '''vboxusers''' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
{{Note | You must logout/login in order for this change to take effect.}}<br />
<br />
Lastly, edit {{Filename|/etc/rc.conf}} as root and add '''vboxdrv''' to the MODULES array in order to load the VirtualBox drivers at startup. For example:<br />
MODULES=(loop '''vboxdrv''' fuse ...)<br />
<br />
To load the module manually, run the following in a terminal as root: <br />
# modprobe vboxdrv<br />
<br />
===Install VirtualBox PUEL (virtualbox_bin)===<br />
VirtualBox PUEL is available from the [http://aur.archlinux.org/packages.php?ID=9753 AUR: virtualbox_bin].<br />
<br />
Download the tarball from the above page. As a normal user, unpack, change directory, and {{Codeline|makepkg}}:<br />
# tar -xzf virtualbox_bin.tar.gz<br />
# cd virtualbox_bin<br />
# makepkg<br />
This will create a .pkg.tar.gz file in the virtualbox_bin directory.<br />
Then, as root:<br />
# pacman -U PACKAGE-NAME.pkg.tar.gz<br />
This will compile the vboxdrv kernel modules and install VirtualBox in {{Filename|/opt/VirtualBox}}, and add the vboxusers group.<br />
<br />
Now, add the desired username to the '''vboxusers''' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
{{Note | You must logout/login in order for this change to take effect.}}<br />
<br />
Lastly, edit {{Filename|/etc/rc.conf}} as root and add '''vboxdrv''' to the MODULES array in order to load the VirtualBox drivers at startup. For example:<br />
MODULES=(loop '''vboxdrv''' fuse ...)<br />
<br />
To load the module manually, run the following in a terminal as root: <br />
# modprobe vboxdrv<br />
<br />
====Install required QT libraries====<br />
Currently, VirtualBox relies on QT4 for its graphical interface. If you require a GUI, ensure you have QT4 installed:<br />
# pacman -S qt<br />
<br />
===Install VirtualBox 2.1 (another alternative)===<br />
VirtualBox.run install can be done using the All Distributions package from the [http://www.virtualbox.org/wiki/Linux_Downloads Linux section] of the VirtualBox Website.<br />
<br />
Make sure the Qt 4.3.0 and SDL 1.2.7 or higher packages are installed:<br />
# pacman -S qt sdl <br />
<br />
Download the appropriate architecture file i386/AMD64. In a terminal window, browse to the download folder and as root run:<br />
# sh VirtualBox-2.XXXX-Linux_ARCH.run<br />
<br />
This will install the package to the /opt/VirtualBox-2.XXX folder.<br />
<br />
After installation, a desktop entry can be located in ''Applications &rarr; System Tools &rarr; Sun xVM VirtualBox''<br />
<br />
Now, add the desired username to the '''vboxusers''' group:<br />
# gpasswd -a USERNAME vboxusers<br />
<br />
Lastly, edit {{Filename|/etc/rc.conf}} as root and add '''vboxdrv''' to the MODULES array in order to load the VirtualBox drivers at startup.<br />
<br />
Start the VirtualBox GUI either with the command:<br />
# VirtualBox <br />
<br />
or using the ''Applications'' desktop entry. In version 2.1.x, an installation wizard should start and take you through the process of setting up a virtual machine. Otherwise, use the help menu to get started. '''Continue reading to see the more advanced options and setups...'''<br />
<br />
==Configuration==<br />
After having installed VirtualBox on our system and added ourselves in the vboxusers group, you can start configuring our system in order to make all the features of VirtualBox available to us. Create a new virtual machine using the wizard provided by the GUI and then click settings in order to edit the virtual machine settings.<br />
<br />
===Keyboard and mouse between the host and the guest===<br />
*To capture the keyboard and mouse, click the mouse inside the Virtual Machine display.<br />
*To uncapture, press Ctrl-Alt-Delete.<br />
<br />
If [[Xorg]] freezes mouse and keyboard you will have to disable the [[Xorg#Input_hotplugging_with_xorg-server_1.5| new hot plugging feature of Xorg 1.5]] by adding in {{Filename|/etc/X11/xorg.conf}}:<br />
Section "ServerFlags"<br />
. . .<br />
Option "AutoAddDevices" "False"<br />
. . .<br />
EndSection<br />
<br />
This is needed for Linux guests in a Mac OS X or Windows host. Also needed for Linux hosts (tested with Arch64 host and Arch64 guest).<br />
<br />
Also, mouse pointer integration does not work out of the box. To fix it, make sure you have the following sections in your {{Filename|xorg.conf}}:<br />
Section "InputDevice"<br />
Identifier "Mouse0"<br />
Driver "vboxmouse"<br />
Option "Protocol" "auto"<br />
Option "Device" "/dev/input/mice"<br />
Option "ZAxisMapping" "4 5 6 7"<br />
EndSection<br />
<br />
Section "ServerLayout"<br />
Identifier "X.org Configured"<br />
Screen 0 "Screen0" 0 0<br />
InputDevice "Mouse0" "CorePointer"<br />
InputDevice "Keyboard0" "CoreKeyboard"<br />
EndSection<br />
<br />
When generating your {{Filename|xorg.conf}} with {{Codeline|"X -configure"}}, you will end up with an InputDevice section that uses the {{Codeline|mouse}} driver. After installing the Guest Additions, you should replace {{Codeline|mouse}} with {{Codeline|vboxmouse}} and then restart X or reboot your VM.<br />
<br />
===Getting network in the guest machine to work===<br />
First, get network working in the guest machine. Click the network tab. The not attached option means you will have "Network cable unplugged" or similar error in the guest computer.<br />
<br />
====Using NAT network====<br />
This is the simplest way to get network. Select NAT network and it should be ready to use. Then, the guest operating system can be automatically configured by using DHCP.<br />
<br />
The NAT IP address on the first card is 10.0.2.0, 10.0.3.0 on the second and so on.<br />
<br />
Also in VirtualBox 2.2.0+ NAT network DHCP clients will not configure your nameserver (DNS server for windows guests) you will have to manually configure the nameserver(DNS server)<br />
<br />
====Using host interface networking (the VirtualBox way)====<br />
Since VirtuaBox 2.1.0 it has a native support for host interface networking. Just add '''vboxnetflt''' to your MODULES section in {{Filename|[[rc.conf]]}} and choose ''Host Interface Networking'' (or ''Bridged adapter'' in [http://forums.virtualbox.org/viewtopic.php?f=1&t=16447 2.2]) in the virtual machine configuration.<br />
<br />
'''Note''': DHCP broadcasting does not seem to work properly under this way. Set up your guest networking with static IP assignment.<br />
<br />
====Using host interface networking (the Arch way)====<br />
You are going to just edit these files and reboot:<br />
<br />
* {{Filename|/etc/conf.d/bridges}}<br />
* {{Filename|/etc/rc.conf}}<br />
* {{Filename|/etc/vbox/interfaces}}<br />
<br />
Edit:<br />
'''{{Filename|/etc/conf.d/bridges}}'''<br />
bridge_br0="eth0 vbox0" # Put any interfaces you need.<br />
BRIDGE_INTERFACES=(br0)<br />
<br />
'''{{Filename|/etc/rc.conf}}'''<br />
<br />
First add the bridge module to your MODULES line<br />
MODULES=( <your other modules> '''bridge''')<br />
<br />
Then, in your NETWORKING section, make the following changes:<br />
eth0="eth0 up"<br />
br0="dhcp" # Maybe you have some static configuration; change to fit<br />
INTERFACES=(eth0 br0)<br />
<br />
'''Note''' by gpan:<br />
<br />
'''{{Filename|/etc/rc.conf}}'''<br />
<br />
First add the vboxdrv (and vboxnetflt in case of 2.1.0 version) module to your MODULES line:<br />
MODULES=( <your other modules> vboxdrv vboxnetflt )<br />
<br />
'''Note''' by vit:<br />
<br />
'''{{Filename|/etc/rc.conf}}'''<br />
<br />
In my case it did not work untill adding vboxnetadp to modules.<br />
<br />
Next, you should edit your {{Filename|/etc/udev/rules.d/60-vboxdrv.rules}} and type:<br />
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"<br />
<br />
Save it and exit.<br />
<br />
Then open terminal and type:<br />
# pacman -S bridge-utils uml_utilities<br />
<br />
Create a new bridge with this command:<br />
# brctl addbr br0<br />
<br />
'''{{Filename|/etc/vbox/interfaces}}'''<br />
<br />
(You can set up more interfaces if you want. Sky is the limit!):<br />
vbox0 your_user br0 # Be sure that your user is in the vboxusers group.<br />
<br />
Reboot.<br />
<br />
{{Note | Remember to set up your virtual machine with proper network configuration. (Attach a "Bridged Adapter" and choose "br0") }}<br />
{{Note | If you have any issue, make sure that you have the bridge-utils package installed and vboxnet daemon loaded.}}<br />
<br />
====Using host interface networking (generic)====<br />
This way is a bit harder, but it allows you to see the VirtualMachine as a "real" computer on your local network. You need to get bridge-utils <br />
<br />
# pacman -S bridge-utils uml_utilities<br />
<br />
'''Note''' by Sp1d3rmxn:<br />
:You also need to have the TUN module loaded... in {{Filename|[[rc.conf]]}} add {{Codeline|"tun"}} (without the quotes) to your MODULES section. For testing this out right now without rebooting you can load the module from the command line by {{Codeline|"modprobe tun"}}.<br />
:<br />
:Then you MUST set these permissions otherwise you will never get VBox to init the interface. The command is {{Codeline|"chmod 666 /dev/net/tun"}} (without the quotes).<br />
<br />
:Now proceed with the rest as it is written below.<br />
<br />
'''Note'''<br />
:As said by Sp1d3rmxn, set these permissions, but, instead of using the command, set them in {{Filename|/etc/udev/rules.d/60-vboxdrv.rules}}, which will apply them on boot:<br />
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"<br />
KERNEL=="tun", OWNER="root", GROUP="vboxusers", MODE="0660"<br />
<br />
<br />
'''1.''' Create a new bridge with this command:<br />
# brctl addbr br0<br />
<br />
'''2.''' If you are not using DHCP, run ifconfig and note down the network configuration of your existing network interface (e.g. eth0), which will need to be copied to the bridge.<br />
<br />
{{Note|You will need this settings so make sure you do not lose them.}}<br />
<br />
'''3.''' Switch your physical network adapter to "promiscuous" mode so that it will accept Ethernet frames for MAC addresses other than its own (replace {{Codeline|eth0}} with your network interface):<br />
# ifconfig eth0 0.0.0.0 promisc <br />
<br />
{{Note | You will lose network connectivity on eth0 at this point.}}<br />
<br />
'''4.''' Add your network adapter to the bridge:<br />
# brctl addif br0 eth0<br />
<br />
'''5.''' Transfer the network configuration previously used with your physical ethernet adapter to the new bridge. If you are using DHCP, this should work:<br />
# dhclient br0<br />
<br />
'''Note''' by Sp1d3rmxn:<br />
:Use {{Codeline|"dhcpcd -t 30 -h yourhostname br0 &"}} instead of the above<br />
<br />
Otherwise, run {{Codeline|"ifconfig br0 x.x.x.x netmask x.x.x.x"}} and use the values that you noted down previously.<br />
<br />
'''6.''' To create a permanent host interface called vbox0 (all host interfaces created in this way must be called vbox followed by a number) and add it to the network bridge created above, use the following command:<br />
VBoxAddIF vbox0 vboxuser br0<br />
<br />
Replace {{Codeline|vboxuser}} with the name of the user who is supposed to be able to use the new interface.<br />
<br />
{{Note | VboxAddIF is located in /opt/VirtualBox-VERSION OF VIRTUALBOX/VBoxAddIF}}<br />
<br />
Alternatively, you can [http://mychael.gotdns.com/blog/2007/05/31/virtualbox-bridging/ setup VirtualBox networking] through your {{Filename|/etc/rc.conf}} to enable a bridged connection.<br />
<br />
====Using host interface networking with a wireless device====<br />
Bridging as described above will not work with a wireless device. Using [http://aur.archlinux.org/packages.php?ID=16356 parprouted] however it can be accomplished.<br />
<br />
# Install parprouted and iproute<br />
# {{Codeline|# ln -s /usr/sbin/ip /sbin/ip}}<br />
# Make sure IP fowarding is enabled: {{Codeline|# sysctl net.ipv4.ip_forward&#61;1}}, and/or edit {{Filename|/etc/sysctl.conf}}.<br />
# {{Codeline|# VBoxTunctl -b -u <user>}}, to create the tap device<br />
# {{Codeline|# ip link set tap0 up; ip addr add 192.168.0.X/24 dev tap0}}, needs to be a manually set IP on the same network your wireless device is.<br />
# {{Codeline|# parprouted wlan0 tap0}}<br />
<br />
===Getting USB to work in the guest machine===<br />
(Only available in the PUEL edition)<br />
<br />
{{Note|As of VirtualBox>2.2.4 this is no longer necessary to mount a usb filesystem.}}<br />
<br />
First in order to make USB available for use to the virtual machine you must add this line to your {{Filename|/etc/fstab}}:<br />
none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0<br />
<br />
Then tell mount to reread {{Filename|/etc/fstab}}:<br />
# mount -a<br />
<br />
{{Codeline|108}} is is the id of the group which should be allowed to access USB-devices. Change it to the id of your vboxusers group. You can get the id by running:<br />
$ grep vboxusers /etc/group<br />
<br />
Restart Virtualbox and click the USB tab in the settings of the virtual machine and select which devices are available to your pc on boot. If you wish your virtual machine to use device that you have just plugged in (assuming the virtual machine has booted already), go to the VirtualMachine screen go to ''Devices &rarr; USB Devices'' and select the device you wish to plug in the virtual PC.<br />
<br />
'''Note''' by bjimba:<br />
<br />
Recent versions of VirtualBox, as noted above, do not require usbfs, however you will need the HAL daemon running if you do not use usbfs. See the [[HAL]] wiki page for details.<br />
<br />
===Installing Guest Additions===<br />
The Guest Additions make the shared folders feature available, as well as better video (3D available in version 2.1+) and mouse drivers. You will have mouse integration, thus no need to release the mouse after using it in the guest and one can also enable a bidirectional clipboard.<br />
<br />
{{Note | The instructions immediately below are for an Archlinux guest on an Archlinux host.}}<br />
<br />
After you booted the virtual machine, go to menu ''Devices &rarr; Install Guest Additions...'' Once you have clicked it, VirtualBox loads an ISO into the current CD-ROM, so you will not see anything happen yet ;).<br />
<br />
You will require gcc and make if you do not already have them so install them typing the following as root:<br />
# pacman -S gcc make <br />
<br />
If you are running arch in VirtualBox install the kernel headers<br />
# pacman -S kernel26-headers<br />
<br />
Then do the following as root:<br />
# mount /media/cdrom<br />
for i686 systems (32 bit):<br />
# sh /media/cdrom/VBoxLinuxAdditions-x86.run<br />
for x86-64 systems (64 bit):<br />
# sh /media/cdrom/VBoxLinuxAdditions-amd64.run<br />
<br />
It will build and install the kernel modules, install the Xorg drivers and create init scripts. It will most probably print out errors about init scripts and run levels and what not. Ignore them. You will find {{Filename|rc.vboxadd}} in /etc/rc.d which will load them on demand. To have the Guest Additions loaded at boot time, just add those to the DAEMONS array in {{Filename|/etc/rc.conf}} eg.:<br />
DAEMONS=(syslog-ng network netfs crond alsa '''rc.vboxadd''')<br />
<br />
Another option is to install one of these packages:<br />
# pacman -S virtualbox-additions<br />
or<br />
# pacman -S virtualbox-ose-additions<br />
<br />
You will then have an ISO to mount as a loop device. Remember to load the loop kernel module before:<br />
# modprobe loop<br />
# mount /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso /media/cdrom -o loop<br />
<br />
Then execute {{Filename|VBoxLinuxAdditions.run}} as before. Before adding {{Filename|rc.vboxadd}} to DAEMONS check {{Filename|/etc/rc.local}} for commands to load the vboxadd daemons put by the installation script.<br />
<br />
'''Windows Guests'''<br />
<br />
After installing Windows (XP etc.) on your virtual machine, simply select ''Devices &rarr; Install Guest Additions...''<br />
<br />
This will mount the iso image and windows should then automatically launch the guest additions installer. Follow the instructions to the end.<br />
<br />
===Sharing folders between the host and the guest===<br />
In the settings of the virtual machine go to shared folders tab and add the folders you want to share.<br />
<br />
*NOTE: You need to install Guest Additions in order to use this feature.<br />
In a Linux host, ''Devices &rarr; Install Guest Additions''<br />
Yes (when asked to download the CD image)<br />
Mount (when asked to register and mount)<br />
<br />
In a Linux host, create one folder for sharing files.<br />
<br />
In a Windows guest, starting with VirtualBox 1.5.0, shared folders are browseable and are therefore visible in Windows Explorer. Open Windows Explorer and look for it under ''My Networking Places &rarr; Entire Network &rarr; VirtualBox Shared Folders''.<br />
<br />
Alternatively, on the Windows command line, you can also use the following:<br />
net use x: \\VBOXSVR\sharename<br />
<br />
While {{Codeline|VBOXSVR}} is a fixed name, replace {{Codeline|x:}} with the drive letter that you want to use for the share, and sharename with the share name specified with VBoxManage.<br />
<br />
In a Windows guest, to improve loading and saving files (e.g. MS Office) by VirtualBox Shared Folders edit ''c:\windows\system32\drivers\etc\hosts'' as below:<br />
127.0.0.1 localhost vboxsvr<br />
<br />
In a Linux guest, use the following command:<br />
# mount -t vboxsf [-o OPTIONS] sharename mountpoint<br />
<br />
Replace {{Codeline|sharename}} with the share name specified with VBoxManage, and mountpoint with the path where you want the share to be mounted (e.g. /mnt/share). The usual mount rules apply, that is, create this directory first if it does not exist yet.<br />
<br />
Beyond the standard options supplied by the mount command, the following are available:<br />
iocharset=CHARSET<br />
to set the character set used for I/O operations (utf8 by default) and<br />
convertcp=CHARSET<br />
to specify the character set used for the shared folder name (utf8 by default).<br />
<br />
===Getting audio to work in the guest machine===<br />
<br />
In the machine settings, go to the audio tab and select the correct driver according to your sound system (ALSA, OSS or PulseAudio).<br />
<br />
===Setting up the RAM and Video Memory for the virtual PC===<br />
<br />
You can change the default values by going to ''Settings &rarr; General''.<br />
<br />
===Setting up CD-ROM for the Virtual PC===<br />
<br />
You can change the default values by going to ''Settings &rarr; CD/DVD-ROM''.<br />
<br />
Check mount CD/DVD drive and select one of the following options.<br />
<br />
'''Note:''' If no CD-ROM drive is detected, make sure the HAL daemon is running. To start it, run the following command as root:<br />
# /etc/rc.d/hal start<br />
<br />
===Enabling OpenGL acceleration in Arch Linux guests===<br />
Due to a bug in the VirtualBox guest addition setup scripts (as of VBox 3.1.2), simply ticking the "3D acceleration" checkbox in the virtual machine settings and installing the guest additions won't enable 3D acceleration for OpenGL applications under X for Arch Linux guests (and possibly others). In order to still get OpenGL acceleration, a bit of manual intervention is necessary after installing the guest additions. <br />
As root, run:<br />
ln -s /usr/lib/VBoxOGL.so /usr/lib/xorg/modules/dri/vboxvideo_dri.so<br />
ln -s /usr/lib/xorg/modules/dri /usr/lib/dri<br />
Also make sure the user starting X in the guest is in the '''video''' group.<br />
<br />
{{Note | Don't compare before-after performance using glxgears! You may get a lot less FPS due to now-working vsync support. Compare performance using a real, heavy 3D application (like a game).}}<br />
<br />
===Enabling D3D acceleration in Windows guests===<br />
Recent versions of Virtualbox have support for accelerating OpenGL inside guests. This can be enabled with a simple checkbox in the machine's settings, right below where video ram is set, and installing the Virtualbox guest additions. However, most Windows games use Direct3D (part of DirectX), not OpenGL, and are thus not helped by this method. However, it is possible to gain accelerated Direct3D in your Windows guests by borrowing the d3d libraries from Wine, which translate d3d calls into OpenGL, which is then accelerated. <br />
<br />
After enabling OpenGL acceleration as described above, go to http://www.nongnu.org/wined3d/ in your Windows guest and grab the "Latest version (Installer):". Reboot the guest into safe mode (press F8 before the Windows screen appears but after the Virtualbox screen disappears), and install wined3d, accepting the defaults during the install. (You may check the box for DirectX 10 support if you like, dont touch anything else.) Reboot back to normal mode and you should have accelerated Direct3D. <br />
<br />
{{Note | This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.}}<br />
{{Note | This has only been tried on Windows XP and Windows 7 RC guests AFAIK, and does not work on the Windows 7 guest. If you have experience with this on a different windows version, please add that data here.}}<br />
<br />
==Start VirtualBox==<br />
To start Virtualbox, run the following command in a terminal:<br />
$ VirtualBox<br />
<br />
Or in KDE menu, select: <System><Sun Virtualbox><br />
<br />
==Virtualized OS Setup==<br />
Virtualbox needs to be setup to virtualize another operating system.<br />
<br />
===Test a LiveCD/DVD===<br />
Click the 'New' button to create a new virtual environment. Name it appropriately and select Operating System type and version. Select base memory size (note: most operating systems will need at least 512MB to function properly). Create a new hard disk image (a hard disk image is a file that will contain the operating system's filesystem and files).<br />
<br />
When the new image has been created, click 'Settings', then CD/DVD-ROM, check 'Mount CD/DVD Drive' then select an ISO image.<br />
<br />
==Maintenance==<br />
<br />
===Rebuild the vboxdrv Module===<br />
Note that any time your kernel version changes (due to upgrade, recompile, etc.) you must also rebuild the VirtualBox kernel. <br />
'''Depending of your version :'''<br />
<br />
----<br />
<br />
On '''version 3.1.2''' and possibly later /etc/rc.d/rc.vboxdrv does not exist.<br />
<br />
Install ''kernel26-headers''. This is difference than the kernel-headers package<br />
<br />
As root, run:<br />
# KERN_DIR=/usr/src/<your kernel directory> KERN_INCL=/usr/include vbox_build_module<br />
<br />
----<br />
<br />
On '''virtualbox_bin from AUR''' ''or'' on '''versions 2.1 to 3.1.1''', run the following command:<br />
# vbox_build_module<br />
This binary will be located in one of the following locations: <tt>/sbin</tt>, <tt>/bin</tt>, or <tt>/usr/bin</tt>.<br />
{{Note|vbox_build_module binary is absent in the virtualbox-* packages from community repo. It gets installed only with the virtualbox_bin* packages from AUR.}}<br />
{{Note|If you are using one of the Virtualbox PKGBUILD's from the AUR, you will also need to update your modules via this method. In most cases, users of x86_64 will need to use one of the PKBUILDS of Virtualbox since the official repos only have support for the i686 architecture.}}<br />
<br />
----<br />
<br />
On '''versions before 2.1''', update the kernel module by running the following command:<br />
# /etc/rc.d/rc.vboxdrv setup<br />
<br />
After rebuilding the module, do not forget to load it with<br />
# modprobe vboxdrv<br />
<br />
''vboxdrv'' and ''vboxnetflt'' should be in the MODULES=() section of your /etc/rc.conf<br />
<br />
===Compact a Disk Image===<br />
See [http://my.opera.com/locksley90/blog/2008/06/01/how-to-compact-a-virtualbox-virtual-disk-image-vdi How to compact a VirtualBox virtual disk image (VDI)]<br />
<br />
===Windows Xp and Nokia phones===<br />
To get working Windows XP and Nokia phones with Pc Suite mode, Virtualbox needs two simple steps:<br />
<br />
'''1.''' Add a rule to udev with {{Filename|/etc/udev/rules.d/40-permissions.rules}}:<br />
LABEL="usb_serial_start"<br />
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \<br />
GROUP="usbfs", MODE="0660", GROUP="dialout"<br />
LABEL="usb_serial_end"<br />
<br />
'''2.''' Create the group usbfs and add its user to it<br />
$ sudo groupadd usbfs<br />
$ sudo usermod -a -G usbfs $USER<br />
<br />
After a logout, connect a Nokia phone with PC Suite mode and start Windows XP to test new rule.<br />
<br />
==Migrating From Another VM==<br />
The <code>qemu-img</code> program can be used to convert images from one format to another, or add compression or encryption to an image. <br />
# pacman -S qemu<br />
<br />
===Converting from QEMU images===<br />
To convert a QEMU image for use with VirtualBox, first convert it to ''raw'' format, then use VirtualBox's conversion utility to convert and compact it in its native format.<br />
$ qemu-img convert -O raw test.qcow2 test.raw<br />
$ VBoxManage modifyvdi /full/path/to/test.vdi compact<br />
<br />
===Converting from VMware images ===<br />
Do <br />
$ VBoxManage clonehd source.vmdk target.vdi --format VDI<br />
<br />
This may not be needed anymore with recent virtualbox versions (to be confirmed)<br />
<br />
==Tips and Tricks==<br />
<br />
===Sending a CTRL+ALT+F1 to the Guest===<br />
If your guest O/S is a Linux distro, and you want to open a new tty text shell or exit X via typing {{Keypress|Ctrl}}+{{Keypress|Alt}}+{{Keypress|F1}}, you can easily send this command to the guest O/S simply by hitting your 'Host Key' (usually the {{Keypress|Ctrl}} in the Right side of your keyboard) + {{Keypress|F1}} or {{Keypress|F2}}, etc.<br />
<br />
===Speeding up HDD Access for the Guest===<br />
Enabling the SATA(AHCI) controller within Virtualbox can speed up Host disk operations. This is available though Settings>Hard Disks in current versions of Virtual Box.<br />
<br />
===Starting VMs at System Boot on Headless Servers===<br />
exec /bin/su PREFERRED_USER -l -c "/bin/bash --login -c \"VBoxHeadless -startvm {UUID}\" >/dev/null 2>&1"<br />
Where PREFERRED_USER is the user profile that contains the VM definitions and .vdi files. This will start the VM with a RDP server running on port 3389.<br />
To determine the available VMs for a user:<br />
su PREFERRED_USER -c "VBoxManage list vms"<br />
To suspend the VM:<br />
su PREFERRED_USER -c "VBoxManage controlvm {UUID} savestate"<br />
<br />
===Accessing Server on VM from Host===<br />
To access apache on a VM from the Host machine ONLY, simply execute the following lines on the Host:<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/HostPort" 8888<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/GuestPort" 80<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/Protocol" TCP<br />
Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on. <br />
To use a port lower than 1024 on the host machine changes need to be made to the firewall on the host machine. This can also be set up to work with SSH, etc.. by changing "Apache" to whatever service and using different ports. <br />
<br />
Note: "pcnet" refers to the network card of the VM. If you use an Intel card in your VM settings change "pcnet" to "e1000"<br />
<br />
*from [http://mydebian.blogdns.org/?p=111 ]<br />
<br />
It might also be necessary to allow connections from the outside to the server in your VM. E.g. if the guest OS is Arch, you may want to add the line <br />
httpd: ALL<br />
to your /etc/hosts.allow file.<br />
<br />
==Running Arch Linux as a guest==<br />
To install guest additions with support for Xorg follow these steps:<br />
{{Note|Run these steps as root}}<br />
$ pacman -S xorg<br />
{{Note|install entire group (is everything actually required?)}}<br />
$ pacman -S kernel26-headers gcc make<br />
$ mount and install VirtualBox guest additions<br />
$ X -configure<br />
$ change the mouse driver from "mouse" to "vboxmouse" in /root/xorg.conf.new<br />
$ mv /root/xorg.conf.new /etc/X11/xorg.conf<br />
$ add hal to DAEMONS in rc.conf<br />
{{Note|It is not required to add rc.vboxadd to DAEMONS because it is added to /etc/rc.local automatically}}<br />
{{Note|Run these steps while logged into your user account}}<br />
$ add /usr/bin/VBoxClient-all to the top of ~/.xinitrc (even if ~/.xinitrc does not exist)<br />
<br />
==External Links==<br />
* [http://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=SLiM&diff=89557SLiM2009-12-31T13:56:39Z<p>Dante4d: Typo fix</p>
<hr />
<div>[[Category:Display managers (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|Provides an overview of the Simple Login Manager.}}<br />
{{Article summary heading|Available in languages}}<br />
{{i18n_entry|English|SLIM}}<br />
{{i18n_entry|简体中文|SLiM (简体中文)}}<br />
{{i18n_entry|Italiano|SLiM (Italiano)}}<br />
{{i18n_entry|Türkçe|SLIM(Türkçe)}}<br />
{{i18n_entry|Русский|SLIM(Русский)}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|Automatic login manager startup}}<br />
{{Article summary end}}<br />
[http://slim.berlios.de/ SLiM] is an acronym for Simple Login Manager. SLiM is simple, lightweight and easily configurable. SLiM is used by some because it does not require the dependencies of [[GNOME]] or [[KDE]] and can help make a lighter system for users that like to use lightweight desktops like [[Xfce]], [[Openbox]], and [[Fluxbox]].<br />
<br />
== Installation ==<br />
<br />
Install SLiM by:<br />
<br />
# pacman -Sy slim<br />
<br />
== Configuration ==<br />
<br />
How to load at startup, start your desktop environment, add themes...<br />
<br />
=== Enabling SLiM ===<br />
<br />
SLiM can be loaded on startup by entering it in your daemons array in {{Filename|rc.conf}}. There are also [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup|alternate ways]] of doing this too.<br />
<br />
=== Single environments ===<br />
<br />
To configure SLiM to load a particular environment, edit your {{Filename|~/.xinitrc}} to load your desktop environment:<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
<br />
exec [session-command]<br />
</pre><br />
<br />
SLiM reads the local {{Filename|~/.xinitrc}} configuration and then launches the desktop according to what is in that file. If you do not have have a {{Filename|~/.xinitrc}} file, you can use the skeleton file by:<br />
<br />
$ cp /etc/skel/.xinitrc $HOME<br />
<br />
Replace {{Codeline|[session-command]}} with the appropriate session command. Some examples of different desktop start commands:<br />
<br />
exec openbox-session<br />
exec fluxbox (or exec startfluxbox)<br />
exec startxfce4<br />
exec gnome-session<br />
exec startkde<br />
exec fvwm2<br />
exec awesome<br />
<br />
If your environment is not listed here, refer to the appropriate wiki page.<br />
<br />
=== PolicyKit ===<br />
<br />
If you have problems with the PolicyKit, use ConsoleKit's {{Codeline|ck-launch-session}}:<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
<br />
exec ck-launch-session [session-command]<br />
</pre><br />
<br />
=== Multiple environments ===<br />
<br />
To be able to choose from multiple desktop environments, SLiM can be setup to log you into whichever you choose.<br />
<br />
Put a case statement similar to this one in your {{Filename|~/.xinitrc}} file and edit the sessions variable in {{Filename|/etc/slim.conf}} to match the names that trigger the case statement. You can choose the session at login time by pressing F1. Note that this feature is experimental.<br />
<br />
<pre><br />
# The following variable defines the session which is started if the user doesn't explicitly select a session<br />
# Source: http://svn.berlios.de/svnroot/repos/slim/trunk/xinitrc.sample<br />
<br />
DEFAULT_SESSION=twm<br />
<br />
case $1 in<br />
kde)<br />
exec startkde<br />
;;<br />
xfce4)<br />
exec startxfce4<br />
;;<br />
icewm)<br />
icewmbg &<br />
icewmtray &<br />
exec icewm<br />
;;<br />
wmaker)<br />
exec wmaker<br />
;;<br />
blackbox)<br />
exec blackbox<br />
;;<br />
*)<br />
exec $DEFAULT_SESSION<br />
;;<br />
esac<br />
</pre><br />
<br />
=== Themes ===<br />
<br />
Install the {{Package Official|slim-themes}} package:<br />
<br />
# pacman -Sy slim-themes archlinux-themes-slim<br />
<br />
The {{Package Official|archlinux-themes-slim}} packages contains several different themes. Look in the directory of {{Filename|/usr/share/slim/themes}} to see the themes available. Enter the theme name on the 'current_theme' line in {{Filename|/etc/slim.conf}}:<br />
<br />
#current_theme default<br />
current_theme archlinux-simplyblack<br />
<br />
To preview a theme run if no instance of the Xorg server is running by:<br />
<br />
$ slim -p /usr/share/slim/themes/<theme name><br />
<br />
To close, type "exit" in the Login line and press Enter.<br />
<br />
==== Dual screen setup ====<br />
<br />
You can customize the slim theme in /usr/share/slim/themes/<your-theme>/slim.theme to turn these percents values:<br />
<br />
input_panel_x 50%<br />
input_panel_y 50%<br />
<br />
into pixels values:<br />
<br />
# These settings set the "archlinux-simplyblack" panel in the center of my 1440x900 left screen<br />
input_panel_x 495<br />
input_panel_y 325<br />
<br />
If your theme has a background picture you should use the background_style setting ('stretch', 'tile', 'center' or 'color') to get it correctly displayed. Have a look at the [http://slim.berlios.de/themes_howto.php very simple and clear official documentation about slim themes] for further details.<br />
<br />
== Other options ==<br />
<br />
A few things you might like to try.<br />
<br />
=== Changing the cursor ===<br />
<br />
If you want to change the default X cursor to a newer design, the {{Package AUR|slim-cursor}} package is available.<br />
<br />
After installing, edit {{Filename|/etc/slim.conf}} and uncomment the line:<br />
<br />
cursor left_ptr<br />
<br />
This will give you a normal arrow instead. This setting is forwarded to {{Codeline|xsetroot -cursor_name}}. You can look up the possible cursor names [http://cvsweb.xfree86.org/cvsweb/*checkout*/xc/lib/X11/cursorfont.h?rev=HEAD&content-type=text/plain here] or in {{Filename|/usr/share/icons/<your-cursor-theme>/cursors/}}.<br />
<br />
To change the cursor theme being used at the login screen, make a file named {{Filename|/usr/share/icons/default/index.theme}} with this content:<br />
<br />
[Icon Theme]<br />
Inherits=<your-cursor-theme><br />
<br />
Replace <your-cursor-theme> with the name of the cursor theme you want to use (e.g. whiteglass).<br />
<br />
=== Match SLiM and Desktop Wallpaper ===<br />
<br />
To share a wallpaper between SLiM and your desktop, rename the used theme background, then create a link from your desktop wallpaper file to the default SLiM theme:<br />
<br />
# mv /usr/share/slim/themes/default/background.jpg{,.bck}<br />
# ln -s /path/to/mywallpaper.jpg /usr/share/slim/themes/default/background.jpg<br />
<br />
=== Shutdown, reboot, suspend, exit, launch terminal from SLiM ===<br />
<br />
You may shutdown, reboot, suspend, exit or even launch a terminal from the SLiM login screen. To do so, use the values in the username field, and the root password in the password field:<br />
<br />
* To launch a terminal, enter '''console''' as the username (defaults to xterm which must be installed separately... edit {{Filename|/etc/slim.conf}} to change terminal preference)<br />
* For shutdown, enter '''halt''' as the username<br />
* For reboot, enter '''reboot''' as the username<br />
* To exit to bash, enter '''exit''' as the username<br />
* For suspend, enter '''suspend''' as the username (suspend is disabled by default, edit {{Filename|/etc/slim.conf}} as root to uncomment the {{Filename|suspend_cmd}} line and, if necessary modify the suspend command itself (e.g. change {{Codeline|/usr/sbin/suspend}} to {{Codeline|sudo /usr/sbin/pm-suspend}}))<br />
<br />
=== Power-off error with Splashy ===<br />
<br />
If you use Splashy and SLiM, sometimes you can't power-off or reboot from menu in GNOME, Xfce, LXDE or others. Check your {{Filename|/etc/slim.conf}} and {{Filename|/etc/splash.conf}}; set the DEFAULT_TTY=7 same as xserver_arguments vt07.<br />
<br />
=== Login information with SLiM ===<br />
<br />
By default, SLiM fails to log logins to utmp and wtmp which causes who, last, etc. to misreport login information. To fix this edit your {{Filename|slim.conf}} as follows:<br />
<br />
sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user<br />
sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user<br />
<br />
=== Setting DPI with SLiM ===<br />
<br />
The Xorg server generally picks up the DPI but if it doesn't you can specify it to SLiM. If you set the DPI with the argument -dpi 96 in {{Filename|/etc/X11/xinit/xserverrc}} it will not work with SLiM. To fix this change your {{Filename|slim.conf}} from:<br />
<br />
xserver_arguments -nolisten tcp vt07 <br />
<br />
to<br />
<br />
xserver_arguments -nolisten tcp vt07 -dpi 96<br />
<br />
=== Use a random theme ===<br />
<br />
Use the current_theme variable as a comma separated list to specify a set to randomly choose from.<br />
<br />
== Resources ==<br />
<br />
* [http://slim.berlios.de/ SLiM homepage]<br />
* [http://slim.berlios.de/manual.php SLiM documentation]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Floppy_disks&diff=73538Floppy disks2009-08-08T20:18:41Z<p>Dante4d: Added Todo section, fixed categories</p>
<hr />
<div>{{Expansion}}<br />
<br />
== Introduction ==<br />
<br />
Altough rarely used nowdays, one still might need/want to use a floppy disk (for example, I practice guitar to backing tracks played from my Yamaha keybord, which has only a flopp disk drive interface). Common tasks with floppies are described bellow, with available tools to acomplish them.<br />
<br />
== Installation ==<br />
<br />
=== Kernel module ===<br />
<br />
Most of the floppy drives should be supported by stock kernel (mine always were). External USB drives might be an exception - I haven't tested that yet. Module ''floppy'' is used as a drifer for floppy drives.<br />
<br />
$ locate floppy.ko<br />
/lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko<br />
$ pacman -Qo /lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko<br />
/lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko is owned by kernel26 2.6.30.4-1<br />
<br />
As you can see, it comes with the stock Arch kernel.<br />
<br />
Module ''floppy'' is not loaded automatically by default for me. I load it manually each time I use floppy disk"<br />
<br />
$ modprobe floppy<br />
<br />
=== Packages ===<br />
<br />
There are two packages in the Arch package repository I know of - [http://www.archlinux.org/packages/extra/i686/dosfstools/ dosfstools] and [http://www.archlinux.org/packages/extra/i686/mtools/ mtools]. Respective commands belong to these packages (grepped output of ''pacman -Ql dosfstools mtools''):<br />
dosfstools /sbin/dosfsck<br />
dosfstools /sbin/dosfslabel<br />
dosfstools /sbin/fsck.msdos<br />
dosfstools /sbin/fsck.vfat<br />
dosfstools /sbin/mkdosfs<br />
dosfstools /sbin/mkfs.msdos<br />
dosfstools /sbin/mkfs.vfat<br />
mtools /usr/bin/amuFormat.sh<br />
mtools /usr/bin/floppyd<br />
mtools /usr/bin/floppyd_installtest<br />
mtools /usr/bin/lz<br />
mtools /usr/bin/mattrib<br />
mtools /usr/bin/mbadblocks<br />
mtools /usr/bin/mcat<br />
mtools /usr/bin/mcd<br />
mtools /usr/bin/mcheck<br />
mtools /usr/bin/mclasserase<br />
mtools /usr/bin/mcomp<br />
mtools /usr/bin/mcopy<br />
mtools /usr/bin/mdel<br />
mtools /usr/bin/mdeltree<br />
mtools /usr/bin/mdir<br />
mtools /usr/bin/mdu<br />
mtools /usr/bin/mformat<br />
mtools /usr/bin/minfo<br />
mtools /usr/bin/mkmanifest<br />
mtools /usr/bin/mlabel<br />
mtools /usr/bin/mmd<br />
mtools /usr/bin/mmount<br />
mtools /usr/bin/mmove<br />
mtools /usr/bin/mpartition<br />
mtools /usr/bin/mrd<br />
mtools /usr/bin/mren<br />
mtools /usr/bin/mshowfat<br />
mtools /usr/bin/mtools<br />
mtools /usr/bin/mtoolstest<br />
mtools /usr/bin/mtype<br />
mtools /usr/bin/mxtar<br />
mtools /usr/bin/mzip<br />
mtools /usr/bin/tgz<br />
mtools /usr/bin/uz<br />
<br />
== Common tasks ==<br />
<br />
Here are the commands needed to perform the most common tasks. In all examples, I suppose /dev/fd0 to be the linux device for the floppy drive. By default, all these tasks need to be performed as ''root'' (unless you use [[Sudo]] or something similar).<br />
<br />
=== Format ===<br />
<br />
$ mkfs.msdos /dev/fd0<br />
<br />
=== Mount ===<br />
<br />
$ mount -t vfat /dev/fd0 /media/floppy<br />
<br />
== Troubleshooting ==<br />
<br />
Things like this can happen:<br />
<br />
$ mkfs.msdos /dev/fd0 <br />
mkfs.msdos 3.0.5 (27 Jul 2009)<br />
mkfs.msdos: unable to get diskette geometry for '/dev/fd0'<br />
<br />
Which means: "Get a new floppy." Sorry (happened to my only disk available when writing this..).<br />
<br />
== More Resources ==<br />
<br />
* http://www.daniel-baumann.ch/software/dosfstools/ - DOS filesystem utilities (not so verbosely documented IMHO)<br />
* http://www.gnu.org/software/mtools/ - a collection of utilities to access MS-DOS disks from Unix without mounting them<br />
<br />
== Todo ==<br />
<br />
* [http://linux.die.net/man/8/floppy floppy(8)]<br />
* [http://linux.die.net/man/8/fdformat fdformat(8)]<br />
* recovering a "dead" floppy<br />
<br />
[[Category:Storage_(English)]]<br />
[[Category:File_systems_(English)]]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Floppy_disks&diff=73535Floppy disks2009-08-08T20:10:58Z<p>Dante4d: Created page</p>
<hr />
<div>{{Expansion}}<br />
<br />
== Introduction ==<br />
<br />
Altough rarely used nowdays, one still might need/want to use a floppy disk (for example, I practice guitar to backing tracks played from my Yamaha keybord, which has only a flopp disk drive interface). Common tasks with floppies are described bellow, with available tools to acomplish them.<br />
<br />
== Installation ==<br />
<br />
=== Kernel module ===<br />
<br />
Most of the floppy drives should be supported by stock kernel (mine always were). External USB drives might be an exception - I haven't tested that yet. Module ''floppy'' is used as a drifer for floppy drives.<br />
<br />
$ locate floppy.ko<br />
/lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko<br />
$ pacman -Qo /lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko<br />
/lib/modules/2.6.30-ARCH/kernel/drivers/block/floppy.ko is owned by kernel26 2.6.30.4-1<br />
<br />
As you can see, it comes with the stock Arch kernel.<br />
<br />
Module ''floppy'' is not loaded automatically by default for me. I load it manually each time I use floppy disk"<br />
<br />
$ modprobe floppy<br />
<br />
=== Packages ===<br />
<br />
There are two packages in the Arch package repository I know of - [http://www.archlinux.org/packages/extra/i686/dosfstools/ dosfstools] and [http://www.archlinux.org/packages/extra/i686/mtools/ mtools]. Respective commands belong to these packages (grepped output of ''pacman -Ql dosfstools mtools''):<br />
dosfstools /sbin/dosfsck<br />
dosfstools /sbin/dosfslabel<br />
dosfstools /sbin/fsck.msdos<br />
dosfstools /sbin/fsck.vfat<br />
dosfstools /sbin/mkdosfs<br />
dosfstools /sbin/mkfs.msdos<br />
dosfstools /sbin/mkfs.vfat<br />
mtools /usr/bin/amuFormat.sh<br />
mtools /usr/bin/floppyd<br />
mtools /usr/bin/floppyd_installtest<br />
mtools /usr/bin/lz<br />
mtools /usr/bin/mattrib<br />
mtools /usr/bin/mbadblocks<br />
mtools /usr/bin/mcat<br />
mtools /usr/bin/mcd<br />
mtools /usr/bin/mcheck<br />
mtools /usr/bin/mclasserase<br />
mtools /usr/bin/mcomp<br />
mtools /usr/bin/mcopy<br />
mtools /usr/bin/mdel<br />
mtools /usr/bin/mdeltree<br />
mtools /usr/bin/mdir<br />
mtools /usr/bin/mdu<br />
mtools /usr/bin/mformat<br />
mtools /usr/bin/minfo<br />
mtools /usr/bin/mkmanifest<br />
mtools /usr/bin/mlabel<br />
mtools /usr/bin/mmd<br />
mtools /usr/bin/mmount<br />
mtools /usr/bin/mmove<br />
mtools /usr/bin/mpartition<br />
mtools /usr/bin/mrd<br />
mtools /usr/bin/mren<br />
mtools /usr/bin/mshowfat<br />
mtools /usr/bin/mtools<br />
mtools /usr/bin/mtoolstest<br />
mtools /usr/bin/mtype<br />
mtools /usr/bin/mxtar<br />
mtools /usr/bin/mzip<br />
mtools /usr/bin/tgz<br />
mtools /usr/bin/uz<br />
<br />
== Common tasks ==<br />
<br />
Here are the commands needed to perform the most common tasks. In all examples, I suppose /dev/fd0 to be the linux device for the floppy drive. By default, all these tasks need to be performed as ''root'' (unless you use [[Sudo]] or something similar).<br />
<br />
=== Format ===<br />
<br />
$ mkfs.msdos /dev/fd0<br />
<br />
=== Mount ===<br />
<br />
$ mount -t vfat /dev/fd0 /media/floppy<br />
<br />
== Troubleshooting ==<br />
<br />
Things like this can happen:<br />
<br />
$ mkfs.msdos /dev/fd0 <br />
mkfs.msdos 3.0.5 (27 Jul 2009)<br />
mkfs.msdos: unable to get diskette geometry for '/dev/fd0'<br />
<br />
Which means: "Get a new floppy." Sorry (happened to my only disk available when writing this..).<br />
<br />
== More Resources ==<br />
<br />
* http://www.daniel-baumann.ch/software/dosfstools/ - DOS filesystem utilities (not so verbosely documented IMHO)<br />
* http://www.gnu.org/software/mtools/ - a collection of utilities to access MS-DOS disks from Unix without mounting them<br />
<br />
[[Category:Category:Storage_(English)]]<br />
[[Category:Category:File_systems_(English)]]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Guitar_Pro&diff=73165Guitar Pro2009-08-02T15:53:40Z<p>Dante4d: Typo fix</p>
<hr />
<div>== Introduction ==<br />
<br />
This article covers how to start using Guitar Pro (wrote with current version 5.2 in mind) with Linux. Native binaries do not exist for Linux yet, so Windows/MacOS emulator is the only possibility now. I'm going to show how to use Guitar Pro with [[Wine]] as an emulator and [[Timidity]] as a MIDI backend.<br />
<br />
I think Guitar Pro is the best possibility today, if one wants to transcribe and compose for stringed instruments. Speaking in terms of tabulature notation correctness and ease of use. My main point of using Guitar Pro is to create backing tracks and export them to MIDI, then use those as a backing tracks to practice with (I play guitar).<br />
<br />
== Installation ==<br />
<br />
As a prerequisite, you need [[Wine]] and [[Timidity]] installed. Consult respective wikis on how to install them.<br />
<br />
I opt to use the directory ''~/wine'' for Wine installations. After downloading Guitar Pro installer (either [http://www.guitar-pro.com/en/index.php?pg=download demo versions] or [http://www.guitar-pro.com/en/index.php?pg=support-customers-area full versions]), I do (assuming I'm in my download direcotry where the just downloaded installer sits):<br />
<br />
$ WINEPREFIX="$HOME/wine/guitar_pro_5"<br />
$ mkdir $WINEPREFIX<br />
$ wine GP5FULL.exe<br />
<br />
What happens is a pretty much standard Windows install procedure that leaves me with $WINEPREFIX dirctory occupied with installed Guitar Pro ready to be configured/used.<br />
<br />
== Configuration ==<br />
<br />
Configuration of Timidity is covered in it's wiki. Once it's running, run Guitar Pro. I use a little convenience script to launch Guitar Pro from command line/prompt box (note I currently don't use Timidity as a daemon):<br />
<br />
{{File|name=~/bin/GP5.EXE|content=<nowiki>#!/bin/bash<br />
# script GP5.EXE<br />
# author: dante4d <dante4d@gmail.com><br />
<br />
timidity -iA &<br />
PID=$!<br />
sleep 1<br />
WINEPREFIX="$HOME/wine/guitar_pro_5" wine "C:\\Program Files\\Guitar Pro 5\\GP5.EXE"<br />
sleep 1<br />
kill $PID<br />
<br />
</nowiki>}}<br />
<br />
First, you need to setup Guitar Pro to use right MIDI output device. In menu, go to '''Options->Audio Settings (MIDI/RSE)...''' . On top of the dialog, select Timidity as an output device for port 1 (that's what I do, I'm not exatly sure what all the options there mean). This should suffice.<br />
<br />
You might also want to turn off the splash screen and the intro jingle under menu '''Options->Preferences''' (F12).<br />
<br />
== Troubleshooting ==<br />
<br />
=== MIDI doesn't play ===<br />
<br />
Check Timidity settings in ''/etc/timidity++/timidity.cfg''. I had the samme 'issue' when I forgot to include soundpatches there :).<br />
<br />
=== Missing note heads and other symbols ===<br />
<br />
Sometimes (I'm unaware of how it happens) you will see just whitespaces instead of note heads and some other symbols. One of the soulutions is to link font files from Guitar Pro directory in Wine folders to ''/usr/shared/fonts/TTF'' or ''~/.fonts''. For more info, check [http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782 Guitar Pro 5.x at WineHQ] or use [http://www.google.com/ Google].<br />
<br />
== Tips & Tricks ==<br />
<br />
Yet to come...<br />
<br />
== More Resources ==<br />
<br />
* Guitar Pro Home - http://www.guitar-pro.com/<br />
* Guitar Pro 5.x at WineHQ - http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782<br />
<br />
[[Category:Audio/Video_(English)]]<br />
[[Category:Wine_(English)]]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Guitar_Pro&diff=73164Guitar Pro2009-08-02T15:44:48Z<p>Dante4d: Fixed categories</p>
<hr />
<div>== Introduction ==<br />
<br />
This article covers how to start using Guitar Pro (wrote with current version 5.2 in mind) with Linux. Native binaries do not exist for Linux yet, so Windows/MacOS emulator is the only possibility now. I'm going to show how to use Guitar Pro with [[Wine]] as an emulator and [[Timidity]] as a MIDI backend.<br />
<br />
I think Guitar Pro is the best possibility today, if one wants to transcribe and compose for stringed instruments. Speaking in terms of tabulature notation correctness and ease of use. My main point of using Guitar Pro is to create backing tracks and export them to MIDI, then use those as a backing tracks to practice with (I play guitar).<br />
<br />
== Installation ==<br />
<br />
As a prerequisite, you need [[Wine]] and [[Timidity]] installed. Consult respective wikis on how to install them.<br />
<br />
I opt to use the directory ''~/wine'' for Wine installations. After downloading Guitar Pro installer (either [http://www.guitar-pro.com/en/index.php?pg=download demo versions] or [http://www.guitar-pro.com/en/index.php?pg=support-customers-area full versions]), I do (assuming I'm in my download direcotry where the just downloaded installer sits):<br />
<br />
$ WINEPREFIX="$HOME/wine/guitar_pro_5"<br />
$ mkdir $WINEPREFIX<br />
$ wine GP5FULL.exe<br />
<br />
What happens is a pretty much standard Windows install procedure that leaves me with $WINEPREFIX dirctory occupied with installed Guitar Pro ready to be configured/used.<br />
<br />
== Configuration ==<br />
<br />
Configuration of Timidity is covered in it's wiki. Once it's running, run Guitar Pro. I use a little convenience script to launch Guitar Pro from command line/prompt box (note I currently don't use Timidity as a daemon):<br />
<br />
{{File|name=~/bin/GP5.EXE|content=<nowiki>#!/bin/bash<br />
# script GP5.EXE<br />
# author: dante4d <dante4d@gmail.com><br />
<br />
timidity -iA &<br />
PID=$!<br />
echo $PID<br />
sleep 1<br />
WINEPREFIX="$HOME/wine/guitar_pro_5" wine "C:\\Program Files\\Guitar Pro 5\\GP5.EXE"<br />
sleep 1<br />
kill $PID<br />
<br />
</nowiki>}}<br />
<br />
First, you need to setup Guitar Pro to use right MIDI output device. In menu, go to '''Options->Audio Settings (MIDI/RSE)...''' . On top of the dialog, select Timidity as an output device for port 1 (that's what I do, I'm not exatly sure what all the options there mean). This should suffice.<br />
<br />
You might also want to turn off the splash screen and the intro jingle under menu '''Options->Preferences''' (F12).<br />
<br />
== Troubleshooting ==<br />
<br />
=== MIDI doesn't play ===<br />
<br />
Check Timidity settings in ''/etc/timidity++/timidity.cfg''. I had the samme 'issue' when I forgot to include soundpatches there :).<br />
<br />
=== Missing note heads and other symbols ===<br />
<br />
Sometimes (I'm unaware of how it happens) you will see just whitespaces instead of note heads and some other symbols. One of the soulutions is to link font files from Guitar Pro directory in Wine folders to ''/usr/shared/fonts/TTF'' or ''~/.fonts''. For more info, check [http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782 Guitar Pro 5.x at WineHQ] or use [http://www.google.com/ Google].<br />
<br />
== Tips & Tricks ==<br />
<br />
Yet to come...<br />
<br />
== More Resources ==<br />
<br />
* Guitar Pro Home - http://www.guitar-pro.com/<br />
* Guitar Pro 5.x at WineHQ - http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782<br />
<br />
[[Category:Audio/Video_(English)]]<br />
[[Category:Wine_(English)]]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Guitar_Pro&diff=73163Guitar Pro2009-08-02T15:41:51Z<p>Dante4d: Added categories Audio/Video, Wine</p>
<hr />
<div>== Introduction ==<br />
<br />
This article covers how to start using Guitar Pro (wrote with current version 5.2 in mind) with Linux. Native binaries do not exist for Linux yet, so Windows/MacOS emulator is the only possibility now. I'm going to show how to use Guitar Pro with [[Wine]] as an emulator and [[Timidity]] as a MIDI backend.<br />
<br />
I think Guitar Pro is the best possibility today, if one wants to transcribe and compose for stringed instruments. Speaking in terms of tabulature notation correctness and ease of use. My main point of using Guitar Pro is to create backing tracks and export them to MIDI, then use those as a backing tracks to practice with (I play guitar).<br />
<br />
== Installation ==<br />
<br />
As a prerequisite, you need [[Wine]] and [[Timidity]] installed. Consult respective wikis on how to install them.<br />
<br />
I opt to use the directory ''~/wine'' for Wine installations. After downloading Guitar Pro installer (either [http://www.guitar-pro.com/en/index.php?pg=download demo versions] or [http://www.guitar-pro.com/en/index.php?pg=support-customers-area full versions]), I do (assuming I'm in my download direcotry where the just downloaded installer sits):<br />
<br />
$ WINEPREFIX="$HOME/wine/guitar_pro_5"<br />
$ mkdir $WINEPREFIX<br />
$ wine GP5FULL.exe<br />
<br />
What happens is a pretty much standard Windows install procedure that leaves me with $WINEPREFIX dirctory occupied with installed Guitar Pro ready to be configured/used.<br />
<br />
== Configuration ==<br />
<br />
Configuration of Timidity is covered in it's wiki. Once it's running, run Guitar Pro. I use a little convenience script to launch Guitar Pro from command line/prompt box (note I currently don't use Timidity as a daemon):<br />
<br />
{{File|name=~/bin/GP5.EXE|content=<nowiki>#!/bin/bash<br />
# script GP5.EXE<br />
# author: dante4d <dante4d@gmail.com><br />
<br />
timidity -iA &<br />
PID=$!<br />
echo $PID<br />
sleep 1<br />
WINEPREFIX="$HOME/wine/guitar_pro_5" wine "C:\\Program Files\\Guitar Pro 5\\GP5.EXE"<br />
sleep 1<br />
kill $PID<br />
<br />
</nowiki>}}<br />
<br />
First, you need to setup Guitar Pro to use right MIDI output device. In menu, go to '''Options->Audio Settings (MIDI/RSE)...''' . On top of the dialog, select Timidity as an output device for port 1 (that's what I do, I'm not exatly sure what all the options there mean). This should suffice.<br />
<br />
You might also want to turn off the splash screen and the intro jingle under menu '''Options->Preferences''' (F12).<br />
<br />
== Troubleshooting ==<br />
<br />
=== MIDI doesn't play ===<br />
<br />
Check Timidity settings in ''/etc/timidity++/timidity.cfg''. I had the samme 'issue' when I forgot to include soundpatches there :).<br />
<br />
=== Missing note heads and other symbols ===<br />
<br />
Sometimes (I'm unaware of how it happens) you will see just whitespaces instead of note heads and some other symbols. One of the soulutions is to link font files from Guitar Pro directory in Wine folders to ''/usr/shared/fonts/TTF'' or ''~/.fonts''. For more info, check [http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782 Guitar Pro 5.x at WineHQ] or use [http://www.google.com/ Google].<br />
<br />
== Tips & Tricks ==<br />
<br />
Yet to come...<br />
<br />
== More Resources ==<br />
<br />
* Guitar Pro Home - http://www.guitar-pro.com/<br />
* Guitar Pro 5.x at WineHQ - http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782<br />
<br />
[[Category:Audio/Video]]<br />
[[Category:Wine]]</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Guitar_Pro&diff=73162Guitar Pro2009-08-02T15:36:15Z<p>Dante4d: Created page</p>
<hr />
<div>== Introduction ==<br />
<br />
This article covers how to start using Guitar Pro (wrote with current version 5.2 in mind) with Linux. Native binaries do not exist for Linux yet, so Windows/MacOS emulator is the only possibility now. I'm going to show how to use Guitar Pro with [[Wine]] as an emulator and [[Timidity]] as a MIDI backend.<br />
<br />
I think Guitar Pro is the best possibility today, if one wants to transcribe and compose for stringed instruments. Speaking in terms of tabulature notation correctness and ease of use. My main point of using Guitar Pro is to create backing tracks and export them to MIDI, then use those as a backing tracks to practice with (I play guitar).<br />
<br />
== Installation ==<br />
<br />
As a prerequisite, you need [[Wine]] and [[Timidity]] installed. Consult respective wikis on how to install them.<br />
<br />
I opt to use the directory ''~/wine'' for Wine installations. After downloading Guitar Pro installer (either [http://www.guitar-pro.com/en/index.php?pg=download demo versions] or [http://www.guitar-pro.com/en/index.php?pg=support-customers-area full versions]), I do (assuming I'm in my download direcotry where the just downloaded installer sits):<br />
<br />
$ WINEPREFIX="$HOME/wine/guitar_pro_5"<br />
$ mkdir $WINEPREFIX<br />
$ wine GP5FULL.exe<br />
<br />
What happens is a pretty much standard Windows install procedure that leaves me with $WINEPREFIX dirctory occupied with installed Guitar Pro ready to be configured/used.<br />
<br />
== Configuration ==<br />
<br />
Configuration of Timidity is covered in it's wiki. Once it's running, run Guitar Pro. I use a little convenience script to launch Guitar Pro from command line/prompt box (note I currently don't use Timidity as a daemon):<br />
<br />
{{File|name=~/bin/GP5.EXE|content=<nowiki>#!/bin/bash<br />
# script GP5.EXE<br />
# author: dante4d <dante4d@gmail.com><br />
<br />
timidity -iA &<br />
PID=$!<br />
echo $PID<br />
sleep 1<br />
WINEPREFIX="$HOME/wine/guitar_pro_5" wine "C:\\Program Files\\Guitar Pro 5\\GP5.EXE"<br />
sleep 1<br />
kill $PID<br />
<br />
</nowiki>}}<br />
<br />
First, you need to setup Guitar Pro to use right MIDI output device. In menu, go to '''Options->Audio Settings (MIDI/RSE)...''' . On top of the dialog, select Timidity as an output device for port 1 (that's what I do, I'm not exatly sure what all the options there mean). This should suffice.<br />
<br />
You might also want to turn off the splash screen and the intro jingle under menu '''Options->Preferences''' (F12).<br />
<br />
== Troubleshooting ==<br />
<br />
=== MIDI doesn't play ===<br />
<br />
Check Timidity settings in ''/etc/timidity++/timidity.cfg''. I had the samme 'issue' when I forgot to include soundpatches there :).<br />
<br />
=== Missing note heads and other symbols ===<br />
<br />
Sometimes (I'm unaware of how it happens) you will see just whitespaces instead of note heads and some other symbols. One of the soulutions is to link font files from Guitar Pro directory in Wine folders to ''/usr/shared/fonts/TTF'' or ''~/.fonts''. For more info, check [http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782 Guitar Pro 5.x at WineHQ] or use [http://www.google.com/ Google].<br />
<br />
== Tips & Tricks ==<br />
<br />
Yet to come...<br />
<br />
== More Resources ==<br />
<br />
* Guitar Pro Home - http://www.guitar-pro.com/<br />
* Guitar Pro 5.x at WineHQ - http://appdb.winehq.org/objectManager.php?sClass=version&iId=3782</div>Dante4dhttps://wiki.archlinux.org/index.php?title=Awesome_(window_manager)&diff=73102Awesome (window manager)2009-08-01T00:55:11Z<p>Dante4d: Added section "Debug rc.lua using Xephyr"</p>
<hr />
<div>[[Category:Desktop environments (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
{{i18n_links_start}}<br />
{{i18n_entry|Česky|Awesome (Česky)}}<br />
{{i18n_entry|English|Awesome3}}<br />
{{i18n_entry|简体中文|Awesome_(简体中文)}}<br />
{{i18n_links_end}}<br />
<br />
= Introduction =<br />
From the awesome website:<br />
<br />
''[http://awesome.naquadah.org/ awesome] is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license.<br />
<br />
It is primarly targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on its graphical environment.''<br />
<br />
= Installation =<br />
<br />
Awesome 3.x is available in the community repositories, just:<br />
# pacman -S awesome<br />
<br />
Wicked is a lua library for awesome3 to provide more widgets, like MPD Widgets, CPU usage, memory usage, etc. You can require() it from within rc.lua, and set up all your widgets from inside the same config file, without having to run a separate program with separate config files. Wicked has not appeared in the standard repositories at present, but in the AUR. If you really want it, just:<br />
# yaourt -S wicked-git<br />
<br />
== Awesome-git and wicked-git ==<br />
Git-based development versions are available from AUR, see [http://aur.archlinux.org/packages.php?ID=13916 awesome-git], [http://aur.archlinux.org/packages.php?ID=17232 wicked-git].<br />
<br />
There are several ways to install them.<br />
The easiest is to use "yaourt" (also available in the AUR). If you have yaourt installed, simply:<br />
# yaourt -S awesome-git wicked-git<br />
<br />
= Getting Started =<br />
<br />
==Using awesome==<br />
To run awesome without a login manager, simply add '''<tt>exec awesome</tt>''' to the startup script of your choice (e.g. ~/.xinitrc.)<br />
<br />
If you have problems with some devices (like mounting usbkeys, reading dvds) be sure to read documentation about hal and policykit. When you don't use a login manager, nothing is automated. In some cases, using '''<tt>exec ck-launch-session awesome</tt>''' can solve your problems.<br />
<br />
To start awesome from a login manager, see [[Adding a login manager (KDM, GDM, or XDM) to automatically boot on startup | this article]]. <br />
<br />
'''[[SLIM]]''' is a popular lightweight login manager and comes highly recommended. You should do like this:<br />
<br />
1) Edit /etc/slim.conf for start awesome session, add awesome to sessions line. For example: <br />
sessions awesome,wmii,xmonad<br />
2) Edit ~/.xinitrc file <br />
DEFAULT_SESSION=awesome<br />
case $1 in<br />
awesome) exec awesome ;;<br />
wmii) exec wmii ;;<br />
xmonad) exec xmonad ;;<br />
*) exec $DEFAULT_SESSION ;;<br />
esac<br />
<br />
= Configuration =<br />
Awesome includes some good default settings right out of the box, but sooner or later you'll want to change something. The lua based configuration file is at <tt>~/.config/awesome/rc.lua</tt>.<br />
<br />
== Creating the configuration file ==<br />
Whenever compiled, awesome will attempt to use whatever custom settings are contained in ~/.config/awesome/rc.lua. This file is not created by default, so we must copy the template file first:<br />
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua<br />
<br />
The syntax of the configuration often changes when awesome updates. So, remember to repeate the command above when you get something strange with awesome, or you'd like to modify the configuration.<br />
<br />
For more information about configuring awesome, check out the [http://awesome.naquadah.org/wiki/Awesome_3_configuration configuration page at awesome wiki]<br />
<br />
== More configuration resources ==<br />
{{Box Note | The syntax of awesome configuration changes regularly, so you will likely have to modify any file you download.}}<br />
<br />
Some good examples of rc.lua would be as follows:<br />
<br />
* http://git.glacicle.com/other/configs.git/.config/awesome/rc_30.lua<br />
* http://www.calmar.ws/dotfiles/dotfiledir/dot_awesomerc.lua<br />
* http://tux-atome.fr/rhaamo_config-files.git?a=tree;f=configs/awesome3/dot_config/awesome - Awesome 3, no wicked required and no beautiful.<br />
* http://github.com/wolgri/wolgri.config/tree/master/.config/awesome/rc.lua<br />
* http://oxmoz.no-ip.org/awesome/rc.lua<br />
* http://www.ugolnik.info/downloads/awesome/rc.lua (screen) - Awesome 3 with small titlebar and statusbar.<br />
* http://github.com/BaSh/config/tree/master/.config/awesome/rc.lua<br />
* http://silenceisdefeat.org/~koniu/awesome/rc.lua (screen)<br />
* http://dmaus.gmxhome.de/awesome/rc.lua (main file)<br />
** http://dmaus.gmxhome.de/awesome/thinkpad.include (notebook specific configuration) <br />
* https://trac.poildetroll.net/trac/akoya/browser/config/awesome/rc.lua<br />
* http://svn.grumblesmurf.org/mercurial/awesome-config/file/tip<br />
* http://github.com/stxza/arch-linux-configs/tree/master/.config/awesome (All) [http://balancest.deviantart.com/gallery/ (screen gallery)]<br />
* User Configuration Files http://awesome.naquadah.org/wiki/User_Configuration_Files<br />
<br />
== Debug rc.lua using Xephyr ==<br />
<br />
This is my prefered way to debug rc.lua, without breaking my curent desktop. I first copy my rc.lua into a new file, rc.lua.new, and modify it as needed. Then, I run new instance of awesome in Xephyr (allows you to run X nested in another X's client window - [http://www.dante4d.cz/pub/screenie/2009-08-01-025216_1920x1200_scrot.png screenshot]), supplying rc.lua.new as a config file like this:<br />
<br />
$ Xephyr -ac -br -noreset -screen 1152x720 :1 &<br />
$ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new<br />
<br />
Big advantage of this approach is that if I break rc.lua.new, I don't break my current awesome desktop (and possibly crash all my X apps, lose all unsaved things and so on...). Once I'm happy with my new settings, I move rc.lua.new to rc.lua and restart awesome. And I can be sure it will work and restarting with new config won't mess up things.<br />
<br />
= Themes =<br />
<br />
Beautiful is a lua library that allows you to theme awesome using an external file, it becomes very easy to dynamically change your whole awesome colours and wallpaper without changing your rc.lua. <br />
<br />
The default theme is at /usr/share/awesome/themes/default. Copy it to ~/.awesome/themes/default and change theme_path in rc.lua. <br />
<br />
More details [http://awesome.naquadah.org/wiki/Beautiful here]<br />
<br />
A few sample [http://awesome.naquadah.org/wiki/Beautiful_themes themes]<br />
<br />
== Setting up your wallpaper ==<br />
<br />
Beautiful can handle your wallpaper, thus you don't need to set it up in your .xinitrc or .xsession files. This allows you to have a specific wallpaper for each theme. If you take a look at the default theme file you'll see a wallpaper_cmd key, the given command is executed when beautiful.init("path_to_theme_file") is run. You can put here you own command or remove/comment the key if you don't want Beautiful to interfere with your wallpaper business.<br />
<br />
For instance, if you use fbsetbg to set your wallpaper, you can write:<br />
<br />
wallpaper_cmd = fbsetbg -f .config/awesome/themes/awesome-wallpaper.png<br />
<br />
= Tips & Tricks =<br />
Feel free to add any tips or tricks that you would like to pass on to other awesome users.<br />
==Expose effect like compiz==<br />
<br />
Revelation brings up a view of all your open clients; left-clicking a client pops to the first tag that client is visible on and raises/focuses the client. In addition, the Enter key pops to the currently focused client, and Escape aborts. <br />
<br />
http://awesome.naquadah.org/wiki/Revelation<br />
<br />
==Hide / show statusbars in awesome 3.0?==<br />
<br />
Lua code:<br />
<br />
mystatusbar.screen = nil<br />
<br />
To map Modkey-b to hide/show default statusbar on active screen (as default in awesome 2.3), add to your awesome/rc.lua:<br />
<br />
keybinding.new({ modkey }, "b", function () <br />
if mystatusbar[mouse.screen].screen == nil then <br />
mystatusbar[mouse.screen].screen = mouse.screen<br />
else<br />
mystatusbar[mouse.screen].screen = nil<br />
end<br />
end):add()<br />
<br />
Do not forget replace mystatusbar with the name of your statusbar<br />
<br />
==Enable printscreens==<br />
<br />
To enable printscreens in awesome through the PrtScr button you need to have a screen capturing program.<br />
Scrot is a easy to use utility for this purpose and is available in Arch repositories.<br />
<br />
Just type:<br />
# pacman -S scrot<br />
<br />
and install optional dependencies if you feel that you need them.<br />
<br />
Next of we need to get the key name for PrtScr, most often this is named "Print" but one can never be too sure.<br />
<br />
Start up:<br />
# xev<br />
<br />
And press the PrtScr button, the output should be something like:<br />
KeyPress event ....<br />
root 0x25c, subw 0x0, ...<br />
state 0x0, keycode 107 (keysym 0xff61, '''Print'''), same_screen YES,<br />
....<br />
<br />
In my case as you see, the keyname is Print.<br />
<br />
Now to the configuration of awesome!<br />
<br />
Somewhere in your globalkeys array (doesn't mather where) type:<br />
<br />
Lua code:<br />
<br />
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),<br />
<br />
A good place to place this is bellow the keyhook for spawning a terminal.<br />
To find this line search for: awful.util.spawn(terminal) in your favourite text editor.<br />
<br />
Also, this function saves screenshots inside ~/screenshots/, edit this to fit your needs.<br />
<br />
==Dynamic tagging using Eminent==<br />
<br />
TODO...<br />
[http://awesome.naquadah.org/wiki/index.php?title=Eminent]<br />
<br />
Note: Eminent is a bit old and outdated. We have a new library in the works, Shifty. It hasn't been included with the main source yet, but is very promising. I'd recommend waiting for that and then writing this section for it. [http://garoth.com/awesome/shifty.ogv Shifty Video (.ogv)]<br />
<br />
Note2: There is actually yet another implementation of this feature. I'm hoping it merges with Shifty, and I'm poking the developers in that direction.<br />
<br />
==Space Invaders== <br />
TODO<br />
[http://awesome.naquadah.org/wiki/index.php?title=Space_Invaders]<br />
<br />
==Naughty for popup notification==<br />
TODO<br />
[http://awesome.naquadah.org/wiki/index.php?title=Naughty]<br />
<br />
==Popup Menus==<br />
There's a simple menu by default in awesome3, and customed menus seem very easy now. However, if you're using 2.x awesome, have a look at ''[http://awesome.naquadah.org/wiki/index.php?title=Awful.menu awful.menu]''.<br />
<br />
An example for awesome3:<br />
<pre><br />
myawesomemenu = {<br />
{ "lock", "xscreensaver-command -activate" },<br />
{ "manual", terminal .. " -e man awesome" },<br />
{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },<br />
{ "restart", awesome.restart },<br />
{ "quit", awesome.quit }<br />
}<br />
<br />
mycommons = {<br />
{ "pidgin", "pidgin" },<br />
{ "OpenOffice", "soffice-dev" },<br />
{ "Graphic", "gimp" }<br />
}<br />
<br />
mymainmenu = awful.menu.new({ items = { <br />
{ "terminal", terminal },<br />
{ "icecat", "icecat" },<br />
{ "Editor", "gvim" },<br />
{ "File Manager", "pcmanfm" },<br />
{ "VirtualBox", "VirtualBox" },<br />
{ "Common App", mycommons, beautiful.awesome_icon },<br />
{ "awesome", myawesomemenu, beautiful.awesome_icon }<br />
}<br />
})<br />
</pre><br />
<br />
==Widgets using wicked==<br />
Wicked is a lua library for awesome3 to provide more widgets.<br />
<br />
Make sure that you've installed wicked. See the Installation section above.<br />
<br />
Configuring wicked is easy, just add the following line to the top of your rc.lua and you're ready to go. <br />
require("wicked")<br />
Then add the following lines in the end of your rc.lua:<br />
<pre><br />
-- Widgets using wicked<br />
-- Merory usage<br />
memwidget = widget({<br />
type = 'textbox',<br />
name = 'memwidget',<br />
align = "right"<br />
})<br />
wicked.register(memwidget, wicked.widgets.mem,<br />
' RAM: $1% ($2Mb/$3Mb) || ')<br />
<br />
--date<br />
datewidget = widget({<br />
type = 'textbox',<br />
name = 'datewidget',<br />
})<br />
wicked.register(datewidget, wicked.widgets.date,<br />
' %c')<br />
<br />
-- file system<br />
fswidget = widget({<br />
type = 'textbox',<br />
name = 'fswidget',<br />
align = "right"<br />
})<br />
wicked.register(fswidget, wicked.widgets.fs,<br />
' DiskUsage: /root ${/ usep}% , /home ${/home usep}% (${/home used}/${/home size}) || ', 30)<br />
<br />
-- cpu<br />
cpuwidget = widget({<br />
type = 'textbox',<br />
name = 'cpuwidget',<br />
align = "right"<br />
})<br />
wicked.register(cpuwidget, wicked.widgets.cpu,<br />
' CPU: $1% $2% || ')<br />
<br />
-- net<br />
netwidget = widget({<br />
type = 'textbox',<br />
name = 'netwidget',<br />
align = "right"<br />
})<br />
wicked.register(netwidget, wicked.widgets.net,<br />
' NET: ${wlan0 down}/${wlan0 up} (${wlan0 rx}/${wlan0 tx})',<br />
nil, nil, 3)<br />
<br />
-- statebar in the bottom<br />
mystatebar = wibox( {position = "bottom", fg = beautiful.fg_normal, bg = beautiful.bg_normal} )<br />
mystatebar.widgets = {<br />
datewidget,<br />
fswidget,<br />
cpuwidget,<br />
memwidget,<br />
netwidget,<br />
}<br />
mystatebar.screen = 1<br />
</pre><br />
and restart awesome to check the effection.<br />
<br />
More details see the [http://awesome.naquadah.org/wiki/index.php?title=Wicked Wicked].<br />
<br />
== Transparency ==<br />
Awesome has support for (2D) transparency through xcompmgr. Note that you'll probably want the git version of xcompmgr, which is [http://aur.archlinux.org/packages.php?ID=16554 available in AUR]. <br />
<br />
Add this to your ~/.xinitrc<br />
xcompmgr &<br />
See ''man xcompmgr'' or [[xcompmgr]] for more options.<br />
<br />
you can set this window transparency dynamically in the rc.lua <br />
add<br />
<br />
c.opacity = 1<br />
<br />
to the awful.hooks.focus.register hook (to restore Visibility)<br />
add<br />
<br />
c.opacity = 0.4<br />
<br />
to the awful.hooks.unfocus.register hook (to make the Window transparent. Adjust value as comfortable)<br />
<br />
As of Awesome 3.1, there is now built-in pseudo transparency for wiboxes. To enable, just add 2 more hexadecimals to the colors in your theme file (~/.config/awesome/themes/default usually), like shown here:<br />
<br />
bg_normal = #000000AA<br />
<br />
where "AA" is the transparency value.<br />
<br />
== Autorun programs ==<br />
Just add the following codes in the rc.lua, and replace the applications in the autorunApps section with anything you like. Example:<br />
-- Autorun programs<br />
autorun = true<br />
autorunApps = <br />
{ <br />
"swiftfox",<br />
"mutt",<br />
"consonance",<br />
"linux-fetion",<br />
"weechat-curses",<br />
}<br />
if autorun then<br />
for app = 1, #autorunApps do<br />
awful.util.spawn(autorunApps[app])<br />
end<br />
end<br />
<br />
= Troubleshooting =<br />
<br />
==Mod4 key==<br />
<br />
Alias the Win key. Somehow, my Mod4 key isn't mapped by default. If that's your case too, you can check the keycode of your Mod4 key with<br />
<br />
$ xev<br />
<br />
It should be 115 for the left one. Then add this to your ~/.xinitrc<br />
<br />
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"<br />
exec awesome<br />
<br />
<br />
<br />
==Mod4 key vs. IBM ThinkPad users==<br />
<br />
IBM ThinkPads do not come equipped with a Window key (although Lenovo have changed this tradition on their ThinkPads). As of writing, the Alt key is not used in command combinations by the default rc.lua (refer to the Awesome wiki for a table of commands), which allows it be used as a replacement for the Super/Mod4/Win key. To do this, edit your rc.lua and replace:<br />
<br />
modkey = "Mod4"<br />
<br />
by:<br />
<br />
modkey = "Mod1"<br />
<br />
Note: Awesome does a have a few commands that make use of Mod4 plus a single letter. Changing Mod4 to Mod1/Alt could cause overlaps for some key combinations. The small amount of instances where this happens can be changed in the rc.lua file.<br />
<br />
If you don't like to change the awesome standards, you might like to remap a key. For instance the caps lock key is rather useless (for me) adding the following contents to ~/.Xmodmap <br />
<br />
clear lock <br />
add mod4 = Caps_Lock<br />
<br />
and [http://wiki.archlinux.org/index.php/Extra_Keyboard_Keys_in_Xorg#Introduction_2 (re)load] the file.<br />
This will change the caps lock key into the mod4 key and works nicely with the standard awesome settings. In addition, if needed, it provides the mod4 key to other X-programs as well.<br />
<br />
==Cairo Memory Leak==<br />
If you experiencing [http://awesome.naquadah.org/bugs/index.php?do=details&task_id=396 memory leaks] then try [http://aur.archlinux.org/packages.php?ID=9566 cairo-git] in AUR. [http://bbs.archlinux.org/viewtopic.php?pid=462021 Forum Thread]<br />
<br />
Update: The recent Cairo 1.8.6 release is also fine to use it seems as the fix from git should be in there.<br />
<br />
= Additional Resources =<br />
* http://www.lua.org/pil/ - Programming in Lua (first edition)<br />
* http://awesome.naquadah.org/ - The official awesome website<br />
* http://awesome.naquadah.org/wiki/Main_Page - the awesome wiki<br />
* http://www.penguinsightings.org/desktop/awesome/ - A review</div>Dante4d