hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.25k stars 895 forks source link

Hyprland process constantly at 40% CPU #7351

Closed iqbal1975 closed 1 month ago

iqbal1975 commented 2 months ago

Regression?

Yes

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259 (props: bump version to 0.42.0). Date: Wed Aug 7 19:17:10 2024 Tag: v0.42.0, commits: 5069 flags: (if any) System Information: System name: Linux Node name: feynman Release: 6.10.4-1-cachyos Version: #1 SMP PREEMPT_DYNAMIC Sun, 11 Aug 2024 17:20:33 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller [8086:0416] (rev 06) (prog-if 00 [VGA controller]) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK106GLM [Quadro K2100M] [10de:11fc] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.256.02 Thu May 2 14:37:44 UTC 2024 os-release: NAME="Archcraft" PRETTY_NAME="Archcraft" ID=archcraft ID_LIKE=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archcraft.io" DOCUMENTATION_URL="https://wiki.archcraft.io" SUPPORT_URL="https://www.reddit.com/r/archcraft" BUG_REPORT_URL="https://github.com/archcraft-os/archcraft/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archcraft plugins: hyprexpo by Vaxry ver 1.0 hyprtrails by Vaxry ver 1.0 hyprwinwrap by Vaxry ver 1.0 ======Config-Start====== Config File: /home/iqbal/.config/hypr/hyprland.conf: Read Succeeded # # ██╗ ██╗██╗ ██╗██████╗ ██████╗ # ██║ ██║╚██╗ ██╔╝██╔══██╗██╔══██╗ # ███████║ ╚████╔╝ ██████╔╝██████╔╝ # ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══██╗ # ██║ ██║ ██║ ██║ ██║ ██║ # ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ # # Copyright (C) 2020-2024 Aditya Shakya # Modified 2024 Iqbal Thaker # # Hyprland configuration file for Archcraft # Version: 0.42.0-1 # Please note not all available settings / options are set here. # For a full list, see the wiki # █▀ █▀█ █░█ █▀█ █▀▀ █▀▀ # ▄█ █▄█ █▄█ █▀▄ █▄▄ ██▄ # Setting variables $mainMod = SUPER $hyprDir = $HOME/.config/hypr $modules = $HOME/.config/hypr/modules $scriptsDir = $HOME/.config/hypr/scripts $theme = $HOME/.config/hypr/theme #-- Source Files ---------------------------------------------------------- # source = $theme/hyprtheme.conf # source = $theme/hyprtheme_decay_green.conf # source = $theme/hyprtheme_tokynight.conf source = $theme/hyprtheme_catppuccin_mocha.conf source = $modules/env_var.conf # source = $modules/env_var_nvidia.conf source = $modules/keybinds.conf source = $modules/media-binds.conf source = $modules/monitors.conf source = $modules/plugins.conf # █▀▀ █▀▀ █▄░█ █▀▀ █▀█ ▄▀█ █░░ # █▄█ ██▄ █░▀█ ██▄ █▀▄ █▀█ █▄▄ #-- General --------------------------------------------------------------- general { sensitivity = 1.0 border_size = $hypr_border_size no_border_on_floating = false gaps_in = $hypr_gaps_in gaps_out = $hypr_gaps_out gaps_workspaces = 0 col.active_border = $active_border_col_1 $active_border_col_2 $gradient_angle col.inactive_border = $inactive_border_col_1 $inactive_border_col_2 $gradient_angle col.nogroup_border = $active_border_col_1 $active_border_col_2 $gradient_angle col.nogroup_border_active = $active_border_col_1 $active_border_col_2 $gradient_angle layout = dwindle # layout = hy3 # layout = master no_focus_fallback = false apply_sens_to_raw = false resize_on_border = true extend_border_grab_area = 15 hover_icon_on_border = true allow_tearing = false resize_corner = 0 } # █▀▄ █▀▀ █▀▀ █▀█ █▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # █▄▀ ██▄ █▄▄ █▄█ █▀▄ █▀█ ░█░ █ █▄█ █░▀█ #-- Decoration ------------------------------------------------------------ decoration { # █▀█ █▀█ █░█ █▄░█ █▀▄ █▀▀ █▀▄  █▀▀ █▀█ █▀█ █▄░█ █▀▀ █▀█ █▀ # █▀▄ █▄█ █▄█ █░▀█ █▄▀ ██▄ █▄▀  █▄▄ █▄█ █▀▄ █░▀█ ██▄ █▀▄ ▄█ rounding = $hypr_rounding # █▀█ █▀█ ▄▀█ █▀▀ █ ▀█▀ █▄█ # █▄█ █▀▀ █▀█ █▄▄ █ ░█░ ░█░ active_opacity = 0.95 inactive_opacity = 0.90 fullscreen_opacity = 0.95 # █▄▄ █░░ █░█ █▀█ # █▄█ █▄▄ █▄█ █▀▄ blur { enabled = true size = 5 passes = 3 ignore_opacity = true new_optimizations = true xray = true noise = 0.0117 contrast = 0.8916 brightness = 0.8172 vibrancy = 0.1696 vibrancy_darkness = 0.0 special = true popups = true popups_ignorealpha = 0.2 } # █▀ █░█ ▄▀█ █▀▄ █▀█ █░█░█ # ▄█ █▀█ █▀█ █▄▀ █▄█ ▀▄▀▄▀ drop_shadow = false shadow_range = 3 shadow_render_power = 3 shadow_ignore_window = true col.shadow = $active_shadow_col col.shadow_inactive = $inactive_shadow_col # shadow_offset = [0, 0] shadow_scale = 1.0 dim_inactive = true dim_strength = 0.5 dim_special = 0.2 dim_around = 0.4 # screen_shader = } # ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ #-- Animations ------------------------------------------------------------ animations { enabled = true first_launch_animation = 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 = linear, 1, 1, 1, 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 = slingshot, 1, -1, 0.15, 1.25 bezier = nice, 0, 6.9, 0.5, -4.20 # ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ # █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ # animation = windowsIn,1,12,default,popin 0% # animation = windowsOut,1,12,default,popin # animation = windowsMove,1,12,default,slide # animation = fadeIn,1,12,default # animation = fadeOut,1,12,default # animation = fadeSwitch,1,12,default # animation = fadeShadow,1,12,default # animation = fadeDim,1,12,default # animation = border,1,12,default # animation = borderangle,1,10,default # animation = workspaces,1,12,default,fade # animation = specialWorkspace,1,5,default,fade animation = windows, 1, 12, bounce, popin animation = windowsIn, 1, 12, winIn, slide animation = windowsOut, 1, 12, winOut, slide animation = windowsMove, 1, 12, slow, slide animation = border, 1, 12, linear animation = borderangle, 1, 30, linear, loop animation = fade, 1, 12, overshot animation = fadeIn, 1, 12, overshot animation = fadeOut, 1, 12, overshot animation = fadeSwitch, 1, 12, bounce animation = fadeShadow, 1, 12, bounce animation = fadeDim, 1, 12, bounce animation = workspaces, 1, 12, wind animation = specialWorkspace,1,12,bounce,fade } # █ █▄░█ █▀█ █░█ ▀█▀ # █ █░▀█ █▀▀ █▄█ ░█░ #-- Input: Keyboard, Mouse, Touchpad -------------------------------------- # Follow Mouse Cursor # 0 - Cursor movement will not change focus. # 1 - Cursor movement will always change focus to the window under the cursor. # 2 - Cursor focus will be detached from keyboard focus. Clicking on a window will move keyboard focus to that window. # 3 - Cursor focus will be completely separate from keyboard focus. Clicking on a window will not change keyboard focus. input { kb_model = precision_m kb_layout = us kb_variant = euro kb_options = kb_rules = kb_file = numlock_by_default = true resolve_binds_by_sym = false repeat_rate = 25 repeat_delay = 600 sensitivity = 0.5 accel_profile = adaptive force_no_accel = false left_handed = false scroll_points = scroll_method = edge scroll_button = 0 scroll_button_lock = 0 scroll_factor = 1.0 natural_scroll = true follow_mouse = 0 mouse_refocus = true float_switch_override_focus = 2 special_fallthrough = false off_window_axis_events = 1 emulate_discrete_scroll = 1 touchpad { disable_while_typing = true natural_scroll = true scroll_factor = 1.0 middle_button_emulation = false tap_button_map = clickfinger_behavior = false tap-to-click = true drag_lock = false tap-and-drag = false } touchdevice { enabled = true transform = 0 output = } } # Keyboard $LAPTOP_KB_ENABLED = true device { name = at-translated-set-2-keyboard enabled = $LAPTOP_KB_ENABLED } # Touchpad $TOUCHPAD_ENABLED = true device { name = 2-alps-dualpoint-touchpad enabled = $TOUCHPAD_ENABLED } # █▀▀ █▀▀ █▀ ▀█▀ █░█ █▀█ █▀▀ █▀ # █▄█ ██▄ ▄█ ░█░ █▄█ █▀▄ ██▄ ▄█ #-- Gestures -------------------------------------------------------------- gestures { workspace_swipe = true workspace_swipe_fingers = 3 workspace_swipe_distance = 300 workspace_swipe_touch = false workspace_swipe_invert = true workspace_swipe_touch_invert = false workspace_swipe_min_speed_to_force = 30 workspace_swipe_cancel_ratio = 0.5 workspace_swipe_create_new = true workspace_swipe_direction_lock = true workspace_swipe_direction_lock_threshold = 10 workspace_swipe_forever = false workspace_swipe_use_r = false } # █▀▀ █▀█ █▀█ █░█ █▀█ # █▄█ █▀▄ █▄█ █▄█ █▀▀ #-- Group ----------------------------------------------------------------- group { insert_after_current = true focus_removed_window = true col.border_active = $group_border_active_col_1 $group_border_active_col_2 $gradient_angle col.border_inactive = $group_border_col_1 $group_border_col_2 $gradient_angle col.border_locked_active = $group_border_active_col_1 $group_border_active_col_2 $gradient_angle col.border_locked_inactive = $group_border_col_1 $group_border_col_2 $gradient_angle groupbar { enabled = true font_family = font_size = 10 gradients = true height = 14 stacked = false priority = 3 render_titles = true scrolling = true text_color = 0xffffffff col.active = $group_border_active_col_1 $group_border_active_col_2 $gradient_angle col.inactive = $group_border_col_1 $group_border_col_2 $gradient_angle col.locked_active = $group_border_active_col_1 $group_border_active_col_2 $gradient_angle col.locked_inactive = $group_border_col_1 $group_border_col_2 $gradient_angle } } # █▀▄▀█ █ █▀ █▀▀ █▀▀ █░░ █░░ ▄▀█ █▄░█ █▀▀ █▀█ █░█ █▀ # █░▀░█ █ ▄█ █▄▄ ██▄ █▄▄ █▄▄ █▀█ █░▀█ ██▄ █▄█ █▄█ ▄█ #-- Miscellaneous --------------------------------------------------------- misc { disable_hyprland_logo = false disable_splash_rendering = false col.splash = 0xffffffff font_family = Sans splash_font_family = force_default_wallpaper = -1 vfr = true vrr = 0 mouse_move_enables_dpms = true key_press_enables_dpms = true always_follow_on_dnd = true layers_hog_keyboard_focus = true animate_manual_resizes = false animate_mouse_windowdragging = false disable_autoreload = false enable_swallow = false swallow_regex = swallow_exception_regex = focus_on_activate = true mouse_move_focuses_monitor = true render_ahead_of_time = false render_ahead_safezone = 1 allow_session_lock_restore = true background_color = 0x111111 close_special_on_empty = true new_window_takes_over_fullscreen = 2 exit_window_retains_fullscreen = false initial_workspace_tracking = 0 middle_click_paste = true } # █▄▄ █░░ █░█ █▀█ █░░ ▄▀█ █▄█ █▀▀ █▀█ # █▄█ █▄▄ █▄█ █▀▄ █▄▄ █▀█ ░█░ ██▄ █▀▄ #-- Blurring Layer Surfaces ----------------------------------------------- layerrule = blur, gtk-layer-shell layerrule = ignorezero, gtk-layer-shell layerrule = xray 1, gtk-layer-shell layerrule = blur, lockscreen layerrule = ignorezero, lockscreen layerrule = xray 1, lockscreen layerrule = blur,waybar layerrule = ignorezero, waybar layerrule = xray 1, waybar #-- SwayNC ---------------------------------------------------------------- layerrule = blur, swaync-control-center layerrule = blur, swaync-notification-window layerrule = ignorezero, swaync-control-center layerrule = ignorezero, swaync-notification-window layerrule = ignorealpha 0.5, swaync-control-center layerrule = ignorealpha 0.5, swaync-notification-window # █▄▄ █ █▄░█ █▀▄ █▀ # █▄█ █ █░▀█ █▄▀ ▄█ #-- Mouse Binds ----------------------------------------------------------- binds { pass_mouse_when_bound = false scroll_event_delay = 300 workspace_back_and_forth = true allow_workspace_cycles = true workspace_center_on = 0 focus_preferred_method = 0 ignore_group_lock = false movefocus_cycles_fullscreen = true disable_keybind_grabbing = false window_direction_monitor_fallback = true } #-- Xwayland Variables ---------------------------------------------------- xwayland { use_nearest_neighbor = true force_zero_scaling = false } #-- OpenGL Variables ------------------------------------------------------ opengl { nvidia_anti_flicker = true force_introspection = 2 } # █▀█ █▀▀ █▄░█ █▀▄ █▀▀ █▀█ # █▀▄ ██▄ █░▀█ █▄▀ ██▄ █▀▄ #-- Render Variables ------------------------------------------------------ render { explicit_sync =2 explicit_sync_kms = 2 direct_scanout = false } # █▀▀ █░█ █▀█ █▀ █▀█ █▀█ # █▄▄ █▄█ █▀▄ ▄█ █▄█ █▀▄ #-- Cursor Variables ------------------------------------------------------ cursor { enable_hyprcursor = true no_hardware_cursors = false no_break_fs_vrr = false min_refresh_rate = 24 hotspot_padding = 1 inactive_timeout = 5 no_warps = false persistent_warps = false warp_on_change_workspace = false default_monitor = zoom_factor = 1.0 zoom_rigid = false hide_on_key_press = false hide_on_touch = false allow_dumb_copy = false } # █▀▄ █▀▀ █▄▄ █░█ █▀▀ # █▄▀ ██▄ █▄█ █▄█ █▄█ #-- Debug (Only for developers) ------------------------------------------- debug { overlay = false damage_blink = false disable_logs = false disable_time = true damage_tracking = 2 enable_stdout_logs = true manual_crash = 0 suppress_errors = false watchdog_timeout = 5 disable_scale_checks = false error_limit = 5 error_position = 0 colored_stdout_logs = true } # █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ # █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ #-- Layout : Dwindle ------------------------------------------------------ dwindle { pseudotile = false force_split = 2 preserve_split = false smart_split = false smart_resizing = true permanent_direction_override = false special_scale_factor = 0.8 split_width_multiplier = 1.0 no_gaps_when_only = false use_active_for_splits = true default_split_ratio = 1.0 } #-- Layout : Master ------------------------------------------------------- master { allow_small_split = false special_scale_factor = 0.8 mfact = 0.55 new_status = slave new_on_top = false new_on_active = none no_gaps_when_only = 0 orientation = left inherit_fullscreen = true always_center_master = false smart_resizing = true drop_at_cursor = true } # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ # ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more #windowrule = float,WINDOW #windowrule = tile,WINDOW #windowrule = fullscreen,WINDOW #windowrule = nofullscreenrequest,WINDOW #windowrule = move 69 420,WINDOW #windowrule = size 420 69,WINDOW #windowrule = minsize 420 69,WINDOW #windowrule = maxsize 420 69,WINDOW #windowrule = center,WINDOW #windowrule = pseudo,WINDOW #windowrule = monitor 0,WINDOW #windowrule = workspace 12,WINDOW #windowrule = opacity 1.0,WINDOW #windowrule = opaque 1.0,WINDOW #windowrule = animation slide left,WINDOW #windowrule = rounding 10,WINDOW #windowrule = noblur,WINDOW #windowrule = nofocus,WINDOW #windowrule = noborder,WINDOW #windowrule = noshadow,WINDOW #windowrule = forceinput,WINDOW #windowrule = windowdance,WINDOW #windowrule = pin,WINDOW #windowrule = noanim,WINDOW #windowrule = bordercolor color color,WINDOW #windowrule = idleinhibit none,WINDOW #windowrule = unset,WINDOW #windowrule = nomaxsize,WINDOW #-- Window Rules ---------------------------------------------------------- windowrule = center, foot-float|file-roller|filezilla|geany|gedit|kate|kcalc|kdeconnect|meld|qt5ct|qt6ct windowrule = center, Bitwarden|blueman-manager|doublecmd|nm-applet|nm-connection-editor|nwg-look|yad windowrule = center, org.kde.polkit-kde-authentication-agent-1|xfce-polkit|kvantummanager|pcmanfm|merkuro windowrule = center, feh|Flameshot|Viewnior|Gpicview|MPlayer|mpv|SMplayer|vlc|stacer|vorta windowrule = center, VirtualBox Manager|Vncviewer|qemu|Qemu-system-x86_64|transmission-qt|zathura windowrule = float, foot-float|file-roller|filezilla|geany|gedit|kate|kcalc|kdeconnect|meld|qt5ct|qt6ct windowrule = float, Bitwarden|blueman-manager|doublecmd|nm-applet|nm-connection-editor|nwg-look|yad windowrule = float, org.kde.polkit-kde-authentication-agent-1|xfce-polkit|kvantummanager|pcmanfm|merkuro windowrule = float, feh|Flameshot|Viewnior|Gpicview|MPlayer|mpv|SMplayer|vlc|stacer|vorta windowrule = float, VirtualBox Manager|Vncviewer|qemu|Qemu-system-x86_64|transmission-qt|zathura windowrule = float, title:File Operation Progress windowrule = float, title:Confirm to Replace Files windowrule = size 75% 75%, Flameshot|Viewnior windowrule = size 75% 90%, doublecmd|geany|gedit|kate|pcmanfm|zathura windowrule = size 90% 90%, meld|merkuro windowrule = animation slide down,foot-full windowrule = animation slide up,wlogout # Kando windowrule = noblur, kando windowrule = noborder, kando windowrule = noanim, kando windowrule = center, kando windowrule = size 100% 100%, kando bind = CTRL, Space, global, kando:prototype_trigger # Common Modals windowrulev2 = float,title:^(Open)$ windowrulev2 = float,title:^(Choose Files)$ windowrulev2 = float,title:^(Save As)$ windowrulev2 = float,title:^(Confirm to Replace Files)$ windowrulev2 = float,title:^(File Operation Progress)$ # Ark windowrulev2 = float,class:^(org.kde.ark)$ # Firefox PIP windowrulev2 = size 800 450, title:(Picture-in-Picture) windowrulev2 = pin, title:^(Picture-in-Picture)$ windowrulev2 = float, title:^(Firefox)$ windowrulev2 = size 800 450, title:(Firefox) windowrulev2 = pin, title:^(Firefox)$ # Flameshot windowrulev2 = float,title:^(flameshot)$ windowrulev2 = move 0 0,title:^(flameshot) windowrulev2 = suppressevent maximize,title:^(flameshot) windowrulev2 = suppressevent fullscreen,title:^(flameshot) # Gimp windowrulev2 = float,title:^(GNU Image Manipulation Program)$ # OBS windowrulev2 = float,class:^(com.obsproject.Studio)$ # Shimeji Setup windowrule = float, com-group_finity-mascot-Main windowrule = noblur, com-group_finity-mascot-Main windowrule = nofocus, com-group_finity-mascot-Main windowrule = noshadow, com-group_finity-mascot-Main windowrule = noborder, com-group_finity-mascot-Main # Spotify windowrulev2 = tile, class:^(Spotify)$ windowrulev2 = workspace 4 silent, class:^(Spotify)$ # Steam windowrulev2 = stayfocused, title:^()$,class:^(steam)$ windowrulev2 = minsize 1 1, title:^()$,class:^(steam)$ # Taskwarrior windowrule = center,^(task-floating)$ windowrule = float,^(task-floating)$ windowrule = dimaround,^(task-floating)$ windowrule = noborder,^(task-floating)$ # Telegram media viewer $telegram = class:^(org.telegram.desktop)$,title:^(Media viewer)$ windowrulev2 = float,$telegram windowrulev2 = center,$telegram # XWayland windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$ windowrulev2 = noanim,class:^(xwaylandvideobridge)$ windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ windowrulev2 = noblur,class:^(xwaylandvideobridge)$ #-- Workspace Rules ------------------------------------------------------- # windowrulev2 = float, workspace:< id or name: and name> # windowrulev2 = float, workspace:3 # █░█ █▀▄▀█ # ▀▄▀ █░▀░█ bind = CTRL Alt_L, V, submap, passthrough submap = passthrough bind = CTRL Alt_L, V, submap, reset submap = reset # █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█ # █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█ #-- Startup --------------------------------------------------------------- # $alt = altus --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto # $bitwarden = bitwarden-desktop --enable-features=UseOzonePlatform --ozone-platform=wayland # $slack = slack --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto # $music = spotify --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto # █▀▀ ▀▄▀ █▀▀ █▀▀ # ██▄ █░█ ██▄ █▄▄ #-- Set Hyprcursor -------------------------------------------------------- exec-once = hyprctl setcursor Bibata-Modern-Ice 24 #-- Set Hypridle ---------------------------------------------------------- exec-once = hypridle #-- Move Workspaces to Monitor -------------------------------------------- # exec-once = handle_monitor_connect.sh # Workspace Switcher exec-once = $HOME/.config/workspacer/workspace_listener.sh bind = $mainMod, Y, exec, $HOME/.config/workspacer/workspaced.py windowrule = float, title:^(Workspace Selector)$ #-- Load Plugins ---------------------------------------------------------- exec = hyprpm reload -n #-- Setup Portal ---------------------------------------------------------- exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Wayland magic (screen sharing etc.) exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # More wayland magic (screen sharing etc.) # exec-once = $scriptsDir/xdg-portal-hyprland exec-once = systemctl --user restart xdg-desktop-portal-gtk xdg-desktop-portal-hyprland xdg-desktop-portal #-- Share Picker ---------------------------------------------------------- exec-once = dbus-update-activation-environment --systemd --all exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME # OSD window for common actions like volume and capslock # (https://github.com/ErikReider/SwayOSD) exec-once = swayosd-server & #-- Cliphist setup -------------------------------------------------------- exec-once = wl-paste --type text --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store #Stores only image data exec-once = wl-paste --type application/pdf --watch cliphist store #Stores PDF data bind = $mainMod, C, exec, $scriptsDir/cliphist.sh c #Cliphist Copy bind = $mainMod CTRL, C, exec, $scriptsDir/cliphist.sh d #Cliphist Delete bind = $mainMod SHIFT, C, exec, $scriptsDir/cliphist.sh w #Cliphist Wipe #-- Scripts --------------------------------------------------------------- exec = hyprshade auto exec-once = waypaper --restore --backend swww exec-once = $scriptsDir/gtkthemes # exec-once = $scriptsDir/monitor # exec-once = $scriptsDir/notifications # Mako Notification daemon exec-once = sleep 5 && killall mako # Kill Mako Notification daemons exec-once = sleep 5 && swaync & # SwayNC Notification daemon # exec-once = ags # AGS HyprPanel # exec-once = gBar bar 0 # Launch the System Panel (gbar) exec-once = $scriptsDir/statusbar # Launch the System Panel (waybar) exec-once = /usr/lib/polkit-kde-authentication-agent-1 # Authentication dialog for GUI apps exec-once = blueman-applet # Systray app for BT exec-once = nm-applet --indicator # Systray app for Network/Wifi exec-once = /usr/lib/kdeconnectd exec-once = /usr/bin/kdeconnect-indicator exec-once = mpd exec-once = pypr exec-once = safeeyes exec-once = udiskie --tray & #-- Setup Workspaces ------------------------------------------------------ exec-once = [workspace 1 silent] kitty exec-once = [workspace 4 silent] spotify exec-once = [workspace 5 silent] sleep 15 && bitwarden exec-once = [workspace 5 silent] sleep 10 && vorta exec-once = [workspace 5 silent] kitty exec-once = [workspace 6 silent] $files exec-once = [workspace 8 silent] signal-desktop exec-once = [workspace 8 silent] sleep 5 && slack exec-once = [workspace 9 silent] sleep 5 && telegram-desktop exec-once = [workspace 9 silent] sleep 5 && altus exec-once = [workspace 10 silent] fractal exec-once = [workspace 10 silent] sleep 5 && vesktop # OR webcord exec-once = [workspace 11 silent] kitty -e yazi # OR ranger exec-once = [workspace 12 silent] kitty -e glances exec-once = sleep 20 && hyprctl dispatch workspace 5 Config File: /home/iqbal/.config/hypr/theme/hyprtheme_catppuccin_mocha.conf: Read Succeeded # Copyright (C) 2020-2024 Aditya Shakya # Modified Iqbal Thaker # # Theme Elements & Colors for Hyprland. # Elements $hypr_border_size = 3 $hypr_gaps_in = 5 $hypr_gaps_out = 5 $hypr_rounding = 3 # Colors $gradient_angle = 45deg $active_border_col_1 = 0xFF89B4FA $active_border_col_2 = 0xFFF28FAD $inactive_border_col_1 = 0xFF313244 $inactive_border_col_2 = 0xFFABE9B3 $active_shadow_col = 0x66000000 $inactive_shadow_col = 0x66000000 $group_border_col_1 = 0xFF313244 $group_border_col_2 = 0xFFABE9B3 $group_border_active_col_1 = 0xFF89B4FA $group_border_active_col_2 = 0xFFF28FAD # $gradient_angle = 45deg # $active_border_col_1 = rgba(ca9ee6ff) # $active_border_col_2 = rgba(f2d5cfff) # $inactive_border_col_1 = rgba(b4befecc) # $inactive_border_col_2 = rgba(6c7086cc) # $active_shadow_col = 0x66000000 # $inactive_shadow_col = 0x66000000 # $group_border_col_1 = rgba(b4befecc) # $group_border_col_2 = rgba(6c7086cc) # $group_border_active_col_1 = rgba(ca9ee6ff) # $group_border_active_col_2 = rgba(f2d5cfff) Config File: /home/iqbal/.config/hypr/modules/env_var.conf: Read Succeeded # Environment Variables # See https://wiki.hyprland.org/Configuring/Environment-variables/ # █▀▀ █▄░█ █░█ # ██▄ █░▀█ ▀▄▀ # Some default env vars. # #-- Theming Related Variables --------------------------------------------- # Set cursor size. See FAQ below for why you might want this variable set. # https://wiki.hyprland.org/FAQ/ env = HYPRCURSOR_THEME,Bibata-Modern-Ice env = HYPRCURSOR_SIZE,24 env = XCURSOR_THEME,Bibata-Modern-Ice env = XCURSOR_SIZE,24 # the line below may help with multiple monitors # env = WLR_EGL_NO_MODIFIERS,1 #-- Telling Hyprland which GPU to use (!!WILL CRASH THE SESSION!!) -------- # env = WLR_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 #-- Environment Variables ------------------------------------------------- env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland #-- Toolkit Backend Variables --------------------------------------------- #-- Hyprland specific ----------------------------------------------------- env = HYPRLAND_LOG_WLR,1 # Enables more verbose logging of wlroots. env = HYPRLAND_NO_RT,1 # Disables realtime priority setting by Hyprland. # env = HYPRLAND_NO_SD_NOTIFY, 1 # If systemd, disables the sd_notify calls. #-- GTK specific ---------------------------------------------------------- #-- GTK: Use wayland if available, fall back to x11 if not. --------------- env = GDK_BACKEND,wayland,x11 env = GDK_SCALE,1 #-- SDL specific ---------------------------------------------------------- # 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 #-- Clutter specific ------------------------------------------------------ # Clutter package already has wayland enabled, this variable # will force Clutter applications to try and use the Wayland backend env = CLUTTER_BACKEND,wayland #-- QT specific ----------------------------------------------------------- # (From the QT documentation) enables automatic scaling, based on the monitor’s pixel density # https://doc.qt.io/qt-5/highdpi.html env = QT_AUTO_SCREEN_SCALE_FACTOR,1 # Tell QT applications to use the Wayland backend, and fall back to X11 if Wayland is unavailable env = QT_QPA_PLATFORM,wayland;xcb #Tells QT based applications to pick your theme from qt6ct, use with Kvantum. env = QT_QPA_PLATFORMTHEME,qt6ct # Disables window decorations on QT applications env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_STYLE_OVERRIDE,kvantum-dark #-- Java specific --------------------------------------------------------- env = _JAVA_AWT_WM_NONREPARENTING,1 #-- Mozilla specific ------------------------------------------------------ env = MOZ_ENABLE_WAYLAND,1 env = MOZ_DBUS_REMOTE,1 # env = MOZ_DISABLE_RDD_SANDBOX,1 env = MOZ_WAYLAND_USE_VAAPI,1 env = OZONE_PLATFORM,wayland env = NVD_BACKEND,direct #-- Mango HUD specific ---------------------------------------------------- # env = MANGOHUD,1 # env = MANGOHUD_DLSYM,1 #-- EGL Platform ---------------------------------------------------------- env = EGL_PLATFORM,wayland #-- Electron Apps --------------------------------------------------------- env = ELECTRON_OZONE_PLATFORM_HINT,auto #-- Gaming specific ------------------------------------------------------- # Fix frame timings and input lag env = __GL_MaxFramesAllowed,1 #-- XWayland Variables ---------------------------------------------------- env = PROTON_ENABLE_NGX_UPDATER,1 env = WLR_USE_LIBINPUT,1 #-- Miscellaneous --------------------------------------------------------- env = BEMENU_BACKEND,wayland env = ECORE_EVAS_ENGINE,wayland_egl env = ELM_ENGINE,wayland_egl Config File: /home/iqbal/.config/hypr/modules/keybinds.conf: Read Succeeded # Please note not all available settings / options are set here. # For a full list, see the wiki # See https://wiki.hyprland.org/Configuring/Keywords/ for more # █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀ # █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█ #-- Setting variables ----------------------------------------------------- $mainMod = SUPER $hyprDir = $HOME/.config/hypr $scriptsDir = $HOME/.config/hypr/scripts $backlight = $scriptsDir/brightness $booksearch = $scriptsDir/books-search.sh $kbacklight = $scriptsDir/brightness-kbd $closelid = $scriptsDir/close-lid $colorpicker = $scriptsDir/colorpicker $browser1 = brave $browser2 = vivaldi $office = brave --app=https://office.com/ $outlook = brave --app=https://outlook.office.com/mail/ $teams = brave --app=https://teams.microsoft.com/go $editor1 = geany $editor2 = kate # $files = thunar $files = dolphin $hint = $scriptsDir/keyhint $killactive = $scriptsDir/killactive # $lock = $scriptsDir/lockscreen $lock = hyprlock $network = nm-connection-editor $notifycmd = notify-send -h string:x-canonical-private-synchronous:hypr-cfg -u low $screenshot = $scriptsDir/screenshot $statusbar = $scriptsDir/statusbar $term = $scriptsDir/terminal $wallpaper-hypr = $scriptsDir/hypr-paper.sh $wallpaper-swww = $scriptsDir/changeWallpaper $web-search = $scriptsDir/web-search.sh $wlogout = $scriptsDir/wlogout $volume = $scriptsDir/volume $rofi_launcher = $scriptsDir/rofi_launcher $rofi_runner = $scriptsDir/rofi_runner $rofi_music = $scriptsDir/rofi_music $rofi_network = $scriptsDir/rofi_network $rofi_bluetooth = $scriptsDir/rofi_bluetooth $rofi_powermenu = $scriptsDir/rofi_powermenu $rofi_screenshot = $scriptsDir/rofi_screenshot $wofi_menu = $scriptsDir/wofi_menu $wofi_powermenu = $scriptsDir/wofi_powermenu # edit wofi beats links on /hypr/scripts/wofi-beats $wofi_beats = $scriptsDir/wofi-beats #-- Keybindings ----------------------------------------------------------- # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # l -> locked, aka. works also when an input inhibitor (e.g. a lockscreen) is active. # r -> release, will trigger on release of a key. # e -> repeat, will repeat when held. # n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher. # m -> mouse, see below # t -> transparent, cannot be shadowed by other binds. #-- Terminal -------------------------------------------------------------- windowrule = float, title:^(kitty_floats)$ windowrule = size 75% 75%, kitty windowrule = center, kitty bind = $mainMod, Return, exec, kitty bind = $mainMod SHIFT, Return, exec, kitty --title kitty_floats # bind = $mainMod, Return, exec, $term # bind = $mainMod SHIFT, Return, exec, $term -f # bind = $mainMod ALT, Return, exec, $term -s # bind = $mainMod, T, exec, $term -F #-- Applications ---------------------------------------------------------- bind = $mainMod ALT, B, exec, bitwarden bind = $mainMod ALT, D, exec, $files bind = $mainMod ALT, G, exec, $editor1 # bind = $mainMod ALT, F, exec, floorp bind = $mainMod ALT, F, exec, firefox bind = $mainMod ALT, K, exec, $editor2 bind = $mainMod ALT, M, exec, spotify bind = $mainMod ALT, O, exec, opera bind = $mainMod ALT, S, exec, slack bind = $mainMod ALT, T, exec, thorium-browser bind = $mainMod ALT, V, exec, vivaldi bind = $mainMod ALT, W, exec, altus #-- Microsoft ------------------------------------------------------------- # bind = $mainMod, O, exec, $office bind = $mainMod, O, exec, $outlook bind = $mainMod, T, exec, $teams #-- Rofi Shortcuts -------------------------------------------------------- bindr = $mainMod, $mainMod_L, exec, $rofi_launcher bind = $mainMod, R, exec, $rofi_runner bind = $mainMod, N, exec, $rofi_network bind = $mainMod, U, exec, $rofi_bluetooth bind = $mainMod, X, exec, $rofi_powermenu bind = $mainMod, Print, exec, $rofi_screenshot # bind = $mainMod, D, exec, $rofi_launcher # bind = $mainMod, M, exec, $rofi_music # bind = $mainMod, B, exec, $rofi_bluetooth # bind = $mainMod, A, exec, $rofi_screenshot # -- Wofi -- # bindr = $mainMod, $mainMod L, exec, $wofi_menu # bind = $mainMod, D, exec, $wofi_menu # bind = $mainMod, X, exec, $wofi_powermenu #-- Miscellaneous --------------------------------------------------------- # bind = $mainMod, N, exec, $network # bind = $mainMod, X, exec, $wlogout # bind = $mainMod, P, exec, $colorpicker # bind = $mainMod, C, exec, $colorpicker # bind = CTRL_ALT, L, exec, $lock bind = $mainMod, L, exec, $lock # █▀ █▀▀ █▀█ █▀▀ █▀▀ █▄░█ █▀ █░█ █▀█ ▀█▀ # ▄█ █▄▄ █▀▄ ██▄ ██▄ █░▀█ ▄█ █▀█ █▄█ ░█░ #-- Screenshots ----------------------------------------------------------- # bind = , Print, exec, $screenshot --now # bind = ALT, Print, exec, $screenshot --in5 # bind = SHIFT, Print, exec, $screenshot --in10 # bind = CTRL, Print, exec, $screenshot --win # bind = $mainMod, Print, exec, $screenshot --area # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀▄▀█ ▄▀█ █▄░█ ▄▀█ █▀▀ █▀▀ █▀▄▀█ █▀▀ █▄░█ ▀█▀ # ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █░▀░█ █▀█ █░▀█ █▀█ █▄█ ██▄ █░▀░█ ██▄ █░▀█ ░█░ #-- Hyprland -------------------------------------------------------------- bind = $mainMod, Q, exec, $killactive bind = $mainMod, Escape, exec, hyprctl kill bind = $mainMod SHIFT, Escape, exec, hyprctl reload bind = CTRL_ALT, Delete, exit, bindt = $mainMod, W, exec, killall -SIGUSR1 waybar # Toggle Hide/Show waybar bindt = $mainMod SHIFT, W, exec, killall -SIGUSR2 waybar # Kill/Restart waybar bindt = $mainMod CTRL, W, exec, $statusbar # Restart waybar bind = $mainMod, H, exec, $hint # bind = $mainMod, P, exec, $wallpaper-hypr bind = $mainMod, P, exec, $wallpaper-swww # bind = $mainMod CTRL, P, exec, $scriptsDir/wallpaper-swww.sh bind = $mainMod CTRL, D, layoutmsg, removemaster bind = $mainMod, I, layoutmsg, addmaster bind = $mainMod, J, layoutmsg, cyclenext bind = $mainMod, K, layoutmsg, cycleprev bind = $mainMod SHIFT, M, exec, hyprctl dispatch splitratio 0.3 bind = $mainMod SHIFT, Y, exec, kitty --class clock -T clock -e tty-clock -c -C 7 -r -s -f "%A, %B, %d" bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster # ▀█▀ ▄▀█ █▄▄ █▄▄ █▀▀ █▀▄ # ░█░ █▀█ █▄█ █▄█ ██▄ █▄▀ #-- Group Mode ------------------------------------------------------------ bind = $mainMod, G, togglegroup bind = $mainMod, G, exec, $notifycmd 'Toggled Group Mode' bind = $mainMod, H, changegroupactive, b bind = $mainMod, L, changegroupactive, f # █▀▀ █▀█ █▀▀ █░█ █▀ # █▀░ █▄█ █▄▄ █▄█ ▄█ #-- Change Focus ---------------------------------------------------------- bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # █▀▄▀█ █▀█ █░█ █▀▀ # █░▀░█ █▄█ ▀▄▀ ██▄ #-- Move Active ----------------------------------------------------------- bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d #-- Move Active (Floating Only) ------------------------------------------- binde = $mainMod ALT, left, moveactive, -20 0 binde = $mainMod ALT, right, moveactive, 20 0 binde = $mainMod ALT, up, moveactive, 0 -20 binde = $mainMod ALT, down, moveactive, 0 20 # █▀█ █▀▀ █▀ █ ▀█ █▀▀ # █▀▄ ██▄ ▄█ █ █▄ ██▄ #-- Resize Active --------------------------------------------------------- # binde = $mainMod CTRL, left, resizeactive, -20 0 # binde = $mainMod CTRL, right, resizeactive, 20 0 # binde = $mainMod CTRL, up, resizeactive, 0 -20 # binde = $mainMod CTRL, down, resizeactive, 0 20 #-- Submap Resize Start --------------------------------------------------- # Will switch to a Submap called Resize bind = ALT, R, submap, resize # Will start a submap called "resize" submap = resize # Sets repeatable binds for resizing the active window binde = , left, resizeactive, -10 0 binde = , right, resizeactive, 10 0 binde = , up, resizeactive, 0 -10 binde = , down, resizeactive, 0 10 # Use reset to go back to the Global Submap bind = , Escape, submap, reset # Will reset the Submap, meaning end the current one and return to the Global one submap = reset #-- Submap Resize End ----------------------------------------------------- #-- Keybinds further down will be Global again... ------------------------- # █▀ █░█░█ █ ▀█▀ █▀▀ █░█ # ▄█ ▀▄▀▄▀ █ ░█░ █▄▄ █▀█ #-- Switch between Tiled and Float ---------------------------------------- bind = $mainMod, Space, togglefloating, bind = $mainMod, Space, centerwindow, #-- Switch between Windows ------------------------------------------------ bind = $mainMod, Tab, cyclenext, bind = $mainMod, Tab, alterzorder, #-- Navigate through existing Workspaces ---------------------------------- # bind = $mainMod, tab, workspace, m+1 # bind = $mainMod SHIFT, tab, workspace, m-1 bind = ALT CTRL, Tab, workspace, m+1 bind = ALT SHIFT, Tab, workspace, m-1 #-- Switch Workspaces ----------------------------------------------------- bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 bind = $mainMod, minus, workspace, 11 bind = $mainMod, equal, workspace, 12 # █▀▄▀█ █▀█ █░█ █▀▀ # █░▀░█ █▄█ ▀▄▀ ██▄ #-- Send to Workspaces ---------------------------------------------------- #-- Move active window and follow to workspace ---------------------------- bind = $mainMod CTRL, 1, movetoworkspace, 1 bind = $mainMod CTRL, 2, movetoworkspace, 2 bind = $mainMod CTRL, 3, movetoworkspace, 3 bind = $mainMod CTRL, 4, movetoworkspace, 4 bind = $mainMod CTRL, 5, movetoworkspace, 5 bind = $mainMod CTRL, 6, movetoworkspace, 6 bind = $mainMod CTRL, 7, movetoworkspace, 7 bind = $mainMod CTRL, 8, movetoworkspace, 8 bind = $mainMod CTRL, 9, movetoworkspace, 9 bind = $mainMod CTRL, 0, movetoworkspace, 10 bind = $mainMod CTRL, minus, movetoworkspace, 11 bind = $mainMod CTRL, equal, movetoworkspace, 12 bind = $mainMod CTRL, bracketleft, movetoworkspace, -1 bind = $mainMod CTRL, bracketright, movetoworkspace, +1 #-- Move active window to a workspace ------------------------------------- bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1 bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2 bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3 bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4 bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5 bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6 bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7 bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8 bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9 bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10 bind = $mainMod SHIFT, minus, movetoworkspacesilent, 11 bind = $mainMod SHIFT, equal, movetoworkspacesilent, 12 bind = $mainMod SHIFT, bracketleft, movetoworkspacesilent, -1 bind = $mainMod SHIFT, bracketright, movetoworkspacesilent, +1 # █▀▄▀█ █▀█ █▀▄ █▀▀ # █░▀░█ █▄█ █▄▀ ██▄ #-- Change Workspace Mode ------------------------------------------------- bind = $mainMod SHIFT, F, fullscreen, 1 bind = $mainMod SHIFT, F, exec, $notifycmd 'Fullscreen Mode' bind = $mainMod SHIFT, S, pseudo, bind = $mainMod SHIFT, S, exec, $notifycmd 'Pseudo Mode' bind = $mainMod CTRL, F, workspaceopt, allfloat bind = $mainMod CTRL, F, exec, $notifycmd 'Toggled All Float Mode' bind = $mainMod CTRL, S, workspaceopt, allpseudo bind = $mainMod CTRL, S, exec, $notifycmd 'Toggled All Pseudo Mode' #-- Miscellaneous --------------------------------------------------------- bind = $mainMod CTRL, P, pin, bind = $mainMod CTRL, P, exec, $notifycmd 'Toggled Pin' bind = $mainMod CTRL, N, swapnext # bind = $mainMod CTRL, O, toggleopaque # █▀▄▀█ █▀█ █░█ █▀ █▀▀   █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ # █░▀░█ █▄█ █▄█ ▄█ ██▄   █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ #-- Mouse Buttons --------------------------------------------------------- bindm=$mainMod, mouse:272, movewindow bindm=$mainMod, mouse:273, resizewindow #-- Scroll through existing workspaces ------------------------------------ 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 # █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░ # ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄ #-- Scratchpad Script ----------------------------------------------------- bind = $mainMod, Z, exec, /home/iqbal/.local/bin/scratchpad bind = $mainMod SHIFT, Z, exec, /home/iqbal/.local/bin/scratchpad -l -g #-- Special workspaces (i.e. "Scratchpads") ------------------------------- bind = $mainMod CTRL, F1, movetoworkspace, special:F1 # Move to Special WS01 bind = $mainMod CTRL, F2, movetoworkspace, special:F2 # Move to Special WS02 bind = $mainMod CTRL, F3, movetoworkspace, special:F3 # Move to Special WS03 bind = $mainMod CTRL, F4, movetoworkspace, special:F4 # Move to Special WS04 bind = $mainMod CTRL, F5, movetoworkspace, special:F5 # Move to Special WS05 bind = $mainMod SHIFT, F1, togglespecialworkspace, F1 # Show Special WS01 bind = $mainMod SHIFT, F2, togglespecialworkspace, F2 # Show Special WS02 bind = $mainMod SHIFT, F3, togglespecialworkspace, F3 # Show Special WS03 bind = $mainMod SHIFT, F4, togglespecialworkspace, F4 # Show Special WS04 bind = $mainMod SHIFT, F4, togglespecialworkspace, F5 # Show Special WS05 #-- PYPR - Repeat this for each Scratchpad you need ----------------------- bind=$mainMod SHIFT, E, exec, pypr toggle effects # EasyEffects bind=$mainMod SHIFT, G, exec, pypr toggle gmail # GMail on Neomutt bind=$mainMod SHIFT, N, exec, pypr toggle news # Newsboat bind=$mainMod SHIFT, K, exec, pypr toggle term # Terminal bind=$mainMod SHIFT, P, exec, pypr toggle volume # Volume bind=$mainMod SHIFT, R, exec, pypr toggle torrents # Transmission-QT bind=$mainMod SHIFT, V, exec, pypr toggle player # VLC Player bind=$mainMod SHIFT, T, exec, pypr toggle_minimized # Toggle minimized windows bind=$mainMod CTRL, T, togglespecialworkspace, minimized # Show minimized windows $scratchpad = class:^(scratchpad)$ $scratchpadsize = size 90% 90% windowrulev2 = center,$scratchpad windowrulev2 = float,$scratchpad windowrulev2 = $scratchpadsize,$scratchpad windowrulev2 = workspace special silent,$scratchpad $easyeffects = title:^(Easy Effects)$ $easyeffectssize = size 75% 75% windowrulev2 = center,$easyeffects windowrulev2 = float,$easyeffects windowrulev2 = $easyeffectssize,$easyeffects windowrulev2 = workspace special silent,$easyeffects $pavucontrol = class:^(pavucontrol)$ windowrulev2 = float,$pavucontrol windowrulev2 = workspace special silent,$pavucontrol # █▀▄▀█ █ █▀ █▀▀ █▀▀ █░░ █░░ ▄▀█ █▄░█ █▀▀ █▀█ █░█ █▀ # █░▀░█ █ ▄█ █▄▄ ██▄ █▄▄ █▄▄ █▀█ █░▀█ ██▄ █▄█ █▄█ ▄█ #-- Hycov ----------------------------------------------------------------- # When entering overview mode, you can use left-button to jump, right-button to kill or use keybind # bind key to toggle overview (normal) # bind = ALT,tab,hycov:toggleoverview # bind key to toggle overview (force mode, not affected by `only_active_workspace` or `only_active_monitor`) # bind = ALT,grave,hycov:toggleoverview,forceall #grave key is the '~' key # bind key to toggle overview (shows all windows in one monitor, not affected by `only_active_workspace` or `only_active_monitor`) # bind = ALT,g,hycov:toggleoverview,forceallinone # The key binding for directional switch mode. # Calculate the window closest to the direction to switch focus. # This keybind is applicable not only to the overview, but also to the general layout. # bind=ALT,left,hycov:movefocus,l # bind=ALT,right,hycov:movefocus,r # bind=ALT,up,hycov:movefocus,u # bind=ALT,down,hycov:movefocus,d # if you want that focusmove can cross monitor, use this # bind=ALT,left,hycov:movefocus,leftcross # bind=ALT,right,hycov:movefocus,rightcross # bind=ALT,up,hycov:movefocus,upcross # bind=ALT,down,hycov:movefocus,downcross #-- Hyprexpo ------------------------------------------------------------- bind = $mainMod, grave, hyprexpo:expo, toggle # can be: toggle, off/disable or on/enable # Additional Configuration # Set bordercolor to Green if window is Fullscreen Maximize windowrulev2 = bordercolor rgb(158833),fullscreen:1 # Toggle Fullscreen Maximize bind = ALT, A, fullscreen,1 bind = ALT, A, exec, $notifycmd 'Fullscreen Mode' # bind = ALT, B, exec, $scriptsDir/hyprtabs.sh #-- OBS Global Keybinds --------------------------------------------------- bind = ALT, F1, pass, ^(com\.obsproject\.Studio)$ bind = ALT, F2, pass, ^(com\.obsproject\.Studio)$ bind = ALT, F3, pass, ^(com\.obsproject\.Studio)$ bind = ALT, F4, pass, ^(com\.obsproject\.Studio)$ bind = ALT, F5, pass, ^(com\.obsproject\.Studio)$ #-- Record Screen --------------------------------------------------------- bind = $mainMod SHIFT, Print, exec, $scriptsDir/wf-record-start.sh #-- Game Mode setup ------------------------------------------------------- bind = $mainMod, F12, exec, $scriptsDir/gamemode.sh #-- EWW Dashboard Setup --------------------------------------------------- bind = $mainMod, D, exec, ~/.config/eww/dashboard/launch_dashboard bind = $mainMod SHIFT, D, exec, ~/.config/eww/yuck/launch_widgets #-- Sleep when Closing Lid ----------------------------------------------- # bindl = , switch:on:Lid Switch, exec, swaylock && systemctl suspend # bindl = , switch:on:Lid Switch, exec, $closelid bindl = , switch:on:Lid Switch, exec, systemd-inhibit --what="idle" --who="hyprlock" --why="Closed Lid" hyprlock #-- Triggered when external monitor is connected and Closing lid ---------- # bindl = , switch:on:Lid Switch, exec, $scriptsDir/switch-lid.sh #-- Miscellaneous --------------------------------------------------------- bind = $mainMod SHIFT, B, exec, $booksearch bind = $mainMod SHIFT, H, exec, $web-search #-- Passthrough SUPER KEY to Virtual Machine ------------------------------ bind = $mainMod, F10, submap, passthru submap = passthru bind = SUPER, Escape, submap, reset submap = reset Config File: /home/iqbal/.config/hypr/modules/media-binds.conf: Read Succeeded # Please note not all available settings / options are set here. # For a full list, see the wiki # See https://wiki.hyprland.org/Configuring/Keywords/ for more # █▀▄▀█ █▀▀ █▀▄ █ ▄▀█   █▄▄ █ █▄░█ █▀▄ █▀ # █░▀░█ ██▄ █▄▀ █ █▀█   █▄█ █ █░▀█ █▄▀ ▄█ # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # l -> locked, aka. works also when an input inhibitor (e.g. a lockscreen) is active. # r -> release, will trigger on release of a key. # e -> repeat, will repeat when held. # n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher. # m -> mouse, see below # t -> transparent, cannot be shadowed by other binds. #-- Setting Variables ----------------------------------------------------- $mainMod = SUPER $hyprDir = $HOME/.config/hypr $scriptsDir = $hyprDir/scripts $SCRIPT = $hyprDir/waybar/scripts $backlight = $scriptsDir/brightness $kbacklight = $scriptsDir/brightness-kbd $volume = $scriptsDir/volume # ######################## It just Works™ Keybinds ######################## #-- Audio / Media control ------------------------------------------------- bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioNext, exec, playerctl next # bindl = , XF86AudioNext, exec, mpc next # bindl = , XF86AudioPrev, exec, mpc prev # bindl = , XF86AudioPlay, exec, mpc toggle # bindl = , XF86AudioStop, exec, mpc stop # bindle = , XF86AudioRaiseVolume, exec, $volume --inc # increase volume # bindle = , XF86AudioLowerVolume, exec, $volume --dec # decrease volume # Sink volume toggle mute # bindl = , XF86AudioMute, exec, $volume --toggle # bindl = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle # Source volume toggle mute # bindl = , XF86AudioMicMute, exec, $volume --toggle-mic # bindl = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle #-- Brightness control ---------------------------------------------------- # bindle = , XF86MonBrightnessUp, exec, swayosd-client --brightness 5 # bindle = , XF86MonBrightnessDown, exec, swayosd-client --brightness -5 bindlr = , XF86MonBrightnessUp, exec, $backlight --inc bindlr = , XF86MonBrightnessDown, exec, $backlight --dec #-- Special keys ---------------------------------------------------------- # CapsLock (If you don't want to use the backend) # bindr =, Caps_Lock, exec, swayosd-client --caps-lock # CapsLock but specific LED name (/sys/class/leds/) # bindr =, --release Caps_Lock, exec, swayosd-client --caps-lock-led input4::capslock@ # NumLock (If you don't want to use the backend) # bindr =, Num_Lock, exec, swayosd-client --num-lock # NumLock but specific LED name (/sys/class/leds/) # bindr =, --release Num_Lock, exec, swayosd-client --num-lock-led input4::numlock@ # ScrollLock (If you don't want to use the backend) # bindr =, Scroll_Lock, exec, swayosd-client --scroll-lock # ScrollLock but specific LED name (/sys/class/leds/) # bindr =, --release Scroll_Lock, exec, swayosd-client --scroll-lock-led input4::scrolllock@ #-- Effects --------------------------------------------------------------- # bindl = $mainMod, F3, exec, $scriptsDir/keyboard.sh #FN+F5 Enable/Disable Keyboard bindl = , XF86TouchpadToggle, exec, $scriptsDir/touchpad.sh #FN+F5 Enable/Disable Touchpad bindl = $mainMod, F3, exec, $scriptsDir/airplane-mode.sh #Airplane mode SUPER+F3 Config File: /home/iqbal/.config/hypr/modules/monitors.conf: Read Succeeded # Monitor Variables # See https://wiki.hyprland.org/Configuring/Monitors/ # █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ █▀ # █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ ▄█ # Monitor Configuration # monitor=[monitor-name],[resolution@framerate],[pos-x,y],[scale factor],transform,[rotation] # monitor=name,res,offset,scale # Custom reserved area # monitor=name,addreserved,TOP,BOTTOM,LEFT,RIGHT # monitor = eDP-1,addreserved,10,10,10,10 # Rotation Degrees Shorthand # monitor=NAME,transform,TRANSFORM # monitor = eDP-1,transform,0 # normal (no transforms) -> 0 WL_OUTPUT_TRANSFORM_NORMAL = 0 # 90 degrees -> 1 WL_OUTPUT_TRANSFORM_90 = 1 # 180 degrees -> 2 WL_OUTPUT_TRANSFORM_180 = 2 # 270 degrees -> 3 WL_OUTPUT_TRANSFORM_270 = 1 # flipped -> 4 WL_OUTPUT_TRANSFORM_FLIPPED = 4 # flipped + 90 degrees -> 5 WL_OUTPUT_TRANSFORM_FLIPPED_90 = 5 # flipped + 180 degrees -> 6 WL_OUTPUT_TRANSFORM_FLIPPED_180 = 6 # flipped + 270 degrees -> 7 WL_OUTPUT_TRANSFORM_FLIPPED_270 = 7 #-- Output ---------------------------------------------------------------- # Default Laptop # monitor=eDP-1,preferred,auto,1 # monitor=eDP-1,1920x1080@60.0,0x0,1.0 # monitor=,preferred,auto,1,mirror,eDP-1 # Monitor - LEFT, Laptop - RIGHT # monitor=eDP-1,1920x1080@60.0,1920x0,1.0 # monitor=DP-2,1920x1080@60.0,0x0,1.0 # Generated by nwg-displays on 2024-08-09 at 11:29:07. Do not edit manually. monitor=eDP-1,1920x1080@60.0,0x0,1.0 monitor=DP-2,1920x1080@60.0,0x0,1.0,mirror,eDP-1 Config File: /home/iqbal/.config/hypr/modules/plugins.conf: Read Succeeded # Plugins Variables # See https://wiki.hyprland.org/Plugins/ # █▀█ █░░ █░█ █▀▀ █ █▄░█ █▀ # █▀▀ █▄▄ █▄█ █▄█ █ █░▀█ ▄█ plugin { borders-plus-plus { add_borders = 1 # 0 - 9 # you can add up to 9 borders col.border_1 = rgb(ffffff) col.border_2 = rgb(2222ff) # -1 means "default" as in the one defined in general:border_size border_size_1 = 10 border_size_2 = -1 # makes outer edges match rounding of the parent. Turn on / off to better understand. Default = on. natural_rounding = yes } hyprbars { # example config bar_height = 20 # example buttons (R -> L) # hyprbars-button = color, size, on-click hyprbars-button = rgb(ff4040), 15, 󰖭, hyprctl dispatch killactive hyprbars-button = rgb(eeee11), 15, , hyprctl dispatch fullscreen 1 } hyprexpo { columns = 4 gap_size = 5 bg_col = rgb(111111) workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1 enable_gesture = true # laptop touchpad, 4 fingers gesture_fingers = 3 # 3 or 4 gesture_distance = 300 # how far is the "max" gesture_positive = true # positive = swipe down. Negative = swipe up. } hyprwinwrap { # class is an EXACT match and NOT a regex! class = Conky } hy3 { # disable gaps when only one window is onscreen no_gaps_when_only = # default: false # policy controlling what happens when a node is removed from a group, # leaving only a group # 0 = remove the nested group # 1 = keep the nested group # 2 = keep the nested group only if its parent is a tab group node_collapse_policy = # default: 2 # offset from group split direction when only one window is in a group group_inset = # default: 10 # if a tab group will automatically be created for the first window spawned in a workspace tab_first_window = # tab group settings tabs { # height of the tab bar height = 5 # default: 15 # padding between the tab bar and its focused node padding = # default: 5 # the tab bar should animate in/out from the top instead of below the window from_top = # default: false # rounding of tab bar corners rounding = # default: 3 # render the window title on the bar render_text = false # default: true # center the window title text_center = # default: false # font to render the window title with text_font = # default: Sans # height of the window title text_height = # default: 8 # left padding of the window title text_padding = # default: 3 # active tab bar segment color col.active = # default: 0xff32b4ff # urgent tab bar segment color col.urgent = # default: 0xffff4f4f # inactive tab bar segment color col.inactive = # default: 0x80808080 # active tab bar text color col.text.active = # default: 0xff000000 # urgent tab bar text color col.text.urgent = # default: 0xff000000 # inactive tab bar text color col.text.inactive = # default: 0xff000000 } # autotiling settings autotile { # enable autotile enable = true # default: false # make autotile-created groups ephemeral ephemeral_groups = # default: true # if a window would be squished smaller than this width, a vertical split will be created # -1 = never automatically split vertically # 0 = always automatically split vertically # = pixel height to split at trigger_width = # default: 0 # if a window would be squished smaller than this height, a horizontal split will be created # -1 = never automatically split horizontally # 0 = always automatically split horizontally # = pixel height to split at trigger_height = # default: 0 # a space or comma separated list of workspace ids where autotile should be enabled # it's possible to create an exception rule by prefixing the definition with "not:" # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2 # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2 workspaces = # default: all } } hycov { overview_gappo = 60 # gaps width from screen edge overview_gappi = 24 # gaps width from clients enable_hotarea = 1 # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview enable_click_action = 1 # enable mouse left button jump and right button kill in overview mode hotarea_monitor = all # monitor name which hotarea is in, default is all hotarea_pos = 1 # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right) hotarea_size = 10 # hotarea size, 10x10 swipe_fingers = 4 # finger number of gesture,move any directory move_focus_distance = 100 # distance for movefocus,only can use 3 finger to move enable_gesture = 0 # enable gesture auto_exit = 1 # enable auto exit when no client in overview auto_fullscreen = 0 # auto make active window maximize after exit overview only_active_workspace = 0 # only overview the active workspace only_active_monitor = 0 # only overview the active monitor enable_alt_release_exit = 0 # alt swith mode arg,see readme for detail alt_replace_key = Alt_L # alt swith mode arg,see readme for detail alt_toggle_auto_next = 0 # auto focus next window when toggle overview in alt swith mode click_in_cursor = 1 # when click to jump,the target windwo is find by cursor, not the current foucus window. hight_of_titlebar = 0 # height deviation of title bar height show_special = 0 # show windwos in special workspace in overview. } split-monitor-workspaces { count = 12 } } ======Config-End======== ```

Description

This one is a weird issue: Before: All good on Hyprland 0.41.x Arch. After: With Hyprland 0.42, I have a constant 40% CPU utilization going on (4 cores / 8 threads)

Everything seems to be working fine as usual but slower due to the CPU issue. Have tried the usual things like disabling animations, etc. Nothing seems to work ! Any tips ?

htop visual for reference:

image

How to reproduce

No idea

Crash reports, logs, images, videos

No response

NotAShelf commented 2 months ago

Is this a dual-gpu system? E.g. a laptop?

iqbal1975 commented 2 months ago

DELL Precision M4800 with following specs:

Dual GPU system: iGPU (Intel) and dGPU (nVidia), but I'm using the iGPU on Hyprland and not the dGPU.

CPU

$ inxi -C 
CPU:
  Info: quad core model: Intel Core i7-4900MQ bits: 64 type: MT MCP cache:
    L2: 1024 KiB
  Speed (MHz): avg: 2100 min/max: 800/3800 cores: 1: 2095 2: 2095 3: 2095
    4: 2095 5: 2137 6: 2095 7: 2095 8: 2095

Graphics

$ inxi -G

Graphics:
  Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915
    v: kernel
  Device-2: NVIDIA GK106GLM [Quadro K2100M] driver: nvidia v: 470.256.02
  Device-3: Microdia Integrated Webcam driver: uvcvideo type: USB
  Display: wayland server: X.Org v: 24.1.2 with: Xwayland v: 24.1.2
    compositor: Hyprland v: 0.42.0 driver: X: loaded: modesetting,nvidia
    unloaded: fbdev,vesa dri: crocus gpu: i915,nvidia,nvidia-nvswitch
    resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: crocus,nvidia,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.1.6-arch1.1
    renderer: Mesa Intel HD Graphics 4600 (HSW GT2)
  API: Vulkan v: 1.3.279 drivers: intel,nvidia surfaces: xcb,xlib,wayland
vaxerski commented 2 months ago

can you bisect https://wiki.hyprland.org/Crashes-and-Bugs/#bisecting-an-issue

MightyPlaza commented 2 months ago

see https://github.com/hyprwm/Hyprland/issues/7356

romanstingler commented 2 months ago

please install the latest aquamarine-git and try again

iqbal1975 commented 2 months ago

Have upgraded to

  1. hyprland-git-0.42.0.r42.83d88fa5-1
  2. aquamarine-git-0.3.2.r0.g7f8df01-1
  3. hyprlang-git-0.5.2.r8.gadbefbf4-1
  4. hyprcursor-git-0.1.9.r11.g912d5602-1

to ensure that I'm using the latest git versions of all the packages in the Arch repos.

No luck ! The system is still stuck at a constant CPU reading!

FYI: I'm following #7356 without success ! :(

vaxerski commented 2 months ago

can you bisect

iqbal1975 commented 1 month ago

Hyprland 0.43 and Aquamarine 0.4.1 seem to have resolved the constant high CPU usage ! Thanks Vax.

Now I need to figure out what happened to my external monitor (either HDMI or Display Port) as it is not detected anymore! Currently on iGPU but the situation is the same for dGPU too :(