aerothemeplasma/README.md
2022-04-19 22:58:41 +02:00

24 KiB

AERO THEME FOR KDE PLASMA

WARNING: THIS PROJECT IS NOT ACTIVE

Due to real life circumstances, I don't have much time to work on this project (for now). I will most definitely continue to work on it in my spare time, and the project will also eventually become active again.

Donate

BTC: bc1qfs0w6xstcgkjggu9e7gqucrpqvshwfj73h4d4t

Credits

  1. Seven-Black
  2. Win2-7(Pixmap)
  3. Win2-7
  4. Seven Black Aurorae
  5. Smaragd
  6. Aero for Emerald
  7. Windows 7 GTK3 Theme
  8. Avalon Menu
  9. Digital Clock Lite
  10. Show Desktop (Win7)
  11. Equilibrium GTK3
  12. Aero Mouse Cursors with Drop Shadow
  13. Volatile
  14. Expose Air Tweaked

These are all the projects which I have either mentioned or forked for the purposes of this theme pack. Please consider checking them out and checking out the authors who created these themes, plasmoids and other tweaks.

TABLE OF CONTENTS

  1. Introduction
  2. Screenshots
  3. Installation
    1. Prerequisites
    2. KDE Plasma Theme
    3. KDE Application Theme
    4. Aero Color Mixer
    5. Icons and cursors
    6. Fonts
    7. Window Manager
    8. Plasma Widgets
    9. Workspace Behavior
    10. Task Switcher
    11. GTK3
    12. Sounds
  4. Shortcomings
    1. KDE-specific problems
    2. Lack of features problem
  5. TODO List

Introduction

This is a theme which aims to recreate the look and feel of Windows 7 as much as possible on KDE Plasma. The theme is still in active early development and testing. This theme pack currently supports the following platforms and specifications:

  • Arch Linux (Up to date LTS kernel, 64-bit), Artix (Up to date LTS kernel, 64-bit)
  • X11
  • Latest stable KDE Plasma release, latest KDE Frameworks version
  • Qt 5.15.3
  • Intel integrated Graphics, AMD GPUs
  • 96 DPI scaling

A few notes regarding compatibility:

This theme has NOT been tested on HiDPI monitors. Contributors who are able to test it on HiDPI scaling are greatly welcome. YMMV in terms of results, depending on your distro and other specifications. This theme pack has also not been tested on Wayland, and some features might not work due to X11 specific implementations. I do not intend to test or support this theme on Wayland.

Also, due to some specificity of this project, as well as the use of non-standard conventions regarding KDE theming, some parts of the theme pack are not meant to be used separately with other themes.

Keep in mind that I'm not a designer, and that this theme pack mostly features modified themes, plasmoids and other tweaks that I've discovered on the Internet. I'm just a passionate user who really wants to keep the Aero visual style alive. Feel free to take this theme pack and modify it for yourself or share it with others, or if there are any improvements to be made here, any and all effort would be greatly appreciated.

Screenshots

Example Desktop

Start Menu

Dolphin

Context Menu

Taskbar

System Tray

Plasma Style

AeroColorMixer

Window Style

Installation

Prerequisites

This theme pack was created exclusively for KDE Plasma, and thus is a mandatory requirement. It also assumes that you're using KDE provided programs and other Qt programs (Dolphin, Konsole, etc) and that you're using KWin as the window manager. Running Compiz on KDE is technically possible, and might offer marginally better results, however I've found that Compiz is really buggy and crashes on my machine, and thus will not be supported here.

In the earliest release of this theme pack a QtCurve theme was provided and recommended as the main widget style to replicate the look of Aero. However, since the inclusion of GTK2 styles via QGtkStyle, QtCurve is no longer a requirement to have for this theme pack. Instead, you'll need GTK2, an application that can switch between GTK2 themes, and the QGtkStyle widget style itself. More on that in KDE Application Theme.

Lastly, in order to have blur effects, animations and transparency, it is important that your hardware supports compositing and that it is enabled in your settings.

KDE Plasma Theme

The Seven-Black Plasma theme is the main theme for KDE Plasma's shell. Put it in the following directory:

~/.local/share/plasma/desktoptheme/Seven-Black

Since this is a Plasma Style, to apply it simply go to System Settings -> Appearance -> Plasma Style to find it and select it.

Make sure that your panel's width is set to 40 and set to either the top or bottom of your environment. Vertical taskbars are not yet supported, but they will be in the future.

Aero Color Mixer (CURRENTLY BROKEN, WILL FIX IN FUTURE RELEASE)

In the KDE Plasma Theme folder there is also a QtWidgets program called AeroColorMixer. It is a utility for changing the colors of the Plasma theme and the Emerald decorator theme. It is meant to look and feel similar to the color mixer featured in Windows 7 and Windows 8/8.1. The colors included are pulled directly from Windows 7. Some important notes about AeroColorMixer:

  • The configuration file is stored in ~/.aerorc, which contains information about the custom color, whether or not transparency is enabled, and which color is currently applied
  • Enabling/disabling transparency through this program does not affect the compositing settings in KWin's settings.
  • This program applies the colors to the standard theme, the "translucent" variant of the theme, and the "opaque" variant of the theme (which is applied when compositing is disabled)
  • This program does not yet change the color of text in the theme for better readability. This will hopefully be worked on in the future updates
  • By default, the Plasma theme and program are configured with the Sky color scheme.

Both the source code and binaries are provided, and the binary is compiled with Qt version 5.15.2, glibc 2.33 and on the x86_64 architecture.

NOTE: This program is meant to work only with this theme, and it assumes that you have both the Plasma theme and the Emerald theme installed on your system. This program has only been tested so far on two machines so YMMV.

KDE Application Theme

As previously mentioned, this theme now uses the QGtkStyle widget style to theme Qt programs. This solution is also advantageous since GTK2 programs and Qt programs will now look unified. As for GTK 3/4 programs, this theme won't provide any support, though there are themes on the Internet that accomplish this for GTK 3.

Arch users can install the "qt5-styleplugins" package from the AUR to get QGtkStyle.

After this, take the win27pixmap folder and move it to the ~/.themes directory. This is the GTK2 theme based off of the Win2-7 (Pixmap) theme. By selecting QGtkStyle in System Settings -> Appearance -> Application Style, and setting the GTK2 theme with something like gtk-chtheme, your Qt programs should look a lot more like Windows 7 now. You should also set a light color theme for all of this. My personal recommendations are KvCurvesLight and Oxygen Cold.

In case the GTK2 theme isn't persistent throughout sessions, in order to keep it applied, add the following line:

GTK2_RC_FILES=/home/[username]/.themes/win27pixmap/gtk-2.0/gtkrc

in /etc/environment. Restart your Plasma session to see the effect.

The downside of this theme is that it is a light theme, whereas the QtCurve approach can be both a light and dark theme depending on your liking. Maybe in a future release I'll release a followup GTK2 theme which is just an Aero dark theme. Also, some parts of using QGtkStyle is that certain minor parts of the GUI are broken (Such as white text on a light background). Animations and other effects from the original Aero style are also missing unfortunately.

Icons and cursors

The folder windowsicon is the icon theme, while aero-cursors is the cursor theme. Both of these belong in the following directory:

/usr/share/icons

Select the icon and cursor themes in the settings.

Fonts

For the sake of keeping this theme pack relatively compact, and for legal issues, I won't include the Microsoft Windows font pack, but you can get them if you have a Windows installation. Windows fonts are stored in the following directory:

C:\Windows\Fonts\

If you have an existing Windows installation, you can simply copy them over to the following directory:

/usr/share/fonts

Make sure to keep them all tidy in a separate folder from the rest. As for the actual font configurations, in System settings, go to Appearance -> Fonts, and then apply the following settings:

##Note: Since last year or so, developers of certain programs responsible for font rendering (Pango, Harfbuzz) have broken support for hinting in favour of exclusively supporting HiDPI resolutions. As a result, all font hinting options are broken except for the Slight option. Unfortunately, this regression has taken away the font rendering which was nearly identical to ClearType.

  • General: Segoe UI 9pt
  • Fixed width: Fixedsys 11pt (Can be any monospace font)
  • Small: Segoe UI 8pt
  • Toolbar: Segoe UI 9pt
  • Menu: Segoe UI 9pt
  • Window title: Segoe UI 9pt
  • Anti-aliasing: Enable
  • Sub-pixel rendering: RGB
  • Hinting: Slight

Tweak these settings around as you'd like. Since KDE isn't that stable you may have to restart it in order to actually see the real results - KDE tends to butcher font rendering upon changing settings. I don't know why.

Window Manager

I have decided to use smaragd instead of Aurorae decoration engine for the window manager theme, mainly because Aurorae has an extremely annoying graphical glitch which heavily distorts the window decoration, including the window title, by stretching/shrinking them upon resizing. Strangely enough, this also happens on compiz 0.8. If, however, you still want to use Aurorae instead of smaragd, use this theme: https://www.kde-look.org/p/1002615

In the directory:

./Window Manager/smaragd-0.1.1/build/bin/

there is a precompiled binary of smaragd, because actually compiling it takes forever and requires a bunch of old deprecated dependencies. To save everyone the trouble of compiling it, I've included them there, along with the source code and everything. I've edited the source code to fix a few annoying bugs, most notably the maximised decorations being really weird - the caption buttons being slightly off from the corner of the screen, and there was also an annoying feature/bug where clicking and moving your mouse from the topmost pixel of the screen would actually resize the window instead of restoring it, most likely due to margin errors.

To install smaragd, simply move the kwin_smaragd.so file to the following directory:

/usr/lib/qt/plugins/org.kde.kdecoration2/kwin_smaragd.so

I've seen other similar directories on other distros, so if you can't exactly find this directory, my apologies.

Smaragd pulls its theme from Emerald, the Compiz decoration engine. However, you do not actually need to install Emerald in order to get Smaragd to work (it does greatly help if you want to edit the theme to your liking, however). If you don't have emerald, simply put the ".emerald" folder in your home directory, and then apply Smaragd in System settings -> Appearance -> Window Decorations. Any changes you make to the emerald theme will be nearly instant. The changes are applied as soon as the window is updated (resizing, maximizing/restoring the window). The current theme is a modified theme taken from https://www.kde-look.org/p/1003826/

Plasma widgets

Seven Start

In the Plasma Widgets folder you will find the plasmoid SevenStart. This is a fork of Avalon Menu. This plasmoid aims to recreate the look, feel and functionality of the Windows 7 start menu.

To install it, simply move this to the following directory:

~/.local/share/plasma/plasmoids/

If needed, restart Plasma to see it installed. This launcher features three Start Menu buttons, which are animated just like in Windows 7. To properly configure this plasmoid, you have to set these three icons in the plasmoid's configuration as shown here:

The icons are located in ./Plasma Widgets/AeroTheme/. The usage of three start menu buttons allows for greater customisation, along with using custom menu orbs much like ClassicShell/OpenShell.

Seven Tasks

Seven Tasks is a fork of KDE Plasma's Task manager. This fork combines both the regular task manager and the Icons-only task manager into one plasmoid for convenience, and they can be switched out on the fly in the plasmoid configuration. By default, this plasmoid acts as an Icons-only task manager. The plasmoid features the hot-tracking feature of Aero, and a reimplementation of the dominant colour picking algorithm based on the icon. Additionally, right clicking on the taskbar will prop up an option to open the task manager (KSysGuard).

Installing this widget is the same as Seven Start. Move the org.kde.plasma.seventasks folder located in ./Plasma Widgets/Task Manager to the following directory:

~/.local/share/plasma/plasmoids/

There is another file which needs to be added in order for this plasmoid to work. This is the C++ portion of the plasmoid which is used to calculate the dominant color of the taskbar button's icon. The library is compiled for x86_64 platforms. The source is included for those who need to compile it for different architectures. Move the file located in ./Plasma Widgets/Task Manager/lib to the following directory:

/usr/lib/qt/plugins/plasma/applets/

You will need root permissions to do this. When that's done, replace your current task manager with Seven Tasks.

Modified System Tray

This modified system tray will add hover and press animations to the default system tray plasmoid, as well as remove the annoying popup animation which happens upon clicking on an item. Since the system tray is a complex plasmoid, its files have to be replaced, instead of it acting as a standalone plasmoid. To do this, copy the org.kde.plasma.private.systemtray found in the Plasma Widgets folder to the following directory:

/usr/share/plasma/plasmoids/

This will override the default System Tray plasmoid. It is not recommended to edit this particular plasmoid, so proceed with caution. Make sure to back up the original plasmoid somewhere safe before trying this. Another thing to keep in mind is that this plasmoid will reset itself every time KDE Plasma is updated, so the plasmoid has to be reinstalled each time.

Digital Clock Lite

Install the widget Digital Clock Lite and replace the ugly large clock widget with it. By default it should already look a lot like Windows 7's clock, but if it doesn't, change the following settings:

  • Font size px: 9
  • Font style: Segoe UI

You can tweak the other settings to your liking.

Show Desktop (Win7, custom)

This plasmoid is a fork of Zren's Show Desktop (Win7) plasmoid, which features a glass Show Desktop button instead of a plain colour one. After installing this widget, configure it to these settings:

In Look:

  • Size: 13px;

In Click:

  • Run Command: qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "MinimizeAll"
    (Note: in order for this to work, the MinimizeAll KWin script must be installed and enabled)

In Peek:

  • Show desktop on hover: Enable
  • Peek threshold: 750ms

Workspace Behavior

In System Settings -> Workspace Behavior -> Desktop Effects, check the following settings:

  • Blur (Note: set the Blur strength and Noise strength to 3 to make it look somewhat accurately blurry)
  • Desaturate Unresponsive Applications
  • Fading Popups
  • Login
  • Logout
  • Translucency
  • Squash
  • Window Aperture
  • Scale

Task Switcher (Deprecated by Plasma)

This section will talk about how to make the Task Switcher in KDE look more like Windows 7. It will also recreate the look and behaviour of the "Flip 3D" feature. In System Settings -> Window Management -> Task Switcher, set the following:

In Main:

  • Visualization: Set "Thumbnails" as the visualization style.
  • Shortcuts (for All Windows):
    • Forward: Alt + Tab
    • Backward: Alt + Shift + Tab
  • Check the "Include "Show Desktop" icon" checkbox

In Alternative:

  • Visualization: Set "Flip Switch" as the visualization style.
  • Shortcuts (for All Windows):
    • Forward: Meta + Tab
    • Backward: Meta + Shift + Tab
  • Check the "Include "Show Desktop" icon" checkbox

For the Flip Switch visualization style, you can configure it to your liking. Personally, I like to have the "Flip Animation Duration" set to 200.

GTK3/4

This theme pack doesn't support GTK3/4 at all, due to both subjective taste but also because it is very inconvenient, does not integrate well with the rest of the system and it is very tedious to try and support such an unstable environment.

Sounds

This theme isn't complete without sounds. On Windows, the sound files are located in the following directory:

C:\Windows\Media

In my folder I've included the sound files for the default Windows Aero theme, along with other themes from Windows 7. To install them, simply move the two folders to the following directory:

/usr/share/sounds

With that done, you need to go to System Settings -> Notifications. There, click on the Configure... button on the bottom. Scroll down to Plasma Workspace, and click on the Configure Events... button. Set the sounds for the following notifications:

  • Notification: /usr/share/sounds/stereo_windows/dialog-information.ogg
  • Warning Message: /usr/share/sounds/stereo_windows/dialog-warning.ogg
  • Fatal Error, Catastrophe: /usr/share/sounds/stereo_windows/dialog-error.ogg
  • Logout: /usr/share/sounds/stereo_windows/desktop-logout.ogg
  • Question: /usr/share/sounds/stereo_windows/dialog-question.ogg
  • Login: /usr/share/sounds/stereo_windows/desktop-login.ogg
  • Warning: /usr/share/sounds/stereo_windows/dialog-warning.ogg
  • Trash: Emptied: /usr/share/sounds/media_windows/Windows Recycle.wav
  • Critical Message: /usr/share/sounds/stereo_windows/dialog-warning.ogg
  • Information Message: /usr/share/sounds/stereo_windows/dialog-information.ogg
  • Beep: /usr/share/sounds/stereo_windows/button-pressed.ogg

Then, under Power Management, click on the Configure Events... button. Set the sounds for the following notifications:

  • Battery Low, Peripheral Battery Low: /usr/share/sounds/media_windows/Windows Battery Low.wav
  • Battery Critical: /usr/share/sounds/media_windows/Windows Battery Critical.wav

There are probably sounds that I haven't configured or missed out on, but these are the most commonly heard sounds in Windows 7 anyway.

Shortcomings

KDE-specific problems

I'd like to point out that this theme is far from perfect and that it still leaves a lot to be desired, especially with someone who pays attention to a lot of these details. In other words, this theme is a WIP.

There are imperfections that are caused by KDE itself, and other imperfections are really just aesthetic features that are lacking from the original Aero style. Some annoying things about this theme (as with any other KDE theme, really), are that font sizes aren't all that consistent, and neither is the font contrast, meaning that in the worst case scenario, the text will be difficult to read. This could probably be improved by making the backgrounds of elements more opaque. Most of the text is going to be most readable when they're under a dark background.

The icon theme is also pretty lackluster. Unfortunately I haven't been able to find a satisfying icon theme, as all icon themes that I've found are either 90% blank, empty icons, or they've been replaced with minimalist icons. (Most icon themes are developed for GTK-based desktop environments, few tend to support KDE) The closest I was able to find was a Windows 8 icon theme. (https://b00merang.weebly.com/icon-themes.html)

I modified the icon theme by replacing a few minimalist icons with the Win7 alternatives, though it's not complete.

Lack of features problem

As for features that are lacking compared to Windows 7, there's a few that I'd like to point out:

  1. The window manager
    This theme collection uses smaragd, a KWin decoration engine that essentially uses emerald themes for its decorations. While this has enabled Kwin to get a very detailed and close feeling of the Aero visual style, it's not perfect. The second issue is that it doesn't feature window reflections, which makes it pretty jarring to look at.
  2. True Aero peek and Aero shake
    There's a widget called Show Desktop (Win7) which implements a Windows 7-like Show desktop button, with a working Aero Peek. Of course, though, the Aero peek animation depends on KDE's settings. KDE comes with two animations for this effect, however neither one really accomplishes the Aero effect, so this is something that is left to be desired. Aero shake to my knowledge is also not a thing, but in all honesty I've always found it to be a niche feature, so it's not a real priority to recreate.

TODO List

  1. Improve the Seven Start menu plasmoid
    1. If possible, make the sidebar entries configurable
    2. If possible, make the top-right icon stick out of the Start menu (I have not found a way to make this happen yet sadly)
    3. If possible, make the top-right icon change depending on which sidebar is hovered over
    4. If possible, make the plasmoid menu representation use custom SVGs for skin support, and more accurate theming
    5. Add a sidebar feature which includes recent items and actions for each application
  2. Improve the icon theme
  3. Implement window reflections
  4. Replace QGtkStyle with a better Widget visual style, ideally a QWindowsVistaStyle Linux port if possible
  5. Improve plasma theme to look more accurate (plasmoid representations, notifications, tooltips, etc)
  6. Fix AeroColorMixer
  7. Rework the SevenTasks context menu
  8. Add vertical taskbar support