Messages - Tyinsar [ switch to compact view ]

Pages: prev1 2 3 4 [5] 6 7next
21
Tutorial started here: https://www.donationcoder.com/forum/index.php?topic=11534.0

Please note that this is just a start but I thought I'd post what I had (so far) to get some feedback from you.

22
JGPaiva's GridMove and Ahk Tools / 7) Additional Notes
« on: December 28, 2007, 12:58 AM »
Reserved

23
You can use the methods above to create separate Grids and Triggers for each monitor. The only thing you need to change for this is the "1" in [Monitor1Top], [Monitor1Bottom], [Monitor1Left], [Monitor1Right], [Monitor1Wdth], [Monitor1height], ... to "2" or "3" or ...

But that's not your only option. With GridMove you can define Triggers on any screen that will move windows to another screen on the system.

(to be completed)

24
JGPaiva's GridMove and Ahk Tools / 5) Special Grid Commands
« on: December 28, 2007, 12:52 AM »
Another cool feature of GridMove is that you can create Triggers that do more than just resize a window. You can create a Trigger just like the ones above but instead of defining a new window size you can have a Trigger:

a) set that window to stay on top of other windows by replacing all Grid locations with "AlwaysOnTop" - like this:
  GridTop   = AlwaysOnTop
  GridBottom= AlwaysOnTop
  GridLeft  = AlwaysOnTop
  GridRight = AlwaysOnTop

Tip: to stop a window from staying on top change it to "AlwaysOnTop" a second time - This should return it to normal.

b) restore the window to it's previous size by replacing all the Grid locations with "Restore" - like this:
  GridTop   = Restore
  GridBottom= Restore
  GridLeft  = Restore
  GridRight = Restore

Tip: I find this doesn't always work as I'd hoped (but I have a short memory span :-[). However, it's great when you resize something like a selection box because sometimes the selection box doesn't get any bigger even though the window does. (that's one of my pet peeves with Windows)

c) maximize a window by replacing all Grid locations with "Maximize" - like this:
  GridTop   = Maximize
  GridBottom= Maximize
  GridLeft  = Maximize
  GridRight = Maximize

d) minimize a window by replacing the Grid locations with:
  GridTop       = Run
  GridBottom    = Minimize
  GridLeft      = Plugins\MinimizeWindow.exe
  GridRight     =

Grid order does not matter but it is important that: GridTop = Run, GridBottom = Minimize, GridLeft = Plugins\MinimizeWindow.exe

e) launch an external program. You'll notice that this last set of commands is different. It requires an external program to minimize the window. This opens up other possibilities to use Triggers to launch other programs. The items that I can think of are things like Skrommel's: RunScreenSaver, MinimOther, Ghoster, TransOther, ... (though I have only tested RunScreenSaver)

If you want to use GridMove to launch external programs use the following Grid Commands:
  GridTop    = Run
  GridBottom = Name to display in Trigger area
  GridLeft   = Program path & name

What value this provides to you I'll have to leave to you to figure out. Perhaps there are other useful plugins still in your mind.

f) maximize a window's height like this:
  GridTop   = [Monitor1Top]
  GridBottom= [Monitor1Bottom]
  GridLeft  = WindowWidth
  GridRight = WindowWidth


g) maximize a window's width like this:
  GridTop   = WindowHeight
  GridBottom= WindowHeight
  GridLeft  = [Monitor1Left]
  GridRight = [Monitor1Right]


The first few (a-d) are easy to use but the last two are tricky. "WindowWidth" keeps the window at it's current width and "WindowHeight" keeps the window at it's current height. The tricky part is that if you are using the mouse to drop the window on the Trigger you also end up moving the window (instead of just resizing the height or width). The problem is if you have a small Trigger, that is not near to where you want the window, the window still resizes but in the wrong place.

There are two ways around this. The easiest is to simply use hotkeys to select the Trigger (by default this is [Win]+[G] then [n] when n= number of the Trigger that resizes the window). The problem with this method is that many of us prefer to use the mouse to select Grids - It's also boring. ;)

The second way to solve this problem is to change our Trigger areas. A Trigger that expands a window's height should run across the width of the screen. A Trigger that expands a window's width should be the full height of the screen. This would allow us to slide a window along the Trigger and place it anywhere on the screen.

Remember back in part one that I said there is another method for defining Grids? Well, the time to explain that way has come. You can also define a Grid edge by using a number of pixels. Specifying a number of pixels is useful for small Grids & Triggers, exact Grid & Trigger sizes, and Triggers along edges. You could define a Trigger across the middle of the screen but I find that the outside edges work best so I'd recommend Triggers like:

  TriggerTop    = [MonitorReal1Top]
  TriggerBottom = [MonitorReal1Top] + 20
  TriggerLeft   = [MonitorReal1Left]
  TriggerRight  = [MonitorReal1Right]

which defines a Trigger along the top of the screen,

  TriggerTop    = [MonitorReal1Bottom] - 20
  TriggerBottom = [MonitorReal1Bottom]
  TriggerLeft   = [MonitorReal1Left]
  TriggerRight  = [MonitorReal1Right]

which defines a Trigger along the bottom of the screen,

  TriggerTop    = [MonitorReal1Top]
  TriggerBottom = [MonitorReal1Bottom]
  TriggerLeft   = [MonitorReal1Left]
  TriggerRight  = [MonitorReal1Left] + 20

which defines a Trigger along the left of the screen, or

  TriggerTop    = [MonitorReal1Top]
  TriggerBottom = [MonitorReal1Bottom]
  TriggerLeft   = [MonitorReal1Right] - 20
  TriggerRight  = [MonitorReal1Right]

which defines a Trigger along the right of the screen.

I picked a 20 pixel wide Trigger in all my examples but the exact number is up to you.

To make these active you must either adjust your other Triggers (which is the preferred method) or put these in the file before the other Triggers (so they get activated first - which is the lazy method).

Reminder: A Trigger that expands a window's height should run across the width of the screen. A Trigger that expands a window's width should be the full height of the screen.

These narrow Triggers can also be useful for things like AlwaysOnTop, Minimize, ...

Tip: As Grids get more complex I find it helpful to have bit of the screen that is Not a Trigger zone - just in case I start to move a window and change my mind.

25
JGPaiva's GridMove and Ahk Tools / 4) Multiple / Overlapping Grids:
« on: December 28, 2007, 12:52 AM »
Sometimes you want more than one way to layout your Grids. Let's take our "slightly more complex 3 part Grid":
    ___ ______
   | 1 |      |
   |---|   3  |
   |_2_|______|

and add another option.
    ___ ______
   |_4_|      |
   |_5_|   3  |
   |_6_|______|

Now we have six Grids but no bigger Trigger zone. The key here is that you can define your Grids just like you normally would BUT your Triggers have to be different. There are a coupe of ways to deal with this:

a) Use Triggers that are close to the Grid areas. I suggest that you make the Triggers for the Grids that you plan to use the most bigger than other Triggers. Here's my recommendation for the file:

I want my Triggers to look like this:
    ____ _____
   |4| 1|     |
   |5|--|  3  |
   |6|_2|_____|


If you look closely you will notice that Trigger area 3 has shrunk and that the Triggers no longer match the Grids - but they don't have to so that's OK.

Tip: When the Triggers no longer match the Grids I like to use the entire monitor as an area for Trigger zones (by adding "Real" to the Triggers - see example below). This gives me more space for Triggers and will really help in the next section: Special Grid Commands.

Here's my test.grid file

[Groups]

NumberOfGroups = 6

[1]
 TriggerTop    = [MonitorReal1Top]
 TriggerBottom = [MonitorReal1Top] + [MonitorReal1Height] /2
 TriggerLeft   = [MonitorReal1Left] + [MonitorReal1Width] *1/6
 TriggerRight  = [MonitorReal1Left] + [MonitorReal1Width] *3/6
  GridTop    = [Monitor1Top]
  GridBottom = [Monitor1Top] + [Monitor1Height] /2
  GridLeft   = [Monitor1Left]
  GridRight  = [Monitor1Left] + [Monitor1Width] /3

[2]
 TriggerTop    = [MonitorReal1Top] + [MonitorReal1Height] /2
 TriggerBottom = [MonitorReal1Bottom]
 TriggerLeft   = [MonitorReal1Left] + [MonitorReal1Width] *1/6
 TriggerRight  = [MonitorReal1Left] + [MonitorReal1Width] *3/6
  GridTop    = [Monitor1Top] + [Monitor1Height] /2
  GridBottom = [Monitor1Bottom]
  GridLeft   = [Monitor1Left]
  GridRight  = [Monitor1Left] + [Monitor1Width] /3

[3]
 TriggerTop    = [MonitorReal1Top]
 TriggerBottom = [MonitorReal1Bottom]
 TriggerLeft   = [MonitorReal1Left] + [MonitorReal1Width] *3/6
 TriggerRight  = [MonitorReal1Right]
  GridTop    = [Monitor1Top]
  GridBottom = [Monitor1Bottom]
  GridLeft   = [Monitor1Left] + [Monitor1Width] /3
  GridRight  = [Monitor1Right]

[4]
 TriggerTop    = [MonitorReal1Top]
 TriggerBottom = [MonitorReal1Top] + [MonitorReal1Height] *1/3
 TriggerLeft   = [MonitorReal1Left]
 TriggerRight  = [MonitorReal1Left] + [MonitorReal1Width] *1/6
  GridTop    = [Monitor1Top]
  GridBottom = [Monitor1Top] + [Monitor1Height] /3
  GridLeft   = [Monitor1Left]
  GridRight  = [Monitor1Left] + [Monitor1Width] /3

[5]
 TriggerTop    = [MonitorReal1Top] + [MonitorReal1Height] *1/3
 TriggerBottom = [MonitorReal1Top] + [MonitorReal1Height] *2/3
 TriggerLeft   = [MonitorReal1Left]
 TriggerRight  = [MonitorReal1Left] + [MonitorReal1Width] *1/6
  GridTop    = [Monitor1Top] + [Monitor1Height] /3
  GridBottom = [Monitor1Top] + [Monitor1Height] *2/3
  GridLeft   = [Monitor1Left]
  GridRight  = [Monitor1Left] + [Monitor1Width] /3

[6]
 TriggerTop    = [MonitorReal1Top] + [MonitorReal1Height] *2/3
 TriggerBottom = [MonitorReal1Bottom]
 TriggerLeft   = [MonitorReal1Left]
 TriggerRight  = [MonitorReal1Left] + [MonitorReal1Width] *1/6
  GridTop    = [Monitor1Top] + [Monitor1Height] *2/3
  GridBottom = [Monitor1Bottom]
  GridLeft   = [Monitor1Left]
  GridRight  = [Monitor1Left] + [Monitor1Width] /3



b) Draw Triggers that look like miniature versions of your planned Grids. Personally I find this more complex to draw but it may suit you. There are also some cases where this is the clearest method. For now I'm going to leave this up to you to figure out - It's not really that hard if you plan it out first. (More on this in Using Multiple Monitors)

Pages: prev1 2 3 4 [5] 6 7next
Go to full version