Source i (link to git-repo or to original if based on someone elses unmodified work):

Add the source-code for this project on opencode.net

3
Become a Fan
7.6

Available as/for:
Description:
A rudimentary nested Windowmanager, tiling clients vertically, horizontally or a row or column oriented grid.

NOTICE:
This is NOT intended as full featured windowmanager (tiling or not), but as sidearm to combine some windows in one.

It will work with most windowmanagers, for KWin you currently have to keep WORKAROUND_KWIN enabled (a workaround including a usleep...)

More thought for playing around and to trigger some feedback.
Last changelog:

0.2
---
* fixed QApplication API invocation (geee, that's really picky ;-)
* added two apparently prominent tiling modes (with a major window and many sidearms)
* regrab button for the active tile when the window gets deactivated (thus the focus usually somewhere else)
* use a QMainWindow (to get the menubar integrated with the decoration or the panel in case)
* added license stuff

0.3
----
* Added Ctrl+Tab shortcut to cycle tiles
* added "--title" switch
* added "--rowlayout" or "--collayout" custom layouts
* added hinting label for the switches ;-)

0.4
-----
* added dbus interface, supporting "toggle" and "toggleMenu" to be used eg. by khotkeys
* added dock mode (eg. "--dock topLeft", "--struts"
* releasing windows on sigsegv

0.4a
------
* fix slide hint and struts for some dock modes
* add KStyleFeatureRequest hint for shadows on docks (applies to recent bespin and upcoming oxygen)
* added "quit" to dbus interface

0.4b
-----
* Only grab ctrl/ctrl+numlock + tab

0.5
------
* Grab ctrl+alt/ctrl+alt+numlock + tab for cycling the active window


Ratings & Comments

27 Comments

Warmuser

This was a really great idea.

kindlychung

Is there a keyboard shortcut for switching windows within the kontainer? Currently there is the ctrl-tab, which swaps positions of windows, but it would be better if there is also a shortcut to change the Focus to another window, like the ctrl-w h j k l keys in Vim. Thanks, I really like this app!

qiwichupa

It's a awesome application! Can you to add ability to start Kontainer with some other apps, I mean something like that: kontainer --rowlayout '1 x 0.6:0.4' --apps "livestreamer twitch.tv/krakenslair mobile_low ; konversation" As you can see, I use Kontainer for watching streams on twitch.tv with custom player and direct connection to IRC-server. Will be useful to start all applications inside Kontainer with one command =)

thomas12777

Not this way, because there's a difference between windows and processes. What however would likely be possible was to specify some window attributes (class, type, title; "class" is *usually* a case insensitive variant of the process name) and autoadd them when they show up ("if" in the next ten seconds or so) - similar to how kstart operates.

TheTravis

When I put a window into Kontainer, Tab button stops working in it. E.g. I can't use autocomplete in Konsole. I'm using KWin. Is WORKAROUND_KWIN enabled by default?

thomas12777

Yes, but that's not related (is required to actually embed sth.) The tabkey should only be taken when ctrl is held. I'm looking into it.

thomas12777

fixed, sorry. stupid bug.

TheTravis

Thanks for the quick fix!

paldepind

What is the Qt theme and icon theme used in the screenshot?

thomas12777

Bespin... naturally ;-)

D--

Hi, is "qdbus org.kde.Kontainer /Kontainer quit " right to activate the quit method? Does not seem to work in 0.4a

thomas12777

if you didn't pass "--title" yes what's the output of qdbus org.kde.Kontainer /Kontainer If there's no method Q_NOREPLY void org.kde.kontainer.quit() I either uploaded the wrong file or your binary path still points the old.

thomas12777

The local file is ok, but the download was not. Must have been some upload error. -> Uploaded again, downloaded, is now correct version. Sorry for the trouble and thanks for noticing it!

Flintheart

Something like this is just what I needed! It's still a bit unstable, windows are not accessible after a little while, but this is understandable. It is release 0.2 after all. Some suggestions: 1. I would love some way of customizing the window title. Something with Variables like "My Project 1 ($nameOfActiveSubWindow)". Maybe even a way to customize the window icon. 2. An option to show some resize handles between the sub-windows would be great, so one can easily change the proportions the individual sub-windows take of the container window surface. 3. I'm using the new window menu feature in KDE 4.10. Sadly the menus of sub-windows go lost when using Kontainer. Some workaround for that would be great. Maybe there is even some way to merge the Kontainer menu with the menu of the active sub-window. Wishful thinking, I presume.

thomas12777

A custom title is a nobrainer ;-) Dynamic resizing is rather out of scope (since this is not supposed to be a complete WM anyway, at least not from my side) - however i added support for custom layouts (so you can create about any structure you want, just not change it at runtime) The appmenu thing is not fixable from here, sorry. It will compare the applications window() (which is now a child of the kontainer) with the KWin client (being kontainer) and thus fail to determine the matching client. The plasmoid (in the panel) might still work - at least xbar does. What would have to happen is that appmenu looks up the entire window structure (from the kwin side) or exports the actual (X11) toplevel window depending on the active state of the window. Reg. loosing input: do you mean the all clients loose input forever (like kontainer would grab the entire mouse) or you just cannot activate a client tile anymore?

herrbatka

I wonder if it's possible to add yakuake like behavior to this so you can show/hide Kontainer after pressing keyboard key.

thomas12777

"semi" The KDE global shortcut system is pretty much tailored around single instance applications and if you ran two containers you rather would not want them to act on one shortcut (if that was possible) I added dbus support. The kontainer will try to listen under the passed --title ("Kontainer" by default) so you can kontainer --title MediaBox --dock bottomRight & qdbus org.kde.MediaBox toggle (which khotkeys can bind dbus directly, no need to invoke qdbus)

herrbatka

Thanks, this sounds good.

D--

here: https://aur.archlinux.org/packages/kontainer

markc

Same here, Archlinux with KDE 4.10.1 http://pastebin.com/xGYPf3aB What about pushing this into Github?

thomas12777

#0 0x00007ffff4c8eaa1 in __strlen_sse2_pminub () from /usr/lib/libc.so.6 #1 0x00007ffff7473675 in XSetCommand () from /usr/lib/libX11.so.6 #2 0x00007ffff7477dd5 in XSetWMProperties () from /usr/lib/libX11.so.6 #3 0x00007ffff5bb6d5c in QWidgetPrivate::create_sys(unsigned long, bool, bool) () from /usr/lib/libQtGui.so.4 #4 0x00007ffff5b6a0b1 in QWidget::create(unsigned long, bool, bool) () from /usr/lib/libQtGui.so.4 #5 0x00007ffff5b7297b in QWidget::winId() const () from /usr/lib/libQtGui.so.4 #6 0x00007fffeb5d8557 in MenuBarAdapter::registerWindow() () from /usr/lib/qt4/plugins/menubar/libappmenu-qt.so #7 0x00007fffeb5d9763 in AppMenuPlatformMenuBar::createMenuBar() () from /usr/lib/qt4/plugins/menubar/libappmenu-qt.so Because for the überdramatic m_menu = new QMenuBar(this); try "pacman -R appmenu-qt" If that works, i'll work around it by explicitly moving the UI construction into the eventloop (ie. when the window is actually there) I'd move this to some git if there's much update demand ;-)

Moviuro

Well, you really are an awesome person. Because I was thinking about writing an idea of such a software for KDE since tiling was removed, but well, you were faster ^_^ This sounds really great, but well, even after $ ./configure $ make && su -c "make install" Everything works fine (install works) but I can't launch kontainer since it segfaults (everything in the paste)... (http://pastebin.com/Y4YVYGeB) I hope I didn't do anything wrong... Still, thank you very much for sharing with us your incredible creativity & software ;)

Moviuro

Sorry, I forgot the debug info: I run ArchLinux x86_64, running KDE 4.10.1, uptodate. I don't know anything about Qt (except it's nice in KDE) nor anything about programming apps... :$

thomas12777

Please compile w/o Release mode (cd build; ccmake ..; [clear CMAKE_BUILD_TYPE, press "c" then "g" and "q"] and run gdb kontainer run [wait for crash] bt [enter until no more output] detach quit and post the backtrace - i've right now no idea what could segfault it (i required this to check on some pot. kwin bugs and ran it ~100 times the last two or three days) Only exception: never tested with oxygen so far ;-) Try "kontainer -style cde" (random shot in the dark)

Moviuro

I was using you bespin theme engine with my own theme. Now that I cleared the "Release" and put some other text (I put "CustomSchizophrenia"), it works :) Now it works and it's really kool :D

Pling
0 Affiliates
Details
license
version 0.5
updated
added
downloads 24h 0
mediaviews 24h 0
pageviews 24h 0

More Various KDE 1.-4. Improvements from thomas12777:

kconfig
thomas12777
last update date: 11 years ago

Score 6.1

BeClock
thomas12777
last update date: 13 years ago

Score 8.4

Generic Animations (BeGeneric ;-)
thomas12777
last update date: 13 years ago

Score 8.0

BeDistorted
thomas12777
last update date: 13 years ago

Score 7.2

BeFaded
thomas12777
last update date: 14 years ago

Score 6.8

BeShadowed
thomas12777
last update date: 14 years ago

Score 7.5

Other Various KDE 1.-4. Improvements:

Slicker Debian Package for Woody
cirrusgr
last update date: 22 years ago

Score 5.0

Konqueror/kdesktop suggestion
PovMan
last update date: 22 years ago

Score 5.0

Biiig buttons
dbojan
last update date: 20 years ago

Score 5.0

Yet Another KControl
Frans
last update date: 21 years ago

Score 5.0

Next window and next/previos window
dbojan
last update date: 20 years ago

Score 5.0

Fantasie Toolbar
katoe
last update date: 19 years ago

Score 5.0