#   ░▒▒▒░░░▓▓          ___________ # ░░▒▒▒░░░░░▓▓        //___________/ # ░░▒▒▒░░░░░▓▓     _   _ _    _ _____ # ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/ # ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___ #  ░▒▒░░▓▓   ▓▓   \__  |____/ |____/ #    ░▒▓▓   ▓▓  //____/ # // █░█ █▄█ █▀▄ █▀▀ # // █▀█ ░█░ █▄▀ ██▄ $scrPath=$HOME/.local/lib/hyde # set scripts path # Main modifier $mainMod = SUPER # windows key # assign apps $default.$QUICKAPPS = $default.BROWSER = hyde-launch.sh --fall firefox web-browser $default.EDITOR = hyde-launch.sh --fall code-oss text-editor $default.EXPLORER= hyde-launch.sh --fall dolphin file-manager $default.TERMINAL = kitty $default.LOCKSCREEN=hyprlock $default.IDLE=hypridle $QUICKAPPS = $default.$QUICKAPPS $BROWSER = $default.BROWSER $EDITOR = $default.EDITOR $EXPLORER= $default.EXPLORER $TERMINAL = $default.TERMINAL $LOCKSCREEN=$default.LOCKSCREEN $IDLE= $default.IDLE # // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ # // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ # See https://wiki.hyprland.org/Configuring/Keywords/ $start.XDG_PORTAL_RESET=$scrPath/resetxdgportal.sh $start.DBUS_SHARE_PICKER=dbus-update-activation-environment --systemd --all # for XDPH $start.SYSTEMD_SHARE_PICKER=systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # for XDPH $start.BAR=waybar $start.NOTIFICATIONS=dunst $start.APPTRAY_BLUETOOTH=blueman-applet $start.WALLPAPER=$scrPath/wallpaper.sh --global $start.TEXT_CLIPBOARD=wl-paste --type text --watch cliphist store $start.IMAGE_CLIPBOARD=wl-paste --type image --watch cliphist store $start.BATTERY_NOTIFY=$scrPath/batterynotify.sh $start.NETWORK_MANAGER=nm-applet --indicator $start.REMOVABLE_MEDIA=udiskie --no-automount --smart-tray $start.AUTH_DIALOGUE=$scrPath/polkitkdeauth.sh $start.IDLE_DAEMON=$IDLE # // █▀▀ █▄░█ █░█ # // ██▄ █░▀█ ▀▄▀ # See https://wiki.hyprland.org/Configuring/Environment-variables/ # Toolkit Backend Variables - https://wiki.hyprland.org/Configuring/Environment-variables/#toolkit-backend-variables $env.GDK_BACKEND = wayland,x11,* # GTK: Use wayland if available. If not: try x11, then any other GDK backend. # $env.QT_QPA_PLATFORM = wayland;xcb # Qt: Use wayland if available, fall back to x11 if not. $env.SDL_VIDEODRIVER = wayland # Run SDL2 applications on Wayland. Remove or set to x11 if games that provide older versions of SDL cause compatibility issues $env.CLUTTER_BACKEND = wayland # Clutter package already has wayland enabled, this variable will force Clutter applications to try and use the Wayland backend # XDG Specifications - https://wiki.hyprland.org/Configuring/Environment-variables/#xdg-specifications $env.XDG_CURRENT_DESKTOP = Hyprland $env.XDG_SESSION_TYPE = wayland $env.XDG_SESSION_DESKTOP = Hyprland # Qt Variables - https://wiki.hyprland.org/Configuring/Environment-variables/#qt-variables $env.QT_AUTO_SCREEN_SCALE_FACTOR = 1 # (From the Qt documentation) enables automatic scaling, based on the monitor’s pixel density $env.QT_QPA_PLATFORM = wayland;xcb # Tell Qt applications to use the Wayland backend, and fall back to x11 if Wayland is unavailable $env.QT_WAYLAND_DISABLE_WINDOWDECORATION = 1 # Disables window decorations on Qt applications $env.QT_QPA_PLATFORMTHEME = qt6ct # Tells Qt based applications to pick your theme from qt5ct, use with Kvantum. # HyDE Environment Variables - $env.PATH = $env.MOZ_ENABLE_WAYLAND=1 # Enable Wayland for Firefox $env.GDK_SCALE=1 # Set GDK scale to 1 // For Xwayland on HiDPI $env.ELECTRON_OZONE_PLATFORM_HINT=auto # Set Electron Ozone Platform Hint to auto // For Electron apps on Wayland # XDG-DIRS # $XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/run/user/$(id -u)} # $XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-$HOME/.config} # >> $env.XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} # $XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} $env.XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR $env.XDG_CONFIG_HOME=$HOME/.config $env.XDG_CACHE_HOME=$HOME/.cache $env.XDG_DATA_HOME=$HOME/.local/share $env.XDG_STATE_HOME=$HOME/.local/state # // █▀▀ ▀█▀ █▄▀ # // █▄█ ░█░ █░█ $default.GTK_THEME=Wallbash-Gtk $default.ICON_THEME=Tela-circle-dracula $default.COLOR_SCHEME=prefer-dark $GTK_THEME=$default.GTK_THEME $ICON_THEME=$default.ICON_THEME $COLOR_SCHEME=$default.COLOR_SCHEME # // █▀▀ █░█ █▀█ █▀ █▀█ █▀█ # // █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄ $default.CURSOR_THEME=Bibata-Modern-Ice $default.CURSOR_SIZE=24 $CURSOR_THEME=$default.CURSOR_THEME $CURSOR_SIZE=$default.CURSOR_SIZE # // █▀▀ █▀█ █▄░█ ▀█▀ # // █▀░ █▄█ █░▀█ ░█░ $default.FONT=Cantarell $default.FONT_SIZE=10 $default.DOCUMENT_FONT=Cantarell $default.DOCUMENT_FONT_SIZE=10 $default.MONOSPACE_FONT=CaskaydiaCove Nerd Font Mono $default.MONOSPACE_FONT_SIZE=9 $default.NOTIFICATION_FONT=Mononoki Nerd Font Mono $default.BAR_FONT=JetBrainsMono Nerd Font # $default.MENU_FONT=This is not yet set as it looks perfect with the global font $default.FONT_ANTIALIASING=rgba $default.FONT_HINTING=full $FONT=$default.FONT $FONT_SIZE=$default.FONT_SIZE $DOCUMENT_FONT=$default.DOCUMENT_FONT $DOCUMENT_FONT_SIZE=$default.DOCUMENT_FONT_SIZE $MONOSPACE_FONT=$default.MONOSPACE_FONT $MONOSPACE_FONT_SIZE=$default.MONOSPACE_FONT_SIZE $NOTIFICATION_FONT=$default.NOTIFICATION_FONT $BAR_FONT=$default.BAR_FONT # $MENU_FONT=$default.MENU_FONT $FONT_ANTIALIASING=$default.FONT_ANTIALIASING $FONT_HINTING=$default.FONT_HINTING # // █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░ # // ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄ decoration { dim_special = 0.3 active_opacity = 0.90 inactive_opacity = 0.75 fullscreen_opacity = 1 blur { special = true } } # // █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ # // █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor = ,preferred,auto,auto # // █ █▄░█ █▀█ █░█ ▀█▀ # // █ █░▀█ █▀▀ █▄█ ░█░ # See https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us follow_mouse = 1 touchpad { natural_scroll = no } sensitivity = 0 force_no_accel = 1 numlock_by_default = true } # See https://wiki.hyprland.org/Configuring/Variables/ # gestures { # workspace_swipe = true # workspace_swipe_fingers = 3 # } # // █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ # // █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ dwindle { # pseudotile = yes preserve_split = yes } # See https://wiki.hyprland.org/Configuring/Master-Layout/ master { new_status = master } # // █▀▄▀█ █ █▀ █▀▀ # // █░▀░█ █ ▄█ █▄▄ # See https://wiki.hyprland.org/Configuring/Variables/ misc { vrr = 0 disable_hyprland_logo = true disable_splash_rendering = true force_default_wallpaper = 0 } xwayland { force_zero_scaling = true } # // ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # // █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ # See https://wiki.hyprland.org/Configuring/Animations/ animations { enabled = yes bezier = wind, 0.05, 0.9, 0.1, 1.05 bezier = winIn, 0.1, 1.1, 0.1, 1.1 bezier = winOut, 0.3, -0.3, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide animation = windowsOut, 1, 5, winOut, slide animation = windowsMove, 1, 5, wind, slide animation = border, 1, 1, liner animation = borderangle, 1, 30, liner, once animation = fade, 1, 10, default animation = workspaces, 1, 5, wind } general { snap { # snapping for floating windows enabled = true } } # // █▀ █▀█ █░█ █▀█ █▀▀ █▀▀ # // ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄ # hyprlang noerror true # source = $env.XDG_STATE_HOME/hyde/hyprgui.conf # GUI specific config. Used to not break the low level configs. this will be available downstream source = $env.XDG_CONFIG_HOME/hypr/themes/colors.conf # Hyde wallbash colors # Source groupbar in here group:groupbar { col.inactive = rgba($wallbash_pry3ee) col.active = rgba($wallbash_pry1ee) col.locked_active = rgba($wallbash_pry2ee) col.locked_inactive = rgba($wallbash_pry4ee) } source = $env.XDG_CONFIG_HOME/hypr/themes/theme.conf # theme specific settings source = $env.XDG_CONFIG_HOME/hypr/themes/wallbash.conf # Theme specific settings after Sanitize and handle fallbacks source = $env.XDG_CONFIG_HOME/hypr/nvidia.conf # Nvidia specific settings source = $env.XDG_CONFIG_HOME/hypr/animations.conf # source animations variables # hyprlang noerror false source = $env.XDG_CONFIG_HOME/hypr/hyde.conf # hyprlang noerror true source = $env.XDG_STATE_HOME/hyde/hyprland.conf # translated from config.tomls source = $ANIMATION_PATH # source animations configuration # hyprlang noerror false #! Below this is an immutable part of the configuration file, and should not be modified by the user. #? By Hyprland convention env and startup files are sourced at the end of the main configuration file #? To ensure that the user's settings are not overridden by the default settings #? This will let us launch after all envs and variables are set. # LEGACY $quickapps = $QUICKAPPS $term = $TERMINAL $editor = $EDITOR $file = $EXPLORER $browser = $BROWSER # Group Bar group:groupbar{ enabled = true gradients = 1 render_titles = 1 font_size = 12 font_family = $FONT } # Misc misc { font_family = $FONT } # // █▀▀ █▄░█ █░█ # // ██▄ █░▀█ ▀▄▀ # # See https://wiki.hyprland.org/Configuring/Environment-variables/ #! Remove for now # env = GDK_BACKEND,$env.GDK_BACKEND # env = SDL_VIDEODRIVER,$env.SDL_VIDEODRIVER # env = CLUTTER_BACKEND,$env.CLUTTER_BACKEND # Qt Variables env = QT_AUTO_SCREEN_SCALE_FACTOR,$env.QT_AUTO_SCREEN_SCALE_FACTOR env = QT_QPA_PLATFORM,$env.QT_QPA_PLATFORM env = QT_WAYLAND_DISABLE_WINDOWDECORATION,$env.QT_WAYLAND_DISABLE_WINDOWDECORATION env = QT_QPA_PLATFORMTHEME,$env.QT_QPA_PLATFORMTHEME # Wayland-ENV env = MOZ_ENABLE_WAYLAND,$env.MOZ_ENABLE_WAYLAND env = GDK_SCALE,$env.GDK_SCALE env = ELECTRON_OZONE_PLATFORM_HINT,$env.ELECTRON_OZONE_PLATFORM_HINT # XDG Spec env = XDG_CURRENT_DESKTOP,$env.XDG_CURRENT_DESKTOP env = XDG_SESSION_TYPE,$env.XDG_SESSION_TYPE env = XDG_SESSION_DESKTOP,$env.XDG_SESSION_DESKTOP # HyDE Variables $hyde.PATH=$HOME/.local/bin:$scrPath:$env.PATH:$PATH env = PATH,$hyde.PATH # XDG-ENV env = XDG_CONFIG_HOME,$env.XDG_CONFIG_HOME env = XDG_CACHE_HOME,$env.XDG_CACHE_HOME env = XDG_DATA_HOME,$env.XDG_DATA_HOME # HyDE-ENV env = HYDE_RUNTIME_DIR,$env.XDG_RUNTIME_DIR/hyde env = HYDE_CONFIG_HOME,$env.XDG_CONFIG_HOME/hyde env = HYDE_CACHE_HOME,$env.XDG_CACHE_HOME/hyde env = HYDE_DATA_HOME,$env.XDG_DATA_HOME/hyde env = HYDE_STATE_HOME,$env.XDG_STATE_HOME/hyde # CURSOR ENV # env = HYPRCURSOR_THEME,$CURSOR_THEME # env = HYPRCURSOR_SIZE,$CURSOR_SIZE # env = XCURSOR_THEME,$CURSOR_THEME # env = XCURSOR_SIZE,$CURSOR_SIZE # Execute on reload # HyDE Preparation $exec.mkdir = mkdir -p $env.XDG_RUNTIME_DIR/hyde $env.XDG_CACHE_HOME/hyde/wallbash $env.XDG_CONFIG_HOME/hyde $env.XDG_DATA_HOME/hyde $(dirname $env.XDG_DATA_HOME)/state/hyde # Create HyDE directories $set.env = printf "\n_SHELL='$SHELL'\nGDK_BACKEND='$env.GDK_BACKEND'\nQT_QPA_PLATFORM='$env.QT_QPA_PLATFORM'\nSDL_VIDEODRIVER='$env.SDL_VIDEODRIVER'\nCLUTTER_BACKEND='$env.CLUTTER_BACKEND'\nXDG_CURRENT_DESKTOP='$env.XDG_CURRENT_DESKTOP'\nXDG_SESSION_TYPE='$env.XDG_SESSION_TYPE'\nXDG_SESSION_DESKTOP='$env.XDG_SESSION_DESKTOP'\nQT_AUTO_SCREEN_SCALE_FACTOR='$env.QT_AUTO_SCREEN_SCALE_FACTOR'\nQT_WAYLAND_DISABLE_WINDOWDECORATION='$env.QT_WAYLAND_DISABLE_WINDOWDECORATION'\nQT_QPA_PLATFORMTHEME='$env.QT_QPA_PLATFORMTHEME'\nHYDE_PATH='$hyde.PATH'\nMOZ_ENABLE_WAYLAND='$env.MOZ_ENABLE_WAYLAND'\nGDK_SCALE='$env.GDK_SCALE'\nELECTRON_OZONE_PLATFORM_HINT='$env.ELECTRON_OZONE_PLATFORM_HINT'\nXDG_RUNTIME_DIR='$env.XDG_RUNTIME_DIR'\nXDG_CONFIG_HOME='$env.XDG_CONFIG_HOME'\nXDG_CACHE_HOME='$env.XDG_CACHE_HOME'\nXDG_DATA_HOME='$env.XDG_DATA_HOME'\n_GTK_THEME='$GTK_THEME'\n_ICON_THEME='$ICON_THEME'\n_COLOR_SCHEME='$COLOR_SCHEME'\n_CURSOR_SIZE='$CURSOR_SIZE'\n_CURSOR_THEME='$CURSOR_THEME'\nFONT='$FONT'\nFONT_SIZE='$FONT_SIZE'\nDOCUMENT_FONT='$DOCUMENT_FONT'\nDOCUMENT_FONT_SIZE='$DOCUMENT_FONT_SIZE'\nMONOSPACE_FONT='$MONOSPACE_FONT'\nMONOSPACE_FONT_SIZE='$MONOSPACE_FONT_SIZE'\nFONT_ANTIALIASING='$FONT_ANTIALIASING'\nFONT_HINTING='$FONT_HINTING'\nHYDE_RUNTIME_DIR='$env.XDG_RUNTIME_DIR/hyde'\nHYDE_CONFIG_HOME='$env.XDG_CONFIG_HOME/hyde'\nHYDE_CACHE_HOME='$env.XDG_CACHE_HOME/hyde'\nHYDE_DATA_HOME='$env.XDG_DATA_HOME/hyde'\nHYDE_STATE_HOME='$(dirname $env.XDG_DATA_HOME)/state/hyde'\nexport TERMINAL='$(which $TERMINAL)'\nexport LOCKSCREEN='$LOCKSCREEN'" > "$env.XDG_RUNTIME_DIR/hyde/environment" # Create a dconf file that will be loaded later one time, better than multiple dconf commands and better than gsettings $dconFile=$env.XDG_CACHE_HOME/hyde/dconf $dConf = \n[org/gnome/desktop/interface]\n $dConf = $dConf icon-theme='$ICON_THEME'\n $dConf = $dConf gtk-theme='$GTK_THEME'\n $dConf = $dConf color-scheme='$COLOR_SCHEME'\n $dConf = $dConf cursor-theme='$CURSOR_THEME'\n $dConf = $dConf cursor-size=$CURSOR_SIZE\n $dConf = $dConf font-name='$FONT $FONT_SIZE'\n $dConf = $dConf document-font-name='$DOCUMENT_FONT $DOCUMENT_FONT_SIZE'\n $dConf = $dConf monospace-font-name='$MONOSPACE_FONT $MONOSPACE_FONT_SIZE'\n $dConf = $dConf font-antialiasing='$FONT_ANTIALIASING'\n $dConf = $dConf font-hinting='$FONT_HINTING'\n $dConf = $dConf [org/gnome/desktop/default-applications/terminal]\nexec='$(which $TERMINAL)' $dconf.preserve = dconf dump / > $dconFile $dconf.populate = printf "$dConf" >> $dconFile $dconf.reset = dconf reset -f / < $dconFile $dconf.load = dconf load -f / < $dconFile $set.hyprCursor = hyprctl setcursor $CURSOR_THEME $CURSOR_SIZE $exec.dConf = ( $dconf.preserve && $dconf.populate && $dconf.reset && $dconf.load && $set.hyprCursor ) $exec.keybinds_hint = $scrPath/keybinds.hint.py --format rofi > $env.XDG_RUNTIME_DIR/hyde/keybinds_hint.rofi # Execute exec = $exec.mkdir & $set.env & $exec.dConf & $exec.animation & $exec.keybinds_hint # // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ # // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ exec-once = $start.XDG_PORTAL_RESET # reset XDPH for screenshare exec-once = $start.DBUS_SHARE_PICKER # for XDPHgl exec-once = $start.SYSTEMD_SHARE_PICKER # for XDPH exec-once = $start.AUTH_DIALOGUE # authentication dialogue for GUI apps exec-once = $start.BAR # launch the system bar exec-once = $start.APPTRAY_BLUETOOTH # systray app for Bluetooth exec-once = $start.REMOVABLE_MEDIA # front-end that allows to manage removable media exec-once = $start.NETWORK_MANAGER # systray app for Network/Wifi exec-once = $start.NOTIFICATIONS # start notification demon exec-once = $start.TEXT_CLIPBOARD # clipboard store text data exec-once = $start.IMAGE_CLIPBOARD # clipboard store image data exec-once = $start.WALLPAPER # start wallpaper daemon exec-once = $start.BATTERY_NOTIFY # battery notification exec-once = $start.IDLE_DAEMON # idle daemon # hyde/config.toml is parsed and exported to the environment exec-once = $scrPath/parse.config.py --daemon --input $env.XDG_CONFIG_HOME/hyde/config.toml --env $env.XDG_STATE_HOME/hyde/config --hypr $env.XDG_STATE_HOME/hyde/hyprland.conf #? Rules can be added here as most of the configuration are dynamic # // █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ # // ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ # See https://wiki.hyprland.org/Configuring/Window-Rules/ # Ony add the Core applications here windowrule { name = windowrule-1 float = on match:class = ^(com.gabm.satty)$ } windowrule { name = windowrule-2 float = on match:class = ^(org.kde.dolphin)$ match:title = ^(Progress Dialog — Dolphin)$ } windowrule { name = windowrule-3 float = on match:class = ^(org.kde.dolphin)$ match:title = ^(Copying — Dolphin)$ } windowrule { name = windowrule-4 float = on match:title = ^(About Mozilla Firefox)$ } windowrule { name = windowrule-5 float = on match:class = ^(firefox)$ match:title = ^(Picture-in-Picture)$ } windowrule { name = windowrule-6 float = on match:class = ^(firefox)$ match:title = ^(Library)$ } windowrule { name = windowrule-7 float = on match:class = ^(.*)$ match:initial_title = ^(.*)(top)(.*)$ } windowrule { name = windowrule-8 float = on match:class = ^(.*)$ match:initial_title = ^(.*)(btop)(.*)$ } windowrule { name = windowrule-9 float = on match:class = ^(.*)$ match:initial_title = ^(.*)(htop)(.*)$ } windowrule { name = windowrule-10 float = on match:class = ^(vlc)$ } windowrule { name = windowrule-11 float = on match:class = ^(kvantummanager)$ } windowrule { name = windowrule-12 float = on match:class = ^(qt5ct)$ } windowrule { name = windowrule-13 float = on match:class = ^(qt6ct)$ } windowrule { name = windowrule-14 float = on match:class = ^(nwg-look)$ } windowrule { name = windowrule-15 float = on match:class = ^(nwg-displays)$ } windowrule { name = windowrule-16 float = on match:class = ^(org.kde.ark)$ } windowrule { name = windowrule-17 float = on match:class = ^(org.pulseaudio.pavucontrol)$ } windowrule { name = windowrule-18 float = on match:class = ^(blueman-manager)$ } windowrule { name = windowrule-19 float = on match:class = ^(nm-applet)$ } windowrule { name = windowrule-20 float = on match:class = ^(nm-connection-editor)$ } windowrule { name = windowrule-21 float = on match:class = ^(org.kde.polkit-kde-authentication-agent-1)$ } windowrule { name = windowrule-22 float = on match:class = ^([Xx]dg-desktop-portal-gtk)$ } # // █░░ ▄▀█ █▄█ █▀▀ █▀█   █▀█ █░█ █░░ █▀▀ █▀ # // █▄▄ █▀█ ░█░ ██▄ █▀▄   █▀▄ █▄█ █▄▄ ██▄ ▄█ # layerrule = blur,rofi # layerrule = ignorezero,rofi # layerrule = blur,notifications # layerrule = ignorezero,notifications # layerrule = blur,swaync-notification-window # layerrule = ignorezero,swaync-notification-window # layerrule = blur,swaync-control-center # layerrule = ignorezero,swaync-control-center # layerrule = blur,logout_dialog