You are not logged in.
PS: edit your post and put a thumb with an url to the full image before the mods see your post.
Too late...
Offline
Max__ - cairo-compmgr doesn't consum too much cpu? i prefer to use fake transparency for urxvt.
PS: edit your post and put a thumb with an url to the full image before the mods see your post.
Erm sorry about that, I thought there was something about that. I'll do that next time
Also not really, usually I have 1-2% cpu usage and it only takes up about 15mb of ram. Well I could do that although doesn't fake transparency not show windows below and only the desktop wall paper? Either way I'm happy with the real transparency.
Offline
This is my Awesome desktop.
-- mod edit: read the rules and only post thumbnails https://bbs.archlinux.org/viewtopic.php?id=61754 --
When I started using awesome wm, I had found that it just awesome to my needs. But it's panel was to geeky for me, I was looking for something extremely feature rich and ligthweigth as awesome, and nice looked like floating wm's. the solution is in combining xfpanel (may be gnome panel is suitable too, but I didn't try it) and Awesome wm. I've keeped all awesome features, and added to them some eyecandy from xfce. And it continue to be lightweight.
Gtk theme is nimbus from Opensolaris.
Last edited by maroldorn (2010-10-07 20:00:37)
Offline
Offline
you should remove that gap from the bottom.
Arch64/DWM || My Dropbox referral link
Offline
Thanks all for your screnshots, it gave me inspiration to review my rc.lua
Could you please share that rc.lua? I'd like to have that bar you have at the bottom of the screen as well, but I have problems with finding out how to do that (I'm a real awesome-noob!)
Offline
you should remove that gap from the bottom.
If you know how I can do this, I'd be thankfull
Here is my rc.lua
It uses Vicious librairies and several widget found on the awesome wiki
-- Standard awesome library
require("awful")
require("awful.autofocus")
require("awful.rules")
-- Theme handling library
require("beautiful")
-- Notification library
require("naughty")
require("vicious")
-- Functions
-- Amixer Widget
cardid = 0
channel = "Master"
function volume (mode, widget)
if mode == "update" then
local fd = io.popen("amixer -c " .. cardid .. " -- sget " .. channel)
local status = fd:read("*all")
fd:close()
local volume = string.match(status, "(%d?%d?%d)%%")
volume = string.format("% 3d", volume)
status = string.match(status, "%[(o[^%]]*)%]")
if string.find(status, "on", 1, true) then
volume = volume .. "%"
else
volume = volume .. "M"
end
widget.text = " vol" .. volume
elseif mode == "up" then
io.popen("amixer -q -c " .. cardid .. " sset " .. channel .. " 5%+"):read("*all")
volume("update", widget)
elseif mode == "down" then
io.popen("amixer -q -c " .. cardid .. " sset " .. channel .. " 5%-"):read("*all")
volume("update", widget)
else
io.popen("amixer -c " .. cardid .. " sset " .. channel .. " toggle"):read("*all")
volume("update", widget)
end
end
-- moc player
function hook_moc()
moc_info = io.popen("mocp -i"):read("*all")
moc_state = string.gsub(string.match(moc_info, "State: %a*"),"State: ","")
if moc_state == "PLAY" or moc_state == "PAUSE" then
moc_artist = string.gsub(string.match(moc_info, "Artist: %C*"), "Artist: ","")
moc_title = string.gsub(string.match(moc_info, "SongTitle: %C*"), "SongTitle: ","")
moc_curtime = string.gsub(string.match(moc_info, "CurrentTime: %d*:%d*"), "CurrentTime: ","")
moc_totaltime = string.gsub(string.match(moc_info, "TotalTime: %d*:%d*"), "TotalTime: ","")
if moc_artist == "" then
moc_artist = "unknown artist"
end
if moc_title == "" then
moc_title = "unknown title"
end
moc_string = "MOC: " .. moc_artist .. " - " .. moc_title .. "(" .. moc_curtime .. "/" .. moc_totaltime .. ")"
if moc_state == "PAUSE" then
moc_string = " [[ " .. moc_string .. " ]]"
end
else
moc_string = "-- MOC not playing --"
end
tb_moc.text = moc_string
end
function pause_moc()
moc_info = io.popen("mocp -i"):read("*all")
moc_state = string.gsub(string.match(moc_info, "State: %a*"),"State: ","")
if moc_state == "PLAY" then
io.popen("mocp -P")
elseif moc_state == "PAUSE" then
io.popen("mocp -U")
end
end
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/home/garrik/.config/awesome/theme/floating.lua")
-- This is used later as the default terminal and editor to run.
terminal = "urxvt -g 80x28"
editor = os.getenv("EDITOR") or "vim"
editor_cmd = terminal .. " -e " .. editor
-- Default modkey.
-- Usually, Mod4 is the key with a logo between Control and Alt.
-- If you do not like this or do not have such a key,
-- I suggest you to remap Mod4 to another key using xmodmap or other tools.
-- However, you can use another modifier like Mod1, but it may interact with others.
modkey = "Mod4"
-- Table of layouts to cover with awful.layout.inc, order matters.
layouts =
{
awful.layout.suit.floating,
awful.layout.suit.tile,
awful.layout.suit.tile.left,
awful.layout.suit.tile.bottom,
awful.layout.suit.tile.top,
awful.layout.suit.fair,
awful.layout.suit.fair.horizontal,
awful.layout.suit.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.max
}
-- }}}
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag({ "1 main", "2 mail", "3 www", "4 chat", "5 xfe", "6 off", "7 adm", "8 dev", "9 misc" }, s, layouts[1])
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "manual", terminal .. " -e man awesome" },
{ "edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua" },
{ "restart", awesome.restart },
{ "quit", awesome.quit }
}
mymainmenu = awful.menu({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- }}}
-- {{{ Wibox
-- Create a textclock widget
mytextclock = awful.widget.textclock({ align = "right" })
-- Create a systray
mysystray = widget({ type = "systray" })
-- Create a wibox for each screen and add it
mywibox = {}
mywibox2 = {}
mypromptbox = {}
mylayoutbox = {}
mytaglist = {}
mytaglist.buttons = awful.util.table.join(
awful.button({ }, 1, awful.tag.viewonly),
awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3, awful.tag.viewtoggle),
awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
)
mytasklist = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
client.focus = c
c:raise()
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({ width=250 })
end
end),
awful.button({ }, 4, function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
awful.button({ }, 5, function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end))
for s = 1, screen.count() do
-- Create a promptbox for each screen
mypromptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = awful.widget.layoutbox(s)
mylayoutbox[s]:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),
awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),
awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(function(c)
return awful.widget.tasklist.label.currenttags(c, s)
end, mytasklist.buttons)
-- amixer widget
tb_volume = widget({ type = "textbox", name = "tb_volume", align = "right" })
tb_volume:buttons(awful.util.table.join(
awful.button({ }, 4, function () volume("up", tb_volume) end),
awful.button({ }, 5, function () volume("down", tb_volume) end),
awful.button({ }, 1, function () volume("mute", tb_volume) end)))
volume("update", tb_volume)
-- moc widget
tb_moc = widget({ type = "textbox", name = "tb_moc", align = "right" })
tb_moc:buttons(awful.util.table.join(awful.button({ }, 1, function () pause_moc() end)))
-- cpu widget
cpuwidget = widget({ type = "textbox" })
-- Register widget
vicious.register(cpuwidget, vicious.widgets.cpu, "CPU0 $2% CPU1 $3% ", 3)
-- mem text
memtext = widget({ type = "textbox" })
-- Register widget
vicious.register(memtext, vicious.widgets.mem, " MEM : $1% ($2MB/$3MB)", 20)
-- fs text
fswidget = widget({type = "textbox" })
vicious.register(fswidget, vicious.widgets.fs, " FS: / : ${/ used_gb}/${/ size_gb} /donnees : ${/donnees used_gb}/${/donnees size_gb} ",30)
--blank widget
blankwg = widget({type = "textbox" })
blankwg.text = " "
-- Create the top wibox
mywibox[s] = awful.wibox({ position = "top", screen = s })
-- Add widgets to the wibox
mywibox[s].widgets = {
{
mylauncher,
mytaglist[s],
mypromptbox[s],
layout = awful.widget.layout.horizontal.leftright
},
mylayoutbox[s],
s == 1 and mysystray or nil,
mytasklist[s],
layout = awful.widget.layout.horizontal.rightleft
}
-- Create the bottom wibox
mywibox2[s] = awful.wibox({ position = "bottom", screen = s })
-- Add widgets to the wibox
mywibox2[s].widgets = {
{
tb_volume,
memtext,
fswidget,
layout = awful.widget.layout.horizontal.leftright
},
mytextclock,
blankwg,
tb_moc,
cpuwidget,
layout = awful.widget.layout.horizontal.rightleft
}
end
-- }}}
-- {{{ Mouse bindings
root.buttons(awful.util.table.join(
awful.button({ }, 3, function () mymainmenu:toggle() end),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev)
))
-- }}}
-- {{{ Key bindings
globalkeys = awful.util.table.join(
awful.key({ modkey, }, "Left", awful.tag.viewprev ),
awful.key({ modkey, }, "Right", awful.tag.viewnext ),
awful.key({ modkey, }, "Escape", awful.tag.history.restore),
awful.key({ modkey, }, "Tab",
function ()
awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
awful.key({ modkey, }, "w", function () mymainmenu:show({keygrabber=true}) end),
-- Layout manipulation
awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "j",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, "Control" }, "r", awesome.restart),
awful.key({ modkey, "Shift" }, "q", awesome.quit),
awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
awful.key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
awful.key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
awful.key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
awful.key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
awful.key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
awful.key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
-- Prompt
awful.key({ modkey }, "r", function () mypromptbox[mouse.screen]:run() end),
awful.key({ modkey }, "x",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen].widget,
awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval")
end),
awful.key({modkey}, "F1", function () awful.util.spawn("claws-mail") awful.util.spawn("liferea") awful.util.spawn("chromium") awful.util.spawn("kvirc") awful.util.spawn("xfe") end),
awful.key({modkey}, "F2", function () awful.util.spawn("claws-mail") end),
awful.key({modkey}, "F6", function () awful.util.spawn("emesene") end),
awful.key({modkey}, "F8", function () awful.util.spawn("liferea") end),
awful.key({modkey}, "F3", function () awful.util.spawn("chromium") end),
awful.key({modkey}, "F4", function () awful.util.spawn("kvirc") end),
awful.key({modkey}, "F5", function () awful.util.spawn("xfe") end),
awful.key({modkey}, "F7", function () awful.util.spawn("soffice") end)
)
clientkeys = awful.util.table.join(
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, }, "c", function (c) c:kill() end),
awful.key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
awful.key({ modkey, }, "o", awful.client.movetoscreen ),
awful.key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n", function (c) c.minimized = not c.minimized end),
awful.key({ modkey, }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical
end)
)
-- Compute the maximum number of digit we need, limited to 9
keynumber = 0
for s = 1, screen.count() do
keynumber = math.min(9, math.max(#tags[s], keynumber));
end
-- Bind all key numbers to tags.
-- Be careful: we use keycodes to make it works on any keyboard layout.
-- This should map on the top row of your keyboard, usually 1 to 9.
for i = 1, keynumber do
globalkeys = awful.util.table.join(globalkeys,
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end),
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewtoggle(tags[screen][i])
end
end),
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end),
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end))
end
clientbuttons = awful.util.table.join(
awful.button({ }, 1, function (c) client.focus = c; c:raise() end),
awful.button({ modkey }, 1, awful.mouse.client.move),
awful.button({ modkey }, 3, awful.mouse.client.resize))
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Rules
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = true,
keys = clientkeys,
buttons = clientbuttons } },
{ rule = { class = "MPlayer" },
properties = { floating = true } },
{ rule = { class = "pinentry" },
properties = { floating = true } },
{ rule = { class = "gimp" },
properties = { floating = true } },
{ rule = { class = "wesnoth" },
properties = { floating = true } },
{ rule = { class = "Pidgin" },
properties = { floating = true, tag=tags[1][2] } },
{ rule = { class = "Chromium" },
properties = { floating = true, tag=tags[1][3] } },
{ rule = { class = "Namoroka" },
properties = { floating = true } },
{ rule = { class = "Kvirc" },
properties = { tag=tags[1][4] } },
{ rule = { class = "Claws-mail" },
properties = { tag=tags[1][2] } },
{ rule = { class = "Xfe" },
properties = { tag=tags[1][5] } },
{ rule = { class = "Liferea" },
properties = { tag=tags[1][3] } },
}
-- }}}
-- {{{ Signals
-- Signal function to execute when a new client appears.
client.add_signal("manage", function (c, startup)
-- Add a titlebar
-- awful.titlebar.add(c, { modkey = modkey })
-- Enable sloppy focus
c:add_signal("mouse::enter", function(c)
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
and awful.client.focus.filter(c) then
client.focus = c
end
end)
if not startup then
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
-- Put windows in a smart way, only if they does not set an initial position.
if not c.size_hints.user_position and not c.size_hints.program_position then
awful.placement.no_overlap(c)
awful.placement.no_offscreen(c)
end
end
end)
client.add_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.add_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- Moc widget timer
mytimermoc = timer { timeout = 1 }
mytimermoc:add_signal("timeout", function() hook_moc() end)
mytimermoc:start()
-- }}}
it can be downloaded at ftp://garrik.info/code/awesome/rc.lua
Offline
add size_hints_honor = false to awful.rules.rules properties for all clients.
Arch64/DWM || My Dropbox referral link
Offline
Offline
add size_hints_honor = false to awful.rules.rules properties for all clients.
\o/
Thanks, works awesomely
Offline
Arch64/DWM || My Dropbox referral link
Offline
same awesome theme for a month or so, huh.
Can you share your muttrc, pretty please?
-- mixtr
Offline
you can find them here: http://pbrisbin.com/posts/two_accounts_in_mutt/
with a few changes:
#!/bin/bash
if [ -z "$(pgrep offlineimap)" ];then
offlineimap -o -u Noninteractive.Quiet &>/dev/null &
fi
i added
set trash = "+GMail/trash"
to gmail.muttrc ( you will need the trash folder patch, very useful).
and i also modified the muttrc file:
set date_format = "!%a, %b %d, %Y at %H:%M:%S %Z"
set index_format = "%3C [%Z] %-25.25L %s %> %D (%4c)"
set status_format = "-%r- %v ---[ Folder: %f, Msgs: %m%?n? New: %n?%?d? Del: %d?%?t? Tag: %t?%?l? (%l)? ]%?p?---- .: %p waiting to send :. ?--%>- (%P) ---"
Arch64/DWM || My Dropbox referral link
Offline
Awesome 3.4.8 and ATI catalyst-test on xorg 1.9 -- cairo-compmgr crashes shortly after launch, taking several open windows with it. Is there a list of modules that aren't functional with Awesome somewhere?
Offline
try to debug it yourself by starting X using startx 2>&1 | tee ~/startx.log.
Arch64/DWM || My Dropbox referral link
Offline
Process of elimination reveals it's the Opacity plugin that is causing my problems. I wish cairo-compmgr's mosaic could harvest all open windows instead of the ones that are currently viewable though!
Offline
2 Yes:
A bit of offtopic -- what's the media player you use?
Offline
Does anyone have a implementation of a real alt tab behavior that could share?
In the default rc.lua only comes one that allows to navigate throw the windows but in a round robin sequence.
awful.client.focus.history.previous only switches between two windows
Real alt+tab should be a mix of these two functions..
regards
Offline
A bit of offtopic -- what's the media player you use?
it's ncmpcpp
"First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack." ~ George Carrette
Offline
I used Awesome since 1.something, but I haven't used it in months since I got my new laptop. Just getting back into it -
Great taste of music...
...and a good looking setup
Offline
Heh thanks. Does anyone know why my volume bar widget insists on being on the left of my wibox? It doesn't matter where in the list of widgets I add it, it just always goes to the left. Is there a property in the widget itself I should be setting to make it stay to the right?
Offline
are you using nameofwidget.widget or just the name of the widget?
Arch64/DWM || My Dropbox referral link
Offline