awesome-launch is a library for Awesome window manager that provides functions to spawn clients with single instance IDs using wm-launch.
$ git clone https://github.com/jcrd/awesome-launch.git
$ cd awesome-launch
$ luarocks make --local rockspec/awesome-launch-devel-1.rockspec
Require the library:
local launch = require("awesome-launch")
Now spawn a client:
launch.spawn("xterm", {id="xterm1"})
The new client will have these properties set:
single_instance_id
="xterm1"
cmdline
="xterm"
See the API documentation for descriptions of all functions.
Require the library:
local ws = require("awesome-launch.workspace")
Add a new workspace:
ws.add("code", {
pwd = "/home/user/code",
clients = {
"xterm -e vim",
{"qutebrowser", {factory="qutebrowser"}},
}
})
A new tag named code
will be created with the working directory and clients
listed above.
A launchbar
widget is provided to visualize pending clients.
Customize the launchbar:
launch.widget.color = beautiful.fg_focus
Create a new launchbar for the given screen:
screen.connect_signal("request::desktop_decoration", function (s)
...
s.launchbar = launch.widget.launchbar {
screen = s,
}
s.mywibox:setup {
...
s.launchbar,
...
}
end)
awesome-launch
is a wrapper around awesome-client
that can be used to
launch clients from the command line with single instance IDs tracked by
Awesome.
usage: awesome-launch [options] COMMAND...
options:
-h Show help message
-s Launch with systemd-run
-j Launch with firejail
-f FACTORY Launch via a window factory
-i ID The single instance ID to use
-1 Spawn if not already running
-r Raise or spawn
Enable use of awesome-client
by including the following in rc.lua
:
require("awful.remote")
If installed via luarocks
, ensure awesome-launch
's location is in your
PATH
.
This project is licensed under the MIT License (see LICENSE).