J'ai pas vraiment trouvé les logs de X (dans /var/log), enfin disons que c'était pas vraiment les bons logs, mais ça parlait d'une histoire d'autorisation, en root il se lançait nickel, mais en user, il me parlait d'autorisations, et en modifiant mon rc.lua par un de défaut, effectivement ça marchait, j'vous envoie mon rc.lua pour que vous voyez à peu près à quoi il ressemble :
Code : Tout sélectionner
--------------------------
----- awesome/rc.lua -----
--------------------------
-- Standard awesome library
gears = require("gears")
awful = require("awful")
awful.rules = require("awful.rules")
require("awful.autofocus")
-- Widget and layout library
wibox = require("wibox")
-- Theme handling library
beautiful = require("beautiful")
-- Notification library
naughty = require("naughty")
menubar = require("menubar")
vicious = require("vicious")
-- assault -> batterie
local assault = require('assault')
--lancer nm-applet
os.execute("nm-applet &")
--lancer la composite
os.execute("xcompmgr&")
--lancer xautolock
os.execute("xautolock -time 8 -locker /home/victor/.lock_screen/lock -notify 30 -notifier 'notify-send --urgency=normal \"Screen lock\" \"Screen will be locked in 30s\" -i /home/victor/.lock_screen/lock.png -t 5000' &")
--os.execute("notify-send \"Bienvenue\" \"Bonjour seigneur, comment allez-vous ?\" -t 10000&")
-- Mettre en français les langues
os.setlocale("fr_FR.UTF-8", "time")
-- {{{ Error handling
-- Check if awesome encountered an error during startup and fell back to
-- another config (This code will only ever execute for the fallback config)
if awesome.startup_errors then
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, there were errors during startup!",
text = awesome.startup_errors })
end
-- Handle runtime errors after startup
do
local in_error = false
awesome.connect_signal("debug::error", function (err)
-- Make sure we don't go into an endless error loop
if in_error then return end
in_error = true
naughty.notify({ preset = naughty.config.presets.critical,
title = "Oops, an error happened!",
text = err })
in_error = false
end)
end
-- }}}
-- {{{ Variable definitions
-- Themes define colours, icons, font and wallpapers.
beautiful.init("/usr/share/awesome/themes/gladious/theme.lua")
-- SET WALLPAPER
theme.wallpaper = "/home/victor/Wallpaper/square_final.png"
-- This is used later as the default terminal and editor to run.
terminal = "urxvtc"
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.
local 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.floating,
-- awful.layout.suit.spiral.dwindle,
-- awful.layout.suit.max,
-- awful.layout.suit.max.fullscreen,
-- awful.layout.suit.magnifier
}
-- }}}
-- {{{ Wallpaper
if beautiful.wallpaper then
for s = 1, screen.count() do
gears.wallpaper.maximized(beautiful.wallpaper, s, true)
end
end
-- }}}
-- {{{ Tags
-- Define a tag table which will hold all screen tags.
tags = {
names = { "α", "β", "γ", "δ", "ε", "ζ", "η", "θ", "ι" },
layout = { layouts[1], layouts[1], layouts[1], layouts[1], layouts[1],
layouts[1], layouts[1], layouts[1], layouts[1]
}}
for s = 1, screen.count() do
-- Each screen has its own tag table.
tags[s] = awful.tag(tags.names, s, tags.layout)
end
-- }}}
-- {{{ Menu
-- Create a laucher widget and a main menu
myawesomemenu = {
{ "Manual", terminal .. " -e man awesome" , "/home/victor/.config/awesome/icones/man.png" },
{ "Edit config", terminal .. " -e nano /home/victor/.config/awesome/rc.lua" },
{ "Restart", awesome.restart, "/home/victor/.config/awesome/icones/restart.png" },
{ "Quit", awesome.quit , "/home/victor/.config/awesome/icones/shutdown.png" }
}
menuapplications = {
{ "Firefox", "firefox", "/home/victor/.config/awesome/icones/firefox.png" },
{ "Emacs", "emacs", "/home/victor/.config/awesome/icones/emacs.png" },
{ "gVim", "gvim" , "/home/victor/.config/awesome/icones/gvim.png" },
{ "Eclipse", "eclipse" , "/home/victor/.config/awesome/icones/eclipse.png" },
{ "TexStudio", "texstudio" , "/home/victor/.config/awesome/icones/texstudio.png" },
{ "gEdit", "gedit" , "/home/victor/.config/awesome/icones/gedit.png" },
{ "Sublime Text", "subl" , "/home/victor/.config/awesome/icones/sublimetext.png" },
{ "LibreOffice", "libreoffice" , "/home/victor/.config/awesome/icones/libreoffice.png" },
{ "CherryTree", "cherrytree", "/home/victor/.config/awesome/icones/cherrytree.png" },
{ "PCManFM", "pcmanfm" , "/home/victor/.config/awesome/icones/pcmanfm.png" },
{ "Dropbox", "dropbox" , "/home/victor/.config/awesome/icones/dropbox.png" },
{ "irssi", terminal .. " -e irssi" , "/home/victor/.config/awesome/icones/irssi.png" },
{ "weechat", terminal .. " -e weechat" , "/home/victor/.config/awesome/icones/weechat.png" },
{ "HexChat", "hexchat" , "/home/victor/.config/awesome/icones/hexchat.png" }
}
menujeux = {
{ "GLTron", "gltron" },
{ "TeeWorlds", "teeworlds", "/home/victor/.config/awesome/icones/teeworlds.png" }
}
mymainmenu = awful.menu({ items = { { "Awesome", myawesomemenu },
{ "Applications", menuapplications, beautiful.awesome_icon },
{ "Jeux", menujeux, "/home/victor/.config/awesome/icones/menujeux.png" },
{ "Terminal", terminal , "/home/victor/.config/awesome/icones/term_logo.png" },
{ "Lock", "/home/victor/.lock_screen/lock", "/home/victor/.config/awesome/icones/lock.png" },
{ "Reboot", terminal .. " -e reboot" },
{ "Shutdown", terminal .. " -e poweroff" , "/home/victor/.config/awesome/icones/shutdown.png" }
}
})
mylauncher = awful.widget.launcher({ image = beautiful.awesome_icon,
menu = mymainmenu })
-- Menubar configuration
menubar.utils.terminal = terminal -- Set the terminal for applications that require it
-- }}}
-- {{{ Wibox
-- Create a textclock widget
mytextclock = awful.widget.textclock()
------------------------------------------------------
-- {{{ Battery State
myassault = assault({
battery = "BAT0",
adapter = "AC",
width = 36,
height = 14,
stroke_width = 1,
font = sans,
critical_level = 0.15,
normal_color = "AECF96",
critical_color = "#FF5656",
charging_color = "#00bfff"
})
-- {{{ Volume state
local alsawidget =
{
channel = "Master",
step = "5%",
colors =
{
unmute = "#AECF96",
mute = "#FF5656"
},
mixer = terminal .. " -e alsamixer", -- or whatever your preferred sound mixer is
}
-- widget
alsawidget.bar = awful.widget.progressbar ()
alsawidget.bar:set_width (8)
alsawidget.bar:set_height(14)
alsawidget.bar:set_vertical (true)
alsawidget.bar:set_background_color ("#787878")
alsawidget.bar:set_color (alsawidget.colors.unmute)
alsawidget.bar:buttons (awful.util.table.join (
awful.button ({}, 1, function()
awful.util.spawn (alsawidget.mixer)
end),
awful.button ({}, 3, function()
awful.util.spawn ("amixer sset " .. alsawidget.channel .. " toggle")
vicious.force ({ alsawidget.bar })
end),
awful.button ({}, 4, function()
awful.util.spawn ("amixer sset " .. alsawidget.channel .. " " .. alsawidget.step .. "+")
vicious.force ({ alsawidget.bar })
end),
awful.button ({}, 5, function()
awful.util.spawn ("amixer sset " .. alsawidget.channel .. " " .. alsawidget.step .. "-")
vicious.force ({ alsawidget.bar })
end)
))
-- tooltip
alsawidget.tooltip = awful.tooltip ({ objects = { alsawidget.bar } })
-- register the widget through vicious
vicious.register (alsawidget.bar, vicious.widgets.volume, function (widget, args)
alsawidget._current_level = args[1]
if args[2] == "♩"
then
alsawidget._muted = true
alsawidget.tooltip:set_text (" [Muted] ")
widget:set_color (alsawidget.colors.mute)
return 100
end
alsawidget._muted = false
alsawidget.tooltip:set_text (" " .. alsawidget.channel .. ": " .. args[1] .. "% ")
widget:set_color (alsawidget.colors.unmute)
return args[1]
end, 5, alsawidget.channel)
-----------------------------------------------------
-----------------------------------------------------
-- Create a wibox for each screen and add it
wiboxtop = {}
wiboxbottom = {}
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, function(t) awful.tag.viewnext(awful.tag.getscreen(t)) end),
awful.button({ }, 5, function(t) awful.tag.viewprev(awful.tag.getscreen(t)) end)
)
mytasklist = {}
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
-- Without this, the following
-- :isvisible() makes no sense
c.minimized = false
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end),
awful.button({ }, 3, function ()
if instance then
instance:hide()
instance = nil
else
instance = awful.menu.clients({
theme = { 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()
-- 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.filter.all, mytaglist.buttons)
-- Create a tasklist widget
mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)
-- Create the wibox
wiboxtop[s] = awful.wibox({ position = "top", screen = s })
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(mylauncher)
left_layout:add(mytaglist[s])
left_layout:add(mypromptbox[s])
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
if s == 1 then right_layout:add(wibox.widget.systray()) end
right_layout:add(myassault)
right_layout:add(alsawidget.bar)
right_layout:add(mytextclock)
--right_layout:add(mylayoutbox[s])
-- Now bring it all together (with the tasklist in the middle)
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
--layout:set_middle(mytasklist[s])
layout:set_right(right_layout)
wiboxtop[s]:set_widget(layout)
-- Create the bottom wibox
wiboxbottom[s] = awful.wibox({ position = "bottom", screen = s, border_width = 0, height = 20 })
-- Widgets that are aligned to the bottom left
bottom_left_layout = wibox.layout.fixed.horizontal()
-- Widgets that are aligned to the bottom right
bottom_right_layout = wibox.layout.fixed.horizontal()
bottom_right_layout:add(mylayoutbox[s])
-- Now bring it all together (with the tasklist in the middle)
bottom_layout = wibox.layout.align.horizontal()
bottom_layout:set_left(bottom_left_layout)
bottom_layout:set_middle(mytasklist[s])
bottom_layout:set_right(bottom_right_layout)
wiboxbottom[s]:set_widget(bottom_layout)
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() 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),
-- TOUCHES FN, PRINT ECRAN ET LE BORDEL
awful.key({}, "Print", function () awful.util.spawn("scrot -e 'mv $f ~/Images/ 2>/dev/null'") end),
awful.key({}, "XF86MyComputer", function() awful.util.spawn("pcmanfm") end),
awful.key({}, "XF86AudioRaiseVolume", function() awful.util.spawn("amixer set Master 5+ unmute; amixer set Headphone unmute; amixer set Speaker unmute") end),
awful.key({}, "XF86AudioLowerVolume", function() awful.util.spawn("amixer set Master 5- unmute; amixer set Headphone unmute; amixer set Speaker unmute") end),
awful.key({}, "XF86AudioMute", function() awful.util.spawn("amixer set Master toggle") end),
awful.key({}, "XF86MonBrightnessUp", function() awful.util.spawn("xbacklight +5") end),
awful.key({}, "XF86MonBrightnessDown", function() awful.util.spawn("xbacklight -5") end),
awful.key({ "Control", "Shift" }, "l", function() awful.util.spawn("/home/victor/.lock_screen/lock") end),
awful.key({ modkey, "Shift" }, "Return", function () awful.util.spawn("firefox") end),
-- Standard program
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end),
awful.key({ modkey, }, "q", 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),
awful.key({ modkey, "Control" }, "n", awful.client.restore),
-- 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),
-- Menubar
awful.key({ modkey }, "p", function() menubar.show() 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, }, "t", function (c) c.ontop = not c.ontop end),
awful.key({ modkey, }, "n",
function (c)
-- The client currently has the input focus, so it cannot be
-- minimized, since minimized clients can't have the focus.
c.minimized = true
end),
awful.key({ modkey, }, "m",
function (c)
c.maximized_horizontal = not c.maximized_horizontal
c.maximized_vertical = not c.maximized_vertical
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, 9 do
globalkeys = awful.util.table.join(globalkeys,
-- View tag only.
awful.key({ modkey }, "#" .. i + 9,
function ()
local screen = mouse.screen
local tag = awful.tag.gettags(screen)[i]
if tag then
awful.tag.viewonly(tag)
end
end),
-- Toggle tag.
awful.key({ modkey, "Control" }, "#" .. i + 9,
function ()
local screen = mouse.screen
local tag = awful.tag.gettags(screen)[i]
if tag then
awful.tag.viewtoggle(tag)
end
end),
-- Move client to tag.
awful.key({ modkey, "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = awful.tag.gettags(client.focus.screen)[i]
if tag then
awful.client.movetotag(tag)
end
end
end),
-- Toggle tag.
awful.key({ modkey, "Control", "Shift" }, "#" .. i + 9,
function ()
if client.focus then
local tag = awful.tag.gettags(client.focus.screen)[i]
if tag then
awful.client.toggletag(tag)
end
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
-- Rules to apply to new clients (through the "manage" signal).
awful.rules.rules = {
-- All clients will match this rule.
{ rule = { },
properties = { border_width = beautiful.border_width,
border_color = beautiful.border_normal,
focus = awful.client.focus.filter,
raise = true,
keys = clientkeys,
size_hints_honor = 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.connect_signal("manage", function (c, startup)
-- Enable sloppy focus
c:connect_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
local titlebars_enabled = false
if titlebars_enabled and (c.type == "normal" or c.type == "dialog") then
-- buttons for the titlebar
local buttons = awful.util.table.join(
awful.button({ }, 1, function()
client.focus = c
c:raise()
awful.mouse.client.move(c)
end),
awful.button({ }, 3, function()
client.focus = c
c:raise()
awful.mouse.client.resize(c)
end)
)
-- Widgets that are aligned to the left
local left_layout = wibox.layout.fixed.horizontal()
left_layout:add(awful.titlebar.widget.iconwidget(c))
left_layout:buttons(buttons)
-- Widgets that are aligned to the right
local right_layout = wibox.layout.fixed.horizontal()
right_layout:add(awful.titlebar.widget.floatingbutton(c))
right_layout:add(awful.titlebar.widget.maximizedbutton(c))
right_layout:add(awful.titlebar.widget.stickybutton(c))
right_layout:add(awful.titlebar.widget.ontopbutton(c))
right_layout:add(awful.titlebar.widget.closebutton(c))
-- The title goes in the middle
local middle_layout = wibox.layout.flex.horizontal()
local title = awful.titlebar.widget.titlewidget(c)
title:set_align("center")
middle_layout:buttons(buttons)
middle_layout:buttons(buttons)
-- Now bring it all together
local layout = wibox.layout.align.horizontal()
layout:set_left(left_layout)
layout:set_right(right_layout)
layout:set_middle(middle_layout)
awful.titlebar(c):set_widget(layout)
end
end)
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-- }}}
bref, je sais pas si d'autres ont eu le même problème, mais ça vient de Awesome en tout cas, merci à vous !
PS : si vous pensez que ça pourrait venir des extensions que j'ai rajouté (notamment assault), j'ai mis les trucs sur github