Git Product home page Git Product logo

bwm's Introduction

Bright Window Manager (BWM)

What's it For?

BWM's purpose is to speed up the task of moving windows around by allowing you to perform operations like moving & re-sizing without needing to click on the titlebar or frame of the window (you hold down shortcut keys and then click anywhere in the Window).

What does it Do?

Window manager (WM) extensions for Windows:

  • Left-click and drag (anywhere in the window, not just the titlebar) with keyboard modifiers held down to move a window
  • Right-click and drag (anywhere in the window, not just the frame) with keyboard modifiers held down to resize a window
  • Double-left click with keyboard modifiers held down to maximise/restore a window
  • Double-right click with keyboard modifiers held down to minimise a window
  • Automatic "snapping" to the edges of the screen and other windows when moving or resizing

Keyboard modifers (and mouse button bindings) can be configured by selecting "Options" after right-clicking on the notification icon in the task area.

Moving Windows

movedemo

Resizing Windows

resizedemo

Maximising/Restoring/Minimising Windows

maximisedemo

Dependencies

You'll need

The installer should tell you about these, but I've found that it's not as reliable as would be desired.

History

This project was initially based on Markus Rollmann's project on CodeProject [1] - full credit to Markus for his work.

Development

You'll need

You can find an overview of how the application works here.

References

bwm's People

Contributors

bright-tools avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bwm's Issues

Support for touch interface

When using a touch interface, BWM works as expected when using the titlebar to move the window, but holding down the modifiers & dragging within the window doesn't result in the movement of the window.

Right-click drag opens menu

When performing a right-click drag re-sizing operation, at the end of the operation (depending on the window), a context menu is opened, as if a right-click operation had been recognised.

Port front-end to C#

Microsoft are encouraging UI development using C# and managed code rather than C++ these days.

Feature suggestion : Panning within window

I propose that through either holding down a third key, or using the same combo but holding both mouse buttons maybe, it pans the window around within the window, ie in a minimized browser window the action moves the scrollbar positions in the x and Y so you can pan around the page.

GUID retrieval not retrieving expected GUID

In order to prevent more than one instance of BWM running, a mutex is utilised, based on the GUID of the assembly.

Unfortunately the existing code retrieves the GUID for System.Reflection.Assembly, not BWM, meaning that it may unexpectedly clash with other applications.

Maximise/Restore functionality with Excel

The function added in #14 to maximise/restore the window doesn't seem to work correctly with Excel from Office 365. Maximise seems to work OK, but restore does not when double-clicking within a cell.

Change target to .net 4.5

Currently BWM is targetting .NET 4.5.2 which is not as widely installed as 4.5. As there is no particular reason to target 4.5.2 as opposed to 4.5 this should be changed.

Change mouse cursor when moving/resizing window

Currently the mouse cursor does not change when dragging a window to move/resize it. Would be a useful visual indicator to use a different mouse cursor to indicate that a move/resize operation is in progress.

Clickable/editable Mouse Binding labels

It seems I can click in the labels under Mouse Bindings in Options and type in anything I want!

Can get it back to what it was by closing and restarting the program :)

image

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.