Git Product home page Git Product logo

derange's Introduction

DeRange

Desktop Arrangement Tool for Windows

This is a work-in-progress tool to allow users to create & save layouts of windows according to their preferences & then restore these layouts at a later date without having to manually drag and re-size the windows.

In order to do this, the user defines 3 classes of item:

  • Windows - These are the attributes by which a window will be recognised
  • Locations - These are the areas of the screen which a window will occupy
  • Arrangements - Specify which Windows should be placed at which Locations (and also define suplementary details such as hotkeys)

demo

Why?

I have particular window layouts which I like to use, with some variation depending on the task I'm working on. If I reboot my machine (or undock my laptop), it's necessary to manually re-arrange the windows. The aim of this tool is to do that automatically, based on a flexible configuration and hotkeys.

Quick Overview

Configuring a Window

The window configuration dialog allows you to set up a number of windows:

Window configuration dialog

For each window you tell DeRange what to look for when it's trying to match against the actual windows on your desktop.

Item Description
Name Just a name by which to refer to the window in other parts of DeRange
Window Title The text which DeRange will look for in the window's title bar
Window Class The class of window which DeRange will look for
Window EXE The executable used to launch the window

In the example above:

  • The name assigned this is 'Visual Studio'. This has no effect with regard to matching the window, it just gives us a convenient way to refer to the window
  • For the window title, a regular expression is used
  • Matching on the window class and executable is not enabled (the 'Match Enabled' boxes are not ticket for these attributes

Configuring Locations

The location configuration dialog allows you to create locations in which windows will be placed

Window location dialog

The data in this dialog specifies the changes which will be applied to a window.

Item Description
Name Just a name by which to refer to the location in other parts of DeRange
X Pos, Y Pos X and Y co-ordinates for the top-left of the window. The tick-box to the right indicates whether or not the window should be moved to this location or just left where it is.
Width, Height The width and height for the window. The tick-box to the right indicates whether the window should be resized or left as it is.
Maximised... This drop-down allows other behaviour, such as minimising or maximising the window. Note that window '0' is your main window (not necessarily the left-most one!)

In the example above:

  • The name assigned is 'Main Monitor Max'. This has no effect with regard to the location settings, it just gives us a convenient way to refer to the location.
  • The setting for this is to maximise the window on monitor 0, the main monitor

Arrangements

The arrangement configuraiton dialog allows you to create arrangements of a number of windows

Arrangement dialog

The data in this dialog specifies the contents of the arrangement and attributes.

Item Description
Name Just a name by which to refer to the arrangement
Keyboard Shortcut These controls allow the user to specify the keyboard shortcut associated with the arrangement. The shortcut won't be active until the dialog is closed.
Set Z-Index ... The windows will appear on the screen in the order in which they appear in the list, i.e. the windows at the top will appear above those lower down
Add, Update ... These buttons allow the user the change which windows and locations are contained within the arrangement

In the example above:

  • There are 2 windows (with associated locations) within an arrangement called 'Coding'
  • The 'Coding' arrangement will be bound to the keyboard shortcut Shift+Win+F1
  • The windows will be depth arrangement in order, so the Visual Studio window will appear above the Terminal window.
  • Any windows which don't match those in the list will be moved to the back.

Q & A

When are my settings saved?

Settings are saved when you exit DeRange.

I start DeRange but don't see a Window!

DeRange starts up in the task tray area.

How does window matching work?

The list of configured windows within an arrangement is assessed in order from top to bottom.

For each configuration all windows which have not yet been matched are compared against the criteria.

If the match is configured to allow multiple matches, then all windows matching the criterial will have the location settings applied. In the case that multiple matching is not enabled, the first window to match will have the location settings applied after which DeRange will move to the next window in the list.

Download

Installers are available for download within the "Releases" area.

(Yes, it's Windows only)

derange's People

Contributors

bright-tools avatar

Stargazers

 avatar

Watchers

 avatar  avatar

derange's Issues

GUID retrieval not retrieving expected GUID

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

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

Fix maximise behaviour

Problems:
a) When window is already maximised
b) Can't control which monitor the window maximises on.

Support for Z-Ordering

Add features to support Z-ordering to be specified (including "on-top" and "don't raise" type options)

Upgrade results in settings loss

When upgrading it seems that the newly installed app uses a different location in IsolatedStorage, meaning that the settings from the previous install are not read in.

Add ability to move currently selected window to a pre-programmed location

Somewhat different from the ability to produce pre-programmed layouts, it would be useful to be able to define window positions & then use a hot-key to move the currently selected window to one of those positions.

For example, could use the numeric keypad to resize & move windows to the top left, top right, bottom left, bottom right quarters of the screen.

Forms should not appear outside viewable area

Change #3 means that the window position of the forms is saved and restored each time the form is closed & opened. If the monitor set-up changes however (e.g. monitor removed due to laptop undock) this could mean that the window is opening outside the currently viewable area. This should be avoided.

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.