bling/README.md

128 lines
5.3 KiB
Markdown
Raw Normal View History

2020-11-22 10:18:29 +01:00
# <center> 🌟 Bling - Utilities for the AwesomeWM 🌟 </center>
2020-10-25 00:17:55 +02:00
2020-11-22 10:18:29 +01:00
## ❓ Why
AwesomeWM is literally that - an awesome window manager.
It's unique selling point has always been the widget system allowing for fancy buttons, sliders, bars, dashboards and everything you can imagine. But that feature might also be a curse. Most modules focus on the widget side of things which left the actual window managing part of awesomeWM a little underdeveloped compared to for example xmonad even though it's probably just as powerfull in that regard.
This module is trying to fix exactly that: Adding new layouts and modules that - while making use of the widget system - don't focus on it but on new window managing features.
## 🧭 Installation and configuration
2020-10-25 20:52:46 +01:00
- `git clone` this repo into your `~/.config/awesome` folder
- Put ``local bling = require("bling")`` somewhere in your ``rc.lua`` (remember to put it under ``beautiful.init...``)
2020-10-27 21:46:29 +01:00
2020-11-22 10:18:29 +01:00
##### 📎 Layouts
2020-10-27 21:46:29 +01:00
Choose layouts from the list below and add them to to your `awful.layouts` list in your `rc.lua`.
2020-11-30 19:29:12 +01:00
Everyone of them supports multiple master clients and master width factor making them as easily useable as the default layouts.
2020-10-25 20:52:46 +01:00
```Lua
2020-10-27 21:46:29 +01:00
bling.layout.mstab
bling.layout.centered
bling.layout.vertical
bling.layout.horizontal
```
2020-11-22 10:18:29 +01:00
##### 😋 Window swallowing
2020-10-27 21:46:29 +01:00
2020-11-22 10:18:29 +01:00
To activate and deactivate window swallowing there are the following functions. If you want to activate it, just call the `start` function once in your `rc.lua`.
2020-10-27 21:46:29 +01:00
```lua
bling.module.window_swallowing.start() -- activates window swallowing
bling.module.window_swallowing.stop() -- deactivates window swallowing
bling.module.window_swallowing.toggle() -- toggles window swallowing
2020-10-25 20:52:46 +01:00
```
2020-10-25 00:17:55 +02:00
2020-11-22 10:18:29 +01:00
##### 🏬 Tiled Wallpaper
2020-10-27 21:46:29 +01:00
2020-11-22 10:18:29 +01:00
The function to set an automatically created tiled wallpaper can be called the follwing way (you don't need to set every option in the table of the last argument since there are reasonable defaults):
2020-10-27 21:46:29 +01:00
```lua
awful.screen.connect_for_each_screen(function(s) -- that way the wallpaper is applied to every screen
bling.module.tiled_wallpaper("x", s, { -- call the actual function ("x" is the string that will be tiled)
fg = "#ff0000", -- define the foreground color
bg = "#00ffff", -- define the background color
offset_y = 25, -- set a y offset
offset_x = 25, -- set a x offset
font = "Hack", -- set the font (without the size)
font_size = 14, -- set the font size
padding = 100, -- set padding (default is 100)
zickzack = true -- rectangular pattern or criss cross
})
end)
2020-10-25 20:52:46 +01:00
```
2020-10-27 21:46:29 +01:00
2020-11-22 10:18:29 +01:00
##### 🔦 Flash Focus
2020-10-28 23:56:01 +01:00
There are two ways you can use this module. You can just enable it by calling the `enable()` function:
```lua
bling.module.flash_focus.enable()
```
This connects to the focus signal of a client, which means that the flash focus will activate however you focus the client.
The other way is to call the function itself like this: `bling.module.flash_focus.flashfocus(someclient)`. This allows you to just activate on certain keybinds:
```lua
awful.key({modkey}, "Up",
function()
awful.client.focus.bydirection("up")
bling.module.flash_focus.flashfocus(client.focus)
end, {description = "focus up", group = "client"})
```
2020-11-22 10:18:29 +01:00
##### 📑 Tabbing
2020-10-28 23:56:01 +01:00
2020-11-22 10:18:29 +01:00
You should bind these functions to keys in oder to use the tabbed module effectively:
```lua
bling.module.tabbed.pick() -- makes you pick a client with your mouse to add to the tabbing group
bling.module.tabbed.pop() -- removes the focused client from the tabbing group
bling.module.tabbed.iter() -- iterates through the currently focused tabbing group
```
### 🌈 Theme variables
2020-11-29 10:38:05 +01:00
You will find a list of all theme variables that are used in bling and comments on what they do in the `theme-var-template.lua` file - ready for you to copy them into your `theme.lua`. Theme variables are not only used to change the appearance of some features but also to adjust the functionality of some modules. So it is worth it to take a look at them.
2020-11-22 10:18:29 +01:00
## 😲 Preview
2020-10-25 00:17:55 +02:00
2020-11-26 02:07:23 +01:00
### Tabbing
![](https://imgur.com/08AlNhQ.png)
screenshot by [javacafe](https://github.com/JavaCafe01)
2020-11-22 10:18:29 +01:00
### Mstab (dynamic tabbing layout)
2020-11-24 01:28:05 +01:00
![](https://imgur.com/HZRgApE.png)
2020-10-25 20:52:46 +01:00
2020-11-22 11:45:04 +01:00
screenshot by [javacafe](https://github.com/JavaCafe01)
2020-10-25 20:52:46 +01:00
### Centered
2020-11-22 16:50:27 +01:00
![](https://media.discordapp.net/attachments/769673106842845194/780095998239834142/unknown.png)
2020-10-27 21:46:29 +01:00
2020-11-22 11:45:04 +01:00
screenshot by [branwright](https://github.com/branwright1)
2020-10-25 20:52:46 +01:00
2020-10-27 21:46:29 +01:00
### Tiled Wallpaper
2020-11-22 10:18:29 +01:00
![](https://media.discordapp.net/attachments/702548913999314964/773887721294135296/tiled-wallpapers.png?width=1920&height=1080)
2020-11-22 11:45:04 +01:00
screenshots by me
2020-10-28 23:56:01 +01:00
### Flash Focus
![](https://imgur.com/5txYrlV.gif)
2020-10-25 20:52:46 +01:00
2020-11-24 22:11:04 +01:00
gif by [javacafe](https://github.com/JavaCafe01)
2020-11-22 10:18:29 +01:00
### Wind swallowing
![](https://media.discordapp.net/attachments/635625813143978012/769180910683684864/20-10-23-14-40-32.gif)
2020-11-22 11:45:04 +01:00
gif by me :)
2020-11-22 10:18:29 +01:00
2020-11-22 11:41:18 +01:00
## TODO
2020-11-22 10:18:29 +01:00
- [ ] Scratchpad module
2020-11-24 22:11:04 +01:00
- [x] Some more documentation on the tabbed module
2020-11-22 11:41:18 +01:00
- [x] Add a cool alternative tabbar style
2020-11-24 01:28:05 +01:00
- [x] Add another cool tabbar style (we need more styles)
2020-11-29 10:38:05 +01:00
- [x] Make the mstab layout compatible with vertical tabbars (left and right)
- [x] Add option to mstab layout to not shrink windows down when they are in the tabbed pane and unfocused (for example for people using transparent terminals)
2020-12-20 20:38:13 +01:00
- [x] Keyboard based option to add windows to a tabbing object
2020-11-22 10:18:29 +01:00
All naming credit goes to javacafe.
2020-10-25 00:17:55 +02:00
2020-11-22 10:18:29 +01:00
Contributions are welcomed 💛