Moves from i3 to hypr

This commit is contained in:
Michel 2025-01-19 18:54:38 +01:00
parent 6f069d32e1
commit a186edca69
380 changed files with 23450 additions and 27796 deletions

View file

View file

@ -0,0 +1,16 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
KooL's Hyprland-Dots
1.) Suggest not to rename any files in this folder. As this is connected and being sourced from hyprland.conf in ~/.config/hypr
2.) This folder, along with UserScripts folder will NOT be touch when running upgrade.sh
3.) However, if hyprland has a big change in settings, i.e., blur section is moved into another group, you should managed the change yourself.
4.) Guidance on the keybinds. Suggest NOT to assign a keybind which I set on the default Keybinds. Else will conflict. Once Hyprland decided to have a global keybinds, then I will adjust.
5.) If you think that the default keybinds SHOULD be adjusted, open an issue on my github page and present me a valid argument. Like conflicting to GLOBAL keybinds, etc etc etc.
I will update the Hyprland-Dots wiki for guidance. Make sure to check out changelogs as well

View file

@ -0,0 +1,67 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
# Set your defaults here
env = EDITOR,nvim #default editor
#environment-variables
env = CLUTTER_BACKEND,wayland
env = GDK_BACKEND,wayland,x11
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
# hyprland-qt-support
env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style
# xwayland apps scale fix (useful if you are use monitor scaling)
# see https://wiki.hyprland.org/Configuring/XWayland/
# toolkit-specific scale
env = GDK_SCALE,1
# Bibata-Modern-Ice-Cursor
# NOTE! You must have the hyprcursor version to activate this.
# If you installed from 26-Dec-2024 and choose GTK theme, then you have it.
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/
env = HYPRCURSOR_THEME,Bibata-Modern-Ice
env = HYPRCURSOR_SIZE,24
# firefox
env = MOZ_ENABLE_WAYLAND,1
# electron >28 apps (may help)
env = ELECTRON_OZONE_PLATFORM_HINT,auto
# NVIDIA
# This is from Hyprland Wiki. Below will be activated nvidia gpu detected
# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables
#env = LIBVA_DRIVER_NAME,nvidia
#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
#env = NVD_BACKEND,direct
# to use nvidia as primary renderer (need hyprland >0.45)
#env = AQ_DRM_DEVICES,/dev/dri/card1 (nvidia)
#env = AQ_DRM_DEVICES,/dev/dri/card0
# additional ENV's for nvidia. Caution, activate with care
#env = GBM_BACKEND,nvidia-drm
#env = __NV_PRIME_RENDER_OFFLOAD,1
#env = __VK_LAYER_NV_optimus,NVIDIA_only
#env = WLR_DRM_NO_ATOMIC,1
# FOR VM and POSSIBLY NVIDIA
# LIBGL_ALWAYS_SOFTWARE software mesa rendering
#env = LIBGL_ALWAYS_SOFTWARE,1
#env = WLR_RENDERER_ALLOW_SOFTWARE,1
# nvidia firefox (for hardware acceleration on FF)?
# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
#env = MOZ_DISABLE_RDD_SANDBOX,1
#env = EGL_PLATFORM,wayland

View file

@ -0,0 +1,4 @@
# NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid.
# See notes on Laptops.conf
#monitor = eDP-1, preferred, auto, 1

View file

@ -0,0 +1,55 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
# These configs are mostly for laptops. This is addemdum to Keybinds.conf
$mainMod = SUPER
$scriptsDir = $HOME/.config/hypr/scripts
$UserConfigs = $HOME/.config/hypr/UserConfigs
# for disabling Touchpad. hyprctl devices to get device name.
$Touchpad_Device=asue1209:00-04f3:319f-touchpad
binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec # decrease keyboard brightness
binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc # increase keyboard brightness
bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button
bind = , xf86Launch3, exec, asusctl led-mode -n # FN+F4 Switch keyboard RGB profile
bind = , xf86Launch4, exec, asusctl profile -n # FN+F5 change of fan profiles (Quite, Balance, Performance)
binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec # decrease monitor brightness
binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc # increase monitor brightness
bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh # disable touchpad
# Screenshot keybindings using F6 (no PrinSrc button)
bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # screenshot
bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # # screenshot (5 secs delay)
bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay)
bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)
$TOUCHPAD_ENABLED = true
device {
name = $Touchpad_Device
enabled = $TOUCHPAD_ENABLED
}
# Below are useful when you are connecting your laptop in external display
# Suggest you edit below for your laptop display
# From WIKI This is to disable laptop monitor when lid is closed.
# consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches
#bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1"
#bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable"
# WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION!
# CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper.
# CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor
# One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!!
# Make sure to comment (put # on the both the bindl = , switch ......) above
# NOTE: Display for laptop are being generated into LaptopDisplay.conf
# This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc
#bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf
#bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf
# for laptop-lid action (to erase the last entry)
#exec-once = echo "monitor = eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf
#

View file

@ -0,0 +1,51 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Monitor Configuration
# See Hyprland wiki for more details
# https://wiki.hyprland.org/Configuring/Monitors/
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
# Monitors
monitor=,preferred,auto,1
# High Refresh Rate
monitor=,highrr,auto,1
# High Resolution
monitor=,highres,auto,1
# NOTE: for laptop, kindly check notes in Laptops.conf regarding display
# Created this inorder for the monitor display to not wake up if not intended.
# See here: https://github.com/hyprwm/Hyprland/issues/4090
# Some examples to set your own monitor
#monitor = eDP-1, preferred, auto, 1
#monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen
#monitor = DP-3, 1920x1080@240, auto, 1
#monitor = DP-1, preferred, auto, 1
#monitor = HDMI-A-1, preferred,auto,1
# QEMU-KVM, virtual box or vmware
#monitor = Virtual-1, 1920x1080@60,auto,1
# to disable a monitor
#monitor=name,disable
# Mirror samples
#monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2
#monitor=,preferred,auto,1,mirror,eDP-1
#monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1
# 10 bit monitor support - See wiki https://wiki.hyprland.org/Configuring/Monitors/#10-bit-support - See NOTES below
# NOTE: Colors registered in Hyprland (e.g. the border color) do not support 10 bit.
# NOTE: Some applications do not support screen capture with 10 bit enabled. (Screen captures like OBS may render black screen)
# monitor=,preferred,auto,1,bitdepth,10
#monitor=eDP-1,transform,0
#monitor=eDP-1,addreserved,10,10,10,49
# workspaces - Monitor rules
# https://wiki.hyprland.org/Configuring/Workspace-Rules/
# SUPER E - Workspace-Rules
# See ~/.config/hypr/UserConfigs/WorkspaceRules.conf

View file

@ -0,0 +1,44 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
#Commands & Apps to be executed at launch
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
$wallDIR=$HOME/Pictures/wallpapers
$lock = $scriptsDir/LockScreen.sh
$SwwwRandom = $UserScripts/WallpaperAutoChange.sh
# wallpaper stuff / More wallpaper options below
exec-once = swww-daemon --format xrgb
#exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes
# Startup
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# Polkit (Polkit Gnome / KDE)
exec-once = $scriptsDir/Polkit.sh
# starup apps
exec-once = waybar &
exec-once = nm-applet --indicator &
exec-once = swaync &
exec-once = ags &
exec-once = blueman-applet &
exec-once = kdeconnect-indicator &
#exec-once = rog-control-center &
# Rainbow borders
exec-once = $UserScripts/RainbowBorders.sh &
# Starting hypridle to start hyprlock
exec-once = hypridle &
# Start pyprland daemon
exec-once = pypr &
# Here are list of features available but disabled by default
# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper
# xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start)
#exec-once = $scriptsDir/PortalHyprland.sh

View file

@ -0,0 +1,82 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Decoration and Animations Settings
# Hyprland Wiki Links
# Animation - https://wiki.hyprland.org/Configuring/Animations/
# Decoration - https://wiki.hyprland.org/Configuring/Variables/#decoration
# Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
general {
border_size = 2
gaps_in = 6
gaps_out = 8
col.active_border = $color12
col.inactive_border = $color10
}
decoration {
rounding = 3
active_opacity = 1.0
inactive_opacity = 0.9
fullscreen_opacity = 1.0
dim_inactive = true
dim_strength = 0.1
dim_special = 0.8
shadow {
enabled = true
range = 3
render_power = 1
color = $color12
color_inactive = $color10
}
blur {
enabled = true
size = 6
passes = 2
ignore_opacity = true
new_optimizations = true
special = true
}
}
group {
col.border_active = $color15
groupbar {
col.active = $color0
}
}
animations {
enabled = yes
bezier = wind, 0.05, 0.9, 0.1, 1.05
bezier = winIn, 0.1, 1.1, 0.1, 1.1
bezier = winOut, 0.3, -0.3, 0, 1
bezier = liner, 1, 1, 1, 1
bezier = overshot, 0.05, 0.9, 0.1, 1.05
bezier = smoothOut, 0.5, 0, 0.99, 0.99
bezier = smoothIn, 0.5, -0.5, 0.68, 1.5
animation = windows, 1, 6, wind, slide
animation = windowsIn, 1, 5, winIn, slide
animation = windowsOut, 1, 3, smoothOut, slide
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors
animation = fade, 1, 3, smoothOut
animation = workspaces, 1, 5, overshot
# animations for -git or version >0.42.0
animation = workspacesIn, 1, 5, winIn, slide
animation = workspacesOut, 1, 5, winOut, slide
}

View file

@ -0,0 +1,30 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict
# if you think I should replace the Pre-defined Keybinds in ~/.config/hypr/configs/Keybinds.conf , submit an issue or let me know in DC and present me a valid reason as to why, such as conflicting with global shortcuts, etc etc
# See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables
# See also Laptops.conf for laptops keybinds
$mainMod = SUPER
$files = thunar
$term = kitty
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
# rofi App launcher
#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
bind = $mainMod, Tab, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window #Main Menu
bind = $mainMod, Return, exec, $term #terminal
bind = $mainMod, T, exec, $files #file manager
bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate)
# pyprland
bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal
bind = $mainMod, Z, exec, pypr zoom # Toggle Desktop Zoom
# User Added Keybinds
bindn = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Change keyboard layout

View file

@ -0,0 +1,119 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# User Settings
# This is where you put your own settings as this will not be touched during update
# if the upgrade.sh is used.
# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/
# NOTE: some settings are in ~/.config/hypr/UserConfigs/UserDecorAnimations.conf
dwindle {
pseudotile = yes
preserve_split = yes
special_scale_factor = 0.8
}
master {
new_status = master
new_on_top = 1
mfact = 0.5
}
general {
resize_on_border = true
layout = dwindle
}
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
repeat_rate = 50
repeat_delay = 300
sensitivity = 0 #mouse sensitivity
numlock_by_default = true
left_handed = false
follow_mouse = true
float_switch_override_focus = false
touchpad {
disable_while_typing = true
natural_scroll = false
clickfinger_behavior = false
middle_button_emulation = true
tap-to-click = true
drag_lock = false
}
# below for devices with touchdevice ie. touchscreen
touchdevice {
enabled = true
}
# below is for table see link above for proper variables
tablet {
transform = 0
left_handed = 0
}
}
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
#workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
}
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
vfr = true
vrr = 2
mouse_move_enables_dpms = true
enable_swallow = true
swallow_regex = ^(kitty)$
focus_on_activate = false
initial_workspace_tracking = 0
middle_click_paste = false
}
#opengl {
# nvidia_anti_flicker = true
#}
binds {
workspace_back_and_forth = true
allow_workspace_cycles = true
pass_mouse_when_bound = false
}
#Could help when scaling and not pixelating
xwayland {
enabled = true
force_zero_scaling = true
}
# render section for Hyprland >= v0.42.0
render {
explicit_sync = 2
explicit_sync_kms = 2
direct_scanout = false
}
cursor {
sync_gsettings_theme = true
no_hardware_cursors = 2
enable_hyprcursor = true
warp_on_change_workspace = 2
no_warps = true
}

View file

@ -0,0 +1,146 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
#windowrule = noblur,gamescope
#windowrule = fullscreen,gamescope
#windowrule = workspace 6 silent,^(gamescope)$
# windowrule Position
windowrule = center,^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)
windowrule = center,^([Ww]hatsapp-for-linux)$
windowrule = center,^([Ff]erdium)$
# WINDOWRULE v2
# windowrule v2 - position
# windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center.
windowrulev2 = center, class:([Tt]hunar), title:(File Operation Progress)
windowrulev2 = center, class:([Tt]hunar), title:(Confirm to replace files)
windowrulev2 = center, title:^(ROG Control)$
windowrulev2 = center, title:^(Keybindings)$
windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$
#windowrulev2 = move 72% 7%,title:^(Firefox)$
# windowrule v2 to avoid idle for fullscreen apps
windowrulev2 = idleinhibit fullscreen, class:^(*)$
windowrulev2 = idleinhibit fullscreen, title:^(*)$
windowrulev2 = idleinhibit fullscreen, fullscreen:1
# windowrule v2 move to workspace
windowrulev2 = workspace 1, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$
windowrulev2 = workspace 1, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$
windowrulev2 = workspace 1, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
windowrulev2 = workspace 1, class:^([Tt]horium-browser|[Cc]achy-browser)$
windowrulev2 = workspace 1, class:^(zen)$ # zen browser
windowrulev2 = workspace 2, class:^(kitty)$
windowrulev2 = workspace 3, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrulev2 = workspace 3, class:^([Bb]eeper)$
windowrulev2 = workspace 3, class:^([Ff]erdium)$
windowrulev2 = workspace 3, class:^([Ww]hatsapp-for-linux)$
windowrulev2 = workspace 3, class:^(teams-for-linux)$
windowrulev2 = workspace 4, class:^([Ss]team)$
windowrulev2 = workspace 4, class:^([Ll]utris)$
windowrulev2 = workspace 5, class:^(com.github.th_ch.youtube_music)$
# windowrule v2 - float
windowrulev2 = float, class:^(org.kde.polkit-kde-authentication-agent-1)$
windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$
windowrulev2 = float, class:([Tt]hunar), title:(File Operation Progress)
windowrulev2 = float, class:([Tt]hunar), title:(Confirm to replace files)
windowrulev2 = float, class:(xdg-desktop-portal-gtk)
windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator)
windowrulev2 = float, class:(codium|codium-url-handler|VSCodium|code-oss), title:(Add Folder to Workspace)
windowrulev2 = float, class:(electron), title:(Add Folder to Workspace)
windowrulev2 = float, class:^([Rr]ofi)$
windowrulev2 = float, class:^(eog|org.gnome.Loupe)$ # image viewer
windowrulev2 = float, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
windowrulev2 = float, class:^(nwg-look|qt5ct|qt6ct)$
windowrulev2 = float, class:^(mpv|com.github.rafostar.Clapper)$
windowrulev2 = float, class:^(nm-applet|nm-connection-editor|blueman-manager)$
windowrulev2 = float, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
windowrulev2 = float, class:^([Yy]ad)$
windowrulev2 = float, class:^(wihotspot(-gui)?)$ # wifi hotspot
windowrulev2 = float, class:^(evince)$ # document viewer
windowrulev2 = float, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
windowrulev2 = float, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
windowrulev2 = float, title:(Kvantum Manager)
windowrulev2 = float, class:^([Ss]team)$,title:^((?![Ss]team).*|[Ss]team [Ss]ettings)$
windowrulev2 = float, class:^([Qq]alculate-gtk)$
#windowrulev2 = float, class:^([Ww]hatsapp-for-linux)$
windowrulev2 = float, class:^([Ff]erdium)$
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = float, title:^(ROG Control)$
#windowrulev2 = float, title:^(Firefox)$
windowrulev2 = float, title:^(hyprgui)$
windowrulev2 = float, class:^(io.ente.auth)$
# windowrule v2 - opacity #enable as desired
windowrulev2 = opacity 0.9 0.6, class:^([Rr]ofi)$
windowrulev2 = opacity 0.9 0.7, class:^(Brave-browser(-beta|-dev)?)$
windowrulev2 = opacity 0.9 0.7, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$
windowrulev2 = opacity 0.9 0.7, class:^(zen-beta)$ # zen browser
windowrulev2 = opacity 0.9 0.6, class:^([Tt]horium-browser|[Cc]achy-browser)$
windowrulev2 = opacity 0.9 0.8, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable)?)$
windowrulev2 = opacity 0.9 0.8, class:^(google-chrome(-beta|-dev|-unstable)?)$
windowrulev2 = opacity 0.94 0.86, class:^(chrome-.+-Default)$ # Chrome PWAs
windowrulev2 = opacity 0.9 0.8, class:^([Tt]hunar|org.gnome.Nautilus)$
windowrulev2 = opacity 0.8 0.6, class:^(pcmanfm-qt)$
windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
windowrulev2 = opacity 0.9 0.8, class:^(deluge)$
windowrulev2 = opacity 0.8 0.7, class:^(Alacritty|kitty|kitty-dropterm)$ # Terminals
windowrulev2 = opacity 0.9 0.7, class:^(VSCodium|codium-url-handler|code-oss)$
windowrulev2 = opacity 0.9 0.8, class:^(nwg-look|qt5ct|qt6ct|[Yy]ad)$
windowrulev2 = opacity 0.9 0.8, title:(Kvantum Manager)
windowrulev2 = opacity 0.9 0.7, class:^(com.obsproject.Studio)$
windowrulev2 = opacity 0.9 0.7, class:^([Aa]udacious)$
windowrulev2 = opacity 0.9 0.8, class:^(VSCode|code-url-handler)$
windowrulev2 = opacity 0.9 0.8, class:^(jetbrains-.+)$ # JetBrains IDEs
windowrulev2 = opacity 0.94 0.86, class:^([Dd]iscord|[Vv]esktop)$
windowrulev2 = opacity 0.9 0.8, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
windowrulev2 = opacity 0.9 0.8, class:^(im.riot.Riot)$ # Element matrix client
windowrulev2 = opacity 0.94 0.86, class:^(gnome-disks|evince|wihotspot(-gui)?|org.gnome.baobab)$
windowrulev2 = opacity 0.9 0.8, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
windowrulev2 = opacity 0.8 0.7, class:^(app.drey.Warp)$ # Warp file transfer
windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
windowrulev2 = opacity 0.82 0.75, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$
windowrulev2 = opacity 0.9 0.8, class:^(xdg-desktop-portal-gtk)$ # gnome-keyring gui
windowrulev2 = opacity 0.9 0.7, class:^([Ww]hatsapp-for-linux)$
windowrulev2 = opacity 0.9 0.7, class:^([Ff]erdium)$
windowrulev2 = opacity 0.95 0.75, title:^(Picture-in-Picture)$
# windowrule v2 - size
windowrulev2 = size 70% 70%, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$
windowrulev2 = size 70% 70%, class:^(xdg-desktop-portal-gtk)$
windowrulev2 = size 60% 70%, title:(Kvantum Manager)
windowrulev2 = size 60% 70%, class:^(qt6ct)$
windowrulev2 = size 70% 70%, class:^(evince|wihotspot(-gui)?)$
windowrulev2 = size 60% 70%, class:^(file-roller|org.gnome.FileRoller)$
windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux)$
windowrulev2 = size 60% 70%, class:^([Ff]erdium)$
windowrulev2 = size 60% 70%, title:^(ROG Control)$
#windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$
#windowrulev2 = size 25% 25%, title:^(Firefox)$
windowrulev2 = size 60% 70%, title:^(hyprgui)$
windowrulev2 = size 240px 450px, class:^(libresplit)$
windowrulev2 = size 500px 1000px, class:^(io.ente.auth)$
# windowrule v2 - pinning
windowrulev2 = pin,title:^(Picture-in-Picture)$
windowrulev2 = pin,class: ^(io.ente.auth)$
#windowrulev2 = pin,title:^(Firefox)$
# windowrule v2 - extras
windowrulev2 = keepaspectratio, title:^(Picture-in-Picture)$
#windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrulev2 = opacity 0.8 0.8, pinned:1
# LAYER RULES
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = blur,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View file

@ -0,0 +1,14 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# You can set workspace rules to achieve workspace-specific behaviors.
# For instance, you can define a workspace where all windows are drawn without borders or gaps.
# https://wiki.hyprland.org/Configuring/Workspace-Rules/
# Assigning workspace to a certain monitor. Below are just examples
workspace = 1, name:Browser, monitor:DP-2, default:true
workspace = 2, name:Terminal
workspace = 3, name:Discord,monitor:DP-2, default:true
workspace = 4, name:Gaming
workspace = 5, name:Music

View file

@ -0,0 +1,97 @@
$mainMod = SUPER
# Default
$scriptsDir = $HOME/.config/hypr/scripts
$configs = $HOME/.config/hypr/configs
# User
$UserConfigs = $HOME/.config/hypr/UserConfigs
$UserScripts = $HOME/.config/hypr/UserScripts
bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh
# Special Keys / Hot Keys
bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up
bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down
bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute
bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute
bindl = , xf86Sleep, exec, systemctl suspend # sleep button
bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode
# media controls using keyboards
bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt
bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv
bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop
# Move focus with mainMod + LHKJ
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Move windows
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
# Container layouts
bind = $mainMod, E, togglesplit
bind = $mainMod, W, togglegroup
bind = $mainMod SHIFT, Space, togglefloating
bind = $mainMod SHIFT, Space, pin
# Workspaces
bind = $mainMod, code:10, workspace, 1
bind = $mainMod, code:11, workspace, 2
bind = $mainMod, code:12, workspace, 3
bind = $mainMod, code:13, workspace, 4
bind = $mainMod, code:14, workspace, 5
bind = $mainMod, code:15, workspace, 6
bind = $mainMod, code:16, workspace, 7
bind = $mainMod, code:17, workspace, 8
bind = $mainMod, code:18, workspace, 9
bind = $mainMod, code:19, workspace, 10
# Move active window to a workspace silently mainMod + CTRL [0-9]
bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1
bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2
bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3
bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4
bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5
bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6
bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7
bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8
bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9
bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10
bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ or ]
bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, bracketright, workspace, e+1
bind = $mainMod, bracketleft, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Stuff
bind = $mainMod SHIFT, C, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi
bind = $mainMod SHIFT, E, exec, $scriptsDir/Wlogout.sh # power menu
bind = $mainMod, N, exec, $scriptsDir/LockScreen.sh # screen lock
bind = , Print, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)
bind = $mainMod, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager
bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel
bind = $mainMod SHIFT, A, movecurrentworkspacetomonitor, l
bind = $mainMod SHIFT, D, movecurrentworkspacetomonitor, r

View file

@ -0,0 +1,5 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Place your new scripts here.
# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this folder, and edit.
# Make sure to update as well the keybinds in ~/.config/hypr/UserConfigs folder if any script is linked to it

View file

@ -0,0 +1,59 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Rofi menu for Quick Edit/View of Settings (SUPER E)
# Define preferred text editor and terminal
edit=${EDITOR:-nano}
tty=kitty
# Paths to configuration directories
configs="$HOME/.config/hypr/configs"
UserConfigs="$HOME/.config/hypr/UserConfigs"
# Function to display the menu options
menu() {
cat <<EOF
1. View / Edit Env-variables
2. View / Edit Window-Rules
3. View / Edit Startup_Apps
4. View / Edit User-Keybinds
5. View / Edit Monitors
6. View / Edit Laptop-Keybinds
7. View / Edit User-Settings
8. View / Edit Decorations & Animations
9. View / Edit Workspace-Rules
10. View / Edit Default-Settings
11. View / Edit Default-Keybinds
EOF
}
# Main function to handle menu selection
main() {
choice=$(menu | rofi -i -dmenu -config ~/.config/rofi/config-compact.rasi | cut -d. -f1)
# Map choices to corresponding files
case $choice in
1) file="$UserConfigs/ENVariables.conf" ;;
2) file="$UserConfigs/WindowRules.conf" ;;
3) file="$UserConfigs/Startup_Apps.conf" ;;
4) file="$UserConfigs/UserKeybinds.conf" ;;
5) file="$UserConfigs/Monitors.conf" ;;
6) file="$UserConfigs/Laptops.conf" ;;
7) file="$UserConfigs/UserSettings.conf" ;;
8) file="$UserConfigs/UserDecorAnimations.conf" ;;
9) file="$UserConfigs/WorkspaceRules.conf" ;;
10) file="$configs/Settings.conf" ;;
11) file="$configs/Keybinds.conf" ;;
*) return ;; # Do nothing for invalid choices
esac
# Open the selected file in the terminal with the text editor
$tty -e $edit "$file"
}
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
main

View file

@ -0,0 +1,14 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# for rainbow borders animation
function random_hex() {
random_hex=("0xff$(openssl rand -hex 3)")
echo $random_hex
}
# rainbow colors only for active window
hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg
# rainbow colors for inactive window (uncomment to take effect)
#hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg

View file

@ -0,0 +1,120 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For Rofi Beats to play online Music or Locally save media files
# Directory local music folder
mDIR="$HOME/Music/"
# Directory for icons
iDIR="$HOME/.config/swaync/icons"
# Online Stations. Edit as required
declare -A online_music=(
["Radio - Lofi Girl 🎧🎶"]="https://play.streamafrica.net/lofiradio"
["Radio - Chillhop 🎧🎶"]="http://stream.zeno.fm/fyn8eh3h5f8uv"
["FM - Easy Rock 96.3 📻🎶"]="https://radio-stations-philippines.com/easy-rock"
["FM - Easy Rock - Baguio 91.9 📻🎶"]="https://radio-stations-philippines.com/easy-rock-baguio"
["FM - Love Radio 90.7 📻🎶"]="https://radio-stations-philippines.com/love"
["FM - WRock - CEBU 96.3 📻🎶"]="https://onlineradio.ph/126-96-3-wrock.html"
["FM - Fresh Philippines 📻🎶"]="https://onlineradio.ph/553-fresh-fm.html"
["YT - Wish 107.5 YT Pinoy HipHop 📻🎶"]="https://youtube.com/playlist?list=PLkrzfEDjeYJnmgMYwCKid4XIFqUKBVWEs&si=vahW_noh4UDJ5d37"
["YT - Top Youtube Music 2023 📹🎶"]="https://youtube.com/playlist?list=PLDIoUOhQQPlXr63I_vwF9GD8sAKh77dWU&si=y7qNeEVFNgA-XxKy"
["YT - Wish 107.5 YT Wishclusives 📹🎶"]="https://youtube.com/playlist?list=PLkrzfEDjeYJn5B22H9HOWP3Kxxs-DkPSM&si=d_Ld2OKhGvpH48WO"
["YT - Relaxing Music 📹🎶"]="https://youtube.com/playlist?list=PLMIbmfP_9vb8BCxRoraJpoo4q1yMFg4CE"
["YT - Youtube Remix 📹🎶"]="https://youtube.com/playlist?list=PLeqTkIUlrZXlSNn3tcXAa-zbo95j0iN-0"
["YT - Korean Drama OST 📹🎶"]="https://youtube.com/playlist?list=PLUge_o9AIFp4HuA-A3e3ZqENh63LuRRlQ"
["YT - AfroBeatz 2024 📹🎶"]="https://www.youtube.com/watch?v=7uB-Eh9XVZQ"
["YT - Relaxing Piano Jazz Music 🎹🎶"]="https://youtu.be/85UEqRat6E4?si=jXQL1Yp2VP_G6NSn"
)
# Populate local_music array with files from music directory and subdirectories
populate_local_music() {
local_music=()
filenames=()
while IFS= read -r file; do
local_music+=("$file")
filenames+=("$(basename "$file")")
done < <(find "$mDIR" -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.wav" -o -iname "*.ogg" -o -iname "*.mp4" \))
}
# Function for displaying notifications
notification() {
notify-send -u normal -i "$iDIR/music.png" " Now Playing:" " $@"
}
# Main function for playing local music
play_local_music() {
populate_local_music
# Prompt the user to select a song
choice=$(printf "%s\n" "${filenames[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "Local Music")
if [ -z "$choice" ]; then
exit 1
fi
# Find the corresponding file path based on user's choice and set that to play the song then continue on the list
for (( i=0; i<"${#filenames[@]}"; ++i )); do
if [ "${filenames[$i]}" = "$choice" ]; then
notification "$choice"
# Play the selected local music file using mpv
mpv --playlist-start="$i" --loop-playlist --vid=no "${local_music[@]}"
break
fi
done
}
# Main function for shuffling local music
shuffle_local_music() {
notification "Shuffle Play local music"
# Play music in $mDIR on shuffle
mpv --shuffle --loop-playlist --vid=no "$mDIR"
}
# Main function for playing online music
play_online_music() {
choice=$(printf "%s\n" "${!online_music[@]}" | rofi -i -dmenu -config ~/.config/rofi/config-rofi-Beats.rasi -p "Online Music")
if [ -z "$choice" ]; then
exit 1
fi
link="${online_music[$choice]}"
notification "$choice"
# Play the selected online music using mpv
mpv --shuffle --vid=no "$link"
}
# Check if an online music process is running and send a notification, otherwise run the main function
pkill mpv && notify-send -u low -i "$iDIR/music.png" "Music stopped" || {
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
# Prompt the user to choose between local and online music
user_choice=$(printf "Play from Online Stations\nPlay from Music Folder\nShuffle Play from Music Folder" | rofi -dmenu -config ~/.config/rofi/config-rofi-Beats-menu.rasi -p "Select music source")
case "$user_choice" in
"Play from Music Folder")
play_local_music
;;
"Play from Online Stations")
play_online_music
;;
"Shuffle Play from Music Folder")
shuffle_local_music
;;
*)
echo "Invalid choice"
;;
esac
}

View file

@ -0,0 +1,30 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */
# /* Calculator (using qalculate) and rofi */
# /* Submitted by: https://github.com/JosephArmas */
rofi_config="$HOME/.config/rofi/config-calc.rasi"
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
fi
# main function
while true; do
result=$(
rofi -i -dmenu \
-config "$rofi_config" \
-mesg "$result = $calc_result"
)
if [ $? -ne 0 ]; then
exit
fi
if [ -n "$result" ]; then
calc_result=$(qalc -t "$result")
echo "$calc_result" | wl-copy
fi
done

View file

@ -0,0 +1,39 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes
# This script will randomly go through the files of a directory, setting it
# up as the wallpaper at regular intervals
#
# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable
wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then
echo "Usage:
$0 <dir containing images>"
exit 1
fi
# Edit below to control the images transition
export SWWW_TRANSITION_FPS=60
export SWWW_TRANSITION_TYPE=simple
# This controls (in seconds) when to switch to the next image
INTERVAL=1800
while true; do
find "$1" \
| while read -r img; do
echo "$((RANDOM % 1000)):$img"
done \
| sort -n | cut -d':' -f2- \
| while read -r img; do
swww img -o $focused_monitor "$img"
$wallust_refresh
sleep $INTERVAL
done
done

View file

@ -0,0 +1,100 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Wallpaper Effects using ImageMagick (SUPER SHIFT W)
# Variables
current_wallpaper="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
# Directory for swaync
iDIR="$HOME/.config/swaync/images"
# swww transition config
FPS=60
TYPE="wipe"
DURATION=2
BEZIER=".43,1.19,1,.4"
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION"
# Define ImageMagick effects
declare -A effects=(
["No Effects"]="no-effects"
["Black & White"]="magick $current_wallpaper -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output"
["Blurred"]="magick $current_wallpaper -blur 0x10 $wallpaper_output"
["Charcoal"]="magick $current_wallpaper -charcoal 0x5 $wallpaper_output"
["Edge Detect"]="magick $current_wallpaper -edge 1 $wallpaper_output"
["Emboss"]="magick $current_wallpaper -emboss 0x5 $wallpaper_output"
["Negate"]="magick $current_wallpaper -negate $wallpaper_output"
["Oil Paint"]="magick $current_wallpaper -paint 4 $wallpaper_output"
["Posterize"]="magick $current_wallpaper -posterize 4 $wallpaper_output"
["Polaroid"]="magick $current_wallpaper -polaroid 0 $wallpaper_output"
["Sepia Tone"]="magick $current_wallpaper -sepia-tone 65% $wallpaper_output"
["Solarize"]="magick $current_wallpaper -solarize 80% $wallpaper_output"
["Sharpen"]="magick $current_wallpaper -sharpen 0x5 $wallpaper_output"
["Vignette"]="magick $current_wallpaper -vignette 0x5 $wallpaper_output"
["Zoomed"]="magick $current_wallpaper -gravity Center -extent 1:1 $wallpaper_output"
)
# Function to apply no effects
no-effects() {
swww img -o "$focused_monitor" "$current_wallpaper" $SWWW_PARAMS &&
# Wait for swww command to complete
wait $!
# Run other commands after swww
wallust run "$current_wallpaper" -s &&
wait $!
# Refresh rofi, waybar, wallust palettes
sleep 2
"$SCRIPTSDIR/Refresh.sh"
notify-send -u low -i "$iDIR/bell.png" "No wallpaper" "effects applied"
# copying wallpaper for rofi menu
cp "$current_wallpaper" "$wallpaper_output"
}
# Function to run rofi menu
main() {
# Populate rofi menu options
options=("No Effects")
for effect in "${!effects[@]}"; do
[[ "$effect" != "No Effects" ]] && options+=("$effect")
done
# Show rofi menu and handle user choice
choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -p "Choose effect" -i -config ~/.config/rofi/config-wallpaper-effect.rasi)
# Process user choice
if [[ -n "$choice" ]]; then
if [[ "$choice" == "No Effects" ]]; then
no-effects
elif [[ "${effects[$choice]+exists}" ]]; then
# Apply selected effect
notify-send -u normal -i "$iDIR/bell.png" "Applying:" "$choice effects"
eval "${effects[$choice]}"
# Wait for effects to be applied
sleep 1
# Execute swww command after image conversion
swww img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS &
# Wait for swww command to complete
sleep 2
# Wait for other commands to finish
wallust run "$wallpaper_output" -s &
# Wait for other commands to finish
sleep 0.5
# Refresh rofi, waybar, wallust palettes
"${SCRIPTSDIR}/Refresh.sh"
notify-send -u low -i "$iDIR/bell.png" "$choice" "effects applied"
else
echo "Effect '$choice' not recognized."
fi
fi
}
# Check if rofi is already running and kill it
if pidof rofi > /dev/null; then
pkill rofi
fi
main

View file

@ -0,0 +1,30 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for Random Wallpaper ( CTRL ALT W)
wallDIR="$HOME/Pictures/wallpapers"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
PICS=($(find ${wallDIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.gif" \)))
RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]}
# Transition config
FPS=30
TYPE="random"
DURATION=1
BEZIER=".43,1.19,1,.4"
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER"
swww query || swww-daemon --format xrgb && swww img -o $focused_monitor ${RANDOMPICS} $SWWW_PARAMS
wait $!
"$SCRIPTSDIR/WallustSwww.sh" &&
wait $!
sleep 2
"$SCRIPTSDIR/Refresh.sh"

View file

@ -0,0 +1,110 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */
# This script for selecting wallpapers (SUPER W)
# WALLPAPERS PATH
wallDIR="$HOME/Pictures/wallpapers"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
# variables
focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
# swww transition config
FPS=60
TYPE="any"
DURATION=2
BEZIER=".43,1.19,1,.4"
SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION"
# Check if swaybg is running
if pidof swaybg > /dev/null; then
pkill swaybg
fi
# Retrieve image files using null delimiter to handle spaces in filenames
mapfile -d '' PICS < <(find "${wallDIR}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) -print0)
RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}"
RANDOM_PIC_NAME=". random"
# Rofi command
rofi_command="rofi -i -show -dmenu -config ~/.config/rofi/config-wallpaper.rasi"
# Sorting Wallpapers
menu() {
# Sort the PICS array
IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}"))
# Place ". random" at the beginning with the random picture as an icon
printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC"
for pic_path in "${sorted_options[@]}"; do
pic_name=$(basename "$pic_path")
# Displaying .gif to indicate animated images
if [[ ! "$pic_name" =~ \.gif$ ]]; then
printf "%s\x00icon\x1f%s\n" "$(echo "$pic_name" | cut -d. -f1)" "$pic_path"
else
printf "%s\n" "$pic_name"
fi
done
}
# initiate swww if not running
swww query || swww-daemon --format xrgb
# Choice of wallpapers
main() {
choice=$(menu | $rofi_command)
# Trim any potential whitespace or hidden characters
choice=$(echo "$choice" | xargs)
RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs)
# No choice case
if [[ -z "$choice" ]]; then
echo "No choice selected. Exiting."
exit 0
fi
# Random choice case
if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then
swww img -o "$focused_monitor" "$RANDOM_PIC" $SWWW_PARAMS;
sleep 2
"$SCRIPTSDIR/WallustSwww.sh"
sleep 0.5
"$SCRIPTSDIR/Refresh.sh"
exit 0
fi
# Find the index of the selected file
pic_index=-1
for i in "${!PICS[@]}"; do
filename=$(basename "${PICS[$i]}")
if [[ "$filename" == "$choice"* ]]; then
pic_index=$i
break
fi
done
if [[ $pic_index -ne -1 ]]; then
swww img -o "$focused_monitor" "${PICS[$pic_index]}" $SWWW_PARAMS
else
echo "Image not found."
exit 1
fi
}
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
main
wait $!
"$SCRIPTSDIR/WallustSwww.sh" &&
wait $!
sleep 2
"$SCRIPTSDIR/Refresh.sh"

View file

@ -0,0 +1,138 @@
#!/usr/bin/env python3
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# weather using python
import subprocess
from pyquery import PyQuery # install using `pip install pyquery`
import json
import os
# original code https://gist.github.com/Surendrajat/ff3876fd2166dd86fb71180f4e9342d7
# weather icons
weather_icons = {
"sunnyDay": "󰖙",
"clearNight": "󰖔",
"cloudyFoggyDay": "",
"cloudyFoggyNight": "",
"rainyDay": "",
"rainyNight": "",
"snowyIcyDay": "",
"snowyIcyNight": "",
"severe": "",
"default": "",
}
# get location_id
# to get your own location_id, go to https://weather.com & search your location.
# once you choose your location, you can see the location_id in the URL(64 chars long hex string)
# like this: https://weather.com/en-PH/weather/today/l/bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200
location_id = "bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200" # TODO
# NOTE to change to deg F, change the URL to your preffered location after weather.com
# Default is English-Philippines with Busan, South Korea as location_id
# get html page
url = "https://weather.com/en-PH/weather/today/l/" + location_id
html_data = PyQuery(url=url)
# current temperature
temp = html_data("span[data-testid='TemperatureValue']").eq(0).text()
# print(temp)
# current status phrase
status = html_data("div[data-testid='wxPhrase']").text()
status = f"{status[:16]}.." if len(status) > 17 else status
# print(status)
# status code
status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2]
# print(status_code)
# status icon
icon = (
weather_icons[status_code]
if status_code in weather_icons
else weather_icons["default"]
)
# print(icon)
# temperature feels like
temp_feel = html_data(
"div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']"
).text()
temp_feel_text = f"Feels like {temp_feel}c"
# print(temp_feel_text)
# min-max temperature
temp_min = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(1)
.text()
)
temp_max = (
html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']")
.eq(0)
.text()
)
temp_min_max = f"{temp_min}\t\t{temp_max}"
# print(temp_min_max)
# wind speed
wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1]
wind_text = f"{wind_speed}"
# print(wind_text)
# humidity
humidity = html_data("span[data-testid='PercentageValue']").text()
humidity_text = f"{humidity}"
# print(humidity_text)
# visibility
visbility = html_data("span[data-testid='VisibilityValue']").text()
visbility_text = f"{visbility}"
# print(visbility_text)
# air quality index
air_quality_index = html_data("text[data-testid='DonutChartValue']").text()
# print(air_quality_index)
# hourly rain prediction
prediction = html_data("section[aria-label='Hourly Forecast']")(
"div[data-testid='SegmentPrecipPercentage'] > span"
).text()
prediction = prediction.replace("Chance of Rain", "")
prediction = f"\n\n (hourly) {prediction}" if len(prediction) > 0 else prediction
# print(prediction)
# tooltip text
tooltip_text = str.format(
"\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}",
f'<span size="xx-large">{temp}</span>',
f"<big> {icon}</big>",
f"<b>{status}</b>",
f"<small>{temp_feel_text}</small>",
f"<b>{temp_min_max}</b>",
f"{wind_text}\t{humidity_text}",
f"{visbility_text}\tAQI {air_quality_index}",
f"<i> {prediction}</i>",
)
# print waybar module data
out_data = {
"text": f"{icon} {temp}",
"alt": status,
"tooltip": tooltip_text,
"class": status_code,
}
print(json.dumps(out_data))
simple_weather =f"{icon} {status}\n" + \
f"{temp} ({temp_feel_text})\n" + \
f"{wind_text} \n" + \
f"{humidity_text} \n" + \
f"{visbility_text} AQI{air_quality_index}\n"
try:
with open(os.path.expanduser("~/.cache/.weather_cache"), "w") as file:
file.write(simple_weather)
except:
pass

View file

@ -0,0 +1,87 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# weather info from wttr. https://github.com/chubin/wttr.in
# Remember to add city
city=
cachedir=~/.cache/rbn
cachefile=${0##*/}-$1
if [ ! -d $cachedir ]; then
mkdir -p $cachedir
fi
if [ ! -f $cachedir/$cachefile ]; then
touch $cachedir/$cachefile
fi
# Save current IFS
SAVEIFS=$IFS
# Change IFS to new line.
IFS=$'\n'
cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile")))
if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then
data=($(curl -s https://en.wttr.in/"$city"$1\?0qnT 2>&1))
echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile
echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
fi
weather=($(cat $cachedir/$cachefile))
# Restore IFSClear
IFS=$SAVEIFS
temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g')
#echo ${weather[1]##*,}
# https://fontawesome.com/icons?s=solid&c=weather
case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in
"clear" | "sunny")
condition=""
;;
"partly cloudy")
condition="󰖕"
;;
"cloudy")
condition=""
;;
"overcast")
condition=""
;;
"fog" | "freezing fog")
condition=""
;;
"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "mist" | "rain")
condition="󰼳"
;;
"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower")
condition=""
;;
"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers")
condition="󰼴"
;;
"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers")
condition="󰙿"
;;
"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers")
condition=""
;;
"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder")
condition=""
;;
*)
condition=""
echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
;;
esac
#echo $temp $condition
echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
cached_weather="$temperature \n$condition ${weather[1]}"
echo -e $cached_weather > ~/.cache/.weather_cache

View file

@ -0,0 +1,63 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for Oh my ZSH theme ( CTRL SHIFT O)
# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
# after choosing theme, TTY need to be closed and re-open
themes_dir="$HOME/.oh-my-zsh/themes"
file_extension=".zsh-theme"
# Directory for swaync
iDIR="$HOME/.config/swaync/images"
themes_array=($(find "$themes_dir" -type f -name "*$file_extension" -exec basename {} \; | sed -e "s/$file_extension//"))
# Add "Random" option to the beginning of the array
themes_array=("Random" "${themes_array[@]}")
rofi_command="rofi -i -dmenu -config ~/.config/rofi/config-zsh-theme.rasi"
menu() {
for theme in "${themes_array[@]}"; do
echo "$theme"
done
}
main() {
choice=$(menu | ${rofi_command})
# if nothing selected, script won't change anything
if [ -z "$choice" ]; then
notify-send -u low -i "$iDIR/bell.png" "No theme selected." "No changes made!"
exit 0
fi
zsh_path="$HOME/.zshrc"
var_name="ZSH_THEME"
if [[ "$choice" == "Random" ]]; then
# Pick a random theme from the original themes_array (excluding "Random")
random_theme=${themes_array[$((RANDOM % (${#themes_array[@]} - 1) + 1))]}
theme_to_set="$random_theme"
notify-send -i "$iDIR/bell.png" "Random theme:" "selected: $random_theme"
else
# Set theme to the selected choice
theme_to_set="$choice"
notify-send -i "$iDIR/bell.png" "Theme selected:" "$choice"
fi
if [ -f "$zsh_path" ]; then
sed -i "s/^$var_name=.*/$var_name=\"$theme_to_set\"/" "$zsh_path"
notify-send -i "$iDIR/bell.png" "OMZ theme" "applied. restart your terminal"
else
notify-send "Error:" "~.zshrc file not found!"
fi
}
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
main

View file

@ -0,0 +1,8 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# as per Hyprland wiki: hyprland-qt-support provides a QML style for hypr* qt6 apps
roundess = 2
border_width = 0
reduce_motion = false

View file

@ -0,0 +1,170 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Default Keybinds
# visit https://wiki.hyprland.org/Configuring/Binds/ for more info
$mainMod = SUPER
# Default
$scriptsDir = $HOME/.config/hypr/scripts
$configs = $HOME/.config/hypr/configs
# User
$UserConfigs = $HOME/.config/hypr/UserConfigs
$UserScripts = $HOME/.config/hypr/UserScripts
bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0
bind = $mainMod, Q, killactive,
bind = $mainMod, F, fullscreen
bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh
bind = $mainMod SHIFT, F, togglefloating,
bind = $mainMod ALT, F, exec, hyprctl dispatch workspaceopt allfloat
bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh # screen lock
bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh # power menu
# FEATURES / EXTRAS
bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # help file
bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi
bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji menu
bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search using rofi
bind = $mainMod SHIFT, B, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings
bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/OFF
bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout
bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager
bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel
# FEATURES / EXTRAS (UserScripts)
bind = $mainMod, E, exec, $UserScripts/QuickEdit.sh # Quick Edit Hyprland Settings
bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply
bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagick
bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers
bind = $mainMod ALT, O, exec, hyprctl setprop active opaque toggle # disable opacity on active window
bind = $mainMod SHIFT, K, exec, $scriptsDir/KeyBinds.sh # search keybinds via rofi
# Waybar / Bar related
bind = $mainMod, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar
bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu
bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu
# Dwindle Layout
bind = $mainMod SHIFT, I, togglesplit # only works on dwindle layout
bind = $mainMod, P, pseudo, # dwindle
# Master Layout
bind = $mainMod CTRL, D, layoutmsg, removemaster
bind = $mainMod, I, layoutmsg, addmaster
bind = $mainMod, J, layoutmsg, cyclenext
bind = $mainMod, K, layoutmsg, cycleprev
bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster
# Works on either layout (Master or Dwindle)
bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3
# group
bind = $mainMod, G, togglegroup # toggle group
bind = $mainMod CTRL, tab, changegroupactive # change focus to another window
# Cycle windows if floating bring to top
bind = ALT, tab, cyclenext
bind = ALT, tab, bringactivetotop
# Special Keys / Hot Keys
bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up
bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down
bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute
bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute
bindl = , xf86Sleep, exec, systemctl suspend # sleep button
bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode
# media controls using keyboards
bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause
bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt
bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv
bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop
# Screenshot keybindings NOTE: You may need to press Fn key as well
bind = $mainMod, Print, exec, $scriptsDir/ScreenShot.sh --now # screenshot
bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
bind = $mainMod CTRL, Print, exec, $scriptsDir/ScreenShot.sh --in5 # screenshot (5 secs delay)
bind = $mainMod CTRL SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay)
bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)
# screenshot with swappy (another screenshot tool)
bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy #screenshot (swappy)
# Resize windows
binde = $mainMod SHIFT, left, resizeactive,-50 0
binde = $mainMod SHIFT, right, resizeactive,50 0
binde = $mainMod SHIFT, up, resizeactive,0 -50
binde = $mainMod SHIFT, down, resizeactive,0 50
# Move windows
bind = $mainMod CTRL, left, movewindow, l
bind = $mainMod CTRL, right, movewindow, r
bind = $mainMod CTRL, up, movewindow, u
bind = $mainMod CTRL, down, movewindow, d
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Workspaces related
bind = $mainMod ALT, tab, workspace, m+1
bind = $mainMod SHIFT, tab, workspace, m-1
# Special workspace
bind = $mainMod SHIFT, U, movetoworkspace, special
bind = $mainMod, U, togglespecialworkspace,
# The following mappings use the key codes to better support various keyboard layouts
# 1 is code:10, 2 is code 11, etc
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, code:10, workspace, 1
bind = $mainMod, code:11, workspace, 2
bind = $mainMod, code:12, workspace, 3
bind = $mainMod, code:13, workspace, 4
bind = $mainMod, code:14, workspace, 5
bind = $mainMod, code:15, workspace, 6
bind = $mainMod, code:16, workspace, 7
bind = $mainMod, code:17, workspace, 8
bind = $mainMod, code:18, workspace, 9
bind = $mainMod, code:19, workspace, 10
# Move active window and follow to workspace mainMod + SHIFT [0-9]
bind = $mainMod SHIFT, code:10, movetoworkspace, 1
bind = $mainMod SHIFT, code:11, movetoworkspace, 2
bind = $mainMod SHIFT, code:12, movetoworkspace, 3
bind = $mainMod SHIFT, code:13, movetoworkspace, 4
bind = $mainMod SHIFT, code:14, movetoworkspace, 5
bind = $mainMod SHIFT, code:15, movetoworkspace, 6
bind = $mainMod SHIFT, code:16, movetoworkspace, 7
bind = $mainMod SHIFT, code:17, movetoworkspace, 8
bind = $mainMod SHIFT, code:18, movetoworkspace, 9
bind = $mainMod SHIFT, code:19, movetoworkspace, 10
bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ or ]
bind = $mainMod SHIFT, bracketright, movetoworkspace, +1
# Move active window to a workspace silently mainMod + CTRL [0-9]
bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1
bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2
bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3
bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4
bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5
bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6
bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7
bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8
bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9
bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10
bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ or ]
bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, period, workspace, e+1
bind = $mainMod, comma, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

View file

@ -0,0 +1,8 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Default Settings. avoid changing this file as during update, this will be replaced
# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables
# Initial boot script enable to apply initial wallpapers, theming, new settings etc.
exec-once = $HOME/.config/hypr/initial-boot.sh

View file

@ -0,0 +1,49 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Hypridle
# Original config submitted by https://github.com/SherLock707
general {
lock_cmd = pidof hyprlock || hyprlock # runs hyprlock if it is not already running (this is always run when "loginctl lock-session" is called)
# unlock_cmd = killall hyprlock # kills hyprlock when unlocking (this is always run when "loginctl unlock-session" is called)
before_sleep_cmd = loginctl lock-session # ensures that the session is locked before going to sleep
after_sleep_cmd = hyprctl dispatch dpms on # turn of screen after sleep (not strictly necessary, but just in case)
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
}
# turn off screen faster if session is already locked
# (disabled by default)
# listener {
# timeout = 30 # 30 seconds
# on-timeout = pidof hyprlock && hyprctl dispatch dpms off # turns off the screen if hyprlock is active
# on-resume = pidof hyprlock && hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired.
# }
# Warn
listener {
timeout = 540 # 9 min
on-timeout = notify-send " You are idle!" # command to run when timeout has passed
on-resume = notify-send " Welcome back!" # command to run when activity is detected after timeout has fired.
}
# Screenlock
listener {
timeout = 600 # 10 min
on-timeout = loginctl lock-session # command to run when timeout has passed
#on-resume = notify-send " Desktop Unlocked!" # command to run when activity is detected after timeout has fired.
}
# Turn off screen
# (disabled by default)
# listener {
# timeout = 630 # 10.5 min
# on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed
# on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired.
# }
# Suspend # disabled by default
# listener {
# timeout = 1200 # 20 min
# on-timeout = systemctl suspend # command to run when timeout has passed
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
# }

View file

@ -0,0 +1,22 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Sourcing external config files
# Default Configs
$configs = $HOME/.config/hypr/configs
source=$configs/Settings.conf
# User Configs
$UserConfigs = $HOME/.config/hypr/UserConfigs
source= $UserConfigs/i3Keybinds.conf
source= $UserConfigs/Startup_Apps.conf
source= $UserConfigs/ENVariables.conf
source= $UserConfigs/Monitors.conf
source= $UserConfigs/Laptops.conf
source= $UserConfigs/LaptopDisplay.conf
source= $UserConfigs/WindowRules.conf
source= $UserConfigs/UserDecorAnimations.conf
source= $UserConfigs/UserKeybinds.conf
source= $UserConfigs/UserSettings.conf
source= $UserConfigs/WorkspaceRules.conf

View file

@ -0,0 +1,161 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Hyprlock config for => 2k monitor resolutions
# Original config submitted by https://github.com/SherLock707
# Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
$Scripts = $HOME/.config/hypr/scripts
general {
grace = 1
}
background {
monitor =
# NOTE: use only 1 path
#path = screenshot # screenshot of your desktop
path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # NOTE only png supported for now
#path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper
#color = $color7
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_size = 2
blur_passes = 1 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
}
# Date
label {
monitor =
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B')" </b>"
color = $color12
font_size = 24
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -100
halign = center
valign = top
}
# Hour-Time
label {
monitor =
text = cmd[update:1000] echo "$(date +"%H")"
# text = cmd[update:1000] echo "$(date +"%I")" #AM/PM
#color = rgba(255, 185, 0, .8)
color = $color13
font_size = 200
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -150
halign = center
valign = top
}
# Minute-Time
label {
monitor =
text = cmd[update:1000] echo "$(date +"%M")"
#color = rgba(15, 10, 222, .8)
color = $color12
font_size = 200
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -475
halign = center
valign = top
}
# Seconds-Time
label {
monitor =
text = cmd[update:1000] echo "$(date +"%S")"
# text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM
color = $color11
font_size = 40
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -460
halign = center
valign = top
}
# Put a picture of choice here. Default is the current wallpaper
image {
monitor =
path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current
size = 160
rounding = -1
border_size = 0
border_color = $color11
rotate = 0
reload_time = -1
position = 0, 400
halign = center
valign = bottom
}
# USER
label {
monitor =
text =  $USER
color = $color13
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
font_size = 24
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, 150
halign = center
valign = bottom
}
# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(255, 255, 255, 0.1)
font_color = $color11
fade_on_empty = false
font_family = JetBrainsMono Nerd Font ExtraBold
placeholder_text = <i><span foreground="##ffffff99">🔒 Type Password</span></i>
hide_input = false
position = 0, 250
halign = center
valign = bottom
}
# uptime
label {
monitor =
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
color = $color13
font_size = 18
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, 0
halign = right
valign = bottom
}
# weather edit the scripts for locations
# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py
# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
label {
monitor =
text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache
color = $color13
font_size = 18
font_family = JetBrainsMono Nerd Font ExtraBold
position = 50, 0
halign = left
valign = bottom
}

140
.config/hypr/hyprlock.conf Executable file
View file

@ -0,0 +1,140 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# Hyprlock config for < 1080p monitor resolutions
# Original config submitted by https://github.com/SherLock707
# Sourcing colors generated by wallust
source = $HOME/.config/hypr/wallust/wallust-hyprland.conf
$Scripts = $HOME/.config/hypr/scripts
general {
grace = 1
}
background {
monitor =
# NOTE: use only 1 path
blur_size = 2
blur_passes = 1 # 0 disables blurring
noise = 0.0117
contrast = 1.3000 # Vibrant!!!
brightness = 0.8000
vibrancy = 0.2100
vibrancy_darkness = 0.0
color: $color8
}
# Date
label {
monitor =
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B')" </b>"
color = $color12
font_size = 24
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -50
halign = center
valign = top
}
# Hour-Time
label {
monitor =
# text = cmd[update:1000] echo "$(date +"%H")"
text = cmd[update:1000] echo "$(date +"%I")" #AM/PM
#color = rgba(255, 185, 0, .8)
color = $color13
font_size = 160
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -100
halign = center
valign = top
}
# Minute-Time
label {
monitor =
text = cmd[update:1000] echo "$(date +"%M")"
#color = rgba(15, 10, 222, .8)
color = $color12
font_size = 160
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -320
halign = center
valign = top
}
# Seconds-Time
label {
monitor =
# text = cmd[update:1000] echo "$(date +"%S")"
text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM
color = $color11
font_size = 35
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -325
halign = center
valign = top
}
# USER
label {
monitor =
text =  $USER
color = $color13
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
font_size = 24
font_family = JetBrainsMono Nerd Font ExtraBold
position = 0, -180
halign = center
valign = center
}
# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(255, 255, 255, 0.33)
font_color = $color11
fade_on_empty = false
font_family = JetBrainsMono Nerd Font ExtraBold
placeholder_text = <i><span foreground="##ffffff99">🔒 Type Password</span></i>
hide_input = false
position = 0, -260
halign = center
valign = center
}
# uptime
label {
monitor =
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
color = $color13
font_size = 18
font_family = JetBrainsMono Nerd Font ExtraBold
position = -20, 20
halign = right
valign = bottom
}
# weather edit the scripts for locations
# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py
# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock
label {
monitor =
text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache
color = $color13
font_size = 18
font_family = JetBrainsMono Nerd Font ExtraBold
position = 20, 20
halign = left
valign = bottom
}

58
.config/hypr/initial-boot.sh Executable file
View file

@ -0,0 +1,58 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ #
# A bash script designed to run only once dotfiles installed
# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf
# NOT necessary to do since this script is only designed to run only once as long as the marker exists
# marker file is located at ~/.config/hypr/.initial_startup_done
# However, I do highly suggest not to touch it since again, as long as the marker exist, script wont run
# Variables
scriptsDir=$HOME/.config/hypr/scripts
wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified
waybar_style="$HOME/.config/waybar/style/[Dark] Latte-Wallust combined.css"
kvantum_theme="catppuccin-mocha-blue"
color_scheme="prefer-dark"
gtk_theme="Flat-Remix-GTK-Blue-Dark"
icon_theme="Flat-Remix-Blue-Dark"
cursor_theme="Bibata-Modern-Ice"
swww="swww img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
# Check if a marker file exists.
if [ ! -f ~/.config/hypr/.initial_startup_done ]; then
sleep 1
# Initialize wallust and wallpaper
if [ -f "$wallpaper" ]; then
wallust run -s $wallpaper > /dev/null
swww query || swww-daemon && $swww $wallpaper $effect
"$scriptsDir/WallustSwww.sh" > /dev/null 2>&1 &
fi
# initiate GTK dark mode and apply icon and cursor theme
gsettings set org.gnome.desktop.interface color-scheme $color_scheme > /dev/null 2>&1 &
gsettings set org.gnome.desktop.interface gtk-theme $gtk_theme > /dev/null 2>&1 &
gsettings set org.gnome.desktop.interface icon-theme $icon_theme > /dev/null 2>&1 &
gsettings set org.gnome.desktop.interface cursor-theme $cursor_theme > /dev/null 2>&1 &
gsettings set org.gnome.desktop.interface cursor-size 24 > /dev/null 2>&1 &
# initiate kvantum theme
kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 &
# initiate the kb_layout (for some reason) waybar cant launch it
"$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 &
# Initial waybar style
if [ -f "$waybar_style" ]; then
ln -sf "$waybar_style" "$HOME/.config/waybar/style.css"
# Refreshing waybar, swaync, rofi etc.
"$scriptsDir/Refresh.sh" > /dev/null 2>&1 &
fi
# Create a marker file to indicate that the script has been executed.
touch ~/.config/hypr/.initial_startup_done
exit
fi

View file

@ -0,0 +1,12 @@
[pyprland]
plugins = [
"scratchpads",
"magnify",
]
[scratchpads.term]
animation = "fromTop"
command = "kitty --class kitty-dropterm"
class = "kitty-dropterm"
size = "75% 60%"

View file

@ -0,0 +1,16 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Airplane Mode. Turning on or off all wifi using rfkill.
notif="$HOME/.config/swaync/images/bell.png"
# Check if any wireless device is blocked
wifi_blocked=$(rfkill list wifi | grep -o "Soft blocked: yes")
if [ -n "$wifi_blocked" ]; then
rfkill unblock wifi
notify-send -u low -i "$notif" " Airplane" " mode: OFF"
else
rfkill block wifi
notify-send -u low -i "$notif" " Airplane" " mode: ON"
fi

View file

@ -0,0 +1,74 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for Monitor backlights (if supported) using brightnessctl
iDIR="$HOME/.config/swaync/icons"
notification_timeout=1000
step=10 # INCREASE/DECREASE BY THIS VALUE
# Get brightness
get_backlight() {
brightnessctl -m | cut -d, -f4 | sed 's/%//'
}
# Get icons
get_icon() {
current=$(get_backlight)
if [ "$current" -le "20" ]; then
icon="$iDIR/brightness-20.png"
elif [ "$current" -le "40" ]; then
icon="$iDIR/brightness-40.png"
elif [ "$current" -le "60" ]; then
icon="$iDIR/brightness-60.png"
elif [ "$current" -le "80" ]; then
icon="$iDIR/brightness-80.png"
else
icon="$iDIR/brightness-100.png"
fi
}
# Notify
notify_user() {
notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i $icon "Screen" "Brightness:$current%"
}
# Change brightness
change_backlight() {
local current_brightness
current_brightness=$(get_backlight)
# Calculate new brightness
if [[ "$1" == "+${step}%" ]]; then
new_brightness=$((current_brightness + step))
elif [[ "$1" == "${step}%-" ]]; then
new_brightness=$((current_brightness - step))
fi
# Ensure new brightness is within valid range
if (( new_brightness < 5 )); then
new_brightness=5
elif (( new_brightness > 100 )); then
new_brightness=100
fi
brightnessctl set "${new_brightness}%"
get_icon
current=$new_brightness
notify_user
}
# Execute accordingly
case "$1" in
"--get")
get_backlight
;;
"--inc")
change_backlight "+${step}%"
;;
"--dec")
change_backlight "${step}%-"
;;
*)
get_backlight
;;
esac

View file

@ -0,0 +1,51 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for keyboard backlights (if supported) using brightnessctl
iDIR="$HOME/.config/swaync/icons"
# Get keyboard brightness
get_kbd_backlight() {
echo $(brightnessctl -d '*::kbd_backlight' -m | cut -d, -f4)
}
# Get icons
get_icon() {
current=$(get_kbd_backlight | sed 's/%//')
if [ "$current" -le "20" ]; then
icon="$iDIR/brightness-20.png"
elif [ "$current" -le "40" ]; then
icon="$iDIR/brightness-40.png"
elif [ "$current" -le "60" ]; then
icon="$iDIR/brightness-60.png"
elif [ "$current" -le "80" ]; then
icon="$iDIR/brightness-80.png"
else
icon="$iDIR/brightness-100.png"
fi
}
# Notify
notify_user() {
notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i "$icon" "Keyboard" "Brightness:$current%"
}
# Change brightness
change_kbd_backlight() {
brightnessctl -d *::kbd_backlight set "$1" && get_icon && notify_user
}
# Execute accordingly
case "$1" in
"--get")
get_kbd_backlight
;;
"--inc")
change_kbd_backlight "+30%"
;;
"--dec")
change_kbd_backlight "30%-"
;;
*)
get_kbd_backlight
;;
esac

View file

@ -0,0 +1,17 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for changing blurs on the fly
notif="$HOME/.config/swaync/images/bell.png"
STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int")
if [ "${STATE}" == "2" ]; then
hyprctl keyword decoration:blur:size 2
hyprctl keyword decoration:blur:passes 1
notify-send -e -u low -i "$notif" " Less Blur"
else
hyprctl keyword decoration:blur:size 5
hyprctl keyword decoration:blur:passes 2
notify-send -e -u low -i "$notif" " Normal Blur"
fi

View file

@ -0,0 +1,30 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# for changing Hyprland Layouts (Master or Dwindle) on the fly
notif="$HOME/.config/swaync/images/bell.png"
LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g')
case $LAYOUT in
"master")
hyprctl keyword general:layout dwindle
hyprctl keyword unbind SUPER,J
hyprctl keyword unbind SUPER,K
hyprctl keyword bind SUPER,J,cyclenext
hyprctl keyword bind SUPER,K,cyclenext,prev
hyprctl keyword bind SUPER,O,togglesplit
notify-send -e -u low -i "$notif" " Dwindle Layout"
;;
"dwindle")
hyprctl keyword general:layout master
hyprctl keyword unbind SUPER,J
hyprctl keyword unbind SUPER,K
hyprctl keyword unbind SUPER,O
hyprctl keyword bind SUPER,J,layoutmsg,cyclenext
hyprctl keyword bind SUPER,K,layoutmsg,cycleprev
notify-send -e -u low -i "$notif" " Master Layout"
;;
*) ;;
esac

View file

@ -0,0 +1,45 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Clipboard Manager. This script uses cliphist, rofi, and wl-copy.
# Actions:
# CTRL Del to delete an entry
# ALT Del to wipe clipboard contents
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
while true; do
result=$(
rofi -i -dmenu \
-kb-custom-1 "Control-Delete" \
-kb-custom-2 "Alt-Delete" \
-config ~/.config/rofi/config-clipboard.rasi < <(cliphist list)
)
case "$?" in
1)
exit
;;
0)
case "$result" in
"")
continue
;;
*)
cliphist decode <<<"$result" | wl-copy
exit
;;
esac
;;
10)
cliphist delete <<<"$result"
;;
11)
cliphist wipe
;;
esac
done

252
.config/hypr/scripts/DarkLight.sh Executable file
View file

@ -0,0 +1,252 @@
#!/bin/bash
## /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For Dark and Light switching
# Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate folders
# Paths
wallpaper_base_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers"
dark_wallpapers="$wallpaper_base_path/Dark"
light_wallpapers="$wallpaper_base_path/Light"
hypr_config_path="$HOME/.config/hypr"
swaync_style="$HOME/.config/swaync/style.css"
ags_style="$HOME/.config/ags/user/style.css"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
notif="$HOME/.config/swaync/images/bell.png"
wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi"
kitty_conf="$HOME/.config/kitty/kitty.conf"
wallust_config="$HOME/.config/wallust/wallust.toml"
pallete_dark="dark16"
pallete_light="light16"
# kill swaybg if running
pkill swaybg
# Initialize swww if needed
swww query || swww-daemon --format xrgb
# Set swww options
swww="swww img"
effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2"
# Determine current theme mode
if [ "$(cat $HOME/.cache/.theme_mode)" = "Light" ]; then
next_mode="Dark"
# Logic for Dark mode
wallpaper_path="$dark_wallpapers"
else
next_mode="Light"
# Logic for Light mode
wallpaper_path="$light_wallpapers"
fi
# Function to update theme mode for the next cycle
update_theme_mode() {
echo "$next_mode" > ~/.cache/.theme_mode
}
# Function to notify user
notify_user() {
notify-send -u low -i "$notif" " Switching to" " $1 mode"
}
# Use sed to replace the palette setting in the wallust config file
if [ "$next_mode" = "Dark" ]; then
sed -i 's/^palette = .*/palette = "'"$pallete_dark"'"/' "$wallust_config"
else
sed -i 's/^palette = .*/palette = "'"$pallete_light"'"/' "$wallust_config"
fi
# Function to set Waybar style
set_waybar_style() {
theme="$1"
waybar_styles="$HOME/.config/waybar/style"
waybar_style_link="$HOME/.config/waybar/style.css"
style_prefix="\\[${theme}\\].*\\.css$"
style_file=$(find "$waybar_styles" -maxdepth 1 -type f -regex ".*$style_prefix" | shuf -n 1)
if [ -n "$style_file" ]; then
ln -sf "$style_file" "$waybar_style_link"
else
echo "Style file not found for $theme theme."
fi
}
# Call the function after determining the mode
set_waybar_style "$next_mode"
notify_user "$next_mode"
# swaync color change
if [ "$next_mode" = "Dark" ]; then
sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.8);/' "${swaync_style}"
sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${swaync_style}"
else
sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.9);/' "${swaync_style}"
sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${swaync_style}"
fi
# ags color change
if [ "$next_mode" = "Dark" ]; then
sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.4);/' "${ags_style}"
sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.7);/' "${ags_style}"
sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${ags_style}"
else
sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.4);/' "${ags_style}"
sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.7);/' "${ags_style}"
sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${ags_style}"
fi
# kitty background color change
if [ "$next_mode" = "Dark" ]; then
sed -i '/^foreground /s/^foreground .*/foreground #dddddd/' "${kitty_conf}"
sed -i '/^background /s/^background .*/background #000000/' "${kitty_conf}"
sed -i '/^cursor /s/^cursor .*/cursor #dddddd/' "${kitty_conf}"
else
sed -i '/^foreground /s/^foreground .*/foreground #000000/' "${kitty_conf}"
sed -i '/^background /s/^background .*/background #dddddd/' "${kitty_conf}"
sed -i '/^cursor /s/^cursor .*/cursor #000000/' "${kitty_conf}"
fi
for pid in $(pidof kitty); do
kill -SIGUSR1 "$pid"
done
# Set Dynamic Wallpaper for Dark or Light Mode
if [ "$next_mode" = "Dark" ]; then
next_wallpaper="$(find "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
else
next_wallpaper="$(find "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
fi
# Update wallpaper using swww command
$swww "${next_wallpaper}" $effect
# Set Kvantum Manager theme & QT5/QT6 settings
if [ "$next_mode" = "Dark" ]; then
kvantum_theme="catppuccin-mocha-blue"
#qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf"
#qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf"
else
kvantum_theme="catppuccin-latte-blue"
#qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf"
#qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf"
fi
sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "$HOME/.config/qt5ct/qt5ct.conf"
sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "$HOME/.config/qt6ct/qt6ct.conf"
kvantummanager --set "$kvantum_theme"
# set the rofi color for background
if [ "$next_mode" = "Dark" ]; then
sed -i '24s/.*/background: rgba(0,0,0,0.7);/' $wallust_rofi
else
sed -i '24s/.*/background: rgba(255,255,255,0.9);/' $wallust_rofi
fi
# GTK themes and icons switching
set_custom_gtk_theme() {
mode=$1
gtk_themes_directory="$HOME/.themes"
icon_directory="$HOME/.icons"
color_setting="org.gnome.desktop.interface color-scheme"
theme_setting="org.gnome.desktop.interface gtk-theme"
icon_setting="org.gnome.desktop.interface icon-theme"
if [ "$mode" == "Light" ]; then
search_keywords="*Light*"
gsettings set $color_setting 'prefer-light'
elif [ "$mode" == "Dark" ]; then
search_keywords="*Dark*"
gsettings set $color_setting 'prefer-dark'
else
echo "Invalid mode provided."
return 1
fi
themes=()
icons=()
while IFS= read -r -d '' theme_search; do
themes+=("$(basename "$theme_search")")
done < <(find "$gtk_themes_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0)
while IFS= read -r -d '' icon_search; do
icons+=("$(basename "$icon_search")")
done < <(find "$icon_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0)
if [ ${#themes[@]} -gt 0 ]; then
if [ "$mode" == "Dark" ]; then
selected_theme=${themes[RANDOM % ${#themes[@]}]}
else
selected_theme=${themes[$RANDOM % ${#themes[@]}]}
fi
echo "Selected GTK theme for $mode mode: $selected_theme"
gsettings set $theme_setting "$selected_theme"
# Flatpak GTK apps (themes)
if command -v flatpak &> /dev/null; then
flatpak --user override --filesystem=$HOME/.themes
sleep 0.5
flatpak --user override --env=GTK_THEME="$selected_theme"
fi
else
echo "No $mode GTK theme found"
fi
if [ ${#icons[@]} -gt 0 ]; then
if [ "$mode" == "Dark" ]; then
selected_icon=${icons[RANDOM % ${#icons[@]}]}
else
selected_icon=${icons[$RANDOM % ${#icons[@]}]}
fi
echo "Selected icon theme for $mode mode: $selected_icon"
gsettings set $icon_setting "$selected_icon"
## QT5ct icon_theme
sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt5ct/qt5ct.conf"
sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt6ct/qt6ct.conf"
# Flatpak GTK apps (icons)
if command -v flatpak &> /dev/null; then
flatpak --user override --filesystem=$HOME/.icons
sleep 0.5
flatpak --user override --env=ICON_THEME="$selected_icon"
fi
else
echo "No $mode icon theme found"
fi
}
# Call the function to set GTK theme and icon theme based on mode
set_custom_gtk_theme "$next_mode"
# Update theme mode for the next cycle
update_theme_mode
${SCRIPTSDIR}/WallustSwww.sh &&
# some process to kill
_ps=(waybar rofi swaync ags swaybg)
for _prs in "${_ps[@]}"; do
if pidof "${_prs}" >/dev/null; then
pkill "${_prs}"
fi
done
sleep 2
${SCRIPTSDIR}/Refresh.sh
sleep 0.3
# Display notifications for theme and icon changes
notify-send -u normal -i "$notif" " Themes switched to:" " $next_mode Mode"
exit 0

View file

@ -0,0 +1,33 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Game Mode. Turning off all animations
notif="$HOME/.config/swaync/images/bell.png"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
if [ "$HYPRGAMEMODE" = 1 ] ; then
hyprctl --batch "\
keyword animations:enabled 0;\
keyword decoration:drop_shadow 0;\
keyword decoration:blur:passes 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
hyprctl keyword "windowrule opacity 1 override 1 override 1 override, ^(.*)$"
swww kill
notify-send -e -u low -i "$notif" " Gamemode:" " enabled"
exit
else
swww-daemon --format xrgb && swww img "$HOME/.config/rofi/.current_wallpaper" &
sleep 0.1
${SCRIPTSDIR}/WallustSwww.sh
sleep 0.5
${SCRIPTSDIR}/Refresh.sh
notify-send -e -u normal -i "$notif" " Gamemode:" " disabled"
exit
fi
hyprctl reload

View file

@ -0,0 +1,23 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# This is for custom version of waybar idle_inhibitor which activates / deactivates hypridle instead
PROCESS="hypridle"
if [[ "$1" == "status" ]]; then
sleep 1
if pgrep -x "$PROCESS" >/dev/null; then
echo '{"text": "RUNNING", "class": "active", "tooltip": "idle_inhibitor NOT ACTIVE\nLeft Click: Activate\nRight Click: Lock Screen"}'
else
echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "idle_inhibitor is ACTIVE\nLeft Click: Deactivate\nRight Click: Lock Screen"}'
fi
elif [[ "$1" == "toggle" ]]; then
if pgrep -x "$PROCESS" >/dev/null; then
pkill "$PROCESS"
else
"$PROCESS"
fi
else
echo "Usage: $0 {status|toggle}"
exit 1
fi

View file

@ -0,0 +1,34 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Searchable enabled keybinds using rofi
# Kill yad to not interfere with this binds
pkill yad || true
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
# Define the config files
KEYBINDS_CONF="$HOME/.config/hypr/configs/Keybinds.conf"
USER_KEYBINDS_CONF="$HOME/.config/hypr/UserConfigs/UserKeybinds.conf"
LAPTOP_CONF="$HOME/.config/hypr/UserConfigs/Laptop.conf"
# Combine the contents of the keybinds files and filter for keybinds
KEYBINDS=$(cat "$KEYBINDS_CONF" "$USER_KEYBINDS_CONF" | grep -E '^(bind|bindl|binde|bindm)')
# Check if Laptop.conf exists and add its keybinds if present
if [[ -f "$LAPTOP_CONF" ]]; then
LAPTOP_BINDS=$(grep -E '^(bind|bindl|binde|bindm)' "$LAPTOP_CONF")
KEYBINDS+=$'\n'"$LAPTOP_BINDS"
fi
# check for any keybinds to display
if [[ -z "$KEYBINDS" ]]; then
echo "No keybinds found."
exit 1
fi
# Use rofi to display the keybinds
echo "$KEYBINDS" | rofi -dmenu -i -p "Keybinds" -config ~/.config/rofi/config-keybinds.rasi

View file

@ -0,0 +1,89 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Keyhints. Idea got from Garuda Hyprland
# GDK BACKEND. Change to either wayland or x11 if having issues
BACKEND=wayland
# Check if rofi is running and kill it if it is
if pgrep -x "rofi" > /dev/null; then
pkill rofi
fi
# Detect monitor resolution and scale
x_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .width')
y_mon=$(hyprctl -j monitors | jq '.[] | select(.focused==true) | .height')
hypr_scale=$(hyprctl -j monitors | jq '.[] | select (.focused == true) | .scale' | sed 's/\.//')
# Calculate width and height based on percentages and monitor resolution
width=$((x_mon * hypr_scale / 100))
height=$((y_mon * hypr_scale / 100))
# Set maximum width and height
max_width=1200
max_height=1000
# Set percentage of screen size for dynamic adjustment
percentage_width=70
percentage_height=70
# Calculate dynamic width and height
dynamic_width=$((width * percentage_width / 100))
dynamic_height=$((height * percentage_height / 100))
# Limit width and height to maximum values
dynamic_width=$(($dynamic_width > $max_width ? $max_width : $dynamic_width))
dynamic_height=$(($dynamic_height > $max_height ? $max_height : $dynamic_height))
# Launch yad with calculated width and height
GDK_BACKEND=$BACKEND yad --width=$dynamic_width --height=$dynamic_height \
--center \
--title="Keybindings" \
--no-buttons \
--list \
--column=Key: \
--column=Description: \
--column=Command: \
--timeout-indicator=bottom \
"ESC" "close this app" "" "=" "SUPER KEY (Windows Key)" "(SUPER KEY)" \
" enter" "Terminal" "(kitty)" \
" SHIFT enter" "DropDown Terminal" "(kitty-pyprland)" \
" SHIFT K" "Searchable Keybinds" "(Keybinds)" \
" A" "Desktop Overview" "(AGS Overview)" \
" D" "Application Launcher" "(rofi-wayland)" \
" T" "Open File Manager" "(Thunar)" \
" S" "Google Search using rofi" "(rofi)" \
" Q" "close active window" "(not kill)" \
" Shift Q " "kills an active window" "(kill)" \
" Z" "Desktop Zoom" "(pyprland)" \
" Alt V" "Clipboard Manager" "(cliphist)" \
" W" "Choose wallpaper" "(Wallpaper Menu)" \
" Shift W" "Choose wallpaper effects" "(imagemagick + swww)" \
"CTRL ALT W" "Random wallpaper" "(via swww)" \
" B" "Hide/UnHide Waybar" "waybar" \
" CTRL B" "Choose waybar styles" "(waybar styles)" \
" ALT B" "Choose waybar layout" "(waybar layout)" \
" ALT R" "Reload Waybar swaync Rofi" "CHECK NOTIFICATION FIRST!!!" \
" SHIFT N" "Launch Notification Panel" "swaync Notification Center" \
" Print" "screenshot" "(grim)" \
" Shift Print" "screenshot region" "(grim + slurp)" \
" Shift S" "screenshot region" "(swappy)" \
" CTRL Print" "screenshot timer 5 secs " "(grim)" \
" CTRL SHIFT Print" "screenshot timer 10 secs " "(grim)" \
"ALT Print" "Screenshot active window" "active window only" \
"CTRL ALT P" "power-menu" "(wlogout)" \
"CTRL ALT L" "screen lock" "(hyprlock)" \
"CTRL ALT Del" "Hyprland Exit" "(SAVE YOUR WORK!!!)" \
" F" "Fullscreen" "Toggles to full screen" \
" CTL F" "Fake Fullscreen" "Toggles to fake full screen" \
" ALT L" "Toggle Dwindle | Master Layout" "Hyprland Layout" \
" Shift F" "Toggle float" "single window" \
" ALT F" "Toggle all windows to float" "all windows" \
" Shift B" "Toggle Blur" "normal or less blur" \
" SHIFT G" "Gamemode! All animations OFF or ON" "toggle" \
" ALT E" "Rofi Emoticons" "Emoticon" \
" ALT V" "Clipboard Manager" "cliphist" \
" H" "Launch this app" "" \
" E" "View or EDIT Keybinds, Settings, Monitor" "" \
"" "" "" \
"More tips:" "https://github.com/JaKooLit/Hyprland-Dots/wiki" ""\

View file

@ -0,0 +1,11 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Copied from Discord post. Thanks to @Zorg
# Get id of an active window
active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2)
# Close active window
kill $active_pid

View file

@ -0,0 +1,7 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For Hyprlock
pidof hyprlock || hyprlock -q

View file

@ -0,0 +1,61 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Playerctl
music_icon="$HOME/.config/swaync/icons/music.png"
# Play the next track
play_next() {
playerctl next
show_music_notification
}
# Play the previous track
play_previous() {
playerctl previous
show_music_notification
}
# Toggle play/pause
toggle_play_pause() {
playerctl play-pause
show_music_notification
}
# Stop playback
stop_playback() {
playerctl stop
notify-send -e -u low -i $music_icon " Playback:" " Stopped"
}
# Display notification with song information
show_music_notification() {
status=$(playerctl status)
if [[ "$status" == "Playing" ]]; then
song_title=$(playerctl metadata title)
song_artist=$(playerctl metadata artist)
notify-send -e -u low -i $music_icon "Now Playing:" "$song_title by $song_artist"
elif [[ "$status" == "Paused" ]]; then
notify-send -e -u low -i $music_icon " Playback:" " Paused"
fi
}
# Get media control action from command line argument
case "$1" in
"--nxt")
play_next
;;
"--prv")
play_previous
;;
"--pause")
toggle_play_pause
;;
"--stop")
stop_playback
;;
*)
echo "Usage: $0 [--nxt|--prv|--pause|--stop]"
exit 1
;;
esac

View file

@ -0,0 +1,21 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For NixOS starting of polkit-gnome. Dec 2023, the settings stated in NixOS wiki does not work so have to manual start it
# Find all polkit-gnome executables in the Nix store
polkit_gnome_paths=$(find /nix/store -name 'polkit-gnome-authentication-agent-1' -type f 2>/dev/null)
for polkit_gnome_path in $polkit_gnome_paths; do
# Extract the directory containing the executable
polkit_gnome_dir=$(dirname "$polkit_gnome_path")
# Check if the executable is valid and exists
if [ -x "$polkit_gnome_dir/polkit-gnome-authentication-agent-1" ]; then
# Start the Polkit-GNOME Authentication Agent
"$polkit_gnome_dir/polkit-gnome-authentication-agent-1" &
exit 0
fi
done
# If no valid executable is found, report an error
echo "No valid Polkit-GNOME Authentication Agent executable found."

33
.config/hypr/scripts/Polkit.sh Executable file
View file

@ -0,0 +1,33 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# This is for polkits, it will start from top and will stop if the top is executed
# Polkit possible paths files to check
polkit=(
"/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
"/usr/libexec/hyprpolkitagent"
"/usr/lib/hyprpolkitagent"
"/usr/lib/polkit-kde-authentication-agent-1"
"/usr/lib/polkit-gnome-authentication-agent-1"
"/usr/libexec/polkit-gnome-authentication-agent-1"
"/usr/libexec/polkit-mate-authentication-agent-1"
"/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1"
"/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1"
)
executed=false # Flag to track if a file has been executed
# Loop through the list of files
for file in "${polkit[@]}"; do
if [ -e "$file" ]; then
echo "File $file found, executing command..."
exec "$file"
executed=true
break
fi
done
# If none of the files were found, you can add a fallback command here
if [ "$executed" == false ]; then
echo "None of the specified files were found. Install a Polkit"
fi

View file

@ -0,0 +1,16 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For manually starting xdg-desktop-portal-hyprland
sleep 1
killall xdg-desktop-portal-hyprland
killall xdg-desktop-portal-wlr
killall xdg-desktop-portal-gnome
killall xdg-desktop-portal
sleep 1
/usr/lib/xdg-desktop-portal-hyprland &
/usr/libexec/xdg-desktop-portal-hyprland &
sleep 2
/usr/lib/xdg-desktop-portal &
/usr/libexec/xdg-desktop-portal &

57
.config/hypr/scripts/Refresh.sh Executable file
View file

@ -0,0 +1,57 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Scripts for refreshing ags, waybar, rofi, swaync, wallust
SCRIPTSDIR=$HOME/.config/hypr/scripts
UserScripts=$HOME/.config/hypr/UserScripts
# Define file_exists function
file_exists() {
if [ -e "$1" ]; then
return 0 # File exists
else
return 1 # File does not exist
fi
}
# Kill already running processes
_ps=(waybar rofi swaync ags)
for _prs in "${_ps[@]}"; do
if pidof "${_prs}" >/dev/null; then
pkill "${_prs}"
fi
done
killall -SIGUSR2 waybar # added since wallust sometimes not applying
# quit ags
ags -q
# relaunch ags
ags &
# Kill waybar & swaync (yet again) # added since wallust sometimes not applying
_ps2=(waybar swaync)
for _prs2 in "${_ps2[@]}"; do
if pidof "${_prs2}" >/dev/null; then
killall "${_prs2}"
fi
done
# relaunch swaync
sleep 0.5
swaync > /dev/null 2>&1 &
#Restart waybar
sleep 1
waybar &
# Relaunching rainbow borders if the script exists
sleep 1
if file_exists "${UserScripts}/RainbowBorders.sh"; then
${UserScripts}/RainbowBorders.sh &
fi
exit 0

View file

@ -0,0 +1,41 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Modified version of Refresh.sh but waybar wont refresh
# Used by automatic wallpaper change
# Modified inorder to refresh rofi background, Wallust, SwayNC only
SCRIPTSDIR=$HOME/.config/hypr/scripts
UserScripts=$HOME/.config/hypr/UserScripts
# Define file_exists function
file_exists() {
if [ -e "$1" ]; then
return 0 # File exists
else
return 1 # File does not exist
fi
}
# Kill already running processes
_ps=(rofi)
for _prs in "${_ps[@]}"; do
if pidof "${_prs}" >/dev/null; then
pkill "${_prs}"
fi
done
# quit ags
ags -q
# Wallust refresh
${SCRIPTSDIR}/WallustSwww.sh &
# Relaunching rainbow borders if the script exists
sleep 1
if file_exists "${UserScripts}/RainbowBorders.sh"; then
${UserScripts}/RainbowBorders.sh &
fi
exit 0

4955
.config/hypr/scripts/RofiEmoji.sh Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,17 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Modified Script for Google Search
# Original Submitted by https://github.com/LeventKaanOguz
# Opens rofi in dmenu mod and waits for input. Then pushes the input to the query of the URL.
rofi_config="$HOME/.config/rofi/config-search.rasi"
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
#exit 0
fi
# Open rofi with a dmenu and pass the selected item to xdg-open for Google search
echo "" | rofi -dmenu -config "$rofi_config" -p "Search:" | xargs -I{} xdg-open "https://www.google.com/search?q={}"

View file

@ -0,0 +1,156 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Screenshots scripts
iDIR="$HOME/.config/swaync/icons"
sDIR="$HOME/.config/hypr/scripts"
time=$(date "+%d-%b_%H-%M-%S")
dir="$(xdg-user-dir)/Pictures/Screenshots"
file="Screenshot_${time}_${RANDOM}.png"
active_window_class=$(hyprctl -j activewindow | jq -r '(.class)')
active_window_file="Screenshot_${time}_${active_window_class}.png"
active_window_path="${dir}/${active_window_file}"
notify_cmd_base="notify-send -t 10000 -A action1=Open -A action2=Delete -h string:x-canonical-private-synchronous:shot-notify"
#notify_swappy="notify-send -h string:x-canonical-private-synchronous:shot-notify -u low -i ${iDIR}/picture.png"
notify_cmd_shot="${notify_cmd_base} -i ${iDIR}/picture.png "
notify_cmd_shot_win="${notify_cmd_base} -i ${iDIR}/picture.png "
# notify and view screenshot
notify_view() {
if [[ "$1" == "active" ]]; then
if [[ -e "${active_window_path}" ]]; then
"${sDIR}/Sounds.sh" --screenshot
resp=$(timeout 5 ${notify_cmd_shot_win} " Screenshot of:" " ${active_window_class} Saved.")
case "$resp" in
action1)
xdg-open "${active_window_path}" &
;;
action2)
rm "${active_window_path}" &
;;
esac
else
${notify_cmd_shot} " Screenshot of:" " ${active_window_class} NOT Saved."
"${sDIR}/Sounds.sh" --error
fi
elif [[ "$1" == "swappy" ]]; then
"${sDIR}/Sounds.sh" --screenshot
resp=$(${notify_cmd_shot} " Screenshot:" " Captured by Swappy")
case "$resp" in
action1)
swappy -f - <"$tmpfile"
;;
action2)
rm "$tmpfile"
;;
esac
else
local check_file="${dir}/${file}"
if [[ -e "$check_file" ]]; then
"${sDIR}/Sounds.sh" --screenshot
resp=$(timeout 5 ${notify_cmd_shot} " Screenshot" " Saved")
case "$resp" in
action1)
xdg-open "${check_file}" &
;;
action2)
rm "${check_file}" &
;;
esac
else
${notify_cmd_shot} " Screenshot" " NOT Saved"
"${sDIR}/Sounds.sh" --error
fi
fi
}
# countdown
countdown() {
for sec in $(seq $1 -1 1); do
notify-send -h string:x-canonical-private-synchronous:shot-notify -t 1000 -i "$iDIR"/timer.png " Taking shot" " in: $sec secs"
sleep 1
done
}
# take shots
shotnow() {
cd ${dir} && grim - | tee "$file" | wl-copy
sleep 2
notify_view
}
shot5() {
countdown '5'
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
sleep 1
notify_view
}
shot10() {
countdown '10'
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
notify_view
}
shotwin() {
w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1)
w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g)
cd ${dir} && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy
notify_view
}
shotarea() {
tmpfile=$(mktemp)
grim -g "$(slurp)" - >"$tmpfile"
if [[ -s "$tmpfile" ]]; then
wl-copy <"$tmpfile"
mv "$tmpfile" "$dir/$file"
fi
notify_view
}
shotactive() {
active_window_class=$(hyprctl -j activewindow | jq -r '(.class)')
active_window_file="Screenshot_${time}_${active_window_class}.png"
active_window_path="${dir}/${active_window_file}"
hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - "${active_window_path}"
sleep 1
notify_view "active"
}
shotswappy() {
tmpfile=$(mktemp)
grim -g "$(slurp)" - >"$tmpfile" && notify_view "swappy"
}
if [[ ! -d "$dir" ]]; then
mkdir -p "$dir"
fi
if [[ "$1" == "--now" ]]; then
shotnow
elif [[ "$1" == "--in5" ]]; then
shot5
elif [[ "$1" == "--in10" ]]; then
shot10
elif [[ "$1" == "--win" ]]; then
shotwin
elif [[ "$1" == "--area" ]]; then
shotarea
elif [[ "$1" == "--active" ]]; then
shotactive
elif [[ "$1" == "--swappy" ]]; then
shotswappy
else
echo -e "Available Options : --now --in5 --in10 --win --area --active --swappy"
fi
exit 0

77
.config/hypr/scripts/Sounds.sh Executable file
View file

@ -0,0 +1,77 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# This script is used to play system sounds.
# Script is used by Volume.Sh and ScreenShots.sh
theme="freedesktop" # Set the theme for the system sounds.
mute=false # Set to true to mute the system sounds.
# Mute individual sounds here.
muteScreenshots=false
muteVolume=false
# Exit if the system sounds are muted.
if [[ "$mute" = true ]]; then
exit 0
fi
# Choose the sound to play.
if [[ "$1" == "--screenshot" ]]; then
if [[ "$muteScreenshots" = true ]]; then
exit 0
fi
soundoption="screen-capture.*"
elif [[ "$1" == "--volume" ]]; then
if [[ "$muteVolume" = true ]]; then
exit 0
fi
soundoption="audio-volume-change.*"
elif [[ "$1" == "--error" ]]; then
if [[ "$muteScreenshots" = true ]]; then
exit 0
fi
soundoption="dialog-error.*"
else
echo -e "Available sounds: --screenshot, --volume, --error"
exit 0
fi
# Set the directory defaults for system sounds.
if [ -d "/run/current-system/sw/share/sounds" ]; then
systemDIR="/run/current-system/sw/share/sounds" # NixOS
else
systemDIR="/usr/share/sounds"
fi
userDIR="$HOME/.local/share/sounds"
defaultTheme="freedesktop"
# Prefer the user's theme, but use the system's if it doesn't exist.
sDIR="$systemDIR/$defaultTheme"
if [ -d "$userDIR/$theme" ]; then
sDIR="$userDIR/$theme"
elif [ -d "$systemDIR/$theme" ]; then
sDIR="$systemDIR/$theme"
fi
# Get the theme that it inherits.
iTheme=$(cat "$sDIR/index.theme" | grep -i "inherits" | cut -d "=" -f 2)
iDIR="$sDIR/../$iTheme"
# Find the sound file and play it.
sound_file=$(find $sDIR/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find $iDIR/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find $userDIR/$defaultTheme/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find $systemDIR/$defaultTheme/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
echo "Error: Sound file not found."
exit 1
fi
fi
fi
fi
# pipewire priority, fallback pulseaudio
pw-play "$sound_file" || pa-play "$sound_file"

View file

@ -0,0 +1,104 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# This is for changing kb_layouts. Set kb_layouts in $settings_file
layout_file="$HOME/.cache/kb_layout"
settings_file="$HOME/.config/hypr/UserConfigs/UserSettings.conf"
notif_icon="$HOME/.config/swaync/images/bell.png"
# Refined ignore list with patterns or specific device names
ignore_patterns=(
"--(avrcp)"
"Bluetooth Speaker"
"Other Device
Name"
)
# Create layout file with default layout if it does not exist
if [ ! -f "$layout_file" ]; then
echo "Creating layout file..."
default_layout=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2 | tr -d '[:space:]' | cut -d ',' -f 1 2>/dev/null)
default_layout=${default_layout:-"us"} # Default to 'us' layout
echo "$default_layout" > "$layout_file"
echo "Default layout set to $default_layout"
fi
current_layout=$(cat "$layout_file")
echo "Current layout: $current_layout"
# Read available layouts from settings file
if [ -f "$settings_file" ]; then
kb_layout_line=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2)
# Remove leading and trailing spaces around each layout
kb_layout_line=$(echo "$kb_layout_line" | tr -d '[:space:]')
IFS=',' read -r -a layout_mapping <<< "$kb_layout_line"
else
echo "Settings file not found!"
exit 1
fi
layout_count=${#layout_mapping[@]}
echo "Number of layouts: $layout_count"
# Find current layout index and calculate next layout
for ((i = 0; i < layout_count; i++)); do
if [ "$current_layout" == "${layout_mapping[i]}" ]; then
current_index=$i
break
fi
done
next_index=$(( (current_index + 1) % layout_count ))
new_layout="${layout_mapping[next_index]}"
echo "Next layout: $new_layout"
# Function to get keyboard names
get_keyboard_names() {
hyprctl devices -j | jq -r '.keyboards[].name'
}
# Function to check if a device matches any ignore pattern
is_ignored() {
local device_name=$1
for pattern in "${ignore_patterns[@]}"; do
if [[ "$device_name" == *"$pattern"* ]]; then
return 0 # Device matches ignore pattern
fi
done
return 1 # Device does not match any ignore pattern
}
# Function to change keyboard layout
change_layout() {
local error_found=false
while read -r name; do
if is_ignored "$name"; then
echo "Skipping ignored device: $name"
continue
fi
echo "Switching layout for $name to $new_layout..."
hyprctl switchxkblayout "$name" "$next_index"
if [ $? -ne 0 ]; then
echo "Error while switching layout for $name." >&2
error_found=true
fi
done <<< "$(get_keyboard_names)"
$error_found && return 1
return 0
}
# Execute layout change and notify
if ! change_layout; then
notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed"
echo "Layout change failed." >&2
exit 1
else
notify-send -u low -i "$notif_icon" " kb_layout: $new_layout"
echo "Layout change notification sent."
fi
echo "$new_layout" > "$layout_file"

View file

@ -0,0 +1,32 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# For disabling touchpad.
# Edit the Touchpad_Device on ~/.config/hypr/UserConfigs/Laptops.conf according to your system
# use hyprctl devices to get your system touchpad device name
# source https://github.com/hyprwm/Hyprland/discussions/4283?sort=new#discussioncomment-8648109
notif="$HOME/.config/swaync/images/bell.png"
export STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status"
enable_touchpad() {
printf "true" >"$STATUS_FILE"
notify-send -u low -i $notif " Enabling" " touchpad"
hyprctl keyword '$TOUCHPAD_ENABLED' "true" -r
}
disable_touchpad() {
printf "false" >"$STATUS_FILE"
notify-send -u low -i $notif " Disabling" " touchpad"
hyprctl keyword '$TOUCHPAD_ENABLED' "false" -r
}
if ! [ -f "$STATUS_FILE" ]; then
enable_touchpad
else
if [ $(cat "$STATUS_FILE") = "true" ]; then
disable_touchpad
elif [ $(cat "$STATUS_FILE") = "false" ]; then
enable_touchpad
fi
fi

View file

@ -0,0 +1,33 @@
#!/usr/bin/env bash
# Script parses /proc/uptime to get the system uptime
# and prints it in a human-readable format
# This is a workaround for system where `uptime` command is taken from coreutils
# where `uptime -p` is not supported
if [[ -r /proc/uptime ]]; then
s=$(< /proc/uptime)
s=${s/.*}
else
echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2
exit 1
fi
d="$((s / 60 / 60 / 24)) days"
h="$((s / 60 / 60 % 24)) hours"
m="$((s / 60 % 60)) minutes"
# Remove plural if < 2.
((${d/ *} == 1)) && d=${d/s}
((${h/ *} == 1)) && h=${h/s}
((${m/ *} == 1)) && m=${m/s}
# Hide empty fields.
((${d/ *} == 0)) && unset d
((${h/ *} == 0)) && unset h
((${m/ *} == 0)) && unset m
uptime=${d:+$d, }${h:+$h, }$m
uptime=${uptime%', '}
uptime=${uptime:-$s seconds}
echo "up $uptime"

143
.config/hypr/scripts/Volume.sh Executable file
View file

@ -0,0 +1,143 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Scripts for volume controls for audio and mic
iDIR="$HOME/.config/swaync/icons"
sDIR="$HOME/.config/hypr/scripts"
# Get Volume
get_volume() {
volume=$(pamixer --get-volume)
if [[ "$volume" -eq "0" ]]; then
echo "Muted"
else
echo "$volume %"
fi
}
# Get icons
get_icon() {
current=$(get_volume)
if [[ "$current" == "Muted" ]]; then
echo "$iDIR/volume-mute.png"
elif [[ "${current%\%}" -le 30 ]]; then
echo "$iDIR/volume-low.png"
elif [[ "${current%\%}" -le 60 ]]; then
echo "$iDIR/volume-mid.png"
else
echo "$iDIR/volume-high.png"
fi
}
# Notify
notify_user() {
if [[ "$(get_volume)" == "Muted" ]]; then
notify-send -e -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume:" " Muted"
else
notify-send -e -h int:value:"$(get_volume | sed 's/%//')" -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume Level:" " $(get_volume)" &&
"$sDIR/Sounds.sh" --volume
fi
}
# Increase Volume
inc_volume() {
if [ "$(pamixer --get-mute)" == "true" ]; then
toggle_mute
else
pamixer -i 5 --allow-boost --set-limit 150 && notify_user
fi
}
# Decrease Volume
dec_volume() {
if [ "$(pamixer --get-mute)" == "true" ]; then
toggle_mute
else
pamixer -d 5 && notify_user
fi
}
# Toggle Mute
toggle_mute() {
if [ "$(pamixer --get-mute)" == "false" ]; then
pamixer -m && notify-send -e -u low -i "$iDIR/volume-mute.png" " Mute"
elif [ "$(pamixer --get-mute)" == "true" ]; then
pamixer -u && notify-send -e -u low -i "$(get_icon)" " Volume:" " Switched ON"
fi
}
# Toggle Mic
toggle_mic() {
if [ "$(pamixer --default-source --get-mute)" == "false" ]; then
pamixer --default-source -m && notify-send -e -u low -i "$iDIR/microphone-mute.png" " Microphone:" " Switched OFF"
elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then
pamixer -u --default-source u && notify-send -e -u low -i "$iDIR/microphone.png" " Microphone:" " Switched ON"
fi
}
# Get Mic Icon
get_mic_icon() {
current=$(pamixer --default-source --get-volume)
if [[ "$current" -eq "0" ]]; then
echo "$iDIR/microphone-mute.png"
else
echo "$iDIR/microphone.png"
fi
}
# Get Microphone Volume
get_mic_volume() {
volume=$(pamixer --default-source --get-volume)
if [[ "$volume" -eq "0" ]]; then
echo "Muted"
else
echo "$volume %"
fi
}
# Notify for Microphone
notify_mic_user() {
volume=$(get_mic_volume)
icon=$(get_mic_icon)
notify-send -e -h int:value:"$volume" -h "string:x-canonical-private-synchronous:volume_notif" -u low -i "$icon" " Mic Level:" " $volume"
}
# Increase MIC Volume
inc_mic_volume() {
if [ "$(pamixer --default-source --get-mute)" == "true" ]; then
toggle_mic
else
pamixer --default-source -i 5 && notify_mic_user
fi
}
# Decrease MIC Volume
dec_mic_volume() {
if [ "$(pamixer --default-source --get-mute)" == "true" ]; then
toggle-mic
else
pamixer --default-source -d 5 && notify_mic_user
fi
}
# Execute accordingly
if [[ "$1" == "--get" ]]; then
get_volume
elif [[ "$1" == "--inc" ]]; then
inc_volume
elif [[ "$1" == "--dec" ]]; then
dec_volume
elif [[ "$1" == "--toggle" ]]; then
toggle_mute
elif [[ "$1" == "--toggle-mic" ]]; then
toggle_mic
elif [[ "$1" == "--get-icon" ]]; then
get_icon
elif [[ "$1" == "--get-mic-icon" ]]; then
get_mic_icon
elif [[ "$1" == "--mic-inc" ]]; then
inc_mic_volume
elif [[ "$1" == "--mic-dec" ]]; then
dec_mic_volume
else
get_volume
fi

View file

@ -0,0 +1,39 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Wallust Colors for current wallpaper
# Define the path to the swww cache directory
cache_dir="$HOME/.cache/swww/"
# Get a list of monitor outputs
monitor_outputs=($(ls "$cache_dir"))
# Initialize a flag to determine if the ln command was executed
ln_success=false
# Get current focused monitor
current_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}')
echo $current_monitor
# Construct the full path to the cache file
cache_file="$cache_dir$current_monitor"
echo $cache_file
# Check if the cache file exists for the current monitor output
if [ -f "$cache_file" ]; then
# Get the wallpaper path from the cache file
wallpaper_path=$(grep -v 'Lanczos3' "$cache_file" | head -n 1)
echo $wallpaper_path
# symlink the wallpaper to the location Rofi can access
if ln -sf "$wallpaper_path" "$HOME/.config/rofi/.current_wallpaper"; then
ln_success=true # Set the flag to true upon successful execution
fi
# copy the wallpaper for wallpaper effects
cp -r "$wallpaper_path" "$HOME/.config/hypr/wallpaper_effects/.wallpaper_current"
fi
# Check the flag before executing further commands
if [ "$ln_success" = true ]; then
# execute wallust
echo 'about to execute wallust'
# execute wallust skipping tty and terminal changes
wallust run "$wallpaper_path" -s &
fi

View file

@ -0,0 +1,38 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Not my own work. This was added through Github PR. Credit to original author
#----- Optimized bars animation without much CPU usage increase --------
bar="▁▂▃▄▅▆▇█"
dict="s/;//g"
# Calculate the length of the bar outside the loop
bar_length=${#bar}
# Create dictionary to replace char with bar
for ((i = 0; i < bar_length; i++)); do
dict+=";s/$i/${bar:$i:1}/g"
done
# Create cava config
config_file="/tmp/bar_cava_config"
cat >"$config_file" <<EOF
[general]
bars = 10
[input]
method = pulse
source = auto
[output]
method = raw
raw_target = /dev/stdout
data_format = ascii
ascii_max_range = 7
EOF
# Kill cava if it's already running
pkill -f "cava -p $config_file"
# Read stdout from cava and perform substitution in a single sed command
cava -p "$config_file" | sed -u "$dict"

View file

@ -0,0 +1,55 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for waybar layout or configs
IFS=$'\n\t'
# Define directories
waybar_layouts="$HOME/.config/waybar/configs"
waybar_config="$HOME/.config/waybar/config"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
# Function to display menu options
menu() {
options=()
while IFS= read -r file; do
options+=("$(basename "$file")")
done < <(find "$waybar_layouts" -maxdepth 1 -type f -exec basename {} \; | sort)
printf '%s\n' "${options[@]}"
}
# Apply selected configuration
apply_config() {
ln -sf "$waybar_layouts/$1" "$waybar_config"
#restart_waybar_if_needed
"${SCRIPTSDIR}/Refresh.sh" &
}
# Main function
main() {
choice=$(menu | rofi -i -dmenu -config "$rofi_config")
if [[ -z "$choice" ]]; then
echo "No option selected. Exiting."
exit 0
fi
case $choice in
"no panel")
pgrep -x "waybar" && pkill waybar || true
;;
*)
apply_config "$choice"
;;
esac
}
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
#exit 0
fi
main

View file

@ -0,0 +1,49 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for waybar styles
IFS=$'\n\t'
# Define directories
waybar_styles="$HOME/.config/waybar/style"
waybar_style="$HOME/.config/waybar/style.css"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
rofi_config="$HOME/.config/rofi/config-waybar-style.rasi"
# Function to display menu options
menu() {
options=()
while IFS= read -r file; do
if [ -f "$waybar_styles/$file" ]; then
options+=("$(basename "$file" .css)")
fi
done < <(find "$waybar_styles" -maxdepth 1 -type f -name '*.css' -exec basename {} \; | sort)
printf '%s\n' "${options[@]}"
}
# Apply selected style
apply_style() {
ln -sf "$waybar_styles/$1.css" "$waybar_style"
"${SCRIPTSDIR}/Refresh.sh" &
}
# Main function
main() {
choice=$(menu | rofi -i -dmenu -config "$rofi_config")
if [[ -z "$choice" ]]; then
echo "No option selected. Exiting."
exit 0
fi
apply_style "$choice"
}
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
#exit 0
fi
main

57
.config/hypr/scripts/Wlogout.sh Executable file
View file

@ -0,0 +1,57 @@
#!/bin/bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# wlogout (Power, Screen Lock, Suspend, etc)
# Set variables for parameters. First numbers corresponts to Monitor Resolution
# i.e 2160 means 2160p
A_2160=700
B_2160=700
A_1600=650
B_1600=650
A_1440=450
B_1440=450
A_1080=350
B_1080=350
A_720=50
B_720=50
# Check if wlogout is already running
if pgrep -x "wlogout" > /dev/null; then
pkill -x "wlogout"
exit 0
fi
# Detect monitor resolution and scaling factor
resolution=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .height / .scale' | awk -F'.' '{print $1}')
hypr_scale=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true) | .scale')
# Set parameters based on screen resolution and scaling factor
if ((resolution >= 2160)); then
T_val=$(awk "BEGIN {printf \"%.0f\", $A_2160 * 2160 * $hypr_scale / $resolution}")
B_val=$(awk "BEGIN {printf \"%.0f\", $B_2160 * 2160 * $hypr_scale / $resolution}")
echo "Setting parameters for resolution >= 4k"
wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val &
elif ((resolution >= 1600 && resolution < 2160)); then
T_val=$(awk "BEGIN {printf \"%.0f\", $A_1600 * 1600 * $hypr_scale / $resolution}")
B_val=$(awk "BEGIN {printf \"%.0f\", $B_1600 * 1600 * $hypr_scale / $resolution}")
echo "Setting parameters for resolution >= 2.5k and < 4k"
wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val &
elif ((resolution >= 1440 && resolution < 1600)); then
T_val=$(awk "BEGIN {printf \"%.0f\", $A_1440 * 1440 * $hypr_scale / $resolution}")
B_val=$(awk "BEGIN {printf \"%.0f\", $B_1440 * 1440 * $hypr_scale / $resolution}")
echo "Setting parameters for resolution >= 2k and < 2.5k"
wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val &
elif ((resolution >= 1080 && resolution < 1440)); then
T_val=$(awk "BEGIN {printf \"%.0f\", $A_1080 * 1080 * $hypr_scale / $resolution}")
B_val=$(awk "BEGIN {printf \"%.0f\", $B_1080 * 1080 * $hypr_scale / $resolution}")
echo "Setting parameters for resolution >= 1080p and < 2k"
wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val &
elif ((resolution >= 720 && resolution < 1080)); then
T_val=$(awk "BEGIN {printf \"%.0f\", $A_720 * 720 * $hypr_scale / $resolution}")
B_val=$(awk "BEGIN {printf \"%.0f\", $B_720 * 720 * $hypr_scale / $resolution}")
echo "Setting parameters for resolution >= 720p and < 1080p"
wlogout --protocol layer-shell -b 3 -T $T_val -B $B_val &
else
echo "Setting default parameters"
wlogout &
fi

5
.config/hypr/v2.3.9 Normal file
View file

@ -0,0 +1,5 @@
### https://github.com/JaKooLit ###
## https://github.com/JaKooLit/Hyprland-Dots
## This is to have a reference of which version would be
## note that this will always be higher than the released versions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 MiB

View file

@ -0,0 +1,21 @@
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */
# /* wallust template - colors-hyprland */
$background = rgb(26272C)
$foreground = rgb(F5F3F2)
$color0 = rgb(4B4C52)
$color1 = rgb(5B4438)
$color2 = rgb(604A3F)
$color3 = rgb(515870)
$color4 = rgb(82756D)
$color5 = rgb(A0865E)
$color6 = rgb(A9A6A3)
$color7 = rgb(E8E5E3)
$color8 = rgb(A2A19F)
$color9 = rgb(7A5A4B)
$color10 = rgb(806254)
$color11 = rgb(6C7596)
$color12 = rgb(AE9B92)
$color13 = rgb(D6B27D)
$color14 = rgb(E2DDD9)
$color15 = rgb(E8E5E3)