Description:

Ctrlwm is a customisable tool for automatic windows positioning and sizing (e.g. tiling, resizing like Windows Aero Snap, and much more). It can be driven through either command line or screen corner/border actions (see daemon mode).

Tested with Metacity, Openbox, KDE, XFCE.

Features:
- Tile windows (different layouts)
- Resize and reposition window to take left/right/top/bottom half of the screen depending on the mouse position (similar to Aero Snap)
- Resize and reposition window to take specific sector defined by the grid depending on the mouse position, or move it to another workspace
- Go to empty workspace (Create one if there's none)
- Switch to next window (like Alt-Tab, but without bugs/features)


Installation and setup:
- Download archive
- If you want to recompile, make sure you have installed xorg-dev, libglib2.0-dev for Ubuntu or corresponding for your system. Compile with ./configure make make install.
- As an Arch Linux user please visit https://aur.archlinux.org/packages/ctrlwm/

Otherwise, just use the included binary version
- Copy binary somewhere you'd like to run it from (for system-wide installation in Ubuntu use the command line: cp PATH_TO/ctrlwm /usr/local/bin/
- Copy the .ctrlwm.rc file to your home directory, then (optionally) edit it to suit your needs. The options dcw, dch might be of most interest, for setting current window manager's decoration sizes (to avoid overlaping windows). For the rest read in-file comments
- Run ctrlwm without parameters or ctrlwm --help for usage, remember you need to use -mn X Y option if you did not set dcw, dch options in .ctrlwm.rc (see previous)
- Run ctrlwm with desired options and enjoy

Hints:
- You can use the software with system key shortcuts, mouse strokes or panel starters.
Last changelog:

4 years ago

0.8.0.8 Improved gui, cleaned up code, removed some bugs

0.8.0.9 Different gui, cleaned up code, removed some bugs, some rc settings changed

Ikem

4 years ago

You can download it from here:

http://media.cdn.ubuntu-de.org/forum/attachments/53/34/4735502-ctrlwm_0.6.0.5-1_i386.deb

Report

xinwu

6 years ago

I like this app. It's small, but very useful, especially when you have a widescreen.

Report

zlatkart

6 years ago

@mru00
Thank you for that. I have some questions. I'll PM you this week about it.

@andyprice
Thank you. I love it too.

Report

andyprice

6 years ago

Very nice, thanks. Takes almost no installing (just copy two files) and add a launcher to run ctrlwm -gui. I'm using it with xfce on Vector Linix and it works like a charm.
Andy

Report

mru00

6 years ago

for those who want to build the thing, i've created a github repo with proper automake.

https://github.com/mru00/ctrlwm

with those sources, a usual

./configure
make
make install

should work. it will report any missing packages.

also,

make dist

might be interesting.

might be interesting

my first autotools package, comments wellcome!

Report

kevin128

6 years ago

And for people wanting to do all this purely from keyboard, there's great application class named tiling window managers. It's a shame they weren't mentioned anywhere where ctrlwm-like programs were discussed (as I searched).

A thorough, annotated list:
http://en.wikipedia.org/wiki/Tiling_window_manager#List_of_tiling_window_managers_for_X

A thread discussing choice of the best one:
http://ask.metafilter.com/105026/Best-tiling-window-manager-for-Linux

My personal favorite:
http://xmonad.org/

Report

joneone

6 years ago

Great fast tool!

Report

zlatkart

6 years ago

thank you

Report

kevin128

6 years ago

Package glib-2.0 was not found in the pkg-config search path.

Also, compile command is outdated as well as binary version inside archive.

Sorry I did not understand how to use program. Can it make active window half-screen when dragged to the edge (or through command line)?

Thanks

Report

zlatkart

6 years ago

Do you have libglib2.0-dev installed?

The binary version is not outdated,I just forgot to change version number in the code. It should be the same in the source. Some time I will change that.

There are several possibilities to make the active window half-screen. Type ./ctrlwm in terminal for the usage.
I suggest trying -z -u,-s.
I assume you are asking for aero snap.
The next version has some kind of snap like Windows. I will post it if someone is interested.It could be buggy (nothing critical) and it's overrated. I don't use it.

Report

kevin128

6 years ago

Installing libglib2.0-dev helped, but installing xorg-dev would require installing too many other packages, so I given up effort to recompile program.

I haven't figured out how to make window occupy left/right half of the screen with -z (by the way, why does it show sectors on screen even without -u? what does undescribed -o option mean?).

-s does this in some cases (didn't yet fully figured out how to drive it with mouse), but window is made too large to fit on screen (by ten pixels or so). -mn doesn't seem to change anything. In case it matters, I have XFCE with only one panel at top of the screen.

I think there's large demand for such program (the only alternative I know is using Compiz with Grid plugin), but it needs to be more... well, maybe "user-friendly".

Thanks

Report

zlatkart

6 years ago

The problem with -z (and -mn i guess) is the rc file which seems to override some things. Delete the rc file or edit it. (somewhere I messed this up, but I'll change that)

-z sizes/positions the window depending the section. The more you move to the center of the screen, the bigger the window. Click when position/size is OK

-o is found under options.

height or width too large?
The panel should be no problem. Find your mn values with 3 windows and -t.
If only width is affected then it's a small bug already fixed.

I'll update within 2 weeks.

How would you make it more user friendly?

Report

kevin128

6 years ago

Indeed, deleting rc file stopped compulsory sectors display on -z. And I understood how to send window to left/right part of screen with it. :)

I meant height too large, of course (I said before that I tried to put window to left/right half, so only height could be ten pixels too large and send window off-screen). This problem remains regardless of -mn.

Regarding user-friendliness, let me list it:
- On this page descibe more fully what the program can do regarding automatic windows placement (this is required for people who hadn't experience with Windows Aero as well as for providing right keywords for Google searches).
- List possible options for every action (I guess -m doesn't need all options and -f can be used anywhere instead of -o ?).
- Describe -mn format and name meaning
- Describe how -k daemon mode works (for me it doesn't seem to do nothing except window maximizing sometimes). I.e., what user actions produce what consequences? Does it require -s or -z at the same time?

And actual code changes might be:
- Allow merged options (such as -pw). This is Unix tradition, and omitting this creates some confusion (apparently options are ignored).
- Make options order unimportant, Unix (mostly) tradition as well.
- provide error messages about wrong/incompatible options instead of ignoring them.
- maybe make a package for Ubuntu repository (as many users would search there only)

I could help with this documentation, not so sure about the code

Report

zlatkart

6 years ago

Is the window height OK with -t and 3 windows?

-k executes actions when the pointer touches the edge/corner of the screen. These actions can be defined in the rc file. default is only ctrlwm -t in the upper left corner of the screen. Works like brightside. brightside seems to have a problem with vertical desktop switcher.

-merged options
I'll think of it.
- options order unimportant
The options order is unimportant already? I'll need an example to reproduce this
- error messages
Yes

If you'd like to rewrite this page, you're welcome. Also if you want to rewrite the terminal help output. Send me a pm.

Report

kevin128

6 years ago

> Is the window height OK with -t and 3 windows?

Yes, if I pick the right values for -mn or dcw, dch lines, windows height is ok.

Although there's another bug relating to position, maybe affecting only Windows programs under Wine: on -t the client area appears at point where whole window should be, and NW decorations overlap with other windows.

> -k executes actions when the pointer touches the edge/corner of the screen. These actions can be defined in the rc file

Thanks for the tip, I haven't looked at the comments in rc file before. Everything is described indeed. It's only a pity that it doesn't require window to be dragged to an edge/corner to trigger, as I think that would be more usefull.

> The options order is unimportant already? I'll need an example to reproduce this

These lines produce different results:
ctrlwm -k -s
ctrlwm -s -k

This is off course only possible if user doesn't really understand what he/she's doing and specifies incompatible options, but combined with unclear documentation, this becomes a problem.

And yes, I'll send you a PM.

Report

dodona

7 years ago

error: X11/extensions/XTest.h: No such file or directory

Report

zlatkart

7 years ago

sudo apt-get install xorg-dev (ubuntu)

Report

zlatkart

7 years ago

changed compile command !

Report

4 years ago

0.8.0.8 Improved gui, cleaned up code, removed some bugs

0.8.0.9 Different gui, cleaned up code, removed some bugs, some rc settings changed

Filename Version Description Filetype Packagetype License Downloads Date Filesize Install
Score 61%
61.00 Likes
39 Dislikes
Details
version
0.8.0.9
updated Jan 04 2013
added Oct 29 2009
downloads
page views 1082