waybar and rofi
This commit is contained in:
parent
e0e2ae33a4
commit
95f3c3432c
@ -33,8 +33,8 @@ decoration {
|
|||||||
rounding_power = 10
|
rounding_power = 10
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
# Change transparency of focused and unfocused windows
|
||||||
active_opacity = 0.85
|
active_opacity = 0.9
|
||||||
inactive_opacity = 0.85
|
inactive_opacity = 0.9
|
||||||
|
|
||||||
shadow {
|
shadow {
|
||||||
enabled = true
|
enabled = true
|
||||||
|
@ -17,7 +17,7 @@ monitor=,preferred,auto,1.566667
|
|||||||
# Set programs that you use
|
# Set programs that you use
|
||||||
$terminal = kitty
|
$terminal = kitty
|
||||||
$filemanager = kitty -e yazi
|
$filemanager = kitty -e yazi
|
||||||
$menu = wofi --show drun
|
$menu = rofi -show drun
|
||||||
$powerMenu = bash ~/.config/wofi/wofi-powermenu.sh
|
$powerMenu = bash ~/.config/wofi/wofi-powermenu.sh
|
||||||
$browser = firefox
|
$browser = firefox
|
||||||
$email = thunderbird
|
$email = thunderbird
|
||||||
@ -30,7 +30,7 @@ $lockscreen = hyprlock
|
|||||||
#################
|
#################
|
||||||
|
|
||||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
exec-once = waybar
|
#exec-once = waybar
|
||||||
exec-once = hyprpaper & hypridle & $lockscreen
|
exec-once = hyprpaper & hypridle & $lockscreen
|
||||||
exec-once = dunst
|
exec-once = dunst
|
||||||
exec-once = [workspace 2 silent] $browser
|
exec-once = [workspace 2 silent] $browser
|
||||||
|
99
.config/rofi/bluetooth-menu.rasi
Normal file
99
.config/rofi/bluetooth-menu.rasi
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/* Bluetooth menu */
|
||||||
|
|
||||||
|
@theme "~/.config/rofi/theme.rasi"
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
font: "JetBrainsMono Nerd Font 8";
|
||||||
|
hover-select: true;
|
||||||
|
me-select-entry: "MousePrimary";
|
||||||
|
me-accept-entry: "!MousePrimary";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window */
|
||||||
|
|
||||||
|
window {
|
||||||
|
location: north;
|
||||||
|
anchor: south;
|
||||||
|
y-offset: 3px;
|
||||||
|
width: 240px;
|
||||||
|
border: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: @main-br;
|
||||||
|
background-color: @main-bg;
|
||||||
|
children: [ mainbox ];
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
spacing: 0;
|
||||||
|
background-color: @main-br;
|
||||||
|
text-color: @main-fg;
|
||||||
|
children: [ textbox-custom, listview, inputbar ];
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-custom {
|
||||||
|
font: "JetBrainsMono Nerd Font Bold 8";
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
padding: 1px 0;
|
||||||
|
expand: false;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
expand: false;
|
||||||
|
content: " Bluetooth";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Input */
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
margin: -32px 6px 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
spacing: inherit;
|
||||||
|
background-color: @input-bg;
|
||||||
|
text-color: inherit;
|
||||||
|
children: [ prompt, entry ];
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
padding: 6px 6px 6px 12px;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
placeholder: "Search";
|
||||||
|
padding: 6px 0;
|
||||||
|
cursor: text;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List */
|
||||||
|
|
||||||
|
listview {
|
||||||
|
border: 2px 0 0 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
border-color: @main-br;
|
||||||
|
lines: 6;
|
||||||
|
fixed-height: false;
|
||||||
|
dynamic: false;
|
||||||
|
cycle: false;
|
||||||
|
margin: 0 0 -2px;
|
||||||
|
padding: 6px 6px 40px;
|
||||||
|
background-color: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
padding: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: @main-fg;
|
||||||
|
}
|
||||||
|
element selected active,
|
||||||
|
element selected normal {
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
padding: 0 6px;
|
||||||
|
cursor: inherit;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
171
.config/rofi/config.rasi
Normal file
171
.config/rofi/config.rasi
Normal file
@ -0,0 +1,171 @@
|
|||||||
|
configuration {
|
||||||
|
/* modes: "window,drun,run,ssh";*/
|
||||||
|
/* font: "mono 12";*/
|
||||||
|
/* location: 0;*/
|
||||||
|
/* yoffset: 0;*/
|
||||||
|
/* xoffset: 0;*/
|
||||||
|
/* fixed-num-lines: true;*/
|
||||||
|
/* show-icons: false;*/
|
||||||
|
/* preview-cmd: ;*/
|
||||||
|
/* on-selection-changed: ;*/
|
||||||
|
/* on-mode-changed: ;*/
|
||||||
|
/* on-entry-accepted: ;*/
|
||||||
|
/* on-menu-canceled: ;*/
|
||||||
|
/* on-menu-error: ;*/
|
||||||
|
/* on-screenshot-taken: ;*/
|
||||||
|
/* terminal: "rofi-sensible-terminal";*/
|
||||||
|
/* ssh-client: "ssh";*/
|
||||||
|
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
|
||||||
|
/* run-command: "{cmd}";*/
|
||||||
|
/* run-list-command: "";*/
|
||||||
|
/* run-shell-command: "{terminal} -e {cmd}";*/
|
||||||
|
/* window-command: "wmctrl -i -R {window}";*/
|
||||||
|
/* window-match-fields: "all";*/
|
||||||
|
/* icon-theme: ;*/
|
||||||
|
/* drun-match-fields: "name,generic,exec,categories,keywords";*/
|
||||||
|
/* drun-categories: ;*/
|
||||||
|
/* drun-show-actions: false;*/
|
||||||
|
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
|
||||||
|
/* drun-url-launcher: "xdg-open";*/
|
||||||
|
/* disable-history: false;*/
|
||||||
|
/* ignored-prefixes: "";*/
|
||||||
|
/* sort: false;*/
|
||||||
|
/* sorting-method: "normal";*/
|
||||||
|
/* case-sensitive: false;*/
|
||||||
|
/* case-smart: false;*/
|
||||||
|
/* cycle: true;*/
|
||||||
|
/* sidebar-mode: false;*/
|
||||||
|
/* hover-select: false;*/
|
||||||
|
/* eh: 1;*/
|
||||||
|
/* auto-select: false;*/
|
||||||
|
/* parse-hosts: false;*/
|
||||||
|
/* parse-known-hosts: true;*/
|
||||||
|
/* combi-modes: "window,run";*/
|
||||||
|
/* matching: "normal";*/
|
||||||
|
/* tokenize: true;*/
|
||||||
|
/* m: "-5";*/
|
||||||
|
/* filter: ;*/
|
||||||
|
/* dpi: -1;*/
|
||||||
|
/* threads: 0;*/
|
||||||
|
/* scroll-method: 0;*/
|
||||||
|
/* window-format: "{w} {c} {t}";*/
|
||||||
|
/* click-to-exit: true;*/
|
||||||
|
/* global-kb: false;*/
|
||||||
|
/* max-history-size: 25;*/
|
||||||
|
/* combi-hide-mode-prefix: false;*/
|
||||||
|
/* combi-display-format: "{mode} {text}";*/
|
||||||
|
/* matching-negate-char: '-' /* unsupported */;*/
|
||||||
|
/* cache-dir: ;*/
|
||||||
|
/* window-thumbnail: false;*/
|
||||||
|
/* drun-use-desktop-cache: false;*/
|
||||||
|
/* drun-reload-desktop-cache: false;*/
|
||||||
|
/* normalize-match: false;*/
|
||||||
|
/* steal-focus: false;*/
|
||||||
|
/* application-fallback-icon: ;*/
|
||||||
|
/* refilter-timeout-limit: 300;*/
|
||||||
|
/* xserver-i300-workaround: false;*/
|
||||||
|
/* completer-mode: "filebrowser";*/
|
||||||
|
/* pid: "/run/user/1000/rofi.pid";*/
|
||||||
|
/* display-window: ;*/
|
||||||
|
/* display-run: ;*/
|
||||||
|
/* display-ssh: ;*/
|
||||||
|
/* display-drun: ;*/
|
||||||
|
/* display-combi: ;*/
|
||||||
|
/* display-keys: ;*/
|
||||||
|
/* display-filebrowser: ;*/
|
||||||
|
/* display-recursivebrowser: ;*/
|
||||||
|
/* kb-primary-paste: "Control+V,Shift+Insert";*/
|
||||||
|
/* kb-secondary-paste: "Control+v,Insert";*/
|
||||||
|
/* kb-secondary-copy: "Control+c";*/
|
||||||
|
/* kb-clear-line: "Control+w";*/
|
||||||
|
/* kb-move-front: "Control+a";*/
|
||||||
|
/* kb-move-end: "Control+e";*/
|
||||||
|
/* kb-move-word-back: "Alt+b,Control+Left";*/
|
||||||
|
/* kb-move-word-forward: "Alt+f,Control+Right";*/
|
||||||
|
/* kb-move-char-back: "Left,Control+b";*/
|
||||||
|
/* kb-move-char-forward: "Right,Control+f";*/
|
||||||
|
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
|
||||||
|
/* kb-remove-word-forward: "Control+Alt+d";*/
|
||||||
|
/* kb-remove-char-forward: "Delete,Control+d";*/
|
||||||
|
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
|
||||||
|
/* kb-remove-to-eol: "Control+k";*/
|
||||||
|
/* kb-remove-to-sol: "Control+u";*/
|
||||||
|
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
|
||||||
|
/* kb-accept-custom: "Control+Return";*/
|
||||||
|
/* kb-accept-custom-alt: "Control+Shift+Return";*/
|
||||||
|
/* kb-accept-alt: "Shift+Return";*/
|
||||||
|
/* kb-delete-entry: "Shift+Delete";*/
|
||||||
|
/* kb-mode-next: "Shift+Right,Control+Tab";*/
|
||||||
|
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
|
||||||
|
/* kb-mode-complete: "Control+l";*/
|
||||||
|
/* kb-row-left: "Control+Page_Up";*/
|
||||||
|
/* kb-row-right: "Control+Page_Down";*/
|
||||||
|
/* kb-row-up: "Up,Control+p";*/
|
||||||
|
/* kb-row-down: "Down,Control+n";*/
|
||||||
|
/* kb-row-tab: "";*/
|
||||||
|
/* kb-element-next: "Tab";*/
|
||||||
|
/* kb-element-prev: "ISO_Left_Tab";*/
|
||||||
|
/* kb-page-prev: "Page_Up";*/
|
||||||
|
/* kb-page-next: "Page_Down";*/
|
||||||
|
/* kb-row-first: "Home,KP_Home";*/
|
||||||
|
/* kb-row-last: "End,KP_End";*/
|
||||||
|
/* kb-row-select: "Control+space";*/
|
||||||
|
/* kb-screenshot: "Alt+S";*/
|
||||||
|
/* kb-ellipsize: "Alt+period";*/
|
||||||
|
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
|
||||||
|
/* kb-toggle-sort: "Alt+grave";*/
|
||||||
|
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
|
||||||
|
/* kb-custom-1: "Alt+1";*/
|
||||||
|
/* kb-custom-2: "Alt+2";*/
|
||||||
|
/* kb-custom-3: "Alt+3";*/
|
||||||
|
/* kb-custom-4: "Alt+4";*/
|
||||||
|
/* kb-custom-5: "Alt+5";*/
|
||||||
|
/* kb-custom-6: "Alt+6";*/
|
||||||
|
/* kb-custom-7: "Alt+7";*/
|
||||||
|
/* kb-custom-8: "Alt+8";*/
|
||||||
|
/* kb-custom-9: "Alt+9";*/
|
||||||
|
/* kb-custom-10: "Alt+0";*/
|
||||||
|
/* kb-custom-11: "Alt+exclam";*/
|
||||||
|
/* kb-custom-12: "Alt+at";*/
|
||||||
|
/* kb-custom-13: "Alt+numbersign";*/
|
||||||
|
/* kb-custom-14: "Alt+dollar";*/
|
||||||
|
/* kb-custom-15: "Alt+percent";*/
|
||||||
|
/* kb-custom-16: "Alt+dead_circumflex";*/
|
||||||
|
/* kb-custom-17: "Alt+ampersand";*/
|
||||||
|
/* kb-custom-18: "Alt+asterisk";*/
|
||||||
|
/* kb-custom-19: "Alt+parenleft";*/
|
||||||
|
/* kb-select-1: "Super+1";*/
|
||||||
|
/* kb-select-2: "Super+2";*/
|
||||||
|
/* kb-select-3: "Super+3";*/
|
||||||
|
/* kb-select-4: "Super+4";*/
|
||||||
|
/* kb-select-5: "Super+5";*/
|
||||||
|
/* kb-select-6: "Super+6";*/
|
||||||
|
/* kb-select-7: "Super+7";*/
|
||||||
|
/* kb-select-8: "Super+8";*/
|
||||||
|
/* kb-select-9: "Super+9";*/
|
||||||
|
/* kb-select-10: "Super+0";*/
|
||||||
|
/* kb-entry-history-up: "Control+Up";*/
|
||||||
|
/* kb-entry-history-down: "Control+Down";*/
|
||||||
|
/* kb-matcher-up: "Super+equal";*/
|
||||||
|
/* kb-mather-down: "Super+minus";*/
|
||||||
|
/* ml-row-left: "ScrollLeft";*/
|
||||||
|
/* ml-row-right: "ScrollRight";*/
|
||||||
|
/* ml-row-up: "ScrollUp";*/
|
||||||
|
/* ml-row-down: "ScrollDown";*/
|
||||||
|
/* me-select-entry: "MousePrimary";*/
|
||||||
|
/* me-accept-entry: "MouseDPrimary";*/
|
||||||
|
/* me-accept-custom: "Control+MouseDPrimary";*/
|
||||||
|
timeout {
|
||||||
|
action: "kb-cancel";
|
||||||
|
delay: 0;
|
||||||
|
}
|
||||||
|
filebrowser {
|
||||||
|
directories-first: true;
|
||||||
|
sorting-method: "name";
|
||||||
|
}
|
||||||
|
modes: "drun";
|
||||||
|
}
|
||||||
|
|
||||||
|
//@theme "/usr/share/rofi/themes/gruvbox-dark-soft.rasi"
|
||||||
|
|
||||||
|
@theme "/usr/share/rofi/themes/gruvbox-dark.rasi"
|
72
.config/rofi/power-menu.rasi
Normal file
72
.config/rofi/power-menu.rasi
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/* Power menu */
|
||||||
|
|
||||||
|
@theme "~/.config/rofi/theme.rasi"
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
font: "JetBrainsMono Nerd Font 8";
|
||||||
|
hover-select: true;
|
||||||
|
me-select-entry: "MousePrimary";
|
||||||
|
me-accept-entry: "!MousePrimary";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window */
|
||||||
|
|
||||||
|
window {
|
||||||
|
location: northeast;
|
||||||
|
anchor: north;
|
||||||
|
x-offset: -3px;
|
||||||
|
y-offset: 3px;
|
||||||
|
width: 150px;
|
||||||
|
border: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: @main-br;
|
||||||
|
background-color: @main-bg;
|
||||||
|
children: [ mainbox ];
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
spacing: 0;
|
||||||
|
background-color: @main-br;
|
||||||
|
text-color: @main-fg;
|
||||||
|
children: [ textbox-custom, listview ];
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-custom {
|
||||||
|
font: "JetBrainsMono Nerd Font Bold 2";
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
padding: 0;
|
||||||
|
expand: false;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
expand: false;
|
||||||
|
// content: " Power";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List */
|
||||||
|
|
||||||
|
listview {
|
||||||
|
border: 2px 0 0 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
border-color: @main-br;
|
||||||
|
lines: 6;
|
||||||
|
padding: 6px;
|
||||||
|
background-color: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
padding: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: @main-fg;
|
||||||
|
}
|
||||||
|
element selected.normal {
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
padding: 0 6px;
|
||||||
|
cursor: inherit;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
45
.config/rofi/theme.rasi
Normal file
45
.config/rofi/theme.rasi
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
/* Gruvbox Dark */
|
||||||
|
|
||||||
|
* {
|
||||||
|
bg0h: #1d2021;
|
||||||
|
bg0: #282828;
|
||||||
|
bg1: #3c3836;
|
||||||
|
bg2: #504945;
|
||||||
|
bg3: #665c54;
|
||||||
|
bg4: #7c6f64;
|
||||||
|
gray: #928374;
|
||||||
|
fg4: #a89984;
|
||||||
|
fg3: #bdae93;
|
||||||
|
fg2: #d5c4a1;
|
||||||
|
fg1: #ebdbb2;
|
||||||
|
fg0: #fbf1c7;
|
||||||
|
red: #cc241d;
|
||||||
|
brightred: #fb4934;
|
||||||
|
green: #98971a;
|
||||||
|
brightgreen: #b8bb26;
|
||||||
|
yellow: #d79921;
|
||||||
|
brightyellow: #fabd2f;
|
||||||
|
blue: #458588;
|
||||||
|
brightblue: #83a598;
|
||||||
|
purple: #b16286;
|
||||||
|
brightpurple: #d3869b;
|
||||||
|
aqua: #689d6a;
|
||||||
|
brightaqua: #8ec07c;
|
||||||
|
orange: #d65d0e;
|
||||||
|
brightorange: #fe8019;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
main-bg: @bg0h;
|
||||||
|
main-fg: @fg0;
|
||||||
|
main-br: @yellow;
|
||||||
|
input-bg: @bg1;
|
||||||
|
select-bg: @yellow;
|
||||||
|
select-fg: @bg0h;
|
||||||
|
}
|
106
.config/rofi/theme.rasi.disabled
Normal file
106
.config/rofi/theme.rasi.disabled
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
/* ==========================================================================
|
||||||
|
Rofi color theme
|
||||||
|
|
||||||
|
Based on the Gruvbox color scheme for Vim by morhetz
|
||||||
|
https://github.com/morhetz/gruvbox
|
||||||
|
|
||||||
|
File: gruvbox-dark.rasi
|
||||||
|
Desc: Gruvbox dark color theme for Rofi
|
||||||
|
Author: bardisty <b@bah.im>
|
||||||
|
Source: https://github.com/bardisty/gruvbox-rofi
|
||||||
|
Modified: Mon Feb 12 2018 04:08:43 PST -0800
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
* {
|
||||||
|
/* Theme settings */
|
||||||
|
highlight: bold italic;
|
||||||
|
scrollbar: false;
|
||||||
|
|
||||||
|
/* Gruvbox dark colors */
|
||||||
|
gruvbox-dark-bg0: #1d2021;
|
||||||
|
gruvbox-dark-bg0-soft: #282828;
|
||||||
|
gruvbox-dark-bg3: #665c54;
|
||||||
|
gruvbox-dark-fg0: #fbf1c7;
|
||||||
|
gruvbox-dark-fg1: #ebdbb2;
|
||||||
|
gruvbox-dark-red-dark: #cc241d;
|
||||||
|
gruvbox-dark-red-light: #fb4934;
|
||||||
|
gruvbox-dark-yellow-dark: #d79921;
|
||||||
|
gruvbox-dark-yellow-light: #fabd2f;
|
||||||
|
gruvbox-dark-gray: #928374;
|
||||||
|
|
||||||
|
/* Theme colors */
|
||||||
|
background: @gruvbox-dark-bg0;
|
||||||
|
background-color: @background;
|
||||||
|
foreground: @gruvbox-dark-fg1;
|
||||||
|
border-color: @gruvbox-dark-gray;
|
||||||
|
separatorcolor: @border-color;
|
||||||
|
scrollbar-handle: @border-color;
|
||||||
|
|
||||||
|
normal-background: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
alternate-normal-background: @gruvbox-dark-bg0-soft;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
selected-normal-background: @gruvbox-dark-bg3;
|
||||||
|
selected-normal-foreground: @gruvbox-dark-fg0;
|
||||||
|
|
||||||
|
active-background: @gruvbox-dark-yellow-dark;
|
||||||
|
active-foreground: @background;
|
||||||
|
alternate-active-background: @active-background;
|
||||||
|
alternate-active-foreground: @active-foreground;
|
||||||
|
selected-active-background: @gruvbox-dark-yellow-light;
|
||||||
|
selected-active-foreground: @active-foreground;
|
||||||
|
|
||||||
|
urgent-background: @gruvbox-dark-red-dark;
|
||||||
|
urgent-foreground: @background;
|
||||||
|
alternate-urgent-background: @urgent-background;
|
||||||
|
alternate-urgent-foreground: @urgent-foreground;
|
||||||
|
selected-urgent-background: @gruvbox-dark-red-light;
|
||||||
|
selected-urgent-foreground: @urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
bg0h: #1d2021;
|
||||||
|
bg0: #282828;
|
||||||
|
bg1: #3c3836;
|
||||||
|
bg2: #504945;
|
||||||
|
bg3: #665c54;
|
||||||
|
bg4: #7c6f64;
|
||||||
|
gray: #928374;
|
||||||
|
fg4: #a89984;
|
||||||
|
fg3: #bdae93;
|
||||||
|
fg2: #d5c4a1;
|
||||||
|
fg1: #ebdbb2;
|
||||||
|
fg0: #fbf1c7;
|
||||||
|
red: #cc241d;
|
||||||
|
brightred: #fb4934;
|
||||||
|
green: #98971a;
|
||||||
|
brightgreen: #b8bb26;
|
||||||
|
yellow: #d79921;
|
||||||
|
brightyellow: #fabd2f;
|
||||||
|
blue: #458588;
|
||||||
|
brightblue: #83a598;
|
||||||
|
purple: #b16286;
|
||||||
|
brightpurple: #d3869b;
|
||||||
|
aqua: #689d6a;
|
||||||
|
brightaqua: #8ec07c;
|
||||||
|
orange: #d65d0e;
|
||||||
|
brightorange: #fe8019;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
main-bg: @bg0h;
|
||||||
|
main-fg: @fg0;
|
||||||
|
main-br: @yellow;
|
||||||
|
input-bg: @bg1;
|
||||||
|
select-bg: @yellow;
|
||||||
|
select-fg: @bg0h;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import "gruvbox-common"
|
||||||
|
|
99
.config/rofi/wifi-menu.rasi
Normal file
99
.config/rofi/wifi-menu.rasi
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/* WiFi menu */
|
||||||
|
|
||||||
|
@theme "~/.config/rofi/theme.rasi"
|
||||||
|
|
||||||
|
configuration {
|
||||||
|
font: "JetBrainsMono Nerd Font 8";
|
||||||
|
hover-select: true;
|
||||||
|
me-select-entry: "MousePrimary";
|
||||||
|
me-accept-entry: "!MousePrimary";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window */
|
||||||
|
|
||||||
|
window {
|
||||||
|
location: north;
|
||||||
|
anchor: south;
|
||||||
|
y-offset: 3px;
|
||||||
|
width: 240px;
|
||||||
|
border: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border-color: @main-br;
|
||||||
|
background-color: @main-bg;
|
||||||
|
children: [ mainbox ];
|
||||||
|
}
|
||||||
|
|
||||||
|
mainbox {
|
||||||
|
spacing: 0;
|
||||||
|
background-color: @main-br;
|
||||||
|
text-color: @main-fg;
|
||||||
|
children: [ textbox-custom, listview, inputbar ];
|
||||||
|
}
|
||||||
|
|
||||||
|
textbox-custom {
|
||||||
|
font: "JetBrainsMono Nerd Font Bold 8";
|
||||||
|
horizontal-align: 0.5;
|
||||||
|
padding: 1px 0;
|
||||||
|
expand: false;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
expand: false;
|
||||||
|
content: " Wi-Fi";
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Input */
|
||||||
|
|
||||||
|
inputbar {
|
||||||
|
margin: -32px 6px 6px;
|
||||||
|
border-radius: 6px;
|
||||||
|
spacing: inherit;
|
||||||
|
background-color: @input-bg;
|
||||||
|
text-color: inherit;
|
||||||
|
children: [ prompt, entry ];
|
||||||
|
}
|
||||||
|
prompt {
|
||||||
|
padding: 6px 6px 6px 12px;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
entry {
|
||||||
|
placeholder: "Search";
|
||||||
|
padding: 6px 0;
|
||||||
|
cursor: text;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* List */
|
||||||
|
|
||||||
|
listview {
|
||||||
|
border: 2px 0 0 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
border-color: @main-br;
|
||||||
|
lines: 6;
|
||||||
|
fixed-height: false;
|
||||||
|
dynamic: false;
|
||||||
|
cycle: false;
|
||||||
|
margin: 0 0 -2px;
|
||||||
|
padding: 6px 6px 40px;
|
||||||
|
background-color: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
element {
|
||||||
|
padding: 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: @main-fg;
|
||||||
|
}
|
||||||
|
element selected active,
|
||||||
|
element selected normal {
|
||||||
|
border-radius: 6px;
|
||||||
|
background-color: @select-bg;
|
||||||
|
text-color: @select-fg;
|
||||||
|
}
|
||||||
|
element-text {
|
||||||
|
padding: 0 6px;
|
||||||
|
cursor: inherit;
|
||||||
|
background-color: inherit;
|
||||||
|
text-color: inherit;
|
||||||
|
}
|
368
.config/waybar/backup.css
Normal file
368
.config/waybar/backup.css
Normal file
@ -0,0 +1,368 @@
|
|||||||
|
/* =============================================================================
|
||||||
|
*
|
||||||
|
* Waybar configuration
|
||||||
|
*
|
||||||
|
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
|
||||||
|
*
|
||||||
|
* =========================================================================== */
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Keyframes
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
@import "machiatto.css";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Polar Night
|
||||||
|
nord0 #2e3440
|
||||||
|
nord1 #3b4252
|
||||||
|
nord2 #434c5e
|
||||||
|
nord3 #4c566a
|
||||||
|
Snow Storm
|
||||||
|
nord4 #d8dee9
|
||||||
|
nord5 #e5e9f0
|
||||||
|
nord6 #eceff4
|
||||||
|
Frost
|
||||||
|
nord7 #8fbcbb
|
||||||
|
nord8 #88c0d0
|
||||||
|
nord9 #81a1c1
|
||||||
|
nord10 #5e81ac
|
||||||
|
Aurora
|
||||||
|
nord11 #bf616a
|
||||||
|
nord12 #d08770
|
||||||
|
nord13 #ebcb8b
|
||||||
|
nord14 #a3be8c
|
||||||
|
nord15 #b48ead
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Base styles
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Reset all styles */
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: @lavender;
|
||||||
|
border: 0;
|
||||||
|
padding: 0 0;
|
||||||
|
font-family: UbuntuMono;
|
||||||
|
/* font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; */
|
||||||
|
/* font-family: "Hack Nerd Font"; */
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
/* padding-bottom:4px;
|
||||||
|
padding-top: 4px; */
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
border-bottom: 2px solid @mauve;
|
||||||
|
/* border-radius: 10px; */
|
||||||
|
/* background:#2d2a2e; */
|
||||||
|
/* background-color: rgba(36, 39, 58, 0.85); */
|
||||||
|
/* background-color: rgba(0, 0, 0, 0); */
|
||||||
|
background-color: shade(#1e1e2e, 0.95);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: @base;
|
||||||
|
border-radius: 50%;
|
||||||
|
/* background-color: @base; */
|
||||||
|
margin: 0px 0px;
|
||||||
|
padding: 2 3 2 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces * {
|
||||||
|
color: whitesmoke;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
border-style: solid;
|
||||||
|
background-color: @base;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 8px 0px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: @flamingo;
|
||||||
|
border-radius: 20px;
|
||||||
|
/* background-color: @flamingo; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused * {
|
||||||
|
color: @flamingo;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
color: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#custom-swap,
|
||||||
|
#custom-background,
|
||||||
|
#custom-cava-internal,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#temperature,
|
||||||
|
#custom-keyboard-layout,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#mode,
|
||||||
|
#tray,
|
||||||
|
#custom-power,
|
||||||
|
#custom-pacman {
|
||||||
|
padding: 5px 14px;
|
||||||
|
border-style: solid;
|
||||||
|
background-color: shade(@base, 1.1);
|
||||||
|
opacity: 1;
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Module styles
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
#custom-cava-internal {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-swap {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: white;
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-background {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
background-color: @base;
|
||||||
|
color: white;
|
||||||
|
padding: 5px 14px 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
/* background-color:#a3be8c; */
|
||||||
|
color: @sky;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 8px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: @yellow;
|
||||||
|
/* border-bottom: 2px solid @yellow; */
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #d8dee9;
|
||||||
|
/* border-bottom: 2px solid #d8dee9; */
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #81a1c1;
|
||||||
|
/* border-bottom: 2px solid #81a1c1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
color: @red;
|
||||||
|
/* border-bottom: 2px solid @red; */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: @sky;
|
||||||
|
/* border-bottom: 2px solid @sky; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu #cpu-icon {
|
||||||
|
color: @sky;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background-color: #d3869b;
|
||||||
|
color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disabled {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: @green;
|
||||||
|
/* border-bottom: 2px solid @green; */
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: @flamingo;
|
||||||
|
/* border-bottom: 2px solid @flamingo; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #3b4252;
|
||||||
|
/* border-bottom: 2px solid #3b4252; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: @teal;
|
||||||
|
/* border-bottom: 2px solid @teal; */
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
color: @red;
|
||||||
|
/* border-bottom: 2px solid @red; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #ebcb8b;
|
||||||
|
color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
/* background-color: @base; */
|
||||||
|
margin: 8px 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher,
|
||||||
|
#custom-power {}
|
||||||
|
|
||||||
|
#custom-launcher {
|
||||||
|
background-color: @mauve;
|
||||||
|
color: @base;
|
||||||
|
border-radius: 0px 15px 0px 0px;
|
||||||
|
padding: 5px 5px 5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @base;
|
||||||
|
background-color: @red;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
border-style: hidden;
|
||||||
|
margin-left: 10px;
|
||||||
|
/* margin-top:1px;
|
||||||
|
padding: 8px 1rem; */
|
||||||
|
margin-right: 10px;
|
||||||
|
color: #eceff4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
margin-bottom: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-keyboard-layout {
|
||||||
|
color: @peach;
|
||||||
|
/* border-bottom: 2px solid @peach; */
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* window#waybar {
|
||||||
|
background: #2d2a2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: #c8b9a9;
|
||||||
|
font-family: Ubuntu Mono, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: #f2e5bc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: #c8b9a9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separator {
|
||||||
|
background-color: #c8b9a9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
color: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: #a3be8c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #d8dee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #b48ead;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: #a3be8c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #d3869b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #8fbcbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disabled {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #b48ead;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: #8fbcbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
color: #bf616a;
|
||||||
|
} */
|
400
.config/waybar/config.jsonc
Normal file
400
.config/waybar/config.jsonc
Normal file
@ -0,0 +1,400 @@
|
|||||||
|
{
|
||||||
|
// ─────────────────────────────────────────────────────────────┤ header ├───
|
||||||
|
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────────┤ positions ├───
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"mpris" // media info
|
||||||
|
],
|
||||||
|
|
||||||
|
"modules-center": [
|
||||||
|
"custom/paddc",
|
||||||
|
"custom/left2",
|
||||||
|
"custom/temperature", // temperature
|
||||||
|
|
||||||
|
"custom/left3",
|
||||||
|
"memory", // memory
|
||||||
|
|
||||||
|
"custom/left4",
|
||||||
|
"cpu", // cpu
|
||||||
|
"custom/leftin1",
|
||||||
|
|
||||||
|
"custom/left5",
|
||||||
|
"custom/distro", // distro icon
|
||||||
|
"custom/right2",
|
||||||
|
|
||||||
|
"custom/rightin1",
|
||||||
|
"idle_inhibitor", // idle inhibitor
|
||||||
|
"clock#time", // time
|
||||||
|
"custom/right3",
|
||||||
|
|
||||||
|
"clock#date", // date
|
||||||
|
"custom/right4",
|
||||||
|
|
||||||
|
"custom/wifi", // wi-fi
|
||||||
|
"bluetooth", // bluetooth
|
||||||
|
"custom/update", // system update
|
||||||
|
"custom/right5"
|
||||||
|
],
|
||||||
|
|
||||||
|
"modules-right": [
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────┤ workspaces ├───
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────┤ temperature ├───
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────────┤ memory ├───
|
||||||
|
|
||||||
|
"memory": {
|
||||||
|
"states": {
|
||||||
|
"warning": 75,
|
||||||
|
"critical": 90
|
||||||
|
},
|
||||||
|
|
||||||
|
"format": " {percentage}%",
|
||||||
|
"format-critical": " {percentage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 7,
|
||||||
|
"max-length": 7
|
||||||
|
},
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────────────┤ cpu ├───
|
||||||
|
|
||||||
|
"cpu": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────────┤ distro ├───
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────┤ idle inhibitor ├───
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ───────────────────────────────────────────────────────────────┤ time ├───
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
// ───────────────────────────────────────────────────────────────┤ date ├───
|
||||||
|
|
||||||
|
"clock#date": {
|
||||||
|
"format": " {:%m-%d}",
|
||||||
|
"tooltip-format": "<tt>{calendar}</tt>",
|
||||||
|
|
||||||
|
"calendar": {
|
||||||
|
"mode": "month",
|
||||||
|
"mode-mon-col": 6,
|
||||||
|
"on-click-right": "mode",
|
||||||
|
|
||||||
|
"format": {
|
||||||
|
"months":
|
||||||
|
"<span color='#928374'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#d5c4a1' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#cc241d'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────────────┤ wi-fi ├───
|
||||||
|
|
||||||
|
"custom/wifi": {
|
||||||
|
"exec": "~/.config/waybar/scripts/wifi-status.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "~/.config/waybar/scripts/wifi-menu.sh",
|
||||||
|
"on-click-right": "kitty --title ' Network Manager TUI' bash -c nmtui",
|
||||||
|
"interval": 1,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────────┤ bluetooth ├───
|
||||||
|
|
||||||
|
"bluetooth": {
|
||||||
|
"format": "",
|
||||||
|
"format-disabled": "",
|
||||||
|
"format-connected": "",
|
||||||
|
"format-connected-battery": "",
|
||||||
|
|
||||||
|
"tooltip-format":
|
||||||
|
"{num_connections} connected",
|
||||||
|
"tooltip-format-disabled":
|
||||||
|
"Bluetooth Disabled",
|
||||||
|
"tooltip-format-connected":
|
||||||
|
"{device_enumerate}",
|
||||||
|
"tooltip-format-enumerate-connected":
|
||||||
|
"{device_alias}",
|
||||||
|
"tooltip-format-enumerate-connected-battery":
|
||||||
|
":: {device_alias}: {device_battery_percentage}%",
|
||||||
|
|
||||||
|
"on-click": "~/.config/waybar/scripts/bluetooth-menu.sh",
|
||||||
|
"on-click-right": "kitty --title ' Bluetooth TUI' bash -c bluetui",
|
||||||
|
"interval": 1,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────┤ system update ├───
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "~/.config/waybar/scripts/system-update.sh up",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────┤ media info ├───
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#98971a'> </span>",
|
||||||
|
"firefox": "<span foreground='#cc241d'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#928374'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────┤ output device ├───
|
||||||
|
|
||||||
|
"pulseaudio": {
|
||||||
|
"format": "{icon} {volume}%",
|
||||||
|
"format-muted": " {volume}%",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"default": ["", "", ""],
|
||||||
|
"headphone": "",
|
||||||
|
"headset": ""
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Device: {desc}",
|
||||||
|
"on-click": "~/.config/waybar/scripts/volume-control.sh -o m",
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/volume-control.sh -o i",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/volume-control.sh -o d",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
// ─────────────────────────────────────────────────────────┤ brightness ├───
|
||||||
|
|
||||||
|
"backlight": {
|
||||||
|
"format": "{icon} {percent}%",
|
||||||
|
"format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||||
|
"tooltip": false,
|
||||||
|
"on-scroll-up": "~/.config/waybar/scripts/brightness-control.sh -o i",
|
||||||
|
"on-scroll-down": "~/.config/waybar/scripts/brightness-control.sh -o d",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────────┤ battery ├───
|
||||||
|
|
||||||
|
"battery": {
|
||||||
|
"states": {
|
||||||
|
"warning": 20,
|
||||||
|
"critical": 10
|
||||||
|
},
|
||||||
|
|
||||||
|
"format": "{icon} {capacity}%",
|
||||||
|
"format-icons": ["", "", "", "", "", "", "", "", "", ""],
|
||||||
|
"format-charging": " {capacity}%",
|
||||||
|
|
||||||
|
"tooltip-format": "Discharging: {time}",
|
||||||
|
"tooltip-format-charging": "Charging: {time}",
|
||||||
|
"interval": 1,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
// ───────────────────────────────────────────────────────┤ power button ├───
|
||||||
|
|
||||||
|
"custom/power": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Power Menu",
|
||||||
|
"on-click": "~/.config/waybar/scripts/power-menu.sh"
|
||||||
|
},
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────────┤ padding ├───
|
||||||
|
|
||||||
|
"custom/paddw": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/paddc": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ────────────────────────────────────────────────────────┤ left arrows ├───
|
||||||
|
|
||||||
|
"custom/left1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left3": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left4": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left5": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left6": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left7": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/left8": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ───────────────────────────────────────────────────────┤ right arrows ├───
|
||||||
|
|
||||||
|
"custom/right1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right3": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right4": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/right5": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ───────────────────────────────────────────────────────┤ left inverse ├───
|
||||||
|
|
||||||
|
"custom/leftin1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
"custom/leftin2": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
// ──────────────────────────────────────────────────────┤ right inverse ├───
|
||||||
|
|
||||||
|
"custom/rightin1": {
|
||||||
|
"format": "",
|
||||||
|
"tooltip": false
|
||||||
|
}
|
||||||
|
}
|
37
.config/waybar/machiatto.css
Normal file
37
.config/waybar/machiatto.css
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Catppuccin Macchiato palette
|
||||||
|
* Maintainer: rubyowo
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@define-color base #24273a;
|
||||||
|
@define-color mantle #1e2030;
|
||||||
|
@define-color crust #181926;
|
||||||
|
|
||||||
|
@define-color text #cad3f5;
|
||||||
|
@define-color subtext0 #a5adcb;
|
||||||
|
@define-color subtext1 #b8c0e0;
|
||||||
|
|
||||||
|
@define-color surface0 #363a4f;
|
||||||
|
@define-color surface1 #494d64;
|
||||||
|
@define-color surface2 #5b6078;
|
||||||
|
|
||||||
|
@define-color overlay0 #6e738d;
|
||||||
|
@define-color overlay1 #8087a2;
|
||||||
|
@define-color overlay2 #939ab7;
|
||||||
|
|
||||||
|
@define-color blue #8aadf4;
|
||||||
|
@define-color lavender #b7bdf8;
|
||||||
|
@define-color sapphire #7dc4e4;
|
||||||
|
@define-color sky #91d7e3;
|
||||||
|
@define-color teal #8bd5ca;
|
||||||
|
@define-color green #a6da95;
|
||||||
|
@define-color yellow #eed49f;
|
||||||
|
@define-color peach #f5a97f;
|
||||||
|
@define-color maroon #ee99a0;
|
||||||
|
@define-color red #ed8796;
|
||||||
|
@define-color mauve #c6a0f6;
|
||||||
|
@define-color pink #f5bde6;
|
||||||
|
@define-color flamingo #f0c6c6;
|
||||||
|
@define-color rosewater #f4dbd6;
|
80
.config/waybar/scripts/battery-level.sh
Executable file
80
.config/waybar/scripts/battery-level.sh
Executable file
@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Original script by Eric Murphy
|
||||||
|
# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert
|
||||||
|
#
|
||||||
|
# Modified by Jesse Mirabel (@sejjy)
|
||||||
|
# https://github.com/sejjy/mechabar
|
||||||
|
|
||||||
|
# This script sends a notification when the battery is full, low, or critical.
|
||||||
|
# icon theme used: tela-circle-icon-theme-dracula
|
||||||
|
#
|
||||||
|
# (see the bottom of the script for more information)
|
||||||
|
|
||||||
|
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
|
||||||
|
|
||||||
|
# battery levels
|
||||||
|
WARNING_LEVEL=20
|
||||||
|
CRITICAL_LEVEL=10
|
||||||
|
|
||||||
|
# get the battery state and percentage using upower (waybar dependency)
|
||||||
|
BAT_PATH=$(upower -e | grep BAT | head -n 1)
|
||||||
|
BATTERY_STATE=$(upower -i "$BAT_PATH" | awk '/state:/ {print $2}')
|
||||||
|
BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%')
|
||||||
|
|
||||||
|
# prevent multiple notifications
|
||||||
|
FILE_FULL=/tmp/battery-full
|
||||||
|
FILE_WARNING=/tmp/battery-warning
|
||||||
|
FILE_CRITICAL=/tmp/battery-critical
|
||||||
|
|
||||||
|
# remove the files if the battery is no longer in that state
|
||||||
|
if [ "$BATTERY_STATE" == "discharging" ]; then
|
||||||
|
rm -f $FILE_FULL
|
||||||
|
elif [ "$BATTERY_STATE" == "charging" ]; then
|
||||||
|
rm -f "$FILE_WARNING" "$FILE_CRITICAL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# if the battery is full and is plugged in
|
||||||
|
if [ "$BATTERY_LEVEL" -eq 100 ] && [ "$BATTERY_STATE" == "fully-charged" ] && [ ! -f $FILE_FULL ]; then
|
||||||
|
notify-send -a "state" "Battery Charged (${BATTERY_LEVEL}%)" "You might want to unplug your PC." -i "battery-full" -r 9991
|
||||||
|
touch $FILE_FULL
|
||||||
|
|
||||||
|
# if the battery is low and is discharging
|
||||||
|
elif [ "$BATTERY_LEVEL" -le $WARNING_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_WARNING ]; then
|
||||||
|
notify-send -a "state" "Battery Low (${BATTERY_LEVEL}%)" "You might want to plug in your PC." -u critical -i "battery-caution" -r 9991 -h string:fgcolor:\#fab387 -h string:frcolor:\#fab387
|
||||||
|
touch $FILE_WARNING
|
||||||
|
|
||||||
|
# if the battery is critical and is discharging
|
||||||
|
elif [ "$BATTERY_LEVEL" -le $CRITICAL_LEVEL ] && [ "$BATTERY_STATE" == "discharging" ] && [ ! -f $FILE_CRITICAL ]; then
|
||||||
|
notify-send -a "state" "Battery Critical (${BATTERY_LEVEL}%)" "Plug in your PC now." -u critical -i "battery-empty" -r 9991
|
||||||
|
touch $FILE_CRITICAL
|
||||||
|
fi
|
||||||
|
|
||||||
|
# systemd service
|
||||||
|
# Add the following to ~/.config/systemd/user/battery-level.service:
|
||||||
|
|
||||||
|
# [Unit]
|
||||||
|
# Description=Battery Level Checker
|
||||||
|
# After=graphical.target
|
||||||
|
#
|
||||||
|
# [Service]
|
||||||
|
# ExecStart=%h/.config/waybar/scripts/battery-level.sh
|
||||||
|
# Type=oneshot
|
||||||
|
|
||||||
|
# systemd timer
|
||||||
|
# Add the following to ~/.config/systemd/user/battery-level.timer:
|
||||||
|
|
||||||
|
# [Unit]
|
||||||
|
# Description=Run Battery Level Checker
|
||||||
|
#
|
||||||
|
# [Timer]
|
||||||
|
# OnBootSec=1min
|
||||||
|
# OnUnitActiveSec=1min
|
||||||
|
# Unit=battery-level.service
|
||||||
|
#
|
||||||
|
# [Install]
|
||||||
|
# WantedBy=timers.target
|
||||||
|
|
||||||
|
# enable the timer by running the following commands:
|
||||||
|
# systemctl --user daemon-reload
|
||||||
|
# systemctl --user enable --now battery-level.timer
|
50
.config/waybar/scripts/battery-state.sh
Executable file
50
.config/waybar/scripts/battery-state.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Original script by Eric Murphy
|
||||||
|
# https://github.com/ericmurphyxyz/dotfiles/blob/master/.local/bin/battery-alert
|
||||||
|
#
|
||||||
|
# Modified by Jesse Mirabel (@sejjy)
|
||||||
|
# https://github.com/sejjy/mechabar
|
||||||
|
|
||||||
|
# This script sends a notification when the battery is charging or discharging.
|
||||||
|
# icon theme used: tela-circle-icon-theme-dracula
|
||||||
|
#
|
||||||
|
# (see the bottom of the script for more information)
|
||||||
|
|
||||||
|
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
|
||||||
|
|
||||||
|
# get the battery state from the udev rule
|
||||||
|
BATTERY_STATE=$1
|
||||||
|
|
||||||
|
# get the battery percentage using upower (waybar dependency)
|
||||||
|
BAT_PATH=$(upower -e | grep BAT | head -n 1)
|
||||||
|
BATTERY_LEVEL=$(upower -i "$BAT_PATH" | awk '/percentage:/ {print $2}' | tr -d '%')
|
||||||
|
|
||||||
|
# set the battery charging state and icon
|
||||||
|
case "$BATTERY_STATE" in
|
||||||
|
"charging")
|
||||||
|
BATTERY_CHARGING="Charging"
|
||||||
|
BATTERY_ICON="090-charging"
|
||||||
|
;;
|
||||||
|
"discharging")
|
||||||
|
BATTERY_CHARGING="Disharging"
|
||||||
|
BATTERY_ICON="090"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# send the notification
|
||||||
|
notify-send -a "state" "Battery ${BATTERY_CHARGING} (${BATTERY_LEVEL}%)" -u normal -i "battery-${BATTERY_ICON}" -r 9991
|
||||||
|
|
||||||
|
# udev rule
|
||||||
|
# Add the following to /etc/udev/rules.d/60-power.rules:
|
||||||
|
|
||||||
|
# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", ENV{DISPLAY}=":0", RUN+="/usr/bin/su <username> -c '$HOME/.config/waybar/scripts/battery-state.sh discharging'"
|
||||||
|
# ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", ENV{DISPLAY}=":0", RUN+="/usr/bin/su <username> -c '$HOME/.config/waybar/scripts/battery-state.sh charging'"
|
||||||
|
|
||||||
|
# the number 60 in the udev rule can be changed to any number between 0 and 99.
|
||||||
|
# the lower the number, the higher the priority.
|
||||||
|
#
|
||||||
|
# $USER does not work, so you have to replace "<username>" with your username.
|
||||||
|
|
||||||
|
# reload udev rules by running the following command:
|
||||||
|
# sudo udevadm control --reload-rules
|
106
.config/waybar/scripts/bluetooth-menu.sh
Executable file
106
.config/waybar/scripts/bluetooth-menu.sh
Executable file
@ -0,0 +1,106 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Author: Jesse Mirabel (@sejjy)
|
||||||
|
# GitHub: https://github.com/sejjy/mechabar
|
||||||
|
|
||||||
|
# Rofi config
|
||||||
|
config="$HOME/.config/rofi/bluetooth-menu.rasi"
|
||||||
|
|
||||||
|
# Rofi window override
|
||||||
|
override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }"
|
||||||
|
|
||||||
|
get_device_icon() {
|
||||||
|
local device_mac=$1
|
||||||
|
device_info=$(bluetoothctl info "$device_mac")
|
||||||
|
device_icon=$(echo "$device_info" | grep "Icon:" | awk '{print $2}')
|
||||||
|
|
||||||
|
case "$device_icon" in
|
||||||
|
"audio-headphones" | "audio-headset") echo " " ;; # Headphones
|
||||||
|
"video-display" | "computer") echo " " ;; # Monitor
|
||||||
|
"audio-input-microphone") echo " " ;; # Microphone
|
||||||
|
"input-keyboard") echo " " ;; # Keyboard
|
||||||
|
"audio-speakers") echo " " ;; # Speakers
|
||||||
|
"input-mouse") echo " " ;; # Mouse
|
||||||
|
"phone") echo " " ;; # Phone
|
||||||
|
*)
|
||||||
|
echo " " # Default
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
# Get list of paired devices
|
||||||
|
bluetooth_devices=$(bluetoothctl devices | while read -r line; do
|
||||||
|
device_mac=$(echo "$line" | awk '{print $2}')
|
||||||
|
device_name=$(echo "$line" | awk '{$1=$2=""; print substr($0, 3)}')
|
||||||
|
icon=$(get_device_icon "$device_mac")
|
||||||
|
echo "$icon $device_name"
|
||||||
|
done)
|
||||||
|
|
||||||
|
options=$(
|
||||||
|
echo " Scan for devices"
|
||||||
|
echo " Disable Bluetooth"
|
||||||
|
echo "$bluetooth_devices"
|
||||||
|
)
|
||||||
|
option=" Enable Bluetooth"
|
||||||
|
|
||||||
|
# Get Bluetooth status
|
||||||
|
bluetooth_status=$(bluetoothctl show | grep "Powered:" | awk '{print $2}')
|
||||||
|
|
||||||
|
if [[ "$bluetooth_status" == "yes" ]]; then
|
||||||
|
selected_option=$(echo -e "$options" | rofi -dmenu -i -selected-row 1 -config "${config}" -p " " || pkill -x rofi)
|
||||||
|
else
|
||||||
|
selected_option=$(echo -e "$option" | rofi -dmenu -i -selected-row 1 -config "${config}" -theme-str "${override_disabled}" -p " " || pkill -x rofi)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Exit if no option is selected
|
||||||
|
if [ -z "$selected_option" ]; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Actions based on selected option
|
||||||
|
case "$selected_option" in
|
||||||
|
*"Enable Bluetooth")
|
||||||
|
notify-send "Bluetooth Enabled" -i "package-installed-outdated"
|
||||||
|
rfkill unblock bluetooth
|
||||||
|
bluetoothctl power on
|
||||||
|
sleep 1
|
||||||
|
;;
|
||||||
|
*"Disable Bluetooth")
|
||||||
|
notify-send "Bluetooth Disabled" -i "package-broken"
|
||||||
|
rfkill block bluetooth
|
||||||
|
bluetoothctl power off
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*"Scan for devices")
|
||||||
|
notify-send "Press '?' to show help." -i "package-installed-outdated"
|
||||||
|
kitty --title ' Bluetooth TUI' bash -c "bluetui" # Launch bluetui
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Extract device name
|
||||||
|
device_name="${selected_option#* }"
|
||||||
|
device_name="${device_name## }"
|
||||||
|
|
||||||
|
if [[ -n "$device_name" ]]; then
|
||||||
|
# Get MAC address
|
||||||
|
device_mac=$(bluetoothctl devices | grep "$device_name" | awk '{print $2}')
|
||||||
|
|
||||||
|
# Trust and pair device
|
||||||
|
bluetoothctl trust "$device_mac" >/dev/null 2>&1
|
||||||
|
bluetoothctl pair "$device_mac" >/dev/null 2>&1
|
||||||
|
|
||||||
|
# Connect to device
|
||||||
|
bluetoothctl connect "$device_mac" &
|
||||||
|
sleep 3
|
||||||
|
connection_status=$(bluetoothctl info "$device_mac" | grep "Connected:" | awk '{print $2}')
|
||||||
|
|
||||||
|
if [[ "$connection_status" == "yes" ]]; then
|
||||||
|
notify-send "Connected to \"$device_name\"." -i "package-installed-outdated"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Failed to connect to \"$device_name\"." -i "package-broken"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
92
.config/waybar/scripts/brightness-control.sh
Executable file
92
.config/waybar/scripts/brightness-control.sh
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Print error message for invalid arguments
|
||||||
|
print_error() {
|
||||||
|
cat <<"EOF"
|
||||||
|
Usage: ./brightnesscontrol.sh <action>
|
||||||
|
Valid actions are:
|
||||||
|
i -- <i>ncrease brightness [+2%]
|
||||||
|
d -- <d>ecrease brightness [-2%]
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Send a notification with brightness info
|
||||||
|
send_notification() {
|
||||||
|
brightness=$(brightnessctl info | grep -oP "(?<=\()\d+(?=%)")
|
||||||
|
notify-send -a "state" -r 91190 -i "gpm-brightness-lcd" -h int:value:"$brightness" "Brightness: ${brightness}%" -u low
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the current brightness percentage and device name
|
||||||
|
get_brightness() {
|
||||||
|
brightness=$(brightnessctl -m | grep -o '[0-9]\+%' | head -c-2)
|
||||||
|
device=$(brightnessctl -m | head -n 1 | awk -F',' '{print $1}' | sed 's/_/ /g; s/\<./\U&/g') # Get device name
|
||||||
|
current_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $3}') # Get current brightness
|
||||||
|
max_brightness=$(brightnessctl -m | head -n 1 | awk -F',' '{print $5}') # Get max brightness
|
||||||
|
}
|
||||||
|
get_brightness
|
||||||
|
|
||||||
|
# Handle options
|
||||||
|
while getopts o: opt; do
|
||||||
|
case "${opt}" in
|
||||||
|
o)
|
||||||
|
case $OPTARG in
|
||||||
|
i) # Increase brightness
|
||||||
|
if [[ $brightness -lt 10 ]]; then
|
||||||
|
brightnessctl set +1%
|
||||||
|
else
|
||||||
|
brightnessctl set +2%
|
||||||
|
fi
|
||||||
|
send_notification
|
||||||
|
;;
|
||||||
|
d) # Decrease brightness
|
||||||
|
if [[ $brightness -le 1 ]]; then
|
||||||
|
brightnessctl set 1%
|
||||||
|
elif [[ $brightness -le 10 ]]; then
|
||||||
|
brightnessctl set 1%-
|
||||||
|
else
|
||||||
|
brightnessctl set 2%-
|
||||||
|
fi
|
||||||
|
send_notification
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
print_error
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
print_error
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Determine the icon based on brightness level
|
||||||
|
get_icon() {
|
||||||
|
if ((brightness <= 5)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 15)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 30)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 45)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 55)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 65)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 80)); then
|
||||||
|
icon=""
|
||||||
|
elif ((brightness <= 95)); then
|
||||||
|
icon=""
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Backlight module and tooltip
|
||||||
|
get_icon
|
||||||
|
module="${icon} ${brightness}%"
|
||||||
|
|
||||||
|
tooltip="Device Name: ${device}"
|
||||||
|
tooltip+="\nBrightness: ${current_brightness} / ${max_brightness}"
|
||||||
|
|
||||||
|
echo "{\"text\": \"${module}\", \"tooltip\": \"${tooltip}\"}"
|
3
.config/waybar/scripts/check_updates.sh
Executable file
3
.config/waybar/scripts/check_updates.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
i="$(checkupdates)"
|
||||||
|
printf "%b%b" "$i" "${i:+\n}" |wc -l; echo "$i" |column -t #|tr '\n' '\r'
|
67
.config/waybar/scripts/cpu-temp.sh
Executable file
67
.config/waybar/scripts/cpu-temp.sh
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
model=$(awk -F ': ' '/model name/{print $2}' /proc/cpuinfo | head -n 1 | sed 's/@.*//; s/ *\((R)\|(TM)\)//g; s/^[ \t]*//; s/[ \t]*$//')
|
||||||
|
|
||||||
|
# get CPU clock speeds
|
||||||
|
get_cpu_frequency() {
|
||||||
|
freqlist=$(awk '/cpu MHz/ {print $4}' /proc/cpuinfo)
|
||||||
|
maxfreq=$(sed 's/...$//' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
|
||||||
|
if [ -z "$freqlist" ] || [ -z "$maxfreq" ]; then
|
||||||
|
echo "--"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
average_freq=$(echo "$freqlist" | tr ' ' '\n' | awk "{sum+=\$1} END {printf \"%.0f/%s MHz\", sum/NR, $maxfreq}")
|
||||||
|
echo "$average_freq"
|
||||||
|
}
|
||||||
|
|
||||||
|
# get CPU temp
|
||||||
|
get_cpu_temperature() {
|
||||||
|
temp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}')
|
||||||
|
if [[ -z "$temp" ]]; then
|
||||||
|
temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+°C')
|
||||||
|
fi
|
||||||
|
if [[ -z "$temp" ]]; then
|
||||||
|
temp="--"
|
||||||
|
temp_f="--"
|
||||||
|
else
|
||||||
|
temp=${temp%.*}
|
||||||
|
temp_f=$(awk "BEGIN {printf \"%.1f\", ($temp * 9 / 5) + 32}")
|
||||||
|
fi
|
||||||
|
# Celsius and Fahrenheit
|
||||||
|
echo "${temp:---} ${temp_f:---}"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_temperature_icon() {
|
||||||
|
temp_value=$1
|
||||||
|
if [ "$temp_value" = "--" ]; then
|
||||||
|
icon="" # none
|
||||||
|
elif [ "$temp_value" -ge 80 ]; then
|
||||||
|
icon="" # high
|
||||||
|
elif [ "$temp_value" -ge 70 ]; then
|
||||||
|
icon="" # medium
|
||||||
|
elif [ "$temp_value" -ge 60 ]; then
|
||||||
|
icon="" # normal
|
||||||
|
else
|
||||||
|
icon="" # low
|
||||||
|
fi
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu_frequency=$(get_cpu_frequency)
|
||||||
|
read -r temp_info < <(get_cpu_temperature)
|
||||||
|
temp=$(echo "$temp_info" | awk '{print $1}')
|
||||||
|
temp_f=$(echo "$temp_info" | awk '{print $2}')
|
||||||
|
thermo_icon=$(get_temperature_icon "$temp")
|
||||||
|
|
||||||
|
# high temp warning
|
||||||
|
if [ "$temp" == "--" ] || [ "$temp" -ge 80 ]; then
|
||||||
|
text_output="<span color='#f38ba8'>${thermo_icon} ${temp}°C</span>"
|
||||||
|
else
|
||||||
|
text_output="${thermo_icon} ${temp}°C"
|
||||||
|
fi
|
||||||
|
|
||||||
|
tooltip=":: ${model}\n"
|
||||||
|
tooltip+="Clock Speed: ${cpu_frequency}\nTemperature: ${temp_f}°F"
|
||||||
|
|
||||||
|
# module and tooltip
|
||||||
|
echo "{\"text\": \"$text_output\", \"tooltip\": \"$tooltip\"}"
|
24
.config/waybar/scripts/current-theme.sh
Executable file
24
.config/waybar/scripts/current-theme.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme"
|
||||||
|
|
||||||
|
# Get the current theme
|
||||||
|
current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "")
|
||||||
|
current_theme_name="Default"
|
||||||
|
|
||||||
|
# Get the theme name
|
||||||
|
if [[ -n "$current_theme" ]]; then
|
||||||
|
current_theme_name=$(basename "$current_theme" .css)
|
||||||
|
|
||||||
|
# Convert "theme-name" to "Theme Name"
|
||||||
|
formatted_theme_name="${current_theme_name//-/ }"
|
||||||
|
formatted_theme_name=$(echo "$formatted_theme_name" | awk '{for(i=1;i<=NF;i++) $i=toupper(substr($i,1,1)) substr($i,2)}1')
|
||||||
|
else
|
||||||
|
formatted_theme_name="Default"
|
||||||
|
fi
|
||||||
|
|
||||||
|
tooltip="Theme: $formatted_theme_name"
|
||||||
|
tooltip+="\nStyle: Classic" # hard-coded for now
|
||||||
|
|
||||||
|
# Tooltip
|
||||||
|
echo "{\"tooltip\": \"$tooltip\"}"
|
2
.config/waybar/scripts/keyhint.sh
Executable file
2
.config/waybar/scripts/keyhint.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
yad --title="Garuda Sway-WM keybindings:" --no-buttons --geometry=400x345-15-400 --list --column=key: --column=description: --column=command: "ESC" "close this app" "" "=" "modkey" "(set mod Mod4)" "+enter" "Terminal" "(termite)" "+d" "Application Menu" "(wofi)" "+Shift+d" "Full Launcher" "(nwggrid)" "+p" "Activities" "(wofi)" "+o" "" "Open Broswer" "+n" "" "Open Files" "+q" "close focused app" "(kill)" "[Shift]+Print-key" "screenshot" "(grim)" "+Shift+e" "power-menu" "(wofi)" "+Shift+p" "open keybinding helper" "full list"
|
30
.config/waybar/scripts/power-menu.sh
Executable file
30
.config/waybar/scripts/power-menu.sh
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
config="$HOME/.config/rofi/power-menu.rasi"
|
||||||
|
|
||||||
|
actions=$(echo -e " Lock\n Shutdown\n Reboot\n Suspend\n Hibernate\n Logout")
|
||||||
|
|
||||||
|
# Display logout menu
|
||||||
|
selected_option=$(echo -e "$actions" | rofi -dmenu -i -config "${config}" || pkill -x rofi)
|
||||||
|
|
||||||
|
# Perform actions based on the selected option
|
||||||
|
case "$selected_option" in
|
||||||
|
*Lock)
|
||||||
|
loginctl lock-session
|
||||||
|
;;
|
||||||
|
*Shutdown)
|
||||||
|
systemctl poweroff
|
||||||
|
;;
|
||||||
|
*Reboot)
|
||||||
|
systemctl reboot
|
||||||
|
;;
|
||||||
|
*Suspend)
|
||||||
|
systemctl suspend
|
||||||
|
;;
|
||||||
|
*Hibernate)
|
||||||
|
systemctl hibernate
|
||||||
|
;;
|
||||||
|
*Logout)
|
||||||
|
loginctl kill-session "$XDG_SESSION_ID"
|
||||||
|
;;
|
||||||
|
esac
|
86
.config/waybar/scripts/system-update.sh
Executable file
86
.config/waybar/scripts/system-update.sh
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Check release
|
||||||
|
if [ ! -f /etc/arch-release ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkg_installed() {
|
||||||
|
local pkg=$1
|
||||||
|
|
||||||
|
if pacman -Qi "${pkg}" &>/dev/null; then
|
||||||
|
return 0
|
||||||
|
elif pacman -Qi "flatpak" &>/dev/null && flatpak info "${pkg}" &>/dev/null; then
|
||||||
|
return 0
|
||||||
|
elif command -v "${pkg}" &>/dev/null; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_aur_helper() {
|
||||||
|
if pkg_installed yay; then
|
||||||
|
aur_helper="yay"
|
||||||
|
elif pkg_installed paru; then
|
||||||
|
aur_helper="paru"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
get_aur_helper
|
||||||
|
export -f pkg_installed
|
||||||
|
|
||||||
|
# Trigger upgrade
|
||||||
|
if [ "$1" == "up" ]; then
|
||||||
|
trap 'pkill -RTMIN+20 waybar' EXIT
|
||||||
|
command="
|
||||||
|
$0 upgrade
|
||||||
|
${aur_helper} -Syu
|
||||||
|
if pkg_installed flatpak; then flatpak update; fi
|
||||||
|
printf '\n'
|
||||||
|
read -n 1 -p 'Press any key to continue...'
|
||||||
|
"
|
||||||
|
kitty --title " System Update" sh -c "${command}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for AUR updates
|
||||||
|
if [ -n "$aur_helper" ]; then
|
||||||
|
aur_updates=$(${aur_helper} -Qua | grep -c '^')
|
||||||
|
else
|
||||||
|
aur_updates=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for official repository updates
|
||||||
|
official_updates=$(
|
||||||
|
(while pgrep -x checkupdates >/dev/null; do sleep 1; done)
|
||||||
|
checkupdates | grep -c '^'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check for Flatpak updates
|
||||||
|
if pkg_installed flatpak; then
|
||||||
|
flatpak_updates=$(flatpak remote-ls --updates | grep -c '^')
|
||||||
|
else
|
||||||
|
flatpak_updates=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Calculate total available updates
|
||||||
|
total_updates=$((official_updates + aur_updates + flatpak_updates))
|
||||||
|
|
||||||
|
# Handle formatting based on AUR helper
|
||||||
|
if [ "$aur_helper" == "yay" ]; then
|
||||||
|
[ "${1}" == upgrade ] && printf "Official: %-10s\nAUR ($aur_helper): %-10s\nFlatpak: %-10s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates" && exit
|
||||||
|
|
||||||
|
tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates"
|
||||||
|
|
||||||
|
elif [ "$aur_helper" == "paru" ]; then
|
||||||
|
[ "${1}" == upgrade ] && printf "Official: %-10s\nAUR ($aur_helper): %-10s\nFlatpak: %-10s\n\n" "$official_updates" "$aur_updates" "$flatpak_updates" && exit
|
||||||
|
|
||||||
|
tooltip="Official: $official_updates\nAUR ($aur_helper): $aur_updates\nFlatpak: $flatpak_updates"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Module and tooltip
|
||||||
|
if [ $total_updates -eq 0 ]; then
|
||||||
|
echo "{\"text\":\"\", \"tooltip\":\"Packages are up to date\"}"
|
||||||
|
else
|
||||||
|
echo "{\"text\":\"\", \"tooltip\":\"${tooltip//\"/\\\"}\"}"
|
||||||
|
fi
|
123
.config/waybar/scripts/volume-control.sh
Executable file
123
.config/waybar/scripts/volume-control.sh
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Define functions
|
||||||
|
print_error() {
|
||||||
|
cat <<"EOF"
|
||||||
|
Usage: ./volumecontrol.sh -[device] <actions>
|
||||||
|
...valid devices are...
|
||||||
|
i -- input device
|
||||||
|
o -- output device
|
||||||
|
p -- player application
|
||||||
|
...valid actions are...
|
||||||
|
i -- increase volume [+2]
|
||||||
|
d -- decrease volume [-2]
|
||||||
|
m -- mute [x]
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
icon() {
|
||||||
|
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||||
|
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
|
||||||
|
|
||||||
|
if [ "$mute" = "yes" ] || [ "$vol" -eq 0 ]; then
|
||||||
|
icon="volume-level-muted"
|
||||||
|
elif [ "$vol" -lt 33 ]; then
|
||||||
|
icon="volume-level-low"
|
||||||
|
elif [ "$vol" -lt 66 ]; then
|
||||||
|
icon="volume-level-medium"
|
||||||
|
else
|
||||||
|
icon="volume-level-high"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
send_notification() {
|
||||||
|
icon
|
||||||
|
notify-send -a "state" -r 91190 -i "$icon" -h int:value:"$vol" "Volume: ${vol}%" -u low
|
||||||
|
}
|
||||||
|
|
||||||
|
notify_mute() {
|
||||||
|
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
|
||||||
|
if [ "$mute" = "yes" ]; then
|
||||||
|
notify-send -a "state" -r 91190 -i "volume-level-muted" "Volume: Muted" -u low
|
||||||
|
else
|
||||||
|
icon
|
||||||
|
notify-send -a "state" -r 91190 -i "$icon" "Volume: Unmuted" -u low
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
action_volume() {
|
||||||
|
case "${1}" in
|
||||||
|
i)
|
||||||
|
# Increase volume if below 100
|
||||||
|
current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||||
|
if [ "$current_vol" -lt 100 ]; then
|
||||||
|
new_vol=$((current_vol + 2))
|
||||||
|
[ "$new_vol" -gt 100 ] && new_vol=100
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
# Decrease volume if above 0
|
||||||
|
current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||||
|
new_vol=$((current_vol - 2))
|
||||||
|
[ "$new_vol" -lt 0 ] && new_vol=0
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
select_output() {
|
||||||
|
if [ "$@" ]; then
|
||||||
|
desc="$*"
|
||||||
|
device=$(pactl list sinks | grep -C2 -F "Description: $desc" | grep Name | cut -d: -f2 | xargs)
|
||||||
|
if pactl set-default-sink "$device"; then
|
||||||
|
notify-send -r 91190 "Activated: $desc"
|
||||||
|
else
|
||||||
|
notify-send -r 91190 "Error activating $desc"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
pactl list sinks | grep -ie "Description:" | awk -F ': ' '{print $2}' | sort
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Evaluate device option
|
||||||
|
while getopts iops: DeviceOpt; do
|
||||||
|
case "${DeviceOpt}" in
|
||||||
|
i)
|
||||||
|
nsink=$(pactl list sources short | awk '{print $2}')
|
||||||
|
[ -z "${nsink}" ] && echo "ERROR: Input device not found..." && exit 0
|
||||||
|
srce="--default-source"
|
||||||
|
;;
|
||||||
|
o)
|
||||||
|
nsink=$(pactl list sinks short | awk '{print $2}')
|
||||||
|
[ -z "${nsink}" ] && echo "ERROR: Output device not found..." && exit 0
|
||||||
|
srce=""
|
||||||
|
;;
|
||||||
|
p)
|
||||||
|
nsink=$(playerctl --list-all | grep -w "${OPTARG}")
|
||||||
|
[ -z "${nsink}" ] && echo "ERROR: Player ${OPTARG} not active..." && exit 0
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
srce="${nsink}"
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
# Select an output device
|
||||||
|
select_output "$@"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*) print_error ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Set default variables
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
# Execute action
|
||||||
|
case "${1}" in
|
||||||
|
i) action_volume i ;;
|
||||||
|
d) action_volume d ;;
|
||||||
|
m) pactl set-sink-mute @DEFAULT_SINK@ toggle && notify_mute && exit 0 ;;
|
||||||
|
*) print_error ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
send_notification
|
126
.config/waybar/scripts/wifi-menu.sh
Executable file
126
.config/waybar/scripts/wifi-menu.sh
Executable file
@ -0,0 +1,126 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Author: Jesse Mirabel (@sejjy)
|
||||||
|
# GitHub: https://github.com/sejjy/mechabar
|
||||||
|
|
||||||
|
# Rofi config
|
||||||
|
config="$HOME/.config/rofi/wifi-menu.rasi"
|
||||||
|
|
||||||
|
options=$(
|
||||||
|
echo " Manual Entry"
|
||||||
|
echo " Disable Wi-Fi"
|
||||||
|
)
|
||||||
|
option_disabled=" Enable Wi-Fi"
|
||||||
|
|
||||||
|
# Rofi window override
|
||||||
|
override_ssid="entry { placeholder: \"Enter SSID\"; } listview { lines: 0; padding: 20px 6px; }"
|
||||||
|
override_password="entry { placeholder: \"Enter password\"; } listview { lines: 0; padding: 20px 6px; }"
|
||||||
|
override_disabled="mainbox { children: [ textbox-custom, listview ]; } listview { lines: 1; padding: 6px 6px 8px; }"
|
||||||
|
|
||||||
|
# Prompt for password
|
||||||
|
get_password() {
|
||||||
|
rofi -dmenu -password -config "${config}" -theme-str "${override_password}" -p " " || pkill -x rofi
|
||||||
|
}
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
wifi_list() {
|
||||||
|
nmcli --fields "SECURITY,SSID" device wifi list |
|
||||||
|
tail -n +2 | # Skip the header line from nmcli output
|
||||||
|
sed 's/ */ /g' | # Replace multiple spaces with a single space
|
||||||
|
sed -E "s/WPA*.?\S/ /g" | # Replace 'WPA*' with a Wi-Fi lock icon
|
||||||
|
sed "s/^--/ /g" | # Replace '--' (open networks) with an open Wi-Fi icon
|
||||||
|
sed "s/ //g" | # Remove duplicate Wi-Fi lock icons
|
||||||
|
sed "/--/d" | # Remove lines containing '--' (empty SSIDs)
|
||||||
|
awk '!seen[$0]++' # Filter out duplicate SSIDs
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get Wi-Fi status
|
||||||
|
wifi_status=$(nmcli -fields WIFI g)
|
||||||
|
|
||||||
|
case "$wifi_status" in
|
||||||
|
*"enabled"*)
|
||||||
|
selected_option=$(echo "$options"$'\n'"$(wifi_list)" |
|
||||||
|
rofi -dmenu -i -selected-row 1 -config "${config}" -p " " || pkill -x rofi)
|
||||||
|
;;
|
||||||
|
*"disabled"*)
|
||||||
|
selected_option=$(echo "$option_disabled" |
|
||||||
|
rofi -dmenu -i -config "${config}" -theme-str "${override_disabled}" || pkill -x rofi)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Extract selected SSID
|
||||||
|
read -r selected_ssid <<<"${selected_option:3}"
|
||||||
|
|
||||||
|
# Actions based on selected option
|
||||||
|
case "$selected_option" in
|
||||||
|
"")
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*"Enable Wi-Fi")
|
||||||
|
notify-send "Scanning for networks..." -i "package-installed-outdated"
|
||||||
|
nmcli radio wifi on
|
||||||
|
nmcli device wifi rescan
|
||||||
|
sleep 3
|
||||||
|
;;
|
||||||
|
*"Disable Wi-Fi")
|
||||||
|
notify-send "Wi-Fi Disabled" -i "package-broken"
|
||||||
|
nmcli radio wifi off
|
||||||
|
exit
|
||||||
|
;;
|
||||||
|
*"Manual Entry")
|
||||||
|
# Prompt for SSID
|
||||||
|
manual_ssid=$(rofi -dmenu -config "${config}" -theme-str "${override_ssid}" -p " " || pkill -x rofi)
|
||||||
|
|
||||||
|
# Exit if no option is selected
|
||||||
|
if [ -z "$manual_ssid" ]; then
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Prompt for Wi-Fi password
|
||||||
|
wifi_password=$(get_password)
|
||||||
|
|
||||||
|
if [ -z "$wifi_password" ]; then
|
||||||
|
# Without password
|
||||||
|
if nmcli device wifi connect "$manual_ssid" | grep -q "successfully"; then
|
||||||
|
notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# With password
|
||||||
|
if nmcli device wifi connect "$manual_ssid" password "$wifi_password" | grep -q "successfully"; then
|
||||||
|
notify-send "Connected to \"$manual_ssid\"." -i "package-installed-outdated"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Failed to connect to \"$manual_ssid\"." -i "package-broken"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Get saved connections
|
||||||
|
saved_connections=$(nmcli -g NAME connection)
|
||||||
|
|
||||||
|
if echo "$saved_connections" | grep -qw "$selected_ssid"; then
|
||||||
|
if nmcli connection up id "$selected_ssid" | grep -q "successfully"; then
|
||||||
|
notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Handle secure network connection
|
||||||
|
if [[ "$selected_option" =~ ^"" ]]; then
|
||||||
|
wifi_password=$(get_password)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if nmcli device wifi connect "$selected_ssid" password "$wifi_password" | grep -q "successfully"; then
|
||||||
|
notify-send "Connected to \"$selected_ssid\"." -i "package-installed-outdated"
|
||||||
|
exit
|
||||||
|
else
|
||||||
|
notify-send "Failed to connect to \"$selected_ssid\"." -i "package-broken"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
176
.config/waybar/scripts/wifi-status.sh
Executable file
176
.config/waybar/scripts/wifi-status.sh
Executable file
@ -0,0 +1,176 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# This script gathers detailed Wi-Fi connection information.
|
||||||
|
# It collects the following fields:
|
||||||
|
#
|
||||||
|
# - SSID (Service Set Identifier): The name of the Wi-Fi network you
|
||||||
|
# are currently connected to. Example: "My_Network"
|
||||||
|
#
|
||||||
|
# - IP Address: The IP address assigned to the device by the router.
|
||||||
|
# This is typically a private IP within the local network. Example:
|
||||||
|
# "192.168.1.29/24" (with subnet mask)
|
||||||
|
#
|
||||||
|
# - Router (Gateway): The IP address of the router (default gateway)
|
||||||
|
# that your device uses to communicate outside the local network.
|
||||||
|
# Example: "192.168.1.1"
|
||||||
|
#
|
||||||
|
# - MAC Address: The unique Media Access Control address of the local
|
||||||
|
# device's Wi-Fi adapter. Example: "F8:34:41:07:1B:65"
|
||||||
|
#
|
||||||
|
# - Security: The encryption protocol being used to secure your Wi-Fi
|
||||||
|
# connection. Common security protocols include:
|
||||||
|
# - WPA2 (Wi-Fi Protected Access 2): The most commonly used security
|
||||||
|
# standard, offering strong encryption (AES).
|
||||||
|
# - WPA3: The latest version, providing even stronger security,
|
||||||
|
# especially in public or open networks.
|
||||||
|
# - WEP (Wired Equivalent Privacy): An outdated and insecure protocol
|
||||||
|
# that should not be used.
|
||||||
|
# Example: "WPA2" indicates that the connection is secured using WPA2
|
||||||
|
# with AES encryption.
|
||||||
|
#
|
||||||
|
# - BSSID (Basic Service Set Identifier): The MAC address of the Wi-Fi
|
||||||
|
# access point you are connected to. Example: "A4:22:49:DA:91:A0"
|
||||||
|
#
|
||||||
|
# - Channel: The wireless channel your Wi-Fi network is using. This is
|
||||||
|
# associated with the frequency band. Example: "100 (5500 MHz)"
|
||||||
|
# indicates the channel number (100) and the frequency (5500 MHz),
|
||||||
|
# which is within the 5 GHz band.
|
||||||
|
#
|
||||||
|
# - RSSI (Received Signal Strength Indicator): The strength of the
|
||||||
|
# Wi-Fi signal, typically in dBm (decibels relative to 1 milliwatt).
|
||||||
|
# Closer to 0 means stronger signal, with values like -40 dBm being
|
||||||
|
# very good. Example: "-40 dBm"
|
||||||
|
#
|
||||||
|
# - Signal: The signal quality, which is represented as a percentage,
|
||||||
|
# where higher numbers mean better signal. Example: "100"
|
||||||
|
# indicates perfect signal strength.
|
||||||
|
#
|
||||||
|
# - Rx Rate (Receive Rate): The maximum data rate (in Mbit/s) at which
|
||||||
|
# the device can receive data from the Wi-Fi access point. Example:
|
||||||
|
# "866.7 MBit/s" indicates a high-speed connection on a modern
|
||||||
|
# standard.
|
||||||
|
#
|
||||||
|
# - Tx Rate (Transmit Rate): The maximum data rate (in Mbit/s) at
|
||||||
|
# which the device can send data to the Wi-Fi access point. Example:
|
||||||
|
# "866.7 MBit/s"
|
||||||
|
#
|
||||||
|
# - PHY Mode (Physical Layer Mode): The Wi-Fi protocol or standard in
|
||||||
|
# use. Common modes include 802.11n, 802.11ac, and 802.11ax (Wi-Fi
|
||||||
|
# 6). Example: "802.11ac" indicates you're using the 5 GHz band with
|
||||||
|
# a modern high-speed standard.
|
||||||
|
|
||||||
|
if ! command -v nmcli &>/dev/null; then
|
||||||
|
echo "{\"text\": \"\", \"tooltip\": \"nmcli utility is missing\"}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if Wi-Fi is enabled
|
||||||
|
wifi_status=$(nmcli radio wifi)
|
||||||
|
|
||||||
|
if [ "$wifi_status" = "disabled" ]; then
|
||||||
|
echo "{\"text\": \"\", \"tooltip\": \"Wi-Fi Disabled\"}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
wifi_info=$(nmcli -t -f active,ssid,signal,security dev wifi | grep "^yes")
|
||||||
|
|
||||||
|
# If no ESSID is found, set a default value
|
||||||
|
if [ -z "$wifi_info" ]; then
|
||||||
|
essid="No Connection"
|
||||||
|
signal=0
|
||||||
|
tooltip="No Connection"
|
||||||
|
else
|
||||||
|
# Some defaults
|
||||||
|
ip_address="127.0.0.1"
|
||||||
|
# gateway="127.0.0.1"
|
||||||
|
# mac_address="N/A"
|
||||||
|
security=$(echo "$wifi_info" | awk -F: '{print $4}')
|
||||||
|
# bssid="N/A"
|
||||||
|
chan="N/A"
|
||||||
|
# rssi="N/A"
|
||||||
|
# rx_bitrate=""
|
||||||
|
# tx_bitrate=""
|
||||||
|
# phy_mode=""
|
||||||
|
signal=$(echo "$wifi_info" | awk -F: '{print $3}')
|
||||||
|
|
||||||
|
active_device=$(nmcli -t -f DEVICE,STATE device status |
|
||||||
|
grep -w "connected" |
|
||||||
|
grep -v -E "^(dummy|lo:|virbr0)" |
|
||||||
|
awk -F: '{print $1}')
|
||||||
|
|
||||||
|
if [ -n "$active_device" ]; then
|
||||||
|
output=$(nmcli -e no -g ip4.address,ip4.gateway,general.hwaddr device show "$active_device")
|
||||||
|
|
||||||
|
ip_address=$(echo "$output" | sed -n '1p')
|
||||||
|
# gateway=$(echo "$output" | sed -n '2p')
|
||||||
|
# mac_address=$(echo "$output" | sed -n '3p')
|
||||||
|
|
||||||
|
line=$(nmcli -e no -t -f active,bssid,chan,freq device wifi | grep "^yes")
|
||||||
|
|
||||||
|
# bssid=$(echo "$line" | awk -F':' '{print $2":"$3":"$4":"$5":"$6":"$7}')
|
||||||
|
chan=$(echo "$line" | awk -F':' '{print $8}')
|
||||||
|
freq=$(echo "$line" | awk -F':' '{print $9}')
|
||||||
|
chan="$chan ($freq)"
|
||||||
|
|
||||||
|
# if command -v iw &>/dev/null; then
|
||||||
|
# iw_output=$(iw dev "$active_device" station dump)
|
||||||
|
# rssi=$(echo "$iw_output" | grep "signal:" | awk '{print $2 " dBm"}')
|
||||||
|
|
||||||
|
# Upload speed
|
||||||
|
# rx_bitrate=$(echo "$iw_output" | grep "rx bitrate:" | awk '{print $3 " " $4}')
|
||||||
|
|
||||||
|
# Download speed
|
||||||
|
# tx_bitrate=$(echo "$iw_output" | grep "tx bitrate:" | awk '{print $3 " " $4}')
|
||||||
|
|
||||||
|
# Physical Layer Mode
|
||||||
|
# if echo "$iw_output" | grep -E -q "rx bitrate:.* VHT"; then
|
||||||
|
# phy_mode="802.11ac" # Wi-Fi 5
|
||||||
|
# elif echo "$iw_output" | grep -E -q "rx bitrate:.* HT"; then
|
||||||
|
# phy_mode="802.11n" # Wi-Fi 4
|
||||||
|
# elif echo "$iw_output" | grep -E -q "rx bitrate:.* HE"; then
|
||||||
|
# phy_mode="802.11ax" # Wi-Fi 6
|
||||||
|
# fi
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Get the current Wi-Fi ESSID
|
||||||
|
essid=$(echo "$wifi_info" | awk -F: '{print $2}')
|
||||||
|
|
||||||
|
tooltip=":: ${essid}"
|
||||||
|
tooltip+="\nIP Address: ${ip_address}"
|
||||||
|
# tooltip+="\nRouter: ${gateway}"
|
||||||
|
# tooltip+="\nMAC Address: ${mac_address}"
|
||||||
|
tooltip+="\nSecurity: ${security}"
|
||||||
|
# tooltip+="\nBSSID: ${bssid}"
|
||||||
|
tooltip+="\nChannel: ${chan}"
|
||||||
|
# tooltip+="\nRSSI: ${rssi}"
|
||||||
|
tooltip+="\nStrength: ${signal} / 100"
|
||||||
|
|
||||||
|
# if [ -n "$rx_bitrate" ]; then
|
||||||
|
# tooltip+="\nRx Rate: ${rx_bitrate}"
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# if [ -n "$tx_bitrate" ]; then
|
||||||
|
# tooltip+="\nTx Rate: ${tx_bitrate}"
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# if [ -n "$phy_mode" ]; then
|
||||||
|
# tooltip+="\nPHY Mode: ${phy_mode}"
|
||||||
|
# fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine Wi-Fi icon based on signal strength
|
||||||
|
if [ "$signal" -ge 80 ]; then
|
||||||
|
icon="" # Strong signal
|
||||||
|
elif [ "$signal" -ge 60 ]; then
|
||||||
|
icon="" # Good signal
|
||||||
|
elif [ "$signal" -ge 40 ]; then
|
||||||
|
icon="" # Weak signal
|
||||||
|
elif [ "$signal" -ge 20 ]; then
|
||||||
|
icon="" # Very weak signal
|
||||||
|
else
|
||||||
|
icon="" # No signal
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Module and tooltip
|
||||||
|
echo "{\"text\": \"${icon}\", \"tooltip\": \"${tooltip}\"}"
|
418
.config/waybar/style-background.css
Normal file
418
.config/waybar/style-background.css
Normal file
@ -0,0 +1,418 @@
|
|||||||
|
/* =============================================================================
|
||||||
|
*
|
||||||
|
* Waybar configuration
|
||||||
|
*
|
||||||
|
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
|
||||||
|
*
|
||||||
|
* =========================================================================== */
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Keyframes
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
@import "machiatto.css";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Polar Night
|
||||||
|
nord0 #2e3440
|
||||||
|
nord1 #3b4252
|
||||||
|
nord2 #434c5e
|
||||||
|
nord3 #4c566a
|
||||||
|
Snow Storm
|
||||||
|
nord4 #d8dee9
|
||||||
|
nord5 #e5e9f0
|
||||||
|
nord6 #eceff4
|
||||||
|
Frost
|
||||||
|
nord7 #8fbcbb
|
||||||
|
nord8 #88c0d0
|
||||||
|
nord9 #81a1c1
|
||||||
|
nord10 #5e81ac
|
||||||
|
Aurora
|
||||||
|
nord11 #bf616a
|
||||||
|
nord12 #d08770
|
||||||
|
nord13 #ebcb8b
|
||||||
|
nord14 #a3be8c
|
||||||
|
nord15 #b48ead
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Base styles
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* Reset all styles */
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: @lavender;
|
||||||
|
border: 0;
|
||||||
|
padding: 0 0;
|
||||||
|
font-family: UbuntuMono;
|
||||||
|
/* font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; */
|
||||||
|
/* font-family: "Hack Nerd Font"; */
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
/* padding-bottom:4px;
|
||||||
|
padding-top: 4px; */
|
||||||
|
transition: all 0.5s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
border-bottom: 4px solid shade(@base, 1.1);
|
||||||
|
/* border-radius: 10px; */
|
||||||
|
/* background:#2d2a2e; */
|
||||||
|
/* background-color: rgba(36, 39, 58, 0.85); */
|
||||||
|
/* background-color: rgba(0, 0, 0, 0); */
|
||||||
|
background-color: shade(#1e1e2e, 0.95);
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: @base;
|
||||||
|
border-radius: 50%;
|
||||||
|
/* background-color: @base; */
|
||||||
|
margin: 0px 0px;
|
||||||
|
padding: 2 6 2 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover * {
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
color: @mauve;
|
||||||
|
box-shadow: none;
|
||||||
|
/* Remove predefined box-shadow */
|
||||||
|
text-shadow: none;
|
||||||
|
/* Remove predefined text-shadow */
|
||||||
|
border: 0px;
|
||||||
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces * {
|
||||||
|
color: whitesmoke;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
border-style: solid;
|
||||||
|
background-color: @base;
|
||||||
|
opacity: 1;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 8px 0px 8px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: @mauve;
|
||||||
|
border-radius: 20px;
|
||||||
|
/* background-color: @flamingo; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused * {
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
color: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock,
|
||||||
|
#custom-swap,
|
||||||
|
#custom-background,
|
||||||
|
#custom-cava-internal,
|
||||||
|
#battery,
|
||||||
|
#cpu,
|
||||||
|
#memory,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#temperature,
|
||||||
|
#custom-keyboard-layout,
|
||||||
|
#backlight,
|
||||||
|
#network,
|
||||||
|
#pulseaudio,
|
||||||
|
#mode,
|
||||||
|
#tray,
|
||||||
|
#custom-power,
|
||||||
|
#custom-pacman,
|
||||||
|
#mpd {
|
||||||
|
padding: 5px 8px;
|
||||||
|
border-style: solid;
|
||||||
|
background-color: shade(@base, 1.1);
|
||||||
|
opacity: 1;
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Module styles
|
||||||
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @mauve;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-cava-internal {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @mauve;
|
||||||
|
margin-left: 5px;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.2 {
|
||||||
|
border-radius: 10px 0px 0px 10px;
|
||||||
|
margin: 8px 0px 8px 6px;
|
||||||
|
padding: 4px 12px 4px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.3 {
|
||||||
|
border-radius: 0px 0px 0px 0px;
|
||||||
|
margin: 8px 0px 8px 0px;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.4 {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
margin: 8px 0px 8px 0px;
|
||||||
|
padding: 4px 10px 4px 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpd.2,
|
||||||
|
#mpd.3,
|
||||||
|
#mpd.4 {
|
||||||
|
background-color: @base;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-swap {
|
||||||
|
border-radius: 10px;
|
||||||
|
color: @base;
|
||||||
|
margin-left: 10px;
|
||||||
|
background-color: @mauve;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-background {
|
||||||
|
border-radius: 0px 10px 10px 0px;
|
||||||
|
background-color: @base;
|
||||||
|
color: white;
|
||||||
|
padding: 5px 14px 5px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
/* background-color:#a3be8c; */
|
||||||
|
color: @sky;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 8px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
color: @yellow;
|
||||||
|
/* border-bottom: 2px solid @yellow; */
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #d8dee9;
|
||||||
|
/* border-bottom: 2px solid #d8dee9; */
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #81a1c1;
|
||||||
|
/* border-bottom: 2px solid #81a1c1; */
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes blink {
|
||||||
|
to {
|
||||||
|
color: @red;
|
||||||
|
/* border-bottom: 2px solid @red; */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
animation-name: blink;
|
||||||
|
animation-duration: 0.5s;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-direction: alternate;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: @sky;
|
||||||
|
/* border-bottom: 2px solid @sky; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu #cpu-icon {
|
||||||
|
color: @sky;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: @sky;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disabled {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: @green;
|
||||||
|
/* border-bottom: 2px solid @green; */
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
color: #bf616a;
|
||||||
|
/* border-bottom: 2px solid #bf616a; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: @flamingo;
|
||||||
|
/* border-bottom: 2px solid @flamingo; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #3b4252;
|
||||||
|
/* border-bottom: 2px solid #3b4252; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: @teal;
|
||||||
|
/* border-bottom: 2px solid @teal; */
|
||||||
|
border-radius: 10px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
color: @red;
|
||||||
|
/* border-bottom: 2px solid @red; */
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background-color: #ebcb8b;
|
||||||
|
color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
/* background-color: @base; */
|
||||||
|
margin: 8px 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-launcher,
|
||||||
|
#custom-power {}
|
||||||
|
|
||||||
|
#custom-launcher {
|
||||||
|
background-color: shade(@base, 1.1);
|
||||||
|
color: @mauve;
|
||||||
|
border-radius: 0px 15px 0px 0px;
|
||||||
|
padding: 5px 10px 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @base;
|
||||||
|
background-color: @red;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-right: 15px;
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
border-style: hidden;
|
||||||
|
margin-left: 10px;
|
||||||
|
/* margin-top:1px;
|
||||||
|
padding: 8px 1rem; */
|
||||||
|
margin-right: 10px;
|
||||||
|
color: #eceff4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-keyboard-layout {
|
||||||
|
color: @peach;
|
||||||
|
/* border-bottom: 2px solid @peach; */
|
||||||
|
border-radius: 0 10px 10px 0;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* window#waybar {
|
||||||
|
background: #2d2a2e;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: #c8b9a9;
|
||||||
|
font-family: Ubuntu Mono, sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.focused {
|
||||||
|
color: #f2e5bc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: #c8b9a9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separator {
|
||||||
|
background-color: #c8b9a9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mode {
|
||||||
|
color: #ebcb8b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
color: #a3be8c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: #d8dee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: #b48ead;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical:not(.charging) {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
color: #a3be8c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
color: #d3869b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
color: #8fbcbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disabled {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network.disconnected {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
color: #b48ead;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio.muted {
|
||||||
|
color: #bf616a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
color: #8fbcbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature.critical {
|
||||||
|
color: #bf616a;
|
||||||
|
} */
|
466
.config/waybar/style.css
Normal file
466
.config/waybar/style.css
Normal file
@ -0,0 +1,466 @@
|
|||||||
|
@import "theme.css";
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────────┤ global ├───
|
||||||
|
*/
|
||||||
|
* {
|
||||||
|
min-height: 0;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────┤ drop shadow ├───
|
||||||
|
*/
|
||||||
|
window#waybar {
|
||||||
|
background: @shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ background ├───
|
||||||
|
*/
|
||||||
|
window#waybar > box {
|
||||||
|
background: @main-bg;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────────────────┤ tooltips ├───
|
||||||
|
*/
|
||||||
|
tooltip {
|
||||||
|
background: @main-bg;
|
||||||
|
border: 1.5px solid @main-br;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: @main-fg;
|
||||||
|
margin: -1.5px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────────┤ general ├───
|
||||||
|
*/
|
||||||
|
#custom-ws,
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#custom-temperature,
|
||||||
|
#memory,
|
||||||
|
#cpu,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#clock,
|
||||||
|
#custom-wifi,
|
||||||
|
#bluetooth,
|
||||||
|
#custom-update,
|
||||||
|
#mpris,
|
||||||
|
#pulseaudio,
|
||||||
|
#backlight,
|
||||||
|
#battery,
|
||||||
|
#custom-power {
|
||||||
|
opacity: 1;
|
||||||
|
color: @module-fg;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-left1,
|
||||||
|
#custom-left2,
|
||||||
|
#custom-left3,
|
||||||
|
#custom-left4,
|
||||||
|
#custom-left5,
|
||||||
|
#custom-left6,
|
||||||
|
#custom-left7,
|
||||||
|
#custom-left8 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-shadow: -2px 0 2px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right1,
|
||||||
|
#custom-right2,
|
||||||
|
#custom-right3,
|
||||||
|
#custom-right4,
|
||||||
|
#custom-right5 {
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-right: 3px;
|
||||||
|
text-shadow: 2px 0 2px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────┤ window icon ├───
|
||||||
|
*/
|
||||||
|
#custom-ws {
|
||||||
|
background: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-ws:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ workspaces ├───
|
||||||
|
*/
|
||||||
|
#custom-left1 {
|
||||||
|
color: @workspaces;
|
||||||
|
background: @main-bg;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
background: @workspaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
color: @module-fg;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: none;
|
||||||
|
margin: 2px 0;
|
||||||
|
padding: 0 2px;
|
||||||
|
transition: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
background: @hover-bg;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
color: @active-fg;
|
||||||
|
background: @active-bg;
|
||||||
|
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
|
||||||
|
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.4);
|
||||||
|
margin: 2px;
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right1 {
|
||||||
|
color: @workspaces;
|
||||||
|
background: @main-bg;
|
||||||
|
text-shadow: 3px 0 2px rgba(0, 0, 0, 0.4);
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────┤ temperature ├───
|
||||||
|
*/
|
||||||
|
#custom-paddc {
|
||||||
|
padding-right: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-left2 {
|
||||||
|
color: @temperature;
|
||||||
|
background: @main-bg;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-temperature {
|
||||||
|
background: @temperature;
|
||||||
|
padding: 0 0 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────────┤ memory ├───
|
||||||
|
*/
|
||||||
|
#custom-left3 {
|
||||||
|
color: @memory;
|
||||||
|
background: @temperature;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
background: @memory;
|
||||||
|
padding: 0 0 0 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory.warning {
|
||||||
|
color: @warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory.critical {
|
||||||
|
color: @critical;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────────────┤ cpu ├───
|
||||||
|
*/
|
||||||
|
#custom-left4 {
|
||||||
|
color: @cpu;
|
||||||
|
background: @memory;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#cpu {
|
||||||
|
background: @cpu;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-leftin1 {
|
||||||
|
color: @cpu;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────┤ distro icon ├───
|
||||||
|
*/
|
||||||
|
#custom-left5 {
|
||||||
|
color: @distro-bg;
|
||||||
|
background: @main-bg;
|
||||||
|
text-shadow: none;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-distro {
|
||||||
|
color: @distro-fg;
|
||||||
|
background: @distro-bg;
|
||||||
|
margin: 0 -1px -2px 0;
|
||||||
|
padding: 0 0 0 3px;
|
||||||
|
text-shadow: 0 0 1.5px rgba(0, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right2 {
|
||||||
|
color: @distro-bg;
|
||||||
|
background: @main-bg;
|
||||||
|
text-shadow: none;
|
||||||
|
margin-bottom: -2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────────────────────┤ time ├───
|
||||||
|
*/
|
||||||
|
#custom-rightin1 {
|
||||||
|
color: @time;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor {
|
||||||
|
background: @time;
|
||||||
|
padding: 0 0 0 7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#idle_inhibitor:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock.time {
|
||||||
|
background: @time;
|
||||||
|
margin-left: -2px;
|
||||||
|
padding: 0 3px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right3 {
|
||||||
|
color: @time;
|
||||||
|
background: @date;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────────────────────┤ date ├───
|
||||||
|
*/
|
||||||
|
#clock.date {
|
||||||
|
background: @date;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock.date:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right4 {
|
||||||
|
color: @date;
|
||||||
|
background: @tray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ────────────────────────────────────────────────────────────────┤ wi-fi ├───
|
||||||
|
*/
|
||||||
|
#custom-wifi {
|
||||||
|
background: @tray;
|
||||||
|
padding: 0 8px 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-wifi:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ────────────────────────────────────────────────────────────┤ bluetooth ├───
|
||||||
|
*/
|
||||||
|
#bluetooth {
|
||||||
|
background: @tray;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ────────────────────────────────────────────────────────┤ system update ├───
|
||||||
|
*/
|
||||||
|
#custom-update {
|
||||||
|
padding-right: 8px;
|
||||||
|
background: @tray;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-update:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-right5 {
|
||||||
|
color: @tray;
|
||||||
|
background: @main-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ media info ├───
|
||||||
|
*/
|
||||||
|
#mpris {
|
||||||
|
background: @main-bg;
|
||||||
|
padding: 0 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpris:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ────────────────────────────────────────────────────────┤ output device ├───
|
||||||
|
*/
|
||||||
|
#custom-left6 {
|
||||||
|
color: @pulseaudio;
|
||||||
|
background: @main-bg;
|
||||||
|
padding-left: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
background: @pulseaudio;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ brightness ├───
|
||||||
|
*/
|
||||||
|
#custom-left7 {
|
||||||
|
color: @backlight;
|
||||||
|
background: @pulseaudio;
|
||||||
|
padding-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
background: @backlight;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────────┤ battery ├───
|
||||||
|
*/
|
||||||
|
#custom-left8 {
|
||||||
|
color: @battery;
|
||||||
|
background: @backlight;
|
||||||
|
padding-left: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
color: @module-fg;
|
||||||
|
background: @battery;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.warning {
|
||||||
|
color: @warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.critical {
|
||||||
|
color: @critical;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery.charging {
|
||||||
|
color: @charging;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────────────┤ power button ├───
|
||||||
|
*/
|
||||||
|
#custom-leftin2 {
|
||||||
|
color: @battery;
|
||||||
|
background: @main-bg;
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
color: @main-bg;
|
||||||
|
background: @power;
|
||||||
|
text-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
|
||||||
|
box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.6);
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 2px 4px 2px 0;
|
||||||
|
padding: 0 6px 0 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
background: @hover-bg;
|
||||||
|
text-shadow: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ font sizes ├───
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
NOTE: Be careful when changing font sizes, as they can affect alignment.
|
||||||
|
|
||||||
|
Try adjusting whole numbers first, then refine with decimals.
|
||||||
|
|
||||||
|
If you increase or decrease a value, make the same change to all properties
|
||||||
|
in this section to keep the layout consistent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
font-size: 13px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label,
|
||||||
|
#window label,
|
||||||
|
#mpris {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────┤ left & right arrows ├───
|
||||||
|
*/
|
||||||
|
#custom-left1,
|
||||||
|
#custom-left2,
|
||||||
|
#custom-left3,
|
||||||
|
#custom-left4,
|
||||||
|
#custom-left5,
|
||||||
|
#custom-left6,
|
||||||
|
#custom-left7,
|
||||||
|
#custom-left8,
|
||||||
|
#custom-right1,
|
||||||
|
#custom-right2,
|
||||||
|
#custom-right3,
|
||||||
|
#custom-right4,
|
||||||
|
#custom-right5 {
|
||||||
|
font-size: 16.68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────┤ left & right inverse ├───
|
||||||
|
*/
|
||||||
|
#custom-leftin1,
|
||||||
|
#custom-leftin2,
|
||||||
|
#custom-rightin1 {
|
||||||
|
font-size: 18.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ──────────────────────────────────────────────────────────┤ distro icon ├───
|
||||||
|
*/
|
||||||
|
#custom-distro {
|
||||||
|
font-size: 17.6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-left5,
|
||||||
|
#custom-right2 {
|
||||||
|
font-size: 18.68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Adjust these properties as well to keep the design consistent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ───────────────────────────────────────────────────────────┤ workspaces ├───
|
||||||
|
*/
|
||||||
|
#workspaces button {
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ─────────────────────────────────────────────────────────┤ power button ├───
|
||||||
|
*/
|
||||||
|
#custom-power {
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0 6px 0 9px;
|
||||||
|
}
|
75
.config/waybar/theme.css
Normal file
75
.config/waybar/theme.css
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
/* Gruvbox Dark */
|
||||||
|
|
||||||
|
@define-color bg0_h #1d2021;
|
||||||
|
@define-color bg0 #282828;
|
||||||
|
@define-color bg1 #3c3836;
|
||||||
|
@define-color bg2 #504945;
|
||||||
|
@define-color bg3 #665c54;
|
||||||
|
@define-color bg4 #7c6f64;
|
||||||
|
@define-color gray #928374;
|
||||||
|
@define-color fg4 #a89984;
|
||||||
|
@define-color fg3 #bdae93;
|
||||||
|
@define-color fg2 #d5c4a1;
|
||||||
|
@define-color fg1 #ebdbb2;
|
||||||
|
@define-color fg0 #fbf1c7;
|
||||||
|
@define-color red #cc241d;
|
||||||
|
@define-color bright_red #fb4934;
|
||||||
|
@define-color green #98971a;
|
||||||
|
@define-color bright_green #b8bb26;
|
||||||
|
@define-color yellow #d79921;
|
||||||
|
@define-color bright_yellow #fabd2f;
|
||||||
|
@define-color blue #458588;
|
||||||
|
@define-color bright_blue #83a598;
|
||||||
|
@define-color purple #b16286;
|
||||||
|
@define-color bright_purple #d3869b;
|
||||||
|
@define-color aqua #689d6a;
|
||||||
|
@define-color bright_aqua #8ec07c;
|
||||||
|
@define-color orange #d65d0e;
|
||||||
|
@define-color bright_orange #fe8019;
|
||||||
|
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color black #000000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Main Colors */
|
||||||
|
|
||||||
|
@define-color shadow shade(@bg0_h, 0.5);
|
||||||
|
@define-color main-fg @fg0;
|
||||||
|
@define-color main-bg @bg0_h;
|
||||||
|
@define-color main-br @fg0;
|
||||||
|
|
||||||
|
@define-color active-bg @yellow;
|
||||||
|
@define-color active-fg @bg0_h;
|
||||||
|
|
||||||
|
@define-color hover-bg @bg2;
|
||||||
|
@define-color hover-fg alpha(@fg0, 0.75);
|
||||||
|
|
||||||
|
/* Module Colors */
|
||||||
|
|
||||||
|
@define-color module-fg @fg0;
|
||||||
|
@define-color workspaces @bg0;
|
||||||
|
|
||||||
|
@define-color temperature @bg0;
|
||||||
|
@define-color memory @bg1;
|
||||||
|
@define-color cpu @bg2;
|
||||||
|
@define-color distro-fg @blue;
|
||||||
|
@define-color distro-bg @yellow;
|
||||||
|
@define-color time @bg2;
|
||||||
|
@define-color date @bg1;
|
||||||
|
@define-color tray @bg0;
|
||||||
|
|
||||||
|
@define-color pulseaudio @bg0;
|
||||||
|
@define-color backlight @bg1;
|
||||||
|
@define-color battery @bg2;
|
||||||
|
@define-color power @yellow;
|
||||||
|
|
||||||
|
/* State Colors */
|
||||||
|
|
||||||
|
@define-color warning @bright_orange;
|
||||||
|
@define-color critical @bright_red;
|
||||||
|
@define-color charging @fg0;
|
@ -1,6 +1,7 @@
|
|||||||
allow_images=true
|
allow_images=true
|
||||||
gtk-dark=true
|
|
||||||
image_size=20
|
|
||||||
width=25%
|
|
||||||
hide-scroll=true
|
|
||||||
lines=7
|
lines=7
|
||||||
|
no_actions=true
|
||||||
|
hide_scroll=true
|
||||||
|
width=45%
|
||||||
|
height=45%
|
||||||
|
hide-scroll=true
|
||||||
|
3
.config/wofi/icons/lock.svg
Normal file
3
.config/wofi/icons/lock.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ecf2f8" class="size-6">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 369 B |
3
.config/wofi/icons/power.svg
Normal file
3
.config/wofi/icons/power.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ecf2f8" class="size-6">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M5.636 5.636a9 9 0 1 0 12.728 0M12 3v9" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 231 B |
3
.config/wofi/icons/reboot.svg
Normal file
3
.config/wofi/icons/reboot.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ecf2f8" class="size-6">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0 3.181 3.183a8.25 8.25 0 0 0 13.803-3.7M4.031 9.865a8.25 8.25 0 0 1 13.803-3.7l3.181 3.182m0-4.991v4.99" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 360 B |
3
.config/wofi/icons/suspend.svg
Normal file
3
.config/wofi/icons/suspend.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="#ecf2f8" class="size-6">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M14.25 9v6m-4.5 0V9M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 250 B |
34
.config/wofi/scripts/powermenu.sh
Normal file
34
.config/wofi/scripts/powermenu.sh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
WOFI_CONFIG_PATH=$HOME/.config/wofi
|
||||||
|
|
||||||
|
menu="img:$WOFI_CONFIG_PATH/icons/power.svg:text:Power Off\nimg:$WOFI_CONFIG_PATH/icons/reboot.svg:text:Reboot\nimg:$WOFI_CONFIG_PATH/icons/lock.svg:text:Lock Screen\nimg:$WOFI_CONFIG_PATH/icons/suspend.svg:text:Suspend"
|
||||||
|
|
||||||
|
get_menu() {
|
||||||
|
echo -e "$menu"
|
||||||
|
}
|
||||||
|
|
||||||
|
exec_commmand() {
|
||||||
|
cmd_str=$(echo "$1" | awk -F'text:' '{print $2}')
|
||||||
|
|
||||||
|
if [[ "$cmd_str" == "Power Off" ]]; then
|
||||||
|
systemctl poweroff
|
||||||
|
elif [[ "$cmd_str" == "Reboot" ]]; then
|
||||||
|
systemctl reboot
|
||||||
|
elif [[ "$cmd_str" == "Suspend" ]]; then
|
||||||
|
systemctl suspend
|
||||||
|
elif [[ "$cmd_str" == "Lock Screen" ]]; then
|
||||||
|
hyprlock
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Show menu and execute command
|
||||||
|
menu_selected=""
|
||||||
|
if [[ "$1" == "--list" ]]; then
|
||||||
|
menu_selected="$(get_menu | wofi -d)"
|
||||||
|
elif [[ "$1" == "--grid" ]]; then
|
||||||
|
menu_selected="$(get_menu | wofi -d --columns=2)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$menu_selected" != "" ]]; then
|
||||||
|
exec_commmand "$menu_selected"
|
||||||
|
fi
|
@ -1,39 +1,45 @@
|
|||||||
window {
|
#window {
|
||||||
margin: 25px;
|
background-color: transparent;
|
||||||
#border: 1px solid #bd93f9;
|
|
||||||
background-color: #282a36;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input {
|
|
||||||
margin: 15px;
|
|
||||||
border: none;
|
|
||||||
color: #f8f8f2;
|
|
||||||
background-color: #44475a;
|
|
||||||
}
|
|
||||||
|
|
||||||
#inner-box {
|
|
||||||
margin: 15px;
|
|
||||||
border: none;
|
|
||||||
background-color: #282a36;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#outer-box {
|
#outer-box {
|
||||||
margin: 5px;
|
border-radius: 14px;
|
||||||
border: none;
|
background-color: #0d1117;
|
||||||
background-color: #282a36;
|
}
|
||||||
|
|
||||||
|
#input {
|
||||||
|
padding: 4px;
|
||||||
|
border-radius: 14px 14px 0 0;
|
||||||
|
font-size: 16px;
|
||||||
|
background-color: #0d1117;
|
||||||
|
border: none;
|
||||||
|
color: #ecf2f8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input:focus {
|
||||||
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#scroll {
|
#scroll {
|
||||||
margin: 5px;
|
border-radius: 14px;
|
||||||
border: none;
|
background-color: #161b22;
|
||||||
|
margin: 0 12px 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#text {
|
#inner-box {
|
||||||
margin: 5px;
|
border-radius: 14px;
|
||||||
border: none;
|
padding: 12px;
|
||||||
color: #f8f8f2;
|
}
|
||||||
}
|
|
||||||
|
#entry {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
#entry:selected {
|
#entry:selected {
|
||||||
background-color: #44475a;
|
border-radius: 8px;
|
||||||
|
background-color: #21262d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#entry image {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
@ -1,17 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
entries="⇠ Logout\n⏾ Suspend\n⭮ Reboot\n⏻ Shutdown"
|
|
||||||
|
|
||||||
selected=$(echo -e $entries|wofi --width 250 --height 240 --dmenu --cache-file /dev/null | awk '{print tolower($2)}')
|
|
||||||
|
|
||||||
case $selected in
|
|
||||||
logout)
|
|
||||||
pkill -u kia;;
|
|
||||||
suspend)
|
|
||||||
exec systemctl suspend;;
|
|
||||||
reboot)
|
|
||||||
exec systemctl reboot;;
|
|
||||||
shutdown)
|
|
||||||
exec systemctl poweroff;;
|
|
||||||
# it used to be poweroff -i
|
|
||||||
esac
|
|
14
install.bash
14
install.bash
@ -7,10 +7,8 @@
|
|||||||
# SYMBOLIC LINKS
|
# SYMBOLIC LINKS
|
||||||
###################################################################
|
###################################################################
|
||||||
|
|
||||||
ln -s ~/dotfiles/.conf/hypr ~/.config/hypr
|
# Copy everything from .config
|
||||||
ln -s ~/dotfiles/.conf/hyprpaper ~/.config/hyprpaper
|
|
||||||
ln -s ~/dotfiles/.conf/fastfetch ~/.config/fastfetch
|
|
||||||
ln -s ~/dotfiles/.conf/mimeapps.list ~/.config/mimeapps.list
|
|
||||||
ln -s ~/dotfiles/wallpapers ~/wallpapers
|
ln -s ~/dotfiles/wallpapers ~/wallpapers
|
||||||
ln -s ~/dotfiles/.fonts ~/.fonts
|
ln -s ~/dotfiles/.fonts ~/.fonts
|
||||||
|
|
||||||
@ -43,6 +41,9 @@ pacman -S btop ripgrep bat neovim nano grim slurp dust fastfetch imv wl-clipboar
|
|||||||
# Bash prompt bar
|
# Bash prompt bar
|
||||||
pacman -S starship
|
pacman -S starship
|
||||||
|
|
||||||
|
# Additional Pacman utils like "checkupdates"
|
||||||
|
sudo pacman -S pacman-contrib
|
||||||
|
|
||||||
# Networking
|
# Networking
|
||||||
# For connecting to eduroam install config with this script: https://cat.eduroam.org/
|
# For connecting to eduroam install config with this script: https://cat.eduroam.org/
|
||||||
# wpa_supplicant is dependency of networkmanager that was not installed for some reason.
|
# wpa_supplicant is dependency of networkmanager that was not installed for some reason.
|
||||||
@ -60,3 +61,8 @@ echo '[Service]\nExecStart=\nExecStart=-/sbin/agetty --noreset --noclear --autol
|
|||||||
# MANUAL CONFIGURATION REQUIRED
|
# MANUAL CONFIGURATION REQUIRED
|
||||||
###################################################################
|
###################################################################
|
||||||
|
|
||||||
|
# Waybar: https://github.com/sejjy/mechabar/tree/classic
|
||||||
|
# Dependencies:
|
||||||
|
# wireplumber is Session/policy manager implementation for PipeWire
|
||||||
|
pacman -S cava bluez-utils pipewire-pulse ttf-jetbrains-mono-nerd wireplumber
|
||||||
|
yay -S bluetui rofi-lbonn-wayland-git
|
||||||
|
Loading…
x
Reference in New Issue
Block a user