hyprconfig
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "Dynamic"
|
||||
# -----------------------------------------------------
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = wind, 0.05, 0.9, 0.1, 1
|
||||
bezier = winIn, 0.1, 1.0, 0.1, 1.0
|
||||
bezier = winOut, 1, 0.35, 1, 1
|
||||
bezier = liner, 1, 1, 1, 1
|
||||
bezier = cubic-bezier, 0.215, 0.61, 0.355, 1
|
||||
animation = windows, 1, 3, wind, popin
|
||||
animation = windowsIn, 1, 3, winIn, popin 70%
|
||||
animation = windowsOut, 1, 3, default, popin 80%
|
||||
animation = windowsMove, 1, 3, wind, slide
|
||||
animation = border, 1, 1, liner
|
||||
animation = borderangle, 0, 30, liner, loop
|
||||
animation = fadeOut, 1, 3, default
|
||||
animation = fadeIn, 1, 4, default
|
||||
animation = workspaces, 1, 4, wind
|
||||
animation = layers, 1, 5, cubic-bezier, fade
|
||||
animation = fadeLayers, 0, 1, default
|
||||
animation = fadePopups, 0
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
debug {
|
||||
full_cm_proto = true
|
||||
}
|
||||
|
||||
ecosystem {
|
||||
no_update_news = true
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
# General window decoration
|
||||
source = ~/.config/hypr/effects/colors/colors.conf
|
||||
|
||||
general {
|
||||
border_size = 4
|
||||
col.inactive_border = $vivian1 $ado 90deg
|
||||
col.active_border = $pink $vivian2 60deg
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
blur {
|
||||
enabled = true
|
||||
size = 2
|
||||
passes = 3
|
||||
new_optimizations = on
|
||||
ignore_opacity = true
|
||||
contrast = 1.0
|
||||
brightness = 1.0
|
||||
vibrancy = 0.0
|
||||
vibrancy_darkness = 0.0
|
||||
xray = false
|
||||
noise = 0
|
||||
popups = true
|
||||
input_methods = true
|
||||
}
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
dim_inactive = true
|
||||
dim_strength = 0.0
|
||||
fullscreen_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 100
|
||||
render_power = 4
|
||||
color = 0x66000000
|
||||
color_inactive = 0x33000000
|
||||
offset = 0, 10
|
||||
scale = 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
general {
|
||||
border_size = 2
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
blur {
|
||||
enabled = true
|
||||
size = 6
|
||||
passes = 2
|
||||
new_optimizations = on
|
||||
ignore_opacity = true
|
||||
xray = false
|
||||
# blurls = waybar
|
||||
}
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 0.8
|
||||
fullscreen_opacity = 1.0
|
||||
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 30
|
||||
render_power = 3
|
||||
color = 0x66000000
|
||||
}
|
||||
|
||||
#drop_shadow = true
|
||||
#shadow_range = 30
|
||||
#shadow_render_power = 13
|
||||
#col.shadow = 0x66000000
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
# -----------------------------------------------------
|
||||
# General window decoration
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
general {
|
||||
border_size = 2
|
||||
col.inactive_border = rgba(d50000ff) rgba(c300afff) 90deg
|
||||
col.active_border = rgba(9a00ffff) rgba(de00e7ff) 90deg
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
blur {
|
||||
enabled = true
|
||||
size = 2
|
||||
passes = 4
|
||||
new_optimizations = on
|
||||
ignore_opacity = true
|
||||
contrast = 1.0
|
||||
brightness = 1.0
|
||||
vibrancy = 0.5
|
||||
vibrancy_darkness = 0.1
|
||||
xray = false
|
||||
noise = 0
|
||||
popups = true
|
||||
input_methods = true
|
||||
}
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
dim_inactive = true
|
||||
dim_strength = 0.0
|
||||
fullscreen_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 100
|
||||
render_power = 4
|
||||
color = 0x66000000
|
||||
color_inactive = 0x33000000
|
||||
offset = 0, 10
|
||||
scale = 1
|
||||
}
|
||||
}
|
||||
|
||||
windowrule = nodim 1, fullscreenstate:* 2
|
||||
@@ -0,0 +1,6 @@
|
||||
# Environment Variables
|
||||
|
||||
opengl {
|
||||
nvidia_anti_flicker = false
|
||||
}
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
$mainMod = SUPER
|
||||
$altMod = ALT
|
||||
|
||||
# Main
|
||||
bind = , code:121, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bind = , code:122, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-
|
||||
bind = , code:123, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+ --limit 1.0
|
||||
bind = , PRINT, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bind = CTRL, PRINT, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bind = $mainMod, PRINT, exec, uwsm-app -S out -- wpctl set-volume @DEFAULT_AUDIO_SOURCE@ 0.32
|
||||
bind = $mainMod, RETURN, exec, uwsm-app -S out -- zterm # Open terminal
|
||||
bind = $mainMod, B, exec, uwsm-app -S out -- librewolf # Open browser
|
||||
bind = $mainMod, E, exec, uwsm-app -S out -- dolphin # Open filemanager
|
||||
bind = $mainMod, V, exec, uwsm-app -S out -- discord # Open Discord
|
||||
bind = $mainMod, C, exec, uwsm-app -S out -- Telegram # Open Telegram
|
||||
bind = $mainMod, S, exec, uwsm-app -S out -- spotify-launcher # Open Spotify
|
||||
bind = $mainMod, X, exec, uwsm-app -S out -- env SDL_VIDEODRIVER="x11" osu-lazer # pen Osu-Lazer!
|
||||
|
||||
# Actions
|
||||
bind = $mainMod CTRL, Q, exec, uwsm-app -S out -- hyprshutdown --post-cmd 'systemctl poweroff'
|
||||
# bind = $mainMod SHIFT, S, exec, uwsm-app -S out -- hyprshot -m region -o /home/inorishio/Pictures/Screenshots -s
|
||||
bind = $mainMod, TAB, workspace, m+1 # Open next workspace
|
||||
bind = $mainMod, Escape, workspace, m-1 # Open previous workspace
|
||||
|
||||
# QML
|
||||
bind = CTRL, mouse:274, global, I-DeskPet:toggle-Region
|
||||
bind = SHIFT, mouse:274, global, I-DeskPet:toggle-Layer
|
||||
bind = $mainMod CTRL, RETURN, global, z-cast:toggle-launcher
|
||||
bind = $mainMod, N, global, zshell-nc:toggle-nc
|
||||
bind = $mainMod, L, global, zshell-lock:lock
|
||||
bind = $mainMod SHIFT, S, global, ZShell:screenshot
|
||||
bind = $mainMod CTRL, S, global, ZShell:screenshotFreeze
|
||||
|
||||
# Mediakeys
|
||||
bind = $mainMod, code:67, exec, uwsm-app -S out -- playerctl play-pause # F1
|
||||
bind = $mainMod, code:68, exec, uwsm-app -S out -- playerctl previous # F2
|
||||
bind = $mainMod, code:69, exec, uwsm-app -S out -- playerctl next # F3
|
||||
bind = , code:172, exec, uwsm-app -S out -- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle # Mouse sidebutton
|
||||
bind = , code:171, workspace, m+1 # Mouse upleft
|
||||
bind = , code:173, workspace, m-1 # Mouse upright
|
||||
|
||||
# Windows
|
||||
bind = $mainMod, Q, killactive # Kill window
|
||||
bind = $mainMod, F, fullscreen # Fullscreen
|
||||
bind = $mainMod, T, togglefloating # Toggle float
|
||||
bind = $mainMod, J, togglesplit # Toggle split
|
||||
bind = $mainMod, K, swapsplit # Swapsplit
|
||||
bind = $mainMod, left, movefocus, l # Move focus left
|
||||
bind = $mainMod, right, movefocus, r # Move focus right
|
||||
bind = $mainMod, up, movefocus, u # Move focus up
|
||||
bind = $mainMod, down, movefocus, d # Move focus down
|
||||
bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
|
||||
bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
|
||||
bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
|
||||
bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
|
||||
bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
|
||||
bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
|
||||
|
||||
# Workspaces
|
||||
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 only window to workspace
|
||||
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
|
||||
|
||||
# Move with window to workspace
|
||||
bind = $mainMod CTRL, 1, movetoworkspace, 1
|
||||
bind = $mainMod CTRL, 2, movetoworkspace, 2
|
||||
bind = $mainMod CTRL, 3, movetoworkspace, 3
|
||||
bind = $mainMod CTRL, 4, movetoworkspace, 4
|
||||
bind = $mainMod CTRL, 5, movetoworkspace, 5
|
||||
bind = $mainMod CTRL, 6, movetoworkspace, 6
|
||||
bind = $mainMod CTRL, 7, movetoworkspace, 7
|
||||
bind = $mainMod CTRL, 8, movetoworkspace, 8
|
||||
bind = $mainMod CTRL, 9, movetoworkspace, 9
|
||||
bind = $mainMod CTRL, 0, movetoworkspace, 10
|
||||
@@ -0,0 +1,24 @@
|
||||
# QT
|
||||
layerrule = blur on, match:namespace ZShell-Notifs
|
||||
layerrule = blur_popups on, match:namespace ZShell-Notifs
|
||||
layerrule = ignore_alpha 0.5, match:namespace ZShell-Notifs
|
||||
|
||||
layerrule = blur on, match:namespace ZShell-Bar
|
||||
layerrule = blur_popups on, match:namespace ZShell-Bar
|
||||
layerrule = ignore_alpha 0.5, match:namespace ZShell-Bar
|
||||
|
||||
layerrule = blur on, match:namespace ZShell-Bar-Exclusion
|
||||
layerrule = blur_popups on, match:namespace ZShell-Bar-Exclusion
|
||||
layerrule = ignore_alpha 0.5, match:namespace ZShell-Bar-Exclusion
|
||||
|
||||
layerrule = blur on, match:namespace ZShell-Wallpaper
|
||||
layerrule = blur_popups on, match:namespace ZShell-Wallpaper
|
||||
layerrule = ignore_alpha 0.5, match:namespace ZShell-Wallpaper
|
||||
|
||||
layerrule = blur on, match:namespace ZShell-Launcher
|
||||
layerrule = blur_popups on, match:namespace ZShell-Launcher
|
||||
layerrule = ignore_alpha 0.5, match:namespace ZShell-Launcher
|
||||
|
||||
layerrule = blur on, match:namespace IDeskPet-Pet
|
||||
layerrule = blur_popups on, match:namespace IDeskPet-Pet
|
||||
layerrule = ignore_alpha 0.5, match:namespace IDeskPet-Pet
|
||||
@@ -0,0 +1,17 @@
|
||||
# PC Layouts
|
||||
|
||||
dwindle {
|
||||
pseudotile = true
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
master {
|
||||
# Commented out due to compatibility reasons
|
||||
# new_status = master
|
||||
}
|
||||
|
||||
binds {
|
||||
workspace_back_and_forth = true
|
||||
allow_workspace_cycles = true
|
||||
pass_mouse_when_bound = false
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
# Keyboard Layout
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
numlock_by_default = true
|
||||
follow_mouse = 1
|
||||
mouse_refocus=false
|
||||
accel_profile = flat
|
||||
sensitivity = 0
|
||||
# ESC and CAPS swap
|
||||
kb_options = compose:ralt, #caps:swapescape
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# Laptop Layouts
|
||||
|
||||
dwindle {
|
||||
pseudotile = true
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
master {
|
||||
# Commented out due to compatibility reasons
|
||||
# new_status = master
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 3
|
||||
workspace_swipe_distance = 500
|
||||
workspace_swipe_invert = true
|
||||
workspace_swipe_min_speed_to_force = 30
|
||||
workspace_swipe_cancel_ratio = 0.5
|
||||
workspace_swipe_create_new = true
|
||||
workspace_swipe_forever = true
|
||||
}
|
||||
|
||||
binds {
|
||||
workspace_back_and_forth = true
|
||||
allow_workspace_cycles = true
|
||||
pass_mouse_when_bound = false
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
# -----------------------------------------------------
|
||||
# Misc settings
|
||||
# -----------------------------------------------------
|
||||
|
||||
misc {
|
||||
mouse_move_enables_dpms = true
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
allow_session_lock_restore = true
|
||||
session_lock_xray = true
|
||||
animate_manual_resizes = true
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
# -----------------------------------------------------
|
||||
# Monitor Setup
|
||||
# name: "2560x1440@120"
|
||||
# -----------------------------------------------------
|
||||
|
||||
monitor=,2560x1440@120,auto,1
|
||||
@@ -0,0 +1,9 @@
|
||||
# Monitor Setup
|
||||
|
||||
monitorv2 {
|
||||
output = DP-1
|
||||
mode = 2560x1440@143.97
|
||||
position = 0x0
|
||||
scale = 1.334
|
||||
cm = auto
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# exec-once = uwsm app -S out -- ~/.config/hypr/scripts/Workspace_Wallpapers.sh
|
||||
# exec-once = uwsm app -S out -- ~/.config/hypr/scripts/Stream.sh
|
||||
# exec-once = uwsm app -S out -- ~/.config/hypr/scripts/Z-Cast.sh
|
||||
# exec-once = uwsm app -S out -- ~/.config/hypr/scripts/OBS.sh
|
||||
exec-once = uwsm app -S out -- ~/.config/hypr/scripts/Gtk-Settings.sh
|
||||
@@ -0,0 +1,43 @@
|
||||
# Basic apps
|
||||
windowrule = tile on, match:class ^(librewolf)$
|
||||
windowrule = float on, match:class ^(pavucontrol)$
|
||||
windowrule = float on, match:class ^(blueman-manager)$
|
||||
windowrule = float on, match:class ^(nm-connection-editor)$
|
||||
windowrule = float on, match:class ^(mpv)$
|
||||
windowrule = float on, match:class ^(swayimg)$
|
||||
|
||||
windowrule = float on, match:title ^(Picture-in-Picture)$
|
||||
windowrule = pin on, match:title ^(Picture-in-Picture)$
|
||||
windowrule = move 69.5% 4%, match:title ^(Picture-in-Picture)$
|
||||
windowrule = float on, match:title ^(Friends List)$
|
||||
windowrule = float on, match:title ^(Save Image - *)$
|
||||
|
||||
# Pavucontrol floating
|
||||
windowrule = float on, match:class (.*org.pulseaudio.pavucontrol.*)
|
||||
windowrule = size 700 600, match:class (.*org.pulseaudio.pavucontrol.*)
|
||||
windowrule = center on, match:class (.*org.pulseaudio.pavucontrol.*)
|
||||
windowrule = pin on, match:class (.*org.pulseaudio.pavucontrol.*)
|
||||
|
||||
# Hyprland Share Picker
|
||||
windowrule = float on, match:class (hyprland-share-picker)
|
||||
windowrule = pin on, match:class (hyprland-share-picker)
|
||||
windowrule = center on, match:title (hyprland-share-picker)
|
||||
windowrule = size 600 400, match:class (hyprland-share-picker)
|
||||
|
||||
# Screenlock
|
||||
windowrule = idle_inhibit always, match:content 2
|
||||
windowrule = idle_inhibit always, match:content 3
|
||||
windowrule = idle_inhibit always, match:fullscreen_state_client 2
|
||||
windowrule = idle_inhibit always, match:fullscreen_state_internal 2
|
||||
|
||||
# Hypr Plugin Manager
|
||||
windowrule = darkwindow:shade chromakey bkg=[0.122 0.039 0.137] similarity=0.3 targetOpacity=0.9, match:class ^(org.telegram.desktop)$
|
||||
windowrule = darkwindow:shade chromakey bkg=[0.11 0.122 0.133] similarity=0.3 targetOpacity=0.9, match:class ^(org.openrgb.OpenRGB)$
|
||||
windowrule = darkwindow:shade chromakey bkg=[0.176 0.2 0.235] similarity=0.3 targetOpacity=0.9, match:class ^(steam)$
|
||||
windowrule = darkwindow:shade chromakey bkg=[0.125 0.137 0.149] similarity=0.3 targetOpacity=0.9, match:class ^(org.kde.dolphin)$
|
||||
|
||||
# # General floating
|
||||
# windowrule = float on, match:class (dotfiles-floating)
|
||||
# windowrule = size 1000 700, match:class (dotfiles-floating)
|
||||
# windowrule = center on, match:class (dotfiles-floating)
|
||||
# windowrule = pin on, match:class (dotfiles-floating)
|
||||
@@ -0,0 +1,8 @@
|
||||
# General window layout and colors
|
||||
|
||||
general {
|
||||
gaps_in = 3
|
||||
gaps_out = 6
|
||||
layout = dwindle
|
||||
resize_on_border = true
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
$pink = rgb(e46a97) # rgb(228, 106, 151)
|
||||
$vivian1 = rgb(6a4c9c) # rgb(106, 76, 156)
|
||||
$vivian2 = rgb(a388db) # rgb(163, 136, 219)
|
||||
$ado = rgb(1274b8) # rgb(18, 116, 184)
|
||||
$suisei = rgb(66daff) # rgb(102, 218, 255)
|
||||
@@ -0,0 +1,20 @@
|
||||
$color6: #E46A97; // Color I like
|
||||
$background: #10111e;
|
||||
$foreground: #c3c3c6;
|
||||
$cursor: #c3c3c6;
|
||||
|
||||
$color0: #10111e;
|
||||
$color1: #534776;
|
||||
$color2: #974A74;
|
||||
$color3: #48409C;
|
||||
$color4: #5F5194;
|
||||
$color5: #9F5D9B;
|
||||
$color7: #c3c3c6;
|
||||
$color8: #5d5f71;
|
||||
$color9: #534776;
|
||||
$color10: #974A74;
|
||||
$color11: #48409C;
|
||||
$color12: #5F5194;
|
||||
$color13: #9F5D9B;
|
||||
$color14: #E46A97;
|
||||
$color15: #c3c3c6;
|
||||
@@ -0,0 +1,22 @@
|
||||
$pink: #E46A97; // Color I like
|
||||
$vivian1: #6a4c9c;
|
||||
$vivian2: #A388DB;
|
||||
$background: #10111e;
|
||||
$foreground: #c3c3c6;
|
||||
$cursor: #c3c3c6;
|
||||
|
||||
$color0: #10111e;
|
||||
$color1: #534776;
|
||||
$color2: #974A74;
|
||||
$color3: #48409C;
|
||||
$color4: #5F5194;
|
||||
$color5: #9F5D9B;
|
||||
$color7: #c3c3c6;
|
||||
$color8: #5d5f71;
|
||||
$color9: #534776;
|
||||
$color10: #974A74;
|
||||
$color11: #48409C;
|
||||
$color12: #5F5194;
|
||||
$color13: #9F5D9B;
|
||||
$color14: #E46A97;
|
||||
$color15: #c3c3c6;
|
||||
@@ -0,0 +1,27 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 180
|
||||
on-timeout = hyprctl notify -1 3000 "rgb(ff1ea3)" "Your system will lock in 60 seconds"
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 240
|
||||
# on-timeout = loginctl lock-session
|
||||
# }
|
||||
|
||||
# listener {
|
||||
# timeout = 300
|
||||
# on-timeout = pkill hyprlock
|
||||
# on-resume = sleep 3 && hyprlock
|
||||
# }
|
||||
|
||||
# listener {
|
||||
# timeout = 300
|
||||
# on-timeout = hyprctl dispatch dpms off
|
||||
# on-resume = hyprctl dispatch dpms on
|
||||
# }
|
||||
@@ -0,0 +1,24 @@
|
||||
# Run on boot
|
||||
exec-once = uwsm app -S out -- hyprpm reload
|
||||
exec-once = uwsm app -S out -- obs --scene "Recording" --startreplaybuffer --minimize-to-tray
|
||||
exec-once = uwsm app -S out -- /usr/bin/otd-daemon
|
||||
exec-once = uwsm app -S out -- Telegram -startintray
|
||||
exec-once = uwsm app -S out -- discord --start-minimized
|
||||
exec-once = uwsm app -S out -- steam -silent
|
||||
exec-once = uwsm app -S out -- qs -d -p /home/inorishio/.config/quickshell/z-bar-qt/shell.qml
|
||||
exec-once = uwsm app -S out -- qs -d -p /home/inorishio/.config/quickshell/I-DesktopPet/shell.qml
|
||||
|
||||
# Sourcing config files
|
||||
source = ~/.config/hypr/conf/animations/InoriShio-animation.conf
|
||||
source = ~/.config/hypr/conf/custom.conf
|
||||
source = ~/.config/hypr/conf/decorations/InoriShio-decoration.conf
|
||||
source = ~/.config/hypr/conf/environments/nvidia.conf
|
||||
source = ~/.config/hypr/conf/keybindings/InoriShio-Keybindings.conf
|
||||
source = ~/.config/hypr/conf/layers.conf
|
||||
source = ~/.config/hypr/conf/layouts/computer.conf
|
||||
source = ~/.config/hypr/conf/layouts/keyboard.conf
|
||||
source = ~/.config/hypr/conf/misc.conf
|
||||
source = ~/.config/hypr/conf/monitors/InoriShio-Display.conf
|
||||
source = ~/.config/hypr/conf/windowrules/default.conf
|
||||
source = ~/.config/hypr/conf/windows/default.conf
|
||||
source = ~/.config/hypr/conf/scripts.conf
|
||||
@@ -0,0 +1,95 @@
|
||||
source = /home/inorishio/.config/hypr/effects/colors/colors.conf
|
||||
|
||||
general {
|
||||
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = /home/inorishio/Pictures/Backgrounds/128063483_p0.png
|
||||
blur_size = 4
|
||||
blur_passes = 3 # 0 disables blurring
|
||||
noise = 0.0117
|
||||
contrast = 1
|
||||
brightness = 1
|
||||
vibrancy = 0.0
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# Hours
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"
|
||||
color = $vivian2
|
||||
font_size = 112
|
||||
font_family = Geist Mono 10
|
||||
shadow_passes = 3
|
||||
shadow_size = 4
|
||||
|
||||
position = 0, 400
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Minutes
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"
|
||||
color = $vivian2
|
||||
font_size = 112
|
||||
font_family = Geist Mono 10
|
||||
shadow_passes = 3
|
||||
shadow_size = 4
|
||||
|
||||
position = 0, 270
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Today
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] echo "<b><big> "$(date +'%A')" </big></b>"
|
||||
color = $vivian2
|
||||
font_size = 22
|
||||
font_family = JetBrainsMono Nerd Font 10
|
||||
|
||||
position = 0, 180
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Week
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:18000000] echo "<b> "$(date +'%d %b')" </b>"
|
||||
color = $vivian2
|
||||
font_size = 18
|
||||
font_family = JetBrainsMono Nerd Font 10
|
||||
|
||||
position = 0, 155
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 250, 50
|
||||
outline_thickness = 3
|
||||
|
||||
dots_size = 0.26 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.64 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1
|
||||
|
||||
rounding = 22
|
||||
outer_color = $vivian2
|
||||
inner_color = $vivian2
|
||||
font_color = $vivian1
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||||
|
||||
position = 0, 120
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
profile {
|
||||
time = 9:30
|
||||
identity = true
|
||||
gamma = 1
|
||||
}
|
||||
|
||||
profile {
|
||||
time = 21:00
|
||||
temperature = 3200
|
||||
gamma = 1
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
$primary_paletteKeyColor = 7371ac
|
||||
$secondary_paletteKeyColor = 77758b
|
||||
$tertiary_paletteKeyColor = 956b81
|
||||
$neutral_paletteKeyColor = 78767d
|
||||
$neutral_variant_paletteKeyColor = 787680
|
||||
$background = 131318
|
||||
$onBackground = e5e1e9
|
||||
$surface = 131318
|
||||
$surfaceDim = 131318
|
||||
$surfaceBright = 39383f
|
||||
$surfaceContainerLowest = 0e0e13
|
||||
$surfaceContainerLow = 1c1b21
|
||||
$surfaceContainer = 201f25
|
||||
$surfaceContainerHigh = 2a292f
|
||||
$surfaceContainerHighest = 35343a
|
||||
$onSurface = e5e1e9
|
||||
$surfaceVariant = 47464f
|
||||
$onSurfaceVariant = c8c5d0
|
||||
$inverseSurface = e5e1e9
|
||||
$inverseOnSurface = 313036
|
||||
$outline = 928f9a
|
||||
$outlineVariant = 47464f
|
||||
$shadow = 000000
|
||||
$scrim = 000000
|
||||
$surfaceTint = c3c0ff
|
||||
$primary = c3c0ff
|
||||
$onPrimary = 2c2960
|
||||
$primaryContainer = 434078
|
||||
$onPrimaryContainer = e3dfff
|
||||
$inversePrimary = 5a5891
|
||||
$secondary = c7c4dd
|
||||
$onSecondary = 2f2e42
|
||||
$secondaryContainer = 48475b
|
||||
$onSecondaryContainer = e3e0f9
|
||||
$tertiary = eab9d1
|
||||
$onTertiary = 472639
|
||||
$tertiaryContainer = b1849b
|
||||
$onTertiaryContainer = 000000
|
||||
$error = ffb4ab
|
||||
$onError = 690005
|
||||
$errorContainer = 93000a
|
||||
$onErrorContainer = ffdad6
|
||||
$primaryFixed = e3dfff
|
||||
$primaryFixedDim = c3c0ff
|
||||
$onPrimaryFixed = 16134a
|
||||
$onPrimaryFixedVariant = 434078
|
||||
$secondaryFixed = e3e0f9
|
||||
$secondaryFixedDim = c7c4dd
|
||||
$onSecondaryFixed = 1a1a2c
|
||||
$onSecondaryFixedVariant = 464559
|
||||
$tertiaryFixed = ffd8ea
|
||||
$tertiaryFixedDim = eab9d1
|
||||
$onTertiaryFixed = 2f1123
|
||||
$onTertiaryFixedVariant = 603b4f
|
||||
$term0 = 353434
|
||||
$term1 = af71ff
|
||||
$term2 = 44def5
|
||||
$term3 = ffdcf2
|
||||
$term4 = 9aa9d8
|
||||
$term5 = b59eea
|
||||
$term6 = 9dceff
|
||||
$term7 = e8d3de
|
||||
$term8 = ac9fa9
|
||||
$term9 = c293ff
|
||||
$term10 = 89ecff
|
||||
$term11 = fff0f6
|
||||
$term12 = b5c1dd
|
||||
$term13 = cbb4f4
|
||||
$term14 = bae0ff
|
||||
$term15 = ffffff
|
||||
$rosewater = f7eff9
|
||||
$flamingo = e9ddf3
|
||||
$pink = e3d7ff
|
||||
$mauve = c1b8ff
|
||||
$red = c3a5fd
|
||||
$maroon = cab5ec
|
||||
$peach = e1c2f8
|
||||
$yellow = ffecf3
|
||||
$green = c8e3ff
|
||||
$teal = d4dfff
|
||||
$sky = d1daff
|
||||
$sapphire = b8c4ff
|
||||
$blue = b2b7ff
|
||||
$lavender = c8c8ff
|
||||
$klink = 7581d2
|
||||
$klinkSelection = 7681d2
|
||||
$kvisited = 8371d9
|
||||
$kvisitedSelection = 8571d9
|
||||
$knegative = a466ff
|
||||
$knegativeSelection = a665ff
|
||||
$kneutral = cc91ff
|
||||
$kneutralSelection = cd91ff
|
||||
$kpositive = 60adff
|
||||
$kpositiveSelection = 60adff
|
||||
$text = e5e1e9
|
||||
$subtext1 = c8c5d0
|
||||
$subtext0 = 928f9a
|
||||
$overlay2 = 7f7c87
|
||||
$overlay1 = 6b6973
|
||||
$overlay0 = 5a5861
|
||||
$surface2 = 49474f
|
||||
$surface1 = 37373d
|
||||
$surface0 = 25252a
|
||||
$base = 131318
|
||||
$mantle = 131318
|
||||
$crust = 121217
|
||||
$success = B5CCBA
|
||||
$onSuccess = 213528
|
||||
$successContainer = 374B3E
|
||||
$onSuccessContainer = D1E9D6
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/zsh
|
||||
|
||||
rm -rf /home/inorishio/.cache/wal/schemes/*
|
||||
|
||||
for file in /home/inorishio/Pictures/Backgrounds/*; do
|
||||
wal -i "$file" -n -b '#000000' -I cursor
|
||||
done
|
||||
for file in /home/inorishio/.cache/wal/schemes/*; do
|
||||
name="$(basename "$file" | sed 's/^_home_inorishio_Pictures_Backgrounds_//' | sed 's/_.*$//')"
|
||||
mv "$file" /home/inorishio/.cache/wal/schemes/"$name".json
|
||||
done
|
||||
Executable
+89
@@ -0,0 +1,89 @@
|
||||
import os
|
||||
import shutil
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
FOLDERS = [
|
||||
"/home/inorishio/.config/hypr/",
|
||||
"/home/inorishio/.config/zshrc/",
|
||||
"/home/inorishio/.config/ohmyposh/",
|
||||
"/home/inorishio/.config/fastfetch/",
|
||||
"/home/inorishio/.config/uwsm/",
|
||||
"/home/inorishio/.config/waybar/",
|
||||
"/usr/share/sddm/themes/inorishio-theme/",
|
||||
"/home/inorishio/.config/foot/",
|
||||
"/home/inorishio/NVML/",
|
||||
"/home/inorishio/.config/rofi/",
|
||||
"/home/inorishio/.config/swaync/",
|
||||
"/home/inorishio/.config/swayimg/",
|
||||
"/home/inorishio/.config/quickshell/",
|
||||
]
|
||||
GITREPO = "/home/inorishio/Documents/Git/Hyprland/Programs/"
|
||||
|
||||
EXCLUDE_PATTERN = re.compile(r'.*\.git$')
|
||||
|
||||
def get_file_date(filepath):
|
||||
return os.path.getmtime(filepath)
|
||||
|
||||
def sync_folders():
|
||||
all_files_in_repo = set()
|
||||
|
||||
# Track existing files in the GITREPO
|
||||
for root, _, files in os.walk(GITREPO):
|
||||
for file in files:
|
||||
if EXCLUDE_PATTERN.match(file):
|
||||
continue
|
||||
relative_path = os.path.relpath(os.path.join(root, file), GITREPO)
|
||||
all_files_in_repo.add(relative_path)
|
||||
|
||||
for folder in FOLDERS:
|
||||
if not os.path.exists(folder):
|
||||
continue
|
||||
|
||||
base_folder_name = os.path.basename(os.path.normpath(folder))
|
||||
|
||||
for root, _, files in os.walk(folder):
|
||||
for file in files:
|
||||
source_path = os.path.join(root, file)
|
||||
|
||||
if EXCLUDE_PATTERN.match(file):
|
||||
continue
|
||||
|
||||
relative_path = os.path.relpath(source_path, folder)
|
||||
dest_path = os.path.join(GITREPO, base_folder_name, relative_path)
|
||||
|
||||
os.makedirs(os.path.dirname(dest_path), exist_ok=True)
|
||||
|
||||
try:
|
||||
if os.path.exists(dest_path):
|
||||
source_time = get_file_date(source_path)
|
||||
dest_time = get_file_date(dest_path)
|
||||
|
||||
if source_time > dest_time:
|
||||
shutil.copy2(source_path, dest_path)
|
||||
elif dest_time > source_time:
|
||||
shutil.copy2(dest_path, source_path)
|
||||
else:
|
||||
shutil.copy2(source_path, dest_path)
|
||||
|
||||
all_files_in_repo.discard(os.path.join(base_folder_name, relative_path))
|
||||
except Exception as e:
|
||||
print(f"Error copying file {source_path} to {dest_path}: {e}")
|
||||
|
||||
for remaining_file in all_files_in_repo:
|
||||
try:
|
||||
os.remove(os.path.join(GITREPO, remaining_file))
|
||||
except Exception as e:
|
||||
print(f"Error removing file {remaining_file} from {GITREPO}: {e}")
|
||||
|
||||
def push_to_github():
|
||||
try:
|
||||
subprocess.run(['git', 'add', '.'], cwd=GITREPO, check=True)
|
||||
subprocess.run(['git', 'commit', '-m', 'Sync folders'], cwd=GITREPO, check=True)
|
||||
subprocess.run(['git', 'push'], cwd=GITREPO, check=True)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error pushing to GitHub: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
sync_folders()
|
||||
push_to_github()
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Set the GTK theme
|
||||
gsettings set org.gnome.desktop.interface cursor-theme "BreezeX-RosePine-Linux"
|
||||
@@ -0,0 +1,71 @@
|
||||
#!/bin/zsh
|
||||
|
||||
ArchPkgs=(
|
||||
grub
|
||||
grub-btrfs
|
||||
)
|
||||
|
||||
HyprPkgs=(
|
||||
hypridle
|
||||
hyprland
|
||||
hyprlock
|
||||
hyprls-git
|
||||
hyprpicker
|
||||
hyprpolkitagent-git
|
||||
hyprshot-git
|
||||
hyprsunset
|
||||
)
|
||||
|
||||
Pkgs=(
|
||||
7zip
|
||||
alsa-firmware
|
||||
alsa-utils
|
||||
btdu
|
||||
btop
|
||||
btrfs
|
||||
btrfs-progs
|
||||
croc
|
||||
cronie
|
||||
curseforge
|
||||
dart-sass
|
||||
discord
|
||||
foot
|
||||
gamemode
|
||||
gamescope
|
||||
gimp
|
||||
git
|
||||
git-credential-oauth
|
||||
gparted
|
||||
gpu-usage-waybar-git
|
||||
hwinfo
|
||||
iwd
|
||||
librewolf
|
||||
lua-language-server
|
||||
networkmanager-iwd
|
||||
networkmanager-openconnect
|
||||
nvtop
|
||||
obs-studio-browser
|
||||
olympus-git
|
||||
opentabletdriver
|
||||
osu-lazer-bin
|
||||
pacseek
|
||||
pipewire-alsa
|
||||
proton-tricks
|
||||
protonup-git
|
||||
pwvucontrol
|
||||
socat
|
||||
sddm-git
|
||||
steam
|
||||
swayimg
|
||||
swww
|
||||
telegram-desktop
|
||||
tmux
|
||||
ttf-0xproto-nerd
|
||||
uwsm
|
||||
waybar
|
||||
wev
|
||||
wl-clip-persist
|
||||
yabsnap
|
||||
yay
|
||||
zoxide
|
||||
)
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Var
|
||||
OBS='ws://localhost:4455'
|
||||
PASSWORD="B9AybRWAAmxjUKdy"
|
||||
last_recording_state=""
|
||||
last_streaming_state=""
|
||||
|
||||
# Connect w/Websocket
|
||||
coproc websocat -t "$OBS"
|
||||
|
||||
# Set Hello var
|
||||
read -r hello <&p
|
||||
|
||||
# Extract from Hello msg
|
||||
SALT=$(echo "$hello" | grep -o '"salt":"[^"]*"' | cut -d'"' -f4)
|
||||
CHALLENGE=$(echo "$hello" | grep -o '"challenge":"[^"]*"' | cut -d'"' -f4)
|
||||
|
||||
# Secret
|
||||
secret=$(printf "%s" "$PASSWORD$SALT" | openssl dgst -sha256 -binary | base64)
|
||||
auth=$(printf "%s" "$secret$CHALLENGE" | openssl dgst -sha256 -binary | base64)
|
||||
|
||||
# Websocket Auth
|
||||
print -p '{"op":1,"d":{"rpcVersion":1,"authentication":"'"$auth"'","eventSubscriptions":1023}}'
|
||||
|
||||
# Events
|
||||
while IFS= read -r msg; do
|
||||
eventType=$(echo "$msg" | grep -o '"eventType":"[^"]*"' | cut -d':' -f2 | tr -d '"')
|
||||
outputActive=$(echo "$msg" | grep -o '"outputActive":[^,}]*' | cut -d':' -f2)
|
||||
|
||||
case "$eventType" in
|
||||
RecordStateChanged)
|
||||
if [[ "$outputActive" != "$last_recording_state" ]]; then
|
||||
if [[ "$outputActive" == "true" ]]; then
|
||||
swaync-client --inhibitor-add "xdg-desktop-portal-hyprland"
|
||||
else
|
||||
swaync-client --inhibitor-remove "xdg-desktop-portal-hyprland"
|
||||
fi
|
||||
last_recording_state="$outputActive"
|
||||
fi;;
|
||||
StreamStateChanged)
|
||||
if [[ "$outputActive" != "$last_streaming_state" ]]; then
|
||||
if [[ "$outputActive" == "true" ]]; then
|
||||
swaync-client --inhibitor-add "xdg-desktop-portal-hyprland"
|
||||
else
|
||||
swaync-client --inhibitor-remove "xdg-desktop-portal-hyprland"
|
||||
fi
|
||||
last_streaming_state="$outputActive"
|
||||
fi;;
|
||||
esac
|
||||
done <&p
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/bin/zsh
|
||||
|
||||
qs -p $HOME/.config/quickshell/QtDesktopPet/
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
if pgrep waybar; then
|
||||
pkill waybar && sass ~/.config/waybar/zbar/zbar.scss ~/.config/waybar/zbar/zbar.css && waybar -c ~/.config/waybar/zbar/config.jsonc -s ~/.config/waybar/zbar/zbar.css # Reload waybar
|
||||
else
|
||||
sass ~/.config/waybar/zbar/zbar.scss ~/.config/waybar/zbar/zbar.css && waybar -c ~/.config/waybar/zbar/config.jsonc -s ~/.config/waybar/zbar/zbar.css # Reload waybar
|
||||
fi
|
||||
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/zsh
|
||||
|
||||
XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
handle() {
|
||||
case $1 in
|
||||
"screencast>>1,"*)
|
||||
swaync-client --inhibitor-add "xdg-desktop-portal-hyprland" &
|
||||
;;
|
||||
"screencast>>0,"*)
|
||||
echo hi &
|
||||
swaync-client --inhibitor-remove "xdg-desktop-portal-hyprland" &
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock | while read -r line; do handle "$line"; done
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/zsh
|
||||
|
||||
VPN="https://anyconnect.vught.nl"
|
||||
|
||||
if ( pgrep openconnect > /dev/null ); then
|
||||
pkill openconnect
|
||||
else
|
||||
openconnect-sso --server $VPN
|
||||
fi
|
||||
Executable
+114
@@ -0,0 +1,114 @@
|
||||
#!/bin/zsh
|
||||
|
||||
export XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
num_workspaces=10
|
||||
|
||||
random_images=()
|
||||
|
||||
background_dir="/home/inorishio/Pictures/Backgrounds/"
|
||||
|
||||
populate_random_images() {
|
||||
local images=($(find $background_dir -type f | shuf -n $num_workspaces))
|
||||
random_images=("${images[@]}")
|
||||
}
|
||||
|
||||
wal_ran_for_ws=(0 0 0 0 0 0 0 0 0 0)
|
||||
|
||||
set_wal_for_workspace() {
|
||||
for i in {1..10}; do
|
||||
wal_ran_for_ws[$i]=0
|
||||
done
|
||||
}
|
||||
|
||||
handle_background() {
|
||||
case $1 in
|
||||
"workspace>>1") swww img --transition-type none "${random_images[1]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 1 ]]; then
|
||||
if [[ "${wal_ran_for_ws[1]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[1]}" -I cursor
|
||||
set_wal_for_workspace 1
|
||||
fi
|
||||
wal_ran_for_ws[1]=1
|
||||
fi ;;
|
||||
"workspace>>2") swww img --transition-type none "${random_images[2]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 2 ]]; then
|
||||
if [[ "${wal_ran_for_ws[2]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[2]}" -I cursor
|
||||
set_wal_for_workspace 2
|
||||
fi
|
||||
wal_ran_for_ws[2]=1
|
||||
fi ;;
|
||||
"workspace>>3") swww img --transition-type none "${random_images[3]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 3 ]]; then
|
||||
if [[ "${wal_ran_for_ws[3]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[3]}" -I cursor
|
||||
set_wal_for_workspace 3
|
||||
fi
|
||||
wal_ran_for_ws[3]=1
|
||||
fi ;;
|
||||
"workspace>>4") swww img --transition-type none "${random_images[4]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 4 ]]; then
|
||||
if [[ "${wal_ran_for_ws[4]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[4]}" -I cursor
|
||||
set_wal_for_workspace 4
|
||||
fi
|
||||
wal_ran_for_ws[4]=1
|
||||
fi ;;
|
||||
"workspace>>5") swww img --transition-type none "${random_images[5]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 5 ]]; then
|
||||
if [[ "${wal_ran_for_ws[5]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[5]}" -I cursor
|
||||
set_wal_for_workspace 5
|
||||
fi
|
||||
wal_ran_for_ws[5]=1
|
||||
fi ;;
|
||||
"workspace>>6") swww img --transition-type none "${random_images[6]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 6 ]]; then
|
||||
if [[ "${wal_ran_for_ws[6]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[6]}" -I cursor
|
||||
set_wal_for_workspace 6
|
||||
fi
|
||||
wal_ran_for_ws[6]=1
|
||||
fi ;;
|
||||
"workspace>>7") swww img --transition-type none "${random_images[7]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 7 ]]; then
|
||||
if [[ "${wal_ran_for_ws[7]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[7]}" -I cursor
|
||||
set_wal_for_workspace 7
|
||||
fi
|
||||
wal_ran_for_ws[7]=1
|
||||
fi ;;
|
||||
"workspace>>8") swww img --transition-type none "${random_images[8]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 8 ]]; then
|
||||
if [[ "${wal_ran_for_ws[8]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[8]}" -I cursor
|
||||
set_wal_for_workspace 8
|
||||
fi
|
||||
wal_ran_for_ws[8]=1
|
||||
fi ;;
|
||||
"workspace>>9") swww img --transition-type none "${random_images[9]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 9 ]]; then
|
||||
if [[ "${wal_ran_for_ws[9]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[9]}" -I cursor
|
||||
set_wal_for_workspace 9
|
||||
fi
|
||||
wal_ran_for_ws[9]=1
|
||||
fi ;;
|
||||
"workspace>>10") swww img --transition-type none "${random_images[10]}"
|
||||
if [[ "$(hyprctl activewindow | grep 'initialClass:' | awk '{print $2}')" == "footclient" && "$(hyprctl activewindow | grep 'workspace:' | awk '{print $2}')" -eq 10 ]]; then
|
||||
if [[ "${wal_ran_for_ws[10]}" -eq 0 ]]; then
|
||||
wal -i "${random_images[10]}" -I cursor
|
||||
set_wal_for_workspace 10
|
||||
fi
|
||||
wal_ran_for_ws[10]=1
|
||||
fi ;;
|
||||
esac
|
||||
}
|
||||
|
||||
populate_random_images
|
||||
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle_background "$line"
|
||||
done
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/zsh
|
||||
|
||||
cd ~/Documents/Git/Z-Cast/
|
||||
|
||||
exec ~/miniconda3/envs/Zachjittery/bin/python main.py
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
dir="/home/inorishio/Pictures/Backgrounds/"
|
||||
output_file="/tmp/random_images.list"
|
||||
images=10
|
||||
|
||||
# Generate random images
|
||||
find "$dir" -type f | shuf -n $images > "$output_file"
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/zsh
|
||||
|
||||
export XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
output_file="/tmp/random_images.list"
|
||||
scheme_dir="/home/inorishio/.cache/wal/schemes/"
|
||||
background_dir="/home/inorishio/Pictures/Backgrounds/"
|
||||
random_images=("${(@f)$(< "$output_file")}")
|
||||
|
||||
populate_random_schemes() {
|
||||
substract0=("${random_images[@]/$background_dir/$scheme_dir}")
|
||||
substract1=("${substract0[@]/.png/}")
|
||||
random_schemes=("${substract1[@]/.jpg/}")
|
||||
}
|
||||
|
||||
populate_random_schemes
|
||||
|
||||
wal_ran_for_ws=0
|
||||
|
||||
handle_terminal_workspace() {
|
||||
if [[ "$1" =~ workspace* ]]; then
|
||||
local ws="${1##*>>}"
|
||||
if [[ "$ws" == "1" && "$wal_ran_for_ws" -eq 0 ]]; then
|
||||
wal -f "${random_schemes[1]}"
|
||||
wal_ran_for_ws=1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle_terminal_workspace "$line"
|
||||
done
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
#!/bin/zsh
|
||||
|
||||
export XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
output_file="/tmp/random_images.list"
|
||||
scheme_dir="/home/inorishio/.cache/wal/schemes/"
|
||||
background_dir="/home/inorishio/Pictures/Backgrounds/"
|
||||
|
||||
# Load list of random images
|
||||
random_images=("${(@f)$(< "$output_file")}")
|
||||
|
||||
populate_random_schemes() {
|
||||
local tmp=()
|
||||
for img in "${random_images[@]}"; do
|
||||
img_name="${img##*/}" # get filename
|
||||
img_name="${img_name%.*}" # remove extension
|
||||
tmp+=("$scheme_dir/$img_name.json")
|
||||
done
|
||||
random_schemes=("${tmp[@]}")
|
||||
}
|
||||
|
||||
populate_random_schemes
|
||||
|
||||
current_workspace=""
|
||||
|
||||
handle_workspace_event() {
|
||||
if [[ "$1" == *"workspace>>"* ]]; then
|
||||
ws="${1##*>>}"
|
||||
current_workspace="$ws"
|
||||
|
||||
# Map workspace number to array index (Zsh arrays start at 1)
|
||||
if (( ws <= ${#random_schemes[@]} )); then
|
||||
wal -f "${random_schemes[$ws]}"
|
||||
echo "Applied ${random_schemes[$ws]} for workspace $ws"
|
||||
else
|
||||
echo "No theme assigned for workspace $ws"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Listen for events from Hyprland
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle_workspace_event "$line"
|
||||
done
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
#!/bin/zsh
|
||||
|
||||
export XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
output_file="/tmp/random_images.list"
|
||||
scheme_dir="/home/inorishio/.cache/wal/schemes/"
|
||||
background_dir="/home/inorishio/Pictures/Backgrounds/"
|
||||
|
||||
# Load list of random images
|
||||
random_images=("${(@f)$(< "$output_file")}")
|
||||
|
||||
populate_random_schemes() {
|
||||
local tmp=()
|
||||
for img in "${random_images[@]}"; do
|
||||
img_name="${img##*/}" # get filename
|
||||
img_name="${img_name%.*}" # remove extension
|
||||
tmp+=("$scheme_dir/$img_name.json")
|
||||
done
|
||||
random_schemes=("${tmp[@]}")
|
||||
}
|
||||
|
||||
populate_random_schemes
|
||||
|
||||
current_workspace=""
|
||||
|
||||
handle_workspace_event() {
|
||||
if [[ "$1" == *"workspace>>"* ]]; then
|
||||
ws="${1##*>>}"
|
||||
current_workspace="$ws"
|
||||
|
||||
if (( ws <= ${#random_schemes[@]} )); then
|
||||
wal -f "${random_schemes[$ws]}"
|
||||
echo "Applied ${random_schemes[$ws]} for workspace $ws"
|
||||
else
|
||||
echo "No theme assigned for workspace $ws"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# 📦 Poll terminal workspace assignment in background
|
||||
track_terminal_workspace() {
|
||||
local last_ws=""
|
||||
while true; do
|
||||
terminal_ws=$(hyprctl clients -j | jq -r '.[] | select(.class == "foot") | .workspace.id' | head -n1)
|
||||
|
||||
if [[ "$terminal_ws" != "$last_ws" && "$terminal_ws" != "null" ]]; then
|
||||
if (( terminal_ws <= ${#random_schemes[@]} )); then
|
||||
wal -f "${random_schemes[$terminal_ws]}"
|
||||
echo "Applied ${random_schemes[$terminal_ws]} for foot terminal on workspace $terminal_ws"
|
||||
fi
|
||||
last_ws="$terminal_ws"
|
||||
fi
|
||||
|
||||
sleep 0.5
|
||||
done
|
||||
}
|
||||
|
||||
# Start the terminal workspace watcher in background
|
||||
track_terminal_workspace &
|
||||
|
||||
# Listen for Hyprland events in foreground
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle_workspace_event "$line"
|
||||
done
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/zsh
|
||||
|
||||
export XDG_RUNTIME_DIR="/run/user/1000"
|
||||
|
||||
output_file="/tmp/random_images.list"
|
||||
random_images=("${(@f)$(< "$output_file")}")
|
||||
|
||||
handle_background() {
|
||||
case $1 in
|
||||
"workspace>>1") swww img --transition-type none "${random_images[1]}" ;;
|
||||
"workspace>>2") swww img --transition-type none "${random_images[2]}" ;;
|
||||
"workspace>>3") swww img --transition-type none "${random_images[3]}" ;;
|
||||
"workspace>>4") swww img --transition-type none "${random_images[4]}" ;;
|
||||
"workspace>>5") swww img --transition-type none "${random_images[5]}" ;;
|
||||
"workspace>>6") swww img --transition-type none "${random_images[6]}" ;;
|
||||
"workspace>>7") swww img --transition-type none "${random_images[7]}" ;;
|
||||
"workspace>>8") swww img --transition-type none "${random_images[8]}" ;;
|
||||
"workspace>>9") swww img --transition-type none "${random_images[9]}" ;;
|
||||
"workspace>>10") swww img --transition-type none "${random_images[10]}" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
socat -U - UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock |
|
||||
while read -r line; do
|
||||
handle_background "$line"
|
||||
done
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/zsh
|
||||
|
||||
hour=$(date +%H)
|
||||
|
||||
if [ $hour -ge 09 ] && [ $hour -lt 21 ]; then
|
||||
pkill hyprsunset
|
||||
elif [ $hour -ge 21 ] || [ $hour -lt 09 ]; then
|
||||
WAYLAND_DISPLAY=wayland-1 XDG_RUNTIME_DIR=/run/user/1000 hyprsunset -t 3200 &
|
||||
fi
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
START=21
|
||||
END=10
|
||||
CURRENT=$(date +%H)
|
||||
|
||||
if { [[ $CURRENT -lt $START ]] && [[ $CURRENT -ge $END ]] }; then
|
||||
systemctl --user start stophyprsunset.service
|
||||
else
|
||||
if { [[ $CURRENT -ge $START ]] || [[ $CURRENT -lt $END ]] }; then
|
||||
systemctl --user start starthyprsunset.service
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
START=20
|
||||
END=11
|
||||
CURRENT=$(date +%H)
|
||||
HYPRPRO=$(pgrep -x hyprsunset)
|
||||
|
||||
if { [[ $CURRENT -lt $START ]] || [[ $CURRENT -ge $END ]] }; then
|
||||
pkill hyprsunset
|
||||
else
|
||||
if { [[ $CURRENT -ge $START ]] || [[ $CURRENT -lt $END ]] }; then
|
||||
systemctl --user start newhyprsunset.service
|
||||
fi
|
||||
fi
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/zsh
|
||||
|
||||
APP="hyprsunset"
|
||||
|
||||
START=14
|
||||
END=09
|
||||
|
||||
CURRENT=$(date +%H)
|
||||
|
||||
if { [[ $CURRENT -lt $START ]] && [[ $CURRENT -ge $END ]] }; then
|
||||
pkill -x "$APP"
|
||||
exit 0
|
||||
else
|
||||
if { [[ $CURRENT -ge $START ]] || [[ $CURRENT -lt $END ]] }; then
|
||||
XDG_RUNTIME_DIR="/run/user/1000" WAYLAND_DISPLAY="wayland-1" hyprsunset -t 2600 &
|
||||
fi
|
||||
fi
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
# Remove gamemode flag
|
||||
if [ -f ~/.cache/gamemode ] ;then
|
||||
rm ~/.cache/gamemode
|
||||
echo ":: ~/.cache/gamemode removed"
|
||||
fi
|
||||
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
clear
|
||||
sleep 0.5
|
||||
figlet -f smslant "Diagnosis"
|
||||
echo
|
||||
echo "This script will check that essential packages and "
|
||||
echo "execution commands are available on your system."
|
||||
echo
|
||||
|
||||
_commandExists() {
|
||||
package="$1";
|
||||
if ! type $package > /dev/null 2>&1; then
|
||||
echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
|
||||
else
|
||||
echo ":: OK: $package found."
|
||||
fi
|
||||
}
|
||||
|
||||
_folderExists() {
|
||||
folder="$1";
|
||||
if [ ! -d $folder ]; then
|
||||
echo ":: ERROR: $folder doesn't exists."
|
||||
else
|
||||
echo ":: OK: $folder found."
|
||||
fi
|
||||
}
|
||||
|
||||
_commandExists "rofi" "rofi-wayland"
|
||||
_commandExists "dunst" "dunst"
|
||||
_commandExists "waybar" "waybar"
|
||||
_commandExists "hyprpaper" "hyprpaper"
|
||||
_commandExists "hyprlock" "hyprpaper"
|
||||
_commandExists "hypridle" "hyprpaper"
|
||||
_commandExists "hyprshade" "hyprshade"
|
||||
_commandExists "wal" "python-pywal"
|
||||
_commandExists "gum" "gum"
|
||||
_commandExists "wlogout" "wlogout"
|
||||
_commandExists "ags" "ags"
|
||||
_commandExists "magick" "imagemagick"
|
||||
_commandExists "figlet" "figlet"
|
||||
_commandExists "waypaper" "waypaper"
|
||||
|
||||
echo
|
||||
echo "Press return to exit"
|
||||
read
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
clear
|
||||
figlet -f smslant "Disable DM"
|
||||
echo "Hyprland recommends the start with the tty login."
|
||||
echo "You can deactivate the current display manager (if exists)."
|
||||
echo ""
|
||||
echo "-> Do you really want to deactivate the display manager?"
|
||||
while true; do
|
||||
read -p "Do you want to enable the sddm display manager and setup theme? (Yy/Nn): " yn
|
||||
case $yn in
|
||||
[Yy]* )
|
||||
if [ -f /etc/systemd/system/display-manager.service ]; then
|
||||
sudo rm /etc/systemd/system/display-manager.service
|
||||
echo "Current display manager removed."
|
||||
else
|
||||
echo "No active display manager found."
|
||||
fi
|
||||
break;;
|
||||
[Nn]* )
|
||||
exit
|
||||
break;;
|
||||
* ) echo "Please answer yes or no.";;
|
||||
esac
|
||||
done
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
if [ -f ~/.cache/gamemode ] ;then
|
||||
hyprctl reload
|
||||
rm ~/.cache/gamemode
|
||||
notify-send "Gamemode deactivated" "Animations and blur enabled"
|
||||
else
|
||||
hyprctl --batch "\
|
||||
keyword animations:enabled 0;\
|
||||
keyword decoration:drop_shadow 0;\
|
||||
keyword decoration:blur:enabled 0;\
|
||||
keyword general:gaps_in 0;\
|
||||
keyword general:gaps_out 0;\
|
||||
keyword general:border_size 1;\
|
||||
keyword decoration:rounding 0"
|
||||
touch ~/.cache/gamemode
|
||||
notify-send "Gamemode activated" "Animations and blur disabled"
|
||||
fi
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Source: https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
||||
|
||||
config="$HOME/.config/gtk-3.0/settings.ini"
|
||||
if [ ! -f "$config" ]; then exit 1; fi
|
||||
|
||||
gnome_schema="org.gnome.desktop.interface"
|
||||
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||
cursor_size="$(grep 'gtk-cursor-theme-size' "$config" | sed 's/.*\s*=\s*//')"
|
||||
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
|
||||
|
||||
echo $gtk_theme
|
||||
echo $icon_theme
|
||||
echo $cursor_theme
|
||||
echo $cursor_size
|
||||
echo $font_name
|
||||
|
||||
gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
|
||||
gsettings set "$gnome_schema" icon-theme "$icon_theme"
|
||||
gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
|
||||
gsettings set "$gnome_schema" font-name "$font_name"
|
||||
gsettings set "$gnome_schema" color-scheme "prefer-dark"
|
||||
|
||||
if [ -f ~/.config/hypr/conf/cursor.conf ] ;then
|
||||
echo "exec-once = hyprctl setcursor $cursor_theme $cursor_size" > ~/.config/hypr/conf/cursor.conf
|
||||
hyprctl setcursor $cursor_theme $cursor_size
|
||||
fi
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
SERVICE="hypridle"
|
||||
if [[ "$1" == "status" ]]; then
|
||||
sleep 1
|
||||
if pgrep -x "$SERVICE" >/dev/null ;then
|
||||
echo '{"text": "RUNNING", "class": "active", "tooltip": "Screen locking active\nLeft: Deactivate\nRight: Lock Screen"}'
|
||||
else
|
||||
echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "Screen locking deactivated\nLeft: Activate\nRight: Lock Screen"}'
|
||||
fi
|
||||
fi
|
||||
if [[ "$1" == "toggle" ]]; then
|
||||
if pgrep -x "$SERVICE" >/dev/null ;then
|
||||
killall hypridle
|
||||
else
|
||||
hypridle
|
||||
fi
|
||||
fi
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
wallpaper_engine=$(cat $HOME/.config/ml4w/settings/wallpaper-engine.sh)
|
||||
if [ "$wallpaper_engine" == "swww" ] ;then
|
||||
# swww
|
||||
echo ":: Using swww"
|
||||
swww init
|
||||
swww-daemon --format xrgb
|
||||
sleep 0.5
|
||||
~/.config/hypr/scripts/wallpaper.sh init
|
||||
elif [ "$wallpaper_engine" == "hyprpaper" ] ;then
|
||||
# hyprpaper
|
||||
echo ":: Using hyprpaper"
|
||||
sleep 0.5
|
||||
~/.config/hypr/scripts/wallpaper.sh init
|
||||
else
|
||||
echo ":: Wallpaper Engine disabled"
|
||||
~/.config/hypr/scripts/wallpaper.sh init
|
||||
fi
|
||||
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------
|
||||
# Get keybindings location based on variation
|
||||
# -----------------------------------------------------
|
||||
config_file=$(cat ~/.config/hypr/conf/keybinding.conf)
|
||||
config_file=${config_file/source = ~/}
|
||||
config_file=${config_file/source=~/}
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Path to keybindings config file
|
||||
# -----------------------------------------------------
|
||||
config_file="/home/$USER$config_file"
|
||||
echo "Reading from: $config_file"
|
||||
|
||||
keybinds=""
|
||||
|
||||
# Detect Start String
|
||||
while read -r line
|
||||
do
|
||||
if [[ "$line" == "bind"* ]]; then
|
||||
|
||||
line="$(echo "$line" | sed 's/$mainMod/SUPER/g')"
|
||||
line="$(echo "$line" | sed 's/bind = //g')"
|
||||
line="$(echo "$line" | sed 's/bindm = //g')"
|
||||
|
||||
IFS='#'
|
||||
read -a strarr <<<"$line"
|
||||
kb_str=${strarr[0]}
|
||||
cm_str=${strarr[1]}
|
||||
|
||||
IFS=','
|
||||
read -a kbarr <<<"$kb_str"
|
||||
|
||||
item="${kbarr[0]} + ${kbarr[1]}"$'\r'"${cm_str:1}"
|
||||
keybinds=$keybinds"$item"$'\n'
|
||||
fi
|
||||
done < "$config_file"
|
||||
|
||||
sleep 0.2
|
||||
echo -e "$keybinds" | walker -l 10 -p "Keybinds: "
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
if [ -f ~/.config/ml4w/version/compare.sh ] ;then
|
||||
$HOME/.config/ml4w/version/compare.sh
|
||||
fi
|
||||
|
||||
if [ ! -f ~/.cache/ml4w-post-install ] ;then
|
||||
if [ ! -f $HOME/.cache/ml4w-welcome-autostart ] ;then
|
||||
echo ":: Autostart of ML4W Welcome App enabled."
|
||||
if [ -f $HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage ] ;then
|
||||
echo ":: Starting ML4W Welcome App ..."
|
||||
sleep 2
|
||||
$HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage
|
||||
else
|
||||
echo ":: ML4W Welcome App not found."
|
||||
fi
|
||||
|
||||
else
|
||||
echo ":: Autostart of ML4W Welcome App disabled."
|
||||
fi
|
||||
else
|
||||
rm ~/.cache/ml4w-post-install
|
||||
terminal=$(cat ~/.config/ml4w/settings/terminal.sh)
|
||||
$terminal --class dotfiles-floating -e ~/.config/ml4w/postinstall.sh
|
||||
$HOME/.config/ml4w/apps/ML4W_Welcome-x86_64.AppImage
|
||||
fi
|
||||
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to log messages (useful for debugging)
|
||||
log_message() {
|
||||
# echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> ~/moveto_log.txt
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
||||
}
|
||||
|
||||
# Get the target workspace from the argument
|
||||
target_workspace=$1
|
||||
|
||||
# Check if a target workspace was provided
|
||||
if [ -z "$target_workspace" ]; then
|
||||
log_message "Error: No target workspace provided"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the current active workspace
|
||||
current_workspace=$(hyprctl activewindow -j | jq '.workspace.id')
|
||||
|
||||
if [ -z "$current_workspace" ]; then
|
||||
log_message "Error: Couldn't determine current workspace"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_message "Moving from workspace $current_workspace to $target_workspace"
|
||||
|
||||
# Get all window addresses in the current workspace
|
||||
window_addresses=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $current_workspace) | .address")
|
||||
|
||||
# Move each window to the target workspace
|
||||
for address in $window_addresses; do
|
||||
log_message "Moving window $address to workspace $target_workspace"
|
||||
hyprctl dispatch movetoworkspacesilent "$target_workspace,address:$address"
|
||||
done
|
||||
|
||||
log_message "Finished moving windows"
|
||||
|
||||
# Switch to the target workspace
|
||||
hyprctl dispatch workspace "$target_workspace"
|
||||
|
||||
log_message "Switched to workspace $target_workspace"
|
||||
Executable
+50
@@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if eww is open
|
||||
FILE="$HOME/.cache/ml4w_sidebar"
|
||||
|
||||
if [[ "$1" == "exit" ]]; then
|
||||
echo ":: Exit"
|
||||
if [[ -f "$FILE" ]]; then
|
||||
rm $FILE
|
||||
fi
|
||||
sleep 0.5
|
||||
killall -9 Hyprland
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
if [[ "$1" == "lock" ]]; then
|
||||
echo ":: Lock"
|
||||
sleep 0.5
|
||||
hyprlock
|
||||
fi
|
||||
|
||||
if [[ "$1" == "reboot" ]]; then
|
||||
echo ":: Reboot"
|
||||
if [[ -f "$FILE" ]]; then
|
||||
rm $FILE
|
||||
fi
|
||||
sleep 0.5
|
||||
systemctl reboot
|
||||
fi
|
||||
|
||||
if [[ "$1" == "shutdown" ]]; then
|
||||
echo ":: Shutdown"
|
||||
if [[ -f "$FILE" ]]; then
|
||||
rm $FILE
|
||||
fi
|
||||
sleep 0.5
|
||||
systemctl poweroff
|
||||
fi
|
||||
|
||||
if [[ "$1" == "suspend" ]]; then
|
||||
echo ":: Suspend"
|
||||
sleep 0.5
|
||||
systemctl suspend
|
||||
fi
|
||||
|
||||
if [[ "$1" == "hibernate" ]]; then
|
||||
echo ":: Hibernate"
|
||||
sleep 1;
|
||||
systemctl hibernate
|
||||
fi
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
killall hypridle
|
||||
sleep 1
|
||||
hypridle &
|
||||
notify-send "hypridle has been restarted."
|
||||
Executable
+217
@@ -0,0 +1,217 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------
|
||||
|
||||
# Screenshots will be stored in $HOME by default.
|
||||
# The screenshot will be moved into the screenshot directory
|
||||
|
||||
# Add this to ~/.config/user-dirs.dirs to save screenshots in a custom folder:
|
||||
# XDG_SCREENSHOTS_DIR="$HOME/Screenshots"
|
||||
|
||||
prompt='Screenshot'
|
||||
mesg="DIR: ~/Screenshots"
|
||||
|
||||
# Screenshot Filename
|
||||
source ~/.config/ml4w/settings/screenshot-filename.sh
|
||||
|
||||
# Screenshot Folder
|
||||
source ~/.config/ml4w/settings/screenshot-folder.sh
|
||||
|
||||
# Screenshot Editor
|
||||
export GRIMBLAST_EDITOR="$(cat ~/.config/ml4w/settings/screenshot-editor.sh)"
|
||||
|
||||
# Example for keybindings
|
||||
# bind = SUPER, p, exec, grimblast save active
|
||||
# bind = SUPER SHIFT, p, exec, grimblast save area
|
||||
# bind = SUPER ALT, p, exec, grimblast save output
|
||||
# bind = SUPER CTRL, p, exec, grimblast save screen
|
||||
|
||||
# Options
|
||||
option_1="Immediate"
|
||||
option_2="Delayed"
|
||||
|
||||
option_capture_1="Capture Everything"
|
||||
option_capture_2="Capture Active Display"
|
||||
option_capture_3="Capture Selection"
|
||||
|
||||
option_time_1="5s"
|
||||
option_time_2="10s"
|
||||
option_time_3="20s"
|
||||
option_time_4="30s"
|
||||
option_time_5="60s"
|
||||
#option_time_4="Custom (in seconds)" # Roadmap or someone contribute :)
|
||||
|
||||
list_col='1'
|
||||
list_row='2'
|
||||
|
||||
copy='Copy'
|
||||
save='Save'
|
||||
copy_save='Copy & Save'
|
||||
edit='Edit'
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 2 -width 30 -p "Take screenshot"
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2" | rofi_cmd
|
||||
}
|
||||
|
||||
####
|
||||
# Choose Timer
|
||||
# CMD
|
||||
timer_cmd() {
|
||||
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 5 -width 30 -p "Choose timer"
|
||||
}
|
||||
|
||||
# Ask for confirmation
|
||||
timer_exit() {
|
||||
echo -e "$option_time_1\n$option_time_2\n$option_time_3\n$option_time_4\n$option_time_5" | timer_cmd
|
||||
}
|
||||
|
||||
# Confirm and execute
|
||||
timer_run() {
|
||||
selected_timer="$(timer_exit)"
|
||||
if [[ "$selected_timer" == "$option_time_1" ]]; then
|
||||
countdown=5
|
||||
${1}
|
||||
elif [[ "$selected_timer" == "$option_time_2" ]]; then
|
||||
countdown=10
|
||||
${1}
|
||||
elif [[ "$selected_timer" == "$option_time_3" ]]; then
|
||||
countdown=20
|
||||
${1}
|
||||
elif [[ "$selected_timer" == "$option_time_4" ]]; then
|
||||
countdown=30
|
||||
${1}
|
||||
elif [[ "$selected_timer" == "$option_time_5" ]]; then
|
||||
countdown=60
|
||||
${1}
|
||||
else
|
||||
exit
|
||||
fi
|
||||
}
|
||||
###
|
||||
|
||||
####
|
||||
# Chose Screenshot Type
|
||||
# CMD
|
||||
type_screenshot_cmd() {
|
||||
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 3 -width 30 -p "Type of screenshot"
|
||||
}
|
||||
|
||||
# Ask for confirmation
|
||||
type_screenshot_exit() {
|
||||
echo -e "$option_capture_1\n$option_capture_2\n$option_capture_3" | type_screenshot_cmd
|
||||
}
|
||||
|
||||
# Confirm and execute
|
||||
type_screenshot_run() {
|
||||
selected_type_screenshot="$(type_screenshot_exit)"
|
||||
if [[ "$selected_type_screenshot" == "$option_capture_1" ]]; then
|
||||
option_type_screenshot=screen
|
||||
${1}
|
||||
elif [[ "$selected_type_screenshot" == "$option_capture_2" ]]; then
|
||||
option_type_screenshot=output
|
||||
${1}
|
||||
elif [[ "$selected_type_screenshot" == "$option_capture_3" ]]; then
|
||||
option_type_screenshot=area
|
||||
${1}
|
||||
else
|
||||
exit
|
||||
fi
|
||||
}
|
||||
###
|
||||
|
||||
####
|
||||
# Choose to save or copy photo
|
||||
# CMD
|
||||
copy_save_editor_cmd() {
|
||||
rofi -dmenu -replace -config ~/.config/rofi/config-screenshot.rasi -i -no-show-icons -l 4 -width 30 -p "How to save"
|
||||
}
|
||||
|
||||
# Ask for confirmation
|
||||
copy_save_editor_exit() {
|
||||
echo -e "$copy\n$save\n$copy_save\n$edit" | copy_save_editor_cmd
|
||||
}
|
||||
|
||||
# Confirm and execute
|
||||
copy_save_editor_run() {
|
||||
selected_chosen="$(copy_save_editor_exit)"
|
||||
if [[ "$selected_chosen" == "$copy" ]]; then
|
||||
option_chosen=copy
|
||||
${1}
|
||||
elif [[ "$selected_chosen" == "$save" ]]; then
|
||||
option_chosen=save
|
||||
${1}
|
||||
elif [[ "$selected_chosen" == "$copy_save" ]]; then
|
||||
option_chosen=copysave
|
||||
${1}
|
||||
elif [[ "$selected_chosen" == "$edit" ]]; then
|
||||
option_chosen=edit
|
||||
${1}
|
||||
else
|
||||
exit
|
||||
fi
|
||||
}
|
||||
###
|
||||
|
||||
timer() {
|
||||
if [[ $countdown -gt 10 ]]; then
|
||||
notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
|
||||
countdown_less_10=$((countdown - 10))
|
||||
sleep $countdown_less_10
|
||||
countdown=10
|
||||
fi
|
||||
while [[ $countdown -ne 0 ]]; do
|
||||
notify-send -t 1000 "Taking screenshot in ${countdown} seconds"
|
||||
countdown=$((countdown - 1))
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
# take shots
|
||||
takescreenshot() {
|
||||
sleep 1
|
||||
grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
|
||||
if [ -f $HOME/$NAME ] ;then
|
||||
if [ -d $screenshot_folder ] ;then
|
||||
mv $HOME/$NAME $screenshot_folder/
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
takescreenshot_timer() {
|
||||
sleep 1
|
||||
timer
|
||||
grimblast --notify "$option_chosen" "$option_type_screenshot" $NAME
|
||||
if [ -f $HOME/$NAME ] ;then
|
||||
if [ -d $screenshot_folder ] ;then
|
||||
mv $HOME/$NAME $screenshot_folder/
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
type_screenshot_run
|
||||
copy_save_editor_run "takescreenshot"
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
timer_run
|
||||
type_screenshot_run
|
||||
copy_save_editor_run "takescreenshot_timer"
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,8 @@
|
||||
precision highp float;
|
||||
varying vec2 v_texcoord;
|
||||
uniform sampler2D tex;
|
||||
|
||||
void main() {
|
||||
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||
gl_FragColor = vec4(1.0 - pixColor.r, 1.0 - pixColor.g, 1.0 - pixColor.b, pixColor.a);
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
cache_file="$HOME/.cache/toggle_animation"
|
||||
if [[ $(cat $HOME/.config/hypr/conf/animation.conf) == *"disabled"* ]]; then
|
||||
echo ":: Toggle blocked by disabled.conf variation."
|
||||
else
|
||||
if [ -f $cache_file ] ;then
|
||||
hyprctl keyword animations:enabled true
|
||||
rm $cache_file
|
||||
else
|
||||
hyprctl keyword animations:enabled false
|
||||
touch $cache_file
|
||||
fi
|
||||
fi
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
sec=$(cat ~/.config/ml4w/settings/wallpaper-automation.sh)
|
||||
_setWallpaperRandomly() {
|
||||
waypaper --random
|
||||
echo ":: Next wallpaper in 60 seconds..."
|
||||
sleep $sec
|
||||
_setWallpaperRandomly
|
||||
}
|
||||
|
||||
if [ ! -f ~/.config/ml4w/cache/wallpaper-automation ] ;then
|
||||
touch ~/.config/ml4w/cache/wallpaper-automation
|
||||
echo ":: Start wallpaper automation script"
|
||||
notify-send "Wallpaper automation process started" "Wallpaper will be changed every $sec seconds."
|
||||
_setWallpaperRandomly
|
||||
else
|
||||
rm ~/.config/ml4w/cache/wallpaper-automation
|
||||
notify-send "Wallpaper automation process stopped."
|
||||
echo ":: Wallpaper automation script process $wp stopped"
|
||||
wp=$(pgrep -f wallpaper-automation.sh)
|
||||
kill -KILL $wp
|
||||
fi
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
generated_versions="$HOME/.config/ml4w/cache/wallpaper-generated"
|
||||
rm $generated_versions/*
|
||||
echo ":: Wallpaper cache cleared"
|
||||
notify-send "Wallpaper cache cleared"
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Open rofi to select the Hyprshade filter for toggle
|
||||
options="$(ls ~/.config/hypr/effects/wallpaper/)\noff"
|
||||
|
||||
# Open rofi
|
||||
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/.config/rofi/config-themes.rasi -i -no-show-icons -l 5 -width 30 -p "Hyprshade")
|
||||
if [ ! -z $choice ] ;then
|
||||
echo "$choice" > ~/.config/ml4w/settings/wallpaper-effect.sh
|
||||
dunstify "Changing Wallpaper Effect to " "$choice"
|
||||
~/.config/hypr/scripts/wallpaper.sh
|
||||
fi
|
||||
Executable
+152
@@ -0,0 +1,152 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------
|
||||
# Check to use wallpaper cache
|
||||
# -----------------------------------------------------
|
||||
|
||||
use_cache=0
|
||||
if [ -f ~/.config/ml4w/settings/wallpaper_cache ] ;then
|
||||
use_cache=1
|
||||
fi
|
||||
|
||||
if [ "$use_cache" == "1" ] ;then
|
||||
echo ":: Using Wallpaper Cache"
|
||||
else
|
||||
echo ":: Wallpaper Cache disabled"
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Set defaults
|
||||
# -----------------------------------------------------
|
||||
|
||||
force_generate=0
|
||||
generated_versions="$HOME/.config/ml4w/cache/wallpaper-generated"
|
||||
cache_file="$HOME/.config/ml4w/cache/current_wallpaper"
|
||||
blurred_wallpaper="$HOME/.config/ml4w/cache/blurred_wallpaper.png"
|
||||
square_wallpaper="$HOME/.config/ml4w/cache/square_wallpaper.png"
|
||||
rasi_file="$HOME/.config/ml4w/cache/current_wallpaper.rasi"
|
||||
blur_file="$HOME/.config/ml4w/settings/blur.sh"
|
||||
default_wallpaper="$HOME/wallpaper/default.jpg"
|
||||
wallpaper_effect="$HOME/.config/ml4w/settings/wallpaper-effect.sh"
|
||||
blur="50x30"
|
||||
blur=$(cat $blur_file)
|
||||
|
||||
# Create folder with generated versions of wallpaper if not exists
|
||||
if [ ! -d $generated_versions ] ;then
|
||||
mkdir $generated_versions
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Get selected wallpaper
|
||||
# -----------------------------------------------------
|
||||
|
||||
if [ -z $1 ] ;then
|
||||
if [ -f $cache_file ] ;then
|
||||
wallpaper=$(cat $cache_file)
|
||||
else
|
||||
wallpaper=$default_wallpaper
|
||||
fi
|
||||
else
|
||||
wallpaper=$1
|
||||
fi
|
||||
used_wallpaper=$wallpaper
|
||||
echo ":: Setting wallpaper with original image $wallpaper"
|
||||
tmp_wallpaper=$wallpaper
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Copy path of current wallpaper to cache file
|
||||
# -----------------------------------------------------
|
||||
|
||||
if [ ! -f $cache_file ] ;then
|
||||
touch $cache_file
|
||||
fi
|
||||
echo "$wallpaper" > $cache_file
|
||||
echo ":: Path of current wallpaper copied to $cache_file"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Get wallpaper filename
|
||||
# -----------------------------------------------------
|
||||
wallpaper_filename=$(basename $wallpaper)
|
||||
echo ":: Wallpaper Filename: $wallpaper_filename"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Wallpaper Effects
|
||||
# -----------------------------------------------------
|
||||
|
||||
if [ -f $wallpaper_effect ] ;then
|
||||
effect=$(cat $wallpaper_effect)
|
||||
if [ ! "$effect" == "off" ] ;then
|
||||
used_wallpaper=$generated_versions/$effect-$wallpaper_filename
|
||||
if [ -f $generated_versions/$effect-$wallpaper_filename ] && [ "$force_generate" == "0" ] && [ "$use_cache" == "1" ] ;then
|
||||
echo ":: Use cached wallpaper $effect-$wallpaper_filename"
|
||||
else
|
||||
echo ":: Generate new cached wallpaper $effect-$wallpaper_filename with effect $effect"
|
||||
dunstify "Using wallpaper effect $effect..." "with image $wallpaper_filename" -h int:value:10 -h string:x-dunst-stack-tag:wallpaper
|
||||
source $HOME/.config/hypr/effects/wallpaper/$effect
|
||||
fi
|
||||
echo ":: Loading wallpaper $generated_versions/$effect-$wallpaper_filename with effect $effect"
|
||||
else
|
||||
echo ":: Wallpaper effect is set to off"
|
||||
fi
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Execute pywal
|
||||
# -----------------------------------------------------
|
||||
|
||||
echo ":: Execute pywal with $used_wallpaper"
|
||||
wal -q -i $used_wallpaper
|
||||
source "$HOME/.cache/wal/colors.sh"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Write hyprpaper.conf
|
||||
# -----------------------------------------------------
|
||||
|
||||
echo ":: Setting wallpaper with $used_wallpaper"
|
||||
killall -e hyprpaper &
|
||||
sleep 1;
|
||||
wal_tpl=$(cat $HOME/.config/ml4w/settings/hyprpaper.tpl)
|
||||
output=${wal_tpl//WALLPAPER/$used_wallpaper}
|
||||
echo "$output" > $HOME/.config/hypr/hyprpaper.conf
|
||||
hyprpaper & > /dev/null 2>&1
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Reload Waybar
|
||||
# -----------------------------------------------------
|
||||
~/.config/waybar/launch.sh
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Reload AGS
|
||||
# -----------------------------------------------------
|
||||
killall ags
|
||||
ags &
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Created blurred wallpaper
|
||||
# -----------------------------------------------------
|
||||
|
||||
echo ":: Generate new cached wallpaper blur-$blur-$wallpaper_filename with blur $blur"
|
||||
magick $used_wallpaper -resize 75% $blurred_wallpaper
|
||||
echo ":: Resized to 75%"
|
||||
if [ ! "$blur" == "0x0" ] ;then
|
||||
magick $blurred_wallpaper -blur $blur $blurred_wallpaper
|
||||
cp $blurred_wallpaper $generated_versions/blur-$blur-$wallpaper_filename.png
|
||||
echo ":: Blurred"
|
||||
fi
|
||||
cp $generated_versions/blur-$blur-$wallpaper_filename.png $blurred_wallpaper
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Create rasi file
|
||||
# -----------------------------------------------------
|
||||
|
||||
if [ ! -f $rasi_file ] ;then
|
||||
touch $rasi_file
|
||||
fi
|
||||
echo "* { current-image: url(\"$blurred_wallpaper\", height); }" > "$rasi_file"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Created square wallpaper
|
||||
# -----------------------------------------------------
|
||||
|
||||
echo ":: Generate new cached wallpaper square-$wallpaper_filename"
|
||||
magick $tmp_wallpaper -gravity Center -extent 1:1 $square_wallpaper
|
||||
cp $square_wallpaper $generated_versions/square-$wallpaper_filename.png
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
sleep 1
|
||||
|
||||
# kill all possible running xdg-desktop-portals
|
||||
killall -e xdg-desktop-portal-hyprland
|
||||
killall -e xdg-desktop-portal-gnome
|
||||
killall -e xdg-desktop-portal-kde
|
||||
killall -e xdg-desktop-portal-lxqt
|
||||
killall -e xdg-desktop-portal-wlr
|
||||
killall -e xdg-desktop-portal-gtk
|
||||
killall -e xdg-desktop-portal
|
||||
sleep 1
|
||||
|
||||
# start xdg-desktop-portal-hyprland
|
||||
/usr/lib/xdg-desktop-portal-hyprland &
|
||||
sleep 2
|
||||
|
||||
# start xdg-desktop-portal
|
||||
/usr/lib/xdg-desktop-portal &
|
||||
sleep 1
|
||||
@@ -0,0 +1,59 @@
|
||||
import os
|
||||
from datetime import datetime
|
||||
import shutil
|
||||
import re
|
||||
|
||||
FOLDERS = [
|
||||
"/home/inorishio/.config/nvim/",
|
||||
"/home/inorishio/.config/hypr/",
|
||||
"/home/inorishio/.config/yay",
|
||||
"/home/inorishio/.config/zshrc/",
|
||||
"/home/inorishio/.config/zellij/",
|
||||
"/home/inorishio/.config/ohmyposh/",
|
||||
"/home/inorishio/.config/fastfetch/"
|
||||
]
|
||||
GITREPO = "/home/inorishio/Documents/Git/Hyprland/Programs/"
|
||||
|
||||
EXCLUDE_PATTERN = re.compile(r'.*\.git$')
|
||||
|
||||
def get_file_date(filepath):
|
||||
return os.path.getmtime(filepath)
|
||||
|
||||
def sync_folders():
|
||||
for folder in FOLDERS:
|
||||
if not os.path.exists(folder):
|
||||
continue
|
||||
|
||||
for root, _, files in os.walk(folder):
|
||||
for file in files:
|
||||
source_path = os.path.join(root, file)
|
||||
|
||||
# Apply regex pattern to exclude files
|
||||
if EXCLUDE_PATTERN.match(file):
|
||||
continue
|
||||
|
||||
# Create corresponding path in GITREPO
|
||||
relative_path = os.path.relpath(source_path, folder)
|
||||
dest_path = os.path.join(GITREPO, relative_path)
|
||||
|
||||
# Ensure destination directory exists
|
||||
os.makedirs(os.path.dirname(dest_path), exist_ok=True)
|
||||
|
||||
try:
|
||||
# Compare modification times
|
||||
if os.path.exists(dest_path):
|
||||
source_time = get_file_date(source_path)
|
||||
dest_time = get_file_date(dest_path)
|
||||
|
||||
if source_time > dest_time:
|
||||
shutil.copy2(source_path, dest_path)
|
||||
elif dest_time > source_time:
|
||||
shutil.copy2(dest_path, source_path)
|
||||
else:
|
||||
# If file doesn't exist in destination, copy it
|
||||
shutil.copy2(source_path, dest_path)
|
||||
except Exception as e:
|
||||
print(f"Error copying file {source_path} to {dest_path}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
sync_folders()
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
!/bin/zsh
|
||||
SDL_VIDEODRIVER='' gamemoderun gamescope ~/Games/osu/osu.AppImage
|
||||
Reference in New Issue
Block a user