Skip to content

jcrd/awesome-launch

Repository files navigation

awesome-launch

awesome-launch is a library for Awesome window manager that provides functions to spawn clients with single instance IDs using wm-launch.

Dependencies

Installation

$ git clone https://github.com/jcrd/awesome-launch.git
$ cd awesome-launch
$ luarocks make --local rockspec/awesome-launch-devel-1.rockspec

Usage

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.

Workspaces

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.

Widget

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)

Command-line client

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

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.

License

This project is licensed under the MIT License (see LICENSE).

About

AwesomeWM library for launching clients with single instance IDs

Topics

Resources

License

Stars

Watchers

Forks