keepassxreboot / keepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
https://keepassxc.org/
Other
20.94k stars 1.45k forks source link

RFC: Improved per entry Auto-Type #7037

Open hifi opened 2 years ago

hifi commented 2 years ago

Summary

I'm proposing per entry Auto-Type would be changed to present a list of windows that can be auto-typed into creating a dialog that resembles the global Auto-Type dialog but windows instead of entries. The window list shall be filtered with window associations for the entry if they exist.

The window list should behave as follows:

  1. if an entry has window associations and they match a single window, type into it automatically (honor "Always ask before performing Auto-Type", skip dialog only if not enabled)
  2. if entry has window associations and they match multiple windows, show them in the dialog
  3. if entry has no window associations, list all windows that can be typed into (skip docks etc.)

Always order the list by whatever the WM/desktop thinks is the focus order for alt-tab so that the first entry is the previously focused one and highlight it by default (aka first entry). This keeps current behavior while also providing more functionality and security by having the window title shown, albeit in a list. You can just hit enter to accept the default selection.

In my opinion this would supersede #6205 and #6206 while also providing more functionality and security instead of relying on deny lists or timers.

Examples

Imagine a dialog with a list of window titles (and icons if possible) like a task switcher, based on global Auto-Type

It possibly needs to include a checkbox like the global Auto-Type but: [X] Search all open windows to have an override if the window associations are bad. Have it disabled completely if no associations are configured for the entry.

Context

Current behavior of typing to the previous active window has multiple disadvantages:

Most of these are both security and usability concerns in my opinion. I avoid using it for pretty much because all of them.

MKobek commented 2 years ago

Hey @hifi How much time and which skill level is required to get that implemented. Maybe I get a volunteer to build that.

hifi commented 2 years ago

Basic understanding of Qt5 and GUIs for the UI part. Some platform (Windows, Linux/BSD/X11 or MacOS) knowledge to at least get one platform working with it.

It's mostly just implementing an abstraction to list windows and then display them. I make it sound easy but it really depends on the developer's experience.

droidmonkey commented 2 years ago

@hifi do we still want to spend time on this?

hifi commented 2 years ago

I still think this might be a good way to improve entry level usage. I'd keep this issue around for now.