Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/03/2009, à 07:17

Guizmo.7

awesome : widgets info système

Bonjour,

Je voudrais montrer sur mon bureau des petites barres symbolisant la charge processeur, la ram utilisé et le réseau utilisé.
C'est pourquoi je voudrais récupérer avec une simple commande le taux de processeur utilisé. Ensuite je voudrais aussi récupéré la ram puis le réseau.
Pour cela j'ai cherché un peu sur internet et dans /proc/acpi mais je n'ai rien trouvé de satisfaisant.
Savez-vous où trouvez ces informations ?

Merci d'avance.

Dernière modification par Guizmo.7 (Le 27/03/2009, à 19:26)


Un pas après l'autre, la petite créature verte avance !

Hors ligne

#2 Le 27/03/2009, à 08:19

herberts

Re : awesome : widgets info système

Bonjour, pourquoi ne pas utiliser conky ?

Hors ligne

#3 Le 27/03/2009, à 08:27

Кຼزດ

Re : awesome : widgets info système

herberts a écrit :

Bonjour, pourquoi ne pas utiliser conky ?

+1
ou bien gkrellm


dou

Hors ligne

#4 Le 27/03/2009, à 08:50

herberts

Re : awesome : widgets info système

Sinon pour gnome et xfce, tu as des applets pour le tableau de bord qui présentent ces infos, et sous kde il me semble qu'il existe des plasmoïds pour ça également.

Hors ligne

#5 Le 27/03/2009, à 16:47

Guizmo.7

Re : awesome : widgets info système

Merci de vos réponses smile
Je souhaite le récupérer et le traiter moi même car j'utilise awesome et je voudrais faire un peu comme cette capture (voir la barre de status du haut) mais pour le proc, ram et réseau.

J'ai récupéré la ram avec free et le proc avec

top -b -n 1

mais c'est lourd pour pas grand chose …

D'autres idées ?


Un pas après l'autre, la petite créature verte avance !

Hors ligne

#6 Le 27/03/2009, à 18:05

herberts

Re : awesome : widgets info système

Ben justement, sur cette capture les infos dans la barre du haut ce sont des applets à mon avis. Tu utilises quoi comme panel ?

Hors ligne

#7 Le 27/03/2009, à 18:26

Guizmo.7

Re : awesome : widgets info système

Comme panel ?
Quel panel ? je ne sais pas ce que tu entends par panel.


Un pas après l'autre, la petite créature verte avance !

Hors ligne

#8 Le 27/03/2009, à 18:26

herberts

Re : awesome : widgets info système

ben la barre où tu as le menu, la zone de notification, la liste des fenêtres... Mais peut être que tu n'en utilise pas.

Edit : je viens de jeter un oeil à la doc d'awesome : pour toi, ça s'appelle la barre de statut est c'est intégré au WM. Les applets correspondent aux widgets pour awesome apparemment. Il suffit maintenant de trouver les bons widgets.

Hors ligne

#9 Le 27/03/2009, à 18:56

Guizmo.7

Re : awesome : widgets info système

Mais je n'ai jamais trouvé un widget tout fait.
Je les ai toujours fait moi même. C'est pour ça que je voulais en faire un pour le proc.
En fait un widget sous awesome c'est juste ça dans la conf :

textbox cpuText {
            text = "cpu : "
            text_align = "left"
            align = "left"
            width = "0" # 0 pour automatique
        }

Et après tu lui envoies le text a afficher avec echo "tralalala" | awesome-client.
Donc il me faut le texte : en l'occurence le réseau occupé et si possible le proc et la ram.

Y'a pas un truc avec acpi-quelquechose ?

EDIT : scuse tu réponds trop vite pour moi :s

Dernière modification par Guizmo.7 (Le 27/03/2009, à 18:58)


Un pas après l'autre, la petite créature verte avance !

Hors ligne

#10 Le 27/03/2009, à 19:12

herberts

Re : awesome : widgets info système

ok, je comprend mieux la problématique maintenant. Je vais voir si je trouve des commandes qui pourraient te convenir.

Sinon, tu aurais peut être plus de réponse dans la partie "Openbox, Windowmaker, Enlightenment et autres..." non, qu'en penses tu. Car tu y trouverais peut être d'autres utilisateurs d'awesome, et vouloir afficher des infos systèmes dans la barre des tâches est une problématique assez courante.

Hors ligne

#11 Le 27/03/2009, à 19:23

Guizmo.7

Re : awesome : widgets info système

Merci smile
faut que je re précise dans le premier message ?


Un pas après l'autre, la petite créature verte avance !

Hors ligne

#12 Le 27/03/2009, à 19:24

herberts

Re : awesome : widgets info système

oui, change peut être le titre en "awesome : widgets info système" ou un truc du genre, et précise effectivement dans ton premier message que tu cherches les commandes pour ces widgets.

Hors ligne

#13 Le 04/09/2010, à 11:00

Rolinh

Re : awesome : widgets info système

Salut,

tu as abandonné?
Pour ma part, je peaufine encore et toujours mon rc.lua. Mais pour les infos systèmes, j'ai écrit plusieurs widgets (dès que j'ai finis mes exas, je met à jours la doc sur awesome).
Il y a donc:
- charge CPU
- temperature CPU
- RAM utilisée
- % de la RAM utilisée
- état de la batterie
- statut de la batterie
- applet volume

Tous ces widgets changent de couleurs en fonction des infos qu'ils fournissent. Par exemple, si le CPU montent à 60 degré, il sera jaune et rouge au-dessus de 75 etc pour les autres widget.
Le widget du son permet de monter/descendre le volume en passant la souris au-dessus et scrollant (il affiche le % du volume et devient rouge avec un M quand on le mute). Et sinon, si tu as des touches multimédia pour le son, j'ai rajouté dans le rc.lua ce qu'il faut pour qu'elles fonctionnent.
Bon, il me reste encore plusieurs choses à configurer (notamment widget pour mocp) mais tu peux peut-être t'en inspirer wink
Voilà à quoi cela ressemble:
1283594298.png
Et voilà le rc.lua actuel (qui contient donc le code des widgets).

-- Standard awesome library
require("awful")
require("awful.autofocus")
require("awful.rules")
-- Theme handling library
require("beautiful")
-- Notification library
require("naughty")

-- Sound 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 = "| Vol: <span color='green'>" .. volume .. "</span>% "
		else
			volume = "| Vol: <span color='red'>" .. volume .. "</span>M "
		end
		widget.text = 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

-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/usr/share/awesome/themes/shertheme/theme.lua")

-- This is used later as the default terminal and editor to run.
--terminal = "xterm"
terminal = "urxvtc"
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,
    awful.layout.suit.max.fullscreen,
    awful.layout.suit.magnifier
}
-- }}}

-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {
	names = { "sec", "main", "dev", "web", "im", "mus" },
	layout = { layouts[2], layouts[2], layouts[2], layouts[1], layouts[2], layouts[1]}
	}

for s = 1, screen.count() do
	tags[s] = awful.tag(tags.names, s, tags.layout)
end

--for s = 1, screen.count() do
    -- Each screen has its own tag table.
--    tags[s] = awful.tag({ "sec", "main","dev", "web","chat", "music" }, 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 Volume Control Widget
 tb_volume = widget({ type = "textbox", name = "tb_volume", align = "right" })
 tb_volume:buttons({
 	button({ }, 4, function () volume("up", tb_volume) end),
 	button({ }, 5, function () volume("down", tb_volume) end),
 	button({ }, 1, function () volume("mute", tb_volume) end)
 })
 volume("update", tb_volume)

-- refresh the Volume Control Widget
awful.hooks.timer.register(10, function () volume("update", tb_volume) end)

-- Create a CPU widget
jiffies = {}
function activecpu()
	local s, str
	
	for line in io.lines("/proc/stat") do
		local cpu,newjiffies = string.match(line, "(cpu)\ +(%d+)")
		if cpu and newjiffies then
			if not jiffies[cpu] then
				jiffies[cpu] = newjiffies
			end
			-- The string.format prevents your task list from jumping around
			-- When CPU usage goes above/below 10%
			str = string.format("%02d", newjiffies-jiffies[cpu])

			if str < "31" then
				str = '<span color="green">' .. str .. '</span>'
			elseif str < "51" then
				str = '<span color="yellow">' .. str .. '</span>'
			elseif str < "70" then
				str = '<span color="orange">' .. str .. '</span>'
			else
				str = '<span color="red">' .. str .. '</span>'
			end

			s = '| CPU: ' .. str .. '% '
			jiffies[cpu] = newjiffies
		end
	end
	
	return s
end

cpuinfo = widget({ type = "textbox", name = "cpuinfo" })
-- register the hook to update the display
awful.hooks.timer.register(1, function() cpuinfo.text = activecpu() end)

-- Create CPU Temp Widget
function activecputemp()
	local temp

	for line in io.lines("/proc/acpi/thermal_zone/THM/temperature") do
		temp = string.match(line, "temperature:\ +(%d+)")
	end

	if temp < "46" then 
		temp = '<span color="turquoise">' .. temp .. '</span>'
	elseif	temp < "61" then
		temp = '<span color="yellow">' .. temp .. '</span>'
	elseif  temp < "76" then 
		temp = '<span color="orange">' .. temp .. '</span>'
	else 
		temp = '<span color="red">' .. temp .. '</span>'
	end
	
	return temp
end

cputemp = widget({ type = "textbox" , name = "cputemp" })

-- Assign a hook to update temperature
awful.hooks.timer.register(1, function() cputemp.text = "@ " .. activecputemp() .. "°C | RAM: " end)
	
-- Create a battery status Widget

-- get the full capacity of the battery
for line in io.lines("/proc/acpi/battery/BAT0/info") do
	bat_stat = string.match(line, "last full capacity:\ +(%d+)")

	if bat_stat then
		-- define stat_tot for reuse later for battery status
		stat_tot = bat_stat
	end
end

function activebat()
	local stat_actu, res

	for line in io.lines("/proc/acpi/battery/BAT0/state") do
		local status  =  string.match(line, "remaining capacity:\ +(%d+)")
		local state = string.match(line, "charging state:\ +(%a+)")
		if status then
			stat_actu = status
		end
		if state then
			stat_bat = state
		end
	end

	res = string.format("%.2f", (stat_actu/stat_tot) * 100);

	if ((stat_actu/stat_tot) * 100)  < 10 then 
		res = '<span color="red">' .. res .. '</span>'
	elseif	((stat_actu/stat_tot) * 100) < 20 then
		res = '<span color="orange">' .. res .. '</span>'
	elseif  ((stat_actu/stat_tot) * 100)  < 30 then 
		res = '<span color="yellow">' .. res .. '</span>'
	else 
		res = '<span color="green">' .. res .. '</span>'
	end

	res = res .. '% ' .. stat_bat


	return res 
end

batinfo = widget({ type = "textbox" , name = "batinfo" })

-- Assign a hook to update info
awful.hooks.timer.register(1, function() batinfo.text = "BAT: " .. activebat() .. " |" end)

-- Create a RAM widget giving the MB used by the RAM
-- declare memtot for reuse below
memtot = 2056100

function activeram()
	local active, ramusg, res
	
	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
	end
	
	ramusg = (active/memtot)*100
	
	res = string.format("%.2f", (active/1024))
	
	if ramusg < 51 then
		res = '<span color="green">' .. res .. '</span>MB (<span color="green">' .. string.format("%.2f",ramusg) .. '</span>%)'
	elseif	ramusg < 71 then
		res = '<span color="yellow">' .. res .. '</span>MB (<span color="green">' .. string.format("%.2f",ramusg) .. '</span>%)'
	elseif  ramusg < 86 then 
		res = '<span color="orange">' .. res .. '</span>MB (<span color="green">' .. string.format("%.2f",ramusg) .. '</span>%)'
	else 
		res = '<span color="red">' .. res .. '</span>MB (<span color="green">' .. string.format("%.2f",ramusg) .. '</span>%)'
	end

	return res
end

meminfo = widget({ type = "textbox", name = "meminfo" })

-- Assign a hook to update info
awful.hooks.timer.register(1, function() meminfo.text = activeram() .. " | "  end)

-- 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 = {}
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)

    -- Create the wibox
    mywibox[s] = awful.wibox({ position = "top", screen = s })
    -- Add widgets to the wibox - order matters
    mywibox[s].widgets = {
        {
            mylauncher,
            mytaglist[s],
            mypromptbox[s],
            layout = awful.widget.layout.horizontal.leftright
        },
        mylayoutbox[s],
        s == 1 and mysystray or nil,
	tb_volume,
        mytextclock,
	batinfo,	
	meminfo,
	cputemp,
	cpuinfo,
        mytasklist[s],
        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,           }, "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),

    -- Multimedia keys
    awful.key({ }, "XF86AudioRaiseVolume", function () volume("up", tb_volume) end),
    awful.key({ }, "XF86AudioLowerVolume", function () volume("down", tb_volume) end),
    awful.key({ }, "XF86AudioMute", function () volume("mute", tb_volume) 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,           }, "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),

    -- 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)
)

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,           }, "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)
)

-- Keybindings for the Volume Keys

-- 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 = clientkeysl,
		     floating = false,
                     buttons = clientbuttons } },
    { rule = { class = "MPlayer" },
      properties = { floating = true } },
    { rule = { class = "pinentry" },
      properties = { floating = true } },
    { rule = { class = "gimp" },
      properties = { floating = true} },
    -- Set Firefox to always map on tags number 2 of screen 1.
    -- { rule = { class = "Firefox" },
    --   properties = { tag = tags[1][2] } },
}
-- }}}

-- {{{ 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)
-- }}}

--  Launch the wicd applet
awful.util.spawn('wicd-client')

Hors ligne

#14 Le 04/09/2010, à 15:18

Rolinh

Re : awesome : widgets info système

Je viens de me faire un widget de contrôle/affichage pour mocp cool
Et un widget de notification pour gmail!
(faudra vraiment que je mette à jours la doc sur awesome)

Hors ligne