https://wiki.archlinux.org/api.php?action=feedcontributions&user=Thetictacaddict&feedformat=atomArchWiki - User contributions [en]2024-03-28T13:47:47ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Awesome&diff=170125Awesome2011-11-15T04:11:58Z<p>Thetictacaddict: /* Prevent Nautilus from displaying the desktop (Gnome3) */</p>
<hr />
<div>[[Category:Dynamic WMs (English)]]<br />
{{i18n|Awesome}}<br />
[[fr:Awesome3]]<br />
{{Lowercase title}}<br />
<br />
{{Article summary start}}<br />
{{Article summary text|A guide on how to install, use, configure, and customize awesome window manager.}}<br />
{{Article summary end}}<br />
<br />
From the [[Wikipedia:awesome (window manager)|awesome]] website:<br />
<br />
"''[http://awesome.naquadah.org/ awesome] is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license.''<br />
<br />
''It is primarly targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on its graphical environment.''"<br />
<br />
==Installation==<br />
<br />
[http://aur.archlinux.org/packages.php?ID=41362 awesome] is available in the [[AUR]], due to its dependency on the unsupported cairo-xcb package. If you want unstable pre-release versions, you can install the [http://aur.archlinux.org/packages.php?ID=13916 awesome-git] package instead.<br />
<br />
==Getting Started==<br />
<br />
===Using awesome===<br />
To run awesome without a login manager, simply add '''{{Codeline|exec awesome}}''' to the startup script of your choice (e.g. ~/.xinitrc.)<br />
<br />
If you have problems with some devices (like mounting usbkeys, reading dvds) be sure to read documentation about [[HAL]] and policykit. When you do not use a login manager, nothing is automated. In some cases, using '''{{Codeline|exec ck-launch-session awesome}}''' can solve your problems.<br />
<br />
To start awesome from a login manager, see [[Display Manager|this article]]. <br />
<br />
'''[[SLIM]]''' is a popular lightweight login manager and comes highly recommended. You should do like this:<br />
<br />
1) Edit /etc/slim.conf for start awesome session, add awesome to sessions line. <br>For example: <br />
sessions awesome,wmii,xmonad<br />
2) Edit ~/.xinitrc file <br />
DEFAULT_SESSION=awesome<br />
case $1 in<br />
awesome|wmii|xmonad) exec $1 ;;<br />
*) exec $DEFAULT_SESSION ;;<br />
esac<br />
However, you can also start awesome as preferred user without any login manager and even without logging in, after editing ~/.xinitrc and /etc/inittab properly. Refer to the article [[Start X at boot]].<br />
<br />
==Configuration==<br />
Awesome includes some good default settings right out of the box, but sooner or later you'll want to change something. The lua based configuration file is at {{Codeline|~/.config/awesome/rc.lua}}.<br />
<br />
===Creating the configuration file===<br />
First, run the following to create the directory needed in the next step:<br />
$ mkdir -p ~/.config/awesome/<br />
<br />
Whenever compiled, awesome will attempt to use whatever custom settings are contained in ~/.config/awesome/rc.lua. This file is not created by default, so we must copy the template file first:<br />
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/<br />
<br />
The syntax of the configuration often changes when awesome updates. So, remember to repeate the command above when you get something strange with awesome, or you'd like to modify the configuration.<br />
<br />
For more information about configuring awesome, check out the [http://awesome.naquadah.org/wiki/Awesome_3_configuration configuration page at awesome wiki]<br />
<br />
===More configuration resources===<br />
{{Note|The syntax of awesome configuration changes regularly, so you will likely have to modify any file you download.}}<br />
<br />
Some good examples of rc.lua would be as follows:<br />
<br />
* http://git.sysphere.org/awesome-configs/tree/ - Awesome 3.4 configurations from Adrian C. (anrxc)<br />
* http://pastebin.com/f6e4b064e - Darthlukan's awesome 3.4 configuration. <br />
* http://www.calmar.ws/dotfiles/dotfiledir/dot_awesomerc.lua<br />
* http://www.ugolnik.info/downloads/awesome/rc.lua (screen) - Awesome 3 with small titlebar and statusbar.<br />
* http://github.com/nblock/config/blob/master/.config/awesome/rc.lua<br />
* User Configuration Files http://awesome.naquadah.org/wiki/User_Configuration_Files<br />
<br />
===Debug rc.lua using Xephyr===<br />
<br />
This is my prefered way to debug rc.lua, without breaking my current desktop. I first copy my rc.lua into a new file, rc.lua.new, and modify it as needed. Then, I run new instance of awesome in Xephyr (allows you to run X nested in another X's client window, supplying rc.lua.new as a config file like this:<br />
<br />
$ Xephyr -ac -br -noreset -screen 1152x720 :1 &<br />
$ DISPLAY=:1.0 awesome -c ~/.config/awesome/rc.lua.new<br />
<br />
Big advantage of this approach is that if I break rc.lua.new, I do not break my current awesome desktop (and possibly crash all my X apps, lose all unsaved things and so on...). Once I'm happy with my new settings, I move rc.lua.new to rc.lua and restart awesome. And I can be sure it will work and restarting with new config won't mess up things.<br />
<br />
==Themes==<br />
<br />
[http://awesome.naquadah.org/wiki/Beautiful Beautiful] is a lua library that allows you to theme awesome using an external file, it becomes very easy to dynamically change your whole awesome colours and wallpaper without changing your rc.lua. <br />
<br />
The default theme is at /usr/share/awesome/themes/default. Copy it to ~/.config/awesome/themes/default and change theme_path in rc.lua. <br />
<br />
More details [http://awesome.naquadah.org/wiki/Beautiful here]<br />
<br />
A few sample [http://awesome.naquadah.org/wiki/Beautiful_themes themes]<br />
<br />
===Setting up your wallpaper===<br />
<br />
Beautiful can handle your wallpaper, thus you do not need to set it up in your .xinitrc or .xsession files. This allows you to have a specific wallpaper for each theme. If you take a look at the default theme file you'll see a wallpaper_cmd key, the given command is executed when beautiful.init("path_to_theme_file") is run. You can put here you own command or remove/comment the key if you do not want Beautiful to interfere with your wallpaper business.<br />
<br />
For instance, if you use awsetbg to set your wallpaper, you can write:<br />
<br />
wallpaper_cmd = { "awsetbg -f .config/awesome/themes/awesome-wallpaper.png" }<br />
<br />
{{Note|For awsetbg to work you need to have a program that can manage desktop backgrounds installed. For example '''[[Feh]]'''.}}<br />
<br />
====Random Background Image====<br />
To rotate the wallpapers randomly, just comment the wallpaper_cmd line above, and add a script into your .xinitrc with the codes below:<br />
<pre><br />
while true;<br />
do<br />
awsetbg -r <path/to/the/directory/of/your/wallpapers><br />
sleep 15m<br />
done &<br />
</pre><br />
<br />
==Tips & Tricks==<br />
Feel free to add any tips or tricks that you would like to pass on to other awesome users.<br />
<br />
===Use awesome as GNOME's window manager===<br />
GNOME has the advantage of being very "ready to use" and integrating. You can set up GNOME to use awesome as the visual interface, but have GNOME work in the background for your pleasure. If you are using GNOME 3, you can simply install the [https://aur.archlinux.org/packages.php?ID=53096 awesome-gnome] package, then when logging in with GDM, choose the session type "Awesome GNOME". See the [https://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome awesome wiki] for details.<br />
<br />
===Expose effect like compiz===<br />
<br />
Revelation brings up a view of all your open clients; left-clicking a client pops to the first tag that client is visible on and raises/focuses the client. In addition, the Enter key pops to the currently focused client, and Escape aborts. <br />
<br />
http://awesome.naquadah.org/wiki/Revelation<br />
<br />
===Hide / show wibox in awesome 3===<br />
<br />
To map Modkey-b to hide/show default statusbar on active screen (as default in awesome 2.3), add to your ''globalkeys'' in rc.lua:<br />
<br />
awful.key({ modkey }, "b", function ()<br />
mywibox[mouse.screen].visible = not mywibox[mouse.screen].visible<br />
end),<br />
<br />
===Enable printscreens===<br />
<br />
To enable printscreens in awesome through the PrtScr button you need to have a screen capturing program.<br />
Scrot is a easy to use utility for this purpose and is available in Arch repositories.<br />
<br />
Just type:<br />
# pacman -S scrot<br />
<br />
and install optional dependencies if you feel that you need them.<br />
<br />
Next of we need to get the key name for PrtScr, most often this is named "Print" but one can never be too sure.<br />
<br />
Start up:<br />
# xev<br />
<br />
And press the PrtScr button, the output should be something like:<br />
KeyPress event ....<br />
root 0x25c, subw 0x0, ...<br />
state 0x0, keycode 107 (keysym 0xff61, '''Print'''), same_screen YES,<br />
....<br />
<br />
In my case as you see, the keyname is Print.<br />
<br />
Now to the configuration of awesome!<br />
<br />
Somewhere in your globalkeys array (doesn't matter where) type:<br />
<br />
Lua code:<br />
<br />
awful.key({ }, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/screenshots/ 2>/dev/null'") end),<br />
<br />
A good place to put this is bellow the keyhook for spawning a terminal.<br />
To find this line search for: awful.util.spawn(terminal) in your favourite text editor.<br />
<br />
Also, this function saves screenshots inside ~/screenshots/, edit this to fit your needs.<br />
<br />
===Dynamic tagging===<br />
<br />
[http://awesome.naquadah.org/wiki/Eminent Eminent] is a small lua library that monkey-patches awful to provide you with effortless and quick wmii-style dynamic tagging. Unlike shifty, eminent does not aim to provide a comprehensive tagging system, but tries to make dynamic tagging as simple as possible. In fact, besides importing the eminent library, you do not have to change your rc.lua at all, eminent does all the work for you.<br />
<br />
[http://awesome.naquadah.org/wiki/Shifty Shifty] is an Awesome 3 extension that implements dynamic tagging. It also implements fine client matching configuration allowing YOU to be the master of YOUR desktop only by setting two simple config variables and some keybindings!<br />
<br />
===Space Invaders===<br />
[http://awesome.naquadah.org/wiki/Space_Invaders Space Invaders] is a demo to show the possibilities of the Awesome Lua API.<br />
<br />
Please note that it is no longer included in the Awesome package since the 3.4-rc1 release.<br />
<br />
===Naughty for popup notification===<br />
See [https://awesome.naquadah.org/wiki/Naughty the awesome wiki page on naughty].<br />
<br />
===Popup Menus===<br />
There's a simple menu by default in awesome3, and customed menus seem very easy now. However, if you're using 2.x awesome, have a look at ''[http://awesome.naquadah.org/wiki/Awful.menu awful.menu]''.<br />
<br />
An example for awesome3:<br />
<pre><br />
myawesomemenu = {<br />
{ "lock", "xscreensaver-command -activate" },<br />
{ "manual", terminal .. " -e man awesome" },<br />
{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },<br />
{ "restart", awesome.restart },<br />
{ "quit", awesome.quit }<br />
}<br />
<br />
mycommons = {<br />
{ "pidgin", "pidgin" },<br />
{ "OpenOffice", "soffice-dev" },<br />
{ "Graphic", "gimp" }<br />
}<br />
<br />
mymainmenu = awful.menu.new({ items = { <br />
{ "terminal", terminal },<br />
{ "icecat", "icecat" },<br />
{ "Editor", "gvim" },<br />
{ "File Manager", "pcmanfm" },<br />
{ "VirtualBox", "VirtualBox" },<br />
{ "Common App", mycommons, beautiful.awesome_icon },<br />
{ "awesome", myawesomemenu, beautiful.awesome_icon }<br />
}<br />
})<br />
</pre><br />
<br />
===More Widgets in awesome===<br />
''Widgets in awesome are objects that you can add to any widget-box (statusbars and titlebars), they can provide various information about your system, and are useful for having access to this information, right from your window manager. Widgets are simple to use and offer a great deal of flexibility.'' -- Source [http://awesome.naquadah.org/wiki/Widgets_in_awesome Awesome Wiki: Widgets].<br />
<br />
There's a widely used widget library called '''Wicked''' (compatible with awesome versions '''prior to 3.4'''), that provides more widgets, like MPD widget, CPU usage, memory usage, etc. For more details see the [http://awesome.naquadah.org/wiki/Wicked Wicked page].<br />
<br />
As a replacement for Wicked in awesome v3.4 check '''[http://awesome.naquadah.org/wiki/Vicious Vicious]''', '''[http://awesome.naquadah.org/wiki/Obvious Obvious]''' and '''[http://awesome.naquadah.org/wiki/Bashets Bashets]'''. If you pick vicious, you should also take a good look at [http://git.sysphere.org/vicious/tree/README vicious documentation].<br />
<br />
===Transparency===<br />
Awesome has support for true transparency through xcompmgr. Note that you'll probably want the git version of xcompmgr, which is [http://aur.archlinux.org/packages.php?ID=16554 available in AUR]. <br />
<br />
Add this to your ~/.xinitrc:<br />
xcompmgr &<br />
See ''man xcompmgr'' or [[xcompmgr]] for more options.<br />
<br />
In awesome 3.4, window transparency can be set dynamically using signals. For example, your rc.lua could contain the following:<br />
<br />
client.add_signal("focus", function(c)<br />
c.border_color = beautiful.border_focus<br />
c.opacity = 1<br />
end)<br />
client.add_signal("unfocus", function(c)<br />
c.border_color = beautiful.border_normal<br />
c.opacity = 0.7<br />
end)<br />
'''If you got error messages about add_signal, using connect_signal insteaded.''' <br />
<br />
Note that if you are using conky, you must set it to create its own window instead of using the desktop. To do so, edit ~/.conkyrc to contain:<br />
<br />
own_window yes<br />
own_window_transparent yes<br />
own_window_type desktop<br />
<br />
Otherwise strange behavior may be observed, such as all windows becoming fully transparent. Note also that since conky will be creating a transparent window on your desktop, any actions defined in awesome's rc.lua for the desktop will not work where conky is.<br />
<br />
As of Awesome 3.1, there is built-in pseudo-transparency for wiboxes. To enable it, append 2 hexadecimal digits to the colors in your theme file (~/.config/awesome/themes/default, which is usually a copy of /usr/share/awesome/themes/default), like shown here:<br />
<br />
bg_normal = #000000AA<br />
<br />
where "AA" is the transparency value.<br />
<br />
==== ImageMagick ====<br />
You may have problems if you set your wallpaper with imagemagick's ''display'' command, it doesn't work well with xcompmgr. Please note that awsetbg may be using ''display'' if it doesn't have any other options. Installing habak, feh, hsetroot or whatever should fix the problem (''grep -A 1 wpsetters /usr/bin/awsetbg'' to see your options).<br />
<br />
===Autorun programs===<br />
''See also [https://awesome.naquadah.org/wiki/Autostart the Autostart page on the Awesome wiki].''<br />
<br />
awesome doesn't run programs set to autostart by the Freedesktop specification like GNOME or KDE. However, awesome does provide a few functions for starting programs (in addition to the Lua standard library function {{Codeline|os.execute}}). To run the same programs on startup as GNOME or KDE, you can install [http://aur.archlinux.org/packages.php?ID=41099 dex] from the [[AUR]] and then run that in your rc.lua:<br />
<br />
os.execute"dex -a"<br />
<br />
If you just want to set up a list of apps for awesome to launch at startup, you can create a table of all the commands you want to spawn and loop through it:<br />
<br />
do<br />
local cmds = <br />
{ <br />
"swiftfox",<br />
"mutt",<br />
"consonance",<br />
"linux-fetion",<br />
"weechat-curses",<br />
--and so on...<br />
}<br />
<br />
for _,i in pairs(cmds) do<br />
awful.util.spawn(i)<br />
end<br />
end<br />
<br />
(You could also run calls to {{codeline|os.execute}} with commands ending in '{{codeline|&}}', but it's probably a better idea to stick to the proper spawn function.)<br />
<br />
To run a program only if it is not currently running, you can spawn it with a shell command that runs the program only if {{Codeline|pgrep}} doesn't find a running process with the same name:<br />
function run_once(prg)<br />
awful.util.spawn_with_shell("pgrep -u $USER -x " .. prg .. " || (" .. prg .. ")")<br />
end<br />
<br />
So, for example, to run {{Codeline|parcellite}} only if there is not a {{Codeline|parcellite}} process already running:<br />
<br />
run_once("parcellite")<br />
<br />
===Passing content to widgets with awesome-client===<br />
<br />
You can easily send text to an awesome widget. Just create a new widget:<br />
<pre><br />
mywidget = widget({ type = "textbox", name = "mywidget" })<br />
mywidget.text = "initial text"<br />
</pre><br />
To update the text from an external source, use awesome-client:<br />
<pre> <br />
echo -e 'mywidget.text = "new text"' | awesome-client<br />
</pre><br />
Don't forget to add the widget to your wibox.<br />
<br />
===Using a different panel with awesome===<br />
<br />
If you like awesome's lightweightness and functionality but do not like the way its default panel looks, you can install a different panel. Just install xfce4-panel by issuing:<br />
<pre><br />
sudo pacman -S xfce4-panel<br />
</pre><br />
Of course any other panel will do as well. <br />
Then add it to autorun section of your rc.lua (how to do that is written elsewhere on this wiki). You can also comment out the section which creates wiboxes for each screen (starting from "mywibox[s] = awful.wibox({ position = "top", screen = s })" ) but it isn't necessary. Any way do not forget to check your rc.lua for errors by typing <br />
<pre><br />
awesome -k rc.lua<br />
</pre><br />
Also you should change your "modkey+R" keybinding, in order to start some other application launcher instead of built in awesome. Xfrun4, bashrun, etc. Check the Application launchers section of [[Openbox_Themes_and_Apps#Application_launchers|Openbox]] article for examples. Don't forget to add<br />
<pre><br />
properties = { floating = true } },<br />
{ rule = { instance = "$yourapplicationlauncher" },<br />
</pre><br />
to your rc.lua.<br />
<br />
===Fix Java (GUI appears gray only)===<br />
Guide taken from [https://bbs.archlinux.org/viewtopic.php?pid=450870].<br />
#Install {{Package Official|wmname}} from community<br />
#Run the following command or add it to your {{Filename|.xinitrc}}: {{Cli|wmname LG3D}}<br />
<br />
===Prevent Nautilus from displaying the desktop (Gnome3)===<br />
Run dconf-editor. Navigate to org->background and uncheck "draw-background" as well as "show-desktop-icons" for good measure. That's it!<br />
<br />
Another option is moving /usr/bin/nautilus to a new location and replacing it with a script that runs 'nautilus --no-desktop' passing any arguments it receives along.<br />
<br />
#!/bin/sh<br />
/usr/bin/nautilus-real --no-desktop $@<br />
<br />
===Transitioning away from Gnome3===<br />
Run 'gnome-session-properties' and remove programs that you won't be needing anymore (e.g Bluetooth Manager, Login Sounds, etc).<br />
<br />
If you'd like to get rid of GDM, make sure that your rc.conf DAEMONS list includes "dbus" (and "cupsd" if you have a printer). It's advisable to get a different login manager (like [https://wiki.archlinux.org/index.php/SLiM SLiM]), but you can do things manually if you wish. That entails setting up your [https://wiki.archlinux.org/index.php/Udev .xinitrc properly] and installing something like devmon ([http://aur.archlinux.org/packages.php?ID=45842 AUR]).<br />
<br />
If you wan't to keep a few convenient systray applets and your GTK theme, append this to your rc.lua;<br />
function start_daemon(dae)<br />
daeCheck = os.execute("ps -eF | grep -v grep | grep -w " .. dae)<br />
if (daeCheck ~= 0) then<br />
os.execute(dae .. " &")<br />
end<br />
end<br />
<br />
procs = {"gnome-settings-daemon", "nm-applet", "kupfer", "gnome-sound-applet", "gnome-power-manager"}<br />
for k = 1, #procs do<br />
start_daemon(procs[k])<br />
end<br />
<br />
===Prevent the mouse scroll wheel from changing tags===<br />
In your rc.lua, change the Mouse Bindings section to the following;<br />
-- {{{ Mouse bindings<br />
root.buttons(awful.util.table.join(<br />
awful.button({ }, 3, function () mymainmenu:toggle() end)))<br />
-- }}}<br />
<br />
==Troubleshooting==<br />
<br />
===Mod4 key===<br />
<br />
The Mod4 is by default the '''Win key'''. If it's not mapped by default, for some reason, you can check the keycode of your Mod4 key with<br />
<br />
$ xev<br />
<br />
It should be 115 for the left one. Then add this to your ~/.xinitrc<br />
<br />
xmodmap -e "keycode 115 = Super_L" -e "add mod4 = Super_L"<br />
exec awesome<br />
<br />
The problem in this case is that some xorg installations recognize keycode 115, but incorrectly as the 'Select' key. The above command explictly remaps keycode 115 to the correct 'Super_L' key.<br />
<br />
====Mod4 key vs. IBM ThinkPad users====<br />
<br />
IBM ThinkPads do not come equipped with a Window key (although Lenovo have changed this tradition on their ThinkPads). As of writing, the Alt key is not used in command combinations by the default rc.lua (refer to the Awesome wiki for a table of commands), which allows it be used as a replacement for the Super/Mod4/Win key. To do this, edit your rc.lua and replace:<br />
<br />
modkey = "Mod4"<br />
<br />
by:<br />
<br />
modkey = "Mod1"<br />
<br />
Note: Awesome does a have a few commands that make use of Mod4 plus a single letter. Changing Mod4 to Mod1/Alt could cause overlaps for some key combinations. The small amount of instances where this happens can be changed in the rc.lua file.<br />
<br />
If you do not like to change the awesome standards, you might like to remap a key. For instance the caps lock key is rather useless (for me) adding the following contents to ~/.Xmodmap <br />
<br />
clear lock <br />
add mod4 = Caps_Lock<br />
<br />
and [[Extra Keyboard Keys in Xorg#Step 2: Testing|(re)load]] the file.<br />
This will change the caps lock key into the mod4 key and works nicely with the standard awesome settings. In addition, if needed, it provides the mod4 key to other X-programs as well.<br />
<br />
Not confirmed, but if recent updates of xorg related packages break mentioned remapping the second line can be replaced by (tested on a DasKeyboard with no left Super key):<br />
<br />
keysym Caps_Lock = Super_L Caps_Lock<br />
<br />
===Brasero===<br />
If Brasero doesn't detect your blank disks when started in Awesome, but works just fine when started in Gnome, try using<br />
$ dbus-launch brasero<br />
<br />
==External Links==<br />
* http://awesome.naquadah.org/wiki/FAQ - FAQ<br />
* http://www.lua.org/pil/ - Programming in Lua (first edition)<br />
* http://awesome.naquadah.org/ - The official awesome website<br />
* http://awesome.naquadah.org/wiki/Main_Page - the awesome wiki<br />
* http://www.penguinsightings.org/desktop/awesome/ - A review<br />
* http://compsoc.tardis.ed.ac.uk/wiki/AwesomeWM_guide - Awesome guide<br />
* https://bbs.archlinux.org/viewtopic.php?id=88926 - share your awesome!</div>Thetictacaddicthttps://wiki.archlinux.org/index.php?title=Thunderbird_Export_URLs&diff=21653Thunderbird Export URLs2007-03-06T02:08:33Z<p>Thetictacaddict: one can use the file user.js instead of prefs.js</p>
<hr />
<div>[[Category:Internet and Email (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
There's an easy way to get Thunderbird sort of working with Firefox right out of the box with Arch.<br />
<br />
Don't forget to type the following as root to install the 2 programs via pacman<br />
<pre><br />
pacman -Sy mozilla-firefox<br />
pacman -Sy mozilla-thunderbird<br />
</pre><br />
<br />
Then go to your hidden thunderbird directory in your home directory.<br />
<pre><br />
cd /home/YOURUSERNAME/.thunderbird<br />
</pre><br />
<br />
Or use a graphical filebrowser like Konqueror or Nautilus. Make sure to enable 'view hidden files and folders.'<br />
<br />
You'll see a folder that looks something like this<br />
<pre><br />
ocj1fmh9.default<br />
</pre><br />
<br />
Go into that folder and find the file named prefs.js and open it with your text editor of choice.<br />
<br />
====IMPORTANT - Make absolute sure that Thunderbird is CLOSED. Otherwise this change to the text file will have no effect.====<br />
<br />
Add to the bottom of the prefs.js file the following lines and save the file (alternatively, you can add the lines to a new file called user.js).<br />
<br />
<pre><br />
user_pref("network.protocol-handler.app.http", "/opt/mozilla/bin/firefox");<br />
user_pref("network.protocol-handler.app.https", "/opt/mozilla/bin/firefox");<br />
</pre><br />
<br />
Then restart thunderbird. URL's clicked in Thunderbird should now open in Firefox. Unfortunately they do not recieve focus. You still have to click on Firefox after clicking the URL. If anyone knows a fix to this PLEASE edit this.<br />
<br />
<br />
You can change whether links are opened in new tabs or in new windows by opening up /usr/bin/mozilla-firefox in a text editor.<br />
<br />
There are two lines near the top that say:<br />
<pre><br />
OPEN_IN=new-window<br />
#OPEN_IN=new-tab<br />
</pre><br />
<br />
This setup will open URL's in a new window. Simply comment the first line and uncomment the second line to open URL's in a new tab!<br />
<br />
I hope this was helpful! Please refine this as needed!<br />
<br />
Another way to do that is to select the right radiobutton in ''Edit/Preferences/Advanced/Tabbed Browsing'' in your Firefox browser menu.<br />
Belive or not but it works on my PC :)</div>Thetictacaddicthttps://wiki.archlinux.org/index.php?title=AUR_User_Guidelines&diff=21650AUR User Guidelines2007-03-05T21:03:07Z<p>Thetictacaddict: /* Voting */</p>
<hr />
<div>[[Category:Package management (English)]]<br />
[[Category:About Arch (English)]]<br />
[[Category:Package development (English)]]<br />
[[Category:Guidelines (English)]]<br />
{{Article summary start}}<br />
{{Article summary text|Explains how to access and use the Arch User Repository}}<br />
{{Article summary heading|Available in languages}}<br />
{{i18n_entry|Česky|:AUR_User_Guidelines_(Česky)}}<br />
{{i18n_entry|English|:AUR_User_Guidelines}}<br />
{{i18n_entry|Русский|:AUR_руководство_пользователя}}<br />
{{i18n_entry|简体中文|:AUR用户指南}}<br />
{{Article summary heading|Related articles}}<br />
{{Article summary wiki|AUR_Trusted_User_Guidelines}}<br />
{{Article summary wiki|AUR}}<br />
{{Article summary wiki|AUR Q & A}}<br />
{{Article summary wiki|Aurbuild}}<br />
{{Article summary end}}<br />
<br />
==Purpose==<br />
<br />
The [[ArchLinux User-community Repository (AUR)]] is a community driven repository for Arch users. This document shows the normal user how to access AUR and work with it. <br />
<br />
==The User and the AUR==<br />
<br />
The normal user plays an essential role in the AUR and without the support, involvement and contribution of the wider user community the AUR cannot fulfill its potential. The lifecycle of an AUR package starts and ends with the user and requires the user to contribute in several ways.<br />
<br />
===Sharing PKGBUILDs in UNSUPPORTED===<br />
Users can '''share PKGBUILDs''' using the UNSUPPORTED area in the AUR. UNSUPPORTED does not contain any binary packages but allows users to upload PKGBUILDs that can be downloaded by others. A comments facility is provided that allows users to '''feedback improvements''' and suggestions to the PKGBUILD contributor. A new flagging system has been introduced that allows TUs to mark pkgs as checked for malicious code. However, these PKGBUILDs are completely unofficial and have not been thoroughly vetted, so they should be used at your own risk.<br />
<br />
There is as yet no official mechanism for downloading build material from UNSUPPORTED but a few scripts can be found on the wiki.<br />
<br />
===[community]===<br />
The [community] repo is a supplement to the [extra] and [current] repositories where the most popular packages from UNSUPPORTED are maintained by the Trusted Users group on behalf of the users. [community], unlike UNSUPPORTED, contains binary packages that can be installed directly with pacman and the build files can also be accessed with [[ABS]]. Some of these packages may eventually make the transition to the [current] or [extra] repositories as the developers consider them crucial to the distribution.<br />
<br />
Users can access the AUR [community] repo by adding/uncommenting this line in their pacman.conf file:<br />
Include = /etc/pacman.d/community<br />
If <code>/etc/pacman.d/community</code> does not exist then it should be created and contain the following:<br />
<pre>[community]<br />
Server = ftp://ftp.archlinux.org/community/os/i686/</pre><br />
<br />
Users can also access the [community] build files by editing <code>/etc/abs/abs.conf</code> as follows:<br />
<pre>SUPFILES=(arch extra !unstable community)</pre><br />
<br />
===Voting===<br />
One of the easiest activities for '''all''' Arch users is to browse the AUR and '''vote''' for their favorite packages using the online interface. All packages are eligible for adoption by a TU for inclusion in [community], and the vote count is one of the considerations in that process - so it is in everyone's interest to vote!<br />
<br />
==How to use the AUR==<br />
<br />
===Using Packages from UNSUPPORTED===<br />
To install a pkg from UNSUPPORTED you should follow these steps:<br />
* locate the application in the AUR using the [http://aur.archlinux.org/packages.php search feature] (we'll use foo as an example pkg name here) and click the package name in the list of results. This will bring up the information page for that pkg. On the left side you can see two links side by side:<br />
<pre> Tarball :: Files </pre><br />
* Click <code>Tarball</code> to download the necessary build files to your hard drive. This should be called <code>foo.tar.gz</code>, for example, if it has been properly submitted.<br />
* Copy the <code>foo.tar.gz</code> tarball to a build directory e.g. <code>/var/abs/local</code> or <code>~/builds</code>, and extract it. This should create a new directory, <code>/var/abs/local/foo</code> or <code>~/builds/foo</code> that contains all the files necessary to build the pkg.<br />
* '''IMPORTANT''': cd to the newly created directory and carefully check the PKGBUILD and any .install file for malicious commands - if in any doubt DO NOT build the pkg and seek advice on the forums or mailing list.<br />
* It is suggested you use <code>fakeroot</code> to build pkgs (see below), so having manually confirmed the integrity of the files simply run <code>makepkg</code> as a normal user in the build dir. The source files will be downloaded, verified and built as normal.<br />
* makepkg should create an tarball named foo.pkg.tar.gz that can be installed with pacman. e.g.<br />
<code>pacman -U foo.pkg.tar.gz</code><br />
<br />
'''Please note''': the above is a brief summary of the package building process. A visit to the [[ABS]] page will provide full details, and is highly recommended, particularly for first-time packagers.<br />
<br />
===Using <code>fakeroot</code>===<br />
<code>fakeroot</code> simply allows a normal user the necessary root permissions to create pkgs in the build environment without being able to alter the wider system. If the build process attempts to alter files outside of the build environment then errors are produced and the build fails - this is very useful for checking the quality/safety/integrity of PKGBUILDs for distribution. By default <code>export USE_FAKEROOT="y"</code> is included in <code>/etc/makepkg.conf</code>, so unless you have switched it off it is already enabled.<br />
<br />
===Submitting Packages to UNSUPPORTED===<br />
After logging in to the AUR web interface, a user can [http://aur.archlinux.org/pkgsubmit.php submit] a tarball (tar.gz) of a directory containing build files for a package. The directory inside the tarball should contain a PKGBUILD, any .install files, patches, etc (ABSOLUTELY no binaries). Examples of what such a directory should look like can be seen inside /var/abs. <br />
<br />
When submitting a package, observe the following rules: <br />
* Check [extra], [current], [unstable], UNSUPPORTED, and [community] for the package. If it is inside any of those repositories in ANY form, DO NOT submit the package (if the current package is broken or is lacking an included feature then please file a bug report in [http://bugs.archlinux.org/ FlySpray]).<br />
* Verify carefully that what you are uploading is correct. All contributors must read and adhere to the [[Arch Packaging Standards]] when writing PKGBUILDs. This is essential to the smooth running and general success of the AUR. Remember you are not going to earn any credit or respect from your peers by wasting their time with a bad PKGBUILD.<br />
* Packages that contain binaries or that are very poorly written may be deleted without warning.<br />
* If you are unsure about the package (or the build/submission process) in any way, submit the PKGBUILD to the AUR Mailing List or the AUR boards on the forum for public review before adding it to the AUR.<br />
* Make sure the package is useful. Will anyone else want to use this package? Is it extremely specialized? If more than a few people would find this package useful, it is appropriate for submission.<br />
* Gain some experience before submitting packages. Build a few packages to learn the process and then submit.<br />
<br />
===Maintaining Packages in UNSUPPORTED===<br />
* Check for feedback and comments from other users and try to incorporate any improvements they suggest; consider it a learning process!<br />
* Please DO NOT just submit and forget about packages! While in UNSUPPORTED, it is the user's job to maintain the package by checking for updates and improving the PKGBUILD.<br />
* If you do not want to continue to maintain the package for some reason, <code>disown</code> the pkg using the AUR web interface and/or post a message to the AUR Mailing List.<br />
<br />
==AUR-DMS (downloading and management scripts)==<br />
<br />
=== List of AUR-DMS ===<br />
#aur-sync (Perl) - for downloading all AUR tarballs<br />
#aur-install (bash)<br />
#aurup (bash) - for uploading packages to AUR<br />
#aurscripts (bash):<br />
##aurcreate - create clean packages prepared for upload to AUR <br />
##aurdownload - download and extract packages from AUR <br />
##aurupdate - update package versions (if specified) and md5sums<br />
#autoaur (bash, depends on aurscripts, will automatically update all of your packages installed from AUR) <br />
#yaourt (bash, a wrapper for srcpac with aur support and more)<br />
#[[aurbuild]] (Python, most voted)<br />
#[[aurbuild | qpkg]] (Python, works with non-AUR-apps too, second voted, but most advanced?) <br />
<br />
<br />
All of these scripts can be found in UNSUPPORTED.</div>Thetictacaddict