https://wiki.archlinux.org/api.php?action=feedcontributions&user=Nyux&feedformat=atomArchWiki - User contributions [en]2024-03-28T18:47:41ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Mac&diff=299020Mac2014-02-20T01:12:30Z<p>Nyux: added retina macbook pro pages to related links section</p>
<hr />
<div>[[Category:Apple]]<br />
[[de:ArchLinux auf einem MacBook]]<br />
[[fr:MacBook]]<br />
[[it:MacBook]]<br />
[[zh-CN:MacBook]]<br />
{{Related articles start}}<br />
{{Related|Installation guide}}<br />
{{Related|Beginners' guide}}<br />
{{Related|General recommendations}}<br />
{{Related|MacBook 4,2 (late 2008)}}<br />
{{Related|MacBook 5,2 (early-mid 2009)}}<br />
{{Related|MacBook Pro 7,1}}<br />
{{Related|MacBook Pro 8,1 / 8,2 / 8,3 (2011)}}<br />
{{Related|MacBook Pro 9,2 (Mid-2012)}}<br />
{{Related|MacBookPro10,x}}<br />
{{Related|MacBookPro11,x}}<br />
{{Related articles end}}<br />
Installing Arch Linux on a MacBook (Pro) is quite similar to installing it on any other computer. However, due to the specific hardware configuration on a MacBook, there are a few deviations and special considerations which warrant a separate guide. For more background information, please see the [[Installation guide]], [[Beginners' guide]]. This guide contains installation-instructions that can be used on any Apple computer whose hardware is supported by the Linux kernel. Please see 'related' pages (on the top right of this page) for model-specific tips and troubleshooting.<br />
<br />
== Overview ==<br />
<br />
Specifically, the procedure for installing Arch Linux on a MacBook is:<br />
<br />
# '''[[#Installation of Mac OS X and firmware update|Install OS X]]''': Regardless of the desired end-configuration, it helps to start from a clean install of OS X.<br />
# '''[[#Installation of Mac OS X and firmware update|Firmware update]]''': This should help reduce errors and provide newer features for the hardware.<br />
# '''[[#Partitions|Partition]]''': This step either resizes or deletes the OS X partition and creates partitions for Arch Linux.<br />
# '''[[#Installation|Install Arch Linux]]''': The actual installation procedure.<br />
# '''[[#Post-install configuration|Post-install configuration]]''': MacBook specific configuration.<br />
<br />
{{Tip|rEFIt is a popular bootloader for EFI-firmware computers (including Macs). It can be installed at any time during the installation. For instructions, please see [[#rEFIt]]. }}<br />
<br />
== Installation of Mac OS X and firmware update ==<br />
<br />
[http://www.apple.com Apple] has excellent instructions for installing OS X. Follow their instructions. Once OS X is installed, go to ''Apple Menu > Software Update'' and update all software. Once this has run, you will need to reboot your computer. Do this, and then run '''Software Update''' again to check to make sure that all updates have been installed.<br />
<br />
If you are not going to have OS X installed, make backups of these files:<br />
<br />
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport<br />
<br />
You will need this file later for iSight functionality.<br />
<br />
/Library/ColorSync/Profiles/Displays/<FILES HERE><br />
<br />
You will need the file(s) here for adjusting the [[#Color Profile|color profile]].<br />
<br />
== Partitions ==<br />
<br />
The next step in the installation is to re-partition the hard drive. If OS X was installed using the typical procedure, then your drive should have a GPT format and the following partitions:<br />
<br />
* '''EFI''': a 200 MB partition at the beginning of the disk.It is often read as '''msdos''' or '''FAT''' by some partitioning tools and usually labeled ''#1''.<br />
* '''Mac OS X''': the ''(HFS+)'' partition that should take up all of the remaining disk space. Usually labeled ''#2''.<br />
* '''Recovery''': A recovery partition (only for Mac OS X 10.7+).<br />
How to partition depends on how many operating systems you want install. The following options will be explained:<br />
<br />
* [[#Arch Linux only|Arch Linux only]] for single boot.<br />
* [[#Mac OS X with Arch Linux|OS X with Arch Linux]] for dual boot.<br />
<br />
If you do not know which option to pick, we recommend the dual boot so you can still return to OS X whenever you want.<br />
<br />
=== Arch Linux only ===<br />
<br />
This situation is the easiest to deal with. Mostly, partitioning is the same as any other hardware that Arch Linux can be installed on. The only special consideration is the MacBook firmware boot sound. To ensure that this sound is off: '''mute''' the volume in OS X before continuing further. The MacBook firmware relies on the value in OS X, if available. Note that if you choose to get rid of the OS X partition, there is no easy way to update your machines firmware unless you use an external drive to boot OS X.<br />
You can boot in EFI mode (recommended) or bios-compatibility mode, if in doubt choose EFI.<br />
<br />
To install using EFI, follow the [[Unified Extensible Firmware Interface#Create UEFI bootable USB from ISO|instruction to make a EFI bootable media]]. Once done double check that your USB key actually boots in EFI mode [[Unified Extensible Firmware Interface#UEFI Variables Support|checking the EFI kernel variables]]. You will need to format the EFI partition with the {{ic|hfsplus}} filesystem ({{AUR|hfsprogs}}) instead of vfat otherwise {{AUR|mactel-boot}} will fail, and in Macbooks [[Unified Extensible Firmware Interface#Non-Mac UEFI systems|you cannot use {{ic|efibootmgr}}]].<br />
<br />
==== EFI ====<br />
<br />
*'''This requires [[GRUB]] to work'''<br />
* Boot installation medium and switch to a free tty.<br />
* Run '''cgdisk''' ({{Pkg|gptfdisk}} package).<br />
* Create the necessary partitions.<br />
<br />
{{Note|<br />
* The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file|Swap file]].<br />
* For more information on partitioning, see [[Beginners' guide#Partitioning hard disks: General information|Partitioning hard disks: General information]].<br />
}}<br />
Simple example (no LVM, crypto):<br />
partition mountpoint size type label<br />
/dev/sda1 /boot/efi 200MiB vfat EFI<br />
/dev/sda2 /boot 100MiB ext2 boot<br />
/dev/sda3 - adjust swap swap<br />
/dev/sda4 / 10GiB ext4 root<br />
/dev/sda5 /home remain. ext4 home<br />
<br />
* Done, you can continue to [[#Installation]]<br />
<br />
==== BIOS-compatibility ====<br />
<br />
* Boot installation medium and switch to a free tty.<br />
* Run '''parted'''. The simplest way is to change the partition table to '''msdos''' and then partition as normal. GRUB is compatible with GPT.<br />
<br />
* Create the necessary partitions.<br />
<br />
* Done, you can continue to [[#Installation]]<br />
<br />
=== Mac OS X with Arch Linux ===<br />
<br />
The easiest way to partition your hard drive, so that OS X and Arch Linux will co-exist, is to use partitioning tools in OS X and then finish with Arch Linux tools.<br />
<br />
{{Warning|It is highly recommended that this only be attempted after a clean install of OS X. Using these methods on a pre-existing system may have undesired results.}}<br />
<br />
{{Note|If you have any problems, try using [http://gparted.sourceforge.net/ gparted] (i.e. ''instead'' of using Disk Utility and/or cgdisk). It is capable of shrinking the OS X partition and creating Linux partitions ready for installation.}}<br />
<br />
'''Procedure''':<br />
* In OS X, run '''Disk Utility.app''' (located in {{ic|/Applications/Utilities}})<br />
<br />
* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.<br />
<br />
* Select the volume to be resized in the '''Volume scheme'''.<br />
<br />
* Decide how much space you wish to have for your OS X partition, and how much for Arch Linux. Remember that a typical installation of OS X requires around 15-20 GiB, depending on the number of software applications and files.<br />
<br />
* Finally, type the new (smaller) size for the OS X partition in the size box and click '''Apply'''. This will create a new partition out of the empty space. You will delete this partition later.<br />
<br />
{{Note|if you wish to have a shared partition between OS X and Arch Linux, then additional steps will need to happen here. Please see [[#HFS partition sharing]].}}<br />
<br />
* If the above completed successfully, then you can continue. If not, then you may need to fix your partitions from within OS X first.<br />
<br />
* Boot the Arch install CD by holding down the alt key during Boot. Follow one of the procedures below according to your choice of boot-method.<br />
<br />
==== EFI ====<br />
<br />
* Run '''cgdisk'''<br />
<br />
* Delete the partition you made in Disk Utility.app and create the necessary partitions for Arch Linux. OS X likes to see a 128 MiB gap after partitions, so when you create the first partition after the last Mac OS X-partition, type in '''+128M''' when cgdisk asks for the first sector for the partition. A simple example (no LVM, crypto):<br />
{{Note|<br />
* The swap partition is optional, on machines with a RAM of size 4GB or more, good performance can be expected without a swap partition. Also, a '''swap file''' can be created later, see [[Swap#Swap file]].<br />
* The easiest dual-boot option is to install refind from inside OSX, to its root directory (default for install.sh). Following that, copy the driver folder from the installation tarball into the new refind location, and uncomment the lines "scan_all_linux_kernels" and "also_scan_dirs" options in refind.conf. Configuration of boot options can then be done from a refind_linux.conf in Arch's /boot directory.<br />
* If you want to be able to boot GRUB from the Apple boot loader, you can create a small hfs+ partition (for convenience, use OS X to format it in Disk Utility.app afterwards). Follow the GRUB EFI install procedure, and mount your {{ic|/boot/efi}} directory to the hfs+ partition you created. Finally, finish up again in OS X by blessing the partition. This will set GRUB as the default boot option (holding alt at startup goes to the mac boot options screen still. See http://mjg59.dreamwidth.org/7468.html)<br />
* For more information on partitioning, see [[Partitioning]].<br />
* OS X's EFI partition can be shared with archlinux, making the creation of an additional EFI partition dedicated to arch completely optional<br />
}}<br />
partition mountpoint size type label<br />
/dev/sda1 /boot/efi 200MiB vfat EFI<br />
/dev/sda2 - ? hfs+ Mac OS X<br />
/dev/sda3 - ? hfs+ Recovery<br />
/dev/sda4 - 100MiB hfs+ Boot Arch Linux from the Apple boot loader (optional)<br />
/dev/sda5 /boot 100MiB boot boot<br />
/dev/sda6 - ? swap swap (optional)<br />
/dev/sda7 / 10GiB ext4 root<br />
/dev/sda8 /home remaining ext4 home<br />
<br />
* Done, you can continue to [[#Installation]]<br />
<br />
==== BIOS-compatibility ====<br />
<br />
* Run '''parted''' as root.<br />
<br />
* Delete the empty space partition and partition the space as you would for any other installation. Note that MBR is limited to 4 primary partitions (including the efi partition). That leaves 2 primary partitions for arch. One strategy is to have a system and home partition, and use a swap file (I have not tried to use logical partitions). Another is to dedicate one partition to a shared partition (see below).<br />
<br />
* Next, create new filesystems on those partitions which need them, especially the partition which will contain /boot. If you are not sure how to do this using {{ic|mkfs.ext2}} (or whatever), run {{ic|/arch/setup}} and work through until you get to Prepare Hard Drive and use the "Manually configure block devices..." option, then exit the installer. This is necessary so that rEFIt will set the right partition type in the MBR in the next step (without an existing filesystem, it seems to ignore the partition type set by parted), without which GRUB will refuse to install to the right partition.<br />
<br />
* At this point you should reboot your computer and have rEFIt fix the partition tables on your hard drive. (If you do not do this, you may have to reinstall GRUB later on in order to have your Mac recognize the Linux partition.) When you are into the rEFIt menu, select '''update partition table''', then press Y. Reboot.<br />
<br />
* Done, you can continue to [[#Installation]]<br />
<br />
=== Mac OS X, Windows XP, and Arch Linux triple boot ===<br />
<br />
This may not work for everyone but it has been successfully tested on a Macbook from late 2009.<br />
<br />
The easiest way to partition your hard drive, so that all these operating systems can co-exist, is to use disk utility in Mac OS X, use the formatter on windows XP install CP, and then finish with Arch Linux tools.<br />
<br />
{{Warning|It is highly recommended that this only be attempted after a clean install of Mac OS X. Using these methods on a pre-existing system may have undesired results. At least back your stuff up with timemachine or clonezilla before you begin.}}<br />
<br />
'''Procedure''':<br />
* In Mac OS X, run '''Disk Utility''' (located in {{ic|/Applications/Utilities}}).<br />
<br />
* Select the drive to be partitioned in the left-hand column (not the partitions!). Click on the '''partition''' tab on the right.<br />
<br />
* Select the volume to be resized in the '''volume scheme.'''<br />
<br />
* Decide how much space you wish to have for your Mac OS X partition, how much fo XP, and how much for Arch Linux. Remember that a typical installation of Mac OS X requires around 15-20 GiB, and XP about the same, depending on the number of software applications and files. Something like OSX 200Gb, XP 25Gb, Arch 25Gb should be fine.<br />
<br />
* Put your decisions into action by pressing the + button and adding the new partitions, Label them as you like and make sure that your XP partition is the last one on the disk and is formatted for FAT32. It is probably best to have Arch formatted in HFS format as to not confuse you later, it will be reformatted anyway.<br />
<br />
So in linux terms your partitions will be something like:<br />
<br />
:*sda (disk)<br />
:*sda1 (Mac boot partition - you cannot see this one in OSX)<br />
:*sda2 (OSX install in HFS+)<br />
:*sda3 (Arch install temporarly in HFS)<br />
:*sda4 (XP install in FAT32)<br />
<br />
* Finally, click '''apply'''. This will create a new partition out of the empty space.<br />
<br />
{{Note|Using this method you may not be able to have a shared partition between Mac OS X and Arch Linux, this is because the mac will only allow for 4 active partitions. You will however be able to mount a HFS partition in Arch for one workaround. There are other workarounds possible also.}}<br />
<br />
* If the above completed successfully, you can continue. If not, then you may need to fix your partitions from within Mac OS X first.<br />
<br />
* You will not be needing boot camp this way, the program rEFIt is much more flexible (though not as flexible as GRUB). Download and install rEFIt [[http://refit.sourceforge.net/]]<br />
<br />
* Go into a terminal in OS X and perform the following, this will enable the rEFIt boot manager. <br />
<br />
cd /efi/refit<br />
./enable.sh<br />
<br />
* Reboot to check the rEFIt is working, it should appear on boot. When it comes up go to the rEFIt partition manager and agree to the changes.<br />
<br />
* Put your XP install CD and boot it with rEFIt - You may have to reboot a few times until it is recognized by the boot loader. Install XP and once it is installed use the OSX install CD to get your drivers running nicely in XP.<br />
** Note: when installing XP make sure you select your XP partition and format it again inside the XP installer. If you do not reformat it will not work.<br />
<br />
* Boot the Arch install CD, log in as root and run {{ic|# /arch/setup}}.<br />
<br />
* Follow the install as normal but note that you will have to tell that arch installer to mount sda3 as the root partition and format it as ext3, there will not be a /boot or swap partition so ignore those warnings.<br />
<br />
* At this point, if you are dual booting, you should reboot your computer and have rEFIt fix the partition tables on your hard drive. (If you do not do this, you may have to reinstall GRUB later on in order to have your Mac recognize the Linux partition.) When you are into the rEFIt menu, select '''update partition table''', then press Y.<br />
# reboot<br />
<br />
* Done! You can continue to [[#Installation]] but make sure you read [[#Booting directly from GRUB]] for the stage "* (for booting with EFI) After the install boot loader stage, exit the installer and install GRUB."<br />
<br />
== Booting directly from GRUB ==<br />
<br />
=== Installing GRUB to EFI partition directly ===<br />
<br />
* If you would like to use GRUB as your main bootloader and use the "boot while holding the Alt/Option key" method to go back to Mac OS X rather than using alternatives such as rEFIt (http://refit.sourceforge.net/, mentioned previously in [[#BIOS-compatibility]] and [[#Mac OS X, Windows XP, and Arch Linux triple boot]]) then you must install {{Pkg|grub}} to your Mac's '''already-existing''' EFI partition (see below). <br />
<br />
{{Note| These instructions are known to work on a Macbook Pro (Early 2011). Please read the procedure carefully '''as well as the details following it'''.}}<br />
<br />
'''Procedure''':<br />
<br />
* Install {{Pkg|grub}}<br />
<br />
* Make a directory named {{ic|efi}} in {{ic|/boot}} <br />
<br />
* Mount the '''already-existing''' EFI partition on your Mac to this {{ic|/boot/efi}} directory<br />
<br />
* Install GRUB to this directory<br />
<br />
* Make a directory named {{ic| locale}} in {{ic| /boot/grub}}<br />
<br />
* Copy {{ic| grub.mo}} from {{ic| /usr/share/locale/en\@quot/LC_MESSAGES/}} to {{ic| /boot/grub/locale}} <br />
<br />
* Generate a configuration for GRUB<br />
<br />
* Done! GRUB will now start on reboot and you can boot into your newly installed Archlinux.<br />
<br />
* Remember to hold ALT/Option key '''while''' starting your computer if you want to boot back into Mac OS X.<br />
<br />
'''Details (quoted from [[GRUB_EFI_Examples#M5A97]]):'''<br />
<br />
Finish the standard Arch install procedures, making sure that you install {{Pkg|grub}} and partition your boot hard disk as GPT.<br />
<br />
From [[Grub#Install_to_UEFI_system_partition]]:<br />
<br />
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB install script to detect it:<br />
<br />
# mkdir -p /boot/efi<br />
# mount -t vfat /dev/sdXY /boot/efi<br />
<br />
Where X is your boot hard disk and Y is the efi partition you created earlier.<br />
<br />
Install GRUB UEFI application to and its modules to {{ic|/boot/grub/x86_64-efi}} using:<br />
<br />
# modprobe dm-mod<br />
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug<br />
# mkdir -p /boot/grub/locale<br />
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo<br />
<br />
Generate a configuration for GRUB<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
=== Using blessing ===<br />
<br />
It is possible to boot directly from GRUB in EFI mode without using rEFIt through what is known as "blessing" after placing GRUB on a '''separate partition'''. These instructions are known to work on a Macbook 7,1. It is advisable to host GRUB on either a FAT32 or HFS+ partition, but ext2 or ext3 may also work. GRUB's appleloader command does not currently work with the 7,1, but support can be added with the patch available [https://savannah.gnu.org/bugs/index.php?33185 here].<br />
<br />
After the GRUB install is in the desired location, the firmware needs to be instructed to boot from that location. This can be done from either an existing OS X install or an OS X install disk. The following command assumes that the GRUB install is in {{ic|/efi/grub}} on an existing OS X partition:<br />
# bless --folder /efi/grub --file /efi/grub/grub.efi<br />
<br />
=== Compilation ===<br />
<br />
Some models may need EFI_ARCH set to i386.<br />
bzr branch --revision -2 bzr://bzr.savannah.gnu.org/grub/trunk/grub grub<br />
cd grub<br />
./autogen.sh<br />
patch -p1 < appleloader_macbook_7_1.patch<br />
export EFI_ARCH=x86_64<br />
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix=""<br />
make<br />
cd grub-core<br />
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot<br />
cp grub.efi *.mod *.lst yourinstalllocation<br />
<br />
=== Example grub.cfg ===<br />
<br />
{{out of date|reason=kernel26}}<br />
Note that there may be a better method for loading Windows.<br />
{{bc|1=<br />
set debug=video<br />
insmod efi_gop<br />
<br />
menuentry "Arch Linux EFI" {<br />
set root=(hd0,3)<br />
#search --set -f /boot/vmlinuz26-efi-physical<br />
#loadbios /boot/vbtrace_bios.bin /boot/int10.bin<br />
linux /boot/vmlinuz26-efi-physical root=/dev/sda3 reboot=pci resume=/dev/sda3 resume_offset=151552<br />
initrd /boot/kernel26-efi-physical.img<br />
}<br />
<br />
menuentry "MacOSX" {<br />
set root=(hd0,2)<br />
# Search the root device for Mac OS X's loader.<br />
#search --set -f /usr/standalone/i386/boot.efi<br />
# Load the loader.<br />
chainloader /usr/standalone/i386/boot.efi<br />
}<br />
<br />
menuentry "Windows 7" {<br />
appleloader HD<br />
}<br />
<br />
menuentry "Boot from CD" {<br />
appleloader CD<br />
}<br />
<br />
menuentry "Boot from USB" {<br />
appleloader USB<br />
}<br />
}}<br />
<br />
== Installation ==<br />
<br />
{{Note|This section is only required if you want to have Mac OS X installed along with Arch Linux. If not, follow the steps in the official install guide, then skip to [[#Post-install configuration]].}}<br />
<br />
* Boot from the Arch Linux install CD or the latest [[Archboot]] iso (unofficial) depending on your needs. For a USB that is bootable by Apple's UEFI, you will need to follow these steps to [[Unified_Extensible_Firmware_Interface#Create_UEFI_bootable_USB_from_ISO|create a UEFI bootable USB.]]<br />
{{Note|<br />
* On MacBook Pro 7,1, I had an error booting the installation media Version 2012.12.01: "unable to handle kernel NULL pointer dereference at 0000000000000010" during pacpi_set_dmamode. To fix this problem, boot with the option: acpi&#61;off. After chrooting, add MODULES&#61;"ata_generic" into /etc/mkinitcpio.conf and execute mkinitcpio -p linux, see: [[Installation guide#Configure_the_system|Installation Guide, 9 Configure the system]].<br />
* Some MacBook users report strange keyboard output such as long delays and character doubling. To fix this problem, boot with the following options: arch noapic irqpoll acpi&#61;force}}<br />
<br />
* Log in as '''root'''<br />
<br />
{{Note|If you want to do a netinstall rather than installing the possibly outdated packages on the iso and depend on a wireless network that is encrypted, you should change to a free tty and connect manually before proceeding, see [[Beginners' guide#Setup wireless in the live environment (optional)|Beginners_Guide]]}}<br />
<br />
* Proceed through the installation as described in the [[Installation guide]] '''except''' in the following areas:<br />
** In the [[Installation guide#Prepare Hard Drive|prepare hard drive]] stage, do only the [[Installation guide#Manually configure block devices, filesystems and mountpoints|set filesystem mountpoints]] step, taking care to assign the correct partitions. Partitions have already been created if you followed [[#Partition]]<br />
** '''(for booting with EFI''') After the [[Installation guide#Install Bootloader|install boot loader]] stage, exit the installer and install [[GRUB]].<br />
** '''(for booting with BIOS-compatibility)''' In the [[Installation guide#Install Bootloader|install boot loader]] stage, edit the menu.lst file and add '''reboot=pci''' to the end of the '''kernel''' lines, for example: {{bc|1=kernel /vmlinuz26 root=/dev/sda5 ro reboot=pci}} This will allow your MacBook to reboot correctly from Arch.<br />
** '''(for booting with BIOS-compatibility)''' Also in the [[Installation guide#Install Bootloader|install boot loader]] stage, install GRUB on whatever partition that {{ic|/boot}} is on. {{Warning|Do not install GRUB onto ''/dev/sda'' !!! Doing so is likely to lead to an unstable post-environment.}}<br />
** In the [[Installation guide#Configure System|configure system]] stage, edit /etc/mkinitcpio.conf and add the '''usbinput''' hook to the '''HOOKS''' line somewhere after the '''autodetect''' hook. This will load the drivers for your keyboard in case you need to use it before Arch boots (e.g. entering a [[LUKS]] password or using the troubleshooting shell).<br />
<br />
* When the install process is complete, reboot your computer.<br />
<br />
* If using optical media, hold down the eject key as your MacBook starts, this should eject the Arch Linux install disk.<br />
<br />
* If dual-booting Mac OS X and Arch Linux, hold down the alt (option) key while the system boots to use the Mac bootloader to select which OS to boot.<br />
<br />
=== Additional steps for Arch Linux only install===<br />
<br />
GRUB seems to be more complicated and less straightforward than rEFInd on EFI environments, so it's usually the prefered choice. It will also add entries for bootable devices if they are plugged in, and requires no rebuild/redeployments when the configuration is updated.<br />
<br />
==== GRUB ====<br />
<br />
{{Note|Do this after you tested that your setup is working. This procedure has been tested on a MacBook 4,1 with an msdos partition table. It may not work on newer versions. Please update if it works for you.}}<br />
* In order for Linux to boot up straight away, you will have to tell the firmware that your /boot partition is bootable, or you will always have to hold down the option (alt) key whenever you want to start up your computer.<br />
* In order to do this you will need the original Mac OS X install disk<br />
* Boot into it (you may need to hold the option (alt) key during boot again to access it)<br />
** Open Terminal.app (found under the Utilities menu in the menu bar), and type:<br />
# diskutil list<br />
** Find the device name of your /boot partition (this is your root (/) partition, if you do not have it separate). The format should be /dev/disk0sX, where X is a number from 1 to infinity<br />
** If using EFI type (replace X with the appropriate number):<br />
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch/grubx64.efi --setBoot<br />
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch/grubx64.efi --setBoot<br />
** If using BIOS-compatibility type (replace X with the appropriate number):<br />
# bless --device /dev/disk0sX --setBoot --legacy --verbose<br />
* Remove the installation disk and restart your computer<br />
* After a few seconds of grey screen, your boot loader screen should appear automatically.<br />
<br />
==== rEFInd ====<br />
<br />
{{Note|This has been tested on a 2013 MBA. There is no reason for it not to work on older models.}}<br />
<br />
* Install [https://www.archlinux.org/packages/extra/x86_64/refind-efi/ rEFInd] from [extra].<br />
* Install rEFInd into the EFI partition:<br />
# refind-install<br />
* Create configuration files for the linux images in /boot:<br />
# refind-mkrlconf<br />
* Edit /boot/refind_linux.conf if you need to add any additional kernel parameters.<br />
<br />
== Post-install configuration ==<br />
<br />
=== Xorg ===<br />
<br />
Install and configure Xorg by following the [[Xorg]] article.<br />
<br />
==== Video ====<br />
<br />
Different MacBook models have different graphic cards.<br />
<br />
To see which graphics card you have type:<br />
<br />
$ lspci | grep VGA<br />
<br />
* If it returns a string containing '''intel''' you only need the {{Pkg|xf86-video-intel}} driver. Intel-based MacBooks work out-of-the-box.<br />
<br />
* If it returns '''nVidia''', read [[NVIDIA]].<br />
<br />
* Otherwise if it returns '''ATI''' or '''AMD''', read [[ATI]].<br />
<br />
===== NVIDIA note =====<br />
<br />
{{Tip|MBP 6.2 - With the proprietary [[NVIDIA]] drivers, support for [[NVIDIA#Enabling Pure Video HD (VDPAU/VAAPI)|PureVideo HD]] is available for hardware video decoding. }}<br />
<br />
For MacBooks with NVIDIA graphics, for the backlight to work properly you may need the {{AUR|nvidia-bl}} package found in the [[AUR]].<br />
<br />
{{Tip|<br />
* If backlight control does not work after installing nvidia-bl, you should [[Kernel modules#Blacklisting|blacklist]] apple_bl kernel module.<br />
* Alternatively, you can choose to use the {{AUR|pommed-light}} package. If you do so, you may wish to change the step settings in {{ic|/etc/pommed.conf.mactel}} to something around 5000-10000 depending on how many levels of brightness you desire. The max brightness is around 80000, so take that into account.}}<br />
<br />
===== Macbook 6.2+ - EFI =====<br />
<br />
As of 4/30/2011, the proprietary nvidia driver is not known to work under X with this model in efi mode. The nouveau driver should work out of the box, but dri should be installed from the [https://aur.archlinux.org/packages/mesa-git/PKGBUILD mesa-git] package.<br />
<br />
===== MacbookPro 5.5, NVIDIA and secondary display =====<br />
<br />
As of January 1 2011, the latest NVIDIA drivers (290.10) might not work properly when a secondary display is used (tested with TwinView), NVIDIA's current [http://www.nvnews.net/vbulletin/showthread.php?t=122606 long-live supported] 275xx drivers seem to work fine. Install {{AUR|nvidia-275xx}} and {{AUR|nvidia-utils-275xx}}, and possibly {{AUR|lib32-nvidia-utils-275xx}} if you are on x86_64 system and want 32-bits support.<br />
<br />
MacbookPro 5.5 has an NVIDIA 9400m graphics card. This problem might apply to other devices as well.<br />
<br />
==== Touchpad ====<br />
<br />
The touchpad should have basic functionality by default. A true multitouch driver which behaves very similarly to native OSX can be installed from the AUR: {{AUR|xf86-input-multitouch-git}}. It supports 1, 2 and 3 finger gestures, including differentiation between horizontal and vertical 3 finger swipe. Additional details are available at [http://bitmath.org/code/multitouch/ the driver's project page].<br />
<br />
xf86-input-multitouch-git does not support any sort of configuration without editing the driver's source. Some users are also experiencing issues with false clicks from palm touches. There is now a much more configurable fork available as {{AUR|xf86-input-mtrack-git}}. Configuration options are documented in the [https://github.com/BlueDragonX/xf86-input-mtrack readme].<br />
<br />
The following mtrack options work well on a Macbook 7,1:<br />
<br />
Option "Thumbsize" "50"<br />
Option "ScrollDistance" "100"<br />
<br />
Probably you need also to add:<br />
<br />
MatchDevicePath "/dev/input/event10"<br />
<br />
'''Natural scrolling:''' To configure natural two finger scrolling similar to [http://www.apple.com/au/osx/what-is/gestures.html#gallery-gestures-scroll Mac OSX], refer to [[Touchpad Synaptics#Natural scrolling]]. If you are using GNOME, it will override these settings - in this case refer to [[GNOME#Natural_scrolling_touchpad]].<br />
<br />
'''Special Note About Older Macbook Models (confirmed on MacBook 2,1):''' On older Macbook models (pre-multitouch), the touchpad will not function properly until you install the xf86-input-synaptics package. Please see [[Touchpad Synaptics]] for more information on installing and configuring this package.<br />
<br />
'''Note on Macbook Pro(5,5):''' I found it is much simpler to use the {{Pkg|xf86-input-synaptics}} in Extra. Although it does not have much function as 3 finger swipe, this driver provides faster response. {{Pkg|gsynaptics}} also provides a simple GUI config. Below is a Xorg config file /etc/X11/xorgconfig.d/60-synaptics.conf for reference only.<br />
Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "SHMConfig" "on"<br />
Option "TapButton1" "1"<br />
Option "TapButton2" "3"<br />
Option "TapButton3" "2"<br />
Option "PalmDetect" "on"<br />
Option "VertEdgeScroll" "off"<br />
Option "HorizEdgeScroll" "off"<br />
Option "CornerCoasting" "off"<br />
Option "EdgeMotionUseAlways" "off"<br />
Option "AreaLeftEdge" "10"<br />
Option "AreaRightEdge" "1270"<br />
EndSection<br />
'''OS X like MultiTouch Gestures''' ''currently broken due to newer synaptic drivers!'' For users looking to add more of OS X's multitouch gestures to Arch, [https://github.com/iberianpig/xSwipe xSwipe] is a highly customisable, light weight pearl script, which does just that. Once installed and configured (see xSwipe wiki on Github) I would recommend adding xSwipe as a [[Autostarting|start up item]].<br />
<br />
==== Keyboard ====<br />
<br />
MacBook keyboard works by default. For swaping fn keys with Fx keys see [[Apple Keyboard]].<br />
<br />
To enable it you can map with right application like '''xbindkeys''' or through DE preferences; but another very good way, that we recommend, is to install {{AUR|pommed}} from the [[AUR]].<br />
<br />
Edit the {{ic|/etc/pommed.conf}} according to your hardware on MacBook, building<br />
it from {{ic|/etc/pommed.conf.mac}} or {{ic|/etc/pommed.conf.ppc}} example files.<br />
<br />
Note that you can also run it without a configuration file, the defaults may work for you. Then enable and start pommed [[Systemd]] service.<br />
<br />
systemctl enable pommed<br />
systemctl start pommed<br />
<br />
{{Tip|if you are using Gnome or KDE you can easily configure ''3rd level functionality'', ''multimedia key'', etc. in Keyboard Preferences.}}<br />
<br />
{{Note|See the [[Xorg input hotplugging]] page for other configuration information.}}<br />
<br />
===== Keyboard Backlight =====<br />
<br />
The keyboard backlight is controlled by {{ic|/sys/class/leds/smc::kbd_backlight}}. Write the desired value to {{ic|brightness}} in that directory.<br />
<br />
You may also use [https://aur.archlinux.org/packages/kbdlight/ kbdlight] to control keyboard backlight though scripts or by running it via sxhkd or xbindkeys. It has the advantage of allowing keyboard light-level changes without being root.<br />
<br />
====== NVIDIA note ======<br />
<br />
If the brightness does not function correctly through pommed, make sure you have installed the {{AUR|nvidia-bl}} package and insert<br />
<br />
find . -name "*" -exec sed -i 's/mbp_backlight/nvidia_backlight/' '{}' \;<br />
<br />
into the second line of the pommed PKGBUILD build() function and remake the package. From [https://bbs.archlinux.org/viewtopic.php?id=105091 this forum post].<br />
<br />
Another possible solution is to modify the pommed PKGBUILD build():<br />
<br />
find . -name "*" -exec sed -i 's/nvidia_backlight/apple_backlight/' '{}' \;<br />
<br />
If the previous does not work try the following,<br />
<br />
run nvidia-settings, edit the file '/etc/X11/xorg.conf' and add this line into the Device section:<br />
<br />
Option "RegistryDwords" "EnableBrightnessControl=1"<br />
Save and reboot and check backlight buttons work.<br />
More information available at [https://help.ubuntu.com/community/MacBookPro5-5/Precise#LCD ubuntu macbook pro 5,5]<br />
<br />
=== Wi-Fi ===<br />
<br />
Different MacBook models have different wireless cards.<br />
<br />
You can easily check what card do your MacBook have by:<br />
<br />
# lspci | grep Network<br />
<br />
* If you have an Atheros card, all should work out-of-the-box.<br />
<br />
* If you have a Broadcom card, follow the [[Broadcom BCM4312]] page.<br />
<br />
* 5.0 and 6.0 generation MacBooks may have a BCM43xx, follow the instructions for the broadcom-wl driver on the [[Broadcom wireless]] page. The interfaces can swap during reboot so its best to define them in a udev rule (instructions on the [[Broadcom wireless]] page).<br />
<br />
* 8.1 generation MacBooks have BCM4331, for which support is not present in either Linux (3.0 and 3.1) or the proprietary drivers by Broadcom. There is however preliminary support for it in Linux 3.2. To run the drivers on earlier kernels, you will need to use [http://wireless.kernel.org/en/users/Download compat-wireless]<br />
<br />
{{Note|If your connection frequently drops, you may have to turn off Wi-Fi power management. If you are running [[pm-utils]], you may override wireless power management by creating an executable file {{ic|/etc/pm/wireless}} with the lines:<br />
#!/bin/sh<br />
iwconfig wlp2s0 power off<br />
}}<br />
<br />
=== Power management ===<br />
<br />
==== Laptop-mode-tools ====<br />
<br />
Because the MacBook is obviously a laptop, you may wish to control its power management features using something like [[Laptop Mode Tools]].<br />
<br />
However, Laptop Mode Tools is known to disable the keyboard in console mode after being idle for a few seconds (does not happen when using X). If this happens to you set <br />
<br />
CONTROL_USB_AUTOSUSPEND=0<br />
<br />
in {{ic|/etc/laptop-mode/conf.d/usb-autosuspend.conf}}. See this [https://bbs.archlinux.org/viewtopic.php?pid=984831 forum thread] for the original workaround.<br />
<br />
==== Suspend to RAM (kernel suspend) ====<br />
<br />
Suspend (the kernel suspend) should work out of the box (I had a problem in which the machine would "suspend immediately after resume" in certain conditions when suspending by closing the lid. This was solved by de-selecting the option "event_when_closed_battery" in gconf-editor &rarr; gnome-power-manager &rarr; actions).<br />
<br />
For a macbook2,1 (bought in 2007) s2ram works using <br />
s2ram -f -a 3 <br />
To make it work with kde4 you have to create a file named "config" into /etc/pm/config.d containing<br />
SLEEP_MODULE="uswsusp"<br />
S2RAM_OPTS="-f -a 3"<br />
<br />
For a MacBook Pro 3,1 (bought in 2008), the following command should work, both in X and in a console:<br />
s2ram -f -a 1<br />
<br />
Note: If you use pm-utils suspending lead (at least for me) disk freeze. Try changing /etc/pm/config.d/module to<br />
SLEEP_MODULE=tuxonice<br />
<br />
For a macbook5.5, s2ram may work using (be sure to run it in X)<br />
s2ram -f -p -m<br />
<br />
==== Suspend to disk (hibernate) ====<br />
<br />
{{Merge|Swap#Swap file|These part is duplication of Swap file section in Swap. Should check and merge it to Swap.}}<br />
Hibernate should work if you have a swap partition. If you opted for a swap file because of the MBR limitation to 4 primary partitions, you can still get hibernate functionality by following these instructions (this is mostly taken from http://ubuntuforums.org/showthread.php?t=1042946):<br />
<br />
* Create a swapfile (here 2G = bs*count):<br />
# dd if=/dev/zero of=/swapfile bs=1024 count=2M<br />
It is recommended, but not necessary, to create the swapfile on a newly created partition, so that fragmentation is minimum.<br />
# chmod 600 swapfile <br />
# mkswap swapfile <br />
mkswap: swapfile: warning: do not erase bootbits sectors<br />
on whole disk. Use -f to force.<br />
Setting up swapspace version 1, size = 2097148 KiB<br />
no label, UUID=6bf46166-4f9e-433a-aac1-91cb3f5cf8ba<br />
# <br />
Note that we will not use this UUID later.<br />
* Add the swapfile in {{ic|/etc/fstab}}:<br />
/swapfile none swap sw 0 0<br />
* Determine the UUID of partition on which the swapfile is (/usr/bin/blkid is provided by util-linux-ng)<br />
# blkid -g<br />
# blkid<br />
/dev/sda4: UUID="388014d3-1d18-4ca0-980e-ef2f9fdebde4" TYPE="ext3" <br />
388014d3-1d18-4ca0-980e-ef2f9fdebde4 is the number we are looking for.<br />
* Determine the physical offset of the swapfile:<br />
# filefrag -v /swapfile | head<br />
Filesystem type is: ef53<br />
Filesystem cylinder groups is approximately 132<br />
File size of /swapfile is 2147483648 (524288 blocks, blocksize 4096)<br />
ext logical physical expected length flags<br />
0 0 24576 12 merged<br />
1 12 24589 24587 1024 merged<br />
2 1036 25615 25612 1024 merged<br />
3 2060 26640 26638 1024 merged<br />
4 3084 27665 27663 1024 merged<br />
5 4108 28690 28688 1024 merged<br />
$ <br />
Here, 24576 is the number we want.<br />
* Edit {{ic|/boot/grub/grub.cfg}} and add:<br />
resume=/dev/disk/by-uuid/388014d3-1d18-4ca0-980e-ef2f9fdebde4 resume_offset=24576<br />
to your kernel stanza options (or use the kopt method as in the post). Note that the "resume=UUID=" actually did not work for me. I had to use the {{ic|/dev/disk/by-uuid}} syntax.<br />
<br />
Note: "ro" has to be at the end of the line, like this:<br />
kernel /boot/vmlinuz-linux root=/dev/sda4 '''resume=/dev/sda4 resume_offset=24576''' ro<br />
* Nothing to do with update-grub nor mkinitcpio.<br />
* Reboot once<br />
* Try to hibernate<br />
<br />
=== Light sensor ===<br />
<br />
If you want to use the built in light sensor to automatically adjust screen and keyboard backlight brightness check out<br />
'''Lighter''' [https://github.com/Janhouse/lighter] (simple perl script, easy to fine-tune) and '''Lightum''' [https://github.com/poliva/lightum] (Requires Gnome or KDE but is older and more complete than Lighter).<br />
<br />
=== Sound ===<br />
<br />
{{Tip|MBP 5.5: since kernel 2.6.32 this works out of the box - just unmute the front speakers and store the sound level }}<br />
<br />
First of all follow [[ALSA]] wiki page, then if something does not work correctly, continue reading this part.<br />
<br />
Edit your {{ic|/etc/modprobe.d/50-sound.conf}} or {{ic|/etc/modprobe.d/modprobe.conf}} appending this line:<br />
<br />
options snd_hda_intel model=intel-mac-auto<br />
<br />
This should automatically specify the codec in your MacBook. Alternatively, for MacBookPro5,X, you can use:<br />
<br />
options snd_hda_intel model=mb5<br />
<br />
(note that the jack output is controlled with "HP").<br />
<br />
If you have an iMac8,1, you should instead use<br />
<br />
options snd-hda-intel model=mbp3 position_fix=2<br />
<br />
You can try to specify other options, that depend on your hardware. All other possible settings are listed in Kernel Documentation, avaible online:<br />
<br />
* [http://www.kernel.org/doc/Documentation/sound/alsa/ALSA-Configuration.txt ALSA-Configuration.txt]<br />
* [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt HD-Audio.txt]<br />
* [http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt HD-Audio-Models.txt].}}<br />
<br />
Then, reboot.<br />
<br />
=== Bluetooth ===<br />
<br />
{{Note|Bluetooth should work out-of-the box. The hid2hci utility is used by default since bluez 4.91}}<br />
<br />
See the article on [[Bluetooth]] to install and configure all software needed.<br />
<br />
=== Webcam ===<br />
<br />
==== iSight ====<br />
<br />
{{Note|Linux kernel from 2.6.26 includes the '''Linux UVC driver''' natively. MBP 6.2+ (Kernel ~2.6.37+) iSight works out of the box without the need to use firmware from OS X.}}<br />
<br />
You can use many applications to test the camera:<br />
<br />
* MPlayer<br />
<br />
# mplayer tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0 -fps 30<br />
<br />
* Cheese<br />
* Skype<br />
* Ekiga<br />
<br />
A simple solution to take snapshots is:<br />
<br />
# mplayer tv:// -vf screenshot<br />
<br />
and the pressing the s key to take a snapshot. Files are of the format shot\d\d\d\d.png and are reported in the standard output.<br />
<br />
==== Facetime HD ====<br />
The Facetime HD webcam (included on 2013 MBAs onwards) [http://mactaris.blogspot.co.uk/2013/07/webcam-settings-20-will-support.html is no longer UVC device], and therefore, does not work out of the box.<br />
<br />
=== Temperature Sensors ===<br />
<br />
For reading temperature just install and configure '''lm_sensors'''.<br />
See [[Lm sensors]] page.<br />
<br />
=== Color Profile ===<br />
<br />
We can use color profiles from Mac OS.<br />
<br />
First, install {{AUR|xcalib}} from the [[AUR]].<br />
<br />
Second copy pre-saved color profiles placed in {{ic|/Library/ColorSync/Profiles/Displays/}} on Mac OS partition to {{ic|~/colorprofiles/}} for example.<br />
<br />
There are color profile files agree with in MacBook models; select the right one:<br />
<br />
* '''Color LCD-4271800.icc''' for MacBook Pro with CoreDuo CPU<br />
* '''Color LCD-4271880.icc''' for MacBook with Core2Duo<br />
* '''Color LCD-4271780.icc''' for MacBook (not Pro) based on CoreDuo or Core2Duo.<br />
<br />
{{Tip|Also Mac OS allows to save current color profile from ''Displays > Color'' section of the ''Mac OS System Preferences'', in this case file is saved to {{ic|/Users/<username>/Library/ColorSync/Profiles}}.}}<br />
<br />
Finally you can activate it by running<br />
<br />
# xcalib ~/colorprofile.icc<br />
<br />
{{Note|Previous command set the color profile only for the current session; this mean that you must run it every time you login in your system. For automating it you can execute the command by '''Autostart Application''', concording with your DE (or add the command to your login manager's initialization script, e.g. /etc/gdm/Init/Default).}}<br />
<br />
=== Apple Remote ===<br />
<br />
First, to correctly install and configure the '''lirc''' software that control IR see [[Lirc]] wiki.<br />
<br />
Then make LIRC use {{ic|/dev/usb/hiddev0}} (or {{ic|/dev/hiddev0}}) by editing {{ic|/etc/conf.d/lircd}}. Here is how mine look:<br />
<br />
#<br />
# Parameters for lirc daemon<br />
#<br />
LIRC_DEVICE="/dev/usb/hiddev0"<br />
LIRC_DRIVER="macmini"<br />
LIRC_EXTRAOPTS=""<br />
LIRC_CONFIGFILE="/etc/lirc/lircd.conf"<br />
<br />
Use '''irrecord''' (available when installing '''lirc''') to create a configuration file matching your remote control signals (alternatively, you can try to use the {{ic|lircd.conf}} below):<br />
<br />
# irrecord -d /dev/usb/hiddev0 -H macmini output_conf_file<br />
<br />
Start '''lircd''' and use '''irw''' to check if it works.<br />
<br />
Example of an {{ic|/etc/lirc/lircd.conf}}:<br />
<br />
begin remote<br />
<br />
name lircd.conf.macbook<br />
bits 8<br />
eps 30<br />
aeps 100<br />
<br />
one 0 0<br />
zero 0 0<br />
pre_data_bits 24<br />
pre_data 0x87EEFD<br />
gap 211994<br />
toggle_bit_mask 0x87EEFD01<br />
<br />
begin codes<br />
Repeat 0x01<br />
Menu 0x03<br />
Play 0x05<br />
Prev 0x09<br />
Next 0x06<br />
Up 0x0A<br />
Down 0x0C<br />
end codes<br />
<br />
end remote<br />
<br />
=== HFS partition sharing ===<br />
<br />
First, we need {{AUR|hfsprogs}} package from AUR. <br />
<br />
we have to list our partitions. Use<br />
<br />
fdisk -l /dev/sda<br />
<br />
example output:<br />
<br />
# fdisk -l /dev/sda<br />
Device Boot Start End Blocks Id Type<br />
/dev/sda1 1 26 204819 ee GPT<br />
/dev/sda2 26 13602 109051903+ af Unknown<br />
/dev/sda3 * 13602 14478 7031250 83 Linux<br />
/dev/sda4 14478 14594 932832+ 82 Linux swap / Solaris<br />
<br />
As we see, the "Unknown" partition is our OS X partition, which is located in {{ic|/dev/sda2}}.<br />
<br />
Create a "mac" folder in /media:<br />
<br />
# mkdir /media/mac<br />
<br />
Add at the end of ''/etc/fstab'' this line:<br />
<br />
/dev/sda2 /media/mac hfsplus auto,user,rw,exec 0 0<br />
<br />
Mount it :<br />
<br />
mount /media/mac<br />
<br />
and check it:<br />
<br />
ls /media/mac<br />
<br />
=== HFS+ Partitions ===<br />
<br />
HFS+ partitions, now the default in Mac OS X, are not fully supported by Linux and are mounted as read-only by default. In order to write to an HFS+ partition, it is necessary to disable journaling. This can be accomplished using Mac OS X Disk Utility. Refer to this [http://support.apple.com/kb/ht2355 Apple support page] for more information.<br />
<br />
===Home Sharing===<br />
<br />
'''''UID Synchronization'''''<br />
<br />
==== In OS X ====<br />
<br />
{{Note|It is strongly recommended that UID/GID manipulation be done immediately after a new user account is created, in OS X as well as in Arch Linux. If you installed OS X from scratch, then this operation is guaranteed to work after logging into your account for the first time.}}<br />
<br />
===== Step 1: change UID and GID(s) =====<br />
<br />
'''''Pre-Leopard'''''<br />
<br />
# Open '''NetInfo Manager''' located in the ''/Applications/Utilities'' folder.<br />
# If not done for you already, enable access to user account transactions by clicking on the closed lock at the bottom of the window, and entering your account password, or root password if you have created a root account.<br />
# Navigate to ''/users/<new user name>'' where <new user name> is the name of the account that will have read/write access to the folder that will be shared with the primary user in Arch.<br />
# Change the '''UID''' value to 1000 (the value used by default for first user created in Arch).<br />
# Also change the '''GID''' value to 1000 (the value used by default for user account creation in Arch).<br />
# Navigate to {{ic|/groups/<new user name>}}, automatically saving the changes you have made so far.<br />
<br />
{{Note|If you get an error message that the transaction is not allowed, log out and log back in.}}<br />
<br />
'''''Leopard'''''<br />
<br />
In Leopard, the '''NetInfo Manager''' application is not present. A different set of steps is required for UID synchronization:<br />
<br />
# Open '''System Preferences'''.<br />
# Click on '''Users & Groups'''.<br />
# Unlock the pane if not already done so.<br />
# Right-click on the desired user and select '''Advanced Options'''.<br />
# Write down the value of the '''User ID''' field, you will need it later on. Change both the UID and GID to match the UID and GID of the account wished to be shared with in Arch (1000 by default for the first user created in Arch).<br />
<br />
===== Step 2: change "Home" permissions =====<br />
<br />
# Open up '''Terminal''' in the {{ic|/Applications/Utilities}} folder.<br />
<br />
# Enter the following command to reclaim the permission settings of your home folder, replacing <your user name>, <your user group> and <your old UID> with the user name whose UID and GID values you just changed, the group name whose GID value you just changed and the old UID number, respectively.<br />
<br />
# find /User/<your user name> -user <your old UID> -exec chown <your user name>:<your user group> {} \;<br />
<br />
==== In Arch ====<br />
<br />
To synchronize your UID in Arch Linux, you are advised to perform this operation ''while creating a new user account''.<br />
It is therefore recommended that you do this as soon as you install Arch Linux.<br />
<br />
Now you must substitute Arch's home with Mac OS's home, by modify entries of {{ic|/etc/fstab}}.<br />
<br />
=== Avoid long EFI wait before booting ===<br />
<br />
If your Macbook spends 30 seconds with "white screen" before booting you need to tell the firmware where is the booting partition.<br />
<br />
Boot Mac OS X, if do not have it installed, you can use the install DVD (select language, then click Utilities->Terminal), or another MacBook with Mac OS X (connect the two computers via firewire or thunderbolt, start the other Macbook keeping pressed T, boot your MacBook keeping pressed Options).<br />
<br />
Either way, once you got a Mac OS X terminal running on your MacBook you need to execute, as root, a different command if the boot partition is EFI or it is not:<br />
<br />
# bless --device /dev/disk0s1 --setBoot # if the booting partition is EFI<br />
or<br />
# bless --device /dev/disk0s1 --setBoot --legacy # if the booting partition is not EFI<br />
<br />
(given that if your GRUB or EFI is on sda1, /dev/disk1s2 if it is on sdb2, etc). See also https://bbs.archlinux.org/viewtopic.php?pid=833215 and https://support.apple.com/kb/HT1533 .<br />
<br />
=== Mute startup chime ===<br />
<br />
If you forgot to mute before installing, you can still mute again if you have a Mac OS X install disk. Boot from it, select language, then click ''Utilities > Terminal'', and enter<br />
<br />
# /usr/bin/nvram SystemAudioVolume=%01<br />
<br />
(or whatever volume you want).<br />
<br />
== rEFIt ==<br />
<br />
{{Note|<br />
* You probably want to have a look at [http://www.rodsbooks.com/refind/ refind], which is some type of successor of rEFIt.<br />
* This is not a requirement. It only gives you a menu to choose between OS X and Arch Linux upon every boot.<br />
}}<br />
<br />
For more see, [http://refit.sourceforge.net/myths/ refit myths].<br />
<br />
In OS X, download the ".dmg" from [http://refit.sourceforge.net/ Refit Homepage] and install it.<br />
<br />
{{Note|If you have already partitioned your hard disk in preparation for the Arch installation, rEFIt may not be enabled by default. You will have to run the "enable.sh" script installed in /efi/refit/.}}<br />
<br />
Open up '''Terminal''' and enter:<br />
<br />
cd /efi/refit;<br />
./enable.sh<br />
<br />
=== Problems with rEFIt ===<br />
<br />
If you experience problems after the install of Arch or rEFIt, especially is the right OS is not showing up to boot to or if it dumps you at a GRUB prompt stuck like the following:<br />
<br />
GRUB>_<br />
<br />
Then have a look at this link:<br />
<br />
http://mac.linux.be/content/problems-refit-and-grub-after-installation<br />
<br />
It can give you a basic idea on how to boot off the Arch live cd, mount the problem Arch install, chroot, use gptsync, and reinstall GRUB. This is probably for more advanced users who can translate the commands from a debian system to an Arch system and also apply it to the partitions on their machine. Be careful not to install GRUB in the wrong spot.<br />
<br />
If you need a copy of gptsync you can wget it from here:<br />
http://packages.debian.org/sid/gptsync<br />
or try these, for 64 bit:<br />
<br />
wget http://ftp.us.debian.org/debian/pool/main/r/refit/gptsync_0.14-2_amd64.deb<br />
<br />
and for i386:<br />
<br />
wget http://ftp.us.debian.org/debian/pool/main/r/refit/gptsync_0.14-2_i386.deb<br />
<br />
since they are .deb packages you will need the program {{AUR|deb2targz}}.<br />
<br />
==== Mavericks upgrade breaks Arch boot option ====<br />
For some multi-boot users who utilize a separate Linux boot partition, the OSX Mavericks upgrade may overwrite the boot partition with Apple's own recovery boot filesystem. This breaks the Archlinux boot option in rEFIt/rEFInd. The best way to proceed in this situation is to abandon a separate boot partition and use the EFI system partition (ESP) to install the bootloader of your choice. It is also recommended that you use rEFInd instead of rEFIt as development on the latter has halted.<br />
<br />
Assuming grub2 as the bootloader:<br />
<br />
Use the Arch LiveCD to boot to a shell and [[Change Root|chroot]] to your broken Archlinux environment.<br />
<br />
Mount the ESP on /boot.<br />
<br />
Edit the fstab and remove the old boot partition and make ESP the new boot partition. Now mount the ESP as the new /boot parition.<br />
# mount -a<br />
<br />
Reinstall linux.<br />
# pacman -S linux<br />
<br />
Create a new initramfs and vmlinuz in /boot.<br />
# mkinitcpio -p linux<br />
<br />
Install grub.<br />
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck --debug<br />
<br />
Create a new grub.cfg file.<br />
# grub-mkconfig -o /boot/EFI/grub/grub.cfg<br />
<br />
Make sure that grub.cfg is in the same directory as grubx64.efi.<br />
<br />
Generate a new refind_linux.conf file in /boot simply by running mkrlconf.sh which comes with rEFInd.<br />
<br />
Exit the chroot environment.<br />
<br />
Reboot. You should see a new entry for Archlinux in rEFInd and it should boot to your Archlinux installation.<br />
<br />
== Model-specific information ==<br />
<br />
=== MacBook ===<br />
<br />
==== Mid 2007 13" - Version 2,1 ====<br />
<br />
{{Note|I used the 201212 ISO image.}}<br />
{{Warning|Current linux-3.8.x packages do not work with their EFI stub and refind-efi. Either use an older package ({{Pkg|linux}} 3.7.10-1 works with {{Pkg|refind-efi}} 0.6.8-1) or you may use a bootloader which does not rely on EFI stub. Similiar issues are reported with {{Pkg|gummiboot}}.}}<br />
<br />
Since older Macbooks have a 32bit EFI running, the usual installation image is not recognized. You need to either remove the UEFI support from the disc ([[Unified_Extensible_Firmware_Interface#Remove_UEFI_boot_support_from_ISO]]) or build a 32bit EFI version of the disc. The paragraphs below will take the first path to success, booting into BIOS mode and its pitfalls. For a try the other way round, read [[Unified_Extensible_Firmware_Interface#Create_UEFI_bootable_USB_from_ISO]] first.<br />
<br />
First prepare your harddisc according to your wishes. In this scenario it was a "Linux only" approach with<br />
<br />
/dev/sda1 HFS+ AF00 200M -> EFI boot system on Apple HFS+ partition<br />
/dev/sda2 ext4 8300 147G -> arch system<br />
/dev/sda3 swap 8200 1G -> swap<br />
<br />
The {{AUR|hfsprogs}} package contains the tools to handle HFS/HFS+ filesystems. The rEFInd bootloader recognizes it on its own. Usually the partition for the EFI bootloader is a FAT32 (vfat) partition. In this case I tried rEFIt first, which apparently needs the HFS+ filesystem to work, and kept it at that.<br />
<br />
The mount points are:<br />
<br />
/dev/sda2 -> /<br />
/dev/sda1 -> /boot/efi<br />
<br />
The bootloader in use was [http://www.rodsbooks.com/refind/index.html rEFInd] instead of rEFIt. To install it, the rEFInd homepage provides a good guide. The pitfall here is, that the system bootet in BIOS compatibility mode and not in EFI mode. You cannot therefore use {{ic|efibootmgr}}, because the EFI variables (even with 'modprobe efivars') are not available. While installing the system get {{AUR|mactel-boot}} from the [[AUR]]. The {{ic|hfs-bless}} utility comes in handy, when blessing the EFI bootloader. This is done by calling e.g.:<br />
<br />
hfs-bless /boot/efi/EFI/refind/refind.efi<br />
<br />
Since the Linux kernel does come with EFI stub enabled, it seemed a good idea to run it through a bootloader first. Especially if it runs not out of the box. But using rEFInd makes GRUB (or any other bootloader) obsolete, because of that.<br />
<br />
Not running out of the box is unfortunately the initial stage for the kernel. Since we installed it in BIOS mode, two modules are missing to grant access to the root partition while booting. Hence the 'initfsram-linux.img' can not be found/loaded. Adding the following modules to your 'MODULES' line in {{ic|/etc/mkinitcpio.conf}} solved this ([https://bbs.archlinux.org/viewtopic.php?pid=1139226#p1139226 original post]).<br />
<br />
{{hc|/etc/mkinitcpio.conf|2=<br />
MODULES="ahci sd_mod"}}<br />
<br />
Rebuild your kernel image:<br />
<br />
mkinitcpio -p linux<br />
<br />
The bootloader rEFInd can scan kernels even out of the '/boot/efi/...' directory and assumes an efi kernel even without the extension '.efi'. If you do not want to try out special kernels, this should work without the hassle to copy each kernel after building to some spot special.<br />
<br />
If you happen to get multiple entries for one boot image, it often results of a previous installation of a bootloader within the MBR. To remove that, try the following - taken from the [http://ubuntuforums.org/showpost.php?p=7828260&postcount=4 original post]. This is valid for GPT partitioned discs, so please check your environment and save your MBR first.<br />
<br />
# dd if=/dev/zero of=/dev/sda bs=440 count=1<br />
<br />
=== MacBook Pro ===<br />
<br />
* [[MacBookPro Retina]].<br />
<br />
=== MacBook Air===<br />
<br />
==== Mid 2013 13" - Version 6,2 ====<br />
[https://bbs.archlinux.org/viewtopic.php?id=165899 Dedicated forum thread]<br />
===== Installing and booting =====<br />
Booting from a normal 2013.6 USB key works fine, but I could not seem to get either GRUB or Syslinux working.<br />
<br />
I was able to boot by first installing Arch Linux following the Macbook guide at the wiki (having a separate FAT32 /boot partition). Skip the bootloader installation. <br />
<br />
Installing [http://www.rodsbooks.com/refind/getting.html rEFInd] from OS X (important!) and installing the EFI stub loader made me able to boot fine.<br />
<br />
[https://bbs.archlinux.org/viewtopic.php?id=165710 Dedicated thread].<br />
<br />
{{Note| Installing [http://www.rodsbooks.com/refind/getting.html rEFInd] from Linux (or from OS X, but to the esp) also works fine}}<br />
<br />
===== Arch Only Installation =====<br />
This method works without refind and uses grub to boot EFI. Partition as follows:<br />
<br />
/dev/sda1 200M Microsoft basic data<br />
/dev/sda2 256M Linux filesystem<br />
/dev/sda3 4G Linux swap<br />
/dev/sda4 108.6G Linux filesystem<br />
<br />
sda1 can also be a HFS+ partition for EFI. This example chooses to use FAT32 (vfat). Although swap is optional, it is highly recommended due to a suspend/resume bug where the monitor can only be displayed at 0% or 100%. Instead of sda4 for root and home, an alternative partition scheme would be to make sda4 as root and sda5 as home.<br />
<br />
Format and mount:<br />
<br />
mkfs.vfat -F 32 /dev/sda1<br />
mkfs.ext2 /dev/sda2<br />
mkswap /dev/sda3<br />
swapon /dev/sda3<br />
mkfs.ext4 /dev/sda4<br />
<br />
mount /dev/sda4 /mnt<br />
mkdir /mnt/boot<br />
mount/dev/sda2 /mnt/boot<br />
mkdir /mnt/boot/efi<br />
mount /dev/sda1 /mnt/boot/efi<br />
<br />
Finish the installation according to the [https://wiki.archlinux.org/index.php/Beginners'_Guide#Select_a_mirror Beginner's Guide] and skip anything after the bootloader. After you have generated your initramfs and set root passwd follow below to setup grub:<br />
<br />
pacman -S grub efibootmgr<br />
mount -t efivarfs efivarfs /sys/firmware/efi/efivars<br />
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug<br />
grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg<br />
cp /boot/efi/EFI/grub/grub.cfg /boot/grub/grub.cfg<br />
cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi}}<br />
<br />
Now you can exit/unmount/reboot:<br />
exit<br />
umount -R /mnt<br />
reboot<br />
<br />
===== Stability problems =====<br />
{{Note| Passing {{ic|<nowiki>libata.force=1:noncq</nowiki>}} to the kernel parameters solves the problem.}}<br />
This is the big worry for me. Every now and then my system hangs for a brief moment and everything involving net or disk access just hangs there for a while and then it seems to work. <br />
So far it only seems to happen when I run something disk- or CPU-intensive. Also had an occassion when I could not start X and just got this repeating all over my screen:<br />
<br />
ata1.00: failed command: WRITE FPDMA QUEUED<br />
ata1.00: cmd 61/08:f0:10:8c:c2/00:00:0b:00:00/40 tag 30 ncq 4096 out<br />
res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)<br />
ata1.00: status: { DRDY }<br />
<br />
On the next attempt it worked fine.<br />
I did SMART short and long tests on my disk and they returned fine:<br />
<br />
[http://pastebin.com/vRE4T2Ld smartctl -a]<br />
<br />
There are some messages in my boot that indicate this could be disk and/or ACPI related.<br />
<br />
These are with 2013-06 ISO, 3.9.7-1 2013 x86_64 kernel.<br />
<br />
[http://pastebin.com/mjTJaPFa journalctl -b]<br />
Seems to only work with the headphone jack, not with the speakers.<br />
<br />
[http://pastebin.com/SdAcHuKh dmesg]<br />
<br />
===== Marvell ATA suspend bugs =====<br />
If you have 2013 Macbook Air with a Marvell 128 gig drive, you might get the following ata errors instead after pm-suspend/resumes:<br />
<br />
ata1: exception Emask 0x10 SAct 0x0 SErr 0x10000 action 0xe frozen<br />
ata1: irq_stat 0x00400000, PHY RDY changed<br />
ata1: SError: { PHYRdyChg }<br />
ata1: hard resetting link<br />
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 310)<br />
ata1.00: unexpected _GTF length (8)<br />
ata1.00: unexpected _GTF length (8)<br />
ata1.00: configured for UDMA/33<br />
ata1: EH complete<br />
<br />
Try what Patrick and Tejun figured out on the [https://bugzilla.kernel.org/show_bug.cgi?id=62351 linux bug]. I followed what Patrick describes with sata_alpm, and I haven't seen the issue since.<br />
<br />
===== Suspend/Resume =====<br />
Brightness is either 0% or 100% after resuming from suspend. Until the kernel is fixed, use patjak's fix by installing {{AUR|mba6x_bl-dkms}}. Patjak's github is at [https://github.com/patjak/mba6x_bl].<br />
===== WiFi =====<br />
WiFi does not work out of the box. Install {{AUR|broadcom-wl-dkms}} to connect to a network. <br />
<br />
===== Touchpad =====<br />
Since 3.10.3 kernel touchpad works perfectly with {{Pkg|xf86-input-synaptics}}.<br />
<br />
===== Audio =====<br />
As of Linux 3.12, sound works out of the box. If you do not get sound with only {{pkg|alsa-utils}}, you may need to create a /etc/asound.conf with below entries:<br />
<br />
defaults.pcm.card 1<br />
defaults.pcm.device 0<br />
defaults.ctl.card 1<br />
<br />
==== Mid 2012 13" — version 5,2 ====<br />
<br />
Kernel panics using default boot media under arch kernel 3.5. Adding <code>intremap=off</code> fixes this. Additionally, there are problems loading the <code>applesmc</code> module (meaning the temperature sensors, fan, and keyboard backlight do not work). These problems are fixed in the linux 3.6-rc4 mainline kernel (I have tested).<br />
<br />
==== Mid 2012 11.5" — Version 5,1 ====<br />
<br />
If you have issues with waking from sleep while in X11 such as a black screen or showing the console with a frozen mouse cursor then remove xf86-input-synaptics and install mtrack-git from aur. This fixed errors such as <br />
(EE) [dix] bcm5974: unable to find touch point 0<br />
and backtraces that causes X11 to crash. This might apply to Version 5,2 assuming they use the same trackpad.<br />
<br />
===== Installing using the Archboot 2012.06 image =====<br />
<br />
Several people have reported problems installing Arch Linux on the MBA version 5,2 (See [https://bbs.archlinux.org/viewtopic.php?id=144089 problems booting archlinux on a MacBook Air Mid 2012]). A common problem is that the screen is not detected and therefore goes black when the installer boots. To fix this problem one has to select the normal install (Not the LTS) during boot and press tab to edit the boot flags. Then add noapic flag to the boot line. This should fix the screen going black. Install the system as you normally would. It may help later in the configuration process if the support packages are installed already at this stage.<br />
<br />
When the install has finished again add the noapic flag to the GRUB boot line (if you use GRUB) and also add i915.diescreaming=1 (or perhaps i915.die). This should keep the screen from going black when booting the new system. After you enter the system the wireless driver should be loaded. If you installed the support packages during installation you should have the wifi-menu command. Run it and select the network you want to use. One could also use wpa_supplicant but wifi-menu is quite fast to use at this stage. Now you are ready to upgrade the system. As of writing there have been a lot of changes to Archlinux since the 2012.06 image of Archboot was released ([https://www.archlinux.org/news/filesystem-upgrade-manual-intervention-required-1/ filesystem] and [https://www.archlinux.org/news/the-lib-directory-becomes-a-symlink/ glibc]). Therefore the upgrade process can be a bit difficult. The current solution has sucessfully upgraded a standart archboot version to a up-to-date version as of October 2012 and this step should be obsolete in future releases of archboot.<br />
<br />
First ignore the new "big" changes to Arch Linux,<br />
<br />
pacman -Suy --ignore glibc,libarchive,curl,filesystem <br />
<br />
If this only upgrades pacman then run the command again. Remember to make sure that pacman is ignoring the packages you do not want upgraded now. Otherwise you may break the system and have to reinstall! Now upgrade to the new filesystem,<br />
<br />
pacman -S filesystem --force<br />
<br />
As described in [[DeveloperWiki:usrlib|Glibc upgrade guide]] there may be conflicts with installed packages that require the /lib directory. Follow the guide and remove any packages that use /lib. The stock 3.4.2 kernel from Archboot should be on this list so first upgrade this,<br />
<br />
pacman -S linux<br />
<br />
This may give some errors saying that the system may not boot because of missing modules. Ignore this warning for now. The stock install may also contain gcc in the /lib directory so also remove this if needed and any other packages that have conflicts. Now Glibc should be the only package in /lib so run the system upgrade and accept all changes, <br />
<br />
pacman -Su<br />
<br />
Finally reinstall the kernel so that it can find the correct modules.<br />
<br />
Now this command should not give any errors like last time. You can also reinstall gcc at this point. After a rebooted the system should startup and the new kernel should have fixed the problem with the screen going black. If want to boot Xorg then you may need to remove the i915.diescreaming=1 line from GRUB. If not then attach a external screen and try to fix the problem that way. Some people have reported commands that may help on the [https://bbs.archlinux.org/viewtopic.php?id=144089 forum].<br />
<br />
==== Mid 2011 — version 4,x ====<br />
<br />
Works out-of-the-box since kernel 3.2. It is recommended to use [[Archboot]], install [[GRUB]] and use EFI.<br />
<br />
==== Early 2008 — version 1,1 ====<br />
<br />
Everything works out of the box though you will need [https://www.archlinux.org/packages/core/x86_64/b43-fwcutter/ b43-fwcutter] (or simply [https://aur.archlinux.org/packages/b43-firmware/ b43-firmware]) for the wireless adapter to work.<br />
<br />
Since this model has only one USB port, you may find it easiest to install Arch with a powered USB hub. Plug a USB network adapter (wireless or ethernet adapter to plug into a USB port) and your Arch installation media into the USB hub.<br />
<br />
If you can't get any result by scanning wireless network after boot, unload modules <code>b43</code> and <code>ssb</code> and load them again:<br />
<br />
rmmod ssb<br />
rmmod b43<br />
modprobe b43<br />
<br />
There is a good chance you will find what's wrong with DMA from the dmesg log.<br />
<br />
Even if you can scan wireless networks after reloading the modules, it's still possible that you will only be able to connect to some networks, but not all of them. According to a more detailed discussion here: http://crunchbang.org/forums/viewtopic.php?id=17368, adding <code>pio=1,qos=0</code> options to the b43 module can solve this problem.<br />
<br />
I tested this for a 13' MacBook Air 1,1 with a BCM4321 chipset, and it works.<br />
<br />
== See also ==<br />
<br />
* http://www.netsoc.tcd.ie/~theorie/interblag/2010/01/30/installing-arch-linux-on-a-mac-pro/<br />
* http://allanmcrae.com/2010/04/installing-arch-on-a-macbook-pro-5-5/<br />
* http://allanmcrae.com/2012/04/installing-arch-on-a-macbook-pro-8-1/<br />
* http://linux-junky.blogspot.com/2011/08/triple-boot-archlinux-windows-7-and-mac.html</div>Nyuxhttps://wiki.archlinux.org/index.php?title=Steam&diff=257397Steam2013-05-17T22:42:50Z<p>Nyux: clarified installation details for 32-bit systems</p>
<hr />
<div>[[Category:Gaming]]<br />
[[Category:Wine]]<br />
[[ja:Steam]]<br />
[[zh-CN:Steam]]<br />
{{Article summary start}}<br />
{{Article summary text|[http://store.steampowered.com/about/ Steam] is a content delivery system made by Valve Software. It is best known as the platform needed to play Source Engine games (e.g. Half-Life 2, Counter-Strike). Today it offers many games from many other developers.}}<br />
<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Wine}}<br />
{{Article summary wiki|Steam/Game-specific troubleshooting}}<br />
{{Article summary end}}<br />
<br />
See the [[Wikipedia:Steam (software)|Steam Wikipedia page]] and the page in the [http://appdb.winehq.org/objectManager.php?sClass=version&iId=19444 Wine Application Database] for more info.<br />
<br />
== Native Steam on Linux ==<br />
<br />
{{Note|Arch Linux is not [https://support.steampowered.com/kb_article.php?ref&#61;1504-QHXN-8366 officially supported].}}<br />
<br />
{{Note|If you have a pure 64-bit installation, you will need to enable the [[multilib]] repository in pacman. This is because the Steam client is a 32-bit application. It may also make sense to install multilib-devel to provide some important multilib libraries. You also most likely need to install the 32-bit version of your graphics driver to run Steam. To check the architecture of your machine, run {{ic|uname -m}}}}<br />
<br />
On a 64-bit version of Arch, you will find {{Pkg|steam}} in the [[multilib]] repository; 32-bit installations will find it in the [[community]] repository.<br />
<br />
Steam makes heavy usage of the Arial font. A decent Arial font to use is {{Pkg|ttf-liberation}} or the official Microsoft Arial fonts: {{aur|ttf-microsoft-arial}} or {{aur|ttf-ms-fonts}} packages from the [[AUR]]. Asian languages require {{Pkg|wqy-zenhei}} to display properly.<br />
<br />
Steam is '''not supported''' on this distribution. As such some fixes are needed on the users part to get things functioning properly. Several games have dependencies which may be missing from your system. If a game fails to launch (often without error messages) then make sure all of the libraries listed below that game are installed. Please install {{Pkg|libtxc_dxtn}} and {{Pkg|lib32-libtxc_dxtn}} with mesa drivers as almost all games require it.<br />
<br />
===Troubleshooting===<br />
{{Note|In addition to being documented here, any bug/fix/error should be, if not already, reported on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page].}}<br />
<br />
{{Note|Connection problems may occur when using DD-WRT with peer-to-peer traffic filtering.}}<br />
<br />
====GUI problems with KDE====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/594 issue 594]<br />
<br />
If you are using KDE and you have problems with the GUI (such as lag or random crashes), in KDE system settings, go to "Desktop Effects" in the "Workspace Appearance and Behaviour" section. Open the "Advanced" tab. Change "Compositing type" from XRender to OpenGL.<br />
<br />
====The close button only minimizes the window====<br />
: Valve GitHub [https://github.com/ValveSoftware/steam-for-linux/issues/1025 issue 1025]<br />
<br />
To close the Steam window (and remove it from the taskbar) when you press '''x''', but keep Steam running in the tray, set the environment variable {{ic|STEAM_FRAME_FORCE_CLOSE}} to {{ic|1}}. You can do this by launching Steam using the following command.<br />
$ STEAM_FRAME_FORCE_CLOSE=1 steam<br />
<br />
====Flash not working on 64-bit systems====<br />
: Steam Support [https://support.steampowered.com/kb_article.php?ref=1493-GHZB-7612 article]<br />
<br />
First ensure {{pkg|lib32-flashplugin}} is installed. It should be working at this point, if not create a local Steam flash plugin folder<br />
mkdir ~/.steam/bin32/plugins/<br />
and set a symbolic link to the global lib32 flash plugin file in your upper new folder<br />
ln -s /usr/lib32/mozilla/plugins/libflashplayer.so ~/.steam/bin32/plugins/<br />
<br />
====Text is corrupt or missing====<br />
The Steam Support [https://support.steampowered.com/kb_article.php?ref=1974-YFKL-4947 instructions] for Windows seem to work on Linux also: Simply download [https://support.steampowered.com/downloads/1974-YFKL-4947/SteamFonts.zip SteamFonts.zip] and install them (copying to ~/.fonts/ works at least).<br />
<br />
====Error on some games: S3TC support is missing====<br />
Install the following dependencies:<br />
* {{pkg|libtxc_dxtn}}<br />
* {{pkg|lib32-libtxc_dxtn}}<br />
<br />
====Black screen on (Valve?) games (but audio works)====<br />
Check the Steam stdout/stderr for Error lines, some quick dependencies for reference:<br />
* {{pkg|lib32-intel-dri}} (not confirmed as absolutely necessary)<br />
<br />
run steam from console via primusrun steam<br />
<br />
If using KDE, disable all desktop effects (Alt + Shift + F12) before starting Steam.<br />
<br />
====SetLocale('en_US.UTF-8') fails at game startup====<br />
Edit /etc/locale.gen in your favourite editor and uncomment the line {{ic|en_US.UTF-8 UTF-8}}. Then run {{ic|locale-gen}} as root.<br />
<br />
===Tips===<br />
<br />
====Launching games with custom commands, such as Bumblebee/Primus====<br />
<br />
Steam has fortunately added support for launching games using your own custom command. To do so, navigate to the Library page, right click on the selected game, click Properties, and Set Launch Options. Steam replaces the tag '''%command%''' with the command it actually wishes to run. For example, to launch Team Fortress 2 with primusrun and at resolution 1920x1080, you would enter:<br />
<br />
primusrun %command% -w 1920 -h 1080<br />
<br />
If you are running the [[Linux-ck]] kernel, you may have some success in reducing overall latencies and improving performance by launching the game in SCHED_ISO (low latency, avoid choking CPU) via {{pkg|schedtool}}<br />
<br />
schedtool -I -e %command% <other arguments><br />
<br />
===Skins for Steam===<br />
<br />
The Steam interface can be fully customized by copying its various interface files in its skins directory and modifying them.<br />
<br />
====Steam Skin Manager====<br />
<br />
The process of applying a skin to Steam can be greatly simplified using {{aur|steam-skin-manager}} from the AUR. The package also comes with a hacked version of the Steam launcher which allows the window manager to draw its borders on the Steam window.<br />
<br />
As a result, skins for Steam will come in two flavors, one with and one without window buttons. The skin manager will prompt you whether you use the hacked version or not, and will automatically apply the theme corresponding to your GTK theme if it is found. You can of course still apply another skin if you want.<br />
<br />
The package ships with two themes for the default Ubuntu themes, Ambiance and Radiance. A Faience theme is under development and already has its own package on the AUR {{aur|steam-skin-faience-git}}.<br />
<br />
== Steam on Wine ==<br />
<br />
Install {{Pkg|wine}} from the official repositories and follow the instructions provided in the [[Wine|article]].<br />
<br />
Install the required Microsoft fonts {{AUR|ttf-microsoft-tahoma}} and {{AUR|ttf-ms-fonts}} from the [[AUR]] or through {{AUR|winetricks-svn}}.<br />
{{Note|If you have access to Windows discs, you may want to install {{AUR|ttf-win7-fonts}} instead.}}<br />
<br />
If you have an old Wine prefix ({{ic|~/.wine}}), you should remove it and let Wine create a new one to avoid problems (you can transfer over anything you want to keep to the new Wine prefix).<br />
<br />
===Installation===<br />
<br />
Download and run the Steam installer from [http://store.steampowered.com/about/ steampowered.com]. It is no longer an {{ic|.exe}} file so you have to start it with {{ic|msiexec}}: <br />
$ msiexec /i SteamInstall.msi<br />
<br />
===Starting Steam===<br />
<br />
On x86:<br />
$ wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe<br />
<br />
On x86_64 (with steam installed to a clean wine prefix):<br />
$ wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe<br />
<br />
Alternatively, you may use this method:<br />
<br />
$ wine "C:\\Program Files\\Steam\\steam.exe" <br />
<br />
You should consider making an alias to easily start steam (and put it in your shell's rc file), example:<br />
alias steam='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
<br />
{{Note|If you are using an nvidia card through bumblebee, you should prefix those commands with {{ic|optirun}}.}}<br />
<br />
===Tips===<br />
<br />
====Performance====<br />
<br />
Consider disabling wine debugging output by adding this to your shell rc file:<br />
export WINEDEBUG=-all<br />
or, just add it to your steam alias to only disable it for steam:<br />
alias steam='WINEDEBUG=-all wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe >/dev/null 2>&1 &'<br />
Additionally, Source games rely on a paged pool memory size specification for audio, and WINE by default does not have this set. To set it:<br />
wine reg add "HKLM\\System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\" /v PagedPoolSize /t REG_DWORD /d 402653184 /f<br />
<br />
==== Application Launch Options ====<br />
Go to "Properties" -> "Set Launch Options", e.g.:<br />
{{bc|-console -dxlevel 90 -width 1280 -height 1024<br />
}}<br />
* {{ic|console}}<br />
Activate the console in the application to change detailed applications settings.<br />
* {{ic|dxlevel}}<br />
Set the application's DirectX level, e.g. 90 for DirectX Version 9.0. It is recommended to use the video card's DirectX version to prevent crashes. See the official Valve Software Wiki http://developer.valvesoftware.com/wiki/DirectX_Versions for details.<br />
* {{ic|width}} and {{ic|height}}<br />
Set the screen resolution. In some cases the graphic settings are not saved in the application and the applications always starts in the default resolution.<br />
Please refer to http://developer.valvesoftware.com/wiki/Launch_options for a complete list of launch options.<br />
<br />
==== Using a Pre-Existing Steam Install ====<br />
<br />
If you have a shared drive with Windows, or already have a Steam installation somewhere else, you can simply symlink the Steam directory to {{ic|~/.wine/drive_c/Program Files/Steam/}} . However, be sure to do '''all''' the previous steps in this wiki. Confirm Steam launches and logs into your account, ''then'' do this:<br />
<br />
cd ~/.wine/drive_c/Program\ Files/ <br />
mv Steam/ Steam.backup/ (or you can just delete the directory)<br />
ln -s /mnt/windows_partition/Program\ Files/Steam/<br />
<br />
{{Note|If you have trouble starting Steam after symlinking the entire Steam folder, try linking only the {{ic|steamapps}} subdirectory in your existing wine steam folder instead.}}<br />
<br />
{{Note|If you still have trouble starting games, use {{ic|sudo mount --bind /path/to/SteamApps ~/.local/share/Steam/SteamApps -ouser&#61;your-user-name }}, this is the only thing that worked for me with {{ic|TF2}}}}<br />
<br />
====Running Steam in a second X Server====<br />
<br />
Assuming you are using the script above to start Steam, make a new script, called {{ic|x.steam.sh}}. You should run this when you want to start Steam in a new X server, and {{ic|steam.sh}} if you want Steam to start in the current X server. <br />
<br />
If due to misconfiguration a black screen is shown, you could always close down the second X server by pressing {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}}.<br />
<br />
{{bc|1=<br />
#!/bin/bash <br />
<br />
DISPLAY=:1.0<br />
<br />
xinit $HOME/steam.sh $* -- :1<br />
}}<br />
<br />
Now you can use {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F7}} to get to your first X server with your normal desktop, and {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|F8}} to go back to your game. <br />
<br />
Because the second X server is ''only'' running the game and the first X server with all your programs is backgrounded, performance should increase. In addition, it is much more convenient to switch X servers while in game to access other resources, rather than having to exit the game completely or {{Keypress|Alt}}-{{Keypress|Tab}} out. Finally, it is useful for when Steam or WINE goes haywire and leaves a bunch of processes in memory after Steam crashes. Simply {{Keypress|Ctrl}} + {{Keypress|Alt}} + {{Keypress|Backspace}} on the second X server to kill that X and all processes on that desktop will terminate as well. <br />
<br />
'''If you get errors that look like "Xlib: connection to ":1.0" refused by server" when starting the second X''': You will need to adjust your X permissions.<br />
<br />
'''If you lose the ability to use the keyboard while using Steam''': This is an odd bug that does not happen with other games. A solution is to use a WM in the second X as well. Thankfully, you do not need to run a large WM. Openbox and icewm have been confirmed to fix this bug (evilwm, pekwm, lwm ''do not'' work), but the icewm taskbar shows up on the bottom of the game, thus it's recommended to use [[Openbox]]. Install {{Pkg|openbox}} from the [[official repositories]], then add {{Ic|openbox &}} to the top of your {{ic|steam.sh}} file. Note you can run other programs (ex. Teamspeak &) or set X settings (ex. xset, xmodmap) before the WINE call as well.<br />
<br />
====Steam Links in Firefox, Chrome, Etc====<br />
To make steam:// urls in your browser connect with steam in wine, there are several things you can do. One involves making steam url-handler keys in gconf, another involves making protocol files for kde, others involve tinkering with desktop files or the Local State file for chromium. These seem to only work in firefox or under certain desktop configurations. One way to do it that works more globally is using mimeo, a tool made by Xyne (an Arch TU) which follows. For another working and less invasive (but firefox-only) way, see the first post [http://ubuntuforums.org/showthread.php?t=433548 here] .<br />
<br />
* Make {{ic| /usr/bin/steam}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# Steam wrapper script<br />
#<br />
exec wine "c:\\program files\\steam\\steam.exe" "$@"<br />
}}<br />
<br />
* Make it executable.<br />
<br />
# chmod +x /usr/bin/steam<br />
<br />
* Install {{AUR|mimeo}} and {{AUR|xdg-utils-mimeo}} from AUR. You will need to replace the existing {{pkg|xdg-utils}} if installed. In XFCE, you will also need {{pkg|xorg-utils}}.<br />
<br />
* Create {{ic|~/.config/mimeo.conf}} with your favorite editor and paste:<br />
<br />
{{bc|<br />
/usr/bin/steam %u<br />
^steam://<br />
}}<br />
<br />
* Lastly, open {{ic|/usr/bin/xdg-open}} in your favorite editor. Go to the {{ic|detectDE()}} section and change it to look as follows:<br />
<br />
{{bc|<nowiki><br />
detectDE()<br />
{<br />
#if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde;<br />
#elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome;<br />
#elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome;<br />
#elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce;<br />
#elif [ x"$DESKTOP_SESSION" == x"LXDE" ]; then DE=lxde;<br />
#else DE=""<br />
#fi<br />
DE=""<br />
}<br />
</nowiki>}}<br />
<br />
* Restart the browser and you should be good to go. In chromium, you cannot enter a {{ic|steam://}} link in the url box like you can with firefox. The forum link above has a {{ic|steam://open/friends}} link to try if needed.<br />
<br />
{{Note|If you have any problems with file associations after doing this, simply revert to regular xdg-utils and undo your changes to {{ic|/usr/bin/xdg-open}}.}}<br />
{{Note|Those on other distributions that stumble upon this page, see the link above for firefox specific instructions. No easy way to get it working on Chromium on other distros exists.}}<br />
<br />
====No text rendered problem====<br />
If there is no text/font rendered when starting steam you should try to start steam with the parameter {{ic|-no-dwrite}}. Read more in [https://bbs.archlinux.org/viewtopic.php?id=146223 the forum thread about it.]<br />
{{bc|wine ~/.wine/drive_c/Program\ Files\ \(x86\)/Steam/Steam.exe -no-dwrite}}<br />
<br />
== See Also ==<br />
* https://wiki.gentoo.org/wiki/Steam</div>Nyuxhttps://wiki.archlinux.org/index.php?title=Ranger&diff=256008Ranger2013-05-03T21:32:35Z<p>Nyux: corrected "itext" to "poppler"</p>
<hr />
<div>[[Category:File managers]]<br />
[[Category:File systems]]<br />
[[fr:ranger]]<br />
{{Article summary start|Summary}}<br />
{{Article summary text|A guide to installing and configuring ranger}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|atool}}<br />
{{Article summary end}}<br />
{{DISPLAYTITLE:ranger}}<br />
'''ranger''' is a text-based file manager written in Python with vi-style key bindings. It has an extensive set of features , and you can accomplish file management tasks with a few keystrokes with no need for the mouse.<br />
<br />
==Installing==<br />
{{Pkg|ranger}} can be installed from the [[Official Repositories|official repositories]] with [[pacman]]:<br />
# pacman -S ranger<br />
There is also [https://aur.archlinux.org/packages.php?ID=35421 ranger-git] in [[AUR]].<br />
<br />
Optional, for file previews with "scope.sh":<br />
* {{Pkg|libcaca}} (img2txt) for previewing images<br />
* {{Pkg|highlight}} for syntax highlighting of code<br />
* {{Pkg|atool}} for previews of archives<br />
* {{Pkg|lynx}}, {{Pkg|w3m}} or {{Pkg|elinks}} for previews of html pages<br />
* {{Pkg|poppler}} (pdftotext) for pdf previews<br />
* {{Pkg|transmission-show}} for viewing bit-torrent information<br />
* {{Pkg|mediainfo}} or {{Pkg|perl-image-exiftool}} for viewing information about media files<br />
<br />
==Running==<br />
To start ranger, launch a terminal such as xterm, and type the command {{ic|ranger}}. Or, you can use the command <br />
xterm -e ranger<br />
<br />
==Comparison with other File Managers==<br />
Compared to graphical mouse-based file managers, ranger is much more efficient, but still visually appealing. ranger has one pane with multiple columns for different directories in the path, and file previews on the right. Compared to double-pane file managers, ranger shows more directory and file information. You can quickly move between directories using keystrokes, bookmarks or the command history. Previews of files and directory contents automatically show up for the current selection. ranger's features include: vi-style key bindings, bookmarks, selections, tagging, tabs, command history, the ability to make symbolic links, several console modes, and a task view. ranger has customizable commands and key bindings, including bindings to external scripts. The closest competitor is [[Vifm]], which has two panes and vi-style key bindings, but has fewer features overall.<br />
<br />
==Documentation==<br />
ranger's man page can be opened by typing {{ic|?}}. You can also press {{ic|1?}} for a list of key bindings, {{ic|2?}} for a list of commands and {{ic|3?}} for a list of settings.<br />
<br />
==Customization==<br />
After startup, ranger creates a directory {{ic|~/.config/ranger/}}. You can copy the default configuration files to this directory with the following command:<br />
<pre>ranger --copy-config=all</pre> <br />
They can then be customized. Some basic knowledge of python is useful.<br />
<br />
*{{ic|rc.conf}} controls startup commands and key bindings<br />
*{{ic|commands.py}} controls the commands which are launched with the ":" key<br />
*{{ic|rifle.conf}} controls the applications used when a given type of file is launched.<br />
<br />
You can launch files with "l" (ell) or "<Enter>". For {{ic|rc.conf}}, you need only include changes from the default file, since both are loaded. For {{ic|commands.py}}, if you do not include the whole file, put this line at the top:<br />
<pre><br />
from ranger.api.commands import *<br />
</pre><br />
<br />
===Binding keys===<br />
Use the file {{ic|~/.config/ranger/rc.conf}} to modify key bindings. There are many keybindings already defined, and you can learn the syntax by reading the file.<br />
<br />
The following example shows how to use "DD" to move selected files to a directory {{ic|~/.Trash/}}. Put this code in {{ic|~/.config/ranger/rc.conf}}<br />
<pre><br />
# move to trash<br />
map DD shell mv -t /home/myname/.config/ranger/Trash %s<br />
</pre><br />
<br />
===Defining commands===<br />
Continuing the above example, adding the following entry to {{ic|~/.config/ranger/commands.py}} would define a command to empty the trash directory {{ic|~/.Trash}}.<br />
<pre><br />
class empty(Command):<br />
""":empty<br />
<br />
Empties the trash directory ~/.Trash<br />
"""<br />
<br />
def execute(self):<br />
self.fm.run("rm -rf /home/myname/.Trash/{*,.[^.]*}")<br />
</pre><br />
To use it, you would type ":empty<Enter>", using tab completion if desired.<br />
<br />
{{Warning|Note that [^.] is an essential part of the above command. Otherwise, it will remove all files and directories of the form ..*, thereby wiping out everything in your home directory.}}<br />
<br />
===Opening files with a given application===<br />
<br />
Modify {{ic|~/.config/ranger/rifle.conf}}. Since the beginning lines are executed first, you should put your modifications at the beginning of the file. For example, the following entry will open a tex file with kile.<br />
<pre><br />
ext tex = kile "$@"<br />
</pre><br />
<br />
==Useful commands==<br />
===External Drives===<br />
External drives can be automatically mounted with an [[Udev]] rule or with the help of an automounting Udev wrapper. Drives mounted under {{ic|/media}} can be easily accessed by pressing {{keypress|gm}} (go, media).<br />
<br />
===Network Drives===<br />
<br />
===Archive Related===<br />
These commands use {{Pkg|atool}} to perform archive operations.<br />
<br />
====Extraction====<br />
The following command implements archive extraction by copying (yy) one or more archive files and then executing ":extracthere" on the desired directory.<br />
<br />
<pre><br />
import os<br />
from ranger.core.loader import CommandLoader<br />
<br />
class extracthere(Command):<br />
def execute(self):<br />
""" Extract copied files to current directory """<br />
copied_files = tuple(self.fm.env.copy)<br />
<br />
if not copied_files:<br />
return<br />
<br />
def refresh(_):<br />
cwd = self.fm.env.get_directory(original_path)<br />
cwd.load_content()<br />
<br />
one_file = copied_files[0]<br />
cwd = self.fm.env.cwd<br />
original_path = cwd.path<br />
au_flags = ['-X', cwd.path]<br />
au_flags += self.line.split()[1:]<br />
au_flags += ['-e']<br />
<br />
self.fm.env.copy.clear()<br />
self.fm.env.cut = False<br />
if len(copied_files) == 1:<br />
descr = "extracting: " + os.path.basename(one_file.path)<br />
else:<br />
descr = "extracting files from: " + os.path.basename(one_file.dirname)<br />
obj = CommandLoader(args=['aunpack'] + au_flags \<br />
+ [f.path for f in copied_files], descr=descr)<br />
<br />
obj.signal_bind('after', refresh)<br />
self.fm.loader.add(obj)<br />
</pre><br />
<br />
====Compression====<br />
The following command allows the user to compress several files on the current directory by marking them and then calling ":compress <package name>". It supports name suggestions by getting the basename of the current directory and appending several possibilities for the extension.<br />
<br />
<pre><br />
import os<br />
from ranger.core.loader import CommandLoader<br />
<br />
class compress(Command):<br />
def execute(self):<br />
""" Compress marked files to current directory """<br />
cwd = self.fm.env.cwd<br />
marked_files = cwd.get_selection()<br />
<br />
if not marked_files:<br />
return<br />
<br />
def refresh(_):<br />
cwd = self.fm.env.get_directory(original_path)<br />
cwd.load_content()<br />
<br />
original_path = cwd.path<br />
parts = self.line.split()<br />
au_flags = parts[1:]<br />
<br />
descr = "compressing files in: " + os.path.basename(parts[1])<br />
obj = CommandLoader(args=['apack'] + au_flags + \<br />
[os.path.relpath(f.path, cwd.path) for f in marked_files], descr=descr)<br />
<br />
obj.signal_bind('after', refresh)<br />
self.fm.loader.add(obj)<br />
<br />
def tab(self):<br />
""" Complete with current folder name """<br />
<br />
extension = ['.zip', '.tar.gz', '.rar', '.7z']<br />
return ['compress ' + os.path.basename(self.fm.env.cwd.path) + ext for ext in extension]<br />
</pre><br />
<br />
===Image Mounting===<br />
The following command assumes you are using [[cdemu]] as your image mounter and some kind of system like [[autofs]] which mounts the virtual drive to a specified location ('/media/virtualrom' in this case). '''Don't forget to change mountpath to reflect your system settings'''.<br />
<br />
To mount an image (or images) to a cdemud virtual drive from ranger you select the image files and then type ':mount' on the console. The mounting may actually take some time depending on your setup (in mine it may take as long as one minute) so the command uses a custom loader that waits until the mount directory is mounted and then opens it on the background in tab 9.<br />
<br />
<pre><br />
import os, time<br />
from ranger.core.loader import Loadable<br />
from ranger.ext.signals import SignalDispatcher<br />
from ranger.ext.shell_escape import *<br />
<br />
class MountLoader(Loadable, SignalDispatcher):<br />
"""<br />
Wait until a directory is mounted<br />
"""<br />
def __init__(self, path):<br />
SignalDispatcher.__init__(self)<br />
descr = "Waiting for dir '" + path + "' to be mounted"<br />
Loadable.__init__(self, self.generate(), descr)<br />
self.path = path<br />
<br />
def generate(self):<br />
available = False<br />
while not available:<br />
try:<br />
if os.path.ismount(self.path):<br />
available = True<br />
except:<br />
pass<br />
yield<br />
time.sleep(0.03)<br />
self.signal_emit('after')<br />
<br />
class mount(Command):<br />
def execute(self):<br />
selected_files = self.fm.env.cwd.get_selection()<br />
<br />
if not selected_files:<br />
return<br />
<br />
space = ' '<br />
self.fm.execute_command("cdemu -b system unload 0")<br />
self.fm.execute_command("cdemu -b system load 0 " + \<br />
space.join([shell_escape(f.path) for f in selected_files]))<br />
<br />
mountpath = "/media/virtualrom/"<br />
<br />
def mount_finished(path):<br />
currenttab = self.fm.current_tab<br />
self.fm.tab_open(9, mountpath)<br />
self.fm.tab_open(currenttab)<br />
<br />
obj = MountLoader(mountpath)<br />
obj.signal_bind('after', mount_finished)<br />
self.fm.loader.add(obj)<br />
</pre><br />
<br />
==Web Resources==<br />
* [http://nongnu.org/ranger ranger] web page.<br />
* [https://lists.nongnu.org/mailman/listinfo/ranger-users ranger mailing list]<br />
* Arch Linux [https://bbs.archlinux.org/viewtopic.php?id=93025 forum thread].<br />
* [http://github.com/hut/ranger GitHub-page]<br />
* [http://dotshare.it/category/fms/ranger/ DotShare.it] configurations.</div>Nyuxhttps://wiki.archlinux.org/index.php?title=Ranger&diff=255037Ranger2013-04-24T04:13:17Z<p>Nyux: corrected "caca-utils" to "libcaca"</p>
<hr />
<div>[[Category:File managers]]<br />
[[Category:File systems]]<br />
[[fr:ranger]]<br />
{{Article summary start|Summary}}<br />
{{Article summary text|A guide to installing and configuring ranger}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|atool}}<br />
{{Article summary end}}<br />
{{DISPLAYTITLE:ranger}}<br />
'''ranger''' is a text-based file manager written in Python with vi-style key bindings. It has an extensive set of features , and you can accomplish file management tasks with a few keystrokes with no need for the mouse.<br />
<br />
==Installing==<br />
{{Pkg|ranger}} can be installed from the [[Official Repositories|official repositories]] with [[pacman]]:<br />
# pacman -S ranger<br />
There is also [https://aur.archlinux.org/packages.php?ID=35421 ranger-git] in [[AUR]].<br />
<br />
Optional, for file previews with "scope.sh":<br />
* {{Pkg|libcaca}} (img2txt) for previewing images<br />
* {{Pkg|highlight}} for syntax highlighting of code<br />
* {{Pkg|atool}} for previews of archives<br />
* {{Pkg|lynx}}, {{Pkg|w3m}} or {{Pkg|elinks}} for previews of html pages<br />
* {{Pkg|itext}} (pdftotext) for pdf previews<br />
* {{Pkg|transmission-show}} for viewing bit-torrent information<br />
* {{Pkg|mediainfo}} or {{Pkg|exiftool}} for viewing information about media files<br />
<br />
==Running==<br />
To start ranger, launch a terminal such as xterm, and type the command {{ic|ranger}}. Or, you can use the command <br />
xterm -e ranger<br />
<br />
==Comparison with other File Managers==<br />
Compared to graphical mouse-based file managers, ranger is much more efficient, but still visually appealing. ranger has one pane with multiple columns for different directories in the path, and file previews on the right. Compared to double-pane file managers, ranger shows more directory and file information. You can quickly move between directories using keystrokes, bookmarks or the command history. Previews of files and directory contents automatically show up for the current selection. ranger's features include: vi-style key bindings, bookmarks, selections, tagging, tabs, command history, the ability to make symbolic links, several console modes, and a task view. ranger has customizable commands and key bindings, including bindings to external scripts. The closest competitor is [[Vifm]], which has two panes and vi-style key bindings, but has fewer features overall.<br />
<br />
==Documentation==<br />
ranger's man page can be opened by typing {{ic|?}}. You can also press {{ic|1?}} for a list of key bindings, {{ic|2?}} for a list of commands and {{ic|3?}} for a list of settings.<br />
<br />
==Customization==<br />
After startup, ranger creates a directory {{ic|~/.config/ranger/}}. You can copy the default configuration files to this directory with the following command:<br />
<pre>ranger --copy-config=all</pre> <br />
They can then be customized. Some basic knowledge of python is useful.<br />
<br />
*{{ic|rc.conf}} controls startup commands and key bindings<br />
*{{ic|commands.py}} controls the commands which are launched with the ":" key<br />
*{{ic|rifle.conf}} controls the applications used when a given type of file is launched.<br />
<br />
You can launch files with "l" (ell) or "<Enter>". For {{ic|rc.conf}}, you need only include changes from the default file, since both are loaded. For {{ic|commands.py}}, if you do not include the whole file, put this line at the top:<br />
<pre><br />
from ranger.api.commands import *<br />
</pre><br />
<br />
===Binding keys===<br />
Use the file {{ic|~/.config/ranger/rc.conf}} to modify key bindings. There are many keybindings already defined, and you can learn the syntax by reading the file.<br />
<br />
The following example shows how to use "DD" to move selected files to a directory {{ic|~/.Trash/}}. Put this code in {{ic|~/.config/ranger/rc.conf}}<br />
<pre><br />
# move to trash<br />
map DD shell mv -t /home/myname/.config/ranger/Trash %s<br />
</pre><br />
<br />
===Defining commands===<br />
Continuing the above example, adding the following entry to {{ic|~/.config/ranger/commands.py}} would define a command to empty the trash directory {{ic|~/.Trash}}.<br />
<pre><br />
class empty(Command):<br />
""":empty<br />
<br />
Empties the trash directory ~/.Trash<br />
"""<br />
<br />
def execute(self):<br />
self.fm.run("rm -rf /home/myname/.Trash/{*,.[^.]*}")<br />
</pre><br />
To use it, you would type ":empty<Enter>", using tab completion if desired.<br />
<br />
{{Warning|Note that [^.] is an essential part of the above command. Otherwise, it will remove all files and directories of the form ..*, thereby wiping out everything in your home directory.}}<br />
<br />
===Opening files with a given application===<br />
<br />
Modify {{ic|~/.config/ranger/rifle.conf}}. Since the beginning lines are executed first, you should put your modifications at the beginning of the file. For example, the following entry will open a tex file with kile.<br />
<pre><br />
ext tex = kile "$@"<br />
</pre><br />
<br />
==Useful commands==<br />
===External Drives===<br />
External drives can be automatically mounted with an [[Udev]] rule or with the help of an automounting Udev wrapper. Drives mounted under {{ic|/media}} can be easily accessed by pressing {{keypress|gm}} (go, media).<br />
<br />
===Network Drives===<br />
<br />
===Archive Related===<br />
These commands use {{Pkg|atool}} to perform archive operations.<br />
<br />
====Extraction====<br />
The following command implements archive extraction by copying (yy) one or more archive files and then executing ":extracthere" on the desired directory.<br />
<br />
<pre><br />
import os<br />
from ranger.core.loader import CommandLoader<br />
<br />
class extracthere(Command):<br />
def execute(self):<br />
""" Extract copied files to current directory """<br />
copied_files = tuple(self.fm.env.copy)<br />
<br />
if not copied_files:<br />
return<br />
<br />
def refresh(_):<br />
cwd = self.fm.env.get_directory(original_path)<br />
cwd.load_content()<br />
<br />
one_file = copied_files[0]<br />
cwd = self.fm.env.cwd<br />
original_path = cwd.path<br />
au_flags = ['-X', cwd.path]<br />
au_flags += self.line.split()[1:]<br />
au_flags += ['-e']<br />
<br />
self.fm.env.copy.clear()<br />
self.fm.env.cut = False<br />
if len(copied_files) == 1:<br />
descr = "extracting: " + os.path.basename(one_file.path)<br />
else:<br />
descr = "extracting files from: " + os.path.basename(one_file.dirname)<br />
obj = CommandLoader(args=['aunpack'] + au_flags \<br />
+ [f.path for f in copied_files], descr=descr)<br />
<br />
obj.signal_bind('after', refresh)<br />
self.fm.loader.add(obj)<br />
</pre><br />
<br />
====Compression====<br />
The following command allows the user to compress several files on the current directory by marking them and then calling ":compress <package name>". It supports name suggestions by getting the basename of the current directory and appending several possibilities for the extension.<br />
<br />
<pre><br />
import os<br />
from ranger.core.loader import CommandLoader<br />
<br />
class compress(Command):<br />
def execute(self):<br />
""" Compress marked files to current directory """<br />
cwd = self.fm.env.cwd<br />
marked_files = cwd.get_selection()<br />
<br />
if not marked_files:<br />
return<br />
<br />
def refresh(_):<br />
cwd = self.fm.env.get_directory(original_path)<br />
cwd.load_content()<br />
<br />
original_path = cwd.path<br />
parts = self.line.split()<br />
au_flags = parts[1:]<br />
<br />
descr = "compressing files in: " + os.path.basename(parts[1])<br />
obj = CommandLoader(args=['apack'] + au_flags + \<br />
[os.path.relpath(f.path, cwd.path) for f in marked_files], descr=descr)<br />
<br />
obj.signal_bind('after', refresh)<br />
self.fm.loader.add(obj)<br />
<br />
def tab(self):<br />
""" Complete with current folder name """<br />
<br />
extension = ['.zip', '.tar.gz', '.rar', '.7z']<br />
return ['compress ' + os.path.basename(self.fm.env.cwd.path) + ext for ext in extension]<br />
</pre><br />
<br />
===Image Mounting===<br />
The following command assumes you are using [[cdemu]] as your image mounter and some kind of system like [[autofs]] which mounts the virtual drive to a specified location ('/media/virtualrom' in this case). '''Don't forget to change mountpath to reflect your system settings'''.<br />
<br />
To mount an image (or images) to a cdemud virtual drive from ranger you select the image files and then type ':mount' on the console. The mounting may actually take some time depending on your setup (in mine it may take as long as one minute) so the command uses a custom loader that waits until the mount directory is mounted and then opens it on the background in tab 9.<br />
<br />
<pre><br />
import os, time<br />
from ranger.core.loader import Loadable<br />
from ranger.ext.signals import SignalDispatcher<br />
from ranger.ext.shell_escape import *<br />
<br />
class MountLoader(Loadable, SignalDispatcher):<br />
"""<br />
Wait until a directory is mounted<br />
"""<br />
def __init__(self, path):<br />
SignalDispatcher.__init__(self)<br />
descr = "Waiting for dir '" + path + "' to be mounted"<br />
Loadable.__init__(self, self.generate(), descr)<br />
self.path = path<br />
<br />
def generate(self):<br />
available = False<br />
while not available:<br />
try:<br />
if os.path.ismount(self.path):<br />
available = True<br />
except:<br />
pass<br />
yield<br />
time.sleep(0.03)<br />
self.signal_emit('after')<br />
<br />
class mount(Command):<br />
def execute(self):<br />
selected_files = self.fm.env.cwd.get_selection()<br />
<br />
if not selected_files:<br />
return<br />
<br />
space = ' '<br />
self.fm.execute_command("cdemu -b system unload 0")<br />
self.fm.execute_command("cdemu -b system load 0 " + \<br />
space.join([shell_escape(f.path) for f in selected_files]))<br />
<br />
mountpath = "/media/virtualrom/"<br />
<br />
def mount_finished(path):<br />
currenttab = self.fm.current_tab<br />
self.fm.tab_open(9, mountpath)<br />
self.fm.tab_open(currenttab)<br />
<br />
obj = MountLoader(mountpath)<br />
obj.signal_bind('after', mount_finished)<br />
self.fm.loader.add(obj)<br />
</pre><br />
<br />
==Web Resources==<br />
* [http://nongnu.org/ranger ranger] web page.<br />
* Arch Linux [https://bbs.archlinux.org/viewtopic.php?id=93025 forum thread].<br />
* [http://github.com/hut/ranger GitHub-page]<br />
* [http://dotshare.it/category/fms/ranger/ DotShare.it] configurations.</div>Nyuxhttps://wiki.archlinux.org/index.php?title=Desktop_environment&diff=249709Desktop environment2013-03-07T03:37:42Z<p>Nyux: xfce4 package name was listed as "xfce"</p>
<hr />
<div>[[Category:Desktop environments| ]]<br />
[[es:Desktop Environment]]<br />
[[it:Desktop Environment]]<br />
[[ja:Desktop Environment]]<br />
[[sv:Skrivbordsmiljö]]<br />
[[uk:Desktop Environment]]<br />
[[zh-CN:Desktop Environment]]<br />
{{Article summary start}}<br />
{{Article summary text|In graphical computing, a desktop environment (DE) commonly refers to a style of graphical user interface (GUI) derived from the desktop metaphor that is seen on most modern personal computers. This article provides a general overview of popular desktop environments.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary heading|Resources}}<br />
{{Article summary wiki|Wikipedia:Desktop environment}}<br />
{{Article summary wiki|Wikipedia:X Window System}}<br />
{{Article summary end}}<br />
<br />
'''Desktop environments''' provide a ''complete'' graphical user interface (GUI) for a system by bundling together a variety of X clients written using a common widget toolkit and set of libraries. <br />
<br />
== X Window System == <!-- please keep this section synchronized with [[Window Manager#X Window System]] --><br />
The [[Wikipedia:X Window System|X Window System]] provides the foundation for a graphical user interface. Prior to installing a desktop environment, a functional X server installation is required. See [[Xorg]] for detailed information.<br />
<br />
:''X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the screen and interacting with a mouse and keyboard. X does not mandate the user interface — individual client programs known as window managers handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X is built as an additional (application) abstraction layer on top of the operating system kernel.''<br />
<br />
The user is free to configure their GUI environment in any number of ways. Desktop environments simply provide a complete and convenient means of accomplishing this task.<br />
<br />
== Desktop environments ==<br />
A desktop environment bundles together a variety of X clients to provide common graphical user interface elements such as icons, windows, toolbars, wallpapers, and desktop widgets. Additionally, most desktop environments include a set of integrated applications and utilities.<br />
<br />
Note that users are free to mix-and-match applications from multiple desktop environments. For example, a KDE user may install and run GNOME applications such as the Epiphany web browser, should he/she prefer it over KDE's Konqueror web browser. One drawback of this approach is that many applications provided by desktop environment projects rely heavily upon their DE's respective underlying libraries. As a result, installing applications from a range of desktop environments will require installation of a larger number of dependencies. Users seeking to conserve disk space and avoid [[Wikipedia:software bloat|software bloat]] often avoid such mixed environments, or look into lightweight alternatives.<br />
<br />
Furthermore, DE-provided applications tend to integrate better with their native environments. Superficially, mixing environments with different widget toolkits will result in visual discrepancies (that is, interfaces will use different icons and widget styles). In terms of user experience, mixed environments may not behave similarly (e.g. single-clicking versus double-clicking icons; drag-and-drop functionality) potentially causing confusion or unexpected behavior.<br />
<br />
=== List of desktop environments ===<br />
* {{App|[[GNOME]]|The GNOME project provides two things: The GNOME desktop environment, an attractive and intuitive desktop for users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop. GNOME is free, usable, accessible, international, developer-friendly, organized, supported, and a community.|http://www.gnome.org/about/|{{Pkg|gnome}}}}<br />
<br />
* {{App|[[Mate]]|Mate is a fork of Gnome 2. Mate provides an intuitive and attractive desktop to Linux users using traditional metaphors.|http://www.mate-desktop.org/|{{Pkg|mate}}}}<br />
<br />
* {{App|[[Cinnamon]]|Cinnamon is a fork of Gnome 3. Cinnamon strives to provide a traditional user experience, similar to Gnome 2.|http://cinnamon.linuxmint.com/|{{Pkg|cinnamon}}}}<br />
<br />
* {{App|[[KDE]]|KDE software consists of a large number of individual applications and a desktop workspace as a shell to run these applications. You can run KDE applications just fine on any desktop environment as they are built to integrate well with your system's components. By also using the KDE workspace, you get even better integration of your applications with the working environment while lowering system resource demands.|http://www.kde.org/|{{Pkg|kde}}}}<br />
<br />
* {{App|[[Xfce]]|Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment, while remaining relatively light. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.|http://www.xfce.org/|{{Pkg|xfce4}}}}<br />
<br />
* {{App|[[Enlightenment]]|The [[Enlightenment]] desktop shell provides an efficient yet breathtaking window manager based on the Enlightenment Foundation Libraries along with other essential desktop components like a file manager, desktop icons and widgets. It boasts a unprecedented level of theme-ability while still being capable of performing on older hardware or embedded devices.|http://www.enlightenment.org/|{{Pkg|enlightenment17}}}}<br />
<br />
* {{App|[[LXDE]]|The "Lightweight X11 Desktop Environment" is a fast and energy-saving desktop environment. Maintained by an international community of developers, it comes with a beautiful interface, multi-language support, standard keyboard short cuts and additional features like tabbed file browsing. Fundamentally designed to be lightweight, LXDE uses less CPU and RAM than other environments. It is especially beneficial for cloud computers with low hardware specifications, such as netbooks, mobile devices (e.g. MIDs) or older computers.|http://lxde.org/|{{Pkg|lxde}}}}<br />
<br />
* {{App|[[ROX]]|ROX is a fast, user friendly desktop which makes extensive use of drag-and-drop. The interface revolves around the file manager, following the traditional UNIX view that 'everything is a file' rather than trying to hide the filesystem beneath start menus, wizards, or druids. The aim is to make a system that is well designed and clearly presented. The ROX style favors using several small programs together instead of creating all-in-one mega-applications.|http://roscidus.com/desktop/|{{Pkg|rox}}}}<br />
<br />
* {{App|[[Sugar]]|The Sugar Learning Platform is a computer environment composed of Activities designed to help children from 5 to 12 years of age learn together through rich-media expression. Sugar is the core component of a worldwide effort to provide every child with the opportunity for a quality education &mdash; it is currently used by nearly one-million children worldwide speaking 25 languages in over 40 countries. Sugar provides the means to help people lead fulfilling lives through access to a quality education that is currently missed by so many.|http://wiki.sugarlabs.org/|{{AUR|sugar}} [unsupported]}}<br />
<br />
* {{App|[[Razor-qt]]|Razor-qt is an advanced, easy-to-use, and fast desktop environment based on Qt technologies. It has been tailored for users who value simplicity, speed, and an intuitive interface. While still a new project, Razor-qt already contains all the key DE components.|http://razor-qt.org/|{{AUR|razor-qt}} [unsupported]}}<br />
<br />
* {{App|[[Consort]]|Consort is a desktop environment for SolusOS, fork of GNOME fallback|http://github.org/SolusOS/consort-panel|{{AUR|consort-panel-git}}}}<br />
<br />
=== Comparison of desktop environments ===<br />
{{Expansion}}<br />
<br />
''This section attempts to draw a comparison between popular desktop environments. Note that first-hand experience is the only effective way to truly evaluate whether a desktop environment best suits your needs.''<br />
<br />
{{Wikipedia|Comparison of X Window System desktop environments}}<br />
<br />
{| class="wikitable" border="1" cellpadding="2"<br />
|+ Overview of desktop environments <!-- PLEASE DO NOT OVER-CLUTTER THIS TABLE! --><br />
! Desktop environment !! Widget toolkit !! Window manager !! Terminal emulator !! File manager !! Text editor !! Web browser<br />
|-<br />
| [[Enlightenment]] || [http://trac.enlightenment.org/e/wiki/Elementary Elementary] || [http://trac.enlightenment.org/e/wiki/Enlightenment Enlightenment] || [http://www.enlightenment.org/p.php?p=about/terminology Terminology] || [http://trac.enlightenment.org/e/wiki/EFM EFM] / Entropy / [http://evidence.sourceforge.net/ Evidence] || N/A || [http://trac.enlightenment.org/e/wiki/Eve Eve]<br />
|-<br />
| [[GNOME]] || [[GTK+]] || [[Wikipedia:Mutter_(window_manager)|Mutter]] || [[Wikipedia:GNOME Terminal|GNOME Terminal]] || [http://live.gnome.org/Nautilus Nautilus] || [http://projects.gnome.org/gedit/ gedit] || [[Epiphany]]<br />
|-<br />
| [[KDE]] || [[Qt]] || [[Wikipedia:KWin|KWin]] || [http://konsole.kde.org/ Konsole] || [http://dolphin.kde.org/ Dolphin] || [http://kate-editor.org/ Kate / KWrite] || [http://www.konqueror.org/ Konqueror]<br />
|-<br />
| [[LXDE]] || [[GTK+]] || [[Openbox]] || [http://wiki.lxde.org/en/LXTerminal LXTerminal] || [[PCManFM]] || [http://tarot.freeshell.org/leafpad/ Leafpad] || N/A<br />
|-<br />
| [[Razor-qt]] || [[Qt]] || N/A || N/A || N/A || N/A || N/A<br />
|-<br />
| [[ROX]] || [[GTK+]] || [http://roscidus.com/desktop/OroboROX OroboROX] || [http://roxterm.sourceforge.net/ ROXTerm] || [http://roscidus.com/desktop/ROX-Filer ROX-Filer] || [http://roscidus.com/desktop/Edit Edit] || N/A<br />
|-<br />
| [[Xfce]] || [[GTK+]] || [http://docs.xfce.org/xfce/xfwm4/start Xfwm] || [http://www.xfce.org/projects/terminal Terminal] || [[Thunar]] || N/A * || [[Midori]]<br />
|-<br />
| [[Consort]] || [[GTK+]] || Consortium || N/A || Athena || N/A || N/A<br />
|-<br />
|}<br />
<br />
{{Note|* Mousepad used to be XFCE's recommended text editor, but it is now discontinued. Many people recommend [http://tarot.freeshell.org/leafpad/ Leafpad] or [http://projects.gnome.org/gedit/ gEdit] instead. See http://forum.xfce.org/viewtopic.php?id&#61;7066 for more information.}}<br />
<br />
====Resource use====<br />
In terms of system resources, GNOME and KDE are ''expensive'' desktop environments. Not only do complete installations consume more disk space than lightweight alternatives (Enlightenment, LXDE, Razor-qt and Xfce) but also more CPU and memory resources while in use. This is because GNOME and KDE are relatively ''full-featured'': they provide the most complete and well-integrated environments.<br />
<br />
Enlightenment, LXDE, Razor-qt and Xfce, on the other hand, are ''lightweight'' desktop environments. They are designed to work well on older or lower-power hardware and generally consume fewer system resources while in use. This is achieved by cutting back on ''extra'' features (which some would term ''bloat'').<br />
<br />
====Environment familiarity====<br />
Many users describe KDE as more ''Windows-like'' and GNOME as more ''Mac-like''. This is a very subjective comparison, since either desktop environment can be customized to emulate the Windows or Mac operating systems. See [http://www.psychocats.net/ubuntucat/is-kde-more-windows-like-than-gnome/ Is KDE 'more Windows-like' than Gnome?] and [http://www.jeffwu.net/?p=71 KDE vs Gnome] for more information. ([http://linux.oneandoneis2.org/LNW.htm Linux is Not Windows] is also an excellent resource.)<br />
<br />
== Custom environments ==<br />
Desktop environments represent the simplest means of installing a ''complete'' graphical environment. However, users are free to build and customize their graphical environment in any number of ways should none of the popular desktop environments meet their requirements. Generally, building a custom environment involves selection of a suitable [[Window Manager]] and a number of [[Lightweight Applications]] (a minimalist selection usually includes a terminal emulator, file manager, and text editor).</div>Nyuxhttps://wiki.archlinux.org/index.php?title=IRC_channels&diff=248741IRC channels2013-02-28T19:46:00Z<p>Nyux: /* International IRC Channels */</p>
<hr />
<div>[[Category:Internet Relay Chat]]<br />
[[Category:About Arch]]<br />
[[es:IRC Channels]]<br />
[[pt:IRC Channels]]<br />
[[sr:IRC Channels]]<br />
The size of our community led to the creation of multiple IRC channels. To display all channels that start with "archlinux", do {{ic|/query alis list #archlinux*}}.<br />
<br />
== Official IRC Channels ==<br />
You can find official Arch-related discussion on the following Internet Relay Chat (IRC) channels, located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
{|<br />
|-<br />
| '''#archlinux'''<br />
| The main discussion channel, mostly in English<br />
|-<br />
| '''#archlinux64'''<br />
| x86_64 specific discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-aur'''<br />
| [[Arch User Repository|AUR]] development and packages discussion<br />
|-<br />
| '''#archlinux-bugs'''<br />
| Bug-centric discussion<br />
|-<br />
| '''#archlinux-offtopic'''<br />
| Random off-topic discussions.<br />
|-<br />
| '''#archlinux-pacman'''<br />
| [[Pacman]] development and discussion<br />
|-<br />
| '''#archlinux-projects'''<br />
| Projects development and discussion (initscripts, mkinitcpio, abs, dbscripts, devtools, ...)<br />
|-<br />
| '''#archlinuxppc'''<br />
| PPC discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-multilib'''<br />
| Arch Linux Multilib Project discussion and packaging<br />
|-<br />
| '''#archaudio'''<br />
| Arch Linux Pro Audio Project discussion and packaging<br />
|}<br />
<br />
== International IRC Channels ==<br />
International discussions are available at the following channels, also located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network, unless stated otherwise:<br />
<br />
{|<br />
|-<br />
| '''#archlinux-br'''<br />
| Discussion (Brazilian)<br />
|-<br />
| '''#archlinux-cr'''<br />
| Discussion (Costa Rica)<br />
|-<br />
| '''#archlinux-ve'''<br />
| Discussion (Venezuela)<br />
|-<br />
| '''#archlinux-cn'''<br />
| Discussion (Chinese)<br />
|-<br />
| '''#arch-cn'''<br />
| Discussion (Chinese), on '''[irc://irc.oftc.net irc.oftc.net]'''<br />
|-<br />
| '''#archlinux.de'''<br />
| Discussion (German)<br />
|-<br />
| '''#archlinux.cz'''<br />
| Discussion (Czech)<br />
|-<br />
| '''#archlinux.dk'''<br />
| Discussion (Danish)<br />
|-<br />
| '''#archlinux-greece'''<br />
| Discussion (Greek)<br />
|-<br />
| '''#archlinux-es'''<br />
| Discussion (Spanish)<br />
|-<br />
| '''#archlinux-fr'''<br />
| Discussion (French)<br />
|-<br />
| '''#archlinux-gaelic'''<br />
| Discussion (Gaelic)<br />
|-<br />
| '''#archlinux.hu'''<br />
| Discussion (Hungarian)<br />
|-<br />
| '''#archlinux-ir'''<br />
| Discussion (Persian)<br />
|-<br />
| '''#archlinux.it'''<br />
| Discussion (Italian)<br />
|-<br />
| '''#archlinux-pl'''<br />
| Discussion (Polish)<br />
|-<br />
| '''#archlinux.ro'''<br />
| Discussion (Romanian)<br />
|-<br />
| '''#archlinux-rs'''<br />
| Discussion (Serbian)<br />
|-<br />
| '''#archlinux-ru'''<br />
| Discussion (Russian)<br />
|-<br />
| '''#archlinux.se'''<br />
| Discussion (Swedish)<br />
|-<br />
| '''#archlinux-il'''<br />
| Discussion (Hebrew)<br />
|-<br />
| '''#archlinux.fi'''<br />
| Discussion (Finnish)<br />
|-<br />
| '''#archlinuxvn'''<br />
| Discussion (Vietnamese, Tiếng Việt)<br />
|}<br />
<br />
== Unofficial IRC Channels ==<br />
<br />
{|<br />
|-<br />
| '''#archlinux-women'''<br />
| Discussing gender and equality, mostly in English.<br />
|-<br />
| '''#archlinux-newbie'''<br />
| A space to learn, try new things, and ask for help without fear of ridicule.<br />
|}<br />
<br />
== Related Pages ==<br />
* [[International Communities]]<br />
* [[IRC Channel]]</div>Nyuxhttps://wiki.archlinux.org/index.php?title=IRC_channels&diff=248740IRC channels2013-02-28T19:45:34Z<p>Nyux: /* International IRC Channels */</p>
<hr />
<div>[[Category:Internet Relay Chat]]<br />
[[Category:About Arch]]<br />
[[es:IRC Channels]]<br />
[[pt:IRC Channels]]<br />
[[sr:IRC Channels]]<br />
The size of our community led to the creation of multiple IRC channels. To display all channels that start with "archlinux", do {{ic|/query alis list #archlinux*}}.<br />
<br />
== Official IRC Channels ==<br />
You can find official Arch-related discussion on the following Internet Relay Chat (IRC) channels, located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
{|<br />
|-<br />
| '''#archlinux'''<br />
| The main discussion channel, mostly in English<br />
|-<br />
| '''#archlinux64'''<br />
| x86_64 specific discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-aur'''<br />
| [[Arch User Repository|AUR]] development and packages discussion<br />
|-<br />
| '''#archlinux-bugs'''<br />
| Bug-centric discussion<br />
|-<br />
| '''#archlinux-offtopic'''<br />
| Random off-topic discussions.<br />
|-<br />
| '''#archlinux-pacman'''<br />
| [[Pacman]] development and discussion<br />
|-<br />
| '''#archlinux-projects'''<br />
| Projects development and discussion (initscripts, mkinitcpio, abs, dbscripts, devtools, ...)<br />
|-<br />
| '''#archlinuxppc'''<br />
| PPC discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-multilib'''<br />
| Arch Linux Multilib Project discussion and packaging<br />
|-<br />
| '''#archaudio'''<br />
| Arch Linux Pro Audio Project discussion and packaging<br />
|}<br />
<br />
== International IRC Channels ==<br />
International discussions are available at the following channels, also located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network, unless stated otherwise:<br />
<br />
{|<br />
|-<br />
| '''#archlinux-br'''<br />
| Discussion (Brazilian)<br />
|-<br />
| '''#archlinux-cr'''<br />
| Discussion (Costa Rica)<br />
|-<br />
| '''archlinux-ve'''<br />
| Discussion (Venezuela)<br />
|-<br />
| '''#archlinux-cn'''<br />
| Discussion (Chinese)<br />
|-<br />
| '''#arch-cn'''<br />
| Discussion (Chinese), on '''[irc://irc.oftc.net irc.oftc.net]'''<br />
|-<br />
| '''#archlinux.de'''<br />
| Discussion (German)<br />
|-<br />
| '''#archlinux.cz'''<br />
| Discussion (Czech)<br />
|-<br />
| '''#archlinux.dk'''<br />
| Discussion (Danish)<br />
|-<br />
| '''#archlinux-greece'''<br />
| Discussion (Greek)<br />
|-<br />
| '''#archlinux-es'''<br />
| Discussion (Spanish)<br />
|-<br />
| '''#archlinux-fr'''<br />
| Discussion (French)<br />
|-<br />
| '''#archlinux-gaelic'''<br />
| Discussion (Gaelic)<br />
|-<br />
| '''#archlinux.hu'''<br />
| Discussion (Hungarian)<br />
|-<br />
| '''#archlinux-ir'''<br />
| Discussion (Persian)<br />
|-<br />
| '''#archlinux.it'''<br />
| Discussion (Italian)<br />
|-<br />
| '''#archlinux-pl'''<br />
| Discussion (Polish)<br />
|-<br />
| '''#archlinux.ro'''<br />
| Discussion (Romanian)<br />
|-<br />
| '''#archlinux-rs'''<br />
| Discussion (Serbian)<br />
|-<br />
| '''#archlinux-ru'''<br />
| Discussion (Russian)<br />
|-<br />
| '''#archlinux.se'''<br />
| Discussion (Swedish)<br />
|-<br />
| '''#archlinux-il'''<br />
| Discussion (Hebrew)<br />
|-<br />
| '''#archlinux.fi'''<br />
| Discussion (Finnish)<br />
|-<br />
| '''#archlinuxvn'''<br />
| Discussion (Vietnamese, Tiếng Việt)<br />
|}<br />
<br />
== Unofficial IRC Channels ==<br />
<br />
{|<br />
|-<br />
| '''#archlinux-women'''<br />
| Discussing gender and equality, mostly in English.<br />
|-<br />
| '''#archlinux-newbie'''<br />
| A space to learn, try new things, and ask for help without fear of ridicule.<br />
|}<br />
<br />
== Related Pages ==<br />
* [[International Communities]]<br />
* [[IRC Channel]]</div>Nyuxhttps://wiki.archlinux.org/index.php?title=IRC_channels&diff=248739IRC channels2013-02-28T19:45:17Z<p>Nyux: /* International IRC Channels */</p>
<hr />
<div>[[Category:Internet Relay Chat]]<br />
[[Category:About Arch]]<br />
[[es:IRC Channels]]<br />
[[pt:IRC Channels]]<br />
[[sr:IRC Channels]]<br />
The size of our community led to the creation of multiple IRC channels. To display all channels that start with "archlinux", do {{ic|/query alis list #archlinux*}}.<br />
<br />
== Official IRC Channels ==<br />
You can find official Arch-related discussion on the following Internet Relay Chat (IRC) channels, located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
{|<br />
|-<br />
| '''#archlinux'''<br />
| The main discussion channel, mostly in English<br />
|-<br />
| '''#archlinux64'''<br />
| x86_64 specific discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-aur'''<br />
| [[Arch User Repository|AUR]] development and packages discussion<br />
|-<br />
| '''#archlinux-bugs'''<br />
| Bug-centric discussion<br />
|-<br />
| '''#archlinux-offtopic'''<br />
| Random off-topic discussions.<br />
|-<br />
| '''#archlinux-pacman'''<br />
| [[Pacman]] development and discussion<br />
|-<br />
| '''#archlinux-projects'''<br />
| Projects development and discussion (initscripts, mkinitcpio, abs, dbscripts, devtools, ...)<br />
|-<br />
| '''#archlinuxppc'''<br />
| PPC discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-multilib'''<br />
| Arch Linux Multilib Project discussion and packaging<br />
|-<br />
| '''#archaudio'''<br />
| Arch Linux Pro Audio Project discussion and packaging<br />
|}<br />
<br />
== International IRC Channels ==<br />
International discussions are available at the following channels, also located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
<br />
{|<br />
|-<br />
| '''#archlinux-br'''<br />
| Discussion (Brazilian)<br />
|-<br />
| '''#archlinux-cr'''<br />
| Discussion (Costa Rica)<br />
|-<br />
| '''archlinux-ve'''<br />
| Discussion (Venezuela)<br />
|-<br />
| '''#archlinux-cn'''<br />
| Discussion (Chinese)<br />
|-<br />
| '''#arch-cn'''<br />
| Discussion (Chinese), on '''[irc://irc.oftc.net irc.oftc.net]'''<br />
|-<br />
| '''#archlinux.de'''<br />
| Discussion (German)<br />
|-<br />
| '''#archlinux.cz'''<br />
| Discussion (Czech)<br />
|-<br />
| '''#archlinux.dk'''<br />
| Discussion (Danish)<br />
|-<br />
| '''#archlinux-greece'''<br />
| Discussion (Greek)<br />
|-<br />
| '''#archlinux-es'''<br />
| Discussion (Spanish)<br />
|-<br />
| '''#archlinux-fr'''<br />
| Discussion (French)<br />
|-<br />
| '''#archlinux-gaelic'''<br />
| Discussion (Gaelic)<br />
|-<br />
| '''#archlinux.hu'''<br />
| Discussion (Hungarian)<br />
|-<br />
| '''#archlinux-ir'''<br />
| Discussion (Persian)<br />
|-<br />
| '''#archlinux.it'''<br />
| Discussion (Italian)<br />
|-<br />
| '''#archlinux-pl'''<br />
| Discussion (Polish)<br />
|-<br />
| '''#archlinux.ro'''<br />
| Discussion (Romanian)<br />
|-<br />
| '''#archlinux-rs'''<br />
| Discussion (Serbian)<br />
|-<br />
| '''#archlinux-ru'''<br />
| Discussion (Russian)<br />
|-<br />
| '''#archlinux.se'''<br />
| Discussion (Swedish)<br />
|-<br />
| '''#archlinux-il'''<br />
| Discussion (Hebrew)<br />
|-<br />
| '''#archlinux.fi'''<br />
| Discussion (Finnish)<br />
|-<br />
| '''#archlinuxvn'''<br />
| Discussion (Vietnamese, Tiếng Việt)<br />
|}<br />
<br />
== Unofficial IRC Channels ==<br />
<br />
{|<br />
|-<br />
| '''#archlinux-women'''<br />
| Discussing gender and equality, mostly in English.<br />
|-<br />
| '''#archlinux-newbie'''<br />
| A space to learn, try new things, and ask for help without fear of ridicule.<br />
|}<br />
<br />
== Related Pages ==<br />
* [[International Communities]]<br />
* [[IRC Channel]]</div>Nyuxhttps://wiki.archlinux.org/index.php?title=IRC_channels&diff=248738IRC channels2013-02-28T19:39:42Z<p>Nyux: /* Unofficial IRC Channels */</p>
<hr />
<div>[[Category:Internet Relay Chat]]<br />
[[Category:About Arch]]<br />
[[es:IRC Channels]]<br />
[[pt:IRC Channels]]<br />
[[sr:IRC Channels]]<br />
The size of our community led to the creation of multiple IRC channels. To display all channels that start with "archlinux", do {{ic|/query alis list #archlinux*}}.<br />
<br />
== Official IRC Channels ==<br />
You can find official Arch-related discussion on the following Internet Relay Chat (IRC) channels, located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
{|<br />
|-<br />
| '''#archlinux'''<br />
| The main discussion channel, mostly in English<br />
|-<br />
| '''#archlinux64'''<br />
| x86_64 specific discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-aur'''<br />
| [[Arch User Repository|AUR]] development and packages discussion<br />
|-<br />
| '''#archlinux-bugs'''<br />
| Bug-centric discussion<br />
|-<br />
| '''#archlinux-offtopic'''<br />
| Random off-topic discussions.<br />
|-<br />
| '''#archlinux-pacman'''<br />
| [[Pacman]] development and discussion<br />
|-<br />
| '''#archlinux-projects'''<br />
| Projects development and discussion (initscripts, mkinitcpio, abs, dbscripts, devtools, ...)<br />
|-<br />
| '''#archlinuxppc'''<br />
| PPC discussion channel, mostly in English<br />
|-<br />
| '''#archlinux-multilib'''<br />
| Arch Linux Multilib Project discussion and packaging<br />
|-<br />
| '''#archaudio'''<br />
| Arch Linux Pro Audio Project discussion and packaging<br />
|}<br />
<br />
== International IRC Channels ==<br />
International discussions are available at the following channels, also located at the '''[irc://irc.freenode.net irc.freenode.net]''' IRC network:<br />
<br />
{|<br />
|-<br />
| '''#archlinux-br'''<br />
| Discussion (Brazilian)<br />
|-<br />
| '''#archlinux-cr'''<br />
| Discussion (Costa Rica)<br />
|-<br />
| '''#archlinux-cn'''<br />
| Discussion (Chinese)<br />
|-<br />
| '''#arch-cn'''<br />
| Discussion (Chinese), on '''[irc://irc.oftc.net irc.oftc.net]'''<br />
|-<br />
| '''#archlinux.de'''<br />
| Discussion (German)<br />
|-<br />
| '''#archlinux.cz'''<br />
| Discussion (Czech)<br />
|-<br />
| '''#archlinux.dk'''<br />
| Discussion (Danish)<br />
|-<br />
| '''#archlinux-greece'''<br />
| Discussion (Greek)<br />
|-<br />
| '''#archlinux-es'''<br />
| Discussion (Spanish)<br />
|-<br />
| '''#archlinux-fr'''<br />
| Discussion (French)<br />
|-<br />
| '''#archlinux-gaelic'''<br />
| Discussion (Gaelic)<br />
|-<br />
| '''#archlinux.hu'''<br />
| Discussion (Hungarian)<br />
|-<br />
| '''#archlinux-ir'''<br />
| Discussion (Persian)<br />
|-<br />
| '''#archlinux.it'''<br />
| Discussion (Italian)<br />
|-<br />
| '''#archlinux-pl'''<br />
| Discussion (Polish)<br />
|-<br />
| '''#archlinux.ro'''<br />
| Discussion (Romanian)<br />
|-<br />
| '''#archlinux-rs'''<br />
| Discussion (Serbian)<br />
|-<br />
| '''#archlinux-ru'''<br />
| Discussion (Russian)<br />
|-<br />
| '''#archlinux.se'''<br />
| Discussion (Swedish)<br />
|-<br />
| '''#archlinux-il'''<br />
| Discussion (Hebrew)<br />
|-<br />
| '''#archlinux.fi'''<br />
| Discussion (Finnish)<br />
|-<br />
| '''#archlinuxvn'''<br />
| Discussion (Vietnamese, Tiếng Việt)<br />
|}<br />
<br />
== Unofficial IRC Channels ==<br />
<br />
{|<br />
|-<br />
| '''#archlinux-women'''<br />
| Discussing gender and equality, mostly in English.<br />
|-<br />
| '''#archlinux-newbie'''<br />
| A space to learn, try new things, and ask for help without fear of ridicule.<br />
|}<br />
<br />
== Related Pages ==<br />
* [[International Communities]]<br />
* [[IRC Channel]]</div>Nyuxhttps://wiki.archlinux.org/index.php?title=GNOME&diff=246025GNOME2013-02-02T12:43:44Z<p>Nyux: X is now on tty1; info on switching to another tty needed updating</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[cs:GNOME]]<br />
[[de:GNOME]]<br />
[[es:GNOME]]<br />
[[fr:GNOME]]<br />
[[it:GNOME]]<br />
[[nl:GNOME]]<br />
[[pl:GNOME]]<br />
[[pt:GNOME]]<br />
[[ru:GNOME]]<br />
[[sr:GNOME]]<br />
[[th:GNOME]]<br />
[[tr:Gnome_Masaüstü_Ortamı]]<br />
[[uk:GNOME]]<br />
[[zh-CN:GNOME]]<br />
[[zh-TW:GNOME]]<br />
{{Article summary start}}<br />
{{Article summary text|GNOME 3 provides a modern desktop, rewritten from scratch, using the GTK3+ toolkit.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Graphical user interface overview}}}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|GTK+}}<br />
{{Article summary wiki|GDM}}<br />
{{Article summary wiki|Nautilus}}<br />
{{Article summary end}}<br />
<br />
From [http://www.gnome.org/about/ About Us | GNOME]:<br />
<br />
:''The GNOME Project was started in 1997 by two then university students, Miguel de Icaza and Federico Mena. Their aim: to produce a free (as in freedom) [[desktop environment]]. Since then, GNOME has grown into a hugely successful enterprise. Used by millions of people across the world, it is the most popular desktop environment for GNU/Linux and UNIX-type operating systems. The desktop has been utilised in successful, large-scale enterprise and public deployments, and the project’s developer technologies are utilised in a large number of popular mobile devices.''<br />
<br />
== Introduction ==<br />
<br />
GNOME 3 has ''two'' interfaces:<br />
<br />
*'''GNOME Shell''' is the new standard layout using the Mutter window manager. It acts as a composite manager for the desktop, employing hardware graphics acceleration to provide effects aimed at reducing screen clutter.<br />
<br />
*'''fallback mode''' is similar to GNOME 2, it uses gnome-panel and Metacity instead of gnome-shell/Mutter. No hardware acceleration is required to run fallback mode.<br />
<br />
GNOME-session automatically detects if your computer is incapable of running GNOME Shell and starts fallback mode when appropriate. When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.<br />
<br />
==Installation==<br />
<br />
GNOME 3 is available in the [[official repositories]] and can be [[pacman|installed]] with two groups of packages:<br />
*{{Grp|gnome}} contains the core desktop environment and applications required for the standard GNOME experience.<br />
<br />
*{{Grp|gnome-extra}} contains various optional tools such as a media player, a calculator, an editor and other non-critical applications that go well with the GNOME desktop. Installing this group is optional.<br />
<br />
Note that installing only {{Grp|gnome-extra}} will not pull the whole {{Grp|gnome}} group by dependencies: if you really want everything you must explicitly install both groups.<br />
<br />
===D-Bus daemon===<br />
<br />
The GNOME desktop requires the D-Bus daemon. Refer to the [[D-Bus]] article for setup instructions.<br />
<br />
=== Starting GNOME ===<br />
<br />
'''Graphical log-in'''<br />
<br />
For the best desktop integration, login manager '''GDM''' is recommended. Other login managers can be used in place of GDM. Check out the [[Display_Manager|wiki article on display managers]] to learn how desktop environments are started.<br />
<br />
The login manager is a limited process entrusted with duties that impact the system. The [[PolicyKit|PolicyKit wiki article]] addresses the topic of system‑wide access control.<br />
<br />
{{Tip|Refer to the [[GDM]] article for installation and configuration instructions.}}<br />
<br />
'''Starting GNOME manually'''<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<nowiki><br />
exec gnome-session<br />
</nowiki>}}<br />
<br />
After the {{ic|exec}} command is placed, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
See [[xinitrc]] for details, such as preserving the logind (and/or consolekit) session.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME cheat sheet ===<br />
<br />
The GNOME web site has a helpful [https://live.gnome.org/GnomeShell/CheatSheet GNOME Shell cheat sheet] explaining task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{Keypress|Alt}} + {{Keypress|F2}} then {{Keypress|r}} then {{Keypress|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes, such as switching between '''''GNOME Shell''''' and '''''fallback mode,''''' cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
It is common sense — but worth repeating — that valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart.<br />
<br />
=== Shell freezes ===<br />
<br />
Sometimes shell extensions freeze the GNOME Shell. In this case a possible strategy is to switch to another terminal via {{Keypress|Ctrl+Alt+F2}} through {{Keypress|Ctrl+Alt+F6}}, log in, and restart X by:<br />
<br />
# pkill X<br />
<br />
The GNOME Shell then restarts automatically.<br />
<br />
If this doesn't work, you can try to restart your login manager. For instance, if you use GDM, try:<br />
<br />
# systemctl restart gdm.service<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
=== Overall appearance ===<br />
<br />
GNOME 3 may have "started from scratch", but like most large software projects it is assembled from parts dating to different eras. There is not '''one''' all-encompassing configuration tool. The new ''Systems Settings'' tool is a big improvement over previous control panels. ''System Settings'' is well-organized, but you may find yourself wishing for more control over system appearance.<br />
<br />
You may be familiar with existing configuration tools: some of these still work; many will not. Some settings are not readily exposed for you to change. Indubitably, many settings will migrate to newer tools and/or become exposed as time progresses and the wider community embraces and extends the latest GNOME desktop.<br />
<br />
==== Gsettings ====<br />
<br />
A new command-line tool '''gsettings''' stores data in a binary format, unlike previous tools using XML text. A tutorial [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] explores the power of gsettings.<br />
<br />
==== GNOME tweak tool ====<br />
<br />
This graphical tool customizes fonts, themes, titlebar buttons and other settings. <br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
==== GTK3 theme via settings.ini ====<br />
<br />
Like {{ic|~/.gtkrc-2.0}} with GTK2+, it is possible to set a GTK3 theme via {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}.<br />
<br />
Variable {{ic|$XDG_CONFIG_HOME}} is usually set to {{ic|~/.config}}<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site.] For example:<br />
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to [[#Restarting_the_shell|restart the GNOME shell]] for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation.]<br />
<br />
==== Icon theme ====<br />
<br />
Using {{pkg|gnome-tweak-tool}} version 3.0.3 and later, you can place any icon theme you wish to use inside {{ic|~/.icons}}.<br />
<br />
Usefully, GNOME 3 is compatible with GNOME 2 icon themes, which means you are not stuck with the default icons. To install a new set of icons, copy your desired icon theme's directory to {{ic|~/.icons}}. As an example:<br />
<br />
$ cp -R /home/user/Desktop/my_icon_theme ~/.icons<br />
<br />
The new theme ''my_icon_theme'' is now selectable using {{ic|gnome-tweak-tool}} under ''interface''.<br />
<br />
Alternatively, you may textually select your icon theme with no need for gnome-tweak-tool. Add the GTK icon theme name to {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. Please note, not to use "" as your settings would not be recognised then.<br />
<br />
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki>... previous lines ...<br />
<br />
gtk-icon-theme-name = my_new_icon_theme</nowiki>}}<br />
<br />
=== Nautilus ===<br />
<br />
''See [[Nautilus]].''<br />
<br />
=== Totem ===<br />
<br />
To play back h.264 videos, you need to install {{Pkg|gst-libav}}<br />
<br />
For more information on gstreamer hardware acceleration, see [[GStreamer#Hardware_Acceleration|Gstreamer: Hardware Acceleration]].<br />
<br />
=== GNOME panel ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
GNOME 3.4.2:<br />
# gsettings set org.gnome.shell.clock show-date true<br />
<br />
GNOME 3.6.2:<br />
# gsettings set org.gnome.desktop.interface clock-show-date true<br />
<br />
==== Always show the "Log Out" entry in the user menu ====<br />
<br />
Since GNOME 3.6, the "Log Out" entry in the user menu is only shown when multiple non-root users are present in the system.<br />
<br />
To always enable this entry, run the following command from a terminal:<br />
<br />
# gsettings set org.gnome.shell always-show-log-out true<br />
<br />
You can also change this in dconf-editor: Navigate to org.gnome.shell, then check the "always-show-log-out" checkbox.<br />
<br />
Then, restart the GNOME shell:<br />
#{{Keypress|Alt+F2}}<br />
#{{Keypress|r}}<br />
#{{Keypress|Enter}}<br />
<br />
==== Hiding icons in the top bar ====<br />
<br />
When doing a GNOME install, some unwanted icons might appear in the panel. These icons can be removed either with GNOME shell extensions or by manually editing the GNOME panel script.<br />
<br />
===== Hiding icons with shell extensions =====<br />
<br />
To remove the accessibility icon, one can use the https://extensions.gnome.org/extension/112/remove-accesibility/. <br />
<br />
The best way to use extensions is installing them from the gnome extensions web page like the one above.<br />
<br />
===== Manually editing the GNOME panel script =====<br />
<br />
For example, to remove the '''universal access icon''', comment out the 'a11y' line in PANEL_ITEM_IMPLEMENTATIONS:<br />
<br />
{{hc|/usr/share/gnome-shell/js/ui/panel.js|<nowiki><br />
const PANEL_ITEM_IMPLEMENTATIONS = {<br />
'activities': ActivitiesButton,<br />
'appMenu': AppMenuButton,<br />
'dateMenu': imports.ui.dateMenu.DateMenuButton,<br />
// 'a11y': imports.ui.status.accessibility.ATIndicator,<br />
'volume': imports.ui.status.volume.Indicator,<br />
'battery': imports.ui.status.power.Indicator,<br />
'lockScreen': imports.ui.status.lockScreenMenu.Indicator,<br />
'keyboard': imports.ui.status.keyboard.InputSourceIndicator,<br />
'powerMenu': imports.gdm.powerMenu.PowerMenuButton,<br />
'userMenu': imports.ui.userMenu.UserMenuButton<br />
};<br />
</nowiki>}}<br />
<br />
Then, save your results and restart the shell:<br />
<br />
#{{Keypress|Alt+F2}}<br />
#{{Keypress|r}}<br />
#{{Keypress|Enter}}<br />
<br />
==== Show battery icon ====<br />
<br />
To show the battery tray icon, [[pacman|install]] {{Pkg|gnome-power-manager}} from the [[Official Repositories|official repositories]].<br />
<br />
==== Disable "Suspend" in the status and gdm menu ====<br />
<br />
A quick way to do it system-wide for GNOME 3.2 is to change line 539 of {{ic|/usr/share/gnome-shell/js/ui/userMenu.js}} and line 103 of {{ic|/usr/share/gnome-shell/js/gdm/powerMenu.js}}. (For GNOME versions prior to 3.2, look at line 153 of {{ic|/usr/share/gnome-shell/js/ui/statusMenu.js}}.) This change takes effect the next time GNOME Shell is started.<br />
<br />
{{hc|/usr/share/gnome-shell/js/ui/userMenu.js|<nowiki><br />
// this._haveSuspend = this._upClient.get_can_suspend(); // Comment this line out.<br />
this._haveSuspend = false; // Use this line instead.<br />
</nowiki>}}<br />
<br />
To accomplish this, paste the following command(s) in your terminal:<br />
GNOME_SHELL=/usr/share/gnome-shell<br />
SCRIPTS=`grep -lr get_can_suspend $GNOME_SHELL/js`<br />
for FILE in $SCRIPTS ; do<br />
sed -r -i -e 's/[^= ]+.get_can_suspend\(\)/false/' "$FILE"<br />
done<br />
<br />
The above change does not persist after a GNOME version update, however. A more perennial solution is to add the code above in some gdm or system startup script (eg: /etc/rc.local), to keep the "suspend" option disabled after updates.<br />
<br />
Alternatively you can install the [[#GNOME shell extensions|GNOME shell extension]] {{ic|alternative status menu}} in package {{Pkg|gnome-shell-extension-alternative-status-menu}}.<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command.<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
Install the {{AUR|gnome-shell-system-monitor-applet-git}} extension available in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
Install {{AUR|gnome-shell-extension-weather-neroth-git}} from [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like other desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are in '''{{ic|/usr/share/applications}}'''. It is not possible to edit these files from a folder view ‒ Nautilus does not treat their icons as text files. Use a terminal to display or edit .desktop file entries.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
The following command appends one line to a .desktop file and hides its associated icon from Applications view:<br />
<br />
$ echo "NoDisplay=true" >> foo.desktop<br />
<br />
==== To Remove Wine Launchers from the Applications menu ====<br />
<br />
Enter {{ic|~/.local/share/applications/wine/Programs/}} and look for the wine application's name. In the directories are the ".desktop" files which configure the launchers. Remove the program directory to easily remove the launchers.<br />
<br />
==== Change application icon size ====<br />
<br />
One awkward selection of the GNOME designers is their choice of large icons for Applications view. This view is painful when working with a small screen containing many large application icons. There is a way to reduce the icon size. It is done by editing the GNOME-Shell theme.<br />
<br />
Edit system files directly (make a backup first) or copy theme files to your local folder and edit these files. <br />
* For the '''default''' theme, edit '''{{ic|/usr/share/gnome-shell/theme/gnome-shell.css}}'''<br />
<br />
* For '''user themes''', edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting_the_shell|restart the GNOME shell.]]<br />
{{hc|gnome-shell.css|<nowiki><br />
...<br />
/* Application Launchers and Grid */<br />
<br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-horizontal-item-size: 82px;<br />
-shell-grid-vertical-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
...<br />
</nowiki>}}<br />
<br />
==== Change dash icon size ====<br />
GNOME's Activities view has a dash on the left hand side, the size of the icons in this dash will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/dash.js}}.<br />
<br />
{{hc|dash.js|<nowiki><br />
...<br />
<br />
let iconSizes = [ 16, 22, 24, 32, 48, 64 ];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Change switcher (alt-tab) icon size ====<br />
GNOME comes with a built in task switcher, the size of the icons in this task switcher will scale depending on the amount of icons set to display. The scaling can be manipulated or set to a constant icon size. To do so, edit {{ic|/usr/share/gnome-shell/js/ui/altTab.js}}<br />
<br />
{{hc|altTab.js|<nowiki><br />
...<br />
<br />
const iconSizes = [96, 64, 48, 32, 22];<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Change system tray icon size ====<br />
GNOME comes with a built in system tray, visible when the mouse is hovered over the bottom right corner of the screen. The size of the icons in this tray is set to a fixed value of 24. To change this value, edit {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}<br />
{{hc|messageTray.js|<nowiki><br />
...<br />
<br />
ICON_SIZE: 24,<br />
<br />
...<br />
</nowiki>}}<br />
<br />
==== Disable Activity hot corner hovering ====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit {{ic|/usr/share/gnome-shell/js/ui/layout.js}} (that was ''panel.js'' in GNOME 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set {{ic|reactive}} to {{ic|false}}. GNOME Shell needs to be restarted.<br />
<br />
==== Disable Message Tray hovering ====<br />
<br />
The message tray is shown when the mouse hovers at the bottom of the screen for one second. To disable this behavior, comment out the following line in {{ic|/usr/share/gnome-shell/js/ui/messageTray.js}}:<br />
{{hc|messageTray.js|<nowiki><br />
//pointerWatcher.addWatch(TRAY_DWELL_CHECK_INTERVAL, Lang.bind(this, this._checkTrayDwell));<br />
</nowiki>}}<br />
GNOME Shell needs to be restarted. The message tray is still visible in activity view.<br />
<br />
=== Titlebar ===<br />
==== Remove title bar ====<br />
Install [https://extensions.gnome.org/extension/354/maximus/ Maximus] GNOME shell extension.<br />
<br />
It can also have white list / black list of application.<br />
<br />
This extension requires xorg-xprop, install it if you don't have it already.<br />
<br />
{{bc|pacman -S xorg-xprop}}<br />
<br />
More about [[#GNOME shell extensions | GNOME shell extensions]].<br />
<br />
==== Reduce title bar height ====<br />
* ''' global''' - edit {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and and reduce its value to a minimum of {{ic|0}}.<br />
* '''user-only''' - copy {{ic|/usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml}} to {{ic|/home/$USER/.themes/Adwaita/metacity-1/metacity-theme-3.xml}}, search for {{ic|title_vertical_pad}} and reduce its value to a minimum of {{ic|0}}.<br />
<br />
Then [[#Restarting_the_shell|Restart the GNOME shell.]] <br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[Official Repositories|official repositories]] or remove {{ic|/home/$USER/.themes/Adwaita/metacity-1/metacity-theme-3.xml}}<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting can be changed through '''dconf-editor.'''<br />
<br />
For example, we move the close and minimize buttons to the left side of the titlebar. Open '''dconf-editor''' and locate the '''''org.gnome.shell.overrides.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (Colon symbol designates the spacer between left side and right side of the titlebar.) Use whichever buttons in whatever order you prefer. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated. [[#Restarting_the_shell|Restart the shell]] to see your new button arrangement.<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
# sed -i -r 's|(<frame_geometry name="max")|\1 has_title="false"|' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
[[#Restarting_the_shell|Restart the GNOME shell.]] After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{Keypress|Alt+F5}}, {{Keypress|Alt+F10}} or {{Keypress|Alt+Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}.<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
=== Login screen ===<br />
{{Merge|GDM|Login managers have their own wiki pages and information should be maintained separately.}}<br />
To modify characteristics of the login screen (GDM, the GNOME display manager) the following lines can be executed. The first command allows all users, including "gdm", to access X settings (albeit temporarily). This command creates a temporary vulnerability, so be advised. The second command opens a bash session with the credentials of user "gdm". {{Note|For exposition, user gdm's terminal prompt is shown as '''$'''. In actuality, it shows something like -bash-4.2$.}}<br />
<br />
# xhost +<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
The third command prints DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We must export these variables. Either manually export the below two variables shown in the output of dbus-launch like this:<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
<br />
Or use the follow command:<br />
<br />
$ `dbus-launch | sed "s/^/export /"`<br />
<br />
Check to see if dconf-service is running and if not, start it like this<br />
<br />
$ /usr/lib/dconf/dconf-service &<br />
<br />
==== Login background image ====<br />
<br />
Once session variables have been exported as explained above, you may issue commands to retrieve or set items used by GDM. <br />
<br />
The easiest way to changes all the settings is by launching the Configuration Editor gui with the command<br />
<br />
$ dconf-editor<br />
<br />
The location of each setting is the same as in the command line style of configuration shown below:<br />
<br />
The following is the command-line approach to retrieve or set the file name used for GDM's wallpaper.<br />
{{bc|<nowiki><br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/SundownDunes.jpg'<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-options 'zoom'<br />
## Possible values: centered, none, scaled, spanned, stretched, wallpaper, zoom</nowiki>}}<br />
{{Note|You must specify a file which user "gdm" has permission to read. GDM cannot read files in your home directory.}}<br />
<br />
An alternative graphical interface to changing themes (gtk3, icons and cursor), the wallpaper and minor other settings of the GDM login screen, you can install {{aur|gdm3setup}} from AUR.<br />
<br />
==== Larger font for login ====<br />
<br />
This tweak enlarges the login font with a scaling factor. It is the same method employed by ''Accessibility Manager'' on the desktop.<br />
<br />
You must [[#Login_screen|export the GDM session variables]] before performing this tweak.<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.interface text-scaling-factor '1.25'<br />
<br />
==== Turning off the sound ====<br />
<br />
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen. You must first export the GDM session variables.<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds 'false'<br />
<br />
If the above tweak does not work for you or you are unable to export the GDM session variables, there is always the easiest solution to the "ready sound" problem: mute or lower the sound while in GDM login screen using the media keys (if available) of your keyboard.<br />
<br />
==== Make the power button interactive ====<br />
<br />
The default installation sets the power button to suspend the system. '''''Power off''''' or '''''Show dialog''''' is a better choice. You must first export the GDM session variables as [[#Login_screen|outlined previously.]]<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-power 'interactive'<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-hibernate 'interactive'<br />
$ gsettings list-recursively org.gnome.settings-daemon.plugins.power<br />
<br />
{{Warning|Please note that the [[Acpid|acpid]] daemon also handle the "power button" an "hibernate button" event. Running both systems at the same time may lead to unexpected behaviour.}}<br />
<br />
==== Prevent suspend when closing the lid ====<br />
<br />
On some systems it happens that your laptop suspends when you are closing the lid despite having set the options ''Laptop lid close action on battery'' and ''Laptop lid close action on AC'' to ''blank''. If this is the case, append the following line to {{ic|/etc/systemd/logind.conf}}:<br />
<br />
HandleLidSwitch=ignore<br />
<br />
==== GDM keyboard layout ====<br />
<br />
GDM does not know about your GNOME 3 desktop keyboard settings. To change keyboard settings used by GDM, set your layout using Xorg configuration. Refer to this section of the [[Beginners'_Guide#Non-US_keyboard|Beginner's Guide.]]<br />
<br />
=== Other tips ===<br />
See [[GNOME Tips]].<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Automatic program launch upon logging in ===<br />
<br />
Specify which programs start automatically after logging in using {{ic|gnome-session-properties}}. This tool is part of the {{Pkg|gnome-session}} package.<br />
<br />
$ gnome-session-properties<br />
<br />
=== Editing applications menu ===<br />
<br />
{{pkg|gnome-menus}} provides ''gmenu-simple-editor'' which can show/hide menu entries.<br />
<br />
{{pkg|alacarte}} provides a more complete menu editor for adding/editing menu entries.<br />
<br />
=== Some 'System Settings' not preserved ===<br />
<br />
GNOME 3 is using [[systemd]] (an init daemon for Linux) with more modern capabilities. Previously GNOME programs were altered to use Arch's init functionalities to gather settings but either the maintenance required to do this or possibly this is because of a transitioning to the new init system (read more about this [https://bbs.archlinux.org/viewtopic.php?pid=1115208#p1115208 here]). Areas that settings will not be preserved are '''Date and Time''' and adding ICC profiles in the '''Color''' menu and possibly others.<br />
<br />
To gain the functionality back, [[systemd]] needs to be installed and the ''gdm.service'' and ''NetworkManager.service'' services need to be enabled.<br />
<br />
=== Disable sound effects in Terminal ===<br />
By default the terminal has these annoying sound effects when e.g. pushing the tab button on your keyboard. One solution is to turn off or mute all sound effects in the settings menu of Gnome. However, this will also turn off notification sounds in other application such as Skype. A better solution is to open a terminal, go to Edit -> Profile Preferences -> General and untick '''Terminal bell'''.<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions. These provide features such as a dock or a widget for changing the theme.<br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ extensions.gnome.org]. They can be browsed and installed simply activating them in the browser. More information about gnome shell extensions can be found [https://extensions.gnome.org/about/ here].<br />
<br />
See [[#When_an_extension_breaks_GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default file browser/replace Nautilus ===<br />
<br />
You can trick GNOME into using another file browser by editing the {{ic|Exec}} line in {{ic|/usr/share/applications/nautilus.desktop}}. See the correct parameters in the {{ic|.desktop}} file of the file manager of your choice, e.g.:<br />
{{hc|/usr/share/applications/nautilus.desktop|<br />
2=[...]<br />
Exec=thunar %F<br />
OR<br />
Exec=pcmanfm %U<br />
[...]<br />
}}<br />
<br />
=== Default PDF viewer ===<br />
In some cases when you have installed Inkscape or other graphic programs Evince Document Viewer might no longer be selected as the default PDF application. If it is not available in the '''Open With''' entry which would be the GUI solution, you can use the following user command to make it the default application again.<br />
<br />
xdg-mime default evince.desktop application/pdf<br />
<br />
=== Default terminal ===<br />
<br />
{{ic|gsettings}} (which replaces {{ic|gconftool-2}}) is used to set the default terminal. The setting affects ''nautilus-open-terminal'' (a Nautilus extension).<br />
To make [[rxvt-unicode|urxvt]] the default, run:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
{{Note|The {{ic|-e}} flag is for executing a command. When ''nautilus-open-terminal'' invokes {{ic|urxvtc}}, it puts a {{ic|cd}} command at the end of the command line so that the new terminal starts in the directory you opened it from. Other terminals will require a different (perhaps empty) {{ic|exec-arg}}.}}<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds<br />
<br />
=== Alternate window manager ===<br />
<br />
You can use an alternate window manager with GNOME by [[#Enabling_fallback_mode|forcing fallback mode]] and creating two files:<br />
<br />
{{Note|Xmonad is used as an example, but this works for other window managers.}}<br />
<br />
{{hc|/usr/share/gnome-session/sessions/xmonad.session|<nowiki>[GNOME Session]<br />
Name=Xmonad session<br />
RequiredComponents=gnome-panel;gnome-settings-daemon;<br />
RequiredProviders=windowmanager;notifications;<br />
DefaultProvider-windowmanager=xmonad<br />
DefaultProvider-notifications=notification-daemon</nowiki>}}<br />
<br />
{{hc|/usr/share/xsessions/xmonad-gnome-session.desktop|<nowiki>[Desktop Entry]<br />
Name=Xmonad GNOME<br />
Comment=Tiling window manager<br />
TryExec=/usr/bin/gnome-session<br />
Exec=gnome-session --session=xmonad<br />
Type=XSession</nowiki>}}<br />
<br />
The next time you log in, you should have the ability to choose ''Xmonad GNOME'' as your session.<br />
<br />
If there isn't a .desktop file for the window manager, you'll need to create one. Example for [[wmii]]:<br />
<br />
{{hc|/usr/share/applications/wmii.desktop|<nowiki><br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Name=wmii<br />
TryExec=wmii<br />
Exec=wmii</nowiki>}}<br />
<br />
For more information, see [http://makandra.com/notes/1367-running-the-awesome-window-manager-within-gnome this article on running awesome as the window manager in GNOME].<br />
<br />
== Hidden features ==<br />
<br />
GNOME 3 hides many useful options which you can customize with '''dconf-editor.''' GNOME 3 also supports '''gconf-editor''' for settings that have not yet migrated to dconf.<br />
<br />
=== Changing hotkeys ===<br />
It is possible to manually change the keys via an application's so-called accel map file. Where it is to be found is up to the application: For instance, Thunar's is at ~/.config/Thunar/accels.scm, whereas Nautilus's is located at ~/.config/nautilus/accels and ~/.gnome2/accels/nautilus on old release.<br />
<br />
The file should contain a list of possible hotkeys, each unchanged line commented out with a leading ";" that has to be removed for a change to become active.<br />
For example to replace the hotkey used by Nautilus to move files to the trash folder, change the line :<br />
; (gtk_accel_path "<Actions>/DirViewActions/Trash" "<Primary>Delete")<br />
to this :<br />
(gtk_accel_path "<Actions>/DirViewActions/Trash" "Delete")<br />
<br />
The file is regenerate regularly so don't waist time on commenting the file. The uncommented line will stay but every comment you may add will be lost.<br />
<br />
==== Nautilus 3.4 and older ====<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Nautilus to move files to the trash folder.<br />
The default assignment is a somewhat-awkward {{Keypress|Ctrl+Delete}}.<br />
* Open Nautilus, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{Keypress|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{Keypress|Delete}} to make the new accelerator be the Delete key.<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Shutdown via the status menu ===<br />
<br />
Currently, the GNOME designers have hidden the ''Shutdown'' option inside the status menu. To shut down your system with the status menu, click the menu and hold down the {{Keypress|Alt}} key so that the '''''Suspend''''' item changes to '''''Power Off'''''. The subsequent dialog allows you to shut down or restart your system.<br />
<br />
If you disable the Suspend menu item system-wide as described [[#Disable_"Suspend"_in_the_status_menu|elsewhere in this document]] you do not have to go through these motions.<br />
<br />
Another option is to install the ''Alternative Status Menu'' extension. See the section on shell extensions. The alternative menu extension installs a new status menu with a non-hidden '''''Power Off''''' entry.<br />
<br />
=== Modify Keyboard with XkbOptions ===<br />
<br />
Using the '''dconf-editor''', navigate to the key named ''org.gnome.desktop.input-sources.xkb-options'' and add desired XkbOptions (e.g. 'caps:swapescape') to the list.<br />
<br />
See /usr/share/X11/xkb/rules/xorg for all XkbOptions and then /usr/share/X11/xkb/symbols/* for the respective descriptions.<br />
<br />
== Integrated messaging (Empathy) ==<br />
<br />
Empathy, the engine behind integrated messaging, and all system settings based on messaging accounts will not show up unless the {{grp|telepathy}} group of packages or at least one of the backends ({{pkg|telepathy-gabble}}, or {{pkg|telepathy-haze}}, for example) is installed.<br />
<br />
These packages are not included in default Arch GNOME installs. You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the {{ic|/usr/bin/empathy-accounts}} application can remain running and will need to be killed before you can add any new accounts.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Freedesktop.org Telepathy Wiki.]<br />
<br />
== Forcing fallback mode ==<br />
<br />
Your session automatically starts in fallback mode when '''gnome-shell''' is not present, or when your hardware cannot handle graphics acceleration — such as running within a virtual machine or running on old hardware.<br />
<br />
If you wish to enable fallback mode while still having '''gnome-shell''' installed, make the following system change:<br />
<br />
Go to '''System Settings''' ({{ic|gnome-control-center}}) -> '''Details''' -> '''Graphics''' and set '''Forced Fallback Mode''' to {{ic|ON}}.<br />
<br />
You can alternatively choose the type of session from a terminal with {{ic|gsettings}}:<br />
<br />
$ gsettings set org.gnome.desktop.session session-name gnome-fallback<br />
<br />
You may want to log out after making the change. You will see the chosen type of session upon your next login.<br />
<br />
To disable the forced-fallback mode change it back to {{ic|gnome}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== When an extension breaks GNOME ===<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of '''{{ic|~/.local/share/gnome‑shell/extensions,}}''' '''{{ic|/usr/share/gnome‑shell/extensions,}}''' or '''{{ic|/usr/local/share/gnome‑shell/extensions}}'''. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on GNOME Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
=== Extensions do not work after GNOME 3 update ===<br />
<br />
Locate the folder where your extensions are installed. It might be '''{{ic|~/.local/share/gnome-shell/extensions}}''' or '''{{ic|/usr/share/gnome-shell/extensions}}'''.<br />
<br />
Edit each occurrence of '''{{ic|metadata.json}}''' which appears in each extension sub-folder. <br />
<br />
{| border="0"<br />
| Insert: || '''{{ic|"shell-version": ["3.6"]}}'''<br />
|-<br />
| Instead of (for example): || '''{{ic|"shell-version": ["3.4"]}}'''<br />
|}<br />
<br />
<br />
'''"3.x"''' indicates the extension works with every Shell version. If it breaks, you'll know to change it back.<br />
<br />
=== The "Windows" key ===<br />
By default, this key is mapped to the "overlay-key" to launch the Overview. You can remove this key mapping to free up your {{ic|Windows Key}} (also called {{ic|Mod4}}), which GNOME calls {{ic|Super_L}}, by utilizing {{ic|gsettings}}.<br />
<br />
Example:<br />
{{ic| gsettings set org.gnome.mutter overlay-key 'Foo';}}.<br />
You can leave out '''Foo''' to simply remove any binding to that function.<br />
<br />
{{Note| GNOME also uses {{ic|Alt+F1}} to launch the Overview.}}<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
The gnome-shell keyboard shortcuts like {{keypress|Alt+F2}}, {{keypress|Alt+F1}}, and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running, then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== xf86-video-ati driver: flickers from time to time ===<br />
<br />
If you use that driver, your desktop might flicker a lot when you hover the bottom right corner, and also when you start up gdm.<br />
Write the following in your '''{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}''' and see if it works then:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EnablePageFlip" "off"<br />
EndSection<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in GNOME Shell which causes new windows to open behind others.<br />
Unchecking "workspaces_only_on_primary" in desktop/gnome/shell/windows using gconf-editor solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit {{ic|/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js}} and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== No event sounds for Empathy and other programs ===<br />
<br />
If you are using [[OSS]], you may want to install {{AUR|libcanberra-oss}} from the [[AUR]].<br />
<br />
=== Gnome sets the keyboard layout to USA after every log in === <br />
<br />
See the [[https://bugzilla.redhat.com/show_bug.cgi?id=530452 this]] bug report for more information. It is related to GDM and can be fixed by choosing the correct layout at GDM login startup. However, users who do not use GDM or any login manager but a pure startx approach have to use a workaround. Create the file {{ic|~/.keyboard}} and make it executable {{ic|chmod +x}}:<br />
<br />
# Set the correct keyboard layout after Gnome start<br />
setxkbmap -layout "us,pl" -variant altgr-intl -option "grp:alt_shift_toggle" nodeadkeys<br />
<br />
Now run {{ic|gnome-session-properties}} and add this .keyboard file to the programs run at startup:<br />
<br />
Name: Keyboard layout <br />
Command: /home/username/.keyboard<br />
Comment: Sets the correct keyboard layout after Gnome start<br />
<br />
Further you need to create the executable file {{ic|/etc/pm/sleep.d/90_keyboard}} with the following content in order to run the script on resume from suspend and hibernation.<br />
<br />
#!/bin/bash<br />
case $1 in<br />
resume|thaw)<br />
/home/username/.keyboard<br />
;;<br />
esac<br />
<br />
=== Panels do not respond to right-click in fallback mode ===<br />
<br />
Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key ({{Keypress|Alt}}, {{Keypress|Super}}, etc) used for normal windows is also used by panels and their applets.<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Navigation --> Hide all normal windows<br />
<br />
=== Nautilus does not start ===<br />
<br />
# Press {{keypress|Alt+F2}}<br />
# Enter {{ic|gnome-tweak-tool}}<br />
# Select the ''File Manager'' tab.<br />
# Locate option ''Have file manager handle the desktop'' and assure it is toggled '''off'''.<br />
<br />
=== Epiphany does not play Flash videos ===<br />
<br />
Adobe Flash Player is buggy and does not work directly in Epiphany. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it.<br />
# Start a terminal. You can do this by pressing {{keypress|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{keypress|Enter}}.<br />
# Type in the following command<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Unable to connect to secured Wi-Fi networks ===<br />
<br />
You can see the network connections listing, but choosing an encrypted network fails to show a dialog for key entry. You may need to [[pacman|install]] {{Pkg|network-manager-applet}}. See [[NetworkManager#GNOME|GNOME NetworkManager setup]].<br />
<br />
=== "Any command has been defined 33" ===<br />
<br />
When you press the {{Keypress|Print Screen}} key (sometimes labeled {{Keypress|PrntScr}} or {{Keypress|PrtSc}}) to take a screenshot, and you got "Any command has been defined 33", [[pacman|install]] {{Pkg|metacity}}.<br />
<br />
=== GDM and GNOME use X11 cursors ===<br />
<br />
To fix this issue, become root and put the following into {{ic|/usr/share/icons/default/index.theme}} (creating the directory {{ic|/usr/share/icons/default}} if necessary):<br />
{{hc|/usr/share/icons/default/index.theme|<nowiki><br />
[Icon Theme]<br />
Inherits=Adwaita<br />
</nowiki>}}<br />
<br />
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).<br />
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].<br />
<br />
=== Tracker & Documents don't list any local files ===<br />
<br />
In order for Tracker (and, therefore, Documents) to detect your local files, they must be stored in directories that it knows of. If your documents are contained in one of the usual XDG standard directories (i.e. "Documents" or "Music"), you should install [https://www.archlinux.org/packages/extra/x86_64/xdg-user-dirs/ xdg-user-dirs] and run:<br />
<br />
# xdg-user-dirs-update<br />
<br />
This will create all of the usual XDG home directories if they don't already exist and it will create the config file definining these directories that Tracker and Documents depend upon.<br />
<br />
=== Passwords are not remembered ===<br />
<br />
If you get a password prompt every time you login, and you find password are not saved, you might need to create/set a default keyring:<br />
<br />
$ pacman -S seahorse<br />
<br />
Open "Passwords and Keys" from the menu or run "seahorse". Select View > By Keyring. If there is no keyring in the left column (it will be marked with a lock icon), go to File > New > Password Keyring and give it a nice name. You will be asked to enter a password. If you do not give it a password it will be unlocked automatically even when using autologin, but passwords will not be stored securely. Finally, right-click on the keyring you just created and select "Set as default".<br />
<br />
=== Windows can't be modified with Alt-Key + Mouse-Button ===<br />
<br />
Change the dconf-setting "org.gnome.desktop.wm.preferences.mouse-button-modifier" from <Super> back to <Alt>. It is not possible to change this with ''System Settings'' > "Keyboard" > "Shortcuts", you will find there only the regular keybindings. The developers of GNOME decided to change this from 3.4 to 3.6 because of this bug report https://bugzilla.gnome.org/show_bug.cgi?id=607797<br />
<br />
== External links ==<br />
* [http://www.gnome.org/ The Official Website of GNOME]<br />
* [http://extensions.gnome.org/ Extensions for GNOME-shell]<br />
* Themes, icons, and backgrounds:<br />
** [http://art.gnome.org/ GNOME Art]<br />
** [http://www.gnome-look.org/ GNOME Look]<br />
* GTK/GNOME programs:<br />
** [http://www.gnomefiles.org/ GNOME Files]<br />
** [http://www.gnome.org/projects/ GNOME Project Listing]</div>Nyux