-- [[ | -- If LuaRocks is installed, m -- | -- found (e.g. lgi). If LuaRoc -- AWESOME WM CONFIG by D | pcall(require, "luarocks.loade -- | -- ]] | -- Standard awesome library | local gears = require("gears") gears = require("gea | local awful = require("awful") awful = require("awf | require("awful.autofocus") awful.rules = require("awf | -- Widget and layout library awful.autofoxus = require("awf | local wibox = require("wibox") vicious = require("vic | -- Theme handling library wibox = require("wib | local beautiful = require("bea beautiful = require("bea | -- Notification library naughty = require("nau | local naughty = require("naugh menubar = require("men | local menubar = require("menub | local hotkeys_popup = require( layouts = require("lay | -- Enable hotkeys help widget center = require("wib | -- when client with a matching | require("awful.hotkeys_popup.k | -- Run Once | -- Load Debian menu entries function run_once(cmd) | local debian = require("debian findme = cmd | local has_fdo, freedesktop = p firstspace = cmd:find( | if firstspace then | -- {{{ Error handling findme = cmd:s | -- Check if awesome encountere end | -- another config (This code w awful.util.spawn_with_ < end < < run_once("compton --config /ho < run_once("echo 'Welcome back T < --run_once("urxvt -g 100x25") < < < local oldspawn = awful.util.sp < awful.util.spawn = function (s < oldspawn(s, false) < end < < < -- Error handling < if awesome.startup_errors then if awesome.startup_errors then naughty.notify({ | naughty.notify({ preset = preset = naugh | title = " title = "Oops, | text = aw text = awesome < }) < end end -- Handle runtime errors | -- Handle runtime errors after do do > local in_error = false > awesome.connect_signal("de > -- Make sure we don't > if in_error then retur > in_error = true > > naughty.notify({ prese > title > text in_error = false in_error = false awesome.connect_signal | end) -- Avoid endle < if in_error th < in_error = tru < < naughty.notify < preset < title < text = < }) < in_error = fal < end) < end end > -- }}} | -- {{{ Variable definitions -- Variable Definition | -- Themes define colours, icon home = os.getenv("H | beautiful.init(gears.filesyste config_dir = home .. " | | -- This is used later as the d beautiful.init(config_dir .. " | terminal = "x-terminal-emulato | editor = os.getenv("EDITOR") o terminal = "urxvt" | editor_cmd = terminal .. " -e editor = "vim" | editor_cmd = terminal .. | -- Default modkey. gui_editor = "leafpad" | -- Usually, Mod4 is the key wi browser = "firefox-nig | -- If you do not like this or tasks = terminal .. | -- I suggest you to remap Mod4 volctrl = "Master" | -- However, you can use anothe | modkey = "Mod4" modkey = "Mod4" | altkey = "Mod1" | -- Table of layouts to cover w | awful.layout.layouts = { | awful.layout.suit.floating -- Layout Table | awful.layout.suit.tile, local layouts = { | awful.layout.suit.tile.lef awful.layout.suit.floa | awful.layout.suit.tile.bot layouts.uselesstile, | awful.layout.suit.tile.top --awful.layout.suit.ti | awful.layout.suit.fair, layouts.twily | awful.layout.suit.fair.hor > awful.layout.suit.spiral, > awful.layout.suit.spiral.d > awful.layout.suit.max, > awful.layout.suit.max.full > awful.layout.suit.magnifie > awful.layout.suit.corner.n > -- awful.layout.suit.corne > -- awful.layout.suit.corne > -- awful.layout.suit.corne } } > -- }}} | -- {{{ Menu -- Wallpaper | -- Create a launcher widget an --if beautiful.wallpaper then | myawesomemenu = { -- for s = 1, screen.co | { "hotkeys", function() hot -- gears.wallpa | { "manual", terminal .. " - -- end | { "edit config", editor_cmd --end | { "restart", awesome.restar | { "quit", function() awesom < -- Tags < tags = { < --names = { "/main/", < names = { " ▫ ", " ▣ ", < --layout = { layouts[3 < layout = { layouts[1], < } } for s = 1, screen.count() do < tags[s] = awful.tag(ta < end < > local menu_awesome = { "awesom > local menu_terminal = { "open --menu_sep="" | if has_fdo then menu_sep="--------------" | mymainmenu = freedesktop.m | before = { menu_awesom -- Menu | after = { menu_termin myaccessories = { | }) { "7-Zip", "7zFM" }, | else { "Calculator", "galcu | mymainmenu = awful.menu({ { "Leafpad", gui_edito < { "Thunar", "thunar" } < } < myinternet = { < { "Nightly", browser } < { "Thunderbird", "thun < { menu_sep, "" }, < --{ "transmission", "t < { "FileZilla", "filezi < { "Irrsi", terminal .. < { "rTorrent", terminal < { "Wicd", terminal .. < } < mymedia = { < { "Ncmpcpp", terminal < { "Spotify", "spotify" < { "VLC", "vlc" }, < { menu_sep, "" }, < { "Volume", terminal . < } < mygames = { < { "ArmagetronAd", "arm < { "Minecraft", "sh /ho < { "NetHack", terminal < { "Stone-Soup", termin < } < mygraphics = { < { "Colors", "gcolor2" < { "Gimp", "gimp" }, < { menu_sep, "" }, < { "Feh", "feh /home/tw < { "Sxiv", "sxiv -tsr / < } < myoffice = { < { "Libre Base", "libre < { "Libre Calc", "libre < { "Libre Draw", "libre < { "Libre Impress", "li < { "Libre Math", "libre < { "Libre Writer", "lib < } < mysystem = { < --{ "GTK-Theme", "gtk- < { "GTK-Theme", "lxappe < { "Lock Screen", "/hom < { "Process Viewer", ta < { menu_sep, "" }, < { "Logout", "killall a < { "Reboot", "reboot" } < { "Shutdown", "powerof < { menu_sep, "" }, < { "Performance", "sh / < { "Quality", "sh /home < } < mymainmenu = awful.menu({ < items = { items = { { "Ranger", te | menu_awesome { "Terminal", | { "Debian", { menu_sep, "" | menu_termina { "Accessories | } { "Games", myg | }) { "Graphics", | end { "Internet", < { "Media", mym < { "Office", my < { "System", my < } < }) < mylauncher = awful.widget.laun < image = beautiful.awes < menu = mymainmenu < }) < < < -- WIBOX < < -- Kernel Info < syswidget = wibox.widget.textb < vicious.register( syswidget, v < < -- Uptime < uptimewidget = wibox.widget.te < vicious.register( uptimewidget < < -- Cpu < cpuwidget = wibox.widget.textb < vicious.register( cpuwidget, v < < -- Ram < memwidget = wibox.widget.textb < vicious.register( memwidget, v < < -- Clock < mytextclock = awful.widget.tex < mytextclock:buttons(awful.util < awful.button({ }, 1, funct < )) < -- Mpd < mpdwidget = wibox.widget.textb < vicious.register( mpdwidget, v < if args["{state}"] == "Sto < return "" < else < return ' 20 then < volico = volico.."⮞ < else < volico = volico.."⮟ < end < end < volico = volico.."" < return volico..' '..volbar | -- Menubar configuration end, 1, volctrl ) | menubar.utils.terminal = termi volumewidget:buttons(awful.uti | -- }}} awful.button({ }, 1, funct | )) | -- Keyboard map indicator and > mykeyboardlayout = awful.widge > > -- {{{ Wibar > -- Create a textclock widget > mytextclock = wibox.widget.tex > > -- Create a wibox for each scr > local taglist_buttons = gears. > awful.butt > awful.butt > > > > > awful.butt > awful.butt > > > > > awful.butt > awful.butt > ) -- Battery | local tasklist_buttons = gears batwidget = wibox.widget.textb | awful.but vicious.register(batwidget, vi | local batbar = "" | local batico = " awful.screen.connect_for_each_ > -- Wallpaper > set_wallpaper(s) > > -- Each screen has its own > awful.tag({ "1", "2", "3", > > -- Create a promptbox for > s.mypromptbox = awful.widg > -- Create an imagebox widg > -- We need one layoutbox p > s.mylayoutbox = awful.widg > s.mylayoutbox:buttons(gear > awf > awf > awf > awf > -- Create a taglist widget > s.mytaglist = awful.widget > screen = s, > filter = awful.widget > buttons = taglist_butt > } > > -- Create a tasklist widge > s.mytasklist = awful.widge > screen = s, > filter = awful.widget > buttons = tasklist_but > } > > -- Create the wibox > s.mywibox = awful.wibar({ > > -- Add widgets to the wibo > s.mywibox:setup { > layout = wibox.layout. > { -- Left widgets > layout = wibox.lay > mylauncher, > s.mytaglist, > s.mypromptbox, > }, > s.mytasklist, -- Middl > { -- Right widgets > layout = wibox.lay > mykeyboardlayout, > wibox.widget.systr > mytextclock, > s.mylayoutbox, > }, > } > end) > -- }}} -- Mouse Bindings | -- {{{ Mouse bindings root.buttons(awful.util.ta | root.buttons(gears.table.join( awful.button({ }, 3, funct awful.button({ }, 3, funct awful.button({ }, 4, awful awful.button({ }, 4, awful awful.button({ }, 5, awful awful.button({ }, 5, awful )) | )) | -- }}} < -- Key Bindings < globalkeys = awful.util.ta < < -- Capture Screenshot < --awful.key({ }, "Print", < awful.key({ }, "Print", fu < < < -- Move Clients < awful.key({ altkey }, "Nex < awful.key({ altkey }, "Pri < awful.key({ altkey }, "Dow < awful.key({ altkey }, "Up" < awful.key({ altkey }, "Lef < awful.key({ altkey }, "Rig < awful.key({ modkey, < awful.key({ modkey, < awful.key({ modkey, < awful.key({ modkey, < function () < awful.client.focus.byi < if client.focus then c < end), < awful.key({ modkey, < function () < awful.client.focus.byi < if client.focus then c < end), < awful.key({ modkey, < < -- Show/Hide Wibox < awful.key({ modkey, "Contr < mywibox[mouse.screen]. < end), < awful.key({ modkey }, "b", < mytaskbox[mouse.screen < end), < < -- Application switcher | -- {{{ Key bindings awful.key({ altkey }, "Tab | globalkeys = gears.table.join( -- If you want menu po | awful.key({ modkey, awful.menu.menu_keys.d | {description="sh local cmenu = awful.me | awful.key({ modkey, end), | {description = " > awful.key({ modkey, > {description = " > awful.key({ modkey, > {description = " > awful.key({ modkey, > function () > awful.client.focus > end, > {description = "focus > ), > awful.key({ modkey, > function () > awful.client.focus > end, > {description = "focus > ), > awful.key({ modkey, > {description = " -- Layout manipulation -- Layout manipulation awful.key({ modkey, "Shift | awful.key({ modkey, "Shift awful.key({ modkey, "Shift | {description = " awful.key({ modkey, "Contr | awful.key({ modkey, "Shift awful.key({ modkey, "Contr | {description = " awful.key({ modkey | awful.key({ modkey, "Contr awful.key({ modkey, | {description = " function () | awful.key({ modkey, "Contr awful.client.focus.his | {description = " if client.focus then | awful.key({ modkey, client.focus:raise | {description = " end | awful.key({ modkey, end), | function () > awful.client.focus > if client.focus th > client.focus:r > end > end, > {description = "go bac -- Standard program -- Standard program awful.key({ modkey, | awful.key({ modkey, awful.key({ modkey, "Contr | {description = " awful.key({ modkey, "Shift | awful.key({ modkey, "Contr awful.key({ modkey, | {description = " awful.key({ modkey, | awful.key({ modkey, "Shift awful.key({ modkey, "Shift | {description = " awful.key({ modkey, "Shift | awful.key({ modkey, "Contr | awful.key({ modkey, awful.key({ modkey, "Contr | {description = " awful.key({ modkey, | awful.key({ modkey, awful.key({ modkey, "Shift | {description = " awful.key({ modkey, "Cotro | awful.key({ modkey, "Shift | {description = " -- Dropdown terminal | awful.key({ modkey, "Shift -- awful.key({ modkey, | {description = " | awful.key({ modkey, "Contr -- Widget popups | {description = " -- awful.key({ altkey, | awful.key({ modkey, "Contr | {description = " -- Volume Control | awful.key({ modkey, awful.key({ "Control" }, " | {description = " awful.util.spawn("amix | awful.key({ modkey, "Shift vicious.force({ volume | {description = " end), | awful.key({ "Control" }, " | awful.key({ modkey, "Contr awful.util.spawn("amix | function () vicious.force({ volume | local c = aw end), | -- Focus res awful.key({ "Control" }, " | if c then awful.util.spawn("amix | c:emit_sig vicious.force({ volume | "reque end), | ) awful.key({ "Control" }, " | end awful.util.spawn("amix | end, vicious.force({ volume | {description = " end), < < -- Copy to clipboard < awful.key({ modkey, < < -- User programs < awful.key({ "Control", alt < awful.key({ "Control", alt < awful.key({ "Control", alt < -- Prompt -- Prompt awful.key({ modkey }, "r", | awful.key({ modkey }, > {description = " awful.key({ modkey }, "x", awful.key({ modkey }, "x", function () | function () awful.prompt.run({ pro | awful.prompt mypromptbox[mouse.scre | prompt awful.util.eval, nil, | textbox awful.util.getdir("cac | exe_callba end) | history_pa ) | } > end, > {description = " > -- Menubar > awful.key({ modkey }, "p", > {description = " > ) clientkeys = awful.util.ta | clientkeys = gears.table.join( awful.key({ modkey, | awful.key({ modkey, awful.key({ modkey, "Shift | function (c) awful.key({ modkey, "Contr | c.fullscreen = not awful.key({ modkey, "Contr | c:raise() awful.key({ modkey, | end, awful.key({ modkey, | {description = "toggle > awful.key({ modkey, "Shift > {description = " > awful.key({ modkey, "Contr > {description = " > awful.key({ modkey, "Contr > {description = " > awful.key({ modkey, > {description = " > awful.key({ modkey, > {description = " awful.key({ modkey, awful.key({ modkey, function (c) | function (c) -- The client currentl | -- The client curr -- minimized, since mi | -- minimized, sinc c.minimized = true | c.minimized = true end), | end , > {description = "minimi awful.key({ modkey, awful.key({ modkey, function (c) | function (c) c.maximized_horizontal | c.maximized = not c.maximized_vertical | c:raise() | end , -- Patch :: No border | {description = "(un)ma --[[if c.maximized_hor | awful.key({ modkey, "Contr c.border_width = " | function (c) local w_area = scr | c.maximized_vertic c:geometry( { widt | c:raise() else | end , c.border_width = b | {description = "(un)ma end]]-- | awful.key({ modkey, "Shift end) | function (c) ) | c.maximized_horizo | c:raise() | end , > {description = "(un)ma > ) -- Bind all key numbers to | -- Bind all key numbers to tag -- Be careful: we use keyc | -- Be careful: we use keycodes -- This should map on the | -- This should map on the top for i = 1, 9 do | for i = 1, 9 do globalkeys = awful.uti | globalkeys = gears.table.j > -- View tag only. awful.key({ modkey }, awful.key({ modkey }, function () | function () local screen = mou | local local tag = awful. | local if tag then | if tag awful.tag.view | tag end | end end), | end, > {description > -- Toggle tag display. awful.key({ modkey, "C awful.key({ modkey, "C function () | function () local screen = mou | local sc local tag = awful. | local ta if tag then | if tag t awful.tag.view | awful end | end end), | end, > {description > -- Move client to tag. awful.key({ modkey, "S awful.key({ modkey, "S function () | function () local tag = awful. | if clien if client.focus an | loca awful.client.m | if t end | end), | end > end > end, > {description > -- Toggle tag on focus awful.key({ modkey, "C awful.key({ modkey, "C function () | function () local tag = awful. | if clien if client.focus an | loca awful.client.t | if t end | end)) | end end | end > end, > {description > ) > end clientbuttons = awful.util | clientbuttons = gears.table.jo awful.button({ }, 1, funct | awful.button({ }, 1, funct awful.button({ modkey }, 1 | c:emit_signal("request awful.button({ modkey }, 3 | end), | awful.button({ modkey }, 1 | c:emit_signal("request -- Set keys | awful.mouse.client.mov root.keys(globalkeys) | end), | awful.button({ modkey }, 3 | c:emit_signal("request -- Rules | awful.mouse.client.res awful.rules.rules = { | end) -- All clients will ma | ) { rule = { }, < properties = { border_ < border_color = bea < focus = awful.clie < keys = clientkeys, < buttons = clientbu < size_hints_honor = < --{ rule = { class = " < -- properties = { flo < { rule = { class = "Gi < properties = { flo < { rule = { class = "Ga < properties = { flo < { rule = { class = "Pl < properties = { flo < -- Set Firefox to alwa < -- { rule = { class = < -- properties = { ta < } < > -- Set keys > root.keys(globalkeys) > -- }}} > > -- {{{ Rules > -- Rules to apply to new clien > awful.rules.rules = { > -- All clients will match > { rule = { }, > properties = { border_wi > border_co > focus = a > raise = t > keys = cl > buttons = > screen = > placement > } > }, > > -- Floating clients. > { rule_any = { > instance = { > "DTA", -- Firefox a > "copyq", -- Include > "pinentry", > }, > class = { > "Arandr", > "Blueman-manager", > "Gpick", > "Kruler", > "MessageWin", -- ka > "Sxiv", > "Tor Browser", -- Ne > "Wpa_gui", > "veromix", > "xtightvncviewer"}, > > -- Note that the name > -- and the name shown > name = { > "Event Tester", -- > }, > role = { > "AlarmWindow", -- T > "ConfigManager", -- > "pop-up", -- e > } > }, properties = { floati -- Signals | -- Add titlebars to normal -- Signal function to execute | { rule_any = {type = { "no client.connect_signal("manage" | }, properties = { titleb -- Enable sloppy focus | }, c:connect_signal("mouse::e | if awful.layout.get(c. | -- Set Firefox to always m and awful.client.f | -- { rule = { class = "Fir client.focus = c | -- properties = { screen end | } end) | -- }}} if not startup then | -- {{{ Signals -- Set the windows at | -- Signal function to execute -- i.e. put it at the | client.connect_signal("manage" -- awful.client.setsla | -- Set the windows at the | -- i.e. put it at the end -- Put windows in a sm | -- if not awesome.startup if not c.size_hints.us | awful.placement.no | if awesome.startup awful.placement.no | and not c.size_hints.use end | and not c.size_hints.pro > -- Prevent clients fro > awful.placement.no_off end end > end) local titlebars_enabled = | -- Add a titlebar if titlebars if titlebars_enabled and ( | client.connect_signal("request -- buttons for the tit | -- buttons for the titleba local buttons = awful. | local buttons = gears.tabl awful.button({ | awful.button({ }, 1, f client.foc | c:emit_signal("req c:raise() | awful.mouse.client awful.mous | end), end), | awful.button({ }, 3, f awful.button({ | c:emit_signal("req client.foc | awful.mouse.client c:raise() | end) awful.mous | ) end) < ) < -- Widgets that are al | awful.titlebar(c) : setup local left_layout = wi | { -- Left left_layout:add(awful. | awful.titlebar.wid left_layout:buttons(bu | buttons = buttons, | layout = wibox.la -- Widgets that are al | }, local right_layout = w | { -- Middle right_layout:add(awful | { -- Title right_layout:add(awful | align = "cent right_layout:add(awful | widget = awful right_layout:add(awful | }, right_layout:add(awful | buttons = buttons, | layout = wibox.la -- The title goes in t | }, local middle_layout = | { -- Right local title = awful.ti | awful.titlebar.wid title:set_align("cente | awful.titlebar.wid middle_layout:add(titl | awful.titlebar.wid middle_layout:buttons( | awful.titlebar.wid | awful.titlebar.wid -- Now bring it all to | layout = wibox.lay local layout = wibox.l | }, layout:set_left(left_l | layout = wibox.layout. layout:set_right(right | } layout:set_middle(midd | end) awful.titlebar(c):set_ | -- Enable sloppy focus, so tha end | client.connect_signal("mouse:: > c:emit_signal("request::ac end) end) client.connect_signal("focus", client.connect_signal("focus", client.connect_signal("unfocus client.connect_signal("unfocus / -- }}} < $ diff rc.lua rc_default.lua -y -W 70 > diff_rc_twily_rc_default.log twily jul 2024