kvakulo / switcheroo Goto Github PK
View Code? Open in Web Editor NEWThe humble incremental-search task switcher for Windows
Home Page: www.switcheroo.io
License: GNU General Public License v3.0
The humble incremental-search task switcher for Windows
Home Page: www.switcheroo.io
License: GNU General Public License v3.0
E.g. if Switcheroo is started while the screen resolution is low, but the resolution is later changed, then the Switcheroo overlay does not adjust accordingly.
Sometimes Windows Store Apps appear in Switcheroo even after they have been closed. They do not appear in the native alt+tab.
I would like to use switcheroo with alt-tab with one hand: alt-tab to pop-pup switcheroo, then alt to switch to the selected window. Being forced to press return to select a window forces me to use two hands.
Seems so far tab key is not used in switcheroo, so it would'nt do any harm.
This may be a difficult one. I think it would be incredibly useful to be able to close multiple windows without reopening Switcheroo overlay every time. I think that in most cases it doesn't make sense to switch to the window you are about to close, since you want to get rid of it anyway. The only case when you actually want to switch to it is when the window prevents closing itself: a typical case is when the window displays some kind of "do you want to save the files" dialog. I tried disabling hiding and switching in the CloseWindow() method to see what's gonna happen: if the window can't be closed and displays a modal dialog, its taskbar icon starts glowing, alerting the user that the window requires some attention. I think it may be possible to detect this and act accordingly by switching to this window (and stay in the overlay if the window is closed). Alternatively, if the previous solution is impossible, it may be enough to launch a timer and check the state of the window after a small delay: if it no longer exists, stay in the otherlay; otherwise switch to it.
After my latest reboot, Switcheroo is crashing on launch. I couldn't find a log file, but here's the crash from Event Viewer:
Application: switcheroo.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ComponentModel.Win32Exception
Stack:
at ManagedWinapi.Hooks.Hook.StartHook()
at Switcheroo.MainWindow.SetUpAltTabHook()
at Switcheroo.MainWindow..ctor()
at Switcheroo.Program.Main()
I tried deleting my user.config in the hope that it wouldn't try to re-hook Alt-Tab, but that didn't seem to help. I also tried installing/re-installing. Same thing.
Any ideas?
I just upgraded to 0.7.3 and it went back to the default key binding of alt-space. Not a huge issue, but it would be nice if it remembered between upgrades.
Cheers,
Ben
It seems Switcheroo's version in master is set to a value that's lower than the current public version for some reason, which triggers update prompt when running custom builds.
As proposed by @rayhofmann in #28 it should be possible to search by process name.
He proposed this syntax chr.abc
where chr
refers to the process name and abc
refers to the window caption.
I have tried to implement this in the following commit as an experiment to try out how it feels.
As an extra feature: If a process name is left out, and one just searches for .abc
then the process name filter is implicitly set to the process name of the foreground window. This seems nice when switching between different windows of the application that you currently have in the foreground. (Just activate Switcheroo, type .
and choose any other window from the same application)
A option to sort or group the list by applications would be nice.
Only if a group is matched it is expanded, to keep the list shorter and possibly all of it on the screen.
And selection with a dot would also be nice: chr.abc means select group of chr(ome) applications by application name and not by caption and then match to abc of the window caption.
This happens on a Windows 8.1 laptop that launches Start screen instead of Desktop by default. If Switcheroo is set to launched automatically and Desktop (or any classic Desktop software for that matter) is never opened, Switcheroo crashes with 'The instruction at %address% references memory at 0x00000008' alert when you try to shut down the system. Apparently, something goes wrong when the system attempts to gracefully terminate the app.
I've found this in the event viewer, even though it doesn't look very helpful:
Application: switcheroo.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.NullReferenceException Stack: at System.Windows.Window.InternalClose(Boolean, Boolean) at System.Windows.Application.DoShutdown() at System.Windows.Application.ShutdownImpl() at System.Windows.Application.ShutdownCallback(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at Switcheroo.Program.Main()
I think I saw SmartGit window on one of your screenshots, which is good, because this means you can easily reproduce the bug ;)
Ctrl+R
to display reset windowSwitcheroo constantly fails to close Task Manager when running on Windows 8 (haven't tried with other Windows versions). I understand there are windows that intercept closing and prevent it (typically to display some kind of 'save changes?' dialog), but such windows do this regardless of the way they are closed: Alt+F4, right-click on the taskbar icon -> Close window or Switcheroo's Ctrl+W all behave the same. Task Manager, however, can be closed by Alt+F4 and the taskbar icon, but can't be closed by Switcheroo, so it seems like a bug.
To compliment Arrow Up
and Arrow Down
.
Furthermore Alt+Tab
and Shift+Alt+Tab
can already be used, if the Alt-Tab
-hook is activated.
Currently Switcheroo shows the icon from the process that owns a window, but often this is not the same icon as the one being shown in the taskbar.
Some features are currently hidden, e.g. the feature to close a window using Ctrl+W
.
Let's make the features more discoverable for new users.
// Excuse my beginner's English
When i attempt open options causing this exception window and options window is not opening.
Window debug text:
Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.
************** Текст исключения **************
ManagedWinapi.HotkeyAlreadyInUseException: Выдано исключение типа "ManagedWinapi.HotkeyAlreadyInUseException".
в ManagedWinapi.Hotkey.updateHotkey(Boolean reregister)
в Switcheroo.HotKey.LoadSettings()
в Switcheroo.OptionsWindow..ctor()
в Switcheroo.MainWindow.Options()
в System.Windows.Forms.Command.Invoke()
в System.Windows.Forms.NotifyIcon.WndProc(Message& msg)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18444 built by: FX451RTMGDR
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
switcheroo
Версия сборки: 0.8.0.50
Версия Win32: 0.8.0.50
CodeBase: file:///C:/Program%20Files%20(x86)/Switcheroo/switcheroo.exe
----------------------------------------
PresentationFramework
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
WindowsBase
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
PresentationCore
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
System.Xaml
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
----------------------------------------
ManagedWinapi
Версия сборки: 0.8.0.50
Версия Win32: 0.8.0.50
CodeBase: file:///C:/Program%20Files%20(x86)/Switcheroo/ManagedWinapi.DLL
----------------------------------------
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.34234 built by: FX452RTMGDR
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
PresentationFramework.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.resources/v4.0_4.0.0.0_ru_31bf3856ad364e35/PresentationFramework.resources.dll
----------------------------------------
PresentationFramework.Aero
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Aero/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Aero.dll
----------------------------------------
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.
Например:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.
Have any ideas?
Thanks!
It would be nice if you could activate Switcharoo (like ALT+SPC) by calling executable with a command line parameter.
Like: c:>switcharoo.exe -activate << Would bring up Switcharoo "window" if already started.
My main use would be binding it to a spare mouse button, but likely useful in other ways as well.
Best regards,
Johan
Enable navigating tabs with Switcheroo.
This might enable evolve into some kind of simple plugin system for Switcheroo.
Sometimes the system menu gets focus after activating Switcheroo (because this is done often done with the Alt
key pressed, e.g. by Alt+Space
or Alt+Tab
)
The system menu isn't terrible useful for Switcheroo, so let's disable it.
Switcheroo is really great. The only thing I find a little bit disturbing is that the entries refresh right after the window appears (and not before).
When filtering Visual Studio windows using "vs" the Switcheroo highlights the matches like this:
V i s ual Studio
But it should highlight them like this:
V isual S tudio
The highlighting and scoring algorithms should work more hand-in-hand
From Nancy: "At my job's office, we're restricted to using Microsoft's Lync Communicator for online chatting and since I communicate with many of my colleagues on it, I have many of their individual windows open. Unfortunately it looks like the change to what types of window to include in the app list from the commit below causes these windows to not show up anymore since Lync Communicator is a "ControlParent" and has an ExtendedStyle = CONTROLPARENT|WINDOWEDGE instead of APPWINDOW"
This also seems to be the case with Beyond Compare and a few other programs.
It seems like this change is a bit too restrictive:
c3796d8
As first reported in #27. It seems to affect Enter
and Esc
.
What happens is that when a user select and program in Switcheroo, and press Enter
, then the selected window is immediately focused and activated. The user then releases Enter
and the window then receives the message that Enter
has been released, and might act on this.
The solution seems to be not to switch to the selected window before the user has released Enter
- and likewise with Esc
not to dismiss the Switcheroo window before the user releases the key.
cmd
with Run as administrator
Alt+Tab
while having the cmd window in focusIs the solution to run Switcheroo as administrator? Or is there another way?
You should use TextOptions.TextFormattingMode="Display"
http://wpf.2000things.com/2013/05/16/821-use-textformattingmode-to-make-text-look-more-clear/
Insert > Symbol > More Symbols
Alt+Tab
and notice that the Symbol window appears among the choicesAlt+Space
to activate SwitcherooPersonally I would find it more convenient (and intuitive) to use Del to close the selected window, just like Task Manager uses Del to kill the selected process. I guess whether or not Del is an appropriate default hotkey is a matter of personal taste, but it would definitely be nice for the user to be able to choose whatever hotkey he wants for closing the window.
An idea from @HellBrick in #45:
Some programs like Internet Explorer, cmder, Trillian, etc. show open windows when hovering their taskbar icons. It might be useful if all these windows would show in Switcheroo.
Here's an example of IE:
Currently when Switcheroo overlay is displayed, the top window in the list (and the one that's focused by default) is exactly the same window that has just been focused. This default makes no sense: if user wants to switch to another window, he'll select a different window in some way, and if user wants to close the current window, he or she will just hit Alt+F4 without invoking Switcheroo.
However, if the current window is moved to the bottom of the list, the top item will be the previous window. Which exactly matches the behavior of Alt+Tab. This way switching to the previous window could be done simply by Alt+Space -> Enter and Alt+Tab wouldn't be needed anymore.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.