Finally add all dotfiles correctly
This commit is contained in:
40
hypr/hypridle.conf
Normal file
40
hypr/hypridle.conf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
general {
|
||||||
|
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||||
|
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||||
|
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||||
|
}
|
||||||
|
|
||||||
|
#listener {
|
||||||
|
# timeout = 15 # 2.5min.
|
||||||
|
# on-timeout = notify-send "Your are about to go idle"
|
||||||
|
# on-resume = "notify-send "Resumed"
|
||||||
|
#}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 150 # 2.5min.
|
||||||
|
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||||
|
on-resume = brightnessctl -r # monitor backlight restore.
|
||||||
|
}
|
||||||
|
|
||||||
|
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||||
|
listener {
|
||||||
|
timeout = 150 # 2.5min.
|
||||||
|
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
|
||||||
|
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 300 # 5min
|
||||||
|
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 330 # 5.5min
|
||||||
|
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||||
|
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 1800 # 30min
|
||||||
|
on-timeout = systemctl suspend # suspend pc
|
||||||
|
}
|
||||||
315
hypr/hyprland.conf
Normal file
315
hypr/hyprland.conf
Normal file
@@ -0,0 +1,315 @@
|
|||||||
|
|
||||||
|
# #######################################################################################
|
||||||
|
# AUTOGENERATED HYPRLAND CONFIG.
|
||||||
|
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||||
|
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||||
|
# #######################################################################################
|
||||||
|
|
||||||
|
# This is an example Hyprland config file.
|
||||||
|
# Refer to the wiki for more information.
|
||||||
|
# https://wiki.hyprland.org/Configuring/
|
||||||
|
|
||||||
|
# Please note not all available settings / options are set here.
|
||||||
|
# For a full list, see the wiki
|
||||||
|
|
||||||
|
# You can split this configuration into multiple files
|
||||||
|
# Create your files separately and then link them to this file like this:
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
################
|
||||||
|
### MONITORS ###
|
||||||
|
################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
#monitor = , preferred, auto, 1
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### MY PROGRAMS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
|
||||||
|
# Set programs that you use
|
||||||
|
$terminal = kitty
|
||||||
|
$fileManager = thunar
|
||||||
|
$menu = wofi --show drun
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
### AUTOSTART ###
|
||||||
|
#################
|
||||||
|
|
||||||
|
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
|
# Or execute your favorite apps at launch like this:
|
||||||
|
# exec-once = $terminal
|
||||||
|
# exec-once = nm-applet &
|
||||||
|
exec-once = wl-paste --type text --watch cliphist store
|
||||||
|
exec-once = wl-paste --type image --watch cliphist store
|
||||||
|
exec-once = waybar & disown
|
||||||
|
exec-once = librewolf & disown
|
||||||
|
exec-once = swaync & disown
|
||||||
|
exec-once = hypridle & disown
|
||||||
|
exec-once = ~/.config/hypr/scripts/monitor_setup.sh
|
||||||
|
exec-once = hyprctl dispatch exec "[workspace 3 silent] signal-desktop"
|
||||||
|
exec-once = hyprctl dispatch exec "[workspace 3 silent] discord"
|
||||||
|
exec-once = hyprctl dispatch exec "[workspace 3 silent] thunderbird"
|
||||||
|
#exec-once = hyprctl dispatch exec "[workspace 5 silent] steam"
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### ENVIRONMENT VARIABLES ###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,20
|
||||||
|
env = HYPRCURSOR_SIZE,20
|
||||||
|
|
||||||
|
#####################
|
||||||
|
### LOOK AND FEEL ###
|
||||||
|
#####################
|
||||||
|
|
||||||
|
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
gaps_in = 0
|
||||||
|
gaps_out = 0
|
||||||
|
|
||||||
|
border_size = 1
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
|
col.inactive_border = rgba(595959aa)
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = false
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
rounding = 10
|
||||||
|
rounding_power = 2
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 0.9
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = false
|
||||||
|
range = 4
|
||||||
|
render_power = 3
|
||||||
|
color = rgba(1a1a1aee)
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
|
||||||
|
vibrancy = 0.1696
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||||
|
animations {
|
||||||
|
enabled = no
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = easeOutQuint,0.23,1,0.32,1
|
||||||
|
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||||
|
bezier = linear,0,0,1,1
|
||||||
|
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||||
|
bezier = quick,0.15,0,0.1,1
|
||||||
|
|
||||||
|
animation = global, 1, 10, default
|
||||||
|
animation = border, 1, 5.39, easeOutQuint
|
||||||
|
animation = windows, 1, 4.79, easeOutQuint
|
||||||
|
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||||
|
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||||
|
animation = fadeIn, 1, 1.73, almostLinear
|
||||||
|
animation = fadeOut, 1, 1.46, almostLinear
|
||||||
|
animation = fade, 1, 3.03, quick
|
||||||
|
animation = layers, 1, 3.81, easeOutQuint
|
||||||
|
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||||
|
animation = layersOut, 1, 1.5, linear, fade
|
||||||
|
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||||
|
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||||
|
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||||
|
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||||
|
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||||
|
# "Smart gaps" / "No gaps when only"
|
||||||
|
# uncomment all if you wish to use that.
|
||||||
|
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||||
|
# workspace = f[1], gapsout:0, gapsin:0
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle {
|
||||||
|
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true # You probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master {
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
### INPUT ###
|
||||||
|
#############
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example per-device config
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||||
|
device {
|
||||||
|
name = epic-mouse-v1
|
||||||
|
sensitivity = -0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### KEYBINDINGS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
bind = $mainMod, return, exec, $terminal
|
||||||
|
bind = $mainMod, C, killactive,
|
||||||
|
bind = $mainMod, M, exit,
|
||||||
|
bind = $mainMod, E, exec, $fileManager
|
||||||
|
bind = $mainMod, F, togglefloating,
|
||||||
|
bind = $mainMod, space, exec, $menu
|
||||||
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle
|
||||||
|
bind = $mainMod SHIFT, S, exec, hyprshot -m region --clipboard-only,
|
||||||
|
bind = $mainMod, L, exec, hyprlock
|
||||||
|
bind = $mainMod, backslash, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||||
|
bind = SUPER, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
||||||
|
|
||||||
|
# Example special workspace (scratchpad)
|
||||||
|
#bind = $mainMod, S, togglespecialworkspace, magic
|
||||||
|
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||||
|
|
||||||
|
bind = SUPER_ALT_CTRL, L, exec, hyprctl keyword monitor "eDP-1,preferred,auto,1"
|
||||||
|
|
||||||
|
#Mouse Key Assignements
|
||||||
|
#bind = , code:191, exec, $terminal
|
||||||
|
#bind = , code:198, exec, $terminal
|
||||||
|
|
||||||
|
|
||||||
|
# Lid Open & Closed
|
||||||
|
bindl = , switch:off:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||||
|
# trigger when the switch is turning on
|
||||||
|
bindl = , switch:on:Lid Switch, exec, ~/.config/hypr/scripts/monitor_setup.sh
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Laptop multimedia keys for volume and LCD brightness
|
||||||
|
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||||
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||||
|
|
||||||
|
# Requires playerctl
|
||||||
|
bindl = , XF86AudioNext, exec, playerctl next
|
||||||
|
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### WINDOWS AND WORKSPACES ###
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Example windowrule
|
||||||
|
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
windowrule = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
297
hypr/hyprland.conf.save
Normal file
297
hypr/hyprland.conf.save
Normal file
@@ -0,0 +1,297 @@
|
|||||||
|
|
||||||
|
# #######################################################################################
|
||||||
|
# AUTOGENERATED HYPRLAND CONFIG.
|
||||||
|
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
|
||||||
|
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||||
|
# #######################################################################################
|
||||||
|
|
||||||
|
# This is an example Hyprland config file.
|
||||||
|
# Refer to the wiki for more information.
|
||||||
|
# https://wiki.hyprland.org/Configuring/
|
||||||
|
|
||||||
|
# Please note not all available settings / options are set here.
|
||||||
|
# For a full list, see the wiki
|
||||||
|
|
||||||
|
# You can split this configuration into multiple files
|
||||||
|
# Create your files separately and then link them to this file like this:
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
|
||||||
|
################
|
||||||
|
### MONITORS ###
|
||||||
|
################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
#monitor=eDP-1,disable
|
||||||
|
monitor=DP-3,5120x1440@120,0x1440,0.833333
|
||||||
|
monitor=DP-4,3440x1440@60,840x0,0.833333
|
||||||
|
monitor = , preferred, auto, 0.83
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### MY PROGRAMS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
|
||||||
|
# Set programs that you use
|
||||||
|
$terminal = kitty
|
||||||
|
$fileManager = dolphin
|
||||||
|
$menu = wofi --show drun
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
### AUTOSTART ###
|
||||||
|
#################
|
||||||
|
|
||||||
|
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||||
|
# Or execute your favorite apps at launch like this:
|
||||||
|
# exec-once = $terminal
|
||||||
|
# exec-once = nm-applet &
|
||||||
|
exec-once = waybar & librewolf & swaync & hypridle
|
||||||
|
|
||||||
|
|
||||||
|
#############################
|
||||||
|
### ENVIRONMENT VARIABLES ###
|
||||||
|
#############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = HYPRCURSOR_SIZE,24
|
||||||
|
|
||||||
|
|
||||||
|
#####################
|
||||||
|
### LOOK AND FEEL ###
|
||||||
|
#####################
|
||||||
|
|
||||||
|
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
gaps_in = 0
|
||||||
|
gaps_out = 0
|
||||||
|
|
||||||
|
border_size = 1
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||||
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
|
col.inactive_border = rgba(595959aa)
|
||||||
|
|
||||||
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||||
|
resize_on_border = false
|
||||||
|
|
||||||
|
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||||
|
allow_tearing = false
|
||||||
|
|
||||||
|
layout = dwindle
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
rounding = 10
|
||||||
|
rounding_power = 2
|
||||||
|
|
||||||
|
# Change transparency of focused and unfocused windows
|
||||||
|
active_opacity = 1.0
|
||||||
|
inactive_opacity = 1.0
|
||||||
|
|
||||||
|
shadow {
|
||||||
|
enabled = true
|
||||||
|
range = 4
|
||||||
|
render_power = 3
|
||||||
|
color = rgba(1a1a1aee)
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
|
||||||
|
vibrancy = 0.1696
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||||
|
animations {
|
||||||
|
enabled = yes, please :)
|
||||||
|
|
||||||
|
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||||
|
|
||||||
|
bezier = easeOutQuint,0.23,1,0.32,1
|
||||||
|
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||||
|
bezier = linear,0,0,1,1
|
||||||
|
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||||
|
bezier = quick,0.15,0,0.1,1
|
||||||
|
|
||||||
|
animation = global, 1, 10, default
|
||||||
|
animation = border, 1, 5.39, easeOutQuint
|
||||||
|
animation = windows, 1, 4.79, easeOutQuint
|
||||||
|
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||||
|
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||||
|
animation = fadeIn, 1, 1.73, almostLinear
|
||||||
|
animation = fadeOut, 1, 1.46, almostLinear
|
||||||
|
animation = fade, 1, 3.03, quick
|
||||||
|
animation = layers, 1, 3.81, easeOutQuint
|
||||||
|
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||||
|
animation = layersOut, 1, 1.5, linear, fade
|
||||||
|
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||||
|
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||||
|
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||||
|
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||||
|
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||||
|
# "Smart gaps" / "No gaps when only"
|
||||||
|
# uncomment all if you wish to use that.
|
||||||
|
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||||
|
# workspace = f[1], gapsout:0, gapsin:0
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||||
|
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||||
|
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||||
|
dwindle {
|
||||||
|
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = true # You probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||||
|
master {
|
||||||
|
new_status = master
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||||
|
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#############
|
||||||
|
### INPUT ###
|
||||||
|
#############
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||||
|
gestures {
|
||||||
|
workspace_swipe = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example per-device config
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||||
|
device {
|
||||||
|
name = epic-mouse-v1
|
||||||
|
sensitivity = -0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###################
|
||||||
|
### KEYBINDINGS ###
|
||||||
|
###################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||||
|
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||||
|
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
bind = $mainMod, return, exec, $terminal
|
||||||
|
bind = $mainMod, C, killactive,
|
||||||
|
bind = $mainMod, M, exit,
|
||||||
|
bind = $mainMod, E, exec, $fileManager
|
||||||
|
bind = $mainMod, V, togglefloating,
|
||||||
|
bind = $mainMod, space, exec, $menu
|
||||||
|
bind = $mainMod, P, pseudo, # dwindle
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle
|
||||||
|
bind = $mainMod, Q, exec, hyprshot -m region --clipboard-only,
|
||||||
|
bind = $mainMod, L, exec, hyprlock
|
||||||
|
|
||||||
|
# Move focus with mainMod + arrow keys
|
||||||
|
bind = $mainMod, left, movefocus, l
|
||||||
|
bind = $mainMod, right, movefocus, r
|
||||||
|
bind = $mainMod, up, movefocus, u
|
||||||
|
bind = $mainMod, down, movefocus, d
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# Example special workspace (scratchpad)
|
||||||
|
bind = $mainMod, S, togglespecialworkspace, magic
|
||||||
|
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Laptop multimedia keys for volume and LCD brightness
|
||||||
|
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||||
|
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||||
|
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||||
|
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||||
|
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
|
||||||
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
||||||
|
|
||||||
|
# Requires playerctl
|
||||||
|
bindl = , XF86AudioNext, exec, playerctl next
|
||||||
|
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
|
##############################
|
||||||
|
### WINDOWS AND WORKSPACES ###
|
||||||
|
##############################
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||||
|
|
||||||
|
# Example windowrule
|
||||||
|
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
windowrule = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
35
hypr/hyprlock.conf
Normal file
35
hypr/hyprlock.conf
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
color = rgba(0, 0, 0, 1.0)
|
||||||
|
|
||||||
|
}
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 200, 50
|
||||||
|
outline_thickness = 3
|
||||||
|
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||||
|
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
|
dots_center = false
|
||||||
|
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||||
|
outer_color = rgb(151515)
|
||||||
|
inner_color = rgb(200, 200, 200)
|
||||||
|
font_color = rgb(10, 10, 10)
|
||||||
|
fade_on_empty = true
|
||||||
|
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||||
|
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||||
|
hide_input = false
|
||||||
|
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||||
|
check_color = rgb(204, 136, 34)
|
||||||
|
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
|
||||||
|
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||||
|
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||||
|
capslock_color = -1
|
||||||
|
numlock_color = -1
|
||||||
|
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||||
|
invert_numlock = false # change color if numlock is off
|
||||||
|
swap_font_color = false # see below
|
||||||
|
|
||||||
|
position = 0, -20
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
130
hypr/scripts/monitor_setup.sh
Executable file
130
hypr/scripts/monitor_setup.sh
Executable file
@@ -0,0 +1,130 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# ~/.config/hypr/scripts/monitor_setup.sh
|
||||||
|
notify-send -t 3000 "Monitor Setup" "Detecting display configuration..."
|
||||||
|
LAPTOP="eDP-1"
|
||||||
|
LID_STATE=$(grep -q "open" /proc/acpi/button/lid/LID/state && echo "open" || echo "closed")
|
||||||
|
MONITORS=$(hyprctl monitors -j)
|
||||||
|
|
||||||
|
EXTERNAL=$(echo "$MONITORS" | jq -r '.[] | select(.name != "'$LAPTOP'") | .name' | head -1)
|
||||||
|
|
||||||
|
# Improved function to get the maximum resolution with highest refresh rate
|
||||||
|
get_max_res() {
|
||||||
|
local monitor=$1
|
||||||
|
|
||||||
|
# Get all available modes for the monitor
|
||||||
|
local modes=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$monitor\") | .availableModes[]")
|
||||||
|
|
||||||
|
if [[ -z "$modes" ]]; then
|
||||||
|
echo "preferred"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find the mode with the highest resolution and refresh rate
|
||||||
|
local max_pixels=0
|
||||||
|
local max_refresh=0
|
||||||
|
local best_mode="preferred"
|
||||||
|
|
||||||
|
while IFS= read -r mode; do
|
||||||
|
# Extract width, height, and refresh rate
|
||||||
|
local width=$(echo "$mode" | awk -F'@' '{print $1}' | awk -F'x' '{print $1}')
|
||||||
|
local height=$(echo "$mode" | awk -F'@' '{print $1}' | awk -F'x' '{print $2}')
|
||||||
|
local refresh=$(echo "$mode" | awk -F'@' '{print $2}' | sed 's/Hz//')
|
||||||
|
|
||||||
|
# Calculate total pixels (width × height) for better comparison
|
||||||
|
local pixels=$((width * height))
|
||||||
|
|
||||||
|
# First prioritize by total pixel count (resolution), then by refresh rate
|
||||||
|
if [[ $pixels -gt $max_pixels || ($pixels -eq $max_pixels && $(echo "$refresh > $max_refresh" | bc -l) -eq 1) ]]; then
|
||||||
|
max_pixels=$pixels
|
||||||
|
max_refresh=$refresh
|
||||||
|
best_mode="${width}x${height}@${refresh}"
|
||||||
|
fi
|
||||||
|
done <<< "$modes"
|
||||||
|
|
||||||
|
echo "$best_mode"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Alternative method to get max resolution using hyprctl
|
||||||
|
get_max_res_alt() {
|
||||||
|
local monitor=$1
|
||||||
|
local modes=$(hyprctl monitors -j | jq -r ".[] | select(.name == \"$monitor\") | .availableModes[]")
|
||||||
|
|
||||||
|
if [[ -z "$modes" ]]; then
|
||||||
|
# Try querying wlr-randr directly as a fallback
|
||||||
|
if command -v wlr-randr &> /dev/null; then
|
||||||
|
modes=$(wlr-randr | grep -A 10 "$monitor" | grep -o '[0-9]\+x[0-9]\+@[0-9.]\+Hz')
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$modes" ]]; then
|
||||||
|
echo "preferred"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find highest resolution with best refresh rate
|
||||||
|
local best_mode=$(echo "$modes" | sort -nr -k1 -t'x' -k2 -t'@' | head -1)
|
||||||
|
echo "$best_mode"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get resolution for monitors - try both methods
|
||||||
|
EXT_RES=$(get_max_res "$EXTERNAL")
|
||||||
|
if [[ "$EXT_RES" == "preferred" ]]; then
|
||||||
|
EXT_RES=$(get_max_res_alt "$EXTERNAL")
|
||||||
|
fi
|
||||||
|
|
||||||
|
LAPTOP_RES=$(get_max_res "$LAPTOP")
|
||||||
|
if [[ "$LAPTOP_RES" == "preferred" ]]; then
|
||||||
|
LAPTOP_RES=$(get_max_res_alt "$LAPTOP")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Case 1: Only laptop
|
||||||
|
if [ -z "$EXTERNAL" ]; then
|
||||||
|
notify-send -t 3000 "Monitor Setup" "Laptop-only mode\nUsing: $LAPTOP_RES"
|
||||||
|
hyprctl keyword monitor "$LAPTOP,$LAPTOP_RES,auto,1"
|
||||||
|
|
||||||
|
for ws in {1..5}; do
|
||||||
|
hyprctl keyword "workspace $ws,monitor:$LAPTOP" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP" 2>/dev/null
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Case 2: External + open lid
|
||||||
|
if [ "$LID_STATE" = "open" ]; then
|
||||||
|
notify-send -t 3000 "Monitor Setup" "Dual monitor mode (Laptop + External)\nLaptop: $LAPTOP_RES\nExternal: $EXT_RES"
|
||||||
|
hyprctl keyword monitor "$LAPTOP,$LAPTOP_RES,auto,1"
|
||||||
|
hyprctl keyword monitor "$EXTERNAL,$EXT_RES,auto,1"
|
||||||
|
|
||||||
|
for ws in {1..3}; do
|
||||||
|
hyprctl keyword "workspace $ws,monitor:$LAPTOP" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP" 2>/dev/null
|
||||||
|
done
|
||||||
|
for ws in {4..5}; do
|
||||||
|
hyprctl keyword "workspace $ws,monitor:$EXTERNAL" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $EXTERNAL" 2>/dev/null
|
||||||
|
done
|
||||||
|
# Case 3: External + closed lid
|
||||||
|
else
|
||||||
|
notify-send -t 3000 "Monitor Setup" "External monitor only (Lid closed)\nUsing: $EXT_RES"
|
||||||
|
hyprctl dispatch dpms off "$LAPTOP"
|
||||||
|
hyprctl keyword monitor "$LAPTOP,disable"
|
||||||
|
hyprctl keyword monitor "$EXTERNAL,$EXT_RES,0x0,1"
|
||||||
|
|
||||||
|
for ws in {1..5}; do
|
||||||
|
hyprctl keyword "workspace $ws,monitor:$EXTERNAL" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch workspace "$ws" >/dev/null 2>&1
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $EXTERNAL" 2>/dev/null
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Debug output - helpful for troubleshooting
|
||||||
|
echo "Monitor Configuration:" > /tmp/hypr_monitor_debug.log
|
||||||
|
echo "LAPTOP: $LAPTOP with resolution $LAPTOP_RES" >> /tmp/hypr_monitor_debug.log
|
||||||
|
echo "EXTERNAL: $EXTERNAL with resolution $EXT_RES" >> /tmp/hypr_monitor_debug.log
|
||||||
|
echo "LID_STATE: $LID_STATE" >> /tmp/hypr_monitor_debug.log
|
||||||
|
hyprctl monitors >> /tmp/hypr_monitor_debug.log
|
||||||
|
|
||||||
|
notify-send -t 5000 "Monitor Setup Complete" "Active configuration:\n$(hyprctl monitors | grep -E 'Monitor|workspace|resolution')"
|
||||||
118
hypr/scripts/monitor_setup.sh.dual-not_working
Executable file
118
hypr/scripts/monitor_setup.sh.dual-not_working
Executable file
@@ -0,0 +1,118 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# Robust Monitor Setup with Workspace Assignments
|
||||||
|
|
||||||
|
notify-send "Monitor Setup" "Starting configuration..."
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Phase 1: Reset State
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
#hyprctl keyword monitor "" # Clear all monitor rules
|
||||||
|
#hyprctl keyword workspace "" # Clear workspace assignments
|
||||||
|
#sleep 1
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Phase 2: Hardware Detection
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
MONITORS=$(hyprctl monitors -j all)
|
||||||
|
LAPTOP="eDP-1"
|
||||||
|
LID_STATE=$(cat /proc/acpi/button/lid/LID0/state | awk '{print $2}')
|
||||||
|
EXTERNAL_MONITORS=($(echo "$MONITORS" | jq -r '.[] | select(.name != "eDP-1") | .name'))
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Phase 3: Configuration
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Case 1: No externals - Laptop only
|
||||||
|
if [ ${#EXTERNAL_MONITORS[@]} -eq 0 ]; then
|
||||||
|
notify-send "Monitor Setup" "Laptop-only mode"
|
||||||
|
hyprctl keyword monitor "$LAPTOP,1920x1200@60,0x0,1.5"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Assign all workspaces to laptop
|
||||||
|
for ws in {1..10}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$LAPTOP"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Case 2: Any external monitors
|
||||||
|
else
|
||||||
|
# Try to identify known monitors by serial
|
||||||
|
ULTRAWIDE=$(echo "$MONITORS" | jq -r '.[] | select(.serial == "303NTLE84432") | .name')
|
||||||
|
STANDARD=$(echo "$MONITORS" | jq -r '.[] | select(.serial == "H4LN801666") | .name')
|
||||||
|
|
||||||
|
# Dual monitor setup (known monitors)
|
||||||
|
if [ -n "$ULTRAWIDE" ] && [ -n "$STANDARD" ]; then
|
||||||
|
notify-send "Monitor Setup" "Dual monitor mode (Ultrawide + Standard)"
|
||||||
|
|
||||||
|
# Configure monitors
|
||||||
|
hyprctl keyword monitor "$ULTRAWIDE,5120x1440@120,0x1440,1"
|
||||||
|
sleep 1
|
||||||
|
hyprctl keyword monitor "$STANDARD,3440x1440@60,840x0,1"
|
||||||
|
sleep 1
|
||||||
|
hyprctl dispatch dpms off "$LAPTOP"
|
||||||
|
|
||||||
|
# Workspace assignments:
|
||||||
|
# 1-4 on Ultrawide, 5-10 on Standard
|
||||||
|
for ws in {1..4}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$ULTRAWIDE"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $ULTRAWIDE"
|
||||||
|
done
|
||||||
|
for ws in {5..9}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$STANDARD"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $STANDARD"
|
||||||
|
done
|
||||||
|
|
||||||
|
hyprctl keyword "workspace 10, monitor:$LAPTOP"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "10 $LAPTOP"
|
||||||
|
|
||||||
|
# Single external (any monitor)
|
||||||
|
else
|
||||||
|
EXT_MON=${EXTERNAL_MONITORS[0]}
|
||||||
|
notify-send "Monitor Setup" "Single external: $EXT_MON"
|
||||||
|
|
||||||
|
# Get max resolution
|
||||||
|
MAX_RES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$EXT_MON\") | .availableModes[0] | \"\(.width)x\(.height)@\(.refreshRate)\"")
|
||||||
|
|
||||||
|
# Check lid state
|
||||||
|
if [ "$LID_STATE" == "closed" ]; then
|
||||||
|
# Lid closed - only external monitor
|
||||||
|
notify-send "Monitor Setup" "Lid closed - using external only"
|
||||||
|
hyprctl dispatch dpms off "$LAPTOP"
|
||||||
|
hyprctl keyword monitor "$EXT_MON,$MAX_RES,0x0,1"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
hyprctl keyword "workspace 10, monitor:$LAPTOP"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "10 $LAPTOP"
|
||||||
|
|
||||||
|
# Assign all workspaces to external
|
||||||
|
for ws in {1..9}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$EXT_MON"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $EXT_MON"
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
|
# Lid open - both monitors
|
||||||
|
notify-send "Monitor Setup" "Lid open - using laptop + external"
|
||||||
|
hyprctl keyword monitor "$LAPTOP,1920x1200@60,0x0,1.5"
|
||||||
|
sleep 1
|
||||||
|
hyprctl keyword monitor "$EXT_MON,$MAX_RES,1920x0,1"
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Workspace assignments:
|
||||||
|
# 1-4 on laptop, 5-10 on external
|
||||||
|
for ws in {1..4}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$LAPTOP"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $LAPTOP"
|
||||||
|
done
|
||||||
|
for ws in {5..10}; do
|
||||||
|
hyprctl keyword "workspace $ws, monitor:$EXT_MON"
|
||||||
|
hyprctl dispatch moveworkspacetomonitor "$ws $EXT_MON"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
# Finalization
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
sleep 1
|
||||||
|
notify-send "Monitor Setup Complete" "Active configuration:\n$(hyprctl monitors)"
|
||||||
60
hypr/scripts/monitor_setup.sh.old
Executable file
60
hypr/scripts/monitor_setup.sh.old
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Get all monitor info (including disabled)
|
||||||
|
MONITORS=$(hyprctl monitors -j all)
|
||||||
|
ALL_MONITORS=$(echo "$MONITORS" | jq -r '.[] | .name')
|
||||||
|
EXTERNAL_COUNT=$(echo "$ALL_MONITORS" | grep -v "eDP-1" | wc -l)
|
||||||
|
|
||||||
|
#echo $MONITORS
|
||||||
|
#echo $ALL_MONITORS
|
||||||
|
#echo $EXTERNAL_COUNT
|
||||||
|
|
||||||
|
# Case 1: No externals - laptop only
|
||||||
|
if [[ $EXTERNAL_COUNT -eq 0 ]]; then
|
||||||
|
hyprctl keyword monitor "eDP-1,1920x1200@60,0x0,1"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Case 2: Single external monitor
|
||||||
|
if [[ $EXTERNAL_COUNT -eq 1 ]]; then
|
||||||
|
EXT_MON=$(echo "$ALL_MONITORS" | grep -v "eDP-1")
|
||||||
|
MODES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$EXT_MON\") | .availableModes | join(\" \")")
|
||||||
|
MAX_RES=$(echo "$MODES" | grep -oE "[0-9]+x[0-9]+@[0-9.]+" | awk -F'[@x]' '{print $1,$2,$3}' | sort -k1,1nr -k2,2nr -k3,3nr | awk '{print $1"x"$2"@"$3}' | head -n1)
|
||||||
|
|
||||||
|
hyprctl keyword monitor "eDP-1,1920x1200@60,0x0,1"
|
||||||
|
hyprctl keyword monitor "$EXT_MON,$MAX_RES,1920x0,1" # Right of laptop
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Identify our specific monitors
|
||||||
|
ULTRAWIDE=""
|
||||||
|
STANDARD_ULTRAWIDE=""
|
||||||
|
|
||||||
|
for MON in $(echo "$ALL_MONITORS"); do
|
||||||
|
echo $MON
|
||||||
|
[[ $MON == "eDP-1" ]] && continue
|
||||||
|
|
||||||
|
MODES=$(echo "$MONITORS" | jq -r ".[] | select(.name == \"$MON\") | .availableModes | join(\" \")")
|
||||||
|
|
||||||
|
echo $MODES
|
||||||
|
|
||||||
|
if [[ $MODES =~ "5120x1440" ]]; then
|
||||||
|
ULTRAWIDE=$MON
|
||||||
|
echo "Ultrawide = $ULTRAWIDE"
|
||||||
|
elif [[ $MODES =~ "3440x1440" ]]; then
|
||||||
|
STANDARD_ULTRAWIDE=$MON
|
||||||
|
echo "Standard = $STANDARD_ULTRAWIDE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Case 3: Dual monitor setup (only if we found both our specific monitors)
|
||||||
|
if [[ -n "$ULTRAWIDE" && -n "$STANDARD_ULTRAWIDE" ]]; then
|
||||||
|
echo "dual monitors"
|
||||||
|
hyprctl keyword monitor "eDP-1,disable"
|
||||||
|
hyprctl keyword monitor "$ULTRAWIDE,5120x1440@120,0x1440,1" # 49" at bottom
|
||||||
|
hyprctl keyword monitor "$STANDARD_ULTRAWIDE,3440x1440@60,840x0,1" # 34" at top-left
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If we get here, it's an unexpected configuration - do nothing
|
||||||
|
notify-send "Error detecting monitors, no changes"
|
||||||
20
kitty/kitty.conf
Normal file
20
kitty/kitty.conf
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
include themes/gruvbox_dark.conf
|
||||||
|
|
||||||
|
font_family Fira Code Regular # or JetBrains Mono
|
||||||
|
font_size 12
|
||||||
|
bold_font auto
|
||||||
|
italic_font auto
|
||||||
|
bold_italic_font auto
|
||||||
|
|
||||||
|
# Enable Wayland support
|
||||||
|
wayland_titlebar_color background
|
||||||
|
linux_display_server wayland
|
||||||
|
|
||||||
|
# Basic appearance
|
||||||
|
font_size 12
|
||||||
|
font_family Fira Code
|
||||||
|
background_opacity 0.9
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
map ctrl+shift+n new_os_window
|
||||||
|
map ctrl+shift+t new_tab
|
||||||
49
kitty/themes/gruvbox_dark.conf
Normal file
49
kitty/themes/gruvbox_dark.conf
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
|
||||||
|
# This work is licensed under the terms of the MIT license.
|
||||||
|
# For a copy, see https://opensource.org/licenses/MIT.
|
||||||
|
|
||||||
|
background #282828
|
||||||
|
foreground #ebdbb2
|
||||||
|
|
||||||
|
cursor #928374
|
||||||
|
|
||||||
|
selection_foreground #928374
|
||||||
|
selection_background #3c3836
|
||||||
|
|
||||||
|
color0 #282828
|
||||||
|
color8 #928374
|
||||||
|
|
||||||
|
# red
|
||||||
|
color1 #cc241d
|
||||||
|
# light red
|
||||||
|
color9 #fb4934
|
||||||
|
|
||||||
|
# green
|
||||||
|
color2 #98971a
|
||||||
|
# light green
|
||||||
|
color10 #b8bb26
|
||||||
|
|
||||||
|
# yellow
|
||||||
|
color3 #d79921
|
||||||
|
# light yellow
|
||||||
|
color11 #fabd2d
|
||||||
|
|
||||||
|
# blue
|
||||||
|
color4 #458588
|
||||||
|
# light blue
|
||||||
|
color12 #83a598
|
||||||
|
|
||||||
|
# magenta
|
||||||
|
color5 #b16286
|
||||||
|
# light magenta
|
||||||
|
color13 #d3869b
|
||||||
|
|
||||||
|
# cyan
|
||||||
|
color6 #689d6a
|
||||||
|
# lighy cyan
|
||||||
|
color14 #8ec07c
|
||||||
|
|
||||||
|
# light gray
|
||||||
|
color7 #a89984
|
||||||
|
# dark gray
|
||||||
|
color15 #928374
|
||||||
5
nvim/.luarc.json
Normal file
5
nvim/.luarc.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"diagnostics.globals": [
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
||||||
16
nvim/init.lua
Normal file
16
nvim/init.lua
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
"https://github.com/folke/lazy.nvim.git",
|
||||||
|
"--branch=stable", -- latest stable release
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
|
||||||
|
require("vim-options")
|
||||||
|
require("lazy").setup("plugins")
|
||||||
|
|
||||||
31
nvim/lazy-lock.json
Normal file
31
nvim/lazy-lock.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" },
|
||||||
|
"avante.nvim": { "branch": "main", "commit": "2f806ca34223a50435018dd21d443795f619828d" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
|
||||||
|
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||||
|
"copilot.lua": { "branch": "master", "commit": "0929c92097a49b6ae3565aab157fa2bce398d953" },
|
||||||
|
"dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||||
|
"fzf-lua": { "branch": "main", "commit": "66e620a7a724364809e78a1ae4b5bfe73e37df49" },
|
||||||
|
"gruvbox.nvim": { "branch": "main", "commit": "00e38a379bab3389e187b3953566d67d494dfddd" },
|
||||||
|
"img-clip.nvim": { "branch": "main", "commit": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||||
|
"lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" },
|
||||||
|
"mini.icons": { "branch": "main", "commit": "397ed3807e96b59709ef3292f0a3e253d5c1dc0a" },
|
||||||
|
"mini.pick": { "branch": "main", "commit": "fa1e449e1080bf7aa9b2890ee186d23b1b4e1287" },
|
||||||
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "f481de16a0eb59c985abac8985e3f2e2f75b4875" },
|
||||||
|
"none-ls.nvim": { "branch": "main", "commit": "90e4a27ccaa25979a6b732b9f06dfa43b54957b7" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "61e5109c8cf24807e4ae29813a3a82b31821dd45" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||||
|
"render-markdown.nvim": { "branch": "main", "commit": "a1b0988f5ab26698afb56b9c2f0525a4de1195c1" },
|
||||||
|
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
|
||||||
|
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||||
|
"vim-tmux-navigator": { "branch": "master", "commit": "33afa80db65113561dc53fa732b7f5e53d5ecfd0" }
|
||||||
|
}
|
||||||
5
nvim/lua/.luarc.json
Normal file
5
nvim/lua/.luarc.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"diagnostics.globals": [
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
||||||
1
nvim/lua/plugins.lua
Normal file
1
nvim/lua/plugins.lua
Normal file
@@ -0,0 +1 @@
|
|||||||
|
return {}
|
||||||
5
nvim/lua/plugins/.luarc.json
Normal file
5
nvim/lua/plugins/.luarc.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"diagnostics.globals": [
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
||||||
59
nvim/lua/plugins/avante.lua
Normal file
59
nvim/lua/plugins/avante.lua
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
return {
|
||||||
|
"yetone/avante.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
lazy = false,
|
||||||
|
version = false, -- Set this to "*" to always pull the latest release version, or set it to false to update to the latest code changes.
|
||||||
|
opts = {
|
||||||
|
-- add any opts here
|
||||||
|
-- for example
|
||||||
|
provider = "claude",
|
||||||
|
claude = {
|
||||||
|
endpoint = "https://api.anthropic.com",
|
||||||
|
model = "claude-3-haiku-20240307",
|
||||||
|
timeout = 30000,
|
||||||
|
temperature = 0,
|
||||||
|
max_tokens = 2048,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
|
||||||
|
build = "make",
|
||||||
|
-- build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" -- for windows
|
||||||
|
dependencies = {
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
"stevearc/dressing.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
--- The below dependencies are optional,
|
||||||
|
"echasnovski/mini.pick", -- for file_selector provider mini.pick
|
||||||
|
"nvim-telescope/telescope.nvim", -- for file_selector provider telescope
|
||||||
|
"hrsh7th/nvim-cmp", -- autocompletion for avante commands and mentions
|
||||||
|
"ibhagwan/fzf-lua", -- for file_selector provider fzf
|
||||||
|
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
|
||||||
|
"zbirenbaum/copilot.lua", -- for providers='copilot'
|
||||||
|
{
|
||||||
|
-- support for image pasting
|
||||||
|
"HakonHarnes/img-clip.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
opts = {
|
||||||
|
-- recommended settings
|
||||||
|
default = {
|
||||||
|
embed_image_as_base64 = false,
|
||||||
|
prompt_for_file_name = false,
|
||||||
|
drag_and_drop = {
|
||||||
|
insert_mode = true,
|
||||||
|
},
|
||||||
|
-- required for Windows users
|
||||||
|
use_absolute_path = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
-- Make sure to set this up properly if you have lazy=true
|
||||||
|
'MeanderingProgrammer/render-markdown.nvim',
|
||||||
|
opts = {
|
||||||
|
file_types = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
ft = { "markdown", "Avante" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
44
nvim/lua/plugins/completions.lua
Normal file
44
nvim/lua/plugins/completions.lua
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"hrsh7th/cmp-nvim-lsp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
dependencies = {
|
||||||
|
"saadparwaiz1/cmp_luasnip",
|
||||||
|
"rafamadriz/friendly-snippets",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
config = function()
|
||||||
|
local cmp = require("cmp")
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
require("luasnip").lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered(),
|
||||||
|
documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
["<C-e>"] = cmp.mapping.abort(),
|
||||||
|
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "luasnip" }, -- For luasnip users.
|
||||||
|
}, {
|
||||||
|
{ name = "buffer" },
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
21
nvim/lua/plugins/gruvbox.lua
Normal file
21
nvim/lua/plugins/gruvbox.lua
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"ellisonleao/gruvbox.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
config = function()
|
||||||
|
require("gruvbox").setup({
|
||||||
|
terminal_colors = true,
|
||||||
|
italic = {
|
||||||
|
strings = true,
|
||||||
|
emphasis = true,
|
||||||
|
comments = true,
|
||||||
|
operators = false,
|
||||||
|
folds = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.o.background = "dark"
|
||||||
|
vim.cmd([[colorscheme gruvbox]])
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
36
nvim/lua/plugins/lsp-config.lua
Normal file
36
nvim/lua/plugins/lsp-config.lua
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require("mason").setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require("mason-lspconfig").setup({
|
||||||
|
ensure_installed = { "lua_ls" }
|
||||||
|
})
|
||||||
|
end
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
|
||||||
|
local lspconfig = require("lspconfig")
|
||||||
|
lspconfig.lua_ls.setup({
|
||||||
|
capabilities = capabilities
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||||
|
vim.keymap.set("n", "<leader>gd", vim.lsp.buf.definition, {})
|
||||||
|
vim.keymap.set("n", "<leader>gr", vim.lsp.buf.references, {})
|
||||||
|
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
221
nvim/lua/plugins/lualine.lua
Normal file
221
nvim/lua/plugins/lualine.lua
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
return {
|
||||||
|
'nvim-lualine/lualine.nvim',
|
||||||
|
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
||||||
|
config = function()
|
||||||
|
-- Color table for highlights
|
||||||
|
-- stylua: ignore
|
||||||
|
local colors = {
|
||||||
|
bg = '#202328',
|
||||||
|
fg = '#bbc2cf',
|
||||||
|
yellow = '#ECBE7B',
|
||||||
|
cyan = '#008080',
|
||||||
|
darkblue = '#081633',
|
||||||
|
green = '#98be65',
|
||||||
|
orange = '#FF8800',
|
||||||
|
violet = '#a9a1e1',
|
||||||
|
magenta = '#c678dd',
|
||||||
|
blue = '#51afef',
|
||||||
|
red = '#ec5f67',
|
||||||
|
}
|
||||||
|
|
||||||
|
local conditions = {
|
||||||
|
buffer_not_empty = function()
|
||||||
|
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||||
|
end,
|
||||||
|
hide_in_width = function()
|
||||||
|
return vim.fn.winwidth(0) > 80
|
||||||
|
end,
|
||||||
|
check_git_workspace = function()
|
||||||
|
local filepath = vim.fn.expand('%:p:h')
|
||||||
|
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||||
|
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Config
|
||||||
|
local config = {
|
||||||
|
options = {
|
||||||
|
-- Disable sections and component separators
|
||||||
|
component_separators = '',
|
||||||
|
section_separators = '',
|
||||||
|
theme = 'gruvbox_dark', -- Using gruvbox_dark as the base theme
|
||||||
|
-- Theme can also be configured as shown in the original Eviline config
|
||||||
|
-- theme = {
|
||||||
|
-- normal = { c = { fg = colors.fg, bg = colors.bg } },
|
||||||
|
-- inactive = { c = { fg = colors.fg, bg = colors.bg } },
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
-- these are to remove the defaults
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
-- These will be filled later
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {},
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
-- these are to remove the defaults
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Inserts a component in lualine_c at left section
|
||||||
|
local function ins_left(component)
|
||||||
|
table.insert(config.sections.lualine_c, component)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Inserts a component in lualine_x at right section
|
||||||
|
local function ins_right(component)
|
||||||
|
table.insert(config.sections.lualine_x, component)
|
||||||
|
end
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
function()
|
||||||
|
return '▊'
|
||||||
|
end,
|
||||||
|
color = { fg = colors.blue }, -- Sets highlighting of component
|
||||||
|
padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
-- mode component
|
||||||
|
function()
|
||||||
|
return ''
|
||||||
|
end,
|
||||||
|
color = function()
|
||||||
|
-- auto change color according to neovims mode
|
||||||
|
local mode_color = {
|
||||||
|
n = colors.red,
|
||||||
|
i = colors.green,
|
||||||
|
v = colors.blue,
|
||||||
|
['␖'] = colors.blue,
|
||||||
|
V = colors.blue,
|
||||||
|
c = colors.magenta,
|
||||||
|
no = colors.red,
|
||||||
|
s = colors.orange,
|
||||||
|
S = colors.orange,
|
||||||
|
['␓'] = colors.orange,
|
||||||
|
ic = colors.yellow,
|
||||||
|
R = colors.violet,
|
||||||
|
Rv = colors.violet,
|
||||||
|
cv = colors.red,
|
||||||
|
ce = colors.red,
|
||||||
|
r = colors.cyan,
|
||||||
|
rm = colors.cyan,
|
||||||
|
['r?'] = colors.cyan,
|
||||||
|
['!'] = colors.red,
|
||||||
|
t = colors.red,
|
||||||
|
}
|
||||||
|
return { fg = mode_color[vim.fn.mode()] }
|
||||||
|
end,
|
||||||
|
padding = { right = 1 },
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
-- filesize component
|
||||||
|
'filesize',
|
||||||
|
cond = conditions.buffer_not_empty,
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
'filename',
|
||||||
|
cond = conditions.buffer_not_empty,
|
||||||
|
color = { fg = colors.magenta, gui = 'bold' },
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left { 'location' }
|
||||||
|
|
||||||
|
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
'diagnostics',
|
||||||
|
sources = { 'nvim_diagnostic' },
|
||||||
|
symbols = { error = ' ', warn = ' ', info = ' ' },
|
||||||
|
diagnostics_color = {
|
||||||
|
error = { fg = colors.red },
|
||||||
|
warn = { fg = colors.yellow },
|
||||||
|
info = { fg = colors.cyan },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Insert mid section. You can make any number of sections in neovim :)
|
||||||
|
-- for lualine it's any number greater then 2
|
||||||
|
ins_left {
|
||||||
|
function()
|
||||||
|
return '%='
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_left {
|
||||||
|
-- Lsp server name .
|
||||||
|
function()
|
||||||
|
local msg = 'No Active Lsp'
|
||||||
|
local buf_ft = vim.api.nvim_get_option_value('filetype', { buf = 0 })
|
||||||
|
local clients = vim.lsp.get_clients()
|
||||||
|
if next(clients) == nil then
|
||||||
|
return msg
|
||||||
|
end
|
||||||
|
for _, client in ipairs(clients) do
|
||||||
|
local filetypes = client.config.filetypes
|
||||||
|
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||||
|
return client.name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return msg
|
||||||
|
end,
|
||||||
|
icon = ' LSP:',
|
||||||
|
color = { fg = '#ffffff', gui = 'bold' },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Add components to right sections
|
||||||
|
ins_right {
|
||||||
|
'o:encoding', -- option component same as &encoding in viml
|
||||||
|
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||||
|
cond = conditions.hide_in_width,
|
||||||
|
color = { fg = colors.green, gui = 'bold' },
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'fileformat',
|
||||||
|
fmt = string.upper,
|
||||||
|
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||||
|
color = { fg = colors.green, gui = 'bold' },
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'branch',
|
||||||
|
icon = '',
|
||||||
|
color = { fg = colors.violet, gui = 'bold' },
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
'diff',
|
||||||
|
-- Is it me or the symbol for modified us really weird
|
||||||
|
symbols = { added = ' ', modified = ' ', removed = ' ' },
|
||||||
|
diff_color = {
|
||||||
|
added = { fg = colors.green },
|
||||||
|
modified = { fg = colors.orange },
|
||||||
|
removed = { fg = colors.red },
|
||||||
|
},
|
||||||
|
cond = conditions.hide_in_width,
|
||||||
|
}
|
||||||
|
|
||||||
|
ins_right {
|
||||||
|
function()
|
||||||
|
return '▊'
|
||||||
|
end,
|
||||||
|
color = { fg = colors.blue },
|
||||||
|
padding = { left = 1 },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Now don't forget to initialize lualine
|
||||||
|
require('lualine').setup(config)
|
||||||
|
end
|
||||||
|
}
|
||||||
13
nvim/lua/plugins/neo-tree.lua
Normal file
13
nvim/lua/plugins/neo-tree.lua
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
return {
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
branch = "v3.x",
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
vim.keymap.set("n", "<C-n>", ":Neotree filesystem reveal left<CR>", {})
|
||||||
|
vim.keymap.set("n", "<leader>bf", ":Neotree buffers reveal float<CR>", {})
|
||||||
|
end,
|
||||||
|
}
|
||||||
16
nvim/lua/plugins/none-ls.lua
Normal file
16
nvim/lua/plugins/none-ls.lua
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
return {
|
||||||
|
"nvimtools/none-ls.nvim",
|
||||||
|
config = function()
|
||||||
|
local null_ls = require("null-ls")
|
||||||
|
null_ls.setup({
|
||||||
|
sources = {
|
||||||
|
null_ls.builtins.formatting.stylua,
|
||||||
|
null_ls.builtins.formatting.prettier,
|
||||||
|
null_ls.builtins.formatting.black,
|
||||||
|
null_ls.builtins.formatting.isort,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<leader>gf", vim.lsp.buf.format, {})
|
||||||
|
end,
|
||||||
|
}
|
||||||
18
nvim/lua/plugins/nvim-tmux-naviation.lua
Normal file
18
nvim/lua/plugins/nvim-tmux-naviation.lua
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
return {
|
||||||
|
"christoomey/vim-tmux-navigator",
|
||||||
|
cmd = {
|
||||||
|
"TmuxNavigateLeft",
|
||||||
|
"TmuxNavigateDown",
|
||||||
|
"TmuxNavigateUp",
|
||||||
|
"TmuxNavigateRight",
|
||||||
|
"TmuxNavigatePrevious",
|
||||||
|
"TmuxNavigatorProcessList",
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
||||||
|
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
||||||
|
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
||||||
|
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
||||||
|
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
||||||
|
},
|
||||||
|
}
|
||||||
46
nvim/lua/plugins/snacks.lua
Normal file
46
nvim/lua/plugins/snacks.lua
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
return {
|
||||||
|
"folke/snacks.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"echasnovski/mini.icons",
|
||||||
|
},
|
||||||
|
priority = 1000,
|
||||||
|
lazy = false,
|
||||||
|
opts = {
|
||||||
|
bigfile = { enabled = true },
|
||||||
|
dashboard = {
|
||||||
|
enabled = true,
|
||||||
|
preset = {
|
||||||
|
header = [[
|
||||||
|
|
||||||
|
████ ██████ █████ ██
|
||||||
|
███████████ █████
|
||||||
|
█████████ ███████████████████ ███ ███████████
|
||||||
|
█████████ ███ █████████████ █████ ██████████████
|
||||||
|
█████████ ██████████ █████████ █████ █████ ████ █████
|
||||||
|
███████████ ███ ███ █████████ █████ █████ ████ █████
|
||||||
|
██████ █████████████████████ ████ █████ █████ ████ ██████
|
||||||
|
]],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
indent = { enabled = true },
|
||||||
|
input = { enabled = true },
|
||||||
|
git = { enabled = true },
|
||||||
|
picker = { enabled = true },
|
||||||
|
notifier = { enabled = true },
|
||||||
|
quickfile = { enabled = true },
|
||||||
|
scroll = { enabled = false },
|
||||||
|
statuscolumn = { enabled = true },
|
||||||
|
words = { enabled = true },
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
{ "<leader>sf", function() Snacks.scratch() end, desc = "Toggle Scratch Buffer" },
|
||||||
|
{ "<leader>S", function() Snacks.scratch.select() end, desc = "Select Scratch Buffer" },
|
||||||
|
{ "<leader>gl", function() Snacks.lazygit.log_file() end, desc = "Lazygit Log (cwd)" },
|
||||||
|
{ "<leader>lg", function() Snacks.lazygit() end, desc = "Lazygit" },
|
||||||
|
{ "<C-p>", function() Snacks.picker.pick("files") end, desc = "Find Files" },
|
||||||
|
{ "<leader><leader>", function() Snacks.picker.recent() end, desc = "Recent Files" },
|
||||||
|
{ "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" },
|
||||||
|
{ "<leader>fg", function() Snacks.picker.grep() end, desc = "Grep Files" },
|
||||||
|
{ "<C-n>", function() Snacks.explorer() end, desc = "Explorer" },
|
||||||
|
}
|
||||||
|
}
|
||||||
25
nvim/lua/plugins/telescope.lua
Normal file
25
nvim/lua/plugins/telescope.lua
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope-ui-select.nvim",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
tag = "0.1.5",
|
||||||
|
dependencies = { "nvim-lua/plenary.nvim" },
|
||||||
|
config = function()
|
||||||
|
require("telescope").setup({
|
||||||
|
extensions = {
|
||||||
|
["ui-select"] = {
|
||||||
|
require("telescope.themes").get_dropdown({}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
local builtin = require("telescope.builtin")
|
||||||
|
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
|
||||||
|
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
||||||
|
vim.keymap.set("n", "<leader><leader>", builtin.oldfiles, {})
|
||||||
|
|
||||||
|
require("telescope").load_extension("ui-select")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
14
nvim/lua/plugins/treesitter.lua
Normal file
14
nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
local config = require("nvim-treesitter.configs")
|
||||||
|
config.setup({
|
||||||
|
auto_install = true,
|
||||||
|
highlight = { enable = true },
|
||||||
|
indent = { enable = true },
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
||||||
|
}
|
||||||
14
nvim/lua/plugins/vim-test.lua
Normal file
14
nvim/lua/plugins/vim-test.lua
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
return {
|
||||||
|
"vim-test/vim-test",
|
||||||
|
dependencies = {
|
||||||
|
"preservim/vimux"
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
vim.keymap.set("n", "<leader>t", ":TestNearest<CR>", {})
|
||||||
|
vim.keymap.set("n", "<leader>T", ":TestFile<CR>", {})
|
||||||
|
vim.keymap.set("n", "<leader>a", ":TestSuite<CR>", {})
|
||||||
|
vim.keymap.set("n", "<leader>l", ":TestLast<CR>", {})
|
||||||
|
vim.keymap.set("n", "<leader>g", ":TestVisit<CR>", {})
|
||||||
|
vim.cmd("let test#strategy = 'vimux'")
|
||||||
|
end,
|
||||||
|
}
|
||||||
12
nvim/lua/vim-options.lua
Normal file
12
nvim/lua/vim-options.lua
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
vim.cmd("set expandtab")
|
||||||
|
vim.cmd("set tabstop=2")
|
||||||
|
vim.cmd("set softtabstop=2")
|
||||||
|
vim.cmd("set shiftwidth=2")
|
||||||
|
vim.g.mapleader= " "
|
||||||
|
vim.opt.relativenumber = true
|
||||||
|
vim.opt.nu = true
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<c-k>', ':wincmd k<CR>')
|
||||||
|
vim.keymap.set('n', '<c-j>', ':wincmd j<CR>')
|
||||||
|
vim.keymap.set('n', '<c-h>', ':wincmd h<CR>')
|
||||||
|
vim.keymap.set('n', '<c-l>', ':wincmd l<CR>')
|
||||||
8
pavucontrol.ini
Normal file
8
pavucontrol.ini
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[window]
|
||||||
|
width=500
|
||||||
|
height=400
|
||||||
|
sinkInputType=1
|
||||||
|
sourceOutputType=1
|
||||||
|
sinkType=0
|
||||||
|
sourceType=1
|
||||||
|
showVolumeMeters=1
|
||||||
489
waybar/config.jsonc
Normal file
489
waybar/config.jsonc
Normal file
@@ -0,0 +1,489 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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
|
||||||
|
"custom/wireguard", // wireguard
|
||||||
|
"bluetooth", // bluetooth
|
||||||
|
"custom/update", // system update
|
||||||
|
"custom/right5"
|
||||||
|
],
|
||||||
|
|
||||||
|
"modules-right": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#458588'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#98971a'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#98971a'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#d5c4a1'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#b16286'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#458588'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#458588'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#458588'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#98971a'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#cc241d'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#date": {
|
||||||
|
"format": " {:%m-%d}",
|
||||||
|
"tooltip-format": "<tt>{calendar}</tt>",
|
||||||
|
|
||||||
|
"calendar": {
|
||||||
|
"mode": "month",
|
||||||
|
"mode-mon-col": 6,
|
||||||
|
"weeks-pos": "right",
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/wireguard": {
|
||||||
|
"format": "{}",
|
||||||
|
"return-type": "json",
|
||||||
|
"interval": 10,
|
||||||
|
"exec": "~/.config/waybar/scripts/wireguard-status.sh",
|
||||||
|
"tooltip": true
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 180,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/config.jsonc.original
Normal file
478
waybar/config.jsonc.original
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#8aadf4'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#ed8796'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#ed8796'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#f5a97f'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#8aadf4'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#a6da95'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#a6da95'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#a6da95'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#a6da95'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#a6da95'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#a6da95'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#a5adcb'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#f5a97f'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#c6a0f6'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#8aadf4'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#a6da95'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#ed8796'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#b7bdf8'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#a5adcb' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#ed8796'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#a6da95'> </span>",
|
||||||
|
"firefox": "<span foreground='#ed8796'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#b7bdf8'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
80
waybar/scripts/battery-level.sh
Executable file
80
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
waybar/scripts/battery-state.sh
Executable file
50
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
waybar/scripts/bluetooth-menu.sh
Executable file
106
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
waybar/scripts/brightness-control.sh
Executable file
92
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}\"}"
|
||||||
67
waybar/scripts/cpu-temp.sh
Executable file
67
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
waybar/scripts/current-theme.sh
Executable file
24
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\"}"
|
||||||
30
waybar/scripts/power-menu.sh
Executable file
30
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
waybar/scripts/system-update.sh
Executable file
86
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
|
||||||
54
waybar/scripts/theme-switcher.sh
Executable file
54
waybar/scripts/theme-switcher.sh
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
WAYBAR_CSS_DIR="$HOME/.config/waybar/themes/css"
|
||||||
|
WAYBAR_CSS_FILE="$HOME/.config/waybar/theme.css"
|
||||||
|
WAYBAR_JSONC_DIR="$HOME/.config/waybar/themes/jsonc"
|
||||||
|
WAYBAR_JSONC_FILE="$HOME/.config/waybar/config.jsonc"
|
||||||
|
ROFI_THEMES_DIR="$HOME/.config/rofi/themes"
|
||||||
|
ROFI_THEME_FILE="$HOME/.config/rofi/theme.rasi"
|
||||||
|
CURRENT_THEME_FILE="$HOME/.config/waybar/themes/current-theme"
|
||||||
|
|
||||||
|
for dir in "$WAYBAR_CSS_DIR" "$WAYBAR_JSONC_DIR" "$ROFI_THEMES_DIR"; do
|
||||||
|
[[ ! -d "$dir" ]] && echo "Error: $dir not found" && exit 1
|
||||||
|
done
|
||||||
|
|
||||||
|
# Get all themes
|
||||||
|
waybar_css=("$WAYBAR_CSS_DIR"/*.css)
|
||||||
|
waybar_jsonc=("$WAYBAR_JSONC_DIR"/*.jsonc)
|
||||||
|
rofi_themes=("$ROFI_THEMES_DIR"/*.rasi)
|
||||||
|
|
||||||
|
if [[ ${#waybar_css[@]} -eq 0 || ${#waybar_jsonc[@]} -eq 0 || ${#rofi_themes[@]} -eq 0 ]]; then
|
||||||
|
echo "Error: No themes found in one of the directories"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the current theme
|
||||||
|
current_theme=$(cat "$CURRENT_THEME_FILE" 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
# Find the index of the current theme
|
||||||
|
next_theme_index=0
|
||||||
|
for i in "${!waybar_css[@]}"; do
|
||||||
|
[[ "${waybar_css[$i]}" == "$current_theme" ]] && next_theme_index=$(((i + 1) % ${#waybar_css[@]})) && break
|
||||||
|
done
|
||||||
|
|
||||||
|
# Get the new theme
|
||||||
|
new_waybar_css="${waybar_css[$next_theme_index]}"
|
||||||
|
new_waybar_jsonc="${waybar_jsonc[$next_theme_index]}"
|
||||||
|
new_rofi_theme="${rofi_themes[$next_theme_index]}"
|
||||||
|
|
||||||
|
# Save the new theme
|
||||||
|
echo "$new_waybar_css" >"$CURRENT_THEME_FILE"
|
||||||
|
|
||||||
|
declare -A theme_files=(
|
||||||
|
["$new_waybar_css"]="$WAYBAR_CSS_FILE"
|
||||||
|
["$new_waybar_jsonc"]="$WAYBAR_JSONC_FILE"
|
||||||
|
["$new_rofi_theme"]="$ROFI_THEME_FILE"
|
||||||
|
)
|
||||||
|
|
||||||
|
for src in "${!theme_files[@]}"; do
|
||||||
|
cp "$src" "${theme_files[$src]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Restart Waybar to apply changes
|
||||||
|
killall waybar || true
|
||||||
|
nohup waybar --config "$HOME/.config/waybar/config.jsonc" --style "$HOME/.config/waybar/style.css" >/dev/null 2>&1 &
|
||||||
123
waybar/scripts/volume-control.sh
Executable file
123
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
waybar/scripts/wifi-menu.sh
Executable file
126
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
|
||||||
71
waybar/scripts/wifi-status.sh
Executable file
71
waybar/scripts/wifi-status.sh
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
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"
|
||||||
|
security=$(echo "$wifi_info" | awk -F: '{print $4}')
|
||||||
|
signal=$(echo "$wifi_info" | awk -F: '{print $3}')
|
||||||
|
|
||||||
|
# Get active WiFi device, ignoring WireGuard interfaces (wg0, wg1, wg2)
|
||||||
|
active_device=$(nmcli -t -f DEVICE,TYPE,STATE device status |
|
||||||
|
grep -E 'wifi:connected$' |
|
||||||
|
grep -v -E '^(wg0|wg1|wg2):' |
|
||||||
|
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')
|
||||||
|
|
||||||
|
line=$(nmcli -e no -t -f active,bssid,chan,freq device wifi | grep "^yes")
|
||||||
|
|
||||||
|
chan=$(echo "$line" | awk -F':' '{print $8}')
|
||||||
|
freq=$(echo "$line" | awk -F':' '{print $9}')
|
||||||
|
chan="$chan ($freq)"
|
||||||
|
|
||||||
|
# Get the current Wi-Fi ESSID
|
||||||
|
essid=$(echo "$wifi_info" | awk -F: '{print $2}')
|
||||||
|
|
||||||
|
tooltip=":: ${essid}"
|
||||||
|
tooltip+="\nIP Address: ${ip_address}"
|
||||||
|
tooltip+="\nSecurity: ${security}"
|
||||||
|
tooltip+="\nChannel: ${chan}"
|
||||||
|
tooltip+="\nStrength: ${signal} / 100"
|
||||||
|
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}\"}"
|
||||||
43
waybar/scripts/wireguard-status.sh
Executable file
43
waybar/scripts/wireguard-status.sh
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# WireGuard status using ip command (no wg show needed)
|
||||||
|
ICON_ACTIVE="" # Shield with checkmark
|
||||||
|
ICON_INACTIVE="" # Shield disabled
|
||||||
|
|
||||||
|
# Get all WireGuard interfaces
|
||||||
|
wg_interfaces=$(ip a | grep -o 'wg[0-9]\+' | sort -u)
|
||||||
|
|
||||||
|
active_info=""
|
||||||
|
tooltip="<b>WireGuard Status</b>"
|
||||||
|
|
||||||
|
for interface in $wg_interfaces; do
|
||||||
|
# Check if interface has an IP address
|
||||||
|
ip_addr=$(ip -4 addr show dev "$interface" | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
||||||
|
|
||||||
|
if [ -n "$ip_addr" ]; then
|
||||||
|
# Interface is active
|
||||||
|
if [ -z "$active_info" ]; then
|
||||||
|
active_info="%{F#a3be8c}$ICON_ACTIVE%{F-} $interface:$ip_addr"
|
||||||
|
else
|
||||||
|
active_info+=" $interface:$ip_addr"
|
||||||
|
fi
|
||||||
|
tooltip+="\n\n<b>$interface</b>"
|
||||||
|
tooltip+="\n<b>Status:</b> <span color='#a3be8c'>Active</span>"
|
||||||
|
tooltip+="\n<b>IP:</b> $ip_addr"
|
||||||
|
else
|
||||||
|
# Interface exists but inactive
|
||||||
|
tooltip+="\n\n<b>$interface</b>"
|
||||||
|
tooltip+="\n<b>Status:</b> <span color='#bf616a'>Inactive</span>"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$wg_interfaces" ]; then
|
||||||
|
# No WireGuard interfaces found
|
||||||
|
echo "{\"text\":\"$ICON_INACTIVE\",\"tooltip\":\"No WireGuard interfaces configured\"}"
|
||||||
|
elif [ -z "$active_info" ]; then
|
||||||
|
# Interfaces exist but none active
|
||||||
|
echo "{\"text\":\"$ICON_INACTIVE\",\"tooltip\":\"$tooltip\"}"
|
||||||
|
else
|
||||||
|
# Active interfaces found
|
||||||
|
echo "{\"text\":\"$ICON_ACTIVE\",\"tooltip\":\"$tooltip\"}"
|
||||||
|
fi
|
||||||
476
waybar/style.css
Normal file
476
waybar/style.css
Normal file
@@ -0,0 +1,476 @@
|
|||||||
|
@import "theme.css";
|
||||||
|
|
||||||
|
* {
|
||||||
|
min-height: 0;
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------- MAIN BACKGROUND --- */
|
||||||
|
|
||||||
|
window#waybar>box {
|
||||||
|
background: @main-bg;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- DROP SHADOW --- */
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: @shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ TOOLTIPS --- */
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: @main-bg;
|
||||||
|
border: 1.5px solid @main-br;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: @main-fg;
|
||||||
|
margin: -1.5px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- WORKSPACE BUTTONS and LABELS --- */
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------- GENERAL --- */
|
||||||
|
|
||||||
|
#custom-ws,
|
||||||
|
#workspaces,
|
||||||
|
#window,
|
||||||
|
#custom-temperature,
|
||||||
|
#memory,
|
||||||
|
#cpu,
|
||||||
|
#idle_inhibitor,
|
||||||
|
#clock,
|
||||||
|
#custom-wifi,
|
||||||
|
#custom-wireguard,
|
||||||
|
#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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------- MODULES --- */
|
||||||
|
|
||||||
|
/* --------------------------------------------------------- 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------------------------- tray --- */
|
||||||
|
|
||||||
|
#custom-wifi {
|
||||||
|
background: @tray;
|
||||||
|
padding: 0 8px 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-wifi:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-wireguard {
|
||||||
|
background: @tray;
|
||||||
|
padding: 0 8px 0 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-wireguard:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth {
|
||||||
|
background: @tray;
|
||||||
|
padding-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#bluetooth:hover {
|
||||||
|
color: @hover-fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
#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: 10px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label,
|
||||||
|
#window label,
|
||||||
|
#mpris {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------- left and 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: 14.68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------------- left and right inverse --- */
|
||||||
|
|
||||||
|
#custom-leftin1,
|
||||||
|
#custom-leftin2,
|
||||||
|
#custom-rightin1 {
|
||||||
|
font-size: 15.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------- distro --- */
|
||||||
|
|
||||||
|
#custom-distro {
|
||||||
|
font-size: 14.6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-left5,
|
||||||
|
#custom-right2 {
|
||||||
|
font-size: 15.68px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Adjust these properties as well to keep the design
|
||||||
|
consistent.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
border-radius: 8px;
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
padding: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-power {
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 0 6px 0 9px;
|
||||||
|
}
|
||||||
75
waybar/theme.css
Normal file
75
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 @black;
|
||||||
|
@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;
|
||||||
75
waybar/themes/css/catppuccin-frappe.css
Normal file
75
waybar/themes/css/catppuccin-frappe.css
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* Catppuccin Frappe */
|
||||||
|
|
||||||
|
@define-color rosewater #f2d5cf;
|
||||||
|
@define-color flamingo #eebebe;
|
||||||
|
@define-color pink #f4b8e4;
|
||||||
|
@define-color mauve #ca9ee6;
|
||||||
|
@define-color red #e78284;
|
||||||
|
@define-color maroon #ea999c;
|
||||||
|
@define-color peach #ef9f76;
|
||||||
|
@define-color yellow #e5c890;
|
||||||
|
@define-color green #a6d189;
|
||||||
|
@define-color teal #81c8be;
|
||||||
|
@define-color sky #99d1db;
|
||||||
|
@define-color sapphire #85c1dc;
|
||||||
|
@define-color blue #8caaee;
|
||||||
|
@define-color lavender #babbf1;
|
||||||
|
@define-color text #c6d0f5;
|
||||||
|
@define-color subtext1 #b5bfe2;
|
||||||
|
@define-color subtext0 #a5adce;
|
||||||
|
@define-color overlay2 #949cbb;
|
||||||
|
@define-color overlay1 #838ba7;
|
||||||
|
@define-color overlay0 #737994;
|
||||||
|
@define-color surface2 #626880;
|
||||||
|
@define-color surface1 #51576d;
|
||||||
|
@define-color surface0 #414559;
|
||||||
|
@define-color base #303446;
|
||||||
|
@define-color mantle #292c3c;
|
||||||
|
@define-color crust #232634;
|
||||||
|
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color black #000000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Main Colors */
|
||||||
|
|
||||||
|
@define-color shadow shade(@crust, 0.5);
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-br @text;
|
||||||
|
|
||||||
|
@define-color active-bg @overlay2;
|
||||||
|
@define-color active-fg @crust;
|
||||||
|
|
||||||
|
@define-color hover-bg @surface0;
|
||||||
|
@define-color hover-fg alpha(@text, 0.75);
|
||||||
|
|
||||||
|
/* Module Colors */
|
||||||
|
|
||||||
|
@define-color module-fg @text;
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color distro-fg @black;
|
||||||
|
@define-color distro-bg @overlay2;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
|
||||||
|
@define-color pulseaudio @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
@define-color power @overlay2;
|
||||||
|
|
||||||
|
/* State Colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @text;
|
||||||
75
waybar/themes/css/catppuccin-latte.css
Normal file
75
waybar/themes/css/catppuccin-latte.css
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* Catppuccin Latte */
|
||||||
|
|
||||||
|
@define-color rosewater #dc8a78;
|
||||||
|
@define-color flamingo #dd7878;
|
||||||
|
@define-color pink #ea76cb;
|
||||||
|
@define-color mauve #8839ef;
|
||||||
|
@define-color red #d20f39;
|
||||||
|
@define-color maroon #e64553;
|
||||||
|
@define-color peach #fe640b;
|
||||||
|
@define-color yellow #df8e1d;
|
||||||
|
@define-color green #40a02b;
|
||||||
|
@define-color teal #179299;
|
||||||
|
@define-color sky #04a5e5;
|
||||||
|
@define-color sapphire #209fb5;
|
||||||
|
@define-color blue #1e66f5;
|
||||||
|
@define-color lavender #7287fd;
|
||||||
|
@define-color text #4c4f69;
|
||||||
|
@define-color subtext1 #5c5f77;
|
||||||
|
@define-color subtext0 #6c6f85;
|
||||||
|
@define-color overlay2 #7c7f93;
|
||||||
|
@define-color overlay1 #8c8fa1;
|
||||||
|
@define-color overlay0 #9ca0b0;
|
||||||
|
@define-color surface2 #acb0be;
|
||||||
|
@define-color surface1 #bcc0cc;
|
||||||
|
@define-color surface0 #ccd0da;
|
||||||
|
@define-color base #eff1f5;
|
||||||
|
@define-color mantle #e6e9ef;
|
||||||
|
@define-color crust #dce0e8;
|
||||||
|
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color black #000000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Main Colors */
|
||||||
|
|
||||||
|
@define-color shadow shade(@crust, 0.5);
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-br @text;
|
||||||
|
|
||||||
|
@define-color active-bg @overlay2;
|
||||||
|
@define-color active-fg @crust;
|
||||||
|
|
||||||
|
@define-color hover-bg @surface0;
|
||||||
|
@define-color hover-fg alpha(@text, 0.75);
|
||||||
|
|
||||||
|
/* Module Colors */
|
||||||
|
|
||||||
|
@define-color module-fg @text;
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color distro-fg @black;
|
||||||
|
@define-color distro-bg @overlay2;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
|
||||||
|
@define-color pulseaudio @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
@define-color power @overlay2;
|
||||||
|
|
||||||
|
/* State Colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @text;
|
||||||
75
waybar/themes/css/catppuccin-macchiato.css
Normal file
75
waybar/themes/css/catppuccin-macchiato.css
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* Catppuccin Macchiato */
|
||||||
|
|
||||||
|
@define-color rosewater #f4dbd6;
|
||||||
|
@define-color flamingo #f0c6c6;
|
||||||
|
@define-color pink #f5bde6;
|
||||||
|
@define-color mauve #c6a0f6;
|
||||||
|
@define-color red #ed8796;
|
||||||
|
@define-color maroon #ee99a0;
|
||||||
|
@define-color peach #f5a97f;
|
||||||
|
@define-color yellow #eed49f;
|
||||||
|
@define-color green #a6da95;
|
||||||
|
@define-color teal #8bd5ca;
|
||||||
|
@define-color sky #91d7e3;
|
||||||
|
@define-color sapphire #7dc4e4;
|
||||||
|
@define-color blue #8aadf4;
|
||||||
|
@define-color lavender #b7bdf8;
|
||||||
|
@define-color text #cad3f5;
|
||||||
|
@define-color subtext1 #b8c0e0;
|
||||||
|
@define-color subtext0 #a5adcb;
|
||||||
|
@define-color overlay2 #939ab7;
|
||||||
|
@define-color overlay1 #8087a2;
|
||||||
|
@define-color overlay0 #6e738d;
|
||||||
|
@define-color surface2 #5b6078;
|
||||||
|
@define-color surface1 #494d64;
|
||||||
|
@define-color surface0 #363a4f;
|
||||||
|
@define-color base #24273a;
|
||||||
|
@define-color mantle #1e2030;
|
||||||
|
@define-color crust #181926;
|
||||||
|
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color black #000000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Main Colors */
|
||||||
|
|
||||||
|
@define-color shadow shade(@crust, 0.5);
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-br @text;
|
||||||
|
|
||||||
|
@define-color active-bg @overlay2;
|
||||||
|
@define-color active-fg @crust;
|
||||||
|
|
||||||
|
@define-color hover-bg @surface0;
|
||||||
|
@define-color hover-fg alpha(@text, 0.75);
|
||||||
|
|
||||||
|
/* Module Colors */
|
||||||
|
|
||||||
|
@define-color module-fg @text;
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color distro-fg @black;
|
||||||
|
@define-color distro-bg @overlay2;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
|
||||||
|
@define-color pulseaudio @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
@define-color power @overlay2;
|
||||||
|
|
||||||
|
/* State Colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @text;
|
||||||
75
waybar/themes/css/catppuccin-mocha.css
Normal file
75
waybar/themes/css/catppuccin-mocha.css
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* Catppuccin Mocha */
|
||||||
|
|
||||||
|
@define-color rosewater #f5e0dc;
|
||||||
|
@define-color flamingo #f2cdcd;
|
||||||
|
@define-color pink #f5c2e7;
|
||||||
|
@define-color mauve #cba6f7;
|
||||||
|
@define-color red #f38ba8;
|
||||||
|
@define-color maroon #eba0ac;
|
||||||
|
@define-color peach #fab387;
|
||||||
|
@define-color yellow #f9e2af;
|
||||||
|
@define-color green #a6e3a1;
|
||||||
|
@define-color teal #94e2d5;
|
||||||
|
@define-color sky #89dceb;
|
||||||
|
@define-color sapphire #74c7ec;
|
||||||
|
@define-color blue #89b4fa;
|
||||||
|
@define-color lavender #b4befe;
|
||||||
|
@define-color text #cdd6f4;
|
||||||
|
@define-color subtext1 #bac2de;
|
||||||
|
@define-color subtext0 #a6adc8;
|
||||||
|
@define-color overlay2 #9399b2;
|
||||||
|
@define-color overlay1 #7f849c;
|
||||||
|
@define-color overlay0 #6c7086;
|
||||||
|
@define-color surface2 #585b70;
|
||||||
|
@define-color surface1 #45475a;
|
||||||
|
@define-color surface0 #313244;
|
||||||
|
@define-color base #1e1e2e;
|
||||||
|
@define-color mantle #181825;
|
||||||
|
@define-color crust #11111b;
|
||||||
|
|
||||||
|
@define-color white #ffffff;
|
||||||
|
@define-color black #000000;
|
||||||
|
|
||||||
|
/*
|
||||||
|
bg - background
|
||||||
|
fg - foreground
|
||||||
|
br - border
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Main Colors */
|
||||||
|
|
||||||
|
@define-color shadow shade(@crust, 0.5);
|
||||||
|
@define-color main-fg @text;
|
||||||
|
@define-color main-bg @crust;
|
||||||
|
@define-color main-br @text;
|
||||||
|
|
||||||
|
@define-color active-bg @overlay2;
|
||||||
|
@define-color active-fg @crust;
|
||||||
|
|
||||||
|
@define-color hover-bg @surface0;
|
||||||
|
@define-color hover-fg alpha(@text, 0.75);
|
||||||
|
|
||||||
|
/* Module Colors */
|
||||||
|
|
||||||
|
@define-color module-fg @text;
|
||||||
|
@define-color workspaces @mantle;
|
||||||
|
|
||||||
|
@define-color temperature @mantle;
|
||||||
|
@define-color memory @base;
|
||||||
|
@define-color cpu @surface0;
|
||||||
|
@define-color distro-fg @black;
|
||||||
|
@define-color distro-bg @overlay2;
|
||||||
|
@define-color time @surface0;
|
||||||
|
@define-color date @base;
|
||||||
|
@define-color tray @mantle;
|
||||||
|
|
||||||
|
@define-color pulseaudio @mantle;
|
||||||
|
@define-color backlight @base;
|
||||||
|
@define-color battery @surface0;
|
||||||
|
@define-color power @overlay2;
|
||||||
|
|
||||||
|
/* State Colors */
|
||||||
|
|
||||||
|
@define-color warning @yellow;
|
||||||
|
@define-color critical @red;
|
||||||
|
@define-color charging @text;
|
||||||
75
waybar/themes/css/gruvbox-dark.css
Normal file
75
waybar/themes/css/gruvbox-dark.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 @black;
|
||||||
|
@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;
|
||||||
75
waybar/themes/css/gruvbox-light.css
Normal file
75
waybar/themes/css/gruvbox-light.css
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* Gruvbox Light */
|
||||||
|
|
||||||
|
@define-color bg0_h #f9f5d7;
|
||||||
|
@define-color bg0 #fbf1c7;
|
||||||
|
@define-color bg1 #ebdbb2;
|
||||||
|
@define-color bg2 #d5c4a1;
|
||||||
|
@define-color bg3 #bdae93;
|
||||||
|
@define-color bg4 #a89984;
|
||||||
|
@define-color gray #928374;
|
||||||
|
@define-color fg4 #7c6f64;
|
||||||
|
@define-color fg3 #665c54;
|
||||||
|
@define-color fg2 #504945;
|
||||||
|
@define-color fg1 #3c3836;
|
||||||
|
@define-color fg0 #282828;
|
||||||
|
@define-color red #cc241d;
|
||||||
|
@define-color bright_red #9d0006;
|
||||||
|
@define-color green #98971a;
|
||||||
|
@define-color bright_green #79740e;
|
||||||
|
@define-color yellow #d79921;
|
||||||
|
@define-color bright_yellow #b57614;
|
||||||
|
@define-color blue #458588;
|
||||||
|
@define-color bright_blue #076678;
|
||||||
|
@define-color purple #b16286;
|
||||||
|
@define-color bright_purple #8f3f71;
|
||||||
|
@define-color aqua #689d6a;
|
||||||
|
@define-color bright_aqua #427b58;
|
||||||
|
@define-color orange #d65d0e;
|
||||||
|
@define-color bright_orange #af3a03;
|
||||||
|
|
||||||
|
@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 @black;
|
||||||
|
@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
waybar/themes/current-theme
Normal file
1
waybar/themes/current-theme
Normal file
@@ -0,0 +1 @@
|
|||||||
|
/home/saeijou/.config/waybar/themes/css/gruvbox-dark.css
|
||||||
478
waybar/themes/jsonc/catppuccin-frappe.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-frappe.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#8caaee'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#e78284'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#e78284'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#ef9f76'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#ef9f76'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#8caaee'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#8caaee'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#a6d189'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#a6d189'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#a6d189'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#a6d189'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#a6d189'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#a6d189'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#a5adce'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#ef9f76'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#ef9f76'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#ca9ee6'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#8caaee'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#8caaee'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#e78284'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#8caaee'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#a6d189'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#ef9f76'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#e78284'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#babbf1'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#a5adce' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#e78284'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#a6d189'> </span>",
|
||||||
|
"firefox": "<span foreground='#e78284'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#babbf1'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/themes/jsonc/catppuccin-latte.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-latte.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#1e66f5'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#d20f39'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#d20f39'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#fe640b'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#fe640b'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#1e66f5'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#1e66f5'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#40a02b'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#40a02b'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#40a02b'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#40a02b'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#40a02b'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#40a02b'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#6c6f85'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#fe640b'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#fe640b'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#8839ef'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#1e66f5'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#1e66f5'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#d20f39'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#1e66f5'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#40a02b'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#fe640b'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#d20f39'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#7287fd'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#6c6f85' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#d20f39'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#40a02b'> </span>",
|
||||||
|
"firefox": "<span foreground='#d20f39'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#7287fd'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/themes/jsonc/catppuccin-macchiato.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-macchiato.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#8aadf4'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#ed8796'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#ed8796'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#f5a97f'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#8aadf4'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#a6da95'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#a6da95'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#a6da95'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#a6da95'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#a6da95'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#a6da95'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#a5adcb'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#f5a97f'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#c6a0f6'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#8aadf4'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#ed8796'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#8aadf4'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#a6da95'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#f5a97f'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#ed8796'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#b7bdf8'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#a5adcb' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#ed8796'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#a6da95'> </span>",
|
||||||
|
"firefox": "<span foreground='#ed8796'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#b7bdf8'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/themes/jsonc/catppuccin-mocha.jsonc
Normal file
478
waybar/themes/jsonc/catppuccin-mocha.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#89b4fa'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#f38ba8'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#f38ba8'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#fab387'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#fab387'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#89b4fa'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#89b4fa'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#a6adc8'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#fab387'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#fab387'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#cba6f7'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#89b4fa'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#89b4fa'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#f38ba8'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#89b4fa'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#a6e3a1'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#fab387'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#f38ba8'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#b4befe'><b>{}</b></span>",
|
||||||
|
"weekdays":
|
||||||
|
"<span color='#a6adc8' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#f38ba8'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"mpris": {
|
||||||
|
"format": "{player_icon} {title} - {artist}",
|
||||||
|
"format-paused": "{status_icon} {title} - {artist}",
|
||||||
|
|
||||||
|
"player-icons": {
|
||||||
|
"default": " ",
|
||||||
|
"spotify": "<span foreground='#a6e3a1'> </span>",
|
||||||
|
"firefox": "<span foreground='#f38ba8'> </span>"
|
||||||
|
},
|
||||||
|
"status-icons": {
|
||||||
|
"paused": "<span color='#b4befe'>\u200A\u200A\u2009\u2009</span>"
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format": "Playing: {title} - {artist}",
|
||||||
|
"tooltip-format-paused": "Paused: {title} - {artist}",
|
||||||
|
"min-length": 5,
|
||||||
|
"max-length": 35
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/themes/jsonc/gruvbox-dark.jsonc
Normal file
478
waybar/themes/jsonc/gruvbox-dark.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#458588'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#98971a'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#98971a'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#d5c4a1'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#b16286'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#458588'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#458588'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#458588'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#98971a'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#cc241d'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
478
waybar/themes/jsonc/gruvbox-light.jsonc
Normal file
478
waybar/themes/jsonc/gruvbox-light.jsonc
Normal file
@@ -0,0 +1,478 @@
|
|||||||
|
{
|
||||||
|
"layer": "top",
|
||||||
|
"position": "top",
|
||||||
|
"mode": "dock",
|
||||||
|
"reload_style_on_change": true,
|
||||||
|
"gtk-layer-shell": true,
|
||||||
|
|
||||||
|
// <<--< Positions >-->>
|
||||||
|
|
||||||
|
"modules-left": [
|
||||||
|
"custom/ws", // window icon
|
||||||
|
"custom/left1",
|
||||||
|
|
||||||
|
"hyprland/workspaces", // workspaces
|
||||||
|
"custom/right1",
|
||||||
|
|
||||||
|
"custom/paddw",
|
||||||
|
"hyprland/window" // window title
|
||||||
|
],
|
||||||
|
|
||||||
|
"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": [
|
||||||
|
"mpris", // media info
|
||||||
|
|
||||||
|
"custom/left6",
|
||||||
|
"pulseaudio", // output device
|
||||||
|
|
||||||
|
"custom/left7",
|
||||||
|
"backlight", // brightness
|
||||||
|
|
||||||
|
"custom/left8",
|
||||||
|
"battery", // battery
|
||||||
|
|
||||||
|
"custom/leftin2",
|
||||||
|
"custom/power" // power button
|
||||||
|
],
|
||||||
|
|
||||||
|
// <<--< Modules >-->>
|
||||||
|
|
||||||
|
"custom/ws": {
|
||||||
|
"exec": "~/.config/waybar/scripts/current-theme.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": " ",
|
||||||
|
"on-click": "~/.config/waybar/scripts/theme-switcher.sh",
|
||||||
|
"min-length": 3,
|
||||||
|
"max-length": 3
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/workspaces": {
|
||||||
|
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||||
|
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||||
|
"persistent-workspaces": {
|
||||||
|
"1": [],
|
||||||
|
"2": [],
|
||||||
|
"3": [],
|
||||||
|
"4": [],
|
||||||
|
"5": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"hyprland/window": {
|
||||||
|
"format": "{}",
|
||||||
|
"tooltip": false,
|
||||||
|
"min-length": 5,
|
||||||
|
|
||||||
|
"rewrite": {
|
||||||
|
// Desktop
|
||||||
|
"":
|
||||||
|
"<span foreground='#458588'> </span> Hyprland",
|
||||||
|
|
||||||
|
// Terminal
|
||||||
|
"~": " Terminal",
|
||||||
|
"zsh": " Terminal",
|
||||||
|
"kitty": " Terminal",
|
||||||
|
|
||||||
|
"tmux(.*)":
|
||||||
|
"<span foreground='#a6e3a1'> </span> Tmux",
|
||||||
|
|
||||||
|
// Browser
|
||||||
|
|
||||||
|
"(.*)Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> Firefox",
|
||||||
|
"(.*) — Mozilla Firefox":
|
||||||
|
"<span foreground='#cc241d'> </span> $1",
|
||||||
|
|
||||||
|
"(.*)Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> Zen Browser",
|
||||||
|
"(.*) — Zen Browser":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
// Development
|
||||||
|
|
||||||
|
"(.*) - Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> $1",
|
||||||
|
"(.*)Visual Studio Code":
|
||||||
|
"<span foreground='#458588'> </span> Visual Studio Code",
|
||||||
|
|
||||||
|
"nvim":
|
||||||
|
"<span foreground='#98971a'> </span> Neovim",
|
||||||
|
"nvim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
"vim":
|
||||||
|
"<span foreground='#98971a'> </span> Vim",
|
||||||
|
"vim (.*)":
|
||||||
|
"<span foreground='#98971a'> </span> $1",
|
||||||
|
|
||||||
|
// Media
|
||||||
|
|
||||||
|
"(.*)Spotify":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify",
|
||||||
|
"(.*)Spotify Premium":
|
||||||
|
"<span foreground='#98971a'> </span> Spotify Premium",
|
||||||
|
|
||||||
|
"OBS(.*)":
|
||||||
|
"<span foreground='#504945'> </span> OBS Studio",
|
||||||
|
|
||||||
|
"VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> VLC Media Player",
|
||||||
|
"(.*) - VLC media player":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1",
|
||||||
|
|
||||||
|
"(.*) - mpv":
|
||||||
|
"<span foreground='#b16286'> </span> $1",
|
||||||
|
|
||||||
|
"qView": " qView",
|
||||||
|
|
||||||
|
"(.*).jpg": " $1.jpg",
|
||||||
|
"(.*).png": " $1.png",
|
||||||
|
"(.*).svg": " $1.svg",
|
||||||
|
|
||||||
|
// Social
|
||||||
|
|
||||||
|
"vesktop":
|
||||||
|
"<span foreground='#458588'> </span> Discord",
|
||||||
|
|
||||||
|
"• Discord(.*)": "Discord$1",
|
||||||
|
"(.*)Discord(.*)":
|
||||||
|
"<span foreground='#458588'> </span> $1Discord$2",
|
||||||
|
|
||||||
|
// Documents
|
||||||
|
|
||||||
|
"ONLYOFFICE Desktop Editors":
|
||||||
|
"<span foreground='#cc241d'> </span> OnlyOffice Desktop",
|
||||||
|
|
||||||
|
"(.*).docx":
|
||||||
|
"<span foreground='#458588'> </span> $1.docx",
|
||||||
|
"(.*).xlsx":
|
||||||
|
"<span foreground='#98971a'> </span> $1.xlsx",
|
||||||
|
"(.*).pptx":
|
||||||
|
"<span foreground='#d65d0e'> </span> $1.pptx",
|
||||||
|
"(.*).pdf":
|
||||||
|
"<span foreground='#cc241d'> </span> $1.pdf",
|
||||||
|
|
||||||
|
// System
|
||||||
|
"Authenticate": " Authenticate"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/temperature": {
|
||||||
|
"exec": "~/.config/waybar/scripts/cpu-temp.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"format": " {usage}%",
|
||||||
|
"tooltip": false,
|
||||||
|
"interval": 5,
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/distro": {
|
||||||
|
"format": " ",
|
||||||
|
"tooltip": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"idle_inhibitor": {
|
||||||
|
"format": "{icon}",
|
||||||
|
|
||||||
|
"format-icons": {
|
||||||
|
"activated": " ",
|
||||||
|
"deactivated": " "
|
||||||
|
},
|
||||||
|
|
||||||
|
"tooltip-format-activated": "Presentation Mode",
|
||||||
|
"tooltip-format-deactivated": "Idle Mode",
|
||||||
|
"start-activated": false
|
||||||
|
},
|
||||||
|
|
||||||
|
"clock#time": {
|
||||||
|
"format": "{:%H:%M}",
|
||||||
|
"tooltip": false,
|
||||||
|
// "tooltip-format": "Standard Time: {:%I:%M %p}",
|
||||||
|
"min-length": 6,
|
||||||
|
"max-length": 6
|
||||||
|
},
|
||||||
|
|
||||||
|
"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='#504945' font='7'>{}</span>",
|
||||||
|
"today":
|
||||||
|
"<span color='#cc241d'><b>{}</b></span>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"actions": {
|
||||||
|
"on-click": "mode",
|
||||||
|
"on-click-right": "mode"
|
||||||
|
},
|
||||||
|
|
||||||
|
"min-length": 8,
|
||||||
|
"max-length": 8
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"custom/update": {
|
||||||
|
"exec": "~/.config/waybar/scripts/system-update.sh",
|
||||||
|
"return-type": "json",
|
||||||
|
"format": "{}",
|
||||||
|
"on-click": "hyprctl dispatch exec '~/.config/waybar/scripts/system-update.sh up'",
|
||||||
|
"interval": 30,
|
||||||
|
"min-length": 1,
|
||||||
|
"max-length": 1
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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": {
|
||||||
|
"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
|
||||||
|
},
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
}
|
||||||
46
wofi/style.css
Normal file
46
wofi/style.css
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
window {
|
||||||
|
margin: 0px;
|
||||||
|
border: 2px solid #3c3836;
|
||||||
|
background-color: #282828;
|
||||||
|
font-family: "Fira Code", "JetBrains Mono", monospace;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: #ebdbb2;
|
||||||
|
background-color: #3c3836;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inner-box {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
#outer-box {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scroll {
|
||||||
|
margin: 0px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: #ebdbb2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected {
|
||||||
|
background-color: #458588;
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected #text {
|
||||||
|
color: #fbf1c7;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user