init
22
hypr/.github/README.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<div align="center">
|
||||
<a href="#"><img src="./title.png"></a>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
|
||||
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="90%"/><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
|
||||
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#about"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-about.png"></a>
|
||||
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#setup"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-setup.png"></a>
|
||||
<a href="https://dotfiles-docs.vercel.app/app-confs/hyprland.html#gallery"><img width="190px" src="https://raw.githubusercontent.com/Matt-FTW/dotfiles/main/.github/assets/category-images/dotfiles-gallery.png"></a>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
> [!NOTE]
|
||||
> All the information about the Hyprland setup is on the documentation website: https://dotfiles-docs.vercel.app/app-confs/hyprland.html
|
||||
BIN
hypr/.github/overview-1.png
vendored
Normal file
|
After Width: | Height: | Size: 828 KiB |
BIN
hypr/.github/overview-2.png
vendored
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
hypr/.github/overview-3.png
vendored
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
hypr/.github/title.png
vendored
Normal file
|
After Width: | Height: | Size: 25 KiB |
246
hypr/configs/binds.conf
Normal file
@@ -0,0 +1,246 @@
|
||||
source = ~/.config/hypr/configs/default_apps.conf
|
||||
|
||||
# Variables
|
||||
$mainMod = SUPER
|
||||
$altMod = ALT
|
||||
$altrMod = SUPER MOD5
|
||||
$scripts = ~/.config/hypr/scripts
|
||||
$launcher-scripts = ~/.config/rofi/scripts
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, S, exec, $scripts/launch_app $browser
|
||||
bind = $mainMod, V, exec, $scripts/launch_app $ide
|
||||
bind = $mainMod, O, exec, $scripts/launch_app $office-suite
|
||||
bind = $mainMod, E, exec, $scripts/launch_app $file-manager
|
||||
bind = $mainMod, C, exec, $scripts/launch_app $terminal
|
||||
bind = $mainMod SHIFT, C, exec, $scripts/launch_app $terminal docker exec -it ros2 zsh
|
||||
bind = $altMod, C, exec, $scripts/launch_app $terminal ssh Hetzner
|
||||
bind = $altMod SHIFT, C, exec, $scripts/launch_app $terminal ssh Zima00
|
||||
bind = $mainMod, T, exec, $scripts/launch_app Telegram
|
||||
bind = $mainMod, M, exec, $scripts/launch_app thunderbird
|
||||
|
||||
## Notifications Menu
|
||||
bind = $mainMod, N, exec, $notifications-menu-toggle
|
||||
bind = $mainMod SHIFT, R, exec, $notifications-menu-reload
|
||||
bind = $mainMod SHIFT, N, exec, $notifications-menu-read
|
||||
|
||||
## Bar
|
||||
bind = $mainMod SHIFT, R, exec, $bar-reload
|
||||
bind = $mainMod SHIFT, T, exec, $bar-toggle
|
||||
|
||||
# Pickers/Launchers
|
||||
bind = $mainMod, R, exec, $launcher
|
||||
bind = $mainMod SHIFT, P, exec, $launcher-scripts/wallpaper/wallpaper
|
||||
bind = $altMod, P, exec, $launcher-scripts/wireguard/wireguard_selection menu
|
||||
bind = $mainMod, ESCAPE, exec, $launcher-scripts/powermenu/powermenu
|
||||
bind = $mainMod, Y, exec, $launcher-scripts/clipboard/clipboard
|
||||
|
||||
## Screenshots
|
||||
bind = CTRL, ESCAPE, exec, $launcher-scripts/screenshot/screenshot
|
||||
bind = SHIFT, ESCAPE, exec, $launcher-scripts/screenshot/screenshot --freeze
|
||||
|
||||
# Pyprland
|
||||
## Scratchpad Module
|
||||
bind = $mainMod, B, exec, pypr toggle btop
|
||||
#bind = $mainMod, ENTER, exec, pypr toggle kitty
|
||||
|
||||
## Other Modules
|
||||
bind = $mainMod, P, exec, pypr wall next
|
||||
|
||||
# Windows
|
||||
## Basic Operations
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $altMod, Q, killactive,
|
||||
bind = $mainMod, W, exec, $scripts/toggle_floating
|
||||
#bind = $mainMod, P, pseudo
|
||||
bind = $mainMod, F, fullscreen, 0
|
||||
|
||||
## Mouse
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
## Focusing
|
||||
bind = $mainMod, LEFT, movefocus, l
|
||||
bind = $mainMod, RIGHT, movefocus, r
|
||||
bind = $mainMod, UP, movefocus, u
|
||||
bind = $mainMod, DOWN, movefocus, d
|
||||
|
||||
## Moving
|
||||
bind = $altMod, LEFT, movewindow, l
|
||||
bind = $altMod, RIGHT, movewindow, r
|
||||
bind = $altMod, UP, movewindow, u
|
||||
bind = $altMod, DOWN, movewindow, d
|
||||
|
||||
## Center and Split
|
||||
#bind = $mainMod, S, togglesplit
|
||||
#bind = $mainMod, D, exec, hyprctl dispatch centerwindow 1
|
||||
|
||||
## Group Control
|
||||
bind = $mainMod, G, togglegroup
|
||||
bind = $mainMod CTRL, G, lockactivegroup, toggle
|
||||
bind = ALT, TAB, changegroupactive
|
||||
|
||||
## Resizing Windows
|
||||
bind = $mainMod, 23, submap, resize # TAB
|
||||
submap = resize
|
||||
|
||||
binde = , RIGHT, resizeactive, 40 0
|
||||
binde = , LEFT, resizeactive, -40 0
|
||||
binde = , UP, resizeactive, 0 -40
|
||||
binde = , DOWN, resizeactive, 0 40
|
||||
|
||||
bind = , ESCAPE, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
# Workspaces
|
||||
## Focusing other 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
|
||||
bind = $altMod, 1, workspace, 11
|
||||
bind = $altMod, 2, workspace, 12
|
||||
bind = $altMod, 3, workspace, 13
|
||||
bind = $altMod, 4, workspace, 14
|
||||
bind = $altMod, 5, workspace, 15
|
||||
bind = $altMod, 6, workspace, 16
|
||||
bind = $altMod, 7, workspace, 17
|
||||
bind = $altMod, 8, workspace, 18
|
||||
bind = $altMod, 9, workspace, 19
|
||||
bind = $altMod, 0, workspace, 20
|
||||
bind = $altrMod, 1, workspace, 21
|
||||
bind = $altrMod, 2, workspace, 22
|
||||
bind = $altrMod, 3, workspace, 23
|
||||
bind = $altrMod, 4, workspace, 24
|
||||
bind = $altrMod, 5, workspace, 25
|
||||
bind = $altrMod, 6, workspace, 26
|
||||
bind = $altrMod, 7, workspace, 27
|
||||
bind = $altrMod, 8, workspace, 28
|
||||
bind = $altrMod, 9, workspace, 29
|
||||
bind = $altrMod, 0, workspace, 30
|
||||
|
||||
## Moving Windows to other Workspaces
|
||||
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
|
||||
bind = $altMod SHIFT, 1, movetoworkspace, 11
|
||||
bind = $altMod SHIFT, 2, movetoworkspace, 12
|
||||
bind = $altMod SHIFT, 3, movetoworkspace, 13
|
||||
bind = $altMod SHIFT, 4, movetoworkspace, 14
|
||||
bind = $altMod SHIFT, 5, movetoworkspace, 15
|
||||
bind = $altMod SHIFT, 6, movetoworkspace, 16
|
||||
bind = $altMod SHIFT, 7, movetoworkspace, 17
|
||||
bind = $altMod SHIFT, 8, movetoworkspace, 18
|
||||
bind = $altMod SHIFT, 9, movetoworkspace, 19
|
||||
bind = $altMod SHIFT, 0, movetoworkspace, 20
|
||||
bind = $altrMod SHIFT, 1, movetoworkspace, 21
|
||||
bind = $altrMod SHIFT, 2, movetoworkspace, 22
|
||||
bind = $altrMod SHIFT, 3, movetoworkspace, 23
|
||||
bind = $altrMod SHIFT, 4, movetoworkspace, 24
|
||||
bind = $altrMod SHIFT, 5, movetoworkspace, 25
|
||||
bind = $altrMod SHIFT, 6, movetoworkspace, 26
|
||||
bind = $altrMod SHIFT, 7, movetoworkspace, 27
|
||||
bind = $altrMod SHIFT, 8, movetoworkspace, 28
|
||||
bind = $altrMod SHIFT, 9, movetoworkspace, 29
|
||||
bind = $altrMod SHIFT, 0, movetoworkspace, 30
|
||||
|
||||
## Moving Windows to other Workspaces (Silent)
|
||||
bind = $mainMod CTRL, 1, movetoworkspacesilent, 1
|
||||
bind = $mainMod CTRL, 2, movetoworkspacesilent, 2
|
||||
bind = $mainMod CTRL, 3, movetoworkspacesilent, 3
|
||||
bind = $mainMod CTRL, 4, movetoworkspacesilent, 4
|
||||
bind = $mainMod CTRL, 5, movetoworkspacesilent, 5
|
||||
bind = $mainMod CTRL, 6, movetoworkspacesilent, 6
|
||||
bind = $mainMod CTRL, 7, movetoworkspacesilent, 7
|
||||
bind = $mainMod CTRL, 8, movetoworkspacesilent, 8
|
||||
bind = $mainMod CTRL, 9, movetoworkspacesilent, 9
|
||||
bind = $mainMod CTRL, 0, movetoworkspacesilent, 10
|
||||
bind = $altMod CTRL, 1, movetoworkspacesilent, 11
|
||||
bind = $altMod CTRL, 2, movetoworkspacesilent, 12
|
||||
bind = $altMod CTRL, 3, movetoworkspacesilent, 13
|
||||
bind = $altMod CTRL, 4, movetoworkspacesilent, 14
|
||||
bind = $altMod CTRL, 5, movetoworkspacesilent, 15
|
||||
bind = $altMod CTRL, 6, movetoworkspacesilent, 16
|
||||
bind = $altMod CTRL, 7, movetoworkspacesilent, 17
|
||||
bind = $altMod CTRL, 8, movetoworkspacesilent, 18
|
||||
bind = $altMod CTRL, 9, movetoworkspacesilent, 19
|
||||
bind = $altMod CTRL, 0, movetoworkspacesilent, 20
|
||||
bind = $altrMod CTRL, 1, movetoworkspacesilent, 21
|
||||
bind = $altrMod CTRL, 2, movetoworkspacesilent, 22
|
||||
bind = $altrMod CTRL, 3, movetoworkspacesilent, 23
|
||||
bind = $altrMod CTRL, 4, movetoworkspacesilent, 24
|
||||
bind = $altrMod CTRL, 5, movetoworkspacesilent, 25
|
||||
bind = $altrMod CTRL, 6, movetoworkspacesilent, 26
|
||||
bind = $altrMod CTRL, 7, movetoworkspacesilent, 27
|
||||
bind = $altrMod CTRL, 8, movetoworkspacesilent, 28
|
||||
bind = $altrMod CTRL, 9, movetoworkspacesilent, 29
|
||||
bind = $altrMod CTRL, 0, movetoworkspacesilent, 30
|
||||
|
||||
## Moving to other Workspace with Mouse Control
|
||||
bind = $mainMod, mouse_down, workspace, m-1
|
||||
bind = $mainMod, mouse_up, workspace, m+1
|
||||
|
||||
# Media
|
||||
bindl = $mainMod CTRL, mouse:280, exec, swayosd-client --output-volume mute-toggle # Extra Up Button
|
||||
bindl = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
||||
bindl = $mainMod CTRL, mouse:281, exec, swayosd-client --input-volume mute-toggle # Extra Down Button
|
||||
bindl = , XF86AudioMicMute, exec, exec swayosd-client --input-volume mute-toggle
|
||||
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = $mainMod CTRL, mouse:282, exec, playerctl play-pause # Extra Center Button
|
||||
bindl = $mainMod CTRL, RETURN, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
bindl = $mainMod CTRL, mouse:275, exec, playerctl previous # Extra Back Button
|
||||
bindl = $mainMod CTRL, 20, exec, playerctl previous # Minus Key
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = $mainMod CTRL, mouse:276, exec, playerctl next # Extra Forward Button
|
||||
bindl = $mainMod CTRL, 21, exec, playerctl next # Plus Key
|
||||
|
||||
bindle = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume +10
|
||||
bindle = $mainMod ALT, 21, exec, swayosd-client --output-volume raise # Minus key
|
||||
bindle = , XF86AudioLowerVolume, exec, swayosd-client --output-volume -10
|
||||
bindle = $mainMod ALT, 20, exec, swayosd-client --output-volume lower # Plus key
|
||||
|
||||
bindle = , XF86InputRaiseVolume, exec, swayosd-client --input-volume raise
|
||||
bindle = $mainMod SHIFT, 21, exec, swayosd-client --input-volume raise # Minus key
|
||||
bindle = , XF86InputLowerVolume, exec, swayosd-client --input-volume lower
|
||||
bindle = $mainMod SHIFT, 20, exec, swayosd-client --input-volume lower # Plus key
|
||||
|
||||
## Brightness
|
||||
bindle = , XF86MonBrightnessUp, exec, swayosd-client --brightness +10
|
||||
bindle = , XF86MonBrightnessDown, exec, swayosd-client --brightness -10
|
||||
|
||||
# Other
|
||||
# Color picker
|
||||
bind = $mainMod, INSERT, exec, $scripts/color_picker
|
||||
|
||||
## Disable anim, blur, etc
|
||||
bind = $mainMod, F12, exec, $scripts/performance
|
||||
|
||||
## Freeze active window
|
||||
bind = $mainMod, H, exec, $scripts/hyprfreeze -a
|
||||
|
||||
## Open Wikis
|
||||
#bind = $mainMod, F1, exec, xdg-open https://wiki.hyprland.org/
|
||||
|
||||
## Zoom
|
||||
#bind = $mainMod SHIFT, mouse:276, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 + 0.5}')
|
||||
#bind = $mainMod SHIFT, mouse:275, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 - 0.5}')
|
||||
|
||||
# lock
|
||||
bind = $mainMod, L, exec, swaylock
|
||||
19
hypr/configs/default_apps.conf
Normal file
@@ -0,0 +1,19 @@
|
||||
# Define your programs
|
||||
$launcher = rofi -show drun
|
||||
|
||||
$bar = waybar
|
||||
$bar-toggle = killall -SIGUSR1 $bar
|
||||
$bar-reload = killall $bar; $bar
|
||||
|
||||
$notifications-menu = swaync-client
|
||||
$notifications-menu-read = $notifications-menu -C
|
||||
$notifications-menu-toggle = $notifications-menu -t
|
||||
$notifications-menu-reload = $notifications-menu -R && $notifications-menu -rs
|
||||
|
||||
$browser = firefox
|
||||
$notetaking-app = notesh
|
||||
$terminal = kitty
|
||||
$office-suite = libreoffice
|
||||
$editor = $terminal vim
|
||||
$ide = code
|
||||
$file-manager = nemo
|
||||
23
hypr/configs/env.conf
Normal file
@@ -0,0 +1,23 @@
|
||||
# XDG
|
||||
envd = XDG_CURRENT_DESKTOP, Hyprland
|
||||
envd = XDG_SESSION_TYPE, wayland
|
||||
envd = XDG_SESSION_DESKTOP, Hyprland
|
||||
|
||||
# QT
|
||||
env = QT_QPA_PLATFORM, wayland
|
||||
env = QT_QPA_PLATFORMTHEME, qt5ct
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
|
||||
env = QT_STYLE_OVERRIDE, kvantum
|
||||
|
||||
# Tearing
|
||||
env = WLR_DRM_NO_ATOMIC, 0
|
||||
|
||||
# Themes
|
||||
env = GTK_THEME, catppuccin-macchiato-lavender-standard+default
|
||||
env = XCURSOR_THEME, catppuccin-macchiato-dark-cursors
|
||||
#env = XCURSOR_THEME, Wii-Pointer-P1
|
||||
env = XCURSOR_SIZE, 24
|
||||
env = HYPRCURSOR_THEME, catppuccin-macchiato-dark-cursors
|
||||
#env = HYPRCURSOR_THEME, Wii-Pointer-P1
|
||||
env = HYPRCURSOR_SIZE, 24
|
||||
13
hypr/configs/input.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
input {
|
||||
kb_layout = de
|
||||
kb_options = compose:rctrl, level3:ralt_switch, grp:win_space_toggle
|
||||
|
||||
follow_mouse = 1
|
||||
numlock_by_default = true
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
disable_while_typing = true
|
||||
scroll_factor = 0.5
|
||||
}
|
||||
}
|
||||
35
hypr/configs/misc.conf
Normal file
@@ -0,0 +1,35 @@
|
||||
general {
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
misc {
|
||||
always_follow_on_dnd = true
|
||||
disable_hyprland_logo = true
|
||||
vrr = 0
|
||||
animate_manual_resizes = true
|
||||
animate_mouse_windowdragging = false
|
||||
enable_swallow = true
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
enable_anr_dialog = false
|
||||
}
|
||||
|
||||
binds {
|
||||
movefocus_cycles_fullscreen = false
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = yes # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # You probably want this
|
||||
pseudotile = true # Enable pseudotiling on dwindle
|
||||
force_split = 0
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = yes
|
||||
workspace_swipe_fingers = 4
|
||||
}
|
||||
13
hypr/configs/monitors.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
$MONITOR1=eDP-1
|
||||
$MONITOR2=DP-1
|
||||
$MONITOR3=DP-3
|
||||
|
||||
# Main Monitor
|
||||
monitor=$MONITOR1, 3072x1920@120.00, 0x0, 2.0, vrr, 1
|
||||
|
||||
# Second Monitor
|
||||
monitor=$MONITOR2, 1920x1080@60.00, -1920x-800, 1.0 #, mirror, $MONITOR3
|
||||
# FSIT Arbeitsplatz: -1920x-800
|
||||
|
||||
# Third Monitor
|
||||
monitor=$MONITOR3, 1920x1080@60.00, 0x1920, 1.0 #, mirror, $MONITOR2
|
||||
25
hypr/configs/plugins.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
# Hyprtrails
|
||||
# exec-once = hyprpm enable hyprtrails
|
||||
# source = ~/.config/hypr/plugins/hyprtrails.conf
|
||||
|
||||
# Hyprexpo
|
||||
# exec-once = hyprpm enable hyprexpo
|
||||
# source = ~/.config/hypr/plugins/hyprexpo.conf
|
||||
|
||||
# Hyprsplit
|
||||
# exec-once = hyprpm enable hyprsplit
|
||||
# source = ~/.config/hypr/plugins/hyprsplit.conf
|
||||
|
||||
# Hyprtasking
|
||||
# exec-once = hyprpm enable hyprtasking
|
||||
# source = ~/.config/hypr/plugins/hyprtasking.conf
|
||||
|
||||
# Hyprspace
|
||||
# exec-once = hyprpm enable hyprspace
|
||||
# source = ~/.config/hypr/plugins/hyprspace.conf
|
||||
|
||||
# Dynamic-cursors
|
||||
# exec-once = hyprpm enable dynamic-cursors
|
||||
# source = ~/.config/hypr/plugins/dynamic-cursors.conf
|
||||
|
||||
exec-once = hyprpm reload -n
|
||||
36
hypr/configs/workspaces.conf
Normal file
@@ -0,0 +1,36 @@
|
||||
# Main Monitor
|
||||
workspace = 1, monitor:$MONITOR1, default:true
|
||||
workspace = 2, monitor:$MONITOR1
|
||||
workspace = 3, monitor:$MONITOR1
|
||||
workspace = 4, monitor:$MONITOR1
|
||||
workspace = 5, monitor:$MONITOR1
|
||||
workspace = 6, monitor:$MONITOR1
|
||||
workspace = 7, monitor:$MONITOR1
|
||||
workspace = 8, monitor:$MONITOR1
|
||||
workspace = 9, monitor:$MONITOR1
|
||||
workspace = 10, monitor:$MONITOR1 #, rounding:false, decorate:false, gapsin:-1, gapsout:0, border:false, decorate:false # Gaming Workspace
|
||||
|
||||
# Second Monitor
|
||||
workspace = 11, monitor:$MONITOR2, default:true
|
||||
workspace = 12, monitor:$MONITOR2
|
||||
workspace = 13, monitor:$MONITOR2
|
||||
workspace = 14, monitor:$MONITOR2
|
||||
workspace = 15, monitor:$MONITOR2
|
||||
workspace = 16, monitor:$MONITOR2
|
||||
workspace = 17, monitor:$MONITOR2
|
||||
workspace = 18, monitor:$MONITOR2
|
||||
workspace = 19, monitor:$MONITOR2
|
||||
workspace = 20, monitor:$MONITOR2 #, rounding:false, decorate:false, gapsin:-1, gapsout:0, border:false, decorate:false # Gaming Workspace
|
||||
|
||||
# Third Monitor
|
||||
workspace = 21, monitor:$MONITOR3, default:true
|
||||
workspace = 22, monitor:$MONITOR3
|
||||
workspace = 23, monitor:$MONITOR3
|
||||
workspace = 24, monitor:$MONITOR3
|
||||
workspace = 25, monitor:$MONITOR3
|
||||
workspace = 26, monitor:$MONITOR3
|
||||
workspace = 27, monitor:$MONITOR3
|
||||
workspace = 28, monitor:$MONITOR3
|
||||
workspace = 29, monitor:$MONITOR3
|
||||
workspace = 30, monitor:$MONITOR3 #, rounding:false, decorate:false, gapsin:-1, gapsout:0, border:false, decorate:false # Gaming Workspace
|
||||
|
||||
24
hypr/hypridle.conf
Normal file
@@ -0,0 +1,24 @@
|
||||
$lock_cmd = pidof hyprlock || hyprlock
|
||||
$suspend_cmd = systemctl suspend || loginctl suspend
|
||||
|
||||
general {
|
||||
lock_cmd = $lock_cmd
|
||||
before_sleep_cmd = $lock_cmd
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600 # 10 min
|
||||
on-timeout = loginctl lock-session
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 900 # 15 min
|
||||
# on-timeout = hyprctl dispatch dpms off
|
||||
# on-resume = hyprctl dispatch dpms on
|
||||
# }
|
||||
|
||||
# listener {
|
||||
# timeout = 1800 # 30 min
|
||||
# on-timeout = $suspend_cmd
|
||||
# }
|
||||
13
hypr/hyprland.conf
Normal file
@@ -0,0 +1,13 @@
|
||||
# Configs
|
||||
source = ~/.config/hypr/configs/env.conf
|
||||
source = ~/.config/hypr/configs/monitors.conf
|
||||
source = ~/.config/hypr/configs/workspaces.conf
|
||||
source = ~/.config/hypr/configs/binds.conf
|
||||
source = ~/.config/hypr/configs/input.conf
|
||||
source = ~/.config/hypr/configs/misc.conf
|
||||
source = ~/.config/hypr/configs/plugins.conf
|
||||
source = ~/.config/hypr/theme/theme.conf
|
||||
|
||||
# Autostart
|
||||
exec-once = $HOME/.config/hypr/scripts/autostart/services
|
||||
exec-once = $HOME/.config/hypr/scripts/autostart/apps
|
||||
82
hypr/hyprlock.conf
Normal file
@@ -0,0 +1,82 @@
|
||||
source = ./theme/colors.conf
|
||||
|
||||
$font = JetBrains Mono Nerd Font 10
|
||||
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.config/hypr/theme/walls/flowers.png
|
||||
color = $lavender
|
||||
|
||||
blur_size = 4
|
||||
blur_passes = 3
|
||||
noise = 0.0117
|
||||
contrast = 1.3000
|
||||
brightness = 0.8000
|
||||
vibrancy = 0.2100
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# Password Field
|
||||
input-field {
|
||||
monitor = DP-1
|
||||
rounding = 20
|
||||
shadow_passes = 2
|
||||
size = 300, 50
|
||||
outline_thickness = 2
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.64
|
||||
dots_center = true
|
||||
inner_color = $surface0
|
||||
font_color = $subtext0
|
||||
check_color = $yellow
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
fail_transition = 300
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Password...</i>
|
||||
hide_input = false
|
||||
position = 0, 50
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# Current Time
|
||||
label {
|
||||
monitor = DP-1
|
||||
shadow_passes = 1
|
||||
text = cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>"
|
||||
color = $text
|
||||
font_size = 64
|
||||
font_family = $font
|
||||
position = 0, -35
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# Current Song
|
||||
label {
|
||||
monitor = DP-1
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/current_song)"
|
||||
shadow_passes = 1
|
||||
color = $subtext0
|
||||
font_size = 17
|
||||
font_family = $font
|
||||
position = 0, -107
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# User Image
|
||||
image {
|
||||
monitor = DP-1
|
||||
path = $HOME/.face.icon
|
||||
shadow_passes = 2
|
||||
rounding = -1 # negative values mean circle
|
||||
position = 0, 100
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
25
hypr/plugins/dynamic-cursors.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
# Conf
|
||||
plugin {
|
||||
enabled = true
|
||||
|
||||
mode = rotate
|
||||
threshold = 10
|
||||
|
||||
rotate {
|
||||
length = 10
|
||||
}
|
||||
|
||||
tilt {
|
||||
limit = 5000
|
||||
function = negative_quadratic
|
||||
}
|
||||
|
||||
shake = true
|
||||
|
||||
shake {
|
||||
threshold = 3.0
|
||||
factor = 3.5
|
||||
effects = rotate
|
||||
nearest = true
|
||||
}
|
||||
}
|
||||
33
hypr/plugins/hycov.conf
Normal file
@@ -0,0 +1,33 @@
|
||||
# Conf
|
||||
plugin {
|
||||
hycov {
|
||||
overview_gappo = 60
|
||||
overview_gappi = 24
|
||||
hotarea_size = 10
|
||||
enable_hotarea = 0
|
||||
swipe_fingers = 4
|
||||
move_focus_distance = 100
|
||||
enable_gesture = 1
|
||||
disable_workspace_change = 0
|
||||
disable_spawn = 0
|
||||
auto_exit = 1
|
||||
auto_fullscreen = 0
|
||||
only_active_workspace = 0
|
||||
only_active_monitor = 1
|
||||
enable_alt_release_exit = 0
|
||||
alt_toggle_auto_next = 0
|
||||
click_in_cursor = 1
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
bind = SUPER, ;, hycov:toggleoverview
|
||||
bind = SUPERALT, BACKSPACE, hycov:toggleoverview, forceall
|
||||
bind = SUPERALT, LEFT, hycov:movefocus, l
|
||||
bind = SUPERALT, RIGHT, hycov:movefocus, r
|
||||
bind = SUPERALT, UP, hycov:movefocus, u
|
||||
bind = SUPERALT, DOWN, hycov:movefocus, d
|
||||
bind = SUPERALT, H, hycov:movefocus, l
|
||||
bind = SUPERALT, L, hycov:movefocus, r
|
||||
bind = SUPERALT, K, hycov:movefocus, u
|
||||
bind = SUPERALT, J, hycov:movefocus, d
|
||||
15
hypr/plugins/hyprbars.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
source = ../theme/colors.conf
|
||||
|
||||
# Conf
|
||||
plugin {
|
||||
hyprbars {
|
||||
bar_height = 20
|
||||
bar_color = $mantle
|
||||
bar_text_font = "JetBrainsMono Nerd Font"
|
||||
bar_part_of_window = true
|
||||
bar_precedence_over_border = false
|
||||
|
||||
hyprbars-button = rgb(ff4040), 10, , hyprctl dispatch killactive
|
||||
hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1
|
||||
}
|
||||
}
|
||||
18
hypr/plugins/hyprexpo.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
source = ../theme/colors.conf
|
||||
|
||||
# Conf
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 3
|
||||
gap_size = 6
|
||||
bg_col = $surface0
|
||||
workspace_method = first r~1
|
||||
|
||||
enable_gesture = true
|
||||
gesture_distance = 300
|
||||
gesture_positive = true
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
bind = ALT, ESCAPE, hyprexpo:expo, toggle
|
||||
30
hypr/plugins/hyprspace.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
source = ../theme/colors.conf
|
||||
|
||||
# Conf
|
||||
plugin {
|
||||
overview {
|
||||
# Colors
|
||||
panelColor = $surface0
|
||||
panelBorderColor = $surface0
|
||||
workspaceActiveBorder = $lavender
|
||||
workspaceInactiveBorder = $surface1
|
||||
dragAlpha = 1
|
||||
|
||||
# Layout
|
||||
onBottom = true
|
||||
centerAligned = true
|
||||
hideTopLayers = true
|
||||
hideOverlayLayers = true
|
||||
hideRealLayers = true
|
||||
affectStrut = false
|
||||
workspaceBorderSize = 3
|
||||
|
||||
# Behaviors
|
||||
exitOnClick = false
|
||||
showNewWorkspace = false
|
||||
showEmptyWorkspace = true
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
bind = ALT, BACKSPACE, overview:toggle
|
||||
39
hypr/plugins/hyprsplit.conf
Normal file
@@ -0,0 +1,39 @@
|
||||
# Conf
|
||||
plugin {
|
||||
hyprsplit {
|
||||
num_workspaces = 9
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
bind = SUPER, 1, split:workspace, 1
|
||||
bind = SUPER, 2, split:workspace, 2
|
||||
bind = SUPER, 3, split:workspace, 3
|
||||
bind = SUPER, 4, split:workspace, 4
|
||||
bind = SUPER, 5, split:workspace, 5
|
||||
bind = SUPER, 6, split:workspace, 6
|
||||
bind = SUPER, 7, split:workspace, 7
|
||||
bind = SUPER, 8, split:workspace, 8
|
||||
bind = SUPER, 9, split:workspace, 9
|
||||
|
||||
# Moving windows to other workspaces
|
||||
bind = SUPERSHIFT, 1, split:movetoworkspace, 1
|
||||
bind = SUPERSHIFT, 2, split:movetoworkspace, 2
|
||||
bind = SUPERSHIFT, 3, split:movetoworkspace, 3
|
||||
bind = SUPERSHIFT, 4, split:movetoworkspace, 4
|
||||
bind = SUPERSHIFT, 5, split:movetoworkspace, 5
|
||||
bind = SUPERSHIFT, 6, split:movetoworkspace, 6
|
||||
bind = SUPERSHIFT, 7, split:movetoworkspace, 7
|
||||
bind = SUPERSHIFT, 8, split:movetoworkspace, 8
|
||||
bind = SUPERSHIFT, 9, split:movetoworkspace, 9
|
||||
|
||||
# Moving windows to other workspaces (silent)
|
||||
bind = SUPERALT, 1, split:movetoworkspacesilent, 1
|
||||
bind = SUPERALT, 2, split:movetoworkspacesilent, 2
|
||||
bind = SUPERALT, 3, split:movetoworkspacesilent, 3
|
||||
bind = SUPERALT, 4, split:movetoworkspacesilent, 4
|
||||
bind = SUPERALT, 5, split:movetoworkspacesilent, 5
|
||||
bind = SUPERALT, 6, split:movetoworkspacesilent, 6
|
||||
bind = SUPERALT, 7, split:movetoworkspacesilent, 7
|
||||
bind = SUPERALT, 8, split:movetoworkspacesilent, 8
|
||||
bind = SUPERALT, 9, split:movetoworkspacesilent, 9
|
||||
26
hypr/plugins/hyprtasking.conf
Normal file
@@ -0,0 +1,26 @@
|
||||
source = ../theme/colors.conf
|
||||
|
||||
# Conf
|
||||
plugin {
|
||||
hyprtasking {
|
||||
layout = grid
|
||||
|
||||
gap_size = 15
|
||||
bg_color = $base
|
||||
border_size = 3
|
||||
exit_behavior = active
|
||||
|
||||
gaps {
|
||||
rows = 3
|
||||
cols = 3
|
||||
}
|
||||
|
||||
linear {
|
||||
height = 300
|
||||
scroll_speed = 1.1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Keybinds
|
||||
bind = ALT, ESCAPE, hyprtasking:toggle, cursor
|
||||
8
hypr/plugins/hyprtrails.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
source = ../theme/colors.conf
|
||||
|
||||
# Conf
|
||||
plugin {
|
||||
hyprtrails {
|
||||
color = $lavender
|
||||
}
|
||||
}
|
||||
68
hypr/pyprland.toml
Normal file
@@ -0,0 +1,68 @@
|
||||
[pyprland]
|
||||
plugins = ["scratchpads", "magnify", "wallpapers"]
|
||||
|
||||
[scratchpads.volume]
|
||||
command = "pavucontrol"
|
||||
unfocus = "hide"
|
||||
position = "1% 8%"
|
||||
lazy = true
|
||||
force_monitor = "DP-1"
|
||||
|
||||
[scratchpads.terminal]
|
||||
command = "kitty --class scratchpad-large"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.yazi]
|
||||
command = "kitty --class scratchpad-large fish -c yazi"
|
||||
unfocus = "hide"
|
||||
hysteresis = 0.1
|
||||
lazy = true
|
||||
|
||||
[scratchpads.gpt]
|
||||
command = "kitty --class scratchpad-large tgpt -m"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.dots]
|
||||
command = "kitty --class scratchpad-large yadm enter lazygit"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.btop]
|
||||
command = "kitty --class scratchpad-large btop"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.nvtop]
|
||||
command = "kitty --class scratchpad-large nvtop"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.topgrade-system]
|
||||
command = "kitty --class scratchpad-large fish -c 'up'"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.topgrade-all]
|
||||
command = "kitty --class scratchpad-large fish -c 'upall'"
|
||||
lazy = true
|
||||
|
||||
[scratchpads.bluetooth]
|
||||
command = "overskride"
|
||||
animation = "fromRight"
|
||||
margin = 20
|
||||
lazy = true
|
||||
|
||||
[scratchpads.wifi]
|
||||
command = "iwgtk"
|
||||
animation = "fromRight"
|
||||
margin = 20
|
||||
lazy = true
|
||||
|
||||
[scratchpads.network]
|
||||
command = "nm-connection-editor"
|
||||
animation = "fromRight"
|
||||
margin = 20
|
||||
lazy = true
|
||||
|
||||
[wallpapers]
|
||||
path = "~/.config/hypr/theme/walls/"
|
||||
interval = 60 # change every hour
|
||||
command = "swww img --transition-bezier 0.5,1.19,.8,.4 --transition-type wipe --transition-duration 2 --transition-fps 75 \"[file]\" && notify-send 'Wallpaper Changed' -i \"[file]\" --app-name=Wallpaper"
|
||||
clear_command = "swww clear"
|
||||
extensions = ["jpg", "png", "gif", "jpeg"]
|
||||
11
hypr/scripts/autostart/apps
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Apps
|
||||
#spotify &
|
||||
#vesktop &
|
||||
#thunderbird &
|
||||
#obsidian &
|
||||
|
||||
# Terminal Apps
|
||||
#kitty --class btop btop &
|
||||
#kitty --class nvtop nvtop &
|
||||
38
hypr/scripts/autostart/services
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Automounter for removable media
|
||||
udiskie &
|
||||
|
||||
# Wallpaper Backend
|
||||
swww-daemon --format xrgb &
|
||||
|
||||
# Pyprland Daemon
|
||||
pypr --debug /tmp/pypr.log &
|
||||
|
||||
# Bar
|
||||
waybar &
|
||||
|
||||
# Notification Daemon
|
||||
swaync &
|
||||
|
||||
# OSD Window
|
||||
swayosd-server &
|
||||
|
||||
# Notify about devices connecting and disconnecting
|
||||
devify &
|
||||
|
||||
# Idle daemon to screen lock
|
||||
hypridle &
|
||||
|
||||
# Clipboard
|
||||
wl-paste --watch cliphist store &
|
||||
|
||||
# Polkit authentication
|
||||
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||
|
||||
# Screen sharing and portals
|
||||
"$HOME"/.config/hypr/portal &
|
||||
# xwaylandvideobridge & # Off when using Vesktop instead of Discord
|
||||
|
||||
# Audio
|
||||
easyeffects --gapplication-service &
|
||||
16
hypr/scripts/color_picker
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Simple Script To Pick Color Quickly.
|
||||
|
||||
# pick, autocopy and get the value
|
||||
color=$(hyprpicker -a)
|
||||
|
||||
echo "$color"
|
||||
|
||||
if [[ "$color" ]]; then
|
||||
image=/tmp/${color}.png
|
||||
# generate preview
|
||||
convert -size 48x48 xc:"$color" "$image"
|
||||
# notify the color
|
||||
notify-send -i "$image" "$color" "Copied to clipboard"
|
||||
fi
|
||||
5
hypr/scripts/current_song
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
song_info=$(playerctl metadata --format ' {{artist}} - {{title}} ')
|
||||
|
||||
echo "$song_info"
|
||||
223
hypr/scripts/hyprfreeze
Executable file
@@ -0,0 +1,223 @@
|
||||
#!/bin/bash
|
||||
|
||||
function printHelp() {
|
||||
cat <<EOF
|
||||
Usage: hyprfreeze (-a | -p <pid> | -n <name> | -r) [options]
|
||||
|
||||
Utility to suspend a game process (and other programs) in Hyprland.
|
||||
|
||||
Options:
|
||||
-h, --help show help message
|
||||
|
||||
-a, --active toggle suspend by active window
|
||||
-p, --pid toggle suspend by process id
|
||||
-n, --name toggle suspend by process name/command
|
||||
-r, --prop toggle suspend by clicking on window (hyprprop must be installed)
|
||||
|
||||
-s, --silent don't send notification
|
||||
-t, --notif-timeout notification timeout in milliseconds (default 5000)
|
||||
--info show information about the process
|
||||
--dry-run doesn't actually suspend/resume a process, useful with --info
|
||||
--debug enable debug mode
|
||||
EOF
|
||||
}
|
||||
|
||||
function debugPrint() {
|
||||
if [ "$DEBUG" -eq 1 ]; then
|
||||
echo "[DEBUG] $1"
|
||||
fi
|
||||
}
|
||||
|
||||
function toggleFreeze() {
|
||||
# Skip this function if --dry-run flag was provided
|
||||
if [[ $DRYRUN == "1" ]]; then return 0; fi
|
||||
|
||||
# Get pids of process tree
|
||||
PIDS=$(pstree -p "$PID" | grep -oP '\(\K[^\)]+')
|
||||
|
||||
debugPrint "PIDs: $PIDS"
|
||||
|
||||
# Prevent suspending itself
|
||||
local pid_of_script=$$
|
||||
if echo "$PIDS" | grep -q "$pid_of_script"; then
|
||||
echo "You are trying to suspend the hyprfreeze process."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Suspend or resume processes
|
||||
if [[ "$(ps -o state= "$PID")" == T ]]; then
|
||||
debugPrint "Resuming processes..."
|
||||
kill -CONT $PIDS 2>/dev/null && echo "Resumed $(ps -p "$PID" -o comm= 2>/dev/null) (PID $PID)" || exit 1
|
||||
else
|
||||
debugPrint "Suspending processes..."
|
||||
kill -STOP $PIDS 2>/dev/null && echo "Suspended $(ps -p "$PID" -o comm= 2>/dev/null) (PID $PID)" || exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function getPidByActive() {
|
||||
debugPrint "Getting PID by active window..."
|
||||
PID=$(hyprctl activewindow -j | jq '.pid')
|
||||
debugPrint "PID by active window: $PID"
|
||||
}
|
||||
|
||||
function getPidByPid() {
|
||||
debugPrint "Getting PID by PID: $1"
|
||||
# Check if process pid exists
|
||||
if ! ps -p "$1" &>/dev/null; then
|
||||
echo "Process ID $1 not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PID=$1
|
||||
}
|
||||
|
||||
function getPidByName() {
|
||||
debugPrint "Getting PID by name: $1"
|
||||
# Check if process name exists
|
||||
if ! pidof -x "$1" >/dev/null; then
|
||||
echo "Process name $1 not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get last process if there are multiple
|
||||
PID=$(pidof "$1" | awk '{print $NF}')
|
||||
debugPrint "PID by name: $PID"
|
||||
}
|
||||
|
||||
function getPidByProp() {
|
||||
debugPrint "Getting PID by prop..."
|
||||
if ! command -v hyprprop; then
|
||||
echo "You need to install 'hyprprop' to use this feature. (https://github.com/vilari-mickopf/hyprprop)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PID=$(hyprprop | jq '.pid')
|
||||
debugPrint "PID by prop: $PID"
|
||||
}
|
||||
|
||||
function printInfo() {
|
||||
debugPrint "Printing process info...\n"
|
||||
echo -e "$(tput bold)Process tree:$(tput sgr0)"
|
||||
ps -p "$PID" 2>/dev/null && pstree -p "$PID"
|
||||
|
||||
echo -e "\n$(tput bold)Process threads:$(tput sgr0)"
|
||||
ps -eLo pid,tid,comm | grep "$PID" 2>/dev/null
|
||||
|
||||
echo -e "\n$(tput bold)Process ID$(tput sgr0) = $PID \
|
||||
\n$(tput bold)Process name$(tput sgr0) = $(ps -p "$PID" -o comm= 2>/dev/null) \
|
||||
\n$(tput bold)Process state$(tput sgr0) = $(ps -o state= -p "$PID" 2>/dev/null)\n"
|
||||
}
|
||||
|
||||
function sendNotification() {
|
||||
debugPrint "Sending notification..."
|
||||
local title
|
||||
title=$([[ "$(ps -p "$PID" -o state=)" == T ]] &&
|
||||
echo "Suspended $(ps -p "$PID" -o comm= 2>/dev/null)" ||
|
||||
echo "Resumed $(ps -p "$PID" -o comm= 2>/dev/null)")
|
||||
|
||||
local message="PID $PID"
|
||||
|
||||
notify-send "${title}" "${message}" -t "$NOTIF_TIMEOUT" -a Hyprfreeze
|
||||
}
|
||||
|
||||
function args() {
|
||||
# Track required flags
|
||||
local required_flag_count=0
|
||||
|
||||
# Parse options
|
||||
local options="hap:n:rst:"
|
||||
local long_options="help,active,pid:,name:,prop,silent,notif-timeout:,info,dry-run,debug"
|
||||
local parsed_args
|
||||
parsed_args=$(getopt -o "$options" --long "$long_options" -n "$(basename "$0")" -- "$@")
|
||||
|
||||
eval set -- "$parsed_args"
|
||||
while true; do
|
||||
case $1 in
|
||||
-h | --help)
|
||||
printHelp
|
||||
exit 0
|
||||
;;
|
||||
-a | --active)
|
||||
((required_flag_count++))
|
||||
FLAG_ACTIVE=true
|
||||
;;
|
||||
-p | --pid)
|
||||
((required_flag_count++))
|
||||
shift
|
||||
FLAG_PID="$1"
|
||||
;;
|
||||
-n | --name)
|
||||
((required_flag_count++))
|
||||
shift
|
||||
NAME_FLAG="$1"
|
||||
;;
|
||||
-r | --prop)
|
||||
((required_flag_count++))
|
||||
FLAG_PROP=true
|
||||
;;
|
||||
-s | --silent)
|
||||
SILENT=1
|
||||
;;
|
||||
-t | --notif-timeout)
|
||||
shift
|
||||
NOTIF_TIMEOUT="$1"
|
||||
;;
|
||||
--info)
|
||||
INFO=1
|
||||
;;
|
||||
--dry-run)
|
||||
DRYRUN=1
|
||||
;;
|
||||
--debug)
|
||||
DEBUG=1
|
||||
;;
|
||||
--)
|
||||
shift # Skip -- argument
|
||||
break
|
||||
;;
|
||||
*)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Check if more than one required flag is provided, or if none was provided
|
||||
if [ $required_flag_count -ne 1 ]; then
|
||||
printHelp
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function main() {
|
||||
debugPrint "Starting main function..."
|
||||
# Get pid by a required flag
|
||||
if [ "$FLAG_ACTIVE" = true ]; then
|
||||
getPidByActive
|
||||
elif [ -n "$FLAG_PID" ]; then
|
||||
getPidByPid "$FLAG_PID"
|
||||
elif [ -n "$NAME_FLAG" ]; then
|
||||
getPidByName "$NAME_FLAG"
|
||||
elif [ "$FLAG_PROP" = true ]; then
|
||||
getPidByProp
|
||||
fi
|
||||
|
||||
# Suspend or resume process
|
||||
toggleFreeze
|
||||
|
||||
# Run these functions after PID is obtained
|
||||
if [ $INFO -eq 1 ]; then printInfo; fi
|
||||
if [ $SILENT -ne 1 ]; then sendNotification; fi
|
||||
|
||||
debugPrint "End of main function."
|
||||
}
|
||||
|
||||
SILENT=0
|
||||
NOTIF_TIMEOUT=5000
|
||||
INFO=0
|
||||
DRYRUN=0
|
||||
DEBUG=0
|
||||
|
||||
args "$@"
|
||||
|
||||
main
|
||||
354
hypr/scripts/hyprshot
Executable file
@@ -0,0 +1,354 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
function Help() {
|
||||
cat <<EOF
|
||||
Usage: hyprshot [options ..] [-m [mode] ..] -- [command]
|
||||
|
||||
Hyprshot is an utility to easily take screenshot in Hyprland using your mouse.
|
||||
|
||||
It allows taking screenshots of windows, regions and monitors which are saved to a folder of your choosing and copied to your clipboard.
|
||||
|
||||
Examples:
|
||||
capture a window \`hyprshot -m window\`
|
||||
capture active window to clipboard \`hyprshot -m window -m active --clipboard-only\`
|
||||
capture selected monitor \`hyprshot -m output -m DP-1\`
|
||||
|
||||
Options:
|
||||
-h, --help show help message
|
||||
-m, --mode one of: output, window, region, active, OUTPUT_NAME
|
||||
-o, --output-folder directory in which to save screenshot
|
||||
-f, --filename the file name of the resulting screenshot
|
||||
-D, --delay how long to delay taking the screenshot after selection (seconds)
|
||||
-z, --freeze freeze the screen on initialization
|
||||
-d, --debug print debug information
|
||||
-s, --silent don't send notification when screenshot is saved
|
||||
-r, --raw output raw image data to stdout
|
||||
-t, --notif-timeout notification timeout in milliseconds (default 5000)
|
||||
--border-width width of the selection border in pixels (default 0)
|
||||
--border-color color of the selection border (default #181926)
|
||||
--background-color color around the selection (default #8087a25a)
|
||||
--clipboard-only copy screenshot to clipboard and don't save image in disk
|
||||
-- [command] open screenshot with a command of your choosing. e.g. hyprshot -m window -- mirage
|
||||
|
||||
Modes:
|
||||
output take screenshot of an entire monitor
|
||||
window take screenshot of an open window
|
||||
region take screenshot of selected region
|
||||
active take screenshot of active window|output
|
||||
(you must use --mode again with the intended selection)
|
||||
OUTPUT_NAME take screenshot of output with OUTPUT_NAME
|
||||
(you must use --mode again with the intended selection)
|
||||
(you can get this from \`hyprctl monitors\`)
|
||||
EOF
|
||||
}
|
||||
|
||||
function Print() {
|
||||
if [ $DEBUG -eq 0 ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
1>&2 printf "$@"
|
||||
}
|
||||
|
||||
function send_notification() {
|
||||
if [ $SILENT -eq 1 ]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
local message=$([ $CLIPBOARD -eq 1 ] &&
|
||||
echo "Image copied to the clipboard" ||
|
||||
echo "Image saved in <i>${1}</i> and copied to the clipboard.")
|
||||
action=$(notify-send -i "$1" --action="view=View" --action="edit=Edit" --action="folder=Open on Folder" "Screenshot saved" \
|
||||
"${message}" \
|
||||
-t "$NOTIF_TIMEOUT" -i "${1}" -a Hyprshot)
|
||||
|
||||
case $action in
|
||||
"view")
|
||||
xdg-open "$1"
|
||||
;;
|
||||
"edit")
|
||||
if command -v satty &>/dev/null; then
|
||||
satty -f "$1"
|
||||
else
|
||||
notify-send -u critical "Cannot Edit Image" "Install Satty"
|
||||
fi
|
||||
;;
|
||||
"folder")
|
||||
nemo "$1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function trim() {
|
||||
Print "Geometry: %s\n" "${1}"
|
||||
local geometry="${1}"
|
||||
local xy_str=$(echo "${geometry}" | cut -d' ' -f1)
|
||||
local wh_str=$(echo "${geometry}" | cut -d' ' -f2)
|
||||
local x=$(echo "${xy_str}" | cut -d',' -f1)
|
||||
local y=$(echo "${xy_str}" | cut -d',' -f2)
|
||||
local width=$(echo "${wh_str}" | cut -dx -f1)
|
||||
local height=$(echo "${wh_str}" | cut -dx -f2)
|
||||
|
||||
local max_width=$(hyprctl monitors -j | jq -r '[.[] | if (.transform % 2 == 0) then (.x + .width) else (.x + .height) end] | max')
|
||||
local max_height=$(hyprctl monitors -j | jq -r '[.[] | if (.transform % 2 == 0) then (.y + .height) else (.y + .width) end] | max')
|
||||
|
||||
local min_x=$(hyprctl monitors -j | jq -r '[.[] | (.x)] | min')
|
||||
local min_y=$(hyprctl monitors -j | jq -r '[.[] | (.y)] | min')
|
||||
|
||||
local cropped_x=$x
|
||||
local cropped_y=$y
|
||||
local cropped_width=$width
|
||||
local cropped_height=$height
|
||||
|
||||
if ((x + width > max_width)); then
|
||||
cropped_width=$((max_width - x))
|
||||
fi
|
||||
if ((y + height > max_height)); then
|
||||
cropped_height=$((max_height - y))
|
||||
fi
|
||||
|
||||
if ((x < min_x)); then
|
||||
cropped_x="$min_x"
|
||||
cropped_width=$((cropped_width + x - min_x))
|
||||
fi
|
||||
if ((y < min_y)); then
|
||||
cropped_y="$min_y"
|
||||
cropped_height=$((cropped_height + y - min_y))
|
||||
fi
|
||||
|
||||
local cropped=$(printf "%s,%s %sx%s\n" \
|
||||
"${cropped_x}" "${cropped_y}" \
|
||||
"${cropped_width}" "${cropped_height}")
|
||||
Print "Crop: %s\n" "${cropped}"
|
||||
echo ${cropped}
|
||||
}
|
||||
|
||||
function save_geometry() {
|
||||
local geometry="${1}"
|
||||
local output=""
|
||||
|
||||
if [ $RAW -eq 1 ]; then
|
||||
grim -g "${geometry}" -
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ $CLIPBOARD -eq 0 ]; then
|
||||
mkdir -p "$SAVEDIR"
|
||||
grim -g "${geometry}" "$SAVE_FULLPATH"
|
||||
output="$SAVE_FULLPATH"
|
||||
wl-copy --type image/png <"$output"
|
||||
[ -z "$COMMAND" ] || {
|
||||
"$COMMAND" "$output"
|
||||
}
|
||||
else
|
||||
wl-copy --type image/png < <(grim -g "${geometry}" -)
|
||||
fi
|
||||
|
||||
send_notification $output
|
||||
}
|
||||
|
||||
function checkRunning() {
|
||||
sleep 1
|
||||
while [[ 1 == 1 ]]; do
|
||||
if [[ $(pgrep slurp | wc -m) == 0 ]]; then
|
||||
pkill hyprpicker
|
||||
exit
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function begin_grab() {
|
||||
if [ $FREEZE -eq 1 ] && [ "$(command -v "hyprpicker")" ] >/dev/null 2>&1; then
|
||||
sleep 0.2
|
||||
hyprpicker -r -z &
|
||||
sleep 0.2
|
||||
HYPRPICKER_PID=$!
|
||||
fi
|
||||
local option=$1
|
||||
case $option in
|
||||
output)
|
||||
if [ $CURRENT -eq 1 ]; then
|
||||
local geometry=$(grab_active_output)
|
||||
elif [ -z $SELECTED_MONITOR ]; then
|
||||
local geometry=$(grab_output)
|
||||
else
|
||||
local geometry=$(grab_selected_output $SELECTED_MONITOR)
|
||||
fi
|
||||
;;
|
||||
region)
|
||||
local geometry=$(grab_region)
|
||||
;;
|
||||
window)
|
||||
if [ $CURRENT -eq 1 ]; then
|
||||
local geometry=$(grab_active_window)
|
||||
else
|
||||
local geometry=$(grab_window)
|
||||
fi
|
||||
geometry=$(trim "${geometry}")
|
||||
;;
|
||||
esac
|
||||
if [ ${DELAY} -gt 0 ] 2>/dev/null; then
|
||||
sleep ${DELAY}
|
||||
fi
|
||||
save_geometry "${geometry}"
|
||||
}
|
||||
|
||||
function grab_output() {
|
||||
slurp -or
|
||||
}
|
||||
|
||||
function grab_active_output() {
|
||||
local active_workspace=$(hyprctl -j activeworkspace)
|
||||
local monitors=$(hyprctl -j monitors)
|
||||
Print "Monitors: %s\n" "$monitors"
|
||||
Print "Active workspace: %s\n" "$active_workspace"
|
||||
local current_monitor="$(echo $monitors | jq -r 'first(.[] | select(.activeWorkspace.id == '$(echo $active_workspace | jq -r '.id')'))')"
|
||||
Print "Current output: %s\n" "$current_monitor"
|
||||
echo $current_monitor | jq -r '"\(.x),\(.y) \(.width/.scale|round)x\(.height/.scale|round)"'
|
||||
}
|
||||
|
||||
function grab_selected_output() {
|
||||
local monitor=$(hyprctl -j monitors | jq -r '.[] | select(.name == "'$(echo $1)'")')
|
||||
Print "Capturing: %s\n" "${1}"
|
||||
echo $monitor | jq -r '"\(.x),\(.y) \(.width/.scale|round)x\(.height/.scale|round)"'
|
||||
}
|
||||
|
||||
function grab_region() {
|
||||
slurp -d -b $BACKGROUND_COLOR -c $BORDER_COLOR -w $BORDER_WIDTH
|
||||
}
|
||||
|
||||
function grab_window() {
|
||||
local monitors=$(hyprctl -j monitors)
|
||||
local clients=$(hyprctl -j clients | jq -r '[.[] | select(.workspace.id | contains('$(echo $monitors | jq -r 'map(.activeWorkspace.id) | join(",")')'))]')
|
||||
Print "Monitors: %s\n" "$monitors"
|
||||
Print "Clients: %s\n" "$clients"
|
||||
# Generate boxes for each visible window and send that to slurp
|
||||
# through stdin
|
||||
local boxes="$(echo $clients | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1]) \(.title)"' | cut -f1,2 -d' ')"
|
||||
Print "Boxes:\n%s\n" "$boxes"
|
||||
slurp -r -b $BACKGROUND_COLOR -c $BORDER_COLOR -w $BORDER_WIDTH <<<"$boxes"
|
||||
}
|
||||
|
||||
function grab_active_window() {
|
||||
local active_window=$(hyprctl -j activewindow)
|
||||
local box=$(echo $active_window | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | cut -f1,2 -d' ')
|
||||
Print "Box:\n%s\n" "$box"
|
||||
echo "$box"
|
||||
}
|
||||
|
||||
function parse_mode() {
|
||||
local mode="${1}"
|
||||
|
||||
case $mode in
|
||||
window | region | output)
|
||||
OPTION=$mode
|
||||
;;
|
||||
active)
|
||||
CURRENT=1
|
||||
;;
|
||||
*)
|
||||
hyprctl monitors -j | jq -re '.[] | select(.name == "'$(echo $mode)'")' &>/dev/null
|
||||
SELECTED_MONITOR=$mode
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function args() {
|
||||
local options=$(getopt -o hf:o:m:D:dszr:t: --long help,filename:,output-folder:,mode:,delay:,clipboard-only,debug,silent,freeze,raw,notif-timeout:,border-color:,background-color:,border-width: -- "$@")
|
||||
eval set -- "$options"
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-h | --help)
|
||||
Help
|
||||
exit
|
||||
;;
|
||||
-o | --output-folder)
|
||||
shift
|
||||
SAVEDIR=$1
|
||||
;;
|
||||
-f | --filename)
|
||||
shift
|
||||
FILENAME=$1
|
||||
;;
|
||||
-D | --delay)
|
||||
shift
|
||||
DELAY=$1
|
||||
;;
|
||||
-m | --mode)
|
||||
shift
|
||||
parse_mode $1
|
||||
;;
|
||||
--clipboard-only)
|
||||
CLIPBOARD=1
|
||||
;;
|
||||
-d | --debug)
|
||||
DEBUG=1
|
||||
;;
|
||||
-z | --freeze)
|
||||
FREEZE=1
|
||||
;;
|
||||
-s | --silent)
|
||||
SILENT=1
|
||||
;;
|
||||
-r | --raw)
|
||||
RAW=1
|
||||
;;
|
||||
-t | --notif-timeout)
|
||||
shift
|
||||
NOTIF_TIMEOUT=$1
|
||||
;;
|
||||
--border-color)
|
||||
shift
|
||||
BORDER_COLOR=$1
|
||||
;;
|
||||
--background-color)
|
||||
shift
|
||||
BACKGROUND_COLOR=$1
|
||||
;;
|
||||
--border-width)
|
||||
shift
|
||||
BORDER_WIDTH=$1
|
||||
;;
|
||||
--)
|
||||
shift # Skip -- argument
|
||||
COMMAND=${@:2}
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -z $OPTION ]; then
|
||||
Print "A mode is required\n\nAvailable modes are:\n\toutput\n\tregion\n\twindow\n"
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -z $1 ]; then
|
||||
Help
|
||||
exit
|
||||
fi
|
||||
|
||||
CLIPBOARD=0
|
||||
DEBUG=0
|
||||
SILENT=0
|
||||
RAW=0
|
||||
NOTIF_TIMEOUT=5000
|
||||
CURRENT=0
|
||||
FREEZE=0
|
||||
BORDER_COLOR=\#181926
|
||||
BACKGROUND_COLOR=\#8087a25a
|
||||
BORDER_WIDTH=0
|
||||
[ -z "$XDG_PICTURES_DIR" ] && type xdg-user-dir &>/dev/null && XDG_PICTURES_DIR=$(xdg-user-dir PICTURES)
|
||||
FILENAME="$(date +'%Y-%m-%d-%H%M%S_hyprshot.png')"
|
||||
[ -z "$HYPRSHOT_DIR" ] && SAVEDIR=${XDG_PICTURES_DIR:=~} || SAVEDIR=${HYPRSHOT_DIR}
|
||||
|
||||
args $0 "$@"
|
||||
|
||||
SAVE_FULLPATH="$SAVEDIR/$FILENAME"
|
||||
[ $CLIPBOARD -eq 0 ] && Print "Saving in: %s\n" "$SAVE_FULLPATH"
|
||||
begin_grab $OPTION &
|
||||
checkRunning
|
||||
14
hypr/scripts/launch_app
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
program="$1"
|
||||
|
||||
if ! command -v "$program" >/dev/null 2>&1; then
|
||||
notify-send "Program not found" "Make sure you have installed $program"
|
||||
exit 1
|
||||
else
|
||||
exec $@
|
||||
fi
|
||||
19
hypr/scripts/lock
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/bash
|
||||
swaylock --screenshots --indicator --clock \
|
||||
--inside-wrong-color $(~/.config/hypr/scripts/color 1 -n) \
|
||||
--ring-wrong-color $(~/.config/hypr/scripts/color background -n) \
|
||||
--inside-clear-color $(~/.config/hypr/scripts/color 2 -n) \
|
||||
--ring-clear-color $(~/.config/hypr/scripts/color background -n) \
|
||||
--inside-ver-color $(~/.config/hypr/scripts/color 4 -n) \
|
||||
--ring-ver-color $(~/.config/hypr/scripts/color background -n) \
|
||||
--text-color $(~/.config/hypr/scripts/color 5 -un) \
|
||||
--key-hl-color $(~/.config/hypr/scripts/color 4 -un) \
|
||||
--indicator-radius 80 \
|
||||
--indicator-thickness 5 \
|
||||
--effect-blur 10x7 \
|
||||
--effect-vignette 0.2:0.2 \
|
||||
--ring-color 11111b \
|
||||
--line-color 313244 \
|
||||
--inside-color 0011111b \
|
||||
--separator-color 00000000 \
|
||||
--fade-in 0.1 &
|
||||
23
hypr/scripts/move_by_rules
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script created by: https://github.com/moguay
|
||||
|
||||
# Retrieve the active class of the window
|
||||
active_class=$(hyprctl -j activewindow | jq '.class')
|
||||
active_class=$(echo "$active_class" | tr -d \")
|
||||
|
||||
# Read the file and store lines containing 'workspace' in an array
|
||||
grep 'workspace' ~/.config/hypr/themes/luna/rules.conf | while IFS= read -r line; do
|
||||
workspace_value=$(echo "$line" | sed -n -e 's/^.*workspace \([0-9]*\)[ ,].*$/\1/p')
|
||||
class_value=$(echo "$line" | sed -n -e 's/^.*class:\s*\(.*\)$/\1/p')
|
||||
regex=$class_value
|
||||
|
||||
if [ -n "$workspace_value" ] && [ -n "$class_value" ]; then
|
||||
# Compare the retrieved value with the active class of the window
|
||||
if echo "$active_class" | grep -E "$regex"; then
|
||||
#echo "The class matches the active class of the window. Workspace value to apply: $workspace_value"
|
||||
hyprctl dispatch movetoworkspace "$workspace_value"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
29
hypr/scripts/performance
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==2{print $2}')
|
||||
|
||||
# Waybar performance
|
||||
FILE="$HOME/.config/waybar/style.css"
|
||||
|
||||
sed -i 's/\/\* \(.*animation:.*\) \*\//\1/g' $FILE
|
||||
if [ "$HYPRGAMEMODE" = 1 ]; then
|
||||
sed -i 's/^\(.*animation:.*\)$/\/\* \1 \*\//g' $FILE
|
||||
fi
|
||||
|
||||
killall waybar
|
||||
waybar > /dev/null 2>&1 &
|
||||
|
||||
# Hyprland performance
|
||||
if [ "$HYPRGAMEMODE" = 1 ]; then
|
||||
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"
|
||||
exit
|
||||
fi
|
||||
|
||||
hyprctl reload > /dev/null 2>&1 &
|
||||
9
hypr/scripts/portal
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
sleep 1
|
||||
killall -e xdg-desktop-portal-hyprland
|
||||
killall -e xdg-desktop-portal-wlr
|
||||
killall xdg-desktop-portal
|
||||
/usr/lib/xdg-desktop-portal-hyprland &
|
||||
sleep 2
|
||||
/usr/lib/xdg-desktop-portal &
|
||||
11
hypr/scripts/random_wallpaper
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
random=$(fd --base-directory "$HOME/.config/hypr/theme/walls/" --type f . | shuf -n 1)
|
||||
|
||||
wallpaper="$HOME/.config/hypr/theme/walls/$random"
|
||||
|
||||
swww img "$wallpaper" \
|
||||
--transition-bezier 0.5,1.19,.8,.4 \
|
||||
--transition-type wipe \
|
||||
--transition-duration 2 \
|
||||
--transition-fps 75 && notify-send "Wallpaper Changed" -i "$wallpaper" --app-name=Wallpaper
|
||||
31
hypr/scripts/toggle_floating
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
floating=$(hyprctl activewindow -j | jq '.floating')
|
||||
window=$(hyprctl activewindow -j | jq '.initialClass' | tr -d "\"")
|
||||
|
||||
function toggle() {
|
||||
width=$1
|
||||
height=$2
|
||||
|
||||
hyprctl --batch "dispatch togglefloating; dispatch resizeactive exact ${width} ${height}; dispatch centerwindow"
|
||||
}
|
||||
|
||||
function untoggle() {
|
||||
hyprctl dispatch togglefloating
|
||||
}
|
||||
|
||||
function handle() {
|
||||
width=$1
|
||||
height=$2
|
||||
|
||||
if [ "$floating" == "false" ]; then
|
||||
toggle "$width" "$height"
|
||||
else
|
||||
untoggle
|
||||
fi
|
||||
}
|
||||
|
||||
case $window in
|
||||
kitty) handle "50%" "55%" ;;
|
||||
*) handle "70%" "70%" ;;
|
||||
esac
|
||||
41
hypr/theme/animations.conf
Normal file
@@ -0,0 +1,41 @@
|
||||
animations {
|
||||
enabled = 1
|
||||
|
||||
bezier = default, 0.05, 0.9, 0.1, 1.02
|
||||
bezier = wind, 0.05, 0.9, 0.1, 1.02
|
||||
bezier = overshot, 0.13, 0.99, 0.29, 1.02
|
||||
bezier = liner, 1, 1, 1, 1
|
||||
bezier = easeOutQuint, 0.23, 1, 0.32, 1.03
|
||||
|
||||
# Slow Animations
|
||||
# animation = windows, 1, 7, wind, popin
|
||||
# animation = windowsIn, 1, 6, overshot, popin
|
||||
# animation = windowsOut, 1, 5, overshot, popin
|
||||
# animation = windowsMove, 1, 6, overshot, slide
|
||||
# animation = layers, 1, 4, default, popin
|
||||
# animation = fadeIn, 1, 10, default
|
||||
# animation = fadeOut, 1, 10, default
|
||||
# animation = fadeSwitch, 1, 10, default
|
||||
# animation = fadeShadow, 1, 10, default
|
||||
# animation = fadeDim, 1, 10, default
|
||||
# animation = fadeLayers, 1, 10, default
|
||||
# animation = workspaces, 1, 6, overshot, slide
|
||||
# animation = border, 1, 1, liner
|
||||
# animation = borderangle, 1, 30, liner, loop
|
||||
|
||||
# Fast Animations
|
||||
animation = windows, 1, 3.5, easeOutQuint, popin
|
||||
animation = windowsIn, 1, 3.5, easeOutQuint, popin
|
||||
animation = windowsOut, 1, 3.5, overshot, popin
|
||||
animation = windowsMove, 1, 3.5, overshot, slide
|
||||
animation = layers, 1, 3, default, popin
|
||||
animation = fadeIn, 1, 4, default
|
||||
animation = fadeOut, 1, 4, default
|
||||
animation = fadeSwitch, 1, 4, default
|
||||
animation = fadeShadow, 1, 4, default
|
||||
animation = fadeDim, 1, 4, default
|
||||
animation = fadeLayers, 1, 4, default
|
||||
animation = workspaces, 1, 3.25, easeOutQuint, slide
|
||||
#animation = border, 1, 1, liner
|
||||
#animation = borderangle, 1, 30, liner, loop
|
||||
}
|
||||
77
hypr/theme/colors.conf
Normal file
@@ -0,0 +1,77 @@
|
||||
$rosewater = rgb(f4dbd6)
|
||||
$rosewaterAlpha = f4dbd6
|
||||
|
||||
$flamingo = rgb(f0c6c6)
|
||||
$flamingoAlpha = f0c6c6
|
||||
|
||||
$pink = rgb(f5bde6)
|
||||
$pinkAlpha = f5bde6
|
||||
|
||||
$mauve = rgb(c6a0f6)
|
||||
$mauveAlpha = c6a0f6
|
||||
|
||||
$red = rgb(ed8796)
|
||||
$redAlpha = ed8796
|
||||
|
||||
$maroon = rgb(ee99a0)
|
||||
$maroonAlpha = ee99a0
|
||||
|
||||
$peach = rgb(f5a97f)
|
||||
$peachAlpha = f5a97f
|
||||
|
||||
$yellow = rgb(eed49f)
|
||||
$yellowAlpha = eed49f
|
||||
|
||||
$green = rgb(a6da95)
|
||||
$greenAlpha = a6da95
|
||||
|
||||
$teal = rgb(8bd5ca)
|
||||
$tealAlpha = 8bd5ca
|
||||
|
||||
$sky = rgb(91d7e3)
|
||||
$skyAlpha = 91d7e3
|
||||
|
||||
$sapphire = rgb(7dc4e4)
|
||||
$sapphireAlpha = 7dc4e4
|
||||
|
||||
$blue = rgb(8aadf4)
|
||||
$blueAlpha = 8aadf4
|
||||
|
||||
$lavender = rgb(b7bdf8)
|
||||
$lavenderAlpha = b7bdf8
|
||||
|
||||
$text = rgb(cad3f5)
|
||||
$textAlpha = cad3f5
|
||||
|
||||
$subtext1 = rgb(b8c0e0)
|
||||
$subtext1Alpha = b8c0e0
|
||||
|
||||
$subtext0 = rgb(a5adcb)
|
||||
$subtext0Alpha = a5adcb
|
||||
|
||||
$overlay2 = rgb(939ab7)
|
||||
$overlay2Alpha = 939ab7
|
||||
|
||||
$overlay1 = rgb(8087a2)
|
||||
$overlay1Alpha = 8087a2
|
||||
|
||||
$overlay0 = rgb(6e738d)
|
||||
$overlay0Alpha = 6e738d
|
||||
|
||||
$surface2 = rgb(5b6078)
|
||||
$surface2Alpha = 5b6078
|
||||
|
||||
$surface1 = rgb(494d64)
|
||||
$surface1Alpha = 494d64
|
||||
|
||||
$surface0 = rgb(363a4f)
|
||||
$surface0Alpha = 363a4f
|
||||
|
||||
$base = rgb(24273a)
|
||||
$baseAlpha = 24273a
|
||||
|
||||
$mantle = rgb(1e2030)
|
||||
$mantleAlpha = 1e2030
|
||||
|
||||
$crust = rgb(181926)
|
||||
$crustAlpha = 181926
|
||||
59
hypr/theme/decoration.conf
Normal file
@@ -0,0 +1,59 @@
|
||||
source = ./colors.conf
|
||||
|
||||
general {
|
||||
border_size = 2
|
||||
col.inactive_border = rgba($lavenderAlpha69)
|
||||
col.active_border = rgba($textAlphaee) rgba($lavenderAlpha69) rgba($lavenderAlpha69) rgba($textAlphaee) 45deg
|
||||
|
||||
gaps_in = 3
|
||||
gaps_out = 5
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 7
|
||||
|
||||
active_opacity = 0.92
|
||||
inactive_opacity = 0.90
|
||||
|
||||
blur {
|
||||
enabled = yes
|
||||
size = 5
|
||||
passes = 4
|
||||
ignore_opacity = true
|
||||
new_optimizations = true
|
||||
xray = false
|
||||
noise = 0.0
|
||||
popups = true
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = yes
|
||||
range = 30
|
||||
scale = 2
|
||||
render_power = 5
|
||||
color = $crust
|
||||
color_inactive = $surface0
|
||||
}
|
||||
|
||||
dim_inactive = false
|
||||
dim_strength = 0.05
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_inactive = rgba($lavenderAlpha69)
|
||||
col.border_active = rgba($textAlphaee) rgba($lavenderAlpha69) rgba($lavenderAlpha69) rgba($textAlphaee) 45deg
|
||||
|
||||
col.border_locked_inactive = rgba($lavenderAlpha69)
|
||||
col.border_locked_active = rgba($textAlphaee) rgba($lavenderAlpha69) rgba($lavenderAlpha69) rgba($textAlphaee) 45deg
|
||||
|
||||
groupbar {
|
||||
col.active = rgba($lavenderAlphaCC)
|
||||
col.inactive = rgba($subtext1Alpha99)
|
||||
col.locked_active = rgba($maroonAlphaCC)
|
||||
col.locked_inactive = rgba($subtext1Alpha99)
|
||||
font_family = JetBrainsMono Nerd Font
|
||||
font_size = 14
|
||||
text_color = $crust
|
||||
height = 16
|
||||
}
|
||||
}
|
||||
BIN
hypr/theme/gif-walls/nord-car.gif
Normal file
|
After Width: | Height: | Size: 347 KiB |
128
hypr/theme/rules.conf
Normal file
@@ -0,0 +1,128 @@
|
||||
# Base Rules
|
||||
$center-float-large = class:^(center-float-large)$|^(.*qimgv.*)$|^(.*mpv.*)$
|
||||
windowrulev2 = float, $center-float-large
|
||||
windowrulev2 = size 70% 70%, $center-float-large
|
||||
windowrulev2 = center 1, $center-float-large
|
||||
|
||||
$center-float = class:^(center-float)$
|
||||
$center-float-title = title:^(.*Open Folder.*)$|^(.*Open File.*)$|^(.*Save File.*)$|^(.*Save Folder.*)$|^(.*Save Image.*)$|^(.*Save As.*)$|^(.*Open As.*)$
|
||||
windowrulev2 = float, $center-float
|
||||
windowrulev2 = float, $center-float-title
|
||||
windowrulev2 = size 50% 50%, $center-float
|
||||
windowrulev2 = size 50% 50%, $center-float-title
|
||||
windowrulev2 = center 1, $center-float
|
||||
windowrulev2 = center 1, $center-float-title
|
||||
|
||||
$center-float-mini = class:^(center-float-mini)$|^(.*galculator.*)$|^(.*ytdlp-gui.*)$|^(.*udiskie.*)$|^(.*Calculator.*)$
|
||||
windowrulev2 = float, $center-float-mini
|
||||
windowrulev2 = size 30% 40%, $center-float-mini
|
||||
windowrulev2 = center 1, $center-float-mini
|
||||
|
||||
|
||||
# Float Rules
|
||||
windowrule = float, xfce-polkit|wleave|title:branchdialog|nwg-look|nm-connection-editor|org.twosheds.iwgtk|overskride
|
||||
|
||||
|
||||
# Workspace Rules
|
||||
## System
|
||||
#windowrulev2 = workspace 8, class:^(.*virt-manager.*)$|(.*PikaBackup.*)$|(.*VirtualBox Manager.*)$|(.*Vmware*)$
|
||||
#windowrulev2 = workspace 17, class:^(.*GParted.*)$|(.*clamtk.*)$|(.*gnome.Logs.*)$
|
||||
|
||||
## Gaming
|
||||
#windowrulev2 = workspace 7, class:^(.*steam_app.*)$|(.*gamescope.*)$|(.*atlauncher.*)$|(.*Minecraft.*)$
|
||||
#windowrulev2 = workspace 16 silent, class:^([Ss]team)$|(.*heroic.*)$
|
||||
#windowrulev2 = workspace 7, class:^(.*Ryujinx.*)$|(.*cemu.*)$|(.*dolphin.*)$|(.*RetroArch.*)$|(.*xemu.*)$|(.*duckstation.*)$|(.*rpcs3.*)$
|
||||
|
||||
## Media
|
||||
#windowrulev2 = workspace 6, class:^(.*kdenlive.*)$
|
||||
#windowrulev2 = workspace 21 silent, class:^(.*thunderbird.*)$
|
||||
#windowrulev2 = workspace 22 silent, class:^(.*btop.*)$
|
||||
#windowrulev2 = workspace 22 silent, class:^(.*nvtop.*)$
|
||||
#windowrulev2 = workspace 19 silent, class:^(.*[Ss]potify.*)$|(.*tidal-hifi.*)$|(.*You[Tt]ube Music.*)$
|
||||
#windowrulev2 = workspace 20 silent, class:^(.*discord.*)$|(.*vesktop.*)$|(.*WebCord.*)$
|
||||
#windowrulev2 = workspace 15, class:^(.*obsproject.*)$
|
||||
#windowrulev2 = workspace 14, class:^(.*easyeffects.*)$|^(.*qpwgraph.*)$|(.*Helvum.*)$
|
||||
#windowrulev2 = workspace 5, class:^(.*vital.*)$|(.*fl64.*)$|(.*nicotine_plus.*)$
|
||||
#windowrulev2 = workspace 5, title:^(.*FL Studio.*)$
|
||||
#windowrulev2 = workspace 4, class:^(.*pinta.*)$|(.*krita.*)$|(.*blender.*)$|(.*Upscayl.*)$
|
||||
|
||||
## Productivity/Dev
|
||||
#windowrulev2 = workspace 9 silent, class:^(.*obsidian.*)$|(.*Zotero.*)$
|
||||
#windowrulev2 = workspace 2, class:^(.*Code.*)$|(.*codium.*)$|(.*VSCodium.*)$|(.*neovide.*)$
|
||||
|
||||
|
||||
# Animation Rules
|
||||
windowrulev2 = animation slide, title:^(.*cava.*)$
|
||||
windowrulev2 = animation popin, class:^(.*wleave.*)$
|
||||
|
||||
|
||||
# Scratchpads
|
||||
$scratchpad-large = class:^(scratchpad-large)$
|
||||
windowrulev2 = float, $scratchpad-large
|
||||
windowrulev2 = center 1, $scratchpad-large
|
||||
windowrulev2 = size 70% 70%, $scratchpad-large
|
||||
windowrulev2 = animation slide, $scratchpad-large
|
||||
windowrulev2 = workspace special: scratchpad-large silent, $scratchpad-large
|
||||
|
||||
$scratchpad = class:^(scratchpad)$
|
||||
windowrulev2 = float, $scratchpad0
|
||||
windowrulev2 = center 1, $scratchpad
|
||||
windowrulev2 = size 50% 50%, $scratchpad
|
||||
windowrulev2 = animation slide, $scratchpad
|
||||
windowrulev2 = workspace special: scratchpad silent, $scratchpad
|
||||
|
||||
$scratchpad-mini = class:^(scratchpad-mini)$
|
||||
windowrulev2 = float, $scratchpad-mini
|
||||
windowrulev2 = center 1, $scratchpad-mini
|
||||
windowrulev2 = size 30% 40%, $scratchpad-mini
|
||||
windowrulev2 = animation slide, $scratchpad-mini
|
||||
windowrulev2 = workspace special: scratchpad-mini silent, $scratchpad-mini
|
||||
|
||||
$sideScratchpad = class:^(.*pavucontrol.*)$|(.*blueman-manager.*)$
|
||||
windowrulev2 = workspace special:scratchpad silent, $sideScratchpad
|
||||
windowrulev2 = size 30% 90%, $sideScratchpad
|
||||
windowrulev2 = float, $sideScratchpad
|
||||
windowrulev2 = center 1, $sideScratchpad
|
||||
|
||||
|
||||
# Specific App Rules
|
||||
$videobridge = class:^(.*xwaylandvideobridge.*)$
|
||||
windowrulev2 = opacity 0.0 override 0.0 override, $videobridge
|
||||
windowrulev2 = noanim, $videobridge
|
||||
windowrulev2 = noblur, $videobridge
|
||||
windowrulev2 = noinitialfocus, $videobridge
|
||||
windowrulev2 = maxsize 1 1, $videobridge
|
||||
|
||||
$zathura = class:^(.*zathura.*)$
|
||||
windowrulev2 = float, $zathura
|
||||
windowrulev2 = size 35% 90%, $zathura
|
||||
windowrulev2 = center 1, $zathura
|
||||
|
||||
$scrcpy = class:^(.*wgpsscli.*)$
|
||||
windowrulev2 = center 1, $scrcpy
|
||||
windowrulev2 = float, $scrcpy
|
||||
|
||||
$agpss = class:^(-*agpss.*)$
|
||||
windowrulev2 = tile, $agpss
|
||||
|
||||
$affinity = class:^(designer|publisher|photo).exe$
|
||||
windowrule = tile, xwayland, $affinity
|
||||
|
||||
# Layer Rules
|
||||
layerrule = animation popin, rofi
|
||||
layerrule = blur, rofi
|
||||
layerrule = ignorezero, rofi
|
||||
|
||||
layerrule = blur, waybar
|
||||
layerrule = ignorezero, waybar
|
||||
|
||||
layerrule = ignorezero, swaync-notification-window
|
||||
layerrule = animation slide, swaync-notification-window
|
||||
layerrule = animation slide, swaync-control-center
|
||||
|
||||
layerrule = animation fade, swayosd
|
||||
|
||||
layerrule = animation fade, selection
|
||||
layerrule = animation fade, hyprlock
|
||||
|
||||
layerrule = noanim, hyprpicker
|
||||
3
hypr/theme/theme.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
source = ./animations.conf
|
||||
source = ./rules.conf
|
||||
source = ./decoration.conf
|
||||
430
hypr/theme/walls/.github/README.md
vendored
Normal file
@@ -0,0 +1,430 @@
|
||||
<div align="center">
|
||||
<h1>📷 Wallpapers ✨</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="abstract" src="../abstract.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="abstract-swirls" src="../abstract-swirls.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="anime-skull" src="../anime-skull.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="arch-chan" src="../arch-chan.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="arch-distros" src="../arch-distros.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="arch-logo" src="../arch-logo.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="asteroid-miner" src="../asteroid-miner.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="asteroids" src="../asteroids.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="astronaut-2" src="../astronaut-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="astronaut" src="../astronaut.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="aztec-mysteries" src="../aztec-mysteries.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="baby-star" src="../baby-star.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="black-hole" src="../black-hole.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="blue-kaiju" src="../blue-kaiju.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="bridge" src="../bridge.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="buildings" src="../buildings.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="bunnies-road" src="../bunnies-road.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cabin-2" src="../cabin-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="cabin" src="../cabin.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cafe" src="../cafe.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="car-2" src="../car-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="car-wreck" src="../car-wreck.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="car" src="../car.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="city" src="../city.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="colorful-planets" src="../colorful-planets.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cool" src="../cool.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cottages-river" src="../cottages-river.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="crystals" src="../crystals.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cyberpunk-2" src="../cyberpunk-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="cyberpunk-3" src="../cyberpunk-3.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="cyberpunk" src="../cyberpunk.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="dark-forest" src="../dark-forest.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="dark-waves" src="../dark-waves.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="darknet" src="../darknet.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="delorean" src="../delorean.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="dominik-mayer" src="../dominik-mayer.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="doom-slayer" src="../doom-slayer.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="fireskull" src="../fireskull.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="flower-camp" src="../flower-camp.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="flowers-2" src="../flowers-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="flowers" src="../flowers.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="flying-comets-clouds" src="../flying-comets-clouds.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="fox-clearing" src="../fox-clearing.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="fuji-2" src="../fuji-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="fuji" src="../fuji.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="galaxies" src="../galaxies.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="galaxy-2" src="../galaxy-2.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="galaxy-3" src="../galaxy-3.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="galaxy-waves" src="../galaxy-waves.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="galaxy" src="../galaxy.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="girl" src="../girl.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="glass-room" src="../glass-room.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="glitch" src="../glitch.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="haunted-house" src="../haunted-house.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="hollow-knight-2" src="../hollow-knight-2.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="hollow-knight-3" src="../hollow-knight-3.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="hollow-knight" src="../hollow-knight.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="hyprland-logo" src="../hyprland-logo.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="japan-city" src="../japan-city.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="keyboards" src="../keyboards.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="kurz" src="../kurz.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="lake" src="../lake.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="lifeform" src="../lifeform.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="lofi-girl-2" src="../lofi-girl-2.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="lofi-girl" src="../lofi-girl.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="marine-tunnel" src="../marine-tunnel.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="maze" src="../maze.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="megumin" src="../megumin.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="montains" src="../montains.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="nature" src="../nature.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="nebula" src="../nebula.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="neon-dim" src="../neon-dim.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="neon-man" src="../neon-man.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="neon" src="../neon.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="night-city" src="../night-city.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="night-forest-path" src="../night-forest-path.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="night-lake" src="../night-lake.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="night-landscape" src="../night-landscape.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="night-street" src="../night-street.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="nord-car" src="../nord-car.gif" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="old-computer" src="../old-computer.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="puffy-stars" src="../puffy-stars.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="purpled-night" src="../purpled-night.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="quasar" src="../quasar.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="reaper" src="../reaper.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="relax" src="../relax.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="retro-mario" src="../retro-mario.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="s4vitar" src="../s4vitar.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="sakura-gate" src="../sakura-gate.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="sakura" src="../sakura.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="samurai-geralt" src="../samurai-geralt.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="saturn" src="../saturn.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="scenery" src="../scenery.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="ship" src="../ship.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="shore" src="../shore.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="sky" src="../sky.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="solar-system" src="../solar-system.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="souls" src="../souls.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="space-2" src="../space-2.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="space" src="../space.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="sparkles" src="../sparkles.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="spill" src="../spill.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="stars" src="../stars.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="street" src="../street.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="switch-2" src="../switch-2.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="switch" src="../switch.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="sword" src="../sword.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="tokyo" src="../tokyo.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="trigonometry" src="../trigonometry.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="underwater" src="../underwater.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="voxel-houses-monochrome" src="../voxel-houses-monochrome.png" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="waterfall" src="../waterfall.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="window-room" src="../window-room.png" width="260" height="150"/>
|
||||
</td>
|
||||
<td>
|
||||
<img alt="windows-error" src="../windows-error.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<img alt="yohoho" src="../yohoho.jpg" width="260" height="150"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
BIN
hypr/theme/walls/abstract-swirls.jpg
Normal file
|
After Width: | Height: | Size: 356 KiB |
BIN
hypr/theme/walls/abstract.png
Normal file
|
After Width: | Height: | Size: 194 KiB |
BIN
hypr/theme/walls/anime-skull.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
hypr/theme/walls/arch-chan.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
hypr/theme/walls/arch-distros.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
hypr/theme/walls/arch-logo.png
Normal file
|
After Width: | Height: | Size: 287 KiB |
BIN
hypr/theme/walls/asteroid-miner.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
hypr/theme/walls/asteroids.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
hypr/theme/walls/astronaut-2.png
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
BIN
hypr/theme/walls/astronaut.png
Normal file
|
After Width: | Height: | Size: 274 KiB |
BIN
hypr/theme/walls/aztec-mysteries.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
hypr/theme/walls/baby-star.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
hypr/theme/walls/black-hole.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
hypr/theme/walls/blue-kaiju.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
hypr/theme/walls/bridge.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
hypr/theme/walls/buildings.png
Normal file
|
After Width: | Height: | Size: 403 KiB |
BIN
hypr/theme/walls/bunnies-road.png
Normal file
|
After Width: | Height: | Size: 620 KiB |
BIN
hypr/theme/walls/cabin-2.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
hypr/theme/walls/cabin.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
hypr/theme/walls/cafe.jpg
Normal file
|
After Width: | Height: | Size: 956 KiB |
BIN
hypr/theme/walls/car-2.png
Normal file
|
After Width: | Height: | Size: 2.4 MiB |
BIN
hypr/theme/walls/car-wreck.png
Normal file
|
After Width: | Height: | Size: 554 KiB |
BIN
hypr/theme/walls/car.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
hypr/theme/walls/city.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
hypr/theme/walls/colorful-planets.jpg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
hypr/theme/walls/cool.jpg
Normal file
|
After Width: | Height: | Size: 179 KiB |
BIN
hypr/theme/walls/cottages-river.png
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
BIN
hypr/theme/walls/crystals.png
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
hypr/theme/walls/cyberpunk-2.png
Executable file
|
After Width: | Height: | Size: 576 KiB |
BIN
hypr/theme/walls/cyberpunk-3.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
hypr/theme/walls/cyberpunk.png
Executable file
|
After Width: | Height: | Size: 738 KiB |
BIN
hypr/theme/walls/dark-forest.jpg
Normal file
|
After Width: | Height: | Size: 459 KiB |
BIN
hypr/theme/walls/dark-waves.jpg
Normal file
|
After Width: | Height: | Size: 815 KiB |
BIN
hypr/theme/walls/darknet.png
Normal file
|
After Width: | Height: | Size: 463 KiB |
BIN
hypr/theme/walls/delorean.png
Normal file
|
After Width: | Height: | Size: 901 KiB |
BIN
hypr/theme/walls/dominik-mayer.jpg
Normal file
|
After Width: | Height: | Size: 459 KiB |
BIN
hypr/theme/walls/doom-slayer.png
Normal file
|
After Width: | Height: | Size: 1021 KiB |
BIN
hypr/theme/walls/fireskull.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
hypr/theme/walls/flower-camp.jpg
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
hypr/theme/walls/flowers-2.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
hypr/theme/walls/flowers.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
hypr/theme/walls/flying-comets-clouds.jpg
Normal file
|
After Width: | Height: | Size: 659 KiB |
BIN
hypr/theme/walls/fox-clearing.png
Normal file
|
After Width: | Height: | Size: 852 KiB |
BIN
hypr/theme/walls/fuji-2.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
hypr/theme/walls/fuji.png
Normal file
|
After Width: | Height: | Size: 720 KiB |
BIN
hypr/theme/walls/galaxies.png
Normal file
|
After Width: | Height: | Size: 971 KiB |
BIN
hypr/theme/walls/galaxy-2.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
hypr/theme/walls/galaxy-3.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
hypr/theme/walls/galaxy-waves.jpg
Normal file
|
After Width: | Height: | Size: 836 KiB |
BIN
hypr/theme/walls/galaxy.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
hypr/theme/walls/girl.png
Normal file
|
After Width: | Height: | Size: 292 KiB |
BIN
hypr/theme/walls/glass-room.png
Normal file
|
After Width: | Height: | Size: 351 KiB |
BIN
hypr/theme/walls/glitch.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
hypr/theme/walls/haunted-house.jpg
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
hypr/theme/walls/hollow-knight-2.jpg
Normal file
|
After Width: | Height: | Size: 291 KiB |