Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

ALT-TAB replacement with icons and window titles in ListView


  • Please log in to reply
172 replies to this topic
Rainy-Day
  • Members
  • 55 posts
  • Last active: Nov 06 2006 04:40 PM
  • Joined: 01 Jan 2006
This is a very cool and useful script. Switching between windows is something everybody does very often, so this is one of the most useful scripts..

I noticed a few problems with docked windows: resizing one, then letting it go to dock, then undocking it again makes part of it disappear behind the edge of the screen. The window in question was opera, it was docked on the right side, and I resized it to make it wider. In addition, activating any pop-up in the docked window and moving mouse on it will make the original window disappear. The popup disappears then, too. After that, in a second, the window appears again. I'm not sure how often I need pop-ups in a browser, but at least for the other program I have docked right now, explorer2x, it's not a big deal, I don't think I do that often there.

If you maximize some other window, all docked windows get minimized and un-docked. It may be a good idea to undock them when they minimize, but it's certainly not a good idea to minimize them when a window maximizes.

It'd be very nice to allow for alternative ways to activate the menu. Anything from F4 to alt-w to alt-mouse click, or just middle mouse button. It'd also be nice to be able to go in the other direction in the list by pressing alt and some other button, like caps lock. That'd be very handy to go forward in the list by pressing alt-tab and reverse direction by alt-caps (or, in my case caps is remapped to esc, so it'd be alt-esc).

I see you have this in your todo list: dock to corners. That'd be very neat, too.

Thanks for a great script!
-AK

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
@Rainy-Day:

Thanks for the ideas and bug reports:

1)I'll fix the issues with resizing docked windows and when the docked window gets disabled due to a pop-up. The resizing issues are not surprising to me as the feature was not designed to cope with that yet, but I will if others are using it of course.

2) "If you maximize some other window, all docked windows get minimized and un-docked." I've not been able to replicate this one at all. The closest thing that I am aware of is if you maximise a docked window it stays as always-on-top, which I need to change, but that doesn't sound too much like what you described, so maybe you can give an example with standard windows programs that I can duplicate?

3) I can probably add a user-defined hotkey for showing the alt-tab list, but some of the functionality requires that the Alt-Key is still pressed down, so I'm not sure if I'll add the ability to completely change alt-tab to some other hotkeys. I'll look into it. Alt+CapsLock is a very logical alternative to Alt+Shift+Tab and only took one line of code to add so that's already gone into the latest version I'm working on, which already has quite a few additions and improvements, so I'll post it pretty soon.

  • Guests
  • Last active:
  • Joined: --
Thanks evl!

I could not reproduce the problem with maximizing some other window and docked windows getting minimized..

when testing, I ran into something else: I have opera docked on right side and if I minimize it, I can't restore it. And the popup right-click menu acts strangely. I can maximize it, though (most of times). IOW, if you accidentally minimize it, you have to undock and re-dock it. And even that does not let me restore it.. It looks like by minimizing it, it somehow garbled it's 'restored' coordinates to be outside of screen. It looks like it gets restored, but no part of it is visible on screen.. Let me try this with xplorer2x.. Hm, interesting.. when xplorer2x was on top of maximized opera, and I clicked minimize, it'd minimize, and then restore itself in about a second without me doing anything. When I minimized Opera, it did minimize itself properly, and when I clicked on it in taskbar, it'd restore itself without any problem. I can't make much sense out of this.


Incidentally, moving docked window is reset after dock/restore. Which isn't the end of the world, but it'd be even cleaner if it was possible to move and resize it - I guess code that takes care of one thing will take care of another, too.

re - alternative shortcuts. I think it'd be nice to have an option for alt-leftclick to open menu, and F4 to call up menu is also kind of neat, because you don't have to hold down any key while you're looking for the right window.. But I can imagine that it's more trouble than it's worth to change code to do that. Honestly, I'm not even sure I'd use that if it was possible.

At any rate, this script is very neat.. I'll be patiently awaiting new version :p

RainyDay
  • Guests
  • Last active:
  • Joined: --
Forgot this: when you start a program by double-click in docked xplorer2, the resulting window is hidden. i.e. you have to dock xplorer2 or minimize it and only then you'll see the window that was created. It confused me a few times, it felt like double click on a file had no effect..

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
New version:

<!-- m -->https://ahknet.autoh... ... ALtTab.ahk<!-- m -->

Lots of stuff changed and added :D I'll probably try and release another version soonish as I'm still working on a few bits, but this version's a considerable improvement in some areas.

LATEST VERSION CHANGES:
> 04-01-06
Fixed a bug where the listview could be hidden if keeping Alt pressed after Alt-Esc and then Alt-Tab
Edge-dock timers turned off if windows closed before un-docking
Edge-docked maximised windows now not AlwaysOnTop when viewing (easier to hide them again)
Edge-docking now returns the window's original AlwaysOnTop state and size when un-docking
Context Menus have had a lot added to them/re-ordered
Context Menu entries for creating groups (working sets) of windows and more powerful inclusion/exclusion options.
Context Menu access to Help (remind user of shortcuts, etc) and latest version changes - generated from this file.
Process Menu entry - end selected process or all instance of the exe in the list
Alt+CapsLock - alterative to Alt+Shift+Tab
Un-Dock - Un-Dock All menu entry added
Alt+\ "hotkey" - close selected window (while list is displayed)
Alt+/ "hotkey" - close ALL windows whose EXE matches that of the selected entry (while list is displayed)
Process menu entry - end selected process or all instance of the EXE in the list.



jOc
  • Members
  • 7 posts
  • Last active: Oct 28 2007 05:58 PM
  • Joined: 07 Dec 2005
Hi

Very cool script. I would have one simple request.
I would like to have configurable keys.

For example I currently use:
RControl & RShift::AltTab ; Hold down right-control then press right-shift repeatedly to move forward.
RControl & Enter::ShiftAltTab ; Without even having to release right-control, press Enter to reverse direction

In order to work with this script I need to have each scripts compiled in separate files. I guess first hooks keypresses, translates them and secons script catches them...

Tnx,
jOc

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
UPDATE: Just for those interested, I made some progress on user-definable Alt-Tab keys so hopefully not too long before I can get that finished.

I still had plans for configurable keys but hadn't gotten around to it as there are a number of code changes, some of which might be easy to overlook - I'll try and make it a high priority as it's been asked for before.

Trying to "trick" the Alt-Tab replacement into using other hotkeys in a 2nd file won't work very well and couldn't be made to work either due to some manual keystate checks for the alt key, etc.

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
New version:

<!-- m -->https://ahknet.autoh... ... AltTab.ahk<!-- m -->

(made quite a few major changes, especially being able to choose your own hotkeys (only manually in the file at the moment (see "USER EDITABLE SETTINGS" section), but I will add a gui soon) so let me know if you encounter any errors)

LATEST VERSION CHANGES:
> 27-01-06
User-defineable hotkeys for Alt, Tab, Shift, Esc - manual change in settings section of ahk file at the moment
Fixed docked windows getting focus when docked + focusing on last active window when re-docking.
Docked windows not always on-top when viewing - fixes windows being covered when docked window shows a dialog window.
Column sorting order remembered between displaying Alt-Tab list (click column headers to sort)
OnExit - un-docks any docked windows if script is closed



jOc
  • Members
  • 7 posts
  • Last active: Oct 28 2007 05:58 PM
  • Joined: 07 Dec 2005
Hi

Thx for the uploaded script, but I have problems configuring hotkeys to work...
For example:
Alt_Hotkey =RCtrl& ; the key to use as equivalent to Alt in Alt-Tab
this does not work.

It works:
Alt_Hotkey =^

And if I add:
Tab_Hotkey =+ ; the key to use as equivalent to Tab in Alt-Tab
It does not work anymore...

I would like to set
RCtrl to.behave.like Alt (in alt.tab)
Rshift to.behave.like Tab (in alt.tab)
RCtrl&Enter to.behave.like Shift (in alt.shift.tab)

Any suggestion?

Micha
  • Members
  • 539 posts
  • Last active: Dec 31 2011 01:43 PM
  • Joined: 15 Nov 2005
Superb, very useful and cool script 8)
I've installed it on 6 PCs, everybody loves it

Thanks
Micha

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
@ jOc: The difficulty there was mostly in having 2 modifier keys for alt and tab - my life would have been a _LOT_ easier if AHK supported hotkeys such as "1 & 2 & 3::" because then I wouldn't have to translate between modifier symbols and their word equivalent for checking key states.
Anyhow, here's what you need for your keys:
    Alt_Hotkey =^
    Tab_Hotkey =RShift
    Shift_Tab_Hotkey =Enter

So pressing Ctrl+RShift goes forwards and Ctrl+Enter goes backwards.



@ Micha: Thanks for the compliments and glad you find it useful - I'm still using your USB HID devices dll with my own keyboard script and it's working well.

  • Guests
  • Last active:
  • Joined: --
evl, great thanks :mrgreen:

Script now works like a charm.

I hope I will soon find enough time to get used with AH, because realy great apps can be built with quite moderate level of knowledge (compared to "real" programming languages, of course).

Regards,
jOc

TheLeO
  • Members
  • 264 posts
  • Last active: Jan 02 2012 01:51 AM
  • Joined: 11 Jun 2005
First of all Evl. you are amazing!!!.. :D

o.k now to buisnes..

I'm bit lazy to stretch my hand allll theee wayyyy to the keybord, so ive
used evl's /your script and edited to make it work for

XButon1 & WheelDown/Up instead of alt-tab.

when xbutton1 is released application is chosen.
due to the natue of the mouse, Xbutton1 and Lbutton interfear, and dont allow the gui to be clicked, to over come that , if you press Xbutton2 or Ctrl the gui will not disepar after xbutton1 is released.

again, thanx evl for your script,,

ah yea,, the code.: http://file.autohotk...r Xbutton1).ahk
::
I Have Spoken
::

dieguti
  • Guests
  • Last active:
  • Joined: --
Hi, I love your Alt-tab replacement.
But when the list appears, it always show the same app selected, so I can't change quickly between two apps.
Perhaps if it could sort by last access...

Thanks in advance

evl
  • Members
  • 1237 posts
  • Last active: Oct 20 2010 11:41 AM
  • Joined: 24 Aug 2005
@ dieguti: The list should be sorted by last access, just like the ordinary Alt-Tab (unless you manually click on the headers to change the sort order, but this isn't remembered between closing and running the script). The list is generated from the "Winget, List" command which contains the stack of windows in the order they were last accessed. One thing that affects the order of windows in the stack is if they are set to be Always On Top then they stay at the top of the list, but then it should still select the next program after the active one.
Is it always selecting the top item in the list? Does it matter what window was last active? Is there more than one entry in the list for the program that's always selected? I've not run across any such trouble so you'll have to give me as much detail as possible.