Giter Site home page Giter Site logo

windows-workspaces's People

Contributors

bootblock avatar

Watchers

 avatar

windows-workspaces's Issues

Dropping a file into the Applications list doesn't work as intended

Dragging and dropping a file into the Applications list within the Applications tab is putting the dropped file into SelectedApplication instead of creating a new Application; this functionality should only be performed if dropping a file onto the editor area for the Application (to the right with the edit controls).

Application icon doesn't update on manual Executable change

When manually changing an Application's Executable property, its Image property isn't refreshed to contain the new icon (if any). This was likely done for performance reasons as I'd rather not hit the disk on every keypress; possibly use the Pulse component to only fetch the icon after an interval has elapsed - maybe force the internal to elapse if the user then changes to another Application before it organically expires.

Open AppData Settings Directory link doesn't work

Clicking on the Open Application settings data directory link at the bottom of the Settings window results in an exception of System.ComponentModel.Win32Exception: 'Access is denied.'.

This didn't happen in .NET 4.8.

Add system-wide hotkeys

Add hotkeys for various actions.

  • Display a pop-up window with various options (see #19)
  • Set the active window to always-on-top.
  • Remove the active window from always-on-top.
  • ...

Allow pasting of files into Application Editor

Pressing Ctrl+V a file while in the Application editor should auto-populate the Executable field with the file in the clipboard, if any.

Will need to investigate how possible this is due to control focus reasons.

Add Show in Actions Menu to Applications/Workspaces

Allow the user to specifically determine whether an Application or Workspace appears within the Quick Menu rather than using the Enabled property as the Enabled property is used for auto-applying a layout when a specific application opens.

Add hotkey to layout currently active window

Add the ability to perform a layout on the currently active window by pressing a hotkey.

Unsure whether this should be treated as an Application or (the child of) a Workspace.

Redesign main window

This is the third time that the main window has been redesigned, but there's an issue with .NET 5 that the existing interface is somewhat incompatible with and it's making UI manipulation a slow and arduous process.

This also provides the opportunity to go with a more modern UI design (that isn't like the first "Metro" style that didn't feel quite right) that can be skinned between a standard Windows-style interface and the new modern style (typically done via colour changes rather than different drawing code paths).

Add Fading target window animation

Add the following window animation styles, which will fade the target window into position.

  • FadeInOut: Window will fade out and then fade back in into position.
  • FadeIn: Window will immediately disappear and then fade back into position.
  • FadeOut: Window will fade out and then immediately appear into position.

A Workspace Application will auto-apply itself

When an application has been defined within the Workspaces area, if that application has been opened (via means other than its entry within Workspaces), it'll have its layout applied.

This may happen because its within the WaitingToBeLayouted list? If so, maybe flag the source (Applications, Workspaces) before determining whether to apply a layout.

Add pop-up menu for currently active application window

Add an option to display a pop-up menu for the currently-selected (eg. focused) window when pressing a hotkey.

The menu will show all the applicable layouts for that window, which can then be selected to quickly apply.

Remember window positions before/after monitor is power cycled

Since moving to an ultrawide monitor, power cycling the monitor (either manually or via Windows' display sleep), the positions of application windows changes when the monitor comes back on.

This is apparently due to a combination of using DisplayPort along with Windows getting the size of the "simulated" monitor incorrect. It's a whole thing of a monitor disappearing from Windows and Windows itself then has to add a transient (SIMULATED_/NOEDID_) monitor in the meantime.

The purpose of this task issue is to remember the positions before the monitor goes off, and then restore those positions when the monitor comes back on.

Implement Workspace Close options

While the Close button-dropdown gives options to Close and Restore Original Layout and Close for the selected Workspace/Application, they need to actually be implemented.

Allow the launching of urls, data files, etc

The user interface explicitly states Executable next to the textbox that contains the application that should be launched.

Instead, either change to something else more appropriate or somehow let the user know that they can put more than just an exe/cmd/bat/etc in there; for example, inserting a URL will launch the system's default browser with that address. Possibly port the Browsers class over from BiQubic.Framework to Hiroix.Framework to allow the browser to be manually selected on a per-Application basis.

Launching non-executables will require the dropping of UrlRef to support non-urls.

Add shortcuts to go to specific virtual desktops

Windows doesn't seem to have hotkeys to go to a specific, numbered virtual desktop and can only go left/right. Add configurable shortcuts that'll allow going directly to a specific virtual desktop.

Reimplement the Windows List window

The WindowsList form is designed with the Metro UI style but that style is being removed from Hiroix.Framework and so the Windows List needs to be recreated using the standard Windows UI elements.

RefreshImageCaches gives incorrect results after first run

Clicking on Settings - Interface - Refresh Image Cache calls RefreshImageCache and should refresh all cached Application executable icon images; the first click seems to work (haven't actually truly tested it yet due to requiring setting up for testing) but subsequent clicks cause a large majority of the icons to be the same.

Could be an issue with removing/adding images to the ImageList component - not sure yet; not really a priority right now.

Settings window disappearing

After invoking the Quick Menu, opening the Settings window causes it to disappear(?) and the main window can't be interacted with as, presumably, the Settings window is still considered open.

Implement Virtual Desktops support

Requires implementing via COM support and so I'm somewhat putting it off as it needs a lot implementing before the implemented code even be tested.

Auto-Watch should not indefinitely wait on pending apps

If ShellListen is set to Auto (and disabled due to no Applications being defined/enabled) and a Workspace is executed, watching will begin so that the newly-opened Applications can be laid out; once done, watching is disabled.

If it turns out that any Workspace Applications are never laid out (eg. their window didn't open), then watching will be enabled indefinitely until WW is restarted or the user disables it themselves.

Add, say, a time-out so that pending Applications are removed from the watch list.

Add support for minimise/maximise states

A maximised window and a minimised (iconified) window cannot just be positioned/sized, unlike what a lot of applications do (eg. Steam); their actual min/max states need to be stored and override any positional and dimensional values.

Rename HotKeyMenu to Quick Menu

Couldn't originally think of a name for the hotkey-invoked menu, but now Actions Quick Menu seems like a reasonable choice.

Rewrite the WaitingToBeLayouted implementation

It would probably be best to rewrite how pending layouts should be processed to instead use a single collection and also include metadata on the layout, somewhat alluded to in this comment.

It won't be quite as quick but it'll be aggressively inlined and increase code reuse.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.