
Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net
This is the port of the famous Crystal kwin decoration theme to KDE 4.x.
For 3.x version see:
http://www.kde-look.org/content/show.php/Crystal?content=13969
Main features:
* Uses compositing features of KDE4 for transparency with ability to use the blur plugin
* Supports grouping/tabbing of windows
* Ability to choose the blending colors of buttons as well as title bar and border size
* Right click on minimize button toggles shade mode
* Middle click on minimize button sends window to below
* Double click on program symbol closes window
* Support for button themes. Basic button theme is included, feel free to swamp me with cool themes
* Can show a tooltip for the caption
* Right click on close button can run kdocker, if installed, to minimize the application to the system tray
-- INSTALL ---------------------
Basic Installation (from the console):
- Step 1 (as user)
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
$ make
- Step 3 (as root)
# make install
If you installed crystal while it was running, you would need to restart kwin for the changes to take effect: kwin --replace
--------------------------------
Feedback and patches well appreciated. ;-)
Follow me on GitHub!
https://github.com/shlusiak/kwin-style-crystal
This version of crystal needs KDE 4.9 or higher!
Have fun,
Sascha Hlusiak
8 years ago
2.2.1 (KDE 4.9):
* Fix tabbing after window shading
2.2.0 (KDE 4.9 only):
* Use API for KDE 4.9
2.1.1 (KDE 4.8):
* Improved compatibility with KDE 4.8
* Fixed possible glitches without compositing in KDE 4.8
* Draws own shadows
2.1.0:
* Support of KDE's cool window tabbing / grouping feature!!
* Fix working with kdocker >= 4.5, if installed (right click on close button to run)
* Fix glitch of round corners in compositing mode introduced in 2.0.6. Reduced options of round corners to 1 for code simplification.
2.0.6:
* Use Blur effect for transparent borders when kwin-plugin is enabled (needs KDE >= 4.6.0)
* Updated aqua button theme
* New button theme: glass-pill
* Fix some compile warnings
2.0.5:
* Use KDecoration again instead of KDecorationUnstable; hopefully fixes compile problems
* Remove some probably unnecessary redrawing
2.0.4:
* Built-in logos for various distros
* Some experimental transparency support (requires KDE4 compositing)
* Fix not showing shadow in compositing mode (whiteliste abilities now, not blacklist them; thanks to Zarin for pointing that out)
2.0.3:
* Possibility to stretch or scale overlay images
* Fix showing logo on active window only
* Disable caption shadow for inactive windows so it's easier to read
* Work around "hollow" border glitches when using half-maximized states
* Added backported Kubuntu-Hardy button theme (thanks to Kubuntu team)
* Little nicer default settings
2.0.2:
* Adding back button images in configuration dialog
* Set tooltip of decoration to caption right from the beginning
* Creating and using embedtool again to create tiles.h
2.0.1:
* Scrolling through open windows works again (if option is enabled)
* Link to this page in the info dialog
* Minimizing to systray using kdocker works again
2.0.0:
* Initial release of KDE 4.x port
8 years ago
2.2.1 (KDE 4.9):
* Fix tabbing after window shading
2.2.0 (KDE 4.9 only):
* Use API for KDE 4.9
2.1.1 (KDE 4.8):
* Improved compatibility with KDE 4.8
* Fixed possible glitches without compositing in KDE 4.8
* Draws own shadows
2.1.0:
* Support of KDE's cool window tabbing / grouping feature!!
* Fix working with kdocker >= 4.5, if installed (right click on close button to run)
* Fix glitch of round corners in compositing mode introduced in 2.0.6. Reduced options of round corners to 1 for code simplification.
2.0.6:
* Use Blur effect for transparent borders when kwin-plugin is enabled (needs KDE >= 4.6.0)
* Updated aqua button theme
* New button theme: glass-pill
* Fix some compile warnings
2.0.5:
* Use KDecoration again instead of KDecorationUnstable; hopefully fixes compile problems
* Remove some probably unnecessary redrawing
2.0.4:
* Built-in logos for various distros
* Some experimental transparency support (requires KDE4 compositing)
* Fix not showing shadow in compositing mode (whiteliste abilities now, not blacklist them; thanks to Zarin for pointing that out)
2.0.3:
* Possibility to stretch or scale overlay images
* Fix showing logo on active window only
* Disable caption shadow for inactive windows so it's easier to read
* Work around "hollow" border glitches when using half-maximized states
* Added backported Kubuntu-Hardy button theme (thanks to Kubuntu team)
* Little nicer default settings
2.0.2:
* Adding back button images in configuration dialog
* Set tooltip of decoration to caption right from the beginning
* Creating and using embedtool again to create tiles.h
2.0.1:
* Scrolling through open windows works again (if option is enabled)
* Link to this page in the info dialog
* Minimizing to systray using kdocker works again
2.0.0:
* Initial release of KDE 4.x port
ab4bd
4 years ago
I still think it's the best out there, and I miss it.
Report
pieter
5 years ago
Plasma 5 looks really cool but they can't touch the subtlety and refinement of the crystel window decoration. At all.
Report
woko1754
5 years ago
Report
Venom1991
6 years ago
Report
geoffm
7 years ago
Report
microngust
7 years ago
I've never seen the issue with any of the following scenarios:
a) The open source Nouveau driver
b) The ATI fglrx driver (on my Radeon machines)
c) KDE effects turned off
d) Other window decorations (w/proprietary nVidia driver and effects enabled)
I tend to think that it might have something to do with how it draws it's window shadows, but that's just my gut feeling.
Report
RavenLX
7 years ago
Report
herrbatka
7 years ago
Report
nexusroot
8 years ago
I love Crystal and have used it on and off for many years. I hope they can fix this problem. Is there anywhere I can file a bug report?
Report
dralgebra
8 years ago
Sorry I had so little time for crystal, lately. :-(
Report
nexusroot
8 years ago
Report
pierat
8 years ago
The compilation didn't produce any errors though.
What can I do to get crystal running?
Report
pierat
8 years ago
When I choose "no outline" everything looks like it is supposed to do.
Report
pierat
8 years ago
Which version is the latest that will work on KDE 4.5 and where can I get it? Thanks in advance!
(P.S.: I know that this is a very old version of KDE, but I can't update that machine! And yet I'd like to use this window decoration.)
Report
jarau
8 years ago
Report
MrsAngelD
8 years ago
Report
dralgebra
8 years ago
Report
mcder
8 years ago
[ 53%] Building CXX object client/CMakeFiles/kwin3_crystal.dir/crystalclient.o
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘bool CrystalClient::mouseReleaseEvent(QMouseEvent*)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:538:27: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:538:28: error: ‘setCurrentTab’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘void CrystalClient::paintTab(QPainter&, const QRect&, int, bool, bool)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:644:42: error: no se encontró una función coincidente para la llamada a ‘CrystalClient::caption(int&)’
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:644:42: nota: el candidato es:
In file included from /home/mcder3/src/crystal-2.2.0/client/crystalfactory.h:27:0,
from /home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:44:
/usr/include/kdecoration.h:549:13: nota: QString KDecoration::caption() const
/usr/include/kdecoration.h:549:13: nota: el candidato espera 0 argumentos, se proporcionaron 1
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:652:65: error: no se encontró una función coincidente para la llamada a ‘CrystalClient::caption(int&)’
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:652:65: nota: el candidato es:
In file included from /home/mcder3/src/crystal-2.2.0/client/crystalfactory.h:27:0,
from /home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:44:
/usr/include/kdecoration.h:549:13: nota: QString KDecoration::caption() const
/usr/include/kdecoration.h:549:13: nota: el candidato espera 0 argumentos, se proporcionaron 1
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:659:15: error: no se encontró una función coincidente para la llamada a ‘CrystalClient::caption(int&)’
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:659:15: nota: el candidato es:
In file included from /home/mcder3/src/crystal-2.2.0/client/crystalfactory.h:27:0,
from /home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:44:
/usr/include/kdecoration.h:549:13: nota: QString KDecoration::caption() const
/usr/include/kdecoration.h:549:13: nota: el candidato espera 0 argumentos, se proporcionaron 1
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘void CrystalClient::paint(QPainter&)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:872:23: error: ‘class CrystalClient’ no tiene un miembro llamado ‘tabCount’
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:916:25: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:916:43: error: ‘currentTabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:927:20: error: ‘class CrystalClient’ no tiene un miembro llamado ‘tabCount’
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘bool CrystalClient::mouseMoveEvent(QMouseEvent*)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1069:82: error: ‘TabDragOp’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1078:40: error: ‘tabDragMimeType’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1078:73: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1084:62: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1114:35: error: ‘untab’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘bool CrystalClient::dragEnterEvent(QDragEnterEvent*)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1265:68: error: ‘tabDragMimeType’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘bool CrystalClient::dropEvent(QDropEvent*)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1284:46: error: ‘tabDragMimeType’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1292:26: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1293:32: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1293:57: error: ‘tab_A_behind_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1295:32: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1295:47: error: ‘tab_A_before_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1302:45: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1302:49: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1302:51: error: ‘tab_A_behind_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1304:40: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1304:42: error: ‘tab_A_before_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘bool CrystalClient::dragMoveEvent(QDragMoveEvent*)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1316:49: error: ‘tabDragMimeType’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1322:16: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1332:25: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1333:36: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1333:60: error: ‘tab_A_behind_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1335:36: error: ‘tabId’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1335:51: error: ‘tab_A_before_B’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1343:25: error: ‘tabCount’ no se declaró en este ámbito
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp: En la función miembro ‘int CrystalClient::itemClicked(const QPoint&, bool)’:
/home/mcder3/src/crystal-2.2.0/client/crystalclient.cpp:1364:22: error: ‘tabCount’ no se declaró en este ámbito
make[2]: *** [client/CMakeFiles/kwin3_crystal.dir/crystalclient.o] Error 1
make[1]: *** [client/CMakeFiles/kwin3_crystal.dir/all] Error 2
make: *** [all] Error 2
Report
dralgebra
8 years ago
Report
mcder
8 years ago
I`m using KDE RC1 that are in the repositories [kde-unstable]
Report
mcder
8 years ago
Report
dralgebra
8 years ago
Report
mcder
8 years ago
[mcder3@mcder3-host ~]$ sudo pacman -Qo /usr/include/kdecoration.h
Contraseña:
/usr/include/kdecoration.h es propiedad de kdebase-workspace 4.8.4-2
Now if I can compile
thanks for your help :-)
Report
saftsocken
8 years ago
Report
jts74
8 years ago
Scanning dependencies of target kwin3_crystal
[ 33%] Building CXX object client/CMakeFiles/kwin3_crystal.dir/kwin3_crystal_automoc.o
In file included from /home/riz/develop/kwin_crystal/crystal-2.1.0/build/client/../../client/crystalbutton.h:27:0,
from /home/riz/develop/kwin_crystal/crystal-2.1.0/build/client/moc_crystalbutton.cpp:10,
from /home/riz/develop/kwin_crystal/crystal-2.1.0/build/client/kwin3_crystal_automoc.cpp:4:
/home/riz/develop/kwin_crystal/crystal-2.1.0/client/crystalclient.h:89:54: error: ‘ClientGroupItem’ has not been declared
make[2]: *** [client/CMakeFiles/kwin3_crystal.dir/kwin3_crystal_automoc.o] Error 1
make[1]: *** [client/CMakeFiles/kwin3_crystal.dir/all] Error 2
make: *** [all] Error 2
Report