Compare commits
74 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
294b15e9ea | ||
|
|
bf8520ed9d | ||
|
|
c023714060 | ||
|
|
2d68ee71da | ||
|
|
1c7d2be751 | ||
|
|
3bae4f4403 | ||
| 8171f1c97e | |||
| 2bf4ff9f13 | |||
| 0e2cd5099c | |||
|
|
0e3aafcff5 | ||
|
|
24bce4c810 | ||
|
|
ea77c5f1a1 | ||
|
|
3a85753a74 | ||
| 61930bf561 | |||
| e3757c0ef9 | |||
|
|
dcbdbcb4fd | ||
|
|
6392dc76ef | ||
|
|
78547a1501 | ||
| 95d0175f17 | |||
| f399235db0 | |||
|
|
4f3fb75687 | ||
| 44836685ec | |||
| 1751ab9d45 | |||
| d45e2496b1 | |||
|
|
42a888c311 | ||
| 675ab6692d | |||
| 2abdb05ab9 | |||
|
|
642338e577 | ||
| d63ffa1171 | |||
| 3e628db637 | |||
| be25a16e3c | |||
|
|
10f56a7273 | ||
|
|
c6341f84e7 | ||
|
|
210682e955 | ||
|
|
747b8a9787 | ||
|
|
6cdda097c1 | ||
|
|
b5c6dc31f7 | ||
|
|
3d8b240ef0 | ||
|
|
e5cdb33eec | ||
|
|
f2e6709f6b | ||
|
|
7a9b93aa65 | ||
|
|
3d743c6be0 | ||
|
|
fa656cd5f3 | ||
|
|
686de62f0f | ||
|
|
be6a819ca9 | ||
|
|
268cb29a6b | ||
|
|
9cea2f98cc | ||
|
|
535c763a30 | ||
|
|
2422b9a07f | ||
|
|
e425b7b79e | ||
|
|
978a8580c8 | ||
|
|
e727015e81 | ||
|
|
b2e22fdf8a | ||
|
|
0ccd38f03a | ||
|
|
7280db1a5b | ||
|
|
6e1cc7eaa4 | ||
|
|
fb22b50a97 | ||
|
|
454c80336c | ||
|
|
2b9003c70a | ||
|
|
b479255c39 | ||
|
|
bc5348f53a | ||
|
|
521d392769 | ||
|
|
fd74ab9fb4 | ||
|
|
1ea91d2b6d | ||
|
|
3dfd991456 | ||
|
|
f7d7fb1b95 | ||
|
|
da2d55e149 | ||
|
|
ed9043c4ee | ||
|
|
dadb6ef1dc | ||
|
|
dbc7708f58 | ||
|
|
0e22af5a87 | ||
|
|
ab37a88570 | ||
|
|
16c6345135 | ||
|
|
9049f5c51c |
92
.config/crylia_theme/crylia_theme.json
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
"autostart": [
|
||||||
|
"nm-applet",
|
||||||
|
"protonvpn-cli ks --off",
|
||||||
|
"picom",
|
||||||
|
"/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1",
|
||||||
|
"setxkbmap -option caps:swapescape",
|
||||||
|
"/home/crylia/.screenlayout/double.sh",
|
||||||
|
"gnome-keyring-daemon --start --components=secrets"
|
||||||
|
],
|
||||||
|
"battery_kind": "BATTERY",
|
||||||
|
"battery_path": null,
|
||||||
|
"brightness_step": 2,
|
||||||
|
"dock_icon_size": 64,
|
||||||
|
"energy_manager": "xfce4-power-manager-settings",
|
||||||
|
"file_manager": "nemo",
|
||||||
|
"font": "JetBrainsMono Nerd Font",
|
||||||
|
"font-size": 12,
|
||||||
|
"font-weight": "Bold",
|
||||||
|
"gtk_settings": "lxappearance",
|
||||||
|
"icon_theme": "Papirus-Dark",
|
||||||
|
"kblayout": [
|
||||||
|
"de",
|
||||||
|
"ru"
|
||||||
|
],
|
||||||
|
"layouts": [
|
||||||
|
"awful.layout.suit.fair",
|
||||||
|
"awful.layout.suit.floating"
|
||||||
|
],
|
||||||
|
"modkey": "Mod4",
|
||||||
|
"namestyle": "userhost",
|
||||||
|
"screen_settings": "arandr",
|
||||||
|
"screenshot_program": "flameshot gui",
|
||||||
|
"status_bar_widgets": [
|
||||||
|
"cpu_usage",
|
||||||
|
"cpu_temp",
|
||||||
|
"ram_usage",
|
||||||
|
"microphone",
|
||||||
|
"volume",
|
||||||
|
"gpu_temp",
|
||||||
|
"gpu_usage",
|
||||||
|
"backlight",
|
||||||
|
"battery"
|
||||||
|
],
|
||||||
|
"taskbar_use_name": true,
|
||||||
|
"terminal": "kitty",
|
||||||
|
"text_editor": "code",
|
||||||
|
"titlebar_exception": [
|
||||||
|
"protonvpn"
|
||||||
|
],
|
||||||
|
"titlebar_position": "left",
|
||||||
|
"titlebar_items": {
|
||||||
|
"left_and_bottom": [
|
||||||
|
"icon"
|
||||||
|
],
|
||||||
|
"right_and_top": [
|
||||||
|
"close",
|
||||||
|
"maximize",
|
||||||
|
"minimize"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wallpaper": "/home/crylia/Bilder/Hintergründe/1223939.jpg",
|
||||||
|
"weather_secrets": {
|
||||||
|
"key": "e71b00168ca7219563dde4514a425b14",
|
||||||
|
"city_id": "2864118",
|
||||||
|
"unit": "metric"
|
||||||
|
},
|
||||||
|
"web_browser": "firefox",
|
||||||
|
"crylia_bar": [
|
||||||
|
{
|
||||||
|
"left_bar": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist"
|
||||||
|
],
|
||||||
|
"center_bar": [
|
||||||
|
"Tasklist"
|
||||||
|
],
|
||||||
|
"right_bar": [
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
14
.config/crylia_theme/one_dark.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"bg": "#282c34",
|
||||||
|
"bg1": "#3e4451",
|
||||||
|
"bg2": "#545d6d",
|
||||||
|
"fg": "#FFFFFF",
|
||||||
|
"fg_dark": "#282c34",
|
||||||
|
"border_color": "#3e4451",
|
||||||
|
"bg_red": "#E06C75",
|
||||||
|
"bg_green": "#98C379",
|
||||||
|
"bg_yellow": "#E5C07B",
|
||||||
|
"bg_blue": "#61AFEF",
|
||||||
|
"bg_purple": "#C678DD",
|
||||||
|
"bg_teal": "#56B6C2"
|
||||||
|
}
|
||||||
22
.config/crylia_theme/theme.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"fg_dark": "#212121",
|
||||||
|
"fg": "#f5f5f5",
|
||||||
|
"bg": "#212121",
|
||||||
|
"bg1": "#424242",
|
||||||
|
"bg2": "#616161",
|
||||||
|
"bg_red": "#ef9a9a",
|
||||||
|
"bg_green": "#a5d6a7",
|
||||||
|
"bg_yellow": "#fff59d",
|
||||||
|
"bg_blue": "#90caf9",
|
||||||
|
"bg_teal": "#80cbc4",
|
||||||
|
"bg_purple": "#CE93D8",
|
||||||
|
"bg_deeppurple": "#B39DDB",
|
||||||
|
"bg_cyan": "#80DEEA",
|
||||||
|
"bg_orange": "#ffcc80",
|
||||||
|
"bg_deeporange": "#ffab91",
|
||||||
|
"bg_lightblue": "#81D4FA",
|
||||||
|
"bg_pink": "#f48fb1",
|
||||||
|
"bg_lightgreen": "#C5E1A5",
|
||||||
|
"bg_lime": "#E6EE9C",
|
||||||
|
"border_color": "#424242"
|
||||||
|
}
|
||||||
7
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
**/awesome/.idea
|
awesome/.idea
|
||||||
**/awesome/.vscode
|
awesome/.vscode
|
||||||
**/awesome/start-xephyr.sh
|
awesome/start-xephyr.sh
|
||||||
|
awesome/src/config/**
|
||||||
|
|||||||
9
.gitmodules
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[submodule "awesome/src/lib/rubato"]
|
||||||
|
path = awesome/src/lib/rubato
|
||||||
|
url = https://github.com/andOrlando/rubato
|
||||||
|
[submodule "awesome/src/lib/color"]
|
||||||
|
path = awesome/src/lib/color
|
||||||
|
url = https://github.com/andOrlando/color
|
||||||
|
[submodule "awesome/src/lib/lua-dbus_proxy"]
|
||||||
|
path = awesome/src/lib/lua-dbus_proxy
|
||||||
|
url = git@github.com:Crylia/lua-dbus_proxy.git
|
||||||
18
.vscode/settings.json
vendored
@@ -1,14 +1,18 @@
|
|||||||
{
|
{
|
||||||
|
"Lua.diagnostics.disable": [
|
||||||
|
"undefined-field",
|
||||||
|
"undefined-doc-name",
|
||||||
|
"deprecated"
|
||||||
|
],
|
||||||
"Lua.diagnostics.globals": [
|
"Lua.diagnostics.globals": [
|
||||||
"user_vars",
|
|
||||||
"modkey",
|
|
||||||
"root",
|
|
||||||
"awesome",
|
"awesome",
|
||||||
|
"mouse",
|
||||||
|
"mousegrabber",
|
||||||
"client",
|
"client",
|
||||||
"screen",
|
"screen",
|
||||||
"mouse",
|
"selection",
|
||||||
"double_click_timer",
|
"tag",
|
||||||
"vim",
|
"root",
|
||||||
"lspSymbol"
|
"vim"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
12
.zshrc
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
|
ZSH_THEME="robbyrussell"
|
||||||
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=6
|
||||||
|
|
||||||
|
plugins=(git zsh-autosuggestions)
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
alias spicetify=/home/crylia/.spicetify/spicetify
|
||||||
|
|
||||||
|
eval "$(starship init zsh)"
|
||||||
38
README.md
@@ -53,6 +53,26 @@ Everything you see is done purely because I hate myself and like to give myself
|
|||||||
2. Important dependencies but can be replaced, the theme might behave weird without these or without proper reconfiguration!
|
2. Important dependencies but can be replaced, the theme might behave weird without these or without proper reconfiguration!
|
||||||
3. Nice to have and are the default. Can be easily changed without any worries!
|
3. Nice to have and are the default. Can be easily changed without any worries!
|
||||||
|
|
||||||
|
#### Using the install script (Thanks to @JulianGR)
|
||||||
|
|
||||||
|
>**Arch**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/Crylia/crylia-theme
|
||||||
|
cd crylia-theme
|
||||||
|
chmod +x autoinstall_arch.sh
|
||||||
|
./autoinstall_arch.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
>**Pop!_OS/Ubuntu**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/Crylia/crylia-theme
|
||||||
|
cd crylia-theme
|
||||||
|
chmod +x autoinstall_pop_os.sh
|
||||||
|
./autoinstall_pop_os.sh
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><b>1. Dependencies</b></summary>
|
<summary><b>1. Dependencies</b></summary>
|
||||||
|
|
||||||
@@ -224,6 +244,24 @@ sudo pacman -S lightdm light-locker
|
|||||||
```bash
|
```bash
|
||||||
sudo apt install lightdm light-locker
|
sudo apt install lightdm light-locker
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### **MesloLGS NF Font**
|
||||||
|
|
||||||
|
> **Arch**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -S ttf-meslo-nerd-font-powerlevel10k
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Ubuntu**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
|
||||||
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
# Set the window Width and Height in console columns.
|
# Set the window Width and Height in console columns.
|
||||||
# The window size will change if the font size changes.
|
# The window size will change if the font size changes.
|
||||||
window:
|
window:
|
||||||
|
padding:
|
||||||
|
x: 24
|
||||||
|
y: 24
|
||||||
dimensions:
|
dimensions:
|
||||||
columns: 110
|
columns: 110
|
||||||
lines: 30
|
lines: 30
|
||||||
@@ -24,63 +27,61 @@ scrolling:
|
|||||||
# Font family and style
|
# Font family and style
|
||||||
font:
|
font:
|
||||||
normal:
|
normal:
|
||||||
family: "MesloLGS NF"
|
family: "JetBrains Mono Nerd Font"
|
||||||
style: Regular
|
style: Regular
|
||||||
bold:
|
bold:
|
||||||
family: "MesloLGS NF"
|
family: "JetBrains Mono Nerd Font"
|
||||||
style: Bold
|
style: Bold
|
||||||
italic:
|
italic:
|
||||||
family: "MesloLGS NF"
|
family: "JetBrains Mono Nerd Font"
|
||||||
style: italic
|
style: italic
|
||||||
bold_italic:
|
bold_italic:
|
||||||
family: "MesloLGS NF"
|
family: "JetBrains Mono Nerd Font"
|
||||||
style: Bold Italic
|
style: Bold Italic
|
||||||
size: 12.0
|
size: 13.0
|
||||||
offset:
|
offset:
|
||||||
x: 0
|
|
||||||
y: 0
|
y: 0
|
||||||
draw_bold_text_with_bright_colors: false
|
glyph_offset:
|
||||||
|
y: 0
|
||||||
# Background opacity from 0.0 transparent, 1.0 Opaque
|
# Background opacity from 0.0 transparent, 1.0 Opaque
|
||||||
window:
|
window:
|
||||||
opacity: 0.4
|
opacity: 0.4
|
||||||
# Terminal colors
|
# Terminal colors
|
||||||
colors:
|
colors:
|
||||||
primary:
|
primary:
|
||||||
background: '#000000'
|
background: '0x131621'
|
||||||
foreground: '#FFFFFF'
|
foreground: '0xa6accd'
|
||||||
cursor:
|
cursor:
|
||||||
cursor: '#00b8ff'
|
text: CellBackground
|
||||||
|
cursor: CellForeground
|
||||||
search:
|
search:
|
||||||
matches:
|
matches:
|
||||||
foreground: '#000000'
|
foreground: '0x1b1e28'
|
||||||
background: '#EA80FC'
|
background: '0xadd7ff'
|
||||||
focus_match:
|
focus_match:
|
||||||
foreground: '#000000'
|
foreground: '0x1b1e28'
|
||||||
background: '#E040FB'
|
background: '0xadd7ff'
|
||||||
bar:
|
|
||||||
foreground: '#B388FF'
|
|
||||||
background: '#121212'
|
|
||||||
selection:
|
selection:
|
||||||
text: '#EA80FC'
|
text: CellForeground
|
||||||
background: '#121212'
|
background: '0x303340'
|
||||||
normal:
|
normal:
|
||||||
black: '#121212'
|
black: '0x1b1e28'
|
||||||
red: '#ff5252'
|
red: '0xd0679d'
|
||||||
green: '#8BC34A'
|
green: '0x5de4c7'
|
||||||
yellow: '#FFFF00'
|
yellow: '0xfffac2'
|
||||||
blue: '#82B1FF'
|
blue: '#435c89'
|
||||||
magenta: '#EA80FC'
|
magenta: '0xfcc5e9'
|
||||||
cyan: '#84FFFF'
|
cyan: '0xadd7ff'
|
||||||
white: '#FFFFFF'
|
white: '0xffffff'
|
||||||
bright:
|
bright:
|
||||||
black: '#363636'
|
black: '0xa6accd'
|
||||||
red: '#ef9a9a'
|
red: '0xd0679d'
|
||||||
green: '#A5D6A7'
|
green: '0x5de4c7'
|
||||||
yellow: '#FFF59D'
|
yellow: '0xfffac2'
|
||||||
blue: '#90CAF9'
|
blue: '0xadd7ff'
|
||||||
magenta: '#CE93D8'
|
magenta: '0xfae4fc'
|
||||||
cyan: '#80DEEA'
|
cyan: '0x89ddff'
|
||||||
white: '#FFFFFF'
|
white: '0xffffff'
|
||||||
# Cursor styling
|
# Cursor styling
|
||||||
cursor:
|
cursor:
|
||||||
style: Beam
|
style: Beam
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.9 MiB |
BIN
assets/dock.png
|
Before Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 241 KiB |
23
autoinstall_arch.sh
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo " "
|
||||||
|
echo " ___ __ ____________ ____________ ____ _______ "
|
||||||
|
echo " / | / / / /_ __/ __ \/ ____/ __ \ \/ / / / _/ | "
|
||||||
|
echo " / /| |/ / / / / / / / / / / / /_/ /\ / / / // /| | "
|
||||||
|
echo " / ___ / /_/ / / / / /_/ / /___/ _, _/ / / /____/ // ___ | "
|
||||||
|
echo " /_/ |_\____/ /_/ \____/\____/_/ |_| /_/_____/___/_/ |_| "
|
||||||
|
echo " "
|
||||||
|
|
||||||
|
yay -S awesome-git rofi-git picom-jonaburg-git ttf-meslo-nerd-font-powerlevel10k
|
||||||
|
|
||||||
|
sudo pacman -S papirus-icon-theme pulseaudio-alsa upower bluez bluez-utils xorg-setxkbmap xfce4-power-manager playerctl lightdm light-locker alacritty thunar flameshot
|
||||||
|
|
||||||
|
cd
|
||||||
|
git clone --recurse-submodules https://github.com/Crylia/crylia-theme
|
||||||
|
cd crylia-theme
|
||||||
|
cp -r awesome ~/.config/.
|
||||||
|
cp -r picom.conf ~/.config/.
|
||||||
|
cp -r rofi ~/.config/.
|
||||||
|
cp -r alacritty ~/.config/.
|
||||||
|
|
||||||
|
echo " ===== make sure to reboot and select awesome desktop ====== "
|
||||||
58
autoinstall_pop_os.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo " "
|
||||||
|
echo " ___ __ ____________ ____________ ____ _______ "
|
||||||
|
echo " / | / / / /_ __/ __ \/ ____/ __ \ \/ / / / _/ | "
|
||||||
|
echo " / /| |/ / / / / / / / / / / / /_/ /\ / / / // /| | "
|
||||||
|
echo " / ___ / /_/ / / / / /_/ / /___/ _, _/ / / /____/ // ___ | "
|
||||||
|
echo " /_/ |_\____/ /_/ \____/\____/_/ |_| /_/_____/___/_/ |_| "
|
||||||
|
echo " "
|
||||||
|
|
||||||
|
|
||||||
|
# dependencies for meson, ninja, rofi, awesome and all extra optional packages
|
||||||
|
sudo apt -y install meson ninja-build cmake cmake-data pkg-config papirus-icon-theme xorg build-essential git make autoconf automake flex bison check go-md2man doxygen cppcheck ohcount pulseaudio-utils upower bluez xorg xfce4-power-manager playerctl lightdm light-locker libxcb-ewmh-dev libxcb-xfixes0-dev libev-dev libxcb-damage0-dev libxcb-sync-dev libxcb-composite0-dev libxcb-present-dev uthash-dev libconfig-dev libgl-dev alacritty bison flex check
|
||||||
|
|
||||||
|
# fonts
|
||||||
|
cd
|
||||||
|
mkdir .fonts
|
||||||
|
cd .fonts
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
|
||||||
|
|
||||||
|
# awesome-git (awesome from apt does NOT work)
|
||||||
|
cd
|
||||||
|
sudo apt build-dep -y awesome
|
||||||
|
git clone https://github.com/awesomewm/awesome
|
||||||
|
cd awesome
|
||||||
|
make package
|
||||||
|
cd build/
|
||||||
|
sudo dpkg -i awesome*.deb
|
||||||
|
|
||||||
|
# rofi (rofi from apt does NOT work)
|
||||||
|
cd
|
||||||
|
git clone https://github.com/davatorium/rofi/
|
||||||
|
cd rofi
|
||||||
|
meson setup build
|
||||||
|
ninja -C build
|
||||||
|
ninja -C build install
|
||||||
|
|
||||||
|
# picom (picom from apt does NOT work)
|
||||||
|
cd
|
||||||
|
git clone https://github.com/jonaburg/picom
|
||||||
|
cd picom
|
||||||
|
meson --buildtype=release . build
|
||||||
|
sudo ninja -C build
|
||||||
|
sudo ninja -C build install
|
||||||
|
|
||||||
|
cd
|
||||||
|
git clone --recurse-submodules https://github.com/Crylia/crylia-theme
|
||||||
|
cd crylia-theme
|
||||||
|
cp -r awesome ~/.config/.
|
||||||
|
cp -r picom.conf ~/.config/.
|
||||||
|
cp -r rofi ~/.config/.
|
||||||
|
cp -r alacritty ~/.config/.
|
||||||
|
|
||||||
|
|
||||||
|
echo " ===== make sure to reboot and select awesome desktop ====== "
|
||||||
447
awesome/awful/widget/inputbox.lua
Normal file
@@ -0,0 +1,447 @@
|
|||||||
|
---------------------------------------------------------------------------
|
||||||
|
-- This widget can be used to type text and get the text from it.
|
||||||
|
--@DOC_wibox_widget_defaults_inputbox_EXAMPLE@
|
||||||
|
--
|
||||||
|
-- @author Rene Kievits
|
||||||
|
-- @copyright 2022, Rene Kievits
|
||||||
|
-- @module awful.widget.inputbox
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local setmetatable = setmetatable
|
||||||
|
local beautiful = require('beautiful')
|
||||||
|
local gtable = require('gears.table')
|
||||||
|
local base = require('wibox.widget.base')
|
||||||
|
local gstring = require('gears.string')
|
||||||
|
local akeygrabber = require('awful.keygrabber')
|
||||||
|
local akey = require('awful.key')
|
||||||
|
local textbox = require('wibox.widget.textbox')
|
||||||
|
|
||||||
|
local capi = {
|
||||||
|
selection = selection,
|
||||||
|
mousegrabber = mousegrabber,
|
||||||
|
mouse = mouse,
|
||||||
|
}
|
||||||
|
|
||||||
|
local inputbox = { mt = {} }
|
||||||
|
|
||||||
|
--- Formats the text with a cursor and highlights if set.
|
||||||
|
local function text_with_cursor(text, cursor_pos, self)
|
||||||
|
local char, spacer, text_start, text_end
|
||||||
|
|
||||||
|
local cursor_fg = beautiful.inputbox_cursor_fg or '#313131'
|
||||||
|
local cursor_bg = beautiful.inputbox_cursor_bg or '#0dccfc'
|
||||||
|
local placeholder_text = self.hint_text or ''
|
||||||
|
local placeholder_fg = beautiful.inputbox_placeholder_fg or '#777777'
|
||||||
|
local highlight_bg = beautiful.inputbox_highlight_bg or '#35ffe4'
|
||||||
|
local highlight_fg = beautiful.inputbox_highlight_fg or '#000000'
|
||||||
|
|
||||||
|
if text == '' then
|
||||||
|
return "<span foreground='" .. placeholder_fg .. "'>" .. placeholder_text .. '</span>'
|
||||||
|
end
|
||||||
|
|
||||||
|
local offset = 0
|
||||||
|
if text:sub(cursor_pos - 1, cursor_pos - 1) == -1 then
|
||||||
|
offset = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if #text < cursor_pos then
|
||||||
|
char = ' '
|
||||||
|
spacer = ''
|
||||||
|
text_start = gstring.xml_escape(text)
|
||||||
|
text_end = ''
|
||||||
|
else
|
||||||
|
char = gstring.xml_escape(text:sub(cursor_pos, cursor_pos + offset))
|
||||||
|
spacer = ' '
|
||||||
|
text_start = gstring.xml_escape(text:sub(1, cursor_pos - 1))
|
||||||
|
text_end = gstring.xml_escape(text:sub(cursor_pos + offset + 1))
|
||||||
|
end
|
||||||
|
|
||||||
|
if self._private.highlight and self._private.highlight.cur_pos_start and self._private.highlight.cur_pos_end then
|
||||||
|
-- split the text into 3 parts based on the highlight and cursor position
|
||||||
|
local text_start_highlight = gstring.xml_escape(text:sub(1, self._private.highlight.cur_pos_start - 1))
|
||||||
|
local text_highlighted = gstring.xml_escape(text:sub(self._private.highlight.cur_pos_start,
|
||||||
|
self._private.highlight.cur_pos_end))
|
||||||
|
local text_end_highlight = gstring.xml_escape(text:sub(self._private.highlight.cur_pos_end + 1))
|
||||||
|
|
||||||
|
return text_start_highlight ..
|
||||||
|
"<span foreground='" .. highlight_fg .. "' background='" .. highlight_bg .. "'>" ..
|
||||||
|
text_highlighted .. '</span>' .. text_end_highlight
|
||||||
|
else
|
||||||
|
return text_start .. "<span background='" .. cursor_bg .. "' foreground='" .. cursor_fg .. "'>" ..
|
||||||
|
char .. '</span>' .. text_end .. spacer
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox:layout(_, width, height)
|
||||||
|
if self._private.widget then
|
||||||
|
return { base.place_widget_at(self._private.widget, 0, 0, width, height) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox:fit(context, width, height)
|
||||||
|
local w, h = 0, 0
|
||||||
|
if self._private.widget then
|
||||||
|
w, h = base.fit_widget(self, context, self._private.widget, width, height)
|
||||||
|
end
|
||||||
|
return w, h
|
||||||
|
end
|
||||||
|
|
||||||
|
inputbox.set_widget = base.set_widget_common
|
||||||
|
|
||||||
|
--- Clears the current text
|
||||||
|
function inputbox:clear()
|
||||||
|
self:set_text('')
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox:get_text()
|
||||||
|
return self._private.text or ''
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox:set_text(text)
|
||||||
|
self._private.text = text
|
||||||
|
self.markup = text_with_cursor(self:get_text(), #self:get_text(), self)
|
||||||
|
self:emit_signal('property::text', text)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Stop the keygrabber and mousegrabber
|
||||||
|
function inputbox:stop()
|
||||||
|
if (not self.akeygrabber) or (not self.akeygrabber.is_running) then return end
|
||||||
|
self:emit_signal('stopped')
|
||||||
|
self.akeygrabber.stop()
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox:focus()
|
||||||
|
if (not self.akeygrabber) or (not self.akeygrabber.is_running) then
|
||||||
|
akeygrabber.stop()
|
||||||
|
self:run()
|
||||||
|
end
|
||||||
|
|
||||||
|
self:connect_signal('button::press', function()
|
||||||
|
if capi.mouse.current_widget ~= self then
|
||||||
|
self:emit_signal('keygrabber::stop', '')
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Init the inputbox and start the keygrabber
|
||||||
|
function inputbox:run()
|
||||||
|
if not self._private.text then self._private.text = '' end
|
||||||
|
|
||||||
|
-- Init the cursor position, but causes on refocus the cursor to move to the left
|
||||||
|
local cursor_pos = #self:get_text() + 1
|
||||||
|
|
||||||
|
-- Init and reset(when refocused) the highlight
|
||||||
|
self._private.highlight = {}
|
||||||
|
|
||||||
|
self.akeygrabber = akeygrabber {
|
||||||
|
autostart = true,
|
||||||
|
start_callback = function()
|
||||||
|
self:emit_signal('started')
|
||||||
|
end,
|
||||||
|
stop_callback = function(_, stop_key)
|
||||||
|
if stop_key == 'Return' then
|
||||||
|
self:emit_signal('submit', self:get_text(), stop_key)
|
||||||
|
else
|
||||||
|
self:emit_signal('stopped', stop_key)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
stop_key = { 'Escape', 'Return' },
|
||||||
|
keybindings = {
|
||||||
|
--lShift, rShift = #50, #62
|
||||||
|
--lControl, rControl = #37, #105
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Shift' },
|
||||||
|
key = 'Left', -- left
|
||||||
|
on_press = function()
|
||||||
|
if cursor_pos > 1 then
|
||||||
|
local offset = (self._private.text:sub(cursor_pos - 1, cursor_pos - 1):wlen() == -1) and 1 or 0
|
||||||
|
if not self._private.highlight.cur_pos_start then
|
||||||
|
self._private.highlight.cur_pos_start = cursor_pos - 1
|
||||||
|
end
|
||||||
|
if not self._private.highlight.cur_pos_end then
|
||||||
|
self._private.highlight.cur_pos_end = cursor_pos
|
||||||
|
end
|
||||||
|
|
||||||
|
if self._private.highlight.cur_pos_start < cursor_pos then
|
||||||
|
self._private.highlight.cur_pos_end = self._private.highlight.cur_pos_end - 1
|
||||||
|
else
|
||||||
|
self._private.highlight.cur_pos_start = self._private.highlight.cur_pos_start
|
||||||
|
end
|
||||||
|
|
||||||
|
cursor_pos = cursor_pos - 1
|
||||||
|
end
|
||||||
|
if cursor_pos < 1 then
|
||||||
|
cursor_pos = 1
|
||||||
|
elseif cursor_pos > #self._private.text + 1 then
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Shift', 'Left')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Shift' },
|
||||||
|
key = 'Right', -- right
|
||||||
|
on_press = function()
|
||||||
|
if #self._private.text >= cursor_pos then
|
||||||
|
if not self._private.highlight.cur_pos_end then
|
||||||
|
self._private.highlight.cur_pos_end = cursor_pos - 1
|
||||||
|
end
|
||||||
|
if not self._private.highlight.cur_pos_start then
|
||||||
|
self._private.highlight.cur_pos_start = cursor_pos
|
||||||
|
end
|
||||||
|
|
||||||
|
if self._private.highlight.cur_pos_end <= cursor_pos then
|
||||||
|
self._private.highlight.cur_pos_end = self._private.highlight.cur_pos_end + 1
|
||||||
|
else
|
||||||
|
self._private.highlight.cur_pos_start = self._private.highlight.cur_pos_start + 1
|
||||||
|
end
|
||||||
|
cursor_pos = cursor_pos + 1
|
||||||
|
if cursor_pos > #self._private.text + 1 then
|
||||||
|
self._private.highlight = {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if cursor_pos < 1 then
|
||||||
|
cursor_pos = 1
|
||||||
|
elseif cursor_pos > #self._private.text + 1 then
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Shift', 'Right')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'a', -- a
|
||||||
|
on_press = function()
|
||||||
|
-- Mark the entire text
|
||||||
|
self._private.highlight = {
|
||||||
|
cur_pos_start = 1,
|
||||||
|
cur_pos_end = #self._private.text,
|
||||||
|
}
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Control', 'a')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'v', -- v
|
||||||
|
on_press = function()
|
||||||
|
local sel = capi.selection()
|
||||||
|
if sel then
|
||||||
|
sel = sel:gsub('\n', '')
|
||||||
|
if self._private.highlight and self._private.highlight.cur_pos_start and
|
||||||
|
self._private.highlight.cur_pos_end then
|
||||||
|
-- insert the text into the selected part
|
||||||
|
local text_start = self._private.text:sub(1, self._private.highlight.cur_pos_start - 1)
|
||||||
|
local text_end = self._private.text:sub(self._private.highlight.cur_pos_end + 1)
|
||||||
|
self:set_text(text_start .. sel .. text_end)
|
||||||
|
self._private.highlight = {}
|
||||||
|
cursor_pos = #text_start + #sel + 1
|
||||||
|
else
|
||||||
|
self:set_text(self._private.text:sub(1, cursor_pos - 1) ..
|
||||||
|
sel .. self._private.text:sub(cursor_pos))
|
||||||
|
cursor_pos = cursor_pos + #sel
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Control', 'v')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'c', -- c
|
||||||
|
on_press = function()
|
||||||
|
--TODO
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'x', -- x
|
||||||
|
on_press = function()
|
||||||
|
--TODO
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'Left', -- left
|
||||||
|
on_press = function()
|
||||||
|
-- Find all spaces
|
||||||
|
local spaces = {}
|
||||||
|
local t, i = self._private.text, 0
|
||||||
|
|
||||||
|
while t:find('%s') do
|
||||||
|
i = t:find('%s')
|
||||||
|
table.insert(spaces, i)
|
||||||
|
t = t:sub(1, i - 1) .. '-' .. t:sub(i + 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local cp = 1
|
||||||
|
for _, v in ipairs(spaces) do
|
||||||
|
if (v < cursor_pos) then
|
||||||
|
cp = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
cursor_pos = cp
|
||||||
|
if cursor_pos < 1 then
|
||||||
|
cursor_pos = 1
|
||||||
|
elseif cursor_pos > #self._private.text + 1 then
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Control', 'Left')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = { 'Control' },
|
||||||
|
key = 'Right', -- right
|
||||||
|
on_press = function()
|
||||||
|
local next_space = self._private.text:sub(cursor_pos):find('%s')
|
||||||
|
if next_space then
|
||||||
|
cursor_pos = cursor_pos + next_space
|
||||||
|
else
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if cursor_pos < 1 then
|
||||||
|
cursor_pos = 1
|
||||||
|
elseif cursor_pos > #self._private.text + 1 then
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', 'Control', 'Right')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = {},
|
||||||
|
key = 'BackSpace', --BackSpace
|
||||||
|
on_press = function()
|
||||||
|
-- If text is highlighted delete that, else just delete the character to the left
|
||||||
|
if self._private.highlight and self._private.highlight.cur_pos_start and
|
||||||
|
self._private.highlight.cur_pos_end then
|
||||||
|
local text_start = self._private.text:sub(1, self._private.highlight.cur_pos_start - 1)
|
||||||
|
local text_end = self._private.text:sub(self._private.highlight.cur_pos_end + 1)
|
||||||
|
self:set_text(text_start .. text_end)
|
||||||
|
self._private.highlight = {}
|
||||||
|
cursor_pos = #text_start + 1
|
||||||
|
else
|
||||||
|
if cursor_pos > 1 then
|
||||||
|
local offset = (self._private.text:sub(cursor_pos - 1, cursor_pos - 1):wlen() == -1) and 1 or
|
||||||
|
0
|
||||||
|
self:set_text(self._private.text:sub(1, cursor_pos - 2 - offset) ..
|
||||||
|
self._private.text:sub(cursor_pos))
|
||||||
|
cursor_pos = cursor_pos - 1 - offset
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', nil, 'BackSpace')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = {},
|
||||||
|
key = 'Delete', --delete
|
||||||
|
on_press = function()
|
||||||
|
-- If text is highlighted delete that, else just delete the character to the right
|
||||||
|
if self._private.highlight and self._private.highlight.cur_pos_start and
|
||||||
|
self._private.highlight.cur_pos_end then
|
||||||
|
local text_start = self._private.text:sub(1, self._private.highlight.cur_pos_start - 1)
|
||||||
|
local text_end = self._private.text:sub(self._private.highlight.cur_pos_end + 1)
|
||||||
|
self:set_text(text_start .. text_end)
|
||||||
|
self._private.highlight = {}
|
||||||
|
cursor_pos = #text_start + 1
|
||||||
|
else
|
||||||
|
if cursor_pos <= #self._private.text then
|
||||||
|
self:set_text(self._private.text:sub(1, cursor_pos - 1) ..
|
||||||
|
self._private.text:sub(cursor_pos + 1))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', nil, 'Delete')
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = {},
|
||||||
|
key = 'Left', --left
|
||||||
|
on_press = function()
|
||||||
|
-- Move cursor ro the left
|
||||||
|
if cursor_pos > 1 then
|
||||||
|
cursor_pos = cursor_pos - 1
|
||||||
|
end
|
||||||
|
self._private.highlight = {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
akey {
|
||||||
|
modifiers = {},
|
||||||
|
key = 'Right', --right
|
||||||
|
on_press = function()
|
||||||
|
-- Move cursor to the right
|
||||||
|
if cursor_pos <= #self._private.text then
|
||||||
|
cursor_pos = cursor_pos + 1
|
||||||
|
end
|
||||||
|
self._private.highlight = {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
--self.keybindings
|
||||||
|
},
|
||||||
|
keypressed_callback = function(_, modifiers, key)
|
||||||
|
if modifiers[1] == 'Shift' then
|
||||||
|
if key:wlen() == 1 then
|
||||||
|
self:set_text(self._private.text:sub(1, cursor_pos - 1) ..
|
||||||
|
string.upper(key) .. self._private.text:sub(cursor_pos))
|
||||||
|
cursor_pos = cursor_pos + #key
|
||||||
|
end
|
||||||
|
elseif modifiers[1] == 'Mod2' or '' then
|
||||||
|
if key:wlen() == 1 then
|
||||||
|
self:set_text(self._private.text:sub(1, cursor_pos - 1) ..
|
||||||
|
key .. self._private.text:sub(cursor_pos))
|
||||||
|
cursor_pos = cursor_pos + #key
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if cursor_pos < 1 then
|
||||||
|
cursor_pos = 1
|
||||||
|
elseif cursor_pos > #self._private.text + 1 then
|
||||||
|
cursor_pos = #self._private.text + 1
|
||||||
|
end
|
||||||
|
self.markup = text_with_cursor(self:get_text(), cursor_pos, self)
|
||||||
|
self:emit_signal('inputbox::key_pressed', modifiers, key)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Creates a new inputbox widget
|
||||||
|
-- @tparam table args Arguments for the inputbox widget
|
||||||
|
-- @tparam string args.text The text to display in the inputbox
|
||||||
|
-- @tparam[opt=beautiful.fg_normal] string args.fg Text foreground color
|
||||||
|
-- @tparam[opt=beautiful.border_focus] string args.border_focus_color Border color when focused
|
||||||
|
-- @tparam[opt=""] string args.placeholder_text placeholder text to be shown when not focused and
|
||||||
|
-- @tparam[opt=beautiful.inputbox_placeholder_fg] string args.placeholder_fg placeholder text foreground color
|
||||||
|
-- @tparam[opt=beautiful.inputbox_cursor_bg] string args.cursor_bg Cursor background color
|
||||||
|
-- @tparam[opt=beautiful.inputbox_cursor_fg] string args.cursor_fg Cursor foreground color
|
||||||
|
-- @tparam[opt=beautiful.inputbox_highlight_bg] string args.highlight_bg Highlight background color
|
||||||
|
-- @tparam[opt=beautiful.inputbox_highlight_fg] string args.highlight_fg Highlight foreground color
|
||||||
|
-- @treturn awful.widget.inputbox The inputbox widget.
|
||||||
|
-- @constructorfct awful.widget.inputbox
|
||||||
|
function inputbox.new(args)
|
||||||
|
args = args or {}
|
||||||
|
-- directly pass a possible default text(this is not meant to be a hint)
|
||||||
|
local w = textbox()
|
||||||
|
|
||||||
|
--gtable.crush(w, args)
|
||||||
|
gtable.crush(w, inputbox, true)
|
||||||
|
|
||||||
|
w.font = args.font or beautiful.font
|
||||||
|
|
||||||
|
w.keybindings = args.keybindings or {}
|
||||||
|
w.hint_text = args.hint_text
|
||||||
|
|
||||||
|
w.markup = args.text or text_with_cursor('', 1, w)
|
||||||
|
return w
|
||||||
|
end
|
||||||
|
|
||||||
|
function inputbox.mt:__call(...)
|
||||||
|
return inputbox.new(...)
|
||||||
|
end
|
||||||
|
|
||||||
|
return setmetatable(inputbox, inputbox.mt)
|
||||||
160
awesome/awful/widget/toggle_widget.lua
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
local base = require('wibox.widget.base')
|
||||||
|
local gtable = require('gears.table')
|
||||||
|
local gcolor = require('gears.color')
|
||||||
|
local beautiful = require('beautiful')
|
||||||
|
local dpi = require('beautiful').xresources.apply_dpi
|
||||||
|
local wibox = require('wibox')
|
||||||
|
local gshape = require('gears.shape')
|
||||||
|
local rubato = require('src.lib.rubato')
|
||||||
|
local abutton = require('awful.button')
|
||||||
|
|
||||||
|
local toggle_widget = { mt = {} }
|
||||||
|
|
||||||
|
function toggle_widget:layout(_, width, height)
|
||||||
|
if self._private.widget then
|
||||||
|
return { base.place_widget_at(self._private.widget, 0, 0, width, height) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget:fit(context, width, height)
|
||||||
|
local w, h = 0, 0
|
||||||
|
if self._private.widget then
|
||||||
|
w, h = base.fit_widget(self, context, self._private.widget, width, height)
|
||||||
|
end
|
||||||
|
return w, h
|
||||||
|
end
|
||||||
|
|
||||||
|
toggle_widget.set_widget = base.set_widget_common
|
||||||
|
|
||||||
|
function toggle_widget:get_widget()
|
||||||
|
return self._private.widget
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget:set_enabled()
|
||||||
|
self.active = true
|
||||||
|
self.toggle_button.border_color = self.color
|
||||||
|
self.newcolor = self.color
|
||||||
|
self.rubato_timed.target = 39
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget:set_disabled()
|
||||||
|
self.active = not self.active
|
||||||
|
self.toggle_button.border_color = beautiful.colorscheme.bg1
|
||||||
|
self.newcolor = beautiful.colorscheme.bg1
|
||||||
|
self.rubato_timed.target = 5
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget:toggle_animation(pos, color)
|
||||||
|
if pos > 39 then return end
|
||||||
|
return function(_, _, cr, width, height)
|
||||||
|
cr:set_source(gcolor(beautiful.colorscheme.bg))
|
||||||
|
cr:paint()
|
||||||
|
cr:set_source(gcolor(color))
|
||||||
|
cr:move_to(pos, 0)
|
||||||
|
local x = pos
|
||||||
|
local y = 5
|
||||||
|
local newwidth = dpi(width / 2 - 6)
|
||||||
|
local newheight = height - 10
|
||||||
|
|
||||||
|
local radius = height / 6.0
|
||||||
|
local degrees = math.pi / 180.0
|
||||||
|
|
||||||
|
cr:new_sub_path()
|
||||||
|
cr:arc(x + newwidth - radius, y + radius, radius, -90 * degrees, 0 * degrees)
|
||||||
|
cr:arc(x + newwidth - radius, y + newheight - radius, radius, 0 * degrees, 90 * degrees)
|
||||||
|
cr:arc(x + radius, y + newheight - radius, radius, 90 * degrees, 180 * degrees)
|
||||||
|
cr:arc(x + radius, y + radius, radius, 180 * degrees, 270 * degrees)
|
||||||
|
cr:close_path()
|
||||||
|
cr:fill()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget.new(args)
|
||||||
|
args = args or {}
|
||||||
|
|
||||||
|
local ret = base.make_widget(nil, nil, {
|
||||||
|
enable_properties = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
gtable.crush(ret, toggle_widget, true)
|
||||||
|
|
||||||
|
ret.newcolor = beautiful.colorscheme.bg1
|
||||||
|
ret.color = args.color
|
||||||
|
|
||||||
|
ret.toggle_button = wibox.widget {
|
||||||
|
{
|
||||||
|
widget = wibox.widget {
|
||||||
|
fit = function(_, width, height)
|
||||||
|
return width, height
|
||||||
|
end,
|
||||||
|
draw = ret:toggle_animation(0, ret.newcolor),
|
||||||
|
},
|
||||||
|
id = 'background',
|
||||||
|
},
|
||||||
|
active = false,
|
||||||
|
widget = wibox.container.background,
|
||||||
|
bg = beautiful.colorscheme.bg,
|
||||||
|
border_color = beautiful.colorscheme.border_color,
|
||||||
|
border_width = dpi(2),
|
||||||
|
forced_height = args.size,
|
||||||
|
forced_width = args.size * 2,
|
||||||
|
shape = beautiful.shape[10],
|
||||||
|
}
|
||||||
|
|
||||||
|
ret.rubato_timed = rubato.timed {
|
||||||
|
duration = 0.2,
|
||||||
|
pos = 5,
|
||||||
|
subscribed = function(pos)
|
||||||
|
ret.toggle_button:get_children_by_id('background')[1].draw = ret:toggle_animation(pos, ret.newcolor)
|
||||||
|
ret.toggle_button:emit_signal('widget::redraw_needed')
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
ret:set_widget(wibox.widget {
|
||||||
|
{
|
||||||
|
{
|
||||||
|
args.text and {
|
||||||
|
text = args.text,
|
||||||
|
valign = 'center',
|
||||||
|
align = 'center',
|
||||||
|
widget = wibox.widget.textbox,
|
||||||
|
id = 'clearall',
|
||||||
|
} or nil,
|
||||||
|
ret.toggle_button,
|
||||||
|
spacing = args.text and dpi(10) or dpi(0),
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
id = 'layout12',
|
||||||
|
},
|
||||||
|
id = 'background4',
|
||||||
|
fg = args.fg,
|
||||||
|
shape = beautiful.shape[12],
|
||||||
|
widget = wibox.container.background,
|
||||||
|
},
|
||||||
|
id = 'place',
|
||||||
|
widget = wibox.container.place,
|
||||||
|
valign = 'bottom',
|
||||||
|
halign = 'right',
|
||||||
|
})
|
||||||
|
|
||||||
|
ret.toggle_button:buttons(
|
||||||
|
gtable.join(
|
||||||
|
abutton({}, 1, function()
|
||||||
|
if ret.active then
|
||||||
|
ret:set_disabled()
|
||||||
|
else
|
||||||
|
ret:set_enabled()
|
||||||
|
end
|
||||||
|
ret:emit_signal('dnd::toggle', ret.active)
|
||||||
|
end
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
function toggle_widget.mt:__call(...)
|
||||||
|
return toggle_widget.new(...)
|
||||||
|
end
|
||||||
|
|
||||||
|
return setmetatable(toggle_widget, toggle_widget.mt)
|
||||||
@@ -1,122 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
|
|
||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local color = require("src.theme.colors")
|
|
||||||
local dpi = require("beautiful").xresources.apply_dpi
|
|
||||||
local gears = require("gears")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
|
|
||||||
return function(s, widgets)
|
|
||||||
|
|
||||||
local top_center = awful.popup {
|
|
||||||
screen = s,
|
|
||||||
widget = wibox.container.background,
|
|
||||||
ontop = false,
|
|
||||||
bg = color["Grey900"],
|
|
||||||
visible = true,
|
|
||||||
maximum_width = dpi(500),
|
|
||||||
placement = function(c) awful.placement.top(c, { margins = dpi(10) }) end,
|
|
||||||
shape = function(cr, width, height)
|
|
||||||
gears.shape.rounded_rect(cr, width, height, 5)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
top_center:struts {
|
|
||||||
top = 55
|
|
||||||
}
|
|
||||||
|
|
||||||
local function prepare_widgets(widgets)
|
|
||||||
local layout = {
|
|
||||||
forced_height = 45,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
}
|
|
||||||
for i, widget in pairs(widgets) do
|
|
||||||
if i == 1 then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(6),
|
|
||||||
right = dpi(6),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
elseif i == #widgets then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(6),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
else
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(3),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return layout
|
|
||||||
end
|
|
||||||
|
|
||||||
top_center:setup {
|
|
||||||
nil,
|
|
||||||
prepare_widgets(widgets),
|
|
||||||
nil,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
}
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"manage",
|
|
||||||
function(c)
|
|
||||||
if #s.selected_tag:clients() < 1 then
|
|
||||||
top_center.visible = false
|
|
||||||
else
|
|
||||||
top_center.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"unmanage",
|
|
||||||
function(c)
|
|
||||||
if #s.selected_tag:clients() < 1 then
|
|
||||||
top_center.visible = false
|
|
||||||
else
|
|
||||||
top_center.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"tag::switched",
|
|
||||||
function(c)
|
|
||||||
if #s.selected_tag:clients() < 1 then
|
|
||||||
top_center.visible = false
|
|
||||||
else
|
|
||||||
top_center.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
awesome.connect_signal(
|
|
||||||
"refresh",
|
|
||||||
function(c)
|
|
||||||
if #s.selected_tag:clients() < 1 then
|
|
||||||
top_center.visible = false
|
|
||||||
else
|
|
||||||
top_center.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
end
|
|
||||||
@@ -1,313 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
|
|
||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local color = require("src.theme.colors")
|
|
||||||
local dpi = require("beautiful").xresources.apply_dpi
|
|
||||||
local gears = require("gears")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
|
|
||||||
return function(screen, programs)
|
|
||||||
|
|
||||||
local function create_dock_element(class, program, name, user_icon, is_steam, size)
|
|
||||||
if program == nil or class == nil then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
is_steam = is_steam or false
|
|
||||||
user_icon = user_icon or nil
|
|
||||||
local dock_element = wibox.widget {
|
|
||||||
{
|
|
||||||
{
|
|
||||||
{
|
|
||||||
resize = true,
|
|
||||||
forced_width = size,
|
|
||||||
forced_height = size,
|
|
||||||
image = user_icon or Get_icon(user_vars.icon_theme, nil, program, class, is_steam),
|
|
||||||
widget = wibox.widget.imagebox,
|
|
||||||
id = "icon",
|
|
||||||
},
|
|
||||||
margins = dpi(5),
|
|
||||||
widget = wibox.container.margin,
|
|
||||||
id = "margin"
|
|
||||||
},
|
|
||||||
shape = function(cr, width, height)
|
|
||||||
gears.shape.rounded_rect(cr, width, height, 10)
|
|
||||||
end,
|
|
||||||
bg = color["Grey900"],
|
|
||||||
widget = wibox.container.background,
|
|
||||||
id = "background"
|
|
||||||
},
|
|
||||||
top = dpi(5),
|
|
||||||
left = dpi(5),
|
|
||||||
right = dpi(5),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, c in ipairs(client.get()) do
|
|
||||||
if string.lower(c.class):match(program) and c == client.focus then
|
|
||||||
dock_element.background.bg = color["Grey800"]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Hover_signal(dock_element.background, color["Grey800"], color["White"])
|
|
||||||
|
|
||||||
dock_element:connect_signal(
|
|
||||||
"button::press",
|
|
||||||
function()
|
|
||||||
if is_steam then
|
|
||||||
awful.spawn("steam steam://rungameid/" .. program)
|
|
||||||
else
|
|
||||||
awful.spawn(program)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
awful.tooltip {
|
|
||||||
objects = { dock_element },
|
|
||||||
text = name,
|
|
||||||
mode = "outside",
|
|
||||||
preferred_alignments = "middle",
|
|
||||||
margins = dpi(10)
|
|
||||||
}
|
|
||||||
|
|
||||||
return dock_element
|
|
||||||
end
|
|
||||||
|
|
||||||
local dock = awful.popup {
|
|
||||||
widget = wibox.container.background,
|
|
||||||
ontop = true,
|
|
||||||
bg = color["Grey900"],
|
|
||||||
visible = true,
|
|
||||||
screen = screen,
|
|
||||||
type = "dock",
|
|
||||||
height = user_vars.dock_icon_size + 10,
|
|
||||||
placement = function(c) awful.placement.bottom(c, { margins = dpi(10) }) end,
|
|
||||||
shape = function(cr, width, height)
|
|
||||||
gears.shape.rounded_rect(cr, width, height, 15)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
local fakedock = awful.popup {
|
|
||||||
widget = wibox.container.background,
|
|
||||||
ontop = true,
|
|
||||||
bg = '#00000000',
|
|
||||||
visible = true,
|
|
||||||
screen = screen,
|
|
||||||
type = "dock",
|
|
||||||
id = "fakedock",
|
|
||||||
height = dpi(10),
|
|
||||||
placement = function(c) awful.placement.bottom(c, { margins = dpi(0) }) end,
|
|
||||||
}
|
|
||||||
|
|
||||||
local function get_dock_elements(pr)
|
|
||||||
local dock_elements = { layout = wibox.layout.fixed.horizontal }
|
|
||||||
|
|
||||||
for i, p in ipairs(pr) do
|
|
||||||
dock_elements[i] = create_dock_element(p[1], p[2], p[3], p[4], p[5], user_vars.dock_icon_size)
|
|
||||||
end
|
|
||||||
|
|
||||||
return dock_elements
|
|
||||||
end
|
|
||||||
|
|
||||||
local dock_elements = get_dock_elements(programs)
|
|
||||||
|
|
||||||
local function get_fake_elements(amount)
|
|
||||||
local fake_elements = { layout = wibox.layout.fixed.horizontal }
|
|
||||||
|
|
||||||
for i = 0, amount, 1 do
|
|
||||||
fake_elements[i] = wibox.widget {
|
|
||||||
bg = '00000000',
|
|
||||||
forced_width = user_vars.dock_icon_size + dpi(20),
|
|
||||||
forced_height = dpi(10),
|
|
||||||
id = "fake",
|
|
||||||
widget = wibox.container.background
|
|
||||||
}
|
|
||||||
end
|
|
||||||
return fake_elements
|
|
||||||
end
|
|
||||||
|
|
||||||
local function create_incicator_widget(prog)
|
|
||||||
local container = { layout = wibox.layout.flex.horizontal }
|
|
||||||
local clients = client.get()
|
|
||||||
for index, pr in ipairs(prog) do
|
|
||||||
local indicators = { layout = wibox.layout.flex.horizontal, spacing = dpi(5) }
|
|
||||||
local col = color["Grey600"]
|
|
||||||
for i, c in ipairs(clients) do
|
|
||||||
if string.lower(c.class or c.name):match(string.lower(pr[1]) or string.lower(pr[2])) then
|
|
||||||
if c == client.focus then
|
|
||||||
col = color["YellowA200"]
|
|
||||||
elseif c.urgent then
|
|
||||||
col = color["RedA200"]
|
|
||||||
elseif c.maximized then
|
|
||||||
col = color["GreenA200"]
|
|
||||||
elseif c.minimized then
|
|
||||||
col = color["BlueA200"]
|
|
||||||
elseif c.fullscreen then
|
|
||||||
col = color["PinkA200"]
|
|
||||||
else
|
|
||||||
col = color["Grey600"]
|
|
||||||
end
|
|
||||||
indicators[i] = wibox.widget {
|
|
||||||
widget = wibox.container.background,
|
|
||||||
shape = gears.shape.rounded_rect,
|
|
||||||
forced_height = dpi(3),
|
|
||||||
bg = col,
|
|
||||||
forced_width = dpi(5),
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
container[index] = wibox.widget {
|
|
||||||
indicators,
|
|
||||||
forced_height = dpi(5),
|
|
||||||
forced_width = dpi(50),
|
|
||||||
left = dpi(5),
|
|
||||||
right = dpi(5),
|
|
||||||
widget = wibox.container.margin,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
return wibox.widget {
|
|
||||||
container,
|
|
||||||
bottom = dpi(5),
|
|
||||||
widget = wibox.container.margin,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
fakedock:setup {
|
|
||||||
get_fake_elements(#programs),
|
|
||||||
type = 'dock',
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
|
|
||||||
local function check_for_dock_hide(s)
|
|
||||||
for _, client in ipairs(s.selected_tag:clients()) do
|
|
||||||
if client.fullscreen then
|
|
||||||
dock.visible = false
|
|
||||||
fakedock.visible = false
|
|
||||||
else
|
|
||||||
fakedock.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if #s.selected_tag:clients() < 1 then
|
|
||||||
dock.visible = true
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if s == mouse.screen then
|
|
||||||
local minimized
|
|
||||||
for _, c in ipairs(s.selected_tag:clients()) do
|
|
||||||
if c.minimized then
|
|
||||||
minimized = true
|
|
||||||
end
|
|
||||||
if c.maximized or c.fullscreen then
|
|
||||||
dock.visible = false
|
|
||||||
return
|
|
||||||
end
|
|
||||||
if not c.minimized then
|
|
||||||
local y = c:geometry().y
|
|
||||||
local h = c.height
|
|
||||||
if (y + h) >= s.geometry.height - user_vars.dock_icon_size - 35 then
|
|
||||||
dock.visible = false
|
|
||||||
return
|
|
||||||
else
|
|
||||||
dock.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if minimized then
|
|
||||||
dock.visible = true
|
|
||||||
end
|
|
||||||
else
|
|
||||||
dock.visible = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local dock_intelligent_hide = gears.timer {
|
|
||||||
timeout = 1,
|
|
||||||
autostart = true,
|
|
||||||
call_now = true,
|
|
||||||
callback = function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
fakedock:connect_signal(
|
|
||||||
"mouse::enter",
|
|
||||||
function()
|
|
||||||
for _, c in ipairs(screen.clients) do
|
|
||||||
if not c.fullscreen then
|
|
||||||
dock_intelligent_hide:stop()
|
|
||||||
dock.visible = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"manage",
|
|
||||||
function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
dock:setup {
|
|
||||||
dock_elements,
|
|
||||||
create_incicator_widget(programs),
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"property::minimized",
|
|
||||||
function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
dock:setup {
|
|
||||||
dock_elements,
|
|
||||||
create_incicator_widget(programs),
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"unmanage",
|
|
||||||
function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
dock:setup {
|
|
||||||
dock_elements,
|
|
||||||
create_incicator_widget(programs),
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
client.connect_signal(
|
|
||||||
"focus",
|
|
||||||
function()
|
|
||||||
check_for_dock_hide(screen)
|
|
||||||
dock:setup {
|
|
||||||
dock_elements,
|
|
||||||
create_incicator_widget(programs),
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
dock:connect_signal(
|
|
||||||
"mouse::enter",
|
|
||||||
function()
|
|
||||||
dock_intelligent_hide:stop()
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
dock:connect_signal(
|
|
||||||
"mouse::leave",
|
|
||||||
function()
|
|
||||||
dock_intelligent_hide:again()
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
dock:setup {
|
|
||||||
get_dock_elements(programs),
|
|
||||||
create_incicator_widget(programs),
|
|
||||||
layout = wibox.layout.fixed.vertical
|
|
||||||
}
|
|
||||||
end
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
|
|
||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
|
|
||||||
awful.screen.connect_for_each_screen(
|
|
||||||
-- For each screen this function is called once
|
|
||||||
-- If you want to change the modules per screen use the indices
|
|
||||||
-- e.g. 1 would be the primary screen and 2 the secondary screen.
|
|
||||||
function(s)
|
|
||||||
-- Create 9 tags
|
|
||||||
awful.layout.layouts = user_vars.layouts
|
|
||||||
awful.tag(
|
|
||||||
{ "1", "2", "3", "4", "5", "6", "7", "8", "9" },
|
|
||||||
s,
|
|
||||||
user_vars.layouts[1]
|
|
||||||
)
|
|
||||||
|
|
||||||
require("src.modules.powermenu")(s)
|
|
||||||
-- TODO: rewrite calendar osd, maybe write an own inplementation
|
|
||||||
-- require("src.modules.calendar_osd")(s)
|
|
||||||
require("src.modules.volume_osd")(s)
|
|
||||||
require("src.modules.brightness_osd")(s)
|
|
||||||
require("src.modules.titlebar")
|
|
||||||
require("src.modules.volume_controller")(s)
|
|
||||||
|
|
||||||
-- Widgets
|
|
||||||
--s.battery = require("src.widgets.battery")()
|
|
||||||
s.audio = require("src.widgets.audio")(s)
|
|
||||||
s.date = require("src.widgets.date")()
|
|
||||||
s.clock = require("src.widgets.clock")()
|
|
||||||
--s.bluetooth = require("src.widgets.bluetooth")()
|
|
||||||
s.layoutlist = require("src.widgets.layout_list")()
|
|
||||||
s.powerbutton = require("src.widgets.power")()
|
|
||||||
s.kblayout = require("src.widgets.kblayout")(s)
|
|
||||||
s.taglist = require("src.widgets.taglist")(s)
|
|
||||||
s.tasklist = require("src.widgets.tasklist")(s)
|
|
||||||
--s.cpu_freq = require("src.widgets.cpu_info")("freq", "average")
|
|
||||||
|
|
||||||
-- Add more of these if statements if you want to change
|
|
||||||
-- the modules/widgets per screen.
|
|
||||||
if s.index == 1 then
|
|
||||||
s.systray = require("src.widgets.systray")(s)
|
|
||||||
s.cpu_usage = require("src.widgets.cpu_info")("usage")
|
|
||||||
s.cpu_temp = require("src.widgets.cpu_info")("temp")
|
|
||||||
s.gpu_usage = require("src.widgets.gpu_info")("usage")
|
|
||||||
s.gpu_temp = require("src.widgets.gpu_info")("temp")
|
|
||||||
|
|
||||||
require("crylia_bar.left_bar")(s, { s.layoutlist, s.systray, s.taglist })
|
|
||||||
require("crylia_bar.center_bar")(s, { s.tasklist })
|
|
||||||
require("crylia_bar.right_bar")(s, { s.gpu_usage, s.gpu_temp, s.cpu_usage, s.cpu_temp, s.audio, s.kblayout, s.date, s.clock, s.powerbutton })
|
|
||||||
require("crylia_bar.dock")(s, user_vars.dock_programs)
|
|
||||||
end
|
|
||||||
|
|
||||||
if s.index == 2 then
|
|
||||||
s.network = require("src.widgets.network")()
|
|
||||||
s.ram_info = require("src.widgets.ram_info")()
|
|
||||||
|
|
||||||
require("crylia_bar.left_bar")(s, { s.layoutlist, s.taglist })
|
|
||||||
require("crylia_bar.center_bar")(s, { s.tasklist })
|
|
||||||
require("crylia_bar.right_bar")(s, { s.ram_info, s.audio, s.kblayout, s.network, s.date, s.clock, s.powerbutton })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
|
|
||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local color = require("src.theme.colors")
|
|
||||||
local dpi = require("beautiful").xresources.apply_dpi
|
|
||||||
local gears = require("gears")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
|
|
||||||
return function(s, widgets)
|
|
||||||
|
|
||||||
local top_left = awful.popup {
|
|
||||||
screen = s,
|
|
||||||
widget = wibox.container.background,
|
|
||||||
ontop = false,
|
|
||||||
bg = color["Grey900"],
|
|
||||||
visible = true,
|
|
||||||
maximum_width = dpi(650),
|
|
||||||
placement = function(c) awful.placement.top_left(c, { margins = dpi(10) }) end,
|
|
||||||
shape = function(cr, width, height)
|
|
||||||
gears.shape.rounded_rect(cr, width, height, 5)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
top_left:struts {
|
|
||||||
top = 55
|
|
||||||
}
|
|
||||||
|
|
||||||
local function prepare_widgets(widgets)
|
|
||||||
local layout = {
|
|
||||||
forced_height = 45,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
}
|
|
||||||
for i, widget in pairs(widgets) do
|
|
||||||
if i == 1 then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(6),
|
|
||||||
right = dpi(3),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
elseif i == #widgets then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(6),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
else
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(3),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return layout
|
|
||||||
end
|
|
||||||
|
|
||||||
top_left:setup {
|
|
||||||
prepare_widgets(widgets),
|
|
||||||
nil,
|
|
||||||
nil,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
}
|
|
||||||
end
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen --
|
|
||||||
--------------------------------------------------------------------------------------------------------------
|
|
||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local color = require("src.theme.colors")
|
|
||||||
local dpi = require("beautiful").xresources.apply_dpi
|
|
||||||
local gears = require("gears")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
|
|
||||||
return function(s, widgets)
|
|
||||||
|
|
||||||
local top_right = awful.popup {
|
|
||||||
widget = wibox.container.background,
|
|
||||||
ontop = false,
|
|
||||||
bg = color["Grey900"],
|
|
||||||
visible = true,
|
|
||||||
screen = s,
|
|
||||||
placement = function(c) awful.placement.top_right(c, { margins = dpi(10) }) end,
|
|
||||||
shape = function(cr, width, height)
|
|
||||||
gears.shape.rounded_rect(cr, width, height, 5)
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
||||||
top_right:struts {
|
|
||||||
top = 55
|
|
||||||
}
|
|
||||||
|
|
||||||
local function prepare_widgets(widgets)
|
|
||||||
local layout = {
|
|
||||||
forced_height = 45,
|
|
||||||
layout = wibox.layout.fixed.horizontal
|
|
||||||
}
|
|
||||||
for i, widget in pairs(widgets) do
|
|
||||||
if i == 1 then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(6),
|
|
||||||
right = dpi(3),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
elseif i == #widgets then
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(6),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
else
|
|
||||||
table.insert(layout,
|
|
||||||
{
|
|
||||||
widget,
|
|
||||||
left = dpi(3),
|
|
||||||
right = dpi(3),
|
|
||||||
top = dpi(6),
|
|
||||||
bottom = dpi(6),
|
|
||||||
widget = wibox.container.margin
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return layout
|
|
||||||
end
|
|
||||||
|
|
||||||
top_right:setup {
|
|
||||||
nil,
|
|
||||||
nil,
|
|
||||||
prepare_widgets(widgets),
|
|
||||||
layout = wibox.layout.align.horizontal
|
|
||||||
}
|
|
||||||
end
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local gears = require("gears")
|
|
||||||
local globalkeys = require("../mappings/global_keys")
|
|
||||||
local modkey = user_vars.modkey
|
|
||||||
|
|
||||||
for i = 1, 9 do
|
|
||||||
globalkeys = gears.table.join(globalkeys,
|
|
||||||
|
|
||||||
-- View tag only
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#" .. i + 9,
|
|
||||||
function()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
tag:view_only()
|
|
||||||
end
|
|
||||||
client.emit_signal("tag::switched")
|
|
||||||
end,
|
|
||||||
{ description = "View Tag " .. i, group = "Tag" }
|
|
||||||
),
|
|
||||||
-- Brings the window over without chaning the tag, reverts automatically on tag change
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#" .. i + 9,
|
|
||||||
function()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewtoggle(tag)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{ description = "Toggle Tag " .. i, group = "Tag" }
|
|
||||||
),
|
|
||||||
-- Brings the window over without chaning the tag, reverts automatically on tag change
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#" .. i + 9,
|
|
||||||
function()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
if client.focus then
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
client.focus:move_to_tag(tag)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{ description = "Move focused client on tag " .. i, group = "Tag" }
|
|
||||||
),
|
|
||||||
-- Brings the window over without chaning the tag, reverts automatically on tag change
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control", "Shift" },
|
|
||||||
"#" .. i + 9,
|
|
||||||
function()
|
|
||||||
local screen = awful.screen.focused()
|
|
||||||
local tag = screen.tags[i]
|
|
||||||
if tag then
|
|
||||||
awful.tag.viewtoggle(tag)
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{ description = "Move focused client on tag " .. i, group = "Tag" }
|
|
||||||
)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
root.keys(globalkeys)
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local gears = require("gears")
|
|
||||||
|
|
||||||
local modkey = user_vars.modkey
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.button({}, 1, function(c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
|
||||||
end),
|
|
||||||
awful.button({ modkey }, 1, function(c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
|
||||||
awful.mouse.client.move(c)
|
|
||||||
end),
|
|
||||||
awful.button({ modkey }, 3, function(c)
|
|
||||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
|
||||||
awful.mouse.client.resize(c)
|
|
||||||
end)
|
|
||||||
)
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
-- Awesome Libs
|
|
||||||
local awful = require("awful")
|
|
||||||
local gears = require("gears")
|
|
||||||
|
|
||||||
local modkey = user_vars.modkey
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#41",
|
|
||||||
function(c)
|
|
||||||
c.fullscreen = not c.fullscreen
|
|
||||||
c:raise()
|
|
||||||
end,
|
|
||||||
{ description = "Toggle fullscreen", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#24",
|
|
||||||
function(c)
|
|
||||||
c:kill()
|
|
||||||
end,
|
|
||||||
{ description = "Close focused client", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#42",
|
|
||||||
awful.client.floating.toggle,
|
|
||||||
{ description = "Toggle floating window", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#58",
|
|
||||||
function(c)
|
|
||||||
c.maximized = not c.maximized
|
|
||||||
c:raise()
|
|
||||||
end,
|
|
||||||
{ description = "(un)maximize", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#57",
|
|
||||||
function(c)
|
|
||||||
if c == client.focus then
|
|
||||||
c.minimized = true
|
|
||||||
else
|
|
||||||
c.minimized = false
|
|
||||||
if not c:isvisible() and c.first_tag then
|
|
||||||
c.first_tag:view_only()
|
|
||||||
end
|
|
||||||
c:emit_signal('request::activate')
|
|
||||||
c:raise()
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
{ description = "(un)hide", group = "Client" }
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
-- Awesome Libs
|
|
||||||
local gears = require("gears")
|
|
||||||
local awful = require("awful")
|
|
||||||
|
|
||||||
root.buttons = gears.table.join(
|
|
||||||
awful.button({}, 4, awful.tag.viewnext),
|
|
||||||
awful.button({}, 5, awful.tag.viewprev)
|
|
||||||
)
|
|
||||||
@@ -1,373 +0,0 @@
|
|||||||
-- Awesome Libs
|
|
||||||
local gears = require("gears")
|
|
||||||
local awful = require("awful")
|
|
||||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
|
||||||
local ruled = require("ruled")
|
|
||||||
|
|
||||||
local modkey = user_vars.modkey
|
|
||||||
|
|
||||||
return gears.table.join(
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#39",
|
|
||||||
hotkeys_popup.show_help,
|
|
||||||
{ description = "Cheat sheet", group = "Awesome" }
|
|
||||||
),
|
|
||||||
-- Tag browsing
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#113",
|
|
||||||
awful.tag.viewprev,
|
|
||||||
{ description = "View previous tag", group = "Tag" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#114",
|
|
||||||
awful.tag.viewnext,
|
|
||||||
{ description = "View next tag", group = "Tag" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#66",
|
|
||||||
awful.tag.history.restore,
|
|
||||||
{ description = "Go back to last tag", group = "Tag" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#44",
|
|
||||||
function()
|
|
||||||
awful.client.focus.byidx(1)
|
|
||||||
end,
|
|
||||||
{ description = "Focus next client by index", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#45",
|
|
||||||
function()
|
|
||||||
awful.client.focus.byidx(-1)
|
|
||||||
end,
|
|
||||||
{ description = "Focus previous client by index", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#44",
|
|
||||||
function()
|
|
||||||
awful.client.swap.byidx(1)
|
|
||||||
end,
|
|
||||||
{ description = "Swap with next client by index", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#45",
|
|
||||||
function()
|
|
||||||
awful.client.swap.byidx(-1)
|
|
||||||
end,
|
|
||||||
{ description = "Swap with previous client by index", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#44",
|
|
||||||
function()
|
|
||||||
awful.screen.focus_relative(1)
|
|
||||||
end,
|
|
||||||
{ description = "Focus the next screen", group = "Screen" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#45",
|
|
||||||
function()
|
|
||||||
awful.screen.focus_relative(-1)
|
|
||||||
end,
|
|
||||||
{ description = "Focus the previous screen", group = "Screen" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#30",
|
|
||||||
awful.client.urgent.jumpto,
|
|
||||||
{ description = "Jump to urgent client", group = "Client" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#36",
|
|
||||||
function()
|
|
||||||
awful.spawn(user_vars.terminal)
|
|
||||||
end,
|
|
||||||
{ description = "Open terminal", group = "Applications" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#27",
|
|
||||||
awesome.restart,
|
|
||||||
{ description = "Reload awesome", group = "Awesome" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#46",
|
|
||||||
function()
|
|
||||||
awful.tag.incmwfact(0.05)
|
|
||||||
end,
|
|
||||||
{ description = "Increase client width", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#43",
|
|
||||||
function()
|
|
||||||
awful.tag.incmwfact(-0.05)
|
|
||||||
end,
|
|
||||||
{ description = "Decrease client width", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#43",
|
|
||||||
function()
|
|
||||||
awful.tag.incncol(1, nil, true)
|
|
||||||
end,
|
|
||||||
{ description = "Increase the number of columns", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Control" },
|
|
||||||
"#46",
|
|
||||||
function()
|
|
||||||
awful.tag.incncol(-1, nil, true)
|
|
||||||
end,
|
|
||||||
{ description = "Decrease the number of columns", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#65",
|
|
||||||
function()
|
|
||||||
awful.layout.inc(-1)
|
|
||||||
end,
|
|
||||||
{ description = "Select previous layout", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#36",
|
|
||||||
function()
|
|
||||||
awful.layout.inc(1)
|
|
||||||
end,
|
|
||||||
{ description = "Select next layout", group = "Layout" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#40",
|
|
||||||
function()
|
|
||||||
awful.spawn("rofi -show drun -theme ~/.config/rofi/rofi.rasi")
|
|
||||||
end,
|
|
||||||
{ descripton = "Application launcher", group = "Application" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#23",
|
|
||||||
function()
|
|
||||||
awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
||||||
end,
|
|
||||||
{ descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ "Mod1" },
|
|
||||||
"#23",
|
|
||||||
function()
|
|
||||||
awful.spawn("rofi -show window -theme ~/.config/rofi/window.rasi")
|
|
||||||
end,
|
|
||||||
{ descripton = "Client switcher (alt+tab)", group = "Application" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#26",
|
|
||||||
function()
|
|
||||||
awful.spawn(user_vars.file_manager)
|
|
||||||
end,
|
|
||||||
{ descripton = "Open file manager", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#26",
|
|
||||||
function()
|
|
||||||
awesome.emit_signal("module::powermenu:show")
|
|
||||||
end,
|
|
||||||
{ descripton = "Session options", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"#107",
|
|
||||||
function()
|
|
||||||
awful.spawn(user_vars.screenshot_program)
|
|
||||||
end,
|
|
||||||
{ description = "Screenshot", group = "Applications" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioLowerVolume",
|
|
||||||
function(c)
|
|
||||||
awful.spawn.easy_async_with_shell("pactl set-sink-volume @DEFAULT_SINK@ -2%", function()
|
|
||||||
awesome.emit_signal("module::volume_osd:show", true)
|
|
||||||
awesome.emit_signal("module::slider:update")
|
|
||||||
awesome.emit_signal("widget::volume_osd:rerun")
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
{ description = "Lower volume", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioRaiseVolume",
|
|
||||||
function(c)
|
|
||||||
awful.spawn.easy_async_with_shell("pactl set-sink-volume @DEFAULT_SINK@ +2%", function()
|
|
||||||
awesome.emit_signal("module::volume_osd:show", true)
|
|
||||||
awesome.emit_signal("module::slider:update")
|
|
||||||
awesome.emit_signal("widget::volume_osd:rerun")
|
|
||||||
end)
|
|
||||||
end,
|
|
||||||
{ description = "Increase volume", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioMute",
|
|
||||||
function(c)
|
|
||||||
awful.spawn("pactl set-sink-mute @DEFAULT_SINK@ toggle")
|
|
||||||
awesome.emit_signal("module::volume_osd:show", true)
|
|
||||||
awesome.emit_signal("module::slider:update")
|
|
||||||
awesome.emit_signal("widget::volume_osd:rerun")
|
|
||||||
end,
|
|
||||||
{ description = "Mute volume", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86MonBrightnessUp",
|
|
||||||
function(c)
|
|
||||||
--awful.spawn("xbacklight -time 100 -inc 10%+")
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
"pkexec xfpm-power-backlight-helper --get-brightness",
|
|
||||||
function(stdout)
|
|
||||||
awful.spawn.easy_async_with_shell("pkexec xfpm-power-backlight-helper --set-brightness " .. tostring(tonumber(stdout) + BACKLIGHT_SEPS), function(stdou2)
|
|
||||||
|
|
||||||
end)
|
|
||||||
awesome.emit_signal("module::brightness_osd:show", true)
|
|
||||||
awesome.emit_signal("module::brightness_slider:update")
|
|
||||||
awesome.emit_signal("widget::brightness_osd:rerun")
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
{ description = "Raise backlight brightness", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86MonBrightnessDown",
|
|
||||||
function(c)
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
"pkexec xfpm-power-backlight-helper --get-brightness",
|
|
||||||
function(stdout)
|
|
||||||
awful.spawn.easy_async_with_shell("pkexec xfpm-power-backlight-helper --set-brightness " .. tostring(tonumber(stdout) - BACKLIGHT_SEPS), function(stdout2)
|
|
||||||
|
|
||||||
end)
|
|
||||||
awesome.emit_signal("module::brightness_osd:show", true)
|
|
||||||
awesome.emit_signal("module::brightness_slider:update")
|
|
||||||
awesome.emit_signal("widget::brightness_osd:rerun")
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
{ description = "Lower backlight brightness", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioPlay",
|
|
||||||
function(c)
|
|
||||||
awful.spawn("playerctl play-pause")
|
|
||||||
end,
|
|
||||||
{ description = "Play / Pause audio", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioNext",
|
|
||||||
function(c)
|
|
||||||
awful.spawn("playerctl next")
|
|
||||||
end,
|
|
||||||
{ description = "Play / Pause audio", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{},
|
|
||||||
"XF86AudioPrev",
|
|
||||||
function(c)
|
|
||||||
awful.spawn("playerctl previous")
|
|
||||||
end,
|
|
||||||
{ description = "Play / Pause audio", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#65",
|
|
||||||
function()
|
|
||||||
awesome.emit_signal("kblayout::toggle")
|
|
||||||
end,
|
|
||||||
{ description = "Toggle keyboard layout", group = "System" }
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey },
|
|
||||||
"#22",
|
|
||||||
function()
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
|
||||||
function(stdout)
|
|
||||||
if stdout then
|
|
||||||
ruled.client.append_rule {
|
|
||||||
rule = { class = stdout:gsub("\n", "") },
|
|
||||||
properties = {
|
|
||||||
floating = true
|
|
||||||
},
|
|
||||||
}
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
"cat ~/.config/awesome/src/assets/rules.txt",
|
|
||||||
function(stdout2)
|
|
||||||
for class in stdout2:gmatch("%a+") do
|
|
||||||
if class:match(stdout:gsub("\n", "")) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
awful.spawn.with_shell("echo -n '" .. stdout:gsub("\n", "") .. ";' >> ~/.config/awesome/src/assets/rules.txt")
|
|
||||||
local c = mouse.screen.selected_tag:clients()
|
|
||||||
for j, client in ipairs(c) do
|
|
||||||
if client.class:match(stdout:gsub("\n", "")) then
|
|
||||||
client.floating = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
),
|
|
||||||
awful.key(
|
|
||||||
{ modkey, "Shift" },
|
|
||||||
"#22",
|
|
||||||
function()
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
[[xprop | grep WM_CLASS | awk '{gsub(/"/, "", $4); print $4}']],
|
|
||||||
function(stdout)
|
|
||||||
if stdout then
|
|
||||||
ruled.client.append_rule {
|
|
||||||
rule = { class = stdout:gsub("\n", "") },
|
|
||||||
properties = {
|
|
||||||
floating = false
|
|
||||||
},
|
|
||||||
}
|
|
||||||
awful.spawn.easy_async_with_shell(
|
|
||||||
[[
|
|
||||||
REMOVE="]] .. stdout:gsub("\n", "") .. [[;"
|
|
||||||
STR=$(cat ~/.config/awesome/src/assets/rules.txt)
|
|
||||||
echo -n ${STR//$REMOVE/} > ~/.config/awesome/src/assets/rules.txt
|
|
||||||
]],
|
|
||||||
function(stdout2)
|
|
||||||
local c = mouse.screen.selected_tag:clients()
|
|
||||||
for j, client in ipairs(c) do
|
|
||||||
if client.class:match(stdout:gsub("\n", "")) then
|
|
||||||
client.floating = false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
end
|
|
||||||
)
|
|
||||||
)
|
|
||||||
@@ -1,19 +1,49 @@
|
|||||||
-----------------------------------------------------------------------------------------
|
---@diagnostic disable: lowercase-global
|
||||||
-- █████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗██╗ ██╗███╗ ███╗ --
|
--[[
|
||||||
-- ██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝██║ ██║████╗ ████║ --
|
|
||||||
-- ███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗ ██║ █╗ ██║██╔████╔██║ --
|
╭─────────────────────────────────────────────────────────────────╮
|
||||||
-- ██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝ ██║███╗██║██║╚██╔╝██║ --
|
│ ______ ___ ________ │
|
||||||
-- ██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗╚███╔███╔╝██║ ╚═╝ ██║ --
|
│ / ____/______ __/ (_)___ _ /_ __/ /_ ___ ____ ___ ___ │
|
||||||
-- ╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝ --
|
│ / / / ___/ / / / / / __ `/ / / / __ \/ _ \/ __ `__ \/ _ \ │
|
||||||
-----------------------------------------------------------------------------------------
|
│ / /___/ / / /_/ / / / /_/ / / / / / / / __/ / / / / / __/ │
|
||||||
-- Initialising, order is important!
|
│ \____/_/ \__, /_/_/\__,_/ /_/ /_/ /_/\___/_/ /_/ /_/\___/ │
|
||||||
require("src.theme.user_variables")
|
│ /____/ │
|
||||||
require("src.theme.init")
|
╰─────────────────────────────────────────────────────────────────╯
|
||||||
require("src.core.error_handling")
|
|
||||||
require("src.core.signals")
|
]]
|
||||||
require("src.core.notifications")
|
--#region s
|
||||||
require("src.core.rules")
|
io.stdout:write([[
|
||||||
require("mappings.global_buttons")
|
]] .. '\n\27[32m' .. [[╭─────────────────────────────────────────────────────────────────╮
|
||||||
require("mappings.bind_to_tags")
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ ______ ___ ________ ]] .. '\27[32m' .. [[│
|
||||||
require("crylia_bar.init")
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / ____/______ __/ (_)___ _ /_ __/ /_ ___ ____ ___ ___ ]] .. '\27[32m' .. [[│
|
||||||
require("src.tools.auto_starter")(user_vars.autostart)
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / / / ___/ / / / / / __ `/ / / / __ \/ _ \/ __ `__ \/ _ \ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / /___/ / / /_/ / / / /_/ / / / / / / / __/ / / / / / __/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ \____/_/ \__, /_/_/\__,_/ /_/ /_/ /_/\___/_/ /_/ /_/\___/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ /____/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[╰─────────────────────────────────────────────────────────────────╯
|
||||||
|
]] .. '\27[0m\n')
|
||||||
|
|
||||||
|
io.stderr:write([[
|
||||||
|
]] .. '\n\27[32m' .. [[╭─────────────────────────────────────────────────────────────────╮
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ ______ ___ ________ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / ____/______ __/ (_)___ _ /_ __/ /_ ___ ____ ___ ___ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / / / ___/ / / / / / __ `/ / / / __ \/ _ \/ __ `__ \/ _ \ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ / /___/ / / /_/ / / / /_/ / / / / / / / __/ / / / / / __/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ \____/_/ \__, /_/_/\__,_/ /_/ /_/ /_/\___/_/ /_/ /_/\___/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[│]] .. '\27[1;36m' .. [[ /____/ ]] .. '\27[32m' .. [[│
|
||||||
|
]] .. '\27[32m' .. [[╰─────────────────────────────────────────────────────────────────╯
|
||||||
|
]] .. '\27[0m\n')
|
||||||
|
--#endregion
|
||||||
|
|
||||||
|
require('src.core.error_handling') {}
|
||||||
|
require('src.theme') {}
|
||||||
|
require('src.core.signals') {}
|
||||||
|
require('src.core.notifications') {}
|
||||||
|
require('src.core.rules') {}
|
||||||
|
require('src.bindings.global_buttons')
|
||||||
|
require('src.bindings.bind_to_tags')
|
||||||
|
require('src.modules') {}
|
||||||
|
require('src.tools.auto_starter') {}
|
||||||
|
--require('src.core.setup')()
|
||||||
|
|
||||||
|
require('src.tools.network')()
|
||||||
|
|||||||
422
awesome/schema.json
Normal file
@@ -0,0 +1,422 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"$id": "https://example.com/product.schema.json",
|
||||||
|
"title": "theme completion",
|
||||||
|
"description": "completion for crylia-theme config",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"autostart": {
|
||||||
|
"description": "Commands that run on startup",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"battery_kind": {
|
||||||
|
"description": "Where to fetch the battery information from",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"UNKNOWN",
|
||||||
|
"LINE_POWER",
|
||||||
|
"TABLET",
|
||||||
|
"COMPUTER",
|
||||||
|
"GAMING_INPUT",
|
||||||
|
"LAST",
|
||||||
|
"BATTERY",
|
||||||
|
"UPS",
|
||||||
|
"MONITOR",
|
||||||
|
"MOUSE",
|
||||||
|
"KEYBOARD",
|
||||||
|
"PDA",
|
||||||
|
"PHONE",
|
||||||
|
"MEDIA_PLAYER"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"battery_path": {
|
||||||
|
"description": "Custom battery path",
|
||||||
|
"type": [
|
||||||
|
"string",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"brightness_step": {
|
||||||
|
"description": "Brightness step in %",
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 1,
|
||||||
|
"maximum": 100
|
||||||
|
},
|
||||||
|
"dock_icon_size": {
|
||||||
|
"description": "Dock icon size",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
|
"energy_manager": {
|
||||||
|
"description": "Program started when battery widget is clicked",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"file_manager": {
|
||||||
|
"description": "Default File manager",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"font": {
|
||||||
|
"description": "Font used for UI elements",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"font-size": {
|
||||||
|
"description": "Font size",
|
||||||
|
"type": "integer",
|
||||||
|
"exclusiveMinimum": 0
|
||||||
|
},
|
||||||
|
"font-weight": {
|
||||||
|
"description": "Font weight",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"gtk_settings": {
|
||||||
|
"description": "Program used for GTK settings",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"icon_theme": {
|
||||||
|
"description": "Icon theme",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"kblayout": {
|
||||||
|
"description": "Keyboard layouts to use",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"description": "Layouts",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"enum": [
|
||||||
|
"awful.layout.suit.fair",
|
||||||
|
"awful.layout.suit.floating"
|
||||||
|
],
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"modkey": {
|
||||||
|
"description": "Modkey",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Mod5",
|
||||||
|
"Mod4",
|
||||||
|
"Mod3",
|
||||||
|
"Mod2",
|
||||||
|
"Mod1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"namestyle": {
|
||||||
|
"description": "Name formatting used for power menu",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"userhost",
|
||||||
|
"fullname"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"screen_settings": {
|
||||||
|
"description": "Program used for screen settings",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"screenshot_program": {
|
||||||
|
"description": "Program used for screenshots",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"status_bar_widgets": {
|
||||||
|
"description": "Widgets used in the notification center",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"cpu_usage",
|
||||||
|
"cpu_temp",
|
||||||
|
"ram_usage",
|
||||||
|
"microphone",
|
||||||
|
"volume",
|
||||||
|
"gpu_temp",
|
||||||
|
"gpu_usage",
|
||||||
|
"battery",
|
||||||
|
"backlight"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"taskbar_use_name": {
|
||||||
|
"description": "If the taskbar should use the name or class",
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"terminal": {
|
||||||
|
"description": "Default terminal",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"text_editor": {
|
||||||
|
"description": "Default texteditor",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"titlebar_exception": {
|
||||||
|
"description": "Exceptions for titlebars",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"titlebar_position": {
|
||||||
|
"description": "Position of the titlebar",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"top",
|
||||||
|
"left"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"titlebar_items": {
|
||||||
|
"description": "Items in the titlebar",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"left_and_bottom": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"icon",
|
||||||
|
"close",
|
||||||
|
"maximize",
|
||||||
|
"minimize",
|
||||||
|
"title"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_and_top": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"icon",
|
||||||
|
"close",
|
||||||
|
"maximize",
|
||||||
|
"minimize",
|
||||||
|
"title"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wallpaper": {
|
||||||
|
"description": "wallpaper",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"weather_secrets": {
|
||||||
|
"description": "weather api secrets",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"type": "string",
|
||||||
|
"key": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 32,
|
||||||
|
"maxLength": 32
|
||||||
|
},
|
||||||
|
"city_id": {
|
||||||
|
"type": "string",
|
||||||
|
"minLength": 7,
|
||||||
|
"maxLength": 7
|
||||||
|
},
|
||||||
|
"unit": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"metric",
|
||||||
|
"imperial"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"web_browser": {
|
||||||
|
"description": "Browser",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"crylia_bar": {
|
||||||
|
"description": "Default bar widgets",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"left_bar": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"center_bar": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right_bar": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"crylia_wibox": {
|
||||||
|
"description": "Default bar widgets",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"left": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"center": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"Tiling Layout",
|
||||||
|
"Systray",
|
||||||
|
"Taglist",
|
||||||
|
"Tasklist",
|
||||||
|
"Bluetooth",
|
||||||
|
"Network",
|
||||||
|
"Battery",
|
||||||
|
"Cpu Usage",
|
||||||
|
"Cpu Temp",
|
||||||
|
"Cpu Freq",
|
||||||
|
"Gpu Usage",
|
||||||
|
"Gpu Temp",
|
||||||
|
"Ram Usage",
|
||||||
|
"Audio",
|
||||||
|
"Keyboard Layout",
|
||||||
|
"Date",
|
||||||
|
"Clock",
|
||||||
|
"Power Button"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"anyOf": [
|
||||||
|
{
|
||||||
|
"required": [
|
||||||
|
"crylia_bar"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"required": [
|
||||||
|
"crylia_wibox"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
1
awesome/src/assets/CT.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg id="ct" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" shape-rendering="geometricPrecision" text-rendering="geometricPrecision"><defs><linearGradient id="ct-s-path1-stroke" x1="-0.024162" y1="0.504999" x2="0.975838" y2="0.504455" spreadMethod="pad" gradientUnits="objectBoundingBox" gradientTransform="translate(0 0)"><stop id="ct-s-path1-stroke-0" offset="0%" stop-color="#faa3ff"/><stop id="ct-s-path1-stroke-1" offset="50%" stop-color="#ffd9fd"/><stop id="ct-s-path1-stroke-2" offset="100%" stop-color="#7ef2ff"/></linearGradient></defs><path id="ct-s-path1" d="M281.200226,185.600197L215.59979,316.799803L346.800008,316.8l-32.800004,65.6h-131.200023l-32.800005-65.600197L248.400073,120h196.799951h196.799951l-32.800004,65.6h-65.600012L461.599945,382.4h-65.600011l85.280014-196.799803-68.470031.000003L445.200024,120l-32.390106,65.6h-131.609692" transform="translate(-139.999975-.535)" fill="#fff" fill-opacity="0" stroke="url(#ct-s-path1-stroke)" stroke-width="16" stroke-linecap="round" stroke-linejoin="round" stroke-dashoffset="5"/></svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
0
awesome/src/assets/cache/rules.txt
vendored
Normal file
93
awesome/src/assets/fonts/Comfortaa/OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2011 The Comfortaa Project Authors (https://github.com/alexeiva/comfortaa), with Reserved Font Name "Comfortaa".
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
67
awesome/src/assets/fonts/Comfortaa/README.txt
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
Comfortaa Variable Font
|
||||||
|
=======================
|
||||||
|
|
||||||
|
This download contains Comfortaa as both a variable font and static fonts.
|
||||||
|
|
||||||
|
Comfortaa is a variable font with this axis:
|
||||||
|
wght
|
||||||
|
|
||||||
|
This means all the styles are contained in a single file:
|
||||||
|
Comfortaa-VariableFont_wght.ttf
|
||||||
|
|
||||||
|
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||||
|
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||||
|
in those cases you can use the static font files for Comfortaa:
|
||||||
|
static/Comfortaa-Light.ttf
|
||||||
|
static/Comfortaa-Regular.ttf
|
||||||
|
static/Comfortaa-Medium.ttf
|
||||||
|
static/Comfortaa-SemiBold.ttf
|
||||||
|
static/Comfortaa-Bold.ttf
|
||||||
|
|
||||||
|
Get started
|
||||||
|
-----------
|
||||||
|
|
||||||
|
1. Install the font files you want to use
|
||||||
|
|
||||||
|
2. Use your app's font picker to view the font family and all the
|
||||||
|
available styles
|
||||||
|
|
||||||
|
Learn more about variable fonts
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||||
|
https://variablefonts.typenetwork.com
|
||||||
|
https://medium.com/variable-fonts
|
||||||
|
|
||||||
|
In desktop apps
|
||||||
|
|
||||||
|
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||||
|
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||||
|
|
||||||
|
Online
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/getting_started
|
||||||
|
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||||
|
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||||
|
|
||||||
|
Installing fonts
|
||||||
|
|
||||||
|
MacOS: https://support.apple.com/en-us/HT201749
|
||||||
|
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||||
|
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||||
|
|
||||||
|
Android Apps
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/android
|
||||||
|
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
Please read the full license text (OFL.txt) to understand the permissions,
|
||||||
|
restrictions and requirements for usage, redistribution, and modification.
|
||||||
|
|
||||||
|
You can use them in your products & projects – print or digital,
|
||||||
|
commercial or otherwise.
|
||||||
|
|
||||||
|
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||||
|
license for all details.
|
||||||
BIN
awesome/src/assets/fonts/Comfortaa/static/Comfortaa-Bold.ttf
Normal file
BIN
awesome/src/assets/fonts/Comfortaa/static/Comfortaa-Light.ttf
Normal file
BIN
awesome/src/assets/fonts/Comfortaa/static/Comfortaa-Medium.ttf
Normal file
BIN
awesome/src/assets/fonts/Comfortaa/static/Comfortaa-Regular.ttf
Normal file
BIN
awesome/src/assets/fonts/Comfortaa/static/Comfortaa-SemiBold.ttf
Normal file
93
awesome/src/assets/fonts/Raleway/OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright 2010 The Raleway Project Authors (impallari@gmail.com), with Reserved Font Name "Raleway".
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
81
awesome/src/assets/fonts/Raleway/README.txt
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
Raleway Variable Font
|
||||||
|
=====================
|
||||||
|
|
||||||
|
This download contains Raleway as both variable fonts and static fonts.
|
||||||
|
|
||||||
|
Raleway is a variable font with this axis:
|
||||||
|
wght
|
||||||
|
|
||||||
|
This means all the styles are contained in these files:
|
||||||
|
Raleway-VariableFont_wght.ttf
|
||||||
|
Raleway-Italic-VariableFont_wght.ttf
|
||||||
|
|
||||||
|
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||||
|
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||||
|
in those cases you can use the static font files for Raleway:
|
||||||
|
static/Raleway-Thin.ttf
|
||||||
|
static/Raleway-ExtraLight.ttf
|
||||||
|
static/Raleway-Light.ttf
|
||||||
|
static/Raleway-Regular.ttf
|
||||||
|
static/Raleway-Medium.ttf
|
||||||
|
static/Raleway-SemiBold.ttf
|
||||||
|
static/Raleway-Bold.ttf
|
||||||
|
static/Raleway-ExtraBold.ttf
|
||||||
|
static/Raleway-Black.ttf
|
||||||
|
static/Raleway-ThinItalic.ttf
|
||||||
|
static/Raleway-ExtraLightItalic.ttf
|
||||||
|
static/Raleway-LightItalic.ttf
|
||||||
|
static/Raleway-Italic.ttf
|
||||||
|
static/Raleway-MediumItalic.ttf
|
||||||
|
static/Raleway-SemiBoldItalic.ttf
|
||||||
|
static/Raleway-BoldItalic.ttf
|
||||||
|
static/Raleway-ExtraBoldItalic.ttf
|
||||||
|
static/Raleway-BlackItalic.ttf
|
||||||
|
|
||||||
|
Get started
|
||||||
|
-----------
|
||||||
|
|
||||||
|
1. Install the font files you want to use
|
||||||
|
|
||||||
|
2. Use your app's font picker to view the font family and all the
|
||||||
|
available styles
|
||||||
|
|
||||||
|
Learn more about variable fonts
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||||
|
https://variablefonts.typenetwork.com
|
||||||
|
https://medium.com/variable-fonts
|
||||||
|
|
||||||
|
In desktop apps
|
||||||
|
|
||||||
|
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||||
|
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||||
|
|
||||||
|
Online
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/getting_started
|
||||||
|
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||||
|
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||||
|
|
||||||
|
Installing fonts
|
||||||
|
|
||||||
|
MacOS: https://support.apple.com/en-us/HT201749
|
||||||
|
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||||
|
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||||
|
|
||||||
|
Android Apps
|
||||||
|
|
||||||
|
https://developers.google.com/fonts/docs/android
|
||||||
|
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
Please read the full license text (OFL.txt) to understand the permissions,
|
||||||
|
restrictions and requirements for usage, redistribution, and modification.
|
||||||
|
|
||||||
|
You can use them in your products & projects – print or digital,
|
||||||
|
commercial or otherwise.
|
||||||
|
|
||||||
|
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||||
|
license for all details.
|
||||||
BIN
awesome/src/assets/fonts/Raleway/Raleway-VariableFont_wght.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Black.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-BlackItalic.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Bold.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-BoldItalic.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-ExtraBold.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-ExtraLight.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Italic.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Light.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-LightItalic.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Medium.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-MediumItalic.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Regular.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-SemiBold.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-Thin.ttf
Normal file
BIN
awesome/src/assets/fonts/Raleway/static/Raleway-ThinItalic.ttf
Normal file
|
Before Width: | Height: | Size: 20 KiB |
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" /></svg>
|
||||||
|
After Width: | Height: | Size: 552 B |
5
awesome/src/assets/icons/bluetooth/audio-card.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M2,7V8.5H3V17H4.5V7C3.7,7 2.8,7 2,7M6,7V7L6,16H7V17H14V16H22V7H6M17.5,9A2.5,2.5 0 0,1 20,11.5A2.5,2.5 0 0,1 17.5,14A2.5,2.5 0 0,1 15,11.5A2.5,2.5 0 0,1 17.5,9Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 463 B |
5
awesome/src/assets/icons/bluetooth/audio-headphones.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M12,1C7,1 3,5 3,10V17A3,3 0 0,0 6,20H9V12H5V10A7,7 0 0,1 12,3A7,7 0 0,1 19,10V12H15V20H18A3,3 0 0,0 21,17V10C21,5 16.97,1 12,1Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 431 B |
5
awesome/src/assets/icons/bluetooth/audio-headset.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M12,1C7,1 3,5 3,10V17A3,3 0 0,0 6,20H9V12H5V10A7,7 0 0,1 12,3A7,7 0 0,1 19,10V12H15V20H19V21H12V23H18A3,3 0 0,0 21,20V10C21,5 16.97,1 12,1Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 443 B |
@@ -1 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M13,5.83L14.88,7.71L13.28,9.31L14.69,10.72L17.71,7.7L12,2H11V7.03L13,9.03M5.41,4L4,5.41L10.59,12L5,17.59L6.41,19L11,14.41V22H12L16.29,17.71L18.59,20L20,18.59M13,18.17V14.41L14.88,16.29" /></svg>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M13,5.83L14.88,7.71L13.28,9.31L14.69,10.72L17.71,7.7L12,2H11V7.03L13,9.03M5.41,4L4,5.41L10.59,12L5,17.59L6.41,19L11,14.41V22H12L16.29,17.71L18.59,20L20,18.59M13,18.17V14.41L14.88,16.29" />
|
||||||
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 479 B After Width: | Height: | Size: 486 B |
@@ -1 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z" /></svg>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z" />
|
||||||
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 467 B |
5
awesome/src/assets/icons/bluetooth/camera-photo.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M4,5H7L9,3H15L17,5H20A2,2 0 0,1 22,7V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V7A2,2 0 0,1 4,5M13.09,9.45L11.05,12.18L12.6,14.25L11.73,14.91L9.27,11.64L6,16H18L13.09,9.45Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 469 B |
5
awesome/src/assets/icons/bluetooth/camera-video.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 527 B |
5
awesome/src/assets/icons/bluetooth/computer.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M4,6H20V16H4M20,18A2,2 0 0,0 22,16V6C22,4.89 21.1,4 20,4H4C2.89,4 2,4.89 2,6V16A2,2 0 0,0 4,18H0V20H24V18H20Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 413 B |
1
awesome/src/assets/icons/bluetooth/delete.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6,19C6,20.1 6.9,21 8,21H16C17.1,21 18,20.1 18,19V7H6V19M8,9H16V19H8V9M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z" /></svg>
|
||||||
|
After Width: | Height: | Size: 188 B |
1
awesome/src/assets/icons/bluetooth/edit.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.06,9L15,9.94L5.92,19H5V18.08L14.06,9M17.66,3C17.41,3 17.15,3.1 16.96,3.29L15.13,5.12L18.88,8.87L20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18.17,3.09 17.92,3 17.66,3M14.06,6.19L3,17.25V21H6.75L17.81,9.94L14.06,6.19Z" /></svg>
|
||||||
|
After Width: | Height: | Size: 305 B |
5
awesome/src/assets/icons/bluetooth/input-gaming.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M7.97,16L5,19C4.67,19.3 4.23,19.5 3.75,19.5A1.75,1.75 0 0,1 2,17.75V17.5L3,10.12C3.21,7.81 5.14,6 7.5,6H16.5C18.86,6 20.79,7.81 21,10.12L22,17.5V17.75A1.75,1.75 0 0,1 20.25,19.5C19.77,19.5 19.33,19.3 19,19L16.03,16H7.97M7,8V10H5V11H7V13H8V11H10V10H8V8H7M16.5,8A0.75,0.75 0 0,0 15.75,8.75A0.75,0.75 0 0,0 16.5,9.5A0.75,0.75 0 0,0 17.25,8.75A0.75,0.75 0 0,0 16.5,8M14.75,9.75A0.75,0.75 0 0,0 14,10.5A0.75,0.75 0 0,0 14.75,11.25A0.75,0.75 0 0,0 15.5,10.5A0.75,0.75 0 0,0 14.75,9.75M18.25,9.75A0.75,0.75 0 0,0 17.5,10.5A0.75,0.75 0 0,0 18.25,11.25A0.75,0.75 0 0,0 19,10.5A0.75,0.75 0 0,0 18.25,9.75M16.5,11.5A0.75,0.75 0 0,0 15.75,12.25A0.75,0.75 0 0,0 16.5,13A0.75,0.75 0 0,0 17.25,12.25A0.75,0.75 0 0,0 16.5,11.5Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1015 B |
5
awesome/src/assets/icons/bluetooth/input-keyboard.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M19,10H17V8H19M19,13H17V11H19M16,10H14V8H16M16,13H14V11H16M16,17H8V15H16M7,10H5V8H7M7,13H5V11H7M8,11H10V13H8M8,8H10V10H8M11,11H13V13H11M11,8H13V10H11M20,5H4C2.89,5 2,5.89 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7C22,5.89 21.1,5 20,5Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 538 B |
5
awesome/src/assets/icons/bluetooth/input-mouse.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M11,1.07C7.05,1.56 4,4.92 4,9H11M4,15A8,8 0 0,0 12,23A8,8 0 0,0 20,15V11H4M13,1.07V9H20C20,4.92 16.94,1.56 13,1.07Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 419 B |
5
awesome/src/assets/icons/bluetooth/input-tablet.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M19,18H5V6H19M21,4H3C1.89,4 1,4.89 1,6V18A2,2 0 0,0 3,20H21A2,2 0 0,0 23,18V6C23,4.89 22.1,4 21,4Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 402 B |
5
awesome/src/assets/icons/bluetooth/link-off.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.43 19.12,14.63 17.79,15L19.25,16.44C20.88,15.61 22,13.95 22,12A5,5 0 0,0 17,7M16,11H13.81L15.81,13H16V11M2,4.27L5.11,7.38C3.29,8.12 2,9.91 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12C3.9,10.41 5.11,9.1 6.66,8.93L8.73,11H8V13H10.73L13,15.27V17H14.73L18.74,21L20,19.74L3.27,3L2,4.27Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 649 B |
5
awesome/src/assets/icons/bluetooth/link.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 539 B |
5
awesome/src/assets/icons/bluetooth/menu-down.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M7,10L12,15L17,10H7Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 322 B |
5
awesome/src/assets/icons/bluetooth/menu-up.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M7,15L12,10L17,15H7Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 322 B |
5
awesome/src/assets/icons/bluetooth/multimedia-player.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M13,2.05V4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03V2.05M5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37L5.67,19.74M7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74M5.69,7.1L4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1M4.06,13H2.06C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13M10,16.5L16,12L10,7.5V16.5Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 800 B |
5
awesome/src/assets/icons/bluetooth/network-wireless.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M12,3C7.79,3 3.7,4.41 0.38,7C4.41,12.06 7.89,16.37 12,21.5C16.08,16.42 20.24,11.24 23.65,7C20.32,4.41 16.22,3 12,3Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 419 B |
5
awesome/src/assets/icons/bluetooth/phone.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M17,19H7V5H17M17,1H7C5.89,1 5,1.89 5,3V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3C19,1.89 18.1,1 17,1Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 402 B |
5
awesome/src/assets/icons/bluetooth/power.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24">
|
||||||
|
<path d="M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 515 B |
5
awesome/src/assets/icons/bluetooth/printer.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 458 B |
3
awesome/src/assets/icons/bluetooth/refresh.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||||
|
<path d="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 294 B |
5
awesome/src/assets/icons/bluetooth/scanner.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M4.2,10.7L19.8,5L20.5,6.9L6.4,12H19A2,2 0 0,1 21,14V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V12.5C3,11.7 3.5,10.9 4.2,10.7M17,17H19V15H17V17M5,17H15V15H5V17Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 456 B |
5
awesome/src/assets/icons/bluetooth/television.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M21,17H3V5H21M21,3H3A2,2 0 0,0 1,5V17A2,2 0 0,0 3,19H8V21H16V19H21A2,2 0 0,0 23,17V5A2,2 0 0,0 21,3Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 404 B |
1
awesome/src/assets/icons/bluetooth/trusted.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23,12L20.6,9.2L20.9,5.5L17.3,4.7L15.4,1.5L12,3L8.6,1.5L6.7,4.7L3.1,5.5L3.4,9.2L1,12L3.4,14.8L3.1,18.5L6.7,19.3L8.6,22.5L12,21L15.4,22.5L17.3,19.3L20.9,18.5L20.6,14.8L23,12M18.7,16.9L16,17.5L14.6,19.9L12,18.8L9.4,19.9L8,17.5L5.3,16.9L5.5,14.1L3.7,12L5.5,9.9L5.3,7.1L8,6.5L9.4,4.1L12,5.2L14.6,4.1L16,6.5L18.7,7.1L18.5,9.9L20.3,12L18.5,14.1L18.7,16.9M16.6,7.6L18,9L10,17L6,13L7.4,11.6L10,14.2L16.6,7.6Z" /></svg>
|
||||||
|
After Width: | Height: | Size: 479 B |
1
awesome/src/assets/icons/bluetooth/untrusted.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M23,12L20.56,14.78L20.9,18.46L17.29,19.28L15.4,22.46L12,21L8.6,22.47L6.71,19.29L3.1,18.47L3.44,14.78L1,12L3.44,9.21L3.1,5.53L6.71,4.72L8.6,1.54L12,3L15.4,1.54L17.29,4.72L20.9,5.54L20.56,9.22L23,12M20.33,12L18.5,9.89L18.74,7.1L16,6.5L14.58,4.07L12,5.18L9.42,4.07L8,6.5L5.26,7.09L5.5,9.88L3.67,12L5.5,14.1L5.26,16.9L8,17.5L9.42,19.93L12,18.81L14.58,19.92L16,17.5L18.74,16.89L18.5,14.1L20.33,12Z" /></svg>
|
||||||
|
After Width: | Height: | Size: 471 B |
5
awesome/src/assets/icons/bluetooth/video-display.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 425 B |
5
awesome/src/assets/icons/bluetooth/watch.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="128" height="128" viewBox="0 0 24 24">
|
||||||
|
<path d="M6,12A6,6 0 0,1 12,6A6,6 0 0,1 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12M20,12C20,9.45 18.81,7.19 16.95,5.73L16,0H8L7.05,5.73C5.19,7.19 4,9.45 4,12C4,14.54 5.19,16.81 7.05,18.27L8,24H16L16.95,18.27C18.81,16.81 20,14.54 20,12Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 524 B |