Kontainer
Various KDE Extensions
Score 64%
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:

4 years ago

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

kindlychung

4 years ago

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!

Report

qiwichupa

4 years ago

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 =)

Report

C

thomas12777

4 years ago

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.

Report

TheTravis

4 years ago

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?

Report

C

thomas12777

4 years ago

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.

Report

C

thomas12777

4 years ago

fixed, sorry. stupid bug.

Report

TheTravis

4 years ago

Thanks for the quick fix!

Report

paldepind

4 years ago

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

Report

C

thomas12777

4 years ago

Bespin... naturally ;-)

Report

D--

4 years ago

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

Report

C

thomas12777

4 years ago

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.

Report

C

thomas12777

4 years ago

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!

Report

Flintheart

4 years ago

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.

Report

C

thomas12777

4 years ago

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?

Report

herrbatka

4 years ago

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

Report

C

thomas12777

4 years ago

"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)

Report

herrbatka

4 years ago

Thanks, this sounds good.

Report

D--

4 years ago

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

Report

markc

4 years ago

Same here, Archlinux with KDE 4.10.1

http://pastebin.com/xGYPf3aB

What about pushing this into Github?

Report

C

thomas12777

4 years ago

#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 ;-)

Report

Moviuro

4 years ago

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 ;)

Report

Moviuro

4 years ago

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... :$

Report

C

thomas12777

4 years ago

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)

Report

Moviuro

4 years ago

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

Report

C

thomas12777

4 years ago

It's supposed to work in Release mode.
If you can recause the segfault this way, please have a look at the mentioned gdb backtrace and whether it matches Marks.

Report

4 years ago

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

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
0.5
updated Nov 07 2013
added Mar 15 2013
downloads today
0
page views today 5