X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/15c75aebde651a40fa797dbe0b8c3d49bb16d52f..9f7c8f11ec42744de1e01a9e0a3abf424d965e50:/.config/awesome/rc.lua diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index f54d9c9..770d367 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -1,4 +1,5 @@ -- {{{ Imports + -- Standard awesome library local gears = require("gears") local awful = require("awful") @@ -199,7 +200,7 @@ local lain_bat = lain.widget.bat({ -- Create a textclock widget clocksarray = clocksarray.get_clocksarray("%a %d %b %H:%M:%S %Z", { - ["NZ"] = "Pacific/Auckland", +-- ["NZ"] = "Pacific/Auckland", ["DE"] = "Europe/Berlin" }, make_spacer()) @@ -476,23 +477,23 @@ default_tags = gears.table.join(default_tags, { name = "irc", init = true, exclusive = true, - master_width_factor = 0.33, layout = layouts.tiled, selected = true, - exec_once = { terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh -4 -- irc-host tmux new -As irc irssi" }, + exec_once = { terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh --family=all -- irc-host tmux new -As irc irssi" }, instance = { "irc" }, - targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" }, + targets = { "gauting/eDP-?1", "lehel/DisplayPort-2" }, }, { - name = "[m]", + name = "[]", init = true, exclusive = true, - master_width_factor = 0.67, + master_count = 0, + column_count = 3, layout = layouts.tiled, - selected = true, + selected = false, exec_once = { "revolt" }, instance = { "Revolt" }, - targets = { "catalyst/eDP1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-2" }, + targets = { "gauting/eDP-?1", "lehel/DisplayPort-2" }, }, { name = "dflt", @@ -509,7 +510,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "thunderbird" }, class = { "thunderbird" }, - targets = { "catalyst/DP2-1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1" }, + targets = { "gauting/eDP-?1", "lehel/DisplayPort-1" }, }, { name = "chr", @@ -518,7 +519,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "chromium" }, class = { "Chromium" }, - targets = { "catalyst/DP2-1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1", "present/HDMI.*" }, + targets = { "gauting/eDP-?1", "lehel/DisplayPort-1", "present/HDMI.*" }, }, { name = "ffx", @@ -527,7 +528,7 @@ default_tags = gears.table.join(default_tags, { layout = layouts.default, exec_once = { "firefox" }, class = { "Firefox" }, - targets = { "catalyst/DP2-1", "mtvic/eDP1", "gauting/eDP1", "lehel/DisplayPort-1", "present/HDMI.*" }, + targets = { "gauting/eDP-?1", "lehel/DisplayPort-1", "present/HDMI.*" }, }, }) @@ -606,6 +607,14 @@ local function toggle_tag_by_name(tagname, exclusive) end end +local function move_tags_to_screen_relative(direction) + local s = awful.screen.focused() + for _,tag in ipairs(s.selected_tags) do + print("index: " .. s.index .. " count: " .. screen:count()) + tag.screen = screen[(s.index + screen:count() + direction) % screen.count()] + end +end + globalkeys = gears.table.join( awful.key({ modkey, }, "s", hotkeys_popup.show_help, {description="show help", group="awesome"}), @@ -613,10 +622,6 @@ globalkeys = gears.table.join( {description = "view previous", group = "tag"}), awful.key({ modkey, }, "Right", awful.tag.viewnext, {description = "view next", group = "tag"}), - awful.key({ modkey, "Shift" }, "Left", function () awful.screen.focus_relative( 1) end, - {description = "focus the next screen", group = "screen"}), - awful.key({ modkey, "Shift" }, "Right", function () awful.screen.focus_relative(-1) end, - {description = "focus the previous screen", group = "screen"}), awful.key({ modkey, }, "Escape", awful.tag.history.restore, {description = "go back", group = "tag"}), @@ -634,14 +639,18 @@ globalkeys = gears.table.join( ), -- Layout manipulation - awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( 1) end, + awful.key({ modkey, "Shift" }, "k", function () awful.client.swap.byidx( 1) end, {description = "swap with next client by index", group = "client"}), - awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx( -1) end, + awful.key({ modkey, "Shift" }, "j", function () awful.client.swap.byidx(-1) end, {description = "swap with previous client by index", group = "client"}), awful.key({ modkey, "Control" }, "k", function () awful.screen.focus_relative( 1) end, {description = "focus the next screen", group = "screen"}), awful.key({ modkey, "Control" }, "j", function () awful.screen.focus_relative(-1) end, {description = "focus the previous screen", group = "screen"}), + awful.key({ modkey, "Shift", "Control" }, "k", function () move_tags_to_screen_relative( 1) end, + {description = "move tags to the next screen", group = "screen"}), + awful.key({ modkey, "Shift", "Control" }, "j", function () move_tags_to_screen_relative(-1) end, + {description = "move tags to the previous screen", group = "screen"}), awful.key({ modkey, "Shift" }, "Return", awful.client.urgent.jumpto, {description = "jump to urgent client", group = "client"}), awful.key({ modkey, }, "Tab", @@ -767,11 +776,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() - th.move_to_new_tag(nil, { layout = layouts.maximised },true,true,true) + th.move_to_new_tag(nil, nil, { layout = layouts.maximised },true,true,true) end, {description = "add a volatile tag with the focused client", group = "tag"}), awful.key({ modkey, "Shift", "Control" }, "a", function() - th.move_to_new_tag(nil, { layout = layouts.maximised },false,true,true) + th.move_to_new_tag(nil, nil, { layout = layouts.maximised },false,true,true) end, {description = "add a permanent tag with the focused client", group = "tag"}), awful.key({ modkey, "Mod1" }, "a", th.copy_tag, @@ -785,10 +794,10 @@ globalkeys = gears.table.join( {description = "view tag 'irc'", group = "tag"}), awful.key({ modkey, "Control" }, "y", toggle_tag_by_name("irc"), {description = "toggle tag 'irc'", group = "tag"}), - awful.key({ modkey }, "u", toggle_tag_by_name("[m]", true), - {description = "view tag '[m]'", group = "tag"}), - awful.key({ modkey, "Control" }, "u", toggle_tag_by_name("[m]"), - {description = "toggle tag '[m]'", group = "tag"}), + awful.key({ modkey }, "u", toggle_tag_by_name("[]", true), + {description = "view tag '[]'", group = "tag"}), + awful.key({ modkey, "Control" }, "u", toggle_tag_by_name("[]"), + {description = "toggle tag '[]'", group = "tag"}), awful.key({ modkey }, "i", toggle_tag_by_name("cal", true), {description = "view tag 'cal'", group = "tag"}), awful.key({ modkey, "Control" }, "i", toggle_tag_by_name("cal"), @@ -816,6 +825,8 @@ clientkeys = gears.table.join( {description = "toggle floating", group = "client"}), awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end, {description = "move to master", group = "client"}), + awful.key({ modkey, }, "z", function (c) c:move_to_screen() end, + {description = "move to screen", group = "client"}), awful.key({ modkey, }, "t", function (c) c.ontop = not c.ontop end, {description = "toggle keep on top", group = "client"}), awful.key({ modkey, }, "n", @@ -892,20 +903,19 @@ clientbuttons = gears.table.join( globalkeys = awful.util.table.join(globalkeys, awful.key({ cmdkey }, "n", function () awful.spawn("firefox") end), awful.key({ cmdkey }, "c", function () awful.spawn("chromium --enable-remote-extensions") end), -awful.key({ cmdkey }, "y", function () awful.spawn(terminal .. " -e python") end), +awful.key({ cmdkey }, "y", function () awful.spawn(terminal .. " -e ipython3") end), awful.key({ cmdkey }, "m", function () awful.spawn(terminal .. " -name mutt -e mutt") end), awful.key({ cmdkey }, "t", function () awful.spawn("thunderbird") end), awful.key({ cmdkey }, "g", function () awful.spawn("gscan2pdf") end), awful.key({ cmdkey }, "v", function () awful.spawn("virt-manager") end), awful.key({ cmdkey }, "l", function () awful.spawn("libreoffice") end), -awful.key({ cmdkey }, "f", function () awful.spawn("thunar") end), -awful.key({ cmdkey }, "i", function () awful.spawn(terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh -4 -- irc-host tmux new -As irc irssi") end), +awful.key({ cmdkey }, "p", function () awful.spawn("pavucontrol") end), +awful.key({ cmdkey }, "i", function () awful.spawn(terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh --family=all -- irc-host tmux new -As irc irssi") end), awful.key({ cmdkey }, "x", function () - awful.spawn("/usr/bin/xscreensaver -no-capture-stderr") - os.execute("sleep 5") - awful.spawn("xscreensaver-command -lock") + awful.spawn("xautolock -enable") + awful.spawn("xautolock -locknow") end), -awful.key({ cmdkey, "Shift" }, "x", function () awful.spawn("xscreensaver-command -exit") end), +awful.key({ cmdkey, "Shift" }, "x", function () awful.spawn("xautolock -disable") end), awful.key({ cmdkey }, "BackSpace", function () awful.spawn("pkill -USR1 offlineimap") end), @@ -919,6 +929,8 @@ awful.key(nil, "XF86AudioRaiseVolume", function () awful.spawn("pactl set-sink-v awful.key({ cmdkey }, "Prior", function () awful.spawn("pactl set-sink-volume @DEFAULT_SINK@ +2%") end), awful.key(nil, "XF86AudioMicMute", function () awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle") end), awful.key({ cmdkey }, "Home", function () awful.spawn("pactl set-source-mute @DEFAULT_SOURCE@ toggle") end), +awful.key({ cmdkey }, "Insert", function () awful.spawn("pa_cycle_default source") end), +awful.key({ cmdkey }, "Delete", function () awful.spawn("pa_cycle_default sink") 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("autorandr --change --force"); initialise_to_autorandr_profile() end), @@ -929,18 +941,28 @@ awful.key(nil, "XF86LaunchA", function () awful.spawn("") end), awful.key(nil, "XF86Explorer", function () awful.spawn("") end), awful.key(nil, "XF86Favorites", function () awful.spawn("systemctl suspend") end), -awful.key({ cmdkey }, "Left", function () awful.spawn("xmms2 prev") end), -awful.key({ cmdkey }, "Right", function () awful.spawn("xmms2 next") end), -awful.key({ cmdkey }, "space", function () awful.spawn("xmms2 toggle") end), -awful.key({ cmdkey }, "\\", function () run_output_notify("xmms2 list") end) +awful.key({ cmdkey }, "Multi_key", function () run_output_notify("flameshot gui", "Output") end), +awful.key({ cmdkey, "Shift" }, "Multi_key", function () run_output_notify("flameshot full --delay 2000 --clipboard", "Output") end), + +awful.key({ cmdkey }, "Up", function () awful.spawn("pap prev") end), +awful.key({ cmdkey }, "Left", function () awful.spawn("pap seek -10") end), +awful.key({ cmdkey, "Shift" }, "Left", function () awful.spawn("pap seek -60") end), +awful.key({ cmdkey }, "Down", function () awful.spawn("pap next") end), +awful.key({ cmdkey }, "Right", function () awful.spawn("pap seek +10") end), +awful.key({ cmdkey, "Shift" }, "Right", function () awful.spawn("pap seek +60") end), +awful.key({ cmdkey }, "space", function () awful.spawn("pap pause") end), +awful.key({ cmdkey }, "\\", function () run_output_notify("pap info", "Track info") end), +awful.key({ cmdkey }, "]", function () run_output_notify("pap list", "Playlist") end) ) -function run_output_notify(cmd) +function run_output_notify(cmd, title) awful.spawn.easy_async(cmd, function(stdout, stderr, reason, exit_code) - naughty.notify({ - preset = naughty.config.presets.low, - title = "XMMS2 playlist", - text = stdout}) + if #stdout > 1 then + naughty.notify({ + preset = naughty.config.presets.low, + title = title, + text = stdout}) + end end) end @@ -978,6 +1000,17 @@ local function move_to_tag_by_name(s, tagname) end end +local function move_to_tag_or_create_volatile(s, tagname) + return function(c) + local t = awful.tag.find_by_name(s, tagname) + if t then + c:move_to_tag(t) + else + th.move_to_new_tag(c, tagname, {}, true, true, true) + end + end +end + awful.rules.rules = { -- All clients will match this rule. { rule = { }, @@ -1009,8 +1042,8 @@ awful.rules.rules = { { rule = { instance = "irc" }, callback = move_to_tag_by_name(nil, "irc"), }, - { rule = { class = "Revolt" }, - callback = move_to_tag_by_name(nil, "[m]"), + { rule = { class = "scrcpy" }, + callback = move_to_tag_by_name(nil, "[]"), }, { rule_any = { class = { "Firefox", "firefox" } }, callback = move_to_tag_by_name(nil, "ffx"), @@ -1031,6 +1064,15 @@ awful.rules.rules = { switchtotag = true, }, }, + { rule_any = { class = { "zoom" } }, + callback = move_to_tag_or_create_volatile(nil, "Zoom"), + }, + { rule_any = { class = { "Ssvnc.tcl" }, + class = { "Ssvnc" }, + name = { "SSL/SSH VNC Viewer.-" }, + }, + callback = move_to_tag_or_create_volatile(nil, "SSVNC"), + }, { rule_any = { class = { "Gxmessage", "Pinentry" @@ -1043,7 +1085,9 @@ awful.rules.rules = { }, { rule_any = { instance = { "tridactyl-edit", - "pdfshuffler" + "pdfshuffler", + "vlc", + "pavucontrol" }}, properties = { floating = true, maximized = false, @@ -1052,10 +1096,11 @@ awful.rules.rules = { }, }, { rule_any = { class = { - "Gscan2pdf", "Gimp", "Inkscape", "Pitivi", + "Audacity", + "Microsoft Teams - Preview", }, instance = { "libreoffice", @@ -1066,10 +1111,27 @@ awful.rules.rules = { layout = layouts.maximised, volatile = true, }, - switchtotag = true, + --switchtotag = true, focus = true, }, - }, + }, + { rule_any = { class = { + "Gscan2pdf", + }, + }, + except_any = { type = { "dialog" } }, + properties = { new_tag = { + layout = layouts.default, + volatile = true, + }, + floating = true, + maximized = false, + focus = true, + placement = awful.placement.centered, + switchtotag = true, + focus = true, + }, + }, --XX-- { rule = { class = "Gscan2pdf" }, --XX-- properties = { --XX-- switchtotag = true @@ -1106,12 +1168,12 @@ client.connect_signal("manage", function (c) -- Set the windows at the slave, -- i.e. put it at the end of others instead of setting it master. -- if not awesome.startup then awful.client.setslave(c) end - if not awesome.startup then - local t = awful.screen.focused().selected_tag - if t.name == "xmutt" then - awful.client.setslave(c) - end - end + --if not awesome.startup then + -- local t = awful.screen.focused().selected_tag + -- if t.name == "xmutt" then + -- awful.client.setslave(c) + -- end + --end if awesome.startup and not c.size_hints.user_position @@ -1172,6 +1234,8 @@ client.connect_signal("mouse::enter", function(c) and awful.client.focus.filter(c) then client.focus = c end +--17 18:03 < psychon> madduck: yes. In the default config at the very end there is code that actives a client on mouse::enter. Just add if c.class == "whatever virt-viewer uses" then return end to that, or +-- something like this end) client.connect_signal("focus", function(c)