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 02/05/2011, à 14:28

IgiX_

[Awesome][rc.lua] Probleme de configuration

Hello,

Je viens vous soliciter car j'ai un petit gros probleme avec la configuration du WM Awesome. J'ai beau suivre les indications de la doc du wiki et m'inspirer de quelques tutos, mais la conf n'est pas prise en compte ... Je voulais savoir si il existait un "Debogueur" . D'avance merci.

Et si ca peut aider, voici mon ~/.config/awesome/rc.lua:

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

-- /etc/xdg/awesome/debian :DDDDDDD
require("debian.menu")

-- Toutes les application affichez en 1 touche :D
require("revelation")
-- Gestion des tags
require("shifty")
-- Gestion des widgets
require("vicious")
-- Specail term
require("teardrop")

-- Theme load
beautiful.init("/home/igix/.config/awesome/themes/zenburn/theme.lua")

--
-- Variables
--
terminal = "gnome-terminal --hide-menubar"
editor = "vim"
editor_cmd = terminal .. " -e " .. editor
modkey = "Mod1"
browser = "chromium-browser"
layouts =
{
-- Table of layouts to cover with awful.layout.inc, order matters.
    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
--

shifty.config.tags =
{
  ["[term]"]    = {position=1, init=true},
  ["[www]"]    = {position=2, init=true, spawn=browser},
  ["[irc]"]    = {position=3, init=true, spawn="xchat"}
}

shifty.taglist = mytaglist

shifty.config.apps =
{
  { match = {"ssh"},                                tag="ssh"},
  { match = {"Preferences", "Setting", "Settings", "Option", "Options"},    float = true, intrusive = true },
  { match = {"Firefox", "google-chrome", browser},                tag = "www", opacity = 1.0},
  { match = {"WeeChat 0.2.6","weechat-curses","weechat", "xchat"},        tag = "irc"},
  {
    match = { "" },
    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),
    awful.button({ modkey }, 8, awful.mouse.client.resize)
    )
  }
}

-- Options par défaut.
shifty.config.defaults =
{
  layout = awful.layout.suit.tile,
  ncol = 1,
  mwfact = 0.50,
  floatBars=false,
}

--
-- Menu
--

myawesomemenu =
{
   {"edit config", editor_cmd .. " " .. awful.util.getdir("config") .. "/rc.lua"},
   {"restart", awesome.restart},
}

mymainmenu = awful.menu
({
  items =
  {
    {"awesome", myawesomemenu, beautiful.awesome_icon },
    {"Debian", debian.menu.Debian_menu.Debian},
    {"Term", terminal}
  }
})

mylauncher = awful.widget.launcher
({
  image = image(beautiful.awesome_icon),
  menu = mymainmenu
})



--
-- Widgets
--

-- Horloge
mytextclock = awful.widget.textclock({align = "right"})

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

  -- Declaration / Init des widgets

  -- Date
  datewidget = widget({ type = "textbox" })
  vicious.register(datewidget, vicious.widgets.date, "%b %d, %R", 60)

  -- Mem Widget
  memwidget = widget({ type = "textbox" })
  vicious.register(memwidget, vicious.widgets.mem, " $2MB/$3MB", 13)

  -- CPU Widget
  cpuwidget = widget({ type = "textbox" })
  vicious.register(cpuwidget, vicious.widgets.cpu, "$1%")

  -- Widget MPD
  mpdwidget = widget({ type = "textbox", name = "mpdwidget" })
  vicious.register(mpdwidget, vicious.widgets.mpd, " $1", 5, { 30, "mpd" })

  -- Net Widget
  netwidget       = widget({ type = "textbox", name = "netwidget" })
  vicious.register(netwidget, vicious.widgets.net, '${eth0 down_kb} kbps / ${eth0 up_kb} kbps', 3)

  -- FS Widget
  fswidget       = widget({ type = "textbox", name = "fswidget" })
  vicious.register(fswidget, vicious.widgets.fs,
  ' ${/home used_gb}<span color="'.. beautiful.fg_widget ..'"> /</span> ${/home size_gb} ', 120)

  tempwidget  = widget({ type = "textbox", name = "tempwidget" })
  vicious.register(tempwidget, vicious.widgets.thermal, "$1°C", 20, "thermal_zone2")

  -- Icones
  mycpuicon    = widget({ type = "imagebox", name = "mycpuicon" })
  mycpuicon.image    = image(beautiful.widget_cpu)

  myneticon    = widget({ type = "imagebox", name = "myneticon" })
  myneticonup    = widget({ type = "imagebox", name = "myneticonup" })

  myneticonup.image = image(beautiful.widget_netup)
  myneticon.image    = image(beautiful.widget_net)

  myvolicon    = widget({ type = "imagebox", name = "myvolicon" })
  myvolicon.image    = image(beautiful.widget_vol)

  mymusicicon    = widget({ type = "imagebox", name = "mymusicicon"})
  mymusicicon.image = image(beautiful.widget_music)

  myspacer    = widget({ type = "textbox", name = "myspacer" })
  myseparator    = widget({ type = "textbox", name = "myseparator" })

  myspacer.text    = " "
  myseparator.text= "|"

  mydiskicon    = widget({ type = "imagebox", name = "mydiskicon" })
  mytimeicon    = widget({ type = "imagebox", name = "mytimeicon" })
  mytimeicon.image = image(beautiful.widget_date)
  mydiskicon.image = image(beautiful.widget_fs)

  mymemicon    = widget({ type = "imagebox", name = "mymemicon" })
  mymemicon.image = image(beautiful.widget_mem)

  -- Create the wibox
  mywibox[s] = awful.wibox({ position = "top", screen = s })
  -- Add widgets to the wibox - order matters
  mywibox[s].widgets =
  {
    {
      mytaglist[s],
      mypromptbox[s],
      layout = awful.widget.layout.horizontal.rightleft
    },
    mylayoutbox[s],
    myspacer,
    datewidget, mytimeicon,
    s == 1 and mysystray or nil,
    myspacer,
    mpdwidget, mymusicicon,
    myspacer,
    fswidget, mydiskicon,
    myspacer,
    myneticonup, netwidget, myneticon,
    myspacer,
    cpuwidget,
    mycpuicon,
    myspacer,
    memwidget,
    mymemicon,
    layout = awful.widget.layout.horizontal.rightleft
  }
end

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

--
-- Binds clavier
--
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({ 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 = "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)
-- }}}

D'avance, merci.

Dernière modification par IgiX_ (Le 02/05/2011, à 14:30)

Hors ligne

#2 Le 02/05/2011, à 15:04

Rolinh

Re : [Awesome][rc.lua] Probleme de configuration

Salut,

premier truc: tu peux tester s'il n'y a pas d'erreur de syntaxe dans ton rc.lua avec cette commande:

awesome -k

ça évite de se retrouver avec un truc inexistant en tentant de recharger la configuration.

Pour le reste, laisse-moi 5mn, que je vérifie ta configuration wink

EDIT:
J'ai testé ta configuration, elle marche très bien wink

Par contre, il n'y a pas de raison que ta configuration ne soit pas chargée si tu l'as bien dans ton ~/.config/awesome/rc.lua.
Essaie de lancer awesome avec l'option -c pour préciser le fichier de conf, histoire de voir s'il se charge.

Dernière modification par Rolinh (Le 02/05/2011, à 15:16)

Hors ligne

#3 Le 02/05/2011, à 16:39

IgiX_

Re : [Awesome][rc.lua] Probleme de configuration

Hello,

merci de la rapidite
avec awesome -k j'ai eu pas mal d'erreur, suite mes habitudes de code, je sautais une ligne pour ouvrir la parenthese pour les arguments des fonctions, quand ces derniers sont trop nombreux...:wq

Maintenant que je n'ai plus d'erreurs, la config e se load pas :s je ne comprend pas..
D'avance Merci.

Dernière modification par IgiX_ (Le 02/05/2011, à 16:50)

Hors ligne

#4 Le 08/05/2011, à 11:53

Rolinh

Re : [Awesome][rc.lua] Probleme de configuration

Question peut-être bête mais...où se trouve ton rc.lua?
Est-il accessible en lecture?

ls -la ~/.config/awesome/rc.lua

As-tu pensé à regardé les logs?

Hors ligne