Skip to content

Manual management of recent / "known" items lists #431

@FramePerfection

Description

@FramePerfection

Rationale

The recent items for ROMs and Lua scripts are practical to have when you wish to continue work where you last left off, because the latest ROM / Lua script used can be brough up quickly with a hotkey, but this gets extremely jarring (especially when using hotkeys for the actions) when working on multiple different workloads, because the most recent used items may change frequently.

Proposal Summary

It would be nice to be able to bind a ROM or Lua script to a respective "item slot" manually, so that associated hotkeys stay consistent across multiple sessions with many ROM loads or Lua script invocations.
The behavior of the recent items list should perhaps be configurable to switch between behaviors:

  1. Current behavior (Placing the most recently used item at the start of the list, moving it from the spot it was in if it was already present)
  2. Always appending the most recently item at the end of the list, ignoring it if doing so would put it outside of the available number of slots
  3. Only appending the most recently item at the end of the with a dedicated action

Options 2. and 3. both require some means of manually removing items from the list, which brings us to...

Open Questions

...
How would the user manually manage the list? Is there a simple way to provide a UI for this, or would that be a heavy technical burden?
And, as this is effectively a user preference, where would it be stored and how? (Actually, where is it stored now? I can't be bothered to look into that right now, forgive me 🙃 )

Technical Considerations

In a way, I can also think of these recent items as a sort of "action factory" that simply takes parameters (in both the ROM and Lua cases just one, namely the file name), so that may be a concept worth exploring as well.
The idea would be to let the user create certain custom actions from well known factories and then bind those actions to hotkeys.
However, this concept doesn't immediately fall into place with the idea of a "recent" action, and I have not spent any time deliberating possible implementations, so for simplicity's sake, I am suggesting this specialization for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    proposalThis issue contains a feature or change proposal.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions