mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2026-04-23 11:30:23 +10:00
Update
This commit is contained in:
@@ -1,245 +0,0 @@
|
||||
Quake
|
||||
-----
|
||||
|
||||
A Quake-like dropdown container for your favourite application.
|
||||
|
||||
**Usage**
|
||||
|
||||
Define it globally to have a single instance for all screens:
|
||||
|
||||
```lua
|
||||
local quake = lain.util.quake()
|
||||
```
|
||||
|
||||
or define it in `connect_for_each_screen` to have one instance for each screen:
|
||||
|
||||
```lua
|
||||
awful.screen.connect_for_each_screen(function(s)
|
||||
-- Quake application
|
||||
s.quake = lain.util.quake()
|
||||
-- [...]
|
||||
```
|
||||
|
||||
**Keybinding example**
|
||||
|
||||
If using a global instance:
|
||||
```lua
|
||||
awful.key({ modkey, }, "z", function () quake:toggle() end),
|
||||
```
|
||||
|
||||
If using a per-screen instance:
|
||||
```lua
|
||||
awful.key({ modkey, }, "z", function () awful.screen.focused().quake:toggle() end),
|
||||
```
|
||||
|
||||
**Input table**
|
||||
|
||||
Variable | Meaning | Type | Default
|
||||
--- | --- | --- | ---
|
||||
`app` | client to spawn | string | "xterm"
|
||||
`name` | client name | string | "QuakeDD"
|
||||
`argname` | how to specify client name | string | "-name %s"
|
||||
`extra` | extra `app` arguments | string | empty string
|
||||
`border` | border width | number | 1
|
||||
`visible` | initially visible | boolean | false
|
||||
`followtag` | always spawn on currently focused screen | boolean | false
|
||||
`overlap` | Overlap the wibox or not | boolean | false
|
||||
`settings` | Additional settings to make on the client | function | nil
|
||||
`screen` | screen where to spawn the client | number | `awful.screen.focused()`
|
||||
`height` | dropdown client height | float in [0,1] or exact pixels number | 0.25
|
||||
`width` | dropdown client width | float in [0,1] or exact pixels number | 1
|
||||
`vert` | vertical position | string, possible values: "top", "bottom", "center" | "top"
|
||||
`horiz` | horizontal position | string, possible values: "left", "right", "center" | "left"
|
||||
|
||||
`height` and `width` express a fraction of the workspace.
|
||||
|
||||
`settings` is a function which takes the client as input, and can be used to customize its properties. For instance:
|
||||
|
||||
```lua
|
||||
-- set the client sticky
|
||||
s.quake = lain.util.quake { settings = function(c) c.sticky = true end }
|
||||
```
|
||||
|
||||
Read [here](https://awesomewm.org/doc/api/classes/client.html#Object_properties) for the complete list of properties.
|
||||
|
||||
**Notes**
|
||||
|
||||
* [Does not work](https://github.com/copycat-killer/lain/issues/358) with `gnome-terminal`, `konsole`, or any other terminal which is strictly designed for a Desktop Environment. Just pick a better terminal, [there's plenty](https://wiki.archlinux.org/index.php/List_of_applications#Terminal_emulators).
|
||||
* Set `followtag = true` if [experiencing issues with multiscreen setups](https://github.com/copycat-killer/lain/issues/346).
|
||||
* If you have a `awful.client.setslave` rule for your application, ensure you use an exception for `QuakeDD` (or your defined `name`). Otherwise, you may run into problems with focus.
|
||||
* If you are using a VTE-based terminal like `termite`, be sure to set [`argname = "--name %s"`](https://github.com/copycat-killer/lain/issues/211).
|
||||
|
||||
Separators
|
||||
----------
|
||||
|
||||
Adds Cairo separators.
|
||||
|
||||
```lua
|
||||
local separators = lain.util.separators
|
||||
```
|
||||
|
||||
A separator function `separators.separator` takes two color arguments, defined as strings. `"alpha"` argument is allowed. Example:
|
||||
|
||||
```lua
|
||||
arrl_dl = separators.arrow_left(beautiful.bg_focus, "alpha")
|
||||
arrl_ld = separators.arrow_left("alpha", beautiful.bg_focus)
|
||||
```
|
||||
|
||||
You can customize height and width by setting `separators_height` and `separators_width` in your `theme.lua`. Default values are 0 and 9, respectively.
|
||||
|
||||
List of functions:
|
||||
|
||||
+-- separators
|
||||
|
|
||||
|`-- arrow_right() Draw a right arrow.
|
||||
`-- arrow_left() Draw a left arrow.
|
||||
|
||||
markup
|
||||
------
|
||||
|
||||
Mades markup easier.
|
||||
|
||||
```lua
|
||||
local markup = lain.util.markup
|
||||
```
|
||||
|
||||
List of functions:
|
||||
|
||||
+-- markup
|
||||
|
|
||||
|`-- bold() Set bold.
|
||||
|`-- italic() Set italicized text.
|
||||
|`-- strike() Set strikethrough text.
|
||||
|`-- underline() Set underlined text.
|
||||
|`-- monospace() Set monospaced text.
|
||||
|`-- big() Set bigger text.
|
||||
|`-- small() Set smaller text.
|
||||
|`-- font() Set the font of the text.
|
||||
|`-- font() Set the font of the text.
|
||||
|`-- color() Set background and foreground color.
|
||||
|`-- fontfg() Set font and foreground color.
|
||||
|`-- fontbg() Set font and background color.
|
||||
`-- fontcolor() Set font, plus background and foreground colors.
|
||||
|
|
||||
|`--+ bg
|
||||
| |
|
||||
| `-- color() Set background color.
|
||||
|
|
||||
`--+ fg
|
||||
|
|
||||
`-- color() Set foreground color.
|
||||
|
||||
they all take one argument, which is the text to markup, except the following:
|
||||
|
||||
```lua
|
||||
markup.font(font, text)
|
||||
markup.color(fg, bg, text)
|
||||
markup.fontfg(font, fg, text)
|
||||
markup.fontbg(font, bg, text)
|
||||
markup.fontcolor(font, fg, bg, text)
|
||||
markup.fg.color(color, text)
|
||||
markup.bg.color(color, text)
|
||||
```
|
||||
|
||||
Dynamic tagging
|
||||
---------------
|
||||
|
||||
That is:
|
||||
|
||||
- add a new tag;
|
||||
- rename current tag;
|
||||
- move current tag;
|
||||
- delete current tag.
|
||||
|
||||
If you delete a tag, any rule set on it shall be broken, so be careful.
|
||||
|
||||
Use it with key bindings like these:
|
||||
|
||||
```lua
|
||||
awful.key({ modkey, "Shift" }, "n", function () lain.util.add_tag(mylayout) end),
|
||||
awful.key({ modkey, "Shift" }, "r", function () lain.util.rename_tag() end),
|
||||
awful.key({ modkey, "Shift" }, "Left", function () lain.util.move_tag(1) end), -- move to next tag
|
||||
awful.key({ modkey, "Shift" }, "Right", function () lain.util.move_tag(-1) end), -- move to previous tag
|
||||
awful.key({ modkey, "Shift" }, "d", function () lain.util.delete_tag() end),
|
||||
```
|
||||
|
||||
The argument in `lain.util.add_tag` represents the tag layout, and is optional: if not present, it will be defaulted to `awful.layout.suit.tile`.
|
||||
|
||||
Useless gaps resize
|
||||
---------------------
|
||||
|
||||
Changes `beautiful.useless_gaps` on the fly.
|
||||
|
||||
The function takes an integer argument, being the amount of pixel to add/remove to gaps.
|
||||
|
||||
You could use it with these keybindings:
|
||||
|
||||
```lua
|
||||
-- On the fly useless gaps change
|
||||
awful.key({ altkey, "Control" }, "+", function () lain.util.useless_gaps_resize(1) end),
|
||||
awful.key({ altkey, "Control" }, "-", function () lain.util.useless_gaps_resize(-1) end),
|
||||
```
|
||||
|
||||
where `altkey = Mod1`, or you could use it like this:
|
||||
|
||||
```lua
|
||||
mywidget:buttons(awful.util.table.join (
|
||||
awful.button({}, 4, function() lain.util.useless_gaps_resize(-1) end),
|
||||
awful.button({}, 5, function() lain.util.useless_gaps_resize(1) end)
|
||||
end)
|
||||
))
|
||||
```
|
||||
|
||||
so when hovering the mouse over `mywidget`, you can adjust useless gaps size by scrolling with the mouse wheel.
|
||||
|
||||
tag\_view\_nonempty
|
||||
-------------------
|
||||
|
||||
This function lets you jump to the next/previous non-empty tag.
|
||||
It takes two arguments:
|
||||
|
||||
* `direction`: `1` for next non-empty tag, `-1` for previous.
|
||||
* `sc`: Screen which the taglist is in. Default is `mouse.screen` or `1`. This
|
||||
argument is optional.
|
||||
|
||||
You can use it with key bindings like these:
|
||||
|
||||
```lua
|
||||
-- Non-empty tag browsing
|
||||
awful.key({ altkey }, "Left", function () lain.util.tag_view_nonempty(-1) end),
|
||||
awful.key({ altkey }, "Right", function () lain.util.tag_view_nonempty(1) end),
|
||||
```
|
||||
|
||||
where `altkey = "Mod1"`.
|
||||
|
||||
magnify\_client
|
||||
---------------
|
||||
|
||||
Set a client to floating and resize it in the same way the "magnifier"
|
||||
layout does it. Place it on the "current" screen (derived from the mouse
|
||||
position). This allows you to magnify any client you wish, regardless of
|
||||
the currently used layout. Use it with a client keybinding like this:
|
||||
|
||||
```lua
|
||||
clientkeys = awful.util.table.join(
|
||||
-- [...]
|
||||
awful.key({ modkey, "Control" }, "m", lain.util.magnify_client),
|
||||
-- [...]
|
||||
)
|
||||
```
|
||||
|
||||
If you want to "de-magnify" it, just retype the keybinding.
|
||||
|
||||
If you want magnified client to respond to `incmwfact`, read [here](https://github.com/copycat-killer/lain/issues/195).
|
||||
|
||||
menu\_clients\_current\_tags
|
||||
----------------------------
|
||||
|
||||
Similar to `awful.menu.clients`, but this menu only shows the clients
|
||||
of currently visible tags. Use it with a key binding like this:
|
||||
|
||||
```lua
|
||||
awful.key({ "Mod1" }, "Tab", function()
|
||||
lain.util.menu_clients_current_tags({ width = 350 }, { keygrabber = true })
|
||||
end),
|
||||
```
|
||||
Reference in New Issue
Block a user