2 Commits

Author SHA1 Message Date
0d582329ed g 2026-05-03 07:44:08 +01:00
1b4f556d6f adding hyprland/hypridle/hyprlock configuration 2026-05-03 07:42:16 +01:00
62 changed files with 3981 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# HyprFlux Dots
Settings have been massivily modified as to work in a more simple mannor
I will update the Hyprland-Dots wiki for guidance. Make sure to check out changelogs as well

View File

@@ -0,0 +1,89 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf
# environment-variables
# Toolkit Backend Variables
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = CLUTTER_BACKEND,wayland
#Run SDL2 applications on Wayland.
#Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
#env = SDL_VIDEODRIVER,wayland
# xdg Specifications
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
# QT Variables
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_QPA_PLATFORMTHEME,qt6ct
# hyprland-qt-support
env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style
# xwayland apps scale fix (useful if you are use monitor scaling).
# Set same value if you use scaling in Monitors.conf
# 1 is 100% 1.5 is 150%
# see https://wiki.hyprland.org/Configuring/XWayland/
env = GDK_SCALE,1
env = QT_SCALE_FACTOR,1
# Bibata-Modern-Ice-Cursor
# NOTE! You must have the hyprcursor version to activate this.
# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/
env = HYPRCURSOR_THEME,Bibata-Modern-Classic
env = HYPRCURSOR_SIZE,24
# firefox
env = MOZ_ENABLE_WAYLAND,1
# electron >28 apps (may help) ##
# https://www.electronjs.org/docs/latest/api/environment-variables
env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 otherwise
# 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
#env = GSK_RENDERER,ngl
# additional ENV's for nvidia. Caution, activate with care
#env = GBM_BACKEND,nvidia-drm
#env = __GL_GSYNC_ALLOWED,1 #adaptive Vsync
#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 # Warning. May cause hyprland to crash
#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
#### Aquamarine Environment Variables #### ( Hyprland > 0.45 )
# https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables----ref-httpsgithubcomhyprwmaquamarineblobmaindocsenvmd---
# env = AQ_TRACE,1 # Enables more verbose logging.
# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 # Set an explicit list of DRM devices (GPUs) to use. It’s a colon-separated list of paths, with the first being the primary. E.g. /dev/dri/card1:/dev/dri/card0
# env = AQ_MGPU_NO_EXPLICIT,1 # Disables explicit syncing on mgpu buffers
# env = AQ_NO_MODIFIERS,1 # Disables modifiers for DRM buffers
#### Hyprland Environment Variables ####
# https://wiki.hyprland.org/Configuring/Environment-variables/#hyprland-environment-variables
# env = HYPRLAND_TRACE,1 # Enables more verbose logging.
# env = HYPRLAND_NO_RT,1 # Disables realtime priority setting by Hyprland.
# env = HYPRLAND_NO_SD_NOTIFY,1 # If systemd, disables the 'sd_notify' calls.
# env = HYPRLAND_NO_SD_VARS,1 # Disables management of variables in systemd and dbus activation environments.

View File

@@ -0,0 +1,210 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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
# /* ---- ✴️ Variables ✴️ ---- */ #
$mainMod = SUPER
$scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
# settings for User defaults apps - set your default terminal and file manager on this file
$edit=${EDITOR:-nvim}
# These two are for UserKeybinds.conf & Waybar Modules
$term = foot # Terminal
$files = thunar # File Manager
# Default Search Engine for ROFI Search (SUPER S)
$Search_Engine = "https://www.google.com/search?q={}"
# common shortcuts
bind = $mainMod, SPACE, exec, .config/rofi/launchers/type-4/launcher.sh # desktop overview (if installed)
bind = $mainMod, Q, killactive, # close active (not kill)
bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh # Kill active process
bind = $mainMod, Return, exec, $term #terminal
bind = $mainMod, F, exec, $files #file manager
bind = $mainMod, B, exec, zen-browser # Launch Zen Browser New Everytime
bind = $mainMod, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager
bind = $mainMod, C, exec, code --ozone-platform=x11 # Visual Studio Code
bind = $mainMod, O, exec, obsidian --ozone-platform=x11 # Obsidian
bind = $mainMod, X, exec, vesktop # Vesktop(Discord)
bind = $mainMod, M, exec, fdm # Free Downlaod Manager
bind = $mainMod, W, exec, waypaper # Wayland Wallpaper Setter
bind = $mainMod, L, exec, hyprlock # Screen Locker
bind = $mainMod, DELETE, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh # Power Menu
bind = $mainMod, S, exec, cd /home/thomas/hyprmod && uv run hyprmod # Hyprmod - A Hyprland settings manager (if installed)
bind = $mainMod SHIFT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofirrr
bind = $mainMod, N, exec, swaync-client -t -sw # swayNC notification panel
# FEATURES / EXTRAS
bind = $mainMod SHIFT, F, fullscreen # whole full screen
bind = $mainMod SHIFT, SPACE, togglefloating, #Float Mode
# Desktop zooming or magnifier
bind = $mainMod ALT, mouse_down, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"
bind = $mainMod ALT, mouse_up, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"
## NOTES for ja (Hyprland version 0.39 (Ubuntu 24.04))
#bind = $mainMod ALT, mouse_down, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"
#bind = $mainMod ALT, mouse_up, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"
# Waybar / Bar related
bind = $mainMod CTRL ALT, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar
# FEATURES / EXTRAS (UserScripts)
bind = $mainMod SHIFT, A, exec, $scriptsDir/Animations.sh #hyprland animations menu
bind = $mainMod SHIFT, Z, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme
#######################################################################################################################################
#Default Keybinds#
#######################################################################################################################################
bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 # exit Hyprland
# 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
# Dwindle Layout
bind = $mainMod SHIFT, I, togglesplit # only works on dwindle layout
bind = $mainMod, P, pseudo, # dwindle
# 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
# 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
# Swap windows
bind = $mainMod ALT, left, swapwindow, l
bind = $mainMod ALT, right, swapwindow, r
bind = $mainMod ALT, up, swapwindow, u
bind = $mainMod ALT, down, swapwindow, 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, tab, workspace, m+1
bind = $mainMod SHIFT, tab, workspace, m-1
# Special workspace
# bind = $mainMod SHIFT, U, movetoworkspace, special
# bind = $mainMod, U, togglespecialworkspace,
bind = $mainMod, U, togglespecialworkspace, nyx
bind = $mainMod SHIFT, U, movetoworkspace, special:nyx
# 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 # NOTE: code:10 = key 1
bind = $mainMod, code:11, workspace, 2 # NOTE: code:11 = key 2
bind = $mainMod, code:12, workspace, 3 # NOTE: code:12 = key 3
bind = $mainMod, code:13, workspace, 4 # NOTE: code:13 = key 4
bind = $mainMod, code:14, workspace, 5 # NOTE: code:14 = key 5
bind = $mainMod, code:15, workspace, 6 # NOTE: code:15 = key 6
bind = $mainMod, code:16, workspace, 7 # NOTE: code:16 = key 7
bind = $mainMod, code:17, workspace, 8 # NOTE: code:17 = key 8
bind = $mainMod, code:18, workspace, 9 # NOTE: code:18 = key 9
bind = $mainMod, code:19, workspace, 10 # NOTE: code:19 = key 0
# Move active window and follow to workspace mainMod + SHIFT [0-9]
bind = $mainMod SHIFT, code:10, movetoworkspace, 1 # NOTE: code:10 = key 1
bind = $mainMod SHIFT, code:11, movetoworkspace, 2 # NOTE: code:11 = key 2
bind = $mainMod SHIFT, code:12, movetoworkspace, 3 # NOTE: code:12 = key 3
bind = $mainMod SHIFT, code:13, movetoworkspace, 4 # NOTE: code:13 = key 4
bind = $mainMod SHIFT, code:14, movetoworkspace, 5 # NOTE: code:14 = key 5
bind = $mainMod SHIFT, code:15, movetoworkspace, 6 # NOTE: code:15 = key 6
bind = $mainMod SHIFT, code:16, movetoworkspace, 7 # NOTE: code:16 = key 7
bind = $mainMod SHIFT, code:17, movetoworkspace, 8 # NOTE: code:17 = key 8
bind = $mainMod SHIFT, code:18, movetoworkspace, 9 # NOTE: code:18 = key 9
bind = $mainMod SHIFT, code:19, movetoworkspace, 10 # NOTE: code:19 = key 0
bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [
bind = $mainMod SHIFT, bracketright, movetoworkspace, +1 # brackets ]
# Move active window to a workspace silently mainMod + CTRL [0-9]
bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 # NOTE: code:10 = key 1
bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 # NOTE: code:11 = key 2
bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 # NOTE: code:12 = key 3
bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 # NOTE: code:13 = key 4
bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 # NOTE: code:14 = key 5
bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 # NOTE: code:15 = key 6
bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 # NOTE: code:16 = key 7
bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 # NOTE: code:17 = key 8
bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 # NOTE: code:18 = key 9
bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 # NOTE: code:19 = key 0
bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [
bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1 # brackets ]
# 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 # NOTE: mouse:272 = left click
bindm = $mainMod, mouse:273, resizewindow # NOTE: mouse:272 = right click
#########################################################################################################
# Laptop specific keybinds
#########################################################################################################
# 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
}

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,31 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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
# 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,43 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Commands and Apps to be executed at launch
$scriptsDir = $HOME/.config/hypr/scripts
# wallpaper stuff
exec-once = awww-daemon --format xrgb
#exec-once = mpvpaper '*' -o "load-scripts=no no-audio --loop" $livewallpaper
# 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 = nm-applet --indicator
exec-once = swaync
#exec-once = ags
#exec-once = blueman-applet
#exec-once = rog-control-center
exec-once = waybar
exec-once = qs # quickshell AGS Desktop Overview alternative
#clipboard manager
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
# Starting hypridle to start hyprlock
exec-once = hypridle
exec-once = hyprctl dispatch workspace 3
exec-once = /usr/bin/Plexamp.AppImage &&
exec-once = sleep 3 && vesktop
exec-once = hyprctl dispatch workspace 1
exec-once = bitwarden-desktop --ozone-platform-hint=auto --silent
# Here are list of features available but disabled by default
# exec-once = awww-daemon --format xrgb && awww 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,26 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
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,58 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Decoration Settings
# Hyprland Wiki Links
# Animation - https://wiki.hyprland.org/Configuring/Animations/
# Decoration - https://wiki.hyprland.org/Configuring/Variables/#decoration
# HyprFlux static color palette
source = $HOME/.config/hypr/colours/hyprflux-colors.conf
general {
border_size = 0
gaps_in = 2
gaps_out = 4
# col.active_border = $color12
# col.inactive_border = $color10
}
decoration {
rounding = 10
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 = false
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
popups = true
}
}
group {
col.border_active = $color15
groupbar {
col.active = $color0
}
}

View File

@@ -0,0 +1,118 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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 = true
preserve_split = true
#smart_split = true
special_scale_factor = 1
}
master {
new_status = master
new_on_top = 1
mfact = 0.5
}
general {
resize_on_border = true
layout = dwindle
}
input {
kb_layout = gb
kb_variant =
kb_model =
kb_options =
kb_rules =
repeat_rate = 50
repeat_delay = 300
sensitivity = 0 #mouse sensitivity
#accel_profile = # flat or adaptive or blank or EMPTY means libinput’s default mode
numlock_by_default = true
left_handed = false
follow_mouse = 1
float_switch_override_focus = false
touchpad {
disable_while_typing = true
natural_scroll = true
clickfinger_behavior = false
middle_button_emulation = false
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 = off
swallow_regex = ^(kitty)$
focus_on_activate = false
initial_workspace_tracking = 0
middle_click_paste = false
enable_anr_dialog = true # Application not Responding (ANR)
anr_missed_pings = 15 # ANR Threshold default 1 is too low
}
#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 {
direct_scanout = 0
}
cursor {
sync_gsettings_theme = true
no_hardware_cursors = 2 # change to 1 if want to disable
enable_hyprcursor = true
warp_on_change_workspace = 2
no_warps = true
}

View File

@@ -0,0 +1,744 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# For window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# NOTES: This is only for Hyprland > 0.48
# note for ja: This should NOT be implemented on Debian and Ubuntu
# windowrule - tags - add apps under appropriate tag to use the same settings
# browser tags
windowrule {
name = windowrule-1
tag = +browser
match:class = ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
}
windowrule {
name = windowrule-2
tag = +browser
match:class = ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
}
windowrule {
name = windowrule-3
tag = +browser
match:class = ^(chrome-.+-Default)$ # Chrome PWAs
}
# windowrule = tag +browser, class:^([Cc]hromium)$
windowrule {
name = windowrule-4
tag = +browser
match:class = ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
}
windowrule {
name = windowrule-5
tag = +browser
match:class = ^(Brave-browser(-beta|-dev|-unstable)?)$
}
windowrule {
name = windowrule-6
tag = +browser
match:class = ^([Tt]horium-browser|[Cc]achy-browser)$
}
windowrule {
name = windowrule-7
tag = +browser
match:class = ^(zen-alpha|zen)$
}
# notif tags
windowrule {
name = windowrule-8
tag = +notif
match:class = ^(swaync-control-center|swaync-notification-window|swaync-client|class)$
}
# HyprFlux settings tag
windowrule {
name = windowrule-9
tag = +HyprFlux_Cheat
match:title = ^(HyprFlux Quick Cheat Sheet)$
}
windowrule {
name = windowrule-10
tag = +HyprFlux_Settings
match:title = ^(HyprFlux Settings)$
}
windowrule {
name = windowrule-11
tag = +HyprFlux-Settings
match:class = ^(nwg-displays|nwg-look)$
}
# terminal tags
windowrule {
name = windowrule-12
tag = +terminal
match:class = ^(Alacritty|kitty|kitty-dropterm)$
}
# email tags
windowrule {
name = windowrule-13
tag = +email
match:class = ^([Tt]hunderbird|org.gnome.Evolution)$
}
windowrule {
name = windowrule-14
tag = +email
match:class = ^(eu.betterbird.Betterbird)$
}
# project tags
windowrule {
name = windowrule-15
tag = +projects
match:class = ^(codium|codium-url-handler|VSCodium)$
}
windowrule {
name = windowrule-16
tag = +projects
match:class = ^(VSCode|code-url-handler)$
}
windowrule {
name = windowrule-17
tag = +projects
match:class = ^(jetbrains-.+)$ # JetBrains IDEs
}
# screenshare tags
windowrule {
name = windowrule-18
tag = +screenshare
match:class = ^(com.obsproject.Studio)$
}
# IM tags
# windowrule = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrule {
name = windowrule-19
tag = +im
center = on
float = on
size = (monitor_w*0.6) (monitor_h*0.7)
match:class = ^([Ff]erdium)$
}
windowrule {
name = windowrule-20
tag = +im
match:class = ^([Ww]hatsapp-for-linux)$
}
windowrule {
name = windowrule-21
tag = +im
match:class = ^(ZapZap|com.rtosta.zapzap)$
}
windowrule {
name = windowrule-22
tag = +im
match:class = ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
}
windowrule {
name = windowrule-23
tag = +im
match:class = ^(teams-for-linux)$
}
windowrule {
name = windowrule-24
tag = +im
match:class = ^(im.riot.Riot|Element)$ # Element Matrix client
}
# game tags
windowrule {
name = windowrule-25
tag = +games
match:class = ^(gamescope)$
}
windowrule {
name = windowrule-26
tag = +games
match:class = ^(steam_app_\d+)$
}
# gamestore tags
windowrule {
name = windowrule-27
tag = +gamestore
match:class = ^([Ss]team)$
}
windowrule {
name = windowrule-28
tag = +gamestore
match:title = ^([Ll]utris)$
}
windowrule {
name = windowrule-29
tag = +gamestore
match:class = ^(com.heroicgameslauncher.hgl)$
}
# file-manager tags
windowrule {
name = windowrule-30
tag = +file-manager
match:class = ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
}
windowrule {
name = windowrule-31
tag = +file-manager
match:class = ^(app.drey.Warp)$
}
# wallpaper tags
windowrule {
name = windowrule-32
tag = +wallpaper
match:class = ^([Ww]aytrogen)$
}
# multimedia tags
windowrule {
name = windowrule-33
tag = +multimedia
match:class = ^([Aa]udacious)$
}
# multimedia-video tags
windowrule {
name = windowrule-34
tag = +multimedia_video
match:class = ^([Mm]pv|vlc)$
}
# settings tags
windowrule {
name = windowrule-35
tag = +settings
center = on
match:title = ^(ROG Control)$
}
windowrule {
name = windowrule-36
tag = +settings
match:class = ^(wihotspot(-gui)?)$ # wifi hotspot
}
windowrule {
name = windowrule-37
tag = +settings
match:class = ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
}
windowrule {
name = windowrule-38
tag = +settings
match:class = ^(gnome-disks|wihotspot(-gui)?)$
}
windowrule {
name = windowrule-39
tag = +settings
match:title = (Kvantum Manager)
}
windowrule {
name = windowrule-40
tag = +settings
match:class = ^(file-roller|org.gnome.FileRoller)$ # archive manager
}
windowrule {
name = windowrule-41
tag = +settings
match:class = ^(nm-applet|nm-connection-editor|blueman-manager)$
}
windowrule {
name = windowrule-42
tag = +settings
center = on
match:class = ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
}
windowrule {
name = windowrule-43
tag = +settings
match:class = ^(qt5ct|qt6ct|[Yy]ad)$
}
windowrule {
name = windowrule-44
tag = +settings
match:class = (xdg-desktop-portal-gtk)
}
windowrule {
name = windowrule-45
tag = +settings
match:class = ^(org.kde.polkit-kde-authentication-agent-1)$
}
windowrule {
name = windowrule-46
tag = +settings
match:class = ^([Rr]ofi)$
}
# Custom rule
windowrule {
name = windowrule-47
tile = on
match:class = ^([Cc]hromium)$
}
windowrule {
name = windowrule-48
size = (monitor_w*0.25) (monitor_h*0.55)
float = on
match:class = ^(com.network.manager)$
}
windowrule {
name = windowrule-49
workspace = special:nyx
match:class = ^([Vv]esktop|[Dd]iscord|[Ss]potify)$
}
# viewer tags
windowrule {
name = windowrule-50
tag = +viewer
match:class = ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
}
windowrule {
name = windowrule-51
tag = +viewer
match:class = ^(evince)$ # document viewer
}
windowrule {
name = windowrule-52
tag = +viewer
match:class = ^(eog|org.gnome.Loupe)$ # image viewer
}
# Some special override rules
windowrule {
name = windowrule-53
no_blur = on
opacity = 1.0
match:tag = multimedia_video*
}
# POSITION
# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
windowrule {
name = windowrule-54
center = on
float = on
size = (monitor_w*0.65) (monitor_h*0.9)
match:tag = HyprFlux_Cheat*
}
windowrule {
name = windowrule-55
center = on
float = on
match:class = ([Tt]hunar)
match:title = negative:(.*[Tt]hunar.*)
}
windowrule {
name = windowrule-56
center = on
float = on
match:tag = HyprFlux-Settings*
}
windowrule {
name = windowrule-57
center = on
match:title = ^(Keybindings)$
}
windowrule {
name = windowrule-58
center = on
size = (monitor_w*0.6) (monitor_h*0.7)
match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
}
windowrule {
name = windowrule-59
move = ((monitor_w*0.61)) ((monitor_h*0.07))
float = on
size = (monitor_w*0.38) (monitor_h*0.38)
pin = on
keep_aspect_ratio = on
match:title = ^(Picture-in-Picture)$
}
#windowrule = move 72% 7%,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
#windowrule = idleinhibit fullscreen, class:^(*)$
#windowrule = idleinhibit fullscreen, title:^(*)$
windowrule {
name = windowrule-60
idle_inhibit = fullscreen
match:fullscreen = 1
}
# windowrule move to workspace
windowrule {
name = windowrule-61
workspace = 1
match:tag = projects*
}
windowrule {
name = windowrule-62
workspace = 1
match:tag = email*
}
windowrule {
name = windowrule-63
workspace = 2
match:tag = browser*
}
windowrule {
name = windowrule-64
workspace = 3
match:class = ^([Tt]hunar)$
}
windowrule {
name = windowrule-65
workspace = 4
match:tag = im*
}
windowrule {
name = windowrule-66
workspace = 5
match:tag = gamestore*
}
windowrule {
name = windowrule-67
workspace = 8
no_blur = on
fullscreen = on
match:tag = games*
}
windowrule {
name = windowrule-68
workspace = 1
match:class = ^(kitty)$
match:title = ^(tmuxifier)$
}
windowrule {
name = windowrule-69
workspace = 9
match:class = ^(virt-viewer)$
}
windowrule {
name = windowrule-70
workspace = 10
match:class = ^([Oo]bsidian)$
}
# windowrule move to workspace (silent)
windowrule {
name = windowrule-71
workspace = 4 silent
match:tag = screenshare*
}
windowrule {
name = windowrule-72
workspace = 9 silent
match:class = ^(virt-manager)$
}
windowrule {
name = windowrule-73
workspace = 9 silent
match:class = ^(.virt-manager-wrapped)$
}
windowrule {
name = windowrule-74
workspace = 9 silent
match:tag = multimedia*
}
# FLOAT
windowrule {
name = windowrule-75
float = on
opacity = 0.9 0.7
size = (monitor_w*0.7) (monitor_h*0.7)
match:tag = wallpaper*
}
windowrule {
name = windowrule-76
float = on
opacity = 0.8 0.7
size = (monitor_w*0.7) (monitor_h*0.7)
match:tag = settings*
}
windowrule {
name = windowrule-77
float = on
match:tag = viewer*
}
windowrule {
name = windowrule-78
float = on
match:class = ([Zz]oom|onedriver|onedriver-launcher)$
}
windowrule {
name = windowrule-79
float = on
match:class = (org.gnome.Calculator)
match:title = (Calculator)
}
windowrule {
name = windowrule-80
float = on
match:class = ^(mpv|com.github.rafostar.Clapper)$
}
windowrule {
name = windowrule-81
float = on
match:class = ^([Qq]alculate-gtk)$
}
#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
#windowrule = float, title:^(Firefox)$
windowrule {
name = windowrule-82
float = on
match:class = ^(fdm|freedownloadmanager)$
}
windowrule {
name = windowrule-83
float = on
match:class = ^(proton-authenticator)$
}
windowrule {
name = windowrule-84
float = on
match:class = ^([Ww]indscribe)$
}
# windowrule - ######### float popups and dialogue #######
windowrule {
name = windowrule-85
float = on
center = on
match:title = ^(Authentication Required)$
}
windowrule {
name = windowrule-86
float = on
match:class = (codium|codium-url-handler|VSCodium)
match:title = negative:(.*codium.*|.*VSCodium.*)
}
windowrule {
name = windowrule-87
float = on
match:class = ^(com.heroicgameslauncher.hgl)$
match:title = negative:(Heroic Games Launcher)
}
windowrule {
name = windowrule-88
float = on
match:class = ^([Ss]team)$
match:title = negative:^([Ss]team)$
}
windowrule {
name = windowrule-89
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
center = on
match:title = ^(Add Folder to Workspace)$
}
windowrule {
name = windowrule-90
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
center = on
match:title = ^(Save As)$
}
windowrule {
name = windowrule-91
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
match:initial_title = (Open Files)
}
windowrule {
name = windowrule-92
float = on
center = on
size = (monitor_w*0.16) (monitor_h*0.12)
match:title = ^(SDDM Background)$ #HyprFlux YAD for setting SDDM background
}
# END of float popups and dialogue #######
# OPACITY
# windowrule = opacity 0.9 0.7, tag:browser*
# windowrule = opacity 0.9 0.8, tag:projects*
# windowrule = opacity 0.94 0.86, tag:im*
# windowrule = opacity 0.94 0.86, tag:multimedia*
# windowrule = opacity 0.9 0.8, tag:file-manager*
windowrule {
name = windowrule-93
opacity = 0.8 0.7
match:tag = terminal*
}
# windowrule = opacity 0.82 0.75, tag:viewer*
windowrule {
name = windowrule-94
opacity = 0.8 0.7
match:class = ^(gedit|org.gnome.TextEditor|mousepad)$
}
windowrule {
name = windowrule-95
opacity = 0.9 0.8
match:class = ^(deluge)$
}
windowrule {
name = windowrule-96
opacity = 0.9 0.8
match:class = ^(seahorse)$ # gnome-keyring gui
}
# windowrule = opacity 0.95 0.75, title:^(Picture-in-Picture)$
# SIZE
#windowrule = size 25% 25%, title:^(Firefox)$
# PINNING
#windowrule = pin,title:^(Firefox)$
# windowrule - extras
# BLUR & FULLSCREEN
#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrule = opacity 0.8 0.8, pinned:1
# LAYER RULES
layerrule {
name = layerrule-1
blur = on
ignore_alpha = 0
match:namespace = rofi
}
layerrule {
name = layerrule-2
blur = on
ignore_alpha = 0
match:namespace = notifications
}
layerrule {
name = layerrule-3
blur = on
ignore_alpha = 0.5
match:namespace = quickshell:overview
}
#layerrule = ignorealpha 0.5, tag:notif*
#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View File

@@ -0,0 +1,666 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# For window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# NOTES: This is only for Hyprland > 0.48
# note for ja: This should NOT be implemented on Debian and Ubuntu
# windowrule - tags - add apps under appropriate tag to use the same settings
# browser tags
windowrule {
name = windowrule-1
tag = +browser
match:class = ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
}
windowrule {
name = rustdesk
tag = +rustdesk
match:class = ^(rustdesk)$, xwayland
}
windowrule {
name = windowrule-2
tag = +browser
match:class = ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
}
windowrule {
name = windowrule-3
tag = +browser
match:class = ^(chrome-.+-Default)$ # Chrome PWAs
}
# windowrule = tag +browser, class:^([Cc]hromium)$
windowrule {
name = windowrule-4
tag = +browser
match:class = ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
}
windowrule {
name = windowrule-5
tag = +browser
match:class = ^(Brave-browser(-beta|-dev|-unstable)?)$
}
windowrule {
name = windowrule-6
tag = +browser
match:class = ^([Tt]horium-browser|[Cc]achy-browser)$
}
windowrule {
name = windowrule-7
tag = +browser
match:class = ^(zen-alpha|zen)$
}
# notif tags
windowrule {
name = windowrule-8
tag = +notif
match:class = ^(swaync-control-center|swaync-notification-window|swaync-client|class)$
}
# HyprFlux settings tag
windowrule {
name = windowrule-9
tag = +HyprFlux_Cheat
match:title = ^(HyprFlux Quick Cheat Sheet)$
}
windowrule {
name = windowrule-10
tag = +HyprFlux_Settings
match:title = ^(HyprFlux Settings)$
}
windowrule {
name = windowrule-11
tag = +HyprFlux-Settings
match:class = ^(nwg-displays|nwg-look)$
}
# terminal tags
windowrule {
name = windowrule-12
tag = +terminal
match:class = ^(Alacritty|kitty|kitty-dropterm)$
}
# email tags
windowrule {
name = windowrule-13
tag = +email
match:class = ^([Tt]hunderbird|org.gnome.Evolution)$
}
windowrule {
name = windowrule-14
tag = +email
match:class = ^(eu.betterbird.Betterbird)$
}
# project tags
windowrule {
name = windowrule-15
tag = +projects
match:class = ^(codium|codium-url-handler|VSCodium)$
}
windowrule {
name = windowrule-16
tag = +projects
match:class = ^(VSCode|code-url-handler)$
}
windowrule {
name = windowrule-17
tag = +projects
match:class = ^(jetbrains-.+)$ # JetBrains IDEs
}
# screenshare tags
windowrule {
name = windowrule-18
tag = +screenshare
match:class = ^(com.obsproject.Studio)$
}
# IM tags
# windowrule = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
windowrule {
name = windowrule-19
tag = +im
center = on
float = on
size = (monitor_w*0.6) (monitor_h*0.7)
match:class = ^([Ff]erdium)$
}
windowrule {
name = windowrule-20
tag = +im
match:class = ^([Ww]hatsapp-for-linux)$
}
windowrule {
name = windowrule-21
tag = +im
match:class = ^(ZapZap|com.rtosta.zapzap)$
}
windowrule {
name = windowrule-22
tag = +im
match:class = ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
}
windowrule {
name = windowrule-23
tag = +im
match:class = ^(teams-for-linux)$
}
windowrule {
name = windowrule-24
tag = +im
match:class = ^(im.riot.Riot|Element)$ # Element Matrix client
}
# game tags
windowrule {
name = windowrule-25
tag = +games
match:class = ^(gamescope)$
}
windowrule {
name = windowrule-26
tag = +games
match:class = ^(steam_app_\d+)$
}
# gamestore tags
windowrule {
name = windowrule-27
tag = +gamestore
match:class = ^([Ss]team)$
}
windowrule {
name = windowrule-28
tag = +gamestore
match:title = ^([Ll]utris)$
}
windowrule {
name = windowrule-29
tag = +gamestore
match:class = ^(com.heroicgameslauncher.hgl)$
}
# file-manager tags
windowrule {
name = windowrule-30
tag = +file-manager
match:class = ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
}
windowrule {
name = windowrule-31
tag = +file-manager
match:class = ^(app.drey.Warp)$
}
# wallpaper tags
windowrule {
name = windowrule-32
tag = +wallpaper
match:class = ^([Ww]aytrogen)$
}
# multimedia tags
windowrule {
name = windowrule-33
tag = +multimedia
match:class = ^([Aa]udacious)$
}
# multimedia-video tags
windowrule {
name = windowrule-34
tag = +multimedia_video
match:class = ^([Mm]pv|vlc)$
}
# settings tags
windowrule {
name = windowrule-35
tag = +settings
center = on
match:title = ^(ROG Control)$
}
windowrule {
name = windowrule-36
tag = +settings
match:class = ^(wihotspot(-gui)?)$ # wifi hotspot
}
windowrule {
name = windowrule-37
tag = +settings
match:class = ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
}
windowrule {
name = windowrule-38
tag = +settings
match:class = ^(gnome-disks|wihotspot(-gui)?)$
}
windowrule {
name = windowrule-39
tag = +settings
match:title = (Kvantum Manager)
}
windowrule {
name = windowrule-40
tag = +settings
match:class = ^(file-roller|org.gnome.FileRoller)$ # archive manager
}
windowrule {
name = windowrule-41
tag = +settings
match:class = ^(nm-applet|nm-connection-editor|blueman-manager)$
}
windowrule {
name = windowrule-42
tag = +settings
center = on
match:class = ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
}
windowrule {
name = windowrule-43
tag = +settings
match:class = ^(qt5ct|qt6ct|[Yy]ad)$
}
windowrule {
name = windowrule-44
tag = +settings
match:class = (xdg-desktop-portal-gtk)
}
windowrule {
name = windowrule-45
tag = +settings
match:class = ^(org.kde.polkit-kde-authentication-agent-1)$
}
windowrule {
name = windowrule-46
tag = +settings
match:class = ^([Rr]ofi)$
}
# Custom rule
windowrule {
name = windowrule-47
tile = on
match:class = ^([Cc]hromium)$
}
windowrule {
name = windowrule-48
size = (monitor_w*0.25) (monitor_h*0.55)
float = on
match:class = ^(com.network.manager)$
}
windowrule {
name = windowrule-49
workspace = special:nyx
match:class = ^([Vv]esktop|[Dd]iscord|[Ss]potify)$
}
windowrule {
name = windowrule-255
size = (monitor_w*0.75) (monitor_h*0.80)
float = on
match:class = ^([Bb]itwarden)$
}
# viewer tags
windowrule {
name = windowrule-50
tag = +viewer
match:class = ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
}
windowrule {
name = windowrule-51
tag = +viewer
match:class = ^(evince)$ # document viewer
}
windowrule {
name = windowrule-52
tag = +viewer
match:class = ^(eog|org.gnome.Loupe)$ # image viewer
}
# Some special override rules
windowrule {
name = windowrule-53
no_blur = on
opacity = 1.0
match:tag = multimedia_video*
}
# POSITION
# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
windowrule {
name = windowrule-54
center = on
float = on
size = (monitor_w*0.65) (monitor_h*0.9)
match:tag = HyprFlux_Cheat*
}
windowrule {
name = windowrule-55
center = on
float = on
match:class = ([Tt]hunar)
match:title = negative:(.*[Tt]hunar.*)
}
windowrule {
name = windowrule-56
center = on
float = on
match:tag = HyprFlux-Settings*
}
windowrule {
name = windowrule-57
center = on
match:title = ^(Keybindings)$
}
windowrule {
name = windowrule-58
center = on
size = (monitor_w*0.6) (monitor_h*0.7)
match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
}
windowrule {
name = windowrule-59
move = ((monitor_w*0.61)) ((monitor_h*0.07))
float = on
size = (monitor_w*0.38) (monitor_h*0.38)
pin = on
keep_aspect_ratio = on
match:title = ^(Picture-in-Picture)$
}
#windowrule = move 72% 7%,title:^(Firefox)$
# windowrule to avoid idle for fullscreen apps
#windowrule = idleinhibit fullscreen, class:^(*)$
#windowrule = idleinhibit fullscreen, title:^(*)$
windowrule {
name = windowrule-60
idle_inhibit = fullscreen
match:fullscreen = 1
}
# Discord to workspace 3
windowrule = match:class ^([Vv]esktop|[Dd]iscord|[Ss]potify|[Pp]lexamp)$, workspace 3
windowrule = match:class ^([Pp]lexamp), size 20% 20%
# FLOAT
windowrule {
name = windowrule-75
float = on
opacity = 0.9 0.7
size = (monitor_w*0.7) (monitor_h*0.7)
match:tag = wallpaper*
}
windowrule {
name = windowrule-76
float = on
opacity = 0.8 0.7
size = (monitor_w*0.7) (monitor_h*0.7)
match:tag = settings*
}
windowrule {
name = windowrule-77
float = on
match:tag = viewer*
}
windowrule {
name = windowrule-78
float = on
match:class = ([Zz]oom|onedriver|onedriver-launcher)$
}
windowrule {
name = windowrule-79
float = on
match:class = (org.gnome.Calculator)
match:title = (Calculator)
}
windowrule {
name = windowrule-80
float = on
match:class = ^(mpv|com.github.rafostar.Clapper)$
}
windowrule {
name = windowrule-81
float = on
match:class = ^([Qq]alculate-gtk)$
}
#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
#windowrule = float, title:^(Firefox)$
windowrule {
name = windowrule-82
float = on
match:class = ^(fdm|freedownloadmanager)$
}
windowrule {
name = windowrule-83
float = on
match:class = ^(proton-authenticator)$
}
windowrule {
name = windowrule-84
float = on
match:class = ^([Ww]indscribe)$
}
# windowrule - ######### float popups and dialogue #######
windowrule {
name = windowrule-85
float = on
center = on
match:title = ^(Authentication Required)$
}
windowrule {
name = windowrule-86
float = on
match:class = (codium|codium-url-handler|VSCodium)
match:title = negative:(.*codium.*|.*VSCodium.*)
}
windowrule {
name = windowrule-87
float = on
match:class = ^(com.heroicgameslauncher.hgl)$
match:title = negative:(Heroic Games Launcher)
}
windowrule {
name = windowrule-88
float = on
match:class = ^([Ss]team)$
match:title = negative:^([Ss]team)$
}
windowrule {
name = windowrule-89
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
center = on
match:title = ^(Add Folder to Workspace)$
}
windowrule {
name = windowrule-90
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
center = on
match:title = ^(Save As)$
}
windowrule {
name = windowrule-91
float = on
size = (monitor_w*0.7) (monitor_h*0.6)
match:initial_title = (Open Files)
}
windowrule {
name = windowrule-92
float = on
center = on
size = (monitor_w*0.16) (monitor_h*0.12)
match:title = ^(SDDM Background)$ #HyprFlux YAD for setting SDDM background
}
# END of float popups and dialogue #######
# OPACITY
# windowrule = opacity 0.9 0.7, tag:browser*
# windowrule = opacity 0.9 0.8, tag:projects*
# windowrule = opacity 0.94 0.86, tag:im*
# windowrule = opacity 0.94 0.86, tag:multimedia*
# windowrule = opacity 0.9 0.8, tag:file-manager*
windowrule {
name = windowrule-93
opacity = 0.8 0.7
match:tag = terminal*
}
# windowrule = opacity 0.82 0.75, tag:viewer*
windowrule {
name = windowrule-94
opacity = 0.8 0.7
match:class = ^(gedit|org.gnome.TextEditor|mousepad)$
}
windowrule {
name = windowrule-95
opacity = 0.9 0.8
match:class = ^(deluge)$
}
windowrule {
name = windowrule-96
opacity = 0.9 0.8
match:class = ^(seahorse)$ # gnome-keyring gui
}
# windowrule = opacity 0.95 0.75, title:^(Picture-in-Picture)$
# SIZE
#windowrule = size 25% 25%, title:^(Firefox)$
# PINNING
#windowrule = pin,title:^(Firefox)$
# windowrule - extras
# BLUR & FULLSCREEN
#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
#windowrule = opacity 0.8 0.8, pinned:1
# LAYER RULES
layerrule {
name = layerrule-1
blur = on
ignore_alpha = 0
match:namespace = rofi
}
layerrule {
name = layerrule-2
blur = on
ignore_alpha = 0
match:namespace = notifications
}
layerrule {
name = layerrule-3
blur = on
ignore_alpha = 0.5
match:namespace = quickshell:overview
}
#layerrule = ignorealpha 0.5, tag:notif*
#layerrule = ignorezero, class:^([Rr]ofi)$
#layerrule = blur, class:^([Rr]ofi)$
#layerrule = unset,class:^([Rr]ofi)$
#layerrule = ignorezero, <rofi>
#layerrule = ignorezero, overview
#layerrule = blur, overview

View File

@@ -0,0 +1,12 @@
# Generated with hyprdynamicmonitors freeze.
# This is a template that you can edit, it is just a starter that pulled your current monitor setup,
# adjust as needed.
# You can use templates here etc, see https://github.com/fiffeek/hyprdynamicmonitors/blob/main/examples/basic/hyprconfigs/template.go.tmpl.
# Monitors are given arbitrary tags (the "monitor" prefix and the ID coming from hyprland).
# If you are using tui to edit, leave this at the end of your file (the last monitor config applies)
# and leave the markers.
# <<<<< TUI AUTO START
monitor=desc:LG Electronics LG ULTRAWIDE 0x0002E68A,2560x1080@60.00000,1920x-740,1.00000000,transform,3,vrr,0
monitor=desc:HP Inc. HP 524pf VNG447017D,1920x1080@100.00000,-1920x0,1.00000000,transform,0,vrr,0
monitor=desc:Acer Technologies VG240Y S 0x126191DE,1920x1080@165.00301,0x0,1.00000000,transform,0,vrr,1,bitdepth,10,cm,wide
# <<<<< TUI AUTO END

View File

@@ -0,0 +1,30 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# NOTE: This will be overwritten by NWG-Displays
# once you use and click apply.
#
# *********************************************************** #
# 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, monitor:DP-2, default=true
workspace = 2, monitor:DP-1, default=true
workspace = 3, monitor:HDMI-A-1, default=true
# workspace = 4, monitor:eDP-1
# workspace = 5, monitor:DP-2
# workspace = 6, monitor:DP-2
# workspace = 7, monitor:DP-2
# workspace = 8, monitor:DP-2
# example rules (from wiki)
# workspace = 3, rounding:false, decorate:false
# workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1
# workspace = 8,bordersize:8
# workspace = name:Hello, monitor:DP-1, default:true
# workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true
# workspace = 5, on-created-empty:[float] firefox
# workspace = special:scratchpad, on-created-empty:foot

View File

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

View File

@@ -0,0 +1,146 @@
#!/usr/bin/env python3
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# original code https://gist.github.com/Surendrajat/ff3876fd2166dd86fb71180f4e9342d7
# weather using python
import requests
import json
import os
from pyquery import PyQuery # install using `pip install pyquery`
# weather icons
weather_icons = {
"sunnyDay": "󰖙",
"clearNight": "󰖔",
"cloudyFoggyDay": "",
"cloudyFoggyNight": "",
"rainyDay": "",
"rainyNight": "",
"snowyIcyDay": "",
"snowyIcyNight": "",
"severe": "",
"default": "",
}
# Get current location based on IP address
def get_location():
response = requests.get("https://ipinfo.io")
data = response.json()
loc = data["loc"].split(",")
return float(loc[0]), float(loc[1])
# Get latitude and longitude
latitude, longitude = get_location()
# Open-Meteo API endpoint
url = f"https://weather.com/en-PH/weather/today/l/{latitude},{longitude}"
# manual location_id
# NOTE: if you want to add manually, make sure you disable def get_location above
# 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()
# current status phrase
status = html_data("div[data-testid='wxPhrase']").text()
status = f"{status[:16]}.." if len(status) > 17 else status
# status code
status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2]
# status icon
icon = (
weather_icons[status_code]
if status_code in weather_icons
else weather_icons["default"]
)
# 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"
# 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}"
# wind speed
wind_speed = str(html_data("span[data-testid='Wind'] > span").text())
wind_text = f"{wind_speed}"
# humidity
humidity = html_data("span[data-testid='PercentageValue']").text()
humidity_text = f"{humidity}"
# visibility
visibility = html_data("span[data-testid='VisibilityValue']").text()
visibility_text = f"{visibility}"
# air quality index
air_quality_index = html_data("text[data-testid='DonutChartValue']").text()
# 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
# 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"{visibility_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"{visibility_text} AQI{air_quality_index}\n"
)
try:
with open(os.path.expanduser("~/.cache/.weather_cache"), "w") as file:
file.write(simple_weather)
except Exception as e:
print(f"Error writing to cache: {e}")

View File

@@ -0,0 +1,87 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# weather info from wttr. https://github.com/chubin/wttr.in
# Remember to add city
city=
cachedir="$HOME/.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 > "$HOME/.cache/.weather_cache"

View File

@@ -0,0 +1,69 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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
# Variables
iDIR="$HOME/.config/swaync/images"
rofi_theme="$HOME/.config/rofi/config-zsh-theme.rasi"
if [ -n "$(grep -i nixos < /etc/os-release)" ]; then
notify-send -i "$iDIR/note.png" "NOT Supported" "Sorry NixOS does not support this HyprFlux feature"
exit 1
fi
themes_dir="$HOME/.oh-my-zsh/themes"
file_extension=".zsh-theme"
themes_array=($(find -L "$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 $rofi_theme"
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
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/ja.png" "Random theme:" "selected: $random_theme"
else
# Set theme to the selected choice
theme_to_set="$choice"
notify-send -i "$iDIR/ja.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/ja.png" "OMZ theme" "applied. restart your terminal"
else
notify-send -i "$iDIR/error.png" "E-R-R-O-R" "~.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,25 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
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,26 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# old animations
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
bezier = linear, 0.0, 0.0, 1.0, 1.0
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 = slow, 0, 0.85, 0.3, 1
bezier = overshot, 0.7, 0.6, 0.1, 1.1
bezier = bounce, 1.1, 1.6, 0.1, 0.85
bezier = sligshot, 1, -1, 0.15, 1.25
bezier = nice, 0, 6.9, 0.5, -4.20
animation = windowsIn, 1, 5, slow, popin
animation = windowsOut, 1, 5, winOut, popin
animation = windowsMove, 1, 5, wind, slide
animation = border, 1, 10, linear
animation = borderangle, 1, 180, linear, loop #used by rainbow borders and rotating colors
animation = fade, 1, 5, overshot
animation = workspaces, 1, 5, wind
animation = windows, 1, 5, bounce, popin
}

View File

@@ -0,0 +1,4 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
animations {
enabled = no
}

View File

@@ -0,0 +1,39 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "End-4"
# credit https://github.com/end-4/dots-hyprland
animations {
enabled = true
# Animation curves
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
animation = windows, 1, 3, md3_decel, popin 60%
animation = windowsIn, 1, 3, md3_decel, popin 60%
animation = windowsOut, 1, 3, md3_accel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 4.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
# animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}

View File

@@ -0,0 +1,33 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Vertical"
# credit https://github.com/prasanthrangan/hyprdots
animations {
enabled = yes
bezier = fluent_decel, 0, 0.2, 0.4, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutCubic, 0.33, 1, 0.68, 1
bezier = easeinoutsine, 0.37, 0, 0.63, 1
# Windows
animation = windowsIn, 1, 1.5, easeinoutsine, popin 60% # window open
animation = windowsOut, 1, 1.5, easeOutCubic, popin 60% # window close.
animation = windowsMove, 1, 1.5, easeinoutsine, slide # everything in between, moving, dragging, resizing.
# Fading
animation = fade, 1, 2.5, fluent_decel
animation = fadeLayersIn, 0
animation = border, 0
# Layers
animation = layers, 1, 1.5, easeinoutsine, popin
# Workspaces
#animation = workspaces, 1, 3, fluent_decel, slidefade 30% # styles: slide, slidevert, fade, slidefade, slidefadevert
animation = workspaces, 1, 3, fluent_decel, slidefadevert 30% # styles: slide, slidevert, fade, slidefade, slidefadevert
animation = specialWorkspace, 1, 2, fluent_decel, slidefade 10%
}

View File

@@ -0,0 +1,20 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Default"
# credit https://github.com/prasanthrangan/hyprdots
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
animation = specialWorkspace, 1, 5, wind, slidevert
}

View File

@@ -0,0 +1,26 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Minimal-1"
# credit https://github.com/prasanthrangan/hyprdots-
animations {
enabled = true
# █▄▄ █▀▀ ▀█ █ █▀▀ █▀█   █▀▀ █░█ █▀█ █░█ █▀▀
# █▄█ ██▄ █▄ █ ██▄ █▀▄   █▄▄ █▄█ █▀▄ ▀▄▀ ██▄
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
}

View File

@@ -0,0 +1,15 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Minimal-2"
# credit https://github.com/prasanthrangan/hyprdots
animations {
enabled = yes
bezier = quart, 0.25, 1, 0.5, 1
animation = windows, 1, 6, quart, slide
animation = border, 1, 6, quart
animation = borderangle, 1, 6, quart
animation = fade, 1, 6, quart
animation = workspaces, 1, 6, quart
}

View File

@@ -0,0 +1,40 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Optimized"
# credit https://github.com/prasanthrangan/hyprdots
animations {
enabled = true
bezier = wind, 0.05, 0.85, 0.03, 0.97
bezier = winIn, 0.07, 0.88, 0.04, 0.99
bezier = winOut, 0.20, -0.15, 0, 1
bezier = liner, 1, 1, 1, 1
bezier = md3_standard, 0.12, 0, 0, 1
bezier = md3_decel, 0.05, 0.80, 0.10, 0.97
bezier = md3_accel, 0.20, 0, 0.80, 0.08
bezier = overshot, 0.05, 0.85, 0.07, 1.04
bezier = crazyshot, 0.1, 1.22, 0.68, 0.98
bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94
bezier = menu_decel, 0.05, 0.82, 0, 1
bezier = menu_accel, 0.20, 0, 0.82, 0.10
bezier = easeInOutCirc, 0.75, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.48, 0.38, 1
bezier = easeOutExpo, 0.10, 0.94, 0.23, 0.98
bezier = softAcDecel, 0.20, 0.20, 0.15, 1
bezier = md2, 0.30, 0, 0.15, 1
bezier = OutBack, 0.28, 1.40, 0.58, 1
bezier = easeInOutCirc, 0.78, 0, 0.15, 1
animation = border, 1, 1.6, liner
animation = borderangle, 1, 82, liner, once
animation = windowsIn, 1, 3.2, winIn, slide
animation = windowsOut, 1, 2.8, easeOutCirc
animation = windowsMove, 1, 3.0, wind, slide
animation = fade, 1, 1.8, md3_decel
animation = layersIn, 1, 1.8, menu_decel, slide
animation = layersOut, 1, 1.5, menu_accel
animation = fadeLayersIn, 1, 1.6, menu_decel
animation = fadeLayersOut, 1, 1.8, menu_accel
animation = workspaces, 1, 4.0, menu_decel, slide
animation = specialWorkspace, 1, 2.3, md3_decel, slidefadevert 15%
}

View File

@@ -0,0 +1,14 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Classic"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}

View File

@@ -0,0 +1,19 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Dynamic"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
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, loop
animation = fade, 1, 10, default
animation = workspaces, 1, 5, wind
}

View File

@@ -0,0 +1,23 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Fast"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
bezier = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = fluent_decel, 0.1, 1, 0, 1
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
animation = windows, 1, 3, md3_decel, popin 60%
animation = border, 1, 10, default
animation = fade, 1, 2.5, md3_decel
animation = workspaces, 1, 3.5, easeOutExpo, slide
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}

View File

@@ -0,0 +1,19 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "High"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
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
}

View File

@@ -0,0 +1,19 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Moving"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
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, 5, overshot, slide
animation = windowsOut, 1, 3, smoothOut
animation = windowsIn, 1, 3, smoothOut
animation = windowsMove, 1, 4, smoothIn, slide
animation = border, 1, 5, default
animation = fade, 1, 5, smoothIn
animation = fadeDim, 1, 5, smoothIn
animation = workspaces, 1, 6, default
}

View File

@@ -0,0 +1,14 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Standard"
# credit https://github.com/mylinuxforwork/dotfiles
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}

View File

@@ -0,0 +1,54 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Me-1"
# credit https://github.com/mahaveergurjar
animations {
enabled = true
# Animation curves
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 = linear, 0, 0, 1, 1
bezier = md3_standard, 0.2, 0, 0, 1
bezier = md3_decel, 0.05, 0.7, 0.1, 1
bezier = md3_accel, 0.3, 0, 0.8, 0.15
bezier = overshot, 0.05, 0.9, 0.1, 1.1
bezier = crazyshot, 0.1, 1.5, 0.76, 0.92
bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
bezier = menu_decel, 0.1, 1, 0, 1
bezier = menu_accel, 0.38, 0.04, 1, 0.07
bezier = easeInOutCirc, 0.85, 0, 0.15, 1
bezier = easeOutCirc, 0, 0.55, 0.45, 1
bezier = easeOutExpo, 0.16, 1, 0.3, 1
bezier = softAcDecel, 0.26, 0.26, 0.15, 1
bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration
# Animation configs
# animation = windows, 1, 3, md3_decel, popin 60%
# animation = windowsIn, 1, 3, md3_decel, popin 60%
# animation = windowsOut, 1, 3, md3_accel, popin 60%
# animation = windows, 1, 6, wind, slide
animation = border, 1, 1, liner
animation = borderangle, 1, 30, liner, once
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, 10, default
animation = fade, 1, 3, md3_decel
# animation = layers, 1, 2, md3_decel, slide
animation = layersIn, 1, 3, menu_decel, slide
animation = layersOut, 1, 1.6, menu_accel
animation = fadeLayersIn, 1, 2, menu_decel
animation = fadeLayersOut, 1, 4.5, menu_accel
animation = workspaces, 1, 7, menu_decel, slide
animation = workspaces, 1, 5, wind
# animation = workspaces, 1, 2.5, softAcDecel, slide
# animation = workspaces, 1, 7, menu_decel, slidefade 15%
animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15%
animation = specialWorkspace, 1, 3, md3_decel, slidevert
}

View File

@@ -0,0 +1,29 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# name "Me-2"
# credit https://github.com/mahaveergurjar
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,8 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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,21 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# HyprFlux static color palette
$background = rgb(010102)
$foreground = rgb(FDF8FE)
$color0 = rgb(313131)
$color1 = rgb(09050C)
$color2 = rgb(221647)
$color3 = rgb(2C1A40)
$color4 = rgb(5E3887)
$color5 = rgb(7344A6)
$color6 = rgb(BAB0BD)
$color7 = rgb(F3ECF5)
$color8 = rgb(AAA5AC)
$color9 = rgb(0B0711)
$color10 = rgb(2D1D5F)
$color11 = rgb(3B2355)
$color12 = rgb(7D4AB4)
$color13 = rgb(9A5BDD)
$color14 = rgb(F8EAFC)
$color15 = rgb(F3ECF5)

View File

@@ -0,0 +1,50 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Hypridle
# Original config submitted by https://github.com/SherLock707
$iDIR="$HOME/.config/swaync/images/profile-pic.jpg"
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 -i $iDIR " You are idle!" # command to run when timeout has passed
on-resume = notify-send -i $iDIR " Oh! you're Back" " Hello !!!" # 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 -i $iDIR " System 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 -i $iDIR " Oh! you're back" "Hello !!!" # command to run when activity is detected after timeout has fired.
# }

View File

@@ -0,0 +1,15 @@
# Generated by HyprMod
general:allow_tearing = 1
general:snap:enabled = 0
misc:vrr = 1
# Monitors
monitor = DP-2, 1920x1080@165.00Hz, 0x0, 1, bitdepth, 10, cm, wide
# Keybinds
unbind = SUPER SHIFT, Print
unbind = SUPER, up
bind = SUPER, Print, exec, hyprshot -o $HOME/Pictures/Screenshots -m region
bind = SUPER, up, movefocus, u
bind = SUPER SHIFT, Print, exec, hyprshot -o $HOME/Pictures/Screenshots -m window

View File

@@ -0,0 +1,34 @@
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# always refer to Hyprland wiki
# https://wiki.hyprland.org/
# Initial boot script enable to apply initial wallpapers, theming, new settings etc.
# suggest not to change this or delete this including deleting referrence file in ~/.config/hypr/.initial_startup_done
# as long as the referrence file is present, this initial-boot.sh will not execute
exec-once = $HOME/.config/hypr/initial-boot.sh
# ## This is where you want to start tinkering
$UserConfigs = $HOME/.config/hypr/UserConfigs # User Configs directory path
source= $UserConfigs/Startup_Apps.conf # put your start-up packages on this file
source= $UserConfigs/ENVariables.conf # Environment variables to load
source= $UserConfigs/WindowRules.conf # all about Hyprland Window Rules and Layer Rules
source= $UserConfigs/UserDecorations.conf # Decorations config file
source= $UserConfigs/UserAnimations.conf # Animation config file
source= $UserConfigs/Keybinds.conf # Put your own keybinds here
source= $UserConfigs/UserSettings.conf # Main Hyprland Settings.
# nwg-displays
source= $UserConfigs/monitors.conf
source= $UserConfigs/workspaces.conf
exec = gsettings set org.gnome.desktop.interface cursor-theme Future-black Cursors
# HyprMod managed settings
source = /home/thomas/.config/hypr/hyprland-gui.conf

View File

@@ -0,0 +1,120 @@
# BACKGROUND
background {
monitor =
path = screenshot
blur_passes = 3
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
}
# GENERAL
general {
no_fade_in = false
grace = 0
disable_loading_bar = false
}
# Profie-Photo
image {
monitor = DP-2
path = $HOME/.config/hypr/hyprlock/profile-picture.jpg
border_size = 2
border_color = rgba(255, 255, 255, 0)
size = 300
rounding = -1
rotate = 0
reload_time = -1
reload_cmd =
position = 0, 0
halign = center
valign = center
}
# Day-Month-Date
label {
monitor = DP-2
text = cmd[update:1000] echo -e "$(LC_TIME=en_US.UTF-8 date +"%A, %B %d")"
color = rgba(216, 222, 233, 0.90)
font_size = 25
font_family = SF Pro Display Semibold
position = 0, 400
halign = center
valign = center
}
# Time
label {
monitor = DP-2
text = cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"
color = rgba(216, 222, 233, 0.90)
font_size = 120
font_family = SF Pro Display Bold
position = 0, 280
halign = center
valign = center
}
# USER-BOX
shape {
monitor = DP-2
size = 280, 55
color = rgba(255, 255, 255, .1)
rounding = -1
border_size = 0
border_color = rgba(253, 198, 135, 0)
rotate = 0
xray = false # if true, make a "hole" in the background (rectangle of specified size, no rotation)
position = 0, -250
halign = center
valign = center
}
# USER
label {
monitor = DP-2
text =  $USER
color = rgba(216, 222, 233, 0.80)
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 = 18
font_family = SF Pro Display Bold
position = 0, -250
halign = center
valign = center
}
# INPUT FIELD
input-field {
monitor = DP-2
size = 280, 55
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 = rgb(200, 200, 200)
fade_on_empty = false
font_family = SF Pro Display Bold
placeholder_text = <i><span foreground="##ffffff99">🔒 Enter Pass</span></i>
hide_input = false
position = 0, -310
halign = center
valign = center
}
# CURRENT SONG
label {
monitor = DP-2
text = cmd[update:1000] echo "$(~/.config/hypr/hyprlock/Scripts/songdetail.sh)"
color = rgba(255, 255, 255, 0.6)
font_size = 18
font_family = JetBrains Mono Nerd, SF Pro Display Bold
position = 0, 90
halign = center
valign = bottom
}

View File

@@ -0,0 +1,5 @@
#!/bin/bash
song_info=$(playerctl metadata --format ' {{title}} 󰝚 󰚺 {{artist}}  ')
echo "$song_info"

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -0,0 +1,39 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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
kvantum_theme="catppuccin-mocha-blue"
color_scheme="prefer-dark"
gtk_theme="Material-DeepOcean-BL"
icon_theme="Papirus-Dark"
cursor_theme="Moga-Cursor"
# Check if a marker file exists.
if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then
sleep 1
# 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 &
# waybar style
#if [ -L "$HOME/.config/waybar/config" ]; then
## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css"
# "$scriptsDir/Refresh.sh" > /dev/null 2>&1 &
#fi
# Create a marker file to indicate that the script has been executed.
touch "$HOME/.config/hypr/.initial_startup_done"
exit
fi

View File

@@ -0,0 +1,16 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Airplane Mode. Turning on or off all wifi using rfkill.
notif="$HOME/.config/swaync/images/ja.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,31 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# For applying Animations from different users
# Check if rofi is already running
if pidof rofi >/dev/null; then
pkill rofi
fi
# Variables
iDIR="$HOME/.config/swaync/images"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
animations_dir="$HOME/.config/hypr/animations"
UserConfigs="$HOME/.config/hypr/UserConfigs"
rofi_theme="$HOME/.config/rofi/config-Animations.rasi"
msg='❗NOTE:❗ This will copy animations into UserAnimations.conf'
# list of animation files, sorted alphabetically with numbers first
animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V)
# Rofi Menu
chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg")
# Check if a file was selected
if [[ -n "$chosen_file" ]]; then
full_path="$animations_dir/$chosen_file.conf"
cp "$full_path" "$UserConfigs/UserAnimations.conf"
notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Hyprland Animation Loaded"
fi
sleep 1
"$SCRIPTSDIR/RefreshNoWaybar.sh"

View File

@@ -0,0 +1,69 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Script for Monitor backlights (if supported) using brightnessctl
iDIR="$HOME/.config/swaync/icons"
notification_timeout=1000
step=10 # INCREASE/DECREASE BY THIS VALUE
# Get current brightness as an integer (without %)
get_brightness() {
brightnessctl -m | cut -d, -f4 | tr -d '%'
}
# Determine the icon based on brightness level
get_icon_path() {
local brightness=$1
local level=$(( (brightness + 19) / 20 * 20 )) # Round up to next 20
if (( level > 100 )); then
level=100
fi
echo "$iDIR/brightness-${level}.png"
}
# Send notification
send_notification() {
local brightness=$1
local icon_path=$2
notify-send -e \
-h string:x-canonical-private-synchronous:brightness_notif \
-h int:value:"$brightness" \
-u low \
-i "$icon_path" \
"Screen" "Brightness: ${brightness}%"
}
# Change brightness and notify
change_brightness() {
local delta=$1
local current new icon
current=$(get_brightness)
new=$((current + delta))
# Clamp between 5 and 100
(( new < 5 )) && new=5
(( new > 100 )) && new=100
brightnessctl set "${new}%"
icon=$(get_icon_path "$new")
send_notification "$new" "$icon"
}
# Main
case "$1" in
"--get")
get_brightness
;;
"--inc")
change_brightness "$step"
;;
"--dec")
change_brightness "-$step"
;;
*)
get_brightness
;;
esac

View File

@@ -0,0 +1,51 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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 -h boolean:SWAYNC_BYPASS_DND:true -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,49 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Clipboard Manager. This script uses cliphist, rofi, and wl-copy.
# Variables
rofi_theme="$HOME/.config/rofi/config-clipboard.rasi"
msg='👀 **note** CTRL DEL = cliphist del (entry) or ALT DEL - cliphist wipe (all)'
# 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 $rofi_theme < <(cliphist list) \
-mesg "$msg"
)
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

View File

@@ -0,0 +1,242 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# For Dark and Light switching
# Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate directories
# 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"
hyprflux_rofi="$HOME/.config/rofi/wallust/hyprflux-colors.rasi"
kitty_conf="$HOME/.config/kitty/kitty.conf"
# intial kill process
for pid in waybar rofi swaync ags swaybg; do
killall -SIGUSR1 "$pid"
done
# Initialize awww if needed
awww query || awww-daemon --format xrgb
# Set awww options
awww="awww 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" > "$HOME/.cache/.theme_mode"
}
# Function to notify user
notify_user() {
notify-send -u low -i "$notif" " Switching to" " $1 mode"
}
# 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 -L "$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 command -v ags >/dev/null 2>&1; then
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
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_kitty in $(pidof kitty); do
kill -SIGUSR1 "$pid_kitty"
done
# Set Dynamic Wallpaper for Dark or Light Mode
if [ "$next_mode" = "Dark" ]; then
next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
else
next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)"
fi
# Update wallpaper using awww command
$awww "${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 '/^background:/s/.*/background: rgba(0,0,0,0.7);/' $hyprflux_rofi
else
sed -i '/^background:/s/.*/background: rgba(255,255,255,0.9);/' $hyprflux_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
# kill process
for pid1 in waybar rofi swaync ags swaybg; do
killall "$pid1"
done
sleep 1
${SCRIPTSDIR}/Refresh.sh
sleep 0.5
# Display notifications for theme and icon changes
notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode"
exit 0

View File

@@ -0,0 +1,10 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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,61 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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,42 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# For applying Pre-configured Monitor Profiles
# Check if rofi is already running
if pidof rofi > /dev/null; then
pkill rofi
fi
# Variables
iDIR="$HOME/.config/swaync/images"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
monitor_dir="$HOME/.config/hypr/Monitor_Profiles"
target="$HOME/.config/hypr/monitors.conf"
rofi_theme="$HOME/.config/rofi/config-Monitors.rasi"
msg='❗NOTE:❗ This will overwrite $HOME/.config/hypr/monitors.conf'
# Define the list of files to ignore
ignore_files=(
"README"
)
# list of Monitor Profiles, sorted alphabetically with numbers first
mon_profiles_list=$(find -L "$monitor_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V)
# Remove ignored files from the list
for ignored_file in "${ignore_files[@]}"; do
mon_profiles_list=$(echo "$mon_profiles_list" | grep -v -E "^$ignored_file$")
done
# Rofi Menu
chosen_file=$(echo "$mon_profiles_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg")
if [[ -n "$chosen_file" ]]; then
full_path="$monitor_dir/$chosen_file.conf"
cp "$full_path" "$target"
notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Monitor Profile Loaded"
fi
sleep 1
${SCRIPTSDIR}/RefreshNoWaybar.sh &

View File

@@ -0,0 +1,34 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# This script starts the first available Polkit agent from a list of possible locations
# List of potential Polkit agent file paths
polkit=(
"/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
"/usr/libexec/hyprpolkitagent"
"/usr/lib/hyprpolkitagent"
"/usr/lib/hyprpolkitagent/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
# Loop through the list of paths
for file in "${polkit[@]}"; do
if [ -e "$file" ] && [ ! -d "$file" ]; then
echo "Found: $file — executing..."
exec "$file"
executed=true
break
fi
done
# Fallback message if nothing executed
if [ "$executed" == false ]; then
echo "No valid Polkit agent found. Please install one."
fi

View File

@@ -0,0 +1,16 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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 &

View File

@@ -0,0 +1,55 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# Scripts for refreshing waybar, rofi, swaync
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
# ensure waybar fully reloads
killall -SIGUSR2 waybar
# quit ags & relaunch ags
#ags -q && ags &
# quit quickshell & relaunch quickshell
pkill qs && qs &
# some process to kill
for pid in $(pidof waybar rofi swaync ags swaybg); do
kill -SIGUSR1 "$pid"
done
#Restart waybar
sleep 1
waybar &
# relaunch swaync
sleep 0.5
swaync > /dev/null 2>&1 &
# reload swaync
swaync-client --reload-config
# 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,77 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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 -L $sDIR/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find -L $iDIR/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find -L $userDIR/$defaultTheme/stereo -name "$soundoption" -print -quit)
if ! test -f "$sound_file"; then
sound_file=$(find -L $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,32 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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/ja.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,143 @@
#!/bin/bash
# HyprFlux — https://github.com/ahmad9059/HyprFlux
# 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 -h boolean:SWAYNC_BYPASS_DND:true -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 -h boolean:SWAYNC_BYPASS_DND:true -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 -h boolean:SWAYNC_BYPASS_DND:true -i "$iDIR/volume-mute.png" " Mute"
elif [ "$(pamixer --get-mute)" == "true" ]; then
pamixer -u && notify-send -e -u low -h boolean:SWAYNC_BYPASS_DND:true -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 -h boolean:SWAYNC_BYPASS_DND:true -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 -h boolean:SWAYNC_BYPASS_DND:true -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" -h boolean:SWAYNC_BYPASS_DND:true -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