# JeremyStarTM's Hyprland configuration ############################### ### CONFIGURATION VARIABLES ### ############################### # User directory $dirHome = /home/jeremystartm/ # Settings # -> Keyboard $settingsKeyboardNumlock = 0 $settingsKeyboardLayout = de $settingsKeyboardVariant = # -> Mouse $settingsMouseLefthanded = 0 $settingsMouseSensitivity = 0 $settingsMouseFocusFollow = 1 # -> Tablet $settingsTabletMonitor = DP-1 $settingsTabletRegionPosition = 0 0 $settingsTabletRegionSize = 2560 1440 $settingsTabletRelative = 0 $settingsTabletRotated = 0 # -> etc $settingsCursorSize = 24 $settingsEnableResizeOnBorder = 0 $settingsEnableTearing = 1 $settingsEnableNoDirectScanout = 1 $settingsEnableShadows = 1 $settingsEnableBlur = 1 $settingsEnableAnimations = 1 # Programs $programsTerminal = konsole $programsFM = dolphin $programsBrowser = librewolf $programsMenu = j4-dmenu-desktop --dmenu=$dirHome/.local/bin/launch-menu $programsMenuKill = bemenu $programsClipboard = $dirHypr/scripts.d/clipboard.sh $programsNotiDaemon = fnott $programsAuthAgent = /usr/lib/polkit-kde-authentication-agent-1 $programsBar = waybar # Internal variables, do not change $dirHypr = $dirHome/.config/hypr/ $programsJobrunner = $dirHome/.local/bin/jobrunner-runjob # Application startup # -> Jobrunner exec=exec env JOBRUNNER_DISABLEOUTPUT=y $dirHome/.local/bin/jobrunner # -> Programs exec=pkill -9 $programsNotiDaemon; $programsNotiDaemon exec=pkill -9 $programsAuthAgent; $programsAuthAgent exec=pkill -9 $programsBar; $programsBar # -> Clipboard exec=pkill -9 wl-paste exec=wl-paste --type text --watch cliphist store exec=wl-paste --type image --watch cliphist store # -> Screen sharing exec=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # -> Autostart exec-once=sleep 1s;$programsJobrunner "exec $dirHypr/scripts.d/commands-startup.sh" exec=$programsJobrunner "exec $dirHypr/scripts.d/commands-reload.sh" # Env # -> Cursor env = XCURSOR_SIZE,$settingsCursorSize env = HYPRCURSOR_THEME,Posy_Cursor env = HYPRCURSOR_SIZE,$settingsCursorSize # -> XDG env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland # -> Qt env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt6ct # -> Enforce wayland backends env = QT_QPA_PLATFORM,wayland;xcb env = GTK_BACKEND,wayland,x11,* env = SDL_VIDEODRIVER,wayland,x11 env = CLUTTER_BACKEND,wayland env = ELECTRON_OZONE_PLATFORM_HINT=wayland # HYPRLAND CONFIGURATION OPTIONS # -> Bindings # --> Programs bind = SUPER, SUPER_L, exec, pkill -9 $programsMenuKill || $programsJobrunner $programsMenu bind = SUPER, V, exec, exec $programsJobrunner $programsClipboard" bind = SUPER, A, exec, exec $programsJobrunner $programsTerminal bind = SUPER, S, exec, exec $programsJobrunner $programsFM bind = SUPER, D, exec, exec $programsJobrunner $programsBrowser # --> Window size/position manipulation bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow # --> Window state bind = SUPER, TAB, exec, hyprctl kill bind = SUPER, Q, exec, $dirHypr/scripts.d/kill-active.sh bind = SUPER, W, togglefloating bind = SUPER, F, fullscreen # --> Special workspace bind = SUPER, E, togglespecialworkspace, magic bind = SUPER, Y, movetoworkspace, special:magic bind = SUPER_SHIFT, Y, movetoworkspace, 0 # --> Session management bindt = SUPER_SHIFT, M, exec, $programsJobrunner hyprctl reload bindt = SUPER_SHIFT, L, exec, cd $dirHypr;hyprlock bindt = SUPER_SHIFT, Q, exit bindt = SUPER_SHIFT, W, exec, poweroff bindt = SUPER_SHIFT, E, exec, reboot # -> Media keys # --> Audio # ---> Output binde = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1% binde = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1% bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle # ---> Input binde = SHIFT, XF86AudioRaiseVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ +1% binde = SHIFT, XF86AudioLowerVolume, exec, pactl set-source-volume @DEFAULT_SOURCE@ -1% bind = SHIFT, XF86AudioMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # --> Music # ---> Playback bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioStop, exec, playerctl stop # ---> Selection bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioPrev, exec, playerctl previous # -> Window rules # --> Supress 'maximize' windowrulev2 = suppressevent maximize, class:.* # --> Fix for XWaylandVideoBridge windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ # -> etc general { border_size = 2 no_border_on_floating = false gaps_in = 10 gaps_out = 20 gaps_workspaces = 0 col.inactive_border = 0xffd60532 0xff6931fe 0 col.active_border = 0xffffffff col.nogroup_border = 0xff000000 col.nogroup_border_active = 0xffffffff layout = dwindle no_focus_fallback = true resize_on_border = $settingsEnableResizeOnBorder allow_tearing = $settingsEnableTearing } decoration { rounding = 8 active_opacity = 1 inactive_opacity = 0.95 fullscreen_opacity = 1 drop_shadow = $settingsEnableShadows shadow_range = 4 dim_inactive = 1 dim_strength = 0.05 dim_special = 0.5 blur { enabled = $settingsEnableBlur ignore_opacity = 1 xray = 1 size = 6 noise = 0.03 # increased noise value for a slightly more "rough" look } } animations { enabled = $settingsEnableAnimations bezier=plain, 0, 0, 1, 1 # straight curve bezier=easeInSine, 0.12, 0, 0.39, 0 # slowest ease in bezier=easeInQuart, 0.5, 0, 0.75, 0 # slow ease in bezier=easeInQuint, 0.64, 0, 0.78, 0 # fast ease in bezier=easeInExpo, 0.7, 0, 0.84, 0 # fastest ease in bezier=easeOutSine, 0.61, 1, 0.88, 1 # slowest ease out bezier=easeOutQuart, 0.25, 1, 0.5, 1 # slow ease out bezier=easeOutQuint, 0.22, 1, 0.36, 1 # fast ease out bezier=easeOutExpo, 0.16, 1, 0.3, 1 # fastest ease out animation=windowsIn, 1, 4, easeOutSine # window open animation animation=windowsOut, 1, 5, easeInSine # window close animation #animation=windowsMove, 1, 6, easeOutExpo # window move/drag/resize animation animation=fadeIn, 1, 4, easeOutSine # window open fade animation animation=fadeOut, 1, 4, easeOutSine # window close fade animation animation=fadeSwitch, 1, 10, easeOutQuart # focus switch opacity fade animation animation=fadeShadow, 1, 10, easeOutQuart # focus switch shadow fade animation animation=fadeDim, 1, 10, easeOutQuart # focus switch dim fade animation animation=border, 1, 2, easeOutExpo # focus switch border animation animation=borderangle, 1, 100, plain, loop # border color switch animation #animation=workspaces, 1, 10, easeInQuart, slidefade # workspace switch animation #animation=specialWorkspace, 1, 10, easeInQuart, slidefade # special workspace toggle animation } input { kb_layout = $settingsKeyboardLayout kb_variant = $settingsKeyboardVariant follow_mouse = $settingsMouseFocusFollow numlock_by_default = $settingsKeyboardNumlock left_handed = $settingsMouseLefthanded sensitivity = $settingsMouseSensitivity touchpad { disable_while_typing = false } tablet { output = $settingsTabletMonitor region_position = $settingsTabletRegionPosition region_size = $settingsTabletRegionSize relative_input = $settingsTabletRelative left_handed = $settingsTabletRotated } } gestures { workspace_swipe = 0 } misc { disable_hyprland_logo = 0 disable_splash_rendering = 0 force_default_wallpaper = 2 font_family = Fira Code splash_font_family = Jost vrr = 0 animate_manual_resizes = 1 animate_mouse_windowdragging = 1 disable_autoreload = 1 focus_on_activate = 0 no_direct_scanout = $settingsEnableNoDirectScanout } # -> Issue (re)load success message exec=hyprctl notify 5 5000 0 " Configuration loaded successfully" # -> Include external configuration files source=hyprland.conf.d/*.conf