Compare commits
3 Commits
e0e2ae33a4
...
4096d75cb1
Author | SHA1 | Date | |
---|---|---|---|
4096d75cb1 | |||
b6dd8cab31 | |||
95f3c3432c |
@ -7,9 +7,6 @@
|
||||
|
||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
||||
|
||||
# Set default theme to dark
|
||||
export GTK_THEME=Adwaita:dark && export QT_QPA_PLATFORMTHEME=gtk3
|
||||
|
||||
# Start uwsm, which starts hyprland
|
||||
if uwsm check may-start; then
|
||||
exec uwsm start hyprland.desktop
|
||||
|
@ -33,8 +33,8 @@ decoration {
|
||||
rounding_power = 10
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 0.85
|
||||
inactive_opacity = 0.85
|
||||
active_opacity = 0.9
|
||||
inactive_opacity = 0.9
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,1.566667
|
||||
#monitor=,preferred,auto,2
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
@ -17,8 +16,8 @@ monitor=,preferred,auto,1.566667
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$filemanager = kitty -e yazi
|
||||
$menu = wofi --show drun
|
||||
$powerMenu = bash ~/.config/wofi/wofi-powermenu.sh
|
||||
$menu = rofi -show drun
|
||||
$powerMenu = bash ~/.config/waybar/scripts/power-menu.sh
|
||||
$browser = firefox
|
||||
$email = thunderbird
|
||||
$screenshot = grim
|
||||
@ -44,6 +43,13 @@ exec-once = [workspace 1 silent] $terminal
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
env = GDK_BACKEND,wayland
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = GTK_THEME,Adwaita:dark
|
||||
env = QT_QPA_PLATFORMTHEME,gtk3
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
|
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
|
||||
gtk-dark=true
|
||||
image_size=20
|
||||
width=25%
|
||||
hide-scroll=true
|
||||
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 {
|
||||
margin: 25px;
|
||||
#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;
|
||||
#window {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
background-color: #282a36;
|
||||
border-radius: 14px;
|
||||
background-color: #0d1117;
|
||||
}
|
||||
|
||||
#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 {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
border-radius: 14px;
|
||||
background-color: #161b22;
|
||||
margin: 0 12px 12px;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: #f8f8f2;
|
||||
}
|
||||
#inner-box {
|
||||
border-radius: 14px;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#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
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
15
install.bash
15
install.bash
@ -7,10 +7,8 @@
|
||||
# SYMBOLIC LINKS
|
||||
###################################################################
|
||||
|
||||
ln -s ~/dotfiles/.conf/hypr ~/.config/hypr
|
||||
ln -s ~/dotfiles/.conf/hyprpaper ~/.config/hyprpaper
|
||||
ln -s ~/dotfiles/.conf/fastfetch ~/.config/fastfetch
|
||||
ln -s ~/dotfiles/.conf/mimeapps.list ~/.config/mimeapps.list
|
||||
# Copy everything from .config
|
||||
|
||||
ln -s ~/dotfiles/wallpapers ~/wallpapers
|
||||
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
|
||||
pacman -S starship
|
||||
|
||||
# Additional Pacman utils like "checkupdates"
|
||||
sudo pacman -S pacman-contrib
|
||||
|
||||
# Networking
|
||||
# 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.
|
||||
@ -60,3 +61,9 @@ echo '[Service]\nExecStart=\nExecStart=-/sbin/agetty --noreset --noclear --autol
|
||||
# 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 bluez pipewire-pulse ttf-jetbrains-mono-nerd wireplumber
|
||||
yay -S rofi-lbonn-wayland-git bluetui
|
||||
systemctl enable --now bluetooth.service
|
||||
|
Loading…
x
Reference in New Issue
Block a user