Skip to content

Conversation

@CapGuizera
Copy link

@CapGuizera CapGuizera commented Jan 2, 2026

📋 Description

This PR adds comprehensive documentation and a template for Brazilian ABNT2 keyboard layout users, addressing issue #1442.

🎯 Problem Solved

Users with ABNT2 keyboards reported conflicts between special characters (@ # $ %) and workspace keybindings. After investigation and testing, I discovered that the default keybindings actually work correctly with ABNT2 because Hyprland captures key presses before the keyboard layout processes them.

✨ Changes Made

  • ✅ Created keybindings-abnt2.conf with detailed ABNT2 documentation
  • ✅ Created README.md with contribution guidelines for keyboard layouts
  • ✅ Documented that SUPER+SHIFT+number does NOT conflict with special characters
  • ✅ Explained how Hyprland's key capture works with different layouts
  • ✅ Provided clear testing instructions for ABNT2 users
  • ✅ Serves as reference template for future keyboard layout contributions

🧪 Testing

Tested on:

  • OS: Arch Linux
  • Keyboard: Brazilian ABNT2 physical keyboard
  • HyDE Version: Latest from master branch
  • Hyprland Version: 0.53+

Test Results:

  • ✅ Can type @ with Shift+2 in text editors
  • SUPER+SHIFT+2 correctly moves window to workspace 2
  • ✅ All special characters work normally: @ # $ % & * ( )
  • ✅ No conflicts with default keybindings

📖 Documentation Highlights

For ABNT2 Users:

  • Clear explanation that default bindings work without modification
  • Comprehensive special character reference
  • Dead keys documentation (´ ` ^ ~)
  • Testing instructions to verify correct operation

For Contributors:

  • Guidelines for creating new keyboard layout templates
  • Explanation of when custom layouts are actually needed
  • Header template for documenting new layouts
  • Best practices for keybinding modifications

🎓 Key Insight

The main contribution of this PR is educational documentation rather than code changes:

  • Most users don't need layout-specific keybindings
  • Hyprland's key capture happens before layout conversion
  • This prevents the conflicts users were worried about

This documentation will help future users understand how keyboard layouts work with HyDE/Hyprland and avoid unnecessary customization.

🔗 Related Issue

Closes #1442

📸 File Structure

Summary by CodeRabbit

  • Documentation

    • Added comprehensive README documenting HyDE Hypr keybindings templates, contributor guidelines, and layout-specific documentation.
  • New Features

    • Added keybindings configuration for the Brazilian ABNT2 keyboard layout, including support for special characters and dead keys.

✏️ Tip: You can customize this high-level summary in your review settings.

- Added keybindings-abnt2.conf with comprehensive ABNT2 documentation
- Created README.md with contribution guidelines for keyboard layouts
- Documented that default keybindings work correctly with ABNT2
- Explained how Hyprland captures keys before layout conversion
- Provided clear testing instructions for ABNT2 users
- Serves as reference template for future keyboard layout contributions

Fixes HyDE-Project#1442
@github-actions
Copy link
Contributor

github-actions bot commented Jan 2, 2026

⚠️ Warning: PR targeting master branch detected!

This PR is targeting master but should target dev instead.

According to our Quarterly Release Policy:

  • All pull requests must be submitted to the dev branch
  • Changes go through dev first for testing before being merged to master during quarterly release windows (1st & 3rd Fridays)
  • PRs to master are only allowed for emergencies

Required Action:

  1. Change the base branch from master to dev
  2. Follow the pull request template

If this is an emergency fix, please add a comment explaining why it needs to target master directly.


This is an automated message enforcing our quarterly release workflow.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 2, 2026

📝 Walkthrough

Walkthrough

A new ABNT2 keyboard layout keybinding configuration template has been added to HyDE, including comprehensive documentation and a complete keybindings configuration file tailored for the Brazilian ABNT2 layout with conflict resolution guidance.

Changes

Cohort / File(s) Summary
ABNT2 Layout Documentation
\.local/share/hyde/templates/hypr/keybindings/README.md
New Markdown documentation describing available keybinding layouts, usage instructions (copy/symlink options), contributor guidelines, header templates, modification guidelines, submission process, ABNT2-specific notes (special characters, dead keys, compatibility), issue reporting, and resources. Includes placeholders for contributors and examples for adding new layouts.
ABNT2 Keybindings Configuration
\.local/share/hyde/templates/hypr/keybindings/keybindings-abnt2.conf
New Hyprland keybindings configuration file for ABNT2 layout with organized groups covering workspace navigation, window management, application launching, hardware controls (audio, brightness), media controls, utilities, theming, and screen capture. Includes ABNT2-specific metadata and notes on SHIFT combinations and password-character conflicts. Uses variable-driven syntax ($mainMod, $d, etc.) and grouped binding structure.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A template for keys from the land down south,
Where ABNT2 speaks through each key's mouth,
No conflicts, no chaos, just symbols that sing,
Brazilian keyboards now have their own spring! 🎹✨

Pre-merge checks

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR partially addresses #1442 by providing documentation and templates, but does not implement the main objectives: native layout selection UI, automatic keybinding adjustment, or system-wide layout application. Implement keyboard layout selection in HyDE's configuration UI or first-run wizard, automate keybinding adjustments for selected layouts, and integrate system layout detection to fully address issue #1442 requirements.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly matches the PR content—it accurately summarizes the addition of Brazilian ABNT2 documentation and configuration template.
Out of Scope Changes check ✅ Passed All changes are directly within scope—new README.md and keybindings configuration file for ABNT2 support are aligned with the stated PR objectives and issue #1442.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Comment @coderabbitai help to get the list of available commands and usage tips.

@CapGuizera CapGuizera changed the base branch from master to dev January 2, 2026 18:52
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.local/share/hyde/templates/hypr/keybindings/keybindings-abnt2.conf (1)

277-277: Clarify the comment syntax.

The comment $d=#! unset the group name uses #! which typically denotes a shebang in shell scripts. Consider simplifying to $d= # unset the group name or just # Unset the group name for clarity, unless #! has special meaning in HyDE's configuration parser.

🔎 Suggested clarification
-$d=#! unset the group name
+# Unset the group name for subsequent bindings
+$d=
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7101bf1 and 8a8a12f.

📒 Files selected for processing (2)
  • .local/share/hyde/templates/hypr/keybindings/README.md
  • .local/share/hyde/templates/hypr/keybindings/keybindings-abnt2.conf
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
.local/share/hyde/templates/hypr/keybindings/README.md

165-165: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (6)
.local/share/hyde/templates/hypr/keybindings/keybindings-abnt2.conf (2)

1-58: Excellent documentation quality!

The header provides comprehensive information about ABNT2 layout compatibility, clearly explains the technical reason why default keybindings work (Hyprland captures keys before layout conversion), and includes helpful special character references and testing instructions. This educational approach directly addresses the discoverability concerns raised in issue #1442.


89-276: Well-structured keybindings configuration!

The keybindings follow HyDE's grouping pattern consistently, with clear descriptions and logical organization into sections (Window Management, Launcher, Hardware Controls, Utilities, Workspaces). The use of variable-driven grouping ($d=[Group|Subgroup]) makes the configuration maintainable and GUI-parseable as intended.

.local/share/hyde/templates/hypr/keybindings/README.md (4)

1-29: Clear and user-friendly setup instructions!

The documentation provides two well-explained options (copy vs. symlink) for different user skill levels, with practical bash commands and reload instructions. This makes the template accessible to both beginners and advanced users.


30-131: Outstanding contribution guidelines!

This section provides excellent gatekeeping by requiring contributors to test for actual conflicts before creating new layout templates. The step-by-step process, clear DO/DON'T list, and comprehensive header template will help maintain quality and prevent unnecessary template proliferation. The emphasis on testing with wev and understanding that Hyprland captures physical key codes is particularly valuable.


132-155: Comprehensive ABNT2 reference documentation!

The layout-specific section clearly documents special character mappings, dead keys, and explains why the default keybindings are fully compatible. This serves as an excellent reference for ABNT2 users and demonstrates the educational value of this PR in addressing the discoverability concerns from issue #1442.


158-183: Helpful supplementary information and resources!

The issue reporting guidance, tips about physical key codes, and additional resources provide users with the knowledge to troubleshoot and understand keyboard layout behavior. The contributors section is a nice touch for recognizing community contributions.

1. Test with the default keybindings first
2. Document exactly what keybinding conflicts with what symbol
3. Provide your keyboard layout details (setxkbmap -query)
4. Report at: https://github.com/HyDE-Project/HyDE/issues/1442
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Wrap the bare URL in angle brackets or use markdown link syntax.

The bare URL violates markdown best practices (MD034). Wrap it in angle brackets or convert to a proper markdown link for better accessibility and standards compliance.

🔎 Proposed fixes (choose one)

Option 1: Angle brackets (simpler)

-4. Report at: https://github.com/HyDE-Project/HyDE/issues/1442
+4. Report at: <https://github.com/HyDE-Project/HyDE/issues/1442>

Option 2: Markdown link (more semantic)

-4. Report at: https://github.com/HyDE-Project/HyDE/issues/1442
+4. Report at: [GitHub Issue #1442](https://github.com/HyDE-Project/HyDE/issues/1442)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
4. Report at: https://github.com/HyDE-Project/HyDE/issues/1442
4. Report at: <https://github.com/HyDE-Project/HyDE/issues/1442>
Suggested change
4. Report at: https://github.com/HyDE-Project/HyDE/issues/1442
4. Report at: [GitHub Issue #1442](https://github.com/HyDE-Project/HyDE/issues/1442)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

165-165: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
.local/share/hyde/templates/hypr/keybindings/README.md around line 165: the bare
URL "https://github.com/HyDE-Project/HyDE/issues/1442" should be wrapped to
satisfy MD034; replace the plain URL with either angle brackets like
<https://github.com/HyDE-Project/HyDE/issues/1442> or a markdown link such as
[Report an issue](https://github.com/HyDE-Project/HyDE/issues/1442), keeping the
surrounding text intact.

@CapGuizera
Copy link
Author

📝 Note from Issue Author

Hi! I'm the original author of issue #1442.

After opening that issue and actually testing HyDE with my ABNT2 keyboard, I discovered something important: the default keybindings work perfectly!

The conflicts I was worried about don't actually happen because Hyprland captures key presses BEFORE the keyboard layout processes them. For example:

  • SUPER+SHIFT+2 moves window to workspace 2 (works! ✅)
  • SHIFT+2 types @ in text editors (also works! ✅)
  • No conflicts at all!

🎯 Purpose of This PR

This PR provides what ABNT2 users (and future international users) actually need:

  1. Clear documentation explaining that default keybindings work correctly
  2. Testing instructions so users can verify for themselves
  3. Template and guidelines for other keyboard layouts
  4. Educational content about how Hyprland handles keyboard layouts

🔄 Updating Original Issue Scope

The original issue was based on my assumption that keybindings would conflict. After testing, I learned:

  • No UI for layout selection is needed (default works)
  • No automatic adjustment is needed (default works)
  • What's needed is documentation to help users understand this

✅ This PR Fully Resolves the Real Problem

The real problem was: ABNT2 users don't know if HyDE will work with their keyboard.

This PR solves that by:

  • Documenting that it works out of the box
  • Providing clear testing steps
  • Creating a foundation for other layouts

The original issue scope was based on incomplete understanding. This PR addresses the actual user need discovered through testing.


TL;DR: As the issue author, I can confirm this PR provides the solution ABNT2 users need. The original scope was over-engineered based on assumptions. Real-world testing showed documentation is what's actually required.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request]: Improve Keyboard Layout Selection Workflow in HyDE Configurations

2 participants