You are not logged in.
Switched to wmii, really like it so far
Desided to go brownish to match the wall (thanks YtseJammin!)
could you share your configs please (xdefaults and wmiirc) ?
Offline
If anyone knows how to change the ubuntu logo in the top left to an arch logo, please let me know!
Are you running Arch or Ubuntu?
The fact that you've got the ubuntu wheel AND pacman running is a bit confusing.
Last edited by Varreon (2009-04-29 18:37:57)
Offline
Arch, its just the icon theme is obviosuly ubuntu based.
Arch Linux since 2006
Python Web Developer + Sys Admin (Gentoo/BSD)
Offline
"You know what I found? Right in the kernel, in the heart of the operating system, I found a developer's comment that said, `Does this belong here?`" -- Simon Lok about Linux kernel in 2005
Reflections on the Strange and the not so Strange
http://skinwalker.wordpress.com
Offline
Sorry for the Haruna fan boy mode. Last one for the month.
Nice one! Once again...
Could you, please, share you Xdefaults colors?
archlinux on Macbook Pro 10,1
Offline
KlavKalashj wrote:oew wrote:Switched to wmii, really like it so far
Desided to go brownish to match the wall (thanks YtseJammin!)Haha, mine is almost the same:
http://pici.se/thumbs/t_tYapxcovk.gif
That is Awesome 3.3.
Wow...looks great!
May I see your configs?
What do you use for transparency and will your rc.lua work with the git version?
@Joe_Arch, may I see your rc.lua, too (just diving into awesome)?
Thanks
I'm just learning awesome too, so my rc.lua is a work in progress.
(Who am I kidding? It's where functions go to die.)
If you have any questions maybe I can clarify a particularly messy part of my config
-- Standard awesome library
require("awful")
-- Theme handling library
require("beautiful")
-- Notification library
require("naughty")
-- widget library
require("wicked")
-- sqlite library
--require("sqlite3")
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
-- The default is a dark theme
theme_path = "/home/joe/.config/awesome/themes/default/theme"
-- Uncommment this for a lighter theme
-- theme_path = "/usr/share/awesome/themes/sky/theme"
-- Actually load theme
beautiful.init(theme_path)
-- This is used later as the default terminal and editor to run.
terminal = "urxvt"
editor = os.getenv("EDITOR") or "nano"
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.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.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.floating
}
-- Table of clients that should be set floating. The index may be either
-- the application class or instance. The instance is useful when running
-- a console app in a terminal like (Music on Console)
-- xterm -name mocp -e mocp
floatapps =
{
-- by class
--["MPlayer"] = true,
--["pinentry"] = true,
--["gimp"] = true,
-- by instance
["Snackr"] = true,
--["mocp"] = true
}
-- Applications to be moved to a pre-defined tag by class or instance.
-- Use the screen and tags indices.
apptags =
{
["Firefox"] = { screen = 1, tag = 2 },
["ncmpc"] = {screen = 1, tag = 4},
-- ["mocp"] = { screen = 2, tag = 4 },
}
-- Define if we want to use titlebar on all applications.
use_titlebar = false
-- }}}
-- {{{ Tags
-- Define tags table.
tags = {}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = {}
-- Create 9 tags per screen.
--for tagnumber = 1, 6 do
-- tags[s][tagnumber] = tag(tagnumber)
-- Add tags to screen one by one
-- tags[s][tagnumber].screen = s
--awful.layout.set(layouts[1], tags[s][tagnumber])
-- end
tags[s][1] = tag({ name = "term" })
tags[s][1].screen = s
awful.layout.set(layouts[1], tags[s][1])
tags[s][2] = tag({ name = "www" })
tags[s][2].screen = s
awful.layout.set(layouts[1], tags[s][2])
tags[s][3] = tag({ name = "misc" })
tags[s][3].screen = s
awful.layout.set(layouts[1], tags[s][3])
tags[s][4] = tag({ name = "music" })
tags[s][4].screen = s
awful.layout.set(layouts[1], tags[s][4])
-- I'm sure you want to see at least one tag.
tags[s][1].selected = true
end
-- }}}
-- {{{ Wibox
-- Create a textbox widget
mytextbox = widget({ type = "textbox", align = "right" })
-- Set the default text in textbox
--mytextbox.text = "<b><small> " " </small></b>"
--function getImage(name)
-- icons_path =
--os.getenv("HOME").."/.config/awesome/themes/default/icons/xbm/"
-- io.stderr:write("Getting icon: " .. icons_path .. name .. ".png\n")
-- return image(icons_path..name..".png")
--end
-- mpd widget
mpdwidget = widget({
type = 'textbox',
name = 'mpdwidget',
-- align = "left"
})
wicked.register(mpdwidget, wicked.widgets.mpd,
function (widget, args)
if args[1]:find("volume:") == nil then
return '<span color="white"></span> '..args[1]
else
return ''
end
end)
-- MPD
--mpd_img = widget({ type="imagebox" })
--mpd_img.image = getImage("play")
--mpd_img.resize = false
--mpd = widget({ type="textbox" })
--wicked.register(
-- mpd,
-- wicked.widgets.mpd,
-- function (widget, args)
-- if args[1]:find("volume:") == nil then
-- return Text(args[1], beautiful.fg_widg)
-- else
-- return "Nothing is playing."
-- end
-- end,
-- 5
--)
--mymail = widget({ type = "textbox", align = "right" })
function run_script()
local filedescriptor = io.popen('/home/joe/scripts/unread.py')
local value = filedescriptor:read()
filedescriptor:close()
return {value}
end
--Runs 'my_nifty_script.py' every 10 seconds and puts its output into the widget
--wicked.register(mymail, run_script, "$1", 10)
-- widget icons
function getImage(name)
icons_path =
os.getenv("HOME").."/.config/awesome/themes/default/icons/xbm/"
io.stderr:write("Getting icon: " .. icons_path .. name .. ".png\n")
return image(icons_path..name..".png")
end
--net down icon
down_img = widget({ type="imagebox", align = "right"})
down_img.image = getImage("down")
down_img.resize = true
--net up icon
up_img = widget({ type="imagebox", align = "right" })
up_img.image = getImage("up")
up_img.resize = true
--MPD icon
mpd_img = widget({ type="imagebox" })
mpd_img.image = getImage("mpd")
mpd_img.resize = true
--FS icon
--fs_img = widget({ type="imagebox", align = "right" })
--fs_img.image = getImage("cpu")
--fs_img.resize = true
--Memory icon
--mem_img = widget({ type="imagebox", align="right"})
--mem_img.image = getImage("mem")
--mem_img.resize= true
--CPU icon
--cpu_img = widget({ type="imagebox", align="right"})
--cpu_img.image = getImage("load")
--cpu_img.resize = true
function activeram()
local active
for line in io.lines('/proc/meminfo') do
for key, value in string.gmatch(line, "(%w+):\ +(%d+).+") do
if key == "Active" then active = tonumber(value)
end
end
return string.format("%.2fMB",(active/1024))
end
end
meminfo = widget({ type = "textbox", name = 'meminfo' })
--tb_rss = widget({ type = 'textbox', name = 'tb_rss'})
--function hook_rss_liferea()
-- db = sqlite3.open("/home/joe/.liferea_1.4/liferea.db")
-- row = db:first_irow("SELECT COUNT(*) FROM items where read = 0;")
-- tb_rss.text = "Unread items: " .. row[1]
-- db:close()
--end
--awful.hooks.timer.register(60,hook_rss_liferea)
-- net widget up
netwidgetup = widget(
{
type = 'textbox',
name = 'netwidgetup',
align = 'right'
})
wicked.register(netwidgetup, wicked.widgets.net,
'${wlan0 up} ',nil, nil, 3)
-- net widget down
netwidgetdown = widget(
{
type = 'textbox',
name = 'netwidgetdown',
align = 'right'
})
wicked.register(netwidgetdown, wicked.widgets.net,
'${wlan0 down} ', nil, nil,3)
--wicked.register(homebox, 'fs', ' ${/home usep}% ', 30)
-- 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.new({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal },
{ "wallpaper", terminal .. " -e feh -g 640x480 -d -S filename /home/joe/pictures/wallpapers/" }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.arch_icon),
menu = mymainmenu })
-- Create a systray
mysystray = widget({ type = "systray", align = "right" })
-- Simple spacer we can use to get cleaner code
spacer = " "
-- Separator icon
separator = widget({ type = "textbox", align = "right"})
separator.text = " || "
-- Blocks
--block_start = widget({type = "textbox" })
--block_start.text = Text("[ ", beautiful.fg_focus)
--block_end = widget({type = "textbox"})
--block_end.text = Text(" ]", beautiful.fg_focus)
memwidget = widget({
type = 'textbox',
name = 'memwidget',
align = "right"
})
wicked.register(memwidget, wicked.widgets.mem,
' $1% ($2Mb/$3Mb) ')
--date
--datewidget = widget({
-- type = 'textbox',
-- name = 'datewidget',
--})
--wicked.register(datewidget, wicked.widgets.date,
-- ' Date: %c')
-- file system
--fswidget = widget({
-- type = 'textbox',
-- name = 'fswidget',
-- align = "right"
--})
--wicked.register(fswidget, wicked.widgets.fs,
-- ' / ${/ usep}%, /home ${/home usep}% ', 30)
-- cpu
cpuwidget = widget({
type = 'textbox',
name = 'cpuwidget',
align = "right"
})
wicked.register(cpuwidget, wicked.widgets.cpu,
' $1% ')
-- Create a wibox for each screen and add it
statbox = {}
mywibox = {}
mypromptbox = {}
mylayoutbox = {}
mytaglist = {}
mytaglist.buttons = { button({ }, 1, awful.tag.viewonly),
button({ modkey }, 1, awful.client.movetotag),
button({ }, 3, function (tag) tag.selected = not tag.selected end),
button({ modkey }, 3, awful.client.toggletag),
button({ }, 4, awful.tag.viewnext),
button({ }, 5, awful.tag.viewprev) }
mytasklist = {}
mytasklist.buttons = { button({ }, 1, function (c)
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
client.focus = c
c:raise()
end),
button({ }, 3, function () if instance then instance:hide() end instance = awful.menu.clients({ width=250 }) end),
button({ }, 4, function ()
awful.client.focus.byidx(1)
if client.focus then client.focus:raise() end
end),
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] = widget({ type = "textbox", align = "left" })
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = widget({ type = "imagebox", align = "right" })
mylayoutbox[s]:buttons({ button({ }, 1, function () awful.layout.inc(layouts, 1) end),
button({ }, 3, function () awful.layout.inc(layouts, -1) end),
button({ }, 4, function () awful.layout.inc(layouts, 1) end),
button({ }, 5, function () awful.layout.inc(layouts, -1) end) })
-- Create a taglist widget
mytaglist[s] = awful.widget.taglist.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist.new(function(c)
return awful.widget.tasklist.label.currenttags(c, s)
end, mytasklist.buttons)
--create stat box
statbox[s] = wibox({ position = "bottom", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
statbox[s].widgets = {
mpd_img,
mpdwidget,
--tb_rss,
-- separator,
--mymail,
--mem_img,
memwidget,
separator,
--cpu_img,
cpuwidget,
separator,
--fs_img,
--fswidget,
--separator,
-- meminfo,
-- separator,
down_img,
netwidgetdown,
up_img,
netwidgetup,
}
statbox[s].screen = s
-- Create the wibox
mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
-- Add widgets to the wibox - order matters
mywibox[s].widgets = { mylauncher,
mytaglist[s],
mytasklist[s],
mypromptbox[s],
-- mpdwidget,
-- netwidget,
mytextbox,
mylayoutbox[s],
s == 1 and mysystray or nil }
mywibox[s].screen = s
end
-- }}}
-- {{{ Mouse bindings
root.buttons({
button({ }, 3, function () mymainmenu:toggle() end),
button({ }, 4, awful.tag.viewnext),
button({ }, 5, awful.tag.viewprev)
})
-- }}}
-- {{{ Key bindings
globalkeys =
{
key({ modkey, }, "Left", awful.tag.viewprev ),
key({ modkey, }, "Right", awful.tag.viewnext ),
key({ modkey, }, "Escape", awful.tag.history.restore),
key({ modkey, }, "j",
function ()
awful.client.focus.byidx( 1)
if client.focus then client.focus:raise() end
end),
key({ modkey, }, "k",
function ()
awful.client.focus.byidx(-1)
if client.focus then client.focus:raise() end
end),
-- Layout manipulation
key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( 1) end),
key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( -1) end),
key({ modkey, "Control" }, "j", function () awful.screen.focus( 1) end),
key({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end),
key({ modkey, }, "u", awful.client.urgent.jumpto),
key({ modkey, }, "Tab",
function ()
awful.client.focus.history.previous()
if client.focus then
client.focus:raise()
end
end),
-- Standard program
key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
key({ modkey, "Control" }, "r", awesome.restart),
key({ modkey, "Shift" }, "q", awesome.quit),
key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end),
key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end),
key({ modkey, "Shift" }, "h", function () awful.tag.incnmaster( 1) end),
key({ modkey, "Shift" }, "l", function () awful.tag.incnmaster(-1) end),
key({ modkey, "Control" }, "h", function () awful.tag.incncol( 1) end),
key({ modkey, "Control" }, "l", function () awful.tag.incncol(-1) end),
key({ modkey, }, "space", function () awful.layout.inc(layouts, 1) end),
key({ modkey, "Shift" }, "space", function () awful.layout.inc(layouts, -1) end),
-- Applications
key({ modkey }, "b", function () awful.util.spawn("exec firefox") end),
key({ modkey }, "t", function () awful.util.spawn("exec urxvt") end),
-- Music Player Daemon
key({ modkey, }, "Up",function () awful.util.spawn("mpc volume +5") end),
key({ modkey, }, "Down",function () awful.util.spawn("mpc volume -5") end),
key({ modkey, }, "/",function () awful.util.spawn("mpc toggle") end),
-- Prompt
key({ modkey }, "F1",
function ()
awful.prompt.run({ prompt = "Run: " },
mypromptbox[mouse.screen],
awful.util.spawn, awful.completion.bash,
awful.util.getdir("cache") .. "/history")
end),
key({ modkey }, "F4",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen],
awful.util.eval, awful.prompt.bash,
awful.util.getdir("cache") .. "/history_eval")
end),
}
-- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
clientkeys =
{
key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
key({ modkey, "Shift" }, "c", function (c) c:kill() end),
key({ modkey, "Control" }, "space", awful.client.floating.toggle ),
key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),
key({ modkey, }, "o", awful.client.movetoscreen ),
key({ modkey, "Shift" }, "r", function (c) c:redraw() end),
key({ modkey }, "t", awful.client.togglemarked),
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
for i = 1, keynumber do
table.insert(globalkeys,
key({ modkey }, i,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end))
table.insert(globalkeys,
key({ modkey, "Control" }, i,
function ()
local screen = mouse.screen
if tags[screen][i] then
tags[screen][i].selected = not tags[screen][i].selected
end
end))
table.insert(globalkeys,
key({ modkey, "Shift" }, i,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end))
table.insert(globalkeys,
key({ modkey, "Control", "Shift" }, i,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end))
end
for i = 1, keynumber do
table.insert(globalkeys, key({ modkey, "Shift" }, "F" .. i,
function ()
local screen = mouse.screen
if tags[screen][i] then
for k, c in pairs(awful.client.getmarked()) do
awful.client.movetotag(tags[screen][i], c)
end
end
end))
end
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Hooks
-- Hook function to execute when focusing a client.
awful.hooks.focus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_focus
end
end)
-- Hook function to execute when unfocusing a client.
awful.hooks.unfocus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_normal
end
end)
-- Hook function to execute when marking a client
awful.hooks.marked.register(function (c)
c.border_color = beautiful.border_marked
end)
-- Hook function to execute when unmarking a client.
awful.hooks.unmarked.register(function (c)
c.border_color = beautiful.border_focus
end)
-- Hook function to execute when the mouse enters a client.
awful.hooks.mouse_enter.register(function (c)
-- Sloppy focus, but disabled for magnifier layout
if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier
and awful.client.focus.filter(c) then
client.focus = c
end
end)
-- Hook function to execute when a new client appears.
awful.hooks.manage.register(function (c, startup)
-- If we are not managing this application at startup,
-- move it to the screen where the mouse is.
-- We only do it for filtered windows (i.e. no dock, etc).
if not startup and awful.client.focus.filter(c) then
c.screen = mouse.screen
end
if use_titlebar then
-- Add a titlebar
awful.titlebar.add(c, { modkey = modkey })
end
-- Add mouse bindings
c:buttons({
button({ }, 1, function (c) client.focus = c; c:raise() end),
button({ modkey }, 1, awful.mouse.client.move),
button({ modkey }, 3, awful.mouse.client.resize)
})
-- New client may not receive focus
-- if they're not focusable, so set border anyway.
c.border_width = beautiful.border_width
c.border_color = beautiful.border_normal
-- Check if the application should be floating.
local cls = c.class
local inst = c.instance
if floatapps[cls] then
awful.client.floating.set(c, floatapps[cls])
elseif floatapps[inst] then
awful.client.floating.set(c, floatapps[inst])
end
-- Check application->screen/tag mappings.
local target
if apptags[cls] then
target = apptags[cls]
elseif apptags[inst] then
target = apptags[inst]
end
if target then
c.screen = target.screen
awful.client.movetotag(tags[target.screen][target.tag], c)
end
-- Do this after tag mapping, so you don't see it on the wrong tag for a split second.
client.focus = c
-- Set key bindings
c:keys(clientkeys)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
-- Honor size hints: if you want to drop the gaps between windows, set this to false.
c.size_hints_honor = false
end)
-- Hook function to execute when arranging the screen.
-- (tag switch, new client, etc)
awful.hooks.arrange.register(function (screen)
local layout = awful.layout.getname(awful.layout.get(screen))
if layout and beautiful["layout_" ..layout] then
mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
else
mylayoutbox[screen].image = nil
end
-- Give focus to the latest client in history if no window has focus
-- or if the current window is a desktop or a dock one.
if not client.focus then
local c = awful.client.focus.history.get(screen, 0)
if c then client.focus = c end
end
end)
-- Hook called every 5 seconds for clock
awful.hooks.timer.register(30, function ()
mytextbox.text = os.date(" %a %b %d, %H:%M ")
end)
-- Hook called for ram usage
--awful.hooks.timer.register(10, function() meminfo.text = activeram()
--end)
--awful.hooks.timer.register(30, function ()
-- local f = io.open("/home/joe/tmp/gmail")
-- local l = f:read() -- read output of command
-- f:close()
-- mymail.text = l
-- os.execute("/home/joe/scripts/unread.py > ~/tmp/gmail &")
--end)
--function run_script()
-- local filedescriptor = io.open('/home/joe/scripts/unread.py')
-- local value = filedescriptor:read()
-- filedescriptor:close()
-- return {value}
--end
-- }}}
Offline
This is my scrot!
Is there a program I can run to show my system info such as window manager, gtk, system info?
I have awesome, starting to try that. ...its awesome???
But I love my openbox setup. Very plain and simple.
P.S. Thanks to whoever put up the wikis for the fonts! They are the best!
Also I stole most of the stuff from you guys. thanks for your hard work.
Last edited by chmoder (2009-04-30 04:19:13)
system: AMD Phenom II 940 Black 3.0Ghz; 4GB 1066; AMD integrated 3350; ArchLinux: OpenBox
website: http://www.chmoder.org
code: http://github.com/chmoder/
Offline
Daisuke_Aramaki wrote:Sorry for the Haruna fan boy mode. Last one for the month.
Nice one! Once again...
Could you, please, share you Xdefaults colors?
Thanks. I posted my updated Xdefaults colors a couple of pages back. Check out page 27.
"You know what I found? Right in the kernel, in the heart of the operating system, I found a developer's comment that said, `Does this belong here?`" -- Simon Lok about Linux kernel in 2005
Reflections on the Strange and the not so Strange
http://skinwalker.wordpress.com
Offline
Chmoder:
3nd3r showed me a great combo: combining inxi with this forum's screenshot info grabber script. His post is just a few pages back. I've included it below:
(Personally I just used inxi -v3.... anything higher just seems to be TMI for my singlescore system)
3nd3r wrote:Joe_Arch wrote:3nd3r, I would be much obliged for a copy of your system specs script.
check here: http://techpatterns.com/forums/about1133.html
alias info=" perl /home/ender/scripts/info2.pl;inxi -v5 - if multicore detected, create new frequency line, per cpu"
#!/usr/bin/perl use Switch; use strict; use File::Basename; #################### ## Config options ## #################### ## What distro logo to use to use, Available "Archlinux Debian Ubuntu None" ## my $distro = "Archlinux"; my $myArchVersion = "ArchLinux (2009.2)"; ## what values to display. Use "OS Kernel DE WM win_theme Theme Font Icons" ## my $display = "OS Kernel DE WM Win_theme Theme Icons Font Background"; ## Takes a screen shot if set to 0 ## my $shot = 1; ## Command to run to take screen shot ## #my $command = "scrot -d 10"; ## What colors to use for the variables. ## my $textcolor = "\e[0m"; ## Prints little debugging messages if set to 0 ## my $quite = 1; ######################## ## Script starts here ## ######################## ## Define some thing to work with strict ## my @line = (); my $found = 0; my $DE = "NONE"; my $WM = "Beryl"; ## Hash of WMs and the process they run ## my %WMlist = ("Beryl", "beryl", "Fluxbox", "fluxbox", "Openbox", "openbox", "Blackbox", "blackbox", "Xfwm4", "xfwm4", "Metacity", "metacity", "Kwin", "kwin", "FVWM", "fvwm", "Enlightenment", "enlightenment", "IceWM", "icewm", "Window Maker", "wmaker", "PekWM","pekwm" ); ## Hash of DEs and the process they run ## my %DElist = ("Gnome", "gnome-session", "Xfce4", "xfce-mcs-manage", "KDE", "ksmserver"); ## Get Kernel version ## if ( $display =~ "Kernel"){ print "\::$textcolor Finding Kernel version\n" unless $quite == 1; my $kernel = `uname -r`; $kernel =~ s/\s+/ /g; $kernel = " Kernel:$textcolor $kernel"; push(@line, "$kernel"); } ## Find running processes ## print "\::$textcolor Getting processes \n" unless $quite == 1; my $processes = `ps -A | awk {'print \$4'}`; ## Find DE ## while( (my $DEname, my $DEprocess) = each(%DElist) ) { print "\::$textcolor Testing $DEname process: $DEprocess \n" unless $quite == 1; if ( $processes =~ m/$DEprocess/ ) { $DE = $DEname; print "\::$textcolor DE found as $DE\n" unless $quite == 1; if( $display =~ m/DE/ ) { push(@line, " DE:$textcolor $DE"); } last; } } ## Find WM ## while( (my $WMname, my $WMprocess) = each(%WMlist) ) { print "\::$textcolor Testing $WMname process: $WMprocess \n" unless $quite == 1; if ( $processes =~ m/$WMprocess/ ) { $WM = $WMname; print "\::$textcolor WM found as $WM\n" unless $quite == 1; if( $display =~ m/WM/ ) { push(@line, " WM:$textcolor $WM"); } last; } } ## Find WM theme ## if ( $display =~ m/Win_theme/ ){ switch($WM) { case "Openbox" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.config/openbox/rc.xml") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /<name>(.+)<\/name>/ ) { while ( $found == 0 ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); $found = 1; } } } close(FILE); } case "Metacity" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; my $gconf = `gconftool-2 -g /apps/metacity/general/theme`; print "\::$textcolor $WM theme found as $gconf\n" unless $quite == 1; chomp ($gconf); push(@line, " WM Theme:$textcolor $gconf"); } case "Fluxbox" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.fluxbox/init") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /session.styleFile:.*\/(.+)/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } close(FILE); } case "Blackbox" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.blackboxrc") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /session.styleFile:.*\/(.+)/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } close(FILE); } case "Xfwm4" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.config/xfce4/mcs_settings/xfwm4.xml") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /<option name="Xfwm\/ThemeName" type="string" value="(.+)"\/>/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } close(FILE); } case "Kwin" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.kde/share/config/kwinrc") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /PluginLib=kwin3_(.+)/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } close(FILE); } case "Enlightenment" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; my $remote = `enlightenment_remote -theme-get theme` ; if( $remote =~ m/.*FILE="(.+).edj"/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } case "IceWM" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.icewm/theme") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /Theme="(.+)\/.*.theme/ ) { while( $found == 0 ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); $found = 1; } } } close(FILE); } case "PekWM" { print "\::$textcolor Finding $WM theme\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.pekwm/config") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if( /Theme.*\/(.*)"/ ) { print "\::$textcolor $WM theme found as $1\n" unless $quite == 1; push(@line, " WM Theme:$textcolor $1"); } } close(FILE); } } } ## Find Theme Icon and Font ## if ( $display =~ m/[Theme, Icons, Font, Background]/) { switch($DE) { case "Gnome" { print "\::$textcolor Finding $DE variables\n" unless $quite == 1; if ( $display =~ m/Theme/ ) { my $gconf = `gconftool-2 -g /desktop/gnome/interface/gtk_theme`; chomp ($gconf); print "\::$textcolor GTK Theme found as $1\n" unless $quite == 1; push(@line, " GTK Theme:$textcolor $gconf"); } if ( $display =~ m/Icons/ ) { my $gconf = `gconftool-2 -g /desktop/gnome/interface/icon_theme`; chomp ($gconf); push(@line, " Icons:$textcolor $gconf"); } if ( $display =~ m/Font/ ) { my $gconf = `gconftool-2 -g /desktop/gnome/interface/font_name`; chomp ($gconf); push(@line, " Font:$textcolor $gconf"); } if ( $display =~ m/Background/ ) { my $gconf = `gconftool-2 -g /desktop/gnome/background/picture_filename`; chomp ($gconf); my $bname = basename($gconf); push(@line, " Background:$textcolor $bname"); } } case "Xfce4" { my @sort = (); print "\::$textcolor Finding $DE variables\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.config/xfce4/mcs_settings/gtk.xml") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if ( $display =~ m/Theme/ ) { if (/<option name="Net\/ThemeName" type="string" value="(.+)"\/>/ ) { print "\::$textcolor GTK Theme found as $1\n" unless $quite == 1; unshift(@sort, " GTK Theme:$textcolor $1"); } } if ( $display =~ m/Icons/ ) { if (/<option name="Net\/IconThemeName" type="string" value="(.+)"\/>/ ) { print "\::$textcolor Icons found as $1\n" unless $quite == 1; unshift(@sort, " Icons:$textcolor $1"); } } if ( $display =~ m/Font/ ) { if ( /<option name="Gtk\/FontName" type="string" value="(.+)"\/>/ ) { print "\::$textcolor Font found as $1\n" unless $quite == 1; unshift(@sort, " Font:$textcolor $1"); } } } close(FILE); ## Sort variables so they're ordered "Theme Icon Font" ## foreach my $i (@sort) { push(@line, "$i"); } } case "KDE" { print "\::$textcolor Finding $DE variables\n" unless $quite == 1; open(FILE, "$ENV{HOME}/.kde/share/config/kdeglobals") || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if ( $display =~ m/Theme/ ) { if ( /widgetStyle=(.+)/ ) { print "\::$textcolor Wiget Style found as $1\n" unless $quite == 1; push(@line, " Wiget Style:$textcolor $1"); } if (/colorScheme=(.+).kcsrc/ ) { print "\::$textcolor Color Scheme found as $1\n" unless $quite == 1; push(@line, " Color Scheme:$textcolor $1"); } } if ( $display =~ m/Icons/ ) { if ( /Theme=(.+)/ ) { print "\::$textcolor Icons found as $1\n" unless $quite == 1; push(@line, " Icons:$textcolor $1"); } } if ( $display =~ m/Font/ ) { if ( /font=(.+)/ ) { my $font = (split/,/, $1)[0]; print "\::$textcolor Font found as $font\n" unless $quite == 1; push(@line, " Font:$textcolor $font"); } } } close(FILE); } else { my @files = ("$ENV{HOME}/.gtkrc-2.0", "$ENV{HOME}/.gtkrc.mine",); foreach my $file (@files) { if ( -e $file ) { print "\::$textcolor Opening $file\n" unless $quite == 1; open(FILE, $file) || die "\e[0;31m<Failed>\n"; while( <FILE> ) { if ( $display =~ m/Theme/ ) { if( /include ".*themes\/(.+)\/gtk-(1|2)\.0\/gtkrc"/ ){ print "\::$textcolor GTK theme found as $1\n" unless $quite == 1; push(@line, " GTK Theme:$textcolor $1"); } } if ( $display =~ m/Icons/ ) { if( /.*gtk-icon-theme-name.*"(.+)"/ ) { print "\::$textcolor Icons found as $1\n" unless $quite == 1; push(@line, " Icons:$textcolor $1"); } } if ( $display =~ m/Font/ ) { if( /.*gtk-font-name.*"(.+)"/ ) { print "\::$textcolor Font found as $1\n" unless $quite == 1; push(@line, " Font:$textcolor $1"); } } } close(FILE); } } } } } ## Display the system info ## if ( $distro =~ m/Archlinux/ ) { ## Get Archlinux version ## if ( $display =~ "OS"){ print "\::$textcolor Finding Archlinux version\n" unless $quite == 1; my $version = $myArchVersion; $version =~ s/\s+/ /g; $version = " OS:$textcolor $version"; unshift(@line, "$version"); } my $c1 = "\e[1;36m"; my $c2 = "\e[0;36m"; system("clear"); print " ${c1} -` ${c1} .o+` ${c1} `ooo/ ${c1} `+oooo: ${c1} `+oooooo: ${c1} -+oooooo+: ${c1} `/:-:++oooo+: $c1@line[0] ${c1} `/++++/+++++++: $c1@line[1] ${c1} `/++++++++++++++: $c1@line[2] ${c1} `/+++${c2}ooooooooooooo/` $c1@line[3] ${c2} ./ooosssso++osssssso+` $c1@line[4] ${c2} .oossssso-````/ossssss+` $c1@line[5] ${c2} -osssssso. :ssssssso. $c1@line[6] ${c2} :osssssss/ osssso+++. $c1@line[7] ${c2} /ossssssss/ +ssssooo/- $c1@line[8] ${c2} `/ossssso+/:- -:/+osssso+- ${c2} `+sso+:-` `.-/+oso: ${c2} `++:. `-/+/ ${c2} .` `` ${c2} \e[0m"; } #system("scrot -d 1");
Much obliged, 3nd3r!
I had never heard of inxi, it's pretty awesome. Now if only I could find a script that recognizes awesome
Offline
celettu wrote:ichigo wrote:my new Arch desktop:
Nicely done. Could you provide some info? What's the DE, dock, theme, windows decorations, font?
DE: Xfce 4.6
Dock: Avant Window Navigator
Thème: Nodoka-Rounded (need gtk-engine-nodoka)
WM: Emerald (ichigo 1.0)
Font: ArabBrud
Wallpaper: i forget a name
Conky: Date, Time, Cpu info, Top Cpu,Ram, Network info, To do, Notification of update Pacman, Music info
Hey, very nice setup! I really like your font, it is not a simple one, has elegance and is still readable - the main-problem with nice fonts, they often aren't readable at small size...
But there is one question left: How does your to-do-list in conky work??
Thanks in advance,
Thomas
Offline
Offline
This is my scrot!
Is there a program I can run to show my system info such as window manager, gtk, system info?
Clean:
http://lh3.ggpht.com/_lcnSl98eclI/SfkVP … _scrot.png
Dirty:
http://lh6.ggpht.com/_lcnSl98eclI/SfkWr … _scrot.pngI have awesome, starting to try that. ...its awesome???
But I love my openbox setup. Very plain and simple.P.S. Thanks to whoever put up the wikis for the fonts! They are the best!
Also I stole most of the stuff from you guys. thanks for your hard work.
nice wallpaper, could you post a link?
Offline
First experience with Arch and I'm loving it. I feel like I've learned a lot in the past week, stuff that I didn't learn from ubuntu. The wiki and forum are amazing. The people aren't half bad either ;-)
http://i229.photobucket.com/albums/ee69 … _scrot.png
Gnome, Conky, Tint2
nice man, mind sharing that wallpaper?
good to have another archer, may i suggest trying out other de/wms? I just assume you use gnome because ubuntu does.
oh and we are bad, but in a different way
Last edited by kolbycrouch (2009-04-30 07:10:03)
Offline
KlavKalashj wrote:oew wrote:Switched to wmii, really like it so far
Desided to go brownish to match the wall (thanks YtseJammin!)Haha, mine is almost the same:
http://pici.se/thumbs/t_tYapxcovk.gif
That is Awesome 3.3.
Wow...looks great!
May I see your configs?
What do you use for transparency and will your rc.lua work with the git version?
@Joe_Arch, may I see your rc.lua, too (just diving into awesome)?
Thanks
Thanks man! Yes, my version of awesome is 3.3pre2009 or something, I think it's in AUR. 3.3 will be released in june, so I guess config will work at least over the summer:) I am also new on awesome, have been running Awesom2.3 before, with the much easier config. But just right now I think this config is doing exactly what I want Anyways, here you go, enjoy:
Edit: forgot, transparency is achieved through .Xdefaults. I Guess the only important posts is *shading and *depth. Depth has to be 24. I have no xorg.conf so I guess I dont use any stuff like composite extension and so on... No xcompmgr. Too slow on my computer
require("awful")
require("beautiful")
require("naughty")
require("wicked")
-- {{{ Variable definitions
theme_path = "/home/oscar/.config/awesome/themes/arch"
beautiful.init(theme_path)
terminal = "urxvtc"
editor = os.getenv("EDITOR") or "vi"
editor_cmd = terminal .. " -e " .. editor
modkey = "Mod4"
layouts =
{
awful.layout.suit.tile, -- 1
awful.layout.suit.tile.left, -- 2
awful.layout.suit.tile.bottom, -- 3
awful.layout.suit.tile.top, -- 4
awful.layout.suit.fair, -- 5
awful.layout.suit.fair.horizontal, -- 6
awful.layout.suit.max, -- 7
awful.layout.suit.max.fullscreen, -- 8
awful.layout.suit.magnifier, -- 9
awful.layout.suit.floating -- 10
}
floatapps =
{
-- by class
["MPlayer"] = true,
-- ["Heroes3.exe"] = true,
["Wine"] = true,
-- by instance
["mocp"] = true
}
apptags =
{
["Gran Paradiso"] = { screen = 1, tag = 2 },
["Thunderbird-bin"] = { screen = 1, tag = 4 },
["Mplayer"] = { screen = 1, tag = 3 },
["Heroes3.exe"] = { screen = 1, tag = 3 },
}
use_titlebar = false
-- }}}
-- {{{ Tags
-- Define tags table.
tags = {}
tags.settings = {
{ name = "urxvt", layout = layouts[1], },
{ name = "www", layout = layouts[7], },
{ name = "media", layout = layouts[8] },
{ name = "mail", layout = layouts[7], },
{ name = "other", layout = layouts[10], setslave = true },
}
-- Initialize tags
for s = 1, screen.count() do
tags[s] = {}
for i, v in ipairs(tags.settings) do
tags[s][i] = tag(v.name)
tags[s][i].screen = s
awful.tag.setproperty(tags[s][i], "layout", v.layout)
awful.tag.setproperty(tags[s][i], "setslave", v.setslave)
awful.tag.setproperty(tags[s][i], "mwfact", v.mwfact)
end
tags[s][1].selected = true
end
-- }}}
-- {{{ Wibox
-- Create a textbox widget
mytextbox = widget({ type = "textbox", align = "right" })
-- Set the default text in textbox
mytextbox.text = "<b><small> " .. AWESOME_RELEASE .. " </small></b>"
-- 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.new({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- Create a systray
mysystray = widget({ type = "systray", align = "right" })
-- Create a wibox for each screen and add it
mywibox = {}
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, function (tag) tag.selected = not tag.selected end),
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] = widget({ type = "textbox", align = "left" })
-- Create an imagebox widget which will contains an icon indicating which layout we're using.
-- We need one layoutbox per screen.
mylayoutbox[s] = widget({ type = "imagebox", align = "right" })
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.new(s, awful.widget.taglist.label.all, mytaglist.buttons)
-- Create a date widget
-- mydatewidget = widget({
-- type = "textbox",
-- name = "mydatewidget",
-- align = "right" })
-- wicked.register(mydatewidget, wicked.widgets.date, " :: %b %e, %R ::", 60)
-- MPD
mpdwidget = widget({
type = 'textbox',
name = 'mpdwidget',
align = 'right',
})
wicked.register(mpdwidget, wicked.widgets.mpd,
' <span color="#E2BAF1">Now Playing:</span> $1 ::')
-- Mousebindings for MPD
mpdwidget:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.util.spawn("mpc toggle") end),
awful.button({ }, 4, function () awful.util.spawn("aumix -v +3") end),
awful.button({ }, 5, function () awful.util.spawn("aumix -v -3") end),
awful.button({ }, 8, function () awful.util.spawn("mpc prev") end),
awful.button({ }, 9, function () awful.util.spawn("mpc next") end)))
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist.new(function(c)
return awful.widget.tasklist.label.currenttags(c, s)
end, mytasklist.buttons)
-- Create the wibox
mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })
-- Add widgets to the wibox - order matters
mywibox[s].widgets = { mylauncher,
mytaglist[s],
-- mytasklist[s],
mpdwidget,
-- mydatewidget,
mypromptbox[s],
mytextbox,
mylayoutbox[s],
s == 1 and mysystray or nil }
mywibox[s].screen = s
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, }, "j",
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(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( 1) end),
awful.key({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end),
awful.key({ modkey, }, "u", awful.client.urgent.jumpto),
awful.key({ modkey, }, "Tab",
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),
-- Mina
awful.key({ }, "XF86AudioPlay", function () awful.util.spawn("mpc toggle") end),
awful.key({ }, "XF86AudioStop", function () awful.util.spawn("mpc stop") end),
awful.key({ }, "XF86AudioNext", function () awful.util.spawn("mpc next") end),
awful.key({ }, "XF86AudioPrev", function () awful.util.spawn("mpc prev") end),
awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn("aumix -v -3") end),
awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn("aumix -v +3") end),
awful.key({ }, "XF86HomePage", function () awful.util.spawn("firefox") end),
awful.key({ }, "XF86Mail", function () awful.util.spawn("thunderbird") end),
-- Prompt
awful.key({ modkey }, "r",
function ()
awful.prompt.run({ prompt = "Run: " },
mypromptbox[mouse.screen],
awful.util.spawn, awful.completion.shell,
awful.util.getdir("cache") .. "/history")
end),
awful.key({ modkey }, "x",
function ()
awful.prompt.run({ prompt = "Run Lua code: " },
mypromptbox[mouse.screen],
awful.util.eval, nil,
awful.util.getdir("cache") .. "/history_eval")
end)
)
-- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on them
clientkeys = awful.util.table.join(
awful.key({ modkey, }, "f", function (c) c.fullscreen = not c.fullscreen end),
awful.key({ modkey, "Shift" }, "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", awful.client.togglemarked),
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
for i = 1, keynumber do
table.foreach(awful.key({ modkey }, i,
function ()
local screen = mouse.screen
if tags[screen][i] then
awful.tag.viewonly(tags[screen][i])
end
end), function(_, k) table.insert(globalkeys, k) end)
table.foreach(awful.key({ modkey, "Control" }, i,
function ()
local screen = mouse.screen
if tags[screen][i] then
tags[screen][i].selected = not tags[screen][i].selected
end
end), function(_, k) table.insert(globalkeys, k) end)
table.foreach(awful.key({ modkey, "Shift" }, i,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.movetotag(tags[client.focus.screen][i])
end
end), function(_, k) table.insert(globalkeys, k) end)
table.foreach(awful.key({ modkey, "Control", "Shift" }, i,
function ()
if client.focus and tags[client.focus.screen][i] then
awful.client.toggletag(tags[client.focus.screen][i])
end
end), function(_, k) table.insert(globalkeys, k) end)
table.foreach(awful.key({ modkey, "Shift" }, "F" .. i,
function ()
local screen = mouse.screen
if tags[screen][i] then
for k, c in pairs(awful.client.getmarked()) do
awful.client.movetotag(tags[screen][i], c)
end
end
end), function(_, k) table.insert(globalkeys, k) end)
end
-- Set keys
root.keys(globalkeys)
-- }}}
-- {{{ Hooks
-- Hook function to execute when focusing a client.
awful.hooks.focus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_focus
end
end)
-- Hook function to execute when unfocusing a client.
awful.hooks.unfocus.register(function (c)
if not awful.client.ismarked(c) then
c.border_color = beautiful.border_normal
end
end)
-- Hook function to execute when marking a client
awful.hooks.marked.register(function (c)
c.border_color = beautiful.border_marked
end)
-- Hook function to execute when unmarking a client.
awful.hooks.unmarked.register(function (c)
c.border_color = beautiful.border_focus
end)
-- Hook function to execute when a new client appears.
awful.hooks.manage.register(function (c, startup)
-- If we are not managing this application at startup,
-- move it to the screen where the mouse is.
-- We only do it for filtered windows (i.e. no dock, etc).
if not startup and awful.client.focus.filter(c) then
c.screen = mouse.screen
end
if use_titlebar then
-- Add a titlebar
awful.titlebar.add(c, { modkey = modkey })
end
-- Add mouse bindings
c:buttons(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)
))
-- New client may not receive focus
-- if they're not focusable, so set border anyway.
c.border_width = beautiful.border_width
c.border_color = beautiful.border_normal
-- Check if the application should be floating.
local cls = c.class
local inst = c.instance
if floatapps[cls] then
awful.client.floating.set(c, floatapps[cls])
elseif floatapps[inst] then
awful.client.floating.set(c, floatapps[inst])
end
-- Check application->screen/tag mappings.
local target
if apptags[cls] then
target = apptags[cls]
elseif apptags[inst] then
target = apptags[inst]
end
if target then
c.screen = target.screen
awful.client.movetotag(tags[target.screen][target.tag], c)
end
-- Do this after tag mapping, so you don't see it on the wrong tag for a split second.
client.focus = c
-- Set key bindings
c:keys(clientkeys)
-- Set the windows at the slave,
-- i.e. put it at the end of others instead of setting it master.
-- awful.client.setslave(c)
-- Honor size hints: if you want to drop the gaps between windows, set this to false.
c.size_hints_honor = false
end)
-- Hook function to execute when arranging the screen.
-- (tag switch, new client, etc)
awful.hooks.arrange.register(function (screen)
local layout = awful.layout.getname(awful.layout.get(screen))
if layout and beautiful["layout_" ..layout] then
mylayoutbox[screen].image = image(beautiful["layout_" .. layout])
else
mylayoutbox[screen].image = nil
end
-- Give focus to the latest client in history if no window has focus
-- or if the current window is a desktop or a dock one.
if not client.focus then
local c = awful.client.focus.history.get(screen, 0)
if c then client.focus = c end
end
end)
-- Hook called every minute
awful.hooks.timer.register(60, function ()
mytextbox.text = os.date(" %a %b %d, %H:%M ")
end)
-- }}}
-- {{ Quick'n'Dirty Autostart
awful.util.spawn("xset r rate 200 30")
awful.util.spawn("numlockx")
awful.util.spawn("setxkbmap se")
awful.util.spawn("xrandr --output LVDS --off")
awful.util.spawn("xrandr --output VGA-0 --mode 1680x1050")
awful.util.spawn("mount /media/usb")
awful.util.spawn("mpd")
awful.util.spawn("urxvtd -q -f -o")
-- }}
URxvt.buffered: true
!URxvt.background: black
!URxvt.foreground: white
URxvt.cursorColor: white
URxvt.font: xft:Terminus:pixelsize=12
!!URxvt.font: xft:bitvera sans:pixelsize=11:antialias=false
!!URxvt*font: -*-terminus-*-*-*-*-11-*-*-*-*-*-*-*
URxvt.perl-ext-common: default,matcher
!!urxvt*fading: 20
urxvt*shading: 25
urxvt*depth: 24
urxvt*scrollBar: false
urxvt*scrollstyle: plain
urxvt*loginShell: true
urxvt*termName: rxvt-unicode
urxvt*inheritPixmap: true
urxvt*urlLauncher: firefox
urxvt.matcher.pattern.1: \bwww\.[\w-]\.[\w./?&@#-]*[\w/-]
urxvt.matcher.button: 1
URxvt.urgentOnBell: true
URxvt.colorUL: #4EB4FA
URxvt.underlineColor: #4EB4FA
!--[Colours]--!
!URxvt*cursorColor: #FFAF00
! black
!URxvt*color0: #000000
!URxvt*color8: #9999AA
! red
!URxvt*color1: #DE1923
!URxvt*color9: #FF6050
! green
!URxvt*color2: #559933
!URxvt*color10: #66D077
! yellow
!URxvt*color3: #FF9922
!URxvt*color11: #FFFFAF
! blue
!URxvt*color4: #3579A8
!URxvt*color12: #4EB4FA
! magenta
!URxvt*color5: #BB88DD
!URxvt*color13: #D7AFD7
! cyan
!URxvt*color6: #00BBDD
!URxvt*color14: #0DEBFF
! white
!URxvt*color7: #C7C7C7
!URxvt*color15: #D9D9D9
! Colour scheme
!URxvt*color0:#000000
!URxvt*color1:#ff6565
!URxvt*color2:#93d44f
!URxvt*color3:#eab93d
!URxvt*color4:#204a87
!URxvt*color5:#ce5c00
!URxvt*color6:#89b6e2
!URxvt*color7:#cccccc
!URxvt*color8:#555753
!URxvt*color9:#ff8d8d
!URxvt*color10:#c8e7a8
!URxvt*color11:#ffc123
!URxvt*color12:#3465a4
!URxvt*color13:#f57900
!URxvt*color14:#46a4ff
!URxvt*color15:#ffffff
*background: #252525
*foreground: light grey
!black
*color0: #222222
*color8: #554444
!red
*color1: #EA6868
*color9: #FF7272
!green
*color2: #ABCB8D
*color10: #AFD78A
!yellow
*color3: #E8AE5B
*color11: #FFA75D
!blue
*color4: #71C5F4
*color12: #67CDE9
!magenta
*color5: #E2BAF1
*color13: #ECAEE9
!cyan
*color6: #21F1EA
*color14: #36FFFC
!white
*color7: #F1F1F1
*color15: #FFFFFF
Last edited by KlavKalashj (2009-04-30 07:28:33)
Offline
ichigo wrote:celettu wrote:Nicely done. Could you provide some info? What's the DE, dock, theme, windows decorations, font?
DE: Xfce 4.6
Dock: Avant Window Navigator
Thème: Nodoka-Rounded (need gtk-engine-nodoka)
WM: Emerald (ichigo 1.0)
Font: ArabBrud
Wallpaper: i forget a name
Conky: Date, Time, Cpu info, Top Cpu,Ram, Network info, To do, Notification of update Pacman, Music infoHey, very nice setup! I really like your font, it is not a simple one, has elegance and is still readable - the main-problem with nice fonts, they often aren't readable at small size...
But there is one question left: How does your to-do-list in conky work??
Thanks in advance,
Thomas
Thanks! For "to do" i create this simple line ${execpi 600 cat ~/todo} and i modify this file when i needed
Offline
Offline
Offline
Barghest wrote:KlavKalashj wrote:Wow...looks great!
May I see your configs?
What do you use for transparency and will your rc.lua work with the git version?
@Joe_Arch, may I see your rc.lua, too (just diving into awesome)?
Thanks
Thanks man! Yes, my version of awesome is 3.3pre2009 or something, I think it's in AUR. 3.3 will be released in june, so I guess config will work at least over the summer:) I am also new on awesome, have been running Awesom2.3 before, with the much easier config. But just right now I think this config is doing exactly what I want Anyways, here you go, enjoy:
Edit: forgot, transparency is achieved through .Xdefaults. I Guess the only important posts is *shading and *depth. Depth has to be 24. I have no xorg.conf so I guess I dont use any stuff like composite extension and so on... No xcompmgr. Too slow on my computer
Very nice Would you mind sharing the Arch theme, which is referred to in your rc.lua?
Offline
Laptop, rather simmilar to my desktop
Do you know that you can change this Ubuntu logo on your panel? There's a setting somewhere in gconf.
archlinux on Macbook Pro 10,1
Offline
KlavKalashj wrote:Barghest wrote:Wow...looks great!
May I see your configs?
What do you use for transparency and will your rc.lua work with the git version?
@Joe_Arch, may I see your rc.lua, too (just diving into awesome)?
Thanks
Thanks man! Yes, my version of awesome is 3.3pre2009 or something, I think it's in AUR. 3.3 will be released in june, so I guess config will work at least over the summer:) I am also new on awesome, have been running Awesom2.3 before, with the much easier config. But just right now I think this config is doing exactly what I want Anyways, here you go, enjoy:
Edit: forgot, transparency is achieved through .Xdefaults. I Guess the only important posts is *shading and *depth. Depth has to be 24. I have no xorg.conf so I guess I dont use any stuff like composite extension and so on... No xcompmgr. Too slow on my computer
Very nice Would you mind sharing the Arch theme, which is referred to in your rc.lua?
Hm, I made som minor changes... Here is the current, I hope it fits. If there is any colour you are hunting, I guess I can look it up
http://pastebin.com/m5d4db66e
There are also changes in my .Xdefaults to match:
http://pastebin.com/m54a63399 (colours, and transparency level lowered)
Edit: The changes can be seen here: http://pici.se/401760
Last edited by KlavKalashj (2009-04-30 15:15:51)
Offline
whordijk wrote:KlavKalashj wrote:Thanks man! Yes, my version of awesome is 3.3pre2009 or something, I think it's in AUR. 3.3 will be released in june, so I guess config will work at least over the summer:) I am also new on awesome, have been running Awesom2.3 before, with the much easier config. But just right now I think this config is doing exactly what I want Anyways, here you go, enjoy:
Edit: forgot, transparency is achieved through .Xdefaults. I Guess the only important posts is *shading and *depth. Depth has to be 24. I have no xorg.conf so I guess I dont use any stuff like composite extension and so on... No xcompmgr. Too slow on my computer
Very nice Would you mind sharing the Arch theme, which is referred to in your rc.lua?
Hm, I made som minor changes... Here is the current, I hope it fits. If there is any colour you are hunting, I guess I can look it up
http://pastebin.com/m5d4db66eThere are also changes in my .Xdefaults to match:
http://pastebin.com/m54a63399 (colours, and transparency level lowered)Edit: The changes can be seen here: http://pici.se/401760
Thanks!
Offline
@ whordjik: Np man. But you owe me a scrot
Offline
Offline
KlavKalashj wrote:@ whordjik: Np man. But you owe me a scrot
True!
I'm not finished by far: I'm still sorting out the colours and stuff, but here's a draft:
http://hcnop.net/awesome2-thumb.png
Nice one. You got good taste
Edit: why do you have different colors in vi when we have same .Xdefaults? (If you not edited)
Last edited by KlavKalashj (2009-04-30 16:51:18)
Offline