Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

numlock issue still presist #8288

Open
1 task done
littleblack111 opened this issue Oct 29, 2024 · 8 comments
Open
1 task done

numlock issue still presist #8288

littleblack111 opened this issue Oct 29, 2024 · 8 comments
Labels
bug Something isn't working

Comments

@littleblack111
Copy link
Contributor

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

Yes

System Info and Version

System/Version info
Hyprland 0.44.0 built from branch main at commit 4da3d7412dfc5525f8dd6f8ed5c85cc3ad0ae6a7  (input-capture: fix rebase issues).
Date: Mon Oct 28 19:31:36 2024
Tag: v0.44.0-96-g4da3d741, commits: 5395
built against aquamarine 0.4.2


flags set:
debug


System Information:
System name: Linux
Node name: Arch-Linux
Release: 6.11.5-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Tue, 22 Oct 2024 18:31:33 +0000


GPU information: 
00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] [8086:a780] (rev 04) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080 SUPER] [10de:2702] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  560.35.03  Fri Aug 16 21:39:15 UTC 2024


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

======Config-Start======


Config File: /home/system/.config/hypr/hyprland.conf: Read Succeeded
################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres@highrr,auto,auto,bitdepth,10
# monitor=,preferred,auto,auto,bitdepth,10


###################
### MY PROGRAMS ###
###################

# Program defaults
$terminal = alacritty
$termfloat = [float; size 40% 40%; workspace +0] alacritty
$editor = lvim
# $browser = thorium-browser
$browser = zen-browser
$fileManager = thunar
$sessionManager = sddm
$menu = rofi -i -dmenu -theme $HOME/.config/rofi/configs.rasi

# Dirs
$HYPRDIR = $HOME/.config/hypr
$WAYBARDIR = $HOME/.config/waybar
$SCRIPTSDIR = $HOME/scripts
$rofiexec = $HOME/.config/rofi/scripts

# global vars
$outer_gaps = 12

source = $HYPRDIR/colors.conf

# misc
$waylandarg = --enable-features=WaylandWindowDecorations,UseOzonePlatform --ozone-platform-hint=auto


#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general { 
    gaps_in = 5
    gaps_out = 7
    border_size = 3

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # DO THIS LATER
    # col.inactive_border = rgba(595959aa)
    # col.active_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg
    # col.inactive_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg
    # col.active_border = rgb(00a7f5) rgb(538620)
    # col.inactive_border = rgb(00a7f5) rgb(538620)
    col.inactive_border = $background
    col.active_border = $color15 $color13 $color10 $color8 $color6 $color4 $color2 $color0 # 45deg

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false 

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = true

    layout = dwindle
    snap {
        enabled = true
    }
}

xwayland {
  force_zero_scaling = true
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 7

    # Change transparency of focused and unfocused windows
    active_opacity = 0.95
    inactive_opacity = 0.85
    fullscreen_opacity = 1.0

    drop_shadow = true
    shadow_range = 15
    shadow_render_power = 4
    # col.shadow = rgba(1a1a1aee)
    col.shadow = $background
    screen_shader = /usr/share/hyprshade/shaders/vibrance.glsl

    # dim_inactive = true
    # dim_strength = 0.4

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 6
        passes = 3
        # vibrancy = 1
        popups = true
        ignore_opacity = true # KEEP THIS, THIS MAKE BLUR ACTUALLY BLUR COOL
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = true

    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = windowovershot, 1, 1, 0, 1.05
    bezier = overshot, 0.5, 1, 0, 1.2
    # bezier = outsideIn, 0.5, 1.1, 0, 0.9
    bezier = slow-fast, 1, 0.33, 0.3, 1
    bezier = fast-slow, 0.33, 0.8, 0, 1
    bezier = linear, 0, 0, 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 = fade, 1, 4, md3_decel

    animation = windows, 1, 3, overshot
    # animation = windowsOut, 1, 2, slow-fast, popin 15%
    animation = windowsOut, 1, 2, slow-fast, popin 15%
    # animation = windowsMove, 1, 2, md3_accel # when new window appears, it will block it for a while since its slower then windowIn animation
    animation = workspaces, 1, 6, fast-slow, slide
    animation = workspacesIn, 1, 6, fast-slow, slidefade
    animation = borderangle, 1, 100, linear, loop
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
    force_split = 3
}

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc { 
    force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
    focus_on_activate = true
    disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
    # vfr = false
    # vrr = 1 # 1 = always, 2 = only in full screen
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    # animate_manual_resizes = true
    # animate_mouse_windowdragging = true
    middle_click_paste = false
    enable_swallow = false # true
    swallow_regex = ^(Alacritty)$
    new_window_takes_over_fullscreen = 2
}

group {
    groupbar {
        # enabled = false
        render_titles = false
        text_color = $foreground
        col.active = $color0
        col.inactive = $background
        col.locked_active = $color0
        col.locked_inactive = $background
    }
    col.border_active = $color0 $color15 $foreground $cursor
    col.border_inactive = $background
    col.border_locked_active = $color0 $background
    col.border_locked_inactive = $background
}

# binds {
    # workspace_back_and_forth = true
# }

render {
    explicit_sync = 1
    explicit_sync_kms = 1
    direct_scanout = true
}

opengl {
    # nvidia_anti_flicker = false
    # force_introspection = 0
}

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1
    # scroll_factor = 1.0

    # sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
    numlock_by_default = true
    # touchpad {
    #     natural_scroll = false
    # }
}

cursor {
    # allow_dumb_copy = true
    no_hardware_cursors = true
    no_break_fs_vrr = true
    # zoom_rigid = true
    persistent_warps = true
}

plugin {
    overview {
        enabled = true
        disableGestures = true
        panelHeight = 150
    }
    # hyprfocus {
    #     enabled = yes
    #     focus_animation = shrink
    #     animate_floating = yes
    #     animate_worksapcechange = yes
    # }
    dynamic-cursors {
        mode = stretch
        shake {
            effects = true
        }
        shaperule = text, none
        # shaperule = clientside, none
    }
    # chromakey_background = $background
    # hy3 {
    #     # disable gaps when only one window is onscreen
    #     # 0 - always show gaps
    #     # 1 - hide gaps with a single window onscreen
    #     # 2 - 1 but also show the window border
    #     # no_gaps_when_only = <int> # default: 0

    #     # 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 = <int> # default: 2

    #     # offset from group split direction when only one window is in a group
    #     # group_inset = <int> # default: 10

    #     # if a tab group will automatically be created for the first window spawned in a workspace
    #     # tab_first_window = <bool>

    #     # tab group settings
    #     tabs {
    #       # height of the tab bar
    #       # height = <int> # default: 15

    #       # padding between the tab bar and its focused node
    #       # padding = <int> # default: 5

    #       # the tab bar should animate in/out from the top instead of below the window
    #       # from_top = <bool> # default: false

    #       # rounding of tab bar corners
    #       # rounding = <int> # default: 3

    #       # render the window title on the bar
    #       # render_text = <bool> # default: true

    #       # center the window title
    #       # text_center = <bool> # default: false

    #       # font to render the window title with
    #       # text_font = <string> # default: Sans

    #       # height of the window title
    #       # text_height = <int> # default: 8

    #       # left padding of the window title
    #       # text_padding = <int> # default: 3

    #       # active tab bar segment color
    #       # col.active = <color> # default: 0xff32b4ff

    #       # urgent tab bar segment color
    #       # col.urgent = <color> # default: 0xffff4f4f

    #       # inactive tab bar segment color
    #       # col.inactive = <color> # default: 0x80808080

    #       # active tab bar text color
    #       # col.text.active = <color> # default: 0xff000000

    #       # urgent tab bar text color
    #       # col.text.urgent = <color> # default: 0xff000000

    #       # inactive tab bar text color
    #       # col.text.inactive = <color> # default: 0xff000000
    #     }

    #     # autotiling settings
    #     autotile {
    #       # enable autotile
    #       # enable = <bool> # default: false

    #       # make autotile-created groups ephemeral
    #       # ephemeral_groups = <bool> # 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
    #       # <number> = pixel height to split at
    #       # trigger_width = <int> # 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
    #       # <number> = pixel height to split at
    #       # trigger_height = <int> # 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 = <string> # default: all
    #     }
    # }
    # hyprwinwrap {
    #     class = winwrap
    # }
}

source = ~/.config/hypr/env.conf
source = ~/.config/hypr/rules.conf
source = ~/.config/hypr/binds.conf
source = ~/.config/hypr/autostart.conf
# debug:disable_logs = false

debug {
    # overlay = true # show fps
    suppress_errors = true
    error_position = 1
}


Config File: /home/system/.config/hypr/colors.conf: Read Succeeded
$wallpaper = /home/system/.cache/sunset-on-lake.3840x2160.mp4.png
$background = rgb(150F16)
$foreground = rgb(E7E0E8)
$cursor = rgb(E7E0E8)
$color0 = rgb(3D383E)
$color1 = rgb(450E24)
$color2 = rgb(43283D)
$color3 = rgb(B85965)
$color4 = rgb(A88FA4)
$color5 = rgb(B9A6B5)
$color6 = rgb(BBA6BC)
$color7 = rgb(D4CAD5)
$color8 = rgb(958D95)
$color9 = rgb(450E24)
$color10 = rgb(43283D)
$color11 = rgb(B85965)
$color12 = rgb(A88FA4)
$color13 = rgb(B9A6B5)
$color14 = rgb(BBA6BC)
$color15 = rgb(D4CAD5)


Config File: /home/system/.config/hypr/env.conf: Read Succeeded
#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = HYPRCURSOR_THEME,Bibata-Rainbow-Modern

# Nvidia
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# env = __GL_GSYNC_ALLOWED,1
env = VDPAU_DRIVER,nvidia
env = NVD_BACKEND,direct
# just in case if it tried to use igpu for hardware accel
# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0

# XDG
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

# QT
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
# env = QT_QPA_PLATFORM=wayland;xcb    # Not yet working for onlyoffice-editor
env = QT_QPA_PLATFORM = xcb
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt6ct
# env = SDL_VIDEODRIVER,wayland 
env = _JAVA_AWT_WM_NONREPARENTING,1

# Scale
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
# env = GDK_DPI_SCALE,1.5
# env = QT_SCALE_FACTOR,2
env = ELECTRON_OZONE_PLATFORM_HINT,auto

# Input method
# env = GTK_IM_MODULE,fcitx
env = QT_IM_MODULE,fcitx
env = QT_IM_MODULES,wayland;fcitx;ibus
env = XMODIFIERS,@im=fcitx
env = SDL_IM_MODULE,fcitx
env = GLFW_IM_MODULE,fcitx
env = INPUT_METHOD,fcitx
env = XMODIFIERS,fcitx
env = IMSETTINGS_MODULE,fcitx

# wine
env = WINEPREFIX, /opt/windows.wine

# howdy avoid spam from gstreamer
env = OPENCV_LOG_LEVEL, ERROR

# temp fix for gtk apps seg fault
env = GSK_RENDERER, ngl

# Toolkit backend
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland # Remove or set to x11 if games that provide older versions of SDL cause compatibility issues

# QT
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORM,wayland;xcb


# firefox
env = MOZ_DISABLE_RDD_SANDBOX, 1
env = MOZ_ENABLE_WAYLAND,1


Config File: /home/system/.config/hypr/rules.conf: Read Succeeded
##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Tag
# workspaces
windowrulev2 = workspace 1, tag:terminal
windowrulev2 = workspace 2, tag:web
windowrulev2 = workspace 3, tag:file
windowrulev2 = workspace 4, tag:code
windowrulev2 = workspace 5, tag:office
windowrulev2 = workspace 6, tag:communication
windowrulev2 = workspace 7, tag:media
windowrulev2 = workspace 8, tag:games
windowrulev2 = workspace 9, tag:system
windowrulev2 = workspace 10, tag:misc

# GUI Utils
windowrulev2 = opacity 0.85 0.75, tag:gui-utils
windowrulev2 = pin, tag:gui-utils
windowrulev2 = size 53% 60%, tag:gui-utils
windowrulev2 = move 46.5% 5%, tag:gui-utils
windowrulev2 = animation slide right top, tag:gui-utils

# media contents
windowrulev2 = float, tag:media-contents
windowrulev2 = pin, tag:media-contents
windowrulev2 = move 100%-w-$outer_gaps, tag:media-contents
windowrulev2 = noinitialfocus, tag:media-contents
windowrulev2 = noshadow, tag:media-contents
# It grabs our focus when it change video
windowrulev2 = suppressevent activatefocus, tag:media-contents

# fake fullscreen
windowrulev2 = fullscreenstate 0 2, tag:fakefullscreen

# Games
windowrulev2 = fullscreen, tag:games
# Tearing (for better gaming performance)
windowrulev2 = immediate, tag:games

# time-sensitive app rules
windowrulev2 = stayfocused, tag:time-sensitive
windowrulev2 = pin, tag:time-sensitive
windowrulev2 = dimaround, tag:time-sensitive
windowrulev2 = center, tag:time-sensitive
windowrulev2 = float, tag:time-sensitive

# cli util apps
windowrulev2 = float, tag:cli-utils
windowrulev2 = pin, tag:cli-utils
windowrulev2 = dimaround, tag:cli-utils

# hidden
windowrulev2 = movetoworkspacesilent, special:minimized, tag:hidden

# Group
# windowrule = group, ^virt-manager$

# Terminal applications
windowrulev2 = tag terminal, class:^(Alacritty|Xfce4-terminal|Kitty)$

# Web browsers
windowrulev2 = tag web, class:^($browser|Brave-browser|chromium|firefox|thorium|zen-alpha)$

# File managers
windowrulev2 = tag file, class:^($fileManager|Pcmanfm|Thunar|qBittorrent|Caja)$

# Code editors
windowrulev2 = tag code, class:^(Geany|code|code-url-handler|cursor-url-handler|code-oss|Code - OSS|install4j-burp-StartBurp|burp-StartBurp|Unity|jetbrains-pycharm-ce|Postman)$

# Office applications
windowrulev2 = tag office, class:^(Gucharmap|Atril|Evince|LibreOffice.*|libreoffice.*|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b)$

# Communication apps
windowrulev2 = tag communication, class:^(Thunderbird|TelegramDesktop|Hexchat|discord|vesktop|VencordDesktop|Chat-gpt|Whatsapp-for-linux|Chatbox)$

# Media applications
windowrulev2 = tag media, class:^(Audacity|Music|MPlayer|Lxmusic|Inkscape|Gimp|Blender|obs|zoom|Zoom|Pitivi|kdenlive|openshot|vlc|cider|Cider|shotwell|Shotwell|fr.handbrake.ghb|Spotify)$

# Games
windowrulev2 = tag games, class:^(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|Lunar Client.*|zenlesszonezero.exe|moe.launcher.sleepy-launcher|sober)$

# System/Settings applications
windowrulev2 = tag system, class:^(virt-manager|blueman-adapters|GParted|Xdm-app|timeshift-gtk|com.nextcloud.desktopclient.nextcloud|gearlever|Lxappearance|Lxtask|Lxrandr|Arandr|System-config-printer.py|Pavucontrol|Exo-helper-1|Protonvpn|Xfce4-power-manager-settings|Mysql-workbench-bin|Grub-customizer|Nitrogen|archlinux-tweak-tool.py|pamac-manager|helvum|Vmware|btrfs-assistant|Bitwarden|wootility-lekker|nwg-look|com.github.wwmm.easyeffects|kvantummanager)$

# Miscellaneous applications
windowrulev2 = tag misc, class:^(maxautoclicker|os_server|Os_server)$

# floating applications
windowrulev2 = float, class:^(Pcmanfm|Onboard|Yad|zoom|Xdm-app|wechat|WeChat|sxiv|Sxiv|Firefox:Places|Viewnior|feh|Nm-connection-editor|install4j-burp-StartBurp|thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|float|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|electron|com.github.rafostar.Clapper)|Sign in – Google accounts$
windowrulev2 = float, title:^(Steam Settings)$

# pin apps
windowrulev2 = pin, title:^(zoom_linux_float_video_window)$

# specificly sized
# windowrulev2 = size 40% 40%, class:^(alacritty-float)$

# Sticky applicationsp

# App that have menu on top for stayfocused, without this, menus will dissappear when you move ur mouse
windowrulev2 = stayfocused, title:(menu)

# GUI Utils applications
windowrulev2 = tag gui-utils, class:^(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)$
windowrulev2 = animation slide right top, tag:gui-utils

# bitwarden chrome extension popup
windowrulev2 = pin, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
windowrulev2 = float, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
windowrulev2 = stayfocused, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$

# firefox
windowrulev2 = float, title:^Extension

# for media contents
windowrulev2 = tag media-contents, class:^(blobdrop|dragon)$
# PIP
windowrulev2 = tag media-contents, title:^(Picture-in-Picture)$
windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$

# removes title/border
windowrulev2 = tag fakefullscreen, class:^(thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default)

# Full screen applications
# time-sensitive app rules
windowrulev2 = tag time-sensitive, class:^(org.freedesktop.impl.portal.desktop.kde|polkit-gnome-authentication-agent-1|pinentry-|xdg-desktop-portal.*|hyprland-share-picker.*|gcr-prompter)$
windowrulev2 = tag time-sensitive, title:^(Open File|Open|Select a File|Choose wallpaper|Open Folder|Save As|Save File|Library|File Upload|.*- Properties)$
windowrulev2 = dimaround, tag:time-sensitive

# rofi
# windowrulev2 = float, class:^(Rofi)
# windowrulev2 = pin, class:^(Rofi)
# windowrulev2 = dimaround, class:^(Rofi)
# util apps
windowrulev2 = tag cli-utils, title:^(nmd|cliphist|pulsemixer|ranger|btop)$
windowrulev2 = dimaround, tag:cli-utils
windowrulev2 = stayfocused, title:^(btop)$

# windowrulev2 = stayfocused, title:^(rofi - Command|rofi - Confirmation|rofi - ArchLinux (hyprland))

# No shadow for tiled window
windowrulev2 = noshadow,floating:0

# Opacity rules
# windowrule = opacity 0.89 override 0.89 override, .* set in decoration
# windowrulev2 = opacity 0.95 0.90, class:.+
windowrulev2 = opacity 0.85 0.75, class:^code-oss$
windowrulev2 = opacity 0.85 0.75, class:^code$
windowrulev2 = opacity 0.85 0.75, class:^code-url-handler$
windowrulev2 = opacity 0.85 0.75, class:^cursor-url-handler$
windowrulev2 = opacity 1.00 0.90, class:^TelegramDesktop$
windowrulev2 = opacity 0.90 0.80, class:^Spotify$
windowrulev2 = opacity 0.90 0.80, class:^Cider$
windowrulev2 = opacity 0.50 0.40, class:^fcitx$
windowrulev2 = opacity 0.90 0.80, class:^Brave-browser$
windowrulev2 = opacity 0.90 0.80, class:^thunar$
windowrulev2 = opacity 0.85 0.75, class:^discord$
windowrulev2 = opacity 0.90 0.80, class:^Caja$
windowrulev2 = opacity 0.80 0.70, class:^polkit-gnome-authentication-agent-1$
windowrulev2 = opacity 0.80 0.70, title:^Open$
windowrulev2 = opacity 0.8 0.5, title:^New Tab - Thorium$
# windowrulev2 = ignorezero, title:Annotation - Zoom

# no blurs
windowrulev2 = noblur, title:^(Annotation - Zoom)$


# Layer rules/blur
layerrule = blurpopups

layerrule = blur,rofi
layerrule = ignorezero,rofi
layerrule = dimaround,rofi
layerrule = animation popin 65%,rofi

layerrule = blur,notifications
layerrule = ignorezero,notifications
layerrule = blur,swaync-notification-window
layerrule = ignorezero,swaync-notification-window
layerrule = blur,swaync-control-center
layerrule = animation slide right,swaync-notification-window
layerrule = animation slide right,swaync-control-center
layerrule = ignorezero,swaync-control-center

layerrule = blur,logout_dialog

layerrule = blur,waybar
layerrule = ignorezero, waybar

layerrule = blur,syshud
layerrule = ignorezero, syshud
# layerrule = blur,$browser

# Misc

# 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)$

# Tearing (for better gaming performance)
windowrule = tag games, .*\.exe

# Roblox join private server
windowrulev2 = float, title:^(Join Friends)$ class:^(org.vinegarhq.Sober)$

# No transparency for fullscreen windows
windowrulev2 = plugin:chromakey,fullscreen:0

# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0



Config File: /home/system/.config/hypr/binds.conf: Read Succeeded
####################
### KEYBINDINGSS ###
####################

binds {
#     allow_workspace_cycles = yes
      # movefocus_cycles_fullscreen = true
}

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "SUPER" key as main modifier

# Launching...
bind = $mainMod, return, execr, $terminal
bind = $mainMod shift, return, exec, $termfloat
# bind = $mainMod space, return, execr, $terminal start --class pseudo
bind = $mainMod alt, Delete, execr, pkill rofi || $rofiexec/rofi_powermenu
bind = alt, F1, execr, pkill rofi || $rofiexec/rofi_launcher
bind = alt, F2, execr, pkill rofi || $rofiexec/rofi_runner
bind = $mainMod, period, execr, pkill rofi || $rofiexec/rofi_emoji
# utils
bind = $mainMod, c, execr, pkill rofi || $rofiexec/rofi_configs
bind = $mainMod, m, execr, pkill rofi || $rofiexec/rofi_music
bind = $mainMod, n, execr, nmd
bind = $mainMod, r, execr, pkill rofi || $rofiexec/rofi_asroot
bind = $mainMod, s, execr, pkill rofi || $rofiexec/rofi_screenshot
bind = $mainMod, v, execr, pkill rofi || $rofiexec/rofi_clipboard
bind = $mainMod, w, execr, pkill rofi || $rofiexec/rofi_windows
bind = $mainMod, x, execr, pkill rofi || $rofiexec/rofi_powermenu
bind = $mainMod, b, execr, pkill rofi || $rofiexec/rofi_bluetooth
# GUI
bind = $mainMod shift, f, execr, $fileManager
# bind = $mainMod shift, w, execr, $browser --restore-last-session
bind = $mainMod shift, w, execr, $browser # -new-tab about:sessionrestore
bind = $mainMod shift, e, execr, cursor
bind = $mainMod shift, d, execr, discord $waylandarg
bind = $mainMod shift, b, execr, beeper $waylandarg
# CLI
bind = ctrl alt, a, exec, $termfloat -T pulsemixer -e pulsemixer
bind = ctrl alt, r, exec, $termfloat -T ranger -e ranger
bind = ctrl alt, v, exec, $termfloat -e $editor

# Emergency
bindtp = ctrl alt, b, exec, $termfloat -T btop -e sudo nice -n -20 ionice -c 1 sudo btop
bindtp = ctrl alt, delete, execr, pkill rofi || $rofiexec/rofi_shutdown_menu

# Misc
# bind = ctrl alt, m, execr, music
bind = $mainMod, p, execr, hyprpicker --autocopy
bindtp = ctrl alt, l, execr, loginctl lock-session
# Misc
bind = $mainMod shift, g, execr, gtk-launch shortwave.desktop
# bind = $mainMod shift, c, execr, gtk-launch google-chat.desktop

# XF86 keys & Misc
bind = ,XF86Print, execr, pidof slurp || $HOME/scripts/sysutil.sh screenshot --now
bind = alt, XF86AudioMute, execr, $HOME/scripts/sysutil.sh screenshot --in5sec
bind = $mainMod shift, s, execr, $HOME/scripts/sysutil.sh screenshot --area

# Volume
bind = ,XF86AudioRaiseVolume, execr, $HOME/scripts/sysutil.sh volume --inc
bind = ,XF86AudioLowerVolume, execr, $HOME/scripts/sysutil.sh volume --dec
bind = ,XF86AudioMute, execr, $HOME/scripts/sysutil.sh volume --toggle
bind = ,XF86AudioMicMute, execr, $HOME/scripts/sysutil.sh volume --toggle-mic
bind = ,XF86AudioNext, execr, playerctl -p spotify next
bind = ,XF86AudioPrev, execr, playerctl -p spotify previous
bindl = ,XF86AudioPlay, exec, [workspace 7 silent; noinitialfocus] $HOME/scripts/play-pause.sh || LD_PRELOAD=/usr/lib/spotify-adblock.so spotify
bind = ,XF86AudioStop, execr, playerctl -p spotify stop
bind = ,XF86PowerOff, execr, pkill rofi || $rofiexec/rofi_shutdown

# Pause
bind = ,Pause, execr, hyprfreeze -s -a

# Print
bind = ,Print, execr, $HOME/scripts/hyprshot --now

# Brightness
bind = ,XF86MonBrightnessUp, execr, $HOME/scripts/sysutil.sh brightness --inc
bind = ,XF86MonBrightnessDown, execr, $HOME/scripts/sysutil.sh brightness --dec


# Window management
# bind = $mainMod, d, execr, $HOME/scripts/hyprhide h
# bind = $mainMod, i, execr, $HOME/scripts/hyprhide s
bind = $mainMod, d, movetoworkspacesilent, special:minimized
bind = $mainMod, i, togglespecialworkspace, minimized
bind = $mainMod, i, movetoworkspace, +0
bind = $mainMod, q, killactive
bind = $mainMod shift, q, execr, kill -9 $(hyprctl activewindow | grep pid | tail -1 | awk '{print$2}')
bind = ctrl alt, escape, execr, hyprctl kill
bind = ctrl $mainMod shift, r, execr, systemctl restart $sessionManager
# restart bar
bind = ctrl $mainMod, escape, execr, killall -SIGUSR2 waybar || waybar &
# reload wall
bind = $mainMod alt, b, execr, killall wallust; killall mpvpaper.sh; $SCRIPTSDIR/mpvpaper.sh
# bind = ctrl, up, hyprexpo:expo, on
# bind = ctrl, down, hyprexpo:expo, off
bind = ctrl $mainMod alt, up, overview:open
bind = ctrl $mainMod alt, down, overview:close
# bind = alt, tab, execr, hyprswitch gui
# bind = alt, grave, execr, hyprswitch gui --reverse
# bindr = alt, tab, execr, hyprswitch close
# bindr = alt, grave, execr, hyprswitch close
bind = alt, tab, execr, /home/system/.cargo/bin/hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch
bind = alt, grave, execr, /home/system/.cargo/bin/hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch -r

binde = ctrl alt, left, workspace, -1
binde = ctrl alt, right, workspace, +1
binde = $mainMod shift, left, movewindow, l
binde = $mainMod shift, right, movewindow, r
binde = $mainMod shift, up, movewindow, u
binde = $mainMod shift, down, movewindow, d
binde = $mainMod shift, h, movewindow, l
binde = $mainMod shift, l, movewindow, r
binde = $mainMod shift, k, movewindow, u
binde = $mainMod shift, j, movewindow, d
# binde = ctrl shift, left, resizeactive, -20 0
# binde = ctrl shift, left, moveactive, 20 0
# binde = ctrl shift, right, resizeactive, -20 0
# binde = ctrl shift, up, resizeactive, 0 -20
# binde = ctrl shift, up, moveactive, 0 20
# binde = ctrl shift, down, resizeactive, 0 -20
binde = ctrl $mainMod, left, resizeactive, 20 0
binde = ctrl $mainMod, left, moveactive, -20 0
binde = ctrl $mainMod, right, resizeactive, 20 0
binde = ctrl $mainMod, up, resizeactive, 0 20
binde = ctrl $mainMod, up, moveactive, 0 -20
binde = ctrl $mainMod, down, resizeactive, 0 20
binde = ctrl $mainMod alt, f, setfloating, 1
binde = ctrl $mainMod alt, f, centerwindow, 1
binde = shift alt, left, moveactive, -20 0
binde = shift alt, right, moveactive, 20 0
binde = shift alt, up, moveactive, 0 -20
binde = shift alt, down, moveactive, 0 20

# window shortcuts
bind = $mainMod, f, fullscreen,
bind = $mainMod, space, togglefloating,
bind = $mainMod shift, space, pseudo, # dwindle
bind = $mainMod shift, m, togglesplit, # dwindle

# 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
# vim binds
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d

# Switch workspaces with mainMod + [0-9]
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

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10

# Scroll through existing workspaces with mainMod + scroll
# use waybar
# bind = $mainMod, mouse_down, workspace, e+1
# bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# bind = $mainMod, mouse:272, pin
# bindri = $mainMod, mouse:272, pin, disable


bindi = ,mouse:275, execr, exec -a autoclicker-left zsh -c 'while true; do wlrctl pointer click; sleep $((0.$RANDOM/10)); done'
bindi = ,mouse:276, execr, exec -a autoclicker-right zsh -c 'while true; do wlrctl pointer click right; sleep $((0.$RANDOM/10)); done'
bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-left)
bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-right)

# Make group
bind = $mainMod, g, togglegroup

# bindie = ,mouse:276, execr, wlrctl pointer click
# bindie = ,mouse:275, execr, wlrctl pointer click right
# bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-left)
# bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-right)

# chroma
bind = $mainMod, O, togglechromakey

# input capture
bind = $mainMod SHIFT, escape, releaseinputcapture


Config File: /home/system/.config/hypr/autostart.conf: Read Succeeded
#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# seems to be builtin?
# exec-once = dbus-update-activation-environment --all && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME
# FIX CURSOR because keep reseting(see: https://www.reddit.com/r/hyprland/comments/1fgfmqb/gtk_apps_not_respecting_cursor_theme/)
# exec-once = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Rainbow-Modern
exec-once = hyprctl setcursor Bibata-Rainbow-Modern 24

# Launch hyprland plugins
exec-once = hyprpm reload || hyprpm update
# Start pyprland daemon
exec-once = pyprland

# Waybar
exec-once = waybar
# Hypr-Eco
# exec-once = hyprpaper
# exec-once = $SCRIPTSDIR/hyprpaper.sh
# exec-once = $SCRIPTSDIR/swww.sh
exec-once = $SCRIPTSDIR/mpvpaper.sh
exec-once = hypridle

# XWayland
exec-once = xrdb -merge ~/.Xresources

# Auth agent
# exec-once = systemctl --user start plasma-polkit-agent # doesnt respect themeing
# exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = systemctl --user start hyprpolkitagent
# keyring agent
exec-once = gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
# Location service
exec-once = /usr/lib/geoclue-2.0/demos/agent &
# input method
exec-once = fcitx5 -d
# app armor notifications
# exec-once = aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log &

# Clipboard history
# exec-once = wl-paste --watch cliphist store
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
# exec-once = wl-clip-persist --clipboard regular

# Notification agent
exec-once = swaync

# window swicher daemon
exec-once = hyprswitch init

# audio auto adjust
exec-once = $HOME/scripts/audio-autoAdjust.sh --daemon

# effect for audio
exec-once = while true; do easyeffects --gapplication-service; done

# startup sound
exec-once = $HOME/scripts/startupsound.sh

# misc
# sys hud
exec-once = syshud -M audio_in,audio_out,brightness -b /sys/bus/ddcci/devices/ddcci13/backlight/ddcci13/
# night light
# exec-once = gammastep -l geoclue2
exec-once = $HOME/scripts/hyprsunset.sh

# user applications
exec-once = udiskie
exec-once = bitwarden-desktop
# exec-once = kdeconnectd
exec-once = input-leap # works with https://github.com/3l0w/Hyprland/tree/feat/input-capture-impl
exec-once = nextcloud --background
exec-once = [workspace 6 silent; noinitialfocus] discord --start-minimized
exec-once = beeper --no-sandbox --hidden
# exec-once = echo 'ddcci 0x37' | sudo tee /sys/bus/i2c/devices/i2c-13/new_device

# Notify if stuff is already started
exec-once = warp-cli status | grep Connect && notify-send 'warp-vpn' 'connected'
exec-once = pactl get-source-mute @DEFAULT_SOURCE@ | grep 'Mute: yes' >/dev/null && notify-send 'microphone' 'muted'
exec-once = modprobe uvcvideo || notify-send 'uvcvideo' 'disabled'
exec-once = pgrep -f gpu-screen-recorder && notify-send 'recorder' 'recording'

# restore session
exec-once = hyprctl keyword misc:focus_on_activate false; hyprsession --mode load-and-exit; hyprctl keyword misc:focus_on_activate true
exec-once = hyprsession --mode save-only

# spam of notification at start(e.g. chromium)
exec-once = swaync-client --dnd-on && sleep 3 && swaync-client --dnd-off

======Config-End========

Description

same issue as prev num lock issues, num lock is on, but the input is not number. had to disable and renable to type number and will reset every ~5min(have to repeat above to get numlock working).

im pretty sure this is a reggression and is fixed but is broken again

How to reproduce

  1. enable numlock

Crash reports, logs, images, videos

No response

@MahouShoujoMivutilde

This comment was marked as outdated.

@littleblack111
Copy link
Contributor Author

hmm... doesnt seem to work, but i wonder how would defining a new var that is the same value as the old one and using the new one work.

@MahouShoujoMivutilde
Copy link
Contributor

Strange. Can you reproduce the issue without numlock on by default? Because I can't. Maybe we're talking about different issues, but it didn't reset for me after more than 20 minutes.

But for me without this patch, when numlock is on by default, after config reload it stays on (predictably), including LED, but no longer actually in effect.


About the patch

It could work because of this line inside updateModifiers()

if (!updateModifiersState())
return;

that checks if modifiersState still matches real xkbState

auto depressed = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_DEPRESSED);
auto latched = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_LATCHED);
auto locked = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_LOCKED);
auto group = xkb_state_serialize_layout(xkbState, XKB_STATE_LAYOUT_EFFECTIVE);
if (depressed == modifiersState.depressed && latched == modifiersState.latched && locked == modifiersState.locked && group == modifiersState.group)
return false;

and if it doesn't - then it sends the event that notifies things of these changes.

But if modifiersState was modified outside the method (like without the patch), the event will not be emitted, as

xkb_state_update_mask(xkbState, depressed, latched, locked, 0, 0, group);

is always called first, so modifiersState variables will be equal to all of that here

auto depressed = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_DEPRESSED);
auto latched = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_LATCHED);
auto locked = xkb_state_serialize_mods(xkbState, XKB_STATE_MODS_LOCKED);
auto group = xkb_state_serialize_layout(xkbState, XKB_STATE_LAYOUT_EFFECTIVE);

So I assumed that depressed (mods pressed) and latched (stuff to type diacritics about to go) to were zero anyway (won't influence the check), locked was whatever it is for your keyboard when numlock is already on, and group was whatever it is for us (which what you have in your config and is also default group).

So no changes, meaning no event, meaning default state of numlock as off, while leds stay on.

@littleblack111
Copy link
Contributor Author

hmm i see. I will check tmr, it's pretty late here and im abt to sleep

@MahouShoujoMivutilde
Copy link
Contributor

MahouShoujoMivutilde commented Oct 29, 2024

A proper repro for testing:

  1. Launch hyprland with numlock_by_default = true.
  2. (Layout should be selected us)
  3. Type something on numpad - numbers are entered (both with and without patch)
  4. run hyprctl reload
  5. Type something on numpad - numbers with the patch, but works like the arrow keys without the patch (so like if numlock is off)

Edit

Never mind lol.

I bisected (manually), and

GOOD d679d20 seat: avoid sending pointless 'keymap' and 'repeat_info' events (8276)
BAD 7188ee4 hyprctl: move setprop into dispatchers (8275)
c731561 internal: few more marginal optimisations from profiling (8271)
BAD d49a133 swallow: check if swallow_regex doesn't exist (8265)
2c48120 layout: slight adjustments to snapping logic (8273)
BAD 6cf193e layout: don't snap to self and allow same-pid snaps

(GOOD - numlock stays on for real after config reload)

Checking on 7188ee4 + patch - it doesn't seem to fix it anyway.

#8276 is what actually fixed the issue.

No patch is needed, update to latest git.

@littleblack111
Copy link
Contributor Author

littleblack111 commented Oct 30, 2024

hang tight, im compiling(with input-capture), i skiped a rebase conflict thats not this commit cuz i dont have time for this.

also I cannot repro with hyprctl reload, I have to just wait a while

EDIT: nope it didnt not fix it for me, but seems to somewhat mitigate it

@cafetestrest
Copy link

I can reproduce it on my Bluetooth keyboard, maybe it does work with wired?
Though I'm using NixOS 24.05 with quite old Hyprland rev: 66586c3

@Aleyo
Copy link

Aleyo commented Nov 2, 2024

I had an issue, where my wired numpad didnt work at all even with numlock_by_default = true.
I managed to make it work by adding this to hyprland input config kb_options: numpad:mac. I am not sure if it can be related at all, but hopefully it helps someone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants