#76 Le 02/05/2011, à 07:58
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Pour la température, les thermal zone ne fonctionnent plus. Il faut regarder en: /sys/class/thermal/thermal_zone0/temp
Ce fichier contient la température en millième. Mais je n'ai pas encore trop regardé.
Ouep, je sais. C'est pour ça que j'ai modifié mon applet comme suit:
function activecputemp()
local temp
io.input("/sys/bus/acpi/devices/LNXTHERM\:00/thermal_zone/temp")
temp = io.read("*number")/1000
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
Merci pour la config. Je vais mettre des liens vers les configs dans la doc alors.
Hors ligne
#77 Le 02/05/2011, à 08:33
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Hop,
j'ai mis à jour la doc (voir le changelog pour les modifs) et j'ai ajouté un lien vers ton rc.lua et le mien en bas de page.
Dernière modification par Rolinh (Le 02/05/2011, à 08:33)
Hors ligne
#78 Le 02/05/2011, à 15:34
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Hop là, j'ai rajouté une astuce, tirée du wiki d'archlinux, qui permet de tester son rc.lua. Rudement pratique
A part ça, je ne sais pas qui a créé la section "Screenshot" mais ça serait pas mal de la populer du coup non?
Dernière modification par Rolinh (Le 02/05/2011, à 15:35)
Hors ligne
#79 Le 03/05/2011, à 20:43
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
Salut, mon astuce à deux balles si ça peut être utile pour la doc :
- j'ai viré gdm et je lance awesome avec startx, ainsi toutes les erreurs (même les erreurs non bloquantes, par exemple comparer un nombre à une variable nil) s'affichent dans le tty1
- pour avoir un conky vertical toujours visible, j'ai ajouté une marge (95 pixels sur l'écran de droite):
awful.screen.padding( screen[2], { right = 95} )
Par contre la cpuinfo de la doc ne fonctionne pas chez moi (valeurs>100%) mais je n'ai pas pris le temps de regarder en détail ce qui ne va pas !
Hop aussi
Hors ligne
#80 Le 03/05/2011, à 21:18
- fredr
Re : [awesome]installation et configuration (surtout config :P )
Un petit truc qui permet d'ajouter des icones "lanceurs" à la wibox:
lanceur={ image = "/home/frinfo/programmes/eclipse/icon.xpm", command = "/home/frinfo/programmes/eclipse/eclipse"}
lanceur = awful.widget.launcher(lanceur)
tt = awful.tooltip ({ objects = { lanceur } })
tt:set_text ("Eclipse")
tt:set_timeout (0)
Ensuite il suffit d'ajouter lanceur à la liste de la wibox.
Fred
Tirer d'un module du wiki permettant de créer une barre de lanceurs depusi des fichiers .desktop mais je n'ai pas réussi à le faire tourner.
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#81 Le 03/05/2011, à 21:26
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
- j'ai viré gdm et je lance awesome avec startx, ainsi toutes les erreurs (même les erreurs non bloquantes, par exemple comparer un nombre à une variable nil) s'affichent dans le tty1
Moi j'utilise slim comme login manager. Il suffit de consulter le fichier de logs pour voir les éventuelles erreurs.
- pour avoir un conky vertical toujours visible, j'ai ajouté une marge (95 pixels sur l'écran de droite):
awful.screen.padding( screen[2], { right = 95} )
Bonne astuce.
Par contre la cpuinfo de la doc ne fonctionne pas chez moi (valeurs>100%) mais je n'ai pas pris le temps de regarder en détail ce qui ne va pas !
Ah? je vais jeter un oeil à ce qui pourrait clocher alors
Hop aussi
@fredr: j'étais tombé dessus aussi. Tu peux le rajouter dans la page de la documentation
(perso, je n'utilise pas car si j'utilise Awesome c'est aussi pour me passer complétement de la souris)
EDIT:
@ wlourf: tu pourrais donner le retour de
cat /proc/stat
?
Dernière modification par Rolinh (Le 03/05/2011, à 21:34)
Hors ligne
#82 Le 03/05/2011, à 21:56
- fredr
Re : [awesome]installation et configuration (surtout config :P )
@fredr: j'étais tombé dessus aussi. Tu peux le rajouter dans la page de la documentation
(perso, je n'utilise pas car si j'utilise Awesome c'est aussi pour me passer complétement de la souris)
Oui, il serait plus logique de créer un menu perso... Je vais voir pour la doc, mais j'aimerais quand même réussir à faire tourner une version de la barre de lanceurs quand j'aurai une minute....
Fred
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#83 Le 04/05/2011, à 00:36
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
Petit découverte sympa
https://github.com/terceiro/awesome-fre … ter/README
génération d'un menu plus sympa que la version debian
Hors ligne
#84 Le 04/05/2011, à 11:15
- fredr
Re : [awesome]installation et configuration (surtout config :P )
Salut,
Pour le cpuinfo, en fait il retourne la somme de l'activité des coeurs... SI les 2 core tournent à 60 % il retourne: CPU:120%
En fait le proc/acpi contient cpu cpu0 cpu1. Cpu est le total des 2 autres.
La version originale du widget retourne: cpu:22% cpu0:7% cpu1: 15%
La température fonctionne.
Fred
Dernière modification par fredr (Le 04/05/2011, à 11:32)
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#85 Le 04/05/2011, à 12:19
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Ouep, c'est exact. En fait il suffit de modifier cette ligne:
str = string.format("%02d", newjiffies-jiffies[cpu])
Comme suit
str = string.format("%02d", (newjiffies-jiffies[cpu])/2)
Puis là tu te retrouves avec un truc correct
(dans le cas où tu as deux coeurs, bien sûr. Faudrait p'têtre le préciser dans la doc)
@kanor: sympa l'astuce pour le menu
Dernière modification par Rolinh (Le 04/05/2011, à 12:25)
Hors ligne
#86 Le 04/05/2011, à 14:44
- fredr
Re : [awesome]installation et configuration (surtout config :P )
Salut,
Une petite capture de mon awesome, avec une wibox en bas destinée à remplacer gkrelm et conky:
Mon rc.lua:
-- Standard awesome library
require("awful")
require("awful.autofocus")
require("awful.rules")
-- Theme handling library
require("beautiful")
-- Notification library
require("naughty")
require("vicious")
-- Load Debian menu entries
require("debian.menu")
-- {{{ Variable definitions
-- Themes define colours, icons, and wallpapers
beautiful.init("/home/frinfo/.config/awesome/theme.lua")
-- This is used later as the default terminal and editor to run.
terminal = "terminator"
editor = "gvim"
editor_cmd = 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.spiral,
awful.layout.suit.spiral.dwindle,
awful.layout.suit.max,
awful.layout.suit.max.fullscreen,
awful.layout.suit.magnifier,
awful.layout.suit.floating
}
-- }}}
-- {{{ 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, 2, 3, 4, 5, 6, 7, " Network " , " File " }, s, layouts[1])
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
mysysmenu = {
{"Système", "gnome-system-monitor"},
{"MC", terminal .. " -e mc"},
{"Sudo MC", terminal .. " -e 'sudo mc'"},
{"Synaptic", "gksu synaptic"},
{"Logout", '/home/frinfo/dialog.sh'},
-- {"Reboot", "gksu reboot"},
-- {"Halt", "gksu halt"}
}
SSH = {
{"Sun local", terminal.. " -e 'ssh 172.16.110.151 -l fredremy -X'"},
{"Sun Web", terminal.. " -e 'ssh adresse cachee -p 2222 -l fredremy -X'"},
{"HP local", terminal.. " -e 'ssh adresse cachee -l frinfo -X'"},
{"HP Web", terminal.. " -e 'ssh adresse cachee -l frinfo -X'"}
}
FTP = {
{"Sun local", terminal.. " -e 'mc /home/frinfo /#ftp:fredremy@172.16.110.151'"},
{"HP local", terminal.. " -e 'mc /home/frinfo /#ftp:frinfo@192.168.1.209'"},
{"HP Web", terminal.. " -e 'mc /home/frinfo /#ftp:frinfo@ adresse cachee'"}
}
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 },
{ "My SysMenu" , mysysmenu},
{ "SSH" , SSH},
{ "FTP" , FTP},
{ "Debian", debian.menu.Debian_menu.Debian },
{ "open terminal", terminal }
}
})
mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),
menu = mymainmenu })
-- }}}
-- {{{ Wibox
-- Create fraxcpumenu, and add all available governors to it
fraxcpumenu = {}
local fh= io.open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors", "r")
if fh ~= nil then
govstr= fh:read()
fh:close()
local i= 1
for w in string.gmatch(govstr, "%a+") do
fraxcpumenu[i]= { w, "sudo cpufreq-set -c 0 -r --governor "..w}
i= i + 1
end
end
fraxcpumenu = awful.menu.new( { items= fraxcpumenu } )
-- Create fraxcpu widget
fraxcpu= widget({ type = "textbox", name = "fraxcpu", align = "right" })
fraxcpu.text= 'fraxcpu'
sepa= widget({ type = "textbox" })
sepa.text= ' | '
-- Function for updating the fraxcpu widget
fraxcpuupd=1
function hook_fraxcpu (tbw)
if not fraxcpuupd then return(nil) end
local freq=''
local fre2=''
local gov= ''
local fh= io.open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", "r")
if fh then
gov= fh:read()..':'
fh:close()
end
fh= io.open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r")
fl= io.open("/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq", "r")
if fh then
freq= fh:read()
fre2= fl:read()
fh:close()
fl:close()
freq= tostring(math.ceil(tonumber(freq)/1000))
fre2= tostring(math.ceil(tonumber(fre2)/1000))
else
fraxcpuupd= nil
fh= io.open("/proc/cpuinfo", "r")
if fh then
for l in fh:lines() do
freq= string.match(l, '^%s*cpu MHz%s*:%s*([0-9]+)')
if freq ~= nil then break end
freq= ''
end
end
end
tbw.text= gov..freq..':'..fre2
end
-- Mouse button bindings for fraxcpu widget
fraxcpu:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.menu.toggle(fraxcpumenu) end),
awful.button({ }, 2, function () hook_fraxcpu(fraxcpu) end),
awful.button({ }, 3, function () hook_fraxcpu(fraxcpu) end)))
-- Create a systray
mysystray = widget({ type = "systray" })
-- Quick launch bar widget BEGINS
function getValue(t, key)
_, _, res = string.find(t, key .. " *= *([^%c]+)%c")
return res
end
function split (s,t)
local l = {n=0}
local f = function (s)
l.n = l.n + 1
l[l.n] = s
end
local p = "%s*(.-)%s*"..t.."%s*"
s = string.gsub(s,p,f)
l.n = l.n + 1
return l
end
launchbar = { layout = awful.widget.layout.horizontal.leftright }
filedir = "/home/frinfo/.config/awesome/bar/" -- Specify your folder with shortcuts here
files = split(io.popen("ls " .. filedir .. "*.desktop"):read("*all"),"\n")
for i = 1, table.getn(files) do
local t = io.open(files[i]):read("*all")
launchbar[i] = { image = image(getValue(t,"Icon")),
command = getValue(t,"Exec"),
tooltip = getValue(t,"Name"),
position = tonumber(getValue(t,"Position")) or 255
}
end
table.sort(launchbar, function(a,b) return a.position < b.position end)
for i = 1, table.getn(launchbar) do
local txt = launchbar[i].tooltip
launchbar[i] = awful.widget.launcher(launchbar[i])
local tt = awful.tooltip ({ objects = { launchbar[i] } })
tt:set_text (txt)
tt:set_timeout (0)
end
-- Quick launch bar widget ENDS
-- 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,
s == 1 and sepa or nil,
s == 1 and launchbar or nil,
sepa,
mytaglist[s],
sepa,
mypromptbox[s],
layout = awful.widget.layout.horizontal.leftright
},
mylayoutbox[s],
sepa,
s == 1 and mysystray or nil,
s == 1 and sepa or nil,
mytasklist[s],
layout = awful.widget.layout.horizontal.rightleft
}
end
-- }}}
-- Create a textclock widget
mytextclock = widget({ type = "textbox" })
vicious.register(mytextclock, vicious.widgets.date, "%A %d %B %Y | %H:%M")
-- Initialize widget
memwidget = widget({ type = "textbox" })
-- Register widget
vicious.register(memwidget, vicious.widgets.mem, "RAM: $1% ($2MB/$3MB)", 10)
-- Initialize widget
cpuwidget = widget({ type = "textbox" })
-- Register widget
vicious.register(cpuwidget, vicious.widgets.cpu, "CPU0: $2% CPU1: $3%")
-- Initialize widget
temp0widget = widget({ type = "textbox" })
-- Register widget
vicious.register(temp0widget, vicious.widgets.thermal, "$1°C", 10, "thermal_zone0")
-- Initialize widget
temp1widget = widget({ type = "textbox" })
-- Register widget
vicious.register(temp1widget, vicious.widgets.thermal, " $1°C", 10, "thermal_zone1")
-- Initialize widget
temp2widget = widget({ type = "textbox" })
-- Register widget
vicious.register(temp2widget, vicious.widgets.thermal, " $1°C", 10, "thermal_zone2")
-- Initialize widget
temp3widget = widget({ type = "textbox" })
-- Register widget
vicious.register(temp3widget, vicious.widgets.thermal, " $1°C", 10, "thermal_zone3")
-- hard disk temp
hddTempVal = widget({ type = "textbox" })
vicious.register(hddTempVal, vicious.widgets.hddtemp, '${/dev/sda}°C', 10)
-- bat
batwidget = widget({ type = "textbox" })
vicious.register(batwidget, vicious.widgets.bat, 'BAT: $1 $2%', 20, "C1CB")
-- volume
volumewidget = widget({ type = "textbox" })
vicious.register(volumewidget, vicious.widgets.volume, 'SOUND: $1% $2', 10, "Master")
bottom_wibox={}
bottom_wibox = awful.wibox({ position = "bottom", screen = 1, width="90%", align="center" })
awful.wibox.rounded_corners (bottom_wibox, 17)
awful.widget.layout.margins[cpuwidget] = { left = 10 }
awful.widget.layout.margins[mytextclock] = { right = 10 }
bottom_wibox.widgets = {
{
cpuwidget,
sepa,
fraxcpu,
sepa,
temp0widget, temp1widget, temp2widget, temp3widget,
sepa,
hddTempVal,
sepa,
memwidget,
sepa,
batwidget,
sepa,
volumewidget,
layout = awful.widget.layout.horizontal.leftright
},
mytextclock,
layout = awful.widget.layout.horizontal.rightleft
}
-- {{{ 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({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, }, "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({ }, "XF86HomePage", function () awful.util.spawn("firefox") end),
awful.key({ modkey, }, "e", function () awful.util.spawn("pcmanfm") end),
awful.key({ modkey, "Control" }, "e", function () awful.util.spawn("gigolo") end),
awful.key({ }, "XF86Mail", function () awful.util.spawn("xscreensaver-command --lock") end),
awful.key({ }, "XF86AudioLowerVolume", function() awful.util.spawn("amixer -q set Master 5-% unmute") end),
awful.key({ }, "XF86AudioRaiseVolume", function() awful.util.spawn("amixer -q set Master 5+% unmute") end),
awful.key({ }, "XF86AudioMute", function() awful.util.spawn("amixer -q set Master toggle") end),
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, }, "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 } },
-- Set Firefox to always map on tags number 2 of screen 1.
{ rule = { class = "Thunar" },
properties = { tag = tags[1][9] } },
{ rule = { class = "Pcmanfm" },
properties = { tag = tags[1][9] } },
{ rule = { class = "Gigolo" },
properties = { tag = tags[1][8] } },
}
-- }}}
-- {{{ 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)
-- Update the fraxcpu widget every second
awful.hooks.timer.register(1, function ()
hook_fraxcpu(fraxcpu)
end)
-- }}}
--
os.execute ("xfce4-power-manager &")
os.execute ("xscreensaver -no-splash &")
os.execute ("pcmanfm &")
os.execute ("bluetooth-applet &")
os.execute ("parcellite & ")
os.execute ("nm-applet &")
Les lanceurs sont créés par des fichiers desktop dans .config/awesoem/bar
Pour la config des governors: http://forum.ubuntu-fr.org/viewtopic.ph … 9#p3950949
Edit: tous les widgets viennent de la librairie vicious, dispo dans le paquet awesome-extra
Fred
Dernière modification par fredr (Le 04/05/2011, à 14:45)
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#87 Le 04/05/2011, à 17:44
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
Merci pour l'astuce pour le nombre de coeurs
Comme j'utilise le même rc.lua sur différents PC, je récupère le nombre de coeurs dans une variable :
nbcpu=0
for line in io.lines("/proc/cpuinfo") do
for key , value in string.gmatch(line, "processor") do
nbcpu=nbcpu+1
end
end
A placer en dehors de la "fonction activecpu()" pour que la boucle ne soit executée qu'une seule fois. Si ça peut servir ou être amélioré ...
De même pour la mémoire :
for line in io.lines("/proc/meminfo") do
for key , value in string.gmatch(line, "MemTotal") do
i=0
for word in line:gmatch("%w+") do
i=i+1
if i == 2 then
memtot=word
end
end
end
end
La boucle pour récupérer la valeur est pas terrible !! Des idées ?
Hors ligne
#88 Le 04/05/2011, à 18:46
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Bonne idée pour le nombre de cœurs
Si ton but est simplement de récupérer la mémoire totale, alors tu pourrais faire simplement ceci:
for line in io.lines("/proc/meminfo") do
local tmp= string.match(line, "MemTotal:\ +(%d+)")
if tmp then
memtot = tmp
end
end
Parce que trois boucles for imbriquées c'est pas terrible pour les performances (et inutile dans ce cas de figure)
EDIT:
c'est vrai que c'est peut-être un peu plus "user-friendly" de procéder ainsi. Je ne le faisais pas car je trouvais que c'était un parsage de fichier inutile étant donné que ce sont des valeurs statiques sur une même machine.
Dernière modification par Rolinh (Le 04/05/2011, à 18:53)
Hors ligne
#89 Le 04/05/2011, à 18:58
- wlourf
Re : [awesome]installation et configuration (surtout config :P )
Parce que trois boucles for imbriquées c'est pas terrible pour les performances (et inutile dans ce cas de figure)
EDIT:
c'est vrai que c'est peut-être un peu plus "user-friendly" de procéder ainsi. Je ne le faisais pas car je trouvais que c'était un parsage de fichier inutile étant donné que ce sont des valeurs statiques sur une même machine.
Je savais bien ue ce n'était pas terrible
En effet, le but est d'avoir le même rc.lua sur mes différents machines, ou sur une clé Live!
Sinon, je me permet l'ajout d'un petit break :
for line in io.lines("/proc/meminfo") do
local tmp= string.match(line, "MemTotal:\ +(%d+)")
if tmp then
memtot = tmp
break
end
end
Hors ligne
#90 Le 04/05/2011, à 19:05
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Je savais bien ue ce n'était pas terrible
Ouep Autant profiter des expressions régulières quand on peut.
Hors ligne
#91 Le 07/05/2011, à 11:35
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Plop les amis ,
j'ai codé un widget pour avoir la température du GPU:
-- Create GPU Temp Widget
function activegputemp()
local temp
io.input("/sys/bus/pci/devices/0000:01:00.0/temp1_input")
temp = io.read("*number")/1000
if temp < 70 then
temp = '<span color="turquoise">' .. temp .. '</span>'
elseif temp < 80 then
temp = '<span color="yellow">' .. temp .. '</span>'
elseif temp < 90 then
temp = '<span color="orange">' .. temp .. '</span>'
elseif temp < 100 then
temp = '<span color="red">' .. temp .. '</span>'
else
temp = '<span color="red">CRITICAL</span>'
end
return temp
end
gputemp = widget({ type = "textbox" , name = "gputemp" })
-- Assign a hook to update temperature
gputemp_timer = timer({timeout = 1})
gputemp_timer:add_signal("timeout", function() gputemp.text = "| GPU: " .. activegputemp() .. "°C " end)
gputemp_timer:start()
Cela marche impec chez moi. En revanche, je pense que le fichier à lire n'est pas "universel". J'ai une carte Nvidia et j'utilise le pilote Nouveau et je soupçonne fortement que cela ne marche pas avec le driver propriétaire.
Question par curiosité: chez moi, le GPU tourne en moyenne dans les 85°C. Cela me parait élevé bien qu'apparemment, pour le système, une température élevée est de 100°C et critique à 110°C. Qu'en est-il chez vous?
Dernière modification par Rolinh (Le 07/05/2011, à 11:36)
Hors ligne
#92 Le 07/05/2011, à 11:59
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
Avec le driver proprio je tourne à 55° et j'obtiens la température avec la commande suivante
nvidia-settings -q GPUCoreTemp -t
Hors ligne
#93 Le 07/05/2011, à 12:04
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Avec le driver proprio je tourne à 55°
Merci de ta réponse mais je m'inquiète un peu du coup
(mais de mémoire j'avais aussi des températures élevées avec le driver proprio... C'est peut-être ma carte (elle faisait d'ailleurs partie des séries à problèmes...)
Hors ligne
#94 Le 07/05/2011, à 12:19
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
Après mon ancien portable dell qui avait aussi une carte nvidia j'étais toujours à 70° et plus
Hors ligne
#95 Le 07/05/2011, à 12:21
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Ok. J'utilise un vieux portable Dell Latitude D630. Et ils avaient déjà du me remplacer la carte mère (sous garantie heureusement) parce que la puce intégrée Nvidia avait grillé (et Dell c'est définitivement finis pour moi).
Par curiosité, tu as quoi maintenant? Avec quelle carte?
Hors ligne
#96 Le 07/05/2011, à 12:24
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
un hp de type dv6 avec une GeForce 9200
Hors ligne
#97 Le 07/05/2011, à 17:05
- fredr
Re : [awesome]installation et configuration (surtout config :P )
Salut,
Ca dépend fort du portable les temp Nvidia; sur mon HP ma 9600gt est à 55° en moyenne. Mais sur le fujitsu de mon fils (qui joue beaucoup) la même carte est en moyenne sur 85/90° (le portable à 2 ans pas de soucis)
Fred
Fana du distro hopping, actuellement sur Ubuntu 24.04 ...
L'optimiste pense que nous vivons dans le meilleur des mondes. Et le pessimiste craint que ce ne soit exact.
Hors ligne
#98 Le 08/05/2011, à 10:27
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Merci pour ces informations
Sinon, hier j'ai découvert cmus, un lecteur de musique en console avec bindings vi. Comme je le trouve super chouette, il a aussitôt remplacé moc, que j'utilisais jusqu'à présent.
Si j'en parle ici, c'est parce que j'ai réécris le widget / contrôleur de moc afin qu'il contrôle cmus. Les explications ici
(faudra vraiment mettre à jour la doc...)
Hors ligne
#99 Le 08/05/2011, à 16:01
- Kanor
Re : [awesome]installation et configuration (surtout config :P )
Moi j'ai modifié le plugin de gesion de mpd pour ne pas étre dépendant du player en utilisant mpc
function moc_control (action)
local moc_info,moc_state
if action == "next" then
io.popen("mpc next")
elseif action == "previous" then
io.popen("mpc prev")
elseif action == "stop" then
io.popen("mpc stop")
elseif action == "play_pause" then
io.popen("mpc toggle")
end
end
il me reste à recoder le le widget
Hors ligne
#100 Le 08/05/2011, à 16:29
- Rolinh
Re : [awesome]installation et configuration (surtout config :P )
Utile quand on utilise mpd
Hors ligne