https://wiki.archlinux.org/api.php?action=feedcontributions&user=Drewsberry&feedformat=atomArchWiki - User contributions [en]2024-03-29T10:55:35ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Blu-ray&diff=200529Blu-ray2012-05-06T22:12:38Z<p>Drewsberry: </p>
<hr />
<div>[[Category:Audio/Video]]<br />
[[Category:Optical]]<br />
{{i18n|BluRay}}<br />
<br />
== How it works ==<br />
<br />
=== Forenote ===<br />
This article is designed to help Linux users to play the BluRay discs they have legally purchased on their computers. Since no official BluRay player software is avilable on their system, Linux users have to use open-source libraries capable of handling the DRM schemes that protect these disc contents. This is legal in most countries where interoperability allows this.<br />
<br />
=== BluRay DRM ===<br />
Contrary to the DVD CSS, which was definitely compromised once the unique encryption key had been discovered, BluRay uses stronger DRM mechanisms, which makes it a lot more difficult to manage. Firstly, the AACS standard uses a lot more complicated cryptographic process to protect the disc content, but also allows the industry to revoke compromised keys and distribute new keys through new BR discs. Secondly, BluRay may also use another layer of protection: BD+. Although most of commercial discs use AACS, a few of them additionally use BD+. In 2007, the AACS system was compromised and decryption keys were published on the Internet. Many decryption programs were made available, but the interest to Linux users was the capability of playing their discs - legally purchased - on their computers. Although the industry was able to revoke the first leaked decryption keys, new keys are regularly published in a cat and mouse play.<br />
<br />
==== AACS ====<br />
The AACS specification and decryption process are publicly available at [http://www.aacsla.com/specifications/]. Many articles and research papers describe it in detail at [http://forum.doom9.org/showthread.php?t=122363], [http://cacr.uwaterloo.ca/~dstinson/papers/AACS-journal.pdf] or [http://www.iis.sinica.edu.tw/papers/lcs/5007-F.pdf].<br />
{{AUR|libaacs}} is a research project from the VideoLAN developer team to implement the Advanced Access Content System specification, and distributed as an open-source library [http://www.videolan.org/developers/libaacs.html]. This project does not offer any key or certificate that could be used to decode encrypted copyrighted material. However, combined with a key database file, it is possible to use it to play BluRay discs that use the AACS standard. This file is called KEYDB.cfg and is accessed by libaacs in ~/.config/aacs. The format of this file is available at [http://git.videolan.org/?p=libaacs.git;a=blob_plain;f=KEYDB.cfg;hb=HEAD].<br />
<br />
===== AACS decryption process =====<br />
The AACS decryption process for a protected disc by a licensed player goes through four stages:<br />
# The software/embedded player's Device Keys, together with the disc's Media Key Block (MKB) data are used to retrieve a "Processing Key", and with that (plus another datum from the MKB) to compute the Media Key.<br />
# That Media Key, together with the disc's Volume ID (VID) obtained by the player presenting a valid Host Certificate to the drive is used to compute the Volume Unique Key (VUK).<br />
# This VUK is used to unscramble the disc's scrambled Title Keys.<br />
# Finally those Title Keys unscramble the disc's protected media content.<br />
Note that it is the disc that contains the MKB. MKB have been renewed since the first commercial BluRay release in 2006. The latest MKB is version 30, but many MKB actually share the same key. The software player provides the Host key and certificate, whereas the drive contains a list of the Host key/certificates that have been revoked.<br />
<br />
Using libaacs, the decryption process can skip some of these stages to reach the last step, which allows the media player to play the disc. This is either by providing in the KEYDB.cfg file either (or both):<br />
* a valid (corresponding to the MKB version of the disc) Processing key and a valid (i.e. non revoked by the drive) Host key/certificate<br />
* a valid VUK for the specific disc.<br />
<br />
If libaacs finds a valid processing key for the disc MKB version as well as a valid Host key and certificates, it can start the decryption process from step 2. However, the Host key/certificates are regularly revoked through the propagation of new BluRay discs. Once revoked, a drive is not able to read both new and older discs. This is usually irreversible and can only be fixed by provided a more recent Host key/certificate (for Windows users, this corresponds to updating their software player). The advantage of this method is that until the Host key/certificate is revoked, and as long as the disc uses an MKB version for which the Processing key is known, libaacs is able to compute the VUK of any disc. As of today, the Processing keys for MKB versions 1 to 28 have been computed and made available on the Internet.<br />
<br />
Thanksfully, in case no valid Processing key is available and/or the Host certificate has been revoked, libaacs has an alternative way to decrypt a disc: by providing a valid VUK in the KEYDB.cfg file. This allows libaacs to skip directly to step 3. Contrary to the Processing keys, VUKs are disc specific. Therefore this is less efficient as the user will have to get the VUK from a third party. But the great advantage is that VUKs cannot be revoked. Note that if libaacs is able to perform step 2 (with a valid Host key/certificate), then it stores the VUK calculated in step 3 in ~/.cache/aacs/vuk. At subsequent viewings of the same disc, libaacs can reuse the stored VUK. Thus it may be a good idea to backup these VUKs.<br />
<br />
==== BD+ ====<br />
There is currently no way to handle BD+ with open-source libraries. The VideoLAN development is working on a libbdplus library too, but the source code is not made public until legal clarification.<br />
<br />
=== Summary ===<br />
1. The user starts playing a BluRay with a video player having libbluray and libaacs support.<br />
<br />
2. If the BR disc is not scambled with AACS, go to 4a.<br />
<br />
3. If the BR disc is scrambled with AACS, libaacs will:<br />
<br />
:3.1. Check if a valid VUK for the disc is already available in ~/.cache/aacs/vuk/ If yes, go to step 4a, if not continue to next step.<br />
<br />
:3.2. Read ~/.config/aacs/KEYDB.cfg:<br />
<br />
::3.2.1. If a valid VUK is available, go to 4a, if not continue to next step.<br />
<br />
::3.2.2. If a valid Processing key (i.e. corresponding to the disc MKB version) and a valid (non-revoked by drive) Host key/certificate is available, libaacs will compute the VUK. The VUK is stored in ~/.cache/aacs/vuk for future use. Go to step 4a.<br />
<br />
:3.3 If no valid key is available, go to step 4b.<br />
<br />
4a. The software player is able to play the disc content.<br />
<br />
4b. The software player fails to read the disc content.<br />
<br />
==Playback==<br />
===Preparation===<br />
Firstly [[pacman|install]] {{pkg|libbluray}} from the [[official repositories]] and {{AUR|libaacs-git}} from the [[AUR]]. Then try method 1, and if this does not work, try method 2. The two methods are not exclusive, you can use both methods in the same KEYDB.cfg file.<br />
<br />
==== Method 1 (PK and Host K/C) ====<br />
Download http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg (contains no VUKs, but contains Processing keys and a Host key/certificate up to MKB v28 that is revoked in MKB v30 discs) in ~/.config/aacs/. This method will only work if your drive has not revoked the host key/certificate that is in this KEYDB.cfg file.<br />
{{bc|cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
When you play the disc (using mplayer or vlc), libaacs will store the VUK in ~/.cache/aacs/vuk. The filename is the disc ID and its content is the VUK itself. VLC will reuse this VUK even if it does not find a valid KEYDB.cfg file, so it could be a good idea to backup this directory for the future.<br />
<br />
==== Method 2 (VUK) ====<br />
If bluray playback with the hcert mentioned above does not work, download a list of VUKs from http://forum.doom9.org/attachment.php?attachmentid=11170&d=1276615904 or (newer) http://forum.doom9.org/showthread.php?p=1525922#post1525922. Unzip it and append the VUKs into ~/.config/aacs/KEYDB.cfg. Note that the VUK entry format has changed since the early libaacs versions. All keys must start with 0x. This command will automatically reformat the keys:<br />
{{bc|<nowiki>sed -i 's/\([[:xdigit:]]\)\{5,\}/0x&/g' ~/.config/aacs/KEYDB.cfg</nowiki>}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
=== Media Players ===<br />
These are media players capable of using libbluray and libaacs to play AACS-scrambled BluRay discs.<br />
<br />
==== mplayer ====<br />
To play blurays in mplayer the basic playback command is:<br />
{{bc|mplayer br:///</bluray/mount/dir>}}<br />
<br />
or:<br />
<br />
{{bc|mplayer br://<title number> -bluray-device </bluray/mount/dir>}}<br />
<br />
=====Stuttering Video=====<br />
It is likely that you will need to enable hardware acceleration and multi core CPU support for the bluray to play smoothly.<br />
<br />
For nvidia cards, enable hardware acceleration by installing libvdpau and using the option '-vo vdpau' with mplayer. eg:<br />
{{bc|mplayer -vo vdpau br:///</bluray/mount/dir>}}<br />
<br />
For multi core CPU support use the options '-lavdopts threads=N', where 'N' is the number of cores. eg:<br />
{{bc|1=mplayer -lavdopts threads=2 br:///</bluray/mount/dir>}}<br />
<br />
=====Incorrect Audio Language=====<br />
You can scroll through the playback languages using the '#' key.<br />
<br />
=====Out of Sync Audio=====<br />
From your first mplayer output, you must find the codec used for the bluray. It will be at the end of the line "Selected video codec".<br />
<br />
For H.264 discs use the option '-vc ffh264vdpau'. eg:<br />
{{bc|mplayer -vc ffh264vdpau br:///</bluray/mount/dir>}}<br />
For VC-1 discs use '-vc ffvc1vdpau'. eg:<br />
{{bc|mplayer -vc ffvc1vdpau br:///</bluray/mount/dir>}}<br />
For MPEG discs use '-vc ffmpeg12vdpau'. eg:<br />
{{bc|mplayer -vc ffmpeg12vdpau br:///</bluray/mount/dir>}}<br />
<br />
==== vlc ====<br />
Since version 2.0.0, vlc has had experimental bluray playback support. Bluray menus are not yet working (however, this is improving ; you may try using {{AUR|libbluray-git}} instead of {{pkg|libbluray}}). <br />
<br />
Start playback with: {{bc|vlc bluray://</bluray/mount/dir>}}<br />
<br />
==== xine ====<br />
Start playback with:<br />
{{bc|xine bluray://</bluray/mount/dir>}}<br />
<br />
===Troubleshooting===<br />
====Absent KEYDB.cfg file====<br />
If a valid VUK is found in ~/.cache/aacs/vuk, then libaacs does not need to use KEYDB.cfg to decrypt the content. However, a KEYDB.cfg file in ~/.config/aacs/ is still required (even if that file is empty).<br />
<br />
====Revoked Host key/certificate====<br />
Unfortunately, what may happen when trying to play a newer BluRay disc is the revocation of host key/certificates (which are keys of licensed software players) by your drive. When this happens, {{AUR|aacskeys}} will return this message:<br />
<br />
The given Host Certficate / Private Key has been revoked by your drive.<br />
<br />
This is part of the AACS protection scheme: editors are able to revoke old software player host keys that have leaked on the Internet and distribute the lists on newer commercial disc releases. This is irreversible and does cannot be fixed even after reflashing the drive. The only two ways to correct this would be:<br />
* to update the host key/certificate part in the KEYDB.cfg file to ones that have not been revoked (yet)<br />
* to add in KEYDB.cfg the VUK of each specific disc instead, [[BluRay#If Fast & Simple does not work|as explained above]]. VUKs cannot be revoked by the industry.<br />
When a disc (using mplayer or vlc) is succesfully decrypted, libaacs will store the VUK in ~/.cache/aacs/vuk. If the host key/certificate in KEYDB.cfg is subsequently revoked, VLC will still be able to use the stored VUK, so it could be a good idea to backup the ~/.cache/aacs directory for the future.<br />
<br />
==== Using aacskeys ====<br />
Install {{AUR|aacskeys}}. To add the BR to the key database: {{bc|cd /usr/share/aacskeys}} and run: {{bc|aacskeys </bluray/mount/dir>}} eg: {{bc|cd /usr/share/aacskeys && aacskeys /media/blurays}}<br />
<br />
Edit ~/.config/aacs/KEYDB.cfg and add the information output by aacskeys using this syntax:<br />
{{bc|<nowiki>0x<unit key file hash> = Film Title | V | 0x<volume unique key></nowiki>}}<br />
<br />
===== If aacskeys is not able to generate the key =====<br />
Try to generate the VolumeID with [http://forum.doom9.org/showthread.php?p=993782 DumpVID] using wine. The VolumeID can now be used to generate the bluray key with aacskeys with the VolumeID option<br />
{{bc|Usage: aacskeys [options] <mountpath> [volume id / binding nonce]}}<br />
<br />
==Other Useful Software==<br />
<br />
For DVD, the [http://www.archlinux.org/packages/extra/x86_64/libdvdcss libdvdcss] package supplies the needed decryption libs. Below are some options for BluRay/HD-DVD decryption. Users can employ to backup a commercial BluRay movie under Fair Use guidelines:<br />
<br />
*[https://aur.archlinux.org/packages.php?ID=45099 aacskeys] - Opensource<br />
*[https://aur.archlinux.org/packages.php?ID=45101 dumphd] - Opensource<br />
*[https://aur.archlinux.org/packages.php?ID=33972 makemkv] - Closed source/limited free beta<br />
<br />
*[http://www.slysoft.com/en/anydvdhd.html anydvdhd] - Commercial software requiring users to run it on an Microsoft OS in a VM.</div>Drewsberryhttps://wiki.archlinux.org/index.php?title=GNOME&diff=191911GNOME2012-03-27T21:54:55Z<p>Drewsberry: Spelling/grammar corrections</p>
<hr />
<div>[[Category:Desktop environments (English)]]<br />
{{i18n|GNOME 3|GNOME}}<br />
[[de:GNOME]]<br />
[[fr:GNOME]]<br />
[[pl:GNOME]]<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 heading|Related}}<br />
{{Article summary wiki|GTK+}}<br />
{{Article summary end}}<br />
<br />
The GNOME Project started from scratch and created a completely new desktop called GNOME 3. It has:<br />
<br />
* A modern visual theme and font<br />
* An activities view providing access to all windows and applications<br />
* A subtle notifications system and a discreet top panel<br />
* Integration with an improved Nautilus file manager<br />
* Integrated desktop services for messaging<br />
* A new system settings application <br />
* An activities search feature<br />
* Features such as snap-like window tiling<br />
<br />
Additional explanations are found on the [http://www.gnome3.org/ official GNOME3 website.]<br />
<br />
== Introduction ==<br />
<br />
GNOME 3 has ''two'' interfaces: '''GNOME Shell,''' the new standard layout; and '''fallback mode.''' Gnome-session automatically detects when your computer is incapable of running Gnome Shell and starts fallback mode when appropriate. <br />
<br />
'''Fallback mode''' is similar to GNOME 2. (Fallback mode uses gnome-panel/Metacity instead of gnome-shell/Mutter.)<br />
<br />
When you are on fallback mode you can still replace GNOME's default window manager with your preferred one.<br />
<br />
==Installation==<br />
<br />
GNOME 3 is in the [extra] repository. The '''gnome''' group contains the core desktop environment and applications, and gnome-extra contains the rest. You likely do not want all of the packages installed, so consider reading the package descriptions before installing them (or just remove them later).<br />
<br />
'''You must install the gnome group'''. gnome-extra does not imply that you want everything in gnome.<br />
<br />
Example:<br />
<br />
# pacman -S gnome<br />
<br />
Choose which applications you wish to use from gnome-extra. It is not mandatory to install the whole group.<br />
<br />
# pacman -S gnome-extra<br />
<br />
===D-Bus daemon===<br />
The GNOME desktop requires the [[D-Bus]] daemon. Refer to the [[dbus]] article for setup instructions.<br />
<br />
=== Running GNOME ===<br />
<br />
For the best desktop integration, login manager '''GDM''' is recommended. Other login managers (a.k.a. display managers) such as SLiM can be used in place of GDM. Check out the [[Display_Manager|wiki article on display managers]] to learn how desktop environments are started.<br />
<br />
The login manager is a limited process entrusted with duties that impact the system. The [[PolicyKit|PolicyKit wiki article]] addresses the topic of system‑wide access control.<br />
<br />
# pacman -S gdm<br />
<br />
If you prefer to start GNOME manually from the console, add the following line to your {{ic|~/.xinitrc}} file. Make sure it is the only line (remove the {{ic|if/fi}} block from the standard {{ic|~/.xinitrc}} since the {{ic|if/fi}} block can cause problems) and the only command starting with {{ic|exec}}. See the [[xinitrc| xinitrc wiki article]].<br />
{{hc|~/.xinitrc|<nowiki><br />
#ONLY THIS LINE<br />
exec ck-launch-session gnome-session<br />
</nowiki>}}<br />
<br />
After the {{ic|exec}} command is placed, GNOME can be launched by typing {{ic|startx}}.<br />
<br />
== Using the shell ==<br />
<br />
=== GNOME cheat sheet ===<br />
<br />
The GNOME web site has a helpful [https://live.gnome.org/GnomeShell/CheatSheet GNOME Shell cheat sheet] explaining task switching, keyboard use, window control, the panel, overview mode, and more.<br />
<br />
=== Restarting the shell ===<br />
<br />
After appearance tweaks you are often asked to restart the GNOME shell. You could log out and log back in, but it is simpler and faster to issue the following keyboard command. Restart the shell by pressing {{Keypress|Alt}} + {{Keypress|F2}} then {{Keypress|r}} then {{Keypress|Enter}}<br />
<br />
=== Shell crashes ===<br />
<br />
Certain tweaks and/or repeated shell restarts may cause the shell to crash when a restart is attempted. In this case, you are informed about the crash and then forced to log out. Some shell changes, such as switching between '''''GNOME Shell''''' and '''''fallback mode,''''' cannot be accomplished via a keyboard restart; you must log out and log back in to effect them.<br />
<br />
It is common sense — but worth repeating — that valuable documents should be saved (and perhaps closed) before attempting a shell restart. It is not strictly necessary; open windows and documents usually remain intact after a shell restart.<br />
<br />
== Customizing GNOME appearance ==<br />
<br />
=== Overall appearance ===<br />
<br />
GNOME 3 may have "started from scratch", but like most large software projects it is assembled from parts dating to different eras. There is not '''one''' all-encompassing configuration tool. The new ''Systems Settings'' tool is a big improvement over previous control panels. ''System Settings'' is well-organized, but you may find yourself wishing for more control over system appearance.<br />
<br />
You may be familiar with existing configuration tools: some of these still work; many will not. Some settings are not readily exposed for you to change. Indubitably, many settings will migrate to newer tools and/or become exposed as time progresses and the wider community embraces and extends the latest GNOME desktop.<br />
<br />
==== Gsettings ====<br />
<br />
A new command-line tool '''gsettings''' stores data in a binary format, unlike previous tools using XML text. A tutorial [http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html Customizing the GNOME Shell] explores the power of gsettings.<br />
<br />
==== GNOME tweak tool ====<br />
<br />
This graphical tool customizes fonts, themes, titlebar buttons and other settings. <br />
<br />
# pacman -S gnome-tweak-tool<br />
<br />
Version 3.0.3 only works when gnome-shell is installed (OK if forced to fallback mode). [https://bugzilla.gnome.org/show_bug.cgi?id=647132 Bugzilla bug report here.]<br />
<br />
==== GTK3 theme via settings.ini ====<br />
<br />
Like {{ic|~/.gtkrc-2.0}} with GTK2+, it is possible to set a GTK3 theme via {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}.<br />
<br />
Variable {{ic|$XDG_CONFIG_HOME}} is usually set to {{ic|~/.config}}<br />
<br />
''Adwaita,'' the default GNOME 3 theme, is a part of {{pkg|gnome-themes-standard}}. Additional GTK3 themes can be found at [http://browse.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/ Deviantart web site.] For example:<br />
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki><br />
[Settings]<br />
gtk-theme-name = Adwaita<br />
gtk-fallback-icon-theme = gnome<br />
# next option is applicable only if selected theme supports it<br />
gtk-application-prefer-dark-theme = true<br />
# set font name and dimension<br />
gtk-font-name = Sans 10<br />
</nowiki>}}<br />
<br />
It is necessary to [[#Restarting_the_shell|restart the GNOME shell]] for settings to be applied. More GTK options are found at [http://developer.gnome.org/gtk3/3.0/GtkSettings.html#GtkSettings.properties GNOME developer documentation.]<br />
<br />
==== Icon theme ====<br />
<br />
Using {{pkg|gnome-tweak-tool}} version 3.0.3 and later, you can place any icon theme you wish to use inside {{ic|~/.icons}}.<br />
<br />
Usefully, GNOME 3 is compatible with GNOME 2 icon themes, which means you are not stuck with the default icons. To install a new set of icons, copy your desired icon theme's directory to {{ic|~/.icons}}. As an example:<br />
<br />
$ cp -R /home/user/Desktop/my_icon_theme ~/.icons<br />
<br />
The new theme ''my_icon_theme'' is now selectable using {{ic|gnome-tweak-tool}} under ''interface''.<br />
<br />
Alternatively, you may textually select your icon theme with no need for gnome-tweak-tool. Add the GTK icon theme name to {{ic|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini}}. Please note, not to use "" as your settings would not be recognised then.<br />
<br />
{{hc|${XDG_CONFIG_HOME}/gtk-3.0/settings.ini|<nowiki>... previous lines ...<br />
<br />
gtk-icon-theme-name = my_new_icon_theme</nowiki>}}<br />
<br />
=== Nautilus ===<br />
<br />
==== Remove folders from the places sidebar ====<br />
<br />
The displayed folders are specified in {{ic|~/.config/user-dirs.dirs}} and can be altered with any editor. An execution of {{ic|xdg-user-dirs-update}} will change them again, thus it may be advisable to set the file permissions to read-only.<br />
<br />
==== Always show text-entry location ====<br />
<br />
The standard Nautilus toolbar shows a button bar interface for path navigation. To enter path locations using the ''keyboard'', you must expose the location text-entry field. This is done by pressing {{Keypress|Ctrl+l}}<br />
<br />
To make the location text-entry field always present, use gsettings as shown. <br />
<br />
$ gsettings set org.gnome.nautilus.preferences always-use-location-entry true<br />
<br />
{{Note|After changing this setting, you will not be able to expose the button bar. Only when the setting is '''false''' can both forms of location navigation be employed.}}<br />
<br />
=== GNOME panel ===<br />
<br />
==== Show date in top bar ====<br />
<br />
By default GNOME displays only the weekday and time in the top bar. This can be changed with the following command. Changes take effect immediately. <br />
<br />
# gsettings set org.gnome.shell.clock show-date true<br />
<br />
==== Hiding icons in the top bar ====<br />
<br />
When doing a GNOME install, some unwanted icons might appear in the panel. To remove the icons, edit the GNOME panel script.<br />
<br />
For example, to remove the '''universal access icon'''. Remove 'a11y' from the AREA_ORDER line and comment out the 'a11y' line in AREA_SHELL_IMPLEMENTATION<br />
<br />
{{hc|/usr/share/gnome-shell/js/ui/panel.js|<nowiki><br />
const STANDARD_STATUS_AREA_ORDER = ['ally', 'keyboard', 'volume', 'network', 'bluetooth', 'battery', 'userMenu'];<br />
const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {<br />
'a11y': imports.ui.status.accessibility.ATIndicator<br />
'volume': imports.ui.status.volume.Indicator,<br />
'battery': imports.ui.status.power.Indicator,<br />
'keyboard': imports.ui.status.keyboard.XKBIndicator,<br />
'userMenu': imports.ui.userMenu.UserMenuButton<br />
};<br />
</nowiki>}}<br />
<br />
to<br />
<br />
{{hc|/usr/share/gnome-shell/js/ui/panel.js|<nowiki><br />
const STANDARD_STATUS_AREA_ORDER = ['keyboard', 'volume', 'network', 'bluetooth' 'battery', 'userMenu'];<br />
const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {<br />
//'a11y': imports.ui.status.accessibility.ATIndicator<br />
'volume': imports.ui.status.volume.Indicator,<br />
'battery': imports.ui.status.power.Indicator,<br />
'keyboard': imports.ui.status.keyboard.XKBIndicator,<br />
'userMenu': imports.ui.userMenu.UserMenuButton<br />
};<br />
</nowiki>}}<br />
<br />
save your results and restart the shell to see results:<br />
<br />
#{{Keypress|Alt+F2}}<br />
#{{Keypress|r}}<br />
#{{Keypress|Enter}}<br />
<br />
==== Disable "Suspend" in the status and gdm menu ====<br />
<br />
A quick way to do it system-wide for GNOME 3.2 is to change line 539 of {{ic|/usr/share/gnome-shell/js/ui/userMenu.js}} and line 103 of {{ic|/usr/share/gnome-shell/js/gdm/powerMenu.js}}. (For GNOME versions prior to 3.2, look at line 153 of {{ic|/usr/share/gnome-shell/js/ui/statusMenu.js}}.) This change takes effect the next time GNOME Shell is started.<br />
<br />
{{hc|/usr/share/gnome-shell/js/ui/userMenu.js|<nowiki><br />
// this._haveSuspend = this._upClient.get_can_suspend(); // Comment this line out.<br />
this._haveSuspend = false; // Use this line instead.<br />
</nowiki>}}<br />
<br />
To accomplish this, paste the following command(s) in your terminal:<br />
GNOME_SHELL=/usr/share/gnome-shell<br />
SCRIPTS=`grep -lr get_can_suspend $GNOME_SHELL/js`<br />
for FILE in $SCRIPTS ; do<br />
sed -r -i -e 's/[^= ]+.get_can_suspend\(\)/false/' "$FILE"<br />
done<br />
<br />
The above change does not persist after a GNOME version update, however. A more perennial solution is to add the code above in some gdm or system startup script (eg: /etc/rc.local), to keep the "suspend" option disabled after updates.<br />
<br />
Alternatively you can install the GNOME shell extension {{ic|alternative status menu}} in package {{Pkg|gnome-shell-extension-alternative-status-menu}}.<br />
<br />
==== Eliminate delay when logging out ====<br />
<br />
The following tweak removes the confirmation dialog and sixty second delay for logging out.<br />
<br />
This dialog normally appears when you log out with the status menu. This tweak affects the '''''Power Off''''' dialog as well. This is not a system-wide change; it affects only the user who enters this command. The change takes effect immediately after entering the command.<br />
<br />
$ gsettings set org.gnome.SessionManager logout-prompt 'false'<br />
<br />
==== Show system monitor ====<br />
<br />
Install the {{AUR|gnome-shell-system-monitor-applet-git}} extension available in the [[AUR]].<br />
<br />
==== Show weather information ====<br />
<br />
Install {{AUR|gnome-shell-extension-weather-git}} from [[AUR]].<br />
<br />
=== Activity view ===<br />
<br />
==== Remove entries from Applications view ====<br />
<br />
Like other desktop environments, GNOME uses .desktop files to populate its Applications view. These text files are in '''{{ic|/usr/share/applications}}'''. It is not possible to edit these files from a folder view ‒ Nautilus does not treat their icons as text files. Use a terminal to display or edit .desktop file entries.<br />
<br />
# ls /usr/share/applications<br />
# nano /usr/share/applications/foo.desktop<br />
<br />
For system wide changes, edit files in '''{{ic|/usr/share/applications}}'''. For local changes, make a copy of ''foo.desktop'' in your home folder.<br />
<br />
$ cp /usr/share/applications/foo.desktop ~/.local/share/applications/<br />
<br />
Edit .desktop files to fit your wishes. <br />
<br />
{{Note|Removing a .desktop file does not uninstall an application, but instead removes its desktop integration: MIME types, shortcuts, and so forth.}}<br />
<br />
The following command appends one line to a .desktop file and hides its associated icon from Applications view:<br />
<br />
$ echo "NoDisplay=true" >> foo.desktop<br />
<br />
==== Reduce application icon size ====<br />
<br />
One awkward selection of the GNOME designers is their choice of large icons for Applications view. This view is painful when working with a small screen containing many large application icons. There is a way to reduce the icon size. It is done by editing the Gnome-Shell theme.<br />
<br />
Edit system files directly (make a backup first) or copy theme files to your local folder and edit these files. For the default theme, edit '''{{ic|/usr/share/gnome-shell/theme/gnome-shell.css}}'''<br />
<br />
For user themes, edit '''{{ic|/usr/share/themes/<UserTheme>/gnome-shell/gnome-shell.css}}'''<br />
<br />
Edit ''gnome-shell.css'' and replace the following values. Afterward, [[#Restarting_the_shell|restart the GNOME shell.]]<br />
{{hc|gnome-shell.css|<nowiki><br />
.icon-grid {<br />
spacing: 18px;<br />
-shell-grid-item-size: 82px;<br />
}<br />
<br />
.icon-grid .overview-icon {<br />
icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
<br />
A cloned GNOME Shell theme with smaller icons is available [https://aur.archlinux.org/packages.php?ID=51586 on the AUR].<br />
<br />
==== Disable Activity hot corner hovering ====<br />
<br />
To disable automatic activity view when the hot corner is hovered, edit '''{{ic|/usr/share/gnome-shell/js/ui/layout.js}}''' (that was ''panel.js'' in Gnome 3.0.x) :<br />
{{hc|layout.js|<nowiki><br />
this._corner = new Clutter.Rectangle({ name: 'hot-corner',<br />
width: 1,<br />
height: 1,<br />
opacity: 0,<br />
reactive: true });icon-size: 48px;<br />
}<br />
</nowiki>}}<br />
and set ''reactive'' to ''false''. Gnome Shell needs to be restarted.<br />
<br />
=== Titlebar ===<br />
<br />
==== Reduce title bar height ====<br />
<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 />
[[#Restarting_the_shell|Restart the GNOME shell.]] This changes vertical padding from 14 to 0, which gives windows a sleeker look.<br />
<br />
To restore the original values, [[pacman|install]] the package {{Pkg|gnome-themes-standard}} from the [[Official Repositories|official repositories]].<br />
<br />
==== Reorder titlebar buttons ====<br />
<br />
At present this setting is changeable only through '''gconf-editor.'''<br />
<br />
For example, we move the close and minimize buttons to the left side of the titlebar. Open '''gconf-editor''' and locate the '''''desktop.gnome.shell.windows.button_layout''''' key. Change its value to '''{{ic|close,minimize:}}''' (Colon symbol designates the spacer between left side and right side of the titlebar.) Use whichever buttons in whatever order you prefer. You cannot use a button more than once. Also, keep in mind that certain buttons are deprecated. [[#Restarting_the_shell|Restart the shell]] to see your new button arrangement.<br />
<br />
==== Hide titlebar when maximized ====<br />
<br />
# sed -i -r 's|(<frame_geometry name="max")|\1 has_title="false"|' /usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml<br />
<br />
[[#Restarting_the_shell|Restart the GNOME shell.]] After this tweak, you may find it difficult to un-maximize a window when there is no titlebar to grab.<br />
<br />
With suitable keybindings, you should be able to use {{Keypress|Alt+F5}}, {{Keypress|Alt+F10}} or {{Keypress|Alt+Space}} to remedy the situation.<br />
<br />
To prevent {{ic|metacity-theme-3.xml}} from being overwritten each time package {{pkg|gnome-themes-standard}} is upgraded, add its name to {{ic|/etc/pacman.conf}} with {{ic|NoUpgrade}}.<br />
<br />
{{hc|/etc/pacman.conf|<nowiki>... previous lines ...<br />
<br />
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup<br />
# IgnorePkg =<br />
# IgnoreGroup =<br />
<br />
NoUpgrade = usr/share/themes/Adwaita/metacity-1/metacity-theme-3.xml # Do not add a leading slash to the path<br />
<br />
... more lines ...</nowiki>}}<br />
<br />
To restore original Adwaita theme values, install the {{pkg|gnome-themes-standard}} package.<br />
<br />
=== Login screen ===<br />
<br />
To modify characteristics of the login screen (GDM, the GNOME display manager) the following lines can be executed. The first command allows all users, including "gdm", to access X settings (albeit temporarily). This command creates a temporary vulnerability, so be advised. The second command opens a bash session with the credentials of user "gdm". {{Note|For exposition, user gdm's terminal prompt is shown as '''$'''. In actuality, it shows something like -bash-4.2$.}}<br />
<br />
# xhost +<br />
# su - gdm -s /bin/bash<br />
$ dbus-launch<br />
<br />
The third command prints DBUS_SESSION_BUS_ADDRESS and DBUS_SESSION_BUS_PID. We must export these variables. Either manually export the below two variables shown in the output of dbus-launch like this:<br />
<br />
$ export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-Jb433gMQHS,guid=fc14d4bf3d000e38276a5a2200000d38<br />
$ export DBUS_SESSION_BUS_PID=4283<br />
<br />
Or use the follow command:<br />
<br />
$ `dbus-launch | sed "s/^/export /"`<br />
<br />
Check to see if dconf-service is running and if not, start it like this<br />
<br />
$ /usr/lib/dconf/dconf-service &<br />
<br />
==== Login background image ====<br />
<br />
Once session variables have been exported as explained above, you may issue commands to retrieve or set items used by GDM. <br />
<br />
The easiest way to changes all the settings is by launching the Configuration Editor gui with the command<br />
<br />
$ dconf-editor<br />
<br />
The location of each setting is the same as in the command line style of configuration shown below:<br />
<br />
The following is the command-line approach to retrieve or set the file name used for GDM's wallpaper.<br />
{{bc|<nowiki><br />
$ GSETTINGS_BACKEND=dconf gsettings get org.gnome.desktop.background picture-uri<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/gnome/SundownDunes.jpg'<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.background picture-options 'zoom'<br />
## Possible values: centered, none, scaled, spanned, stretched, wallpaper, zoom</nowiki>}}<br />
{{Note|You must specify a file which user "gdm" has permission to read. GDM cannot read files in your home directory.}}<br />
<br />
An alternative graphical interface to changing themes (gtk3, icons and cursor), the wallpaper and minor other settings of the GDM login screen, you can install {{aur|gdm3setup}} from AUR.<br />
<br />
==== Larger font for login ====<br />
<br />
This tweak enlarges the login font with a scaling factor. It is the same method employed by ''Accessibility Manager'' on the desktop.<br />
<br />
You must [[#Login_screen|export the GDM session variables]] before performing this tweak.<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.interface text-scaling-factor '1.25'<br />
<br />
==== Turning off the sound ====<br />
<br />
This tweak disables the audible feedback heard when the system volume is adjusted (via keyboard) on the login screen. You must first export the GDM session variables.<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.desktop.sound event-sounds 'false'<br />
<br />
If the above tweak does not work for you or you are unable to export the GDM session variables, there is always the easiest solution to the "ready sound" problem: mute or lower the sound while in GDM login screen using the media keys (if available) of your keyboard.<br />
<br />
==== Make the power button interactive ====<br />
<br />
The default installation sets the power button to suspend the system. '''''Power off''''' or '''''Show dialog''''' is a better choice. You must first export the GDM session variables as [[#Login_screen|outlined previously.]]<br />
<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-power 'interactive'<br />
$ GSETTINGS_BACKEND=dconf gsettings set org.gnome.settings-daemon.plugins.power button-hibernate 'interactive'<br />
$ gsettings list-recursively org.gnome.settings-daemon.plugins.power<br />
<br />
==== GDM keyboard layout ====<br />
<br />
GDM does not know about your GNOME 3 desktop keyboard settings. To change keyboard settings used by GDM, set your layout using Xorg configuration. Refer to this section of the [[Beginners'_Guide#Non-US_keyboard|Beginner's Guide.]]<br />
<br />
=== Other tips ===<br />
See [[GNOME Tips]].<br />
<br />
== Miscellaneous settings ==<br />
<br />
=== Automatic program launch upon logging in ===<br />
<br />
Specify which programs start automatically after logging in using {{ic|gnome-session-properties}}. This tool is part of the {{Pkg|gnome-session}} package.<br />
<br />
$ gnome-session-properties<br />
<br />
=== Activate NumLock upon logging in ===<br />
<br />
[[pacman|Install]] {{Pkg|numlockx}} from the [[Official Repositories|official repositories]]. Then, add a start-up command to launch {{ic|numlockx}}.<br />
$ gnome-session-properties<br />
<br />
The above command opens the '''Startup Applications Preferences''' applet. Click '''''Add''''' and enter the following:<br />
<br />
{| border="0"<br />
| Name: || ''Numlockx''<br />
|-<br />
| Command: || ''/usr/bin/numlockx on''<br />
|-<br />
| Comment: || ''Turns on numlock.''<br />
|}<br />
<br />
This is not a system-wide appearance tweak. Repeat these steps for each user wishing to activate NumLock after logging in.<br />
<br />
=== Move dialog windows ===<br />
The default configuration for dialogs will not allow you to move them which causes problems in some cases. To change this you will need to use gconf-editor and change this setting:<br />
<br />
/desktop/gnome/shell/windows/attach_modal_dialogs<br />
<br />
After the change you will need to restart the shell for it to take affect.<br />
<br />
=== GNOME shell extensions ===<br />
<br />
GNOME Shell can be customized with extensions written by others. These provide features such as a dock or a widget for changing the theme. <br />
<br />
Many extensions are collected and hosted by [https://extensions.gnome.org/ gnome.org]. They can be browsed and installed simply activating them in the browser.<br />
<br />
Other details on available extensions are found at the [http://www.webupd8.org/2011/04/gnome-shell-extensions-additional.html WEBUPD8] site. The most recent articles can be found using this [http://www.webupd8.org/search/label/gnome%20shell%20extensions?max-results=20 WEBUPD8 search link.]<br />
<br />
The [[Official Repositories|official repositories]] have a dozen extensions which can be installed individually. (The latest version of a given extension may be installed using its code snapshot, if preferred.) [http://www.archlinux.org/packages/?sort=&q=gnome-shell-extension&maintainer=&last_update=&flagged=&limit=50 List here.]<br />
<br />
$ pacman -Ss gnome-shell-extension<br />
<br />
Other useful extensions provided in the [[AUR]]:<br />
<br />
{| border="1"<br />
| {{AUR|gnome-shell-extension-presentation-mode-git}} || Adds option to inhibit screensaver in the power menu (battery icon).<br />
|-<br />
| {{AUR|gnome-shell-extension-weather-git}} || Displays weather notifications.<br />
|-<br />
| {{AUR|gnome-shell-extension-alternative-status-menu-git}} || Adds "Hibernate" and "Power Off" to the status menu.<br />
|-<br />
| {{AUR|gnome-shell-extension-theme-selector}} || Select a theme in the Activities overview.<br />
To install a custom theme with GNOME Tweak Tool, you need to install the {{Pkg|gnome-shell-extension-user-theme}} package from the [[Official Repositories|official repositories]].<br />
|-<br />
|{{AUR|gnome-shell-frippery}} || An unofficial extension pack providing GNOME2 like features for GNOME3.<br />
|}<br />
<br />
[[#Restarting_the_shell|Restart the GNOME Shell]] after installing an extension. See [[#When_an_extension_breaks_GNOME|when an extension breaks GNOME]] for troubleshooting information.<br />
<br />
=== Default file browser/replace Nautilus ===<br />
<br />
You can lure Gnome to use another file browser by editing<br />
/usr/share/applications/nautilus.desktop<br />
and replacing<br />
Exec=nautilus %U<br />
by your browser, for example :<br />
Exec=thunar /<br />
<br />
=== Default terminal ===<br />
<br />
{{ic|gsettings}} (which replaces {{ic|gconftool-2}}) is used to set the default terminal. The setting affects ''nautilus-open-terminal'' (a Nautilus extension).<br />
To make [[rxvt-unicode|urxvt]] the default, run:<br />
<br />
gsettings set org.gnome.desktop.default-applications.terminal exec urxvtc<br />
gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'-e'"<br />
<br />
{{Note|The {{ic|-e}} flag is for executing a command. When ''nautilus-open-terminal'' invokes {{ic|urxvtc}}, it puts a {{ic|cd}} command at the end of the command line so that the new terminal starts in the directory you opened it from. Other terminals will require a different (perhaps empty) {{ic|exec-arg}}.}}<br />
<br />
=== Middle mouse button ===<br />
<br />
By default, GNOME 3 disables middle mouse button emulation regardless of [[Xorg]] settings ('''Emulate3Buttons'''). To enable middle mouse button emulation use:<br />
<br />
$ gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true<br />
<br />
=== Display dimming ===<br />
<br />
By default GNOME 3 has a ten second idle timeout to dim the screen regardless of the battery and AC state:<br />
<br />
gsettings get org.gnome.settings-daemon.plugins.power idle-dim-time<br />
<br />
To set a new value type the following<br />
<br />
gsettings set org.gnome.settings-daemon.plugins.power idle-dim-time <int><br />
<br />
where <int> is the value in seconds<br />
<br />
=== xmonad ===<br />
<br />
[[xmonad]] is a tiling window manager.<br />
<br />
Upgrading to GNOME 3 will likely break your xmonad setup. You can use xmonad again by [[#Enabling_fallback_mode|forcing fallback mode]] and creating two files:<br />
<br />
{{hc|/usr/share/gnome-session/sessions/xmonad.session|<nowiki>[GNOME Session]<br />
Name=Xmonad session<br />
RequiredComponents=gnome-panel;gnome-settings-daemon;<br />
RequiredProviders=windowmanager;notifications;<br />
DefaultProvider-windowmanager=xmonad<br />
DefaultProvider-notifications=notification-daemon</nowiki>}}<br />
<br />
{{hc|/usr/share/xsessions/xmonad-gnome-session.desktop|<nowiki>[Desktop Entry]<br />
Name=Xmonad GNOME<br />
Comment=Tiling window manager<br />
TryExec=/usr/bin/gnome-session<br />
Exec=gnome-session --session=xmonad<br />
Type=XSession</nowiki>}}<br />
<br />
The next time you log in, you should have the ability to choose ''Xmonad GNOME'' as your session.<br />
<br />
=== wmii ===<br />
<br />
[[wmii]] is a tiling window manager.<br />
<br />
You can use wmii with GNOME by [[#Enabling_fallback_mode|forcing fallback mode]] and creating three files:<br />
<br />
{{hc|/usr/share/applications/wmii.desktop|<nowiki><br />
[Desktop Entry]<br />
Version=1.0<br />
Type=Application<br />
Name=wmii<br />
TryExec=wmii<br />
Exec=wmii</nowiki>}}<br />
<br />
{{hc|/usr/share/xsessions/gnome-wmii.desktop|<nowiki><br />
[Desktop Entry]<br />
Name=GNOME-wmii<br />
Comment=GNOME with wmii as window manager<br />
TryExec=gnome-session<br />
Exec=gnome-session --session=wmii<br />
Type=Application</nowiki>}}<br />
<br />
{{hc|/usr/share/gnome-session/sessions/wmii.session|<nowiki><br />
[GNOME Session]<br />
Name=wmii<br />
RequiredComponents=gnome-panel;gnome-settings-daemon;<br />
RequiredProviders=windowmanager;notifications;<br />
DefaultProvider-windowmanager=wmii<br />
DefaultProvider-notifications=notification-daemon</nowiki>}}<br />
<br />
The next time you log in, you should have the ability to choose ''GNOME-wmii'' as your session.<br />
<br />
The original info was taken from [http://makandra.com/notes/1367-running-the-awesome-window-manager-within-gnome running-the-awesome-window-manager-within-gnome], go there for info on awesome-gnome.<br />
<br />
Also it has info on how to:<br />
<br />
- create a per session (wmii, GNOME, GNOME-wmii, etc.) dconf database (useful if you ever plan on using regular GNOME)<br />
<br />
- Remove the bottom GNOME panel (with the task list)<br />
<br />
- Move the top panel (with the menus) to the bottom<br />
<br />
- Untick the expand option<br />
<br />
- Set it to autohide<br />
<br />
== Hidden features ==<br />
<br />
GNOME 3 hides many useful options which you can customize with '''dconf-editor.''' GNOME 3 also supports '''gconf-editor''' for settings that have not yet migrated to dconf.<br />
<br />
=== Changing hotkeys ===<br />
<br />
Firstly, use '''dconf-editor''' to place a checkmark next to {{ic|can-change-accels}} in the key named ''org.gnome.desktop.interface.''<br />
<br />
We will replace the hotkey — a.k.a. keyboard shortcut, keyboard accelerator — used by Nautilus to move files to the trash folder.<br />
<br />
The default assignment is a somewhat-awkward {{Keypress|Ctrl}} + {{Keypress|Delete}}.<br />
<br />
* Open Nautilus, select any file, and click '''Edit''' on the menu bar.<br />
* Hover over the ''Move to Trash'' menu item.<br />
* While hovering, press {{Keypress|Delete}}. The current accelerator is now unset.<br />
* Press the key that you wish to become the new keyboard accelerator.<br />
* Press {{Keypress|Delete}} to make the new accelerator be the Delete key.<br />
<br />
Unless you select a file or folder, ''Move to Trash'' will be grayed-out. Finally, disable {{ic|can-change-accels}} to prevent accidental hotkey changes.<br />
<br />
=== Shutdown via the status menu ===<br />
<br />
Currently, the GNOME designers have hidden the ''Shutdown'' option inside the status menu. To shut down your system with the status menu, click the menu and hold down the {{Keypress|Alt}} key so that the '''''Suspend''''' item changes to '''''Power Off'''''. The subsequent dialog allows you to shut down or restart your system.<br />
<br />
If you disable the Suspend menu item system-wide as described [[#Disable_"Suspend"_in_the_status_menu|elsewhere in this document]] you do not have to go through these motions.<br />
<br />
Another option is to install the ''Alternative Status Menu'' extension. See the section on shell extensions. The alternative menu extension installs a new status menu with a non-hidden '''''Power Off''''' entry.<br />
<br />
== Integrated messaging (Empathy) ==<br />
<br />
Empathy, the engine behind integrated messaging, and all system settings based on messaging accounts will not show up unless the '''telepathy''' group of packages or at least one of the backends ('''telepathy-gabble''', or '''telepathy-haze''', for example) is installed.<br />
<br />
These packages are not included in default Arch GNOME installs. You can install the Telepathy and optionally any backends with:<br />
<br />
# pacman -S telepathy<br />
<br />
Without telepathy, Empathy will not open the account management dialog and can get stuck in this state. If this happens -- even after quitting Empathy cleanly -- the /usr/bin/empathy-accounts application can remain running and will need to be killed before you can add any new accounts.<br />
<br />
View descriptions of telepathy components on the [http://telepathy.freedesktop.org/wiki/Components Freedesktop.org Telepathy Wiki.]<br />
<br />
== Enabling fallback mode ==<br />
<br />
Your session automatically starts in fallback mode when '''gnome-shell''' is not present, or when your hardware cannot handle graphics acceleration — such as running within a virtual machine or running on old hardware.<br />
<br />
If you wish to enable fallback mode while still having '''gnome-shell''' installed, make the following system change:<br />
<br />
Open '''gnome-control-center.''' Click the ''System Info'' icon. Click Graphics. Change ''Forced Fallback Mode'' to {{ic|ON.}}<br />
<br />
You can alternatively choose the type of session from a terminal with a ''gsettings'' command:<br />
<br />
$ gsettings set org.gnome.desktop.session session-name 'gnome-fallback'<br />
<br />
You may want to log out after making the change. You will see the chosen type of session upon your next login.<br />
<br />
To disable forced-fallback mode (that is, launch the normal GNOME Shell) use a value of 'gnome' instead of 'gnome-fallback'.<br />
<br />
== Troubleshooting ==<br />
<br />
=== GNOME login takes a very long time ===<br />
<br />
See if you enabled ''PulseAudio Network'' settings in '''paprefs'''. When any network audio settings are enabled, GNOME hangs about a minute after logging in.<br />
<br />
One solution is to create a new user account and log in to that account. Another solution is to move your {{ic|~/.gconf}}, {{ic|~/.gconfd}} and {{ic|~/.conf/dconf}} folders to a holding area. Log in again to see if the delay is gone.<br />
<br />
If the excessive delay is gone, determine which setting causes the delay using trial-and-error.<br />
<br />
=== When an extension breaks GNOME ===<br />
<br />
When enabling shell extensions causes GNOME breakage, you should first remove the ''user-theme'' and ''auto-move-windows'' extensions from their installation directory.<br />
<br />
The installation directory could be one of '''{{ic|~/.local/share/gnome‑shell/extensions,}}''' '''{{ic|/usr/share/gnome‑shell/extensions,}}''' or '''{{ic|/usr/local/share/gnome‑shell/extensions}}'''. Removing these two extension-containing folders may fix the breakage. Otherwise, isolate the problem extension with trial‑and‑error.<br />
<br />
Removing or adding an extension-containing folder to the aforementioned directories removes or adds the corresponding extension to your system. Details on Gnome Shell extensions are available at the [https://live.gnome.org/GnomeShell/Extensions GNOME web site.]<br />
<br />
=== Extensions do not work after GNOME 3 update ===<br />
<br />
Locate the folder where your extensions are installed. It might be '''{{ic|~/.local/share/gnome-shell/extensions}}''' or '''{{ic|/usr/share/gnome-shell/extensions}}'''.<br />
<br />
Edit each occurrence of '''{{ic|metadata.json}}''' which appears in each extension sub-folder. <br />
<br />
{| border="0"<br />
| Insert: || '''{{ic|"shell-version": ["3.0"]}}'''<br />
|-<br />
| Instead of (for example): || '''{{ic|"shell-version": ["3.0.1"]}}'''<br />
|-<br />
| You might instead use: || '''{{ic|"shell-version": ["3.0.0", "3.0.1", "3.0.2"]}}'''<br />
|}<br />
<br />
<br />
'''"3.0"''' is the best solution. It indicates the extension works with every '''''3.0.x''''' GNOME Shell version.<br />
<br />
=== Screen is not locked after resume ===<br />
<br />
Screen lock only works when you suspend through GNOME's status menu. If you suspend or hibernate using the power button, your screen is not locked after resume. The problem is a configuration failure in dconf.<br />
<br />
Open ''dconf-editor'' and uncheck '''{{ic|lock-use-screensaver}}''' in the key named ''org.gnome.power-manager.''<br />
<br />
# gsettings set org.gnome.power-manager lock-use-screensaver 'false'<br />
<br />
Your screen should now be locked after resume whether you used the status menu, the power button, or a key combination. Bug report: [https://bugzilla.redhat.com/show_bug.cgi?id=698135#c8 Screen gets no more locked after suspend #Comment 8]<br />
<br />
=== Keyboard Shortcut do not work with only conky running ===<br />
The gnome-shell keyboard shortcuts like Alt+F2,Alt+F1 and the media key shortcuts do not work if conky is the only program running. However if another application like gedit is running then the keyboard shortcuts work.<br />
<br />
solution: edit .conkyrc <br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_argb_visual yes<br />
own_window_type dock<br />
own_window_class Conky<br />
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager<br />
<br />
=== GTK2+ apps show segfaults and fail to launch ===<br />
<br />
That usually happens when '''oxygen-gtk''' is installed. This theme appears to conflict with GNOME 3 or GTK3 settings. When '''oxygen-gtk''' has been set as a GTK2 theme, GTK2 apps segfault with errors like these:<br />
<br />
{{bc| (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 />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed<br />
(firefox-bin:14345): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed<br />
Segmentation fault<br />
}}<br />
<br />
The current workaround is to remove '''oxygen-gtk''' from the system and use a different theme for applications.<br />
<br />
=== ATI Catalyst driver creates glitches and artifacts ===<br />
<br />
For the moment, Catalyst is not supposed 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 />
{{Note|1=Fix is promised with Catalyst 11.9. See http://ati.cchtml.com/show_bug.cgi?id=99 }}<br />
<br />
=== xf86-video-ati driver: flickers from time to time ===<br />
<br />
If you use that driver, your desktop might flicker a lot when you hover the bottom right corner, and also when you start up gdm.<br />
Write the following in your '''{{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}''' and see if it works then:<br />
<br />
Section "Device"<br />
Identifier "Radeon"<br />
Driver "radeon"<br />
Option "EnablePageFlip" "off"<br />
EndSection<br />
<br />
=== xf86-video-intel driver "tears" regardless if VSYNC Is enabled or not ===<br />
Just stick the following into /etc/environment:<br />
<br />
CLUTTER_PAINT=disable-clipped-redraws:disable-culling<br />
Refer to: https://bugzilla.gnome.org/show_bug.cgi?id=657071#c2 for more details.<br />
<br />
=== Window opens behind other windows when using multiple monitors ===<br />
<br />
This is possibly a bug in gnome shell, and causes new windows to open behind others.<br />
Unchecking "workspaces_only_on_primary" in desktop/gnome/shell/windows using gconf-editor solves this problem.<br />
<br />
=== Multiple monitors and dock extension ===<br />
<br />
If you have multiple monitors configured using Nvidia Twinview, the dock extension may get sandwiched in-between the monitors. You can edit the source of this extension to reposition the dock to a position of your choosing.<br />
<br />
Edit '''/usr/share/gnome-shell/extensions/dock@gnome-shell-extensions.gnome.org/extension.js''' and locate this line in the source:<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);<br />
<br />
The first parameter is the X position of the dock display, by subtracting 15 pixels as opposed to 2 pixels from this it correctly positioned on my primary monitor, you can play around with any X,Y coordinate pair to position it correctly.<br />
<br />
this.actor.set_position(primary.width-this._item_size-this._spacing-15, (primary.height-height)/2);<br />
<br />
=== No event sounds for Empathy and other programs ===<br />
<br />
If you are using [[OSS]], you may want to install {{AUR|libcanberra-oss}} from the [[AUR]].<br />
<br />
=== Editing hotkeys via can-change-accels fails ===<br />
<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 {{ic|~/.config/Thunar/accels.scm}}, whereas Nautilus's is located at {{ic|~/.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 />
=== Panels do not respond to right-click in fallback mode ===<br />
<br />
Check Configuration Editor: /apps/metacity/general/mouse_button_modifier. This modifier key ({{Keypress|Alt}}, {{Keypress|Super}}, etc) used for normal windows is also used by panels and their applets.<br />
<br />
=== "Show Desktop" keyboard shortcut does not work ===<br />
<br />
GNOME developers treated the corresponding binding as bug (see https://bugzilla.gnome.org/show_bug.cgi?id=643609) due to Minimization being deprecated. To show the desktop again assign ALT+STRG+D to the following setting:<br />
<br />
System Settings --> Keyboard --> Shortcuts --> Windows --> Hide all normal windows<br />
<br />
=== Nautilus does not start ===<br />
<br />
# Press {{keypress|ALT}}+{{keypress|F2}}<br />
# Enter {{ic|gnome-tweak-tool}}<br />
# Select the ''File Manager'' tab.<br />
# Locate option ''Have file manager handle the desktop'' and assure it is toggled '''off'''.<br />
<br />
=== Epiphany does not play Flash videos ===<br />
<br />
Adobe Flash Player is buggy and does not work directly in Epiphany. See [[Epiphany#Flash]] for a workaround involving nspluginwrapper.<br />
<br />
=== Unable to apply stored configuration for monitors ===<br />
<br />
If you encounter this message try to disable the xrandr gnome-settings-daemon plugin :<br />
<br />
$ dconf write /org/gnome/settings-daemon/plugins/xrandr/active false<br />
<br />
=== Lock button fails to re-enable touchpad ===<br />
<br />
Some laptops have a touchpad lock button that disables the touchpad so that users can type without worrying about touching the touchpad. It appears currently that although GNOME can lock the touchpad by pressing this button, it cannot unlock it. If the touchpad gets locked you can do the following to unlock it.<br />
# Start a terminal. You can do this by pressing {{keypress|Alt+F2}}, then typing {{ic|gnome-terminal}} followed by pressing {{keypress|Enter}}.<br />
# Type in the following command<br />
$ xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 1<br />
<br />
=== Ctrl+v pastes path instead of file in Nautilus ===<br />
<br />
If you are affected by this issue, edit {{ic|~/.gnome2/accels/nautilus}} where you can find two lines for {{Keypress|Ctrl+v}}:<br />
{{hc|~/.gnome2/accels/nautilus|<nowiki><br />
(gtk_accel_path "<Actions>/DirViewActions/Paste" "<Control>v")<br />
...<br />
(gtk_accel_path "<Actions>/ClipboardActions/Paste" "<Control>v")<br />
</nowiki>}}<br />
<br />
The issue appears to stem from the second entry. Deleting that line may fix the issue temporarily. You might have to re-apply this fix after an update.<br />
<br />
An alternative is to assign a different key combination to one of the actions.<br />
<br />
{{Note|This issue seems to be fixed since GNOME 3.2.x.}}<br />
<br />
=== Unable to connect to secured Wi-Fi networks ===<br />
<br />
You can see the network connections listing, but choosing an encrypted network fails to show a dialog for key entry. You may need to [[pacman|install]] {{Pkg|network-manager-applet}}. See [[NetworkManager#GNOME|GNOME NetworkManager setup]].<br />
<br />
=== "Any command has been defined 33" ===<br />
<br />
When you press the {{Keypress|Print Screen}} key (sometimes labeled {{Keypress|PrntScr}} or {{Keypress|PrtSc}}) to take a screenshot, and you got "Any command has been defined 33", [[pacman|install]] {{Pkg|metacity}}.<br />
<br />
=== GDM and GNOME use X11 cursors ===<br />
<br />
To fix this issue, become root and put the following into {{ic|/usr/share/icons/default/index.theme}} (creating the directory {{ic|/usr/share/icons/default}} if necessary):<br />
{{hc|/usr/share/icons/default/index.theme|<nowiki><br />
[Icon Theme]<br />
Inherits=Adwaita<br />
</nowiki>}}<br />
<br />
Note: Instead of "Adwaita", you can choose another cursor theme (e.g. Human).<br />
Alternatively, you can install {{AUR|gnome-cursors-fix}} from the [[AUR]].<br />
<br />
== External links ==<br />
* [http://www.gnome.org/ The Official Website of GNOME]<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>Drewsberryhttps://wiki.archlinux.org/index.php?title=Talk:Archiso&diff=190640Talk:Archiso2012-03-21T18:51:09Z<p>Drewsberry: Issue concerning edit removing mkarchroot in first section</p>
<hr />
<div>Hi thar! If you guys have any questions or trouble when following this guide, please do post it here, I will come back to you!<br />
<br />
--[[User:Svenstaro|Svenstaro]] 19:14, 3 June 2009 (EDT)<br />
<br />
<br />
== Errors during build ==<br />
<br />
During the build process, I receive a number of errors (I don't know if they are fatal):<br />
<br />
==> Starting build: 3.0-ARCH<br />
-> Parsing hook: [base]<br />
-> Parsing hook: [udev]<br />
-> Parsing hook: [memdisk]<br />
-> Parsing hook: [archiso]<br />
-> Parsing hook: [archiso_pxe_nbd]<br />
==> ERROR: file not found: `/tmp/baseline/work/root-image/usr/sbin/nbd-client'<br />
==> ERROR: file not found: `/tmp/baseline/work/root-image/lib/initcpio/ipconfig'<br />
==> ERROR: file not found: `/tmp/baseline/work/root-image/lib/initcpio/hooks/archiso_pxe_nbd'<br />
-> Parsing hook: [archiso_loop_mnt]<br />
==> ERROR: file not found: `/tmp/baseline/work/root-image/lib/initcpio/hooks/archiso_loop_mnt'<br />
...<br />
These files however are within the /lib/initcpio/hooks/ directory. Are these the same ones it is looking for?<br />
<br />
: Each hook must be present in root-image. See [http://projects.archlinux.org/archiso.git/tree/configs/releng/build.sh#n41 make_setup_mkinitcpio()]<br />
: Also hooks has some build requirements. See [http://projects.archlinux.org/archiso.git/tree/README#n107 For these hooks needs these packages (on target root-image)] and how this is implemented in releng [http://projects.archlinux.org/archiso.git/tree/configs/releng/build.sh#n18 make_basefs()]<br />
: [[User:Djgera|Djgera]] 10:37, 23 August 2011 (EDT)<br />
<br />
[mkarchiso] INFO: Creating ISO image...<br />
/usr/sbin/mkarchiso: line 318: mkisofs: command not found<br />
<br />
: See [http://projects.archlinux.org/archiso.git/tree/README#n99 Build requirements] also this is present in the wiki.<br />
: [[User:Djgera|Djgera]] 10:37, 23 August 2011 (EDT)<br />
<br />
Also, where does one put the packages.list file? I've tried placing it within the same directory as the build script and mkinitcpio.conf file, but it does not seem to read it.<br />
<br />
: On any place where you reference inside your build.sh. If you are working with configs/baseline profile, you need to add such functionallity. See configs/releng [http://projects.archlinux.org/archiso.git/tree/configs/releng/build.sh#n21 make_packages()] for more advanced things like this. Baseline profile should be the the most basic as posible.<br />
: [[User:Djgera|Djgera]] 10:37, 23 August 2011 (EDT)<br />
<br />
Thank you.<br />
<br />
<br />
== NO iso file outpu ==<br />
My output of <br />
[root@myhost releng]# ./build.sh build single netinstall<br />
is <br />
<br />
[mkarchiso] INFO: Configuration settings<br />
[mkarchiso] INFO: Command: create<br />
[mkarchiso] INFO: Architecture: x86_64<br />
[mkarchiso] INFO: Working directory: work/x86_64<br />
[mkarchiso] INFO: Installation directory: arch<br />
[mkarchiso] INFO: Pacman config file: /etc/pacman.conf<br />
[mkarchiso] INFO: Packages: base<br />
<br />
[mkarchiso] INFO: Installing packages to 'work/x86_64/root-image/'...<br />
<br />
And here is the structure of my /tmp/releng <br />
<br />
aitab.core build.sh core.exclude.x86_64 mkinitcpio.conf packages.x86_64 syslinux work<br />
aitab.netinstall core.exclude.i686 isolinux packages.i686 root-image syslinux.dual<br />
<br />
I cannot find any iso file.....Is there anyone could help me?<br />
<br />
: something is wrong with your mirror. Enable verbose mode to see details [[User:Djgera|Djgera]] 12:55, 8 October 2011 (EDT)<br />
<br />
== Issue with mkarchroot ==<br />
<br />
Upon issuing the command to create a base chroot (mkarchroot /home/user/live base), I get the following errors for all but a few of the packages that are being installed:<br />
<br />
"call to execv failed (Permission denied)"<br />
<br />
"error: command failed to execute correctly"<br />
<br />
<br />
Once the package installation process has finished, I then get:<br />
<br />
<br />
chroot: failed to run command `/usr/sbin/locale-gen': Permission denied<br />
<br />
chroot: failed to run command `/bin/findmnt': Permission denied<br />
<br />
<br />
Any ideas what is up? The previous versions from git seemed to work fine.<br />
<br />
Full pastebin out is here: http://pastebin.com/wNHMkyH4<br />
Thanks.<br />
<br />
: filesystem mounted as noexec [[User:Djgera|Djgera]] 21:18, 15 November 2011 (EST)<br />
<br />
Ha! Sorry, I really can't believe I missed that. Thanks.<br />
<br />
<br />
== archiso hook is complaining about missing modules ==<br />
<br />
==> Starting build: 3.1.1-1-ARCH<br />
-> Parsing hook: [base]<br />
-> Parsing hook: [udev]<br />
-> Parsing hook: [archiso]<br />
==> ERROR: module not found: `ide-cd_mod'<br />
==> ERROR: module not found: `ide-core'<br />
==> ERROR: module not found: `ide-generic'<br />
-> Parsing hook: [pata]<br />
-> Parsing hook: [scsi]<br />
-> Parsing hook: [sata]<br />
-> Parsing hook: [usb]<br />
-> Parsing hook: [filesystems]<br />
-> Parsing hook: [usbinput]<br />
==> Generating module dependencies<br />
==> Creating xz initcpio image: work/iso/boot/initramfs-linux.img<br />
==> WARNING: errors were encountered during the build. The image may not be complete.<br />
==> Image generation successful<br />
<br />
Pushing archiso hook after sata hook in mkinitcpio.conf is solving these errors.<br />
<br />
==> Starting build: 3.1.1-1-ARCH<br />
-> Parsing hook: [base]<br />
-> Parsing hook: [udev]<br />
-> Parsing hook: [pata]<br />
-> Parsing hook: [scsi]<br />
-> Parsing hook: [sata]<br />
-> Parsing hook: [usb]<br />
-> Parsing hook: [archiso]<br />
-> Parsing hook: [filesystems]<br />
-> Parsing hook: [usbinput]<br />
==> Generating module dependencies<br />
==> Creating gzip initcpio image: work/iso/boot/initramfs-linux.img<br />
==> Image generation successful<br />
<br />
: You are using an older archiso [[User:Djgera|Djgera]] 16:52, 16 November 2011 (EST)<br />
<br />
==Edit removing mkarchroot references==<br />
<br />
I might be misunderstanding the article, but it seems that the edit made on 19th March 2012 was incomplete.<br />
<br />
The reasons for the revision was "update according to recent archiso changes (mkarchroot from devtools not used anymore)", so all references to mkarchroot were removed from the section "'''Building a custom Arch Linux live media. (configs/releng)'''", however the end of this section refers readers directly to the section "'''Configure our live medium'''".<br />
<br />
In this section it is assumed that you have created a chroot and are working within it.<br />
<br />
My concern is that there is no explanation of how to create this chroot in the article, and no indication if the first section is followed that one should have created one.<br />
<br />
Please correct me if I have someone misunderstood or misread this article, thanks.</div>Drewsberry