refactor: waybar, hypr config
This commit is contained in:
@@ -5,32 +5,17 @@ general {
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 140 # 2.5min.
|
||||
#on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
timeout = 290 # 5min - 10s (for the screen fade delay).
|
||||
on-timeout = touch /tmp/asleepin && /home/greg/.config/hypr/scripts/dimscreen.sh
|
||||
on-resume = rm /tmp/asleepin && brightnessctl -r
|
||||
#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 = 150 # 1min
|
||||
timeout = 300 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 150 # 5.5min
|
||||
# on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
# on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
# }
|
||||
|
||||
listener {
|
||||
timeout = 900 # 30min
|
||||
timeout = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
source = ~/.config/hypr/permissions.conf
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
@@ -45,6 +42,7 @@ exec-once = $startDelay && ~/.config/hypr/scripts/sounds.sh
|
||||
exec-once = $startDelay && ~/.config/hypr/scripts/random_wallpaper.sh
|
||||
exec-once = $startDelay && ~/.config/hypr/scripts/autofreezer.sh
|
||||
exec-once = .cargo/bin/mpd-discord-rpc
|
||||
exec-once = .venv312/bin/python3 .venv312/bin/jellyfin-rpc --ini-path $HOME/.config/jellyfin-rpc/jellyfin_rpc.ini
|
||||
|
||||
exec-shutdown = play -v 0.7 $HOME/Templates/Sounds/teleport.mp3
|
||||
|
||||
@@ -55,10 +53,6 @@ exec-shutdown = play -v 0.7 $HOME/Templates/Sounds/teleport.mp3
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
@@ -169,6 +163,8 @@ workspace = 6, monitor:HDMI-A-1
|
||||
workspace = 7, monitor:HDMI-A-1
|
||||
workspace = 8, monitor:HDMI-A-1
|
||||
workspace = 9, monitor:HDMI-A-1
|
||||
workspace = special:magic
|
||||
workspace = special:dungeon
|
||||
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
@@ -198,6 +194,7 @@ misc {
|
||||
size_limits_tiled = true
|
||||
on_focus_under_fullscreen = 0
|
||||
exit_window_retains_fullscreen = false
|
||||
close_special_on_empty = false
|
||||
}
|
||||
|
||||
##############
|
||||
@@ -215,8 +212,6 @@ cursor {
|
||||
input {
|
||||
kb_layout = us,ru
|
||||
kb_options = grp:caps_toggle,grp_led:caps
|
||||
repeat_rate = 25
|
||||
repeat_delay = 200
|
||||
|
||||
follow_mouse = 2
|
||||
float_switch_override_focus = 0
|
||||
@@ -228,6 +223,8 @@ input {
|
||||
disable_while_typing = true
|
||||
middle_button_emulation = true
|
||||
}
|
||||
|
||||
special_fallthrough = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
@@ -259,13 +256,14 @@ $mainMod = SUPER
|
||||
|
||||
binds {
|
||||
allow_workspace_cycles = true
|
||||
hide_special_on_workspace_change = true
|
||||
}
|
||||
|
||||
# Exit hyprland
|
||||
bind = $mainMod ALT, Q, exit,
|
||||
|
||||
# Shutdown
|
||||
bind = $mainMod SHIFT, delete, exec, shutdown now
|
||||
bind = $mainMod SHIFT, delete, exec, sudo poweroff -f
|
||||
|
||||
# Menu dropdown
|
||||
bind = $mainMod, P, sendshortcut, , Menu, activewindow
|
||||
@@ -327,18 +325,32 @@ bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, j, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0,1,2,3,4,5,6,7,8,9,0,-,=]
|
||||
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
|
||||
bind = $mainMod, minus, workspace, 11
|
||||
bind = $mainMod, equal, workspace, 12
|
||||
bindr = $mainMod, 1, workspace, 1
|
||||
bindr = $mainMod, 2, workspace, 2
|
||||
bindr = $mainMod, 3, workspace, 3
|
||||
bindr = $mainMod, 4, workspace, 4
|
||||
bindr = $mainMod, 5, workspace, 5
|
||||
bindr = $mainMod, 6, workspace, 6
|
||||
bindr = $mainMod, 7, workspace, 7
|
||||
bindr = $mainMod, 8, workspace, 8
|
||||
bindr = $mainMod, 9, workspace, 9
|
||||
bindr = $mainMod, 0, workspace, 10
|
||||
bindr = $mainMod, minus, workspace, 11
|
||||
bindr = $mainMod, equal, workspace, 12
|
||||
|
||||
# Switch to workspace and send it to another monitor
|
||||
bindo = $mainMod, 1, exec, hyprctl dispatch workspace 1 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 2, exec, hyprctl dispatch workspace 2 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 3, exec, hyprctl dispatch workspace 3 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 4, exec, hyprctl dispatch workspace 4 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 5, exec, hyprctl dispatch workspace 5 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 6, exec, hyprctl dispatch workspace 6 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 7, exec, hyprctl dispatch workspace 7 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 8, exec, hyprctl dispatch workspace 8 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 9, exec, hyprctl dispatch workspace 9 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, 0, exec, hyprctl dispatch workspace 10 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, minus, exec, hyprctl dispatch workspace 11 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
bindo = $mainMod, equal, exec, hyprctl dispatch workspace 12 && hyprctl dispatch movecurrentworkspacetomonitor +1
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
||||
@@ -357,17 +369,13 @@ bind = $mainMod SHIFT, equal, movetoworkspacesilent, 12
|
||||
# Cycle monitors
|
||||
bind = $mainMod, O, focusmonitor, +1
|
||||
|
||||
# Move current workspace to another monitor
|
||||
bind = $mainMod SHIFT, y, movecurrentworkspacetomonitor, +1
|
||||
bind = $mainMod SHIFT, v, moveworkspacetomonitor, +0 +1
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, M, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, M, movetoworkspace, special:magic
|
||||
|
||||
# Go to previous/next workspace
|
||||
bind = $mainMod, bracketleft, workspace, -1
|
||||
bind = $mainMod, bracketright, workspace, +1
|
||||
bind = $mainMod, bracketleft, workspace, r-1
|
||||
bind = $mainMod, bracketright, workspace, r+1
|
||||
|
||||
# Go to previous/next occupied workspace
|
||||
bind = $mainMod SHIFT, bracketleft, workspace, m-1
|
||||
@@ -560,33 +568,6 @@ bind = $mainMod, Tab, submap, reset
|
||||
bind = $mainMod, Escape, submap, reset
|
||||
submap = reset
|
||||
|
||||
# Activate MPD submap with $mainMod + U
|
||||
bind = $mainMod, U, submap, mpd
|
||||
|
||||
# Define the MPD submap
|
||||
submap = mpd
|
||||
|
||||
# MPD controls (actions that exit submap)
|
||||
bind = , P, exec, mpc toggle
|
||||
bind = SHIFT, H, exec, mpc prev
|
||||
bind = SHIFT, L, exec, mpc next
|
||||
|
||||
# MPD Seek
|
||||
binde = , H, exec, mpc seek "-00:00:5"
|
||||
binde = , L, exec, mpc seek "+00:00:5"
|
||||
|
||||
# Volume controls (remain in submap for repeated adjustments)
|
||||
bind = , J, exec, mpc volume -5
|
||||
bind = , K, exec, mpc volume +5
|
||||
|
||||
# Alternative exit methods
|
||||
bind = , escape, submap, reset
|
||||
bind = , Return, submap, reset
|
||||
bind = , Space, submap, reset
|
||||
|
||||
# End the submap definition
|
||||
submap = reset
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
@@ -881,7 +862,13 @@ plugin {
|
||||
}
|
||||
}
|
||||
|
||||
ecosystem {
|
||||
no_donation_nag = true
|
||||
}
|
||||
|
||||
debug {
|
||||
disable_logs = false
|
||||
overlay = false
|
||||
error_position = 1
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = /home/greg/Pictures/Wallpapers/waporvape-dark-tvlike-pink.png
|
||||
path = ~/.config/hypr/hyprlock.png
|
||||
blur_passes = 0
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
@@ -19,7 +19,7 @@ general {
|
||||
# Time-Hour
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<span>$(date +"%I")</span>"
|
||||
text = cmd[update:1000] echo "<span>$(date +"%H")</span>"
|
||||
color = rgba(255, 255, 255, 1)
|
||||
font_size = 125
|
||||
font_family = StretchPro
|
||||
|
||||
BIN
hypr/hyprlock.png
Normal file
BIN
hypr/hyprlock.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
19
hypr/permissions.conf
Normal file
19
hypr/permissions.conf
Normal file
@@ -0,0 +1,19 @@
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
permission = /usr/bin/hypr.*, screencopy, deny
|
||||
permission = /usr/bin/hyprpm, screencopy, deny
|
||||
permission = /usr/bin/hyprlock, screencopy, allow
|
||||
permission = /usr/bin/hyprpicker, screencopy, allow
|
||||
permission = /usr/bin/grim, screencopy, allow
|
||||
permission = /usr/bin/obs, screencopy, allow
|
||||
permission = /usr/bin/obs-ffmpeg-mux, screencopy, allow
|
||||
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
permission = *, keyboard, ask
|
||||
|
||||
ecosystem:enforce_permissions = true
|
||||
ecosystem {
|
||||
enforce_permissions = false
|
||||
}
|
||||
@@ -71,6 +71,12 @@ windowrule {
|
||||
match:class = ^(Mullvad VPN)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = privacy-rule-qbittorrent
|
||||
tag = privacy
|
||||
match:class = ^(org.qbittorrent.qBittorrent)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = privacy-rule-13
|
||||
tag = privacy
|
||||
|
||||
14
hypr/shaders/grayscale.glsl
Normal file
14
hypr/shaders/grayscale.glsl
Normal file
@@ -0,0 +1,14 @@
|
||||
#version 320 es
|
||||
|
||||
precision mediump float;
|
||||
in vec2 v_texcoord; // Use 'in' instead of 'varying'
|
||||
uniform sampler2D tex;
|
||||
|
||||
out vec4 fragColor; // Use 'out' instead of 'gl_FragColor'
|
||||
|
||||
void main() {
|
||||
vec4 this_colour = texture(tex, v_texcoord);
|
||||
float new_colour = (this_colour.r + this_colour.g + this_colour.b) / 3.0;
|
||||
fragColor = vec4(new_colour, new_colour, new_colour, 0.0);
|
||||
}
|
||||
|
||||
3
hypr/xdph.conf
Normal file
3
hypr/xdph.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
screencopy {
|
||||
allow_token_by_default = true
|
||||
}
|
||||
@@ -13,8 +13,8 @@
|
||||
"spacing": 0,
|
||||
"reload_style_on_change": true,
|
||||
"modules-left": [
|
||||
"tray"
|
||||
// "custom/pomodoro"
|
||||
"tray",
|
||||
"custom/pomodoro"
|
||||
],
|
||||
"modules-center": [
|
||||
"wlr/taskbar",
|
||||
|
||||
@@ -33,9 +33,8 @@
|
||||
}
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"persistent-only": true,
|
||||
"disable-scroll": true,
|
||||
"all-outputs": false,
|
||||
"active-only": false,
|
||||
"warp-on-scroll": false,
|
||||
"move-to-monitor": true,
|
||||
"persistent-workspaces": {
|
||||
|
||||
@@ -8,8 +8,10 @@ TOP_STYLE="$DIR/style/style_top.css"
|
||||
BOTTOM_CONFIG="$DIR/config_bottom.jsonc"
|
||||
BOTTOM_STYLE="$DIR/style/style_bottom.css"
|
||||
|
||||
DOCK_CONFIG="$DIR/config_dock.jsonc"
|
||||
DOCK_STYLE="$DIR/style/style_dock.css"
|
||||
# A hack needed for the bar to recognize the special workspaces defined in the
|
||||
# Hyprland config instead of creating regular workspaces with the same name,
|
||||
# breaking the functionality.
|
||||
# POPULATE_SPECIAL_WORKSPACES=1
|
||||
|
||||
kill_bars() {
|
||||
if pgrep waybar > /dev/null; then
|
||||
@@ -20,9 +22,22 @@ kill_bars() {
|
||||
}
|
||||
|
||||
run_bars() {
|
||||
|
||||
# if [ $POPULATE_SPECIAL_WORKSPACES -eq 1 ]; then
|
||||
# hyprctl dispatch exec [ workspace special:dungeon silent ] "kitty --class kitty-specialkludge1"
|
||||
# hyprctl dispatch exec [ workspace special:magic silent ] "kitty --class kitty-specialkludge2"
|
||||
# sleep 1
|
||||
# fi
|
||||
|
||||
waybar -c "$TOP_CONFIG" -s "$TOP_STYLE" &
|
||||
waybar -c "$BOTTOM_CONFIG" -s "$BOTTOM_STYLE" &
|
||||
waybar -c "$DOCK_CONFIG" -s "$DOCK_STYLE" &
|
||||
|
||||
# if [ $POPULATE_SPECIAL_WORKSPACES -eq 1 ]; then
|
||||
# sleep 2
|
||||
# hyprctl dispatch closewindow class:kitty-specialkludge1
|
||||
# hyprctl dispatch closewindow class:kitty-specialkludge2
|
||||
# fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
@define-color bg-opaque rgba(23, 28, 39, 0.8);
|
||||
@define-color border-color-section rgba(0,0,0,0);
|
||||
@define-color border-color rgba(90, 104, 115, 0.8); /* Matches --noti-border-color */
|
||||
@define-color text-primary #ffffff;
|
||||
@define-color text-primary #cccccc;
|
||||
@define-color text-secondary alpha(@text-primary,.2);
|
||||
@define-color accent #E83C82;
|
||||
@define-color accent #FD5164;
|
||||
@define-color attention #FFFF00;
|
||||
@define-color warning #FFAA00;
|
||||
@define-color danger #FF0000;
|
||||
|
||||
@@ -77,12 +77,16 @@ window#waybar.chromium {
|
||||
}
|
||||
|
||||
/* Workspace States */
|
||||
#workspaces button.empty {
|
||||
#workspaces button.empty:not(.special) {
|
||||
color: @text-secondary;
|
||||
}
|
||||
|
||||
#workspaces button.empty:not(.hosting-monitor) {
|
||||
color: alpha(@text-secondary, 0.1);
|
||||
#workspaces button.active:not(.hosting-monitor) {
|
||||
text-shadow: 0px 0px 8px @accent;
|
||||
}
|
||||
|
||||
#workspaces button.special.active {
|
||||
text-shadow: 0px 0px 8px @primary;
|
||||
}
|
||||
|
||||
#workspaces button.active.hosting-monitor {
|
||||
@@ -91,6 +95,10 @@ window#waybar.chromium {
|
||||
animation: hover 0.8s 1;
|
||||
}
|
||||
|
||||
#workspaces button.empty:not(.hosting-monitor):not(.special) {
|
||||
color: alpha(@text-secondary, 0.45);
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: @attention;
|
||||
font-weight: 700;
|
||||
@@ -105,7 +113,7 @@ window#waybar.chromium {
|
||||
text-shadow: 0px -2px 3px @text-primary;
|
||||
}
|
||||
|
||||
#workspaces button:not(.hosting-monitor):not(.empty) {
|
||||
#workspaces button:not(.hosting-monitor):not(.empty):not(.special) {
|
||||
color: alpha(@accent, 0.2);
|
||||
}
|
||||
|
||||
@@ -119,18 +127,13 @@ window#waybar.chromium {
|
||||
/* --------------------------------------------------------------------------
|
||||
SIDE PANEL GROUPS
|
||||
-------------------------------------------------------------------------- */
|
||||
#mpd, #mpris, .modules-center, .modules-right {
|
||||
#mpd, #mpris, #workspaces, .modules-right {
|
||||
/* Layout & Box Model */
|
||||
border: 1px solid @border-color;
|
||||
border-radius: 15px;
|
||||
|
||||
/* Colors */
|
||||
background-color: @bg-panel;
|
||||
/* color: @text-primary; */
|
||||
|
||||
/* Effects & Transitions */
|
||||
/* transition-property: background-color; */
|
||||
/* transition-duration: 0.5s; */
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
@@ -269,7 +272,7 @@ window#waybar.chromium {
|
||||
-------------------------------------------------------------------------- */
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 0px;
|
||||
margin: 0 2.5px;
|
||||
}
|
||||
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
|
||||
Reference in New Issue
Block a user