https://wiki.archlinux.org/api.php?action=feedcontributions&user=Luigi+Panache&feedformat=atomArchWiki - User contributions [en]2024-03-29T08:43:52ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=TuxOnIce&diff=166097TuxOnIce2011-10-15T21:53:53Z<p>Luigi Panache: Added information on using TuxOnIce with pm-utils</p>
<hr />
<div>[[Category:Power management (English)]]<br />
[[Category:Laptops (English)]]<br />
{{i18n|TuxOnIce}}<br />
{{Article summary start}}<br />
{{Article summary text|Describes installing, configuring and using TuxOnIce, an advanced suspend/hibernate framework.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Pm-utils}}<br />
{{Article summary wiki|Uswsusp}}<br />
{{Article summary end}}<br />
<br />
This is a quick start guide for installing [http://www.tuxonice.net TuxOnIce] (formerly suspend2), an advanced suspend/hibernate framework which supports suspending to a swap-disk or a regular file with fast LZO-compression. Visit the TuxOnIce website for a full list of [http://www.tuxonice.net/features features].<br />
<br />
==Preparing the kernel==<br />
TuxOnIce consists of a kernel patch, plus an optional user interface. Only the kernel patch is necessary, the user interface merely provides a graphical interface displayed during the hibernation/resume cycle. <br />
<br />
You can use the {{Package AUR|linux-ice}} or the {{Package AUR|linux-pf}} packages in the [[AUR]]. They automate all the patch routines, the compilation and installation of the kernel, the regeneration of the initramfs with an appropriate hook. To build kernel26-ice, see [[Arch User Repository#Installing packages]] for more information. You maintain control over the install process, and its easy to make changes if you want to repeat the process. For kernel26-pf, there is an unofficial repo with precompiled generic and optimized kernels for most architectures (search for "pfkernel" in [[Unofficial_User_Repositories]]).<br />
<br />
Otherwise, you need to patch, configure and compile your own kernel, visit [[Kernel Compilation From Source]] and [[Kernel Compilation with ABS]] for instructions. The required patch can be obtained from the TuxOnIce website mentioned above.<br />
<br />
Next, you may need to run [[mkinitcpio]], which create the ramdisk for you:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
or<br />
# mkinitcpio -p kernel26-pf<br />
<br />
Next, install the ''hibernate-script'' package from the [[AUR]] which we will use to call TuxOnIce. Hibernate-script is the default script developed by the TuxOnIce development team.<br />
<br />
The configuration files for hibernate-script are in /etc/hibernate, we will get back to them shortly.<br />
<br />
==Setting up the bootloader==<br />
Before your can use the suspend function, you need to add the "resume" parameter in your bootloader ('''unless you have hard-coded your swap partition during the kernel configuration'''). The resume parameter points to the swap partition or swap file, below are the steps involved for both methods.<br />
<br />
===Suspend to swap partition===<br />
{{Note|As of the latest version of TuxOnIce (3.0.99.44), adding the kernel resume parameter is no longer necessary, it will auto-detect if your swap drive contains a bootable image. You only need to set the swap method appropriately. For more details, check out [http://www.tuxonice.net/].}}<br />
<br />
Set the swap method (make sure the right partition is indicated) in /etc/hibernate/tuxonice.conf:<br />
<br />
SuspendDevice swap:/dev/sda3<br />
<br />
===Suspend to swap file===<br />
{{Note|Auto-detection as mentioned previously doesn't seem to work with swap files, you will still need to manually set the kernel resume parameter.}}<br />
<br />
If you use a swap file instead of a swap partition, you will need to pass the location of its header to TuxOnIce. TuxOnIce can list all available swap headers.<br />
<br />
cat /sys/power/tuxonice/swap/headerlocations<br />
<br />
Use the given string as-is in both /etc/hibernate/tuxonice.conf and passed to your kernel as a resume parameter. <br />
<br />
SuspendDevice swap:/dev/sda7:0x1087070<br />
<br />
Append the following to your kernel parameters in your bootloader's configuration file:<br />
<br />
resume=swap:/dev/sda7:0x1087070<br />
<br />
{{Note|Specifying the resume device by UUID is supposed to work, but I was not able to get it to work. This may be a TuxOnIce or a mkinitcpio issue, YMMV. Specifying /dev/sd** should work in all cases though.}}<br />
<br />
===Suspend to file===<br />
For the file allocator, you will have to prepare a hibernation file. This is different from the standard swap file in that this file is ONLY used for hibernation and not as a general system swap file. The previous method is recommended as being more efficient in terms of disk space. First configure the /etc/hibernate/tuxonice.conf file, uncomment the "FilewriterLocation" option:<br />
<br />
FilewriterLocation /suspend_file 1000<br />
<br />
1000 is the amount of disk space reserved for the hibernation file, in this case 1000 megabytes. Usually an amount of 50% - 75% of your total amount of RAM will suffice.<br />
<br />
Next, run the following command to create the hibernation file:<br />
<br />
# hibernate --no-suspend<br />
<br />
Take a look in /sys/power/tuxonice/resume for what to pass to your kernel. You should see something like file:/dev/hda7:0x10011f, in which case you should append "resume=file:/dev/hda7:0x10011f" as a kernel parameter in your lilo.conf file or GRUB's menu.lst.<br />
<br />
==Recreating the initramfs==<br />
If you use an initramfs, you need to add the resume hook in the HOOKS in the configuration of mkinitcpio. Additionally, if you want to speed things up by using LZO compression, add the lzo module to the MODULES array in the same file.<br />
<br />
/etc/mkinitcpio.conf example:<br />
<br />
MODULES="lzo"<br />
HOOKS="base udev autodetect pata scsi sata resume filesystems"<br />
<br />
Rebuild the initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
==Suspending and resuming==<br />
With hibernate-script, your preferred hibernation method can be set in the file /etc/hibernate/hibernate.conf. If you list several methods, the first one will be used. Note that ''hibernate'' can also be used with [[Suspend to RAM]] or vanilla swsusp, but this is not part of this guide.<br />
<br />
For TuxOnIce use: <br />
<br />
TryMethod tuxonice.conf<br />
<br />
Specific settings for TuxOnIce are in /etc/hibernate/tuxonice.conf. Make sure that the following lines are uncommented and appropriately configured:<br />
<br />
UseTuxOnIce yes<br />
Compressor lzo<br />
<br />
There are a number of additional settings and tweaks which you can set in /etc/hibernate/tuxonice.conf and /etc/hibernate/common.conf, more information about these can be found on the [http://www.tuxonice.net/HOWTO-4.html TuxOnIce] website and on the [[Suspend to Disk]] page of this wiki.<br />
<br />
Now try TuxOnIce hibernation with the following method:<br />
<br />
# hibernate -F /etc/hibernate/tuxonice.conf<br />
<br />
You can abort a suspend cycle if you press the escape key. If you press a capital R, you will force the system to reboot after hibernation.<br />
<br />
If all goes well, you should be able to resume using the same GRUB menu selection. If you make that option the default for GRUB, you will always default to resuming if a resume image is available. '''Never use a different kernel to resume than you used to suspend! If pacman updates your kernel, do not suspend before you have rebooted properly.''' It is recommended that you test the suspend/hibernate from a text console first and then once you have confirmed that it works try it from within X.<br />
<br />
You can make this practice safer adding the hibernate-cleanup daemon to your DAEMONS array in /etc/rc.conf. This script will make sure that any stale image is deleted from your swap partition at boot time. This should make your system safe also in the case that you have chosen the mistaken kernel at the GRUB prompt. The hibernate-cleanup service is included in the hibernate-script package.<br />
<br />
==Additional pm-utils setup==<br />
<br />
If using [[GNOME]] as your DE, or using any other environment that uses [[pm-utils]] to shutdown and suspend the system, some additional setup is required for TuxOnIce.<br />
<br />
Configuration made in /etc/hibernate/hibernate.conf is still useful, but some options don't seem to be used by pm-utils. Compression, for example, will default to lzo unless more action is taken.<br />
Editing files under /etc/pm/sleep.d/ is a good way to make sure wanted settings are used.<br />
<br />
To change the compressor used by TuxOnIce, for example, edit {{Filename|/etc/pm/sleep.d/00doit}} and add a line like so:<br />
<br />
#!/bin/bash<br />
case $1 in<br />
hibernate)<br />
#Possible compressors include lzo, lzf, and none<br />
''echo none > /sys/power/tuxonice/compression/algorithm''<br />
;;<br />
<br />
Additional lines can be used to change other options, such as the default logging level (found in {{Filename|/sys/power/tuxonice/user_interface/default_console_level}}).<br />
<br />
<br />
<br />
==userui (user interface for TuxOnIce (optional))==<br />
<br />
Optionally, you can use a text or graphical (fbsplash) interface with a progress bar with TuxOnIce. To do this, install the tuxonice-userui package from the AUR. This package depends on the static freetype2 library that is provided by freetype2-static (also in the AUR).<br />
<br />
In /etc/hibernate/tuxonice.conf, set the desired user interface:<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui" # Text interface<br />
<br />
or<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui -f" # Graphical fbsplash interface<br />
<br />
The fbsplash interface also needs a symlink to the fbsplash theme, like so:<br />
<br />
# ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice<br />
<br />
Without this symlink, there will be no progress indicators during suspend/resume.<br />
<br />
It is probably necessary to regenerate the initramfs after changing the symlink above.<br />
<br />
The text interface may be good for debugging TuxOnIce, as it displays some messages.<br />
<br />
You won't see a user interface for the first few seconds of the resume process unless you add the ''userui'' hook to your mkinitcpio (before the ''resume'' hook) configuration and regenerate your initramfs, but this is also optional. <br />
<br />
Generate initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
To test if userui works, switch to a text console and run:<br />
<br />
# tuxoniceui --test<br />
<br />
For the graphical interface run:<br />
<br />
# tuxoniceui -f --test<br />
<br />
==References==<br />
*The [http://www.tuxonice.net TuxOnIce website] and [http://wiki.tuxonice.net/ TuxOnIce wiki] are excellent sources of documentation.<br />
*More general information about suspend/hibernate with hibernate-script can be found on the [[Suspend to Disk]] page of this wiki. This also covers some advanced topics like problems with specific hardware and configurations.<br />
*Another good source of information is the [http://en.gentoo-wiki.com/wiki/TuxOnIce Gentoo wiki]</div>Luigi Panachehttps://wiki.archlinux.org/index.php?title=TuxOnIce&diff=166091TuxOnIce2011-10-15T21:32:41Z<p>Luigi Panache: /* userui (user interface for TuxOnIce (optional)) */ Just cleaning up more of the userui changes.</p>
<hr />
<div>[[Category:Power management (English)]]<br />
[[Category:Laptops (English)]]<br />
{{i18n|TuxOnIce}}<br />
{{Article summary start}}<br />
{{Article summary text|Describes installing, configuring and using TuxOnIce, an advanced suspend/hibernate framework.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Pm-utils}}<br />
{{Article summary wiki|Uswsusp}}<br />
{{Article summary end}}<br />
<br />
This is a quick start guide for installing [http://www.tuxonice.net TuxOnIce] (formerly suspend2), an advanced suspend/hibernate framework which supports suspending to a swap-disk or a regular file with fast LZO-compression. Visit the TuxOnIce website for a full list of [http://www.tuxonice.net/features features].<br />
<br />
==Preparing the kernel==<br />
TuxOnIce consists of a kernel patch, plus an optional user interface. Only the kernel patch is necessary, the user interface merely provides a graphical interface displayed during the hibernation/resume cycle. <br />
<br />
You can use the {{Package AUR|linux-ice}} or the {{Package AUR|linux-pf}} packages in the [[AUR]]. They automate all the patch routines, the compilation and installation of the kernel, the regeneration of the initramfs with an appropriate hook. To build kernel26-ice, see [[Arch User Repository#Installing packages]] for more information. You maintain control over the install process, and its easy to make changes if you want to repeat the process. For kernel26-pf, there is an unofficial repo with precompiled generic and optimized kernels for most architectures (search for "pfkernel" in [[Unofficial_User_Repositories]]).<br />
<br />
Otherwise, you need to patch, configure and compile your own kernel, visit [[Kernel Compilation From Source]] and [[Kernel Compilation with ABS]] for instructions. The required patch can be obtained from the TuxOnIce website mentioned above.<br />
<br />
Next, you may need to run [[mkinitcpio]], which create the ramdisk for you:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
or<br />
# mkinitcpio -p kernel26-pf<br />
<br />
Next, install the ''hibernate-script'' package from the [[AUR]] which we will use to call TuxOnIce. Hibernate-script is the default script developed by the TuxOnIce development team.<br />
<br />
The configuration files for hibernate-script are in /etc/hibernate, we will get back to them shortly.<br />
<br />
==Setting up the bootloader==<br />
Before your can use the suspend function, you need to add the "resume" parameter in your bootloader ('''unless you have hard-coded your swap partition during the kernel configuration'''). The resume parameter points to the swap partition or swap file, below are the steps involved for both methods.<br />
<br />
===Suspend to swap partition===<br />
{{Note|As of the latest version of TuxOnIce (3.0.99.44), adding the kernel resume parameter is no longer necessary, it will auto-detect if your swap drive contains a bootable image. You only need to set the swap method appropriately. For more details, check out [http://www.tuxonice.net/].}}<br />
<br />
Set the swap method (make sure the right partition is indicated) in /etc/hibernate/tuxonice.conf:<br />
<br />
SuspendDevice swap:/dev/sda3<br />
<br />
===Suspend to swap file===<br />
{{Note|Auto-detection as mentioned previously doesn't seem to work with swap files, you will still need to manually set the kernel resume parameter.}}<br />
<br />
If you use a swap file instead of a swap partition, you will need to pass the location of its header to TuxOnIce. TuxOnIce can list all available swap headers.<br />
<br />
cat /sys/power/tuxonice/swap/headerlocations<br />
<br />
Use the given string as-is in both /etc/hibernate/tuxonice.conf and passed to your kernel as a resume parameter. <br />
<br />
SuspendDevice swap:/dev/sda7:0x1087070<br />
<br />
Append the following to your kernel parameters in your bootloader's configuration file:<br />
<br />
resume=swap:/dev/sda7:0x1087070<br />
<br />
{{Note|Specifying the resume device by UUID is supposed to work, but I was not able to get it to work. This may be a TuxOnIce or a mkinitcpio issue, YMMV. Specifying /dev/sd** should work in all cases though.}}<br />
<br />
===Suspend to file===<br />
For the file allocator, you will have to prepare a hibernation file. This is different from the standard swap file in that this file is ONLY used for hibernation and not as a general system swap file. The previous method is recommended as being more efficient in terms of disk space. First configure the /etc/hibernate/tuxonice.conf file, uncomment the "FilewriterLocation" option:<br />
<br />
FilewriterLocation /suspend_file 1000<br />
<br />
1000 is the amount of disk space reserved for the hibernation file, in this case 1000 megabytes. Usually an amount of 50% - 75% of your total amount of RAM will suffice.<br />
<br />
Next, run the following command to create the hibernation file:<br />
<br />
# hibernate --no-suspend<br />
<br />
Take a look in /sys/power/tuxonice/resume for what to pass to your kernel. You should see something like file:/dev/hda7:0x10011f, in which case you should append "resume=file:/dev/hda7:0x10011f" as a kernel parameter in your lilo.conf file or GRUB's menu.lst.<br />
<br />
==Recreating the initramfs==<br />
If you use an initramfs, you need to add the resume hook in the HOOKS in the configuration of mkinitcpio. Additionally, if you want to speed things up by using LZO compression, add the lzo module to the MODULES array in the same file.<br />
<br />
/etc/mkinitcpio.conf example:<br />
<br />
MODULES="lzo"<br />
HOOKS="base udev autodetect pata scsi sata resume filesystems"<br />
<br />
Rebuild the initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
==Suspending and resuming==<br />
With hibernate-script, your preferred hibernation method can be set in the file /etc/hibernate/hibernate.conf. If you list several methods, the first one will be used. Note that ''hibernate'' can also be used with [[Suspend to RAM]] or vanilla swsusp, but this is not part of this guide.<br />
<br />
For TuxOnIce use: <br />
<br />
TryMethod tuxonice.conf<br />
<br />
Specific settings for TuxOnIce are in /etc/hibernate/tuxonice.conf. Make sure that the following lines are uncommented and appropriately configured:<br />
<br />
UseTuxOnIce yes<br />
Compressor lzo<br />
<br />
There are a number of additional settings and tweaks which you can set in /etc/hibernate/tuxonice.conf and /etc/hibernate/common.conf, more information about these can be found on the [http://www.tuxonice.net/HOWTO-4.html TuxOnIce] website and on the [[Suspend to Disk]] page of this wiki.<br />
<br />
Now try TuxOnIce hibernation with the following method:<br />
<br />
# hibernate -F /etc/hibernate/tuxonice.conf<br />
<br />
You can abort a suspend cycle if you press the escape key. If you press a capital R, you will force the system to reboot after hibernation.<br />
<br />
If all goes well, you should be able to resume using the same GRUB menu selection. If you make that option the default for GRUB, you will always default to resuming if a resume image is available. '''Never use a different kernel to resume than you used to suspend! If pacman updates your kernel, do not suspend before you have rebooted properly.''' It is recommended that you test the suspend/hibernate from a text console first and then once you have confirmed that it works try it from within X.<br />
<br />
You can make this practice safer adding the hibernate-cleanup daemon to your DAEMONS array in /etc/rc.conf. This script will make sure that any stale image is deleted from your swap partition at boot time. This should make your system safe also in the case that you have chosen the mistaken kernel at the GRUB prompt. The hibernate-cleanup service is included in the hibernate-script package.<br />
<br />
==userui (user interface for TuxOnIce (optional))==<br />
<br />
Optionally, you can use a text or graphical (fbsplash) interface with a progress bar with TuxOnIce. To do this, install the tuxonice-userui package from the AUR. This package depends on the static freetype2 library that is provided by freetype2-static (also in the AUR).<br />
<br />
In /etc/hibernate/tuxonice.conf, set the desired user interface:<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui" # Text interface<br />
<br />
or<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui -f" # Graphical fbsplash interface<br />
<br />
The fbsplash interface also needs a symlink to the fbsplash theme, like so:<br />
<br />
# ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice<br />
<br />
Without this symlink, there will be no progress indicators during suspend/resume.<br />
<br />
It is probably necessary to regenerate the initramfs after changing the symlink above.<br />
<br />
The text interface may be good for debugging TuxOnIce, as it displays some messages.<br />
<br />
You won't see a user interface for the first few seconds of the resume process unless you add the ''userui'' hook to your mkinitcpio (before the ''resume'' hook) configuration and regenerate your initramfs, but this is also optional. <br />
<br />
Generate initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
To test if userui works, switch to a text console and run:<br />
<br />
# tuxoniceui --test<br />
<br />
For the graphical interface run:<br />
<br />
# tuxoniceui -f --test<br />
<br />
==References==<br />
*The [http://www.tuxonice.net TuxOnIce website] and [http://wiki.tuxonice.net/ TuxOnIce wiki] are excellent sources of documentation.<br />
*More general information about suspend/hibernate with hibernate-script can be found on the [[Suspend to Disk]] page of this wiki. This also covers some advanced topics like problems with specific hardware and configurations.<br />
*Another good source of information is the [http://en.gentoo-wiki.com/wiki/TuxOnIce Gentoo wiki]</div>Luigi Panachehttps://wiki.archlinux.org/index.php?title=TuxOnIce&diff=165162TuxOnIce2011-10-11T20:03:14Z<p>Luigi Panache: /* userui (user interface for TuxOnIce (optional)) */ Changes were made upstream, modifying userui information appropriately</p>
<hr />
<div>[[Category:Power management (English)]]<br />
[[Category:Laptops (English)]]<br />
{{i18n|TuxOnIce}}<br />
{{Article summary start}}<br />
{{Article summary text|Describes installing, configuring and using TuxOnIce, an advanced suspend/hibernate framework.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Pm-utils}}<br />
{{Article summary wiki|Uswsusp}}<br />
{{Article summary end}}<br />
<br />
This is a quick start guide for installing [http://www.tuxonice.net TuxOnIce] (formerly suspend2), an advanced suspend/hibernate framework which supports suspending to a swap-disk or a regular file with fast LZO-compression. Visit the TuxOnIce website for a full list of [http://www.tuxonice.net/features features].<br />
<br />
==Preparing the kernel==<br />
TuxOnIce consists of a kernel patch, plus an optional user interface. Only the kernel patch is necessary, the user interface merely provides a graphical interface displayed during the hibernation/resume cycle. <br />
<br />
You can use the {{Package AUR|linux-ice}} or the {{Package AUR|linux-pf}} packages in the [[AUR]]. They automate all the patch routines, the compilation and installation of the kernel, the regeneration of the initramfs with an appropriate hook. To build kernel26-ice, see [[Arch User Repository#Installing packages]] for more information. You maintain control over the install process, and its easy to make changes if you want to repeat the process. For kernel26-pf, there is an unofficial repo with precompiled generic and optimized kernels for most architectures (search for "pfkernel" in [[Unofficial_User_Repositories]]).<br />
<br />
Otherwise, you need to patch, configure and compile your own kernel, visit [[Kernel Compilation From Source]] and [[Kernel Compilation with ABS]] for instructions. The required patch can be obtained from the TuxOnIce website mentioned above.<br />
<br />
Next, you may need to run [[mkinitcpio]], which create the ramdisk for you:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
or<br />
# mkinitcpio -p kernel26-pf<br />
<br />
Next, install the ''hibernate-script'' package from the [[AUR]] which we will use to call TuxOnIce. Hibernate-script is the default script developed by the TuxOnIce development team.<br />
<br />
The configuration files for hibernate-script are in /etc/hibernate, we will get back to them shortly.<br />
<br />
==Setting up the bootloader==<br />
Before your can use the suspend function, you need to add the "resume" parameter in your bootloader ('''unless you have hard-coded your swap partition during the kernel configuration'''). The resume parameter points to the swap partition or swap file, below are the steps involved for both methods.<br />
<br />
===Suspend to swap partition===<br />
{{Note|As of the latest version of TuxOnIce (3.0.99.44), adding the kernel resume parameter is no longer necessary, it will auto-detect if your swap drive contains a bootable image. You only need to set the swap method appropriately. For more details, check out [http://www.tuxonice.net/].}}<br />
<br />
Set the swap method (make sure the right partition is indicated) in /etc/hibernate/tuxonice.conf:<br />
<br />
SuspendDevice swap:/dev/sda3<br />
<br />
===Suspend to swap file===<br />
{{Note|Auto-detection as mentioned previously doesn't seem to work with swap files, you will still need to manually set the kernel resume parameter.}}<br />
<br />
If you use a swap file instead of a swap partition, you will need to pass the location of its header to TuxOnIce. TuxOnIce can list all available swap headers.<br />
<br />
cat /sys/power/tuxonice/swap/headerlocations<br />
<br />
Use the given string as-is in both /etc/hibernate/tuxonice.conf and passed to your kernel as a resume parameter. <br />
<br />
SuspendDevice swap:/dev/sda7:0x1087070<br />
<br />
Append the following to your kernel parameters in your bootloader's configuration file:<br />
<br />
resume=swap:/dev/sda7:0x1087070<br />
<br />
{{Note|Specifying the resume device by UUID is supposed to work, but I was not able to get it to work. This may be a TuxOnIce or a mkinitcpio issue, YMMV. Specifying /dev/sd** should work in all cases though.}}<br />
<br />
===Suspend to file===<br />
For the file allocator, you will have to prepare a hibernation file. This is different from the standard swap file in that this file is ONLY used for hibernation and not as a general system swap file. The previous method is recommended as being more efficient in terms of disk space. First configure the /etc/hibernate/tuxonice.conf file, uncomment the "FilewriterLocation" option:<br />
<br />
FilewriterLocation /suspend_file 1000<br />
<br />
1000 is the amount of disk space reserved for the hibernation file, in this case 1000 megabytes. Usually an amount of 50% - 75% of your total amount of RAM will suffice.<br />
<br />
Next, run the following command to create the hibernation file:<br />
<br />
# hibernate --no-suspend<br />
<br />
Take a look in /sys/power/tuxonice/resume for what to pass to your kernel. You should see something like file:/dev/hda7:0x10011f, in which case you should append "resume=file:/dev/hda7:0x10011f" as a kernel parameter in your lilo.conf file or GRUB's menu.lst.<br />
<br />
==Recreating the initramfs==<br />
If you use an initramfs, you need to add the resume hook in the HOOKS in the configuration of mkinitcpio. Additionally, if you want to speed things up by using LZO compression, add the lzo module to the MODULES array in the same file.<br />
<br />
/etc/mkinitcpio.conf example:<br />
<br />
MODULES="lzo"<br />
HOOKS="base udev autodetect pata scsi sata resume filesystems"<br />
<br />
Rebuild the initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
==Suspending and resuming==<br />
With hibernate-script, your preferred hibernation method can be set in the file /etc/hibernate/hibernate.conf. If you list several methods, the first one will be used. Note that ''hibernate'' can also be used with [[Suspend to RAM]] or vanilla swsusp, but this is not part of this guide.<br />
<br />
For TuxOnIce use: <br />
<br />
TryMethod tuxonice.conf<br />
<br />
Specific settings for TuxOnIce are in /etc/hibernate/tuxonice.conf. Make sure that the following lines are uncommented and appropriately configured:<br />
<br />
UseTuxOnIce yes<br />
Compressor lzo<br />
<br />
There are a number of additional settings and tweaks which you can set in /etc/hibernate/tuxonice.conf and /etc/hibernate/common.conf, more information about these can be found on the [http://www.tuxonice.net/HOWTO-4.html TuxOnIce] website and on the [[Suspend to Disk]] page of this wiki.<br />
<br />
Now try TuxOnIce hibernation with the following method:<br />
<br />
# hibernate -F /etc/hibernate/tuxonice.conf<br />
<br />
You can abort a suspend cycle if you press the escape key. If you press a capital R, you will force the system to reboot after hibernation.<br />
<br />
If all goes well, you should be able to resume using the same GRUB menu selection. If you make that option the default for GRUB, you will always default to resuming if a resume image is available. '''Never use a different kernel to resume than you used to suspend! If pacman updates your kernel, do not suspend before you have rebooted properly.''' It is recommended that you test the suspend/hibernate from a text console first and then once you have confirmed that it works try it from within X.<br />
<br />
You can make this practice safer adding the hibernate-cleanup daemon to your DAEMONS array in /etc/rc.conf. This script will make sure that any stale image is deleted from your swap partition at boot time. This should make your system safe also in the case that you have chosen the mistaken kernel at the GRUB prompt. The hibernate-cleanup service is included in the hibernate-script package.<br />
<br />
==userui (user interface for TuxOnIce (optional))==<br />
<br />
Optionally, you can use a text or graphical (fbsplash) interface with a progress bar with TuxOnIce. To do this, install the tuxonice-userui package from the AUR. This package depends on the static freetype2 library that is provided by freetype2-static (also in the AUR).<br />
<br />
In /etc/hibernate/tuxonice.conf, set the desired user interface:<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui" # Text interface<br />
<br />
or<br />
<br />
ProcSetting user_interface/program "/usr/sbin/tuxoniceui -f" # Graphical fbsplash interface<br />
<br />
The fbsplash interface also needs a symlink to the fbsplash theme, like so:<br />
<br />
# ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice<br />
<br />
Without this symlink, there will be no progress indicators during suspend/resume.<br />
<br />
It is probably necessary to regenerate the initramfs after changing the symlink above.<br />
<br />
The text interface may be good for debugging TuxOnIce, as it displays some messages.<br />
<br />
You won't see a user interface for the first few seconds of the resume process unless you add the ''userui'' hook to your mkinitcpio (before the ''resume'' hook) configuration and regenerate your initramfs, but this is also optional. <br />
<br />
Generate initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
To test if userui works, switch to a text console and run:<br />
<br />
# tuxoniceui_text --test<br />
<br />
For the graphical interface run:<br />
<br />
# tuxoniceui_fbsplash --test<br />
<br />
==References==<br />
*The [http://www.tuxonice.net TuxOnIce website] and [http://wiki.tuxonice.net/ TuxOnIce wiki] are excellent sources of documentation.<br />
*More general information about suspend/hibernate with hibernate-script can be found on the [[Suspend to Disk]] page of this wiki. This also covers some advanced topics like problems with specific hardware and configurations.<br />
*Another good source of information is the [http://en.gentoo-wiki.com/wiki/TuxOnIce Gentoo wiki]</div>Luigi Panachehttps://wiki.archlinux.org/index.php?title=TuxOnIce&diff=165161TuxOnIce2011-10-11T20:00:26Z<p>Luigi Panache: /* Suspending and resuming */ Grammar correction</p>
<hr />
<div>[[Category:Power management (English)]]<br />
[[Category:Laptops (English)]]<br />
{{i18n|TuxOnIce}}<br />
{{Article summary start}}<br />
{{Article summary text|Describes installing, configuring and using TuxOnIce, an advanced suspend/hibernate framework.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Pm-utils}}<br />
{{Article summary wiki|Uswsusp}}<br />
{{Article summary end}}<br />
<br />
This is a quick start guide for installing [http://www.tuxonice.net TuxOnIce] (formerly suspend2), an advanced suspend/hibernate framework which supports suspending to a swap-disk or a regular file with fast LZO-compression. Visit the TuxOnIce website for a full list of [http://www.tuxonice.net/features features].<br />
<br />
==Preparing the kernel==<br />
TuxOnIce consists of a kernel patch, plus an optional user interface. Only the kernel patch is necessary, the user interface merely provides a graphical interface displayed during the hibernation/resume cycle. <br />
<br />
You can use the {{Package AUR|linux-ice}} or the {{Package AUR|linux-pf}} packages in the [[AUR]]. They automate all the patch routines, the compilation and installation of the kernel, the regeneration of the initramfs with an appropriate hook. To build kernel26-ice, see [[Arch User Repository#Installing packages]] for more information. You maintain control over the install process, and its easy to make changes if you want to repeat the process. For kernel26-pf, there is an unofficial repo with precompiled generic and optimized kernels for most architectures (search for "pfkernel" in [[Unofficial_User_Repositories]]).<br />
<br />
Otherwise, you need to patch, configure and compile your own kernel, visit [[Kernel Compilation From Source]] and [[Kernel Compilation with ABS]] for instructions. The required patch can be obtained from the TuxOnIce website mentioned above.<br />
<br />
Next, you may need to run [[mkinitcpio]], which create the ramdisk for you:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
or<br />
# mkinitcpio -p kernel26-pf<br />
<br />
Next, install the ''hibernate-script'' package from the [[AUR]] which we will use to call TuxOnIce. Hibernate-script is the default script developed by the TuxOnIce development team.<br />
<br />
The configuration files for hibernate-script are in /etc/hibernate, we will get back to them shortly.<br />
<br />
==Setting up the bootloader==<br />
Before your can use the suspend function, you need to add the "resume" parameter in your bootloader ('''unless you have hard-coded your swap partition during the kernel configuration'''). The resume parameter points to the swap partition or swap file, below are the steps involved for both methods.<br />
<br />
===Suspend to swap partition===<br />
{{Note|As of the latest version of TuxOnIce (3.0.99.44), adding the kernel resume parameter is no longer necessary, it will auto-detect if your swap drive contains a bootable image. You only need to set the swap method appropriately. For more details, check out [http://www.tuxonice.net/].}}<br />
<br />
Set the swap method (make sure the right partition is indicated) in /etc/hibernate/tuxonice.conf:<br />
<br />
SuspendDevice swap:/dev/sda3<br />
<br />
===Suspend to swap file===<br />
{{Note|Auto-detection as mentioned previously doesn't seem to work with swap files, you will still need to manually set the kernel resume parameter.}}<br />
<br />
If you use a swap file instead of a swap partition, you will need to pass the location of its header to TuxOnIce. TuxOnIce can list all available swap headers.<br />
<br />
cat /sys/power/tuxonice/swap/headerlocations<br />
<br />
Use the given string as-is in both /etc/hibernate/tuxonice.conf and passed to your kernel as a resume parameter. <br />
<br />
SuspendDevice swap:/dev/sda7:0x1087070<br />
<br />
Append the following to your kernel parameters in your bootloader's configuration file:<br />
<br />
resume=swap:/dev/sda7:0x1087070<br />
<br />
{{Note|Specifying the resume device by UUID is supposed to work, but I was not able to get it to work. This may be a TuxOnIce or a mkinitcpio issue, YMMV. Specifying /dev/sd** should work in all cases though.}}<br />
<br />
===Suspend to file===<br />
For the file allocator, you will have to prepare a hibernation file. This is different from the standard swap file in that this file is ONLY used for hibernation and not as a general system swap file. The previous method is recommended as being more efficient in terms of disk space. First configure the /etc/hibernate/tuxonice.conf file, uncomment the "FilewriterLocation" option:<br />
<br />
FilewriterLocation /suspend_file 1000<br />
<br />
1000 is the amount of disk space reserved for the hibernation file, in this case 1000 megabytes. Usually an amount of 50% - 75% of your total amount of RAM will suffice.<br />
<br />
Next, run the following command to create the hibernation file:<br />
<br />
# hibernate --no-suspend<br />
<br />
Take a look in /sys/power/tuxonice/resume for what to pass to your kernel. You should see something like file:/dev/hda7:0x10011f, in which case you should append "resume=file:/dev/hda7:0x10011f" as a kernel parameter in your lilo.conf file or GRUB's menu.lst.<br />
<br />
==Recreating the initramfs==<br />
If you use an initramfs, you need to add the resume hook in the HOOKS in the configuration of mkinitcpio. Additionally, if you want to speed things up by using LZO compression, add the lzo module to the MODULES array in the same file.<br />
<br />
/etc/mkinitcpio.conf example:<br />
<br />
MODULES="lzo"<br />
HOOKS="base udev autodetect pata scsi sata resume filesystems"<br />
<br />
Rebuild the initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
==Suspending and resuming==<br />
With hibernate-script, your preferred hibernation method can be set in the file /etc/hibernate/hibernate.conf. If you list several methods, the first one will be used. Note that ''hibernate'' can also be used with [[Suspend to RAM]] or vanilla swsusp, but this is not part of this guide.<br />
<br />
For TuxOnIce use: <br />
<br />
TryMethod tuxonice.conf<br />
<br />
Specific settings for TuxOnIce are in /etc/hibernate/tuxonice.conf. Make sure that the following lines are uncommented and appropriately configured:<br />
<br />
UseTuxOnIce yes<br />
Compressor lzo<br />
<br />
There are a number of additional settings and tweaks which you can set in /etc/hibernate/tuxonice.conf and /etc/hibernate/common.conf, more information about these can be found on the [http://www.tuxonice.net/HOWTO-4.html TuxOnIce] website and on the [[Suspend to Disk]] page of this wiki.<br />
<br />
Now try TuxOnIce hibernation with the following method:<br />
<br />
# hibernate -F /etc/hibernate/tuxonice.conf<br />
<br />
You can abort a suspend cycle if you press the escape key. If you press a capital R, you will force the system to reboot after hibernation.<br />
<br />
If all goes well, you should be able to resume using the same GRUB menu selection. If you make that option the default for GRUB, you will always default to resuming if a resume image is available. '''Never use a different kernel to resume than you used to suspend! If pacman updates your kernel, do not suspend before you have rebooted properly.''' It is recommended that you test the suspend/hibernate from a text console first and then once you have confirmed that it works try it from within X.<br />
<br />
You can make this practice safer adding the hibernate-cleanup daemon to your DAEMONS array in /etc/rc.conf. This script will make sure that any stale image is deleted from your swap partition at boot time. This should make your system safe also in the case that you have chosen the mistaken kernel at the GRUB prompt. The hibernate-cleanup service is included in the hibernate-script package.<br />
<br />
==userui (user interface for TuxOnIce (optional))==<br />
<br />
Optionally, you can use a text or graphical (fbsplash) interface with a progress bar with TuxOnIce. To do this, install the tuxonice-userui package from the AUR. This package depends on the static freetype2 library that is provided by freetype2-static (also in the AUR).<br />
<br />
In /etc/hibernate/tuxonice.conf, set the desired user interface:<br />
<br />
ProcSetting user_interface/program /usr/sbin/tuxoniceui_text # Text interface<br />
<br />
or<br />
<br />
ProcSetting user_interface/program /usr/sbin/tuxoniceui_fbsplash # Graphical fbsplash interface<br />
<br />
The fbsplash interface also needs a symlink to the fbsplash theme, like so:<br />
<br />
# ln -s /etc/splash/arch-banner-noicons/ /etc/splash/tuxonice<br />
<br />
Without this symlink, there will be no progress indicators during suspend/resume.<br />
<br />
It is probably necessary to regenerate the initramfs after changing the symlink above.<br />
<br />
The text interface may be good for debugging TuxOnIce, as it displays some messages.<br />
<br />
You won't see a user interface for the first few seconds of the resume process unless you add the ''userui'' hook to your mkinitcpio (before the ''resume'' hook) configuration and regenerate your initramfs, but this is also optional. <br />
<br />
Generate initramfs:<br />
<br />
# mkinitcpio -p kernel26-ice<br />
<br />
To test if userui works, switch to a text console and run:<br />
<br />
# tuxoniceui_text --test<br />
<br />
For the graphical interface run:<br />
<br />
# tuxoniceui_fbsplash --test<br />
<br />
==References==<br />
*The [http://www.tuxonice.net TuxOnIce website] and [http://wiki.tuxonice.net/ TuxOnIce wiki] are excellent sources of documentation.<br />
*More general information about suspend/hibernate with hibernate-script can be found on the [[Suspend to Disk]] page of this wiki. This also covers some advanced topics like problems with specific hardware and configurations.<br />
*Another good source of information is the [http://en.gentoo-wiki.com/wiki/TuxOnIce Gentoo wiki]</div>Luigi Panachehttps://wiki.archlinux.org/index.php?title=Icecast&diff=155039Icecast2011-09-02T01:29:48Z<p>Luigi Panache: /* Streaming with MPD */ it's --> its</p>
<hr />
<div>[[Category:Audio/Video (English)]]<br />
<br />
=Icecast=<br />
<br />
Icecast is a program for streaming audio such as music across a network.<br />
Different types of clients connect to the icecast server, either to provide a "mount point", control the server, or listen to the audio being cast.<br />
<br />
Icecast has support for streaming many audio streams simultaneously - each stream has a "mount point" which a client can access, usually through a network uri, such as:<br />
<pre><br />
http://server:8000/mpd.ogg.m3u<br />
</pre><br />
<br />
This refers to a mount point called "mpd".<br />
<br />
==Setting up Icecast==<br />
*Install Icecast via Pacman<br />
# pacman -S icecast<br />
*Edit the configuration file.<br />
Open up /etc/icecast.xml in your text editor.<br />
The main section you want to pay attention to is <authentication>. Inside the <authentication> block are all the passwords that icecast use. I STRONGLY RECOMMEND you change them.<br />
Icecast defaults to listening on port 8000, and you may also change that if you wish.<br />
<br />
Since icecast 2.3.2-4 the daemon is started as nobody user. If you edit icecast configuration to start the daemon with a different user, then you need to edit the getPID function into the init script:<br />
<code>getPID() {<br />
pgrep -u <USER_NAME> icecast 2>/dev/null<br />
}</code><br />
<br />
The default log path, /var/log/icecast, is not created automatically, so you will need to either create that folder and chown to the user in the changeowner lines, change the log path, or disable logging. Be aware that by turning changeowner on, all paths are relative to the home directory of that user. You will have to edit all paths manually. A good choice might be to create a new user "icecast" and set its home directory to /usr/share/icecast. Create there a directory "log" and don't forget to give the ownership to icecast.<br />
<br />
==Icecast paths==<br />
===Global===<br />
If you plan on running icecast globally (one per machine) change the paths section to the following:<br />
<paths><br />
<basedir>/usr/share/icecast</basedir><br />
<logdir>/log</logdir><br />
<webroot>/web</webroot><br />
<adminroot>/admin</adminroot><br />
</paths><br />
<br />
===Local user===<br />
Note that if you're running icecast under a local user (i.e. one that doesn't use /etc/icecast.xml) then you'll need to copy the icecast web xml files from /usr/share otherwise you'll get errors about xslt and the web interface won't work.<br />
<pre><br />
$ cp -R /usr/share/icecast/web ~/icecast/<br />
</pre><br />
<br />
==Running icecast==<br />
<br />
*Start icecast<br />
You can start icecast as a single user by executing:<br />
# icecast -b -c /etc/icecast.xml<br />
If you want icecast to remain in the foreground of your terminal, remove the -b flag.<br />
<br />
To run icecast as a system daemon:<br />
# /etc/rc.d/icecast start<br />
<br />
*Test it.<br />
Make sure Icecast is running by opening up http://localhost:8000/ in your web browser. You should be greeted by an Icecast2 Status page. This indicates everything is running properly.<br />
<br />
=Streaming with MPD=<br />
<br />
MPD is a program for playing music via a daemon process instead of using a client. It also incorporates a music database for quick access, playlists, and a variety of frontend options.<br />
<br />
'''Note:''' MPD has its own <u>built-in</u> HTTP Streaming, and using Icecast+mpd may not be needed. See [[Music_Player_Daemon#HTTP_Streaming|Music Player Daemon : HTTP Streaming]] for more information.<br />
<br />
==Step 1: Set Up MPD and Install a Client==<br />
Use the [[mpd|MPD Install Guide]] to install and configure MPD and a client.<br />
<br />
==Step 2: Ensure Icecast is running==<br />
<br />
# /etc/rc.d/icecast start<br />
<br />
==Step 3: Configure MPD to be an Icecast Source==<br />
Edit /etc/mpd.conf and enable the Icecast audio_output by adding the following:<br />
<br />
<pre><br />
audio_output {<br />
type "shout"<br />
encoding "ogg"<br />
name "my cool stream"<br />
host "localhost"<br />
port "8000"<br />
mount "/mpd.ogg"<br />
<br />
# This is the source password in icecast.xml<br />
password "hackme"<br />
<br />
# Set either quality or bitrate<br />
# quality "5.0"<br />
bitrate "64"<br />
<br />
format "44100:16:1"<br />
<br />
# Optional Paramters<br />
user "source"<br />
# description "here's my long description"<br />
# genre "jazz"<br />
} # end of audio_output<br />
<br />
# Need this so that mpd still works if icecast is not running<br />
audio_output {<br />
type "alsa"<br />
name "fake out"<br />
driver "null"<br />
}<br />
</pre><br />
<br />
==Step 4: Running MPD with Icecast==<br />
You can run both MPD and Icecast with the rc.d scripts:<br />
<pre><br />
# /etc/rc.d/icecast start<br />
# /etc/rc.d/mpd start<br />
</pre><br />
Note that icecast must be started first for the stream to work.<br />
<br />
==Step 5: Test / use the stream==<br />
Now that you have installed the necessary software you probably want to test/use the stream. Realize that you'll need your client to do two things:<br />
#Connect to the mpd server so you can control it<br />
#Connect to the stream to actually hear the music. Connecting to the mpd server will alter output to the Icecast server but you won't hear it.<br />
<br />
Sonata (a graphical mpd client) and mplayer (a command line client) are just two of the available clients. Note that if you use mplayer, you'll need another way to control the remote mpd server (for example ssh)<br />
<br />
===mpd===<br />
You can play an icecast stream from another mpd instance, on another computer, for example.<br />
*Use mpc to add the url to mpd's playlist<br />
<pre><br />
$ mpc add http://ip.of.server:8000/mpd.ogg.m3u<br />
</pre><br />
<br />
You can then play the stream as if it was a song belonging to your local mpd instance.<br />
<br />
===Sonata===<br />
*Install Sonata:<br />
<pre><br />
# pacman -S sonata<br />
</pre><br />
*Start it up and you should be greeted by Sonata's preferences.<br />
*Set 'Name' to the name of your server.<br />
*Set 'Host' to the IP address of your server.<br />
*Set 'Port' to '6600'.<br />
*Click the '+' and repeat the previous steps but instead about your local computer (ie. it's name and IP).<br />
*Right-click->'Connections' and select your server. Then click on the 'Library' tab, if all is well, you should see your entire music selection that's on your server. Find a folder, right-click and click 'Add'. Clicking on the 'Current' tab will show you your current playlist, which should have the contents of whatever folder you just chose from the library. Double-click on a song. You should see the text get bold and the progress bar show up, just like it's playing, but you won't hear anything. Fear not.<br />
*Right-click->'Connections' and select your local computer. Then click the 'Streams' tab. Right-click and click 'New'. Make 'Stream Name' the name from your servers /etc/mpd.conf file's audio_output { } section and make the URL IP.of.server:8000/mpd.ogg.m3u. Double-click on this stream.<br />
*Click on the 'Current' tab and you'll see the URL of the stream as your only item. Double-click on it and after a delay you should hear whatever song you had chosen on the server.<br />
<br />
===MPlayer===<br />
*Install mplayer<br />
<pre><br />
# pacman -S mplayer<br />
</pre><br />
*Start it, telling it to play the playlist that icecast places in the icecast root directory (the playlist redirects mplayer to mpd.ogg)<br />
<pre><br />
$ mplayer -playlist http://ip.of.server:8000/mpd.ogg.m3u<br />
</pre><br />
To control the remote mpd server, if you have an ssh server on the same machine, you can login and use [[Music_Player_Daemon#Client_install_procedure|[nc]mpc[pp]]] to control it.<br />
<br />
Or, if your mpd server is listening on an accessible interface/port (netstat -tnlp on the mpd machine will show mpd listening on 0.0.0.0, for example) then you can set the MPD_HOST variable which directs a local client like mpc to the remote server.<br />
<pre><br />
$ export MPD_HOST=ip.of.server<br />
$ export MPD_PORT=6600 # optional<br />
$ mpc play<br />
</pre><br />
<br />
=Streaming with oggfwd and ffmpeg2theora=<br />
If you want to stream a single track, for example, you can use this method instead of changing your mpd setup.<br />
*Install ffmpeg2theora from community and [http://aur.archlinux.org/packages.php?ID=17419 oggfwd] from the [[AUR]].<br />
# pacman -S ffmpeg2theora<br />
<br />
*Start icecast using a previously setup config file<br />
$ icecast -c path/to/config.xml<br />
or<br />
# /etc/rc.d/icecast start<br />
*Start ffmpeg2theora, sending its output to oggfwd, which forwards to the icecast server for you.<br />
<pre><br />
$ ffmpeg2theora --no-skeleton --novideo -o - path/to/audio/file | \<br />
oggfwd localhost 8000 source_password_here /mountpoint_name_here.ogg<br />
</pre><br />
<br />
Alternatively, you can use this script:<br />
<br />
<pre><br />
#!/bin/sh<br />
<br />
if [ $# -eq 1 ] <br />
then<br />
music="$1"<br />
else<br />
echo "Usage: $0 music-file"<br />
exit 1<br />
fi<br />
<br />
pass="source_password"<br />
mountpt="mount_point_name"<br />
<br />
set -e<br />
ffmpeg2theora --no-skeleton --novideo -o - "$music" 2> /dev/null | \ <br />
oggfwd localhost 8000 "$pass" /"$mountpt".ogg<br />
</pre><br />
<br />
==Playing the stream==<br />
<br />
The above mentioned sonata and mplayer methods can be used.<br />
<br />
=References=<br />
* [http://mpd.wikia.com/wiki/Configuration MPD Wiki: Configuration]<br />
* [http://gentoo-wiki.com/HOWTO_Icecast_OGG_and_MP3_streaming Gentoo Wiki: HOWTO Icecast OGG and MP3 Streaming]<br />
* [http://www.valshak.com/drupal/node/2 MPD + Icecast = Local Network Radio] - source text and information on other clients.<br />
* [http://en.flossmanuals.net/TheoraCookbook/FfmpegStreaming] - oggfwd and ffmpeg2theora howto.</div>Luigi Panachehttps://wiki.archlinux.org/index.php?title=GNOME&diff=145776GNOME2011-06-12T19:59:09Z<p>Luigi Panache: /* Disable bluetooth icon in panel */ See previous edit I made.</p>
<hr />
<div>{{i18n|GNOME 3|GNOME}}<br />
[[fr:gnome3]]<br />
<br />
[[Category:Desktop environments (English)]]<br />
<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 end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications system and a more discrete panel<br />
* A fast Activities search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable of running gnome-shell and will start fallback mode if not. <br />
<br />
'''Fallback''' mode is very similar to the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from GNOME 2.32 ==<br />
<br />
{{Warning|The session might crash during the update and it is recommended that you run the update command in a screen session, from another DE or WM, or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
GNOME 3 is in [extra]. You can install it by running the following command:<br />
<br />
# pacman -Syu<br />
# pacman -S gnome<br />
<br />
For additional applications<br />
<br />
# pacman -S gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
{{Daemon|dbus}}<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''')<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For better desktop integration '''GDM''' is recommended (but other login managers, such as SLiM also work, see Policykit section).<br />
<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from the console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like what action is taken when the lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings.<br />
<br />
Version 3.0.3 only works if gnome-shell is installed (OK if forced to fallback mode), bug: https://bugzilla.gnome.org/show_bug.cgi?id=647132<br />
<br />
===GDM Customization===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<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 />
====Wallpaper====<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 />
You will need to point to a file where the gdm user has permission to read, not in your home directory.<br />
<br />
====Turning off the sound====<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false<br />
<br />
====Change GDM's keyboard layout====<br />
Since GDM 3 does not care about your gnome keyboard settings, you have to set your layout to Xorg config.<br />
See here: [https://wiki.archlinux.org/index.php/Beginners'_Guide#Non-US_keyboard Beginners'_Guide#Non-US_keyboard]<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Only Adwaita theme exists in this moment for gtk3 and is available in '''gnome-themes-standard''' package.<br />
<br />
Example:<br />
<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 />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
{{Note|More options can be find there: [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GtkSettings documentation]}}<br />
<br />
=== Hide Titlebar when Maximized ===<br />
# sed -i "s|<frame_geometry name=\"max\" |<frame_geometry name=\"max\" has_title=\"false\" |" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' (or just ''r'') followed by {{Keypress|Enter}} to reload.<br />
<br />
To prevent this file from being overwritten each time the package "gnome-themes-standard" is upgraded, add it to {{Filename|/etc/pacman.conf}} with the <tt>NoUpgrade</tt> option:<br />
<br />
{{File|name=/etc/pacman.conf|content=...<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add the leading slash (root directory) to the path<br />
...}}<br />
<br />
To restore the original values:<br />
# pacman -S gnome-themes-standard<br />
<br />
=== Resizing the Massive Titlebar ===<br />
# sed -i "/title_vertical_pad/s/value=\"[0-9]\{1,2\}\"/value=\"0\"/g" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' followed by {{Keypress|Enter}} <br />
<br />
This will change the title_vertical_pad from 14 to 0 giving a much sleeker look to windows.<br />
<br />
To restore the original values:<br />
sudo pacman -S gnome-themes-standard<br />
<br />
===Setting an icon theme===<br />
<br />
{{Note | With gnome-tweak-tool version 3.0.3 and later, you can place icon theme you wish to use inside ~/.icons.}}<br />
<br />
Usefully, Gnome 3 is able to use Gnome 2 icon themes, which means you're not stuck with the default set. To do this, simply copy your desired icon theme's directory to ~/.icons. For example:<br />
<br />
$ cp -R /home/user/Desktop/my_new_icon_theme ~/.icons<br />
<br />
The new icon theme 'my_new_icon_theme' will now be selectable using the gnome-tweak-tool (under 'Interface'), otherwise it can be set with no need of gnome-tweak-tool by adding the gtk-icon-theme-name entry inside ${XDG_CONFIG_HOME}/gtk-3.0/settings.ini.<br />
{{file|name=${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|content=<br />
.....<br />
gtk-icon-theme-name = my_new_icon_theme<br />
.....<br />
}}<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which programs to start automatically after login using the '''gnome-session-properties''' tool, which is a part of the '''gnome-session''' package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<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 />
{{Note|For ''nautilus-open-terminal'', you may need a flag (e.g. {{Codeline|-e}}) to indicate that a command will follow: ''nautilus-open-terminal'' passes a {{Codeline|cd}} command in order to change directories to the appropriate location.}}<br />
<br />
=== Setting Nautilus to Use Location Bar Entry ===<br />
<br />
If you want to enter path locations manually in Nautilus you can press '''Ctrl+L'''. To make this persistent you can use gsettings.<br />
<br />
gsettings set org.gnome.nautilus.preferences always-use-location-entry true<br />
<br />
=== Disable accessibility icon in panel ===<br />
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]<br />
<br />
After that create a folder named '''noa11y.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:<br />
const Panel = imports.ui.panel;<br />
<br />
function main() {<br />
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['a11y'] = ''''''';<br />
}<br />
The second one is named '''metadata.json''' and has this content:<br />
{<br />
"shell-version": ["3.0"],<br />
"uuid": "noa11y.icon@panel.ui",<br />
"name": "na11y",<br />
"description": "Turn off the ally icon in the panel"<br />
}<br />
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.<br />
<br />
If the above method doesn't work, you can try disabling the accessibility icon system wide. Edit the file '''/usr/share/gnome-shell/js/ui/panel.js''', find this line:<br />
'a11y': imports.ui.status.accessibility.ATIndicator,<br />
and comment it out e.g.:<br />
/* 'a11y': imports.ui.status.accessibility.ATIndicator, */<br />
Afterwards restart the shell.<br />
<br />
=== Disable bluetooth icon in panel ===<br />
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]<br />
<br />
After that create a folder named '''nobluetooth.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:<br />
const Panel = imports.ui.panel;<br />
<br />
function main() {<br />
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = ''''''';<br />
}<br />
The second one is named '''metadata.json''' and has this content:<br />
{<br />
"shell-version": ["3.0"],<br />
"uuid": "nobluetooth.icon@panel.ui",<br />
"name": "nbluetooth",<br />
"description": "Turn off the bluetooth icon in the panel"<br />
}<br />
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.<br />
<br />
=== Middle Mouse Button Emulation ===<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 />
=== Battery icon ===<br />
To have battery tray icon, install gnome-power-manager package:<br />
# pacman -S gnome-power-manager<br />
<br />
=== Xmonad ===<br />
<br />
Upgrading to Gnome 3 will (most-likely) break your xmonad setup. You can use xmonad again by forcing fallback mode (see below) and creating the following two files:<br />
<br />
{{file|name=/usr/share/gnome-session/sessions/xmonad.session|content=<br />
[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<br />
}}<br />
<br />
{{file|name=/usr/share/xsessions/xmonad-gnome-session.desktop|content=<br />
[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<br />
}}<br />
<br />
The next time you log in, you'll have the ability to choose ''Xmonad GNOME'' as your session.<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session will automatically start in fallback mode if gnome-shell is not present or if your desktop cannot handle graphics acceleration (such as running in a Virtual Machine or on old hardware). If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
You can also use gsettings to set the session manually from a terminal using the next command:<br />
<br />
<pre>$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.session session-name gnome-fallback</pre><br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options which you can customize with '''dconf-editor''' or '''gconf-editor''' for settings not yet migrated to dconf.<br />
<br />
=== Changing Hotkeys ===<br />
<br />
In '''dconf-editor''', enable org.gnome.desktop.interface "can-change-accels".<br />
<br />
An example of changing the delete hotkey:<br />
Open nautilus, select any file/directory, then click "Edit" from the menubar, and hover over the "Move to Trash" menuitem.<br />
While hovering, push '''delete''', and default accel will be unset. Now push the key that you want to set as accel. <br />
i.e. Pushing again '''delete''', will make the accel change to "del".<br />
<br />
Make sure you have selected a file, else the "Move to Trash" menuitem will be greyed out.<br />
You should disable "can-change-accels" afterwards, to prevent accidental accel changes.<br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you are pressing the Alt button, which will allow you to properly shutdown your system.<br />
<br />
You can also install the "Alternative Status Menu" extension (see the section on Enabling Extensions, below). This will put a permanent "Power Off" option in the Status menu below the usual suspend option.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
You may view a description of the various telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Telepathy Wiki].<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them or [http://www.archlinux.org/packages/?sort=&q=gnome-shell-extension&maintainer=&last_update=&flagged=&limit=50 install them individually using the [extra] extensions' snapshots] . Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
<br />
=== My extensions don't work anymore after a Gnome 3 update ===<br />
Go to '''$HOME/.local/share/gnome-shell/extensions''' or '''/usr/share/gnome-shell/extensions''' (depends on where you have installed your extensions) and open '''metadata.json''' in every subfolder. <br />
Insert <br />
"shell-version": ["3.0"] <br />
instead of (for example)<br />
"shell-version": ["3.0.1"]<br />
you also could insert<br />
"shell-version": ["3.0.0", "3.0.1", "3.0.2"]<br />
<br />
but in my opinion '''"shell-version": ["3.0"]''' is the best solution, because this means that a extension works for every 3.0.x gnome-shell version, without changing it every time.<br />
<br />
=== My screen isn't locked after resume from suspend/hibernate ===<br />
<br />
Screen lock does only work when you suspend through gnome status menu. If you suspend or hibernate with powerbutton/etc. you screen is not locked after resume. This problem occours because of an config failure in dconf, so just open dconf-editor and change lock-use screensaver to false (unchecked) in org/gnome/power-manager. Your screen will now be locked after resume, regardless whether you used gnome status menu or power button or key combination.<br />
For more information see bugreport: [https://bugzilla.redhat.com/show_bug.cgi?id=698135#c8 Screen gets no more locked after suspend#Comment 8]<br />
<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.<br />
<br />
=== I use the ATI Catalyst driver and I encounter glitches and artifacts while using GNOME Shell ===<br />
<br />
For the moment, Catalyst is not proposed to be used while running GNOME Shell. The opensource ATI driver, xf86-video-ati, however, seems to be working properly with the GNOME 3 composited desktop.<br />
<br />
=== I have multiple monitors and the Dock extension appears stuck between them ===<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 '''/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 />
=== There are no event sounds for Empathy and other programs ===<br />
If you're using [[OSS]], you may want to install '''libcanberra-oss''' [https://aur.archlinux.org/packages.php?ID=31163 from AUR].<br />
<br />
=== Editing hotkeys via can-change-accels fails ===<br />
It is also 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 {{Filename|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{Filename|~/.gnome2/accels/nautilus}}. 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 />
<br />
=== [fallback mode] Panels and applets don't respond to right click to remove, etc, as in GNOME 2 ===<br />
Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key (<Alt>, <Super>, etc) used for normal windows is also used by panels and their applets.<br />
<br />
=== Show Desktop: ALT+STRG+D does not work ===<br />
The 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 />
System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows<br />
<br />
=== Starting Nautilus does not work ===<br />
Start gnome-tweak-tool -> File Manager -> Have file manager handle the desktop -> Off<br />
<br />
==External links==<br />
* [http://www.gnome.org/ The Official Website]<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>Luigi Panachehttps://wiki.archlinux.org/index.php?title=GNOME&diff=145775GNOME2011-06-12T19:56:25Z<p>Luigi Panache: The PKGBUILD for the extension that removes the ally icon also has this change, and with a more recent GNOME 3 panel one needs to have just 3.0 for this to work. So, updated.</p>
<hr />
<div>{{i18n|GNOME 3|GNOME}}<br />
[[fr:gnome3]]<br />
<br />
[[Category:Desktop environments (English)]]<br />
<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 end}}<br />
<br />
For GNOME 3, the GNOME Project has started from scratch and created a completely new, modern desktop designed for today's users and technologies. In GNOME 3:<br />
* There is a new default modern visual theme and font<br />
* The Activities view which provides an easy way to access all your windows and applications<br />
* Built-in (integrated) messaging desktop services<br />
* A more subtle notifications system and a more discrete panel<br />
* A fast Activities search feature<br />
* A new System Settings application <br />
* ... and more features like: window tiling (Aero Snap like), an improved Nautilus etc. <br />
<br />
[more details on the [http://www.gnome3.org/ GNOME3] website]<br />
<br />
== Introduction ==<br />
<br />
GNOME3 comes with '''two''' interfaces, '''gnome-shell''' (the new, standard layout) and '''fallback''' mode. gnome-session will automatically detect if your computer is capable of running gnome-shell and will start fallback mode if not. <br />
<br />
'''Fallback''' mode is very similar to the GNOME 2.x layout (while using gnome-panel and metacity, instead of gnome-shell and Mutter).<br />
<br />
If you are on fallback mode you can still change the window manager with your preferred one.<br />
<br />
== Upgrade from GNOME 2.32 ==<br />
<br />
{{Warning|The session might crash during the update and it is recommended that you run the update command in a screen session, from another DE or WM, or from tty}}<br />
<br />
# pacman -Syu <br />
<br />
'''Important''': You will end up with a system that has GNOME 3.x '''fallback''' mode. To install the new shell:<br />
<br />
# pacman -S gnome-shell<br />
<br />
== Installing to a new system ==<br />
<br />
GNOME 3 is in [extra]. You can install it by running the following command:<br />
<br />
# pacman -Syu<br />
# pacman -S gnome<br />
<br />
For additional applications<br />
<br />
# pacman -S gnome-extra<br />
<br />
===Daemons and modules needed by GNOME===<br />
<br />
The GNOME desktop requires one daemon, '''DBUS''' for proper operation. <br />
<br />
{{Daemon|dbus}}<br />
<br />
'''GVFS''' allows the mounting of virtual file systems (e.g. file systems over FTP or SMB) to be used by other applications, including the GNOME file manager Nautilus. This is done with the use of '''FUSE''': a user space virtual file system layer kernel module.<br />
<br />
To load the FUSE kernel module:<br />
# modprobe fuse<br />
<br />
Or add the module to the '''MODULES''' array in {{Filename|/etc/rc.conf}} so they will load at boot up, e.g.:<br />
<br />
MODULES=('''fuse''')<br />
<br />
{{Note|FUSE is a kernel module, not a daemon.}}<br />
<br />
===Running GNOME===<br />
<br />
For better desktop integration '''GDM''' is recommended (but other login managers, such as SLiM also work, see Policykit section).<br />
<br />
# pacman -S gdm<br />
<br />
Check out [[Display_Manager]] to learn how to start it correctly.<br />
<br />
If you prefer to start it from the console, add the following line to your {{Filename|~/.xinitrc}} file, making sure it's the last line and the only one that starts with ''exec'' (see [[xinitrc]]):<br />
exec ck-launch-session gnome-session<br />
<br />
Now GNOME will start when you enter the following command:<br />
$ startx<br />
<br />
== Using the shell ==<br />
<br />
See https://live.gnome.org/GnomeShell/CheatSheet<br />
<br />
== Customization ==<br />
=== Using Gnome-tweak-tool ===<br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
This tool can customize fonts, themes, minimize & maximize buttons and some other useful settings like what action is taken when the lid is closed.<br />
<br />
A good customization tutorial is http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html which explores the power of gsettings.<br />
<br />
Version 3.0.3 only works if gnome-shell is installed (OK if forced to fallback mode), bug: https://bugzilla.gnome.org/show_bug.cgi?id=647132<br />
<br />
===GDM Customization===<br />
<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
This command will print DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We need to export them<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<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 />
====Wallpaper====<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 />
You will need to point to a file where the gdm user has permission to read, not in your home directory.<br />
<br />
====Turning off the sound====<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds false<br />
<br />
====Change GDM's keyboard layout====<br />
Since GDM 3 does not care about your gnome keyboard settings, you have to set your layout to Xorg config.<br />
See here: [https://wiki.archlinux.org/index.php/Beginners'_Guide#Non-US_keyboard Beginners'_Guide#Non-US_keyboard]<br />
<br />
=== Changing the GTK3 theme using settings.ini ===<br />
<br />
Similar to {{Filename|~/.gtkrc-2.0}} for GTK2+ it is possible to set the GTK3 (Gnome 3) theme via {{Filename|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. By default {{Filename|${XDG_CONFIG_HOME} }} is interpreted as {{Filename|~/.config}}.<br />
<br />
Only Adwaita theme exists in this moment for gtk3 and is available in '''gnome-themes-standard''' package.<br />
<br />
Example:<br />
<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 />
<br />
It may be necessary to restart one's DE or WM for the settings to be applied.<br />
<br />
{{Note|More options can be find there: [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GtkSettings documentation]}}<br />
<br />
=== Hide Titlebar when Maximized ===<br />
# sed -i "s|<frame_geometry name=\"max\" |<frame_geometry name=\"max\" has_title=\"false\" |" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' (or just ''r'') followed by {{Keypress|Enter}} to reload.<br />
<br />
To prevent this file from being overwritten each time the package "gnome-themes-standard" is upgraded, add it to {{Filename|/etc/pacman.conf}} with the <tt>NoUpgrade</tt> option:<br />
<br />
{{File|name=/etc/pacman.conf|content=...<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add the leading slash (root directory) to the path<br />
...}}<br />
<br />
To restore the original values:<br />
# pacman -S gnome-themes-standard<br />
<br />
=== Resizing the Massive Titlebar ===<br />
# sed -i "/title_vertical_pad/s/value=\"[0-9]\{1,2\}\"/value=\"0\"/g" /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
Hit {{Keypress|Alt}} + {{Keypress|F2}} and type ''restart'' followed by {{Keypress|Enter}} <br />
<br />
This will change the title_vertical_pad from 14 to 0 giving a much sleeker look to windows.<br />
<br />
To restore the original values:<br />
sudo pacman -S gnome-themes-standard<br />
<br />
===Setting an icon theme===<br />
<br />
{{Note | With gnome-tweak-tool version 3.0.3 and later, you can place icon theme you wish to use inside ~/.icons.}}<br />
<br />
Usefully, Gnome 3 is able to use Gnome 2 icon themes, which means you're not stuck with the default set. To do this, simply copy your desired icon theme's directory to ~/.icons. For example:<br />
<br />
$ cp -R /home/user/Desktop/my_new_icon_theme ~/.icons<br />
<br />
The new icon theme 'my_new_icon_theme' will now be selectable using the gnome-tweak-tool (under 'Interface'), otherwise it can be set with no need of gnome-tweak-tool by adding the gtk-icon-theme-name entry inside ${XDG_CONFIG_HOME}/gtk-3.0/settings.ini.<br />
{{file|name=${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|content=<br />
.....<br />
gtk-icon-theme-name = my_new_icon_theme<br />
.....<br />
}}<br />
<br />
=== Start program automatically after login to GNOME 3 ===<br />
You can specify which programs to start automatically after login using the '''gnome-session-properties''' tool, which is a part of the '''gnome-session''' package.<br />
$ gnome-session-properties<br />
<br />
=== Removing folders from the "Computer" section in Nautilus's Places sidebar ===<br />
<br />
The displayed folders are specified in {{Filename|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{codeline|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.<br />
<br />
=== Setting the default terminal via console ===<br />
<br />
{{codeline|gsettings}}, which replaces {{codeline|gconftool-2}} in Gnome 3, is used to set e. g. the default terminal manually. The setting is relevant for ''nautilus-open-terminal''.<br />
The commands for [[rxvt-unicode|urxvt]] run as daemon:<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 />
{{Note|For ''nautilus-open-terminal'', you may need a flag (e.g. {{Codeline|-e}}) to indicate that a command will follow: ''nautilus-open-terminal'' passes a {{Codeline|cd}} command in order to change directories to the appropriate location.}}<br />
<br />
=== Setting Nautilus to Use Location Bar Entry ===<br />
<br />
If you want to enter path locations manually in Nautilus you can press '''Ctrl+L'''. To make this persistent you can use gsettings.<br />
<br />
gsettings set org.gnome.nautilus.preferences always-use-location-entry true<br />
<br />
=== Disable accessibility icon in panel ===<br />
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]<br />
<br />
After that create a folder named '''noa11y.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:<br />
const Panel = imports.ui.panel;<br />
<br />
function main() {<br />
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['a11y'] = ''''''';<br />
}<br />
The second one is named '''metadata.json''' and has this content:<br />
{<br />
"shell-version": ["3.0"],<br />
"uuid": "noa11y.icon@panel.ui",<br />
"name": "na11y",<br />
"description": "Turn off the ally icon in the panel"<br />
}<br />
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.<br />
<br />
If the above method doesn't work, you can try disabling the accessibility icon system wide. Edit the file '''/usr/share/gnome-shell/js/ui/panel.js''', find this line:<br />
'a11y': imports.ui.status.accessibility.ATIndicator,<br />
and comment it out e.g.:<br />
/* 'a11y': imports.ui.status.accessibility.ATIndicator, */<br />
Afterwards restart the shell.<br />
<br />
=== Disable bluetooth icon in panel ===<br />
First deactivate it as startup-service: [[GNOME_3#Start_program_automatically_after_login_to_GNOME_3]]<br />
<br />
After that create a folder named '''nobluetooth.icon@panel.ui''' in '''$HOME/.local/share/gnome-shell/extensions'''. In this folder create two files. The first one is named '''extension.js''' and has this content:<br />
const Panel = imports.ui.panel;<br />
<br />
function main() {<br />
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['bluetooth'] = ''''''';<br />
}<br />
The second one is named '''metadata.json''' and has this content:<br />
{<br />
"shell-version": ["3.0.1"],<br />
"uuid": "nobluetooth.icon@panel.ui",<br />
"name": "nbluetooth",<br />
"description": "Turn off the bluetooth icon in the panel"<br />
}<br />
Now restart the gnome-shell (press '''ALT+F2''', type '''r''' and press '''Enter''') and the icon is away. If this extensions stops working adjust the shell-version number in the metadata-file according to your version.<br />
<br />
=== Middle Mouse Button Emulation ===<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 />
=== Battery icon ===<br />
To have battery tray icon, install gnome-power-manager package:<br />
# pacman -S gnome-power-manager<br />
<br />
=== Xmonad ===<br />
<br />
Upgrading to Gnome 3 will (most-likely) break your xmonad setup. You can use xmonad again by forcing fallback mode (see below) and creating the following two files:<br />
<br />
{{file|name=/usr/share/gnome-session/sessions/xmonad.session|content=<br />
[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<br />
}}<br />
<br />
{{file|name=/usr/share/xsessions/xmonad-gnome-session.desktop|content=<br />
[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<br />
}}<br />
<br />
The next time you log in, you'll have the ability to choose ''Xmonad GNOME'' as your session.<br />
<br />
== Enabling fallback mode==<br />
<br />
Your session will automatically start in fallback mode if gnome-shell is not present or if your desktop cannot handle graphics acceleration (such as running in a Virtual Machine or on old hardware). If you want to enable it while having gnome-shell installed, open gnome-control-center. Open System Info > Graphics. Change ''Forced Fallback Mode'' to ''ON''.<br />
<br />
You can also use gsettings to set the session manually from a terminal using the next command:<br />
<br />
<pre>$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.session session-name gnome-fallback</pre><br />
<br />
== Enabling hidden features ==<br />
<br />
Gnome 3.0 hides a lot of useful options which you can customize with '''dconf-editor''' or '''gconf-editor''' for settings not yet migrated to dconf.<br />
<br />
=== Changing Hotkeys ===<br />
<br />
In '''dconf-editor''', enable org.gnome.desktop.interface "can-change-accels".<br />
<br />
An example of changing the delete hotkey:<br />
Open nautilus, select any file/directory, then click "Edit" from the menubar, and hover over the "Move to Trash" menuitem.<br />
While hovering, push '''delete''', and default accel will be unset. Now push the key that you want to set as accel. <br />
i.e. Pushing again '''delete''', will make the accel change to "del".<br />
<br />
Make sure you have selected a file, else the "Move to Trash" menuitem will be greyed out.<br />
You should disable "can-change-accels" afterwards, to prevent accidental accel changes.<br />
<br />
== How to shutdown through the Status menu ==<br />
<br />
For now, the Shutdown option seems to be hidden if the user presses the Status menu on the upper right. If you want to shutdown your system through the Status menu, click on it and then press the '''Alt''' button. The "'''Suspend'''" option will instantly turn into "Power off...", as long as you are pressing the Alt button, which will allow you to properly shutdown your system.<br />
<br />
You can also install the "Alternative Status Menu" extension (see the section on Enabling Extensions, below). This will put a permanent "Power Off" option in the Status menu below the usual suspend option.<br />
<br />
== Enabling integrated messaging ==<br />
<br />
Empathy, the engine behind the integrated messaging, and all of the system settings based on your messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed. These are not included in the default Arch GNOME installs and the Empathy interface doesn't give a nice error message, it just fails to work silently. You can install them:<br />
<br />
# pacman -S telepathy<br />
<br />
You may view a description of the various telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Telepathy Wiki].<br />
<br />
== Enabling extensions ==<br />
<br />
Gnome Shell can be customised to an extent with extensions that have been written by others. These provide functionality like having a dock that is always present, and being able to change the shell theme. More details on the functionality of currently available extensions is given [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html here] You can use the [http://aur.archlinux.org/packages.php?ID=47501 gnome-shell-extensions-git] package in the AUR to install them or [http://www.archlinux.org/packages/?sort=&q=gnome-shell-extension&maintainer=&last_update=&flagged=&limit=50 install them individually using the [extra] extensions' snapshots] . Restart Gnome to enable them.<br />
<br />
If installing the extensions causes Gnome to stop working then you must remove the user-theme extension and and the auto-move-windows extension from their installation directory (could be in ~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions or /usr/local/share/gnome-shell/extensions). Removing or adding extensions to these directories will remove or install them form the system. More details on Gnome Shell extensions are available [https://live.gnome.org/GnomeShell/Extensions here].<br />
<br />
== Troubleshooting ==<br />
<br />
=== My extensions don't work anymore after a Gnome 3 update ===<br />
Go to '''$HOME/.local/share/gnome-shell/extensions''' or '''/usr/share/gnome-shell/extensions''' (depends on where you have installed your extensions) and open '''metadata.json''' in every subfolder. <br />
Insert <br />
"shell-version": ["3.0"] <br />
instead of (for example)<br />
"shell-version": ["3.0.1"]<br />
you also could insert<br />
"shell-version": ["3.0.0", "3.0.1", "3.0.2"]<br />
<br />
but in my opinion '''"shell-version": ["3.0"]''' is the best solution, because this means that a extension works for every 3.0.x gnome-shell version, without changing it every time.<br />
<br />
=== My screen isn't locked after resume from suspend/hibernate ===<br />
<br />
Screen lock does only work when you suspend through gnome status menu. If you suspend or hibernate with powerbutton/etc. you screen is not locked after resume. This problem occours because of an config failure in dconf, so just open dconf-editor and change lock-use screensaver to false (unchecked) in org/gnome/power-manager. Your screen will now be locked after resume, regardless whether you used gnome status menu or power button or key combination.<br />
For more information see bugreport: [https://bugzilla.redhat.com/show_bug.cgi?id=698135#c8 Screen gets no more locked after suspend#Comment 8]<br />
<br />
=== My GTK2+ apps show segfaults and won't start ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. That theme conflicts somehow with GNOME 3's or/and GTK3 settings and when it has been set as a GTK2 theme, the GTK2 apps segfault with errors like:<br />
<br />
<pre> (firefox-bin:14345): GLib-GObject-WARNING **: invalid (NULL) pointer instance<br />
<br />
(firefox-bin:14345): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
</pre><br />
<br />
The current "workaround" is to '''remove''' '''oxygen-gtk''' from the system completely and set another theme for your apps.<br />
<br />
=== I use the ATI Catalyst driver and I encounter glitches and artifacts while using GNOME Shell ===<br />
<br />
For the moment, Catalyst is not proposed to be used while running GNOME Shell. The opensource ATI driver, xf86-video-ati, however, seems to be working properly with the GNOME 3 composited desktop.<br />
<br />
=== I have multiple monitors and the Dock extension appears stuck between them ===<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 '''/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 />
=== There are no event sounds for Empathy and other programs ===<br />
If you're using [[OSS]], you may want to install '''libcanberra-oss''' [https://aur.archlinux.org/packages.php?ID=31163 from AUR].<br />
<br />
=== Editing hotkeys via can-change-accels fails ===<br />
It is also 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 {{Filename|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{Filename|~/.gnome2/accels/nautilus}}. 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 />
<br />
=== [fallback mode] Panels and applets don't respond to right click to remove, etc, as in GNOME 2 ===<br />
Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key (<Alt>, <Super>, etc) used for normal windows is also used by panels and their applets.<br />
<br />
=== Show Desktop: ALT+STRG+D does not work ===<br />
The 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 />
System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows<br />
<br />
=== Starting Nautilus does not work ===<br />
Start gnome-tweak-tool -> File Manager -> Have file manager handle the desktop -> Off<br />
<br />
==External links==<br />
* [http://www.gnome.org/ The Official Website]<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>Luigi Panache