BlingCorp / bling

Utilities for the awesome window manager
https://blingcorp.github.io/bling/
MIT License
852 stars 49 forks source link

scratchpads not working with st terminal #212

Open aldevv opened 1 year ago

aldevv commented 1 year ago

I have the following code in a default awesome wm config:

local term_scratch = bling.module.scratchpad:new {
  -- command                 = "alacritty --class spad",
  command                 = "st -c spad",
  rule                    = { instance = "spad" },
  sticky                  = false,
  autoclose               = false,
  floating                = true,
  geometry                = { x = 560, y = 240, height = 600, width = 800 },
  reapply                 = true,
  dont_focus_before_close = true,
}

local scratchpads = {
  awful.key({ modkey, }, "c", function()
    term_scratch:toggle()
  end, { description = "show mai scratchz", group = "awesome" })

}

and I add it to my keybindings like this:

globalkeys = gears.table.join(
  scratchpads[1],
  awful.key({ modkey, }, "s", hotkeys_popup.show_help,
  ...

the issue is that each time I press the keybinding a new terminal is opened instead of toggling the same terminal, i tested with alacritty and is working as expected, checked with xprop and the class in st is set correctly.

Nooo37 commented 1 year ago

-c sets the class name of st and not the instance name. Using -c the instance name keeps being "st-256color" or whatever.

You will have to make st change its instance name or you have to change the rule to match the class attribute instead.

deceptionfalls commented 1 year ago

didn't wanna necrobump this, but for anyone with having the same issue you can set the name of the instance by passing the -n flag like this:

local spad = bling.module.scratchpad {
    command = "st -c spad -n spad",
    ...
}