добавлены конфиги: Hyprland, Hyprpaper, Hyprlock, Waybar, Rofi
No files matched your search
|
After Width: | Height: | Size: 580 KiB |
|
After Width: | Height: | Size: 669 KiB |
|
After Width: | Height: | Size: 598 KiB |
|
After Width: | Height: | Size: 603 KiB |
|
After Width: | Height: | Size: 509 KiB |
|
After Width: | Height: | Size: 199 KiB |
@@ -0,0 +1,170 @@
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
|
||||
|
||||
|
||||
# Keybinds
|
||||
source = ~/.config/hypr/keybindings.conf
|
||||
|
||||
################2
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor = eDP-1,1920x1080@60,0x0,1
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
exec-once = hyprpaper
|
||||
exec-once = waybar -c $HOME/.config/waybar/config.jsonc -s $HOME/.config/waybar/styles.css
|
||||
exec-once = dunst
|
||||
exec-once = wl-paste --type text --watch cliphist store # clipboard store text data
|
||||
exec-once = wl-paste --type image --watch cliphist store # clipboard store image data
|
||||
|
||||
|
||||
#############################
|
||||
### 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 = 5
|
||||
gaps_out = 7
|
||||
|
||||
border_size = 3
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgb(9399b2) rgb(45475a) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true
|
||||
resize_corner = 4
|
||||
|
||||
layout = dwindle
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 13
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 0.97
|
||||
inactive_opacity = 0.95
|
||||
|
||||
drop_shadow = true
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = false
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = wind, 0.05, 0.9, 0.1, 1.05
|
||||
bezier = winIn, 0.1, 1.1, 0.1, 1.1
|
||||
bezier = winOut, 0.3, -0.3, 0, 1
|
||||
bezier = liner, 1, 1, 1, 1
|
||||
animation = windows, 1, 6, wind, slide
|
||||
animation = windowsIn, 1, 6, winIn, slide
|
||||
animation = windowsOut, 1, 5, winOut, slide
|
||||
animation = windowsMove, 1, 5, wind, slide
|
||||
# animation = border, 1, 1, liner
|
||||
# animation = borderangle, 1, 30, liner, loop
|
||||
animation = fade, 1, 10, default
|
||||
animation = workspaces, 1, 5, wind
|
||||
}
|
||||
|
||||
# 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 = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us,ru
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = grp:win_space_toggle
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
scroll_factor = 0.8
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.3
|
||||
}
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Floating windows
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
@@ -0,0 +1,69 @@
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/Pictures/Wallpapers/1.jpg
|
||||
|
||||
blur_passes = 1 # 0 disables blurring
|
||||
blur_size = 4
|
||||
noise = 0.0117
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
vibrancy = 0.1696
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 200, 50
|
||||
outline_thickness = 3
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||
outer_color = rgba(11111be6)
|
||||
inner_color = rgba(11111be6)
|
||||
font_color = rgba(cdd6f4ff)
|
||||
fade_on_empty = true
|
||||
fade_timeout = 3000 # 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
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
#clock
|
||||
text = cmd[update:1000] echo "$TIME"
|
||||
color = rgb(cdd6f4)
|
||||
font_size = 90
|
||||
font_family = Fira Semibold
|
||||
position = 0, 150
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 5
|
||||
shadow_size = 10
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
color = rgb(cdd6f4)
|
||||
font_size = 30
|
||||
font_family = Fira Semibold
|
||||
position = 0, 50
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 5
|
||||
shadow_size = 10
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
preload = $HOME/Pictures/Wallpapers/3.jpg
|
||||
|
||||
wallpaper = eDP-1,$HOME/Pictures/Wallpapers/3.jpg
|
||||
|
||||
#enable splash text rendering over the wallpaper
|
||||
splash = false
|
||||
@@ -0,0 +1,94 @@
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = rofi -show drun
|
||||
$editor = code
|
||||
$browser = brave
|
||||
|
||||
###################
|
||||
### 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, W, exec, $terminal
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, C, exec, $editor
|
||||
bind = $mainMod, B, exec, $browser
|
||||
bind = $mainMod, K, exec, keepassxc
|
||||
bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
||||
|
||||
bind = $mainMod, F2, exec, killall waybar && waybar -c $HOME/.config/waybar/config.jsonc -s $HOME/.config/waybar/styles.css && dunstify "Waybar restarted"
|
||||
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, D, togglesplit, # dwindle
|
||||
|
||||
# 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
|
||||
|
||||
# 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 @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 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# Screenshots
|
||||
bind = $mainMod, PRINT, exec, hyprshot -m window -o ~/Pictures/Screen # Screenshot a window
|
||||
bind = , PRINT, exec, hyprshot -m output -o ~/Pictures/Screen # Screenshot a monitor
|
||||
bind = $shiftMod, PRINT, exec, hyprshot -m region -o ~/Pictures/Screen # Screenshot a region
|
||||
@@ -0,0 +1 @@
|
||||
@theme "/home/rzx/.config/rofi/themes/launcher.rasi"
|
||||
@@ -0,0 +1,10 @@
|
||||
* {
|
||||
main-bg: #11111be6;
|
||||
main-fg: #cdd6f4ff;
|
||||
main-br: #cdd6f4ff;
|
||||
main-ex: #f5e0dcff;
|
||||
select-bg: #cdd6f4ff;
|
||||
select-fg: #11111bff;
|
||||
separatorcolor: transparent;
|
||||
border-color: transparent;
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
@import "~/.config/rofi/theme.rasi"
|
||||
|
||||
* {
|
||||
font: "Roboto 12";
|
||||
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
}
|
||||
|
||||
window {
|
||||
location: center;
|
||||
width: 480;
|
||||
border-radius: 24px;
|
||||
|
||||
background-color: @main-bg;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
background-color: @main-bg;
|
||||
border-color: @border-color;
|
||||
|
||||
border: 2px;
|
||||
border-radius: 10px;
|
||||
|
||||
padding: 8px 16px;
|
||||
spacing: 8px;
|
||||
children: [ entry ];
|
||||
}
|
||||
|
||||
entry {
|
||||
placeholder: "Search";
|
||||
placeholder-color: @main-fg;
|
||||
}
|
||||
|
||||
message {
|
||||
margin: 12px 0 0;
|
||||
border-radius: 16px;
|
||||
border-color: @main-br;
|
||||
background-color: @main-fg;
|
||||
}
|
||||
|
||||
textbox {
|
||||
padding: 8px 24px;
|
||||
}
|
||||
|
||||
listview {
|
||||
background-color: transparent;
|
||||
|
||||
margin: 12px 0 0;
|
||||
lines: 8;
|
||||
columns: 1;
|
||||
|
||||
fixed-height: false;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 8px 16px;
|
||||
spacing: 8px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
element normal active {
|
||||
text-color: @select-fg;
|
||||
}
|
||||
|
||||
element alternate active {
|
||||
text-color: @main-ex;
|
||||
}
|
||||
|
||||
element selected normal, element selected active {
|
||||
background-color: @select-bg;
|
||||
}
|
||||
|
||||
element-icon {
|
||||
size: 1em;
|
||||
vertical-align: 0.5;
|
||||
}
|
||||
|
||||
element-text {
|
||||
text-color: inherit;
|
||||
}
|
||||
|
||||
element selected {
|
||||
text-color: @select-fg;
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
// Config //
|
||||
configuration {
|
||||
modi: "drun";
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
@theme "~/.config/rofi/theme.rasi"
|
||||
|
||||
// Main //
|
||||
window {
|
||||
height: 16em;
|
||||
width: 18em;
|
||||
transparency: "real";
|
||||
fullscreen: false;
|
||||
enabled: true;
|
||||
cursor: "default";
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
// border-color: @main-br;
|
||||
background-color: @main-bg;
|
||||
}
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 0em;
|
||||
padding: 0.5em 0em;
|
||||
orientation: vertical;
|
||||
children: [ "wallbox" , "listbox" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
wallbox {
|
||||
spacing: 0em;
|
||||
margin: 0em 0.5em;
|
||||
padding: -1.2em;
|
||||
expand: false;
|
||||
orientation: horizontal;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar" ];
|
||||
}
|
||||
|
||||
// Inputs //
|
||||
inputbar {
|
||||
enabled: true;
|
||||
padding: -0.2em 0.3em;
|
||||
children: [ "entry" ];
|
||||
background-color: @main-bg;
|
||||
expand: true;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
padding: 1.8em;
|
||||
text-color: @main-fg;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Lists //
|
||||
listbox {
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
orientation: vertical;
|
||||
children: [ "dummy" , "listview" , "dummy" ];
|
||||
background-color: transparent;
|
||||
}
|
||||
listview {
|
||||
enabled: true;
|
||||
padding: 0.4em 0.5em;
|
||||
spacing: 0em;
|
||||
columns: 1;
|
||||
lines: 7;
|
||||
cycle: false;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
expand: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: false;
|
||||
expand: false;
|
||||
cursor: "default";
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
dummy {
|
||||
spacing: 0em;
|
||||
padding: 0em;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
// Elements //
|
||||
element {
|
||||
enabled: true;
|
||||
padding: 0.4em;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
text-color: @main-fg;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: @select-bg;
|
||||
text-color: @select-fg;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
element-text {
|
||||
vertical-align: 0.0;
|
||||
horizontal-align: 0.0;
|
||||
cursor: inherit;
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
}
|
||||
@@ -0,0 +1,388 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"mode": "dock",
|
||||
"height": 28, // uncomment to set fixed height
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"gtk-layer-shell": true,
|
||||
"reload_style_on_change": 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/cpuinfo", // temperature
|
||||
|
||||
"custom/left3",
|
||||
"memory", // memory
|
||||
|
||||
"custom/left4",
|
||||
"custom/cpu", // cpu
|
||||
"custom/leftin1",
|
||||
|
||||
"custom/left5",
|
||||
"idle_inhibitor", // arch logo
|
||||
"custom/right2",
|
||||
|
||||
"custom/rightin1",
|
||||
"clock#time", // time
|
||||
"custom/right3",
|
||||
|
||||
"clock#date", // date
|
||||
"custom/right4",
|
||||
|
||||
"custom/wifi", // connection
|
||||
"custom/right5"
|
||||
],
|
||||
|
||||
"modules-right": [
|
||||
"tray", // tray
|
||||
|
||||
"custom/left6",
|
||||
"hyprland/language", // language
|
||||
|
||||
"custom/left7",
|
||||
"pulseaudio", // output device
|
||||
|
||||
"custom/left8",
|
||||
"custom/backlight", // brightness
|
||||
|
||||
"custom/left9",
|
||||
"battery", // battery
|
||||
|
||||
"custom/leftin2",
|
||||
"custom/power" // power button
|
||||
],
|
||||
|
||||
// Modules
|
||||
"custom/ws": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"min-length": 3,
|
||||
"max-length": 4
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": false,
|
||||
"active-only": false,
|
||||
"on-click": "activate",
|
||||
"disable-scroll": false,
|
||||
"on-scroll-up": "hyprctl dispatch workspace -1",
|
||||
"on-scroll-down": "hyprctl dispatch workspace +1",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
},
|
||||
"sort-by-number": true
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"separate-outputs": true,
|
||||
"rewrite": {
|
||||
// desktop
|
||||
"": "<span foreground='#89b4fa'> </span> Hyprland",
|
||||
|
||||
// terminal
|
||||
"sejjy@archlinux:(.*)": " $1",
|
||||
"(.*)sejjy@archlinux:~": " sejjy@archlinux",
|
||||
|
||||
// Firefox
|
||||
"(.*) — Mozilla Firefox": "<span foreground='#f38ba8'> </span> $1",
|
||||
"(.*)Mozilla Firefox": "<span foreground='#f38ba8'> </span> Firefox",
|
||||
|
||||
// VSCode
|
||||
"(.*) - Visual Studio Code": "<span foreground='#89b4fa'> </span> $1",
|
||||
"(.*)Visual Studio Code": "<span foreground='#89b4fa'> </span> Visual Studio Code",
|
||||
|
||||
// Spotify
|
||||
"(.*)Spotify": "<span foreground='#a6e3a1'> </span> Spotify",
|
||||
"(.*)Spotify Premium": "<span foreground='#a6e3a1'> </span> Spotify Premium",
|
||||
|
||||
// Discord
|
||||
"vesktop": "<span foreground='#89b4fa'> </span> Discord",
|
||||
"• Discord(.*)": "Discord$1",
|
||||
"(.*)Discord(.*)": "<span foreground='#89b4fa'> </span> $1Discord$2",
|
||||
|
||||
// OBS Studio
|
||||
"OBS(.*)": "<span foreground='#a6adc8'> </span> OBS Studio",
|
||||
|
||||
// VLC Media Player
|
||||
"VLC media player": "<span foreground='#fab387'> </span> VLC Media Player",
|
||||
"(.*) - VLC media player": "<span foreground='#fab387'> </span> $1",
|
||||
|
||||
// GIMP
|
||||
"GNU Image Manipulation Program": "<span foreground='#a6adc8'> </span> GNU Image Manipulation Program",
|
||||
|
||||
// Godot
|
||||
"Godot": "<span foreground='#89b4fa'> </span> Godot Engine",
|
||||
"Godot Engine - (.*)": "<span foreground='#89b4fa'> </span> $1",
|
||||
"(.*) - Godot Engine": "<span foreground='#89b4fa'> </span> $1",
|
||||
|
||||
// OnlyOffice
|
||||
"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",
|
||||
|
||||
// file manager
|
||||
"/": " File Manager",
|
||||
|
||||
// qView
|
||||
"qView": " qView",
|
||||
"(.*).jpg": " $1.jpg",
|
||||
"(.*).png": " $1.png",
|
||||
"(.*).svg": " $1.svg",
|
||||
|
||||
// Timeshift
|
||||
"Timeshift-gtk": "<span foreground='#a6e3a1'> </span> Timeshift",
|
||||
|
||||
// security
|
||||
"Authenticate": " Authenticate"
|
||||
},
|
||||
"min-length": 5,
|
||||
"max-length": 45
|
||||
},
|
||||
|
||||
"custom/cpuinfo": {
|
||||
"exec": "~/.config/waybar/scripts/cpuinfo.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"tooltip": true,
|
||||
"interval": 5,
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"states": { "c": 90 },
|
||||
"format": " {percentage}%",
|
||||
"format-c": " {percentage}%",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Memory Used: {used:0.1f} GB / {total:0.1f} GB",
|
||||
"interval": 5,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"custom/cpu": {
|
||||
"exec": "~/.config/waybar/scripts/cpuusage.sh",
|
||||
"return-type": "json",
|
||||
"tooltip": true,
|
||||
"interval": 5,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "rzx.ovh",
|
||||
"tooltip": true,
|
||||
"tooltip-format-activated": "Presentation Mode",
|
||||
"tooltip-format-deactivated": "Idle Mode",
|
||||
"start-activated": false,
|
||||
"timeout": 5
|
||||
},
|
||||
|
||||
"clock#time": {
|
||||
"format": " {:%H:%M}",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "12-hour Format: {:%I:%M %p}",
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%m-%d}",
|
||||
"tooltip-format": "<tt>{calendar}</tt>",
|
||||
"calendar": {
|
||||
"mode": "month",
|
||||
"mode-mon-col": 6,
|
||||
"on-click-right": "mode",
|
||||
"format": { "today": "<span color='#f38ba8'><b>{}</b></span>" }
|
||||
},
|
||||
"actions": { "on-click-right": "mode" },
|
||||
"min-length": 8,
|
||||
"max-length": 8
|
||||
},
|
||||
|
||||
"custom/wifi": {
|
||||
"exec": "~/.config/waybar/scripts/wifiinfo.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}", // in wifiinfo.sh, change "Wi-Fi" to "${essid}" to display network name
|
||||
"tooltip": true,
|
||||
"on-click": "~/.config/waybar/scripts/wifimenu.sh",
|
||||
"interval": 1,
|
||||
"min-length": 7,
|
||||
"max-length": 7
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"rotate": 0,
|
||||
"spacing": 10
|
||||
},
|
||||
|
||||
"hyprland/language": {
|
||||
"format": "{}",
|
||||
"format-en": "EN",
|
||||
"format-ru": "RU",
|
||||
"min-length": 5,
|
||||
"max-length": 5
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " {volume}%",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"tooltip": true,
|
||||
"tooltip-format": "Device: {desc}",
|
||||
"on-click": "~/.config/waybar/scripts/volumecontrol.sh -o m",
|
||||
"on-scroll-up": "~/.config/waybar/scripts/volumecontrol.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/volumecontrol.sh -o d",
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/backlight": {
|
||||
"exec": "~/.config/waybar/scripts/brightnesscontrol.sh",
|
||||
"return-type": "json",
|
||||
"format": "{}",
|
||||
"tooltip": true,
|
||||
"on-scroll-up": "~/.config/waybar/scripts/brightnesscontrol.sh -o i",
|
||||
"on-scroll-down": "~/.config/waybar/scripts/brightnesscontrol.sh -o d",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", "", "", ""],
|
||||
"format-charging": " {capacity}%",
|
||||
"tooltip-format": "Time to Empty: {time}",
|
||||
"tooltip-format-charging": "Time to Full: {time}",
|
||||
"interval": 1,
|
||||
"min-length": 6,
|
||||
"max-length": 6
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"on-click": "~/.config/waybar/scripts/logoutlaunch.sh 2",
|
||||
"on-click-right": "~/.config/waybar/scripts/logoutlaunch.sh 1",
|
||||
"interval": 86400
|
||||
},
|
||||
|
||||
// Padding
|
||||
"custom/paddw": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// adjust padding in style.css if you have a long network name
|
||||
// so that the modules remain centered.
|
||||
"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
|
||||
},
|
||||
"custom/left9": {
|
||||
"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
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Print error message for invalid arguments
|
||||
print_error() {
|
||||
cat <<"EOF"
|
||||
Usage: ./brightnesscontrol.sh <action>
|
||||
Valid actions are:
|
||||
i -- <i>ncrease brightness [+5%]
|
||||
d -- <d>ecrease brightness [-5%]
|
||||
EOF
|
||||
}
|
||||
|
||||
# Send a notification with brightness info
|
||||
send_notification() {
|
||||
brightness=$(brightnessctl info | grep -oP "(?<=\()\d+(?=%)")
|
||||
notify-send -r 91190 "Brightness: ${brightness}%"
|
||||
}
|
||||
|
||||
# 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 +5%
|
||||
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 5%-
|
||||
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}\"}"
|
||||
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get CPU clock speeds
|
||||
freqlist=$(awk '/cpu MHz/ {print $4}' /proc/cpuinfo) # Extract clock speed in MHz
|
||||
maxfreq=$(sed 's/...$//' /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) # Max CPU frequency
|
||||
frequency=$(echo "$freqlist" | tr ' ' '\n' | awk "{sum+=\$1} END {printf \"%.0f/$maxfreq MHz\", sum/NR}") # Average frequency
|
||||
|
||||
# Get CPU temperature in Celsius
|
||||
temp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}') # Package temperature
|
||||
if [[ -z "$temp" ]]; then
|
||||
temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+°C') # Fallback to Tctl if Package id 0 is empty
|
||||
fi
|
||||
if [[ -z "$temp" ]]; then
|
||||
temp="N/A" # If no temp found, set to N/A
|
||||
fi
|
||||
|
||||
# Map icons based on temperature and utilization
|
||||
set_ico="{\"thermo\":{\"0\":\"\",\"45\":\"\",\"65\":\"\",\"85\":\"\"},\"util\":{\"0\":\"\",\"30\":\"\",\"60\":\"\",\"90\":\"\"}}"
|
||||
eval_ico() {
|
||||
local key="$1"
|
||||
local value="$2"
|
||||
map_ico=$(echo "$set_ico" | jq -r --arg aky "$key" --argjson avl "$value" '.[$aky] | keys_unsorted | map(tonumber) | map(select(. <= $avl)) | max')
|
||||
echo "$set_ico" | jq -r --arg aky "$key" --arg avl "$map_ico" '.[$aky] | .[$avl]' # Get the corresponding icon
|
||||
}
|
||||
|
||||
thermo=$(eval_ico thermo "$temp") # Get temperature icon
|
||||
|
||||
tooltip="Clock Speed: ${frequency}"
|
||||
|
||||
# Module and tooltip
|
||||
echo "{\"text\": \"${thermo} ${temp}°C\", \"tooltip\": \"$tooltip\"}"
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get CPU model (removed "(R)", "(TM)", and clock speed)
|
||||
model=$(awk -F ': ' '/model name/{print $2}' /proc/cpuinfo | head -n 1 | sed 's/@.*//; s/ *\((R)\|(TM)\)//g; s/^[ \t]*//; s/[ \t]*$//')
|
||||
|
||||
# Get CPU usage percentage
|
||||
load=$(vmstat 1 2 | tail -1 | awk '{print 100 - $15}')
|
||||
|
||||
# Determine CPU state based on usage
|
||||
if [ "$load" -le 25 ]; then
|
||||
state="Low"
|
||||
elif [ "$load" -le 50 ]; then
|
||||
state="Medium"
|
||||
else
|
||||
state="High"
|
||||
fi
|
||||
|
||||
tooltip="${model}"
|
||||
tooltip+="\nCPU Usage: ${state}"
|
||||
|
||||
# Module and tooltip
|
||||
echo "{\"text\": \" ${load}%\", \"tooltip\": \"${tooltip}\"}"
|
||||
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if wlogout is already running
|
||||
if pgrep -x "wlogout" > /dev/null; then
|
||||
pkill -x "wlogout"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Define configuration directories
|
||||
confDir="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
|
||||
# Style selection
|
||||
[ -z "${1}" ] || wlogoutStyle="${1}"
|
||||
wLayout="${confDir}/wlogout/layout_${wlogoutStyle}"
|
||||
wlTmplt="${confDir}/wlogout/style_${wlogoutStyle}.css"
|
||||
|
||||
if [ ! -f "${wLayout}" ] || [ ! -f "${wlTmplt}" ]; then
|
||||
echo "ERROR: Config ${wlogoutStyle} not found..."
|
||||
wlogoutStyle=1
|
||||
wLayout="${confDir}/wlogout/layout_${wlogoutStyle}"
|
||||
wlTmplt="${confDir}/wlogout/style_${wlogoutStyle}.css"
|
||||
fi
|
||||
|
||||
# Detect monitor resolution
|
||||
x_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width')
|
||||
y_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .height')
|
||||
hypr_scale=$(hyprctl -j monitors | jq '.[] | select(.focused == true) | .scale' | sed 's/\.//')
|
||||
|
||||
# Scale config layout and style
|
||||
case "${wlogoutStyle}" in
|
||||
1)
|
||||
wlColms=6
|
||||
export mgn=$(( y_mon * 38 / hypr_scale ))
|
||||
export hvr=$(( y_mon * 33 / hypr_scale ))
|
||||
;;
|
||||
2)
|
||||
wlColms=2
|
||||
export x_mgn=$(( x_mon * 38 / hypr_scale ))
|
||||
export y_mgn=$(( y_mon * 28 / hypr_scale ))
|
||||
export x_hvr=$(( x_mon * 35 / hypr_scale ))
|
||||
export y_hvr=$(( y_mon * 23 / hypr_scale ))
|
||||
;;
|
||||
esac
|
||||
|
||||
# Scale font size
|
||||
export fntSize=$(( y_mon * 2 / 100 ))
|
||||
|
||||
export BtnCol="white" # Default button color
|
||||
|
||||
# Evaluate hypr border radius
|
||||
hypr_border="$(hyprctl -j getoption decoration:rounding | jq '.int')"
|
||||
export hypr_border
|
||||
export active_rad=$(( hypr_border * 5 ))
|
||||
export button_rad=$(( hypr_border * 8 ))
|
||||
|
||||
# Evaluate config files
|
||||
wlStyle=$(envsubst < "$wlTmplt")
|
||||
|
||||
# Launch wlogout
|
||||
wlogout -b "${wlColms}" -c 0 -r 0 -m 0 --layout "${wLayout}" --css <(echo "${wlStyle}") --protocol layer-shell
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/bin/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 [+5]
|
||||
d -- decrease volume [-5]
|
||||
m -- mute [x]
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||
notify-send -r 91190 "Volume: ${vol}%"
|
||||
}
|
||||
|
||||
notify_mute() {
|
||||
mute=$(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}')
|
||||
if [ "${mute}" = "yes" ]; then
|
||||
notify-send -r 91190 "Muted"
|
||||
else
|
||||
notify-send -r 91190 "Unmuted"
|
||||
fi
|
||||
}
|
||||
|
||||
action_volume() {
|
||||
case "${1}" in
|
||||
i)
|
||||
# Check current volume and increase only 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 + 5))
|
||||
if [ "$new_vol" -gt 100 ]; then
|
||||
new_vol=100
|
||||
fi
|
||||
pactl set-sink-volume @DEFAULT_SINK@ "${new_vol}%"
|
||||
fi
|
||||
;;
|
||||
d)
|
||||
# Decrease volume, ensuring it doesn't drop below 0%
|
||||
current_vol=$(pactl get-sink-volume @DEFAULT_SINK@ | awk '{print $5}' | sed 's/%//')
|
||||
new_vol=$((current_vol - 5))
|
||||
if [ "$new_vol" -lt 0 ]; then
|
||||
new_vol=0
|
||||
fi
|
||||
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
|
||||
@@ -0,0 +1,178 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script gathers detailed Wi-Fi connection information.
|
||||
# It collects the following fields:
|
||||
#
|
||||
# - SSID (Service Set Identifier): The name of the Wi-Fi network you
|
||||
# are currently connected to. Example: "My_Network"
|
||||
#
|
||||
# - IP Address: The IP address assigned to the device by the router.
|
||||
# This is typically a private IP within the local network. Example:
|
||||
# "192.168.1.29/24" (with subnet mask)
|
||||
#
|
||||
# - Router (Gateway): The IP address of the router (default gateway)
|
||||
# that your device uses to communicate outside the local network.
|
||||
# Example: "192.168.1.1"
|
||||
#
|
||||
# - MAC Address: The unique Media Access Control address of the local
|
||||
# device's Wi-Fi adapter. Example: "F8:34:41:07:1B:65"
|
||||
#
|
||||
# - Security: The encryption protocol being used to secure your Wi-Fi
|
||||
# connection. Common security protocols include:
|
||||
# - WPA2 (Wi-Fi Protected Access 2): The most commonly used security
|
||||
# standard, offering strong encryption (AES).
|
||||
# - WPA3: The latest version, providing even stronger security,
|
||||
# especially in public or open networks.
|
||||
# - WEP (Wired Equivalent Privacy): An outdated and insecure protocol
|
||||
# that should not be used.
|
||||
# Example: "WPA2" indicates that the connection is secured using WPA2
|
||||
# with AES encryption.
|
||||
#
|
||||
# - BSSID (Basic Service Set Identifier): The MAC address of the Wi-Fi
|
||||
# access point you are connected to. Example: "A4:22:49:DA:91:A0"
|
||||
#
|
||||
# - Channel: The wireless channel your Wi-Fi network is using. This is
|
||||
# associated with the frequency band. Example: "100 (5500 MHz)"
|
||||
# indicates the channel number (100) and the frequency (5500 MHz),
|
||||
# which is within the 5 GHz band.
|
||||
#
|
||||
# - RSSI (Received Signal Strength Indicator): The strength of the
|
||||
# Wi-Fi signal, typically in dBm (decibels relative to 1 milliwatt).
|
||||
# Closer to 0 means stronger signal, with values like -40 dBm being
|
||||
# very good. Example: "-40 dBm"
|
||||
#
|
||||
# - Signal: The signal quality, which is represented as a percentage,
|
||||
# where higher numbers mean better signal. Example: "100"
|
||||
# indicates perfect signal strength.
|
||||
#
|
||||
# - Rx Rate (Receive Rate): The maximum data rate (in Mbit/s) at which
|
||||
# the device can receive data from the Wi-Fi access point. Example:
|
||||
# "866.7 MBit/s" indicates a high-speed connection on a modern
|
||||
# standard.
|
||||
#
|
||||
# - Tx Rate (Transmit Rate): The maximum data rate (in Mbit/s) at
|
||||
# which the device can send data to the Wi-Fi access point. Example:
|
||||
# "866.7 MBit/s"
|
||||
#
|
||||
# - PHY Mode (Physical Layer Mode): The Wi-Fi protocol or standard in
|
||||
# use. Common modes include 802.11n, 802.11ac, and 802.11ax (Wi-Fi
|
||||
# 6). Example: "802.11ac" indicates you're using the 5 GHz band with
|
||||
# a modern high-speed standard.
|
||||
|
||||
if ! command -v nmcli &>/dev/null; then
|
||||
echo "{\"text\": \" Wi-Fi\", \"tooltip\": \"nmcli utility is missing\"}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Wi-Fi is enabled
|
||||
wifi_status=$(nmcli radio wifi)
|
||||
|
||||
if [ "$wifi_status" = "disabled" ]; then
|
||||
tooltip="Wi-Fi Disabled"
|
||||
icon="" # Icon for no connection or disabled
|
||||
echo "{\"text\": \"${icon} Wi-Fi\", \"tooltip\": \"${tooltip}\"}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
wifi_info=$(nmcli -t -f active,ssid,signal,security dev wifi | grep "^yes")
|
||||
|
||||
# If no ESSID is found, set a default value
|
||||
if [ -z "$wifi_info" ]; then
|
||||
essid="No Connection"
|
||||
signal=0
|
||||
tooltip="No Connection"
|
||||
else
|
||||
# Some defaults
|
||||
ip_address="127.0.0.1"
|
||||
# gateway="127.0.0.1"
|
||||
# mac_address="N/A"
|
||||
security=$(echo "$wifi_info" | awk -F: '{print $4}')
|
||||
# bssid="N/A"
|
||||
chan="N/A"
|
||||
# rssi="N/A"
|
||||
rx_bitrate=""
|
||||
tx_bitrate=""
|
||||
phy_mode=""
|
||||
signal=$(echo "$wifi_info" | awk -F: '{print $3}')
|
||||
|
||||
active_device=$(nmcli -t -f DEVICE,STATE device status |
|
||||
grep -w "connected" |
|
||||
grep -v -E "^(dummy|lo:)" |
|
||||
awk -F: '{print $1}')
|
||||
|
||||
if [ -n "$active_device" ]; then
|
||||
output=$(nmcli -e no -g ip4.address,ip4.gateway,general.hwaddr device show "$active_device")
|
||||
|
||||
ip_address=$(echo "$output" | sed -n '1p')
|
||||
# gateway=$(echo "$output" | sed -n '2p')
|
||||
# mac_address=$(echo "$output" | sed -n '3p')
|
||||
|
||||
line=$(nmcli -e no -t -f active,bssid,chan,freq device wifi | grep "^yes")
|
||||
|
||||
# bssid=$(echo "$line" | awk -F':' '{print $2":"$3":"$4":"$5":"$6":"$7}')
|
||||
chan=$(echo "$line" | awk -F':' '{print $8}')
|
||||
freq=$(echo "$line" | awk -F':' '{print $9}')
|
||||
chan="$chan ($freq)"
|
||||
|
||||
if command -v iw &>/dev/null; then
|
||||
iw_output=$(iw dev "$active_device" station dump)
|
||||
# rssi=$(echo "$iw_output" | grep "signal:" | awk '{print $2 " dBm"}')
|
||||
|
||||
# Upload speed
|
||||
rx_bitrate=$(echo "$iw_output" | grep "rx bitrate:" | awk '{print $3 " " $4}')
|
||||
|
||||
# Download speed
|
||||
tx_bitrate=$(echo "$iw_output" | grep "tx bitrate:" | awk '{print $3 " " $4}')
|
||||
|
||||
# Physical Layer Mode
|
||||
if echo "$iw_output" | grep -E -q "rx bitrate:.* VHT"; then
|
||||
phy_mode="802.11ac" # Wi-Fi 5
|
||||
elif echo "$iw_output" | grep -E -q "rx bitrate:.* HT"; then
|
||||
phy_mode="802.11n" # Wi-Fi 4
|
||||
elif echo "$iw_output" | grep -E -q "rx bitrate:.* HE"; then
|
||||
phy_mode="802.11ax" # Wi-Fi 6
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get the current Wi-Fi ESSID
|
||||
essid=$(echo "$wifi_info" | awk -F: '{print $2}')
|
||||
|
||||
tooltip="${essid}\n"
|
||||
tooltip+="\nIP Address: ${ip_address}"
|
||||
# tooltip+="\nRouter: ${gateway}"
|
||||
# tooltip+="\nMAC Address: ${mac_address}"
|
||||
tooltip+="\nSecurity: ${security}"
|
||||
# tooltip+="\nBSSID: ${bssid}"
|
||||
tooltip+="\nChannel: ${chan}"
|
||||
# tooltip+="\nRSSI: ${rssi}"
|
||||
tooltip+="\nStrength: ${signal} / 100"
|
||||
|
||||
if [ -n "$rx_bitrate" ]; then
|
||||
tooltip+="\nRx Rate: ${rx_bitrate}"
|
||||
fi
|
||||
|
||||
if [ -n "$tx_bitrate" ]; then
|
||||
tooltip+="\nTx Rate: ${tx_bitrate}"
|
||||
fi
|
||||
|
||||
if [ -n "$phy_mode" ]; then
|
||||
tooltip+="\nPHY Mode: ${phy_mode}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Determine Wi-Fi icon based on signal strength
|
||||
if [ "$signal" -ge 80 ]; then
|
||||
icon="" # Strong signal
|
||||
elif [ "$signal" -ge 60 ]; then
|
||||
icon="" # Good signal
|
||||
elif [ "$signal" -ge 40 ]; then
|
||||
icon="" # Weak signal
|
||||
elif [ "$signal" -ge 20 ]; then
|
||||
icon="" # Very weak signal
|
||||
else
|
||||
icon="" # No signal
|
||||
fi
|
||||
|
||||
# Change "Wi-Fi" to "${essid}" to display network name
|
||||
echo "{\"text\": \"${icon} Wi-Fi\", \"tooltip\": \"${tooltip}\"}"
|
||||
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
|
||||
hypr_border=1
|
||||
roconf="$HOME/.config/rofi/wifi.rasi"
|
||||
|
||||
# Set rofi scaling
|
||||
[[ "${rofiScale}" =~ ^[0-9]+$ ]] || rofiScale=10
|
||||
r_scale="configuration { font: \"JetBrainsMono Nerd Font ${rofiScale}\"; }"
|
||||
wind_border=$((hypr_border * 3 / 2))
|
||||
elem_border=$([ "$hypr_border" -eq 0 ] && echo "5" || echo "$hypr_border")
|
||||
|
||||
# Ensure that hypr_width, wind_border, and elem_border have valid numeric values
|
||||
[[ "${hypr_width}" =~ ^[0-9]+$ ]] || hypr_width=2
|
||||
[[ "${wind_border}" =~ ^[0-9]+$ ]] || wind_border=0
|
||||
[[ "${elem_border}" =~ ^[0-9]+$ ]] || elem_border=0
|
||||
|
||||
# Get monitor resolution and calculate center position
|
||||
readarray -t monRes < <(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width,.height,.scale')
|
||||
monRes[2]="${monRes[2]//./}"
|
||||
monRes[0]=$((monRes[0] * 100 / monRes[2]))
|
||||
monRes[1]=$((monRes[1] * 100 / monRes[2]))
|
||||
|
||||
x_pos_center=$((monRes[0] / 2))
|
||||
y_pos_center=$((monRes[1] / 2))
|
||||
|
||||
# Rofi override to center window on screen
|
||||
r_override="window { anchor: center; x-offset: -${x_pos_center}px; y-offset: -${y_pos_center}px; border: ${hypr_width}px; border-radius: 15px; } wallbox { border-radius: 10px; } element { border-radius: 10px; }"
|
||||
|
||||
# Notify the user about fetching Wi-Fi networks
|
||||
notify-send "Searching for available Wi-Fi networks..."
|
||||
|
||||
# Get a list of available Wi-Fi connections and format it
|
||||
wifi_list=$(nmcli --fields "SECURITY,SSID" device wifi list | sed 1d | sed 's/ */ /g' | sed -E "s/WPA*.?\S/ /g" | sed "s/^--/ /g" | sed "s/ / /g" | sed "/--/d")
|
||||
|
||||
# Check Wi-Fi status
|
||||
connected=$(nmcli -fields WIFI g)
|
||||
if [[ "$connected" =~ "enabled" ]]; then
|
||||
toggle=" Disable Wi-Fi"
|
||||
elif [[ "$connected" =~ "disabled" ]]; then
|
||||
toggle=" Enable Wi-Fi"
|
||||
fi
|
||||
|
||||
# Use rofi to select Wi-Fi network
|
||||
chosen_network=$(echo -e " Manual Entry\n$toggle\n$wifi_list" | uniq -u | rofi -dmenu -i -selected-row 1 -theme-str "entry { placeholder: \"Search\"; }" -theme-str "${r_scale}" -theme-str "${r_override}" -config "${roconf}" -p "Wi-Fi SSID")
|
||||
|
||||
# Get the name of the connection
|
||||
read -r chosen_id <<< "${chosen_network:3}"
|
||||
|
||||
# Perform actions based on the selected option
|
||||
if [ "$chosen_network" = "" ]; then
|
||||
exit
|
||||
elif [ "$chosen_network" = " Enable Wi-Fi" ]; then
|
||||
nmcli radio wifi on
|
||||
elif [ "$chosen_network" = " Disable Wi-Fi" ]; then
|
||||
nmcli radio wifi off
|
||||
elif [ "$chosen_network" = " Manual Entry" ]; then
|
||||
# Prompt for manual SSID and password
|
||||
manual_ssid=$(rofi -dmenu -theme-str "entry { placeholder: \"SSID\"; }" -theme-str "${r_scale}" -theme-str "${r_override}" -config "${roconf}" -p "Enter SSID:")
|
||||
if [ -z "$manual_ssid" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
manual_password=$(rofi -dmenu -theme-str "entry { placeholder: \"Password\"; }" -theme-str "${r_scale}" -theme-str "${r_override}" -config "${roconf}" -p "Enter Password (optional):")
|
||||
|
||||
if [ -z "$manual_password" ]; then
|
||||
nmcli device wifi connect "$manual_ssid"
|
||||
else
|
||||
nmcli device wifi connect "$manual_ssid" password "$manual_password"
|
||||
fi
|
||||
else
|
||||
# Message to show when connection is activated successfully
|
||||
success_message="You are now connected to \"$chosen_id\"."
|
||||
|
||||
# Get saved connections
|
||||
saved_connections=$(nmcli -g NAME connection)
|
||||
if [[ $(echo "$saved_connections" | grep -w "$chosen_id") = "$chosen_id" ]]; then
|
||||
nmcli connection up id "$chosen_id" | grep "successfully" && notify-send "Connection Established" "$success_message"
|
||||
else
|
||||
if [[ "$chosen_network" =~ " " ]]; then
|
||||
wifi_password=$(rofi -dmenu -theme-str "entry { placeholder: \"Password: \"; }" -theme-str "${r_scale}" -theme-str "${r_override}" -config "${roconf}" -p "Password: ")
|
||||
fi
|
||||
nmcli device wifi connect "$chosen_id" password "$wifi_password" | grep "successfully" && notify-send "Connection Established" "$success_message"
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,366 @@
|
||||
/* Global Styling */
|
||||
* {
|
||||
border: none;
|
||||
font-family: "JetBrainsMono Nerd Font";
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
min-height: 14px;
|
||||
color: rgba(200, 200, 200, 1.0);
|
||||
}
|
||||
|
||||
@import "./theme.css";
|
||||
|
||||
/* Main Background */
|
||||
window#waybar {
|
||||
background: @background;
|
||||
}
|
||||
|
||||
/* [new] Drop Shadow */
|
||||
window#waybar > box {
|
||||
background-color: transparent;
|
||||
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
||||
margin: 2px 2px 2px 2px;
|
||||
}
|
||||
|
||||
/* Tooltip Styling */
|
||||
tooltip {
|
||||
color: @foreground;
|
||||
background: @background;
|
||||
border: solid;
|
||||
border-width: 1.5px;
|
||||
border-radius: 7px;
|
||||
border-color: white;
|
||||
}
|
||||
|
||||
/* Workspace Button */
|
||||
#workspaces button {
|
||||
color: @foreground;
|
||||
border-radius: 8px;
|
||||
box-shadow: none;
|
||||
margin-top: 2px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 2px;
|
||||
margin-left: 0px;
|
||||
padding: 0px;
|
||||
padding-right: 2px;
|
||||
padding-left: 2px;
|
||||
animation: ws_normal 20s ease-in-out 1;
|
||||
}
|
||||
|
||||
/* Active Workspace Button */
|
||||
#workspaces button.active {
|
||||
color: @active-fg;
|
||||
background: @active-bg;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
||||
margin-right: 2px;
|
||||
margin-left: 2px;
|
||||
padding-right: 6px;
|
||||
padding-left: 6px;
|
||||
animation: ws_active 20s ease-in-out 1;
|
||||
transition: all 0.4s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
/* Hover Effect for Workspace Buttons */
|
||||
#workspaces button:hover {
|
||||
color: @hover-fg;
|
||||
background: @hover-bg;
|
||||
box-shadow: none;
|
||||
animation: ws_hover 20s ease-in-out 1;
|
||||
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
|
||||
/* General Module Styling */
|
||||
#custom-ws,
|
||||
#workspaces,
|
||||
#window,
|
||||
#custom-cpuinfo,
|
||||
#memory,
|
||||
#custom-cpu,
|
||||
#clock,
|
||||
#custom-wifi,
|
||||
#pulseaudio,
|
||||
#custom-backlight,
|
||||
#battery,
|
||||
#custom-power {
|
||||
opacity: 1;
|
||||
margin-bottom: 0px;
|
||||
padding-right: 4px;
|
||||
padding-left: 4px;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
||||
/* General Left Arrow Styling */
|
||||
#custom-left1,
|
||||
#custom-left2,
|
||||
#custom-left3,
|
||||
#custom-left4,
|
||||
#custom-left5,
|
||||
#custom-left6,
|
||||
#custom-left7,
|
||||
#custom-left8,
|
||||
#custom-left9 {
|
||||
font-size: 11pt;
|
||||
text-shadow: -1px 0px 2px rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
||||
/* General Right Arrow Styling */
|
||||
#custom-right1,
|
||||
#custom-right2,
|
||||
#custom-right3,
|
||||
#custom-right4,
|
||||
#custom-right5 {
|
||||
font-size: 11pt;
|
||||
padding-right: 3px;
|
||||
text-shadow: 1px 0px 2px rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
||||
/* Color Definitions */
|
||||
@define-color workspaces #181825;
|
||||
@define-color cpuinfo #181825;
|
||||
@define-color memory #1e1e2e;
|
||||
@define-color cpu #313244;
|
||||
@define-color arch #9399b2;
|
||||
@define-color time #313244;
|
||||
@define-color date #1e1e2e;
|
||||
@define-color wifi #181825;
|
||||
@define-color language #161621;
|
||||
@define-color pulseaudio #181825;
|
||||
@define-color backlight #1e1e2e;
|
||||
@define-color battery #313244;
|
||||
@define-color power #9399b2;
|
||||
|
||||
/* Window Icon */
|
||||
#custom-ws {
|
||||
background: @background;
|
||||
}
|
||||
|
||||
/* Workspaces */
|
||||
#custom-left1 {
|
||||
color: @workspaces;
|
||||
background: @background;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: @workspaces;
|
||||
}
|
||||
|
||||
#custom-right1 {
|
||||
color: @workspaces;
|
||||
background: @background;
|
||||
}
|
||||
|
||||
/* Temperature */
|
||||
#custom-paddc {
|
||||
padding-right: 22px;
|
||||
}
|
||||
|
||||
#custom-left2 {
|
||||
color: @cpuinfo;
|
||||
background: @background;
|
||||
border-radius: 10px;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-cpuinfo {
|
||||
background: @cpuinfo;
|
||||
padding-left: 1px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
/* Memory */
|
||||
#custom-left3 {
|
||||
color: @memory;
|
||||
background: @cpuinfo;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background: @memory;
|
||||
padding-left: 1px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
/* CPU */
|
||||
#custom-left4 {
|
||||
color: @cpu;
|
||||
background: @memory;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-cpu {
|
||||
background: @cpu;
|
||||
}
|
||||
|
||||
#custom-leftin1 {
|
||||
color: @cpu;
|
||||
font-size: 14.5pt;
|
||||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
/* Arch Logo */
|
||||
#custom-left5 {
|
||||
color: @arch;
|
||||
background: @background;
|
||||
text-shadow: -1px 0px 2px rgba(0, 0, 0, 0.6);
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#idle_inhibitor {
|
||||
color: black;
|
||||
background: @arch;
|
||||
font-size: 11pt;
|
||||
margin-right: -1px;
|
||||
margin-bottom: -2px;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
text-shadow: 0px 0px 1.5px rgba(0, 0, 0, 1);
|
||||
}
|
||||
|
||||
#custom-right2 {
|
||||
color: @arch;
|
||||
background: @background;
|
||||
}
|
||||
|
||||
/* Time */
|
||||
#custom-rightin1 {
|
||||
color: @time;
|
||||
font-size: 14.5pt;
|
||||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
#clock.time {
|
||||
background: @time;
|
||||
}
|
||||
|
||||
#custom-right3 {
|
||||
color: @time;
|
||||
background: @date;
|
||||
}
|
||||
|
||||
/* Date */
|
||||
#clock.date {
|
||||
background: @date;
|
||||
}
|
||||
|
||||
#custom-right4 {
|
||||
color: @date;
|
||||
background: @wifi;
|
||||
}
|
||||
|
||||
#custom-wifi {
|
||||
background: @wifi;
|
||||
padding-right: 6px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
#custom-right5 {
|
||||
color: @wifi;
|
||||
background: @background;
|
||||
}
|
||||
|
||||
/* Tray */
|
||||
#tray {
|
||||
background: @background;
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
background: @background;
|
||||
color: @foreground;
|
||||
border-radius: 13px;
|
||||
}
|
||||
|
||||
#tray menu separator {
|
||||
min-height: 5px;
|
||||
}
|
||||
|
||||
#tray menu menuitem {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
#tray menu menuitem:hover {
|
||||
background-color: @hover;
|
||||
}
|
||||
|
||||
/* Language */
|
||||
#custom-left6 {
|
||||
color: @language;
|
||||
background: @background;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: @language;
|
||||
}
|
||||
|
||||
/* PulseAudio */
|
||||
#custom-left7 {
|
||||
color: @pulseaudio;
|
||||
background: @language;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
background: @pulseaudio;
|
||||
}
|
||||
|
||||
/* Brightness */
|
||||
#custom-left8 {
|
||||
color: @backlight;
|
||||
background: @pulseaudio;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#custom-backlight {
|
||||
background: @backlight;
|
||||
}
|
||||
|
||||
/* Battery */
|
||||
#custom-left9 {
|
||||
color: @battery;
|
||||
background: @backlight;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background: @battery;
|
||||
}
|
||||
|
||||
#battery.warning {
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
/* Power Button */
|
||||
#custom-leftin2 {
|
||||
color: @battery;
|
||||
background: @background;
|
||||
font-size: 14.5pt;
|
||||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: @background;
|
||||
background: @power;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
|
||||
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 1);
|
||||
border-radius: 20px;
|
||||
margin-top: 2px;
|
||||
margin-right: 4px;
|
||||
margin-bottom: 2px;
|
||||
padding-right: 6px;
|
||||
padding-left: 9px;
|
||||
}
|
||||
|
||||
#custom-power:hover {
|
||||
color: @hover-fg;
|
||||
background: @hover-bg;
|
||||
box-shadow: none;
|
||||
transition: all 0.3s cubic-bezier(0.55, -0.68, 0.48, 1.682);
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
bg - background
|
||||
fg - foreground
|
||||
act - active
|
||||
hvr - hover
|
||||
*/
|
||||
|
||||
/* Main Colors */
|
||||
@define-color background #11111b;
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color hover #2b2b45;
|
||||
|
||||
/* Workspace Button Colors */
|
||||
@define-color active-bg #9399b2;
|
||||
@define-color active-fg #11111b;
|
||||
@define-color hover-bg #45475a;
|
||||
@define-color hover-fg #cdd6f4;
|
||||
|
||||
/* Wlogout Colors */
|
||||
@define-color bar-bg #11111b;
|
||||
@define-color main-bg #11111b;
|
||||
@define-color main-fg #cdd6f4;
|
||||
@define-color wb-act-bg #9399b2;
|
||||
@define-color wb-act-fg #11111b;
|
||||
@define-color wb-hvr-bg #6c7086;
|
||||
@define-color wb-hvr-fg #11111b;
|
||||
@@ -1,2 +1,76 @@
|
||||
# dotfiles
|
||||
Arch Linux + Hyprland
|
||||
# Dotfiles
|
||||
|
||||
<details><summary><b>Скриншот</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
## Навигация
|
||||
- [Hyprland](#hyprland)
|
||||
- [Hyprpaper](#hyprpaper)
|
||||
- [Hyprlock](#hyprlock)
|
||||
- [Waybar](#waybar)
|
||||
- [Rofi](#rofi)
|
||||
|
||||
|
||||
## Hyprland (Оконный менеджер) [[конфиги](./Configs/hypr/)]
|
||||
|
||||
```
|
||||
sudo pacman -S hyprland hyprpaper hyprlock
|
||||
```
|
||||
|
||||
- [[Основной конфиг](./Configs/hypr/hyprland.conf)]
|
||||
- [[Бинды](./Configs/hypr/keybindings.conf)]
|
||||
|
||||
|
||||
### Hyprpaper (Установка обоев) [[конфиг](./Configs/hypr/hyprpaper.conf)]
|
||||
|
||||
### Hyprlock (Блокировка экрана) [[конфиг](./Configs/hypr/hyprlock.conf)]
|
||||
|
||||
<details><summary><b>Скриншот</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
## Waybar (Wayland бар) [[конфиг](./Configs/waybar/)]
|
||||
```
|
||||
sudo pacman -S waybar
|
||||
```
|
||||
|
||||
<details><summary><b>Скриншот</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## Rofi (Запуск приложений, интерфейс для буфера и Wi-Fi) [[конфиги](./Configs/rofi/)]
|
||||
|
||||
```
|
||||
sudo pacman -S rofi networkmanager xdg-utils wl-clipboard cliphist
|
||||
```
|
||||
|
||||
<details><summary><b>Скриншот (Лаунчер приложений)</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
<details><summary><b>Скриншот (Буфер обмена)</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
<details><summary><b>Скриншот (Wi-Fi)</b></summary>
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
||||
## ...
|
||||
|
||||
<br><hr>
|
||||
*PS: это мои первые конфиги для оконных менеджеров в общем.*
|
||||