Workspace-Strap Effect

Various KDE 1.-4. Improvements

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

5
Become a Fan
8.0

Available as/for:
Description:
This is a KWin Effect that lets you organize your windows on a linear strap, that is bigger than your screen. Using configurable modifier keys, you can easliy move the part of the strap you see.
This gives you more space on your Desktop and more freedom in organizing your windows.

Requires KDE 4.7.

Attention: After updating your KDE-Version to a new Feature-Release (4.x) you have to rebuild this effect, as KWin doesn't load effects that were built against an older KDE-version than installed.

Features:
-A preview of the whole strap when pressing the modifier keys
-Automatically moves your view to a just activated window
-Choose between a horizontal strap (better for big screens) or a vertical strap (better for small screens)
-Shortcut (ALT+Meta+Space) to move the view to the center of the strap
Last changelog:

0.1: Initial release
0.1.1: Added a README-file
0.1.2: Have a separate position for each virtual desktop and activity
0.2: Optionally make the strap vertical
1.0: -Make the strap automove when less than 33%(configurable) of the window is shown
-Shortcut to move the view to the center of the strap
-Remove the annoying flickering
-Fix a bug with tabbed windows (Requires 4.
-Improve the handling of maximized windows
-Fix the compiling bug of not finding kactivityconsumer.h
1.0.1: Fix 3 compiling errors, concerning kactivities
1.0.2: Fix a bug that caused the effect to move only one window on 4.7
1.0.3: Make the effect work again with KDE >= 4.11 (tested with 4.13)
1.0.4: Fix two small bugs from previous version
1.0.5: Fix automove


Ratings & Comments

122 Comments

bugzy

Is there any chance that you will be porting this effect to work with plasma 5 desktop?

bugzy

On Fedora 20 with KDE 4.13.X Automove for windows that are activated and are either off screen or less than 33% on screen does not work. Am I missing the way that it should operate or is this a bug. Thanks for the great work thus far. Using this workspace strap really goes hand in hand with Activities. I no longer need virtual desktops since this effect does a great job of enlarging the desktop.

KAnton

Sorry for the very late reply, I was very busy in the last months. Automove should be fixed. :) Please confirm that it works for you as well, now. Kind regards, Anton

bugzy

It works now. Thanks for the excellent work.

bugzy

On Fedora 20 with KDE 3.13.X Automove for windows that are activated and are either off screen or less than 33% on screen does not work. Am I missing the way that it should operate or is this a bug. Thanks for the great work thus far. Using this workspace strap really goes hand in hand with Activities. I no longer need virtual desktops since this effect does a great job of enlarging the desktop.

bugzy

On Fedora systems, you will need to have the following installed in order for the build instructions to work: 1. kde-workspace-devel 2. kactivities-devel

mariojuniorjp

What is name this effect of transparency? ;)

KAnton
mariojuniorjp

Thanks! ;)

Tidz

is there a plan to port it to a kwin script effect (if that is possible)?

KAnton

Yes, I had the plan to do so, but for now it's not yet possible to write kwin scripts that include UI. It might already be possible to port the effect to QML though (still as a kwin effect). Might be worth an investigation. (Primary target would in this case be kwin 5, though)

causa-prima

[causa-prima@arch build]$ make -j4 [ 0%] [ 0%] Built target kcm_kwin4_effect_workspacestrap_automoc Built target kwin4_effect_workspacestrap_automoc [ 20%] [ 80%] Building CXX object CMakeFiles/kwin4_effect_workspacestrap.dir/workspacestrap.o Built target kcm_kwin4_effect_workspacestrap /mnt/RAID5/Medien/Downloads/workspacestrap/workspacestrap.cpp: In Elementfunktion »void KWin::WorkspaceStrapEffect::showFrame()«: /mnt/RAID5/Medien/Downloads/workspacestrap/workspacestrap.cpp:347:30: Fehler: »class KWin::EffectsHandler« hat kein Element namens »createFullScreenInputWindow« m_inputWindow = effects->createFullScreenInputWindow(this, Qt::ArrowCursor); ^ /mnt/RAID5/Medien/Downloads/workspacestrap/workspacestrap.cpp: In Elementfunktion »void KWin::WorkspaceStrapEffect::hideFrame()«: /mnt/RAID5/Medien/Downloads/workspacestrap/workspacestrap.cpp:373:18: Fehler: »class KWin::EffectsHandler« hat kein Element namens »destroyInputWindow« effects->destroyInputWindow(m_inputWindow); ^ CMakeFiles/kwin4_effect_workspacestrap.dir/build.make:77: recipe for target 'CMakeFiles/kwin4_effect_workspacestrap.dir/workspacestrap.o' failed make[2]: *** [CMakeFiles/kwin4_effect_workspacestrap.dir/workspacestrap.o] Error 1 CMakeFiles/Makefile2:126: recipe for target 'CMakeFiles/kwin4_effect_workspacestrap.dir/all' failed make[1]: *** [CMakeFiles/kwin4_effect_workspacestrap.dir/all] Error 2 Makefile:127: recipe for target 'all' failed make: *** [all] Error 2

KAnton

I uploaded an updated version. It should work again now. :)

causa-prima

Yes, it does! But you included your .git-Folder, which makes the download ~10 times as big as it needs to be :) Also, there are some bugs: when pressing Meta+Alt and "grabbing" the workspace for movement, sometimes text of underlying windows gets selected, somtimes windows change there (horizontal) size, and sometimes you cannot even move arround because you can not "touch" the strap-preview. Bad thing is, i can not even reproduce these bugs, they just happened once until now, and I'm happy with the old workspace approach, as my screen is big enough :) But one thing was reproducable: when switching to another workspace, the strap-preview does not get updated and the wrong windows are shown. Just out of interest a question I asked in the comments of your blogpost about this add-on long ago, but did not get an answer: Why either horizontal or vertical, but not both? And finally: great work! I hope you are still involved at KDE or some other open source project, where you can further show your talent and skills. I for one would be happy to see more of you work :)

KAnton

Sorry for the very late reply. I had other things to do as well and didn't find the mistake. (It was a very simple one-liner after all). I uploaded a new version with both bugs fixed and without the .git folder ;) I remember your question but couldn't find it anymore (I was sure I had answered, seems I only thought I had. Sorry for that.) The reason is, that I think it drives the whole thing unhandy. With a one dimensional strip you can just drag quickly, with a two-dimensional thing you'd have to drag more carefully to maneuver it to the position you want it to be. Technically it's not a problem. So, if there is demand for a 2d drag area, I'd be willing to adapt the effect accordingly.

littlecreamsoda

$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr CMake Error at /usr/share/cmake/Modules/FindKDE4.cmake:98 (message): ERROR: cmake/modules/FindKDE4Internal.cmake not found in /home/deepblue/.kde4/share/apps;/usr/share/kde4/apps;/etc/kde4/share/apps Call Stack (most recent call first): CMakeLists.txt:8 (find_package) -- Configuring incomplete, errors occurred! Help.

KAnton

Which distribution do you use and which version? Do you have the kde devel packages installed? You'll eventually also need kactivities dev-packages.

Rudd-O

but now I have the problem that I would like to situate newly created windows on empty space of the strap, or the newly created window to be kind of "wedged" between two open windows right now, bumping the windows on the right more to the right and making room for the new window. Is that feasible? So far great thing here.

KAnton

Technically it's feasible, yes. But it requires a really good concept how windows should be organized, how windows will moved when what happens (e.g. when a window get's closed or minimized), what cases exist, why one would open a window, what behaviour is expected in which case, etc. If you can provide me such a concept, I'll do my best to implement it :) PS: sorry for the delay of the reply, my first reply (~2days ago) was lost somehow...

apfelmaus

Hi! im running #kubuntu and its a greate improvement for me with your effect. i had never use multi-workspaces to organize windows and thanks to you it is without much better :D but one request: if i use kwin_gles this effect wont work. is there something i can do to make it work with? (KDE SC 4.8.0)

Rudd-O

KDE 4.8: cmake CMakeLists.txt -DCMAKE_INSTALL_PREFIX=/usr -- Found Qt-Version 4.8.0 (using /usr/bin/qmake-qt4) -- Found X11: /usr/lib64/libX11.so -- Found KDE 4.7 include dir: /usr/include/kde4 -- Found KDE 4.7 library dir: /usr/lib64/kde4/devel -- Found the KDE4 kconfig_compiler4 preprocessor: /usr/bin/kconfig_compiler4 -- Found automoc4: /usr/bin/automoc4 -- Found X11: /usr/lib64/libX11.so CMake Error at CMakeLists.txt:38 (message): No kactivityconsumer.h found. Please run 'find /usr/include -name *consumer.h'. If it finds something related to KActivities please send me a mail (akreuzkamp@web.de) or add a comment at kdeapps.org with the output of find in it. Else check your KDE-Installation. I have all the devel packages installed. None of them carry anything about /usr/include/kworkspace

Rudd-O

For the record, it is a bug in the strap: https://bugzilla.redhat.com/show_bug.cgi?id=794942

KAnton

I don't have an account at redhat's bugzilla so I'll reply here: kactivityconsumer.h and others have been removed from libkworkspace in 4.8, in favour of libkactivities: http://commits.kde.org/kde-workspace/c3599917 libkactivities is not part of kde-workspace but a own repository and such a own package: kactivities(-devel). (See comment #1). So it is not a bug. This effect is able to use /usr/include/kde4/kactivities/consumer.h (from kactivities-devel). You should install that package and retry.

Rudd-O

Of course it is a bug. Your program does not compile as advertised in kde 4.8. This is a bug by definition. Fix the source to detect the correct header and use that header, then push the fix to your repo.

Rudd-O

OK, I found the problem. IT's on my side. thanks for your help.

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

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