X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/887c37778210facea0c4c45a032dc00f06eaf78d..01f2d60cadfdee54ba6626699e3b315e5ac9605e:/.config/awesome/rc.lua diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 3c7cdf3..95769b4 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -77,7 +77,9 @@ cmdkey = "Mod3" -- Table of layouts to cover with awful.layout.inc, order matters. local layouts = { default = awful.layout.suit.fair, + default_horiz = awful.layout.suit.fair.horizontal, tiled = awful.layout.suit.tile, + tiled_horiz = awful.layout.suit.tile.top, floating = awful.layout.suit.floating, maximised = awful.layout.suit.max } @@ -86,6 +88,8 @@ awful.layout.layouts = { layouts.tiled, layouts.maximised, layouts.floating, + layouts.default_horiz, + layouts.tiled_horiz, } -- }}} @@ -115,11 +119,18 @@ local function set_wallpaper(s) end end -local function centre_mouse_on_area(a) - mouse.coords({ - x = a.x + a.width/2, - y = a.y + a.height/2, - }, true) +local function move_mouse_to_area(a) + local coords = mouse.coords() + if (coords.x < a.x or + coords.x > (a.x+a.width) or + coords.y < a.y or + coords.y > (a.y+a.height)) then + + mouse.coords({ + x = a.x + a.width/2, + y = a.y + a.height/2, + }, true) + end end -- }}} @@ -166,8 +177,11 @@ menubar.utils.terminal = terminal -- Set the terminal for applications that requ -- forced_width = 4, -- widget = wibox.widget.separator --} -local spacer = wibox.widget.textbox() -spacer:set_text(" │ ") +local function make_spacer(text) + local spacer = wibox.widget.textbox() + spacer:set_text(text or " │ ") + return spacer +end -- Keyboard map indicator and switcher mykeyboardlayout = awful.widget.keyboardlayout() @@ -186,7 +200,7 @@ local lain_bat = lain.widget.bat({ clocksarray = clocksarray.get_clocksarray("%a %d %b %H:%M:%S %Z", { ["NZ"] = "Pacific/Auckland", ["DE"] = "Europe/Berlin" - }, spacer) + }, make_spacer()) -- Create a wibox for each screen and add it local taglist_buttons = gears.table.join( @@ -279,34 +293,31 @@ awful.screen.connect_for_each_screen(function(s) -- Add widgets to the wibox local right_widgets = gears.table.join(clocksarray, { - spacer, - --spacing = 4, - --spacing_widget = spacer, + make_spacer(" "), + wibox.widget.systray(), s.mylayoutbox, layout = wibox.layout.fixed.horizontal, }) if s == screen.primary then right_widgets = gears.table.join({ - wibox.widget.systray(), - spacer, + make_spacer(" "), ccwidgets.btc_widget, - spacer, + make_spacer(), ccwidgets.eth_widget, - spacer, + make_spacer(), lain_bat.widget, - spacer, + make_spacer(), }, right_widgets) end s.mywibox:setup { layout = wibox.layout.align.horizontal, { -- Left widgets - spacing = 4, - spacing_widget = spacer, layout = wibox.layout.fixed.horizontal, --s.namebox, s.mytaglist, + make_spacer(" "), s.mypromptbox, }, s.mytasklist, -- Middle widget @@ -402,10 +413,11 @@ end local function initialise_to_autorandr_profile() local profile + profile = nil local function process_line(line) if profile then return end - local match = string.match(line, "^([^%s]+) %(detected%)$") + local match = string.match(line, "^([^%s]+) %(detected%)") if match then profile = match end @@ -426,7 +438,7 @@ local function initialise_to_autorandr_profile() end awful.spawn.with_line_callback('autorandr', { - stderr = process_line, + stdout = process_line, output_done = output_done, exit = handle_exit }) @@ -465,7 +477,7 @@ default_tags = gears.table.join(default_tags, { selected = true, exec_once = { terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh -4 -- irc-host tmux new -As irc irssi" }, instance = { "irc" }, - targets = { "catalyst/eDP1", "mtvic/eDP1" }, + targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" }, }, { name = "[m]", @@ -476,7 +488,7 @@ default_tags = gears.table.join(default_tags, { selected = true, exec_once = { "revolt" }, instance = { "Revolt" }, - targets = { "catalyst/eDP1", "mtvic/eDP1" }, + targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" }, }, { name = "dflt", @@ -493,7 +505,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "thunderbird" }, class = { "Thunderbird" }, - targets = { "catalyst/HDMI1", "mtvic/eDP1" }, + targets = { "catalyst/HDMI1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1" }, }, { name = "chr", @@ -502,7 +514,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "chromium" }, class = { "Chromium" }, - targets = { "catalyst/HDMI1", "mtvic/eDP1" }, + targets = { "catalyst/HDMI1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1" }, }, { name = "ffx", @@ -511,7 +523,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "firefox" }, class = { "Firefox" }, - targets = { "catalyst/HDMI1", "mtvic/eDP1" }, + targets = { "catalyst/HDMI1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1" }, }, }) @@ -688,6 +700,7 @@ globalkeys = gears.table.join( bg_cursor = '#ff0000', textbox = widget, history_path = awful.util.get_cache_dir() .. "/history", + completion_callback = awful.completion.shell, hooks = { -- Replace the 'normal' Return with a custom one {{ }, 'Return', function(command) @@ -746,11 +759,11 @@ globalkeys = gears.table.join( awful.key({ modkey, }, "d", th.delete_tag, {description = "delete the current tag", group = "tag"}), awful.key({ modkey, "Shift", }, "a", function() - move_to_new_tag(nil,nil,true,true,true) + th.move_to_new_tag(nil,nil,true,true,true) end, {description = "add a volatile tag with the focused client", group = "tag"}), awful.key({ modkey, "Shift", "Control" }, "a", function() - move_to_new_tag(nil,nil,false,true,true) + th.move_to_new_tag(nil,nil,false,true,true) end, {description = "add a permanent tag with the focused client", group = "tag"}), awful.key({ modkey, "Mod1" }, "a", th.copy_tag, @@ -897,7 +910,7 @@ awful.key(nil, "XF86AudioMicMute", function () awful.spawn("pactl set-source-mut awful.key({ cmdkey }, "Home", function () awful.spawn("pactl set-source-mute 1 toggle") end), awful.key(nil, "XF86MonBrightnessDown", function () awful.spawn("xbacklight -dec 5%") end), awful.key(nil, "XF86MonBrightnessUp", function () awful.spawn("xbacklight -inc 5%") end), -awful.key(nil, "XF86Display", function () awful.spawn("") end), +awful.key(nil, "XF86Display", function () awful.spawn("autorandr --change --force"); initialise_to_autorandr_profile() end), awful.key(nil, "XF86WLAN", function () awful.spawn("") end), awful.key(nil, "XF86Tools", function () awful.spawn("") end), awful.key(nil, "XF86Search", function () awful.spawn("") end), @@ -966,7 +979,7 @@ awful.rules.rules = { { rule = { class = "URxvt" }, properties = { size_hints_honor = false, } }, - { rule = { instance = "irc" }, + { rule = { instance = "irc" }, callback = move_to_tag_by_name(nil, "irc"), }, { rule = { class = "Revolt" }, @@ -984,30 +997,41 @@ awful.rules.rules = { { rule_any = { class = { "MuPDF", "Wicd-client.py", + "Gxmessage", + "Pinentry" }}, properties = { floating = true, + maximized = false, focus = true, - placement = function(c) - float_client_in_the_middle_with_margins(c, 50, 25) - end, + placement = awful.placement.centered, }, }, - { rule_any = { class = { - "Gscan2pdf", - "Gimp", - }, - instance = { - "libreoffice", - } - }, - properties = { new_tag = { - layout = layouts.maximised, - volatile = true, - }, - switchtotag = true, + { rule_any = { instance = { + "tridactyl-edit", + "libreoffice" + }}, + properties = { floating = true, + maximized = false, focus = true, + placement = awful.placement.centered, }, }, +-- { rule_any = { class = { +-- "Gscan2pdf", +-- "Gimp", +-- }, +-- instance = { +-- "libreoffice", +-- } +-- }, +-- properties = { new_tag = { +-- layout = layouts.maximised, +-- volatile = true, +-- }, +-- switchtotag = true, +-- focus = true, +-- }, +-- }, --XX-- { rule = { class = "Gscan2pdf" }, --XX-- properties = { --XX-- switchtotag = true @@ -1131,10 +1155,10 @@ client.connect_signal("request::activate", function(c, context, hints) }, context) then gears.timer.delayed_call(function() -- we need a delayed call so that we execute *after layout changes - centre_mouse_on_area(client.focus) + if hints.raise and c == client.focus and client.focus:isvisible() then + move_mouse_to_area(client.focus) + end end) - else - dbg.dump(c, context, hints) end end)