Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ma config d'Awesome

Voici une config pour awesome. Y'a plus de commandes et de widgets qu'utilisés. Certaines commandes sont précédées de “–”, c'est parce qu'elle fonctionnent (je les ai testées), mais qu'elle ne me sont pas utiles pour mon usage actuel… Les choses étant changeantes, je les conserve, on sait jamais. Et puis ça peut être utile…

Il faut avoir installé les awesome-fonts (qui n'ont rien à voir avec Awesome le WM…)

rc.lua

vicious = require(“vicious”)

– Standard awesome library local gears = require(“gears”) local awful = require(“awful”) awful.rules = require(“awful.rules”) require(“awful.autofocus”) – Widget and layout library local wibox = require(“wibox”) – Theme handling library local beautiful = require(“beautiful”) – Notification library local naughty = require(“naughty”) local menubar = require(“menubar”)

– Load Debian menu entries require(“debian.menu”)

– WIDGET WIFI wifiwidget = wibox.widget.textbox() vicious.register(wifiwidget, vicious.widgets.wifi, ' <span color=“#66ff33”>  ${ssid} à ${linp}%</span> ', 2, “wlan0”)

– WIDGET BATTERIE batwidget = wibox.widget.textbox() – version simple : vicious.register(batwidget, vicious.widgets.bat, “ | ⚡: $2% - $3 | ”, 61, “BAT0”) – version plus complexe, avec une notification quand la batterie est à 5% ou moins : vicious.register(batwidget, vicious.widgets.bat, function(widget, args) local label = { [“-”] = “”, [“+”] = “ ⚡”, [“↯”] = “ ↯”, [“⌁”] = “⌁” } if args[2] ⇐ 5 then naughty.notify({ title=“ Attention chérie, ça va couper ! ”, text=“ La batterie est à : ”..args[2]..“% ”, bg=“#ff0000”, fg=“#000”, timeout=5, border_width=5, font=“Arial 25” }) end

– NOTIFICATION POUR DÉBRANCHER QUAND BATTERIE EST PLEINE – if args[2] == 100 then – naughty.notify({ – title=“ Débranche Tout ! ”, – text=“ (♫ Choubidoubidouuuu ♫) La batterie est Pleine ”, – bg=“#00FEFE”, – fg=“#ff0000”, – timeout=5, – border_width=5, – font=“Arial 25” – }) – end return '  <span color=“#FFFF00”>  '..args[2]..'%'..label[args[1]]..'</span>  ' end, 61, “BAT0”)

– WIDGET DISQUE DUR - avec notification si /<1GB, /home<5GB, /espace<5GB : ddwidget = wibox.widget.textbox() vicious.register(ddwidget, vicious.widgets.fs, function(widget, args) if tonumber(args['{/ avail_gb}']) ⇐ 1 then – si /<1GB naughty.notify({ title=“ n'en peut plus !”, text=“il reste ”..args[“{/ avail_gb}”]..“GB”, bg=“#FE3300”, fg=“#000000”, timeout=5, border_width=5, font=“Arial 25” }) end if tonumber(args['{/home avail_gb}']) ⇐ 5 then – si /home<5GB naughty.notify({ title=“ est bientôt plein !”, text=“il reste ”..args[“{/home avail_gb}”]..“GB”, bg=“#FE3300”, fg=“#000000”, timeout=5, border_width=5, font=“Arial 25” }) end – pour EEDF : EFFACER de “if” à “end” (avant return) if tonumber(args['{/media/espace avail_gb}']) ⇐ 5 then – si /espace<5GB naughty.notify({ title=“ est bientôt plein !”, text=“il reste ”..args[“{/media/espace avail_gb}”]..“GB”, bg=“#FE3300”, fg=“#000000”, timeout=5, border_width=5, font=“Arial 25” }) end return '<span color=“#ff6600”>  '..args['{/ avail_gb}']..'GB -  '..args[“{/home avail_gb}”]..'GB -  '..args[“{/media/espace avail_gb}”]..'GB</span> ' end, 61)

– pour EEDF : '<span color=“#ff6600”>  ${/ avail_gb} GB </span> - <span color=“#ff751a”>  ${/home avail_gb} GB </span> ', 61)

– WIDGET VOLUME DU SON volumewidget = wibox.widget.textbox() vicious.register(volumewidget, vicious.widgets.volume, function(widget, args)

    local label = { ["♫"] = "", ["♩"] = "- Mute" }
    return '<span color="#ff33cc"> ♫ '.. args[1] .. '%</span> <span color="#ff0000">'.. label[args[2]]..'</span>'
  end, 2, "Master")

– {{{ 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 = "Oh putain y'a des erreurs à la con, bordel !",
                   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(“/home/tramber/.config/awesome/themes/default/theme.lua”) dnicon = wibox.widget.imagebox() upicon = wibox.widget.imagebox() dnicon:set_image(theme.widget_net) upicon:set_image(theme.widget_netup)

– Transparency client.connect_signal(“focus”, function©

                            c.border_color = beautiful.border_focus
                            c.opacity = 1
                         end)

client.connect_signal(“unfocus”, function©

                              c.border_color = beautiful.border_normal
                              c.opacity = 0.7
                           end)

– This is used later as the default terminal and editor to run. terminal = “x-terminal-emulator” editor = os.getenv(“EDITOR”) or “editor” 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.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

} – }}}

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 hold all screen tags. tags = {

names = { "1-", "2-", "3-", "4-", "5- ", "6-", "7-", "8-♪", "9-"},
layout = { layouts[2], layouts[2], layouts[2], layouts[2], layouts[2], layouts[2], layouts[2], layouts[2], layouts[2]}
}

for s = 1, screen.count() do

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" },
 { "edit config", editor_cmd .. " " .. awesome.conffile },
 { "restart", awesome.restart },
 { "quit", awesome.quit }

}

mymainmenu = awful.menu({ items = { – { “awesome”, myawesomemenu, beautiful.awesome_icon },

                                  { "Debian", debian.menu.Debian_menu.Debian },
                               --   { "open terminal", terminal }
                                }
                      })

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 os.setlocale(“fr_FR.UTF-8”) – Français mytextclock = awful.widget.textclock('<span color=“#40E0D0”> %a %d %b %H:%M </span> ', 60) – mytextclock = awful.widget.textclock(“ %a %d %b, %H:%M:%S ”, 1) si vous voulez afficher les secondes

– 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, 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

  1. - Create a promptbox for each screen

mypromptbox[s] = awful.widget.prompt()

  1. - Create an imagebox widget which will contains an icon indicating which layout we're using.
  2. - 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)
  1. - Create a tasklist widget

mytasklist[s] = awful.widget.tasklist(s, awful.widget.tasklist.filter.currenttags, mytasklist.buttons)

  1. - Create the wibox

mywibox[s] = awful.wibox({ position = “bottom”, screen = s })

  1. - 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])
  1. - 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(wifiwidget) right_layout:add(volumewidget) right_layout:add(batwidget) right_layout:add(ddwidget) 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)
  mywibox[s]:set_widget(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,           }, "s",
      function ()
          awful.client.focus.byidx( 1)
          if client.focus then client.focus:raise() end
      end),
  awful.key({ modkey,           }, "t",
      function ()
          awful.client.focus.byidx(-1)
          if client.focus then client.focus:raise() end
      end),
  --awful.key({ modkey,           }, "w", function () mymainmenu:show() end),
  1. - Layout manipulation

awful.key({ modkey, “Shift” }, “s”, function () awful.client.swap.byidx( 1) end),

  awful.key({ modkey, "Shift"   }, "t", function () awful.client.swap.byidx( -1)    end),
  awful.key({ modkey, "Control" }, "s", function () awful.screen.focus_relative( 1) end),
  awful.key({ modkey, "Control" }, "t", 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),
  1. - Standard program

awful.key({ modkey, }, “Return”, function () awful.util.spawn(terminal) end),

  awful.key({ modkey, "Shift" }, "o", awesome.restart),
  awful.key({ modkey, "Shift"   }, "e", awesome.quit),
  awful.key({ }, "Print", function () awful.util.spawn("gnome-screenshot -e 'mv $f ~/Images/screenshots/h 2>/dev/null'") end),

–programmes : awful.key({ modkey, }, “l”, function () awful.util.spawn(“libreoffice”) end), awful.key({ modkey, }, “j”, function () awful.util.spawn(“xterm ranger”) end), awful.key({ modkey, “Control”}, “j”, function () awful.util.spawn(“pcmanfm”) end), awful.key({ modkey, }, “e”, function () awful.util.spawn(“icedove”) end), awful.key({ modkey, }, “i”, function () awful.util.spawn(“conkeror http://www.ffdn.org/fr”) end),

– son awful.key({ modkey, }, “y”, function () awful.util.spawn(“xterm alsamixer”) end), awful.key({ modkey, }, “F3”, function () awful.util.spawn(“amixer set Master toggle”) end), awful.key({ modkey, }, “F6”, function () awful.util.spawn(“amixer -q sset Master 2%+”) end), awful.key({ modkey, }, “F5”, function () awful.util.spawn(“amixer -q sset Master 2%-”) end),

– écrans awful.key({ modkey, }, “F7”, function () awful.util.spawn(“lxrandr”) end),

– toggle titlebar awful.key({ modkey, “Control” }, “a”,

 function (c)
     awful.titlebar.toggle(c)
 end),  

–accès documents directs awful.key({ modkey, “Control”}, “p”, function () awful.util.spawn(“libreoffice /home/tramber/Drive/Bertrand_Pinlet/Banque/Compta_perso/2016/compta_perso_2016.ods”) end), awful.key({ modkey, “Control”}, “i”, function () awful.util.spawn(“libreoffice /home/tramber/Drive/OUTIL_GESTION/Internet/ACCES_INTERNET_perso.doc”) end),

–accès pages internet directs awful.key({ modkey, “Control”}, “m”, function () awful.util.spawn(“conkeror http://www.cpasbien.io/homec.php”) end), awful.key({ modkey, “Control”}, “b”, function () awful.util.spawn(“conkeror https://www.credit-cooperatif.coop/portail/particuliers/login.do”) end),

  awful.key({ modkey,           }, "r",     function () awful.tag.incmwfact( 0.05)    end),
  awful.key({ modkey,           }, "c",     function () awful.tag.incmwfact(-0.05)    end),
  awful.key({ modkey, "Shift"   }, "r",     function () awful.tag.incnmaster( 1)      end),
  awful.key({ modkey, "Shift"   }, "c",     function () awful.tag.incnmaster(-1)      end),
  awful.key({ modkey, "Control" }, "r",     function () awful.tag.incncol( 1)         end),
  awful.key({ modkey, "Control" }, "c",     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),
  1. - Prompt

awful.key({ modkey }, “d”, function () mypromptbox[mouse.screen]:run() end),

  awful.key({ modkey, "Control" }, "k",
            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, "Control" }, "'", 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"   }, "b",      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 = {

  1. - 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,

size_hints_honor = false, – enlever les espaces entre les fenêtres

	     keys = clientkeys,
                   buttons = clientbuttons } },
  1. - { rule = { class = “Xterm” }, properties = { tag = tags[1][1] } },

– { rule = { class = “Navigator” }, properties = { tag = tags[1][2] } }, – { rule = { class = “Conkeror” }, properties = { tag = tags[1][2] } }, { rule = { class = “Icedove” }, properties = { tag = tags[1][3] } }, { rule = { class = “Gimp” }, properties = { tag = tags[1][4] } }, { rule = { class = “Inkscape” }, properties = { tag = tags[1][4] } },

  1. - Set libreoffice to always map on tags number 5 of screen 1.
  2. - { rule = { class = “libreoffice” }, properties = { tag = tags[1][5] } },

– { rule = { class = “TexMaker” }, properties = { tag = tags[1][5] } }, { rule = { class = “Pdfshuffler” }, properties = { tag = tags[1][6] } }, { rule = { class = “Evince” }, properties = { tag = tags[1][6] } }, – { rule = { class = “Gedit” }, properties = { tag = tags[1][7] } }, { rule = { class = “Rhythmbox” }, properties = { tag = tags[1][8] } }, – { rule = { class = “smplayer” }, properties = { tag = tags[1][9] } }, – { rule = { class = “Lxrandr” }, properties = { floating = true } },

} – }}}

– {{{ Signals – Signal function to execute when a new client appears. client.connect_signal(“manage”, function (c, startup)

  1. - Enable sloppy focus

c:connect_signal(“mouse::enter”, function©

      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)
  1. - 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
  elseif not c.size_hints.user_position and not c.size_hints.program_position then
      -- Prevent clients from being unreachable after screen count change
      awful.placement.no_offscreen(c)
  end
  local titlebars_enabled = false
	awful.titlebar.hide(c)
  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)
              )
  1. - 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)
  1. - 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))
  1. - 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:add(title)
      middle_layout:buttons(buttons)
  1. - 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.border_color = beautiful.border_focus end) client.connect_signal(“unfocus”, function© c.border_color = beautiful.border_normal end) – }}}

– au démarrage – os.execute(“guake &”) – os.execute(“seafile-applet &”) – os.execute(“hexchat &”) – os.execute(“bitmask &”)

utilisateurs/tramberlimpe/config/accueil.txt · Dernière modification: 01/05/2016 14:12 par tramberlimpe

Pied de page des forums

Propulsé par FluxBB