https://wiki.archlinux.org/api.php?action=feedcontributions&user=Erdmann&feedformat=atomArchWiki - User contributions [en]2024-03-30T06:15:03ZUser contributionsMediaWiki 1.41.1https://wiki.archlinux.org/index.php?title=Rxvt-unicode&diff=163294Rxvt-unicode2011-10-02T11:18:18Z<p>Erdmann: /* Automatic Script Management */</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 {{Codeline|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 />
{{Package Official|rxvt-unicode}} is available in [extra] and includes 256 color support:<br />
<br />
# pacman -S rxvt-unicode<br />
<br />
{{Package AUR|rxvt-unicode-patched}} is available in the [[AUR]] and includes a fix for the font width bug and adds support for ignoring window size hints (lock the window size to n_columns * column_width, etc.) without dead space.<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 {{Filename|~/.Xresources}} and xrdb, see the [[Xresources|wiki page]] for details.<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 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 />
{{File|name=~/.Xresources|content=<br />
URxvt.depth: 32<br />
URxvt.background: rgba:1111/1111/1111/dddd<br />
}}<br />
<br />
===Scrollbar===<br />
The look of the scrollbar can be chosen through this entry in {{Filename|~/.Xresources}}:<br />
<br />
<pre><br />
! scrollbar style - rxvt (default), plain (most compact), next, or xterm<br />
URxvt*scrollstyle:rxvt<br />
</pre><br />
<br />
The scrollbar can also be completely deactivated like so:<br />
<br />
<pre><br />
URxvt.scrollBar: off<br />
</pre><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 {{Filename|/usr/share/fonts/misc/fonts.alias}} (there's also some fonts.alias files in some of the other subdirectories of {{Filename|/usr/share/fonts/}}, but as they are packaged separately from the actual fonts, they may list fonts you don't 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 />
<br />
URxvt.font: xft:monaco:size=10<br />
<br />
Or<br />
<br />
URxvt.font: xft:monaco:bold:size=10<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 {{Filename|.Xresources}}:<br />
URxvt.perl-ext-common: default,matcher<br />
URxvt.urlLauncher: /usr/bin/firefox<br />
URxvt.matcher.button: 1 <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 {{Package Official|urxvt-url-select}} package from the [community] repo and adjust your {{Filename|.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 {{Codeline|matcher}} can be removed from the {{Codeline|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 {{Codeline|Alt+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 {{Filename|~/.Xresources}}:<br />
<pre><br />
URxvt.perl-ext-common: default,tabbed<br />
</pre><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 tabs' colors with the following:<br />
<pre><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 />
</pre><br />
<br />
For named tabs, see {{Package AUR|urxvt-tabbedex}}, (Shift+Up: names a tab).<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 />
<pre>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 />
</pre><br />
<br />
==Improving Performance==<br />
*Avoid the use of Xft fonts. If Xft fonts must be used, append {{Codeline|<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, {{Codeline|--disable-xft}} and {{Codeline|--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 {{Codeline|saveLines}} (option {{Codeline|-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 {{Codeline|urxvtd}} as a daemon accepting connections from {{Codeline|urxvtc}} clients.<br />
<br />
==Cut and Paste==<br />
{{Note|With the use of a VDT multiplexer, urxvt (or any VDT emulator) {{Codeline|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 {{Codeline|CLIPBOARD}} (e.g., [[tmux]] with [[tmux#ICCCM Selection Integration|customized key bindings]]) to integrate {{Codeline|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 {{Codeline|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, {{Codeline|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 urxvt to the X clipboard. Save the following as {{Filename|/usr/lib/urxvt/perl/clipboard}}:<br />
<pre><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 />
</pre><br />
<br />
Xyne has also created his own variation of Skottish's script (which is also [http://aur.archlinux.org/packages.php?ID=35526 available in the AUR]):<br />
<pre><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 />
</pre><br />
<br />
It also requires {{Codeline|xsel}} and needs to be enabled in the {{Codeline|*perl-ext-common}} or {{Codeline|*perl-ext}} field in {{Filename|.Xresources}}. For example:<br />
URxvt.perl-ext-common: default,clipboard<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 {{Codeline|xdotool}} which is available in the community repo.<br />
<br />
===Scriptlets===<br />
Save this scriptlet from the {{Codeline|urxvtc}} man page somewhere on your system as {{Filename|urxvtc}} (e.g., in {{Filename|~/.config/openbox}}):<br />
<pre><br />
#!/bin/sh<br />
urxvtc "$@"<br />
if [ $? -eq 2 ]; then<br />
urxvtd -q -o -f<br />
urxvtc "$@"<br />
fi<br />
</pre><br />
<br />
and save this one as {{Filename|urxvtq}}:<br />
<pre><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 />
</pre><br />
<br />
A previous version of 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 xdotool>=1.20100416.2809, but it has been left here for future reference.<br />
<pre><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 />
</pre><br />
<br />
Make sure that you change {{Filename|/path/to/urxvtc}} to the actual path to the {{Filename|urxvtc}} scriptlet that you saved above. We'll be using {{Filename|urxvtc}} to launch both regular instances of {{Codeline|urxvt}} and the kuake-like instance.<br />
<br />
===urxvtq with tabbing===<br />
If you want to have tabs in your kuake-like {{Filename|urxvtc}} (here called {{Filename|urxvtq}}) just replace the third line in your {{Filename|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 {{Filename|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 {{Filename|.Xresources}}:<br />
URxvt.perl-ext-common: default,matcher<br />
with<br />
URxvt.perl-ext-common: default,matcher,tabbed<br />
<br />
====Tab control====<br />
<SHIFT>-Left: Switch to the tab left of current one<br />
<br />
<SHIFT>-Right: Switch to the tab right of current one<br />
<br />
<SHIFT>-Down: 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 'exit' like you'll close a terminal.<br />
<br />
===Openbox configuration===<br />
Now add the following lines to the {{Codeline|<applications>}} section of {{Filename|~/.config/openbox/rc.xml}}:<br />
<pre><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 />
</pre><br />
<br />
and add these lines to the {{Codeline|<keyboard>}} section:<br />
<pre><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 />
</pre><br />
<br />
Here too you need to change the {{Filename|/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 + "'''t'''", and toggle the kuake-like console with Windows/Super+grave ('''`''').<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 {{Filename|urxvtq}} scriptlet to adjust the height of the console.<br />
<br />
===Related scripts===<br />
*hbekel has posted a generalized version of the {{Filename|urxvtq}} [http://bbs.archlinux.org/viewtopic.php?pid=550380#p550380 here] which can be used to toggle any application using {{Codeline|xdotool}}.<br />
<br />
*http://www.jukie.net/~bart/blog/20070503013555 - A script for opening url's 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 {{Filename|<br />
/usr/share/terminfo/r/rxvt-unicode}} from your local machine to your host at {{Filename|~/.terminfo/r/rxvt-unicode}}.<br />
<br />
===Using rxvt-unicode as gmrun terminal===<br />
Unlike some other terminals, urxvt expects the arguments to -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 {{Filename|.gmrunrc}}:<br />
<br />
Terminal = eval urxvt<br />
TermExec = ${Terminal} -e<br />
<br />
(gmrun uses {{Filename|/bin/sh}} to execute commands, so the "eval is understood here.) The "eval" has the side-effect of "breaking up" the argument to -e in the same way $@ 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 ''xmodmap'' program 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 {{Filename|~/.Xmodmap}}, with the content representing your keycode.<br />
<br />
:Example of xmodmap file with numpad keycode,<br />
<pre><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 />
</pre><br />
<br />
3. Load your xmodmap file at X session start-up.<br />
<br />
:For example, in {{Filename|~/.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 />
*{{Codeline|man urxvt}}</div>Erdmannhttps://wiki.archlinux.org/index.php?title=Firefox&diff=150184Firefox2011-07-29T15:01:48Z<p>Erdmann: 404, link replaced</p>
<hr />
<div>{{i18n|Firefox}}<br />
[[Category:Web Browser (English)]]<br />
<br />
[[fr:Firefox]]<br />
{{Article summary start}}<br />
{{Article summary text|Installing and troubleshooting the Firefox browser and plugins}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Browser Plugins}}: Acquiring and installing plugins such as [[Flash]]<br />
{{Article summary wiki|Firefox Tips and Tweaks}}: Configuration and modifications<br />
{{Article summary end}}<br />
<br />
[http://www.firefox.com Firefox] is a popular open-source graphical web browser from [http://www.mozilla.com Mozilla].<br />
<br />
== Installing ==<br />
The {{Package Official|firefox}} package can be found in the [extra] repository and installed with [[pacman]]:<br />
# pacman -S firefox<br />
<br />
There are a number of language packs available if English is not your preferred language. To see a list of available language packs, try:<br />
$ pacman -Ss firefox-i18n<br />
<br />
== Add-ons ==<br />
Firefox is well known for its large library of add-ons which can be used to add new features or modify the behavior of existing features of Firefox. You can find new add-ons or manage installed add-ons with Firefox's "Add-ons Manager."<br />
<br />
For a list of popular add-ons, see: [https://addons.mozilla.org/en-US/firefox/extensions/?sort=popular Mozilla's add-on list sorted by popularity].<br />
<br />
== Plugins ==<br />
''See: [[Browser Plugins]]''<br />
<br />
To find out what plugins are installed/enabled, enter:<br />
about:plugins<br />
in the Firefox address bar. Or go to ''Addons'' from the main bar drop downs <!-- I use vimperator so I don't know what's the name --> and select the ''Plugins'' tab.<br />
<br />
=== Gnome integration ===<br />
Install {{package AUR|firefox-extension-gnome-keyring-git}} from [[AUR]] to integrate Firefox 3.6.x with Gnome-keyring.<br />
<br />
You can also install {{package AUR|firefox-extension-firefoxnotify-git}} to get libnotify/notifyOSD integration.<br />
<br />
=== Dictionaries for spell checking ===<br />
Right click in any text entry field and add the dictionary for the solicited language. Restart firefox, and click in a text entry field again to enable spell checking.<br />
<br />
Or get it from pacman:<br />
pacman -Ss hunspell<br />
<br />
=== Adding Firefox search engines ===<br />
<br />
==== Newer method ====<br />
<br />
Visit https://addons.mozilla.org/en-US/firefox/browse/type:4/ and install.<br />
<br />
If you want to custom one, take a look at : ~/.mozilla/firefox/xxx.default/searchplugins/ where xxx is you profile id).<br />
<br />
==== Method for root user ====<br />
Firefox writes search engine files to {{filename|/opt/mozilla/lib/firefox/searchplugins}}, which is, by default, readable only by root. This means users cannot add search engines. You can <code>chmod o+w</code> this folder to install a search engine.<br />
<br />
To remove search engines, remove the appropriate search engine files in {{filename|/opt/mozilla/lib/firefox/searchplugins}}. Next time you start Firefox the engine won't be in the list.<br />
<br />
====arch-firefox-search====<br />
Adds Arch-specific searches (AUR, wiki, forum, etc, as specified by user) to the Firefox search toolbar. <br />
# pacman -S arch-firefox-search<br />
<br />
== Projects related to Firefox ==<br />
=== Firefox derivatives ===<br />
*[[Wikipedia:Iceweasel|Iceweasel]] - The name of '''two''' different Firefox forks. One was a GNU project; the name of this project has since changed to [http://en.wikipedia.org/wiki/GNU_IceCat Icecat]. The [http://wiki.debian.org/Iceweasel second] is being developed by Debian and is based on 2.0. At the time of writing the [[AUR]] only has Icecat.<br />
<br />
*[[Wikipedia:GNU IceCat|GNU/IceCat]] - formerly known as GNU IceWeasel, is a web browser distributed by the GNU Project. IceCat, which is made entirely of free software, is a fork of Mozilla Firefox. It is compatible with the GNU/Linux operating system and almost all of Firefox's addons. GNU/IceCat really can fully replace Firefox.<br />
<br />
*[http://getswiftfox.com/ Swiftfox] - An optimized and processor-specific build of Firefox. Currently available via AUR. It should be noted that, considering Arch Linux has ABS, you could build your own optimized build of Firefox.<br />
<br />
===Firefox customized for speed===<br />
{{Note|As of Firefox 5, the [extra] package is built with PGO.}}<br />
Building with [https://developer.mozilla.org/en/Building_with_Profile-Guided_Optimization Profile-Guided Optimization (PGO)] is now available with GCC 4 or newer. A PGO build consists of two passes: a first pass to build instrumented binaries, then a second pass to re-build optimized binaries using profile information gleaned from running the instrumented binaries. The Mozilla build system will run both passes for you, you simply need to provide a script to run the application through some profiling scenarios in between the build passes. [https://wiki.mozilla.org/JavaScript:TraceMonkey TraceMonkey] adds native‐code compilation to Mozilla’s JavaScript engine (known as “SpiderMonkey”). It is based on a technique developed at UC Irvine called “trace trees”, and building on code and ideas shared with the Tamarin Tracing project. The net result is a massive speed increase both in the browser chrome and Web‐page content. <br />
<br />
*{{package AUR|firefox-pgo}}<br />
:XULRunner independent, PGO optimized, 64-bit TraceMonkey<br />
<br />
*{{package AUR|firefox-pgo-beta}}<br />
:XULRunner independent, PGO optimized, 64-bit TraceMonkey, beta<br />
<br />
====Experimental versions====<br />
*{{package AUR|firefox-pgo-minefield}}<br />
:Mozilla Firefox customizable web browser (XULRunner independent, PGO optimized, 64-bit TraceMonkey, Dev tree<br />
This package is similar to firefox-pgo and firefox-pgo-beta. The difference is that it will track mozilla-current, the Firefox trunk, via Mercurial.<br />
<br />
*{{package AUR|firefox-pgo-minefield-smp}}<br />
:Mozilla Firefox customizable web browser (XULRunner independent, PGO optimized, 64-bit TraceMonkey, Dev tree, Multithreaded<br />
See [https://wiki.mozilla.org/Electrolysis Mozilla Electrolysis project] Read instructions given by the .install file to enable SMP, and enjoy!<br />
Expect this to be very unstable for quite a while<br />
<br />
=== Firefox with better KDE integration ===<br />
*{{package AUR|firefox-kde-opensuse}}<br />
:with OpenSUSE patch, integrates better with KDE. OpenSUSE's patch and integration of Firefox with KDE is considered the best by many users.<br />
<br />
*{{package AUR|kpartsplugin}}<br />
:This plugin uses KDE's KParts to embed file viewers into non-KDE browsers<br />
<br />
== Troubleshooting ==<br />
<br />
=== Firefox 4 New Menu Bar ===<br />
By default Archlinux shows the classic layout of the menu bar. To activate the new Firefox 4 layout with the "Firefox" button replacing the menu bar, uncheck View -> Toolbars -> Menubar.<br />
<br />
In Linux you will get just plain grey button instead of new orange one from Windows. However you can change this to nice Firefox icon, by adding to your <br />
{{codeline|$HOME/.mozilla/firefox/userprofile/chrome/userChrome.css}} <br />
this: <br />
<pre>#appmenu-toolbar-button {<br />
list-style-image: url("chrome://branding/content/icon16.png");<br />
}<br />
#appmenu-toolbar-button > .toolbarbutton-text,<br />
#appmenu-toolbar-button > .toolbarbutton-menu-dropmarker {<br />
display: none !important;<br />
}</pre><br />
<br />
NOTE: You may need to create both the chrome directory and userChrome.css if they don't already exist.<br />
<br />
=== Open containing folder problems ===<br />
Some versions of Firefox insists on using Cervisia (CVS manager) or Gwenview (Image viewer) to open folders using the "Open Containing Folder" option in the Downloads manager while in KDE. An effective fix for this was posted on the Mandriva forums: [http://forum.mandriva.com/viewtopic.php?t=119723 firefox 'open containing folder' in Gwenview not Dolphin]. From the post:<br />
<br />
In:<br />
$HOME/.local/share/applications<br />
, create a text file and name it:<br />
defaults.list<br />
and put this text in it:<br />
x-directory/normal=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;<br />
<br />
(leave a blank line at the end). This should make "open containing folder" open in Dolphin or your default file manager. Restart Firefox.<br />
<br />
=== Firefox keeps creating ~/Desktop even when I don't want it! ===<br />
See [https://bbs.archlinux.org/viewtopic.php?id=66940 this] forum post.<br />
<br />
=== How to prevent plugins from allowing popups? ===<br />
Ever wondered why popups appear even though you've blocked them? It seems that Flash plugin can bypass default settings and annoy us with those pesky popups. Fear not, for we can prevent it from doing that.<br />
<br />
To get around it:<br />
# Type about:config into the Firefox location bar.<br />
# Right-click on the page and select New and then Integer.<br />
# Name it privacy.popups.disable_from_plugins<br />
# Set the value to 2.<br />
<br />
The possible values are:<br />
* 0: Allow all popups from plugins.<br />
* 1: Allow popups, but limit them to dom.popup_maximum.<br />
* 2: Block popups from plugins.<br />
* 3: Block popups from plugins, even on whitelisted sites. <br />
<br />
=== Middle-click errors ===<br />
! The URL is not valid and cannot be loaded.<br />
Another symptom is that middle-clicking results in unexpected behavior, like accessing a random webpage.<br />
<br />
The reason stems from the use of the middle mouse buttons in UNIX-like operating systems. The middle mouse button is used to paste whatever text has been highlighted/added to the clipboard. Then there is the possibly conflicting feature in Firefox, which defaults to loading the url of the corresponding text when the button is depressed. This can be disabled like so:<br />
<br />
Open the browser, and type the following into the address bar:<br />
about:config<br />
Search for '''middlemouse.contentLoadURL''' and set it to false.<br />
<br />
Alternatively, having the traditional scroll cursor on middle-click (default behaviour on Windows browsers) can be achieved by searching for '''general.autoScroll''' and setting it to true.<br />
<br />
=== Backspace does not work as the 'Back' button ===<br />
As per [http://ubuntu.wordpress.com/2006/12/21/fix-firefox-backspace-to-take-you-to-the-previous-page/ this article], the feature has been removed in order to fix a bug. Follow the next steps to retain the original behaviour.<br />
<br />
Open the browser and type the following address:<br />
about:config<br />
Search for '''browser.backspace_action''' and set it to 0 (zero).<br />
<br />
=== Firefox does not remember login information ===<br />
It may be cause of a corrupted {{Codeline|cookies.sqlite}} file in [http://support.mozilla.com/en-US/kb/Profiles#How_to_find_your_profile Firefox's profile] folder. In order to fix this, just rename or remove the cookie.sqlite while Firefox is not running.<br />
<br />
Open a terminal of choice and type the following:<br />
$ cd ~/.mozilla/firefox/xxxxxxxx.default/<br />
$ rm -f cookies.sqlite<br />
{{Note|xxxxxxxx represents a random string of 8 characters.}}<br />
<br />
Restart Firefox and see if it solved the problem.<br />
<br />
=== Broken websites / input fields with dark Gtk Themes ===<br />
When using a dark [[GTK]] theme, one might encounter Internet pages with unreadable input and text fields (p.e. Amazon - white text on white background). This can happen because the site only sets either background or text color, and Firefox takes the other one from the theme.<br />
<br />
A work around is to explicitly setting standard colours for all web pages in {{Filename|~/.mozilla/firefox/.../chrome/userContent.css}}.<br />
<br />
The following sets input fields to standard black text / white background; both can be overridden by the displayed site, so that colors are seen as intended:<br />
<pre><br />
input {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: white;<br />
color: black;<br />
}<br />
</pre><br />
This will force the colours ("Allow paged to choose their own colors [..]" setting, in the '''Preferences > Content > Color''' dialog):<br />
<pre><br />
input {<br />
-moz-appearance: none !important;<br />
background-color: pink !important;<br />
color: green !important;<br />
}<br />
<br />
textarea {<br />
-moz-appearance: none !important;<br />
background-color: pink !important;<br />
color: green !important;<br />
}<br />
</pre><br />
Change color values to suit, or use an add-on like [https://addons.mozilla.org/en-US/firefox/addon/2108 Stylish].<br />
<br />
=== File association problems ===<br />
For non-[[GNOME]] users, Firefox may not associate file types (in the "Open With" part of the download dialog). Installing {{Package Official|libgnome}} amends the problem:<br />
pacman -S libgnome<br />
If you are using KDE you can also do the following:<br />
ln -s ~/.local/share/applications/mimeapps.list ~/.local/share/applications/mimeinfo.cache<br />
From now on Firefox should use the applications which are explicitly set in KDE.<br />
<br />
=== "I'm Feeling Lucky" Mode ===<br />
"I'm Feeling Lucky" mode lets the user harness the power of Google's "I'm Feeling Lucky" search engine feature via the Firefox address bar. <br />
<br />
To activate this mode, do the following (solution from [http://superuser.com/questions/76530/default-to-im-feeling-lucky-for-non-url-search-terms-in-firefox-address-bar this forum post]):<br />
<br />
# Type "'''about:config'''" in the address bar.<br />
# Search for the string '''keyword.url'''<br />
# Modify its value (if any) to<br />
<nowiki>http://www.google.com/search?btnI=I%27m+Feeling+Lucky&q=</nowiki><br />
<br />
=== "I'm Feeling Ducky" Mode (for DuckDuckGo)===<br />
"I'm Feeling Ducky" is similar to the Google's "I'm Feeling Lucky" but using the DuckDuckGo search engine. <br />
<br />
To activate this mode, do the following (solution using the above one):<br />
<br />
# Type "'''about:config'''" in the address bar.<br />
# Search for the string '''keyword.url'''<br />
# Modify its value (if any) to<br />
<nowiki>https://duckduckgo.com/?q=! </nowiki><br />
<br />
The last character is a space ' '. It's necesary because if you don't put it, it will become a !Bang.<br />
<br />
=== "Do you want Firefox to save your tabs for the next time it starts?" dialog does not appear ===<br />
From the [http://support.mozilla.com/en-US/questions/767751 Mozilla Support] site:<br />
<br />
# Type "'''about:config'''" in the address bar.<br />
# Set '''browser.warnOnQuit''' to '''true'''.<br />
# Set '''browser.showQuitWarning''' to '''true'''.<br />
<br />
== Resources ==<br />
*[http://web.glandium.org/blog/?p=97 Facts about Debian and Mozilla® Firefox]<br />
:An account of the trademark issues from the Firefox package maintainer for Debian.<br />
*[http://www.gnu.org/software/gnuzilla/ Gnuzilla and IceWeasel]<br />
:Official website for the GNU Mozilla forks.</div>Erdmannhttps://wiki.archlinux.org/index.php?title=SHA_hashes&diff=149994SHA hashes2011-07-26T20:40:42Z<p>Erdmann: added a note on the patched version of fgetty which supports sha512-hashed passwords</p>
<hr />
<div>[[Category:Security (English)]]<br />
==Why Should You Use SHA-2?==<br />
In Linux distributions login passwords are commonly hashed and stored in the {{Filename|/etc/shadow}} file using the [[Wikipedia:MD5|MD5 algorithm]]. The security of the MD5 hash function has been severely compromised by [[Wikipedia:MD5#Collision_vulnerabilities|collision vulnerabilities]]. This does not mean MD5 is insecure for password hashing but in the interest of decreasing vulnerabilities a more secure and robust algorithm that has no known weaknesses (i.e. SHA) is recommended.<br />
<br />
The following tutorial uses the ''sha512'' hash function, which has been recommended by the NSA for Red Hat Enterprise Linux 5. Alternatively, [[Wikipedia:SHA-2|SHA-2]] consists of three additional hash functions with digests that are 224, 256 or 384 bits.<br />
{{Warning|The very minimal terminal manager ''fgetty'' doesn't support sha512 password hashing by default, but there's a [[http://aur.archlinux.org/packages.php?ID=50943 patched version]] on the AUR which does. Enabling sha512 with the default ''fgetty'' will cause you to be locked out. Arch Linux's default tty manager ''agetty'' and the minimal tty manager ''mingetty'' both support sha512.}}<br />
<br />
==Editing the Necessary Files==<br />
{{note|You must have root privileges to edit the files within this section.}}<br />
===Editing /etc/pam.d/passwd===<br />
A default {{Filename|/etc/pam.d/passwd}} should look like the following:<br />
#%PAM-1.0<br />
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3<br />
#password required pam_unix.so md5 shadow use_authtok<br />
password required pam_unix.so md5 shadow nullok<br />
Open {{Filename|/etc/pam.d/passwd}} with a text editor and replace <tt>md5</tt> with <tt>sha512</tt> on the uncommented line. At the end of of the uncommented line add the <tt>rounds</tt> option.<br />
<br />
The ''rounds=N'' option helps to improve [[Wikipedia:Key Strengthening|key strengthening]]. The number of rounds has a larger impact on security than the selection of a hash function. For example, ''rounds=65536'' means that an attacker has to compute 65536 hashes for each password he tests against the hash in your /etc/shadow. Therefore the attacker will be delayed by a factor of 65536. This also means that your computer must compute 65536 hashes every time you login, but even on slow computers that takes less than 1 second. If you do not use the ''rounds'' option then glibc will default to 5000 rounds for sha512. Additionally, the default value for the ''rounds'' option can be found in {{Filename|sha512-crypt.c}}.<br />
<br />
{{note|For a more detailed explanation of the {{Filename|/etc/pam.d/passwd}} password options check the [http://linux.die.net/man/8/pam_unix pam man page].}}<br />
<br />
After applying the above changes your {{Filename|/etc/pam.d/passwd}} file should look like this:<br />
#%PAM-1.0<br />
#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3<br />
#password required pam_unix.so md5 shadow use_authtok<br />
password required pam_unix.so '''sha512''' shadow nullok '''rounds=65536'''<br />
<br />
===Editing /etc/default/passwd===<br />
Your default {{Filename|/etc/default/passwd}} file should look like this:<br />
# This file contains some information for<br />
# the passwd (1) command and other tools <br />
# creating or modifying passwords.<br />
<br />
# Define default crypt hash<br />
# CRYPT={des,md5,blowfish}<br />
CRYPT=des<br />
<br />
# Use another crypt hash for group passwowrds.<br />
# This is used by gpasswd, fallback is the CRYPT entry.<br />
# GROUP_CRYPT=des<br />
<br />
<br />
# We can override the default for a special service<br />
# by appending the service name (FILES, YP, NISPLUS, LDAP)<br />
<br />
# for local files, use a more secure hash. We<br />
# don't need to be portable here:<br />
CRYPT_FILES=blowfish<br />
# sometimes we need to specify special options for<br />
# a hash (variable is prepended by the name of the<br />
# crypt hash).<br />
BLOWFISH_CRYPT_FILES=5<br />
<br />
# For NIS, we should always use DES:<br />
CRYPT_YP=des<br />
On line 7 of the above example file, change<br />
CRYPT=des<br />
to<br />
CRYPT=sha512<br />
<br />
{{Note|It's unclear whether this is still necessary with the {{Filename|/etc/shadow}} mechanism.}}<br />
<br />
===Editing /etc/login.defs===<br />
<br />
According to ''passwd'''s man page, this file has to be edited when the /etc/shadow mechanism is used for storing passwords. Add the following line to {{Filename|/etc/login.defs}}:<br />
<br />
ENCRYPT_METHOD SHA512<br />
<br />
==Final Steps==<br />
Even though you have changed the encryption, your passwords are not automatically rehashed. To fix this, you must reset all user passwords so that they can be rehashed.<br />
<br />
As root issue the following the command,<br />
# passwd <username><br />
where <tt><username></tt> is the name of the user whose password you are changing. Then re-enter their current password, and it will be rehashed using the SHA-2 function!<br />
<br />
To verify that your passwords have been rehashed, check the {{Filename|/etc/shadow}} file as root. Passwords hashed with ''sha256'' should begin with a '''$5''' and passwords hashed with ''sha512'' will begin with '''$6'''.</div>Erdmannhttps://wiki.archlinux.org/index.php?title=Improving_performance/Boot_process&diff=149993Improving performance/Boot process2011-07-26T20:21:35Z<p>Erdmann: added a note on the patched version of fgetty which supports sha512-hashed passwords</p>
<hr />
<div>[[Category:Boot process (English)]]<br />
{{i18n|Improve Boot Performance}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|This article attempts to aggregate methods on how to improve the boot performance of a system.}}<br />
{{Article summary end}}<br />
<br />
==Preface==<br />
Improving the boot performance of a system can provide reduced boot wait times and a means to learn more about how certain system files and scripts interact with one another. This article attempts to aggregate methods on how to improve the boot performance of a system.<br />
<br />
==Modifying boot files==<br />
===/etc/inittab===<br />
<br />
====Asynchronous startup====<br />
{{Note|Using this means there are no guarantees that daemons are all started before X. This can cause problems if your setup expects dbus to be running (ck-launch-session, gnome, kde, etc.).}}<br />
The initscripts can be started [[Wiktionary:asynchronous|asynchronously]] instead of running in a strict order.<br />
<br />
<pre><br />
# use once instead of wait<br />
rc::sysinit:/etc/rc.sysinit<br />
rs:S1:wait:/etc/rc.single<br />
rm:2345:once:/etc/rc.multi<br />
rh:06:once:/etc/rc.shutdown<br />
su:S:once:/sbin/sulogin -p<br />
</pre><br />
<br />
====Comment out unused terminals====<br />
<br />
agetty terminals are console terminals brought up by <tt>Ctrl+Alt+F1-6</tt>. <br />
* Comment out unused terminals if only two terminals (<tt>tty1</tt> and <tt>tty2</tt> are required:<br />
c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux<br />
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux<br />
#c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux<br />
#c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux<br />
#c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux<br />
#c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux<br />
Additionally, consider using a lighter terminal such as {{Package Official|fgetty}} ([http://aur.archlinux.org/packages.php?ID=13793 mingetty] stripped of printfs and compiled against {{Package Official|dietlibc}}).<br />
<br />
{{Note|The default version of fgetty won't work with sha512 password hashes (md5 is the default however). Use the [[http://aur.archlinux.org/packages.php?ID=50943 patched fgetty]] from the AUR or mingetty if you want sha512 support.}}<br />
<br />
# pacman -S fgetty<br />
<br />
Change the following lines in {{Filename|/etc/inittab}} to reflect the use of <tt>fgetty</tt>:<br />
<br />
c1:2345:respawn:/sbin/fgetty tty1 linux<br />
c2:2345:respawn:/sbin/fgetty tty2 linux<br />
<br />
===/boot/grub/menu.lst===<br />
This file lets you modify the kernel command line at boot. A couple ways to speed up boot time using this file to modify the kernel commandline is to remove framebuffer entries, and set the kernel loglevel to a lowlevel of logging with '''quiet'''. For more kernel parameters and {{Filename|/boot/grub/menu.lst}} examples check out the archlinux page on [[GRUB]]. Remove existing <tt>vga=</tt> [[Wikipedia:Framebuffer|framebuffer]] resolution entries and '''logo.nologo''', parameters to the desired kernel:<br />
kernel /vmlinuz26 root=/dev/disk/by-uuid/UUID ro logo.nologo quiet<br />
<br />
===/etc/mkinitcpio.conf===<br />
<br />
Delete the HOOKS you don't need, and consider using just base (sometimes udev is needed too) along with the MODULES you need for your root device (and keyboard, instead of usbinput).<br />
<br />
Read more in the [[mkinitcpio|mkinitcpio article]].<br />
<br />
===/etc/rc.conf===<br />
In the network section, make sure you only load the network interface you need. Manually configuring your network is also faster than using dhcp. Then find and remove all DAEMONS you don't need.<br />
DAEMONS=(alsa network gdm)<br />
<br />
Then move your Xdm to front, and background all DAEMONS.<br />
DAEMONS=(@gdm @alsa @network)<br />
<br />
Another thing you could do about daemons is finding the best, or rather, "sweetest" arrangement.<br />
DAEMONS=(syslog-ng @acpid arptables iptables network pdnsd @alsa @dbus @mpd @crond @sensors @ntpd @dropboxd)<br />
<br />
You should try to background as many DAEMONS as possible, making sure to start dependent DAEMONS after what they require (in the above example, pdnsd depends on network, ntpd and dropboxd depend on pdnsd and network, because 127.0.0.1 is the dns server). You can still background daemons that are required by other things (dbus is required by the Xorg), but they need enough time to start (it can take some experimentation to get it all to work well).<br />
<br />
=== /etc/rc.sysinit ===<br />
This script is responsible for the majority of output you see during boot, meaning this is a system-critical configuration file which looks up other files like ''rc.conf'' and loads modules, sets up mounts, handles errors, and basically tries to be your best friend.<br />
<br />
There are certain lines here which you may not need. Removing or commenting them out may save you a few seconds at most. Do this at your own risk. For example, if you do not have RAID, LVM or encryption, then you would not need any lines concerning that.<br />
<br />
It's also possible to add some ampersands (&) to make it more asynchronous, but be careful - lots of things are expected to be finished during later parts of the script.<br />
<br />
== Compiling a Custom Kernel ==<br />
<br />
To decrease boot time, a stripped kernel is a must.<br />
[[Kernel_Compilation_From_Source | Read more about compiling a kernel. ]]<br />
<br />
== Additional Resources ==<br />
* [[Arch Boot Process]]<br />
* [[udev]]<br />
* [[Daemons]]<br />
* [[rc.conf]]<br />
* [[mkinitcpio]]<br />
* [[Maximizing Performance]]<br />
* [[Systemd]]</div>Erdmann