]> git.madduck.net Git - etc/awesome.git/blobdiff - .config/awesome/rc.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

add virt tab
[etc/awesome.git] / .config / awesome / rc.lua
index 5b4ca3ed46ae9ff64681e0b37dbc2d5d464efeca..afbcb7d233705a245ce5368af86146000313301b 100644 (file)
@@ -25,7 +25,7 @@ local has_fdo, freedesktop = pcall(require, "freedesktop")
 -- Other libraries
 local lain = require("lain")
 local ccwidgets = require("cryptocoin_widgets")
-local fxwidgets = require("forex_widgets")
+--local fxwidgets = require("forex_widgets")
 local clocksarray = require("clocksarray")
 local dbg = require("debugfunc")
 local th = require("taghelpers")
@@ -306,10 +306,10 @@ awful.screen.connect_for_each_screen(function(s)
             make_spacer(" "),
             ccwidgets.btc_widget,
             make_spacer(),
-            ccwidgets.eth_widget,
-            make_spacer(),
-            fxwidgets.ecb_widget,
-            make_spacer(),
+            --ccwidgets.eth_widget,
+            --make_spacer(),
+            --fxwidgets.ecb_widget,
+            --make_spacer(),
             lain_bat.widget,
             make_spacer(),
         }, right_widgets)
@@ -473,27 +473,56 @@ end
 default_tags[1].selected = true
 
 default_tags = gears.table.join(default_tags, {
+  {
+    name        = "vrt",
+    init        = true,
+    exclusive   = true,
+    layout      = layouts.maximised,
+    selected    = false,
+    exec_once   = { "remmina" },
+    instance    = { "Remmina" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/eDP-?1",
+                    "krafftwerk/DP-?1-1-5",
+                    "krafftwerk/DisplayPort-2",
+                    "cafe/eDP-?1"
+                },
+  },
   {
     name        = "irc",
     init        = true,
     exclusive   = true,
     layout      = layouts.tiled,
-    selected    = true,
+    selected    = false,
     exec_once   = { terminal .. " -name irc -e env MOSH_TITLE_NOPREFIX=true mosh --family=all -- irc-host tmux new -As irc irssi" },
     instance    = { "irc" },
-    targets     = { "gauting/eDP-?1", "lehel/DisplayPort-2" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/eDP-?1",
+                    "krafftwerk/DP-?1-1-5",
+                    "krafftwerk/DisplayPort-2",
+                    "cafe/eDP-?1"
+                },
   },
   {
     name        = "[]",
     init        = true,
     exclusive   = true,
     master_count = 0,
-    column_count = 3,
+    column_count = 4,
     layout      = layouts.tiled,
     selected    = false,
-    exec_once   = { "revolt" },
-    instance    = { "Revolt" },
-    targets     = { "gauting/eDP-?1", "lehel/DisplayPort-2" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/eDP-?1",
+                    "krafftwerk/DP-?1-1-5",
+                    "krafftwerk/DisplayPort-2",
+                    "cafe/eDP-?1"
+                },
   },
   {
     name        = "dflt",
@@ -510,7 +539,14 @@ default_tags = gears.table.join(default_tags, {
     layout      = layouts.default,
     exec_once   = { "thunderbird" },
     class       = { "thunderbird" },
-    targets     = { "gauting/eDP-?1", "lehel/DisplayPort-1" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/eDP-?1",
+                    "krafftwerk/DP-?1-1-6",
+                    "krafftwerk/DisplayPort-0",
+                    "cafe/eDP-?1"
+                },
   },
   {
     name        = "chr",
@@ -519,7 +555,15 @@ default_tags = gears.table.join(default_tags, {
     layout      = layouts.default,
     exec_once   = { "chromium" },
     class       = { "Chromium" },
-    targets     = { "gauting/eDP-?1", "lehel/DisplayPort-1", "present/HDMI.*" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/DP-?2-2",
+                    "krafftwerk/DP-?1-1-6",
+                    "krafftwerk/DisplayPort-0",
+                    "present/HDMI.*",
+                    "cafe/eDP-?1"
+                },
   },
   {
     name        = "ffx",
@@ -528,7 +572,15 @@ default_tags = gears.table.join(default_tags, {
     layout      = layouts.default,
     exec_once   = { "firefox" },
     class       = { "Firefox" },
-    targets     = { "gauting/eDP-?1", "lehel/DisplayPort-1", "present/HDMI.*" },
+    targets     = {
+                    "gern/DP-?[12]-1",
+                    "gauting/eDP-?1",
+                    "toni/DP-?2-2",
+                    "krafftwerk/DP-?1-1-6",
+                    "krafftwerk/DisplayPort-0",
+                    "present/HDMI.*",
+                    "cafe/eDP-?1"
+                },
   },
 })
 
@@ -607,6 +659,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"}),
@@ -614,10 +674,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"}),
 
@@ -635,14 +691,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",
@@ -782,6 +842,10 @@ globalkeys = gears.table.join(
     awful.key({ modkey, "Control", "Shift", "Mod1" }, "a", th.collect_orphan_clients_to_tag,
               {description = "collect all orphaned clients", group = "client"}),
 
+    awful.key({ modkey }, "t", toggle_tag_by_name("vrt", true),
+              {description = "view tag 'vrt'", group = "tag"}),
+    awful.key({ modkey, "Control" }, "t", toggle_tag_by_name("vrt"),
+              {description = "toggle tag 'vrt'", group = "tag"}),
     awful.key({ modkey }, "y", toggle_tag_by_name("irc", true),
               {description = "view tag 'irc'", group = "tag"}),
     awful.key({ modkey, "Control" }, "y", toggle_tag_by_name("irc"),
@@ -819,8 +883,8 @@ clientkeys = gears.table.join(
               {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,           }, "t",      function (c) c.ontop = not c.ontop            end,
+    --          {description = "toggle keep on top", group = "client"}),
     awful.key({ modkey,           }, "n",
         function (c)
             -- The client currently has the input focus, so it cannot be
@@ -899,16 +963,16 @@ awful.key({ cmdkey }, "y", function () awful.spawn(terminal .. " -e ipython3") e
 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, "Shift" }, "v", function () awful.spawn("virt-manager") end),
+awful.key({ cmdkey, "Shift" }, "r", function () awful.spawn("remmina") end),
 awful.key({ cmdkey }, "l", function () awful.spawn("libreoffice") end),
+awful.key({ cmdkey }, "v", function () awful.spawn("virt-viewer") 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")
+    run_output_notify("sh -c '. ~/.xsession.d/10-xautolock; echo \"Locking…\"; sleep 1; xautolock -locknow'", "Enabling xautolock")
 end),
-awful.key({ cmdkey, "Shift" }, "x", function () awful.spawn("xscreensaver-command -exit") end),
+awful.key({ cmdkey, "Shift" }, "x", function () run_output_notify("pkill -e xautolock", "Disabling xautolock") end),
 
 awful.key({ cmdkey }, "BackSpace", function () awful.spawn("pkill -USR1 offlineimap") end),
 
@@ -924,14 +988,16 @@ awful.key(nil, "XF86AudioMicMute", function () awful.spawn("pactl set-source-mut
 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, "XF86MonBrightnessDown", function () awful.spawn("light -U 10") end),
+awful.key(nil, "XF86MonBrightnessUp", function () awful.spawn("light -A 10") end),
 awful.key(nil, "XF86Display", function () awful.spawn("autorandr --change --force"); initialise_to_autorandr_profile() end),
+awful.key(nil, "XF86AudioStop", 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),
 awful.key(nil, "XF86LaunchA", function () awful.spawn("") end),
 awful.key(nil, "XF86Explorer", function () awful.spawn("") end),
+awful.key(nil, "XF86Calculator", function () awful.spawn(terminal .. " -e ipython3 --profile=calc") end),
 awful.key(nil, "XF86Favorites", function () awful.spawn("systemctl suspend") end),
 
 awful.key({ cmdkey }, "Multi_key", function () run_output_notify("flameshot gui", "Output") end),
@@ -1041,6 +1107,13 @@ awful.rules.rules = {
     { rule_any = { class = { "Firefox", "firefox" } },
       callback = move_to_tag_by_name(nil, "ffx"),
     },
+    { rule_any = { class = { "org.remmina.Remmina",
+                             "Virt-viewer",
+                             "Virt-manager"
+                           },
+                 },
+      callback = move_to_tag_by_name(nil, "vrt"),
+    },
     { rule = { class = "Chromium" },
       callback = move_to_tag_by_name(nil, "chr"),
     },
@@ -1093,7 +1166,6 @@ awful.rules.rules = {
                         "Inkscape",
                         "Pitivi",
                         "Audacity",
-                        "Microsoft Teams - Preview",
                     },
                     instance = {
                         "libreoffice",
@@ -1104,7 +1176,7 @@ awful.rules.rules = {
                         layout = layouts.maximised,
                         volatile = true,
                     },
-                     --switchtotag = true,
+                     switchtotag = true,
                      focus = true,
                    },
                },