AprilNEA / AprilNEA/OpenLogi

[Feature]: Support nested folders / submenus in Action Ring

Open
#1,166 0 comments 0 reactions 0 assignees View on GitHub
needs: triage type: feature
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
2d 5h
Merged PRs (30d)
172

Description

### Pre-flight checklist

- [x] I searched existing issues and the [Roadmap](https://github.com/AprilNEA/OpenLogi#roadmap), and this isn't already tracked.

### Problem / motivation

### Pre-flight checklist

- [x] I searched existing issues and the Roadmap, and this isn't already tracked.

### Problem / motivation

OpenLogi's Action Ring currently provides a single level of 8 actions.

In Logi Options+, an Action Ring slot can be configured as a folder/submenu. Selecting that slot opens another Action Ring with additional actions.

This is very useful when there are more than 8 frequently used actions, or when actions should be grouped by category.

For example:

Main Ring
- Editing
- Window Management
- Screenshots
- Media
- App shortcuts
- ...

Selecting "Editing" could open a second ring containing:

- Copy
- Paste
- Cut
- Undo
- Redo
- Select All
- etc.

Without nested rings, users are limited to 8 actions per ring and have to replace actions or rely on separate per-app profiles.

### Proposed solution

Allow an Action Ring slot to point to another Action Ring instead of directly executing an action.

For example:

Main Action Ring
→ Editing
→ Copy
→ Paste
→ Cut
→ Undo
→ Redo

Ideally:

- Any slot could open a child/sub-ring.
- A sub-ring could provide a Back action to return to the parent ring.
- Nested rings could be configured from the GUI.
- Existing single-level Action Ring configurations would continue to work unchanged.

A single additional level would already cover most use cases; unlimited recursive nesting is not necessary.

### Alternatives considered

Per-application Action Ring profiles help organize actions, but they do not solve the same problem because sometimes multiple groups of actions are needed inside the same application.

Using keyboard shortcuts or button mappings outside the Action Ring also works, but loses the visual menu and discoverability of the Action Ring.

### Related area(s)

- [x] GUI
- [x] Button actions / remapping
- [x] Configuration (TOML)

### Additional context

Logi Options+ supports a similar concept where an Action Ring item can act as a folder and open another set of actions.

This would make OpenLogi's Action Ring much more useful for workflows that need more than 8 actions while keeping the main ring clean and organized.

### Proposed solution

Allow an Action Ring slot to open a second-level Action Ring instead of directly executing an action.

For example:

Main Action Ring
→ Editing
→ Copy
→ Paste
→ Cut
→ Undo
→ Redo

Ideally:

- Any slot could be configured to open a child/sub-ring.
- The sub-ring should provide a way to return to the parent ring.
- Nested rings should be configurable from the GUI.
- Existing single-level Action Ring configurations should continue to work unchanged.

Supporting just one additional level would already cover most use cases; unlimited recursive nesting is not necessary.

### Alternatives considered

_No response_

### Related area(s)

- [ ] GUI
- [ ] CLI
- [ ] Button actions / remapping
- [ ] DPI
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Configuration (TOML)
- [ ] Auto-update
- [ ] Other

### Additional context

_No response_

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the Action Ring entry point and its GUI, button-remapping, and TOML configuration paths; no specific files or tests are named in the issue. Done means a slot can open a child ring, users can return to its parent, nested rings can be configured in the GUI, and existing single-level configurations still work.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.