https://wiki.archlinux.org/api.php?action=feedcontributions&user=TheJJ&feedformat=atomArchWiki - User contributions [en]2024-03-29T06:19:01ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Xorg/Keyboard_configuration&diff=764228Xorg/Keyboard configuration2023-01-15T23:32:50Z<p>TheJJ: /* Using xautocfg */ manual launch</p>
<hr />
<div>[[Category:X server]]<br />
[[Category:Keyboard configuration]]<br />
[[fr:Xorg (Français)/Keyboard configuration]]<br />
[[ja:Xorg でのキーボード設定]]<br />
[[ru:Xorg (Русский)/Keyboard configuration]]<br />
[[uk:Xorg (Українська)/Keyboard configuration]]<br />
{{Related articles start}}<br />
{{Related|X keyboard extension}}<br />
{{Related|Linux console/Keyboard configuration}}<br />
{{Related|Extra keyboard keys}}<br />
{{Related|Xorg}}<br />
{{Related|Keyboard shortcuts}}<br />
{{Related articles end}}<br />
<br />
This article describes the basics of [[Xorg]] keyboard configuration. For advanced topics such as keyboard layout modification or additional key mappings, see [[X keyboard extension]] or [[Extra keyboard keys]] respectively.<br />
<br />
The Xorg server uses the [[X keyboard extension]] (XKB) to define keyboard layouts. Optionally, [[xmodmap]] can be used to access the internal keymap table directly, although this is not recommended for complex tasks. Also [[systemd]]'s ''localectl'' can be used to define the keyboard layout for both the Xorg server and the virtual console.<br />
<br />
{{Note|XKB options can be overridden by the tools provided by some desktop environments such as [[GNOME]] and [[KDE]].}}<br />
<br />
== Viewing keyboard settings ==<br />
<br />
You can use the following command to see the actual XKB settings:<br />
<br />
{{hc|$ setxkbmap -print -verbose 10|<nowiki><br />
Setting verbose level to 10<br />
locale is C<br />
Applied rules from evdev:<br />
model: evdev<br />
layout: us<br />
options: terminate:ctrl_alt_bksp<br />
Trying to build keymap using the following components:<br />
keycodes: evdev+aliases(qwerty)<br />
types: complete<br />
compat: complete<br />
symbols: pc+us+inet(evdev)+terminate(ctrl_alt_bksp)<br />
geometry: pc(pc104)<br />
xkb_keymap {<br />
xkb_keycodes { include "evdev+aliases(qwerty)" };<br />
xkb_types { include "complete" };<br />
xkb_compat { include "complete" };<br />
xkb_symbols { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)" };<br />
xkb_geometry { include "pc(pc104)" };<br />
};<br />
</nowiki>}}<br />
<br />
=== Third party utilities ===<br />
<br />
There are some "unofficial" utilities which allow to print specific information about the currently used keyboard layout.<br />
<br />
* {{AUR|xkb-switch-git}}:<br />
<br />
{{hc|$ xkb-switch|us}}<br />
<br />
* {{AUR|xkblayout-state-git}}:<br />
<br />
{{hc|$ xkblayout-state print "%s"|de}}<br />
<br />
== Setting keyboard layout ==<br />
Keyboard layout in Xorg can be set in multiple ways. Here is an explanation of used options:<br />
<br />
* {{ic|XkbModel}} selects the keyboard model. This has an influence only for some extra keys your keyboard might have. The safe fallback are {{ic|pc104}} or {{ic|pc105}}. But for instance laptops usually have some extra keys, and sometimes you can make them work by simply setting a proper model.<br />
* {{ic|XkbLayout}} selects the keyboard layout. Multiple layouts may be specified in a comma-separated list, e.g. if you want to quickly switch between layouts.<br />
* {{ic|XkbVariant}} selects a specific layout variant available for the {{ic|XkbLayout}}. For instance, the default {{ic|sk}} (Slovak) variant is {{ic|qwertz}}, but you can manually specify {{ic|qwerty}}, etc.<br />
* {{ic|XkbOptions}} contains some extra options (comma-separated). Used for specifying layout switching, notification LED, compose mode etc. See the [[#Frequently used XKB options]] section for examples.<br />
<br />
{{Note|You must specify as many variants as the number of specified layouts. If you want the default variant, specify an empty string as the variant (the comma must stay). For example, to have the default {{ic|us}} layout as primary and the {{ic|dvorak}} variant of {{ic|us}} layout as secondary, specify {{ic|us,us}} as {{ic|XkbLayout}} and {{ic|,dvorak}} as {{ic|XkbVariant}}.}}<br />
<br />
The layout name is usually a [[Wikipedia:ISO_3166-1_alpha-2#Officially_assigned_code_elements|2-letter country code]]. To see a full list of keyboard models, layouts, variants and options, along with a short description, open {{ic|/usr/share/X11/xkb/rules/base.lst}}. Alternatively, you may use one of the following commands to see a list without a description:<br />
<br />
* {{ic|localectl list-x11-keymap-models}}<br />
* {{ic|localectl list-x11-keymap-layouts}}<br />
* {{ic|localectl list-x11-keymap-variants [''layout'']}}<br />
* {{ic|localectl list-x11-keymap-options}}<br />
<br />
Examples in the following subsections will have the same effect, they will set {{ic|pc104}} model, {{ic|cz}} as primary layout, {{ic|us}} as secondary layout, {{ic|dvorak}} variant for {{ic|us}} layout and the {{ic|Win+Space}} combination for switching between layouts. See {{man|7|xkeyboard-config}} for more detailed information.<br />
<br />
{{Note|[[Fcitx]]/[[IBus]] users may find these methods not working, or just work for a while, since they will try to control keyboard layout. Fcitx users need to set the first input method to be {{ic|Keyboard - ''layout''}}. See [[Fcitx#Input methods configuration]]. IBus users need to enable "Use system keyboard layout" option in Preference -> Advanced if using X configuration files, or manually specify the layout if using setxkbmap.}}<br />
<br />
=== Using setxkbmap ===<br />
{{Expansion|Udev also comes into play (for example when plugging in a keyboard), undoing changes by ''setxkbmap''|section=Persisting layout when USB keyboard connected}}<br />
<br />
''setxkbmap'' sets the keyboard layout for the current X session only, but can be made persistent in [[xinitrc]] or [[xprofile]]. This overrides system-wide configuration specified following [[#Using X configuration files]]. However, persistence does not apply to keyboards such as external keyboards, unless their device id was specified when ''setxkbmap'' was run. Or that they are the core keyboard device of the X server.<br />
<br />
The usage is as follows (see {{man|1|setxkbmap}}):<br />
<br />
$ setxkbmap [-model ''xkb_model''] [-layout ''xkb_layout''] [-variant ''xkb_variant''] [-option ''xkb_options'']<br />
<br />
{{Note|''setxkbmap'' adds options specified in the command line to the options that were set before (as saved in root window properties). If you want to replace all previously specified options, use the {{ic|-option}} flag with an empty argument first.}}<br />
<br />
To change just the layout ({{ic|-layout}} is the default flag):<br />
<br />
$ setxkbmap ''xkb_layout''<br />
<br />
For multiple customizations:<br />
<br />
$ setxkbmap -model pc104 -layout cz,us -variant ,dvorak -option grp:win_space_toggle<br />
<br />
=== Using X configuration files ===<br />
<br />
{{Note|{{ic|xorg.conf}} is parsed by the X server at start-up. To apply changes, restart X.}}<br />
<br />
The syntax of X configuration files is explained in [[Xorg#Configuration]]. This method creates system-wide configuration which is persistent across reboots.<br />
<br />
Here is an example:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/00-keyboard.conf|<br />
Section "InputClass"<br />
Identifier "system-keyboard"<br />
MatchIsKeyboard "on"<br />
Option "XkbLayout" "cz,us"<br />
Option "XkbModel" "pc104"<br />
Option "XkbVariant" ",dvorak"<br />
Option "XkbOptions" "grp:win_space_toggle"<br />
EndSection<br />
}}<br />
<br />
==== Using localectl ====<br />
<br />
For convenience, the tool ''localectl'' may be used instead of manually editing X configuration files. It will save the configuration in {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}}, this file should not be manually edited, because ''localectl'' will overwrite the changes on next start.<br />
<br />
The usage is as follows:<br />
<br />
# localectl [--no-convert] set-x11-keymap ''layout'' [''model'' [''variant'' [''options'']]]<br />
<br />
To set a ''model'', ''variant'' or ''options'', all preceding fields need to be specified, but the preceding fields can be skipped by passing an empty string with {{ic|""}}. Unless the {{ic|--no-convert}} option is passed, the specified keymap is also converted to the closest matching console keymap and applied to the [[Keyboard configuration in console|console configuration]] in {{ic|vconsole.conf}}. See {{man|1|localectl}} for more information.<br />
<br />
To create a {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} like the above:<br />
<br />
# localectl --no-convert set-x11-keymap cz,us pc104 ,dvorak grp:win_space_toggle<br />
<br />
== Frequently used XKB options ==<br />
<br />
=== Switching between keyboard layouts ===<br />
<br />
To be able to easily switch keyboard layouts, first specify multiple layouts between which you want to switch (the first one is the default). Then specify a key (or key combination), which will be used for switching. For example, to switch between a US and a Swedish layout using the {{ic|CapsLock}} key, use {{ic|us,se}} as an argument of {{ic|XkbLayout}} and {{ic|grp:caps_toggle}} as an argument of {{ic|XkbOptions}}. The number of {{ic|XkbLayout}}s should match that of the {{ic|XkbVariant}}s — if you want to switch solely between different variants, then duplicate the layout accordingly (e.g. {{ic|de,de}}).<br />
<br />
The list of available layouts (and variants) can be found in {{man|7|xkeyboard-config|LAYOUTS}}. The key combinations available for layout switching are listed in {{man|7|xkeyboard-config|Switching to another layout}}.<br />
<br />
Note that the {{ic|grp:alts_toggle}} option is [https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/43 unreliable] and unlikely to be fixed; prefer other combinations.<br />
<br />
==== Switch languages using Alt Shift ====<br />
<br />
To set {{ic|Alt+Shift}} as a layout shortcut, use {{ic|grp:alt_shift_toggle}} in {{ic|XkbOptions}}.<br />
<br />
However, there is a [https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/issues/10 known issue] with XKB that causes other shortcuts of the type {{ic|Alt+Shift+''any_key''}} to break. Moreover, XKB may set the right {{ic|Alt}} to be {{ic|AltGr}} by default in some keyboard layouts, making {{ic|RAlt+RShift}} not working for layout switching.<br />
<br />
As a workaround, [[sxhkd]] may be used to switch layouts by adding the following to {{ic|sxhkdrc}}: <br />
<br />
Shift_L + Alt_L<br />
setxkbmap -query | grep -q 'fr' && setxkbmap us || setxkbmap fr,us<br />
Shift_R + Alt_R<br />
setxkbmap -query | grep -q 'fr' && setxkbmap us || setxkbmap fr,us<br />
<br />
Note that for some reason, {{ic|Alt}} must be pressed before {{ic|Shift}} to be detected by sxhkd.<br />
<br />
=== Terminating Xorg with Ctrl+Alt+Backspace ===<br />
<br />
By default, the key combination {{ic|Ctrl+Alt+Backspace}} is disabled. You can enable it by passing {{ic|terminate:ctrl_alt_bksp}} to {{ic|XkbOptions}}. This can also be done by binding a key to {{ic|Terminate_Server}} in {{ic|xmodmap}} (which undoes any existing {{ic|XkbOptions}} setting). <br />
In order for either method to work, one also needs to have {{ic|DontZap}} set to "off" in {{ic|ServerFlags}}: since 2004 [https://www.x.org/archive/X11R6.8.0/doc/xorg.conf.5.html] this is the default.<br />
<br />
=== Swapping Caps Lock with Left Control ===<br />
<br />
To swap Caps Lock with Left Control key, add {{ic|ctrl:swapcaps}} to {{ic|XkbOptions}}. Run the following command to see similar options along with their descriptions:<br />
<br />
$ grep -E "(ctrl|caps):" /usr/share/X11/xkb/rules/base.lst<br />
<br />
=== Enabling mouse keys ===<br />
<br />
[[w:Mouse keys|Mouse keys]], not to be confused with the keys of the mouse, is disabled by default and has to be manually enabled by passing {{ic|keypad:pointerkeys}} to {{ic|XkbOptions}}. This will make the {{ic|Shift+NumLock}} shortcut toggle mouse keys.<br />
<br />
See also [[X keyboard extension#Mouse control]] for advanced configuration.<br />
<br />
=== Configuring compose key ===<br />
<br />
Though typically not on traditional keyboards, a [[Wikipedia:Compose key|Compose key]] can be configured to an existent key.<br />
<br />
The {{ic|Compose}} key begins a keypress sequence that involves (usually two) additional keypresses. Usage is typically either for entering characters in a language that the keyboard was not designed for, or for other less-used characters that are not covered with the {{ic|AltGr}} modifier. For example, pressing {{ic|Compose}} {{ic|'}} {{ic|e}} produces {{ic|é}}, or {{ic|Compose}} {{ic|-}} {{ic|-}} {{ic|-}} will produce an "em dash": {{ic|—}}.<br />
<br />
Though a few more eccentric keyboards feature a {{ic|Compose}} key, its availability is usually through substituting an already existing key to it. For example, to make the {{ic|Menu}} key a {{ic|Compose}} key use the [[Desktop environment]] configuration, or pass {{ic|compose:menu}} to {{ic|XkbOptions}} (or [[#Using setxkbmap|setxkbmap]]: {{ic|setxkbmap -option compose:menu}}). Allowed key substitutions are defined in {{ic|/usr/share/X11/xkb/rules/base.lst}}:<br />
<br />
$ grep "compose:" /usr/share/X11/xkb/rules/base.lst<br />
<br />
If the desired mapping is not found in that file, an alternative is to use [[xmodmap]] to map the desired key to the {{ic|Multi_key}} keysym, which acts as a compose key by default (note that ''xmodmap'' settings are reset by ''setxkbmap'').<br />
<br />
==== Key combinations ====<br />
<br />
The default combinations for the compose keys depend on the [[locale]] configured for the session and are stored in {{ic|/usr/share/X11/locale/''used_locale''/Compose}}, where {{ic|''used_locale''}} is for example {{ic|en_US.UTF-8}}.<br />
<br />
You can define your own compose key combinations by copying the default file to {{ic|~/.XCompose}} and editing it. Alternatively, create an empty {{ic|~/.XCompose}} and include the default one using {{ic|include "%L"}}, for example:<br />
{{hc|~/.XCompose|<nowiki><br />
include "%L"<br />
<br />
<Multi_key> <g> <a> : "α"<br />
<Multi_key> <g> <b> : "β"<br />
<Multi_key> <g> <g> : "γ"<br />
</nowiki>}}<br />
<br />
The compose key (denoted as {{ic|<Multi_key>}} in the {{ic|~/.XCompose}} file) works with any of the thousands of valid Unicode characters, including those outside the Basic Multilingual Plane. Take a look at the {{man|5|Compose}} man page, it explains the format of the XCompose files.<br />
<br />
However, GTK does not use [[Wikipedia:X Input Method|XIM]] by default and therefore does not follow {{ic|~/.XCompose}} keys. This can be fixed by forcing GTK to use XIM by configure the [[Environment variables#Graphical environment|graphical environment variables]] {{ic|1=GTK_IM_MODULE=xim}} and/or {{ic|1=XMODIFIERS="@im=none"}}.<br />
<br />
{{Tip|XIM is very old, you might have better luck with other input methods such as [[Ibus]] and [[Fcitx5]]; see [[Input method]] for details.}}<br />
<br />
{{Note|XIM will prevent insertion of Unicode characters with the {{ic|Ctrl+Shift+u}} combination.}}<br />
<br />
=== Currency sign on other key ===<br />
<br />
Most European keyboards have a Euro sign (€) printed on on the {{ic|5}} key. For example, to access it with {{ic|Alt+5}}, use the {{ic|lv3:lalt_switch}} and {{ic|eurosign:5}} options.<br />
<br />
The Rupee sign (₹) can be used the same way with {{ic|rupeesign:4}}.<br />
<br />
=== Switching state immediately when Caps Lock is pressed ===<br />
<br />
Those who prefer typing capital letters with the Caps Lock key may experience a short delay when Caps Lock state is switched, resulting in two or more capital letters (e.g. ''THe'', ''ARch LInux''). This occurs because Caps Lock is enabled immediately once the Caps Lock key is pressed, but is only disabled upon release of the second key-press. This behaviour [[Wikipedia:Caps_lock#History|stems from typewriters]] where a Caps Lock function was achieved by physically locking the shifted typebars in place, and the release of a shift key-press was the action that caused the release of the lock.<br />
<br />
Some more popular operating systems have removed this behaviour, either voluntarily (as it can be confusing to some) or by mistake, however this is a question of preference. Bug reports have been filed on the Xserver bug tracker, as there is currently no easy way to switch to the behaviour reflected by those other operating systems. For anyone who would like to follow up the issue, bug reports and latest working progress can be found at [https://bugs.freedesktop.org/show_bug.cgi?id=27903] and [https://gitlab.freedesktop.org/xorg/xserver/issues/312].<br />
<br />
==== Workaround ====<br />
<br />
First, export your keyboard configurations to a file:<br />
<br />
$ xkbcomp -xkb $DISPLAY xkbmap<br />
<br />
In the file ''xkbmap'', locate the Caps Lock section which begins with ''key <CAPS>'':<br />
<br />
key <CAPS> { [ Caps_Lock ] };<br />
<br />
and replace whole section with the following code:<br />
<br />
key <CAPS> {<br />
repeat=no,<br />
type[group1]="ALPHABETIC",<br />
symbols[group1]=[ Caps_Lock, Caps_Lock],<br />
actions[group1]=[ LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3)]<br />
};<br />
<br />
Save and reload keyboard configurations:<br />
<br />
$ xkbcomp -w 0 xkbmap $DISPLAY<br />
<br />
Consider making it a service launching after X starts, since reloaded configurations do not survive a system reboot.<br />
<br />
== One-click key functions ==<br />
<br />
To assign an additional one-click function to a modifier key, you can use {{pkg|xcape}}. For example it is possible to have {{ic|CapsLock}} work as {{ic|Escape}} when pressed alone, and as {{ic|Control}} when used with another key. First set the {{ic|Control}} swapping using [[#Swapping Caps Lock with Left Control|setxkbmap]] as mentioned earlier, and ''xcape'' to set the {{ic|Escape}} association:<br />
<br />
$ xcape -e 'Caps_Lock=Escape'<br />
<br />
You can set multiple associations separated with a semicolon, e.g.: {{ic|1=Caps_Lock=Escape;Shift_L=Escape}}.<br />
<br />
If you hold a key for longer than the timeout value (default 500 ms), ''xcape'' will not generate a key event.<br />
<br />
== Adjusting typematic delay and rate ==<br />
<br />
The ''typematic delay'' indicates the amount of time (typically in milliseconds) a key needs to be pressed and held in order for the repeating process to begin. After the repeating process has been triggered, the character will be repeated with a certain frequency (usually given in Hz) specified by the ''typematic rate''. Note that these settings are configured separately for Xorg and [[Keyboard configuration in console#Adjusting typematic delay and rate|for the virtual console]].<br />
<br />
=== Using xset ===<br />
<br />
The tool ''xset'' can be used to set the typematic delay and rate for an active X server, certain actions during runtime though may cause the X server to reset these changes and revert instead to its ''seat defaults'' (newly connected devices, ...).<br />
<br />
Usage:<br />
<br />
$ xset r rate ''delay'' [''rate'']<br />
<br />
For example to set a typematic delay to 200ms and a typematic rate to 30Hz, use the following command (use ''xautocfg'' to permanently apply your preferences):<br />
<br />
$ xset r rate 200 30<br />
<br />
Issuing the command without specifying the delay and rate will reset the typematic values to their respective defaults; a delay of 660ms and a rate of 25Hz:<br />
<br />
$ xset r rate<br />
<br />
=== Using xautocfg ===<br />
<br />
{{AUR|xautocfg}} can apply repeat rate settings for newly connected devices automatically.<br />
It watches for X11 events when a new keyboards are attached and applies repeat rate configuration to it.<br />
<br />
* adjust the configuration<br />
* enable the [[systemd/User]] {{ic|xautocfg.service}} or launch {{ic|xautocfg}} manually.<br />
<br />
Make sure {{ic|graphical-session.target}} is started by your window manager or desktop environment!<br />
<br />
{{hc|~/.config/xautocfg.cfg|<br />
[keyboard]<br />
<br />
# when to start repeating<br />
delay {{=}} 220<br />
<br />
# rate in hz for repetitions<br />
rate {{=}} 45<br />
}}<br />
<br />
=== Using XServer input AutoRepeat configuration option ===<br />
<br />
To allow persistent system-wide configuration, change the ''seat defaults'' with an Xorg configuration file as described in [[#Using X configuration files]], and add a {{ic|AutoRepeat}} section entry: [https://cgit.freedesktop.org/xorg/xserver/commit/?id=4f95d87d66b6a6e11aa8616c9242e0907ffee66b]<br />
<br />
The parameters for {{ic|AutoRepeat}} are {{ic|delay}} and {{ic|repeat interval}} in milliseconds. If you like {{ic|xset r rate 200 100}} for example, the equivalent setting would be {{ic|Option "AutoRepeat" "200 10"}} where the {{ic|repeat interval}} of {{ic|10}} is {{ic|1000 / 100}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/00-keyboard.conf|<br />
Section "InputClass"<br />
...<br />
Option "AutoRepeat" "200 30"<br />
...<br />
EndSection<br />
}}<br />
<br />
=== Using XServer startup options ===<br />
<br />
Another method of persisting the configuration is to pass the desired settings to the X server on its startup using the following options:<br />
<br />
* {{ic|-ardelay ''milliseconds''}} - sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).<br />
* {{ic|-arinterval ''milliseconds''}} - sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).<br />
<br />
See {{man|1|Xserver}} for a full list of X server options and refer to your [[display manager]] for information about how to pass these options.<br />
<br />
== See also ==<br />
<br />
* [https://web.archive.org/web/20170825051821/http://madduck.net:80/docs/extending-xkb/ Madduck guide on extending XKB] (archived at Wayback Machine)</div>TheJJhttps://wiki.archlinux.org/index.php?title=Xorg/Keyboard_configuration&diff=764227Xorg/Keyboard configuration2023-01-15T23:32:11Z<p>TheJJ: /* Adjusting typematic delay and rate */ add xautocfg</p>
<hr />
<div>[[Category:X server]]<br />
[[Category:Keyboard configuration]]<br />
[[fr:Xorg (Français)/Keyboard configuration]]<br />
[[ja:Xorg でのキーボード設定]]<br />
[[ru:Xorg (Русский)/Keyboard configuration]]<br />
[[uk:Xorg (Українська)/Keyboard configuration]]<br />
{{Related articles start}}<br />
{{Related|X keyboard extension}}<br />
{{Related|Linux console/Keyboard configuration}}<br />
{{Related|Extra keyboard keys}}<br />
{{Related|Xorg}}<br />
{{Related|Keyboard shortcuts}}<br />
{{Related articles end}}<br />
<br />
This article describes the basics of [[Xorg]] keyboard configuration. For advanced topics such as keyboard layout modification or additional key mappings, see [[X keyboard extension]] or [[Extra keyboard keys]] respectively.<br />
<br />
The Xorg server uses the [[X keyboard extension]] (XKB) to define keyboard layouts. Optionally, [[xmodmap]] can be used to access the internal keymap table directly, although this is not recommended for complex tasks. Also [[systemd]]'s ''localectl'' can be used to define the keyboard layout for both the Xorg server and the virtual console.<br />
<br />
{{Note|XKB options can be overridden by the tools provided by some desktop environments such as [[GNOME]] and [[KDE]].}}<br />
<br />
== Viewing keyboard settings ==<br />
<br />
You can use the following command to see the actual XKB settings:<br />
<br />
{{hc|$ setxkbmap -print -verbose 10|<nowiki><br />
Setting verbose level to 10<br />
locale is C<br />
Applied rules from evdev:<br />
model: evdev<br />
layout: us<br />
options: terminate:ctrl_alt_bksp<br />
Trying to build keymap using the following components:<br />
keycodes: evdev+aliases(qwerty)<br />
types: complete<br />
compat: complete<br />
symbols: pc+us+inet(evdev)+terminate(ctrl_alt_bksp)<br />
geometry: pc(pc104)<br />
xkb_keymap {<br />
xkb_keycodes { include "evdev+aliases(qwerty)" };<br />
xkb_types { include "complete" };<br />
xkb_compat { include "complete" };<br />
xkb_symbols { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)" };<br />
xkb_geometry { include "pc(pc104)" };<br />
};<br />
</nowiki>}}<br />
<br />
=== Third party utilities ===<br />
<br />
There are some "unofficial" utilities which allow to print specific information about the currently used keyboard layout.<br />
<br />
* {{AUR|xkb-switch-git}}:<br />
<br />
{{hc|$ xkb-switch|us}}<br />
<br />
* {{AUR|xkblayout-state-git}}:<br />
<br />
{{hc|$ xkblayout-state print "%s"|de}}<br />
<br />
== Setting keyboard layout ==<br />
Keyboard layout in Xorg can be set in multiple ways. Here is an explanation of used options:<br />
<br />
* {{ic|XkbModel}} selects the keyboard model. This has an influence only for some extra keys your keyboard might have. The safe fallback are {{ic|pc104}} or {{ic|pc105}}. But for instance laptops usually have some extra keys, and sometimes you can make them work by simply setting a proper model.<br />
* {{ic|XkbLayout}} selects the keyboard layout. Multiple layouts may be specified in a comma-separated list, e.g. if you want to quickly switch between layouts.<br />
* {{ic|XkbVariant}} selects a specific layout variant available for the {{ic|XkbLayout}}. For instance, the default {{ic|sk}} (Slovak) variant is {{ic|qwertz}}, but you can manually specify {{ic|qwerty}}, etc.<br />
* {{ic|XkbOptions}} contains some extra options (comma-separated). Used for specifying layout switching, notification LED, compose mode etc. See the [[#Frequently used XKB options]] section for examples.<br />
<br />
{{Note|You must specify as many variants as the number of specified layouts. If you want the default variant, specify an empty string as the variant (the comma must stay). For example, to have the default {{ic|us}} layout as primary and the {{ic|dvorak}} variant of {{ic|us}} layout as secondary, specify {{ic|us,us}} as {{ic|XkbLayout}} and {{ic|,dvorak}} as {{ic|XkbVariant}}.}}<br />
<br />
The layout name is usually a [[Wikipedia:ISO_3166-1_alpha-2#Officially_assigned_code_elements|2-letter country code]]. To see a full list of keyboard models, layouts, variants and options, along with a short description, open {{ic|/usr/share/X11/xkb/rules/base.lst}}. Alternatively, you may use one of the following commands to see a list without a description:<br />
<br />
* {{ic|localectl list-x11-keymap-models}}<br />
* {{ic|localectl list-x11-keymap-layouts}}<br />
* {{ic|localectl list-x11-keymap-variants [''layout'']}}<br />
* {{ic|localectl list-x11-keymap-options}}<br />
<br />
Examples in the following subsections will have the same effect, they will set {{ic|pc104}} model, {{ic|cz}} as primary layout, {{ic|us}} as secondary layout, {{ic|dvorak}} variant for {{ic|us}} layout and the {{ic|Win+Space}} combination for switching between layouts. See {{man|7|xkeyboard-config}} for more detailed information.<br />
<br />
{{Note|[[Fcitx]]/[[IBus]] users may find these methods not working, or just work for a while, since they will try to control keyboard layout. Fcitx users need to set the first input method to be {{ic|Keyboard - ''layout''}}. See [[Fcitx#Input methods configuration]]. IBus users need to enable "Use system keyboard layout" option in Preference -> Advanced if using X configuration files, or manually specify the layout if using setxkbmap.}}<br />
<br />
=== Using setxkbmap ===<br />
{{Expansion|Udev also comes into play (for example when plugging in a keyboard), undoing changes by ''setxkbmap''|section=Persisting layout when USB keyboard connected}}<br />
<br />
''setxkbmap'' sets the keyboard layout for the current X session only, but can be made persistent in [[xinitrc]] or [[xprofile]]. This overrides system-wide configuration specified following [[#Using X configuration files]]. However, persistence does not apply to keyboards such as external keyboards, unless their device id was specified when ''setxkbmap'' was run. Or that they are the core keyboard device of the X server.<br />
<br />
The usage is as follows (see {{man|1|setxkbmap}}):<br />
<br />
$ setxkbmap [-model ''xkb_model''] [-layout ''xkb_layout''] [-variant ''xkb_variant''] [-option ''xkb_options'']<br />
<br />
{{Note|''setxkbmap'' adds options specified in the command line to the options that were set before (as saved in root window properties). If you want to replace all previously specified options, use the {{ic|-option}} flag with an empty argument first.}}<br />
<br />
To change just the layout ({{ic|-layout}} is the default flag):<br />
<br />
$ setxkbmap ''xkb_layout''<br />
<br />
For multiple customizations:<br />
<br />
$ setxkbmap -model pc104 -layout cz,us -variant ,dvorak -option grp:win_space_toggle<br />
<br />
=== Using X configuration files ===<br />
<br />
{{Note|{{ic|xorg.conf}} is parsed by the X server at start-up. To apply changes, restart X.}}<br />
<br />
The syntax of X configuration files is explained in [[Xorg#Configuration]]. This method creates system-wide configuration which is persistent across reboots.<br />
<br />
Here is an example:<br />
<br />
{{hc|/etc/X11/xorg.conf.d/00-keyboard.conf|<br />
Section "InputClass"<br />
Identifier "system-keyboard"<br />
MatchIsKeyboard "on"<br />
Option "XkbLayout" "cz,us"<br />
Option "XkbModel" "pc104"<br />
Option "XkbVariant" ",dvorak"<br />
Option "XkbOptions" "grp:win_space_toggle"<br />
EndSection<br />
}}<br />
<br />
==== Using localectl ====<br />
<br />
For convenience, the tool ''localectl'' may be used instead of manually editing X configuration files. It will save the configuration in {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}}, this file should not be manually edited, because ''localectl'' will overwrite the changes on next start.<br />
<br />
The usage is as follows:<br />
<br />
# localectl [--no-convert] set-x11-keymap ''layout'' [''model'' [''variant'' [''options'']]]<br />
<br />
To set a ''model'', ''variant'' or ''options'', all preceding fields need to be specified, but the preceding fields can be skipped by passing an empty string with {{ic|""}}. Unless the {{ic|--no-convert}} option is passed, the specified keymap is also converted to the closest matching console keymap and applied to the [[Keyboard configuration in console|console configuration]] in {{ic|vconsole.conf}}. See {{man|1|localectl}} for more information.<br />
<br />
To create a {{ic|/etc/X11/xorg.conf.d/00-keyboard.conf}} like the above:<br />
<br />
# localectl --no-convert set-x11-keymap cz,us pc104 ,dvorak grp:win_space_toggle<br />
<br />
== Frequently used XKB options ==<br />
<br />
=== Switching between keyboard layouts ===<br />
<br />
To be able to easily switch keyboard layouts, first specify multiple layouts between which you want to switch (the first one is the default). Then specify a key (or key combination), which will be used for switching. For example, to switch between a US and a Swedish layout using the {{ic|CapsLock}} key, use {{ic|us,se}} as an argument of {{ic|XkbLayout}} and {{ic|grp:caps_toggle}} as an argument of {{ic|XkbOptions}}. The number of {{ic|XkbLayout}}s should match that of the {{ic|XkbVariant}}s — if you want to switch solely between different variants, then duplicate the layout accordingly (e.g. {{ic|de,de}}).<br />
<br />
The list of available layouts (and variants) can be found in {{man|7|xkeyboard-config|LAYOUTS}}. The key combinations available for layout switching are listed in {{man|7|xkeyboard-config|Switching to another layout}}.<br />
<br />
Note that the {{ic|grp:alts_toggle}} option is [https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/issues/43 unreliable] and unlikely to be fixed; prefer other combinations.<br />
<br />
==== Switch languages using Alt Shift ====<br />
<br />
To set {{ic|Alt+Shift}} as a layout shortcut, use {{ic|grp:alt_shift_toggle}} in {{ic|XkbOptions}}.<br />
<br />
However, there is a [https://gitlab.freedesktop.org/xorg/app/setxkbmap/-/issues/10 known issue] with XKB that causes other shortcuts of the type {{ic|Alt+Shift+''any_key''}} to break. Moreover, XKB may set the right {{ic|Alt}} to be {{ic|AltGr}} by default in some keyboard layouts, making {{ic|RAlt+RShift}} not working for layout switching.<br />
<br />
As a workaround, [[sxhkd]] may be used to switch layouts by adding the following to {{ic|sxhkdrc}}: <br />
<br />
Shift_L + Alt_L<br />
setxkbmap -query | grep -q 'fr' && setxkbmap us || setxkbmap fr,us<br />
Shift_R + Alt_R<br />
setxkbmap -query | grep -q 'fr' && setxkbmap us || setxkbmap fr,us<br />
<br />
Note that for some reason, {{ic|Alt}} must be pressed before {{ic|Shift}} to be detected by sxhkd.<br />
<br />
=== Terminating Xorg with Ctrl+Alt+Backspace ===<br />
<br />
By default, the key combination {{ic|Ctrl+Alt+Backspace}} is disabled. You can enable it by passing {{ic|terminate:ctrl_alt_bksp}} to {{ic|XkbOptions}}. This can also be done by binding a key to {{ic|Terminate_Server}} in {{ic|xmodmap}} (which undoes any existing {{ic|XkbOptions}} setting). <br />
In order for either method to work, one also needs to have {{ic|DontZap}} set to "off" in {{ic|ServerFlags}}: since 2004 [https://www.x.org/archive/X11R6.8.0/doc/xorg.conf.5.html] this is the default.<br />
<br />
=== Swapping Caps Lock with Left Control ===<br />
<br />
To swap Caps Lock with Left Control key, add {{ic|ctrl:swapcaps}} to {{ic|XkbOptions}}. Run the following command to see similar options along with their descriptions:<br />
<br />
$ grep -E "(ctrl|caps):" /usr/share/X11/xkb/rules/base.lst<br />
<br />
=== Enabling mouse keys ===<br />
<br />
[[w:Mouse keys|Mouse keys]], not to be confused with the keys of the mouse, is disabled by default and has to be manually enabled by passing {{ic|keypad:pointerkeys}} to {{ic|XkbOptions}}. This will make the {{ic|Shift+NumLock}} shortcut toggle mouse keys.<br />
<br />
See also [[X keyboard extension#Mouse control]] for advanced configuration.<br />
<br />
=== Configuring compose key ===<br />
<br />
Though typically not on traditional keyboards, a [[Wikipedia:Compose key|Compose key]] can be configured to an existent key.<br />
<br />
The {{ic|Compose}} key begins a keypress sequence that involves (usually two) additional keypresses. Usage is typically either for entering characters in a language that the keyboard was not designed for, or for other less-used characters that are not covered with the {{ic|AltGr}} modifier. For example, pressing {{ic|Compose}} {{ic|'}} {{ic|e}} produces {{ic|é}}, or {{ic|Compose}} {{ic|-}} {{ic|-}} {{ic|-}} will produce an "em dash": {{ic|—}}.<br />
<br />
Though a few more eccentric keyboards feature a {{ic|Compose}} key, its availability is usually through substituting an already existing key to it. For example, to make the {{ic|Menu}} key a {{ic|Compose}} key use the [[Desktop environment]] configuration, or pass {{ic|compose:menu}} to {{ic|XkbOptions}} (or [[#Using setxkbmap|setxkbmap]]: {{ic|setxkbmap -option compose:menu}}). Allowed key substitutions are defined in {{ic|/usr/share/X11/xkb/rules/base.lst}}:<br />
<br />
$ grep "compose:" /usr/share/X11/xkb/rules/base.lst<br />
<br />
If the desired mapping is not found in that file, an alternative is to use [[xmodmap]] to map the desired key to the {{ic|Multi_key}} keysym, which acts as a compose key by default (note that ''xmodmap'' settings are reset by ''setxkbmap'').<br />
<br />
==== Key combinations ====<br />
<br />
The default combinations for the compose keys depend on the [[locale]] configured for the session and are stored in {{ic|/usr/share/X11/locale/''used_locale''/Compose}}, where {{ic|''used_locale''}} is for example {{ic|en_US.UTF-8}}.<br />
<br />
You can define your own compose key combinations by copying the default file to {{ic|~/.XCompose}} and editing it. Alternatively, create an empty {{ic|~/.XCompose}} and include the default one using {{ic|include "%L"}}, for example:<br />
{{hc|~/.XCompose|<nowiki><br />
include "%L"<br />
<br />
<Multi_key> <g> <a> : "α"<br />
<Multi_key> <g> <b> : "β"<br />
<Multi_key> <g> <g> : "γ"<br />
</nowiki>}}<br />
<br />
The compose key (denoted as {{ic|<Multi_key>}} in the {{ic|~/.XCompose}} file) works with any of the thousands of valid Unicode characters, including those outside the Basic Multilingual Plane. Take a look at the {{man|5|Compose}} man page, it explains the format of the XCompose files.<br />
<br />
However, GTK does not use [[Wikipedia:X Input Method|XIM]] by default and therefore does not follow {{ic|~/.XCompose}} keys. This can be fixed by forcing GTK to use XIM by configure the [[Environment variables#Graphical environment|graphical environment variables]] {{ic|1=GTK_IM_MODULE=xim}} and/or {{ic|1=XMODIFIERS="@im=none"}}.<br />
<br />
{{Tip|XIM is very old, you might have better luck with other input methods such as [[Ibus]] and [[Fcitx5]]; see [[Input method]] for details.}}<br />
<br />
{{Note|XIM will prevent insertion of Unicode characters with the {{ic|Ctrl+Shift+u}} combination.}}<br />
<br />
=== Currency sign on other key ===<br />
<br />
Most European keyboards have a Euro sign (€) printed on on the {{ic|5}} key. For example, to access it with {{ic|Alt+5}}, use the {{ic|lv3:lalt_switch}} and {{ic|eurosign:5}} options.<br />
<br />
The Rupee sign (₹) can be used the same way with {{ic|rupeesign:4}}.<br />
<br />
=== Switching state immediately when Caps Lock is pressed ===<br />
<br />
Those who prefer typing capital letters with the Caps Lock key may experience a short delay when Caps Lock state is switched, resulting in two or more capital letters (e.g. ''THe'', ''ARch LInux''). This occurs because Caps Lock is enabled immediately once the Caps Lock key is pressed, but is only disabled upon release of the second key-press. This behaviour [[Wikipedia:Caps_lock#History|stems from typewriters]] where a Caps Lock function was achieved by physically locking the shifted typebars in place, and the release of a shift key-press was the action that caused the release of the lock.<br />
<br />
Some more popular operating systems have removed this behaviour, either voluntarily (as it can be confusing to some) or by mistake, however this is a question of preference. Bug reports have been filed on the Xserver bug tracker, as there is currently no easy way to switch to the behaviour reflected by those other operating systems. For anyone who would like to follow up the issue, bug reports and latest working progress can be found at [https://bugs.freedesktop.org/show_bug.cgi?id=27903] and [https://gitlab.freedesktop.org/xorg/xserver/issues/312].<br />
<br />
==== Workaround ====<br />
<br />
First, export your keyboard configurations to a file:<br />
<br />
$ xkbcomp -xkb $DISPLAY xkbmap<br />
<br />
In the file ''xkbmap'', locate the Caps Lock section which begins with ''key <CAPS>'':<br />
<br />
key <CAPS> { [ Caps_Lock ] };<br />
<br />
and replace whole section with the following code:<br />
<br />
key <CAPS> {<br />
repeat=no,<br />
type[group1]="ALPHABETIC",<br />
symbols[group1]=[ Caps_Lock, Caps_Lock],<br />
actions[group1]=[ LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3)]<br />
};<br />
<br />
Save and reload keyboard configurations:<br />
<br />
$ xkbcomp -w 0 xkbmap $DISPLAY<br />
<br />
Consider making it a service launching after X starts, since reloaded configurations do not survive a system reboot.<br />
<br />
== One-click key functions ==<br />
<br />
To assign an additional one-click function to a modifier key, you can use {{pkg|xcape}}. For example it is possible to have {{ic|CapsLock}} work as {{ic|Escape}} when pressed alone, and as {{ic|Control}} when used with another key. First set the {{ic|Control}} swapping using [[#Swapping Caps Lock with Left Control|setxkbmap]] as mentioned earlier, and ''xcape'' to set the {{ic|Escape}} association:<br />
<br />
$ xcape -e 'Caps_Lock=Escape'<br />
<br />
You can set multiple associations separated with a semicolon, e.g.: {{ic|1=Caps_Lock=Escape;Shift_L=Escape}}.<br />
<br />
If you hold a key for longer than the timeout value (default 500 ms), ''xcape'' will not generate a key event.<br />
<br />
== Adjusting typematic delay and rate ==<br />
<br />
The ''typematic delay'' indicates the amount of time (typically in milliseconds) a key needs to be pressed and held in order for the repeating process to begin. After the repeating process has been triggered, the character will be repeated with a certain frequency (usually given in Hz) specified by the ''typematic rate''. Note that these settings are configured separately for Xorg and [[Keyboard configuration in console#Adjusting typematic delay and rate|for the virtual console]].<br />
<br />
=== Using xset ===<br />
<br />
The tool ''xset'' can be used to set the typematic delay and rate for an active X server, certain actions during runtime though may cause the X server to reset these changes and revert instead to its ''seat defaults'' (newly connected devices, ...).<br />
<br />
Usage:<br />
<br />
$ xset r rate ''delay'' [''rate'']<br />
<br />
For example to set a typematic delay to 200ms and a typematic rate to 30Hz, use the following command (use ''xautocfg'' to permanently apply your preferences):<br />
<br />
$ xset r rate 200 30<br />
<br />
Issuing the command without specifying the delay and rate will reset the typematic values to their respective defaults; a delay of 660ms and a rate of 25Hz:<br />
<br />
$ xset r rate<br />
<br />
=== Using xautocfg ===<br />
<br />
{{AUR|xautocfg}} can apply repeat rate settings for newly connected devices automatically.<br />
It watches for X11 events when a new keyboards are attached and applies repeat rate configuration to it.<br />
<br />
* adjust the configuration<br />
* enable the [[systemd/User]] {{ic|xautocfg.service}}.<br />
<br />
Make sure {{ic|graphical-session.target}} is started by your window manager or desktop environment!<br />
<br />
{{hc|~/.config/xautocfg.cfg|<br />
[keyboard]<br />
<br />
# when to start repeating<br />
delay {{=}} 220<br />
<br />
# rate in hz for repetitions<br />
rate {{=}} 45<br />
}}<br />
<br />
=== Using XServer input AutoRepeat configuration option ===<br />
<br />
To allow persistent system-wide configuration, change the ''seat defaults'' with an Xorg configuration file as described in [[#Using X configuration files]], and add a {{ic|AutoRepeat}} section entry: [https://cgit.freedesktop.org/xorg/xserver/commit/?id=4f95d87d66b6a6e11aa8616c9242e0907ffee66b]<br />
<br />
The parameters for {{ic|AutoRepeat}} are {{ic|delay}} and {{ic|repeat interval}} in milliseconds. If you like {{ic|xset r rate 200 100}} for example, the equivalent setting would be {{ic|Option "AutoRepeat" "200 10"}} where the {{ic|repeat interval}} of {{ic|10}} is {{ic|1000 / 100}}<br />
<br />
{{hc|/etc/X11/xorg.conf.d/00-keyboard.conf|<br />
Section "InputClass"<br />
...<br />
Option "AutoRepeat" "200 30"<br />
...<br />
EndSection<br />
}}<br />
<br />
=== Using XServer startup options ===<br />
<br />
Another method of persisting the configuration is to pass the desired settings to the X server on its startup using the following options:<br />
<br />
* {{ic|-ardelay ''milliseconds''}} - sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).<br />
* {{ic|-arinterval ''milliseconds''}} - sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).<br />
<br />
See {{man|1|Xserver}} for a full list of X server options and refer to your [[display manager]] for information about how to pass these options.<br />
<br />
== See also ==<br />
<br />
* [https://web.archive.org/web/20170825051821/http://madduck.net:80/docs/extending-xkb/ Madduck guide on extending XKB] (archived at Wayback Machine)</div>TheJJhttps://wiki.archlinux.org/index.php?title=Cinnamon&diff=584535Cinnamon2019-10-06T11:29:34Z<p>TheJJ: /* Installation */ note to use modeset instead of xf86-video-intel</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[ja:Cinnamon]]<br />
[[ru:Cinnamon]]<br />
[[zh-hans:Cinnamon]]<br />
{{Related articles start}}<br />
{{Related|Nemo}}<br />
{{Related articles end}}<br />
<br />
[https://github.com/linuxmint/Cinnamon Cinnamon] is a [[desktop environment]] which combines a traditional desktop layout with modern graphical effects. The underlying technology was forked from the [[GNOME]] desktop. As of version 2.0, Cinnamon is a complete desktop environment and not merely a frontend for GNOME like GNOME Shell and Unity.<br />
<br />
== Installation ==<br />
<br />
Cinnamon can be [[install]]ed with the package {{Pkg|cinnamon}}.<br />
<br />
{{Note|1=If you have an Intel GPU, make sure you are [[Intel_graphics#Installation|not using xf86-video-intel]] with Cinnamon as it may freeze at random times otherwise, but you can still move the mouse. Use the {{man|4|modesetting}} driver instead by removing {{Pkg|xf86-video-intel}} (KDE also [https://community.kde.org/Plasma/5.9_Errata#Intel_GPUs recommends this]).}}<br />
<br />
== Starting ==<br />
<br />
=== Graphical log-in ===<br />
<br />
Choose ''Cinnamon'' or ''Cinnamon (Software Rendering)'' from the menu in a [[display manager]] of choice. Cinnamon is the 3D accelerated version, which should normally be used. If you experience problems with your video driver (e.g. artifacts or crashing), try the ''Cinnamon (Software Rendering)'' session, which disables 3D acceleration.<br />
<br />
=== Starting Cinnamon manually ===<br />
<br />
If you prefer to start Cinnamon manually from the console, add the following line to [[Xinitrc]]:<br />
<br />
{{hc|~/.xinitrc|<br />
exec cinnamon-session<br />
}}<br />
<br />
If the ''Cinnamon (Software Rendering)'' session is required, use {{ic|cinnamon-session-cinnamon2d}} instead of {{ic|cinnamon-session}}.<br />
<br />
=== Restarting Cinnamon ===<br />
From a command line, execute the following line:<br />
<br />
$ nohup cinnamon --replace > /dev/null 2>&1 &<br />
<br />
== Configuration ==<br />
<br />
Cinnamon is quite easy to configure &mdash; most common settings can be configured graphically. Its usability can be expanded with [http://cinnamon-spices.linuxmint.com/applets applets] and [http://cinnamon-spices.linuxmint.com/extensions extensions], and also it supports [http://cinnamon-spices.linuxmint.com/themes theming]. <br />
<br />
=== Cinnamon settings ===<br />
<br />
''cinnamon-settings'' launches a settings module specified on the command line. Without (correct) arguments, it launches ''System Settings''. For example, to start the panel settings:<br />
<br />
$ cinnamon-settings panel<br />
<br />
To list all available modules:<br />
<br />
$ pacman -Ql cinnamon | awk -F'[_.]' '/cs_.+\.py/ {print $2}'<br />
<br />
; Printers<br />
: For configure printers, install the {{Pkg|system-config-printer}} package. <br />
; Networking<br />
: To add support for the networking module, enable [[NetworkManager#Configuration|Network Manager]]. In order for NetworkManager to store Wi-Fi passwords, you will need to also install [[GNOME Keyring]].<br />
; Bluetooth<br />
: For Bluetooth device support, install the {{Pkg|blueberry}} package.<br />
<br />
=== Applets and extensions ===<br />
<br />
While an '''applet''' is an addition to the Cinnamon panel, an '''extension''' can fully change the Cinnamon experience. They can be installed from the [[AUR]], ([https://aur.archlinux.org/packages.php?O=0&K=cinnamon-&do_Search=Go package search]), or from inside Cinnamon (''Get more online''):<br />
<br />
$ cinnamon-settings applets<br />
$ cinnamon-settings extensions<br />
<br />
Alternatively, install manually from [http://cinnamon-spices.linuxmint.com/ Cinnamon spices].<br />
<br />
{{Note|If applets do not appear, restart Cinnamon with {{ic|r}} in the {{ic|Alt+F2}} dialog box.}}<br />
<br />
=== Pressing power buttons suspend the system ===<br />
<br />
This is the default behaviour. To change the setting open the {{ic|cinnamon-settings}} panel and click on the "Power Management" option. Change the "When the power button is pressed" option to your desired behaviour.<br />
<br />
=== Manage languages used in Cinnamon ===<br />
<br />
{{Note|The language module was removed from the Cinnamon Control Panel with the release of Cinnamon 2.2. [http://segfault.linuxmint.com/2014/04/cinnamon-2-2/]}}<br />
<br />
*To add/remove languages: see [[Locale]].<br />
*To change between enabled languages: install the {{AUR|mintlocale}} package.<br />
*To change the keyboard layout: navigate to '''System Settings > Hardware > Keyboard > Layouts'''.<br />
<br />
=== Use a different window manager ===<br />
<br />
Cinnamon does not support using a different window manager.<br />
<br />
== Tips and tricks ==<br />
<br />
=== Creating custom applets ===<br />
<br />
The official tutorial on creating a Cinnamon ''applet'' can be found [http://developer.linuxmint.com/reference/git/cinnamon-tutorials/write-applet.html here].<br />
<br />
=== Default desktop background wallpaper path ===<br />
<br />
When you add a wallpaper from a custom path in Cinnamon Settings, Cinnamon copies it to {{ic|~/.cinnamon/backgrounds}}. Thus, with every change of your wallpaper you would have to add your updated wallpaper again from the settings menu or copy / symlink it manually to {{ic|~/.cinnamon/backgrounds}}.<br />
<br />
=== Show home, filesystem desktop icons ===<br />
<br />
By default Cinnamon starts with desktop icons enabled but with no desktop icons on screen. To show desktop icons for the home folder, the filesystem, the trash, mounted volumes and network servers open Cinnamon settings and click on desktop. Enable the checkboxes of the icons you want to see on screen.<br />
<br />
=== Menu editor ===<br />
<br />
The Menu applet supports launching custom commands. Right click on the applet, click on ''Configure...'' and then ''Open the menu editor''. Select a sub-menu (or create a new one) and select ''New Item''. Set ''Name'', ''Command'' and ''Comment''. Check the launch in terminal checkbox if needed. Leave unchecked for graphical applications. Click ''OK'' and close the menu editor afterwards. The launcher is added to the menu.<br />
<br />
=== Workspaces ===<br />
<br />
A workspace pager can be added to the panel. Right click the panel and choose the option ''Add applets to the panel''. Add the ''Workspace switch'' applet to the panel. To change its position right click on the panel and change the ''Panel edit mode'' on/off switch to on. Click and drag the switcher to the desired position and turn the panel edit mode off when finished.<br />
<br />
By default there are 2 workspaces. To add more, hit {{ic|Control+Alt+Up}} to show all workspaces. Then click on the plus sign button on the right of the screen to add more workspaces.<br />
<br />
Alternatively, you can choose the number by command-line:<br />
<br />
$ gsettings set org.cinnamon.desktop.wm.preferences num-workspaces 4<br />
<br />
Replacing 4 with the number of workspaces you want.<br />
<br />
=== Hide desktop icons ===<br />
<br />
The desktop icons rendering feature is enabled in [[Nemo]] by default. To disable this feature, change the setting with the following command: <br />
<br />
$ gsettings set org.nemo.desktop show-desktop-icons false<br />
<br />
=== Themes and icons ===<br />
<br />
Linux Mint styled themes and icons can be installed with the {{AUR|mint-themes}}, {{AUR|mint-x-icons}}, and {{AUR|mint-y-icons}} packages. The themes can be edited in {{ic|Settings → Themes → Other settings}}.<br />
<br />
Official Linux Mint Cinnamon themes are also included in the {{AUR|mint-themes}} package.<br />
<br />
Setting the desktop theme via shell can be done like this:<br />
<br />
$ gsettings set org.cinnamon.theme name "''Theme-Name''"<br />
<br />
=== Sound events ===<br />
<br />
Cinnamon does not come with sounds used for events like the startup of the desktop that are also used in Linux Mint by default. These sound effects can be installed with the {{AUR|cinnamon-sound-effects}} and {{AUR|mint-sounds}} packages. The sound events can be edited in {{ic|Settings → Sound → Sound Effects}}.<br />
<br />
=== Resize windows by mouse ===<br />
<br />
To resize windows with {{ic|Alt+Right click}}, use {{ic|gsettings}}:<br />
<br />
gsettings set org.cinnamon.desktop.wm.preferences resize-with-right-button true<br />
<br />
=== Portable keybindings ===<br />
<br />
To export your keyboard shortcut keys, you should do:<br />
<br />
dconf dump /org/cinnamon/desktop/keybindings/ >keybindings-backup.dconf<br />
<br />
To later import it (for example) on another computer, do:<br />
<br />
dconf load /org/cinnamon/desktop/keybindings/ <keybindings-backup.dconf<br />
<br />
=== Screenshot ===<br />
<br />
As explained in [[Taking_a_screenshot#Cinnamon|Taking a screenshot]], installing {{Pkg|gnome-screenshot}} will add this functionality. The default shortcut key is {{ic|Prt Sc}} key. This binding can be changed in the applet ''Menu > Preferences > Keyboard'' under ''Shortcuts > System > Screenshots and Recording''. The default save directory is {{ic|$HOME/Pictures}}, but can be customized with eg.<br />
<br />
$ gsettings set org.gnome.gnome-screenshot auto-save-directory file:///home/''USER''/''some_path''<br />
<br />
=== Prevent Cinnamon from overriding xrandr/xinput configuration ===<br />
<br />
The ''cinnamon-settings-daemon'' provides a number of plugins which can manage the display, keyboard and mouse. These plugins will override user set configuration (such as ''xrandr'' commands in the [[xinitrc]] file). To stop user set configuration from being overridden, it is necessary to prevent the settings daemon plugins from being started.<br />
<br />
This can be done by copying the ''.desktop'' entry for the relevant settings daemon plugin (these will be located in {{ic|/etc/xdg/autostart/}}) to {{ic|$HOME/.config/autostart}}. Then append the line {{ic|1=Hidden=true}} to each copied entry.<br />
<br />
{{Tip|Start your session with {{ic|cinnamon-session --debug}} to see which plugins are reported to have been started.}}<br />
<br />
To preserve display, keyboard and mouse settings, consider disabling the following:<br />
<br />
cinnamon-settings-daemon-a11y-keyboard.desktop<br />
cinnamon-settings-daemon-a11y-settings.desktop<br />
cinnamon-settings-daemon-keyboard.desktop<br />
cinnamon-settings-daemon-mouse.desktop<br />
cinnamon-settings-daemon-xrandr.desktop<br />
<br />
== Troubleshooting ==<br />
<br />
=== Debugging ===<br />
<br />
You can use the {{ic|cinnamon-looking-glass}} tool (Melange - Cinnamon Debugger) to inspect various things about the Cinnamon environment:<br />
<br />
* a list of currently-open windows<br />
* a list of currently-loaded extensions (applets, desklets, etc.)<br />
* logs<br />
<br />
The "logs" feature is especially useful if you're encountering crashes (often happening due to extensions no being compatible or buggy).<br />
<br />
=== cinnamon-settings: No module named Image ===<br />
<br />
If ''cinnamon-settings'' does not start with the message that it cannot find a certain module, e.g. the Image module, it is likely that it uses outdated compiled files which refer to no longer existing file locations. In this case remove all {{ic|*.pyc}} files in {{ic|/usr/lib/cinnamon-settings}} and its sub-folders. See the [https://github.com/linuxmint/Cinnamon/issues/2495 upstream bug report].<br />
<br />
=== Video tearing ===<br />
<br />
Because {{Pkg|muffin}} is based upon {{Pkg|mutter}}, video tearing fixes for [[GNOME]] should also work in Cinnamon. See [[GNOME/Troubleshooting#Tear-free video with Intel HD Graphics]] for more information.<br />
<br />
=== Disable the NetworkManager applet ===<br />
<br />
Even if you do not use [[NetworkManager]] and remove the ''Network Manager'' applet from the default panel, Cinnamon will still load ''nm-applet'' and display it in the system tray.<br />
You cannot uninstall the package, because it is required by {{Pkg|cinnamon}} and {{Pkg|cinnamon-control-center}}, but you can still easily disable it. To do so copy the autostart file from {{ic|/etc/xdg/autostart/nm-applet.desktop}} to {{ic|~/.config/autostart/nm-applet.desktop}}. Open it with your favorite text editor and add at the end {{ic|1=X-GNOME-Autostart-enabled=false}}.<br />
<br />
Alternatively you can disable it by creating the following symlink:<br />
<br />
$ ln -s /bin/true /usr/local/bin/nm-applet<br />
<br />
The ability to blacklist particular icons from the system tray (such as the ''nm-applet'' icon) has been [https://github.com/linuxmint/Cinnamon/issues/3318 requested upstream].</div>TheJJhttps://wiki.archlinux.org/index.php?title=Console_fonts&diff=557514Console fonts2018-11-27T01:46:04Z<p>TheJJ: fix redirect to console fonts</p>
<hr />
<div>#REDIRECT [[Linux_console#Fonts]]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Solid_state_drive/NVMe&diff=508788Solid state drive/NVMe2018-01-28T16:57:49Z<p>TheJJ: /* NVME Power Saving Patch */ no longer required as patch went upstream</p>
<hr />
<div>[[Category:Storage]]<br />
[[ja:ソリッドステートドライブ/NVMe]]<br />
{{Related articles start}}<br />
{{Related|Solid State Drives}}<br />
{{Related articles end}}<br />
<br />
NVM Express (NVMe) is a specification for accessing SSDs attached through the PCI Express bus. As a logical device interface, NVM Express has been designed from the ground up, capitalizing on the low latency and parallelism of PCI Express SSDs, and mirroring the parallelism of contemporary CPUs, platforms and applications.<br />
<br />
== Installation ==<br />
<br />
The Linux NVMe driver is natively included in the kernel since version 3.3. NVMe devices should show up under {{ic|/dev/nvme*}}.<br />
<br />
Extra userspace NVMe tools can be found in {{aur|nvme-cli}} or {{aur|nvme-cli-git}}.<br />
<br />
See [[Solid State Drives]] for supported filesystems, maximizing performance, minimizing disk reads/writes, etc.<br />
<br />
== Performance ==<br />
<br />
=== Sector size ===<br />
<br />
See [[Advanced Format#How to determine if HDD employ a 4k sector]].<br />
<br />
=== Discards ===<br />
{{note|Although [[Solid State Drives#Continuous TRIM|continuous TRIM]] is an option (albeit not recommended) for SSDs, '''NVMe devices should not be issued discards'''.}}<br />
<br />
Discards are disabled by default on typical setups that use [[ext4]] and [[LVM]], but other filesystems might need discards to be disabled explicitly.<br />
<br />
Intel, as one device manufacturer, recommends not to enable discards at the filesystem level, but suggests the [[Solid State Drives#Periodic TRIM|periodic TRIM]] method, or apply {{ic|fstrim}} manually.[https://communities.intel.com/thread/75161?start=0&tstart=0]<br />
<br />
=== Airflow ===<br />
<br />
NVMe SSDs are known to be affected by high operating temperatures and will throttle performance over certain thresholds.[http://www.legitreviews.com/samsung-ssd-950-pro-512gb-nvme-pcie-ssd-review_174096/3]<br />
<br />
=== Testing ===<br />
<br />
Raw device performance tests can be run with {{pkg|hdparm}}:<br />
<br />
# hdparm -Tt --direct /dev/nvme0n1<br />
<br />
== Power Saving APST ==<br />
<br />
=== NVME Power Saving Patch ===<br />
<br />
Andy Lutomirski has created a patchset which fixes powersaving for NVME devices in linux. The patch has been merged into mainline kernel v4.11.<br />
<br />
To test if NVME Power Management is working, install {{AUR|nvme-cli}} if running an older kernel, and run {{ic|# nvme get-feature -f 0x0c -H /dev/nvme[0-9]}}.<br />
<br />
When ASPT is enabled the output should contain "Autonomous Power State Transition Enable (APSTE): Enabled" and there should be non-zero entries in the table below indicating the idle time before transitioning into each of the available states.<br />
<br />
If ASPT is enabled but no non-zero states appear in the table, the latencies might be too high for any states to be enabled by default. The output of {{ic|# nvme id-ctrl /dev/nvme[0-9]}} should show the available non-operational power states of the NVME controller. If the total latency of any state (enlat + xlat) is greater than 25000 (25ms) then to enable it you must pass a value at least that high to the {{ic|default_ps_max_latency_us}} option for the {{ic|nvme_core}} module in the boot parameters. This should enable ASPT and make the table in {{ic|# nvme get-feature}} show the entries.<br />
<br />
On 4.13, drive errors can occur (ext4 fs) that cause the system to become unusable. This seems to be the result of a power saving state that the drive (Intel NVMe, in my case) cannot use. Adding the boot parameter nvme_core.default_ps_max_latency_us=5500 disables the lowest power saving state.<br />
<br />
== References ==<br />
* [http://www.intel.com/content/dam/support/us/en/documents/ssdc/data-center-ssds/Intel_Linux_NVMe_Guide_330602-002.pdf Intel Linux NVMe driver reference]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Vim&diff=506956Vim2018-01-12T14:08:52Z<p>TheJJ: /* Clipboard */ more hints towards gvim requirement for clipboard</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Text editors]]<br />
[[de:Vim]]<br />
[[es:Vim]]<br />
[[it:Vim]]<br />
[[ja:Vim]]<br />
[[lt:Vim]]<br />
[[ru:Vim]]<br />
[[zh-hans:Vim]]<br />
[[zh-hant:Vim]]<br />
{{Related articles start}}<br />
{{Related|List of applications/Documents#Vi text editors}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Vim (text editor)|Vim]] is a terminal text editor. It is an extended version of [[Wikipedia:vi|vi]] with additional features, including syntax highlighting, a comprehensive help system, native scripting (vimscript), a visual mode for text selection, and comparison of files (vimdiff).<br />
<br />
== Installation ==<br />
<br />
[[Install]] one of the following packages:<br />
<br />
* {{Pkg|vim}} — with Python 2/3, Lua, Ruby and Perl interpreters support but without GTK/X support.<br />
* {{Pkg|gvim}} — which also provides the same as the above {{ic|vim}} package with GTK/X support.<br />
<br />
{{Note|<br />
* The {{Pkg|vim}} package is built without [[Xorg]] support; specifically the {{ic|+clipboard}} feature is missing, so Vim will not be able to operate with the ''primary'' and ''clipboard'' [[Clipboard|selection buffers]]. The {{Pkg|gvim}} package provides also the CLI version of Vim with the {{ic|+clipboard}} feature.<br />
* The unofficial repository [[Unofficial user repositories#herecura|herecura]] also provides a number of Vim/gVim variants: {{ic|vim-cli}}, {{ic|vim-gvim-common}}, {{ic|vim-gvim-gtk}}, {{ic|vim-gvim-qt}}, {{ic|vim-rt}} and {{ic|vim-tiny}}.<br />
}}<br />
<br />
== Usage ==<br />
<br />
For a basic overview on how to use Vim, follow the vim tutorial by running either ''vimtutor'' (for the terminal version) or ''gvimtutor'' (for the graphical version).<br />
<br />
Vim includes a broad help system that can be accessed with the {{ic|:h ''subject''}} command. Subjects include commands, configuration options, key bindings, plugins etc. Use the {{ic|:h}} command (without any subject) for information about the help system and jumping between subjects.<br />
<br />
== Configuration ==<br />
<br />
Vim's user-specific configuration file is located in the home directory: {{ic|~/.vimrc}}, and Vim files of current user are located inside {{ic|~/.vim/}}. The global configuration file is located at {{ic|/etc/vimrc}}. Global Vim files are located inside {{ic|/usr/share/vim/}}.<br />
<br />
{{Note|Commonly expected behavior such as syntax highlighting is enabled in {{ic|defaults.vim}}, which is loaded when no {{ic|~/.vimrc}} is present. Add {{ic|1=let skip_defaults_vim=1}} to {{ic|/etc/vimrc}} to disable loading of {{ic|defaults.vim}} completely. [https://github.com/vim/vim/issues/1033]}}<br />
<br />
=== Clipboard ===<br />
<br />
Vim commands such as {{ic|:yank}} or {{ic|:paste}} operate with the unnamed register, which by default corresponds to the {{ic|"*}} register. If the {{ic|+clipboard}} feature is available (only in {{ic|vim}} shipped with {{Pkg|gvim}}!), the {{ic|"*}} register is reflected to the {{ic|PRIMARY}} buffer in X. See also the [[#Using_the_mouse|Mouse Section]].<br />
<br />
To change the default register, you can {{ic|1=:set clipboard=unnamedplus}} to use the {{ic|"+}} register instead. The {{ic|"+}} register corresponds to the {{ic|CLIPBOARD}} buffer in X.<br />
<br />
For more information, see {{ic|:help 'clipboard'}}.<br />
<br />
{{Tip|Custom shortcuts for copy and paste operations can be created. See e.g. [http://superuser.com/a/189198] for binding {{ic|ctrl+c}}, {{ic|ctrl+v}} and {{ic|ctrl+x}}.}}<br />
<br />
=== Syntax highlighting ===<br />
<br />
To enable syntax highlighting (Vim supports a huge list of programming languages):<br />
<br />
:filetype plugin on<br />
:syntax on<br />
<br />
=== Visual wrapping ===<br />
<br />
The {{ic|wrap}} option is on by default, which instructs Vim to wrap lines longer than the width of the window, so that the rest of the line is displayed on the next line. The {{ic|wrap}} option only affects how text is displayed, the text itself is not modified.<br />
<br />
The wrapping normally occurs after the last character that fits the window, even when it is in the middle of a word. More intelligent wrapping can be controlled with the {{ic|linebreak}} option. When it is enabled with {{ic|set linebreak}}, the wrapping occurs after characters listed in the {{ic|breakat}} string option, which by default contains a space and some punctuation marks (see {{ic|:help breakat}}).<br />
<br />
Wrapped lines are normally displayed at the beginning of the next line, regardless of any indentation. The [https://retracile.net/wiki/VimBreakIndent breakindent] option instructs Vim to take indentation into account when wrapping long lines, so that the wrapped lines keep the same indentation of the previously displayed line. The behaviour of {{ic|breakindent}} can be fine-tuned with the {{ic|breakindentopt}} option, for example to shift the wrapped line another four spaces to the right for Python files (see {{ic|:help breakindentopt}} for details):<br />
<br />
autocmd FileType python set breakindentopt=shift:4<br />
<br />
=== Using the mouse ===<br />
<br />
Vim has the ability to make use of the mouse, but it only works for certain terminals:<br />
* [[xterm]]/[[urxvt]]-based terminal emulators<br />
* Linux console with {{Pkg|gpm}} (see [[Console mouse support]] for details)<br />
* [[PuTTY]]<br />
<br />
<br />
To enable mouse passthrough (and clipboard, if available), add this line into {{ic|~/.vimrc}}:<br />
<br />
set mouse=a<br />
<br />
The {{ic|1=mouse=a}} option is set in {{ic|defaults.vim}}, which is sourced if there is no {{ic|~/.vimrc}}.<br />
<br />
<br />
{{Note|X Clipboard synchronization with the terminal only works when you use {{Pkg|gvim}} that has the {{ic|+clipboard}}/{{ic|+xterm_clipboard}} feature (see {{ic|vim --version}})!<br />
Copy/paste will use the {{ic|"*}} register if there is access to an X server. The xterm handling of the mouse buttons can still be used by keeping the {{ic|shift key}} pressed. <br />
}}<br />
<br />
=== Traverse line breaks with arrow keys ===<br />
<br />
By default, pressing {{ic|←}} at the beginning of a line, or pressing {{ic|→}} at the end of a line, will not let the cursor traverse to the previous, or following, line.<br />
<br />
The default behavior can be changed by adding {{ic|1=set whichwrap=b,s,<,>,[,]}} to your {{ic|~/.vimrc}} file.<br />
<br />
== Merging files ==<br />
<br />
Vim includes a diff editor (a program that shows differences between two or more files and aids to conveniently merge them). Use ''vimdiff'' to run the diff editor — just specify some couple of files to it: {{ic|vimdiff ''file1'' ''file2''}}. Here is the list of ''vimdiff''-specific commands.<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next change || {{ic|]c}}<br />
|-<br />
| previous change || {{ic|[c}}<br />
|-<br />
| diff obtain || {{ic|do}}<br />
|-<br />
| diff put || {{ic|dp}}<br />
|-<br />
| fold open || {{ic|zo}}<br />
|-<br />
| fold close || {{ic|zc}}<br />
|-<br />
| rescan files || {{ic|:diffupdate}}<br />
|}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Line numbers ===<br />
<br />
To show the line number column, use {{ic|:set number}}. By default absolute line numbers are shown, relative numbers can be enabled with {{ic|:set relativenumber}}.<br />
<br />
Jumping to a specific line is possible with {{ic|:''line number''}} or {{ic|''line number''gg}}. Jumps are remembered in a jump list, see {{ic|:h jump-motions}} for details.<br />
<br />
=== Spell checking ===<br />
<br />
Vim has the ability to do spell checking, enable by entering:<br />
<br />
set spell<br />
<br />
By default, only English language dictionaries are installed. More dictionaries can be found in the [[official repositories]] by searching for {{ic|vim-spell}}. Additional dictionaries can be found in the [http://ftp.vim.org/vim/runtime/spell/ Vim's FTP archive]. Additional dictionaries can be put in the folder {{ic|~/.vim/spell/}} and enabled with the command: {{ic|1=:setlocal spell spelllang=''en_us''}} (replacing the {{ic|''en_us''}} with the name of the needed dictionary).<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next spelling || {{ic|]s}}<br />
|-<br />
| previous spelling || {{ic|[s}}<br />
|-<br />
| spelling suggestions || {{ic|1=z=}}<br />
|-<br />
| spelling good, add || {{ic|zg}}<br />
|-<br />
| spelling good, session || {{ic|zG}}<br />
|-<br />
| spelling wrong, add || {{ic|zw}}<br />
|-<br />
| spelling wrong, session || {{ic|zW}}<br />
|-<br />
| spelling repeat all in file || {{ic|:spellr}}<br />
|}<br />
<br />
{{Tip|<br />
* To enable spelling in two languages (for instance English and German), add {{ic|1=set spelllang=''en,de''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* You can enable spell checking for arbitrary file types (e.g. ''.txt'') by using the FileType plugin and a custom rule for file type detection. To enable spell checking for any file ending with ''.txt'', create the file {{ic|/usr/share/vim/vimfiles/ftdetect/plaintext.vim}}, and insert the line {{ic|autocmd BufRead,BufNewFile *.txt setfiletype plaintext}} into that file. Next, insert the line {{ic|1=autocmd FileType plaintext setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* To enable spell checking for LaTeX (or TeX) documents only, add {{ic|1=autocmd FileType '''tex''' setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.}}<br />
<br />
=== Save cursor position ===<br />
<br />
If you want the cursor to [http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session appear in its previous position] after you open a file, add the following to your {{ic|~/.vimrc}}:<br />
<br />
augroup resCur<br />
autocmd!<br />
autocmd BufReadPost * call setpos(".", getpos("'\""))<br />
augroup END<br />
<br />
=== Replace vi command with Vim ===<br />
<br />
Create an [[alias]] for {{ic|vi}} to {{ic|vim}}.<br />
<br />
Alternatively, if you want to be able to type {{ic|sudo vi}} and get {{ic|vim}}, install {{AUR|vi-vim-symlink}} which will remove {{ic|vi}} and replace it with a symlink to {{ic|vim}}.<br />
<br />
=== DOS/Windows carriage returns ===<br />
<br />
If there is a {{ic|^M}} at the end of each line then this means you are editing a text file which was created in MS-DOS or Windows. This is because in Linux only a single line feed character (LF) used for line break, but in Windows/MS DOS systems they are using a sequence of a carriage return (CR) and a line feed (LF) for the same. And this carriage returns are displayed as {{ic|^M}}.<br />
<br />
To remove all carriage returns from a file do:<br />
<br />
:%s/^M//g<br />
<br />
Note that there {{ic|^}} is a control letter. To enter the control sequence {{ic|^M}} press {{ic|Ctrl+v,Ctrl+m}}.<br />
<br />
Alternatively install the package {{pkg|dos2unix}} and run {{ic|dos2unix ''file''}} to fix the file.<br />
<br />
{{Note| Another simple way is by changing {{ic|fileformat}} setting. {{ic|<nowiki>set ff=unix</nowiki>}} to convert files with DOS/Windows line ending to Unix line ending. To do the reverse, just issue {{ic|<nowiki>set ff=dos</nowiki>}} to convert files with Unix line ending to DOS/Windows line ending. }}<br />
<br />
=== Empty space at the bottom of gVim windows ===<br />
<br />
When using a [[window manager]] configured to ignore window size hints, gVim will fill the non-functional area with the GTK theme background color.<br />
<br />
The solution is to adjust how much space gVim reserves at the bottom of the window. Put the following line in {{ic|~/.vimrc}}:<br />
<br />
set guiheadroom=0<br />
<br />
{{Note|If you set it to zero, you will not be able to see the bottom horizontal scrollbar.}}<br />
<br />
== Plugins ==<br />
<br />
Adding plugins to Vim can increase your productivity. Plugins can alter Vim's UI, add new commands, code completion support, integrate other programs and utilities with Vim, add support for additional languages and more.<br />
<br />
{{Tip|For a list of popular plugins, see [http://vimawesome.com/ Vim Awesome]}}<br />
<br />
=== Installation ===<br />
<br />
==== Using the built-in package manager ====<br />
<br />
Vim 8 added the possibility to load natively third-party plugins. It is possible to use this functionality by storing third-party packages in {{ic|~/.vim/pack/foo}}.<br />
<br />
==== Using a plugin manager ====<br />
<br />
A plugin manager allows to install and manage Vim plugins in a similar way independently on which platform you are running Vim. It is a plugin that acts as a package manager for other Vim plugins.<br />
<br />
* [https://github.com/gmarik/Vundle.vim Vundle] is currently the most popular plugin manager for Vim.<br />
* [https://github.com/junegunn/vim-plug Vim-plug] is a minimalist Vim plugin manager with many features like on-demand plugin loading and parallel updating.<br />
* [https://github.com/tpope/vim-pathogen pathogen.vim] is a simple plugin for managing Vim's runtimepath.<br />
* [https://github.com/Shougo/dein.vim Dein.vim] is a plugin manager replacing [https://github.com/Shougo/neobundle.vim NeoBundle], available as {{AUR|vim-dein-git}}.<br />
<br />
==== From Arch repositories ====<br />
<br />
The {{Grp|vim-plugins}} group provides many various plugins. Use {{ic|pacman -Sg vim-plugins}} command to list available packages which you can then [[install]] with pacman.<br />
<br />
=== cscope ===<br />
<br />
[http://cscope.sourceforge.net/ Cscope] is a tool for browsing a project. By navigating to a word/symbol/function and calling cscope (usually with shortcut keys) it can find: functions calling the function, the function definition, and more.<br />
<br />
[[Install]] the {{Pkg|cscope}} package.<br />
<br />
Copy the cscope default file where it will be automatically read by Vim:<br />
<br />
mkdir -p ~/.vim/plugin<br />
wget -P ~/.vim/plugin http://cscope.sourceforge.net/cscope_maps.vim<br />
<br />
{{Note|You will probably need to uncomment these lines in {{ic|~/.vim/plugin/cscope_maps.vim}} in order to enable cscope shortcuts in Vim 7.x:<br />
{{bc|1=<br />
set timeoutlen=4000<br />
set ttimeout<br />
}}}}<br />
<br />
Create a file which contains the list of files you wish cscope to index (cscope can handle many languages but this example finds ''.c'', ''.cpp'' and ''.h'' files, specific for C/C++ project):<br />
<br />
cd ''/path/to/project/dir''<br />
find . -type f -print | grep -E '\.(c(pp)?|h)$' > cscope.files<br />
<br />
Create database files that cscope will read:<br />
<br />
cscope -bq<br />
<br />
{{Note|You must browse your project files from this location or set and export the {{ic|$CSCOPE_DB}} variable, pointing it to the {{ic|cscope.out}} file.}}<br />
<br />
Default keyboard shortcuts:<br />
<br />
Ctrl-\ and<br />
c: Find functions calling this function<br />
d: Find functions called by this function<br />
e: Find this egrep pattern<br />
f: Find this file<br />
g: Find this definition<br />
i: Find files #including this file<br />
s: Find this C symbol<br />
t: Find assignments to<br />
<br />
Feel free to change the shortcuts.<br />
<br />
#Maps ctrl-c to find functions calling the function<br />
nnoremap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR><br />
<br />
=== Taglist ===<br />
<br />
[http://vim-taglist.sourceforge.net/ Taglist] provides an overview of the structure of source code files and allows you to efficiently browse through source code files in different programming languages.<br />
<br />
[[Install]] the {{Pkg|vim-taglist}} package.<br />
<br />
Useful options to be put in {{ic|~/.vimrc}}:<br />
<br />
let Tlist_Compact_Format = 1<br />
let Tlist_GainFocus_On_ToggleOpen = 1<br />
let Tlist_Close_On_Select = 1<br />
nnoremap <C-l> :TlistToggle<CR><br />
<br />
== See also ==<br />
<br />
=== Official ===<br />
<br />
* [http://www.vim.org/ Homepage]<br />
* [http://vimdoc.sourceforge.net/ Documentation]<br />
* [http://vim.wikia.com Vim Wiki]<br />
* [http://www.vim.org/scripts/ Vim Scripts]<br />
<br />
=== Tutorials ===<br />
<br />
* [https://danielmiessler.com/study/vim/ vim Tutorial and Primer]<br />
* [http://usalug.org/vi.html vi Tutorial and Reference Guide]<br />
* [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html Graphical vi-Vim Cheat Sheet and Tutorial]<br />
* [http://blog.interlinked.org/tutorials/vim_tutorial.html Vim Introduction and Tutorial]<br />
* [http://www.openvim.com/ Open Vim] — collection of Vim learning tools<br />
* [http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ Learn Vim Progressively]<br />
* [http://benmccormick.org/learning-vim-in-2014/ Learning Vim in 2014]<br />
* [http://www.moolenaar.net/habits.html Seven habits of effective text editing]<br />
* [http://bencrowder.net/files/vim-fu/ Basic Vim Tips]<br />
* [http://www.gentoo-wiki.info/HOWTO_VIM HOWTO Vim]<br />
<br />
==== Videos ====<br />
<br />
* [http://vimcasts.org/ Vimcasts] — screencasts in ''.ogg'' format.<br />
* [http://derekwyatt.org/vim/tutorials/ Vim Tutorial Videos] — covering the basics up to advanced topics.<br />
<br />
==== Games ====<br />
<br />
* [http://vim-adventures.com/ Vim Adventures]<br />
* [http://vimgolf.com/ VimGolf]<br />
<br />
=== Configuration ===<br />
<br />
* [https://web.archive.org/web/20131020125020/http://nion.modprobe.de/setup/vimrc nion's]<br />
* [http://amix.dk/vim/vimrc.html A detailed configuration from Amir Salihefendic]<br />
* [https://web.archive.org/web/20131004071740/http://www.jukie.net/~bart/conf/vimrc Bart Trojanowski]<br />
* [https://github.com/spf13/spf13-vim Steve Francia's Vim Distribution]<br />
* [http://vimawesome.com/ Vim Awesome] - Vim Plugins<br />
* [https://github.com/W4RH4WK/dotVim W4RH4WK's Vim configuration]<br />
* [https://www.askapache.com/linux/fast-vimrc/ Fast vimrc/colorscheme from askapache]<br />
* [https://gist.github.com/anonymous/c966c0757f62b451bffa Basic vimrc]<br />
* [http://www.usevim.com/ Usevim]<br />
<br />
==== Colors ====<br />
<br />
* [http://bytefluent.com/vivify/ Vivify]<br />
* [https://linuxtidbits.wordpress.com/2014/10/14/vim-customize-installed-colorschemes/ Vim colorscheme customization]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Vim&diff=506955Vim2018-01-12T14:05:40Z<p>TheJJ: /* Using the mouse */ add more hints that gvim is required for clipboard sharing</p>
<hr />
<div>[[Category:Development]]<br />
[[Category:Text editors]]<br />
[[de:Vim]]<br />
[[es:Vim]]<br />
[[it:Vim]]<br />
[[ja:Vim]]<br />
[[lt:Vim]]<br />
[[ru:Vim]]<br />
[[zh-hans:Vim]]<br />
[[zh-hant:Vim]]<br />
{{Related articles start}}<br />
{{Related|List of applications/Documents#Vi text editors}}<br />
{{Related articles end}}<br />
<br />
[[Wikipedia:Vim (text editor)|Vim]] is a terminal text editor. It is an extended version of [[Wikipedia:vi|vi]] with additional features, including syntax highlighting, a comprehensive help system, native scripting (vimscript), a visual mode for text selection, and comparison of files (vimdiff).<br />
<br />
== Installation ==<br />
<br />
[[Install]] one of the following packages:<br />
<br />
* {{Pkg|vim}} — with Python 2/3, Lua, Ruby and Perl interpreters support but without GTK/X support.<br />
* {{Pkg|gvim}} — which also provides the same as the above {{ic|vim}} package with GTK/X support.<br />
<br />
{{Note|<br />
* The {{Pkg|vim}} package is built without [[Xorg]] support; specifically the {{ic|+clipboard}} feature is missing, so Vim will not be able to operate with the ''primary'' and ''clipboard'' [[Clipboard|selection buffers]]. The {{Pkg|gvim}} package provides also the CLI version of Vim with the {{ic|+clipboard}} feature.<br />
* The unofficial repository [[Unofficial user repositories#herecura|herecura]] also provides a number of Vim/gVim variants: {{ic|vim-cli}}, {{ic|vim-gvim-common}}, {{ic|vim-gvim-gtk}}, {{ic|vim-gvim-qt}}, {{ic|vim-rt}} and {{ic|vim-tiny}}.<br />
}}<br />
<br />
== Usage ==<br />
<br />
For a basic overview on how to use Vim, follow the vim tutorial by running either ''vimtutor'' (for the terminal version) or ''gvimtutor'' (for the graphical version).<br />
<br />
Vim includes a broad help system that can be accessed with the {{ic|:h ''subject''}} command. Subjects include commands, configuration options, key bindings, plugins etc. Use the {{ic|:h}} command (without any subject) for information about the help system and jumping between subjects.<br />
<br />
== Configuration ==<br />
<br />
Vim's user-specific configuration file is located in the home directory: {{ic|~/.vimrc}}, and Vim files of current user are located inside {{ic|~/.vim/}}. The global configuration file is located at {{ic|/etc/vimrc}}. Global Vim files are located inside {{ic|/usr/share/vim/}}.<br />
<br />
{{Note|Commonly expected behavior such as syntax highlighting is enabled in {{ic|defaults.vim}}, which is loaded when no {{ic|~/.vimrc}} is present. Add {{ic|1=let skip_defaults_vim=1}} to {{ic|/etc/vimrc}} to disable loading of {{ic|defaults.vim}} completely. [https://github.com/vim/vim/issues/1033]}}<br />
<br />
=== Clipboard ===<br />
<br />
Vim commands such as {{ic|:yank}} or {{ic|:paste}} operate with the unnamed register, which by default corresponds to the {{ic|"*}} register. If the {{ic|+clipboard}} feature is available, the {{ic|"*}} register is reflected to the {{ic|PRIMARY}} buffer in X.<br />
<br />
To change the default register, you can {{ic|1=:set clipboard=unnamedplus}} to use the {{ic|"+}} register instead. The {{ic|"+}} register corresponds to the {{ic|CLIPBOARD}} buffer in X.<br />
<br />
For more information, see {{ic|:help 'clipboard'}}.<br />
<br />
{{Tip|Custom shortcuts for copy and paste operations can be created. See e.g. [http://superuser.com/a/189198] for binding {{ic|ctrl+c}}, {{ic|ctrl+v}} and {{ic|ctrl+x}}.}}<br />
<br />
=== Syntax highlighting ===<br />
<br />
To enable syntax highlighting (Vim supports a huge list of programming languages):<br />
<br />
:filetype plugin on<br />
:syntax on<br />
<br />
=== Visual wrapping ===<br />
<br />
The {{ic|wrap}} option is on by default, which instructs Vim to wrap lines longer than the width of the window, so that the rest of the line is displayed on the next line. The {{ic|wrap}} option only affects how text is displayed, the text itself is not modified.<br />
<br />
The wrapping normally occurs after the last character that fits the window, even when it is in the middle of a word. More intelligent wrapping can be controlled with the {{ic|linebreak}} option. When it is enabled with {{ic|set linebreak}}, the wrapping occurs after characters listed in the {{ic|breakat}} string option, which by default contains a space and some punctuation marks (see {{ic|:help breakat}}).<br />
<br />
Wrapped lines are normally displayed at the beginning of the next line, regardless of any indentation. The [https://retracile.net/wiki/VimBreakIndent breakindent] option instructs Vim to take indentation into account when wrapping long lines, so that the wrapped lines keep the same indentation of the previously displayed line. The behaviour of {{ic|breakindent}} can be fine-tuned with the {{ic|breakindentopt}} option, for example to shift the wrapped line another four spaces to the right for Python files (see {{ic|:help breakindentopt}} for details):<br />
<br />
autocmd FileType python set breakindentopt=shift:4<br />
<br />
=== Using the mouse ===<br />
<br />
Vim has the ability to make use of the mouse, but it only works for certain terminals:<br />
* [[xterm]]/[[urxvt]]-based terminal emulators<br />
* Linux console with {{Pkg|gpm}} (see [[Console mouse support]] for details)<br />
* [[PuTTY]]<br />
<br />
<br />
To enable mouse passthrough (and clipboard, if available), add this line into {{ic|~/.vimrc}}:<br />
<br />
set mouse=a<br />
<br />
The {{ic|1=mouse=a}} option is set in {{ic|defaults.vim}}, which is sourced if there is no {{ic|~/.vimrc}}.<br />
<br />
<br />
{{Note|X Clipboard synchronization with the terminal only works when you use {{Pkg|gvim}} that has the {{ic|+clipboard}}/{{ic|+xterm_clipboard}} feature (see {{ic|vim --version}})!<br />
Copy/paste will use the {{ic|"*}} register if there is access to an X server. The xterm handling of the mouse buttons can still be used by keeping the {{ic|shift key}} pressed. <br />
}}<br />
<br />
=== Traverse line breaks with arrow keys ===<br />
<br />
By default, pressing {{ic|←}} at the beginning of a line, or pressing {{ic|→}} at the end of a line, will not let the cursor traverse to the previous, or following, line.<br />
<br />
The default behavior can be changed by adding {{ic|1=set whichwrap=b,s,<,>,[,]}} to your {{ic|~/.vimrc}} file.<br />
<br />
== Merging files ==<br />
<br />
Vim includes a diff editor (a program that shows differences between two or more files and aids to conveniently merge them). Use ''vimdiff'' to run the diff editor — just specify some couple of files to it: {{ic|vimdiff ''file1'' ''file2''}}. Here is the list of ''vimdiff''-specific commands.<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next change || {{ic|]c}}<br />
|-<br />
| previous change || {{ic|[c}}<br />
|-<br />
| diff obtain || {{ic|do}}<br />
|-<br />
| diff put || {{ic|dp}}<br />
|-<br />
| fold open || {{ic|zo}}<br />
|-<br />
| fold close || {{ic|zc}}<br />
|-<br />
| rescan files || {{ic|:diffupdate}}<br />
|}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Line numbers ===<br />
<br />
To show the line number column, use {{ic|:set number}}. By default absolute line numbers are shown, relative numbers can be enabled with {{ic|:set relativenumber}}.<br />
<br />
Jumping to a specific line is possible with {{ic|:''line number''}} or {{ic|''line number''gg}}. Jumps are remembered in a jump list, see {{ic|:h jump-motions}} for details.<br />
<br />
=== Spell checking ===<br />
<br />
Vim has the ability to do spell checking, enable by entering:<br />
<br />
set spell<br />
<br />
By default, only English language dictionaries are installed. More dictionaries can be found in the [[official repositories]] by searching for {{ic|vim-spell}}. Additional dictionaries can be found in the [http://ftp.vim.org/vim/runtime/spell/ Vim's FTP archive]. Additional dictionaries can be put in the folder {{ic|~/.vim/spell/}} and enabled with the command: {{ic|1=:setlocal spell spelllang=''en_us''}} (replacing the {{ic|''en_us''}} with the name of the needed dictionary).<br />
<br />
{| class="wikitable"<br />
! Action !! Shortcut<br />
|-<br />
| next spelling || {{ic|]s}}<br />
|-<br />
| previous spelling || {{ic|[s}}<br />
|-<br />
| spelling suggestions || {{ic|1=z=}}<br />
|-<br />
| spelling good, add || {{ic|zg}}<br />
|-<br />
| spelling good, session || {{ic|zG}}<br />
|-<br />
| spelling wrong, add || {{ic|zw}}<br />
|-<br />
| spelling wrong, session || {{ic|zW}}<br />
|-<br />
| spelling repeat all in file || {{ic|:spellr}}<br />
|}<br />
<br />
{{Tip|<br />
* To enable spelling in two languages (for instance English and German), add {{ic|1=set spelllang=''en,de''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* You can enable spell checking for arbitrary file types (e.g. ''.txt'') by using the FileType plugin and a custom rule for file type detection. To enable spell checking for any file ending with ''.txt'', create the file {{ic|/usr/share/vim/vimfiles/ftdetect/plaintext.vim}}, and insert the line {{ic|autocmd BufRead,BufNewFile *.txt setfiletype plaintext}} into that file. Next, insert the line {{ic|1=autocmd FileType plaintext setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.<br />
* To enable spell checking for LaTeX (or TeX) documents only, add {{ic|1=autocmd FileType '''tex''' setlocal spell spelllang=''en_us''}} into your {{ic|~/.vimrc}} or {{ic|/etc/vimrc}}, and then restart Vim.}}<br />
<br />
=== Save cursor position ===<br />
<br />
If you want the cursor to [http://vim.wikia.com/wiki/Restore_cursor_to_file_position_in_previous_editing_session appear in its previous position] after you open a file, add the following to your {{ic|~/.vimrc}}:<br />
<br />
augroup resCur<br />
autocmd!<br />
autocmd BufReadPost * call setpos(".", getpos("'\""))<br />
augroup END<br />
<br />
=== Replace vi command with Vim ===<br />
<br />
Create an [[alias]] for {{ic|vi}} to {{ic|vim}}.<br />
<br />
Alternatively, if you want to be able to type {{ic|sudo vi}} and get {{ic|vim}}, install {{AUR|vi-vim-symlink}} which will remove {{ic|vi}} and replace it with a symlink to {{ic|vim}}.<br />
<br />
=== DOS/Windows carriage returns ===<br />
<br />
If there is a {{ic|^M}} at the end of each line then this means you are editing a text file which was created in MS-DOS or Windows. This is because in Linux only a single line feed character (LF) used for line break, but in Windows/MS DOS systems they are using a sequence of a carriage return (CR) and a line feed (LF) for the same. And this carriage returns are displayed as {{ic|^M}}.<br />
<br />
To remove all carriage returns from a file do:<br />
<br />
:%s/^M//g<br />
<br />
Note that there {{ic|^}} is a control letter. To enter the control sequence {{ic|^M}} press {{ic|Ctrl+v,Ctrl+m}}.<br />
<br />
Alternatively install the package {{pkg|dos2unix}} and run {{ic|dos2unix ''file''}} to fix the file.<br />
<br />
{{Note| Another simple way is by changing {{ic|fileformat}} setting. {{ic|<nowiki>set ff=unix</nowiki>}} to convert files with DOS/Windows line ending to Unix line ending. To do the reverse, just issue {{ic|<nowiki>set ff=dos</nowiki>}} to convert files with Unix line ending to DOS/Windows line ending. }}<br />
<br />
=== Empty space at the bottom of gVim windows ===<br />
<br />
When using a [[window manager]] configured to ignore window size hints, gVim will fill the non-functional area with the GTK theme background color.<br />
<br />
The solution is to adjust how much space gVim reserves at the bottom of the window. Put the following line in {{ic|~/.vimrc}}:<br />
<br />
set guiheadroom=0<br />
<br />
{{Note|If you set it to zero, you will not be able to see the bottom horizontal scrollbar.}}<br />
<br />
== Plugins ==<br />
<br />
Adding plugins to Vim can increase your productivity. Plugins can alter Vim's UI, add new commands, code completion support, integrate other programs and utilities with Vim, add support for additional languages and more.<br />
<br />
{{Tip|For a list of popular plugins, see [http://vimawesome.com/ Vim Awesome]}}<br />
<br />
=== Installation ===<br />
<br />
==== Using the built-in package manager ====<br />
<br />
Vim 8 added the possibility to load natively third-party plugins. It is possible to use this functionality by storing third-party packages in {{ic|~/.vim/pack/foo}}.<br />
<br />
==== Using a plugin manager ====<br />
<br />
A plugin manager allows to install and manage Vim plugins in a similar way independently on which platform you are running Vim. It is a plugin that acts as a package manager for other Vim plugins.<br />
<br />
* [https://github.com/gmarik/Vundle.vim Vundle] is currently the most popular plugin manager for Vim.<br />
* [https://github.com/junegunn/vim-plug Vim-plug] is a minimalist Vim plugin manager with many features like on-demand plugin loading and parallel updating.<br />
* [https://github.com/tpope/vim-pathogen pathogen.vim] is a simple plugin for managing Vim's runtimepath.<br />
* [https://github.com/Shougo/dein.vim Dein.vim] is a plugin manager replacing [https://github.com/Shougo/neobundle.vim NeoBundle], available as {{AUR|vim-dein-git}}.<br />
<br />
==== From Arch repositories ====<br />
<br />
The {{Grp|vim-plugins}} group provides many various plugins. Use {{ic|pacman -Sg vim-plugins}} command to list available packages which you can then [[install]] with pacman.<br />
<br />
=== cscope ===<br />
<br />
[http://cscope.sourceforge.net/ Cscope] is a tool for browsing a project. By navigating to a word/symbol/function and calling cscope (usually with shortcut keys) it can find: functions calling the function, the function definition, and more.<br />
<br />
[[Install]] the {{Pkg|cscope}} package.<br />
<br />
Copy the cscope default file where it will be automatically read by Vim:<br />
<br />
mkdir -p ~/.vim/plugin<br />
wget -P ~/.vim/plugin http://cscope.sourceforge.net/cscope_maps.vim<br />
<br />
{{Note|You will probably need to uncomment these lines in {{ic|~/.vim/plugin/cscope_maps.vim}} in order to enable cscope shortcuts in Vim 7.x:<br />
{{bc|1=<br />
set timeoutlen=4000<br />
set ttimeout<br />
}}}}<br />
<br />
Create a file which contains the list of files you wish cscope to index (cscope can handle many languages but this example finds ''.c'', ''.cpp'' and ''.h'' files, specific for C/C++ project):<br />
<br />
cd ''/path/to/project/dir''<br />
find . -type f -print | grep -E '\.(c(pp)?|h)$' > cscope.files<br />
<br />
Create database files that cscope will read:<br />
<br />
cscope -bq<br />
<br />
{{Note|You must browse your project files from this location or set and export the {{ic|$CSCOPE_DB}} variable, pointing it to the {{ic|cscope.out}} file.}}<br />
<br />
Default keyboard shortcuts:<br />
<br />
Ctrl-\ and<br />
c: Find functions calling this function<br />
d: Find functions called by this function<br />
e: Find this egrep pattern<br />
f: Find this file<br />
g: Find this definition<br />
i: Find files #including this file<br />
s: Find this C symbol<br />
t: Find assignments to<br />
<br />
Feel free to change the shortcuts.<br />
<br />
#Maps ctrl-c to find functions calling the function<br />
nnoremap <C-c> :cs find c <C-R>=expand("<cword>")<CR><CR><br />
<br />
=== Taglist ===<br />
<br />
[http://vim-taglist.sourceforge.net/ Taglist] provides an overview of the structure of source code files and allows you to efficiently browse through source code files in different programming languages.<br />
<br />
[[Install]] the {{Pkg|vim-taglist}} package.<br />
<br />
Useful options to be put in {{ic|~/.vimrc}}:<br />
<br />
let Tlist_Compact_Format = 1<br />
let Tlist_GainFocus_On_ToggleOpen = 1<br />
let Tlist_Close_On_Select = 1<br />
nnoremap <C-l> :TlistToggle<CR><br />
<br />
== See also ==<br />
<br />
=== Official ===<br />
<br />
* [http://www.vim.org/ Homepage]<br />
* [http://vimdoc.sourceforge.net/ Documentation]<br />
* [http://vim.wikia.com Vim Wiki]<br />
* [http://www.vim.org/scripts/ Vim Scripts]<br />
<br />
=== Tutorials ===<br />
<br />
* [https://danielmiessler.com/study/vim/ vim Tutorial and Primer]<br />
* [http://usalug.org/vi.html vi Tutorial and Reference Guide]<br />
* [http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html Graphical vi-Vim Cheat Sheet and Tutorial]<br />
* [http://blog.interlinked.org/tutorials/vim_tutorial.html Vim Introduction and Tutorial]<br />
* [http://www.openvim.com/ Open Vim] — collection of Vim learning tools<br />
* [http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ Learn Vim Progressively]<br />
* [http://benmccormick.org/learning-vim-in-2014/ Learning Vim in 2014]<br />
* [http://www.moolenaar.net/habits.html Seven habits of effective text editing]<br />
* [http://bencrowder.net/files/vim-fu/ Basic Vim Tips]<br />
* [http://www.gentoo-wiki.info/HOWTO_VIM HOWTO Vim]<br />
<br />
==== Videos ====<br />
<br />
* [http://vimcasts.org/ Vimcasts] — screencasts in ''.ogg'' format.<br />
* [http://derekwyatt.org/vim/tutorials/ Vim Tutorial Videos] — covering the basics up to advanced topics.<br />
<br />
==== Games ====<br />
<br />
* [http://vim-adventures.com/ Vim Adventures]<br />
* [http://vimgolf.com/ VimGolf]<br />
<br />
=== Configuration ===<br />
<br />
* [https://web.archive.org/web/20131020125020/http://nion.modprobe.de/setup/vimrc nion's]<br />
* [http://amix.dk/vim/vimrc.html A detailed configuration from Amir Salihefendic]<br />
* [https://web.archive.org/web/20131004071740/http://www.jukie.net/~bart/conf/vimrc Bart Trojanowski]<br />
* [https://github.com/spf13/spf13-vim Steve Francia's Vim Distribution]<br />
* [http://vimawesome.com/ Vim Awesome] - Vim Plugins<br />
* [https://github.com/W4RH4WK/dotVim W4RH4WK's Vim configuration]<br />
* [https://www.askapache.com/linux/fast-vimrc/ Fast vimrc/colorscheme from askapache]<br />
* [https://gist.github.com/anonymous/c966c0757f62b451bffa Basic vimrc]<br />
* [http://www.usevim.com/ Usevim]<br />
<br />
==== Colors ====<br />
<br />
* [http://bytefluent.com/vivify/ Vivify]<br />
* [https://linuxtidbits.wordpress.com/2014/10/14/vim-customize-installed-colorschemes/ Vim colorscheme customization]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Steam/Game-specific_troubleshooting&diff=505705Steam/Game-specific troubleshooting2018-01-01T17:35:45Z<p>TheJJ: /* Game crashes nearly instantly */ startupmovie disabling solution</p>
<hr />
<div>[[Category:Gaming]]<br />
[[ja:Steam/ゲーム別のトラブルシューティング]]<br />
See [[Steam]] for the main article, and [[Steam/Troubleshooting]] for generic troubleshooting.<br />
<br />
{{Note|[[Steam]] installs library dependencies of a game to a library directory, but some are missing at the moment. Report bugs involving missing libraries on Valve's bug tracker on their [https://github.com/ValveSoftware/steam-for-linux GitHub page] before adding workarounds here, and then provide a link to the bug so it can be removed as the problems are fixed.}}<br />
<br />
{{Tip|If a game fails to start, a possible reason is that it is missing required libraries. You can find out what libraries it requests by running {{ic|ldd ''game_executable''}}. {{ic|''game_executable''}} is likely located somewhere in {{ic|~/.steam/root/steamapps/common/}}. Please note that most of these "missing" libraries are actually already included with Steam, and do not need to be installed globally.}}<br />
<br />
== Common steps ==<br />
<br />
=== Prepend /usr/lib to LD_LIBRARY_PATH ===<br />
<br />
Add {{ic|1=LD_LIBRARY_PATH="/usr/lib:$LD_LIBRARY_PATH"}} to your [[launch option]]s.<br />
<br />
=== OpenSSL 1.0 setup ===<br />
<br />
Some Steam games are built against OpenSSL 1.0. ({{bug|53618}})<br />
<br />
Install {{Pkg|lib32-openssl-1.0}} and add {{ic|1=LD_LIBRARY_PATH=/usr/lib/openssl-1.0}} to your [[launch option]]s.<br />
<br />
=== Adobe Air setup ===<br />
<br />
The package {{AUR|adobe-air-sdk}} installs Adobe Air not in the place where the game expects it to be, fix this by creating the following symlink:<br />
<br />
# ln -s "/opt/adobe-air-sdk/runtimes/air/linux/Adobe AIR" "/opt/Adobe AIR"<br />
<br />
Adobe AIR requires you to accept its EULA by creating the file {{ic|~/.appdata/Adobe/AIR/eulaAccepted}} containing {{ic|2}}.<br />
<br />
== Alien Isolation ==<br />
<br />
Symlink {{ic|/usr/lib/libpcre.so}} to {{ic|''gamedir''/lib/x86_64/libpcre.so.3}}, and add the following line to [[launch option]]s, otherwise the game will fail to start.<br />
<br />
for example (as root): <br />
<br />
cd /usr/lib<br />
ln -s libpcre.so libpcre.so.3<br />
<br />
and change the launch options to:<br />
<br />
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:~/.local/share/Steam/steamapps/common/Alien\ Isolation/lib/x86_64/" %command%<br />
<br />
or if you are using optirun (nvidia + bumblebee):<br />
<br />
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:~/.local/share/Steam/steamapps/common/Alien\ Isolation/lib/x86_64/" LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optirun %command%<br />
<br />
== Amnesia: The Dark Descent ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|lib32-freealut}}<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxmu}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
== And Yet It Moves ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|lib32-libjpeg6-turbo}}<br />
* {{Pkg|lib32-libpng12}}<br />
* {{Pkg|lib32-libtheora}}<br />
* {{Pkg|lib32-libtiff4}}<br />
<br />
=== Game does not start ===<br />
<br />
When the game refuses to launch and prints one of the following error messages:<br />
<br />
readlink: extra operand ‘Yet’<br>Try 'readlink --help' for more information.<br />
<br />
This script must be run as a user with write priviledges to game directory<br />
<br />
Open {{ic|''gamedir''/AndYetItMovesSteam.sh}} and surround {{ic|${BASH_SOURCE[0]} }} in the following line with double quotes.<br />
<br />
ayim_dir="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")"<br />
<br />
== Anodyne ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|adobe-air-sdk}}, follow [[#Adobe Air setup]]<br />
* {{pkg|xterm}} (probably not required)<br />
<br />
===Play with a controller: joy2key configuration===<br />
<br />
Configuration example to play [http://www.anodynegame.com/ Anodyne] with an XBox 360 Wireless Controller<br />
<br />
COMMON<br />
-dev /dev/input/js0<br />
-X<br />
-thresh -18000 18000 -18000 18000 -18000 18000 -18000 18000 -18000 18000 -18000 18000 -18000 18000 -18000 18000<br />
-axis Left Right Up Down blank blank blank blank blank blank blank blank Left Right Up Down<br />
-buttons c x Return<br />
<br />
Save this to {{ic|~/.joy2keyrc}} and start joy2key after you start Anodyne<br />
<br />
joy2key -rcfile ~/.joy2keyrc<br />
<br />
== Aquaria ==<br />
<br />
=== Mouse pointer gets stuck in one direction ===<br />
<br />
If the mouse pointer gets stuck in one direction, make sure {{ic|''gamedir''/usersettings.xml}} contains {{ic|1=<JoystickEnabled on="0" />}}.<br />
<br />
If that does not fix the issue, try unplugging any joysticks or joystick adapter devices you have plugged in.<br />
<br />
== ARK: Survival Evolved ==<br />
<br />
=== Game does not start, displays text window with unreadable text ===<br />
<br />
Add {{ic|1=MESA_GL_VERSION_OVERRIDE=4.0}} and {{ic|1=MESA_GLSL_VERSION_OVERRIDE=400}} to your [[launch option]]s.<br />
<br />
=== Gray Water ===<br />
<br />
Download TheCenter map and copy Water_DepthBlur_MIC.uasset from that map into TheIsland as described [https://www.gamingonlinux.com/articles/heres-a-way-to-fix-the-broken-water-in-ark-survival-evolved-on-linux.10530 here].<br />
<br />
Ragnarok uses TheIsland's texture, so the same procedure fixes the issue on Ragnarok as well.<br />
<br />
== Audiosurf 2 ==<br />
<br />
Requires {{pkg|pulseaudio-alsa}}.<br />
<br />
== BADLAND: Game of the Year Edition ==<br />
<br />
Refer to [[#Missing libcurl.so.4 or version CURL_OPENSSL_3 not found]].<br />
<br />
== Beat Cop ==<br />
<br />
=== "BeatCop.x86_64" is not responding ===<br />
<br />
Use {{ic|BeatCop.x86}} instead.<br />
<br />
Add the following line to [[launch option]]s:<br />
<br />
"$HOME/.local/share/Steam/SteamApps/common/Beat Cop/BeatCop.x86" # %command%<br />
<br />
Or<br />
<br />
$ cd ~/.local/share/Steam/SteamApps/common/Beat\ Cop/<br />
$ mv BeatCop.x86_64 BeatCop.x64<br />
$ ln -s BeatCop.x86 BeatCop.x86_64<br />
<br />
== Binding of Isaac: Rebirth ==<br />
<br />
=== No sound ===<br />
<br />
{{Note|This also helps with Never Alone (Kisima Ingitchuna) and No Time to Explain.}}<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
Adjust the audio levels in the game options.<br />
<br />
== The Book of Unwritten Tales ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|lib32-jasper}}<br />
* {{AUR|lib32-libxaw}}<br />
<br />
If the game does not start, uncheck: ''Properties > Enable Steam Community In-Game''.<br />
<br />
The game is known to segfault when opening the settings and possibly during or before playing. A workaround from the [http://steamcommunity.com/app/221410/discussions/3/846939071081758230/#p2 Steam discussions] is to replace the game's {{ic|RenderSystem_GL.so}} with one from Debian's repositories. To do that download [https://launchpad.net/ubuntu/+archive/primary/+files/libogre-1.7.4_1.7.4-3_i386.deb this deb file], and extract it with {{AUR|dpkg}}:<br />
<br />
$ dpkg -x libogre-*.deb outdir<br />
<br />
Now replace {{ic|''gamedir''/lib/32/RenderSystem_GL.so}} with the one extracted from the {{ic|.deb}} package.<br />
<br />
== The Book of Unwritten Tales: The Critter Chronicles ==<br />
<br />
See [[#The Book of Unwritten Tales]].<br />
<br />
To prevent the game from crashing at the end credits, change the size of the credits image as described [http://steamcommunity.com/app/221830/discussions/0/828925849276110960/#c810921273836530791 here].<br />
<br />
== Borderlands 2 ==<br />
<br />
=== Migrating saves from other platforms ===<br />
<br />
Borderlands 2 does not support cross-platform Steam Cloud syncing,<br />
you have to manually copy the files between platforms.<br />
Save locations can be found [https://pcgamingwiki.com/wiki/Borderlands_2#Game_data here].<br />
Make sure your user can access the files.<br />
<br />
=== Using Ctrl Key ===<br />
<br />
Borderlands 2 does not allow the {{ic|Ctrl}} key to be used by default. The game seems to be accessing keycodes and not keysyms, therefore xmodmap has no affect. A workaround is using ''setkeycodes'' to map the Ctrl-scancode to some other key, as described in [[Map scancodes to keycodes#Using setkeycodes]]. I use {{ic|setkeycodes 0x1d 56}} (as root) to map Ctrl to Alt before starting the game and {{ic|setkeycodes 0x1d 29}} to restore the default.<br />
<br />
=== Logging into SHiFT ===<br />
<br />
Out of the box you will not be able to log into SHiFT since the game expects certificates to be in {{ic|/usr/lib/ssl}}, which is where Ubuntu stores them. Arch however uses {{ic|/etc/ssl}}.<br />
To resolve the problem, add {{ic|1=SSL_CERT_DIR=/etc/ssl/certs}} to your [[launch option]]s.<br />
<br />
=== Game crashes nearly instantly ===<br />
<br />
<br />
The game crashes in libopenal directlay after launch.<br />
<br />
Possible solution 0: Add the <code>-nostartupmovies</code> launch option for Borderlands 2 and the Pre-Sequel. It no longer crashes in libopenal with a general protection error.<br />
<br />
Possible solution 1: As of lib32-openal version 1.18.0-1, the game crashes instantly. The possible solutions are to downgrade lib32-openal to 1.17.2-1, or to start the game with {{ic|LD_PRELOAD<nowiki>=</nowiki>'$HOME/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libopenal.so.1'}}.<br />
<br />
In case there're messages like this in the terminal:<br />
[ 671.617205] Borderlands2[2772]: segfault at 0 ip (null) sp 00000000ff9a462c error 14 in Borderlands2[8048000+235a000]<br />
<br />
The following change may help ([http://steamcommunity.com/app/49520/discussions/0/348292787746982160/ source]):<br />
LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%<br />
<br />
== Borderlands: The Pre-Sequel ==<br />
<br />
See [[#Borderlands 2]].<br />
<br />
=== Keyboard not working ===<br />
<br />
Using [[dwm]], no keyboard input seems to register.<br />
<br />
=== Not starting via Steam ===<br />
<br />
If the game appears as ''Running'', then syncs and closes when you launch it from Steam, try creating a {{ic|steam_appid.txt}} in the game directory<br />
containing {{ic|261640}}. This should resolve the issue and let you start the game directly from the game directory. If that does not work, try using the {{Pkg|steam-native-runtime}}.<br />
<br />
== Cities in Motion 2 ==<br />
<br />
=== Dialog boxes fail to display properly ===<br />
<br />
You will not be able to read or see anything, and you will have this in your logs:<br />
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: non-double matrix element<br />
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 69: wrong number of matrix elements<br />
<br />
Workaround for the bug {{Bug|35039}} is available [http://bpaste.net/show/167019/ here] {{Dead link|2017|05|25}} (replace {{ic|/etc/fonts/conf.d/10-scale-bitmap-fonts.conf}}).<br />
<br />
== Cities Skylines ==<br />
<br />
=== Textures not rendering properly ===<br />
<br />
Add {{ic|1=UNITY_DISABLE_GRAPHICS_DRIVER_WORKAROUNDS=yes}} to your [[launch option]]s.<br />
<br />
== Civilization V ==<br />
<br />
You need to add {{ic|1=LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%}} to your [[launch option]]s.<br />
<br />
[https://github.com/ValveSoftware/steam-for-linux/issues/4379 steam-for-linux issue #4379]<br />
<br />
=== Stuttering sound with PulseAudio ===<br />
<br />
See [[PulseAudio/Troubleshooting#Laggy sound]].<br />
<br />
=== Game crashes seconds after loading a map ===<br />
<br />
If you have a CPU with more than 8 threads (such as AMD Ryzen), set {{ic|MaxSimultaneousThreads}} to {{ic|16}} in {{ic|config.ini}} in game directory.<br />
<br />
The solution was found [https://www.reddit.com/r/civ5/comments/5z77jr/game_crashes_randomly_on_linux_amd_ryzen/ here].<br />
<br />
== Civilization: Beyond earth ==<br />
If you are getting an instant crash/close upon launch, make sure you have the following 32-bit packages installed:<br />
<br />
* {{pkg|lib32-libcurl-compat}}<br />
* {{pkg|lib32-libcurl-gnutls}}<br />
* {{pkg|lib32-openal}}<br />
* {{aur|lib32-intel-tbb}}<br />
<br />
=== Segfault after a few minutes ===<br />
Backtrace:<br />
#0 0x08b71d06 in FireGrafix::DynamicsLock<Graphics::BuildingSkinnedDataDynamicConsts>::DynamicsLock(Graphics::SurfaceSet**, FireGrafix::SurfaceSetPoolAllocator*, unsigned short) ()<br />
#1 0x08c25ffc in cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS::HandleBuildingShaderSkinned(Graphics::FGXShaderPackageInstanceView*, FireGrafix::FGXModelNode*, FGXVector4*) ()<br />
#2 0x08c25f34 in cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS::UpdateNode(Graphics::FGXShaderPackageInstanceView*, FireGrafix::FGXModelNode*, FGXVector4*) ()<br />
#3 0x08c25e2c in FireGrafix::FGXModelRenderByNodeSSExample_Shadow<cvLandmarkVisSystem::cvLandmarkVisDynamicConstantUpdaterSS, 2, FireGrafix::FGXModelRenderEndSuperclass>::RenderNode(unsigned int*, FireGrafix::FGX_SPIV_GENERIC*, FireGrafix::FGXModelNode*, FGXVector4*) ()<br />
#4 0x08c24ff5 in cvLandmarkVisSystem::LandmarkRenderJob::Execute(unsigned int) ()<br />
#5 0x093d26d9 in Platform::JobTask::execute() ()<br />
#6 0xf749f3c0 in ?? () from /usr/lib32/libtbb.so.2<br />
#7 0xf7497551 in ?? () from /usr/lib32/libtbb.so.2<br />
#8 0xf7495fc3 in ?? () from /usr/lib32/libtbb.so.2<br />
#9 0xf7491b7e in ?? () from /usr/lib32/libtbb.so.2<br />
#10 0xf7491db7 in ?? () from /usr/lib32/libtbb.so.2<br />
#11 0xf78f4346 in start_thread () from /usr/lib32/libpthread.so.0<br />
#12 0xf7716026 in clone () from /usr/lib32/libc.so.6<br />
<br />
Segfault is caused by {{aur|lib32-intel-tbb}}. To fix the issue:<br />
* download [https://packages.ubuntu.com/trusty/i386/libtbb2/download libtbb2 deb-package] from one of the ubuntu mirrors<br />
* unpack {{ic|libtbb.so.2}} from {{ic|libtbb2_4.2_20130725-1.1ubuntu1_i386.deb/data.tar.xz/usr/lib}} to {{ic|/home/<user>/.local/share/Steam/steamapps/common/Sid Meier's Civilization Beyond Earth}}<br />
* add {{ic|1=env LD_PRELOAD='./libtbb.so.2' %command%}} to your [[launch option]]s<br />
<br />
== Civilization VI ==<br />
<br />
Either run with steam-native (see [[Steam runtime issues]]) or add {{ic|1=env LD_PRELOAD='./libcxxrt.so:/usr/$LIB/libstdc++.so.6' %command%}} to your [[launch option]]s. The latter will disable the Steam overlay.<br />
<br />
Follow [[#OpenSSL 1.0 setup]].<br />
<br />
=== If Segfault Immediately on Start ===<br />
<br />
This is a strange corner case which happens infrequently at best (and the prerequisites for reproducing it are unknown), but the crash would look like this:<br />
# Immediate SEGV on start, before any windows get created<br />
# The game '''does''' create {{ic|~/.local/share/aspyr-media/Sid Meier's Civilization VI/AppOptions.txt}}<br />
# The string {{ic|AppHost::BugSubmissionPackager::BugSubmissionPackager}} appears in the backtrace output when running the game under {{pkg|gdb}}<br />
## To run under {{pkg|gdb}}, first launch a shell and change into the directory {{ic|''<steamroot>''/SteamApps/common/Sid Meier's Civilization VI/}}<br />
## Then {{ic|echo 289070 > steam_appid.txt}} ''(otherwise the game won't launch outside of Steam itself)''<br />
## Then run something like {{ic|gdb -ex run -ex bt -ex quit --args ./Civ6 ./Civ6}}<br />
## The relevant info towards the end of the output should look like this:<br />
Thread 3 "Civ6" received signal SIGSEGV, Segmentation fault.<br />
[Switching to Thread 0x7fffe5d06700 (LWP 12315)]<br />
0x000000000201121e in AppHost::BugSubmissionPackager::BugSubmissionPackager(unsigned long, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)4> const&, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)0> const&, AppHost::ModuleVersionInfo const&) ()<br />
#0 0x000000000201121e in AppHost::BugSubmissionPackager::BugSubmissionPackager(unsigned long, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)4> const&, String::BasicT<Platform::StaticHeapAllocator<5, 0>, (String::Encoding)0> const&, AppHost::ModuleVersionInfo const&) ()<br />
#1 0x000000000200c796 in AppHost::_INTERNAL::SetupFXSPlatform(AppHost::AppEnvironment const*, AppHost::AppOptions*)<br />
()<br />
#2 0x000000000200fea0 in AppHost::RunApp(int, char**, AppHost::Application*) ()<br />
#3 0x000000000200f9bc in AppHost::RunApp(char*, AppHost::Application*) ()<br />
#4 0x0000000001112d98 in WinMain ()<br />
#5 0x00000000010bdab0 in ?? ()<br />
#6 0x00000000010bfb31 in ThreadHANDLE::ThreadProc(void*) ()<br />
#7 0x00007ffff473e08a in start_thread () from /usr/lib/libpthread.so.0<br />
#8 0x00007ffff38f747f in clone () from /usr/lib/libc.so.6<br />
<br />
If all of that is the case for you, the fix is pretty simple. Edit {{ic|~/.local/share/aspyr-media/Sid Meier's Civilization VI/AppOptions.txt}} and change the line reading {{ic|EnableBugCollection 1}} to {{ic|EnableBugCollection 0}}.<br />
<br />
Presumably this fix will prevent any automated bug reports from reaching Aspyr, should you encounter crashes/bugs in the future, but it will at least let the game launch properly.<br />
<br />
== Deus Ex: Mankind divided ==<br />
<br />
Follow [[#OpenSSL 1.0 setup]].<br />
<br />
This is also necessary: if you dont have this library the game wont start:<br />
<br />
pacman -S librtmp0<br />
<br />
Also if you have bumblebee you have to go on on Steam Application -> Library -> DeusEx -> Properties -> Set Launch Options and set:<br />
<br />
LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optirun %command%<br />
<br />
Click OK<br />
<br />
Launch the game as usual<br />
<br />
<br />
== The Clockwork Man ==<br />
<br />
Requires {{pkg|lib32-libidn}}.<br />
<br />
== Company of Heroes 2 ==<br />
<br />
Like with [[#Alien Isolation]] you need to symlink {{ic|/usr/lib/libpcre.so}} to {{ic|''gamedir''/lib/''arch''/libpcre.so.3}}, otherwise the game will fail to start.<br />
<br />
== Cossacks 3 ==<br />
<br />
=== No sound ===<br />
<br />
Use the steam-runtime, e.g. set the [https://support.steampowered.com/kb_article.php?ref=1040-JWMT-2947 launch options] to:<br />
<br />
~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh %command%<br />
<br />
== Counter-Strike: Global Offensive (CS:GO) ==<br />
<br />
=== Game starts on the wrong screen ===<br />
<br />
[https://github.com/ValveSoftware/csgo-osx-linux/issues/60 csgo-osx-linux issue #60]<br />
<br />
If it happens, go into fullscreen windowed or windowed mode and drag the window to the correct monitor. Then go back into fullscreen, the game should now be on the correct monitor.<br />
<br />
=== Cannot reach bottom of the screen on menus ===<br />
<br />
[https://github.com/ValveSoftware/csgo-osx-linux/issues/594 csgo-osx-linux issue #594]<br />
<br />
If you have a secondary monitor you might have a part of your lower screen you cannot reach in menus.<br />
If on Gnome you can try to open the overview (Super key) and drag the game to the other monitor and back.<br />
<br />
If you are not on Gnome or dragging the window back and forth did not work you can try to [[install]] {{pkg|wmctrl}} and run this command, where X and Y is the offset of the window and H and W is the size.<br />
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,X,Y,H,W<br />
<br />
'''Example''': SecondaryMonitor: on the left 2560x1600, GamingMonitor: on the right 2560x1440).<br />
wmctrl -r "Counter-Strike: Global Offensive - OpenGL" -e 0,2560,0,1600,1200<br />
Here X and Y is 0,2560 to move the window to the monitor on the right and H and W 1600,1200 is set to match the ingame resolution.<br />
<br />
=== Sound is played slightly delayed ===<br />
<br />
[https://github.com/ValveSoftware/csgo-osx-linux/issues/45 csgo-osx-linux issue #45]<br />
<br />
See [[PulseAudio/Troubleshooting#Laggy sound]] for a possible solution.<br />
<br />
=== Mouse not working in-game ===<br />
<br />
If your mouse works in the main menu but not in-game, add<br />
{{ic|1=SDL_VIDEO_X11_DGAMOUSE=0}} to your [[launch option]]s.<br />
[https://bbs.archlinux.org/viewtopic.php?id=184905]<br />
<br />
=== Brightness slider not working ===<br />
<br />
[[Install]] {{pkg|xorg-xrandr}} and run {{ic|xrandr}} to find out the name of your connected display output.<br />
<br />
Edit {{ic|''gamedir''/csgo.sh}} and add the following lines (adapt ''output_name''):<br />
<br />
'''# gamma correction'''<br />
'''xrandr --output ''output_name'' --gamma 1.6:1.6:1.6 # play with values if required'''<br />
STATUS=42<br />
while [$STATUS -eq 42]; do<br />
...<br />
done<br />
'''# restore gamma'''<br />
'''xrandr --output ''output_name'' --gamma 1:1:1'''<br />
exit $STATUS<br />
<br />
=== Microphone not working ===<br />
<br />
[https://github.com/ValveSoftware/csgo-osx-linux/issues/573#issuecomment-174016722 csgo-osx-linux issue #573]<br />
<br />
CS:GO uses the default PulseAudio sound device ignoring what is configured in Steam settings.<br />
<br />
First find out the source name of your microphone (it should start with {{ic|alsa_input.}}):<br />
$ pacmd list-sources<br />
<br />
Then set the default device (change the name accordingly):<br />
$ pacmd set-default-source ''device_name''<br />
<br />
Also lower the microphone level to 60% otherwise you will get some nasty background noise and you will be difficult to understand (change the name accordingly):<br />
$ pacmd set-source-volume ''device_name'' 0x6000<br />
<br />
== Crusader Kings II ==<br />
<br />
x86_64 dependencies:<br />
<br />
* {{pkg|lib32-openssl}}<br />
<br />
=== No audio ===<br />
<br />
SDL uses [[PulseAudio]] by default, so to use it with [[ALSA]] you need to set:<br />
<br />
{{hc|~/.pam_environment|2=SDL_AUDIODRIVER=alsa}}<br />
<br />
=== Oddly sized starting window ===<br />
<br />
You can make full screen mode the default by setting {{ic|1=fullscreen=yes}} in {{ic|~/.paradoxinteractive/Crusader Kings II/settings.txt}}.<br />
<br />
== Crypt of the NecroDancer ==<br />
<br />
=== Crashes after splash screen ===<br />
<br />
The following error occurs if launching Steam from the terminal.<br />
<br />
FMOD ERROR: UpdateFMOD SystemUpdate: This command failed because System::init or System::setDriver was not called.<br />
<br />
This error is solved by installing {{pkg|pulseaudio-alsa}}.<br />
<br />
== The Curious Expedition ==<br />
<br />
=== Game stuck on loading screen ===<br />
<br />
The default electron for this game is too old for Archlinux.<br />
<br />
==== Methord 1 ====<br />
<br />
Install {{pkg|electron}} and add the following line to [[launch option]]s:<br />
<br />
cd ~/.local/share/Steam/SteamApps/common/The\ Curious\ Expedition && electron resources/app.asar # %command%<br />
<br />
==== Methord 2 ====<br />
<br />
# pacman -S electron<br />
$ cp -r /usr/lib/electron/* ~/.local/share/Steam/SteamApps/common/The\ Curious\ Expedition/<br />
<br />
== Death Road To Canada ==<br />
<br />
=== No music ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
== Defender's Quest: Valley of the Forgotten ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|adobe-air-sdk}}, follow [[#Adobe Air setup]]<br />
* {{pkg|lib32-libcanberra}}<br />
* {{pkg|xterm}}<br />
<br />
== Dirt ==<br />
<br />
Follow [[#OpenSSL 1.0 setup]].<br />
<br />
== Dirt Rally ==<br />
<br />
Add the following line to [[launch option]]s, otherwise the game will fail to start.<br />
<br />
LD_LIBRARY_PATH="~/.local/share/Steam/SteamApps/common/Dirt Rally/lib/x86_64:$LD_LIBRARY_PATH" %command%<br />
<br />
{{Note|The order of the paths is important. "$LD_LIBRARY_PATH" must be the *last* entry or it won't work.}}<br />
<br />
{{Note|If you don't have your Steam library installed to "~/.local/share/Steam", modify the corresponding prefix accordingly.}}<br />
<br />
== Divinity: Original Sin - Enhanced Edition ==<br />
<br />
=== Game does not start when using Bumblebee optirun or primusrun ===<br />
<br />
Edit {{ic|''gamedir''/runner.sh}} to use primusrun:<br />
LD_LIBRARY_PATH="." primusrun ./EoCApp<br />
<br />
=== Game does not work with amdgpu ===<br />
<br />
It is a known bug and they have no intention of fixing it, see [https://bugs.freedesktop.org/show_bug.cgi?id=93551 the bug].<br />
<br />
Workaround:<br />
<br />
Get the following file:<br />
https://bugs.freedesktop.org/attachment.cgi?id=125302<br />
and rename it to {{ic|shim.c}}<br />
<br />
Then execute <br />
$ gcc -shared -fpic shim.c -o divhack.so<br />
<br />
Next, start ''steam'' and open a console, change to the diviniti directory with <br />
$ cd ~/.steam/steam/steamapps/common/Divinity Original Sin Enhanced Edition<br />
<br />
Edit the contained {{ic|runner.sh}} as follows:<br />
<br />
{{bc|1=export MESA_GL_VERSION_OVERRIDE=4.2<br />
export MESA_GLSL_VERSION_OVERRIDE=420<br />
export LD_PRELOAD=/path/to/divhack.so<br />
export LD_LIBRARY_PATH="."<br />
./EoCApp}}<br />
<br />
Then just start the game.<br />
In case it still crashes on loading you may also need to add<br />
<br />
{{bc|1=export allow_glsl_extension_directive_midshader=true}}<br />
<br />
== Don't Starve ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-flashplugin}}<br />
* {{pkg|lib32-libcurl-gnutls}}<br />
<br />
=== No sound ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
In the game, go to the options and adjust the audio levels.<br />
<br />
== Dota 2 ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|libudev0}}<br />
* {{pkg|libpng12}}<br />
<br />
=== In-game font is unreadable ===<br />
<br />
Add {{ic|1=MESA_GL_VERSION_OVERRIDE=2.1}} to your [[launch option]]s.<br />
<br />
=== Error with libpangoft2 ===<br />
<br />
# [[Install]] the {{pkg|pango}} package.<br />
# Remove {{ic|libpango-1.0.so}} and {{ic|libpangoft2-1.0.so}} in {{ic|''gamedir''/game/bin/linuxsteamrt64}}.<br />
# If you are using Bumblebee add {{ic|1=LD_PRELOAD="libpthread.so.0 libGL.so.1" __GL_THREADED_OPTIMIZATIONS=1 optiru}} to your [[launch option]]s.<br />
<br />
=== The game does not start ===<br />
<br />
If you run the game from the terminal and, although no error is shown, try disabling: ''Steam > Settings > In-Game > Enable Steam Community In-Game''.<br />
<br />
Apparently the game [[#The Book of Unwritten Tales]] has the same problem. It also describes a workaround that is untested in Dota 2.<br />
<br />
=== Game runs on the wrong screen ===<br />
<br />
: [https://github.com/ValveSoftware/Dota-2/issues/11 GitHub Dota 2 issue #11]<br />
<br />
=== Game does not start with libxcb-dri3 error message ===<br />
<br />
After a recent Mesa update, Dota 2 stopped working. The error message is:<br />
<br />
SDL_GL_LoadLibrary(NULL) failed: Failed loading libGL.so.1: /usr/lib32/libxcb-dri3.so.0: undefined symbol: xcb_send_fd<br />
<br />
See [[Steam runtime issues]].<br />
<br />
=== Steam overlay ===<br />
<br />
Steam distributes a copy of libxcb which is incompatible with the latest xorg libxcb. See [[Steam runtime issues]],<br />
[https://github.com/ValveSoftware/steam-for-linux/issues/3199], [https://github.com/ValveSoftware/steam-for-linux/issues/3093].<br />
<br />
=== Chinese tips and player names not shown ===<br />
<br />
The Chinese characters in tips and player names are displayed as block characters.<br />
<br />
The problem is caused by the font packages: {{pkg|ttf-dejavu}}, {{pkg|ttf-liberation}} and {{aur|ttf-ms-fonts}}.<br />
<br />
: [https://github.com/ValveSoftware/Dota-2/issues/1688 GitHub Steam issue #1688] {{Dead link|2017|05|25}}<br />
<br />
=== Chinese input method problem ===<br />
<br />
Dota2 is compatible with [[IBus]] .<br />
<br />
== Devil Daggers ==<br />
Refer to [[#Missing libcurl.so.4 or version CURL_OPENSSL_3 not found]].<br />
<br />
== Drox Operative ==<br />
<br />
If the game fails to start with "Couldn't find Database/database.dbl!", manually extract the assets. assets003.zip will overwrite some files from the previous files.<br />
<br />
$ cd "~/.steam/root/steamapps/common/Drox Operative/Assets"<br />
$ unzip assets00[123].zip<br />
<br />
== Dwarfs F2P ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|lib32-libgdiplus}}{{Broken package link|{{aur-mirror|lib32-libgdiplus}}}}<br />
<br />
=== Game does not start ===<br />
<br />
There was a bug that stopped Steam from fetching all the needed files. It should be resolved, if you still bump into this problem, try verifying integrity of game cache from game properties, local files tab.<br />
<br />
If the game still crashes at startup, edit {{ic|''gamedir''/Run.sh}} and change<br />
<br />
export LD_LIBRARY_PATH=.:${LD_LIBRARY_PATH}<br />
<br />
to<br />
<br />
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:.<br />
<br />
{{Note|This file may be overwritten by updates or by verifying integrity of game cache. You may need to modify it again.}}<br />
<br />
If these do not help, you may have outdated libraries in the game installation folder that are crashing the game on startup. Try removing the following files from the game directory:<br />
<br />
libX11.so.6 libsteam.so libtier0_s.so libvstdlib_s.so steamclient.so<br />
<br />
=== Game crashes ===<br />
<br />
In some cases, the game crashes about 2 minutes before the end of every arcade. This bug has been reported, but there's no known solution to it.<br />
<br />
== Dynamite Jack ==<br />
<br />
Requires {{pkg|lib32-sdl}}.<br />
<br />
=== Sound Issues ===<br />
<br />
When running on 64-bit Arch Linux, there may be "pops and hisses" when running Dynamite Jack. This could be caused by not having {{ic|1=STEAM_RUNTIME=0}} set. (However, even with {{ic|1=STEAM_RUNTIME=0}} set, the game may still sometimes start with this issue. Exiting and restarting the game seems to make the problem go away.)<br />
<br />
=== Game does not start ===<br />
<br />
If running steam with the {{ic|1=STEAM_RUNTIME=0}}, Dynamite Jack may have a problem starting. Check the steam error messages for this message:<br />
<br />
/home/$USER/.steam/root/steamapps/common/Dynamite Jack/bin/main: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory<br />
<br />
Install {{pkg|lib32-sdl}} from [[multilib]] and Dynamite Jack should start up.<br />
<br />
== Euro Truck Simulator 2 ==<br />
=== Shows only a black screen ===<br />
<br />
Select safe mode when the game starts up.<br />
<br />
== Football Manager 2014 ==<br />
<br />
This game will not run when installed on an [[XFS]] or reiserfs filesystem. Workaround is to install on an ext4 filesystem.<br />
<br />
== FORCED ==<br />
<br />
Requires {{pkg|lib32-glu}}.<br />
<br />
This game has 32-bit and 64-bit binaries. For some reason, Steam will launch the 32-bit binary even on 64-bit Arch Linux.<br />
When manually launching the 64-bit binary, the game starts, but cannot connect to Steam account, so you cannot play.<br />
So install 32-bits dependencies, and launch the game from Steam.<br />
<br />
== FTL: Faster than Light ==<br />
<br />
=== Compatibility ===<br />
<br />
After installation, FTL may fail to run due to a 'Text file busy' error (characterised in Steam by your portrait border going green then blue again). The easiest way to mend this is to just reboot your system. Upon logging back in FTL should run.<br />
<br />
The Steam overlay in FTL does not function as it is not a 3D accelerated game. Because of this the desktop notifications will be visible. If playing in fullscreen, therefore, these notifications in some systems may steal focus and revert you back to windowed mode with no way of going back to fullscreen without relaunching. The binaries for FTL on Steam have no DRM and it is possible to run the game ''without'' Steam running, so in some cases that may be optimum - just ensure that you launch FTL via the launcher script in {{ic|~/.steam/root/steamapps/common/FTL Faster than Light/data/}} rather than the FTL binary in the $arch directory.<br />
<br />
=== Problems with open-source video driver ===<br />
<br />
FTL may fail to run if you are using an opensource driver for your video card. There are two solutions: install a proprietary video driver or delete (rename if you are unsure) the library "libstdc++.so.6" inside {{ic|~/.steam/root/steamapps/common/FTL Faster Than Light/data/amd64/lib}}. This is if you are using a 64bit system. In case you are using a 32bit system you have to remove (rename) the same library located into {{ic|~/.steam/root/steamapps/common/FTL Faster Than Light/data/x86/lib}}.<br />
<br />
== Game Dev Tycoon ==<br />
<br />
=== Game does not start ===<br />
<br />
You might get an error about missing {{ic|libudev.so.0}}. See [[Steam runtime issues]].<br />
<br />
Add this line to [[Steam#Launch options|launch options]]:<br />
<br />
LD_PRELOAD=/usr/lib/libudev.so.1 %command%<br />
<br />
== Garry's Mod ==<br />
<br />
=== Game does not start ===<br />
<br />
When an error about a missing {{ic|client.so}} appears, try the following:<br />
<br />
$ cd ~/.steam/root/steamapps/common/GarrysMod/bin/<br />
$ ln -s libawesomium-1-7.so.0 libawesomium-1-7.so.2<br />
$ ln -s ../garrysmod/bin/client.so ./<br />
<br />
If the error mentions a missing library for {{ic|libgcrypt.so.11}}, install {{pkg|lib32-libgcrypt15}}.<br />
<br />
=== Opening some menus causes the game to crash ===<br />
<br />
Most menus work fine, but ones with checkboxes (LAN multiplayer, mounted games list) do not work at all. This is a bug in the menu code.<br />
<br />
If you prefer the default menu style and do not mind a hacky solution: [https://github.com/Facepunch/garrysmod-issues/issues/86#issuecomment-30935491 Simon311] has written code with instructions to fix it.<br />
<br />
If you do not care for the default menu style and want a more stable but feature-incomplete solution, Facepunch developer [https://github.com/robotboy655/gmod-lua-menu robotboy655] has written a new menu.<br />
<br />
=== Game crashes after attempting to join server ===<br />
<br />
While in the process of joining a server, downloading resources, etc, the game seems to hang and after a while, perhaps during the "sending client info" portion the game crashes, usually without any error messages. Error does not give much information, however, the process for Garry's mod is killed.<br />
<br />
This issue arises more often when joining servers with many addons like DarkRP servers specifically.<br />
<br />
The problem seems to correlate with a weak GPU and the game is timing out from the server, so if the GPU is the problem, lowering the graphics settings to the minimum should fix the problem.<br />
<br />
The problem seems to be related to RAM usage, once you hit around 2GB of RAM used, the game will crash. Servers with many addons have much more RAM usage, and lowering graphics settings to the minimum lowers RAM usage and mitigates crashes.<br />
<br />
== Gods will be watching ==<br />
<br />
Follow [[#OpenSSL 1.0 setup]].<br />
<br />
== GRID Autosport ==<br />
<br />
Follow [[#OpenSSL 1.0 setup]].<br />
<br />
=== Black screen when trying to play ===<br />
<br />
Add {{ic|1=LC_ALL=C}} to your [[launch option]]s.<br />
<br />
== Hack 'n' Slash ==<br />
<br />
=== Crashes when trying to load a game ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
== Hacker Evolution ==<br />
<br />
Requires {{Pkg|lib32-sdl2_mixer}}.<br />
<br />
== Half-Life 2 and episodes ==<br />
<br />
=== Cyrillic fonts problem ===<br />
<br />
This problem can be solved by deleting "Helvetica" font.<br />
<br />
== Hammerwatch ==<br />
<br />
=== The game does not start via Steam ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
=== No sound ===<br />
<br />
Hammerwatch opens with a popup: "Sound Error" -- "Could not initialize OpenAL, no sounds will be played. Try updating your OpenAL drivers."<br />
<br />
OpenAL, which Hammerwatch uses, defaults to PulseAudio. To change that, add the following line to {{ic|/etc/openal/alsoft.conf}}:<br />
<br />
drivers=alsa,pulse<br />
<br />
This way, Hammerwatch will use ALSA. This solution was found [https://stackoverflow.com/questions/9547396/what-does-al-lib-pulseaudio-c612-context-did-not-connect-access-denied-me here].<br />
<br />
== Harvest: Massive Encounter ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|lib32-sfml}}<br />
* {{Pkg|lib32-libjpeg6-turbo}}<br />
* {{Pkg|lib32-nvidia-cg-toolkit}}<br />
* {{pkg|lib32-gtk2}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-openal}}<br />
<br />
=== Compatibility ===<br />
<br />
Game refuses to launch and throws you to library installer loop. Just edit {{ic|''gamedir''/run_harvest}} and remove everything but:<br />
<br />
#!/bin/bash<br />
exec ./Harvest<br />
<br />
== Hatoful Boyfriend ==<br />
<br />
=== Japanese text invisible ===<br />
<br />
Install {{pkg|wqy-microhei}} and {{pkg|wqy-microhei-lite}}.<br />
<br />
== Hyper Light Drifter ==<br />
<br />
=== The controller does not work ===<br />
<br />
[[Install]] {{pkg|lib32-sdl2}} and add {{ic|1=LD_PRELOAD=libSDL2.so}} to your [[launch option]]s.<br />
<br />
See the following Steam Community discussions:<br />
<br />
* [https://steamcommunity.com/app/257850/discussions/1/365163686036494421 Controller Issues]<br />
* [https://steamcommunity.com/app/257850/discussions/1/365163686045397160/ Common Bugs + Known Issues]<br />
<br />
It is suggested to run the ''next_update'' branch to get new fixes,<br />
there however currently is a libcurl segfault keeping it from starting without special workarounds.<br />
<br />
=== Missing libcurl.so.4 or version CURL_OPENSSL_3 not found ===<br />
<br />
[[Install]] {{pkg|lib32-libcurl-compat}} and add {{ic|1=LD_PRELOAD=libcurl.so.3}} to your [[launch option]]s.<br />
<br />
== The Impossible Game ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-sdl2}}<br />
* {{pkg|lib32-sdl2_image}}<br />
<br />
== The Inner World ==<br />
<br />
Requires {{AUR|java-commons-codec}} for sound support.<br />
<br />
=== Bringing up the inventory or main menu ===<br />
<br />
Hold the tab key.<br />
<br />
==== Cutscenes ====<br />
<br />
The game has cutscenes. It starts directly with a cutscene before you start the actual game in the backyard. To see these cutscenes you need to use Oracle's [[Java]] instead of the openjdk.<br />
<br />
Furthermore you need the package {{aur|ffmpeg-compat-55}}.<br />
<br />
There seem to be problems with the Steam overlay. Try to run the game directly with {{ic|''gamedir''/TIW_start.sh}}.<br />
<br />
Note that cutscenes open in a new window. So pay attention to that and switch to the new window to enjoy the movies.<br />
<br />
See the [http://steamcommunity.com/app/251430/discussions/0/611701360817206606/#c611701360827509770 Steam Forums] for details.<br />
<br />
== Interloper ==<br />
<br />
Requires {{pkg|alsa-lib}}.<br />
<br />
=== Game does not start ===<br />
<br />
The game can sometimes segfault due to an incompatibility with the Steam Runtime's {{ic|libasound.so.2}}. See [[Steam runtime issues]].<br />
<br />
== Invisible Apartment ==<br />
<br />
Requires {{pkg|qt5-multimedia}}.<br />
<br />
=== Game does not start ===<br />
<br />
If the game does not run when you launch it via Steam, try to directly run {{ic|./ia1}} in the game directory.<br />
<br />
== Joe Danger 2: The Movie ==<br />
<br />
Requires {{pkg|lib32-libpulse}}.<br />
<br />
=== Compatibility ===<br />
<br />
Game only worked after obtaining from the [https://www.humblebundle.com/ Humble Bundle] directly and {{pkg|lib32-libpulse}} was installed.<br />
<br />
== Kerbal Space Program ==<br />
<br />
See [[Kerbal Space Program]].<br />
<br />
== Killing Floor ==<br />
<br />
=== Cannot change screen resolution ===<br />
<br />
If trying to modify the resolution in-game crashes your desktop environment, edit {{ic|~/.killingfloor/System/KillingFloor.ini}}:<br />
<br />
[WinDrv.WindowsClient]<br />
WindowedViewportX=''width''<br />
WindowedViewportY=''height''<br />
FullscreenViewportX=''width''<br />
FullscreenViewportY=''height''<br />
MenuViewportX=''width''<br />
MenuViewportY=''height''<br />
<br />
[SDLDrv.SDLClient]<br />
WindowedViewportX=''width''<br />
WindowedViewportY=''height''<br />
FullscreenViewportX=''width''<br />
FullscreenViewportY=''height''<br />
MenuViewportX=''width''<br />
MenuViewportY=''height''<br />
<br />
=== Windowed mode ===<br />
<br />
Uncheck fullscreen in the options menu, and press {{ic|Ctrl+g}} to stop mouse capturing.<br />
<br />
=== Stuttering sound ===<br />
<br />
KillingFloor comes with its own OpenAL library {{ic|''gamedir''/System/openal.so}}.<br />
<br />
Back it up, [[install]] {{pkg|openal}} or {{pkg|lib32-openal}} (if using a 64bit system).<br />
<br />
Then symlink the installed system library ({{ic|/usr/lib32/libopenal.so.1}} or {{ic|/usr/lib/libopenal.so.1}}) to {{ic|openal.so}}.<br />
<br />
== Left for Dead 2 ==<br />
<br />
=== Missing Chinese font ===<br />
<br />
L4D2 Requires {{Pkg|wqy-zenhei}}. Or add the following lines to {{ic|~/.config/fontconfig/fonts.conf}}<br />
<br />
<match target="pattern"><br />
<test qual="any" name="family"><br />
<string>WenQuanYi Zen Hei</string><br />
</test><br />
<edit name="family" mode="assign" binding="same"><br />
<string>Source Han Sans CN</string><br />
</edit><br />
</match><br />
<br />
== Lethal League ==<br />
<br />
Requires {{Pkg|lib32-glew1.10}}.<br />
<br />
== Life is Strange ==<br />
<br />
Requires {{Pkg|lib32-librtmp0}}.<br />
<br />
== Little Racers STREET ==<br />
<br />
Install {{Pkg|sdl2_mixer}}.<br />
<br />
Move/backup {{ic|''gamedir''/lib64/libSDL2_mixer-2.0.so.0}}.<br />
<br />
Symlink {{ic|/usr/lib/libSDL2_mixer-2.0.so.0}} to {{ic|''gamedir''/lib64/libSDL2_mixer-2.0.so.0}}.<br />
<br />
== The Long Dark ==<br />
<br />
=== Game does not start ===<br />
<br />
The 64-bit version fails to start. Either use the 32-bit version {{ic|tld.x86}} in the game directory or start the 64-bit version like so:<br />
<br />
LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 ./tld.x86_64<br />
<br />
=== Game starts, but some overlay text is missing and cutscenes shows black screen ===<br />
<br />
In addition to the command above, add the following to the Steam launch command:<br />
<br />
-screen-fullscreen 0 -screen-width WIDTH_PIXELS -screen-height HEIGHT_PIXELS<br />
<br />
For example, if you have a screen of resultion 1280x720 and are launching the x64 version from the terminal (within the directory which contains the binaries), the full command would be:<br />
<br />
LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 ./tld.x86_64 -screen-fullscreen 0 -screen-width 1280 -screen-height 720<br />
<br />
and from Steam, the complete game [[launch option]]s would be:<br />
<br />
LD_PRELOAD=~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libSDL2-2.0.so.0 %command% -screen-fullscreen 0 -screen-width 1280 -screen-height 720<br />
<br />
=== Cutscenes are still black ===<br />
<br />
Turn off Vertical Sync in the Display options, and/or set POST FX to Low in the Quality options, and/or turn global Quality options down a notch.<br />
<br />
=== Cursor disappears ===<br />
<br />
Go to Options > Controls, and set mouse locking to unlocked.<br />
<br />
The options is visible only if you're navigating using your (invisible) mouse. It will not show up when navigating with a controller.<br />
One solution is to go to Options -> Controls with a controller before switching to the mouse and trying to blindly it the setting.<br />
<br />
== Magicka 2 ==<br />
<br />
=== Indefinitely stuck at start ===<br />
<br />
The game does not start if the output of the command "ip -s link" is longer than 4096 characters. That is because, in the function bitsquid::network_info(char*), where they query the networking information, they do not handle that case correctly.<br />
See [https://i.imgur.com/AOTLoTY.png this picture] for reference.<br />
It was reported to upstream (Pieces Interactive) but Magicka 2 does not seem to be maintained anymore.<br />
<br />
A dirty fix is to wrap your ip binary, as such:<br />
<br />
{{bc|<br />
#!/bin/bash<br />
<nowiki>if [[ $@ == "-s link" ]]; then</nowiki><br />
echo "<paste a smaller subset of the normal output>"<br />
else<br />
/path/to/your/real/ip "$@"<br />
fi<br />
}}<br />
<br />
== Mark of the Ninja ==<br />
<br />
=== Bad sound ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
== Metro: Last Light ==<br />
<br />
The game does not allow you to change its resolution on a multi-monitor setup on GNOME with the AMD Catalyst drivers. A temporary workaround is to disable the side monitors.<br />
Jason over at [http://unencumberedbyfacts.com/2013/11/20/multiple-monitor-gaming-on-linux/ unencumbered by facts] managed to get it working with his multi-monitor setup using a single display server, he however is using Nvidia.<br />
<br />
== Metro: 2033 Redux ==<br />
<br />
=== No sound ===<br />
<br />
The game does not properly support pulseaudio, so you will have to use ALSA.<br />
Add this to the games launch options in Steam: "SDL_AUDIODRIVER=alsa %command%"<br />
In your $HOME directory create the file ".asoundrc"<br />
get your card/device number with "aplay -l"<br />
Add the following to your .asoundrc (replace card and device no with the one you got from "aplay -l")<br />
<br />
{{bc|<br />
pcm.!default { <br />
type hw<br />
card 0<br />
device 0<br />
} <br />
<br />
ctl.!default {<br />
type hw<br />
card 0<br />
device 0 <br />
}<br />
}}<br />
Before starting the game make sure to kill pulseaudio with "pulseaudio -k"<br />
<br />
== Middle-earth: Shadow of Mordor ==<br />
<br />
=== Floating heads ===<br />
<br />
Add {{ic|1=__GL_ShaderPortabilityWarnings=0}} to your [[launch option]]s.<br />
<br />
== Mount & Blade: Warband ==<br />
<br />
<br />
=== Segmentation fault (core dumped) with wayland ===<br />
<br />
Use Xorg instead.<br />
<br />
=== DLC Chooser ===<br />
<br />
Requires {{aur|lib32-nas}}.<br />
<br />
== Multiwinia ==<br />
<br />
Requires {{pkg|lib32-openal}}.<br />
<br />
=== Crash on startup ===<br />
<br />
If Multiwinia crashes on startup on X64 systems, force launching the 32-bit executable by replacing {{ic|''gamedir''/run_steam.sh}} with the following script:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
./multiwinia.bin.x86<br />
}}<br />
<br />
See [https://steamcommunity.com/app/1530/discussions/0/864969481950542663/#c558746995160431396].<br />
<br />
== Natural Selection 2 ==<br />
{{aur|sndio}} is required.<br />
<br />
The environment variable {{ic|SDL_VIDEODRIVER}} must not be set to {{ic|wayland}}.<br />
Try setting {{ic|SDL_VIDEODRIVER}} to {{ic|x11}} if it still does not work.<br />
<br />
== Nuclear Throne ==<br />
<br />
=== Missing libcurl.so.4 or version CURL_OPENSSL_3 not found ===<br />
<br />
[[Install]] {{pkg|lib32-libcurl-compat}} and add {{ic|1=LD_PRELOAD=libcurl.so.3}} to your [[launch option]]s.<br />
<br />
== Penumbra: Overture ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libvorbis}}<br />
* {{pkg|lib32-libxft}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{pkg|lib32-sdl_ttf}}<br />
<br />
=== Windowed mode ===<br />
<br />
There is no in-game option to change to the windowed mode, you will have to edit {{ic|~/.frictionalgames/Penumbra/Overture/settings.cfg}} to activate it.<br />
<br />
Find {{ic|FullScreen&#61;"true"}} and change it to {{ic|FullScreen&#61;"false"}}, after this the game should start in windowed mode.<br />
<br />
== The Polynomial ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|ilmbase102-libs}}{{Broken package link|{{aur-mirror|ilmbase102-libs}}}}<br />
* {{AUR|openexr170-libs}}{{Broken package link|{{aur-mirror|openexr170-libs}}}}<br />
<br />
[https://github.com/ValveSoftware/steam-for-linux/issues/2721 Steam for Linux issue #2721]<br />
<br />
=== Segfaults during program start on 64-bit systems ===<br />
<br />
The game segfaults during program start because of the {{ic|LD_LIBRARY_PATH}} setting in the launcher script. Edit {{ic|''gamedir''/Polynomial64}}, and comment out the {{ic|LD_LIBRARY_PATH}} variable. Make sure to put the {{ic|./bin/Polynomial64 "$@"}} command on a new line.<br />
<br />
== Portal 2 ==<br />
<br />
=== Game does not start ===<br />
<br />
Several OpenGL-related errors (such as {{ic|PROBLEM: You appear to have OpenGL 1.4.0, but we need at least 2.0.0!}} or {{ic|libGL error: driver pointer missing}}) are caused by Portal&nbsp;2 bundling an old libstdc++ file. This error is especially common with open source Radeon drivers ({{ic|radeonsi}}). See [[Steam runtime issues]].<br />
<br />
A problem with libstdc can be fixed by adding {{ic|1=LD_PRELOAD='/usr/$LIB/libstdc++.so.6'}} to your [[launch option]]s.<br />
<br />
=== Resolution too low ===<br />
<br />
When the game starts with a resolution so low that you cannot reach the game settings,<br />
start the game in windowed mode by setting the [[launch option]] {{ic|-windowed}}.<br />
<br />
=== Missing non Latin font ===<br />
<br />
Portal and Portal2 use Helvetica, add the following lines to {{ic|~/.config/fontconfig/fonts.conf}}:<br />
<br />
<match target="pattern"><br />
<test qual="any" name="family"><br />
<string>Helvetica</string><br />
</test><br />
<edit name="family" mode="assign" binding="same"><br />
<string>Source Han Sans CN</string><br />
</edit><br />
</match><br />
<br />
== Prison Architect ==<br />
<br />
=== ALSA error when using PulseAudio ===<br />
<br />
The error:<br />
<br />
{{ic|ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave}}<br />
<br />
was resolved by installing:<br />
<br />
* {{pkg|pulseaudio-alsa}}<br />
* {{pkg|lib32-libpulse}}<br />
<br />
per [[PulseAudio#ALSA]].<br />
<br />
== Project Zomboid ==<br />
<br />
Requires {{pkg|jre7-openjdk}}.<br />
<br />
=== No sound ===<br />
<br />
[[#Prepend /usr/lib to LD_LIBRARY_PATH]].<br />
<br />
In the game, go to the options and set all audio to the proper volume.<br />
<br />
== Pyre ==<br />
<br />
=== Game Does not Starts ===<br />
<br />
$ rm ~/.local/share/Steam/SteamApps/common/Pyre/lib64/libSDL2-2.0.so.0<br />
<br />
If this doesn't work, downgrade sdl2.<br />
<br />
$ pacman -U https://archive.archlinux.org/packages/s/sdl2/sdl2-2.0.6-2-x86_64.pkg.tar.xz<br />
<br />
Then add sdl2 to IgnorePkg in /etc/pacman.conf.<br />
<br />
{{ic|1=IgnorePkg = sdl2}}<br />
<br />
== Redshirt ==<br />
<br />
Requires {{pkg|lib32-libpulse}} if you use PulseAudio.<br />
<br />
== Revenge of the Titans ==<br />
<br />
Requires {{pkg|libxtst}} and {{pkg|lib32-libxtst}}.<br />
<br />
== Risk of Rain ==<br />
<br />
Requires {{pkg|lib32-libcurl-compat}}. Then symlink it with this command :<br />
<br />
$ ln -s /usr/lib32/libcurl.so.3 ~/.steam/steam/steamapps/common/Risk\ of\ Rain/lib/libcurl.so.4<br />
<br />
== Rock Boshers DX: Directors Cut ==<br />
<br />
Requires {{Pkg|lib32-libcaca}}.<br />
<br />
== Saints Row IV ==<br />
<br />
=== Game fails to launch after update to new Nvidia drivers ===<br />
<br />
{{Accuracy|General settings not specific to this game}}<br />
Add {{ic|1=LD_PRELOAD=$LD_PRELOAD:/usr/lib32/libGLX_nvidia.so}} to your [[launch option]]s.<br />
<br />
=== Game causes GPU lockup with mesa drivers ===<br />
<br />
Saints Rows IV can cause a GPU lockup when trying to play on certain AMD<br />
hardware using open source drivers: [https://bugs.freedesktop.org/show_bug.cgi?id=93475 Bug 93475].<br />
<br />
A workaround is to add {{ic|1=R600_DEBUG=nosb}} to your [[launch option]]s.<br />
<br />
== Serious Sam 3: BFE ==<br />
<br />
=== No audio ===<br />
<br />
Try running:<br />
<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking {{ic|~/.alsoftrc}} as proposed by the [http://steamcommunity.com/app/221410/discussions/3/846940248238406974/ Steam community] (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
== Songbringer ==<br />
<br />
=== Launch error with wanyland ===<br />
<br />
Install {{pkg|glfw-x11}} ,then add this line to [[launch option]]s:<br />
<br />
LD_PRELOAD=/usr/lib/libglfw.so.3 %command%<br />
<br />
<br />
== Space Pirates and Zombies ==<br />
<br />
Requires {{pkg|lib32-openal}}.<br />
<br />
=== No audio ===<br />
<br />
Try running:<br />
<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
If that does not work, try tweaking {{ic|~/.alsoftrc}} as proposed by the Steam community (Serious Sam 3: BFE uses OpenAL to output sound). If you are not using Pulse Audio, you may want to write the following configuration:<br />
<br />
{{hc|~/.alsoftrc|<nowiki><br />
[general]<br />
drivers = alsa<br />
[alsa]<br />
device = default<br />
capture = default<br />
mmap = true<br />
</nowiki>}}<br />
<br />
== Spacechem ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|lib32-sdl_mixer}}<br />
* {{pkg|lib32-sdl_image}}<br />
* {{pkg|lib32-sqlite}}<br />
<br />
=== Game crash ===<br />
<br />
The shipped x86 version of Spacechem does not work on x64 with the game's own libSDL* files, and crashes with some strange output.<br />
<br />
To solve this just remove the three files {{ic|libSDL-1.2.so.0}}, {{ic|libSDL_image-1.2.so.0}}, {{ic|libSDL_mixer-1.2.so.0}} from the game directory.<br />
<br />
== Splice ==<br />
<br />
Requires {{pkg|glu}}.<br />
<br />
== The Stanley Parable ==<br />
<br />
=== Game won't start ===<br />
<br />
As discussed in the Steam store page, remove {{ic|bin/libstdc++.so.6}} from the game folder.<br />
<br />
== Shadow Tactics: Blades of the Shogun ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-libstdc++5}}<br />
* {{pkg|lib32-libxcursor}}<br />
* {{pkg|lib32-libxrandr}}<br />
<br />
== Steel Storm: Burning Retribution ==<br />
<br />
=== Start with black screen ===<br />
<br />
The game by default tries to launch in fullscreen mode with a resolution of 1024x768,<br />
which doesn't work on some devices (for example the Samsung Series9 laptop with Intel hd4000 video).<br />
<br />
Launch the game in windowed mode by adding {{ic|-window}} to your [[launch option]]s. Then change the resolution in-game.<br />
<br />
== Stephen's Sausage Roll ==<br />
<br />
=== No sound ===<br />
<br />
If using [[Steam/Troubleshooting#Native runtime|native libraries]]{{Broken section link}} and {{pkg|libpulse}} is installed, Unity may try to use that library for sound and fail.<br />
To test if this is the problem, try removing {{pkg|libpulse}} or renaming the package files that are named {{ic|libpulse-simple*}}. To see which {{pkg|libpulse}} files are relevant, run:<br />
<br />
{{hc|$ pacman -Qql libpulse <nowiki>|</nowiki> grep /usr/lib/libpulse-simple|<br />
/usr/lib/libpulse-simple.so<br />
/usr/lib/libpulse-simple.so.0<br />
/usr/lib/libpulse-simple.so.0.1.0}}<br />
<br />
If renaming any of those files works for you, you can proceed with the following instructions (revert any renaming you just did). Browse to the game's directory:<br />
<br />
$ cd "$HOME/.steam/root/steamapps/common/Stephen's Sausage Roll"<br />
<br />
And create a sub-directory that we can use to hold 0-byte look-alike library files:<br />
<br />
$ mkdir noload/<br />
<br />
Use {{ic|touch}} to create 0-byte versions of the above files that we want the dynamic linker to skip, e.g.:<br />
<br />
$ touch noload/{libpulse-simple.so,libpulse-simple.so.0,libpulse-simple.so.0.1.0}<br />
<br />
{{Note|Only a 0-byte {{ic|libpulse-simple.so.0}} file may be required.}}<br />
<br />
After you have created these 0-byte files, you can now attempt to run the game binary directly, telling the dynamic linker to use our 0-byte files:<br />
<br />
$ LD_LIBRARY_PATH="noload/:$LD_LIBRARY_PATH" ./Sausage.x86_64<br />
<br />
If everything works up to this point, you can amend the launch options in Steam to be:<br />
<br />
LD_LIBRARY_PATH="noload/:$LD_LIBRARY_PATH" %command%<br />
<br />
Again, this should work because Steam checks for a {{ic|noload/}} directory relative to the game's directory. The dynamic linker should respect the {{ic|$LD_LIBRARY_PATH}} variable and fail to load the necessary {{pkg|libpulse}} files. The game should then fallback to plain ALSA.<br />
<br />
== Superbrothers: Sword & Sworcery EP ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libpulse}} if you use PulseAudio<br />
<br />
The game bundles an outdated version of libstdc++ which prevents the game from starting. [http://steamcommunity.com/app/204060/discussions/0/364039785161291413] The following can be observed when you run Steam and S&S from the terminal:<br />
<br />
libGL error: unable to load driver: i965_dri.so<br />
libGL error: driver pointer missing<br />
libGL error: failed to load driver: i965<br />
libGL error: unable to load driver: i965_dri.so<br />
libGL error: driver pointer missing<br />
libGL error: failed to load driver: i965<br />
libGL error: unable to load driver: swrast_dri.so<br />
libGL error: failed to load driver: swrast<br />
<br />
To solve this problem remove {{ic|''gamedir''/lib/libstdc++.so.6*}}. After that the game will use the libstdc++ from Steam.<br />
<br />
== System Shock 2 ==<br />
<br />
You get these errors when running it with the native client:<br />
<br />
C:\windows\system32\winedevice.exe: symbol lookup error: /usr/lib32/libX11.so.6: undefined symbol: xcb_wait_for_reply64<br />
C:\windows\system32\wineboot.exe: symbol lookup error: /usr/lib32/libX11.so.6: undefined symbol: xcb_wait_for_reply64<br />
<br />
Just delete or rename the libxcb library it got shipped with:<br />
<br />
mv /mnt/olhdd/steam/steamapps/common/SS2/lib/libxcb.so.1{,.old}<br />
mv /mnt/olhdd/steam/steamapps/common/SS2/lib/libxcb.so.1.1.0{,.old}<br />
<br />
== Tabletop Simulator ==<br />
<br />
=== CJK characters not showing in game ===<br />
<br />
Install {{pkg|wqy-microhei}} and {{pkg|wqy-microhei-lite}}.<br />
<br />
== Team Fortress 2 ==<br />
<br />
Requires {{Pkg|lib32-libpng12}}.<br />
<br />
=== HRTF setup ===<br />
<br />
Assuming HRTF (head-related transfer function) has been properly set up in the operating system, HRTF won't be enabled unless you disable the original processing. To do so, use<br />
<br />
dsp_slow_cpu 1<br />
<br />
For best results, also change the following:<br />
<br />
snd_spatialize_roundrobin 1<br />
dsp_enhance_stereo 0<br />
snd_pitchquality 1<br />
<br />
=== Loading screen freeze ===<br />
<br />
If you are a non-english (speaking) user, you have to enable "en_US.UTF-8" in the locale.gen! Generate a new locale after that.<br />
<br />
=== No audio ===<br />
<br />
It happens if there is no PulseAudio in your system.<br />
If you want to use [[ALSA]], you need to launch Steam or the game directly with {{ic|1=SDL_AUDIODRIVER=alsa}}<br />
(From [http://steamcommunity.com/app/221410/discussions/0/882966056462819091/#c882966056470753683 SteamCommunity]).<br />
<br />
If it still does not work, you may also need to set the environment variable AUDIODEV. For instance {{ic|1=AUDIODEV=Live}}. Use {{ic|aplay -l}} to list the available sound cards.<br />
<br />
=== Slow loading textures ===<br />
<br />
If you are using Chris' FPS Configs or any other FPS config, you may have set {{ic|mat_picmip}} to {{ic|2}}. This spawns multiple threads for texture loading, which may cause more jittering and lag on Linux, especially on alternative kernels. Try setting it to {{ic|-1}}, the default.<br />
<br />
== Terraria ==<br />
<br />
See the KNOWN ISSUES & WORKAROUNDS section of the [http://forums.terraria.org/index.php?threads/terraria-1-3-0-8-can-mac-linux-come-out-play.30287/ release announcement].<br />
<br />
== This War of Mine ==<br />
<br />
=== Game does not start ===<br />
<br />
This happens because of an incompatibility with the newer version of {{ic|lib32-curl}}. To fix the problem you need to remove {{ic|libcurl.so.4}} from the game directory.<br />
<br />
=== Sound glitches with Steam native ===<br />
<br />
The bundled {{ic|libOpenAL}} might not work correctly, try symlinking {{ic|/usr/lib32/libopenal.so}} to {{ic|''gamedir''/libOpenAL.so}}.<br />
<br />
== Ticket to Ride ==<br />
<br />
Dependencies:<br />
<br />
* {{AUR|lib32-gstreamer0.10-base}}<br />
* {{AUR|lib32-pangox-compat}}<br />
<br />
As lib32-gstreamer0.10-base is quite hard to build you can use [[Unofficial_user_repositories#alucryd-multilib|alucryd-multilib]] repo for this package<br />
<br />
== Tomb Raider ==<br />
<br />
=== Game immediately closes when running with steam-native ===<br />
<br />
Tomb Raider has a very heavy amount of dependency on the Steam runtime, the easiest solution is to just run it using the runtime.<br />
You can do so by setting the following as the launch option:<br />
<br />
{{bc|~/.steam/root/ubuntu12_32/steam-runtime/run.sh %command%}}<br />
<br />
=== Steam Controller not working in-game===<br />
<br />
If your Steam Controller is correctly recognized and paired but still not working in-game try the following:<br />
<br />
* In Steam, non Big Screen, go to ''Settings > Account > Beta participation > Change...'' and in the dropdown select box select Steam Beta Update<br />
* Restart Steam<br />
* Go to Big Screen and start Tomb Raider<br />
<br />
Correctly recognized means you can control the desktop mouse and Steam in Big Picture mode and the controller is shown in the Big Picture settings.<br />
<br />
== Tower Unite ==<br />
<br />
=== Graphical Glitches ===<br />
<br />
This is a known issue, and it occurs because the shaders had not been ported to Linux yet by the developers.<br />
To minimize glitches and make the game playable add {{ic|-opengl4}} to your [[launch option]]s,<br />
set Ocean Quality to "Potato" and Effects Quality to "Low" in the game settings.<br />
<br />
== Towns / Towns Demo ==<br />
<br />
Requires [[Java]].<br />
<br />
== Transistor ==<br />
<br />
=== Crash on launch / FMOD binding crash / audio issues ===<br />
<br />
Add the following environment variable to your [[launch option]]s:<br />
<br />
LD_PRELOAD='/usr/lib/libstdc++.so.6:/usr/lib/libgcc_s.so.1:/usr/lib/libxcb.so.1:/usr/lib/libasound.so.2'<br />
<br />
Otherwise, run the game via shell and set up proper audio device for FMOD, as discussed in [https://steamcommunity.com/app/237930/discussions/2/620695877176333955/].<br />
<br />
Also, check out this thread [https://steamcommunity.com/app/237930/discussions/2/492378265893557247/].<br />
<br />
== Transmissions: Element 120 ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|lib32-libgcrypt15}}<br />
* {{pkg|lib32-libpng12}}<br />
<br />
=== Troubleshooting ===<br />
<br />
Make sure you have all libraries installed. Above the standard set required by Steam runtime, the game requires few additional ones. The typical error message that indicates that is<br />
<br />
AppFramework : Unable to load module vguimatsurface.so!<br />
<br />
To find missing dependencies go into the game directory and run:<br />
<br />
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so<br />
<br />
Look for entries that say ''not found''.<br />
<br />
== Trine 2 ==<br />
<br />
Dependencies:<br />
<br />
* {{pkg|lib32-glu}}<br />
* {{pkg|lib32-libxxf86vm}}<br />
* {{pkg|lib32-openal}}<br />
* {{pkg|xorg-xwininfo}}<br />
* {{pkg|lib32-libdrm}}<br />
<br />
* {{pkg|lib32-libpng12}}<br />
* {{pkg|lib32-libwrap}}<br />
<br />
=== Colors ===<br />
<br />
If colors are wrong with FOSS drivers (r600g at least), try to run the game in windowed mode, rendering will be corrected. ([https://bugs.freedesktop.org/show_bug.cgi?id=60553 bugreport])<br />
<br />
=== Sound ===<br />
<br />
{{Accuracy|General settings not specific to this game}}<br />
<br />
If sound plays choppy, try:<br />
<br />
{{hc|/etc/openal/alsoft.conf|<nowiki><br />
drivers=pulse,alsa<br />
frequency=48000<br />
</nowiki>}}<br />
<br />
=== Resolution ===<br />
<br />
If the game resolution is wrong when using a dual monitor setup and you can't see the whole window edit {{ic|~/.frozenbyte/Trine2/options.txt}} and change the options {{ic|ForceFullscreenWidth}} and {{ic|ForceFullscreenHeight}} to the resolution of your monitor on which you want to play the game.<br />
<br />
== Tropico 5 ==<br />
<br />
=== Blank screen with sound only on startup ===<br />
<br />
Add {{ic|1=MESA_GL_VERSION_OVERRIDE=4.0}} and {{ic|1=MESA_GLSL_VERSION_OVERRIDE=400}} to your [[launch option]]s.<br />
<br />
== Unity of Command ==<br />
<br />
Requires {{pkg|lib32-pango}}.<br />
<br />
=== Squares ===<br />
<br />
If squares are shown instead of text, try removing {{ic|''gamedir''/bin/libpangoft2-1.0.so.0}}.<br />
<br />
=== No audio ===<br />
<br />
If you get this error:<br />
<br />
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_pulse.so<br />
<br />
Try running:<br />
<br />
# mkdir -p /usr/lib/i386-linux-gnu/alsa-lib/<br />
# ln -s /usr/lib32/alsa-lib/libasound_module_pcm_pulse.so /usr/lib/i386-linux-gnu/alsa-lib/<br />
<br />
== Unity3D ==<br />
<br />
Games based on the Unity3D engine, like ''War For The Overworld'' or ''Pixel Piracy'' may need the package {{pkg|lsb-release}} to understand that they run on Linux and work properly.<br />
<br />
=== Locale settings ===<br />
<br />
Games made in C# often have a problem with some locales (e.g. Russian, German) because developers don't specify locale-agnostic number formatting. This can result in some game screens loading only partially, problems with online features or other bugs.<br />
<br />
To work around this, use the [[launch option]] {{ic|1=LC_ALL=C}}.<br />
<br />
Affected games: ''FORCED, Gone Home, Ichi, Nimble Quest, Syder Arcade''.<br />
<br />
=== Unity 5 sound problems ===<br />
<br />
The sound system in Unity 5 changed and to be able to play games created with it you must most likely install and run [[PulseAudio]].<br />
<br />
Another solution is to disable the Steam runtime: in the launch options for the game, write this: {{ic|1=LD_LIBRARY_PATH="" %command%}}<br />
<br />
Another solution is to prevent Unity from trying to use pulseaudio using {{AUR|pulsenomore}} package from the [[AUR]]. Once it is installed, use the following as launch options :{{ic|/usr/bin/pulsenomore %command%}}<br />
<br />
Affected games: ''Kerbal Space Programm, SUPERHOT, ClusterTruck''<br />
<br />
=== Game launching on wrong monitor in fullscreen mode ===<br />
<br />
Unity games that do not support monitor selection will most likely launch the game on a wrong monitor.<br />
<br />
The problem is that Unity games write the default param {{ic|1=<pref name="UnitySelectMonitor" type="int">-1</pref>}} to the game config file.<br />
<br />
This will lead to the game launching on a non-primary monitor.<br />
<br />
When changing to value into {{ic|1=<pref name="UnitySelectMonitor" type="int">'''0'''</pref>}} for the according game, the game will start on the correct (primary) monitor.<br />
<br />
A Unity game config file usually resides in {{ic|~/.config/unity3d/''CompanyName''/''ProductName''/prefs}}.<br />
<br />
Affected games: ''Cities: Skylines, Tablestop Simulator, Assault Android Cactus, Wasteland 2, Tyranny, Beat Cop''.<br />
<br />
Be aware that some games do not support setting that parameter, it will simply be ignored. This is the case for ''Pillars of Eternity'', ''Kentucky Route Zero'', ''Sunless Sea''.<br />
<br />
=== Chinese/Japanese/Korean display bug ===<br />
<br />
Install {{pkg|wqy-microhei}} and {{pkg|wqy-microhei-lite}}. Then<br />
<br />
#fc-cache -fv<br />
<br />
== Unrest ==<br />
<br />
Requires {{pkg|fluidsynth}}.<br />
<br />
== War Thunder ==<br />
<br />
=== No audio ===<br />
<br />
If there is no audio after launching the game, install {{pkg|pulseaudio-alsa}}.<br />
<br />
=== Blank screen ===<br />
<br />
If having a green or blank screen on startup, add {{ic|1=MESA_GL_VERSION_OVERRIDE=4.1COMPAT}} to your [[launch option]]s. [https://forum.warthunder.com/index.php?/topic/267809-linux-potential-workaround-for-mesa-drivers-black-screen/] [http://forum.warthunder.com/index.php?search_term=0030709&app=core&module=search&do=search&fromMainBar=1&search_app=forums%3Aforum%3A920&sort_field=&sort_order=&search_in=posts]<br />
<br />
== Warhammer 40,000: Dawn of War II ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|alsa-lib}}<br />
* {{Pkg|librtmp0}}<br />
<br />
The start script does not point to the right direction of {{ic|libasound.so.2}}.<br />
<br />
To fix it open {{ic|''gamedir''/DawnOfWar2.sh}} and replace the following lines:<br />
<br />
{{bc|<nowiki>HAS_LSB_RELEASE=$(command -v lsb_release)<br />
if [ -n "${HAS_LSB_RELEASE}" ] && [ "$(lsb_release -c | cut -f2)" = "trusty" ]; then<br />
LD_PRELOAD_ADDITIONS="/usr/lib/x86_64-linux-gnu/libasound.so.2:${LD_PRELOAD_ADDITIONS}"<br />
fi </nowiki>}}<br />
<br />
with:<br />
<br />
{{bc|1=LD_PRELOAD_ADDITIONS="/usr/lib64/libasound.so.2:${LD_PRELOAD_ADDITIONS}"}}<br />
<br />
== Worms W.M.D ==<br />
<br />
The game includes several workarounds in the {{ic|Run.sh}} script, however these may not work and it is easy to get the game running without this script.<br />
<br />
First, try running the game directly from its SteamApps directory (usually {{ic|~/.steam/steam/steamapps/common/WormsWMD/Worms W.M.Dx64}}). If you get a "No such file or directory" error about libcurl-gnutls, install {{pkg|libcurl-gnutls}}. If the game crashes after playing the intro movies, add the Steam Runtime dbus libraries to the game's library directory:<br />
<br />
$ ln -s ~/.steam/steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/*dbus* ~/.steam/steam/steamapps/common/WormsWMD/lib<br />
<br />
Now the game should run using the default "Play Worms W.M.D" option. See also Steam community discussions [https://steamcommunity.com/app/327030/discussions/2/133257959065155871/] and [https://steamcommunity.com/app/327030/discussions/1/343785380902286766/].<br />
<br />
On some systems there are terrain bugs where holes in terrain are not rendered properly and worms can fall through terrain unexpectedly. These bugs can make the game unplayable in many situations and there is no known fix for them.<br />
<br />
== Witcher 2: Assassin of Kings ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|lib32-gnutls}}<br />
* {{Pkg|lib32-libcurl-compat}}<br />
* {{Pkg|lib32-libcurl-gnutls}}<br />
* {{Pkg|lib32-sdl2_image}}<br />
* {{Pkg|lib32-sdl2}}<br />
<br />
=== Game does not start ===<br />
<br />
If the game does not run, enable error messages:<br />
<br />
$ cd "$HOME/.steam/root/steamapps/common/the witcher 2"<br />
$ LIBGL_DEBUG=verbose ./witcher2<br />
<br />
== Wizardry 6: Bane of the Cosmic Forge ==<br />
<br />
Requires [[DOSBox]].<br />
<br />
To fix the crash at start, open {{ic|''gamedir''/dosbox_linux/launch_wizardry6.sh}} and:<br />
<br />
# comment the line {{ic|1=export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs}}<br />
# change the beginning of the line starting with {{ic|exec ./dosbox}} to {{ic|exec dosbox}}<br />
<br />
== World of Goo ==<br />
<br />
=== Changing resolution ===<br />
To change the game resolution edit the ''Graphics display'' section in {{ic|''gamedir''/properties/config.txt}}. For example:<br />
<br />
<nowiki><!-- Graphics display --></nowiki><br />
<param name="screen_width" value="1680" /><br />
<param name="screen_height" value="1050" /><br />
<param name="color_depth" value="0" /><br />
<param name="fullscreen" value="true" /><br />
<param name="ui_inset" value="10" /><br />
<br />
== X3: Terran Conflict ==<br />
<br />
=== Game crashes on startup === <br />
<br />
The game may crash on startup becuase it's linked to libz version 1.2.9, while the latest version of this library in Arch Linux is higher. The following message in the terminals appears in this case:<br />
./X3TC_config: lib/libz.so.1: version 'ZLIB_1.2.9' not found (required by /usr/lib32/libpng16.so.16<br />
<br />
Putting the following line into launch options may help (X3: Terran Conflict -> Properties -> General -> Set Launch Options):<br />
LD_PRELOAD='/usr/lib32/libz.so.1.2.11' %command%<br />
<br />
== XCOM ==<br />
<br />
Dependencies:<br />
<br />
* {{Pkg|librtmp0}}<br />
* {{Pkg|sdl2_image}} (required to enable keyboard functionality in-game)<br />
<br />
=== Hangs on startup ===<br />
<br />
See [[Steam runtime issues]].<br />
<br />
If you are running a [[hybrid graphics]] system, try:<br />
<br />
__GL_THREADED_OPTIMIZATIONS=0 primusrun %command%<br />
<br />
=== Graphical glitches on Intel HD ===<br />
<br />
XCOM may not recognize the SDL2 shared libraries shipped with the Steam runtime.<br />
Check if the binary finds all required files and install missing packages if necessary ({{Pkg|sdl2}} and {{Pkg|sdl2_image}}).<br />
<br />
{{bc|ldd ~/.steam/root/steamapps/common/XCom-Enemy-Unknown/binaries/linux/game.x86_64 | grep "not found"}}</div>TheJJhttps://wiki.archlinux.org/index.php?title=Optical_disc_drive&diff=497854Optical disc drive2017-11-22T13:00:57Z<p>TheJJ: /* Reading an ISO image from a CD, DVD, or BD */ change title for ripping a data cd</p>
<hr />
<div>[[Category:Multimedia]]<br />
[[Category:Optical]]<br />
[[es:Optical disc drive]]<br />
[[it:Optical disc drive]]<br />
[[ja:光学ディスクドライブ]]<br />
[[ru:Optical disc drive]]<br />
[[zh-hans:Optical disc drive]]<br />
{{Related articles start}}<br />
{{Related|Codecs}}<br />
{{Related|MPlayer}}<br />
{{Related|dvdbackup}}<br />
{{Related|MEncoder}}<br />
{{Related|Blu-ray}}<br />
{{Related articles end}}<br />
<br />
From [[Wikipedia:Optical disc drive|Wikipedia]]:<br />
<br />
:In computing, an optical disc drive (ODD) is a disk drive that uses laser light or electromagnetic waves within or near the visible light spectrum as part of the process of reading or writing data to or from optical discs. Some drives can only read from discs, but recent drives are commonly both readers and recorders, also called burners or writers. Compact discs, DVDs, and Blu-ray discs are common types of optical media which can be read and recorded by such drives. Optical drive is the generic name; drives are usually described as "CD" "DVD", or "Blu-ray", followed by "drive", "writer", etc.<br />
<br />
== Burning ==<br />
<br />
{{Warning|The quality of optical drives and the discs themselves varies greatly. Generally, using a slow burn speed is recommended for reliable burns. If you are experiencing unexpected behaviour from the disc, try burning at the lowest speed supported by your burner.}}<br />
<br />
The burning process of optical disc drives consists of creating or obtaining an image and writing it to an optical medium. The image may in principle be any data file. If you want to mount the resulting medium, then it is usually an ISO 9660 file system image file. Audio and multi-media CDs are often burned from a ''.bin'' file, under control of a ''.toc'' file or a ''.cue'' file which tell the desired track layout.<br />
<br />
=== Install burning utilities ===<br />
<br />
If you want to use programs with graphical user interface, then follow [[#Burning CD/DVD/BD with a GUI]].<br />
<br />
The programs listed here are command line oriented. They are the back ends which are used by most free GUI programs for CD, DVD, and BD. GUI users might get to them when it comes to troubleshooting or to scripting of burn activities.<br />
<br />
You need at least one program for creation of file system images and one program that is able to burn data onto your desired media type.<br />
<br />
Available programs for ISO 9660 image creation are:<br />
<br />
* ''mkisofs'' from {{Pkg|cdrtools}}<br />
* ''xorriso'' and ''xorrisofs'' from {{Pkg|libisoburn}}<br />
<br />
The traditional choice is ''mkisofs''.<br />
<br />
Available programs for burning to media are:<br />
<br />
* ''cdrdao'' from {{Pkg|cdrdao}} (CD only, TOC/CUE/BIN only)<br />
* ''cdrecord'' from {{Pkg|cdrtools}}<br />
* ''cdrskin'' from {{Pkg|libburn}}<br />
* ''growisofs'' from {{Pkg|dvd+rw-tools}} (DVD and BD only)<br />
* ''xorriso'' and ''xorrecord'' from {{Pkg|libisoburn}}<br />
<br />
The traditional choices are ''cdrecord'' for CD and ''growisofs'' for DVD and Blu-ray Disk. For writing TOC/CUE/BIN files to CD, install {{Pkg|cdrdao}}.<br />
<br />
The free GUI programs for CD, DVD, and BD burning depend on at least one of the above packages.<br />
<br />
''xorrisofs'' supports the ''mkisofs'' options which are shown in this document.<br />
<br />
''cdrskin'' supports the shown ''cdrecord'' options; ''xorrecord'' also supports those which do not deal with audio CD.<br />
<br />
=== Making an ISO image from existing files on hard disk ===<br />
<br />
The simplest way to create an ISO image is to first copy the needed files to one directory, for example: {{ic|./for_iso}}.<br />
<br />
Then generate the image file with ''mkisofs'':<br />
<br />
$ mkisofs -V "''ARCHIVE_2013_07_27''" -J -r -o ''isoimage.iso'' ''./for_iso''<br />
<br />
Each of those options are explained in the following sections.<br />
<br />
==== Basic options ====<br />
<br />
;{{ic|-V}}: Specifies the name (that is assigned to) of the file system. The ISO 9660 standard specs impose the limitations of 32-character string length, as well as limiting the characters allowed to sets of: "A" to "Z", "0" to "9", and "_". This volume label will probably show up as mount point if the medium is mounted automatically.<br />
;{{ic|-J}}: Enables [[Wikipedia:Joliet (file system)|Joliet]] extension, which allocates special space to store file names in Unicode (up to 64 UTF-16 characters for each file).<br />
;{{ic|-joliet-long}}: Increases maximum length of file names from 64 to 103 UTF-16 characters in Joliet table. Non-compliant to Joliet specs and not commonly supported.<br />
;{{ic|-r}}: Enables [[Wikipedia:Rock Ridge|Rock Ridge]] extension, which adds POSIX file system semantics to an image, including support of long 255-character filenames and Unix-style file permissions.<br />
;{{ic|-o}}: Sets the file path for the resulting ISO image.<br />
<br />
==== graft-points ====<br />
<br />
It is also possible to let ''mkisofs'' to collect files and directories from various paths<br />
<br />
$ mkisofs -V "''BACKUP_2013_07_27''" -J -r -o ''backup_2013_07_27.iso'' \<br />
-graft-points \<br />
''/photos=/home/user/photos \<br />
/mail=/home/user/mail \<br />
/photos/holidays=/home/user/holidays/photos''<br />
<br />
;{{ic|-graft-points}}: Enables the recognition of ''pathspecs'' which consist of a target address in the ISO file system (e.g. {{ic|/photos}}) and a source address on hard disk (e.g. {{ic|/home/user/photos}}). Both are separated by a "=" character.<br />
<br />
So this example puts the disk directory {{ic|/home/user/photos}}, {{ic|/home/user/mail}} and {{ic|/home/user/holidays/photos}}, respectively in the ISO image as {{ic|/photos}}, {{ic|/mail}} and {{ic|/photos/holidays}}.<br />
<br />
Programs ''mkisofs'' and ''xorrisofs'' accept the same options. For secure backups, consider using ''xorrisofs'' with option {{ic|--for_backup}}, which records eventual ACLs and stores an MD5 checksum for each data file.<br />
<br />
See the manuals of the ISO 9660 programs for more info about their options:<br />
* [http://cdrtools.sourceforge.net/private/man/cdrecord/index.html mkisofs]<br />
* [https://www.gnu.org/software/xorriso/man_1_xorrisofs.html xorrisofs]<br />
<br />
=== Mounting an ISO image ===<br />
You can mount an ISO image if you want to browse its files.<br />
To mount the ISO image, we can use:<br />
# mount -t iso9660 -o ro,loop ''/path/to/file.iso'' ''/mount-point''<br />
<br />
Do not forget to unmount the image when your inspection of the image is done:<br />
<br />
# umount /mount-point<br />
<br />
See also [[Mounting images as user]] for mounting without root privileges.<br />
<br />
=== Converting img/ccd to an ISO image ===<br />
<br />
To convert an {{ic|img}}/{{ic|ccd}} image, you can use {{Pkg|ccd2iso}}:<br />
<br />
$ ccd2iso ''~/image.img'' ''~/image.iso''<br />
<br />
=== Learning the name of your optical drive ===<br />
<br />
For the remainder of this section the name of your recording device is assumed to be {{ic|/dev/sr0}}.<br />
<br />
Check this by<br />
<br />
$ cdrecord dev=''/dev/sr0'' -checkdrive<br />
<br />
which should report {{ic|Vendor_info}} and {{ic|Identification}} fields of the drive.<br />
<br />
If no drive is found, check whether any {{ic|/dev/sr*}} exist and whether they offer read/write permission ({{ic|wr-}}) to you or your group.<br />
If no {{ic|/dev/sr*}} exists then try [[Kernel_modules|loading]] module {{ic|sr_mod}} manually.<br />
<br />
=== Reading the volume label of a CD or DVD ===<br />
<br />
If you want to get the name/label of the media, use ''dd'':<br />
<br />
$ dd if=''/dev/sr0'' bs=1 skip=32808 count=32<br />
<br />
=== Creating an ISO image from a CD, DVD, or BD ===<br />
<br />
You should determine the size of the ISO file system before copying it to hard disk. Most media types deliver more data than was written to them with the most recent burn run.<br />
<br />
Use program ''isosize'' out of package {{Pkg|util-linux}} to obtain the count of blocks to read:<br />
<br />
$ blocks=$(isosize -d 2048 ''/dev/sr0'')<br />
<br />
Have a look whether the obtained number of blocks is plausible<br />
<br />
{{hc|$ echo "That would be $(expr $blocks / 512) MB"|<br />
That would be 589 MB<br />
}}<br />
<br />
Then copy the determined amount of data from medium to hard disk:<br />
<br />
$ dd if=''/dev/sr0'' of=''isoimage.iso'' bs=2048 count=$blocks status=progress<br />
<br />
Omit {{ic|1= count=$blocks}} if you did not determine the size. You will probably get more data than needed. The resulting file will nevertheless be mountable. It should still fit onto a medium of the same type as the medium from which the image was copied.<br />
<br />
If the original medium was bootable, then the copy will be a bootable image. You may use it as pseudo CD for a virtual machine or burn it onto optical media which should then become bootable.<br />
<br />
=== Erasing CD-RW and DVD-RW ===<br />
<br />
Used CD-RW media need to be erased before you can write over the previously recorded data. This is done by<br />
<br />
$ cdrecord -v dev=''/dev/sr0'' blank=fast<br />
<br />
There are two options for blanking: {{ic|1=blank=fast}} and {{ic|1=blank=full}}. Full blanking lasts as long as a full write run. It overwrites the payload data on the CD. Nevertheless this should not be considered as securely making those data unreadable. For that purpose, several full write runs with random data are advised.<br />
<br />
Alternative commands are:<br />
<br />
$ cdrskin -v dev=''/dev/sr0'' blank=fast<br />
$ xorriso -outdev ''/dev/sr0'' -blank as_needed<br />
<br />
To erase the DVD-RW use the ''dvd+rw-format'' utility from {{Pkg|dvd+rw-tools}}:<br />
<br />
$ dvd+rw-format -blank=fast ''/dev/sr0''<br />
<br />
Alternative commands are:<br />
<br />
$ cdrecord -v dev=''/dev/sr0'' blank=fast<br />
$ cdrskin -v dev=''/dev/sr0'' blank=deformat_sequential_quickest<br />
$ xorriso -outdev ''/dev/sr0'' -blank deformat_quickest<br />
<br />
Such fastly blanked DVD-RW are not suitable for multi-session and cannot take input streams of unpredicted length. For that purpose one has to use one of:<br />
<br />
$ cdrecord -v dev=''/dev/sr0'' blank=all<br />
$ dvd+rw-format -blank=full ''/dev/sr0''<br />
$ cdrskin -v dev=''/dev/sr0'' blank=as_needed<br />
$ xorriso -outdev ''/dev/sr0'' -blank as_needed<br />
<br />
The other media types are either write-once (CD-R, DVD-R, DVD+R, BD-R) or are overwritable without the need for erasing (DVD-RAM, DVD+RW, BD-RE).<br />
<br />
=== Formatting DVD-RW ===<br />
<br />
Formatted DVD-RW media can be overwritten without previous erasure. So consider to apply once in their life time<br />
<br />
$ dvd+rw-format -force ''/dev/sr0''<br />
$ cdrskin -v dev=''/dev/sr0'' blank=format_if_needed<br />
$ xorriso -outdev ''/dev/sr0'' -format as_needed<br />
<br />
Unlike DVD-RAM, DVD+RW, and BD-RE, formatted DVD-RW cannot be used as (slow) hard disk directly, but rather need the mediation of driver pktcdvd. See man pktsetup.<br />
<br />
=== Formatting BD-RE and BD-R ===<br />
<br />
BD-RE need formatting before first use. This is done automatically by the burn programs when they detect the unformatted state. Nevertheless the size of the payload area can be influenced by expert versions of the format commands shown above for DVD-RW.<br />
<br />
BD-R can be used unformatted or formatted. Unformatted they are written with full nominal speed and offer maximum storage capacity. Formatted they get checkread during write operations and bad blocks get replaced by blocks from the Spare Area. This reduces write speed to a half or less of nominal speed. The default sized Spare Area reduces the storage capacity by 768 MiB.<br />
<br />
growisofs formats BD-R by default. The others do not. growisofs can be kept from formatting. cdrskin and xorriso can write with full nominal speed on formatted BD-RE or BD-R:<br />
<br />
$ growisofs -use-the-force-luke=spare:none ...growisofs.or.mkisofs.options...<br />
$ cdrskin stream_recording=on ...cdrecord.options...<br />
$ xorriso -stream_recording on ...xorriso.commands...<br />
<br />
=== Burning an ISO image to CD, DVD, or BD ===<br />
<br />
To burn a readily prepared ISO image file {{ic|isoimage.iso}} onto an optical medium, run for CD:<br />
<br />
$ cdrecord -v -sao dev=''/dev/sr0'' ''isoimage.iso''<br />
<br />
and for DVD or BD:<br />
<br />
$ growisofs -dvd-compat -Z ''/dev/sr0''=''isoimage.iso''<br />
<br />
{{Note|1=<br /><br />
* Make sure that the medium is not mounted when you begin to write to it. Mounting may happen automatically if the medium contains a readable file system. In the best case, it will prevent the burn programs from using the burner device. In the worst case, there will be misburns because read operations disturbed the drive. So if in doubt, do: {{bc|# umount /dev/sr0}}<br />
* ''growisofs'' has a [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=713016 small bug] with blank BD-R media. It issues an error message after the burning is complete. Programs like ''k3b'' then believe the whole burn run failed. To prevent this, either<br />
** format the blank BD-R by {{ic|dvd+rw-format ''/dev/sr0''}} before submitting it to ''growisofs''<br />
** or use ''growisofs'' option {{ic|1= -use-the-force-luke=spare:none}}<br />
}}<br />
<br />
=== Verifying the burnt ISO image ===<br />
<br />
You can verify the integrity of the burnt medium to make sure it contains no errors. Always eject the medium and reinsert it before verifying. It will guarantee that not any kernel cache will be used to read the data.<br />
<br />
First calculate the MD5 checksum of the original ISO image:<br />
<br />
{{hc|$ md5sum isoimage.iso|<br />
e5643e18e05f5646046bb2e4236986d8 isoimage.iso<br />
}}<br />
<br />
Next calculate the MD5 checksum of the ISO file system on the medium.<br />
Although some media types deliver exactly the same amount of data as have been submitted to the burn program, many others append trailing garbage when being read. So you should restrict reading to the size of the ISO image file.<br />
<br />
$ blocks=$(expr $(du -b isoimage.iso | awk '{print $1}') / 2048)<br />
<br />
{{hc|<nowiki>$ dd if=/dev/sr0 bs=2048 count=$blocks | md5sum</nowiki>|<br />
43992+0 records in<br />
43992+0 records out<br />
90095616 bytes (90 MB) copied, 0.359539 s, 251 MB/s<br />
e5643e18e05f5646046bb2e4236986d8 -<br />
}}<br />
<br />
Both runs should yield the same MD5 checksum (here: {{ic|e5643e18e05f5646046bb2e4236986d8}}). If they do not, you will probably also get an I/O error message from the {{ic|dd}} run. {{ic|dmesg}} might then tell about SCSI errors and block numbers, if you are interested.<br />
<br />
=== ISO 9660 and burning on-the-fly ===<br />
<br />
It is not necessary to store an emerging ISO file system on hard disk before writing it to optical media. Only very old CD drives at very old computers could suffer failed burns due to empty drive buffer.<br />
<br />
If you omit option {{ic|-o}} from ''mkisofs'' then it writes the ISO image to standard output. This can be piped into the standard input of burn programs.<br />
<br />
$ mkisofs -V "ARCHIVE_2013_07_27" -J -r ./for_iso | \<br />
cdrecord -v dev=/dev/sr0 -waiti -<br />
<br />
Option {{ic|-waiti}} is not really needed here. It prevents ''cdrecord'' from writing to the medium before ''mkisofs'' starts its output. This would allow ''mkisofs'' to read the medium without disturbing an already started burn run. See next section about multi-session.<br />
<br />
On DVD and BD, you may let ''growisofs'' operate ''mkisofs'' for you and burn its output on-the-fly<br />
<br />
$ growisofs -Z ''/dev/sr0'' -V "''ARCHIVE_2013_07_27''" -r -J ''./for_iso''<br />
<br />
=== Multi-session ===<br />
<br />
ISO 9660 multi-session means that a medium with readable file system is still writable at its first unused block address, and that a new ISO directory tree gets written to this unused part. The new tree is accompanied by the content blocks of newly added or overwritten data files. The blocks of data files, which shall stay as in the old ISO tree, will not be written again.<br />
<br />
Linux and many other operating systems will mount the directory tree in the last session on the medium. This youngest tree will normally show the files of the older sessions, too.<br />
<br />
==== Multi-session by cdrecord ====<br />
<br />
CD-R and CD-RW stay writable (aka "appendable") if cdrecord option {{ic|-multi}} was used<br />
<br />
$ cdrecord -v -multi dev=''/dev/sr0'' ''isoimage.iso''<br />
<br />
Then the medium can be inquired for the parameters of the next session<br />
<br />
$ m=$(cdrecord dev=''/dev/sr0'' -msinfo)<br />
<br />
By help of these parameters and of the readable medium in the drive you can produce the add-on ISO session<br />
<br />
$ mkisofs -M ''/dev/sr0'' -C "$m" \<br />
-V "''ARCHIVE_2013_07_28''" -J -r -o ''session2.iso'' ''./more_for_iso''<br />
<br />
Finally append the session to the medium and keep it appendable again<br />
<br />
$ cdrecord -v -multi dev=''/dev/sr0'' ''session2.iso''<br />
<br />
Programs ''cdrskin'' and ''xorrecord'' do this too with DVD-R, DVD+R, BD-R and unformatted DVD-RW. Program ''cdrecord'' does multi-session with at least DVD-R and DVD-RW. They all do with CD-R and CD-RW, of course.<br />
<br />
Most re-usable media types do not record a session history that would be recognizable for a mounting kernel. But with ISO 9660 it is possible to achieve the multi-session effect even on those media.<br />
<br />
''growisofs'' and ''xorriso'' can do this and hide most of the complexity.<br />
<br />
==== Multi-session by growisofs ====<br />
<br />
By default, ''growisofs'' uses ''mkisofs'' as a backend for creating ISO images forwards most of its program arguments to . See above examples of ''mkisofs''. It bans option {{ic|-o}} and deprecates option {{ic|-C}}. By default it uses the ''mkisofs''. You may specify to use one of the others compatible backend program by setting environment variable {{ic|MKISOFS}}:<br />
<br />
$ export MKISOFS="xorrisofs"<br />
<br />
The wish to begin with a new ISO file system on the optical medium is expressed by option {{ic|-Z}}<br />
<br />
$ growisofs -Z ''/dev/sr0'' -V "''ARCHIVE_2013_07_27''" -r -J ''./for_iso''<br />
<br />
The wish to append more files as new session to an existing ISO file system is expressed by option {{ic|-M}}<br />
<br />
$ growisofs -M ''/dev/sr0'' -V "''ARCHIVE_2013_07_28''" -r -J ''./more_for_iso''<br />
<br />
For details see the {{man|1|growisofs}} manual and the manuals of ''mkisofs'' and ''xorrisofs''.<br />
<br />
==== Multi-session by xorriso ====<br />
<br />
''xorriso'' learns the wish to begin with a new ISO file system from the blank state of the medium. So it is appropriate to blank it if it contains data. The command {{ic|-blank as_needed}} applies to all kinds of re-usable media and even to ISO images in data files on hard disk. It does not cause error if applied to a blank write-once medium.<br />
<br />
$ xorriso -outdev ''/dev/sr0'' -blank as_needed \<br />
-volid "''ARCHIVE_2013_07_27''" -joliet on -add ''./for_iso'' --<br />
<br />
On non-blank writable media ''xorriso'' appends the newly given disk files if command {{ic|-dev}} is used rather than {{ic|-outdev}}. Of course, no command {{ic|-blank}} should be given here<br />
<br />
$ xorriso -dev ''/dev/sr0'' \<br />
-volid "''ARCHIVE_2013_07_28''" -joliet on -add ''./more_for_iso'' --<br />
<br />
For details see the [https://www.gnu.org/software/xorriso/man_1_xorriso.html manual page] and especially its [https://www.gnu.org/software/xorriso/man_1_xorriso.html#EXAMPLES examples]<br />
<br />
=== BD Defect Management ===<br />
<br />
BD-RE and formatted BD-R media are normally written with enabled Defect Management. This feature reads the written blocks while they are still stored in the drive buffer. In case of poor read quality the blocks get written again or redirected to the ''Spare Area'' where the data get stored in replacement blocks.<br />
<br />
This checkreading reduces write speed to at most half of the nominal speed of drive and BD medium. Sometimes it is even worse. Heavy use of the Spare Area causes long delays during read operations. So Defect Management is not always desirable.<br />
<br />
''cdrecord'' does not format BD-R. It has no means to prevent Defect Management on BD-RE media, though.<br />
<br />
''growisofs'' formats BD-R by default. The Defect Management can be prevented by option {{ic|1= -use-the-force-luke=spare:none}}. It has no means to prevent Defect Management on BD-RE media, though.<br />
<br />
''cdrskin'', ''xorriso'' and ''xorrecord'' do not format BD-R by default. They do with {{ic|1= cdrskin blank=format_if_needed}}, resp. {{ic|1= xorriso -format as_needed}}, resp. {{ic|1= xorrecord blank=format_overwrite}}. These three programs can disable Defect Management with BD-RE and already formatted BD-R by {{ic|1= cdrskin stream_recording=on}}, resp. {{ic|1= xorriso -stream_recording on}}, resp. {{ic|1= xorrecord stream_recording=on}}.<br />
<br />
=== Burning an audio CD ===<br />
<br />
Create your audio tracks and store them as uncompressed, 16-bit, stereo WAV files. To convert MP3 to WAV, ensure {{Pkg|lame}} is installed, ''cd'' to the directory with your MP3 files, and run:<br />
<br />
$ for i in *.mp3; do lame --decode "$i" "$(basename "$i" .mp3)".wav; done<br />
<br />
In case you get an error when trying to burn WAV files converted with LAME, try decoding with {{Pkg|mpg123}}:<br />
<br />
$ for i in *.mp3; do mpg123 --rate 44100 --stereo --buffer 3072 --resync -w $(basename $i .mp3).wav $i; done<br />
<br />
To convert AAC to WAV ensure {{Pkg|faad2}} is installed and run:<br />
$ for i in *.m4a; do faad $i; done<br />
<br />
Name the audio files in a manner that will cause them to be listed in the desired track order when listed alphabetically, such as {{ic|01.wav}}, {{ic|02.wav}}, {{ic|03.wav}}, etc. Use the following command to simulate burning the WAV files as an audio CD:<br />
<br />
$ cdrecord '''-dummy''' -v -pad speed=1 dev=''/dev/sr0'' -dao -swab *.wav<br />
<br />
If everything worked, you can remove the {{ic|dummy}} flag to actually burn the CD.<br />
<br />
To test the new audio CD, use [[MPlayer]]:<br />
<br />
$ mplayer cdda://<br />
<br />
=== Burning a BIN/CUE ===<br />
<br />
To burn a BIN/CUE image run:<br />
<br />
$ cdrdao write --device ''/dev/sr0'' ''image.cue''<br />
<br />
==== TOC/CUE/BIN for mixed-mode disks ====<br />
<br />
ISO images only store a single data track. If you want to create an image of a mixed-mode disk (data track with multiple audio tracks) then you need to make a TOC/BIN pair:<br />
<br />
$ cdrdao read-cd --read-raw --datafile ''image.bin'' --driver generic-mmc:0x20000 --device ''/dev/cdrom'' ''image.toc''<br />
<br />
Some software only likes CUE/BIN pair, you can make a CUE sheet with ''toc2cue'' (part of {{Pkg|cdrdao}}):<br />
<br />
$ toc2cue ''image.toc'' ''image.cue''<br />
<br />
=== Burn backend problems ===<br />
<br />
If you're experiencing problems, you may ask for advise at mailing list [mailto:cdwrite@other.debian.org cdwrite@other.debian.org], or try to write to the one of support mail addresses if some are listed near the end of the program's man page.<br />
<br />
Tell the command lines you tried, the medium type (e.g. CD-R, DVD+RW, ...), and the symptoms of failure (program messages, disappointed user expectation, ...). You will possibly get asked to obtain the newest release or development version of the affected program and to make test runs. But the answer might as well be, that your drive dislikes the particular medium.<br />
<br />
=== Burning CD/DVD/BD with a GUI ===<br />
<br />
There are several applications available to burn CDs in a graphical environment.<br />
<br />
See also [[Wikipedia:Comparison of disc authoring software]].<br />
<br />
* {{App|[[Wikipedia:AcetoneISO|AcetoneISO]]|All-in-one ISO tool (supports BIN, MDF, NRG, IMG, DAA, DMG, CDI, B5I, BWI, PDI and ISO).|http://sourceforge.net/projects/acetoneiso|{{Pkg|acetoneiso2}}}}<br />
* {{App|BashBurn|Lightweight terminal based menu frontend for CD/DVD burning tools.|http://bashburn.dose.se/|{{Pkg|bashburn}}}}<br />
* {{App|[[Wikipedia:Brasero (software)|Brasero]]|Disc burning application for the GNOME desktop that is designed to be as simple as possible. Part of {{Grp|gnome-extra}}.|https://wiki.gnome.org/Apps/Brasero|{{Pkg|brasero}}}}<br />
* {{App|cdw|Ncurses frontend to ''cdrecord'', ''mkisofs'', ''growisofs'', ''dvd+rw-mediainfo'', ''dvd+rw-format'' and ''xorriso''.|http://cdw.sourceforge.net/|{{AUR|cdw}}}}<br />
* {{App|[[Wikipedia:GnomeBaker|GnomeBaker]]|Full featured CD/DVD burning application for the GNOME desktop.|http://gnomebaker.sourceforge.net/|{{AUR|gnomebaker}}}}<br />
* {{App|Graveman|GTK-based CD/DVD burning application. It requires configuration to point to correct devices.|http://graveman.tuxfamily.org/|{{AUR|graveman}}}}<br />
* {{App|[[Wikipedia:ISO_Master|isomaster]]|ISO image editor.|http://littlesvr.ca/isomaster|{{AUR|isomaster}}}}<br />
* {{App|[[Wikipedia:K3b|K3b]]|Feature-rich and easy to handle CD burning and ripping application based on KDElibs.|http://www.k3b.org/|{{Pkg|k3b}}}}<br />
* {{App|[[Wikipedia:X-CD-Roast|X-CD-Roast]]|Lightweight ''cdrtools'' front-end for CD and DVD writing.|http://www.xcdroast.org/|{{AUR|xcdroast}}{{Broken package link|{{aur-mirror|xcdroast}}}}}}<br />
* {{App|[[Wikipedia:Xfce#Xfburn|Xfburn]]|Simple front-end to the libburnia libraries with support for CD/DVD(-RW), ISO images, and BurnFree.|http://goodies.xfce.org/projects/applications/xfburn|{{Pkg|xfburn}}}}<br />
* {{App|xorriso-tcltk|Graphical front-end to ISO and CD/DVD/BD burn tool xorriso|https://www.gnu.org/software/xorriso/xorriso-tcltk-screen.gif|{{Pkg|libisoburn}}}}<br />
<br />
== Playback ==<br />
<br />
=== CD ===<br />
<br />
Playback of audio CDs requires the {{Pkg|libcdio}} package.<br />
<br />
=== DVD ===<br />
<br />
If you wish to play encrypted DVDs, you must install the libdvd* packages:<br />
* {{Pkg|libdvdread}}<br />
* {{Pkg|libdvdcss}}<br />
* {{Pkg|libdvdnav}}<br />
<br />
Additionally, you must install player software. Popular DVD players are [[MPlayer]], [[Wikipedia:Xine|xine]] and [[VLC]]. See the [[List of applications/Multimedia#Video players|video players]] list and the specific instructions for [[MPlayer#DVD playing|MPlayer]].<br />
<br />
== Ripping ==<br />
<br />
[[Wikipedia:Ripping|Ripping]] is the process of copying audio or video content to a hard disk, typically from removable media or media streams.<br />
<br />
=== CD ===<br />
<br />
* {{App|[[Wikipedia:ABCDE|Abcde]]|Comprehensive command-line tool for ripping audio CDs.|https://abcde.einval.com/|{{Pkg|abcde}}}}<br />
* {{App|[[Wikipedia:Asunder|Asunder]]|GTK+-based CD ripping program.|http://littlesvr.ca/asunder/|{{Pkg|asunder}}}}<br />
* {{App|[[Wikipedia:cdparanoia|cdparanoia]]|Compact Disc Digital Audio (CDDA) Digital Audio Extraction (DAE) tool.|https://xiph.org/paranoia/index.html|{{Pkg|cdparanoia}}}}<br />
* {{App|Goobox|CD player and ripper for GNOME.|https://people.gnome.org/~paobac/goobox/|{{Pkg|goobox}}}}<br />
* {{App|[[Wikipedia:Grip (software)|Grip]]|Fast and light CD ripper within the GNOME project that resembles [[Wikipedia:Audiograbber|Audiograbber]].|https://sourceforge.net/projects/grip/|{{Pkg|grip}}{{Broken package link|package not found}}}}.<br />
* {{App|[[Wikipedia:K3b|K3b]]|Feature-rich and easy to handle CD/DVD burning and ripping application based on KDElibs.|http://www.k3b.org/|{{Pkg|k3b}}}}<br />
* {{App|ripperX|GTK+ program to rip CD audio tracks and encode them to the Ogg, MP3, or FLAC formats.|https://sourceforge.net/projects/ripperx/|{{Pkg|ripperx}}}}<br />
* {{App|ripright|Minimal CD ripper modeled on autorip.|http://www.mcternan.me.uk/ripright/|{{AUR|ripright}}}}<br />
* {{App|ripit|Command-line ripper that supports MusicBrainz, freeddb and various codecs. |http://www.suwald.com/ripit/news.php|{{AUR|ripit}}}}<br />
* {{App|rubyripper|Audiodisk ripper that tries to deliver a secure rip through multiple rippings of the same track and corrections of any differences.|https://code.google.com/archive/p/rubyripper/|{{AUR|rubyripper}}}}<br />
* {{App|shnsplit|Splits .wav and .flac files according to a CUE sheet and encodes the resulting pieces. A useful companion to ABCDE.|http://www.etree.org/shnutils/shntool/|{{Pkg|shntool}}}}<br />
* {{App|[[Wikipedia:Sound Juicer|Sound Juicer]]|CD ripper for GNOME.|https://wiki.gnome.org/Apps/SoundJuicer|{{Pkg|sound-juicer}}}}<br />
* {{App|soundKonverter|Front-end to various audio converters.|https://www.linux-apps.com/content/show.php?content&#61;29024|{{Pkg|soundkonverter}}}}<br />
* {{App|whipper|CD ripper aiming for accuracy over speed. Uses cdparanoia, MusicBrainz, AccurateRip.|https://github.com/JoeLametta/whipper|{{Pkg|whipper}}}}<br />
<br />
=== DVD-Video ===<br />
<br />
Often, the process of ripping a DVD can be broken down into two subtasks:<br />
# '''Data extraction''' — Copying the audio and/or video data to a hard disk,<br />
# [[Wikipedia:Transcode|Transcoding]] — Converting the extracted data into a suitable format.<br />
<br />
Some utilities perform both tasks, whilst others focus on one aspect or the other:<br />
<br />
* {{App|Avidemux|Multithreaded video transcoder, which offers both a graphical and command-line interface with many preset configurations. Influenced by Handbrake.|http://fixounet.free.fr/avidemux/|{{AUR|avidemux-qt-git}}}}<br />
* {{App|dvd-vr|Tool which easily converts VRO files extracted from a [[Wikipedia:DVD-VR|DVD-VR]] and splits them in regular VOB files.|http://www.pixelbeat.org/programs/dvd-vr/|{{AUR|dvd-vr}}{{Broken package link|{{aur-mirror|dvd-vr}}}}}}<br />
* {{App|[[dvdbackup]]|Tool for pure data extraction which does not transcode. It is useful for creating ''exact'' copies of encrypted DVDs in conjunction with '''libdvdcss''' or for decrypting video for other utilities unable to read encrypted DVDs.|http://dvdbackup.sourceforge.net/|{{Pkg|dvdbackup}}}}<br />
* {{App|[[FFmpeg]]|Complete and free Internet live audio and video broadcasting solution for Linux/Unix, capable to do a direct rip in any format (audio/video) from a DVD-Video ISO image, just select the input as the ISO image and proceed with the desired options. It also allows to downmixing, shrinking, spliting, selecting streams among other features.|http://ffmpeg.org/|See [[FFmpeg#Package_installation|article]]}}<br />
* {{App|HandBrake|Multithreaded video transcoder, which offers both a graphical and command-line interface with many preset configurations.|https://handbrake.fr/|{{Pkg|handbrake}}}}<br />
* {{App|Hybrid|Multi platform Qt based frontend for a bunch of other tools which can convert nearly every input to x264/Xvid/VP8 + ac3/ogg/mp3/aac/flac inside an mp4/m2ts/mkv/webm/mov/avi container, a Blu-ray or an AVCHD structure.|http://www.selur.de/|{{AUR|hybrid-encoder}}}}<br />
* {{App|[[MEncoder]]|Free command line video decoding, encoding and filtering tool released under the GNU GPL. It is a close sibling to MPlayer and can convert all the formats that MPlayer understands into a variety of compressed and uncompressed formats using different codecs. Wrapper programs like {{AUR|h264enc}} and {{AUR|undvd}}{{Broken package link|{{aur-mirror|undvd}}}} can provide an assistive interface. Many [[MEncoder#GUI frontends|GUI frontends]] are available.|http://www.mplayerhq.hu/|{{Pkg|mencoder}}}}<br />
* {{App|Transcode|Video/DVD ripper and encoder with the CLI.|http://transcoding.org/|{{Pkg|transcode}}}}<br />
<br />
==== dvd::rip ====<br />
<br />
dvd::rip is a front-end to {{Pkg|transcode}}, used to extract DVD's to the hard disk and transcode or extract and transcode on-the-fly.<br />
<br />
The following packages should be installed:<br />
* {{Pkg|dvdrip}}: GTK front-end for {{Pkg|transcode}}, which performs the ripping and encoding<br />
* {{Pkg|libdv}}: Software codec for DV video<br />
* {{Pkg|xvidcore}}: If you want to encode your ripped files as XviD, an open source MPEG-4 video codec (free alternative to DivX).<br />
* {{AUR|divx4linux}}{{Broken package link|{{aur-mirror|divx4linux}}}}: If you want to encode your ripped files as DivX.<br />
* {{AUR|subtitleripper}}: If you want to read and process subtitles.<br />
The dvd::rip preferences are mostly well-documented/self-explanatory. If you need help with something, see http://www.exit1.org/dvdrip/doc/gui-gui_pref.cipp.<br />
<br />
Ripping a DVD is often a simple matter of selecting the preferred codec(s), selecting the desired titles, then clicking the "Rip" button.<br />
<br />
=== DVD-Audio ===<br />
<br />
* {{App|Python Audio Tools|Includes dvda2track, which is easy to use command line tool to extract DVD-Audio tracks to uncompressed wav files.<br />
|http://audiotools.sourceforge.net/|{{AUR|audiotools-git}}}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Brasero fails to normalize audio CD ===<br />
<br />
If you try to burn it may stop at the first step called Normalization.<br />
<br />
As a workaround you can disable the normalization plugin using the ''Edit > Plugins'' menu<br />
<br />
=== VLC: Error "... could not open the disc /dev/dvd" ===<br />
<br />
If you get an error like<br />
<br />
vlc dvdread could not open the disc "/dev/dvd"<br />
<br />
it may be because there is no device node {{ic|/dev/dvd}} on your system. Udev no longer creates {{ic|/dev/dvd}} and instead uses {{ic|/dev/sr0}}. To fix this, edit the VLC configuration file ({{ic|~/.config/vlc/vlcrc}}):<br />
<br />
# DVD device (string)<br />
dvd=/dev/sr0<br />
<br />
=== DVD drive is noisy ===<br />
<br />
If playing DVD videos causes the system to be very loud, it may be because the disk is spinning faster than it needs to. To temporarily change the speed of the drive, run:<br />
<br />
# eject -x 12 /dev/dvd<br />
<br />
Sometimes:<br />
<br />
# hdparm -E12 /dev/dvd<br />
<br />
Any speed that is supported by the drive can be used, or 0 for the maximum speed.<br />
<br />
[http://michal.kosmulski.org/computing/tips/cd-rom-speed.html Setting CD-ROM and DVD-ROM drive speed]<br />
<br />
=== Playback does not work with new computer (new DVD-Drive) ===<br />
<br />
If playback does not work and you have a new computer (new DVD-Drive) the reason might be that the [[Wikipedia:DVD region code|region code]] is not set. You can read and set the region code with the {{AUR|regionset}} package.<br />
<br />
=== None of the above programs are able to rip/encode a DVD to my hard disk! ===<br />
<br />
Make sure the region of your DVD reader is set correctly; otherwise, you will get loads of inexplicable [[Wikipedia:Content Scramble System|CSS]]-related errors. Use the {{AUR|regionset}} package to do so.<br />
<br />
=== GUI program log indicates problems with backend program ===<br />
<br />
If you use a GUI program and experience problems which the program's log blames on some backend program, then try to reproduce the problem by the logged backend program arguments.<br />
Whether you succeed with reproducing or not, you may report the logged lines and your own findings to the places mentioned in [[#Burn backend problems]] section.<br />
<br />
==== Special case: medium error / write error ====<br />
<br />
Here are some typical messages about the drive disliking the medium. This can only be solved by using a different drive or a different medium. A different program will hardly help.<br />
<br />
Brasero with backend growisofs:<br />
BraseroGrowisofs stderr: :-[ WRITE@LBA=0h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error<br />
<br />
Brasero with backend libburn:<br />
BraseroLibburn Libburn reported an error SCSI error on write(16976,16): [3 0C 00] Write error<br />
<br />
=== AHCI ===<br />
<br />
If your new DVD drive is detected but you can't mount disks, check wether your BIOS uses [[AHCI]] and add the module to the kernel image.<br />
<br />
Edit {{ic|/etc/mkinitcpio.conf}} and add {{ic|ahci}} to the {{ic|MODULES}} variable (see [[mkinitcpio]] for details):<br />
MODULES="ahci"<br />
<br />
Rebuild the kernel image so that it includes the newly added module:<br />
# mkinitcpio -p linux<br />
<br />
=== BD-R DL 50GB errors on trying to burn second layer ===<br />
<br />
Using ''growisofs'' from {{Pkg|dvd+rw-tools}} for burning 50GB BD-R DL discs might result in a fatal error and damaged media, such as:<br />
<br />
{{hc|$ growisofs -Z /dev/sr0 -J -R -V "label" files|<nowiki><br />
Executing 'mkisofs -J -R -V label files | builtin_dd of=/dev/sr0 obs=32k seek=0'<br />
I: -input-charset not specified, using utf-8 (detected in locale settings)<br />
0.03% done, estimate finish Fri Jan 29 19:50:36 2016<br />
0.05% done, estimate finish Fri Jan 29 19:50:36 2016<br />
0.08% done, estimate finish Fri Jan 29 19:50:36 2016<br />
/dev/sr0: pre-formatting blank BD-R for 49.8GB...<br />
/dev/sr0: "Current Write Speed" is 8.2x4390KBps.<br />
0.11% done, estimate finish Sat Jan 30 03:29:13 2016<br />
0.13% done, estimate finish Sat Jan 30 02:10:01 2016<br />
...<br />
63.20% done, estimate finish Fri Jan 29 20:43:45 2016<br />
:-[ WRITE@LBA=b6d820h failed with SK=3h/WRITE ERROR]: Input/output error<br />
:-( write failed: Input/output error<br />
/dev/sr0: flushing cache<br />
/dev/sr0: closing track<br />
/dev/sr0: closing session<br />
:-[ CLOSE SESSION failed with SK=5h/INVALID FIELD IN CDB]: Input/output error<br />
/dev/sr0: reloading tray<br />
</nowiki>}}<br />
<br />
This happened at the 25GB boundary when starting to write the second layer. Using ''cdrecord'' from {{Pkg|cdrtools}} works with no problems. Tested with a 'HL-DT-ST BD-RE WH16NS40' LG burner, and Verbatim BD-R DL 6x discs (#96911). {{bug|47797}}<br />
<br />
=== Disc tray autocloses ===<br />
<br />
If after ejecting a cd, either by using the {{ic|eject}} command, or pushing the drive button, the drive disc tray autocloses before being able to remove the disc, try the following command:<br />
<br />
# sysctl -w dev.cdrom.autoclose=0<br />
<br />
If that solves the problem, make the change permanent:<br />
<br />
{{hc|/etc/sysctl.d/60-cdrom-autoclose.conf|2=dev.cdrom.autoclose = 0}}<br />
<br />
== See also ==<br />
<br />
* In the United States, backup of physically obtained media is allowed under these conditions: [https://www.riaa.com/resources-learning/about-piracy/ About Piracy - RIAA].<br />
* [[Convert any Movie to DVD Video]]<br />
* [http://libburnia-project.org/ Main page of the project Libburnia]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Systemd-nspawn&diff=471173Systemd-nspawn2017-03-18T15:03:02Z<p>TheJJ: /* Enable container on boot */ symlinks to work now</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Virtualization]]<br />
[[ja:Systemd-nspawn]]<br />
[[ru:Systemd-nspawn]]<br />
{{Related articles start}}<br />
{{Related|systemd}}<br />
{{Related|Linux Containers}}<br />
{{Related|systemd-networkd}}<br />
{{Related|Docker}}<br />
{{Related|Lxc-systemd}}<br />
{{Related articles end}}<br />
<br />
''systemd-nspawn'' is like the [[chroot]] command, but it is a ''chroot on steroids''.<br />
<br />
''systemd-nspawn'' may be used to run a command or OS in a light-weight namespace container. It is more powerful than [[chroot]] since it fully virtualizes the file system hierarchy, as well as the process tree, the various IPC subsystems and the host and domain name.<br />
<br />
''systemd-nspawn'' limits access to various kernel interfaces in the container to read-only, such as {{ic|/sys}}, {{ic|/proc/sys}} or {{ic|/sys/fs/selinux}}. Network interfaces and the system clock may not be changed from within the container. Device nodes may not be created. The host system cannot be rebooted and kernel modules may not be loaded from within the container.<br />
<br />
This mechanism differs from [[Lxc-systemd]] or [[Libvirt]]-lxc, as it is a much simpler tool to configure.<br />
<br />
== Installation ==<br />
<br />
''systemd-nspawn'' is part of and packaged with {{Pkg|systemd}}. <br />
<br />
== Examples ==<br />
<br />
=== Create and boot a minimal Arch Linux distribution in a container ===<br />
<br />
First install {{Pkg|arch-install-scripts}}.<br />
<br />
Next, create a directory to hold the container. In this example we will use {{ic|~/MyContainer}}. <br />
<br />
Next, we use pacstrap to install a basic arch-system into the container. At minimum we need to install the {{Grp|base}} group. <br />
<br />
# pacstrap -i -c -d ~/MyContainer base [additional pkgs/groups]<br />
<br />
{{Tip|The {{ic|-i}} option will '''avoid''' auto-confirmation of package selection. As you do not need to install the Linux kernel in the container, you can remove it from the package list selection to save space. See [[Pacman#Usage]].}}<br />
<br />
{{Note|The package {{Pkg|linux-firmware}} required by {{Pkg|linux}}, which is included in the {{Grp|base}} group and isn't necessary to run the container, causes some issues to {{ic|systemd-tmpfiles-setup.service}} during the booting process with {{ic|systemd-nspawn}}. It's possible to install the {{Grp|base}} group but excluding the {{Pkg|linux}} package and its dependencies when building the container with {{ic|# pacstrap -c -d ~/MyContainer base --ignore linux [additional pkgs/groups]}}. The {{ic|--ignore}} flag will be simply passed to {{Pkg|pacman}}. See {{Bug|46591}} for more information.}}<br />
<br />
Once your installation is finished, boot into the container:<br />
<br />
# systemd-nspawn -b -D ~/MyContainer<br />
<br />
The {{ic|-b}} option will boot the container (i.e. run {{ic|systemd}} as PID=1), instead of just running a shell, and {{ic|-D}} specifies the directory that becomes the container's root directory.<br />
<br />
After the container starts, log in as "root" with no password.<br />
<br />
The container can be powered off by running {{ic|poweroff}} from within the container. From the host, containers can be controlled by the [[#machinectl|machinectl]] tool.<br />
<br />
{{Note|To terminate the ''session'' from within the container, hold {{ic|Ctrl}} and rapidly press {{ic|]}} three times. Non US keyboard will use {{ic|%}} instead of {{ic|]}}}}<br />
<br />
==== Bootstrap Arch Linux i686 inside x86_64 host ====<br />
<br />
It is possible to install a minimal i686 Arch Linux inside a subdirectory and use it as systemd-nspawn container instead of [[chroot]] or [[virtualization]]. This is useful for testing {{ic|PKGBUILD}} compilation for i686 and other tasks. Make sure you use a {{ic|pacman.conf}} '''without''' {{ic|multilib}} repository.<br />
<br />
# pacman_conf=/tmp/pacman.conf # this is pacman.conf without multilib<br />
# mkdir /mnt/i686-archlinux<br />
# linux32 pacstrap -C "$pacman_conf" -di /mnt/i686-archlinux base base-devel<br />
<br />
You may deselect {{ic|linux}} from {{ic|base}} group, since the resulting bootstrap directory is not meant to be booted on real or virtualized hardware.<br />
<br />
To start the resulting i686 Arch Linux systemd-nspawn instance, just issue the following command.<br />
<br />
# linux32 systemd-nspawn -D /mnt/i686-archlinux<br />
<br />
=== Create a Debian or Ubuntu environment ===<br />
<br />
Install {{Pkg|debootstrap}}, {{Aur|gnupg1}}, and one or both of {{Aur|debian-archive-keyring}} and {{Aur|ubuntu-keyring}} (obviously install the keyrings for the distros you want).<br />
<br />
{{Note|''systemd-nspawn'' requires that the operating system in the container has systemd running as PID 1 and ''systemd-nspawn'' is installed in the container. This means Ubuntu before 15.04 will not work out of the box and requires additional configuration to switch from upstart to systemd. Also make sure that the {{ic|systemd-container}} package is installed on the container system.}}<br />
<br />
From there it's rather easy to setup Debian or Ubuntu environments:<br />
<br />
# cd /var/lib/machines<br />
# debootstrap <codename> myContainer <repository-url><br />
<br />
For Debian valid code names are either the rolling names like "stable" and "testing" or release names like "stretch" and "sid", for Ubuntu the code name like "wily" or "hardy" should be used. A complete list of codenames is in {{ic|/usr/share/debootstrap/scripts}}. In case of a Debian image the "repository-url" can be {{ic|http://deb.debian.org/debian/}}.<br />
<br />
Unlike Arch, Debian and Ubuntu will not let you login without a password on first login. To set the root password login without the '-b' option and set a password:<br />
<br />
# systemd-nspawn -D myContainer<br />
# passwd<br />
# logout<br />
<br />
=== Enable container on boot ===<br />
<br />
When using a container frequently, you may want to start it on boot.<br />
<br />
First [[enable]] the {{ic|machines.target}} target, then {{ic|systemd-nspawn@''myContainer''.service}}, where {{ic|myContainer}} is an nspawn container in {{ic|/var/lib/machines}}.<br />
<br />
{{Tip|<br />
* To customize the startup of a container, [[edit]] the {{ic|systemd-nspawn@''myContainer''}} unit instance. See {{ic|systemd-nspawn(1)}} for all options.<br />
}}<br />
<br />
=== Build and test packages ===<br />
<br />
See [[Creating packages for other distributions]] for example uses.<br />
<br />
== Management ==<br />
<br />
=== machinectl ===<br />
<br />
{{Note|The ''machinectl'' tool requires [[systemd]] and {{Pkg|dbus}} to be installed in the container. See [https://github.com/systemd/systemd/issues/685] for detailed discussion.}}<br />
<br />
Managing your containers is essentially done with the {{ic|machinectl}} command. See {{ic|machinectl(1)}} for details.<br />
<br />
Examples:<br />
<br />
Spawn a new shell inside a running container: <br />
<br />
$ machinectl login ''MyContainer''<br />
<br />
Show detailed information about a container: <br />
<br />
$ machinectl status ''MyContainer''<br />
<br />
Reboot a container:<br />
<br />
$ machinectl reboot ''MyContainer''<br />
<br />
Poweroff a container:<br />
<br />
$ machinectl poweroff ''MyContainer''<br />
<br />
{{Tip|Poweroff and reboot operations can be performed from within a container session using the ''systemctl'' {{ic|poweroff}} or {{ic|reboot}} commands.}}<br />
<br />
Download an image:<br />
<br />
# machinectl pull-tar ''URL'' ''name''<br />
<br />
=== systemd toolchain ===<br />
<br />
Much of the core systemd toolchain has been updated to work with containers. Tools that do usually provide a {{ic|1=-M, --machine=}} option which will take a container name as argument.<br />
<br />
Examples:<br />
<br />
See journal logs for a particular machine:<br />
<br />
$ journalctl -M ''MyContainer''<br />
<br />
Show control group contents:<br />
<br />
$ systemd-cgls -M ''MyContainer''<br />
<br />
See startup time of container:<br />
<br />
$ systemd-analyze -M ''MyContainer''<br />
<br />
For an overview of resource usage:<br />
<br />
$ systemd-cgtop<br />
<br />
== Tips and tricks ==<br />
<br />
=== Use an X environment ===<br />
<br />
See [[Xhost]] and [[Change root#Run graphical applications from chroot]].<br />
<br />
You will need to set the {{ic|DISPLAY}} environment variable inside your container session to connect to the external X server.<br />
<br />
X stores some required files in the {{ic|/tmp}} directory. In order for your container to display anything, it needs access to those files. To do so, append the {{ic|--bind<nowiki>=</nowiki>/tmp/.X11-unix:/tmp/.X11-unix}} option when starting the container.<br />
<br />
=== Run Firefox ===<br />
<br />
See [[Firefox tweaks#Run Firefox inside an nspawn container|Firefox tweaks]].<br />
<br />
=== Access host filesystem ===<br />
<br />
See {{ic|--bind}} and {{ic|--bind-ro}} in {{ic|man systemd-nspawn}}.<br />
<br />
If both the host and the container are Arch Linux, then one could, for example, share the pacman cache:<br />
<br />
# systemd-nspawn --bind=/var/cache/pacman/pkg<br />
<br />
=== Configure networking ===<br />
<br />
{{Style}}<br />
<br />
<br />
For the most simple setup, allowing outgoing connections to the internet, you can use [[systemd-networkd]] for network management and DHCP and {{ic|systemd-resolved}} for DNS.<br />
<br />
# systemctl enable --now systemd-networkd systemd-resolved<br />
# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf # let systemd-resolved manage /etc/resolv.conf<br />
<br />
This assumes you have started {{ic|systemd-nspawn}} with the {{ic|-n}} switch, creating a virtual Ethernet link to the host.<br />
<br />
Instead of using {{ic|systemd-resolved}} you can also manually [[textedit|edit]] your container's {{ic|/etc/resolv.conf}} by adding your DNS server's IP address.<br />
<br />
Note the canonical [[systemd-networkd]] host and container .network files are from https://github.com/systemd/systemd/tree/master/network .<br />
<br />
See [[systemd-networkd#Usage with containers]] for more complex examples.<br />
<br />
==== nsswitch.conf ====<br />
<br />
{{Merge|systemd-networkd}}<br />
<br />
To make it easier to connect to a container from the host, you can enable local DNS resolution for container names. In {{ic|/etc/nsswitch.conf}}, add {{ic|mymachines}} to the {{ic|hosts:}} section, e.g.<br />
<br />
hosts: files mymachines dns myhostname<br />
<br />
Then, any DNS lookup for hostname {{ic|foo}} on the host will first consult {{ic|/etc/hosts}}, then the names of local containers, then upstream DNS etc.<br />
<br />
==== Use host networking ====<br />
<br />
To disable private networking used by containers started with {{ic|machinectl start MyContainer}}, [[edit]] the configuration of {{ic|systemd-nspawn@.service}} with {{ic|systemctl edit systemd-nspawn@.service}} and set the {{ic|1=ExecStart=}} option without the {{ic|--network-veth}} parameter unlike the original service:<br />
<br />
{{hc|/etc/systemd/system/systemd-nspawn@.service.d/override.conf|<nowiki><br />
[Service]<br />
ExecStart=<br />
ExecStart=/usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --machine=%I<br />
</nowiki>}}<br />
<br />
The newly started containers will use the hosts networking.<br />
<br />
==== Virtual Ethernet interfaces ====<br />
<br />
If a container is started with {{ic|systemd-nspawn ... -n}}, systemd will automatically create one virtual Ethernet interface on the host, and one in the container, connected by a virtual Ethernet cable.<br />
<br />
If the name of the container is {{ic|foo}}, the name of the virtual Ethernet interface on the host is {{ic|ve-foo}}. The name of the virtual Ethernet interface in the container is always {{ic|host0}}.<br />
<br />
When examining the interfaces with {{ic|ip link}}, interface names will be shown with a suffix, such as {{ic|ve-foo@if2}} and {{ic|host0@if9}}. The {{ic|@ifN}} is not actually part of the name of the interface; instead, {{ic|ip link}} appends this information to indicate which "slot" the virtual Ethernet cable connects to on the other end.<br />
<br />
For example, a host virtual Ethernet interface shown as {{ic|ve-foo@if2}} will connect to container {{ic|foo}}, and inside the container to the second network interface -- the one shown with index 2 when running {{ic|ip link}} inside the container. Similarly, in the container, the interface named {{ic|host0@if9}} will connect to the 9th slot on the host.<br />
<br />
=== Run on a non-systemd system ===<br />
<br />
See [[Init#systemd-nspawn]].<br />
<br />
=== Specify per-container settings ===<br />
<br />
To specify per-container settings and not overrides for all (e.g. bind a directory to only one container)[https://github.com/systemd/systemd/issues/3442#issuecomment-223837408], the ".nspawn" file definition can be used [https://www.freedesktop.org/software/systemd/man/systemd.nspawn.html#]<br />
<br />
man systemd.nspawn<br />
<br />
=== Use Btrfs subvolume as container root ===<br />
<br />
To use a [[Btrfs#Subvolumes|Btrfs subvolume]] as a template for the container's root, use the {{ic|--template}} flag. This takes a snapshot of the subvolume and populates the root directory for the container with it.<br />
<br />
{{Note|If the template path specified is not the root of a subvolume, the '''entire''' tree is copied. This will be very time consuming.}}<br />
<br />
For example, to use a snapshot located at {{ic|/.snapshots/403/snapshot}}:<br />
<br />
# systemd-nspawn --template=/.snapshots/403/snapshots -b -D ''my-container''<br />
<br />
where {{ic|''my-container''}} is the name of the directory that will be created for the container. After powering off, the newly created subvolume is retained.<br />
<br />
=== Use temporary Btrfs snapshot of container ===<br />
<br />
One can use the {{ic|--ephemeral}} or {{ic|-x}} flag to create a temporary btrfs snapshot of the container and use it as the container root. Any changes made while booted in the container will be lost. For example:<br />
<br />
# systemd-nspawn -D ''my-container'' -xb<br />
<br />
where ''my-container'' is the directory of an '''existing''' container or system. For example, if {{ic|/}} is a btrfs subvolume one could create an ephemeral container of the currently running host system by doing:<br />
<br />
# systemd-nspawn -D / -xb <br />
<br />
After powering off the container, the btrfs subvolume that was created is immediately removed.<br />
<br />
== Troubleshooting ==<br />
<br />
=== root login fails ===<br />
<br />
If you get the following error when you try to login (i.e. using {{ic|machinectl login <name>}}):<br />
<br />
arch-nspawn login: root<br />
Login incorrect<br />
<br />
And {{ic|journalctl}} shows:<br />
<br />
pam_securetty(login:auth): access denied: tty 'pts/0' is not secure !<br />
<br />
Add {{ic|pts/0}} to the list of terminal names in {{ic|/etc/securetty}} on the '''container''' filesystem, see [http://unix.stackexchange.com/questions/41840/effect-of-entries-in-etc-securetty/41939#41939]. You can also opt to delete {{ic|/etc/securetty}} on the '''container''' to allow root to login to any tty, see [https://github.com/systemd/systemd/issues/852].<br />
<br />
=== Unable to upgrade some packages on the container ===<br />
<br />
It can sometimes be impossible to upgrade some packages on the container, {{Pkg|filesystem}} being a perfect example. The issue is due to {{ic|/sys}} being mounted as Read Only. The workaround is to remount the directory in Read Write when running {{ic|mount -o remount,rw -t sysfs sysfs /sys}}, do the upgrade then reboot the container.<br />
<br />
== See also ==<br />
<br />
* [[Getty#Nspawn_console|Automatic console login]]<br />
* [http://www.freedesktop.org/software/systemd/man/machinectl.html machinectl man page]<br />
* [http://www.freedesktop.org/software/systemd/man/systemd-nspawn.html systemd-nspawn man page]<br />
* [http://lwn.net/Articles/572957/ Creating containers with systemd-nspawn]<br />
* [https://www.youtube.com/results?search_query=systemd-nspawn&aq=f Presentation by Lennart Pottering on systemd-nspawn]<br />
* [http://dabase.com/e/12009/ Running Firefox in a systemd-nspawn container]</div>TheJJhttps://wiki.archlinux.org/index.php?title=User_talk:Lahwaacz&diff=468143User talk:Lahwaacz2017-02-11T13:25:50Z<p>TheJJ: /* HiDPI */ scale-from discussion</p>
<hr />
<div>== PodCastXDL ==<br />
<br />
About [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=323048] (and [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=next&oldid=323048]) [[User:Levi0x0x]], who should have indeed provided an edit summary, appears to be the developer of the application and the maintainer of the PKGBUILD. I would keep his edit. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 00:45, 5 July 2014 (UTC)<br />
<br />
:I know - I've seen also [https://wiki.archlinux.org/index.php?title=MPlayer&diff=next&oldid=322278 bash-player] removed, both from wiki and Github (it seems the repo has been recreated from scratch). PodCastXDL has always been available upstream. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:20, 5 July 2014 (UTC)<br />
<br />
::Didn't he add it to the list one week ago? [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=322258] Maybe he's found some bug and doesn't want people to use it until he fixes it? Anyway I'm not that interested, we can as well see if/how Levi0x0x reacts. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:32, 6 July 2014 (UTC)<br />
<br />
== bot AUR to Official Repository edit ==<br />
<br />
A recent bot edit ([https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py update Pkg/AUR templates]) by [[User:Lahwaacz.bot]] on the [[Gitolite]] page correctly changed the AUR template to Pkg but left the [[Arch User Repository]] link<br />
<br />
I fixed this, but would it be possible to modify the bot to take this into consideration?<br />
<br />
I can imagine that blanket changing AUR links to Official Repository links in any given page could be dangerous - but for common phrasing or possibly word distance it would seem to be relatively safe<br />
<br />
Or is there some sort of post-run manual inspection that I am unaware of that handles this situation? <br />
<br />
Specifically this [https://wiki.archlinux.org/index.php?title=Gitolite&diff=next&oldid=366859 edit]<br />
<br />
From:<br />
<pre><br />
{{AUR|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
To:<br />
<pre><br />
{{Pkg|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
<br />
<br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 01:50, 1 April 2015 (UTC)<br />
<br />
By "word distance" above what I _meant_ was [[Wikipedia:Edit Distance|Edit Distance]] ;)<br />
<br />
I was initially thinking of Hamming distance - but apparently that is for strings of equal length.<br />
<br />
What looks more promising is the Levenshtein distance - specifically "Comparing a list of strings" from the Python [https://pypi.python.org/pypi/Distance/0.1.3 Distance] package.<br />
<br />
Example shamelessly ripped from that page:<br />
<br />
(mainly because I couldn't link directly to the relevant section)<br />
<br />
<pre><br />
>>> sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']<br />
>>> sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog']<br />
>>> distance.levenshtein(sent1, sent2)<br />
3<br />
</pre><br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 04:07, 1 April 2015 (UTC)<br />
<br />
:Hi,<br />
:the bot currently does not touch the surrounding text at all, it only modifies the package templates or appends [[Template:Broken package link]] when the package is not found. This is obviously not perfect, this behaviour may lead to some incorrect combinations as you noticed, but blindly fixing the package links and not the surrounding text is still considered to be an improvement. Checking the surrounding text manually would require a lot of manpower, which we don't have, so it is currently not done systematically. Feel free to ask for further details or see the most recent discussion: [[ArchWiki:Requests#Strategy_for_updating_package_templates]].<br />
:Regarding automatic updates of the surrounding text, the edit distance gives a clue about whether given edit should be performed or not, but it does not define how an edit should be performed. It can be useful in cases where there are multiple feasible substitutions in text and the strategy to select the optimal substitution is e.g. to minimize the Levenshtein distance. But we don't have any algorithm to generate feasible substitutions yet, so this technique fails. The surrounding text substitution is also very context sensitive and wiki bots must be designed in a way to minimize (ideally avoid completely) the [[wikipedia:Error_of_the_first_kind|error of the first kind]], which in this case is modifying correct text to be incorrect. This makes defining general rules for the text substitution really hard, on the other hand many rules would be necessary to cover even the basic form of standard wording, so in the end both ways may be comparably hard. Anyway, if you have some ideas, I'm all ears :)<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:51, 1 April 2015 (UTC)<br />
<br />
== bot checking links after move ==<br />
<br />
Hi, re [[Talk:Touchpad Synaptics#adding libinput alternative]]. [[Touchpad Synaptics]] has 100+ backlinks and the more important ones - a bit tedious task. I was just glancing over your clever github bot scripts. It would be handy to have a script after such moves: walk over the backlinks of [[Touchpad Synaptics]] and just replace "[[Touchpad Synaptics" with "[[Synaptics" from the links. That would leave all links to subsections intact. Leaving out the translations to handle manually, there would not be much to go wrong, or? --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:36, 26 September 2015 (UTC)<br />
<br />
:Hi, thanks for the suggestion. It would be indeed handy in this case, but most likely not generally. Imagine that there was a [[UUID]] page, which was later generalized and renamed to [[Persistent block device naming]] and content about UUID is now only a section on the page. In this case using the naive replacement would likely change the meaning of many sentences, and using shorter redirects for convenience is actually encouraged. There would have to be a list of whitelisted "harmless" replacements, which could even help to replace <nowiki>[[pacman|Install]]</nowiki> with <nowiki>[[Install]]</nowiki> etc. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:01, 26 September 2015 (UTC)<br />
<br />
::Yes, good examples, but you are thinking universal already :) I did not mean it could be that. For example, if you take the time when the bulk of the title case moves were done. With such a script one could avoid a lot of internal redirects as well. E.g. [https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Beginners'_Guide]. But it's ok, just an idea. Please close this, if you think it's too singular cases with a simple enough replacement where it could be applied. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 10:02, 26 September 2015 (UTC)<br />
<br />
== aur-mirror ==<br />
<br />
Hi Lahwaacz,<br />
<br />
It seems that [http://pkgbuild.com/git/aur-mirror.git aur-mirror] has been down for a while.<br />
I'm not sure if this is intentional or not, but if it is, could you have Lahwaacz.bot remove [[Template:Aur-mirror]] from pages? At least where they are in a [[Template:Broken package link]] like {{ic|<nowiki>{{Broken package link|{{aur-mirror|foobar}}}}</nowiki>}}.<br />
<br />
If there is anything I can do to help, let me know.<br />
<br />
Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 14:56, 19 October 2016 (UTC)<br />
<br />
:Maybe drifting a bit offtopic... but I'm in favor to finally remove any and all packages that are not on AUR4 from the wiki. Users have had over a year time to migrate, which is a century in Arch standards. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:21, 19 October 2016 (UTC)<br />
<br />
::I agree, especially on pages like [[List of games]] (already [https://wiki.archlinux.org/index.php?title=List_of_games&curid=4401&diff=454419&oldid=454356 took care of that]), and [[List of Applications]] (see [[Talk:List of applications#AUR3 packages]]). On other pages, where the non-existing packages are mentioned inline, it requires some more knowledge and effort to remove them. -- [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:34, 19 October 2016 (UTC)<br />
<br />
:::Hmm... For the moment I just updated the template to point to Github instead. What would be the alternative "hint" without the link? It should still be different from just "package not found". -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:08, 19 October 2016 (UTC)<br />
<br />
::::The GitHub repository is fine as well. I think we can keep that one while we (carefully) remove/update all broken links. Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 06:52, 20 October 2016 (UTC)<br />
<br />
== OpenVPN ==<br />
<br />
Hi, the topic about setting the key password was a tip, and the only way that work to have the openvpn "ask" for the key password. The systemd-ask-pass is not working. So when the openvpn service is started it does not ask for the key password.<br />
I know it is not the best sollution, far away from that, but it was the only way that i can put it to work. I think it is a valuable tipo, although it have to came with a security note.<br />
Can be this way?<br />
<br />
{{unsigned|10:52, 31 October 2016|Mawcomw}}<br />
<br />
:Is there a reason why you have a password-protected key or was it set up implicitly by following some guide? Note that you can [http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke remove the passphrase without generating a new key]. If you have a good reason for using the passphrase, using plain {{ic|--askpass}} without a file would allow openvpn to ask for the passphrase on its standard input, but that probably does not work well with systemd units starting at boot. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:41, 31 October 2016 (UTC)<br />
<br />
== CPU frequency scaling ==<br />
Done a few tests with i5-6400 CPU @ 2.70GHz (TB up to 3.30GHz):<br />
<br />
{{hc|<nowiki>$ cpupower frequency-info</nowiki>|<br />
analyzing CPU 0:<br />
driver: intel_pstate<br />
CPUs which run at the same hardware frequency: 0<br />
CPUs which need to have their frequency coordinated by software: 0<br />
maximum transition latency: Cannot determine or is not supported.<br />
hardware limits: 800 MHz - 3.30 GHz<br />
available cpufreq governors: performance powersave<br />
current policy: frequency should be within 800 MHz and 3.30 GHz.<br />
The governor "powersave" may decide which speed to use<br />
within this range.<br />
current CPU frequency: 800 MHz (asserted by call to hardware)<br />
boost state support:<br />
Supported: yes<br />
Active: yes<br />
}}<br />
<br />
# cpupower frequency-set -g performance<br />
<br />
Using {{ic|watch}}:<br />
current CPU frequency: 3.25 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.29 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.26 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.28 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.30 GHz (asserted by call to hardware)<br />
<br />
As you can see the CPU keeps trying to run at the max. frequency (including TB).<br />
<br />
If not running any commands, moving the cursor, or any other activity, the CPU starts throttling back, but will immediately boost again to full freq. when doing a simple task.<br />
<br />
The same behaviour happen with a Intel i5-2400 (including TB).<br />
<br />
I don't recommend the use of the performance governor at all, even on good cooling.<br />
<br />
What are your thoughts on this? Thanks.<br />
<br />
[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 21:39, 11 December 2016 (UTC)<br />
<br />
:You're already observing that it does not "run at the maximum frequency". It's simply (much) more aggressive at rising the frequency, nothing more. Also, you should use {{pkg|i7z}} to monitor the per-core frequency. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 22:15, 11 December 2016 (UTC)<br />
<br />
::That's the thing I want to show, it doesn't aggressive rising the frequency, but simple tries to run the CPU at max. speed all the time, even when doing nothing at all:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Cpu speed from cpuinfo 2712.00Mhz<br />
True Frequency (without accounting Turbo) 2712 MHz<br />
CPU Multiplier 27x || Bus clock frequency (BCLK) 100.44 MHz<br />
<br />
Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]<br />
TURBO ENABLED on 4 Cores, Hyper Threading OFF<br />
Max Frequency without considering Turbo 2812.44 MHz (100.44 x [28])<br />
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 33x/33x/32x/31x<br />
Real Current Frequency 3241.60 MHz [100.44 x 32.27] (Max of below)<br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3155.71 (31.42x) 1.25 93.9 1 3.65 21 1.1155<br />
Core 2 [1]: 3241.60 (32.27x) 1.49 95.3 1 1.88 20 1.1091<br />
Core 3 [2]: 2844.39 (28.32x) 1 95.4 1 2.59 20 1.1090<br />
Core 4 [3]: 3226.32 (32.12x) 1.45 95.7 1 1.56 20 1.1090<br />
</nowiki><br />
}}<br />
<br />
One. sec. later, keep in mind this is including turbo-boost and nothing happens in the background and I'm not touching anything. Command electron is running, but keeps hitting <10% CPU usage, could try to disable, but 5% usage isn't really needed to boost the CPU to it's max. clockspeed:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 2917.95 (29.06x) 1 97.9 0 1.78 21 1.1044<br />
Core 2 [1]: 3276.91 (32.64x) 1 98.2 0 1.12 21 1.1072<br />
Core 3 [2]: 3266.05 (32.53x) 1.36 98.4 0 0 20 1.1138<br />
Core 4 [3]: 3278.00 (32.65x) 1 97.6 0 1.19 21 1.1138<br />
</nowiki><br />
}}<br />
<br />
Switching back to {{ic|powersave}}, also notice the decrease of the VCore:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 800.14 (7.97x) 18.1 75.9 1 17.8 21 0.7522<br />
Core 2 [1]: 801.91 (7.98x) 13.1 77.3 1 17.8 21 0.7512<br />
Core 3 [2]: 825.59 (8.22x) 18.5 72.4 1 21 20 0.7511<br />
Core 4 [3]: 800.47 (7.97x) 16.2 77.5 1 16.7 21 0.7512<br />
</nowiki><br />
}}<br />
::That's why I've added the warning message, the voltage and temperatures will increase, and it doesn't have any positive effect, maybe if running games, but it seems like a waste of energy atm.<br />
::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 12:59, 12 December 2016 (UTC)<br />
<br />
:::Then I'd say that your system is not really idle - what if you run it from the Linux console, with Xorg shut down? On i5-2430M (base freq 2394 MHz, boost to 2993 MHz), I'm getting the following with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 857.47 (8.60x) 2.1 99.2 0 0 47 0.8206<br />
Core 2 [2]: 997.56 (10.00x) 3.95 97.4 1 0 47 0.8156<br />
</nowiki>}}<br />
:::And with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1162.35 (11.65x) 1.09 99.5 0 0 47 1.2109<br />
Core 2 [2]: 1553.64 (15.58x) 1 98.5 1 0 45 1.2109<br />
</nowiki>}}<br />
:::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:24, 12 December 2016 (UTC)<br />
::::Without X or any apps, using performance:<br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3292.33 (32.78x) 63.5 22.9 0 0 24 1.1078<br />
Core 2 [1]: 3237.91 (32.24x) 0 100 0 0 22 1.1031<br />
Core 3 [2]: 3286.59 (32.72x) 1 64 1 34.9 22 1.1028<br />
Core 4 [3]: 3165.25 (31.51x) 1 100 0 0 21 1.0978<br />
<br />
{{hc|<nowiki># htop</nowiki>|<br />
<nowiki><br />
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command<br />
1 root 20 0 132M 6804 5184 S 0.0 0.0 0:00.86 /sbin/init<br />
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd<br />
3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0<br />
7 root 20 0 0 0 0 S 0.0 0.0 0:01.95 rcu_preempt<br />
8 root 20 0 0 0 0 S 0.0 0.0 0:00.01 rcu_sched<br />
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh<br />
10 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/0<br />
11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain<br />
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0<br />
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0<br />
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1<br />
15 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1<br />
16 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/1<br />
17 root 20 0 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/1<br />
20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2<br />
21 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2<br />
22 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/2<br />
23 root 20 0 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/2<br />
26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3<br />
27 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3<br />
28 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/3<br />
29 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/3<br />
31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H<br />
32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs<br />
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns<br />
34 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd<br />
35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper<br />
36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback<br />
37 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0<br />
38 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd<br />
39 root 39 19 0 0 0 S 0.0 0.0 0:00.44 khugepaged<br />
40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto<br />
41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd<br />
42 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd<br />
44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 devfreq_wq<br />
45 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd<br />
47 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0<br />
48 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 vmstat<br />
57 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld<br />
58 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf<br />
60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq<br />
61 root 20 0 0 0 0 S 0.0 0.0 0:00.32 kworker/u8:1<br />
83 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap<br />
129 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nvme<br />
155 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0<br />
156 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0<br />
157 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1<br />
158 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1<br />
159 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2<br />
160 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2<br />
161 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3<br />
162 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_3<br />
163 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_4<br />
164 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_4<br />
165 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_5<br />
166 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_5<br />
172 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
173 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
</nowiki><br />
}}<br />
::::PS. Sorry for all the spam, if you want I can moved to pastebin or something else. :)<br />
::::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 13:48, 12 December 2016 (UTC)<br />
<br />
:::::Well, on i7-5820K (base freq 3.3 GHz, boost to 3.6 GHz) that we have at school, I get the following result with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1725.61 (17.25x) 1.27 5.46 0 93.9 27 0.7705<br />
Core 2 [1]: 2322.11 (23.21x) 1 0.123 0 99.9 29 0.9701<br />
Core 3 [2]: 2532.10 (25.31x) 1 0.204 0 99.7 29 0.9801<br />
Core 4 [3]: 2128.67 (21.27x) 1 0.177 0 99.8 30 0.9724<br />
Core 5 [4]: 2267.82 (22.66x) 1 0.311 0 99.6 29 0.9703<br />
Core 6 [5]: 1792.93 (17.92x) 1 0.495 0 99.4 29 0.9974<br />
</nowiki>}} and with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1280.11 (12.79x) 1 5.29 0 94.3 26 0.7755<br />
Core 2 [1]: 1267.35 (12.67x) 1 46 0 54 28 0.7617<br />
Core 3 [2]: 1211.02 (12.10x) 1 0.442 0 99.5 28 0.7468<br />
Core 4 [3]: 1213.45 (12.13x) 1 100 0 0 30 0.7474<br />
Core 5 [4]: 1268.28 (12.68x) 1 100 0 0 28 0.7678<br />
Core 6 [5]: 1392.95 (13.92x) 1 22.2 0 77.7 27 0.7374<br />
</nowiki>}} While the frequency stays considerably higher with performance, it's nowhere near the peak frequency. So the behaviour must be model-specific. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:28, 16 December 2016 (UTC)<br />
::::::Thanks for the test. Tested on a few Intel i3/i5 procs and they all seem to show this behaviour, however I didn't test any i7 CPU, but indeed your results differ a lot. What should we do about the warning? :) -- [[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 18:48, 22 December 2016 (UTC)<br />
<br />
:::::::Currently it only says to watch out for temperature and voltage, which is fine in my view... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:43, 22 December 2016 (UTC)<br />
<br />
== Packages development pages ==<br />
<br />
Hi Lahwaacz. I see you reverted my edits. Actually sorting alphabetically was not the main purpose of my changes but include a link to the article [[VCS package guidelines]]. Yesterday, as I was updating my AUR packages, I had a hard time recovering the VCS page, just because it was not linked at all from any package development pages, not even from the Arch Linux wiki table of content (if I'm not wrong). Could you please investigate this issue? Also, I wanted to add precisions brought to [http://allanmcrae.com/2015/01/two-pgp-keyrings-for-package-management-in-arch-linux/ AllanMcrae blog post] in the Arch Linux pages, because without the help of our friends on IRC who linked me back to that post, I would have made false assumptions with my GPG signature check in my PKGBUILD. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 11:26, 7 January 2017 (UTC)<br />
<br />
:I must have missed that. In that case, there are many package guidelines pages for different programming languages etc., but the top level page for them is [[Creating packages]] (which is already linked from the related articles of [[PKGBUILD]]). The other pages are linked from e.g. [[Creating packages#More detailed guidelines]] or [[Arch packaging standards#Additional guidelines]] (the "Package creation guidelines" at the top of the [[Template:Package guidelines|navigation template]] leads to [[Creating packages]]).<br />
:As for [[Table of contents]], it lists only categories and [[VCS package guidelines]] is in [[:Category:Package development]].<br />
:I'm not aware of any inaccuracy on the wiki regarding Allan's blog post, see e.g. the note in [[makepkg#Signature checking]].<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:41, 7 January 2017 (UTC)<br />
<br />
:: Thanks for letting me know the VCS page was actually already linked from [[Creating packages#More detailed guidelines]]. It was well hidden. If I wasn't able to find it easily, while I'm used to use the Arch Linux wiki, imagine how hard it is for newcomers to find it. :-) This might be a problem.:-/ Additional/excessive cross-linking won't harm especially for SEO. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 12:43, 7 January 2017 (UTC)<br />
<br />
::: Catching up in my Arch related duties: we can clearly see "signature and .sig" files is a question that is [https://lists.archlinux.org/pipermail/arch-general/2016-January/040505.html often asked]. It needs clarification as, for other packages managers, relying on the package manager to download the public GPG key from a key server is not always the case (e.g. chocolatey on Windows). -- [[User:wget|wget]] ([[User talk:wget|talk]]) 14:43, 7 January 2017 (UTC)<br />
<br />
:::: [https://wiki.archlinux.org/index.php?title=PKGBUILD&type=revision&diff=461862&oldid=461777 Fixed]. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 15:16, 7 January 2017 (UTC)<br />
<br />
== PKGBUILD for AUR additional explanation ==<br />
<br />
[https://wiki.archlinux.org/index.php?title=Arch_User_Repository&type=revision&diff=466474&oldid=466429 Where does it belong to then]? Regards, -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:30, 23 January 2017 (UTC)<br />
<br />
:[[PKGBUILD#Package_relations|Here]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 23:35, 23 January 2017 (UTC)<br />
<br />
::Ok. I was actually hesitating between that page and the one I had actually written to. I'll repost to the right location then. Thanks for letting me know. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:37, 23 January 2017 (UTC)<br />
<br />
== HiDPI ==<br />
<br />
https://wiki.archlinux.org/index.php?title=HiDPI&diff=next&oldid=467953<br />
<br />
You undid my changes with the reason "scale-from does not configure DPI".<br />
Why is my change wrong? The previous content with --scale also does not configure DPI, but scales.<br />
<br />
Please explain why my change is different and not allowed.<br />
[[User:TheJJ|TheJJ]] ([[User talk:TheJJ|talk]]) 13:01, 11 February 2017 (UTC)<br />
<br />
:It's not disallowed, but I don't see the connection with the point of the section - configuring the same physical size on multiple displays with different PPI. This configuration can be naturally described using {{ic|--scale}}, but not with {{ic|--scale-from}}. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:11, 11 February 2017 (UTC)<br />
<br />
::{{ic|--scale-from}} is exactly the same as {{ic|--scale}}, except that you don't have to calculate the scale factor yourself, but xrandr does it for you. So this is very much the same as the current content of the article, and {{ic|--scale-from}} should go in there as well. It did help to scale the screen of a friend to the right amount, which was not some multiple of 0.5... [[User:TheJJ|TheJJ]] ([[User talk:TheJJ|talk]]) 13:25, 11 February 2017 (UTC)</div>TheJJhttps://wiki.archlinux.org/index.php?title=User_talk:Lahwaacz&diff=468139User talk:Lahwaacz2017-02-11T13:02:02Z<p>TheJJ: /* HiDPI */ add my signature</p>
<hr />
<div>== PodCastXDL ==<br />
<br />
About [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=323048] (and [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=next&oldid=323048]) [[User:Levi0x0x]], who should have indeed provided an edit summary, appears to be the developer of the application and the maintainer of the PKGBUILD. I would keep his edit. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 00:45, 5 July 2014 (UTC)<br />
<br />
:I know - I've seen also [https://wiki.archlinux.org/index.php?title=MPlayer&diff=next&oldid=322278 bash-player] removed, both from wiki and Github (it seems the repo has been recreated from scratch). PodCastXDL has always been available upstream. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:20, 5 July 2014 (UTC)<br />
<br />
::Didn't he add it to the list one week ago? [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=322258] Maybe he's found some bug and doesn't want people to use it until he fixes it? Anyway I'm not that interested, we can as well see if/how Levi0x0x reacts. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:32, 6 July 2014 (UTC)<br />
<br />
== bot AUR to Official Repository edit ==<br />
<br />
A recent bot edit ([https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py update Pkg/AUR templates]) by [[User:Lahwaacz.bot]] on the [[Gitolite]] page correctly changed the AUR template to Pkg but left the [[Arch User Repository]] link<br />
<br />
I fixed this, but would it be possible to modify the bot to take this into consideration?<br />
<br />
I can imagine that blanket changing AUR links to Official Repository links in any given page could be dangerous - but for common phrasing or possibly word distance it would seem to be relatively safe<br />
<br />
Or is there some sort of post-run manual inspection that I am unaware of that handles this situation? <br />
<br />
Specifically this [https://wiki.archlinux.org/index.php?title=Gitolite&diff=next&oldid=366859 edit]<br />
<br />
From:<br />
<pre><br />
{{AUR|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
To:<br />
<pre><br />
{{Pkg|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
<br />
<br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 01:50, 1 April 2015 (UTC)<br />
<br />
By "word distance" above what I _meant_ was [[Wikipedia:Edit Distance|Edit Distance]] ;)<br />
<br />
I was initially thinking of Hamming distance - but apparently that is for strings of equal length.<br />
<br />
What looks more promising is the Levenshtein distance - specifically "Comparing a list of strings" from the Python [https://pypi.python.org/pypi/Distance/0.1.3 Distance] package.<br />
<br />
Example shamelessly ripped from that page:<br />
<br />
(mainly because I couldn't link directly to the relevant section)<br />
<br />
<pre><br />
>>> sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']<br />
>>> sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog']<br />
>>> distance.levenshtein(sent1, sent2)<br />
3<br />
</pre><br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 04:07, 1 April 2015 (UTC)<br />
<br />
:Hi,<br />
:the bot currently does not touch the surrounding text at all, it only modifies the package templates or appends [[Template:Broken package link]] when the package is not found. This is obviously not perfect, this behaviour may lead to some incorrect combinations as you noticed, but blindly fixing the package links and not the surrounding text is still considered to be an improvement. Checking the surrounding text manually would require a lot of manpower, which we don't have, so it is currently not done systematically. Feel free to ask for further details or see the most recent discussion: [[ArchWiki:Requests#Strategy_for_updating_package_templates]].<br />
:Regarding automatic updates of the surrounding text, the edit distance gives a clue about whether given edit should be performed or not, but it does not define how an edit should be performed. It can be useful in cases where there are multiple feasible substitutions in text and the strategy to select the optimal substitution is e.g. to minimize the Levenshtein distance. But we don't have any algorithm to generate feasible substitutions yet, so this technique fails. The surrounding text substitution is also very context sensitive and wiki bots must be designed in a way to minimize (ideally avoid completely) the [[wikipedia:Error_of_the_first_kind|error of the first kind]], which in this case is modifying correct text to be incorrect. This makes defining general rules for the text substitution really hard, on the other hand many rules would be necessary to cover even the basic form of standard wording, so in the end both ways may be comparably hard. Anyway, if you have some ideas, I'm all ears :)<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:51, 1 April 2015 (UTC)<br />
<br />
== bot checking links after move ==<br />
<br />
Hi, re [[Talk:Touchpad Synaptics#adding libinput alternative]]. [[Touchpad Synaptics]] has 100+ backlinks and the more important ones - a bit tedious task. I was just glancing over your clever github bot scripts. It would be handy to have a script after such moves: walk over the backlinks of [[Touchpad Synaptics]] and just replace "[[Touchpad Synaptics" with "[[Synaptics" from the links. That would leave all links to subsections intact. Leaving out the translations to handle manually, there would not be much to go wrong, or? --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:36, 26 September 2015 (UTC)<br />
<br />
:Hi, thanks for the suggestion. It would be indeed handy in this case, but most likely not generally. Imagine that there was a [[UUID]] page, which was later generalized and renamed to [[Persistent block device naming]] and content about UUID is now only a section on the page. In this case using the naive replacement would likely change the meaning of many sentences, and using shorter redirects for convenience is actually encouraged. There would have to be a list of whitelisted "harmless" replacements, which could even help to replace <nowiki>[[pacman|Install]]</nowiki> with <nowiki>[[Install]]</nowiki> etc. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:01, 26 September 2015 (UTC)<br />
<br />
::Yes, good examples, but you are thinking universal already :) I did not mean it could be that. For example, if you take the time when the bulk of the title case moves were done. With such a script one could avoid a lot of internal redirects as well. E.g. [https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Beginners'_Guide]. But it's ok, just an idea. Please close this, if you think it's too singular cases with a simple enough replacement where it could be applied. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 10:02, 26 September 2015 (UTC)<br />
<br />
== aur-mirror ==<br />
<br />
Hi Lahwaacz,<br />
<br />
It seems that [http://pkgbuild.com/git/aur-mirror.git aur-mirror] has been down for a while.<br />
I'm not sure if this is intentional or not, but if it is, could you have Lahwaacz.bot remove [[Template:Aur-mirror]] from pages? At least where they are in a [[Template:Broken package link]] like {{ic|<nowiki>{{Broken package link|{{aur-mirror|foobar}}}}</nowiki>}}.<br />
<br />
If there is anything I can do to help, let me know.<br />
<br />
Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 14:56, 19 October 2016 (UTC)<br />
<br />
:Maybe drifting a bit offtopic... but I'm in favor to finally remove any and all packages that are not on AUR4 from the wiki. Users have had over a year time to migrate, which is a century in Arch standards. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:21, 19 October 2016 (UTC)<br />
<br />
::I agree, especially on pages like [[List of games]] (already [https://wiki.archlinux.org/index.php?title=List_of_games&curid=4401&diff=454419&oldid=454356 took care of that]), and [[List of Applications]] (see [[Talk:List of applications#AUR3 packages]]). On other pages, where the non-existing packages are mentioned inline, it requires some more knowledge and effort to remove them. -- [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:34, 19 October 2016 (UTC)<br />
<br />
:::Hmm... For the moment I just updated the template to point to Github instead. What would be the alternative "hint" without the link? It should still be different from just "package not found". -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:08, 19 October 2016 (UTC)<br />
<br />
::::The GitHub repository is fine as well. I think we can keep that one while we (carefully) remove/update all broken links. Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 06:52, 20 October 2016 (UTC)<br />
<br />
== OpenVPN ==<br />
<br />
Hi, the topic about setting the key password was a tip, and the only way that work to have the openvpn "ask" for the key password. The systemd-ask-pass is not working. So when the openvpn service is started it does not ask for the key password.<br />
I know it is not the best sollution, far away from that, but it was the only way that i can put it to work. I think it is a valuable tipo, although it have to came with a security note.<br />
Can be this way?<br />
<br />
{{unsigned|10:52, 31 October 2016|Mawcomw}}<br />
<br />
:Is there a reason why you have a password-protected key or was it set up implicitly by following some guide? Note that you can [http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke remove the passphrase without generating a new key]. If you have a good reason for using the passphrase, using plain {{ic|--askpass}} without a file would allow openvpn to ask for the passphrase on its standard input, but that probably does not work well with systemd units starting at boot. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:41, 31 October 2016 (UTC)<br />
<br />
== CPU frequency scaling ==<br />
Done a few tests with i5-6400 CPU @ 2.70GHz (TB up to 3.30GHz):<br />
<br />
{{hc|<nowiki>$ cpupower frequency-info</nowiki>|<br />
analyzing CPU 0:<br />
driver: intel_pstate<br />
CPUs which run at the same hardware frequency: 0<br />
CPUs which need to have their frequency coordinated by software: 0<br />
maximum transition latency: Cannot determine or is not supported.<br />
hardware limits: 800 MHz - 3.30 GHz<br />
available cpufreq governors: performance powersave<br />
current policy: frequency should be within 800 MHz and 3.30 GHz.<br />
The governor "powersave" may decide which speed to use<br />
within this range.<br />
current CPU frequency: 800 MHz (asserted by call to hardware)<br />
boost state support:<br />
Supported: yes<br />
Active: yes<br />
}}<br />
<br />
# cpupower frequency-set -g performance<br />
<br />
Using {{ic|watch}}:<br />
current CPU frequency: 3.25 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.29 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.26 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.28 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.30 GHz (asserted by call to hardware)<br />
<br />
As you can see the CPU keeps trying to run at the max. frequency (including TB).<br />
<br />
If not running any commands, moving the cursor, or any other activity, the CPU starts throttling back, but will immediately boost again to full freq. when doing a simple task.<br />
<br />
The same behaviour happen with a Intel i5-2400 (including TB).<br />
<br />
I don't recommend the use of the performance governor at all, even on good cooling.<br />
<br />
What are your thoughts on this? Thanks.<br />
<br />
[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 21:39, 11 December 2016 (UTC)<br />
<br />
:You're already observing that it does not "run at the maximum frequency". It's simply (much) more aggressive at rising the frequency, nothing more. Also, you should use {{pkg|i7z}} to monitor the per-core frequency. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 22:15, 11 December 2016 (UTC)<br />
<br />
::That's the thing I want to show, it doesn't aggressive rising the frequency, but simple tries to run the CPU at max. speed all the time, even when doing nothing at all:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Cpu speed from cpuinfo 2712.00Mhz<br />
True Frequency (without accounting Turbo) 2712 MHz<br />
CPU Multiplier 27x || Bus clock frequency (BCLK) 100.44 MHz<br />
<br />
Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]<br />
TURBO ENABLED on 4 Cores, Hyper Threading OFF<br />
Max Frequency without considering Turbo 2812.44 MHz (100.44 x [28])<br />
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 33x/33x/32x/31x<br />
Real Current Frequency 3241.60 MHz [100.44 x 32.27] (Max of below)<br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3155.71 (31.42x) 1.25 93.9 1 3.65 21 1.1155<br />
Core 2 [1]: 3241.60 (32.27x) 1.49 95.3 1 1.88 20 1.1091<br />
Core 3 [2]: 2844.39 (28.32x) 1 95.4 1 2.59 20 1.1090<br />
Core 4 [3]: 3226.32 (32.12x) 1.45 95.7 1 1.56 20 1.1090<br />
</nowiki><br />
}}<br />
<br />
One. sec. later, keep in mind this is including turbo-boost and nothing happens in the background and I'm not touching anything. Command electron is running, but keeps hitting <10% CPU usage, could try to disable, but 5% usage isn't really needed to boost the CPU to it's max. clockspeed:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 2917.95 (29.06x) 1 97.9 0 1.78 21 1.1044<br />
Core 2 [1]: 3276.91 (32.64x) 1 98.2 0 1.12 21 1.1072<br />
Core 3 [2]: 3266.05 (32.53x) 1.36 98.4 0 0 20 1.1138<br />
Core 4 [3]: 3278.00 (32.65x) 1 97.6 0 1.19 21 1.1138<br />
</nowiki><br />
}}<br />
<br />
Switching back to {{ic|powersave}}, also notice the decrease of the VCore:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 800.14 (7.97x) 18.1 75.9 1 17.8 21 0.7522<br />
Core 2 [1]: 801.91 (7.98x) 13.1 77.3 1 17.8 21 0.7512<br />
Core 3 [2]: 825.59 (8.22x) 18.5 72.4 1 21 20 0.7511<br />
Core 4 [3]: 800.47 (7.97x) 16.2 77.5 1 16.7 21 0.7512<br />
</nowiki><br />
}}<br />
::That's why I've added the warning message, the voltage and temperatures will increase, and it doesn't have any positive effect, maybe if running games, but it seems like a waste of energy atm.<br />
::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 12:59, 12 December 2016 (UTC)<br />
<br />
:::Then I'd say that your system is not really idle - what if you run it from the Linux console, with Xorg shut down? On i5-2430M (base freq 2394 MHz, boost to 2993 MHz), I'm getting the following with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 857.47 (8.60x) 2.1 99.2 0 0 47 0.8206<br />
Core 2 [2]: 997.56 (10.00x) 3.95 97.4 1 0 47 0.8156<br />
</nowiki>}}<br />
:::And with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1162.35 (11.65x) 1.09 99.5 0 0 47 1.2109<br />
Core 2 [2]: 1553.64 (15.58x) 1 98.5 1 0 45 1.2109<br />
</nowiki>}}<br />
:::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:24, 12 December 2016 (UTC)<br />
::::Without X or any apps, using performance:<br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3292.33 (32.78x) 63.5 22.9 0 0 24 1.1078<br />
Core 2 [1]: 3237.91 (32.24x) 0 100 0 0 22 1.1031<br />
Core 3 [2]: 3286.59 (32.72x) 1 64 1 34.9 22 1.1028<br />
Core 4 [3]: 3165.25 (31.51x) 1 100 0 0 21 1.0978<br />
<br />
{{hc|<nowiki># htop</nowiki>|<br />
<nowiki><br />
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command<br />
1 root 20 0 132M 6804 5184 S 0.0 0.0 0:00.86 /sbin/init<br />
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd<br />
3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0<br />
7 root 20 0 0 0 0 S 0.0 0.0 0:01.95 rcu_preempt<br />
8 root 20 0 0 0 0 S 0.0 0.0 0:00.01 rcu_sched<br />
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh<br />
10 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/0<br />
11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain<br />
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0<br />
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0<br />
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1<br />
15 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1<br />
16 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/1<br />
17 root 20 0 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/1<br />
20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2<br />
21 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2<br />
22 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/2<br />
23 root 20 0 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/2<br />
26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3<br />
27 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3<br />
28 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/3<br />
29 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/3<br />
31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H<br />
32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs<br />
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns<br />
34 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd<br />
35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper<br />
36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback<br />
37 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0<br />
38 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd<br />
39 root 39 19 0 0 0 S 0.0 0.0 0:00.44 khugepaged<br />
40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto<br />
41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd<br />
42 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd<br />
44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 devfreq_wq<br />
45 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd<br />
47 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0<br />
48 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 vmstat<br />
57 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld<br />
58 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf<br />
60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq<br />
61 root 20 0 0 0 0 S 0.0 0.0 0:00.32 kworker/u8:1<br />
83 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap<br />
129 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nvme<br />
155 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0<br />
156 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0<br />
157 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1<br />
158 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1<br />
159 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2<br />
160 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2<br />
161 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3<br />
162 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_3<br />
163 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_4<br />
164 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_4<br />
165 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_5<br />
166 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_5<br />
172 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
173 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
</nowiki><br />
}}<br />
::::PS. Sorry for all the spam, if you want I can moved to pastebin or something else. :)<br />
::::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 13:48, 12 December 2016 (UTC)<br />
<br />
:::::Well, on i7-5820K (base freq 3.3 GHz, boost to 3.6 GHz) that we have at school, I get the following result with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1725.61 (17.25x) 1.27 5.46 0 93.9 27 0.7705<br />
Core 2 [1]: 2322.11 (23.21x) 1 0.123 0 99.9 29 0.9701<br />
Core 3 [2]: 2532.10 (25.31x) 1 0.204 0 99.7 29 0.9801<br />
Core 4 [3]: 2128.67 (21.27x) 1 0.177 0 99.8 30 0.9724<br />
Core 5 [4]: 2267.82 (22.66x) 1 0.311 0 99.6 29 0.9703<br />
Core 6 [5]: 1792.93 (17.92x) 1 0.495 0 99.4 29 0.9974<br />
</nowiki>}} and with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1280.11 (12.79x) 1 5.29 0 94.3 26 0.7755<br />
Core 2 [1]: 1267.35 (12.67x) 1 46 0 54 28 0.7617<br />
Core 3 [2]: 1211.02 (12.10x) 1 0.442 0 99.5 28 0.7468<br />
Core 4 [3]: 1213.45 (12.13x) 1 100 0 0 30 0.7474<br />
Core 5 [4]: 1268.28 (12.68x) 1 100 0 0 28 0.7678<br />
Core 6 [5]: 1392.95 (13.92x) 1 22.2 0 77.7 27 0.7374<br />
</nowiki>}} While the frequency stays considerably higher with performance, it's nowhere near the peak frequency. So the behaviour must be model-specific. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:28, 16 December 2016 (UTC)<br />
::::::Thanks for the test. Tested on a few Intel i3/i5 procs and they all seem to show this behaviour, however I didn't test any i7 CPU, but indeed your results differ a lot. What should we do about the warning? :) -- [[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 18:48, 22 December 2016 (UTC)<br />
<br />
:::::::Currently it only says to watch out for temperature and voltage, which is fine in my view... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:43, 22 December 2016 (UTC)<br />
<br />
== <s>Linux-ck</s> ==<br />
<br />
> linux-ck is not that much useful<br />
<br />
agree, i already removed most details about Linux-ck and replaced it by a single link, then dumped them into the Linux-ck wikipage.<br />
<br />
:So? -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:59, 6 January 2017 (UTC)<br />
<br />
== Packages development pages ==<br />
<br />
Hi Lahwaacz. I see you reverted my edits. Actually sorting alphabetically was not the main purpose of my changes but include a link to the article [[VCS package guidelines]]. Yesterday, as I was updating my AUR packages, I had a hard time recovering the VCS page, just because it was not linked at all from any package development pages, not even from the Arch Linux wiki table of content (if I'm not wrong). Could you please investigate this issue? Also, I wanted to add precisions brought to [http://allanmcrae.com/2015/01/two-pgp-keyrings-for-package-management-in-arch-linux/ AllanMcrae blog post] in the Arch Linux pages, because without the help of our friends on IRC who linked me back to that post, I would have made false assumptions with my GPG signature check in my PKGBUILD. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 11:26, 7 January 2017 (UTC)<br />
<br />
:I must have missed that. In that case, there are many package guidelines pages for different programming languages etc., but the top level page for them is [[Creating packages]] (which is already linked from the related articles of [[PKGBUILD]]). The other pages are linked from e.g. [[Creating packages#More detailed guidelines]] or [[Arch packaging standards#Additional guidelines]] (the "Package creation guidelines" at the top of the [[Template:Package guidelines|navigation template]] leads to [[Creating packages]]).<br />
:As for [[Table of contents]], it lists only categories and [[VCS package guidelines]] is in [[:Category:Package development]].<br />
:I'm not aware of any inaccuracy on the wiki regarding Allan's blog post, see e.g. the note in [[makepkg#Signature checking]].<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:41, 7 January 2017 (UTC)<br />
<br />
:: Thanks for letting me know the VCS page was actually already linked from [[Creating packages#More detailed guidelines]]. It was well hidden. If I wasn't able to find it easily, while I'm used to use the Arch Linux wiki, imagine how hard it is for newcomers to find it. :-) This might be a problem.:-/ Additional/excessive cross-linking won't harm especially for SEO. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 12:43, 7 January 2017 (UTC)<br />
<br />
::: Catching up in my Arch related duties: we can clearly see "signature and .sig" files is a question that is [https://lists.archlinux.org/pipermail/arch-general/2016-January/040505.html often asked]. It needs clarification as, for other packages managers, relying on the package manager to download the public GPG key from a key server is not always the case (e.g. chocolatey on Windows). -- [[User:wget|wget]] ([[User talk:wget|talk]]) 14:43, 7 January 2017 (UTC)<br />
<br />
:::: [https://wiki.archlinux.org/index.php?title=PKGBUILD&type=revision&diff=461862&oldid=461777 Fixed]. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 15:16, 7 January 2017 (UTC)<br />
<br />
== PKGBUILD for AUR additional explanation ==<br />
<br />
[https://wiki.archlinux.org/index.php?title=Arch_User_Repository&type=revision&diff=466474&oldid=466429 Where does it belong to then]? Regards, -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:30, 23 January 2017 (UTC)<br />
<br />
:[[PKGBUILD#Package_relations|Here]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 23:35, 23 January 2017 (UTC)<br />
<br />
::Ok. I was actually hesitating between that page and the one I had actually written to. I'll repost to the right location then. Thanks for letting me know. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:37, 23 January 2017 (UTC)<br />
<br />
==<s> Wiki wars... </s>==<br />
<br />
Lol, better discuss what to do with [[Fdisk#Backup_and_restore_partition_table]] because we're editing it at the same time :) — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:48, 3 February 2017 (UTC)<br />
<br />
:Heh, sorry about that. I don't mind if the info stays on the [[Fdisk]] page, it doesn't fit into [[Disk cloning]] either... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 10:59, 3 February 2017 (UTC)<br />
<br />
::My idea was that at least everything was in the same page and it would require only one link from other pages to link there ^^ Closing, in case you're happy with this.<br />
::I also started [[Talk:System maintenance#Backing up the partition table]].<br />
::— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 11:05, 3 February 2017 (UTC)<br />
<br />
== HiDPI ==<br />
<br />
https://wiki.archlinux.org/index.php?title=HiDPI&diff=next&oldid=467953<br />
<br />
You undid my changes with the reason "scale-from does not configure DPI".<br />
Why is my change wrong? The previous content with --scale also does not configure DPI, but scales.<br />
<br />
Please explain why my change is different and not allowed.<br />
[[User:TheJJ|TheJJ]] ([[User talk:TheJJ|talk]]) 13:01, 11 February 2017 (UTC)</div>TheJJhttps://wiki.archlinux.org/index.php?title=User_talk:Lahwaacz&diff=468138User talk:Lahwaacz2017-02-11T12:59:31Z<p>TheJJ: /* HiDPI */ new section</p>
<hr />
<div>== PodCastXDL ==<br />
<br />
About [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=323048] (and [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=next&oldid=323048]) [[User:Levi0x0x]], who should have indeed provided an edit summary, appears to be the developer of the application and the maintainer of the PKGBUILD. I would keep his edit. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 00:45, 5 July 2014 (UTC)<br />
<br />
:I know - I've seen also [https://wiki.archlinux.org/index.php?title=MPlayer&diff=next&oldid=322278 bash-player] removed, both from wiki and Github (it seems the repo has been recreated from scratch). PodCastXDL has always been available upstream. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:20, 5 July 2014 (UTC)<br />
<br />
::Didn't he add it to the list one week ago? [https://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=prev&oldid=322258] Maybe he's found some bug and doesn't want people to use it until he fixes it? Anyway I'm not that interested, we can as well see if/how Levi0x0x reacts. -- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 04:32, 6 July 2014 (UTC)<br />
<br />
== bot AUR to Official Repository edit ==<br />
<br />
A recent bot edit ([https://github.com/lahwaacz/wiki-scripts/blob/master/update-package-templates.py update Pkg/AUR templates]) by [[User:Lahwaacz.bot]] on the [[Gitolite]] page correctly changed the AUR template to Pkg but left the [[Arch User Repository]] link<br />
<br />
I fixed this, but would it be possible to modify the bot to take this into consideration?<br />
<br />
I can imagine that blanket changing AUR links to Official Repository links in any given page could be dangerous - but for common phrasing or possibly word distance it would seem to be relatively safe<br />
<br />
Or is there some sort of post-run manual inspection that I am unaware of that handles this situation? <br />
<br />
Specifically this [https://wiki.archlinux.org/index.php?title=Gitolite&diff=next&oldid=366859 edit]<br />
<br />
From:<br />
<pre><br />
{{AUR|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
To:<br />
<pre><br />
{{Pkg|gitolite}} is available in the [[Arch User Repository]]<br />
</pre><br />
<br />
<br />
<br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 01:50, 1 April 2015 (UTC)<br />
<br />
By "word distance" above what I _meant_ was [[Wikipedia:Edit Distance|Edit Distance]] ;)<br />
<br />
I was initially thinking of Hamming distance - but apparently that is for strings of equal length.<br />
<br />
What looks more promising is the Levenshtein distance - specifically "Comparing a list of strings" from the Python [https://pypi.python.org/pypi/Distance/0.1.3 Distance] package.<br />
<br />
Example shamelessly ripped from that page:<br />
<br />
(mainly because I couldn't link directly to the relevant section)<br />
<br />
<pre><br />
>>> sent1 = ['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']<br />
>>> sent2 = ['the', 'lazy', 'fox', 'jumps', 'over', 'the', 'crazy', 'dog']<br />
>>> distance.levenshtein(sent1, sent2)<br />
3<br />
</pre><br />
[[User:Tido.com|Tido.com]] ([[User talk:Tido.com|talk]]) 04:07, 1 April 2015 (UTC)<br />
<br />
:Hi,<br />
:the bot currently does not touch the surrounding text at all, it only modifies the package templates or appends [[Template:Broken package link]] when the package is not found. This is obviously not perfect, this behaviour may lead to some incorrect combinations as you noticed, but blindly fixing the package links and not the surrounding text is still considered to be an improvement. Checking the surrounding text manually would require a lot of manpower, which we don't have, so it is currently not done systematically. Feel free to ask for further details or see the most recent discussion: [[ArchWiki:Requests#Strategy_for_updating_package_templates]].<br />
:Regarding automatic updates of the surrounding text, the edit distance gives a clue about whether given edit should be performed or not, but it does not define how an edit should be performed. It can be useful in cases where there are multiple feasible substitutions in text and the strategy to select the optimal substitution is e.g. to minimize the Levenshtein distance. But we don't have any algorithm to generate feasible substitutions yet, so this technique fails. The surrounding text substitution is also very context sensitive and wiki bots must be designed in a way to minimize (ideally avoid completely) the [[wikipedia:Error_of_the_first_kind|error of the first kind]], which in this case is modifying correct text to be incorrect. This makes defining general rules for the text substitution really hard, on the other hand many rules would be necessary to cover even the basic form of standard wording, so in the end both ways may be comparably hard. Anyway, if you have some ideas, I'm all ears :)<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 17:51, 1 April 2015 (UTC)<br />
<br />
== bot checking links after move ==<br />
<br />
Hi, re [[Talk:Touchpad Synaptics#adding libinput alternative]]. [[Touchpad Synaptics]] has 100+ backlinks and the more important ones - a bit tedious task. I was just glancing over your clever github bot scripts. It would be handy to have a script after such moves: walk over the backlinks of [[Touchpad Synaptics]] and just replace "[[Touchpad Synaptics" with "[[Synaptics" from the links. That would leave all links to subsections intact. Leaving out the translations to handle manually, there would not be much to go wrong, or? --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 07:36, 26 September 2015 (UTC)<br />
<br />
:Hi, thanks for the suggestion. It would be indeed handy in this case, but most likely not generally. Imagine that there was a [[UUID]] page, which was later generalized and renamed to [[Persistent block device naming]] and content about UUID is now only a section on the page. In this case using the naive replacement would likely change the meaning of many sentences, and using shorter redirects for convenience is actually encouraged. There would have to be a list of whitelisted "harmless" replacements, which could even help to replace <nowiki>[[pacman|Install]]</nowiki> with <nowiki>[[Install]]</nowiki> etc. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 08:01, 26 September 2015 (UTC)<br />
<br />
::Yes, good examples, but you are thinking universal already :) I did not mean it could be that. For example, if you take the time when the bulk of the title case moves were done. With such a script one could avoid a lot of internal redirects as well. E.g. [https://wiki.archlinux.org/index.php/Special:WhatLinksHere/Beginners'_Guide]. But it's ok, just an idea. Please close this, if you think it's too singular cases with a simple enough replacement where it could be applied. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 10:02, 26 September 2015 (UTC)<br />
<br />
== aur-mirror ==<br />
<br />
Hi Lahwaacz,<br />
<br />
It seems that [http://pkgbuild.com/git/aur-mirror.git aur-mirror] has been down for a while.<br />
I'm not sure if this is intentional or not, but if it is, could you have Lahwaacz.bot remove [[Template:Aur-mirror]] from pages? At least where they are in a [[Template:Broken package link]] like {{ic|<nowiki>{{Broken package link|{{aur-mirror|foobar}}}}</nowiki>}}.<br />
<br />
If there is anything I can do to help, let me know.<br />
<br />
Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 14:56, 19 October 2016 (UTC)<br />
<br />
:Maybe drifting a bit offtopic... but I'm in favor to finally remove any and all packages that are not on AUR4 from the wiki. Users have had over a year time to migrate, which is a century in Arch standards. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:21, 19 October 2016 (UTC)<br />
<br />
::I agree, especially on pages like [[List of games]] (already [https://wiki.archlinux.org/index.php?title=List_of_games&curid=4401&diff=454419&oldid=454356 took care of that]), and [[List of Applications]] (see [[Talk:List of applications#AUR3 packages]]). On other pages, where the non-existing packages are mentioned inline, it requires some more knowledge and effort to remove them. -- [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 16:34, 19 October 2016 (UTC)<br />
<br />
:::Hmm... For the moment I just updated the template to point to Github instead. What would be the alternative "hint" without the link? It should still be different from just "package not found". -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:08, 19 October 2016 (UTC)<br />
<br />
::::The GitHub repository is fine as well. I think we can keep that one while we (carefully) remove/update all broken links. Thanks! [[User:Lonaowna|Lonaowna]] ([[User talk:Lonaowna|talk]]) 06:52, 20 October 2016 (UTC)<br />
<br />
== OpenVPN ==<br />
<br />
Hi, the topic about setting the key password was a tip, and the only way that work to have the openvpn "ask" for the key password. The systemd-ask-pass is not working. So when the openvpn service is started it does not ask for the key password.<br />
I know it is not the best sollution, far away from that, but it was the only way that i can put it to work. I think it is a valuable tipo, although it have to came with a security note.<br />
Can be this way?<br />
<br />
{{unsigned|10:52, 31 October 2016|Mawcomw}}<br />
<br />
:Is there a reason why you have a password-protected key or was it set up implicitly by following some guide? Note that you can [http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke remove the passphrase without generating a new key]. If you have a good reason for using the passphrase, using plain {{ic|--askpass}} without a file would allow openvpn to ask for the passphrase on its standard input, but that probably does not work well with systemd units starting at boot. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:41, 31 October 2016 (UTC)<br />
<br />
== CPU frequency scaling ==<br />
Done a few tests with i5-6400 CPU @ 2.70GHz (TB up to 3.30GHz):<br />
<br />
{{hc|<nowiki>$ cpupower frequency-info</nowiki>|<br />
analyzing CPU 0:<br />
driver: intel_pstate<br />
CPUs which run at the same hardware frequency: 0<br />
CPUs which need to have their frequency coordinated by software: 0<br />
maximum transition latency: Cannot determine or is not supported.<br />
hardware limits: 800 MHz - 3.30 GHz<br />
available cpufreq governors: performance powersave<br />
current policy: frequency should be within 800 MHz and 3.30 GHz.<br />
The governor "powersave" may decide which speed to use<br />
within this range.<br />
current CPU frequency: 800 MHz (asserted by call to hardware)<br />
boost state support:<br />
Supported: yes<br />
Active: yes<br />
}}<br />
<br />
# cpupower frequency-set -g performance<br />
<br />
Using {{ic|watch}}:<br />
current CPU frequency: 3.25 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.29 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.26 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.28 GHz (asserted by call to hardware)<br />
current CPU frequency: 3.30 GHz (asserted by call to hardware)<br />
<br />
As you can see the CPU keeps trying to run at the max. frequency (including TB).<br />
<br />
If not running any commands, moving the cursor, or any other activity, the CPU starts throttling back, but will immediately boost again to full freq. when doing a simple task.<br />
<br />
The same behaviour happen with a Intel i5-2400 (including TB).<br />
<br />
I don't recommend the use of the performance governor at all, even on good cooling.<br />
<br />
What are your thoughts on this? Thanks.<br />
<br />
[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 21:39, 11 December 2016 (UTC)<br />
<br />
:You're already observing that it does not "run at the maximum frequency". It's simply (much) more aggressive at rising the frequency, nothing more. Also, you should use {{pkg|i7z}} to monitor the per-core frequency. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 22:15, 11 December 2016 (UTC)<br />
<br />
::That's the thing I want to show, it doesn't aggressive rising the frequency, but simple tries to run the CPU at max. speed all the time, even when doing nothing at all:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Cpu speed from cpuinfo 2712.00Mhz<br />
True Frequency (without accounting Turbo) 2712 MHz<br />
CPU Multiplier 27x || Bus clock frequency (BCLK) 100.44 MHz<br />
<br />
Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]<br />
TURBO ENABLED on 4 Cores, Hyper Threading OFF<br />
Max Frequency without considering Turbo 2812.44 MHz (100.44 x [28])<br />
Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 33x/33x/32x/31x<br />
Real Current Frequency 3241.60 MHz [100.44 x 32.27] (Max of below)<br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3155.71 (31.42x) 1.25 93.9 1 3.65 21 1.1155<br />
Core 2 [1]: 3241.60 (32.27x) 1.49 95.3 1 1.88 20 1.1091<br />
Core 3 [2]: 2844.39 (28.32x) 1 95.4 1 2.59 20 1.1090<br />
Core 4 [3]: 3226.32 (32.12x) 1.45 95.7 1 1.56 20 1.1090<br />
</nowiki><br />
}}<br />
<br />
One. sec. later, keep in mind this is including turbo-boost and nothing happens in the background and I'm not touching anything. Command electron is running, but keeps hitting <10% CPU usage, could try to disable, but 5% usage isn't really needed to boost the CPU to it's max. clockspeed:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 2917.95 (29.06x) 1 97.9 0 1.78 21 1.1044<br />
Core 2 [1]: 3276.91 (32.64x) 1 98.2 0 1.12 21 1.1072<br />
Core 3 [2]: 3266.05 (32.53x) 1.36 98.4 0 0 20 1.1138<br />
Core 4 [3]: 3278.00 (32.65x) 1 97.6 0 1.19 21 1.1138<br />
</nowiki><br />
}}<br />
<br />
Switching back to {{ic|powersave}}, also notice the decrease of the VCore:<br />
{{hc|<nowiki># i7z</nowiki>|<br />
<nowiki><br />
Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 800.14 (7.97x) 18.1 75.9 1 17.8 21 0.7522<br />
Core 2 [1]: 801.91 (7.98x) 13.1 77.3 1 17.8 21 0.7512<br />
Core 3 [2]: 825.59 (8.22x) 18.5 72.4 1 21 20 0.7511<br />
Core 4 [3]: 800.47 (7.97x) 16.2 77.5 1 16.7 21 0.7512<br />
</nowiki><br />
}}<br />
::That's why I've added the warning message, the voltage and temperatures will increase, and it doesn't have any positive effect, maybe if running games, but it seems like a waste of energy atm.<br />
::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 12:59, 12 December 2016 (UTC)<br />
<br />
:::Then I'd say that your system is not really idle - what if you run it from the Linux console, with Xorg shut down? On i5-2430M (base freq 2394 MHz, boost to 2993 MHz), I'm getting the following with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 857.47 (8.60x) 2.1 99.2 0 0 47 0.8206<br />
Core 2 [2]: 997.56 (10.00x) 3.95 97.4 1 0 47 0.8156<br />
</nowiki>}}<br />
:::And with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1162.35 (11.65x) 1.09 99.5 0 0 47 1.2109<br />
Core 2 [2]: 1553.64 (15.58x) 1 98.5 1 0 45 1.2109<br />
</nowiki>}}<br />
:::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:24, 12 December 2016 (UTC)<br />
::::Without X or any apps, using performance:<br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 3292.33 (32.78x) 63.5 22.9 0 0 24 1.1078<br />
Core 2 [1]: 3237.91 (32.24x) 0 100 0 0 22 1.1031<br />
Core 3 [2]: 3286.59 (32.72x) 1 64 1 34.9 22 1.1028<br />
Core 4 [3]: 3165.25 (31.51x) 1 100 0 0 21 1.0978<br />
<br />
{{hc|<nowiki># htop</nowiki>|<br />
<nowiki><br />
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command<br />
1 root 20 0 132M 6804 5184 S 0.0 0.0 0:00.86 /sbin/init<br />
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd<br />
3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0<br />
7 root 20 0 0 0 0 S 0.0 0.0 0:01.95 rcu_preempt<br />
8 root 20 0 0 0 0 S 0.0 0.0 0:00.01 rcu_sched<br />
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh<br />
10 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/0<br />
11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain<br />
12 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0<br />
13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0<br />
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1<br />
15 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/1<br />
16 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/1<br />
17 root 20 0 0 0 0 S 0.0 0.0 0:00.09 ksoftirqd/1<br />
20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2<br />
21 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/2<br />
22 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/2<br />
23 root 20 0 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/2<br />
26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3<br />
27 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/3<br />
28 root RT 0 0 0 0 S 0.0 0.0 0:00.02 migration/3<br />
29 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/3<br />
31 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H<br />
32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs<br />
33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns<br />
34 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd<br />
35 root 20 0 0 0 0 S 0.0 0.0 0:00.00 oom_reaper<br />
36 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback<br />
37 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kcompactd0<br />
38 root 25 5 0 0 0 S 0.0 0.0 0:00.00 ksmd<br />
39 root 39 19 0 0 0 S 0.0 0.0 0:00.44 khugepaged<br />
40 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 crypto<br />
41 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd<br />
42 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
43 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd<br />
44 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 devfreq_wq<br />
45 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 watchdogd<br />
47 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0<br />
48 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 vmstat<br />
57 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kthrotld<br />
58 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ipv6_addrconf<br />
60 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 deferwq<br />
61 root 20 0 0 0 0 S 0.0 0.0 0:00.32 kworker/u8:1<br />
83 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 ttm_swap<br />
129 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 nvme<br />
155 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0<br />
156 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_0<br />
157 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_1<br />
158 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_1<br />
159 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_2<br />
160 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_2<br />
161 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_3<br />
162 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_3<br />
163 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_4<br />
164 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_4<br />
165 root 20 0 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_5<br />
166 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 scsi_tmf_5<br />
172 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
173 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset<br />
</nowiki><br />
}}<br />
::::PS. Sorry for all the spam, if you want I can moved to pastebin or something else. :)<br />
::::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 13:48, 12 December 2016 (UTC)<br />
<br />
:::::Well, on i7-5820K (base freq 3.3 GHz, boost to 3.6 GHz) that we have at school, I get the following result with performance: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1725.61 (17.25x) 1.27 5.46 0 93.9 27 0.7705<br />
Core 2 [1]: 2322.11 (23.21x) 1 0.123 0 99.9 29 0.9701<br />
Core 3 [2]: 2532.10 (25.31x) 1 0.204 0 99.7 29 0.9801<br />
Core 4 [3]: 2128.67 (21.27x) 1 0.177 0 99.8 30 0.9724<br />
Core 5 [4]: 2267.82 (22.66x) 1 0.311 0 99.6 29 0.9703<br />
Core 6 [5]: 1792.93 (17.92x) 1 0.495 0 99.4 29 0.9974<br />
</nowiki>}} and with powersave: {{bc|<nowiki><br />
Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore<br />
Core 1 [0]: 1280.11 (12.79x) 1 5.29 0 94.3 26 0.7755<br />
Core 2 [1]: 1267.35 (12.67x) 1 46 0 54 28 0.7617<br />
Core 3 [2]: 1211.02 (12.10x) 1 0.442 0 99.5 28 0.7468<br />
Core 4 [3]: 1213.45 (12.13x) 1 100 0 0 30 0.7474<br />
Core 5 [4]: 1268.28 (12.68x) 1 100 0 0 28 0.7678<br />
Core 6 [5]: 1392.95 (13.92x) 1 22.2 0 77.7 27 0.7374<br />
</nowiki>}} While the frequency stays considerably higher with performance, it's nowhere near the peak frequency. So the behaviour must be model-specific. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:28, 16 December 2016 (UTC)<br />
::::::Thanks for the test. Tested on a few Intel i3/i5 procs and they all seem to show this behaviour, however I didn't test any i7 CPU, but indeed your results differ a lot. What should we do about the warning? :) -- [[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 18:48, 22 December 2016 (UTC)<br />
<br />
:::::::Currently it only says to watch out for temperature and voltage, which is fine in my view... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 19:43, 22 December 2016 (UTC)<br />
<br />
== <s>Linux-ck</s> ==<br />
<br />
> linux-ck is not that much useful<br />
<br />
agree, i already removed most details about Linux-ck and replaced it by a single link, then dumped them into the Linux-ck wikipage.<br />
<br />
:So? -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 18:59, 6 January 2017 (UTC)<br />
<br />
== Packages development pages ==<br />
<br />
Hi Lahwaacz. I see you reverted my edits. Actually sorting alphabetically was not the main purpose of my changes but include a link to the article [[VCS package guidelines]]. Yesterday, as I was updating my AUR packages, I had a hard time recovering the VCS page, just because it was not linked at all from any package development pages, not even from the Arch Linux wiki table of content (if I'm not wrong). Could you please investigate this issue? Also, I wanted to add precisions brought to [http://allanmcrae.com/2015/01/two-pgp-keyrings-for-package-management-in-arch-linux/ AllanMcrae blog post] in the Arch Linux pages, because without the help of our friends on IRC who linked me back to that post, I would have made false assumptions with my GPG signature check in my PKGBUILD. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 11:26, 7 January 2017 (UTC)<br />
<br />
:I must have missed that. In that case, there are many package guidelines pages for different programming languages etc., but the top level page for them is [[Creating packages]] (which is already linked from the related articles of [[PKGBUILD]]). The other pages are linked from e.g. [[Creating packages#More detailed guidelines]] or [[Arch packaging standards#Additional guidelines]] (the "Package creation guidelines" at the top of the [[Template:Package guidelines|navigation template]] leads to [[Creating packages]]).<br />
:As for [[Table of contents]], it lists only categories and [[VCS package guidelines]] is in [[:Category:Package development]].<br />
:I'm not aware of any inaccuracy on the wiki regarding Allan's blog post, see e.g. the note in [[makepkg#Signature checking]].<br />
:-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 11:41, 7 January 2017 (UTC)<br />
<br />
:: Thanks for letting me know the VCS page was actually already linked from [[Creating packages#More detailed guidelines]]. It was well hidden. If I wasn't able to find it easily, while I'm used to use the Arch Linux wiki, imagine how hard it is for newcomers to find it. :-) This might be a problem.:-/ Additional/excessive cross-linking won't harm especially for SEO. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 12:43, 7 January 2017 (UTC)<br />
<br />
::: Catching up in my Arch related duties: we can clearly see "signature and .sig" files is a question that is [https://lists.archlinux.org/pipermail/arch-general/2016-January/040505.html often asked]. It needs clarification as, for other packages managers, relying on the package manager to download the public GPG key from a key server is not always the case (e.g. chocolatey on Windows). -- [[User:wget|wget]] ([[User talk:wget|talk]]) 14:43, 7 January 2017 (UTC)<br />
<br />
:::: [https://wiki.archlinux.org/index.php?title=PKGBUILD&type=revision&diff=461862&oldid=461777 Fixed]. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 15:16, 7 January 2017 (UTC)<br />
<br />
== PKGBUILD for AUR additional explanation ==<br />
<br />
[https://wiki.archlinux.org/index.php?title=Arch_User_Repository&type=revision&diff=466474&oldid=466429 Where does it belong to then]? Regards, -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:30, 23 January 2017 (UTC)<br />
<br />
:[[PKGBUILD#Package_relations|Here]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 23:35, 23 January 2017 (UTC)<br />
<br />
::Ok. I was actually hesitating between that page and the one I had actually written to. I'll repost to the right location then. Thanks for letting me know. -- [[User:wget|wget]] ([[User talk:wget|talk]]) 23:37, 23 January 2017 (UTC)<br />
<br />
==<s> Wiki wars... </s>==<br />
<br />
Lol, better discuss what to do with [[Fdisk#Backup_and_restore_partition_table]] because we're editing it at the same time :) — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 10:48, 3 February 2017 (UTC)<br />
<br />
:Heh, sorry about that. I don't mind if the info stays on the [[Fdisk]] page, it doesn't fit into [[Disk cloning]] either... -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 10:59, 3 February 2017 (UTC)<br />
<br />
::My idea was that at least everything was in the same page and it would require only one link from other pages to link there ^^ Closing, in case you're happy with this.<br />
::I also started [[Talk:System maintenance#Backing up the partition table]].<br />
::— [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 11:05, 3 February 2017 (UTC)<br />
<br />
== HiDPI ==<br />
<br />
https://wiki.archlinux.org/index.php?title=HiDPI&diff=next&oldid=467953<br />
<br />
You undid my changes with the reason "scale-from does not configure DPI".<br />
Why is my change wrong? The previous content with --scale also does not configure DPI, but scales.<br />
<br />
Please explain why my change is different and not allowed.</div>TheJJhttps://wiki.archlinux.org/index.php?title=HiDPI&diff=467953HiDPI2017-02-08T21:08:39Z<p>TheJJ: /* Multiple displays */ add xrandr --scale-from</p>
<hr />
<div>[[Category:Graphics]]<br />
[[ja:HiDPI]]<br />
{{Related articles start}}<br />
{{Related|Font configuration}}<br />
{{Related articles end}}<br />
HiDPI (High Dots Per Inch) displays, also known by Apple's "[[wikipedia:Retina Display|Retina Display]]" marketing name, are screens with a high resolution in a relatively small format. They are mostly found in high-end laptops and monitors.<br />
<br />
Not all software behaves well in high-resolution mode yet. Here are listed most common tweaks which make work on a HiDPI screen more pleasant.<br />
<br />
== Desktop environments ==<br />
<br />
=== GNOME ===<br />
<br />
To enable HiDPI, use gsettings:<br />
<br />
gsettings set org.gnome.desktop.interface scaling-factor 2<br />
<br />
{{Note|1={{ic|scaling-factor}} only allows whole numbers to be set. 1 = 100%, 2 = 200%, etc...}}<br />
<br />
A setting of {{ic|2, 3, etc}}, which is all you can do with {{ic|scaling-factor}}, may not be ideal for certain HiDPI displays and smaller screens (e.g. small tablets). <br />
<br />
Alternatively, you can achieve any non-integer scale factor by using a combination of {{ic|scaling-factor}} and {{ic|xrandr}}. This combination keeps the TTF fonts properly scaled so that they do not become blurry if using {{ic|xrandr}} alone. You specify zoom-in factor with {{ic|gsettings}} and zoom-out factor with {{ic|xrandr}}.<br />
<br />
{{Style|This is not a script, so comments belong to wikitext and not the code blocks.}}<br />
<br />
Here is a method to find a comfortable scale factor for your screen:<br />
<br />
First scale Gnome up to the minimum size which is too big.<br />
Usually "2" is already too big, but if "2" is still small for you, try "3", etc.<br />
gsettings set org.gnome.desktop.interface scaling-factor 2<br />
Now start scaling down by setting zoom-out factor with xrandr.<br />
First get the output name:<br />
{{hc|<nowiki>xrandr | grep -w connected | cut -d' ' -f1</nowiki>|eDP1}}<br />
<br />
Use this value to specify --output further on.<br />
If you have two or more screens you can set their scale independently.<br />
<br />
Now, to zoom-out 1.2 times, run the following:<br />
xrandr --output eDP1 --scale 1.2x1.2<br />
If the UI is still too big, increase the scale:<br />
xrandr --output eDP1 --scale 1.25x1.25<br />
If UI becomes too small, decrease the scale factor a bit.<br />
Repeat until you find a value which works best for your screen and your eyes.<br />
<br />
Finally, you need to allow the mouse to navigate the whole screen.<br />
To do this you need to get the current scaled resolution:<br />
<br />
{{hc|<nowiki>xrandr | grep eDP1</nowiki>|eDP1 connected primary 2304x1296+0+0 (normal left inverted right x axis y axis) 239mm x 134mm}}<br />
<br />
Now use the acquired resolution value to set correct panning:<br />
xrandr --output eDP1 --panning 2304x1296<br />
<br />
=== KDE ===<br />
<br />
KDE plasma 5 provides excellent support for HiDPI screens out of the box.<br />
You just need to make sure that the X server is aware of your screen's pixel density. The quickest way to achieve this is to edit your {{ic|/etc/sddm.conf}} and add the dpi argument to {{ic|ServerArguments}} in the {{ic|[X11]}} section:<br />
<br />
ServerArguments=-nolisten tcp -dpi 276<br />
<br />
More information and perhaps more correct solutions can be found at [[Xorg#Display size and DPI]].<br />
<br />
==== Using KDE system settings ====<br />
<br />
If the solution above does not work correctly, you can use KDE's settings to fine tune font, icon, and widget scaling.<br />
<br />
To adjust font, widget, and icon scaling together:<br />
<br />
# System Settings → Display and Monitor → Display Configuration → Scale Display<br />
# Drag the slider to the desired size<br />
# Restart for the settings to take effect<br />
<br />
To adjust only font scaling:<br />
<br />
# System Settings → Fonts<br />
# Check "Force fonts DPI" and adjust the DPI level to the desired value. This setting should take effect immediately for newly started applications. You will have to logout and login for it to take effect on Plasma desktop.<br />
<br />
To adjust only icon scaling:<br />
<br />
# System Settings → Icons → Advanced<br />
# Choose the desired icon size for each category listed. This should take effect immediately.<br />
<br />
==== Tray icons with fixed size ====<br />
<br />
If the tray icons are not scaled with the rest of the desktop, the size can be set editing the default value for ''iconSize'' in {{ic|/usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/config/main.xml}} (e.g. the value 2 may be fine):<br />
{{hc|/usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/config/main.xml|<nowiki><br />
<entry name="iconSize" type="Int"><br />
<label>Default icon size for the systray icons, it's an enum which values mean, <br />
Small, SmallMedium, Medium, Large, Huge, Enormous respectively. On low <br />
DPI systems they correspond to 16, 22, 32, 48, 64, 128 pixels. On high<br />
DPI systems those values would be scaled up, depending on the DPI.</label> <br />
<default></nowiki>'''2'''<nowiki></default><br />
</entry><br />
</nowiki>}}<br />
<br />
=== Xfce ===<br />
<br />
Go to Settings Manager → Appearance → Fonts, and change the DPI parameter. The value of 180 or 192 seems to work well on Retina screens. To get a more precise number, you can use <code>xdpyinfo | grep resolution</code>, and then double it.<br />
<br />
To enlarge icons in system tray, right-click on it (aim for empty space / top pixels / bottom pixels, so that you will not activate icons themselves) → “Properties” → set “Maximum icon size” to 32, 48 or 64.<br />
<br />
=== Cinnamon ===<br />
<br />
Supports HiDPI since 2.2. The support is pretty good (e.g. window borders are correctly sized, which is not the case under Xfce).<br />
<br />
=== Enlightenment ===<br />
<br />
For E18, go to the E Setting panel. In Look → Scaling, you can control the UI scaling ratios. A ratio of 1.2 seems to work well for the native resolution of the MBPr 15" screen.<br />
<br />
== X Server ==<br />
<br />
Some programs use the DPI given by the X server. Examples are i3 ([https://github.com/i3/i3/blob/next/libi3/dpi.c source]) and Chromium ([https://code.google.com/p/chromium/codesearch#chromium/src/ui/views/widget/desktop_aura/desktop_screen_x11.cc source]).<br />
<br />
To verify that the X Server has properly detected the physical dimensions of your monitor, use the ''xdpyinfo'' utility from the {{Pkg|xorg-xdpyinfo}} package:<br />
<br />
$ xdpyinfo | grep -B 2 resolution<br />
screen #0:<br />
dimensions: 3200x1800 pixels (423x238 millimeters)<br />
resolution: 192x192 dots per inch<br />
<br />
This example uses inaccurate dimensions (423mm x 328mm, even though the Dell XPS 9530 has 346mm x 194mm) to have a clean multiple of 96 dpi, in this case 192 dpi. This tends to work better than using the correct DPI — Pango renders fonts crisper in i3 for example.<br />
<br />
If the DPI displayed by xdpyinfo is not correct, see [[Xorg#Display size and DPI]] for how to fix it.<br />
<br />
== X Resources ==<br />
<br />
If you are not using a desktop environment such as GNOME, KDE, Xfce, or other that manipulates the X settings for you, you can set the desired DPI setting manually via the {{ic|Xft.dpi}} variable in {{ic|~/.Xresources}}:<br />
<br />
{{hc|~/.Xresources|<nowiki><br />
Xft.dpi: 180<br />
Xft.autohint: 0<br />
Xft.lcdfilter: lcddefault<br />
Xft.hintstyle: hintfull<br />
Xft.hinting: 1<br />
Xft.antialias: 1<br />
Xft.rgba: rgb<br />
</nowiki>}}<br />
<br />
Make sure the settings are loaded properly when X starts, for instance in your {{ic|~/.xinitrc}} with {{ic|xrdb -merge ~/.Xresources}} (see [[Xresources]] for more information).<br />
<br />
This will make the font render properly in most toolkits and applications, it will however not affect things such as icon size!<br />
Setting {{ic|Xft.dpi}} at the same time as toolkit scale (e.g. {{ic|GDK_SCALE}}) may cause interface elements to be much larger than intended in some programs like firefox.<br />
<br />
== GUI toolkits ==<br />
<br />
=== Qt 5 ===<br />
<br />
If you failed to fix your DPI on your X server, there is a way to get your Qt applications to look good on HiDPI anyway.<br />
<br />
Since Qt 5.6, Qt 5 applications can be instructed to disregard faulty screen DPI by setting the {{ic|QT_AUTO_SCREEN_SCALE_FACTOR}} environment variable, for example by creating a file {{ic|/etc/profile.d/qt-hidpi.sh}} (Note; this variable is unset in the startkde script, as KDE prefers the solution where the proper DPI was set on the actual X-server).<br />
<br />
export QT_AUTO_SCREEN_SCALE_FACTOR=1<br />
<br />
And set the executable bit on it.<br />
<br />
If automatic detection of hi-DPI screens does not produce the desired effect, scaling can be set manually per-screen ({{ic|QT_SCREEN_SCALE_FACTORS}}) or globally ({{ic|QT_SCALE_FACTOR}}). For more details see the [https://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/ Qt blog post].<br />
<br />
Note if you manually set the screen factor, it's important to set QT_AUTO_SCREEN_SCALE_FACTOR=0 otherwise some applications which explicitly force high DPI enabling get scaled twice. This is why KDE disables this way of scaling.<br />
<br />
QT_SCALE_FACTOR will scale fonts<br />
QT_SCREEN_SCALE_FACTORS will *not* scale fonts<br />
<br />
If you also set the font DPI manually in xrdb to support other toolkits - QT_SCALE_FACTORS will give you a huge fonts.<br />
<br />
=== GDK 3 (GTK+ 3) ===<br />
<br />
To scale UI elements by a factor of two:<br />
<br />
export GDK_SCALE=2<br />
<br />
To undo scaling of text:<br />
<br />
export GDK_DPI_SCALE=0.5<br />
<br />
=== GTK+ 2 ===<br />
<br />
Scaling of UI elements is not supported by the toolkit itself, however it's possible to generate a theme with elements pre-scaled for HiDPI display using {{AUR|oomox-git}}.<br />
<br />
=== Elementary (EFL) ===<br />
<br />
To scale UI elements by a factor of 1.5:<br />
<br />
export ELM_SCALE=1.5<br />
<br />
For more details see https://phab.enlightenment.org/w/elementary/<br />
<br />
== Display managers ==<br />
<br />
=== SDDM ===<br />
<br />
{{Accuracy|General issue, see [[HiDPI#X_Server]]}}<br />
<br />
To scale SDDM you have to change the following properties in {{ic|/etc/sddm.conf}}.<br />
It is recommended to make a backup of your config before editing it.<br />
<br />
[X11]<br />
# X server arguments<br />
ServerArguments=-nolisten tcp -dpi 144<br />
<br />
==== Alternative way using Xrandr ====<br />
<br />
If setting ServerArguments fails, it is possible to directly change the DPI setting via xrandr.<br />
Modify {{ic|/etc/sddm.conf}} and add the following section into file:<br />
<br />
[X11]<br />
# script to execute when starting the display server<br />
# default to /usr/share/sddm/scripts/Xsetup<br />
DisplayCommand=/etc/sddm/Xsetup<br />
<br />
Then copy {{ic|/usr/share/sddm/scripts/Xsetup}} into {{ic|/etc/sddm/Xsetup}} with the following<br />
lines:<br />
<br />
#!/bin/sh<br />
# Xsetup - run as root before the login dialog appears<br />
/usr/bin/xrandr --dpi 144<br />
<br />
Please read {{ic|sddm.conf(5)}} for detailed configuration parameters.<br />
<br />
== Boot managers ==<br />
<br />
=== GRUB ===<br />
<br />
A possible solution is to use a big size font. Generate a GRUB font of custom size, e.g. using the font DejaVu Sans Mono and size 36:<br />
<br />
# grub-mkfont --output=/boot/grub/fonts/DejaVuSansMono36.pf2 --size=36 /usr/share/fonts/TTF/DejaVuSansMono.ttf<br />
<br />
then set GRUB to use it, adding the {{ic|1=GRUB_FONT}} line to {{ic|1=/etc/default/grub}}<br />
<br />
{{hc|1=/etc/default/grub|2=GRUB_FONT=/boot/grub/fonts/DejaVuSansMono36.pf2}}<br />
<br />
and finally update GRUB configuration with<br />
<br />
# grub-mkconfig -o /boot/grub/grub.cfg<br />
<br />
== Applications ==<br />
<br />
=== Browsers ===<br />
<br />
==== Firefox ====<br />
<br />
Open Firefox advanced preferences page ({{ic|about:config}}) and set parameter {{ic|layout.css.devPixelsPerPx}} to {{ic|2}} (or find the one that suits you better; {{ic|2}} is a good choice for Retina screens).<br />
<br />
If you use a HiDPI monitor such as Retina display together with another monitor, you can use [https://addons.mozilla.org/en-US/firefox/addon/autohidpi/ AutoHiDPI] add-on in order to automatically adjust {{ic|layout.css.devPixelsPerPx}} setting for the active screen.<br />
<br />
From Firefox version 38 onwards, your system (GTK+ 3.10) settings should be taken into account.[https://bugzilla.mozilla.org/show_bug.cgi?id=975919]<br />
<br />
If the menus and url-bar fonts are still tiny you can create a userChrome.css file for your profile that explicitly sets the font-size. The file needs to be placed in your $HOME/.mozilla/firefox/*.default/chrome/ folder. You likely need to create the chrome folder, do not try to put it in a chrome folder that already exists in another place, that will not work.<br />
<br />
The content should be something like following. Please make sure that the namespace part is included as that is important.<br />
<br />
<pre><nowiki><br />
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* set default namespace to XUL */<br />
* { font-size: 16px !important; }<br />
</nowiki></pre><br />
<br />
If the preferences pages are still tiny, you should try setting a minimum font size in your preferences -> Content -> Font&Colors -> Advanced.<br />
<br />
==== Chromium / Google Chrome ====<br />
<br />
Full out of the box HiDPI support is available in {{Pkg|chromium}} and {{AUR|google-chrome}} as tested (with google-chrome) on Gnome and Cinnamon. Additionally, for environments where out of the box support does not work, the browser can be launched with the command line flag {{ic|--force-device-scale-factor}} and a scaling value. This will scale all content and ui, including tab and font size. For example:<br />
<br />
{{bc|1=chromium --force-device-scale-factor=2}}<br />
<br />
Using this option, a scaling factor of 1 would be normal scaling. Floating point values can be used.<br />
<br />
If you use a HiDPI monitor such as Retina display together with another monitor, you can use the [https://chrome.google.com/webstore/detail/resolution-zoom/enjjhajnmggdgofagbokhmifgnaophmh reszoom] extension in order to automatically adjust the zoom level for the active screen.<br />
<br />
==== Opera ====<br />
<br />
Since version 24 one can alter Opera's DPI by starting it with the {{ic|1=--alt-high-dpi-setting=X}} command line option, where X is the desired DPI. For example, with {{ic|1=--alt-high-dpi-setting=144}} Opera will assume that DPI is 144. Newer versions of opera will auto detect the DPI using the font DPI setting (in KDE: the force font DPI setting.)<br />
<br />
Generally speaking, Opera's HiDPI support is excellent. Since it is also built using Chromium's blink renderer, and has an extension which runs most Chrome extensions, it is a very viable alternative to Chromium/Chrome.<br />
<br />
=== Thunderbird ===<br />
<br />
See [[#Firefox]]. To access {{ic|about:config}}, go to Edit → Preferences → Advanced → Config editor.<br />
<br />
=== Wine applications ===<br />
<br />
Run<br />
$ winecfg<br />
and change the "dpi" setting found in the "Graphics" tab. This only affects the font size.<br />
<br />
=== Skype ===<br />
<br />
The new Skype for Linux Alpha with the {{AUR|skypeforlinux}}) package uses [[#GDK 3 (GTK+ 3)]], and the {{AUR|skypeforlinux-bin}} package uses [[#GTK+ 2]].<br />
<br />
The old legacy Skype ({{AUR|skype}}) uses Qt 4, and needs to be configured separately. You cannot change the DPI setting for it, but at least you can change font size. Install {{Pkg|qt4}} and run {{ic|qtconfig-qt4}} to do it.<br />
<br />
=== Spotify ===<br />
<br />
Spotify can be launched with a custom scaling factor, for example<br />
$ spotify --force-device-scale-factor=1.5<br />
<br />
You can also override Spotify's {{ic|.desktop}} file. Simply copy the file:<br />
$ cp /usr/share/applications/spotify.desktop ~/.local/share/applications/<br />
<br />
Then edit it and add the {{ic|--force-device-scale-factor}} option:<br />
<br />
[Desktop Entry]<br />
Name=Spotify<br />
GenericName=Music Player<br />
Comment=Spotify streaming music client<br />
Icon=spotify-client<br />
Exec=spotify %U --force-device-scale-factor=1.5<br />
TryExec=spotify<br />
Terminal=false<br />
Type=Application<br />
Categories=Audio;Music;Player;AudioVideo;<br />
MimeType=x-scheme-handler/spotify;<br />
<br />
=== Zathura document viewer ===<br />
<br />
No modifications required for document viewing.<br />
<br />
UI text scaling is specified via [https://pwmt.org/projects/zathura/documentation/ configuration file] (note that "font" is a [https://pwmt.org/projects/girara/options/ girara option]):<br />
<br />
set font "monospace normal 20"<br />
<br />
=== IntelliJ IDEA ===<br />
<br />
IntelliJ IDEA 15 and above should include HiDPI support.[http://blog.jetbrains.com/idea/2015/07/intellij-idea-15-eap-comes-with-true-hidpi-support-for-windows-and-linux/] If it does not work, the most convenient way to fix the problem in this case seems to be changing the Override Default Fonts setting:<br />
<br />
:''File -> Settings -> Behaviour & Appearance -> Appearance''<br />
<br />
The addition of {{ic|1=-Dhidpi=true}} to the vmoptions file in either {{ic|$HOME/.IdeaC14/}} or {{ic|/usr/share/intelligj-idea-ultimate-edition/bin/}} of [https://youtrack.jetbrains.com/issue/IDEA-114944 release 14] should not be required anymore.<br />
<br />
=== NetBeans ===<br />
<br />
NetBeans allows the font size of its interface to be controlled using the {{ic|1=--fontsize}} parameter during startup. To make this change permanent edit the {{ic|1=/usr/share/netbeans/etc/netbeans.conf}} file and append the {{ic|1=--fontsize}} parameter to the {{ic|1=netbeans_default_options}} property.[http://wiki.netbeans.org/FaqFontSize]<br />
<br />
The editor fontsize can be controlled from Tools → Option → Fonts & Colors.<br />
<br />
The output window fontsize can be controlled from Tools → Options → Miscelaneous → Output<br />
<br />
=== Gimp 2.8 ===<br />
<br />
Use a high DPI theme, or [http://gimpforums.com/thread-increase-all-icons-on-hidpi-screen?pid=39113#pid39113 adjust] {{ic|1=gtkrc}} of an existing theme. (Change all occurrences of the size {{ic|1=button}} to {{ic|1=dialog}}, for example {{ic|1=GimpToolPalette::tool-icon-size}}.)<br />
<br />
There's also the [https://github.com/jedireza/gimp-hidpi gimp-hidpi].<br />
<br />
=== VLC ===<br />
<br />
As of May 2015, the git version {{AUR|vlc-git}} seems to solve some of the problems.<br />
<br />
Qt5 may detect that you have a HiDPI display and if so the video will be played in one corner of the window with lots of black space around it, even in fullscreen. You can start vlc with <code>QT_AUTO_SCREEN_SCALE_FACTOR=0</code> to workaround the problem, although the interface elements will be smaller. ([https://trac.videolan.org/vlc/ticket/17823 source])<br />
<br />
=== Steam ===<br />
<br />
The [https://github.com/MoriTanosuke/HiDPI-Steam-Skin HiDPI-Steam-Skin] can be installed to increase the font size of the interface. While not perfect, it does improve usability. <br />
<br />
{{Note|The skin must be downloaded to {{ic|1=~/.local/share/Steam/skins}}, not {{ic|1=~/.steam/skins/}} as the README says.}}<br />
<br />
<br />
[http://steamcommunity.com/groups/metroskin/discussions/0/517142253861033946/ MetroSkin Unofficial Patch] also helps with HiDPI on Steam with Linux.<br />
<br />
=== Java applications ===<br />
<br />
Java applications using the AWT/Swing framework can be scaled by defining the sun.java2d.uiScale variable when invoking java. For example,<br />
<br />
java -Dsun.java2d.uiScale=2 -jar some_application.jar<br />
<br />
=== Unsupported applications ===<br />
<br />
One approach is to run the application full screen and without decoration in its own VNC desktop. Then scale the viewer. With Vncdesk ({{AUR|vncdesk-git}} from the [[AUR]]) you can set up a desktop per application, then start server and client with a simple command such as {{ic|vncdesk 2}}.<br />
<br />
[[x11vnc]] has an experimental option {{ic|-appshare}}, which opens one viewer per application window. Perhaps something could be hacked up with that.<br />
<br />
== Multiple displays ==<br />
<br />
The HiDPI setting applies to the whole desktop, so non-HiDPI external displays show everything too large.<br />
<br />
To resize content on a screen ("make it bigger"), but keep its resolution ("awesome 4k"),<br />
you can use the [[xrandr]] tool with the {{Ic|--scale}} and {{Ic|--scale-from}} options.<br />
They are shortcuts for the transformation matrix application with {{Ic|--transform}}.<br />
<br />
{{Ic|--scale-from}} is especially helpful when cloning different-resolution displays.<br />
<br />
<br />
=== Side display ===<br />
<br />
To have a non-HiDPI monitor (on DP1) right of an internal HiDPI display (eDP1), one could run:<br />
<br />
xrandr --output eDP-1 --auto --output DP-1 --auto --scale 2x2 --right-of eDP-1<br />
<br />
When extending above the internal display, you may see part of the internal display on the external monitor. In that case, specify the position manually, e.g. using [https://gist.github.com/wvengen/178642bbc8236c1bdb67 this script].<br />
<br />
You may run into problems with your mouse not being able to reach the whole screen. That is a [https://bugs.freedesktop.org/show_bug.cgi?id=39949 known bug] with an xserver-org patch (or try the panning option, but that might cause other problems).<br />
<br />
An example of the panning syntax for a 4k laptop with an external 1920x1080 monitor to the right:<br />
<br />
xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning 3840x2160+3840+0 --scale 2x2 --right-of eDP-1<br />
<br />
Generically if your HiDPI monitor is AxB pixels and your regular monitor is CxD and you are scaling by [ExF], the commandline for right-of is:<br />
<br />
xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1<br />
<br />
<br />
If panning is not a solution for you it may be better to set position of monitors and fix manually the total display screen.<br />
<br />
An example of the syntax for a 2560x1440 WQHD 210 DPI laptop monitor (eDP1) using native resolution placed below a 1920x1080 FHD 96 DPI external monitor (HDMI) scaled to match global DPI settings:<br />
<br />
xrandr --output eDP-1 --auto --pos 0x1458 --output HDMI-1 --scale 1.35x1.35 --auto --pos 0x0 --fb 2592x2898<br />
<br />
The total screen size (--fb) and positioning (--pos) are to be calculated taking into account the scaling factor.<br />
<br />
In this case laptop monitor (eDP1) has no scaling and uses native mode for resolution so it will total 2560x1440, but external monitor (HDMI) is scaled and it has to be considered a larger screen so (1920*1.35)x(1080*1.35) from where the eDP1 Y position came 1080*1.35=1458 and the total screen size: since one on top of the other X=(greater between eDP1 and HDMI, so 1920*1.35=2592) and Y=(sum of the calculated heights of eDP1 and HDMI, so 1440+(1080*1.35)=2898).<br />
<br />
Generically if your hidpi monitor is AxB pixels and your regular monitor is CxD and you are scaling by [ExF] and hidpi is placed below regular one, the commandline for right-of is:<br />
<br />
xrandr --output eDP-1 --auto --pos 0x(DxF) --output HDMI-1 --auto --scale [E]x[F] --pos 0x0 --fb [greater between A and (C*E)]x[B+(D*F)]<br />
<br />
You may adjust the "sharpness" parameter on your monitor settings to adjust the blur level introduced with scaling.<br />
<br />
{{Note|1=Above solution with {{ic|--scale 2x2}} does not work on some Nvidia cards. No solution is currently available.[https://bbs.archlinux.org/viewtopic.php?pid=1670840]}}<br />
<br />
=== Mirroring ===<br />
<br />
If all you want is to mirror ("unify") displays, this is easy as well:<br />
<br />
With AxB your native HiDPI resolution (for ex 3200x1800) and CxD your external screen resolution (for ex 1920x1200)<br />
<br />
xrandr --output HDMI --scale [A/C]x[B/D]<br />
<br />
In this example which is QHD (3200/1920 = 1.66 and 1800/1200 = 1.5)<br />
<br />
xrandr --output HDMI --scale 1.66x1.5<br />
<br />
For UHD to 1080p (3840/1920=2 2160/1080=2)<br />
<br />
xrandr --output HDMI --scale 2x2<br />
<br />
You may adjust the "sharpness" parameter on your monitor settings to adjust the blur level introduced with scaling.<br />
<br />
== Linux console ==<br />
<br />
The default [[w:Linux console|Linux console]] font will be very small on hidpi displays, the largest font present in the {{Pkg|kbd}} package is {{ic|latarcyrheb-sun32}} and other packages like {{Pkg|terminus-font}} contain further alternatives, such as {{ic|ter-132n}}(normal) and {{ic|ter-132b}}(bold). See [[Fonts#Console fonts]] for configuration details.<br />
<br />
After changing the font, it is often garbled and unreadable when changing to other virtual consoles ({{ic|tty2-6}}). To fix this you can [[Kernel_mode_setting#Forcing_modes_and_EDID|force specific mode]] for KMS, such as {{ic|1=video=2560x1600@60}} (substitute in the native resolution of your HiDPI display), and reboot.<br />
<br />
== See also ==<br />
<br />
* [http://www.phoronix.com/scan.php?page=article&item=linux_uhd4k_gpus Ultra HD 4K Linux Graphics Card Testing] (Nov 2013)<br />
* [http://www.eizo.com/library/basics/pixel_density_4k/ Understanding pixel density]</div>TheJJhttps://wiki.archlinux.org/index.php?title=CUPS/Printer-specific_problems&diff=467471CUPS/Printer-specific problems2017-02-02T15:38:56Z<p>TheJJ: /* Canon */ add gutenprint at list top</p>
<hr />
<div>[[Category:Printers]]<br />
[[ja:CUPS/プリンター別の問題]]<br />
{{Related articles start}}<br />
{{Related|CUPS}}<br />
{{Related|CUPS/Troubleshooting}}<br />
{{Related articles end}}<br />
<br />
This article contains printer or manufacturer-specific instructions for [[CUPS]].<br />
See [http://www.openprinting.org/printers OpenPrinting] if your printer is not already listed here, or if none of the listed drivers work.<br />
<br />
{{Note|If you add a printer to this list, consider contributing your entry to [https://wiki.linuxfoundation.org/openprinting/database/databaseintro OpenPrinting] - that way users of other distributions will also benefit!}}<br />
<br />
==Brother==<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| DCP-135C || {{AUR|brother-dcp135c}} ||<br />
|-<br />
| DCP-150C || {{AUR|brother-dcp150c}} ||<br />
|-<br />
| DCP-7020 || [[CUPS#Foomatic|foomatic]] || Or Brother's driver.<br />
|-<br />
| DCP-7030 || {{AUR|brother-dcp7030}} ||<br />
|-<br />
| DCP-7065DN || {{AUR|brother-dcp7065dn}} ||<br />
|-<br />
| FAX-2820 || {{AUR|brother-cups-wrapper-laser}} ||<br />
|-<br />
| FAX-2840 || {{AUR|brother-fax2840}} || Or [[CUPS#Foomatic|foomatic]] - works mostly with {{ic|hpijs-pcl5e.ppd}}. Same as the HL-2170W.<br />
|-<br />
| HL-2030 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2030}}<br />
|-<br />
| HL-2035 || [[CUPS#Foomatic|foomatic]] || Should be compatible with any drivers for the HL-2030.<br />
|-<br />
| HL-2040 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2040}}<br />
|-<br />
| HL-2130 || [[CUPS#Foomatic|foomatic]] (using the HL-2140 driver) || Or {{Pkg|hplip}}<br />
|-<br />
| HL-2140 || [[CUPS#Foomatic|foomatic]] || Or {{AUR|brother-hl2140}}<br />
|-<br />
| HL-2170W || [[CUPS#Foomatic|foomatic]] || Or Brother's driver. <br />
|-<br />
| HL-2230 || [[CUPS#Foomatic|foomatic]] || Same as HL-2170W. Select HL-2170W as the driver in CUPS admin when adding a printer.<br />
|-<br />
| HL-2250DN || {{AUR|brother-hl2250dn}} ||<br />
|-<br />
| HL-2270DW || {{AUR|brother-hl2270dw}} ||<br />
|-<br />
| HL-2280DW || {{AUR|brother-hl2280dw}} ||<br />
|-<br />
| HL-2340DW || {{AUR|brother-hll2340dw}} ||<br />
|-<br />
| HL-3045CN || Install Brother's driver. ||<br />
|-<br />
| HL-3150CDW || {{AUR|brother-hl3150cdw}} ||<br />
|-<br />
| HL-3170CDW || {{AUR|brother-hl3170cdw}} ||<br />
|-<br />
| HL-5140 || [[CUPS#Foomatic|foomatic]] || Or Brother's driver.<br />
|-<br />
| HL-5340 || [[CUPS#Foomatic|foomatic]] || Using the ''Generic PCL 6/PCL XL Printer - CUPS+Gutenprint'' ({{pkg|gutenprint}}, {{pkg|foomatic-db-gutenprint}} and {{pkg|foomatic-db-gutenprint-ppds}}). Or Brother's driver, which may result in failed prints with postscript errors.<br />
|-<br />
| HL-L2300D || {{AUR|brother-hll2300d}} || <br />
|-<br />
| HL-L2380DW || {{AUR|brother-hll2380dw}} ||<br />
|-<br />
| MFC-420CN || {{AUR|brother-mfc-420cn}}{{Broken package link|{{aur-mirror|brother-mfc-420cn}}}} ||<br />
|-<br />
| MFC-440CN || {{AUR|brother-mfc-440cn}} ||<br />
|-<br />
| MFC-465CN || {{AUR|brother-mfc-465cn}}{{Broken package link|{{aur-mirror|brother-mfc-465cn}}}} ||<br />
|-<br />
| MFC-7360N || Install Brother's driver. ||<br />
|-<br />
| MFC-9320CW || Install Brother's driver. ||<br />
|-<br />
| MFC-9840CDW || [[CUPS#Foomatic|foomatic]] || Or Brother's driver. This printer also works with the generic PCL-6 driver from the {{Pkg|gutenprint}} package. Use '''pcl_p1''' for the printer's address when using the PCL-6 driver.<br />
|-<br />
| MFC-J470DW || {{AUR|brother-mfc-j470dw}} ||<br />
|-<br />
| MFC-J5520DW || {{AUR|brother-mfc-j5520dw}} ||<br />
|-<br />
| MFC-J5910DW || {{AUR|brother-mfc-j5910dw}} ||<br />
|-<br />
| MFC-J650DW || Install Brother's driver. ||<br />
|-<br />
| MFC-J885DW || {{AUR|brother-mfc-j885dw}} ||<br />
|-<br />
| MFC-L2700DW || {{AUR|brother-mfc-l2700dw}} || Please look also at the comments section of the AUR package page. <br />
|-<br />
| QL-500 || {{AUR|brother-ql500}} ||<br />
|-<br />
| QL-570 || {{AUR|brother-ql570}} ||<br />
|-<br />
| QL-580N || {{AUR|brother-ql580n}} ||<br />
|-<br />
| QL-650TD || {{AUR|brother-ql650td}} ||<br />
|-<br />
| QL-700 || {{AUR|brother-ql700}} ||<br />
|-<br />
| QL-710W || {{AUR|brother-ql710w}} ||<br />
|-<br />
| QL-720NW || {{AUR|brother-ql720nw}} ||<br />
|-<br />
| QL-1050 || {{AUR|brother-ql1050}} || <br />
|-<br />
| QL-1050N || {{AUR|brother-ql1050n}} ||<br />
|-<br />
| QL-1060 || {{AUR|brother-ql1060n}} ||<br />
|-<br />
| TD-2020 || {{AUR|brother-td2020}} ||<br />
|-<br />
| TD-2120N || {{AUR|brother-td2120n}} ||<br />
|-<br />
| TD-2130N || {{AUR|brother-td2130n}} ||<br />
|-<br />
| TD-4000 || {{AUR|brother-td4000}} ||<br />
|-<br />
| TD-4100N || {{AUR|brother-td4100n}} ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
===Network printers===<br />
For network printers, use {{ic|ipp://'''printer_ip'''/ipp/port1}} as printer address.<br />
For some older printers, this might not work. If not, try {{ic|lpd://'''printer_ip'''/BINARY_P1}} instead.<br />
<br />
Some printers use the socket protocol. For these printers, use {{ic|socket://'''printer_ip''':9100}}.<br />
For http, use {{ic|http://'''printer_ip'''/POSTSCRIPT_P1}}.<br />
<br />
===Custom drivers===<br />
<br />
Brother provides custom drivers on their website, either in source tarball, rpm, or deb form. [[Packaging Brother printer drivers]] covers creating [[PKGBUILD]]s from the existing RPM packages.<br />
{{Note|The source packages might be a better alternative to the rpm packages, provided they contain all the needed files.}}<br />
<br />
====Manually installing from the RPM packages====<br />
<br />
{{Warning|This should ideally be automated in a [[PKGBUILD]]}}<br />
<br />
[[Install]] the {{Pkg|rpmextract}} package, and extract both rpm packages using {{ic|rpmextract.sh}}. Extracting both files will create a var and a usr directory - move the contents of both directories into the corresponding root directories.<br />
<br />
Run the cups wrapper file in {{ic|/usr/local/Brother/cupswrapper}}. This should automatically install and configure your brother printer.<br />
<br />
==Canon==<br />
<br />
{{Style|It would good if the driver table could be removed or somehow merged into the main table}}<br />
<br />
{| class="wikitable"<br />
! style="font-weight: bold;" | Driver<br />
! style="font-weight: bold;" | Description<br />
|-<br />
| {{Pkg|gutenprint}}<br />
| Supports [http://gimp-print.sourceforge.net/p_Supported_Printers.php many Canon printers].<br />
|-<br />
| {{AUR|cndrvcups-lb}}<br />
| Canon UFR II /LIPSLX Printer Driver build from source for LBP, iR & MF printers<br />
|-<br />
| {{AUR|cndrvcups-lb-bin}}<br />
| Canon UFR II/UFR II LT Printer Driver (including Canon imageCLASS MF4720w)<br />
|-<br />
| {{AUR|cnijfilter-mg4200}}<br />
| Canon IJ Printer Driver (for mg4200 series)<br />
|-<br />
| {{AUR|capt-src}}<br />
| Canon CAPT Printer Driver (for Canon i-Sensys printers)<br />
|-<br />
| {{AUR|cups-bjnp}}<br />
| CUPS back-end for the canon printers using the proprietary USB over IP BJNP protocol<br />
|}<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| iP4300<br />
| {{Pkg|gutenprint}}<br />
| Or use Canon's {{AUR|cnijfilter-ip4300}}{{Broken package link|{{aur-mirror|cnijfilter-ip4300}}}} driver, or the [http://www.turboprint.info/ TurboPrint] driver.<br />
|-<br />
| LBP810 || rowspan="34" | {{AUR|capt-src}} ||<br />
|-<br />
| LBP1120 ||<br />
|-<br />
| LBP1210 ||<br />
|-<br />
| LBP2900 ||<br />
|-<br />
| LBP3000 ||<br />
|-<br />
| LBP3010 ||<br />
|-<br />
| LBP3018 ||<br />
|-<br />
| LBP3050 ||<br />
|-<br />
| LBP3100 ||<br />
|-<br />
| LBP3108 ||<br />
|-<br />
| LBP3150 ||<br />
|-<br />
| LBP3200 ||<br />
|-<br />
| LBP3210 ||<br />
|-<br />
| LBP3250 ||<br />
|-<br />
| LBP3300 ||<br />
|-<br />
| LBP3310 ||<br />
|-<br />
| LBP3500 ||<br />
|-<br />
| LBP5000 ||<br />
|-<br />
| LBP5050 series ||<br />
|-<br />
| LBP5100 ||<br />
|-<br />
| LBP5300 ||<br />
|-<br />
| LBP6000 ||<br />
|-<br />
| LBP6018 ||<br />
|-<br />
| LBP6020 ||<br />
|-<br />
| LBP6200 ||<br />
|-<br />
| LBP6300 ||<br />
|-<br />
| LBP6300n ||<br />
|-<br />
| LBP6310dn ||<br />
|-<br />
| LBP7010C ||<br />
|-<br />
| LBP7018C ||<br />
|-<br />
| LBP7200Cdn (network mode) ||<br />
|-<br />
| LBP7200C series ||<br />
|-<br />
| LBP7210Cdn ||<br />
|-<br />
| LBP9100C ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
Some Canon printers will use a similar setup to the iP4500, so consider modifying the {{AUR|cnijfilter-ip4500}} package for other, similar printers.<br />
<br />
===CARPS===<br />
<br />
Some of Canon's printers use Canon's proprietary Canon Advanced Raster Printing System (CARPS) driver.<br />
[http://www.rainbow-software.org/2014/01/23/cups-driver-for-canon-carps-printers/ Rainbow Software] have managed to reverse engineer the CARPS data format and have successfully created a CARPS CUPS driver, which is available as {{AUR|carps-cups}}.<br />
The project's [https://github.com/ondrej-zary/carps-cups GitHub] page includes a list of working printers.<br />
<br />
===CAPT===<br />
<br />
See [[Canon CAPT]].<br />
<br />
==Dell==<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| 1250C<br />
| {{AUR|foo2zjs-nightly}}<br />
| See http://cybercom.net/~dcoffin/hbpl, the patch has been merged into upstream. The printer may also work with the [[#Xerox Phaser 6000B|Xerox Phaser 6000B driver]].<br />
|-<br />
| E515,<br />
E515dw<br />
| Install [http://downloads.dell.com/FOLDER03040853M/1/Printer_E515dw_Driver_Dell_A00_LINUX.zip Dell's driver].<br />
| Both ''e515dwcupswrapper-3.2.0-1.i386.deb'' and ''e515dwlpr-3.2.0-1.i386.deb'' need to be installed. You could either write a [[PKGBUILD]], use {{AUR|debtap}}, or use {{AUR|dpkg}} (using dpkg is not recommended as the files will not be managed by [[pacman]]). The driver works on both the x86_64 and i386 platforms, but may require [[multilib]].<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
==Epson==<br />
<br />
{{AUR|epson-inkjet-printer-escpr}} is a driver for the Epson Inkjet Printer Driver (ESC/P-R) for Linux.<br />
<br />
There is a large selection of printer drivers/filters available in the [[AUR]].<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| AcuLaser CX11(NF) || {{AUR|epson-alcx11-filter}} ||<br />
|-<br />
| AcuLaser C900 || || This printer uses Epson's driver, with a device URI of ''''usb://EPSON/AL-C900'''', and may need the pipsplus service to be running.<br />
|-<br />
| TX125 || {{AUR|epson-inkjet-printer-n10-nx127}} ||<br />
|-<br />
| LP-S5000 || || This printer requires a [[#Avasys|custom driver from Avasys]].<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
===Utilities===<br />
====escputil====<br />
escputil is part of the {{Pkg|gutenprint}} package, and performs some utility functions on Epson printers such as nozzle cleaning.<br />
<br />
====mtink====<br />
This is a printer status monitor which enables to get the remaining ink quantity, to print test patterns, to reset printer and to clean nozzle. It use an intuitive graphical user interface.<br />
<br />
====Stylus-toolbox====<br />
This is a GUI using escputil and cups drivers. It supports nearly all USB printer of Epson and displays ink quantity, can clean and align print heads and print test patterns.<br />
<br />
===Custom drivers===<br />
====Avasys====<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
"Source" code of the driver is available on the [http://www.avasys.jp avasys website], in Japanese, however it includes a 32 bit binary which will cause problem on 64 bit system.<br />
<br />
*[[Install]] the {{Pkg|psutils}}, {{Pkg|bc}}, {{Pkg|libstdc++5}} packages ({{Pkg|lib32-libstdc++5}} on 64bit).<br />
<br />
* Download the source code of the driver.<br />
* Compile and install the driver. <br />
<br />
$ ./configure --prefix=/usr<br />
$ make<br />
# make install<br />
<br />
If you have any problems on a 64 system, some other lib32 libraries may be required. Please adjust this page if that is the case.<br />
<br />
==HP==<br />
<br />
See also [[CUPS/Troubleshooting#HP issues]].<br />
<br />
Most HP printers will use {{Pkg|hplip}}, but some may use {{AUR|hpoj}}.<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| Photosmart 2575 || {{Pkg|hplip}} || Or use the hpijs driver in [[CUPS#Foomatic|foomatic]].<br />
|-<br />
| DeskJet 710C || rowspan="8" | {{AUR|pnm2ppa}} ||<br />
|-<br />
| DeskJet 712C ||<br />
|-<br />
| DeskJet 720C ||<br />
|-<br />
| DeskJet 722C ||<br />
|-<br />
| DeskJet 820se ||<br />
|-<br />
| DeskJet 820Cxi ||<br />
|-<br />
| DeskJet 1000Cse ||<br />
|-<br />
| DeskJet 1000Cxi ||<br />
|-<br />
| LaserJet P1606dn || {{pkg|hplip}} + {{aur|hplip-plugin}} || Or {{aur|foo2zjs-nightly}}.<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
====== HPLIP Driver ======<br />
<br />
{{pkg|hplip}} provides drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet, and some LaserJet printers, and also provides an easy to use setup tool.<br />
<br />
To run the setup tool with the GUI qt frontend:<br />
# hp-setup -u<br />
<br />
To run the setup tool with the command line frontend:<br />
# hp-setup -i<br />
<br />
To set up directly the configuration of a network connected HP printer:<br />
# hp-setup -i ''<ip address>''<br />
<br />
To run systray spool manager:<br />
$ hp-systray<br />
<br />
To generate a URI for a given ip address:<br />
# hp-makeuri ''<ip address>''<br />
<br />
PPD files are in {{ic|/usr/share/ppd/HP/}}.<br />
<br />
For printers that require the proprietary HP plugin (like the Laserjet Pro P1102w or 1020), install the {{AUR|hplip-plugin}} package from [[AUR]].<br />
<br />
{{Note|<br />
{{Pkg|hplip}} depends on {{Pkg|foomatic-db-engine}} which prevents the drivers list from appearing when a printer is added to CUPS via the web user interface (following error : "Unable to get list of printer drivers"). Possible workarounds:<br />
* '''Either:''' Install {{Pkg|hplip}} first, then retrieve the PPD file that matches your printer from {{ic|/usr/share/ppd/HP/}}. Next, remove {{Pkg|hplip}} entirely as well as any unnecessary dependencies. Finally, install the printer manually using the CUPS web UI, selecting the PPD file you retrieved, and then re-install {{Pkg|hplip}}. After a reboot, you should have a fully working printer.<br />
* '''Or:''' Remove {{Pkg|hplip}}, {{Pkg|foomatic-db}} and {{Pkg|foomatic-db-engine}} along with any unnecessary dependencies. Reinstall {{Pkg|hplip}} and restart CUPS. Install your printer using the CUPS web UI, which should now be able to find the drivers automatically. No reboot needed.}}<br />
<br />
==Konica==<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| Minolta Magicolor 1600W || rowspan=7 | [[CUPS#Foomatic|foomatic]] ||<br />
|-<br />
| Minolta Magicolor 1680MF ||<br />
|-<br />
| Minolta Magicolor 1690MF ||<br />
|-<br />
| Minolta Magicolor 2480MF ||<br />
|-<br />
| Minolta Magicolor 2490MF ||<br />
|-<br />
| Minolta Magicolor 2530DL ||<br />
|-<br />
| Minolta Magicolor 4690MF ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
==Lexmark==<br />
<br />
===Utilities===<br />
<br />
Lexmark provides a utility called lexijtools with the drivers.<br />
<br />
===Custom drivers===<br />
<br />
Lexmark does provide Linux drivers for all their hardware.<br />
The following packages are required:<br />
<br />
*{{Pkg|cups}}<br />
*{{Pkg|sane}}<br />
*{{Pkg|ncurses}}<br />
*{{Pkg|libusb}}<br />
*{{Pkg|libxext}}<br />
*{{Pkg|libxtst}}<br />
*{{Pkg|libxi}}<br />
*{{Pkg|libstdc++5}}<br />
*{{Pkg|krb5}}<br />
*{{Pkg|lua}} (for the automated installer)<br />
*[[Java]] (for the automated installer, and some of the Lexmark tools)<br />
<br />
The drivers will need to be [http://support.lexmark.com/index?page=driversdownloads downloaded] from Lexmark's website. Preferably, create a package (see [[Creating packages]]) and install it. Here is a basic [[PKGBUILD]] that still needs work but will give an idea of what is required.<br />
<br />
{{hc|PKGBUILD|<nowiki><br />
# Contributor: Todd Partridge (Gen2ly) toddrpartridge (at) yahoo<br />
<br />
pkgname=cups-lexmark-Z2300-2600<br />
pkgver=1<br />
pkgrel=1<br />
pkgdesc="Lexmark Z2300 and 2600 Series printer driver for cups"<br />
arch=('i686')<br />
url="http://www.lexmark.com/"<br />
license=('custom')<br />
depends=('cups' 'glibc' 'ncurses' 'libusb' 'libxext' 'libxtst' 'libxi' 'libstdc++5' 'krb5' 'lua' 'java-runtime')<br />
conflicts=('z600' 'cjlz35le-cups' 'cups-lexmark-700')<br />
source=(lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh)<br />
md5sums=(3c37eb87e3dad4853bf29344f9695134)<br />
<br />
<br />
package() {<br />
# Extract installer<br />
sh lexmark-inkjet-08-driver-1.0-1.i386.tar.gz.sh --target Installer-Files<br />
cd Installer-Files<br />
mkdir Driver<br />
tar xvvf instarchive_all --lzma -C Driver/<br />
cd Driver<br />
tar xv lexmark-inkjet-08-driver-1.0-1.i386.tar.gz -C $pkgdir<br />
}<br />
</nowiki>}}<br />
<br />
Keep in mind you can use the automated installer but doing so will leave the resulting changes untracked. The PPD will be installed into {{ic|/usr/local/lexmark/lxk08/etc/}} or similar, depending on the printer model.<br />
<br />
==Oki==<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| C110|| [[CUPS#Foomatic|foomatic]] ||<br />
|-<br />
| MC561|| [[CUPS#Foomatic|foomatic-db-nonfree]] ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
==Samsung==<br />
<br />
{{Accuracy|All the cnijfilter drivers appear to be for Canon printers - maybe the cnijfilter comment would be better off in the Canon section?}}<br />
<br />
For printers requiring the ''cnijfilter'' drivers, search for the correct driver [https://aur.archlinux.org/packages.php?K=cnijfilter in the AUR]<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| ML-2010 || {{Pkg|splix}} ||<br />
|-<br />
| Newer printers? || {{AUR|samsung-unified-driver}} ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
==Xerox or FujiXerox==<br />
<br />
{| class="wikitable"<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|-<br />
| DocuPrint 203A || {{Pkg|hplip}} || Using the '''DocuPrint P8e(hpijs)''' driver, or the Brother driver on FujiXerox's website (see [[#Brother]] for more information on how to install custom Brother drivers).<br />
|-<br />
| Phaser 3100MFP || Install Xerox's driver || See [[#Phaser 3100MFP]] for more instructions.<br />
|-<br />
| Phaser 6115MFP || [[CUPS#Foomatic|foomatic]] ||<br />
|-<br />
| Phaser 6121MFP || [[CUPS#Foomatic|foomatic]] ||<br />
|-<br />
| ? || {{AUR|fxlinuxprint}}{{Broken package link|{{aur-mirror|fxlinuxprint}}}} ||<br />
|-<br />
! Printer<br />
! Driver/filter<br />
! Notes<br />
|}<br />
<br />
===Custom drivers===<br />
<br />
====Phaser 3100MFP====<br />
<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
<br />
Once you have downloaded the drivers, execute the driver installer and accept the licence:<br />
# cd printer<br />
# ./XeroxPhaser3100.install<br />
Note that the driver is 32 bit, so some 32 bit libraries will be required on an x86_64 system.<br />
<br />
For the scanner, create an /etc/sane.d directory if it doesn't already exist, because it's need by the installer:<br />
# mkdir -p /etc/sane.d<br />
Now install the driver:<br />
# cd scanner/<br />
# ./XeroxPhaser3100sc.install<br />
Again, on an x86_64 install, 32 bit libraries will be needed.<br />
<br />
====Phaser 6000B====<br />
<br />
[[Install]] the [https://github.com/aur-archive/xerox-phaser-6010 xerox-phaser-6010] package (archived from the AUR).<br />
The driver may require older versions of {{Pkg|nettle}} and {{Pkg|gnutls}} to be installed, since the binary blob linked against older versions of the shared libraries provided by those packages. The oldest known-good versions are {{ic|nettle-2.7.1-1}} and {{ic|gnutls-3.3.13-1}}.<br />
<br />
====Phaser 6125N====<br />
<br />
{{Warning|This section involves installing packages without [[pacman]]. These directions should ideally be automated with a [[PKGBUILD]].}}<br />
<br />
FujiXerox does not support Linux on this model. An old rpm [http://onlinesupport.fujixerox.com/tiles/common/hc_drivers_download.jsp?system=%27Linux%27&shortdesc=null&xcrealpath=http://www.fujixeroxprinters.com/downloads/uploaded/dpc525a_linux_.0.0.tar_81c2.zip is available] but does not seem to work.<br />
<br />
A slightly adapted [https://rickvanderzwet.nl/trac/personal/wiki/XeroxPhaser6125N custom driver] has been found to work out of the box.<br />
<br />
To install the tarball, run<br />
# tar -C / --keep-newer-files -xvzf cups-xerox-phaser-6125n-1.0.0.tar.gz</div>TheJJhttps://wiki.archlinux.org/index.php?title=TrackPoint&diff=362787TrackPoint2015-02-27T03:40:20Z<p>TheJJ: added udev rule for changing device speed at boot</p>
<hr />
<div>[[Category:Input devices]]<br />
[[Category:Lenovo]]<br />
{{Expansion|Many pages in [[:Category:Lenovo]] contain more detailed configuration, which need to be merged here.|ArchWiki:Requests#TrackPoint}}<br />
<br />
The TrackPoint is Lenovo's trademark for the pointing-stick in the middle of the keyboard.<br />
<br />
Default [[Xorg]] behavior supports click and point, but middle-click and scrolling requires extra configuration.<br />
<br />
==Middle button scroll==<br />
<br />
Middle-button scrolling, is supported via the {{Pkg|xorg-xinput}} package, with the following sane config:<br />
<br />
{{hc|~/.xinitrc|<br />
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 1<br />
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 2<br />
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 200<br />
xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5<br />
xinput set-prop "TPPS/2 IBM TrackPoint" "Device Accel Constant Deceleration" 0.75<br />
}}<br />
<br />
The {{ic|"Device Accel Constant Deceleration"}} line configures the sensitivity of the trackpoint. Note that you can just type these commands into the shell, changing sensitivity on the fly to find a value that's sensible.<br />
<br />
==Tap to select==<br />
{{Note| The file location below may be different depending upon the device you are using. Systems with both a TrackPoint and a touchpad device will use the /sys/devices/platform/i8042/serio1/serio2/ location where as systems with only a TrackPoint device will use the /sys/devices/platform/i8042/serio1/ location.}}<br />
<br />
The TrackPoint supports tap-to-click functionality just as most touchpads do. The following one-liner should work.<br />
{{bc| # echo -n 1 > /sys/devices/platform/i8042/serio1/press_to_select}}<br />
<br />
==udev configuration rule==<br />
<br />
This rule increases the trackpoint '''speed''' and enables '''tap to select''' (see above) on boot.<br />
Feel free to alter the values and add other modifications to files in /sys/devices/platform/i8042/serio1/serio2/. The rule also works for trackpoint-only devices.<br />
<br />
{{hc|1=/etc/udev/rules.d/10-trackpoint.rules|2=<br />
SUBSYSTEM=="serio", DRIVERS=="psmouse", ACTION=="change", ENV{SERIO_TYPE}=="05", ATTR{press_to_select}="1", ATTR{sensitivity}="230", ATTR{speed}="200"<br />
}}<br />
<br />
==References==<br />
* [http://www.thinkwiki.org/wiki/How_to_configure_the_TrackPoint How to configure the TrackPoint - ThinkWiki]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Tmpfs&diff=340427Tmpfs2014-10-18T00:25:32Z<p>TheJJ: /* Disable automatic mount */ clarify why cleaning /tmp may be appropriate</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:File systems]]<br />
[[Wikipedia:Tmpfs|tmpfs]] is a temporary filesystem that resides in memory and/or your swap partition(s), depending on how much you fill it up. Mounting directories as tmpfs can be an effective way of speeding up accesses to their files, or to ensure that their contents are automatically cleared upon reboot.<br />
<br />
{{Note|When using [[systemd]], temporary files in tmpfs directories can be recreated at boot by using [[Systemd#Temporary_files|tmpfiles.d]].}}<br />
<br />
== Usage ==<br />
<br />
Some directories where tmpfs is commonly used are [http://www.pathname.com/fhs/2.2/fhs-3.15.html /tmp], [http://www.pathname.com/fhs/2.2/fhs-5.9.html /var/lock] and [http://www.pathname.com/fhs/2.2/fhs-5.13.html /var/run]. Do '''not''' use it on [http://www.pathname.com/fhs/2.2/fhs-5.15.html /var/tmp], because that folder is meant for temporary files that are preserved across reboots.<br />
<br />
{{Pkg|glibc}} 2.2 and above expects tmpfs to be mounted at {{ic|/dev/shm}} for [[wikipedia:Shared_memory#Support_on_UNIX_platforms|POSIX shared memory]]. Mounting tmpfs at {{ic|/dev/shm}} is handled automatically by [[systemd]], so manual configuration in [[fstab]] is no longer necessary.<br />
<br />
Arch uses a tmpfs {{ic|/run}} directory, with {{ic|/var/run}} and {{ic|/var/lock}} simply existing as symlinks for compatibility. It is also used for {{ic|/tmp}} by the default systemd setup and does not require an entry in [[fstab]] unless a specific configuration is needed.<br />
<br />
Generally, I/O intensive tasks and programs that run frequent read/write operations can benefit from using a tmpfs folder. Some applications can even receive a substantial gain by offloading some (or all) of their data onto the shared memory. For example, [[Firefox_Ramdisk|relocating the Firefox profile into RAM]] shows a significant improvement in performance.<br />
<br />
== Examples ==<br />
<br />
By default, a tmpfs partition has its maximum size set to half your total RAM, but this can be customized. Note that the actual memory/swap consumption depends on how much you fill it up, as tmpfs partitions do not consume any memory until it is actually needed.<br />
<br />
To explicitly set a maximum size, in this example to override the default {{ic|/tmp}} mount, use the {{ic|size}} mount option:<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /tmp tmpfs nodev,nosuid,size=2G 0 0}}<br />
<br />
Here is a more advanced example showing how to add tmpfs mounts for users. This is useful for websites, mysql tmp files, {{ic|~/.vim/}}, and more. It's important to try and get the ideal mount options for what you are trying to accomplish. The goal is to have as secure settings as possible to prevent abuse. Limiting the size, and specifying uid and gid + mode is very secure. For more information on this subject, follow the links listed in the [[#See also]] section.<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /www/cache tmpfs rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700 0 0}}<br />
<br />
See the {{ic|mount}} command man page for more information. One useful mount option in the man page is the {{ic|default}} option. At least understand that.<br />
<br />
Reboot for the changes to take effect. Note that although it may be tempting to simply run {{ic|mount -a}} to make the changes effective immediately, this will make any files currently residing in these directories inaccessible (this is especially problematic for running programs with lockfiles, for example). However, if all of them are empty, it should be safe to run {{ic|mount -a}} instead of rebooting (or mount them individually).<br />
<br />
After applying changes, you may want to verify that they took effect by looking at {{ic|/proc/mounts}} and using {{ic|findmnt}}:<br />
<br />
{{hc|$ findmnt --target /tmp|<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/tmp tmpfs tmpfs rw,nosuid,nodev,relatime}}<br />
<br />
The tmpfs can also be temporarily resized without the need to reboot, for example when a large compile job needs to run soon. In this case, you can run:<br />
<br />
# mount -o remount,size=4G,noatime /tmp<br />
<br />
=== Ramdisk ===<br />
<br />
{{Accuracy|This is still ''tmpfs'', not [https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt ramdisk] in the kernel conception.}}<br />
<br />
To create a directory whose files are actually stored in RAM, we may adapt the tmpfs example:<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /home/archie/Ramdisk tmpfs nodev,nosuid,size=2G 0 0}}<br />
<br />
== Disable automatic mount ==<br />
<br />
Under [[systemd]], {{ic|/tmp}} may be automatically mounted as a tmpfs even though you have no entry for that in your {{ic|/etc/fstab}}.<br />
<br />
To disable the automatic mount, run:<br />
<br />
# systemctl mask tmp.mount<br />
<br />
Files will no longer be stored in a tmpfs, but your block device instead.<br />
The {{ic|/tmp}} contents will now be preserved between reboots, which you might not want.<br />
To regain the previous behavior and clean the {{ic|/tmp}} folder automatically when restarting your machine, consider using {{ic|tmpfiles.d(5)}}:<br />
<br />
{{hc|/etc/tmpfiles.d/tmp.conf|2=<br />
# see tmpfiles.d(5)<br />
# always enable /tmp folder cleaning<br />
D /tmp 1777 root root 0<br />
<br />
# remove files in /var/tmp older than 10 days<br />
D /var/tmp 1777 root root 10d<br />
<br />
# namespace mountpoints (PrivateTmp=yes) are excluded from removal<br />
x /tmp/systemd-private-*<br />
x /var/tmp/systemd-private-*<br />
X /tmp/systemd-private-*/tmp<br />
X /var/tmp/systemd-private-*/tmp}}<br />
<br />
== See also ==<br />
<br />
* [https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt Linux kernel documentation]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Tmpfs&diff=340424Tmpfs2014-10-18T00:22:55Z<p>TheJJ: added /tmp automount disabling section and a /tmp cleaning conf file</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:File systems]]<br />
[[Wikipedia:Tmpfs|tmpfs]] is a temporary filesystem that resides in memory and/or your swap partition(s), depending on how much you fill it up. Mounting directories as tmpfs can be an effective way of speeding up accesses to their files, or to ensure that their contents are automatically cleared upon reboot.<br />
<br />
{{Note|When using [[systemd]], temporary files in tmpfs directories can be recreated at boot by using [[Systemd#Temporary_files|tmpfiles.d]].}}<br />
<br />
== Usage ==<br />
<br />
Some directories where tmpfs is commonly used are [http://www.pathname.com/fhs/2.2/fhs-3.15.html /tmp], [http://www.pathname.com/fhs/2.2/fhs-5.9.html /var/lock] and [http://www.pathname.com/fhs/2.2/fhs-5.13.html /var/run]. Do '''not''' use it on [http://www.pathname.com/fhs/2.2/fhs-5.15.html /var/tmp], because that folder is meant for temporary files that are preserved across reboots.<br />
<br />
{{Pkg|glibc}} 2.2 and above expects tmpfs to be mounted at {{ic|/dev/shm}} for [[wikipedia:Shared_memory#Support_on_UNIX_platforms|POSIX shared memory]]. Mounting tmpfs at {{ic|/dev/shm}} is handled automatically by [[systemd]], so manual configuration in [[fstab]] is no longer necessary.<br />
<br />
Arch uses a tmpfs {{ic|/run}} directory, with {{ic|/var/run}} and {{ic|/var/lock}} simply existing as symlinks for compatibility. It is also used for {{ic|/tmp}} by the default systemd setup and does not require an entry in [[fstab]] unless a specific configuration is needed.<br />
<br />
Generally, I/O intensive tasks and programs that run frequent read/write operations can benefit from using a tmpfs folder. Some applications can even receive a substantial gain by offloading some (or all) of their data onto the shared memory. For example, [[Firefox_Ramdisk|relocating the Firefox profile into RAM]] shows a significant improvement in performance.<br />
<br />
== Examples ==<br />
<br />
By default, a tmpfs partition has its maximum size set to half your total RAM, but this can be customized. Note that the actual memory/swap consumption depends on how much you fill it up, as tmpfs partitions do not consume any memory until it is actually needed.<br />
<br />
To explicitly set a maximum size, in this example to override the default {{ic|/tmp}} mount, use the {{ic|size}} mount option:<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /tmp tmpfs nodev,nosuid,size=2G 0 0}}<br />
<br />
Here is a more advanced example showing how to add tmpfs mounts for users. This is useful for websites, mysql tmp files, {{ic|~/.vim/}}, and more. It's important to try and get the ideal mount options for what you are trying to accomplish. The goal is to have as secure settings as possible to prevent abuse. Limiting the size, and specifying uid and gid + mode is very secure. For more information on this subject, follow the links listed in the [[#See also]] section.<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /www/cache tmpfs rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700 0 0}}<br />
<br />
See the {{ic|mount}} command man page for more information. One useful mount option in the man page is the {{ic|default}} option. At least understand that.<br />
<br />
Reboot for the changes to take effect. Note that although it may be tempting to simply run {{ic|mount -a}} to make the changes effective immediately, this will make any files currently residing in these directories inaccessible (this is especially problematic for running programs with lockfiles, for example). However, if all of them are empty, it should be safe to run {{ic|mount -a}} instead of rebooting (or mount them individually).<br />
<br />
After applying changes, you may want to verify that they took effect by looking at {{ic|/proc/mounts}} and using {{ic|findmnt}}:<br />
<br />
{{hc|$ findmnt --target /tmp|<br />
TARGET SOURCE FSTYPE OPTIONS<br />
/tmp tmpfs tmpfs rw,nosuid,nodev,relatime}}<br />
<br />
The tmpfs can also be temporarily resized without the need to reboot, for example when a large compile job needs to run soon. In this case, you can run:<br />
<br />
# mount -o remount,size=4G,noatime /tmp<br />
<br />
=== Ramdisk ===<br />
<br />
{{Accuracy|This is still ''tmpfs'', not [https://www.kernel.org/doc/Documentation/blockdev/ramdisk.txt ramdisk] in the kernel conception.}}<br />
<br />
To create a directory whose files are actually stored in RAM, we may adapt the tmpfs example:<br />
<br />
{{hc|/etc/fstab|2=<br />
tmpfs /home/archie/Ramdisk tmpfs nodev,nosuid,size=2G 0 0}}<br />
<br />
== Disable automatic mount ==<br />
<br />
Under [[systemd]], {{ic|/tmp}} may be automatically mounted as a tmpfs even though you have no entry for that in your {{ic|/etc/fstab}}.<br />
<br />
To disable the automatic mount, run:<br />
<br />
# systemctl mask tmp.mount<br />
<br />
Files will now be preserved between reboots. To regain the previous behavior and clean the {{ic|/tmp}} folder automatically when restarting your machine, consider using {{ic|tmpfiles.d(5)}}:<br />
<br />
{{hc|/etc/tmpfiles.d/tmp.|2=<br />
# see tmpfiles.d(5)<br />
# always enable /tmp folder cleaning<br />
D /tmp 1777 root root 0<br />
<br />
# remove files in /var/tmp older than 10 days<br />
D /var/tmp 1777 root root 10d<br />
<br />
# namespace mountpoints (PrivateTmp=yes) are excluded from removal<br />
x /tmp/systemd-private-*<br />
x /var/tmp/systemd-private-*<br />
X /tmp/systemd-private-*/tmp<br />
X /var/tmp/systemd-private-*/tmp}}<br />
<br />
<br />
<br />
== See also ==<br />
<br />
* [https://www.kernel.org/doc/Documentation/filesystems/tmpfs.txt Linux kernel documentation]</div>TheJJhttps://wiki.archlinux.org/index.php?title=VLC_media_player&diff=284444VLC media player2013-11-24T15:47:00Z<p>TheJJ: /* Troubleshooting */ added dropdown menu icon fix</p>
<hr />
<div>[[Category:Player]]<br />
[[ja:VLC media player]]<br />
{{Article summary start}}<br />
{{Article summary text|Installing and configuring the VLC multimedia player.}}<br />
{{Article summary end}}<br />
<br />
From the project [http://www.videolan.org/vlc/ home page]:<br />
: ''VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols.''<br />
<br />
== Installation ==<br />
<br />
[[pacman|Install]] {{Pkg|vlc}} from the [[official repositories]].<br />
<br />
Notable variants are:<br />
* {{AUR|vlc-git}} - Development branch.<br />
<br />
If you want to play audio CDs, you should also install {{Pkg|libcddb}}.<br />
<br />
== Language ==<br />
<br />
It seems VLC does not offer an option to change language in its ''Preferences'' menu. But you can use the ''LANGUAGE='' prefix. For instance, modify the {{ic|/usr/share/applications/vlc.desktop}} line:<br />
Exec=/usr/bin/vlc %U<br />
to:<br />
Exec=LANGUAGE=fr /usr/bin/vlc %U<br />
to switch VLC interface to French. <br />
<br />
== Skins ==<br />
<br />
VLC can be "skinned" for a different look and feel. You can obtain new skins for VLC from http://www.videolan.org/vlc/skins.php.<br />
<br />
Installation of skins is simple just download the skin you wish to use and copy it to:<br />
~/.local/share/vlc/skins2<br />
Open up VLC, click ''Tools > Preferences''. When the preferences window opens up you should be in the "Interface" tab<br />
<br />
Choose the "Use custom skin" radio button, and browse to the location of the downloaded skin.<br />
<br />
Restart VLC for the change to take effect.<br />
<br />
Note: You need to install {{Pkg|libtar}} from the [[official repositories]] to use the skinnable interface module.<br />
<br />
== Web interface ==<br />
<br />
Run VLC with the parameter {{ic|--extraintf&#61;http}} to use both the desktop and web interface. <br />
# vlc --extraintf=http<br />
<br />
Or you can enable this feature in the UI by navigating to ''View > Add Interface > Web Interface''.<br />
<br />
VLC defaults to port 8080: http://127.0.0.1:8080<br />
<br />
Edit {{ic|/usr/share/vlc/lua/http/.hosts}} to allow remote connections. You will need to restart VLC in order for changes to take effect.<br />
<br />
== Tips and tricks ==<br />
<br />
=== File association in GNOME ===<br />
<br />
Copy the system desktop file to the local one (local {{ic|.desktop}} files supersede the global ones):<br />
<br />
$ cp /usr/share/applications/vlc.desktop ~/.local/share/applications/<br />
<br />
Define its mime types (known playback file type abilities) by doing:<br />
<br />
{{bc|<nowiki><br />
sed -i 's|^Mimetype.*$|MimeType=video/dv;video/mpeg;video/x-mpeg;video/msvideo;video/quicktime;video/x-anim;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/x-flc;video/x-fli;application/ogg;application/x-ogg;application/x-matroska;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-m4a;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;misc/ultravox;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;image/vnd.rn-realpix;video/vnd.rn-realvideo;audio/x-pn-realaudio-plugin;application/x-extension-mp4;audio/mp4;video/mp4;video/mp4v-es;x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-cdda;x-content/audio-player;|' ~/.local/share/applications/vlc.desktop<br />
</nowiki>}}<br />
<br />
Then in ''System Settings > Details > Default Applications '' and on the ''Video'' drop-down menu, select ''Open VLC media player''.}}<br />
<br />
=== Control using hotkeys or cli ===<br />
<br />
Install {{Pkg|netcat-openbsd}}.<br />
<br />
Get script at: http://crunchbang.org/forums/viewtopic.php?pid=112035%23p112035#p112035<br />
<br />
Follow instructions in script to setup a socket for VLC.<br />
<br />
Either run the script from the command line or register the script with keyboard shortcuts through your desktop. <br />
<br />
=== Preventing multiple instances ===<br />
<br />
The default settings for VLC is to open a new instance of the program for each file that is opened. This can be annoying if you are using VLC for something like playing your music collection. To remedy the problem you can do the following:<br />
<br />
# Open VLC.<br />
# Go to ''Tools > Preferences'' ({{ic|Ctrl+P}}).<br />
# Go to the Interface tab and find the "Instances" section.<br />
# Tick "Allow only one instance".<br />
# Optionally tick "Enqueue files when in one instance mode". This will keep the current file playing and add any newly opened files to the current playlist.<br />
<br />
== Troubleshooting ==<br />
<br />
=== PulseAudio lag ===<br />
<br />
When using PulseAudio as the audio output module, you might encounter audio/video sync problems. These problems can usually be [https://bbs.archlinux.org/viewtopic.php?pid=1101711#p1101711 fixed] by editing {{ic|/etc/pulse/default.pa}} or {{ic| ~/.pulse/default.pa}} to reflect the following changes. However, this can cause a new audio stuttering problem in some applications such as flash.<br />
{{bc|1=<br />
.ifexists module-udev-detect.so<br />
load-module module-udev-detect '''tsched=0'''<br />
.else<br />
}}<br />
<br />
=== Video broken or other issue after upgrade ===<br />
<br />
Now and then VLC will have some issues with configuration even in minor releases. Before making bug reports, remove or rename your configuration located at {{ic|~/.config/vlc}} and confirm whether the issue is still there.<br />
<br />
=== Segmentation fault ===<br />
<br />
When starting VLC you can get a segfault, a possible workaround to this is running the following:<br />
# /usr/lib/vlc/vlc-cache-gen -f usr/lib/vlc/plugins<br />
Then reinstall VLC.<br />
<br />
=== Missing icons in dropdown menus ===<br />
<br />
This can happen under XFCE, there will be no more icons in dropdown menus, like the or the PCI card icon.<br />
<br />
Execute these commands to reactivate these icons:<br />
{{bc|1=<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true<br />
$ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true<br />
}}<br />
<br />
== See also ==<br />
<br />
* [[List of Applications#Multimedia]]<br />
* [http://www.videolan.org/vlc/ VLC homepage]<br />
* [http://wiki.videolan.org/Control_VLC_via_a_browser Control VLC via a browser]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Microcode&diff=248154Microcode2013-02-22T14:43:57Z<p>TheJJ: /* What is a Microcode update */ updated intel µcode download url</p>
<hr />
<div>[[Category:CPU]]<br />
==What is a Microcode update==<br />
<br />
[[Wikipedia:Microcode|Processor microcode]] is akin to processor firmware. The kernel is able to update the processor's firmware without the need to update it via a BIOS update.<br />
<br />
The blobs can be downloaded from [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21925&lang=eng&OSVersion=Linux*&DownloadType=Firmware Intel's website]. 20120606-v2 is their latest release.<br />
<br />
"The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle. The Linux Operating System and VMware ESX products have a mechanism to update the microcode after booting. For example, this file will be used by the operating system mechanism if the file is placed in the /etc/firmware directory of the Linux system."<br />
<br />
{{Note|Arch Linux does not use /etc/firmware to process the update.}}<br />
<br />
==Updating microcode==<br />
<br />
Install either {{Pkg|intel-ucode}} OR {{Pkg|amd-ucode}}, depending on your processor vendor, and add {{ic|microcode}} to the MODULES array in {{ic|/etc/rc.conf}}<br />
<br />
Reboot your machine and then execute:<br />
<br />
# dmesg | grep microcode<br />
<br />
The output of this command should indicate the current version of your processor's microcode and whether any additional update was applied to it.<br />
<br />
{{Note|Microcode updates via software are not persistent. In other words, one needs to apply them at each boot which is why it is placed in the MODULES array.}}<br />
<br />
{{Note|With udev/systemd-tools 185-1 & kernel 3.4.2 microcode was loaded automatically on my AMD opteron system and i didn't have to add it manually to MODULES array.}}<br />
<br />
<br />
{{Note|If you were a previous user of the {{ic|microcode_ctl}} package, remove {{ic|microcode}} from the DAEMONS array in {{ic|/etc/rc.conf}}. {{ic|microcode_ctl}} is no longer in Arch's repositories.}}<br />
<br />
==How to tell if a microcode update is needed==<br />
<br />
The best way to tell is to download and install the appropriate microcode update. First load the microcode module using modprobe.<br />
{{bc|<br />
# modprobe microcode<br />
}}<br />
Then inspect dmesg, if it reports that an update was applied, the microcode in the BIOS of your motherboard predates the one in either {{Pkg|intel-ucode}} or {{Pkg|amd-ucode}}. Users should therefore use the microcode update!<br />
<br />
Examples, note that in each case, the BIOS on the motherboard is the latest version from each respective vendor:<br />
<br />
Intel X3360:<br />
<br />
{{bc|1=microcode: CPU0 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU1 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU2 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU3 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU1 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU2 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU3 updated to revision 0x70a, date = 2010-09-29}}<br />
<br />
Intel E5200:<br />
{{bc|1=microcode: CPU0 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: CPU1 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28<br />
microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28}}<br />
<br />
Intel Atom 330:<br />
{{bc|1=microcode: CPU0 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU1 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU2 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU3 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU1 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU2 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU3 updated to revision 0x219, date = 2009-04-10}}<br />
<br />
It is believed that the date returned corresponds to the date that Intel implemented a microcode update. This date does not correspond to the version of the the microcode database included in the package!<br />
<br />
==Which CPUs accept microcode updates==<br />
<br />
===AMD CPUs===<br />
<br />
According to [http://www.amd64.org/support/microcode.html AMD's Operating System Research Center], these CPUs support microcode updates:<br />
*AMD processor families 10h, 11h, 12h, 14h, and 15h<br />
<br />
===Intel CPUs===<br />
<br />
According to [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21925&keyword=%22microcode%22&lang=eng Intel's download center], the following CPUs support microcode updates:<br />
<br />
*Intel® Atom™ Processor<br />
*Intel® Atom™ processor for Entry Level Desktop PCs<br />
*Intel® Celeron® Desktop Processor<br />
*Intel® Core™ Duo Processor<br />
*Intel® Core™ i3 Desktop Processor<br />
*Intel® Core™ i3 Mobile Processor<br />
*Intel® Core™ i5 Desktop Processor<br />
*Intel® Core™ i5 Mobile Processor<br />
*Intel® Core™ i7 Desktop Processor<br />
*Intel® Core™ i7 Mobile Processor<br />
*Intel® Core™ i7 Mobile Processor Extreme Edition<br />
*Intel® Core™ i7 Processor Extreme Edition<br />
*Intel® Core™ Solo processor<br />
*Intel® Core™2 Duo Desktop Processor<br />
*Intel® Core™2 Duo Mobile Processor<br />
*Intel® Core™2 Extreme Mobile Processor<br />
*Intel® Core™2 Extreme Processor<br />
*Intel® Core™2 Quad Mobile Processor<br />
*Intel® Core™2 Quad Processor<br />
*Intel® Core™2 Solo Processor<br />
*Intel® Pentium® 4 Processor Extreme Edition<br />
*Intel® Pentium® 4 Processors<br />
*Intel® Pentium® D Processor<br />
*Intel® Pentium® M Processor<br />
*Intel® Pentium® Processor Extreme Edition<br />
*Intel® Pentium® Processor for Desktop<br />
*Intel® Pentium® Processor for Mobile<br />
*Intel® Setup and Configuration Software (Intel® SCS)<br />
*Intel® vPro™ technology<br />
*Intel® Xeon® Processor<br />
*Intel® Xeon® Processor 3000 Sequence<br />
*Intel® Xeon® Processor 5000 Sequence<br />
*Intel® Xeon® Processor 6000 Sequence<br />
*Intel® Xeon® Processor 7000 Sequence<br />
*Intel® Xeon® processor E3-1200 Product Family<br />
*Intel® Xeon® processor E5-1600 Product Family<br />
*Intel® Xeon® processor E5-2400 Product Family<br />
*Intel® Xeon® processor E5-2600 Product Family<br />
*Intel® Xeon® processor E5-4600 Product Family<br />
*Intel® Xeon® processor E7-2800 Product Family<br />
*Intel® Xeon® processor E7-4800 Product Family<br />
*Intel® Xeon® processor E7-8800 Product Family<br />
*Intel® Z2460 Smartphone<br />
*Mobile Intel® Celeron® Processors<br />
*Mobile Intel® Pentium® 4 Processors - M</div>TheJJhttps://wiki.archlinux.org/index.php?title=Data_rescue&diff=236956Data rescue2012-11-27T06:23:56Z<p>TheJJ: this redirect to File_Recovery could help</p>
<hr />
<div>#REDIRECT [[File_Recovery]]</div>TheJJhttps://wiki.archlinux.org/index.php?title=Microcode&diff=230690Microcode2012-10-22T18:18:44Z<p>TheJJ: /* Which CPUs accept microcode updates */ amd cpu support added</p>
<hr />
<div>[[Category:CPU]]<br />
==What is a Microcode update==<br />
<br />
[[Wikipedia:Microcode|Processor microcode]] is akin to processor firmware. The kernel is able to update the processor's firmware without the need to update it via a BIOS update. From [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=19342&ProdId=3008&lang=eng Intel's website]:<br />
<br />
"The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle. The Linux Operating System and VMware ESX products have a mechanism to update the microcode after booting. For example, this file will be used by the operating system mechanism if the file is placed in the /etc/firmware directory of the Linux system."<br />
<br />
{{Note|Arch Linux does not use /etc/firmware to process the update.}}<br />
<br />
==Updating microcode==<br />
<br />
Install either {{Pkg|intel-ucode}} OR {{Pkg|amd-ucode}}, depending on your processor vendor, and add {{ic|microcode}} to the MODULES array in {{ic|/etc/rc.conf}}<br />
<br />
Reboot your machine and then execute:<br />
<br />
# dmesg | grep microcode<br />
<br />
The output of this command should indicate the current version of your processor's microcode and whether any additional update was applied to it.<br />
<br />
{{Note|Microcode updates via software are not persistent. In other words, one needs to apply them at each boot which is why it is placed in the MODULES array.}}<br />
<br />
{{Note|With udev/systemd-tools 185-1 & kernel 3.4.2 microcode was loaded automatically on my AMD opteron system and i didn't have to add it manually to MODULES array.}}<br />
<br />
<br />
{{Note|If you were a previous user of the {{ic|microcode_ctl}} package, remove {{ic|microcode}} from the DAEMONS array in {{ic|/etc/rc.conf}}. {{ic|microcode_ctl}} is no longer in Arch's repositories.}}<br />
<br />
==How to tell if a microcode update is needed==<br />
<br />
The best way to tell is to download and install the appropriate microcode update. First load the microcode module using modprobe.<br />
{{bc|<br />
# modprobe microcode<br />
}}<br />
Then inspect dmesg, if it reports that an update was applied, the microcode in the BIOS of your motherboard predates the one in either {{Pkg|intel-ucode}} or {{Pkg|amd-ucode}}. Users should therefore use the microcode update!<br />
<br />
Examples, note that in each case, the BIOS on the motherboard is the latest version from each respective vendor:<br />
<br />
Intel X3360:<br />
<br />
{{bc|1=microcode: CPU0 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU1 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU2 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU3 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU1 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU2 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU3 updated to revision 0x70a, date = 2010-09-29}}<br />
<br />
Intel E5200:<br />
{{bc|1=microcode: CPU0 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: CPU1 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28<br />
microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28}}<br />
<br />
Intel Atom 330:<br />
{{bc|1=microcode: CPU0 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU1 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU2 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU3 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU1 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU2 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU3 updated to revision 0x219, date = 2009-04-10}}<br />
<br />
It is believed that the date returned corresponds to the date that Intel implemented a microcode update. This date does not correspond to the version of the the microcode database included in the package!<br />
<br />
==Which CPUs accept microcode updates==<br />
<br />
===AMD CPUs===<br />
<br />
According to [http://www.amd64.org/support/microcode.html AMD's Operating System Research Center], these CPUs support microcode updates:<br />
*AMD processor families 10h, 11h, 12h, 14h, and 15h<br />
<br />
===Intel CPUs===<br />
<br />
According to [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21925&keyword=%22microcode%22&lang=eng Intel's download center], the following CPUs support microcode updates:<br />
<br />
*Intel® Atom™ Processor<br />
*Intel® Atom™ processor for Entry Level Desktop PCs<br />
*Intel® Celeron® Desktop Processor<br />
*Intel® Core™ Duo Processor<br />
*Intel® Core™ i3 Desktop Processor<br />
*Intel® Core™ i3 Mobile Processor<br />
*Intel® Core™ i5 Desktop Processor<br />
*Intel® Core™ i5 Mobile Processor<br />
*Intel® Core™ i7 Desktop Processor<br />
*Intel® Core™ i7 Mobile Processor<br />
*Intel® Core™ i7 Mobile Processor Extreme Edition<br />
*Intel® Core™ i7 Processor Extreme Edition<br />
*Intel® Core™ Solo processor<br />
*Intel® Core™2 Duo Desktop Processor<br />
*Intel® Core™2 Duo Mobile Processor<br />
*Intel® Core™2 Extreme Mobile Processor<br />
*Intel® Core™2 Extreme Processor<br />
*Intel® Core™2 Quad Mobile Processor<br />
*Intel® Core™2 Quad Processor<br />
*Intel® Core™2 Solo Processor<br />
*Intel® Pentium® 4 Processor Extreme Edition<br />
*Intel® Pentium® 4 Processors<br />
*Intel® Pentium® D Processor<br />
*Intel® Pentium® M Processor<br />
*Intel® Pentium® Processor Extreme Edition<br />
*Intel® Pentium® Processor for Desktop<br />
*Intel® Pentium® Processor for Mobile<br />
*Intel® Setup and Configuration Software (Intel® SCS)<br />
*Intel® vPro™ technology<br />
*Intel® Xeon® Processor<br />
*Intel® Xeon® Processor 3000 Sequence<br />
*Intel® Xeon® Processor 5000 Sequence<br />
*Intel® Xeon® Processor 6000 Sequence<br />
*Intel® Xeon® Processor 7000 Sequence<br />
*Intel® Xeon® processor E3-1200 Product Family<br />
*Intel® Xeon® processor E5-1600 Product Family<br />
*Intel® Xeon® processor E5-2400 Product Family<br />
*Intel® Xeon® processor E5-2600 Product Family<br />
*Intel® Xeon® processor E5-4600 Product Family<br />
*Intel® Xeon® processor E7-2800 Product Family<br />
*Intel® Xeon® processor E7-4800 Product Family<br />
*Intel® Xeon® processor E7-8800 Product Family<br />
*Intel® Z2460 Smartphone<br />
*Mobile Intel® Celeron® Processors<br />
*Mobile Intel® Pentium® 4 Processors - M</div>TheJJhttps://wiki.archlinux.org/index.php?title=Microcode&diff=230689Microcode2012-10-22T18:12:02Z<p>TheJJ: /* Which CPUs accept microcode updates */ forgot itemize</p>
<hr />
<div>[[Category:CPU]]<br />
==What is a Microcode update==<br />
<br />
[[Wikipedia:Microcode|Processor microcode]] is akin to processor firmware. The kernel is able to update the processor's firmware without the need to update it via a BIOS update. From [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=19342&ProdId=3008&lang=eng Intel's website]:<br />
<br />
"The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle. The Linux Operating System and VMware ESX products have a mechanism to update the microcode after booting. For example, this file will be used by the operating system mechanism if the file is placed in the /etc/firmware directory of the Linux system."<br />
<br />
{{Note|Arch Linux does not use /etc/firmware to process the update.}}<br />
<br />
==Updating microcode==<br />
<br />
Install either {{Pkg|intel-ucode}} OR {{Pkg|amd-ucode}}, depending on your processor vendor, and add {{ic|microcode}} to the MODULES array in {{ic|/etc/rc.conf}}<br />
<br />
Reboot your machine and then execute:<br />
<br />
# dmesg | grep microcode<br />
<br />
The output of this command should indicate the current version of your processor's microcode and whether any additional update was applied to it.<br />
<br />
{{Note|Microcode updates via software are not persistent. In other words, one needs to apply them at each boot which is why it is placed in the MODULES array.}}<br />
<br />
{{Note|With udev/systemd-tools 185-1 & kernel 3.4.2 microcode was loaded automatically on my AMD opteron system and i didn't have to add it manually to MODULES array.}}<br />
<br />
<br />
{{Note|If you were a previous user of the {{ic|microcode_ctl}} package, remove {{ic|microcode}} from the DAEMONS array in {{ic|/etc/rc.conf}}. {{ic|microcode_ctl}} is no longer in Arch's repositories.}}<br />
<br />
==How to tell if a microcode update is needed==<br />
<br />
The best way to tell is to download and install the appropriate microcode update. First load the microcode module using modprobe.<br />
{{bc|<br />
# modprobe microcode<br />
}}<br />
Then inspect dmesg, if it reports that an update was applied, the microcode in the BIOS of your motherboard predates the one in either {{Pkg|intel-ucode}} or {{Pkg|amd-ucode}}. Users should therefore use the microcode update!<br />
<br />
Examples, note that in each case, the BIOS on the motherboard is the latest version from each respective vendor:<br />
<br />
Intel X3360:<br />
<br />
{{bc|1=microcode: CPU0 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU1 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU2 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU3 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU1 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU2 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU3 updated to revision 0x70a, date = 2010-09-29}}<br />
<br />
Intel E5200:<br />
{{bc|1=microcode: CPU0 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: CPU1 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28<br />
microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28}}<br />
<br />
Intel Atom 330:<br />
{{bc|1=microcode: CPU0 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU1 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU2 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU3 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU1 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU2 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU3 updated to revision 0x219, date = 2009-04-10}}<br />
<br />
It is believed that the date returned corresponds to the date that Intel implemented a microcode update. This date does not correspond to the version of the the microcode database included in the package!<br />
<br />
==Which CPUs accept microcode updates==<br />
<br />
According to [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21925&keyword=%22microcode%22&lang=eng Intel's download center], the following CPUs support microcode updates:<br />
<br />
*Intel® Atom™ Processor<br />
*Intel® Atom™ processor for Entry Level Desktop PCs<br />
*Intel® Celeron® Desktop Processor<br />
*Intel® Core™ Duo Processor<br />
*Intel® Core™ i3 Desktop Processor<br />
*Intel® Core™ i3 Mobile Processor<br />
*Intel® Core™ i5 Desktop Processor<br />
*Intel® Core™ i5 Mobile Processor<br />
*Intel® Core™ i7 Desktop Processor<br />
*Intel® Core™ i7 Mobile Processor<br />
*Intel® Core™ i7 Mobile Processor Extreme Edition<br />
*Intel® Core™ i7 Processor Extreme Edition<br />
*Intel® Core™ Solo processor<br />
*Intel® Core™2 Duo Desktop Processor<br />
*Intel® Core™2 Duo Mobile Processor<br />
*Intel® Core™2 Extreme Mobile Processor<br />
*Intel® Core™2 Extreme Processor<br />
*Intel® Core™2 Quad Mobile Processor<br />
*Intel® Core™2 Quad Processor<br />
*Intel® Core™2 Solo Processor<br />
*Intel® Pentium® 4 Processor Extreme Edition<br />
*Intel® Pentium® 4 Processors<br />
*Intel® Pentium® D Processor<br />
*Intel® Pentium® M Processor<br />
*Intel® Pentium® Processor Extreme Edition<br />
*Intel® Pentium® Processor for Desktop<br />
*Intel® Pentium® Processor for Mobile<br />
*Intel® Setup and Configuration Software (Intel® SCS)<br />
*Intel® vPro™ technology<br />
*Intel® Xeon® Processor<br />
*Intel® Xeon® Processor 3000 Sequence<br />
*Intel® Xeon® Processor 5000 Sequence<br />
*Intel® Xeon® Processor 6000 Sequence<br />
*Intel® Xeon® Processor 7000 Sequence<br />
*Intel® Xeon® processor E3-1200 Product Family<br />
*Intel® Xeon® processor E5-1600 Product Family<br />
*Intel® Xeon® processor E5-2400 Product Family<br />
*Intel® Xeon® processor E5-2600 Product Family<br />
*Intel® Xeon® processor E5-4600 Product Family<br />
*Intel® Xeon® processor E7-2800 Product Family<br />
*Intel® Xeon® processor E7-4800 Product Family<br />
*Intel® Xeon® processor E7-8800 Product Family<br />
*Intel® Z2460 Smartphone<br />
*Mobile Intel® Celeron® Processors<br />
*Mobile Intel® Pentium® 4 Processors - M</div>TheJJhttps://wiki.archlinux.org/index.php?title=Microcode&diff=230688Microcode2012-10-22T18:10:46Z<p>TheJJ: /* Which CPUs accept microcode updates */ list was updated</p>
<hr />
<div>[[Category:CPU]]<br />
==What is a Microcode update==<br />
<br />
[[Wikipedia:Microcode|Processor microcode]] is akin to processor firmware. The kernel is able to update the processor's firmware without the need to update it via a BIOS update. From [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=19342&ProdId=3008&lang=eng Intel's website]:<br />
<br />
"The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle. The Linux Operating System and VMware ESX products have a mechanism to update the microcode after booting. For example, this file will be used by the operating system mechanism if the file is placed in the /etc/firmware directory of the Linux system."<br />
<br />
{{Note|Arch Linux does not use /etc/firmware to process the update.}}<br />
<br />
==Updating microcode==<br />
<br />
Install either {{Pkg|intel-ucode}} OR {{Pkg|amd-ucode}}, depending on your processor vendor, and add {{ic|microcode}} to the MODULES array in {{ic|/etc/rc.conf}}<br />
<br />
Reboot your machine and then execute:<br />
<br />
# dmesg | grep microcode<br />
<br />
The output of this command should indicate the current version of your processor's microcode and whether any additional update was applied to it.<br />
<br />
{{Note|Microcode updates via software are not persistent. In other words, one needs to apply them at each boot which is why it is placed in the MODULES array.}}<br />
<br />
{{Note|With udev/systemd-tools 185-1 & kernel 3.4.2 microcode was loaded automatically on my AMD opteron system and i didn't have to add it manually to MODULES array.}}<br />
<br />
<br />
{{Note|If you were a previous user of the {{ic|microcode_ctl}} package, remove {{ic|microcode}} from the DAEMONS array in {{ic|/etc/rc.conf}}. {{ic|microcode_ctl}} is no longer in Arch's repositories.}}<br />
<br />
==How to tell if a microcode update is needed==<br />
<br />
The best way to tell is to download and install the appropriate microcode update. First load the microcode module using modprobe.<br />
{{bc|<br />
# modprobe microcode<br />
}}<br />
Then inspect dmesg, if it reports that an update was applied, the microcode in the BIOS of your motherboard predates the one in either {{Pkg|intel-ucode}} or {{Pkg|amd-ucode}}. Users should therefore use the microcode update!<br />
<br />
Examples, note that in each case, the BIOS on the motherboard is the latest version from each respective vendor:<br />
<br />
Intel X3360:<br />
<br />
{{bc|1=microcode: CPU0 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU1 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU2 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: CPU3 sig=0x10677, pf=0x10, revision=0x705<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU1 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU2 updated to revision 0x70a, date = 2010-09-29<br />
microcode: CPU3 updated to revision 0x70a, date = 2010-09-29}}<br />
<br />
Intel E5200:<br />
{{bc|1=microcode: CPU0 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: CPU1 sig=0x1067a, pf=0x1, revision=0xa07<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28<br />
microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28}}<br />
<br />
Intel Atom 330:<br />
{{bc|1=microcode: CPU0 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU1 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU2 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: CPU3 sig=0x106c2, pf=0x8, revision=0x20d<br />
microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba<br />
microcode: CPU0 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU1 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU2 updated to revision 0x219, date = 2009-04-10<br />
microcode: CPU3 updated to revision 0x219, date = 2009-04-10}}<br />
<br />
It is believed that the date returned corresponds to the date that Intel implemented a microcode update. This date does not correspond to the version of the the microcode database included in the package!<br />
<br />
==Which CPUs accept microcode updates==<br />
<br />
According to [http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21925&keyword=%22microcode%22&lang=eng Intel's download center], the following CPUs support microcode updates:<br />
<br />
Intel® Atom™ Processor<br />
Intel® Atom™ processor for Entry Level Desktop PCs<br />
Intel® Celeron® Desktop Processor<br />
Intel® Core™ Duo Processor<br />
Intel® Core™ i3 Desktop Processor<br />
Intel® Core™ i3 Mobile Processor<br />
Intel® Core™ i5 Desktop Processor<br />
Intel® Core™ i5 Mobile Processor<br />
Intel® Core™ i7 Desktop Processor<br />
Intel® Core™ i7 Mobile Processor<br />
Intel® Core™ i7 Mobile Processor Extreme Edition<br />
Intel® Core™ i7 Processor Extreme Edition<br />
Intel® Core™ Solo processor<br />
Intel® Core™2 Duo Desktop Processor<br />
Intel® Core™2 Duo Mobile Processor<br />
Intel® Core™2 Extreme Mobile Processor<br />
Intel® Core™2 Extreme Processor<br />
Intel® Core™2 Quad Mobile Processor<br />
Intel® Core™2 Quad Processor<br />
Intel® Core™2 Solo Processor<br />
Intel® Pentium® 4 Processor Extreme Edition<br />
Intel® Pentium® 4 Processors<br />
Intel® Pentium® D Processor<br />
Intel® Pentium® M Processor<br />
Intel® Pentium® Processor Extreme Edition<br />
Intel® Pentium® Processor for Desktop<br />
Intel® Pentium® Processor for Mobile<br />
Intel® Setup and Configuration Software (Intel® SCS)<br />
Intel® vPro™ technology<br />
Intel® Xeon® Processor<br />
Intel® Xeon® Processor 3000 Sequence<br />
Intel® Xeon® Processor 5000 Sequence<br />
Intel® Xeon® Processor 6000 Sequence<br />
Intel® Xeon® Processor 7000 Sequence<br />
Intel® Xeon® processor E3-1200 Product Family<br />
Intel® Xeon® processor E5-1600 Product Family<br />
Intel® Xeon® processor E5-2400 Product Family<br />
Intel® Xeon® processor E5-2600 Product Family<br />
Intel® Xeon® processor E5-4600 Product Family<br />
Intel® Xeon® processor E7-2800 Product Family<br />
Intel® Xeon® processor E7-4800 Product Family<br />
Intel® Xeon® processor E7-8800 Product Family<br />
Intel® Z2460 Smartphone<br />
Mobile Intel® Celeron® Processors<br />
Mobile Intel® Pentium® 4 Processors - M</div>TheJJhttps://wiki.archlinux.org/index.php?title=Tablet_PC&diff=214094Tablet PC2012-07-23T01:23:53Z<p>TheJJ: /* CellWriter */ is now in community</p>
<hr />
<div>[[Category:Mobile devices]]<br />
Here are some hints for getting Arch Linux working on your tablet PC. These instructions contain information for getting the stylus, stylus rotation, and screen rotation to work properly on a tablet PC.<br />
<br />
== Stylus ==<br />
First install the '''xf86-input-wacom''' package. You can get this package from the '''extra''' repository.<br />
<br />
Then add the following lines to the '''ServerLayout''' section of your '''Xorg''' configuration file (/etc/X11/xorg.conf).<br />
InputDevice "stylus" "SendCoreEvents"<br />
InputDevice "eraser" "SendCoreEvents"<br />
InputDevice "cursor" "SendCoreEvents"<br />
<br />
And add the following sections to the file:<br />
Section "InputDevice"<br />
Identifier "stylus"<br />
Driver "wacom"<br />
Option "Device" "/dev/ttyS0"<br />
Option "Type" "stylus"<br />
Option "ForceDevice" "ISDV4"<br />
Option "Button2" "3"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "eraser"<br />
Driver "wacom"<br />
Option "Device" "/dev/ttyS0"<br />
Option "Type" "eraser"<br />
Option "ForceDevice" "ISDV4"<br />
Option "Button2" "3"<br />
EndSection<br />
<br />
Section "InputDevice"<br />
Identifier "cursor"<br />
Driver "wacom"<br />
Option "Device" "/dev/ttyS0"<br />
Option "Type" "cursor"<br />
Option "ForceDevice" "ISDV4"<br />
EndSection<br />
<br />
== Rotation ==<br />
Unless you are running a very old Xserver, rotation capabilities (xrandr) should already be on by default. If not, you can enable xrandr by adding the following option to the '''Screen''' section of the xorg.conf file.<br />
Option "RandRRotation" "on"<br />
Save the file and restart the xserver for changes to take effect.<br />
<br />
=== Script for Stylus Rotation and Screen Rotation ===<br />
The following script will rotate the display 90 degrees clockwise every time it is executed.<br />
<br />
Create a new file called '''rotate.sh''':<br />
{{bc|<br />
#!/bin/bash<br />
<br />
# Rotate the screen clockwise 90 degrees.<br />
# Also, rotate the wacom pointer so the stylus will still work.<br />
# Additionally, since Compiz does not work rotated, replace it with Metacity.<br />
<br />
# REQUIRES: linuxwacom (http://linuxwacom.sourceforge.net/)<br />
<br />
# Ben Wong, October 1, 2010<br />
# Public domain. No rights reserved. <br />
<br />
case $(xsetwacom get stylus Rotate) in<br />
ccw) # Currently top is rotated left, we should set it normal (0°)<br />
xrandr -o 0<br />
xsetwacom set stylus Rotate 0<br />
compiz --replace &<br />
;;<br />
none) # Screen is not rotated, we should rotate it right (90°)<br />
xrandr -o 3<br />
xsetwacom set stylus Rotate 1<br />
metacity --replace &<br />
;;<br />
cw) # Top of screen is rotated right, we should invert it (180°)<br />
xrandr -o 2<br />
xsetwacom set stylus Rotate 3<br />
;;<br />
half) # Screen is inverted, we should rotate it left (270°)<br />
xrandr -o 1<br />
xsetwacom set stylus Rotate 2<br />
;;<br />
*)<br />
echo "Unknown result from 'xsetwacom get stylus Rotate'" >&2<br />
exit 1<br />
;;<br />
esac<br />
}}<br />
<br />
Save the file and make it executable (chmod +x rotate.sh). You can create a link to it on your desktop or panel, or link it to a keyboard shortcut or special button on your tablet. Note that this script assumes you have Compiz ("Advanced desktop effects") running and that it fails to work when the screen is rotated. Simply remove the lines referring to compiz and metacity if this is not the case for you.<br />
<br />
== Tablet PC Tips ==<br />
<br />
Here are some extra tips for setting up your Tablet PC.<br />
<br />
=== CellWriter ===<br />
<br />
[http://risujin.org/cellwriter/ CellWriter] is a grid-entry natural handwriting input panel. As you write characters into the cells, your writing is instantly recognized at the character level. {{Pkg|cellwriter}} is available in community repository.<br />
<br />
=== Easystroke ===<br />
<br />
[http://easystroke.sourceforge.net/ Easystroke] is a gesture recognition application, recognizing gestures by a variety of input devices, to include pen stylus, mouse, and touch. Gestures can be used to launch programs, enter text, emulate buttons and keys, and scroll. Easystroke is available in the [https://aur.archlinux.org/packages.php?ID=20055 AUR].<br />
<br />
==== Launching CellWriter Under Pen ====<br />
<br />
One useful application of Easystroke is to use it to launch CellWriter right under your mouse pointer, using the following script:<br />
<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
# Original author: mr_deimos (ubuntuforums.org). February 14, 2010<br />
# Many bugs fixed and improvements made by Ben Wong. October 20, 2010<br />
<br />
# This script toggles the cellwriter letter recognizer window.<br />
# If a cellwriter window is visible, it will be hidden.<br />
# If cellwriter is not already running, this will create a new process.<br />
# If coordinates are specified, the window pops up at those coordinates. <br />
# If coordinates are not specified, the window is toggled, but not moved.<br />
<br />
# Implementation Note: this script is trickier than it should be<br />
# because cellwriter does two stupid things. First, it has no<br />
# --get-state option, so we can't tell if it is hidden or not. Second,<br />
# both the notification area applet and the actual program window have<br />
# the same window name in X, which means we can't simply use xwininfo<br />
# to find out if it is showing or not. <br />
#<br />
# (Of course, we wouldn't have to be doing this crazy script at all,<br />
# if cellwriter had a --toggle-window option to toggle showing the<br />
# keyboard, but that's another rant...)<br />
#<br />
# To work around the problem, we'll assume that if the window we got<br />
# information about from xwininfo is smaller than 100 pixels wide, it<br />
# must be an icon in the notification area. This may be the wrong<br />
# assumption, but, oh well...<br />
<br />
if [[ "$1" == "-v" || "$1" == "--verbose" ]]; then<br />
verbose=echo<br />
shift<br />
else<br />
verbose=:<br />
fi<br />
<br />
if [[ "$1" && -z "$2" || "$1" == "-h" || "$1" == "--help" ]] ; then <br />
cat >&2 <<EOF<br />
$(basename $0): Toggle showing the cellwriter window, optionally moving it."<br />
<br />
Usage: $(basename $0) [x y]"<br />
Where x and y are the desired position of the cellwriter window."<br />
If x and y are omitted, the window is not moved."<br />
EOF<br />
exit 1<br />
fi<br />
<br />
if [[ "$1" && "$2" ]]; then<br />
x=$[$1-20] # Offset slightly so cursor will be in window <br />
y=$[$2-30]<br />
[ $x -lt 0 ] && x=0 # Minimum value is zero<br />
[ $y -lt 0 ] && y=0<br />
fi<br />
<br />
if ! xwininfo -root >/dev/null; then<br />
echo "$(basename $0): Error: Could not connect to your X server." >&2<br />
exit 1<br />
fi<br />
<br />
# Try to obtain CellWriter's window id.<br />
# We can't use "xwininfo -name" b/c that might find the notification icon. <br />
OLDIFS="$IFS"<br />
IFS=$'\n'<br />
for line in $(xwininfo -root -tree | grep CellWriter); do<br />
line=0x${line#*0x} # Just to get rid of white space before 0x.<br />
$verbose -en "Checking: $line\t"<br />
if [[ $line =~ (0x[A-Fa-f0-9]+).*\)\ *([0-9]+)x([0-9]+) ]]; then<br />
id=${BASH_REMATCH[1]}<br />
width=${BASH_REMATCH[2]}<br />
height=${BASH_REMATCH[3]}<br />
if [[ $width -gt 100 ]]; then<br />
$verbose "looks good."<br />
CW_WIN_ID=$id<br />
break;<br />
else<br />
$verbose "too small, ignoring."<br />
fi<br />
else<br />
echo "BUG: The xwininfo regular expression in $0 is broken." >&2<br />
fi<br />
done<br />
IFS="$OLDIFS"<br />
<br />
#Check if Cellwriter's window is visible<br />
if [ "$CW_WIN_ID" ] ; then<br />
CW_MAP_STATE=`xwininfo -id "$CW_WIN_ID"|grep "Map State"|cut -f 2 -d :`<br />
else<br />
$verbose "Can't find cellwriter window, checking for a running process..."<br />
if ! pgrep -x cellwriter >& /dev/null; then<br />
$verbose "No cellwriter process running, starting a new one."<br />
if [[ "$x" && "$y" ]]; then<br />
cellwriter --show-window --window-x=$x --window-y=$y &<br />
else<br />
cellwriter --show-window &<br />
fi<br />
exit 0<br />
else<br />
$verbose "Found a process, so the window has not been created yet."<br />
$verbose "Pretending the window is UnMapped."<br />
CW_MAP_STATE=IsUnMapped<br />
fi<br />
fi<br />
<br />
$verbose "Map state: $CW_MAP_STATE"<br />
<br />
case "$CW_MAP_STATE" in<br />
<br />
*IsViewable*) # Window is currently visible.<br />
$verbose "hiding window"<br />
cellwriter --hide-window &<br />
;;<br />
<br />
*IsUnMapped*) # Window is currently hidden or non-existent.<br />
if [[ "$x" && "$y" && "$CW_WIN_ID" ]]; then<br />
$verbose "moving window to $x $y"<br />
xdotool windowmove $CW_WIN_ID $x $y<br />
fi<br />
$verbose "showing window"<br />
cellwriter --show-window & # In bg in case cw is not already running<br />
;;<br />
<br />
*) # This will never happen...<br />
echo "BUG: cellwriter is neither viewable nor unmapped" >&2<br />
echo "BUG: ...which means this script, $0, is buggy." >&2<br />
exit 1<br />
;;<br />
esac<br />
<br />
exit 0<br />
</nowiki>}}<br />
<br />
Save the script as '''cellwriter.sh''' in either {{ic|/usr/local/bin/}} or {{ic|$HOME/bin}}, and give it executable rights:<br />
<br />
chmod +x cellwriter.sh<br />
<br />
Then create a gesture in Easystroke tied to the following command:<br />
<br />
cellwriter.sh $EASYSTROKE_X1 $EASYSTROKE_Y1<br />
<br />
When you launch it (using the gesture you created) it will open right under your pen.<br />
<br />
{{Note|This script requires the xdotool package, which is not installed by default.}}<br />
<br />
==== Gestures for the Alphabet ====<br />
<br />
You can also use Easystroke to make gestures for the entire alphabet, replacing much of the need for CellWriter. To avoid having to make seperate gestures for the uppercase-letters, you can use the following [http://wwww.ubuntuforums.org/showthread.php?t=837032&page=5#49 script] to activate the shift key.<br />
<br />
{{bc|<br />
#!/bin/bash<br />
if [ -f /tmp/shift ]<br />
then<br />
xte "keydown Shift_L" "key $1" "keyup Shift_L"<br />
rm -f /tmp/shift<br />
else<br />
xte "key $1"<br />
fi<br />
}}<br />
<br />
Save the script as '''keypress.sh''' in either {{ic|/usr/local/bin/}} or {{ic|$HOME/bin}}, and give it executable rights:<br />
<br />
chmod +x keypress.sh<br />
<br />
Then create a gesture in Easystroke tied to the following command:<br />
<br />
touch /tmp/shift<br />
<br />
This will activate the shift key. To activate the letter keys, tie your gestures to the following command:<br />
<br />
keypress.sh $LETTER<br />
<br />
Replace $LETTER with the letter in the alphabet in question.<br />
<br />
So when you want to enter an upper-case letter, use your gesture for the shift key followed by the letter. If you want a lower-case letter, simply use your gesture for the letter.<br />
<br />
{{Note|This script requires the xautomation package, which is not installed by default.}}<br />
<br />
=== Xournal ===<br />
<br />
[http://xournal.sourceforge.net/ Xournal] is an application for notetaking, sketching, and keeping a journal using a stylus. Xournal aims to provide superior graphical quality (subpixel resolution) and overall functionality. Xournal can be installed from the '''extra''' repository.<br />
<br />
You can also extend the functionality of Xournal with patches, to enable such things as autosaving documents and inserting images. See [http://sourceforge.net/tracker/?group_id=163434&atid=827735 SourceForge] for links to all the available patches. To apply a patch, download the PKGBUILD for Xournal from the [[ABS]], and reference the article [[Patching in ABS]].<br />
<br />
=== Disable gksu Grab Mode ===<br />
<br />
If you are using gksu/gksudo, you may want to disable grab mode so that you can authenticate by using the stylus to enter the password. In a terminal, run the following command:<br />
$ gksu-properties<br />
Change the '''Grab Mode''' to ''disable''.<br />
<br />
{{Box Note|This will make it possible for other X applications to listen to keyboard input events, thus making it not possible to shield from malicious applications which may be running, such as keyloggers, etc.}}<br />
<br />
=== Gnome-screensaver ===<br />
<br />
To unlock your gnome-screensaver using Cellwriter to enter your password, first start Gconf-editor:<br />
$ gconf-editor<br />
Under '''/apps/gnome-screensaver''', set '''embedded_keyboard_command''' to ''cellwriter --xid --keyboard-only'', and check the '''embedded_keyboard_enabled''' checkbox.<br />
<br />
Alternatively, instead of using the graphical registry editor, you can simply paste these into your command-line:<br />
{{bc|$ gconftool-2 --set /apps/gnome-screensaver/embedded_keyboard_command "cellwriter --xid --keyboard-only" --type string<br />
$ gconftool-2 --set /apps/gnome-screensaver/embedded_keyboard_enabled true --type boolean}}<br />
<br />
If you are administrating a multi-user system and would like to set the system-wide default, you can do so like so,<br />
{{bc|$ sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set /apps/gnome-screensaver/embedded_keyboard_command "cellwriter --xid --keyboard-only" --type string<br />
$ sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults --set /apps/gnome-screensaver/embedded_keyboard_enabled true --type boolean}}<br />
<br />
=== GDM ===<br />
<br />
You can also use CellWriter with GDM. First open '''/etc/gdm/Init/Default''' as root with a text editor. Then near the bottom of the file, add the lines in '''bold''' as shown<br />
fi<br />
'''cellwriter --keyboard-only &'''<br />
exit 0<br />
You can add '''--window-x''' and '''--window-y''' to adjust the position of CellWriter accordingly. For example:<br />
cellwriter --keyboard-only --window-x=512 --window-y=768 &<br />
{{Box Note|You can only use CellWriter with a Plain style GDM.}}<br />
To start a fully fledged CellWriter instance within the user session, you might want to terminate the instance started with the keyboard-only switch within the gdm context. Add something like<br />
killall cellwriter<br />
to you newly created file /etc/gdm/PostLogin/Default .<br />
{{Box Note|This works for me in a single-user setup, if you have a multi-user setup, you might want to develop and post your more elaborate solution.}}<br />
<br />
== Troubleshooting ==<br />
Some tips on troubleshooting:<br />
<br />
=== Wacom Drivers ===<br />
These commands are useful in troubleshooting:<br />
wacdump -f tpc /dev/ttyS0<br />
xidump -l<br />
xidump -u stylus<br />
If xidump shows that your tablet's max resolution is the same as screen resolution, then your wacom driver has rescaled your wacom coordinates to the X server's resolution. To fix this, try recompiling you linuxwacom driver with:<br />
./configure --disable-quirk-tablet-rescale<br />
<br />
=== Screen Rotation ===<br />
Some video drivers do not support rotation. To check if your driver supports rotation, check the output of '''xrandr''' for the list orientations:<br />
normal left inverted right<br />
{{Box Note|The following driver(s) are known not to support rotation: fglrx}}</div>TheJJhttps://wiki.archlinux.org/index.php?title=NetworkManager&diff=202507NetworkManager2012-05-22T11:54:10Z<p>TheJJ: /* Set up PolicyKit permissions */ solution to the annoying password dialogs when changing networkmanager settings</p>
<hr />
<div>[[Category:Networking]]<br />
[[tr:NetworkManager]]<br />
[[de:Networkmanager]]<br />
[[fr:NetworkManager]]<br />
{{i18n|NetworkManager}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|Covers installation and configuration of NetworkManager &ndash; a set of co-operative tools that make networking simple and straightforward.}}<br />
{{Article summary heading|Overview}}<br />
{{Article summary text|{{Networking overview}}}}<br />
{{Article summary end}}<br />
<br />
[http://projects.gnome.org/NetworkManager/ NetworkManager] is a program for providing detection and configuration for systems to automatically connect to network. NetworkManager's functionality can be useful for both wireless and wired networks. For wireless networks, NetworkManager prefers known wireless networks and has the ability to switch to the most reliable network. NetworkManager-aware applications can switch from online and offline mode. NetworkManager also prefers wired connections over wireless ones, has support for modem connections and certain types of VPN. NetworkManager was originally developed by RedHat and now is hosted by the [[GNOME]] project.<br />
<br />
== Base install ==<br />
<br />
{{Pkg|NetworkManager}} is available in the {{ic|[extra]}} repository:<br />
# pacman -S networkmanager<br />
<br />
== Graphical Front-ends ==<br />
<br />
To configure and have easy access to NetworkManager most people will want to install an applet. This GUI front-end usually resides in the system tray (or notification area) and allows network selection and configuration of NetworkManager. Various applets exist for different types of desktops.<br />
<br />
=== GNOME ===<br />
<br />
GNOME's applet (formerly gnome-network-manager) is lightweight enough and works across all environments:<br />
<br />
# pacman -S network-manager-applet<br />
<br />
If you want to store authentication details (Wireless/DSL) and enable global connection settings, i.e "available to all users":<br />
<br />
# pacman -S gnome-keyring<br />
<br />
=== KDE4 ===<br />
<br />
The KNetworkManager front-end has been made available in KDE version 4.4 as a plasma widget:<br />
<br />
# pacman -S kdeplasma-applets-networkmanagement<br />
<br />
The GNOME counterpart works just as nicely, or even better (has more features and detects more hardware).<br />
<br />
{{Note|If you are changing from another network managing tool like Wicd, do not forget to set the default 'Network Management Backend' in <br />
System Settings -> Hardware -> Information Sources}}<br />
<br />
If you have both KNetworkManager and nm-applet installed and do not want to start nm-applet when using KDE, add the following line to /etc/xdg/autostart/nm-applet.desktop.<br />
NotShowIn=KDE<br />
<br />
=== KDE3 ===<br />
Though no longer supported, {{AUR|knetworkmanager}} is in the [[AUR]].<br />
<br />
=== XFCE ===<br />
nm-applet will work fine in XFCE, but in order to see notifications, ''including error messages'', nm-applet needs an implementation of the Freedesktop desktop notifications specification (see [http://www.galago-project.org/specs/notification/0.9/index.html]) to display the notifications. xfce4-notifyd is such an implementation.<br />
<br />
# pacman -S network-manager-applet xfce4-notifyd<br />
<br />
Without such a notification daemon, nm-applet outputs the following errors to stdout/stderr:<br />
<br />
(nm-applet:24209): libnotify-WARNING **: Failed to connect to proxy<br />
<br />
** (nm-applet:24209): WARNING **: get_all_cb: couldn't retrieve<br />
system settings properties: (25) Launch helper exited with unknown<br />
return code 1.<br />
<br />
** (nm-applet:24209): WARNING **: fetch_connections_done: error<br />
fetching connections: (25) Launch helper exited with unknown return<br />
code 1.<br />
<br />
** (nm-applet:24209): WARNING **: Failed to register as an agent:<br />
(25) Launch helper exited with unknown return code 1<br />
<br />
nm-applet will still work fine, though, but without notifications.<br />
<br />
=== Openbox ===<br />
<br />
The GNOME applet with the xfce4-notifyd notification daemon works well:<br />
<br />
# pacman -S network-manager-applet xfce4-notifyd hicolor-icon-theme gnome-icon-theme<br />
<br />
If you want to store authentication details (Wireless/DSL):<br />
<br />
# pacman -S gnome-keyring<br />
<br />
To prevent nm-applet dbus errors, edit ~/.xinitrc and change "exec openbox-session" to<br />
"exec ck-launch-session openbox-session".<br />
{{Note|If networkmanager daemon is in rc.conf, the following settings are obsolete or the applet will be started twice.}}<br />
To have Openbox's autostart start nm-applet properly, you may need to delete the file /etc/xdg/autostart/nm-applet.desktop (You may need to delete this file again after every update to network-manager-applet)<br />
<br />
Then in autostart, start nm-applet with this line:<br />
<br />
(sleep 3 && /usr/bin/nm-applet --sm-disable) &<br />
<br />
If you experience errors connecting, make sure you have your [[D-Bus]] user session started.<br />
<br />
=== Other Desktops and Window Managers ===<br />
<br />
It is recommended to use the GNOME applet. You will also need to be sure that the GNOME hicolor theme is installed to be able to display the applet:<br />
<br />
# pacman -S hicolor-icon-theme gnome-icon-theme<br />
<br />
In order to run nm-applet without a systray, you can use trayer or stalonetray. For example, you can add a "nmgui" script like this one in your path :<br />
<br />
#!/bin/sh<br />
nm-applet > /dev/null 2>/dev/null &<br />
stalonetray > /dev/null 2>/dev/null<br />
killall nm-applet<br />
<br />
When you close the stalonetray window, it closes nm-applet too, so no extra memory is used once you are done with network settings.<br />
<br />
=== Command line ===<br />
<br />
The networkmanager package since version 0.8.1 contains [http://manpages.ubuntu.com/manpages/maverick/man1/nmcli.1.html nmcli]<br />
<br />
== Configuration ==<br />
<br />
NetworkManager will require some additional steps to be able run properly.<br />
<br />
Verify that your {{ic|/etc/hosts}} is correct before continuing. If you previously tried to connect before doing this step, NetworkManager may have altered it. An example hostname line in {{ic|/etc/hosts}}:<br />
<br />
{{bc|<br />
#<ip-address> <hostname.domain.org> <hostname> <br />
127.0.0.1 localhost.localdomain localhost dell-latitude<br />
}}<br />
<br />
=== Disable current network setup ===<br />
<br />
You will want to disable your current network setup to be able to properly test NetworkManager. First (if using the Arch Linux network scripts) stop the network:<br />
<br />
/etc/rc.d/network stop<br />
<br />
Bring down your NIC's (Network Interface Controllers, i.e. network cards). For example (using the iproute2 package):<br />
<br />
ip link set down eth0<br />
ip link set down wlan0<br />
<br />
Edit {{ic|/etc/rc.conf}} and where you defined DHCP or a static IP address, comment them out:<br />
{{Note|Following settings are obsolete in the most recent rc.conf.}}<br />
{{bc|<nowiki><br />
#eth0="dhcp" <br />
#wlan0="dhcp" <br />
INTERFACES=(!eth0 !wlan0)<br />
</nowiki>}}<br />
<br />
=== Edit daemons ===<br />
<br />
You must ''remove'' the default '''network''' daemon and add the '''networkmanager''' daemon, after the dbus daemon:<br />
<br />
DAEMONS=( ...'''dbus networkmanager'''... )<br />
<br />
Be sure that the package {{Pkg|dbus}} is installed as NetworkManager will require it. To start other services (daemons) that require a network connection see the next section on how to set them up. Though the NetworkManager daemon has been started here, it will not (by default) connect onto a network until an applet is loaded and the applet specifies to do so. This means that networking services will need to be specified to NetworkManager on when to run.<br />
<br />
=== Set up PolicyKit permissions ===<br />
<br />
To be able to add a network connection, a non-root user must first have an active [[ConsoleKit]] session running. Or they will see errors similar to this:<br />
<br />
** (nm-applet:780): WARNING **: Failed to add new connection: (32) Insufficient privileges.<br />
<br />
Most [[Display Manager]]s will take care of consolekit automatically, including the recent [[SLiM]]. If you start windows manager from {{ic|~/.xinitrc}} with startx, make sure consolekit is installed and use <br />
exec ck-launch-session wm<br />
instead of<br />
exec wm<br />
<br />
If your problems still persist try:<br />
exec ck-launch-session dbus-launch wm<br />
This sometimes may still not be enough. You may have to manually start /usr/lib/polkit-gnome/'''polkit-gnome-authentication-agent-1''' for network manger to work.<br />
<br />
Additionally, the user must either (1) run a PolicyKit authentication agent, such as the one provided by '''polkit-gnome''', or (2) be in a group explicitly granted permissions by the system administrator.<br />
<br />
# gpasswd -a youruser wheel.<br />
<br />
<br />
If you never want to be asked a password (the dialog would be displayed with '''polkit-gnome-authentication-agent-1''' which you won't need any more) again when a user is in the '''network''' group, create the following file:<br />
<br />
{{ic|/etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla}}<br />
[nm-applet]<br />
Identity=unix-group:network<br />
Action=org.freedesktop.NetworkManager.*<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
<br />
=== Network Services with NetworkManager Dispatcher===<br />
<br />
There are quite a few network services that you will not want running until NetworkManager brings up an interface. Good examples are '''openntpd''' and network filesystem mounts of various types (e.g. '''netfs'''). NetworkManager has the ability to start these services when you connect to a network (interface up), and stop them when you are no longer using them (interface down).<br />
<br />
To use this feature, scripts can be added to the {{ic|/etc/NetworkManager/dispatcher.d}} directory. These scripts will need to have executable, user permissions. For security, it is good practice to make them owned by '''root:root''' and writable only by the owner.<br />
<br />
The scripts will be run in alphabetical order at connection time (with arguments ''interface up''), and in reverse alphabetical order at disconnect time (''interface down''). To ensure what order they come up in, it is common to use numerical characters prior to the name of the script (e.g. {{ic|10_portmap}} or {{ic|30_netfs}} (which ensures that the portmapper is up before NFS mounts are attempted).<br />
<br />
{{Warning|For security reason. You should disable write access for group and other. For example use 755 mask.<br />
In other case it can refuse to execute script, with error message "nm-dispatcher.action: Script could not be executed: writable by group or other, or set-UID." in /var/log/messages.log }}<br />
{{Warning|if you connect to foreign or public networks, be aware of what services you are starting and what servers you expect to be available for them to connect to. You could make a security hole by starting the wrong services while connected to a public network.}}<br />
<br />
==== Start openntpd ====<br />
The following example starts openntpd when an interface is brought up. Save the file as {{ic|/etc/NetworkManager/dispatcher.d/20_openntpd}} and make it executable.<br />
{{bc|<nowiki><br />
#!/bin/sh<br />
<br />
INTERFACE=$1 # The interface which is brought up or down<br />
STATUS=$2 # The new state of the interface<br />
<br />
case "$STATUS" in<br />
'up') # $INTERFACE is up<br />
exec /etc/rc.d/openntpd start<br />
;;<br />
'down') # $INTERFACE is down<br />
# Check for active interface and down if no one active<br />
if [ ! `nm-tool|grep State|cut -f2 -d' '` = "connected" ]; then<br />
exec /etc/rc.d/openntpd stop<br />
fi<br />
;;<br />
esac<br />
</nowiki>}}<br />
<br />
==== Mount remote folder with sshfs ====<br />
<br />
As the script is run in a very restrictive environment, you have to export SSH_AUTH_SOCK in order to connect to your SSH agent. There are different ways to accomplish this, see [https://bbs.archlinux.org/viewtopic.php?pid=1042030#p1042030 here] for more information. The example below works with gnome-keyring, and will ask you for the password if not unlocked already. In case networkmanager connects automaticaly on login, it is likely gnome-keyring has not yet started and the export will fail (hence the sleep). The UUID to match can be found in /etc/NetworkManager/system-connections/). <br />
<br />
#!/bin/bash<br />
USER=<your sshfs user><br />
if [ $CONNECTION_UUID == <connection UUID> ]; then<br />
case "$2" in<br />
<br />
up)<br />
#sleep 10<br />
export SSH_AUTH_SOCK=$(find /tmp/keyring-*/ -type s -user $USER -group users -name ssh)<br />
su $USER -c "/usr/bin/sshfs user@host:/remote/folder /local/folder/"<br />
;;<br />
<br />
down)<br />
fusermount -u /local/folder<br />
;;<br />
esac<br />
fi<br />
<br />
==== Use dispatcher to connect to a vpn after a network-connection is established ====<br />
<br />
In this example we want to connect automatically to a previously defined vpn-connection after connecting to a specific wifi network. First thing to to is to create the dispatcher-script that defines what to do after we connected to the network. <br />
<br />
'''1)''' Create the dispatcher script in {{ic|/etc/NetworkManager/dispatcher.d/vpn-up}}<br />
<br />
VPN_NAME=<name of vpn connection defined in NetworkManager><br />
ESSID=<wifi network ESSID (not connection name)><br />
if [ "$2" = "up" -o "$2" = "vpn-down" ]; then # -o "$2" = "vpn-down" makes vpn reconnect after vpn connection interrupt<br />
if [ "$(iwgetid | grep ':"'$ESSID'"')" ]; then # check for ESSID match<br />
nmcli con up id $VPN_NAME;<br />
fi<br />
fi<br />
#TODO: be polite and disconnect vpn prior to disconnecting from the network<br />
Remember to make it executable with chmod +x and to make the vpn connection available to all users. <br />
<br />
Trying to connect using this setup will fail and NetworkManager will complain about 'no valid vpn secrets', because of [http://projects.gnome.org/NetworkManager/developers/migrating-to-09/secrets-flags.html the way vpn secrets are stored] which brings us to step 2:<br />
<br />
'''2)''' Edit your vpn connection configuration file to make NetworkManager store the secrets by itself rather than inside a keyring [https://bugzilla.redhat.com/show_bug.cgi?id=710552 that will be inaccessible for root]:<br />
<br />
Open up {{ic|/etc/NetworkManager/system-connections/<name of your vpn connection>}} and change the {{ic|password-flags}} and {{ic|secret-flags}} form {{ic|1}} to {{ic|0}}.<br />
<br />
{{Note|It may now be necessary to re-open the NetworkManager connection editor and re-enter the vpn passwords/secrets.}}<br />
<br />
==== Use /etc/rc.conf to control services started by networkmanager ====<br />
<br />
Some Arch users may dislike having two places where the start/stop of daemons is configured. Using this method, network services started by NetworkManager are controlled from rc.conf by the use of a NET_DAEMONS array in the same fashion as the typical DAEMONS array<br />
<br />
'''1)''' Install networkmanager-dispatcher-net_daemons from the AUR.<br />
<br />
'''2)''' Ensure dbus and networkmanager are both in the DAEMONS line in rc.conf.<br />
<br />
'''3)''' Add a NET_DAEMONS line to rc.conf which includes all services you do not want started until after network connect. ie. sshd, samba, etc..<br />
<br />
Example DAEMONS and NET_DAEMONS from rc.conf are shown below:<br />
<br />
{{bc|<nowiki><br />
# DAEMONS<br />
# -------<br />
#<br />
DAEMONS=(syslog-ng crond dbus networkmanager)<br />
NET_DAEMONS=(iptables nscd sshd samba avahi-daemon avahi-dnsconfd openntpd)<br />
</nowiki>}}<br />
<br />
=== Proxy settings ===<br />
<br />
Network Manager does not directly handle proxy settings, but if you are using GNOME, you could use [http://marin.jb.free.fr/proxydriver/ proxydriver] wich handles proxy settings using Network Manager's informations. Package {{AUR|proxydriver}} is in the [[AUR]].<br />
<br />
In order for proxydriver to be able to change the proxy settings, you would need to execute this command, as part of the GNOME startup process (<br />
System->Preferences->Startup Applications):<br />
<br />
{{bc|<br />
xhost +si:localuser:your_username<br />
}}<br />
<br />
See: [[Proxy settings]]<br />
<br />
== Testing ==<br />
<br />
NetworkManager applets are designed to load upon login so no further configuration should be necessary for most users. If you have already disabled your previous network settings and disconnected from your network, you can now test if NetworkManager will work. First start the daemon:<br />
<br />
/etc/rc.d/networkmanager start<br />
<br />
Some applets will provide you with a .desktop file so that the NetworkManager applet can be loaded through the application menu. If it does not, you are going to either have to discover the command to use or logout and login again to start the applet. Once the applet is started, it will likely begin polling network connections with for auto-configuration with a DHCP server.<br />
<br />
To start the GNOME applet in non-xdg-compliant Window Managers like Awesome:<br />
<br />
nm-applet --sm-disable &<br />
<br />
For static IPs you will have to configure NetworkManager to understand them. The process usually involves right-clicking the applet and selecting something like 'Edit Connections'.<br />
<br />
==Troubleshooting==<br />
<br />
Some fixes to common problems.<br />
<br />
=== No traffic via PPTP tunnel ===<br />
<br />
PPTP connection logins successfully, you see ppp0 interface with correct VPN IP, but you cannot even ping remote IP. It is due to lack of MPPE (Microsoft Point-to-Point Encryption) support in stock Arch pppd.<br />
<br />
Just install {{AUR|ppp-mppe}} packet from the AUR.<br />
<br />
=== Network Management Disabled ===<br />
<br />
Sometimes when NM shuts down the pid (state) file does not get removed and you will get a 'Network management disabled' message. If this happens, you'l have to remove it manually:<br />
<br />
rm /var/lib/NetworkManager/NetworkManager.state<br />
<br />
If this happens upon reboot, you can add an action to your {{ic|etc/rc.local}} to have it removed upon bootup:<br />
<br />
{{bc|<nowiki>nmpid=/var/lib/NetworkManager/NetworkManager.state<br />
[ -f $nmpid ] && rm $nmpid</nowiki>}}<br />
<br />
=== NetworkManager prevents DHCPCD from using resolv.conf.head and resolv.conf.tail ===<br />
<br />
Sometimes it is problematic to add static items to resolv.conf when it is constantly rewritten by nm and dhcpcd. You can use networkmanager-dhclient package from AUR but a better solution is to use this simple script:<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
# <br />
# /etc/NetworkManager/dispatcher.d/99-resolv.conf-head_and_tail<br />
# Include /etc/resolv.conf.head and /etc/resolv.conf.tail to /etc/resolv.conf<br />
#<br />
# scripts in the /etc/NetworkManager/dispatcher.d/ directory<br />
# are called alphabetically and are passed two parameters:<br />
# $1 is the interface name, and $2 is “up” or “down” as the<br />
# case may be.<br />
<br />
resolvconf='/etc/resolv.conf';<br />
cat "$resolvconf"{.head,,.tail} 2>/dev/null > "$resolvconf".tmp<br />
mv -f "$resolvconf".tmp "$resolvconf"<br />
</nowiki>}}<br />
<br />
===Preserving changes to resolv.conf===<br />
NetworkManager will attempt to write DNS information from DHCP into {{ic|/etc/resolv.conf}}, overwriting the existing contents. To prevent this, you can set the immutable bit on the file (as root):<br />
# chattr +i /etc/resolv.conf<br />
<br />
To modify the file in the future, first remove the immutable bit:<br />
# chattr -i /etc/resolv.conf<br />
<br />
===DHCP problems===<br />
If you have problems with getting an IP via DHCP, try to add the following to your {{ic|/etc/dhclient.conf}}:<br />
interface "eth0" {<br />
send dhcp-client-identifier 01:aa:bb:cc:dd:ee:ff;<br />
}<br />
Where {{ic|aa:bb:cc:dd:ee:ff}} is the MAC-adress of this NIC.<br />
<br />
For some (incompliant?) routers, you will not be able to connect properly unless you comment the line<br />
require dhcp_server_identifier<br />
in {{ic|/etc/dhcpcd.conf}} (note that this file is distinct from {{ic|dhcpd.conf}}). This should not cause issues unless you have multiple DHCP servers on your network (not typical); see [http://technet.microsoft.com/en-us/library/cc977442.aspx this page] for more information.<br />
<br />
===Missing default route===<br />
On at least one KDE4 system, no default route was created when establishing wireless connections with NetworkManager. Changing the route settings of the wireless connection to remove the default selection "Use only for resources on this connection" solved the issue.<br />
<br />
===3G modem not detected===<br />
If NetworkManager (from v0.7.999) does not detect your 3G modem, but you still can connect using [[wvdial]], try installing <br />
[http://www.archlinux.org/packages/extra/i686/modemmanager/ modemmanager] package using {{ic|pacman -S modemmanager}} and restart NetworkManager daemon with {{ic|/etc/rc.d/networkmanager restart}}. Replug your modem or restart. This utility provides support for hardware not in networkmanager's default database.<br />
<br />
===VPN problems in Networkmanager 0.7.999===<br />
If you get the error message "invalid secrets" when trying to connect to your VPN provider using the PPTP protocol, try installing the git versions instead: [https://aur.archlinux.org/packages.php?ID=22349 networkmanager], [https://aur.archlinux.org/packages.php?ID=26516 nm-applet] and the [https://aur.archlinux.org/packages.php?ID=29178 pptp plugin].<br />
<br />
===Switching off WLAN on laptops===<br />
<br />
Sometimes networkmanager will not work when you disable your Wifi-adapter with a switch on your laptop and try to enable it again afterwards. This is often a problem with rfkill. Install rfkill from the repo:<br />
<br />
# pacman -S rfkill<br />
<br />
and use <br />
<br />
$ watch -n1 rfkill list all<br />
<br />
to check if the driver notifies rfkill about the wireless adapter's status.<br />
If one identifier stays blocked after you switch on the adapter you could try to manually unblock it with (where X is the number of the identifier provided by the above output):<br />
<br />
# rfkill event unblock X<br />
<br />
===Static IP Settings Revert To DHCP===<br />
<br />
Due to an unresolved bug, when changing default connections to static IP, nm-applet may not properly store the configuration change, and will revert to automatic DHCP. A workaround for this issue follows.<br />
<br />
Edit the default connection (eg "Auto eth0") in nm-applet. Change the connection name (eg "my eth0"), uncheck the "Available to all users" checkbox, change your static IP settings as desired, and click Apply. This will save a new connection with the given name.<br />
<br />
Next, you will want to make the default connection not connect automatically. To do so, run<br />
<br />
$ sudo nm-connection-editor # you must use sudo, not su<br />
<br />
In the connection editor, edit the default connection (eg "Auto eth0") and uncheck "Connect automatically". Click Apply and close the connection editor.<br />
<br />
===Cannot edit connections as normal user===<br />
<br />
Sometimes you can connect to a new network, but after you cannot edit this same connection, unless you enter the root password<br />
<br />
Add your user in the {{ic|network}} [[Groups|group]]. And then write a new polkit rule containing the following:<br />
<br />
[nm-applet]<br />
Identity=unix-group:network<br />
Action=org.freedesktop.NetworkManager.*<br />
ResultAny=yes<br />
ResultInactive=no<br />
ResultActive=yes<br />
<br />
in the {{ic|/etc/polkit-1/localauthority/50-local.d/org.freedesktop.NetworkManager.pkla}} file.<br />
<br />
==Tips and tricks==<br />
<br />
===Checking if networking is up inside a cron job or script===<br />
Some cron jobs require networking to be up to succeed. You may wish to avoid running these jobs when the network is down. To accomplish this, add an '''if''' test for networking that queries NetworkManager's '''nm-tool''' and checks the state of networking. The test shown here succeeds if any interface is up, and fails if they are all down. This is convenient for laptops that might be hardwired, might be on wireless, or might be off the network. <br />
if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then<br />
#Whatever you want to do if the network is online<br />
else<br />
#Whatever you want to do if the network is offline - note, this and the else above are optional<br />
fi<br />
<br />
This useful for a cron.hourly script that runs '''fpupdate''' for the F-Prot virus scanner signature update, as an example. Another way it might be useful, with a little modification, is to differentiate between networks using various parts of the output from '''nm-tool'''; for example, since the active wireless network is denoted with an asterisk, you could grep for the network name and then grep for a literal asterisk.<br />
<br />
===Automatically unlock keyring after login===<br />
==== Gnome ====<br />
# Right click on the NM icon in your panel and select Edit Connections and open the Wireless tab<br />
# Select the connection you want to work with and click the Edit button<br />
# Check the boxes “Connect Automatically” and “Available to all users”<br />
Log out and log back in to complete.<br />
<br />
{{Note|The following method is dated and known not to work on at least one machine!}}<br />
''*In {{ic|/etc/pam.d/gdm}} (or your corresponding daemon in /etc/pam.d), add these lines at the end of the "auth" and "session" blocks if they do not exist already: <br />
auth optional pam_gnome_keyring.so<br />
session optional pam_gnome_keyring.so auto_start<br />
<br />
*In {{ic|/etc/pam.d/passwd}}, use this line for the 'password' block:<br />
password optional pam_gnome_keyring.so<br />
<br />
:Next time you log in, you should be asked if you want the password to be unlocked automatically on login.''<br />
<br />
==== KDE ====<br />
{{Note|See http://live.gnome.org/GnomeKeyring/Pam for reference, and if you are using kde / kdm, you can use pam-keyring-tool from the AUR.}}<br />
<br />
*Put a script like the following in ~/.kde4/Autostart:<br />
$!/bin/sh<br />
echo PASSWORD | /usr/bin/pam-keyring-tool --unlock --keyring=default -s<br />
:Similar should work with openbox, lxde, etc.<br />
<br />
==== SLiM login manager ====<br />
<br />
*In {{ic|/etc/pam.d/slim}}, add these lines at the end of the "auth" and "session" blocks if they do not exist already: <br />
auth optional pam_gnome_keyring.so<br />
session optional pam_gnome_keyring.so auto_start<br />
<br />
*In {{ic|/etc/pam.d/passwd}}, use this line for the 'password' block:<br />
password optional pam_gnome_keyring.so<br />
<br />
*In {{ic|~/.xinitrc}}, add this at the very top, before launching your window manager and other applications:<br />
## test for an existing bus daemon, just to be safe<br />
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then<br />
## if not found, launch a new one<br />
eval `dbus-launch --sh-syntax --exit-with-session`<br />
echo "D-Bus per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"<br />
fi<br />
<br />
:Next time you log in, you should be asked if you want the password to be unlocked automatically on login.''<br />
<br />
===Ignore specific devices===<br />
Sometimes it may be desired that NetworkManager ignores specific devices and does not try to configure addresses and routes for them.<br />
<br />
You can quickly and easily ignore devices by MAC by using the following in /etc/NetworkManager/NetworkManager.conf :<br />
[keyfile]<br />
unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4<br />
After you have put this in, restart NetworkManager, and you should be able to configure interfaces without NetworkManager altering what you have set.<br />
<br />
If that is not appropriate, you could ignore by HAL.<br />
*First you have to find out the Hal UDI (e.g. with lshal):<br />
...<br />
info.product = 'Networking Interface' (string)<br />
info.subsystem = 'net' (string)<br />
info.udi = '/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55' (string)<br />
linux.hotplug_type = 2 (0x2) (int)<br />
linux.subsystem = 'net' (string)<br />
...<br />
<br />
*Add the udi to /etc/NetworkManager/nm-system-settings.conf:<br />
[keyfile]<br />
unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55<br />
<br />
:Multiple devices can be specified, delimited by semicolons:<br />
<br />
[keyfile]<br />
unmanaged-devices=/org/freedesktop/Hal/devices/net_00_1f_11_01_06_55;/org/freedesktop/Hal/devices/net_00_2c_6d_e2_08_af<br />
<br />
You do not need to restart NetworkManager for the changes to take effect.<br />
<br />
*Ignoring a type of device at boot time.<br />
this script was used to ignore all ethernet devices at boot time of a archiso build, it can be changed to ignore wifi devices etc.<br />
/!\being used on a non-persistant filesystem, the nm-system-settings.conf is default at run time<br />
#!/bin/sh<br />
# author: tim noise <darknoise@drkns.net><br />
COUNT=0<br />
TARGET_FILE="/etc/NetworkManager/nm-system-settings.conf"<br />
for i in `lshal | grep -A6 'Networking Interface' | awk -F "'" '/info.udi = / {print $2}'`; do<br />
if [ $COUNT = 0 ]; then<br />
COUNT=$COUNT+1;<br />
echo "unmanaged-devices=$i" >> $TARGET_FILE<br />
else<br />
echo -n ";$i" >> $TARGET_FILE<br />
fi<br />
done<br />
printf "\n" >> $TARGET_FILE<br />
<br />
===Connect faster===<br />
====Disabling IPv6====<br />
Slow connection or reconnection to the network may be due to superfluous IPv6 queries in NetworkManager. If there is no IPv6 support on the local network, connecting to a network may take longer than normal while Network Manager tries to establish an IPv6 connection that eventually times out. The solution is to disable IPv6 within NetworkManager which will make network connection faster. This has to be done once for every network you connect to.<br />
<br />
*Right-click on the network status icon.<br />
*Click on "Edit Connections".<br />
*Go to the "Wired" or "Wireless" tab, as appropriate.<br />
*Select the name of the network.<br />
*Click on "Edit".<br />
*Go to the "IPv6 Settings" tab.<br />
*In the "Method" dropdown, choose "Ignore".<br />
*Click on "Save".<br />
<br />
==== Speed up DHCP by disabling ARP probing in dhcpcd ====<br />
{{ic|dhcpcd}} contains an implementation of a recommendation of the DHCP standard (RFC2131 section 2.2) to check via ARP if the assigned IP address is really not taken. This seems mostly useless in home networks, so you can '''save about 5 seconds''' on every connect by adding the following line to {{ic|/etc/dhcpcd.conf}}:<br />
<br />
noarp<br />
<br />
This is equivalent to passing --noarp to dhcpcd, and disables the described ARP probing, speeding up connections to networks with DHCP.<br />
<br />
==== Use OpenDNS Servers ====<br />
<br />
Create {{ic|/etc/resolv.conf.opendns}} with the nameservers:<br />
<br />
nameserver 208.67.222.222<br />
nameserver 208.67.220.220<br />
<br />
And have the dispatcher replace the discovered DHCP servers with the OpenDNS ones:<br />
<br />
{{hc|/etc/NetworkManager/dispatcher.d/dns-servers-opendns|<nowiki><br />
#!/bin/bash<br />
# Use OpenDNS servers over DHCP discovered servers<br />
<br />
cp -f /etc/resolv.conf.opendns /etc/resolv.conf</nowiki>}}<br />
<br />
Make the script executable:<br />
<br />
# chmod +x /etc/NetworkManager/dispatcher.d/dns-servers-opendns</div>TheJJhttps://wiki.archlinux.org/index.php?title=Xinit&diff=202505Xinit2012-05-22T11:46:03Z<p>TheJJ: /* PolicyKit and ConsoleKit */ slim can start ck-launch-session on its own now</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[Category:X Server]]<br />
{{i18n|Xinitrc}}<br />
[[fr:Startx]]<br />
{{Article summary start}}<br />
{{Article summary text|An overview of the primary configuration file for the xinit (startx) program.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Display Manager}}<br />
{{Article summary wiki|Start X at boot}}<br />
{{Article summary wiki|Xorg}}<br />
{{Article summary wiki|xprofile}}<br />
{{Article summary end}} {{Lowercase title}}<br />
<br />
The {{ic|~/.xinitrc}} file is a shell script read by {{ic|xinit}} and {{ic|startx}}. It is mainly used to execute [[desktop environment]]s, [[window manager]]s and other programs when starting the X server (e.g., starting daemons and setting environment variables). The {{ic|xinit}} and {{ic|startx}} programs starts the [[Xorg|X Window System]] and works as first client programs on systems that cannot start X directly from {{ic|/etc/init}}, or in environments that use multiple window systems. The {{ic|~/.xinitrc}} file is a simple way to start X, typically used in conjunction with the [[Start X at boot#/etc/inittab|inittab]] method.<br />
<br />
One of the main functions of {{ic|~/.xinitrc}} is to dictate which client for the X Window System is invoked with the {{ic|/usr/bin/startx}} and/or {{ic|/usr/bin/xinit}} program on a per-user basis. There exists numerous additional specifications and commands that may also be added to {{ic|~/.xinitrc}} as you further customize your system.<br />
<br />
==Getting started==<br />
<br />
{{ic|/etc/skel/}} contains files and directories to provide sane defaults for newly created user accounts. (The name ''skel'' is derived from the word ''skeleton'', because the files it contains form the basic structure for users' home directories.) The {{Pkg|xorg-xinit}} package will populate {{ic|/etc/skel}} with a framework {{ic|.xinitrc}} file.<br />
<br />
{{Note|{{ic|~/.xinitrc}} is a so-called 'dot' (.) file. Files in a *nix file system which are preceded with a dot (.) are 'hidden' and will not show up with a regular {{ic|ls}} command, usually for the sake of keeping directories tidy. Dot files may be seen by running {{ic|ls -a}}. The 'rc' denotes ''Run Commands'' and simply indicates that it is a configuration file. Since it controls how a program runs, it is (although historically incorrect) also said to stand for "Run Control".}}<br />
<br />
Copy the sample {{ic|/etc/skel/.xinitrc}} file to your home directory:<br />
$ cp /etc/skel/.xinitrc ~/<br />
<br />
Now, edit {{ic|~/.xinitrc}} and uncomment the line that corresponds to your DE/WM. For example, if you want to test your basic X configuration (mouse, keyboard, graphics resolution), you can simply use [[xterm]]:<br />
<br />
{{bc|<br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
<br />
# exec gnome-session<br />
# exec startkde<br />
# exec startxfce4<br />
# exec wmaker<br />
# exec icewm<br />
# exec blackbox<br />
# exec fluxbox<br />
# exec openbox-session<br />
# ...or the Window Manager of your choice<br />
exec xterm<br />
}}<br />
<br />
{{Note|It is important that only one {{ic|exec}} line is uncommented, or else only the first uncommented line will be run.}}<br />
<br />
After editing {{ic|~/.xinitrc}} properly, it's time to run X. To run X as a non-root user, issue:<br />
$ startx<br />
<br />
or<br />
$ xinit<br />
<br />
Your DE/WM of choice should now start up. You are now free to test your keyboard with its layout, moving your mouse around and of course enjoy the view.<br />
<br />
If you experience trouble with automounting, try inserting {{ic|ck-launch-session}} between the {{ic|exec}} statement and the DE/WM statement. For example:<br />
exec ck-launch-session gnome-session<br />
<br />
{{Note|This requires that you have the {{Pkg|consolekit}} package installed.}}<br />
<br />
The {{ic|ck-launch-session}} part ensures that the various environment variables are set correctly by starting a clean [[ConsoleKit]] session. ConsoleKit is a framework for keeping track of the various users, sessions, and seats present on a system. It provides a mechanism for software to react to changes of any of these items or of any of the metadata associated with them. It works in conjunction with [[D-Bus]] and other tools.<br />
<br />
== File examples==<br />
Following is a simple {{ic|~/.xinitrc}} file example, including some startup programs:<br />
{{hc<br />
|~/.xinitrc<br />
|<nowiki><br />
#!/bin/sh<br />
<br />
xrdb -merge ~/.Xresources # update x resources db<br />
<br />
xscreensaver -no-splash & # starts screensaver daemon <br />
xsetroot -cursor_name left_ptr & # sets the cursor icon<br />
sh ~/.fehbg & # sets the background image<br />
<br />
exec openbox-session # starts the window manager<br />
<br />
</nowiki>}}<br />
<br />
Following example can be used as a template for executing various window managers, by uncommenting the one to be used, e.g. [[Openbox]]:<br />
<br />
{{hc<br />
|~/.xinitrc<br />
|<nowiki><br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
#<br />
# exec ion<br />
# exec jwm<br />
# exec wmaker<br />
# exec startkde<br />
# exec icewm<br />
# exec pekwm<br />
# exec blackbox<br />
# exec /usr/bin/ratpoison<br />
# exec gnome-session<br />
# exec startfluxbox<br />
# exec startxfce4<br />
# exec xfce4-session<br />
exec openbox-session<br />
# exec startlxde<br />
</nowiki>}}<br />
<br />
Prepending {{ic|exec}} is recommended as it replaces the current process with the manager, but it's not necessary if all additional desktop/window managers are commented out as in the above example. Use the full path to the window manager or desktop environment launcher when possible. You can get the path to it by using {{ic|type}} - i.e. {{ic|type startkde}}. <br />
<br />
In addition to the examples provided here, you can find another at {{ic|/etc/skel/.xinitrc}} provided by {{Pkg|xorg-xinit}}. To use it, simply copy it to your home directory:<br />
$ cp /etc/skel/.xinitrc ~/<br />
<br />
== File configuration ==<br />
<br />
When a display manager is not used, it is important to keep in mind that the life of the X session starts and ends with {{ic|~/.xinitrc}}. This means that once the script quits, X quits regardless of whether you still have running programs (including your window manager). Therefore it's important that the window manager quitting and X quitting should coincide. This is easily achieved by running the window manager as the last program in the script.<br />
<br />
Note that in the first example above, programs such as {{ic|cairo-compmgr}}, {{ic|xscreensaver}}, {{ic|xsetroot}} and {{ic|sh}} are run in the background ({{ic|&}} suffix added). Otherwise, the script would halt and wait for each program and daemons to exit before executing {{ic|openbox-session}}. Also note that {{ic|openbox-session}} is not backgrounded. This ensures that the script will not quit until openbox does. If you run the {{ic|startx}} script manually, ending the script will terminate X and leave you with whatever virtual consoles {{ic|/etc/inittab}} has started. <br />
<br />
If running the file from {{ic|/etc/inittab}} and have set the line to {{ic|respawn}} instead of {{ic|once}}, {{ic|~/.xinitrc}} will be re-run. This way X can be restarted without having to restart the computer.<br />
<br />
The following sections explains how to configure {{ic|~/.xinitrc}} for Multiple WMs and DEs.<br />
<br />
=== On the command line ===<br />
<br />
If you have a working {{ic|~/.xinitrc}}, but just want to try other WM/DE you can run it by issuing {{ic|xinit}} followed by the path to the window manager:<br />
<br />
xinit /full/path/to/window-manager<br />
<br />
Note that the full path is '''required'''. Optionally, you can pass options to the X server after appending {{ic|--}} - e.g.:<br />
<br />
xinit /usr/bin/enlightenment -- -br +bs -dpi 96<br />
<br />
The following example {{ic|~/.xinitrc}} shows how to start a particular window manager with an argument:<br />
<br />
{{hc<br />
|~/.xinitrc<br />
|<nowiki><br />
#!/bin/sh<br />
#<br />
# ~/.xinitrc<br />
#<br />
# Executed by startx (run your window manager from here)<br />
<br />
if [[ $1 == "fluxbox" ]]<br />
then<br />
exec startfluxbox<br />
elif [[ $1 == "spectrwm" ]]<br />
then<br />
exec spectrwm<br />
else<br />
echo "Choose a window manager"<br />
fi<br />
</nowiki>}}<br />
<br />
Using this example you can start fluxbox or spectrwm with the command {{ic|xinit fluxbox}} or {{ic|xinit spectrwm}}.<br />
<br />
=== At startup ===<br />
<br />
You can also have a choice of window managers and desktop environments at startup, using just {{ic|~/.xinitrc}} and [[GRUB]] and no display manager. The idea is to take advantage of the fact that Arch does not make any particular use of the runlevel system. The following {{ic|~/.xinitrc}} tests for the current runlevel and will start [[Openbox]] and [[GNOME]] on runlevels 5 and 4 respectively:<br />
<br />
rl=$(runlevel | grep -o [0-6])<br />
<br />
case $rl in<br />
4) exec gnome-session;;<br />
5) exec openbox-session;;<br />
esac<br />
<br />
Choosing between different runlevels is simply a matter of cloning a GRUB entry and adding the desired runlevel to the kernel arguments. Inserting the runlevel at the end of the 'kernel' line indicates that the {{ic|inittab}} default of runlevel 5 should be overridden and replaced with the desired runlevel, 4 in this instance:<br />
<br />
title Arch Linux GNOME<br />
root (hd0,2)<br />
kernel /boot/vmlinuz-linux root=/dev/sda1 ro 4<br />
initrd /boot/initramfs-linux.img<br />
<br />
Finally, you will need to ensure that the {{ic|~/.xinitrc}} file is actually run at the chosen runlevel. Using the tip from [[Start X at boot#/etc/inittab]], you can edit the {{ic|inittab}} to simply run {{ic|startx}} on the desired runlevel which will in turn use your {{ic|~/.xinitrc}} script:<br />
<br />
x:45:once:/bin/su PREFERED_USER -l -c "/bin/bash --login -c startx >/dev/null 2>&1"<br />
<br />
Notice that "45" means that this will happen on both runlevels 4 and 5. The final differentiation between 4 and 5 will then come in {{ic|~/.xinitrc}} as described above. This is preferable to attempt differentiating in the {{ic|inittab}} file as we stick pretty close to using the various configuration files as they were intended.<br />
<br />
==Tips and tricks==<br />
<br />
=== PolicyKit and ConsoleKit ===<br />
Various desktop environment features and applications expect [[PolicyKit]] and [[ConsoleKit]] to be active, and will produce errors if absent. A common error to notice is the inability to access shutdown or reboot prompts from desktop environment windows, and failure to mount USB devices, CD-ROMs etc. without root permissions. Most modern display managers will start PolicyKit and ConsoleKit automatically. When only using {{ic|~/.xinitrc}} with e.g. startx, you should execute the [[Window Manager|window manager]] as follows:<br />
<br />
exec ck-launch-session gnome-session<br />
<br />
[[Slim]] now supports consolekit session lauches by it's own.<br />
<br />
{{Note|Beware that {{pkg|polkit}} and {{pkg|consolekit}} packages must be present in your installation.}}<br />
<br />
{{Note|If you derived your {{ic|~/.xinitrc}} from {{ic|/etc/skel/.xinitrc}}, it will have a snippet at the top that sources the scripts in {{ic|/etc/X11/xinit/xinitrc.d/}}, including {{ic|/etc/X11/xinit/xinitrc.d/30-bus}}, which thus starts dbus before ConsoleKit: this causes bug {{bug|25031}}, since it is necessary to launch dbus '''after''' ConsoleKit, or you will have authorization problems when mounting drives.<br />
<br />
As a temporary workaround you can edit the snippet in {{ic|~/.xinitrc}} as follows:<br />
<br />
{{bc|<nowiki>if [ -d /etc/X11/xinit/xinitrc.d ]; then<br />
for f in /etc/X11/xinit/xinitrc.d/*; do<br />
# Do not launch dbus before ConsoleKit (FS#25031)<br />
#[ -x "$f" ] && . "$f"<br />
[ "$f" -ne "/etc/X11/xinit/xinitrc.d/30-dbus" ] && [ -x "$f" ] && . "$f"<br />
done<br />
unset f<br />
fi</nowiki>}}<br />
<br />
This will let you properly start dbus after ConsoleKit, follow the article of your [[Window Manager]] or [[Desktop Environment]] for detailed instructions.}}<br />
<br />
=== Starting the WM first ===<br />
<br />
If you need to start your window manager before other additional applications, use the following method:<br />
<br />
#!/bin/bash<br />
<br />
openbox & wmpid=$!<br />
<br />
urxvtd -q -f -o &<br />
xscreensaver -no-splash &<br />
fbpanel &<br />
<br />
wait $wmpid<br />
<br />
The first line runs openbox as a background process and immediately stores the process id ({{ic|$!}}) in the variable {{ic|wmpid}}. On the last line, the wait builtin is used to wait until the process specified by {{ic|wmpid}} terminates.<br />
<br />
==See also==<br />
* [http://www.slackbook.org/html/x-window-system-xinitrc.html slackbook.org]<br />
* [http://fluxbox-wiki.org/index.php?title=.xinitrc .xinitrc @ Fluxbox-wiki]</div>TheJJhttps://wiki.archlinux.org/index.php?title=User_talk:TheJJ&diff=180181User talk:TheJJ2012-01-25T11:58:23Z<p>TheJJ: /* .Xresource comments */</p>
<hr />
<div>==.Xresource comments ==<br />
I've always been using '!' as the command marker, but I'd gladly settle this [https://wiki.archlinux.org/index.php?title=Rxvt-unicode&diff=180164&oldid=180036] as there may be some issues wrt e.g. putting comments on the same line as the command. [[Xresources#Commenting]] Any links that say otherwise? -- [[User:Karol|Karol]] 06:29, 25 January 2012 (EST)<br />
:* ok, i didn't read that ! is the right way to comment, but i figured out that // works in my .Xresources file, and # is definitely wrong. But we should check whether // and ! could even be equal. [[User:TheJJ|TheJJ]] 06:58, 25 January 2012 (EST)</div>TheJJhttps://wiki.archlinux.org/index.php?title=Rxvt-unicode&diff=180164Rxvt-unicode2012-01-25T10:44:28Z<p>TheJJ: /* Native transparency */ in .Xresource comments are //, not #</p>
<hr />
<div>[[Category:Terminal emulators (English)]]<br />
{{DISPLAYTITLE:rxvt-unicode}}<br />
[[fr:urxvt]]<br />
{{i18n|Rxvt-unicode}}<br />
<br />
[http://software.schmorp.de/pkg/rxvt-unicode.html rxvt-unicode] is a highly customizable [[Wikipedia:Terminal emulator|terminal emulator]] forked from [[Wikipedia:Rxvt|rxvt]]. Commonly known as {{Ic|urxvt}}, rxvt-unicode can be [[daemon]]ized to run clients within a single [[Wikipedia:Process (computing)|process]] in order to minimize the use of system resources. Developed by Marc Lehmann, some of the more outstanding features of rxvt-unicode include international language support through [[Wikipedia:Unicode|Unicode]], the ability to display multiple font types and support for [[Wikipedia:Perl|Perl]] extensions.<br />
<br />
==Installation==<br />
<br />
{{Pkg|rxvt-unicode}} is available in the [[Official Repositories]] and includes 256 color support.<br />
<br />
{{AUR|rxvt-unicode-patched}} is available in the [[AUR]] and includes a fix for the font width bug.<br />
<br />
==Configuration==<br />
See the [http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod rxvt-unicode reference page] for the complete list of available setting and values.<br />
<br />
===Creating ~/.Xresources===<br />
The look, feel, and function of rxvt-unicode is controlled by command-line arguments and/or [[Wikipedia:X resources|X resources]]. X resources can be set using {{ic|~/.Xresources}} and xrdb ({{Pkg|xorg-xrdb}}), see the [[X_resources|wiki page]] for details.<br />
<br />
If {{ic|~/.Xresources}} is not affecting rxvt-unicode, add the following to your {{ic|~/.xinitrc}} file and restart your X session:<br />
xrdb -merge ~/.Xresources<br />
<br />
{{Note|Command-line arguments override and take precedence over the resource settings established in this file.}}<br />
<br />
===True transparency===<br />
<br />
To use true transparency, you need to be using a [[Window_Manager|window manager]] that supports compositing or a separate compositor.<br />
<br />
From the command-line:<br />
<br />
$ urxvt -depth 32 -bg rgba:3f00/3f00/3f00/dddd<br />
<br />
Using the configuration file:<br />
<br />
{{hc|~/.Xresources|<br />
URxvt.depth: 32<br />
URxvt.background: rgba:1111/1111/1111/dddd<br />
}}<br />
<br />
===Native transparency===<br />
<br />
If there is no need for true transparency, or if compositing uses too many resources on your system, you can get transparency working in the following way:<br />
{{hc|~/.Xresources|<nowiki><br />
// Xresources file<br />
<br />
URxvt.transparent: true<br />
URxvt.shading: 10 // 0 to 99 darkens, 101 to 200 lightens<br />
</nowiki>}}<br />
{{Note|Avoid using shading if you have a {{ic|URxvt.tintColor}} set. Use a different {{ic|tintColor}} instead.}}<br />
<br />
===Scrollbar===<br />
The look of the scrollbar can be chosen through this entry in {{ic|~/.Xresources}}:<br />
! scrollbar style - rxvt (default), plain (most compact), next, or xterm<br />
URxvt.scrollstyle: rxvt<br />
<br />
The scrollbar can also be completely deactivated like so:<br />
URxvt.scrollBar: off<br />
<br />
===Font Declaration Methods===<br />
URxvt.font: 9x15<br />
is the same as:<br />
URxvt.font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1<br />
and:<br />
URxvt.font: 9x15bold<br />
is the same as:<br />
URxvt.font: -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1<br />
<br />
The complete list of short names for X core fonts can be found in {{ic|/usr/share/fonts/misc/fonts.alias}} (there's also some fonts.alias files in some of the other subdirectories of {{ic|/usr/share/fonts/}}, but as they are packaged separately from the actual fonts, they may list fonts you do not actually have installed). It is worth noting that these short aliases select for ISO-8859-1 versions of the fonts rather than ISO-10646-1 (Unicode) versions, and 75 DPI rather than 100 DPI versions, so you're probably better off avoiding them and choosing fonts by their full long names instead.<br />
<br />
{{Note|The above paragraph is only for bitmap fonts. Xft fonts can be specified using the following format:}}<br />
URxvt.font: xft:monaco:size=10<br />
<br />
Or<br />
URxvt.font: xft:monaco:bold:size=10<br />
<br />
===Set icon===<br />
By default URxvt does not feature a taskbar icon. However, this can be easily changed by adding the following line to {{ic|~/.Xresources}} and pointing to the desired icon:<br />
URxvt.iconFile: /usr/share/icons/Clarity/scalable/apps/terminal.svg<br />
<br />
==Perl extensions==<br />
===Clickable URLs===<br />
You can make URLs in the terminal clickable using the matcher extension. For example, to open links in [[Firefox]] add the following to {{ic|.Xresources}}:<br />
URxvt.perl-ext-common: default,matcher<br />
URxvt.urlLauncher: /usr/bin/firefox<br />
URxvt.matcher.button: 1<br />
<br />
Since rxvt-unicode 9.14, it's also possible to use matcher to open and list recent (currently limited to 10) URLs via keyboard:<br />
URxvt.keysym.C-Delete: perl:matcher:last<br />
URxvt.keysym.M-Delete: perl:matcher:list<br />
<br />
===Yankable URLs (No Mouse)===<br />
In addition, you can select and open URLs in your web browser without using the mouse.<br />
<br />
Install the {{Pkg|urxvt-url-select}} package from the [[Official Repositories]] and adjust your {{ic|.Xresources}} as necessary. An example is shown below:<br />
URxvt.perl-ext: default,url-select<br />
URxvt.keysym.M-u: perl:url-select:select_next<br />
URxvt.urlLauncher: firefox<br />
URxvt.underlineURLs: true<br />
<br />
{{Note|This extension replaces the Clickable URLs extension mentioned above, so {{Ic|matcher}} can be removed from the {{Ic|URxvt.perl-ext}} list.}}<br />
<br />
'''Key commands:'''<br />
<br />
{{Keypress|Alt}}+{{Keypress|U}} Enter selection mode. The last URL on your screen will be selected. You can repeat {{Keypress|Alt}}+{{Keypress|U}} to select the next upward URL.<br />
<br />
{{Keypress|K}} Select next upward URL<br />
<br />
{{Keypress|J}} Select next downward URL<br />
<br />
{{Keypress|Return}} Open selected URL in browser and quit selection mode<br />
<br />
{{Keypress|O}} Open selected URL in browser without quitting selection mode<br />
<br />
{{Keypress|Y}} Copy (yank) selected URL and quit selection mode<br />
<br />
{{Keypress|Esc}} Cancel URL selection mode<br />
<br />
===Tabs===<br />
To add tabs to urxvt, add the following to your {{ic|~/.Xresources}}:<br />
URxvt.perl-ext-common: default,tabbed<br />
<br />
To control tabs use:<br />
<br />
{{Keypress|Shift}}+{{Keypress|↓}} new tab<br />
<br />
{{Keypress|Shift}}+{{Keypress|←}} go to left tab<br />
<br />
{{Keypress|Shift}}+{{Keypress|→}} go to right tab<br />
<br />
{{Keypress|Ctrl}}+{{Keypress|←}} move tab to the left<br />
<br />
{{Keypress|Ctrl}}+{{Keypress|→}} move tab to the right<br />
<br />
{{Keypress|Ctrl}}+{{Keypress|D}}: close tab <br />
<br />
You can change the colors of tabs with the following:<br />
URxvt.tabbed.tabbar-fg: 2<br />
URxvt.tabbed.tabbar-bg: 0<br />
URxvt.tabbed.tab-fg: 3<br />
URxvt.tabbed.tab-bg: 0<br />
<br />
For named tabs, see {{AUR|urxvt-tabbedex}}, ({{Keypress|Shift}}+{{Keypress|↑}}: names a tab).<br />
<br />
===Fullscreen===<br />
<br />
You can install the {{AUR|urxvt-fullscreen}} in the [[AUR]] and then set a key bind to put urxvt fullscreen.<br />
<br />
{{ic|~/.Xdefaults}}:<br />
{{bc|<br />
URxvt.keysym.F11: perl:fullscreen:switch<br />
}}<br />
<br />
===Scrollwheel Support===<br />
<br />
Install {{AUR|urxvt-vtwheel}} from the [[AUR]] and add it to your perl extensions within {{ic|~/.Xresources}} or {{ic|~/.Xdefaults}}:<br />
<br />
URxvt.perl-ext-common: ...,vtwheel,...<br />
<br />
==Colors==<br />
Colors must be specified using color indexes: 0 to 15 correspond with the colors from the rxvt manual "Colors and Graphics" Section.<br />
{{bc|1=COLORS AND GRAPHICS<br />
<br />
If graphics support was enabled at compile-time, rxvt can be queried with ANSI escape sequences and can address individual pixels instead of text<br />
characters. Note the graphics support is still considered beta code.<br />
<br />
In addition to the default foreground and background colours, rxvt can display up to 16 colours (8 ANSI colours plus high-intensity bold/blink<br />
versions of the same). Here is a list of the colours with their rgb.txt names.<br />
<br />
color0 (black) = Black<br />
color1 (red) = Red3<br />
color2 (green) = Green3<br />
color3 (yellow) = Yellow3<br />
color4 (blue) = Blue3<br />
color5 (magenta) = Magenta3<br />
color6 (cyan) = Cyan3<br />
color7 (white) = AntiqueWhite<br />
color8 (bright black) = Grey25<br />
color9 (bright red) = Red<br />
color10 (bright green) = Green<br />
color11 (bright yellow) = Yellow<br />
color12 (bright blue) = Blue<br />
color13 (bright magenta)= Magenta<br />
color14 (bright cyan) = Cyan<br />
color15 (bright white) = White<br />
foreground = Black<br />
background = White<br />
<br />
It is also possible to specify the colour values of foreground, background, cursorColor, cursorColor2, colorBD, colorUL as a number 0-15, as a<br />
convenient shorthand to reference the colour name of color0-color15.<br />
<br />
Note that -rv ("reverseVideo: True") simulates reverse video by always swapping the foreground/background colours. This is in contrast to xterm(1)<br />
where the colours are only swapped if they have not otherwise been specified. For example,<br />
<br />
rxvt -fg Black -bg White -rv<br />
would yield White on Black, while on xterm(1) it would yield Black on White. <br />
}}<br />
<br />
==Improving Performance==<br />
*Avoid the use of Xft fonts. If Xft fonts must be used, append {{Ic|<nowiki>:antialias=false</nowiki>}} to the setting value.<sup>[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#Can_I_speed_up_Xft_rendering_somehow]</sup><br />
<br />
*Build rxvt-unicode with disabled support for unnecessary features, {{Ic|--disable-xft}} and {{Ic|--disable-unicode3}} in particular.<sup>[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#Rxvt_unicode_uses_gobs_of_memory_how]</sup><br />
<br />
*Limit the number of {{Ic|saveLines}} (option {{Ic|-sl}}) in the scrollback buffer to reduce memory usage.<sup>[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#Isn_t_rxvt_unicode_supposed_to_be_sm]</sup><br />
<br />
*Consider running {{Ic|urxvtd}} as a daemon accepting connections from {{Ic|urxvtc}} clients.<br />
<br />
==Cut and Paste==<br />
{{Note|With the use of a VDT multiplexer, urxvt (or any VDT emulator) {{Ic|CLIPBOARD}} integration will not be effective, since it will not be possible to select all of the desired text in a straightforward fashion or at all, in some cases (e.g., when the active multiplexed terminal is changed to another one and then back to the original one, and one selects text beyond what is visible, which causes text from the other terminal to be displayed). Obviously this is due to the fact that the VDT emulator lacks the ability to distinguish between multiplexed terminals. Therefore, it would be effectively redundant for one who always uses a VDT multiplexer capable of maintaining a scrollback buffer and integrating with {{Ic|CLIPBOARD}} (e.g., [[tmux]] with [[tmux#ICCCM Selection Integration|customized key bindings]]) to integrate {{Ic|CLIPBOARD}} with urxvt.}}<br />
<br />
For users unfamiliar with [[Xorg]] data transfer methods, the exchange of information to and from rxvt-unicode can become a burden. Suffice to say that rxvt-unicode uses cut buffers which are typically loaded into the current {{Ic|PRIMARY}} selection by default.<sup>[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod#THE_SELECTION_SELECTING_AND_PASTING_]</sup> Users are urged to review [[Wikipedia:X Window selection]] for additional information.<br />
<br />
====Clipboard Management====<br />
* [http://parcellite.sourceforge.net/ Parcellite] is a GTK+ clipboard manager which can also run in the background as a daemon.<br />
<br />
* [http://www.nongnu.org/autocutsel/ autocutsel] provides command line and daemon interfaces to synchronize PRIMARY, {{Ic|CLIPBOARD}} and cut buffer selections.<br />
<br />
* [http://glipper.sourceforge.net/ Glipper] is a [[GNOME]] panel applet with older versions available for use in environments other than GNOME.<br />
<br />
* [http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin Clipman] (xfce-clipman-plugin) is a GUI clipboard manager plugin for the [[Xfce]] panel (xfpanel).<br />
<br />
* [http://sourceforge.net/projects/xclip/ xclip] is a lightweight, command-line based interface to the clipboard.<br />
<br />
====Automatic Script Management====<br />
Skottish[http://bbs.archlinux.org/viewtopic.php?pid=506845#p506845] created a Perl script to automatically copy any selection in rxvt-unicode to the X clipboard. Save the following as {{ic|/usr/lib/urxvt/perl/clipboard}}:<br />
{{bc|<nowiki><br />
#! /usr/bin/perl<br />
<br />
sub on_sel_grab {<br />
my $query=quotemeta $_[0]->selection;<br />
$query=~ s/\n/\\n/g;<br />
$query=~ s/\r/\\r/g;<br />
system( "echo -en " . $query . " | xsel -i -b -p" );<br />
}<br />
</nowiki>}}<br />
<br />
Xyne has also created his own variation of Skottish's script named {{AUR|urxvt-clipboard}} which is available in the [[AUR]] that allows the user to paste the selection with {{Keypress|Ctrl}}+{{Keypress|V}} instead of only with a middle mouse click:<br />
{{bc|<nowiki><br />
#! /usr/bin/perl<br />
<br />
sub on_sel_grab<br />
{<br />
my $query = $_[0]->selection;<br />
open (my $pipe,'|-','xsel -ib') or die;<br />
print $pipe $query;<br />
close $pipe;<br />
open (my $pipe,'|-','xsel -ip') or die;<br />
print $pipe $query;<br />
close $pipe;<br />
}<br />
</nowiki>}}<br />
<br />
It also requires {{Pkg|xsel}} and needs to be enabled in the {{Ic|*perl-ext-common}} or {{Ic|*perl-ext}} field in {{ic|~/.Xresources}}. For example:<br />
URxvt.perl-ext-common: default,clipboard<br />
<br />
The [[AUR]] package {{AUR|urxvt-perls-git}} is another option one can use. {{AUR|urxvt-perls-git}} includes the same functionality as {{AUR|urxvt-clipboard}}, in addition to the keyboard-select and url-select Perl extensions.<br />
<br />
==Improved Kuake-like Behavior in Openbox==<br />
This was originally posted on the forum by Xyne<sup>[http://bbs.archlinux.org/viewtopic.php?pid=550380]</sup>, and it relies on the {{Pkg|xdotool}} found in the [[Official Repositories|official repositories]].<br />
<br />
===Scriptlets===<br />
Save this scriptlet from the {{Ic|urxvtc}} man page somewhere on your system as {{ic|urxvtc}} (e.g., in {{ic|~/.config/openbox}}):<br />
{{bc|<br />
#!/bin/sh<br />
urxvtc "$@"<br />
if [ $? -eq 2 ]; then<br />
urxvtd -q -o -f<br />
urxvtc "$@"<br />
fi<br />
}}<br />
<br />
and save this one as {{ic|urxvtq}}:<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
<br />
wid=$(xdotool search --classname urxvtq)<br />
if [ -z "$wid" ]; then<br />
/path/to/urxvtc -name urxvtq -geometry 80x28<br />
wid=$(xdotool search --classname urxvtq | head -1)<br />
xdotool windowfocus $wid<br />
xdotool key Control_L+l<br />
else<br />
if [ -z "$(xdotool search --onlyvisible --classname urxvtq 2>/dev/null)" ]; then<br />
xdotool windowmap $wid<br />
xdotool windowfocus $wid<br />
else<br />
xdotool windowunmap $wid<br />
fi<br />
fi<br />
</nowiki>}}<br />
<br />
A previous version of {{Pkg|xdotool}} introduced a bug which disabled recognition of visible windows and thus led some users to use the following scriptlet in place of the previous one. This is no longer necessary as of {{Pkg|xdotool}} >= 1.20100416.2809, but it has been left here for future reference.<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
<br />
wid=$(xprop -name urxvtq | grep 'WM_COMMAND' | awk -F ',' '{print $3}' | awk -F '"' '{print $2}')<br />
if [ -z "$wid" ]; then<br />
/path/to/urxvtc -name urxvtq -geometry 200x28<br />
wid=$(xprop -name urxvtq | grep 'WM_COMMAND' | awk -F ',' '{print $3}' | awk -F '"' '{print $2}')<br />
xdotool windowfocus $wid<br />
xdotool key Control_L+l<br />
else<br />
if [ -z "$(xprop -id $wid | grep 'window state: Normal' 2>/dev/null)" ]; then<br />
xdotool windowmap $wid<br />
xdotool windowfocus $wid<br />
else<br />
xdotool windowunmap $wid<br />
fi<br />
fi<br />
</nowiki>}}<br />
<br />
Make sure that you change {{Ic|/path/to/urxvtc}} to the actual path to the {{ic|urxvtc}} scriptlet that you saved above. We will be using {{ic|urxvtc}} to launch both regular instances of {{Ic|urxvt}} and the kuake-like instance.<br />
<br />
===urxvtq with tabbing===<br />
If you want to have tabs in your kuake-like {{ic|urxvtc}} (here called {{ic|urxvtq}}) just replace the third line in your {{ic|urxvtq}}:<br />
wid=$(xdotool search --name urxvtq)<br />
with:<br />
wid=$(xdotool search --name urxvtq | grep -m 1 "" )<br />
<br />
To activate the tab support, you can either replace the fifth line of your {{ic|urxvtq}}:<br />
/path/to/urxvtc -name urxvtq -geometry 80x28<br />
with:<br />
/path/to/urxvtc -name urxvtq -pe tabbed -geometry 80x28<br />
or replace this line of your {{ic|~/.Xresources}} file:<br />
URxvt.perl-ext-common: default,matcher<br />
with<br />
URxvt.perl-ext-common: default,matcher,tabbed<br />
<br />
====Tab control====<br />
{{Keypress|Shift}}+{{Keypress|←}}: Switch to the tab left of the current one<br />
<br />
{{Keypress|Shift}}+{{Keypress|→}}: Switch to the tab right of the current one<br />
<br />
{{Keypress|Shift}}+{{Keypress|↓}}: Create a new tab<br />
<br />
You can also use your mouse to switch the tabs by clicking the wished one and create a new tab by clicking on ''[NEW].\\''<br />
<br />
To close a tab just enter {{Ic|exit}} like you would to normally close a terminal.<br />
<br />
===Openbox configuration===<br />
Now add the following lines to the {{Ic|<applications>}} section of {{ic|~/.config/openbox/rc.xml}}:<br />
{{bc|1=<br />
<application name="urxvtq"><br />
<decor>no</decor><br />
<position force="yes"><br />
<x>center</x><br />
<y>0</y><br />
</position><br />
<desktop>all</desktop><br />
<layer>above</layer><br />
<skip_pager>yes</skip_pager><br />
<skip_taskbar>yes</skip_taskbar><br />
<maximized>Horizontal</maximized><br />
</application><br />
}}<br />
<br />
and add these lines to the {{Ic|<keyboard>}} section:<br />
{{bc|1=<br />
<keybind key="W-t"><br />
<action name="Execute"><br />
<command>/path/to/urxvtc</command><br />
</action><br />
</keybind><br />
<keybind key="W-grave"><br />
<action name="Execute"><br />
<execute>/path/to/urxvtq</execute><br />
</action><br />
</keybind><br />
}}<br />
<br />
Here too you need to change the {{Ic|/path/to/*}} lines to point to the scripts that you saved above. Save the file and then reconfigure Openbox. You should now be able to launch regular instances of urxvt with the Windows/Super key + {{Keypress|T}}, and toggle the kuake-like console with the Windows/Super key + {{Keypress|'''`'''}} (the grave key also known as the backtick).<br />
<br />
===Further configuration===<br />
The advantage of this configuration over the urxvt kuake Perl script is that Openbox provides more keybinding options such as modifier keys. The kuake script hijacks an entire physical key regardless of any modifier combination. Review the [http://icculus.org/openbox/index.php/Help:Bindings Openbox bindings documentation] for the full range or possibilities.<br />
<br />
The [http://icculus.org/openbox/index.php/Help:Applications Openbox per-app settings] can be used to further configure the behavior of the kuake-like console (e.g. screen position, layer, etc.). You may need to change the "geometry" parameter in the {{ic|urxvtq}} scriptlet to adjust the height of the console.<br />
<br />
===Related scripts===<br />
*hbekel has posted a generalized version of the {{ic|urxvtq}} [http://bbs.archlinux.org/viewtopic.php?pid=550380#p550380 here] which can be used to toggle any application using {{Pkg|xdotool}}.<br />
<br />
*http://www.jukie.net/~bart/blog/20070503013555 - A script for opening URLs with your keyboard instead of mouse with urxvt.<br />
<br />
==Troubleshooting==<br />
===Transparency not working after upgrade to V9.09===<br />
The rxvt-unicode devs removed compatibility code for a lot of non standard wallpaper setters with this update. Using a non compatible wallpaper setter will break transparency support. Recommended wallpaper setters:<br />
* [[feh]]<br />
* hsetroot<br />
* esetroot<br />
<br />
To make true transparency work, make sure to comment URxvt.tintColor and URxvt.inheritPixmap.<br />
<br />
===Remote Hosts===<br />
If you are logging into a remote host, you may encounter problems when running text-mode programs under rxvt-unicode. This can be fixed by copying {{ic|/usr/share/terminfo/r/rxvt-unicode}} from your local machine to your host at {{ic|~/.terminfo/r/rxvt-unicode}}.<br />
<br />
===Using rxvt-unicode as gmrun terminal===<br />
Unlike some other terminals, urxvt expects the arguments to {{Ic|-e}} to be given separately, rather than grouped together with quotes. This causes trouble with gmrun, which assumes the opposite behavior. This can be worked around by putting an "eval" in front of gmrun's "Terminal" variable in {{ic|.gmrunrc}}:<br />
<br />
Terminal = eval urxvt<br />
TermExec = ${Terminal} -e<br />
<br />
(gmrun uses {{ic|/bin/sh}} to execute commands, so the "eval" is understood here.) The "eval" has the side-effect of "breaking up" the argument to {{Ic|-e}} in the same way that {{Ic|$@}} does in [[Bash]], making the command intelligible to urxvt.<br />
<br />
=== My numerical keypad acts weird and generates differing output? (e.g. in vim) ===<br />
<br />
Some Debian GNU/Linux users seem to have this problem, although no specific details were reported so far. It is possible that this is caused by the wrong TERM setting, although the details of whether and how this can happen are unknown, as TERM=rxvt should offer a compatible keymap. See the answer to the previous question, and please report if that helped.<br />
<br />
However, using the ''xmodmap'' program ({{Pkg|xorg-xmodmap}}), you can re-map your numpad keys back.<br />
<br />
1. Check the keycode that your numerical keypad (numpad) generates using ''xev'' program.<br />
:* Start ''xev'' program<br />
:* Press your numpad keys and looks for ''... keycode xxx ...'' in ''xev'' output. For example, numpad 1 in my keyboard is also "End" key, that have a ''''keycode 87''''.<br />
<br />
2. Create or modify your xmodmap file, usually {{ic|~/.Xmodmap}}, with the content representing your keycode.<br />
<br />
:Example of xmodmap file with numpad keycode,<br />
{{bc|1=<br />
keycode 63 = KP_Multiply<br />
keycode 79 = Home KP_7<br />
keycode 80 = Up KP_8<br />
keycode 81 = Prior KP_9<br />
keycode 82 = KP_Subtract<br />
keycode 83 = Left KP_4<br />
keycode 84 = KP_5<br />
keycode 85 = Right KP_6<br />
keycode 86 = KP_Add<br />
keycode 87 = End KP_1<br />
keycode 88 = Down KP_2<br />
keycode 89 = Next KP_3<br />
keycode 90 = Insert KP_0<br />
keycode 91 = Delete KP_Decimal<br />
keycode 112 = Prior<br />
keycode 117 = Next<br />
}}<br />
<br />
3. Load your xmodmap file at X session start-up.<br />
<br />
:For example, in {{ic|~/.xinitrc}} file add,<br />
...<br />
xmodmap ~/.Xmodmap<br />
...<br />
<br />
==External resources==<br />
*[http://software.schmorp.de/pkg/rxvt-unicode.html rxvt-unicode] - Official site<br />
*[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod rxvt-unicode FAQ] - Official FAQ<br />
*[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.1.pod rxvt-unicode Reference] - Official manual page<br />
*[http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/src/urxvt.pm urxvtperl] - Official Perl extension reference<br />
*{{Ic|man urxvt}}</div>TheJJ