abo-abo / ace-window

Quickly switch windows in Emacs
965 stars 85 forks source link

Can ace-window be configured to require just one key for the jump? #202

Closed vonHabsi closed 2 years ago

vonHabsi commented 3 years ago

For example, ff there are six windows on the screen I expect to press just one key to jump to the window, but I usually have to press the l or the k key which appears in all the windows first before pressing the second key to jump to the required window.

The only reason I can think of is with EXWM there are more windows in Emacs which are not visible but are taken into consideration by ace-window, but the same happens in the terminal. Any way it doesn't make sense that I should want to jump to a window which isn't visible. I would have to switch to that frame first.

onetom commented 2 years ago

I think (setq aw-scope 'frame) is what you need. It's documented in the README.md.

If you find this answer satisfactory, please close this issue, for the sake of tidiness, @vonHabsi.

It can make sense to be able to jump to invisible windows, if you only have a handful of them, because you might remember which window belongs to which character, if you maintain a specific layout for a longer period of time. That would save you from an extra frame switch. Of course, if you use EXWM, then the default (setq aw-scope 'global) behaviour is not so convenient.

onetom commented 2 years ago

I'd also add that if you add more characters to (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)), then ace-window don't have to use double characters until it exhausts the list of keys provided in aw-keys. Make sure you don't shadow keys provided in aw-dispatch-alist!

vonHabsi commented 2 years ago

I think (setq aw-scope 'frame) is what you need. It's documented in the README.md.

If you find this answer satisfactory, please close this issue, for the sake of tidiness, @vonHabsi.

It can make sense to be able to jump to invisible windows, if you only have a handful of them, because you might remember which window belongs to which character, if you maintain a specific layout for a longer period of time. That would save you from an extra frame switch. Of course, if you use EXWM, then the default (setq aw-scope 'global) behaviour is not so convenient.

Thanks. (setq aw-scope 'frame) solves the problem.

I don't change windows across frames, but I guess it is something I may try later, as well as the suggestions in your second reply.