mirror of
https://github.com/hyprwm/Hyprland.git
synced 2026-08-18 11:02:10 +00:00
ac82a9c2e80e791d34dbf7ec67f535babbd50357
* bindings/dispatchers: Don't inherit key state modmask during key sym lookup Discussion: https://github.com/hyprwm/Hyprland/discussions/14772 In some cases, such as with bind -> sendshortcut, the key sym lookup will fail resulting in a 'key not found' error when the cached xkb state is used for lookup. This can happen if, for example, the SHIFT key is bound in `hl.bind`. Consider the following case, where SHIFT+1 is mapped to 2: ```lua hl.bind("SHIFT + 1", hl.dsp.send_shortcut({mods = "", key = "2"})) ```` `resolveKeycode` will fail to lookup 2 because SHIFT is depressed in the modmask. Here, I've modified the lookup to use a fresh key state with no modmask. After lookup, `ConfigActions::pass` will clear the modmask before sending keys anyway, so an empty modmask can be used for lookup in `resolveKeycode` safely. * hyprtester/plugins: Update xkb state for test keyboard * hyprtester/plugins: Add keybind_modmask plugin This is different than keybind/keybind2 in that it takes a list of mods, and applies the mods to the xkb state as well, which the other two do not. * hyprtester/tests: Add set_shortbut bind tests involving SHIFT --------- Co-authored-by: Max Asnaashari <max@masnax.org>
Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
It provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins,
easy IPC, much more QoL stuff than other compositors and more...
Install
Quick Start
Configure
Contribute
Features
- All of the eyecandy: gradient borders, blur, animations, shadows and much more
- A lot of customization
- 100% independent, no wlroots, no libweston, no kwin, no mutter.
- Custom bezier curves for the best animations
- Powerful plugin support
- Built-in plugin manager
- Tearing support for better gaming performance
- Easily expandable and readable codebase
- Fast and active development
- Not afraid to provide bleeding-edge features
- Config reloaded instantly upon saving
- Fully dynamic workspaces
- Two built-in layouts and more available as plugins
- Global keybinds passed to your apps of choice
- Tiling/pseudotiling/floating/fullscreen windows
- Special workspaces (scratchpads)
- Window groups (tabbed mode)
- Powerful window/monitor/layer rules
- Socket-based IPC
- Native IME and Input Panels Support
- and much more...
Special Thanks
wlroots - For powering Hyprland in the past
tinywl - For showing how 2 do stuff
Sway - For showing how 2 do stuff the overkill way
Vivarium - For showing how 2 do stuff the simple way
dwl - For showing how 2 do stuff the hacky way
Wayfire - For showing how 2 do some graphics stuff
Description
Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Readme
BSD-3-Clause
233 MiB
Languages
C++
96.1%
GLSL
0.9%
Shell
0.9%
CMake
0.5%
Nix
0.5%
Other
1%


