mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2026-06-20 04:15:38 +00:00
Compare commits
17 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
50af3b2fc2 | ||
|
|
4ec8620804 | ||
|
|
5d3fc5e2f1 | ||
|
|
8bea94f794 | ||
|
|
1c5e228e0f | ||
|
|
6094d287ed | ||
|
|
eac5887b00 | ||
|
|
334611612a | ||
|
|
57f7ce5f73 | ||
|
|
144be00d9d | ||
|
|
0f0467bfe7 | ||
|
|
cbcabcfaa9 | ||
|
|
6d6de995c3 | ||
|
|
d0bf694f02 | ||
|
|
83ea9cf998 | ||
|
|
b319ffbdd7 | ||
|
|
fe9175f6c9 |
19 changed files with 1395 additions and 85 deletions
186
INSTALL.md
186
INSTALL.md
|
|
@ -8,6 +8,7 @@
|
||||||
4. [Manual installation](#manual)
|
4. [Manual installation](#manual)
|
||||||
5. [Configuring AeroThemePlasma](#conf)
|
5. [Configuring AeroThemePlasma](#conf)
|
||||||
6. [GTK](#gtk)
|
6. [GTK](#gtk)
|
||||||
|
7. [Uninstalling AeroThemePlasma](#uninstall)
|
||||||
|
|
||||||
## Prerequisites <a name="preq"></a>
|
## Prerequisites <a name="preq"></a>
|
||||||
|
|
||||||
|
|
@ -35,7 +36,7 @@ KSysGuard has been officially deprecated by KDE, however an unofficial [port](ht
|
||||||
Required Packages:
|
Required Packages:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dnf install plasma-workspace-devel unzip kvantum qt6-qtmultimedia-devel qt6-qt5compat-devel libplasma-devel qt6-qtbase-devel qt6-qtwayland-devel plasma-activities-devel kf6-kpackage-devel kf6-kglobalaccel-devel qt6-qtsvg-devel wayland-devel plasma-wayland-protocols kf6-ksvg-devel kf6-kcrash-devel kf6-kguiaddons-devel kf6-kcmutils-devel kf6-kio-devel kdecoration-devel kf6-ki18n-devel kf6-knotifications-devel kf6-kirigami-devel kf6-kiconthemes-devel cmake gmp-ecm-devel kf5-plasma-devel libepoxy-devel kwin-devel kf6-karchive kf6-karchive-devel plasma-wayland-protocols-devel qt6-qtbase-private-devel qt6-qtbase-devel kf6-knewstuff-devel kf6-knotifyconfig-devel kf6-attica-devel kf6-krunner-devel kf6-kdbusaddons-devel kf6-sonnet-devel plasma5support-devel plasma-activities-stats-devel polkit-qt6-1-devel qt-devel libdrm-devel kf6-kitemmodels-devel kf6-kstatusnotifieritem-devel
|
dnf install plasma-workspace-devel unzip kvantum qt6-qtmultimedia-devel qt6-qt5compat-devel libplasma-devel qt6-qtbase-devel qt6-qtwayland-devel plasma-activities-devel kf6-kpackage-devel kf6-kglobalaccel-devel qt6-qtsvg-devel wayland-devel plasma-wayland-protocols kf6-ksvg-devel kf6-kcrash-devel kf6-kguiaddons-devel kf6-kcmutils-devel kf6-kio-devel kdecoration-devel kf6-ki18n-devel kf6-knotifications-devel kf6-kirigami-devel kf6-kiconthemes-devel cmake gmp-ecm-devel kf5-plasma-devel libepoxy-devel kwin-devel kf6-karchive kf6-karchive-devel plasma-wayland-protocols-devel qt6-qtbase-private-devel qt6-qtbase-devel kf6-knewstuff-devel kf6-knotifyconfig-devel kf6-attica-devel kf6-krunner-devel kf6-kdbusaddons-devel kf6-sonnet-devel plasma5support-devel plasma-activities-stats-devel polkit-qt6-1-devel qt-devel libdrm-devel kf6-kitemmodels-devel kf6-kstatusnotifieritem-devel kf6-frameworkintegration-devel
|
||||||
```
|
```
|
||||||
|
|
||||||
On Fedora, additional dependencies for X11 include:
|
On Fedora, additional dependencies for X11 include:
|
||||||
|
|
@ -58,7 +59,7 @@ In openSUSE, additional dependencies for X11 include:
|
||||||
### Ubuntu 25.10
|
### Ubuntu 25.10
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
apt install build-essential cmake ninja-build curl libqt6virtualkeyboard6 libqt6multimedia6 libqt6core5compat6 libplasma5support6 libkdecorations3-dev libkf6colorscheme-dev libkf6i18n-dev libkf6iconthemes-dev libkf6kcmutils-dev libkirigami-dev libkf6kio-dev libkf6notifications-dev libkf6svg-dev libkf6crash-dev libkf6globalaccel-dev libplasma-dev libplasmaactivities-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-damage0-dev libepoxy-dev libqt6svg6-dev kwin-dev plasma-wayland-protocols
|
apt install build-essential cmake ninja-build curl libqt6virtualkeyboard6 libqt6multimedia6 libqt6core5compat6 libplasma5support6 libkdecorations3-dev libkf6colorscheme-dev libkf6i18n-dev libkf6iconthemes-dev libkf6kcmutils-dev libkirigami-dev libkf6kio-dev libkf6notifications-dev libkf6svg-dev libkf6crash-dev libkf6globalaccel-dev libplasma-dev libplasmaactivities-dev libxcb-composite0-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-damage0-dev libepoxy-dev libqt6svg6-dev kwin-dev plasma-wayland-protocols libkf5qqc2desktopstyle-dev libkf6qqc2desktopstyle-dev libplasma5support-dev libkf6auth-dev libkf6newstuff-dev libkf6notifyconfig-dev libkf6attica-dev libkf6runner-dev libkf6dbusaddons-dev libkf6sonnet-dev libkf6xmlgui-dev libkf6coreaddons-dev libkf6widgetsaddons-dev libkf6guiaddons-dev qt6-base-dev qt6-5compat-dev qml-module-org-kde-qqc2desktopstyle libplasmaactivitiesstats-dev plasma-workspace-dev libkf6statusnotifieritem-dev qml-module-org-kde-kirigami-addons-sounds qml6-module-org-kde-kirigamiaddons-sounds
|
||||||
```
|
```
|
||||||
|
|
||||||
On Ubuntu, additional dependencies for X11 include:
|
On Ubuntu, additional dependencies for X11 include:
|
||||||
|
|
@ -84,11 +85,11 @@ There are two ways to install AeroThemePlasma: Using the provided install script
|
||||||
This is the recommended way of installing ATP. The install scripts compile and deploy the components required for ATP to work. Run the install scripts in the terminal:
|
This is the recommended way of installing ATP. The install scripts compile and deploy the components required for ATP to work. Run the install scripts in the terminal:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ sh compile.sh --ninja
|
$ bash compile.sh --ninja
|
||||||
$ sh install_plasmoids.sh --ninja
|
$ bash install_plasmoids.sh --ninja
|
||||||
$ sh install_kwin_components.sh
|
$ bash install_kwin_components.sh
|
||||||
$ sh install_plasma_components.sh
|
$ bash install_plasma_components.sh
|
||||||
$ sh install_misc_components.sh
|
$ bash install_misc_components.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
During execution, some scripts may require admin privileges or other prompts from the user. Do **NOT** run any of the provided install scripts with sudo or as root.
|
During execution, some scripts may require admin privileges or other prompts from the user. Do **NOT** run any of the provided install scripts with sudo or as root.
|
||||||
|
|
@ -109,18 +110,23 @@ You can additionally pass `--ninja` to any of the following scripts in order to
|
||||||
- `install_plasmoids.sh`
|
- `install_plasmoids.sh`
|
||||||
- Any individual `install.sh` script
|
- Any individual `install.sh` script
|
||||||
|
|
||||||
|
Other notable flags include:
|
||||||
|
|
||||||
|
1. `--skip-libplasma` in `compile.sh`, which skips libplasma patches from being compiled and installed
|
||||||
|
2. `--skip-kpackages` in `install_plasmoids.sh`, which skips installing the QML components of plasmoids
|
||||||
|
|
||||||
### Note for Wayland users
|
### Note for Wayland users
|
||||||
|
|
||||||
The compile script must be run while passing the `--wayland` argument for KWin effects:
|
The compile script must be run while passing the `--wayland` argument for KWin effects:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sh compile.sh --wayland --ninja
|
$ bash compile.sh --wayland --ninja
|
||||||
```
|
```
|
||||||
|
|
||||||
If compiling individual KWin effects by running their respective `install.sh` scripts, you can also pass the `--wayland` argument there:
|
If compiling individual KWin effects by running their respective `install.sh` scripts, you can also pass the `--wayland` argument there:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sh install.sh --wayland --ninja
|
$ bash install.sh --wayland --ninja
|
||||||
```
|
```
|
||||||
|
|
||||||
### Updating AeroThemePlasma
|
### Updating AeroThemePlasma
|
||||||
|
|
@ -135,12 +141,12 @@ $ git pull
|
||||||
and re-run the install scripts:
|
and re-run the install scripts:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ sh compile.sh
|
$ bash compile.sh
|
||||||
$ sh install_plasmoids.sh
|
$ bash install_plasmoids.sh
|
||||||
$ sh install_plasmoids.sh --no-compile # If there's no need to recompile the C++ parts of the plasmoids, you can pass this argument to speed things up
|
$ bash install_plasmoids.sh --no-compile # If there's no need to recompile the C++ parts of the plasmoids, you can pass this argument to speed things up
|
||||||
$ sh install_kwin_components.sh
|
$ bash install_kwin_components.sh
|
||||||
$ sh install_plasma_components.sh
|
$ bash install_plasma_components.sh
|
||||||
$ sh install_misc_components.sh # Usually not required to run again
|
$ bash install_misc_components.sh # Usually not required to run again
|
||||||
```
|
```
|
||||||
|
|
||||||
Typically it's enough to run the first four scripts after ATP has been updated. It's highly recommended to check for new commits and read the extended descriptions in order to see what has actually changed and what's required when updating.
|
Typically it's enough to run the first four scripts after ATP has been updated. It's highly recommended to check for new commits and read the extended descriptions in order to see what has actually changed and what's required when updating.
|
||||||
|
|
@ -169,7 +175,7 @@ SevenTasks relies on modifications found in `misc/libplasma` in order to work pr
|
||||||
2. Compile all the C++ components found in the `plasmoids/src` directory like this for each source directory:
|
2. Compile all the C++ components found in the `plasmoids/src` directory like this for each source directory:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sh install.sh --ninja
|
$ bash install.sh --ninja
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Move `sddm/sddm-theme-mod` to `/usr/share/sddm/themes`. Optionally, to enable the Vista start screen, set `enableStartup=true` in `theme.conf.user`
|
3. Move `sddm/sddm-theme-mod` to `/usr/share/sddm/themes`. Optionally, to enable the Vista start screen, set `enableStartup=true` in `theme.conf.user`
|
||||||
|
|
@ -281,3 +287,151 @@ echo -e "Microsoft Windows [Version 6.1.7600]\nCopyright (c) 2009 Microsoft Corp
|
||||||
|
|
||||||
AeroThemePlasma officially doesn't have any kind of maintenance, development or support for GTK applications. Instead, check out
|
AeroThemePlasma officially doesn't have any kind of maintenance, development or support for GTK applications. Instead, check out
|
||||||
[Windows 7 Better](https://gitgud.io/Gamer95875/Windows-7-Better) by [Gamer95875](https://gitgud.io/Gamer95875), which is the recommended set of themes that works best with AeroThemePlasma.
|
[Windows 7 Better](https://gitgud.io/Gamer95875/Windows-7-Better) by [Gamer95875](https://gitgud.io/Gamer95875), which is the recommended set of themes that works best with AeroThemePlasma.
|
||||||
|
|
||||||
|
## Uninstalling AeroThemePlasma <a name="uninstall"></a>
|
||||||
|
|
||||||
|
AeroThemePlasma provides an uninstall script that undoes much of what's installed on the system. The script assumes that all of the CMake build files are still present in the repo, most importantly the `install_manifest.txt` files generated as a result of installing compiled parts of ATP. If these files are missing from the repo, they need to be regenerated by once again rerunning the necessary scripts like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ bash compile.sh --skip-libplasma [--wayland] [--ninja]
|
||||||
|
$ bash install_plasmoids.sh --skip-kpackages [--ninja]
|
||||||
|
```
|
||||||
|
|
||||||
|
Once this is done, the script is simply executed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ bash uninstall.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This should be run outside of the AeroThemePlasma session, preferrably in a regular Plasma session. The script will ask for confirmation to uninstall components of the system. **Please check that none of the locations are ill-formed before accepting each prompt, especially those that require additional privileges to uninstall. In case this happens to you, report it as an issue ASAP.**
|
||||||
|
|
||||||
|
Afterwards, `libplasma` and `polkit-kde-agent` should be reinstalled using your distro's package manager. For example, on Arch Linux:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -Sy libplasma polkit-kde-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual uninstallation
|
||||||
|
|
||||||
|
The script performs the following steps in order to uninstall ATP. Uninstalling ATP should be done outside of the ATP session itself. Log into the Plasma session before performing any of these steps.
|
||||||
|
|
||||||
|
### CMake
|
||||||
|
|
||||||
|
- Perform `sudo make uninstall` or `sudo ninja uninstall` in the following directories if applicable:
|
||||||
|
|
||||||
|
```
|
||||||
|
kwin/decoration/build
|
||||||
|
plasma/sddm/login-sessions/build
|
||||||
|
plasma/aerothemeplasma-kcmloader/build
|
||||||
|
plasma/plasmoids/src/systemtray_src/build
|
||||||
|
plasma/plasmoids/src/notifications_src/build
|
||||||
|
plasma/plasmoids/src/volume_src/build
|
||||||
|
plasma/plasmoids/src/sevenstart_src/build
|
||||||
|
plasma/plasmoids/src/seventasks_src/build
|
||||||
|
plasma/plasmoids/src/desktopcontainment/build
|
||||||
|
kwin/effects_cpp/kde-effects-aeroglassblur/build
|
||||||
|
kwin/effects_cpp/kwin-effect-smodsnap-v2/build
|
||||||
|
kwin/effects_cpp/smodglow/build
|
||||||
|
kwin/effects_cpp/aeroglide/build
|
||||||
|
kwin/effects_cpp/startupfeedback/build
|
||||||
|
|
||||||
|
# For Wayland builds
|
||||||
|
kwin/effects_cpp/kde-effects-aeroglassblur/build-wl
|
||||||
|
kwin/effects_cpp/kwin-effect-smodsnap-v2/build-wl
|
||||||
|
kwin/effects_cpp/smodglow/build-wl
|
||||||
|
kwin/effects_cpp/aeroglide/build-wl
|
||||||
|
kwin/effects_cpp/startupfeedback/build-wl
|
||||||
|
```
|
||||||
|
|
||||||
|
### Plasmoids
|
||||||
|
|
||||||
|
- Perform `kpackagetool6 -t "Plasma/Applet" -r "plasmoid_id"` for each plasmoid, replacing `plasmoid_id` with the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
io.gitgud.wackyideas.battery
|
||||||
|
io.gitgud.wackyideas.desktopcontainment
|
||||||
|
io.gitgud.wackyideas.digitalclocklite
|
||||||
|
io.gitgud.wackyideas.keyboardlayout
|
||||||
|
io.gitgud.wackyideas.networkmanagement
|
||||||
|
io.gitgud.wackyideas.panel
|
||||||
|
io.gitgud.wackyideas.SevenStart
|
||||||
|
io.gitgud.wackyideas.seventasks
|
||||||
|
io.gitgud.wackyideas.volume
|
||||||
|
io.gitgud.wackyideas.win7showdesktop
|
||||||
|
```
|
||||||
|
|
||||||
|
### Plasma components
|
||||||
|
|
||||||
|
- Perform the following commands:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kpackagetool6 -t "Plasma/LookAndFeel" -r "authui7"
|
||||||
|
kpackagetool6 -t "Plasma/LayoutTemplate" -r "io.gitgud.wackyideas.taskbar"
|
||||||
|
kpackagetool6 -t "Plasma/Theme" -r "Seven-Black"
|
||||||
|
kpackagetool6 -t "Plasma/Shell" -r "io.gitgud.wackyideas.desktop"
|
||||||
|
```
|
||||||
|
|
||||||
|
- Delete `~/.local/share/color-schemes/Aero.colors`
|
||||||
|
- Delete `~/.config/Kvantum/Windows7Aero`
|
||||||
|
- Delete the sound themes from `~/.local/share/sounds`:
|
||||||
|
|
||||||
|
```
|
||||||
|
'Windows 7'
|
||||||
|
'Windows 7 Afternoon'
|
||||||
|
'Windows 7 Calligraphy'
|
||||||
|
'Windows 7 Characters'
|
||||||
|
'Windows 7 Cityscape'
|
||||||
|
'Windows 7 Delta'
|
||||||
|
'Windows 7 Festival'
|
||||||
|
'Windows 7 Garden'
|
||||||
|
'Windows 7 Heritage'
|
||||||
|
'Windows 7 Landscape'
|
||||||
|
'Windows 7 Quirky'
|
||||||
|
'Windows 7 Raga'
|
||||||
|
'Windows 7 Savanna'
|
||||||
|
'Windows 7 Sonata'
|
||||||
|
```
|
||||||
|
|
||||||
|
- Delete the icon theme at `~/.local/share/icons/Windows 7 Aero`
|
||||||
|
- Delete the following files at `~/.local/share/mime/packages`:
|
||||||
|
|
||||||
|
```
|
||||||
|
application-vnd.microsoft.portable-executable.xml
|
||||||
|
application-x-ms-dll.xml
|
||||||
|
application-x-msdownload.xml
|
||||||
|
application-x-ms-ne-executable.xml
|
||||||
|
```
|
||||||
|
|
||||||
|
and run `update-mime-database ~/.local/share/mime` to refresh MIME associations
|
||||||
|
|
||||||
|
### KWin components
|
||||||
|
|
||||||
|
- Perform `kpackagetool6 -t "KWin/Effect" -r "effect_id"` for each effect, replacing `effect_id` with the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
dimscreenaero
|
||||||
|
fadingpopupsaero
|
||||||
|
loginaero
|
||||||
|
seventasks-thumbnails
|
||||||
|
smodpeekeffect
|
||||||
|
squashaero
|
||||||
|
```
|
||||||
|
|
||||||
|
- Perform the following:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kpackagetool6 -t "KWin/Script" -r "smodpeekscript"
|
||||||
|
kpackagetool6 -t "KWin/WindowSwitcher" -r "flip3d"
|
||||||
|
kpackagetool6 -t "KWin/WindowSwitcher" -r "thumbnail_seven"
|
||||||
|
```
|
||||||
|
|
||||||
|
- Delete the outline at `~/.local/share/kwin/outline`
|
||||||
|
- Delete the symlinks `~/.local/share/kwin-x11` and `~/.local/share/kwin-wayland`
|
||||||
|
- Delete the branding at `~/.config/kdedefaults/kcm-about-distrorc` and the logo (`~/.config/kdedefaults/kcminfo.png`)
|
||||||
|
|
||||||
|
### Other components
|
||||||
|
|
||||||
|
- Delete the cursor theme at `/usr/share/icons/aero-drop`
|
||||||
|
- Delete the SDDM theme at `/usr/share/sddm/themes/sddm-theme-mod`
|
||||||
|
- Delete the SMOD files at `/usr/share/smod` and `~/.local/share/smod`
|
||||||
|
- Delete `/opt/aerothemeplasma`
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ This is a project which aims to recreate the look and feel of Windows 7 as much
|
||||||
ATP is in constant development and testing, it has been tested on:
|
ATP is in constant development and testing, it has been tested on:
|
||||||
|
|
||||||
- Arch Linux x64 and other Arch derivatives
|
- Arch Linux x64 and other Arch derivatives
|
||||||
- Plasma 6.5.0, KDE Frameworks 6.19.0, Qt 6.10.0
|
- Plasma 6.5.5, KDE Frameworks 6.22.0, Qt 6.10.1
|
||||||
- 96 DPI scaling, multi monitor
|
- 96 DPI scaling, multi monitor
|
||||||
- X11, Wayland*
|
- X11, Wayland*
|
||||||
|
|
||||||
|
|
@ -59,6 +59,7 @@ Huge thanks to everyone who helped out along the way by contributing, testing, p
|
||||||
- [AngelBruni](https://github.com/angelbruni) for contributing several SVG textures, most notably the clock in DigitalClockLite Seven
|
- [AngelBruni](https://github.com/angelbruni) for contributing several SVG textures, most notably the clock in DigitalClockLite Seven
|
||||||
- [ricewind012](https://github.com/ricewind012/) for .bashrc Microsoft Windows header
|
- [ricewind012](https://github.com/ricewind012/) for .bashrc Microsoft Windows header
|
||||||
- [furkrn](https://gitgud.io/furkrn) for creating and maintaining the [Plymouth theme](https://github.com/furkrn/PlymouthVista)
|
- [furkrn](https://gitgud.io/furkrn) for creating and maintaining the [Plymouth theme](https://github.com/furkrn/PlymouthVista)
|
||||||
|
- [IcyGuidance](https://gitgud.io/IcyGuidance) for designing the notification badges in SevenTasks
|
||||||
|
|
||||||
### Special Thanks
|
### Special Thanks
|
||||||
|
|
||||||
|
|
|
||||||
20
compile.sh
20
compile.sh
|
|
@ -3,6 +3,7 @@
|
||||||
# You can pass the following arguments to this script:
|
# You can pass the following arguments to this script:
|
||||||
# --ninja Uses Ninja for faster compilation
|
# --ninja Uses Ninja for faster compilation
|
||||||
# --wayland Tells the KWin build scripts to compile the C++ effects for Wayland
|
# --wayland Tells the KWin build scripts to compile the C++ effects for Wayland
|
||||||
|
# --skip-libplasma Skips compiling libplasma patches
|
||||||
|
|
||||||
CUR_DIR=$(pwd)
|
CUR_DIR=$(pwd)
|
||||||
USE_SCRIPT="install.sh"
|
USE_SCRIPT="install.sh"
|
||||||
|
|
@ -21,9 +22,11 @@ fi
|
||||||
|
|
||||||
# Compiles the libplasma patches required for other components of ATP.
|
# Compiles the libplasma patches required for other components of ATP.
|
||||||
# Requires a restart to be applied.
|
# Requires a restart to be applied.
|
||||||
cd "$PWD/misc/libplasma"
|
if [[ "$*" != *"--skip-libplasma"* ]]; then
|
||||||
sh $USE_SCRIPT $@
|
cd "$PWD/misc/libplasma"
|
||||||
cd "$CUR_DIR"
|
bash $USE_SCRIPT $@
|
||||||
|
cd "$CUR_DIR"
|
||||||
|
fi
|
||||||
#echo "Compiling plasmoids..."
|
#echo "Compiling plasmoids..."
|
||||||
|
|
||||||
#for filename in "$PWD/plasma/plasmoids/src/"*; do
|
#for filename in "$PWD/plasma/plasmoids/src/"*; do
|
||||||
|
|
@ -37,14 +40,19 @@ cd "$CUR_DIR"
|
||||||
# Compiles the window decoration theme engine.
|
# Compiles the window decoration theme engine.
|
||||||
echo "Compiling SMOD decorations..."
|
echo "Compiling SMOD decorations..."
|
||||||
cd "$PWD/kwin/decoration"
|
cd "$PWD/kwin/decoration"
|
||||||
sh $USE_SCRIPT $@
|
bash $USE_SCRIPT $@
|
||||||
cd "$CUR_DIR"
|
cd "$CUR_DIR"
|
||||||
echo "Done."
|
echo "Done."
|
||||||
|
|
||||||
|
echo -e "Installing login manager entries..."
|
||||||
|
cd "$PWD/plasma/sddm/login-sessions"
|
||||||
|
bash $USE_SCRIPT
|
||||||
|
echo "Done."
|
||||||
|
|
||||||
# Compiles the settings KCM loader used for development and quick access of certain settings pages.
|
# Compiles the settings KCM loader used for development and quick access of certain settings pages.
|
||||||
echo "Compiling KCM loader..."
|
echo "Compiling KCM loader..."
|
||||||
cd "$PWD/plasma/aerothemeplasma-kcmloader"
|
cd "$PWD/plasma/aerothemeplasma-kcmloader"
|
||||||
sh $USE_SCRIPT $@
|
bash $USE_SCRIPT $@
|
||||||
cd "$CUR_DIR"
|
cd "$CUR_DIR"
|
||||||
echo "Done."
|
echo "Done."
|
||||||
|
|
||||||
|
|
@ -53,7 +61,7 @@ echo "Compiling KWin effects..."
|
||||||
for filename in "$PWD/kwin/effects_cpp/"*; do
|
for filename in "$PWD/kwin/effects_cpp/"*; do
|
||||||
cd "$filename"
|
cd "$filename"
|
||||||
echo "Compiling $(pwd)"
|
echo "Compiling $(pwd)"
|
||||||
sh $USE_SCRIPT $@
|
bash $USE_SCRIPT $@
|
||||||
echo "Done."
|
echo "Done."
|
||||||
cd "$CUR_DIR"
|
cd "$CUR_DIR"
|
||||||
done
|
done
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,6 @@ if [[ -z "$(command -v kpackagetool6)" ]]; then
|
||||||
echo "kpackagetool6 not found. Stopping."
|
echo "kpackagetool6 not found. Stopping."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [[ -z "$(command -v cmake)" ]]; then
|
|
||||||
echo "CMake not found. Stopping."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
if [[ -z "$(command -v tar)" ]]; then
|
if [[ -z "$(command -v tar)" ]]; then
|
||||||
echo "tar not found. Stopping."
|
echo "tar not found. Stopping."
|
||||||
exit
|
exit
|
||||||
|
|
@ -54,9 +50,6 @@ cp "$PWD/plasma/color_scheme/Aero.colors" "$COLOR_DIR"
|
||||||
#plasma-apply-colorscheme Aero
|
#plasma-apply-colorscheme Aero
|
||||||
|
|
||||||
# Installs the SDDM theme, as well as the SDDM entries required for ATP.
|
# Installs the SDDM theme, as well as the SDDM entries required for ATP.
|
||||||
echo -e "Installing login manager entries..."
|
|
||||||
cd "plasma/sddm/login-sessions"
|
|
||||||
sh install.sh
|
|
||||||
echo -e "Installing SDDM theme..."
|
echo -e "Installing SDDM theme..."
|
||||||
cd "$CUR_DIR/plasma/sddm"
|
cd "$CUR_DIR/plasma/sddm"
|
||||||
tar -zcvf "sddm-theme-mod.tar.gz" "sddm-theme-mod"
|
tar -zcvf "sddm-theme-mod.tar.gz" "sddm-theme-mod"
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ fi
|
||||||
# Skips the build process of plasmoids that have C++ components
|
# Skips the build process of plasmoids that have C++ components
|
||||||
# Most of the time, recompiling isn't needed as most changes are done
|
# Most of the time, recompiling isn't needed as most changes are done
|
||||||
# on the QML side.
|
# on the QML side.
|
||||||
if [[ $1 == '--no-compile' ]]; then
|
if [[ "$*" == *"--no-compile"* ]]; then
|
||||||
echo "Skipping compilation..."
|
echo "Skipping compilation..."
|
||||||
else
|
else
|
||||||
echo "Compiling plasmoids..."
|
echo "Compiling plasmoids..."
|
||||||
|
|
@ -35,7 +35,7 @@ else
|
||||||
for filename in "$PWD/plasma/plasmoids/src/"*; do
|
for filename in "$PWD/plasma/plasmoids/src/"*; do
|
||||||
cd "$filename"
|
cd "$filename"
|
||||||
echo "Compiling $(pwd)"
|
echo "Compiling $(pwd)"
|
||||||
sh $USE_SCRIPT $@
|
bash $USE_SCRIPT $@
|
||||||
echo "Done."
|
echo "Done."
|
||||||
cd "$CUR_DIR"
|
cd "$CUR_DIR"
|
||||||
done
|
done
|
||||||
|
|
@ -65,12 +65,15 @@ function install_plasmoid {
|
||||||
# As such, we need to first terminate plasmashell in order to retain
|
# As such, we need to first terminate plasmashell in order to retain
|
||||||
# saved configurations
|
# saved configurations
|
||||||
|
|
||||||
killall plasmashell
|
if [[ "$*" == *"--skip-kpackages"* ]]; then
|
||||||
|
echo -e "Skipping QML Plasmoids"
|
||||||
for filename in "$PWD/plasma/plasmoids/"*; do
|
else
|
||||||
|
killall plasmashell
|
||||||
|
for filename in "$PWD/plasma/plasmoids/"*; do
|
||||||
install_plasmoid "$filename"
|
install_plasmoid "$filename"
|
||||||
done
|
done
|
||||||
|
setsid plasmashell --replace & # Restart plasmashell and detach it from the script
|
||||||
setsid plasmashell --replace & # Restart plasmashell and detach it from the script
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,26 +10,27 @@ import org.kde.plasma.plasmoid 2.0
|
||||||
import org.kde.plasma.configuration 2.0
|
import org.kde.plasma.configuration 2.0
|
||||||
|
|
||||||
ConfigModel {
|
ConfigModel {
|
||||||
property bool isFolder: true //(Plasmoid.pluginName === "org.kde.plasma.folder")
|
|
||||||
|
|
||||||
ConfigCategory {
|
ConfigCategory {
|
||||||
name: i18n("Location")
|
name: i18n("Location")
|
||||||
icon: "inode-directory"
|
icon: "inode-directory"
|
||||||
source: "ConfigLocation.qml"
|
source: "ConfigLocation.qml"
|
||||||
visible: isFolder
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigCategory {
|
ConfigCategory {
|
||||||
name: i18n("Icons")
|
name: i18n("Icons")
|
||||||
icon: "preferences-desktop-icons"
|
icon: "preferences-desktop-icons"
|
||||||
source: "ConfigIcons.qml"
|
source: "ConfigIcons.qml"
|
||||||
visible: isFolder
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigCategory {
|
ConfigCategory {
|
||||||
name: i18n("Filter")
|
name: i18n("Filter")
|
||||||
icon: "preferences-desktop-filter"
|
icon: "preferences-desktop-filter"
|
||||||
source: "ConfigFilter.qml"
|
source: "ConfigFilter.qml"
|
||||||
visible: isFolder
|
}
|
||||||
|
|
||||||
|
ConfigCategory {
|
||||||
|
name: i18n("Watermark")
|
||||||
|
icon: "plasma"
|
||||||
|
source: "ConfigWatermark.qml"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -148,4 +148,13 @@
|
||||||
<default>false</default>
|
<default>false</default>
|
||||||
</entry>
|
</entry>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
<group name="Watermark">
|
||||||
|
<entry name="watermarkVisible" type="Bool">
|
||||||
|
<default>false</default>
|
||||||
|
</entry>
|
||||||
|
<entry name="watermarks" type="String">
|
||||||
|
<default>[]</default>
|
||||||
|
</entry>
|
||||||
|
</group>
|
||||||
</kcfg>
|
</kcfg>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,510 @@
|
||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2018 Friedrich W. H. Kossebau <kossebau@kde.org>
|
||||||
|
* SPDX-FileCopyrightText: 2022 Ismael Asensio <isma.af@gmail.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
|
||||||
|
import org.kde.kirigami as Kirigami
|
||||||
|
import org.kde.plasma.plasmoid
|
||||||
|
import org.kde.kcmutils as KCM
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property var cfg_watermarks
|
||||||
|
property alias cfg_watermarkVisible: watermarkVisible.checked
|
||||||
|
|
||||||
|
property Window watermarkConfigure: null
|
||||||
|
|
||||||
|
component CustomGroupBox: GroupBox {
|
||||||
|
id: gbox
|
||||||
|
label: Label {
|
||||||
|
id: lbl
|
||||||
|
x: gbox.leftPadding + 2
|
||||||
|
y: lbl.implicitHeight/2-gbox.bottomPadding-1
|
||||||
|
width: lbl.implicitWidth
|
||||||
|
text: gbox.title
|
||||||
|
elide: Text.ElideRight
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: -2
|
||||||
|
anchors.rightMargin: -2
|
||||||
|
color: "white"
|
||||||
|
z: -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
background: Rectangle {
|
||||||
|
y: gbox.topPadding - gbox.bottomPadding*2
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height - gbox.topPadding + gbox.bottomPadding*2
|
||||||
|
color: "transparent"
|
||||||
|
border.color: "#d5dfe5"
|
||||||
|
radius: 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ListModel {
|
||||||
|
id: presets
|
||||||
|
|
||||||
|
ListElement { text: "Windows 10" }
|
||||||
|
ListElement { text: "Windows 8.1" }
|
||||||
|
ListElement { text: "Windows 8" }
|
||||||
|
ListElement { text: "Windows 7" }
|
||||||
|
ListElement { text: "Windows Vista" }
|
||||||
|
ListElement { text: "AeroThemePlasma" }
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: watermarkManager
|
||||||
|
|
||||||
|
property var watermarks
|
||||||
|
property int count: 0
|
||||||
|
|
||||||
|
function setWatermark(index: int, text: string, bold: bool, color: string, horizontalAlignment: int) {
|
||||||
|
watermarks[index].text = text;
|
||||||
|
watermarks[index].bold = bold;
|
||||||
|
watermarks[index].color = color;
|
||||||
|
watermarks[index].horizontalAlignment = horizontalAlignment;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function addWatermark(index: int, text: string, bold: bool, color: string, horizontalAlignment: int) {
|
||||||
|
var watermark = {
|
||||||
|
"text":text,
|
||||||
|
"bold":bold,
|
||||||
|
"color":color,
|
||||||
|
"horizontalAlignment":horizontalAlignment
|
||||||
|
};
|
||||||
|
watermarks.push(watermark);
|
||||||
|
repeater_watermarks.selected_delegate = watermarks.length - 1;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteWatermark(index: int) {
|
||||||
|
watermarks.splice(index, 1);
|
||||||
|
repeater_watermarks.selected_delegate--;
|
||||||
|
repeater_watermarks.selected_delegate--;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function moveUp(index: int) {
|
||||||
|
if(index !== 0) {
|
||||||
|
var object = watermarks[index];
|
||||||
|
|
||||||
|
watermarks.splice(index, 1);
|
||||||
|
watermarks.splice(index-1, 0, object);
|
||||||
|
}
|
||||||
|
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function newWatermark() {
|
||||||
|
var component = Qt.createComponent("WatermarkConfigure.qml");
|
||||||
|
|
||||||
|
watermarkConfigure = component.createObject(root, { purpose: "new" });
|
||||||
|
watermarkConfigure.done.connect(watermarkManager.addWatermark);
|
||||||
|
watermarkConfigure.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
function modify(index: int) {
|
||||||
|
var watermark = watermarkManager.watermarks[repeater_watermarks.selected_delegate];
|
||||||
|
var component = Qt.createComponent("WatermarkConfigure.qml");
|
||||||
|
|
||||||
|
watermarkConfigure = component.createObject(root, {
|
||||||
|
index: repeater_watermarks.selected_delegate,
|
||||||
|
purpose: "modify",
|
||||||
|
text: watermark.text,
|
||||||
|
bold: watermark.bold,
|
||||||
|
color: watermark.color,
|
||||||
|
horizontalAlignment: watermark.horizontalAlignment
|
||||||
|
});
|
||||||
|
watermarkConfigure.done.connect(watermarkManager.setWatermark);
|
||||||
|
watermarkConfigure.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
function moveDown(index: int) {
|
||||||
|
if(index < count) {
|
||||||
|
var object = watermarks[index];
|
||||||
|
|
||||||
|
watermarks.splice(index, 1);
|
||||||
|
watermarks.splice(index+1, 0, object);
|
||||||
|
}
|
||||||
|
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function remove(index: int) {
|
||||||
|
watermarks.splice(index, 1);
|
||||||
|
repeater_watermarks.selected_delegate--;
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function clear() {
|
||||||
|
watermarks.splice(0, count);
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
|
||||||
|
function save() {
|
||||||
|
repeater_watermarks.model = null;
|
||||||
|
root.cfg_watermarks = JSON.stringify(watermarks);
|
||||||
|
count = watermarks.length;
|
||||||
|
repeater_watermarks.model = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPreset(preset: int) {
|
||||||
|
clear();
|
||||||
|
switch(preset) {
|
||||||
|
case 0: {
|
||||||
|
addWatermark(0, "Windows 10", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 22H2", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 1: {
|
||||||
|
addWatermark(0, "Windows 8.1", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 9600", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
addWatermark(0, "Windows 8", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 9200", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
addWatermark(0, "Windows 7", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 7601", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
addWatermark(0, "Windows Vista(TM)", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 6003", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 5: {
|
||||||
|
addWatermark(0, "AeroThemePlasma", false, "FFFFFF", 2);
|
||||||
|
addWatermark(0, "Build 6.5.0", false, "FFFFFF", 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
watermarks = JSON.parse(Plasmoid.configuration.watermarks);
|
||||||
|
count = watermarks.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.leftMargin: Kirigami.Units.gridUnit*4
|
||||||
|
anchors.rightMargin: Kirigami.Units.gridUnit*4
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: watermarkVisible
|
||||||
|
text: i18n("Enabled")
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomGroupBox {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
title: i18n("Presets")
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
text: i18n("Load")
|
||||||
|
onClicked: {
|
||||||
|
watermarkManager.loadPreset(repeater_presets.selected_delegate)
|
||||||
|
repeater_presets.selected_delegate = -1
|
||||||
|
}
|
||||||
|
enabled: repeater_presets.selected_delegate !== -1 && watermarkVisible.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.horizontalStretchFactor: 1
|
||||||
|
Layout.minimumHeight: 22
|
||||||
|
Layout.preferredHeight: list_presets.height
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: -1
|
||||||
|
|
||||||
|
border.width: 1
|
||||||
|
border.color: "lightgray"
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: list_presets
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
|
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
id: repeater_presets
|
||||||
|
|
||||||
|
property int selected_delegate: -1
|
||||||
|
|
||||||
|
model: presets
|
||||||
|
delegate: Item {
|
||||||
|
id: delegate
|
||||||
|
|
||||||
|
required property var model
|
||||||
|
required property int index
|
||||||
|
|
||||||
|
property bool selected: repeater_presets.selected_delegate == index
|
||||||
|
property bool hovered: ma.containsMouse
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 22
|
||||||
|
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
opacity: enabled ? 1.0 : 0.5
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
color: "#3399FF"
|
||||||
|
|
||||||
|
visible: (delegate.hovered || delegate.selected) && delegate.enabled
|
||||||
|
opacity: delegate.selected ? 1.0 : 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: model.text
|
||||||
|
leftPadding: 3
|
||||||
|
rightPadding: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: ma
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
hoverEnabled: true
|
||||||
|
enabled: delegate.enabled
|
||||||
|
onPressed: repeater_presets.selected_delegate = delegate.index;
|
||||||
|
onDoubleClicked: {
|
||||||
|
watermarkManager.loadPreset(model.index);
|
||||||
|
repeater_presets.selected_delegate = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomGroupBox {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
title: i18n("Watermarks")
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: control_column
|
||||||
|
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
uniformCellSizes: true
|
||||||
|
spacing: 4
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("New")
|
||||||
|
onClicked: watermarkManager.newWatermark();
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Clear")
|
||||||
|
onClicked: watermarkManager.clear();
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
Item { }
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Remove")
|
||||||
|
onClicked: watermarkManager.remove(repeater_watermarks.selected_delegate)
|
||||||
|
enabled: repeater_watermarks.selected_delegate !== -1 && watermarkVisible.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Modify")
|
||||||
|
onClicked: watermarkManager.modify(repeater_watermarks.selected_delegate)
|
||||||
|
enabled: repeater_watermarks.selected_delegate !== -1 && watermarkVisible.checked
|
||||||
|
}
|
||||||
|
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Up")
|
||||||
|
onClicked: {
|
||||||
|
watermarkManager.moveUp(repeater_watermarks.selected_delegate);
|
||||||
|
repeater_watermarks.selected_delegate--;
|
||||||
|
}
|
||||||
|
enabled: repeater_watermarks.selected_delegate !== -1 && watermarkVisible.checked
|
||||||
|
}
|
||||||
|
Button {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Down")
|
||||||
|
onClicked: {
|
||||||
|
watermarkManager.moveDown(repeater_watermarks.selected_delegate);
|
||||||
|
repeater_watermarks.selected_delegate++;
|
||||||
|
}
|
||||||
|
enabled: repeater_watermarks.selected_delegate !== -1 && watermarkVisible.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item {
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.horizontalStretchFactor: 1
|
||||||
|
Layout.preferredHeight: control_column.height
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: -1
|
||||||
|
|
||||||
|
border.width: 1
|
||||||
|
border.color: "lightgray"
|
||||||
|
}
|
||||||
|
|
||||||
|
ScrollView {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: list_watermarks
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
|
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
id: repeater_watermarks
|
||||||
|
|
||||||
|
property int selected_delegate: -1
|
||||||
|
|
||||||
|
model: watermarkManager.count
|
||||||
|
delegate: Item {
|
||||||
|
id: delegate
|
||||||
|
|
||||||
|
required property int index
|
||||||
|
|
||||||
|
property bool selected: repeater_watermarks.selected_delegate == index
|
||||||
|
property bool hovered: ma.containsMouse
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.preferredHeight: 22
|
||||||
|
|
||||||
|
enabled: watermarkVisible.checked
|
||||||
|
opacity: enabled ? 1.0 : 0.5
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
color: "#3399FF"
|
||||||
|
|
||||||
|
visible: delegate.hovered || delegate.selected
|
||||||
|
opacity: delegate.selected ? 1.0 : 0.5
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: row
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.leftMargin: 3
|
||||||
|
anchors.rightMargin: 3
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
|
Layout.preferredWidth: 16
|
||||||
|
Layout.preferredHeight: 16
|
||||||
|
|
||||||
|
color: "#" + watermarkManager.watermarks[delegate.index].color
|
||||||
|
|
||||||
|
border.width: 1
|
||||||
|
border.color: "gray"
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.fillHeight: true
|
||||||
|
|
||||||
|
elide: Text.ElideRight
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: watermarkManager.watermarks[delegate.index].text
|
||||||
|
font.bold: watermarkManager.watermarks[delegate.index].bold
|
||||||
|
horizontalAlignment: {
|
||||||
|
switch(watermarkManager.watermarks[delegate.index].horizontalAlignment) {
|
||||||
|
case 0:
|
||||||
|
return Text.AlignLeft;
|
||||||
|
case 1:
|
||||||
|
return Text.AlignHCenter;
|
||||||
|
case 2:
|
||||||
|
return Text.AlignRight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
id: ma
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
hoverEnabled: true
|
||||||
|
enabled: delegate.enabled
|
||||||
|
onPressed: repeater_watermarks.selected_delegate = delegate.index;
|
||||||
|
onDoubleClicked: {
|
||||||
|
repeater_watermarks.selected_delegate = delegate.index;
|
||||||
|
watermarkManager.modify(repeater_watermarks.selected_delegate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -205,17 +205,7 @@ Item {
|
||||||
active: impl.iconAndLabelsShouldlookSelected || model.selected
|
active: impl.iconAndLabelsShouldlookSelected || model.selected
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
|
|
||||||
width: {
|
width: parent.width
|
||||||
if (root.useListViewMode) {
|
|
||||||
if (main.GridView.view.overflowing) {
|
|
||||||
return parent.width// - Kirigami.Units.smallSpacing;
|
|
||||||
} else {
|
|
||||||
return parent.width;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent.width// - (Kirigami.Units.smallSpacing * 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
height: root.useListViewMode
|
height: root.useListViewMode
|
||||||
? parent.height
|
? parent.height
|
||||||
|
|
@ -322,7 +312,19 @@ Item {
|
||||||
renderType: Text.NativeRendering
|
renderType: Text.NativeRendering
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
font.hintingPreference: Font.PreferFullHinting
|
||||||
z: 2 // So it's always above the highlight effect
|
z: 2 // So it's always above the highlight effect
|
||||||
|
font.kerning: Screen.devicePixelRatio == 1.0
|
||||||
|
|
||||||
|
Timer {
|
||||||
|
id: hidpi_hack
|
||||||
|
interval: 50
|
||||||
|
onTriggered: {
|
||||||
|
front.anchors.rightMargin += 1;
|
||||||
|
front.anchors.rightMargin -= 1;
|
||||||
|
behind.anchors.rightMargin += 1;
|
||||||
|
behind.anchors.rightMargin -= 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
// Hacks to improve font rendering to increase contrast and text brightness
|
// Hacks to improve font rendering to increase contrast and text brightness
|
||||||
// This is done to get darker subpixel rendering, closer to ClearType
|
// This is done to get darker subpixel rendering, closer to ClearType
|
||||||
PlasmaComponents.Label {
|
PlasmaComponents.Label {
|
||||||
|
|
@ -334,29 +336,14 @@ Item {
|
||||||
color: model.selected && Plasmoid.configuration.selectionStyle ? "black" : "#F9000000"
|
color: model.selected && Plasmoid.configuration.selectionStyle ? "black" : "#F9000000"
|
||||||
renderType: Text.NativeRendering
|
renderType: Text.NativeRendering
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
font.hintingPreference: Font.PreferFullHinting
|
||||||
|
font.kerning: Screen.devicePixelRatio == 1.0
|
||||||
text: parent.text
|
text: parent.text
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
maximumLineCount: parent.maximumLineCount
|
maximumLineCount: parent.maximumLineCount
|
||||||
wrapMode: (maximumLineCount === 1) ? Text.NoWrap : Text.Wrap
|
wrapMode: (maximumLineCount === 1) ? Text.NoWrap : Text.Wrap
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
visible: Plasmoid.configuration.textShadows
|
visible: Plasmoid.configuration.textShadows
|
||||||
|
|
||||||
}
|
}
|
||||||
/*PlasmaComponents.Label { // One is enough
|
|
||||||
id: behind_right
|
|
||||||
z: -1
|
|
||||||
anchors.fill: parent
|
|
||||||
anchors.rightMargin: -1
|
|
||||||
anchors.leftMargin: 1
|
|
||||||
color: "#d9000000"
|
|
||||||
renderType: Text.NativeRendering
|
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
|
||||||
text: parent.text
|
|
||||||
elide: Text.ElideRight
|
|
||||||
maximumLineCount: parent.maximumLineCount
|
|
||||||
wrapMode: (maximumLineCount === 1) ? Text.NoWrap : Text.Wrap
|
|
||||||
horizontalAlignment: Text.AlignHCenter
|
|
||||||
}*/
|
|
||||||
PlasmaComponents.Label {
|
PlasmaComponents.Label {
|
||||||
id: front
|
id: front
|
||||||
z: -2
|
z: -2
|
||||||
|
|
@ -365,6 +352,7 @@ Item {
|
||||||
color: model.selected && Plasmoid.configuration.selectionStyle ? "black" : "#ffffffff"
|
color: model.selected && Plasmoid.configuration.selectionStyle ? "black" : "#ffffffff"
|
||||||
renderType: Text.NativeRendering
|
renderType: Text.NativeRendering
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
font.hintingPreference: Font.PreferFullHinting
|
||||||
|
font.kerning: Screen.devicePixelRatio == 1.0
|
||||||
text: parent.text
|
text: parent.text
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
maximumLineCount: parent.maximumLineCount
|
maximumLineCount: parent.maximumLineCount
|
||||||
|
|
@ -377,17 +365,42 @@ Item {
|
||||||
State { // icon view
|
State { // icon view
|
||||||
when: !root.useListViewMode
|
when: !root.useListViewMode
|
||||||
|
|
||||||
|
PropertyChanges {
|
||||||
|
target: label
|
||||||
|
anchors.topMargin: Kirigami.Units.smallSpacing
|
||||||
|
// Ffs
|
||||||
|
width: Math.floor((parent.width - Kirigami.Units.smallSpacing + (Screen.devicePixelRatio != 1.0) * 2 * Screen.devicePixelRatio) * Screen.devicePixelRatio) / Screen.devicePixelRatio
|
||||||
|
maximumLineCount: Plasmoid.configuration.textLines
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
}
|
||||||
AnchorChanges {
|
AnchorChanges {
|
||||||
target: label
|
target: label
|
||||||
anchors.top: icon.bottom
|
anchors.top: icon.bottom
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
}
|
}
|
||||||
|
AnchorChanges {
|
||||||
|
target: behind
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
}
|
||||||
|
AnchorChanges {
|
||||||
|
target: front
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: label
|
target: behind
|
||||||
anchors.topMargin: Kirigami.Units.smallSpacing
|
anchors.rightMargin: 1
|
||||||
width: parent.width - Kirigami.Units.smallSpacing
|
anchors.leftMargin: -1
|
||||||
maximumLineCount: Plasmoid.configuration.textLines
|
}
|
||||||
horizontalAlignment: Text.AlignHCenter
|
StateChangeScript {
|
||||||
|
script: {
|
||||||
|
hidpi_hack.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
State { // list view
|
State { // list view
|
||||||
|
|
@ -576,7 +589,6 @@ Item {
|
||||||
toolTip.hideImmediately();
|
toolTip.hideImmediately();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
states: [
|
states: [
|
||||||
|
|
|
||||||
|
|
@ -244,6 +244,20 @@ FocusScope {
|
||||||
id: eventGenerator
|
id: eventGenerator
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Watermark {
|
||||||
|
id: watermark
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
right: parent.right
|
||||||
|
bottom: parent.bottom
|
||||||
|
|
||||||
|
rightMargin: 5
|
||||||
|
bottomMargin: 5
|
||||||
|
}
|
||||||
|
|
||||||
|
width: Math.floor(parent.width/4)
|
||||||
|
}
|
||||||
|
|
||||||
MouseEventListener {
|
MouseEventListener {
|
||||||
id: listener
|
id: listener
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
|
||||||
|
import org.kde.plasma.plasmoid
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
opacity: Plasmoid.configuration.watermarkVisible
|
||||||
|
z: -1
|
||||||
|
|
||||||
|
Item {
|
||||||
|
id: watermarkManager
|
||||||
|
|
||||||
|
property var watermarks
|
||||||
|
property int count: 0
|
||||||
|
|
||||||
|
function load() {
|
||||||
|
watermarks = JSON.parse(Plasmoid.configuration.watermarks);
|
||||||
|
count = watermarks.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: Plasmoid.configuration
|
||||||
|
|
||||||
|
function onWatermarksChanged() {
|
||||||
|
watermarkManager.load();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: load()
|
||||||
|
}
|
||||||
|
|
||||||
|
Repeater {
|
||||||
|
model: watermarkManager.count
|
||||||
|
delegate: Text {
|
||||||
|
id: delegate
|
||||||
|
|
||||||
|
required property int index
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: watermarkManager.watermarks[index].text
|
||||||
|
font.bold: watermarkManager.watermarks[index].bold
|
||||||
|
color: "#" + watermarkManager.watermarks[index].color
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
horizontalAlignment: {
|
||||||
|
switch(watermarkManager.watermarks[index].horizontalAlignment) {
|
||||||
|
case 0:
|
||||||
|
return Text.AlignLeft;
|
||||||
|
case 1:
|
||||||
|
return Text.AlignHCenter;
|
||||||
|
case 2:
|
||||||
|
return Text.AlignRight;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,163 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import QtQuick.Controls as QQC2
|
||||||
|
|
||||||
|
import org.kde.kirigami as Kirigami
|
||||||
|
|
||||||
|
Window {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property string purpose
|
||||||
|
property int index
|
||||||
|
|
||||||
|
property string text: "New watermark"
|
||||||
|
property bool bold: false
|
||||||
|
property string color: "FFFFFF"
|
||||||
|
property int horizontalAlignment: 2
|
||||||
|
|
||||||
|
signal done(int index, string text, bool bold, string color, int horizontalAlignment)
|
||||||
|
onDone: destroy();
|
||||||
|
|
||||||
|
minimumWidth: width
|
||||||
|
minimumHeight: height
|
||||||
|
width: 418
|
||||||
|
height: column.height < 1 ? 1 : column.height
|
||||||
|
maximumWidth: width
|
||||||
|
maximumHeight: height
|
||||||
|
|
||||||
|
title: i18n("Desktop")
|
||||||
|
|
||||||
|
FontMetrics { id: systemFont; font: color.font }
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
id: column
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: topContents
|
||||||
|
|
||||||
|
Layout.preferredWidth: parent.width
|
||||||
|
Layout.preferredHeight: row.implicitHeight + 24
|
||||||
|
|
||||||
|
color: "white"
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: row
|
||||||
|
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.margins: 12
|
||||||
|
|
||||||
|
spacing: 8
|
||||||
|
|
||||||
|
Kirigami.Icon {
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
implicitWidth: 32
|
||||||
|
implicitHeight: 32
|
||||||
|
|
||||||
|
source: "plasma"
|
||||||
|
}
|
||||||
|
|
||||||
|
ColumnLayout {
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: root.purpose == "new" ? i18n("Create a new watermark") : i18n("Modify an existing watermark")
|
||||||
|
color: "#003399"
|
||||||
|
font.pointSize: 11
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
Text { Layout.fillWidth: true; text: i18n("Text:") }
|
||||||
|
|
||||||
|
QQC2.TextField { id: text; Layout.fillWidth: true; text: root.text }
|
||||||
|
}
|
||||||
|
|
||||||
|
QQC2.CheckBox {
|
||||||
|
id: bold
|
||||||
|
|
||||||
|
text: i18n("Use bold text")
|
||||||
|
checked: root.bold
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Color (HEX):")
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
text: "#"
|
||||||
|
}
|
||||||
|
QQC2.TextField {
|
||||||
|
id: color
|
||||||
|
|
||||||
|
Layout.minimumWidth: Math.round(systemFont.maximumCharacterWidth)*6
|
||||||
|
Layout.maximumWidth: Math.round(systemFont.maximumCharacterWidth)*6
|
||||||
|
|
||||||
|
validator: RegularExpressionValidator { regularExpression: /[0-9A-Fa-f]+/ }
|
||||||
|
maximumLength: 6
|
||||||
|
text: root.color
|
||||||
|
color: "black"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
Text {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
text: i18n("Horizontal alignment:")
|
||||||
|
}
|
||||||
|
|
||||||
|
QQC2.ComboBox {
|
||||||
|
id: horizontalAlignment
|
||||||
|
|
||||||
|
currentIndex: root.horizontalAlignment
|
||||||
|
model: [
|
||||||
|
"Left",
|
||||||
|
"Center",
|
||||||
|
"Right"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle { Layout.preferredWidth: parent.width; Layout.preferredHeight: 1; color: "#dfdfdf" }
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
Layout.preferredWidth: parent.width
|
||||||
|
Layout.preferredHeight: 40
|
||||||
|
|
||||||
|
color: "#f0f0f0"
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.rightMargin: 11
|
||||||
|
|
||||||
|
spacing: 8
|
||||||
|
|
||||||
|
Item { Layout.fillWidth: true }
|
||||||
|
|
||||||
|
QQC2.Button {
|
||||||
|
text: i18n("OK")
|
||||||
|
onClicked: root.done(root.index, text.text, bold.checked, color.text, horizontalAlignment.currentIndex);
|
||||||
|
}
|
||||||
|
QQC2.Button {
|
||||||
|
text: i18n("Cancel")
|
||||||
|
onClicked: root.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -559,11 +559,15 @@ Item {
|
||||||
family: Plasmoid.configuration.fontFamily || Kirigami.Theme.defaultFont.family
|
family: Plasmoid.configuration.fontFamily || Kirigami.Theme.defaultFont.family
|
||||||
weight: Plasmoid.configuration.boldText ? Font.Bold : Kirigami.Theme.defaultFont.weight
|
weight: Plasmoid.configuration.boldText ? Font.Bold : Kirigami.Theme.defaultFont.weight
|
||||||
italic: Plasmoid.configuration.italicText
|
italic: Plasmoid.configuration.italicText
|
||||||
pointSize: Plasmoid.configuration.fontSize || Kirigami.Theme.defaultFont.pointSize
|
pointSize: (Plasmoid.configuration.fontSize || Kirigami.Theme.defaultFont.pointSize)
|
||||||
hintingPreference: Font.PreferFullHinting
|
hintingPreference: Font.PreferFullHinting
|
||||||
}
|
}
|
||||||
minimumPixelSize: 1
|
minimumPixelSize: 1
|
||||||
style: Screen.devicePixelRatio == 1.0 ? Text.Outline : Text.Raised
|
style: {
|
||||||
|
if(Screen.devicePixelRatio == 1.0) return Text.Outline;
|
||||||
|
if(Screen.devicePixelRatio >= 2.0) return Text.Normal;
|
||||||
|
return Text.Raised;
|
||||||
|
}
|
||||||
styleColor: "transparent"
|
styleColor: "transparent"
|
||||||
text: {
|
text: {
|
||||||
// get the time for the given timezone from the dataengine
|
// get the time for the given timezone from the dataengine
|
||||||
|
|
@ -606,8 +610,12 @@ Item {
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
font.hintingPreference: Font.PreferFullHinting
|
||||||
minimumPixelSize: 1
|
minimumPixelSize: 1
|
||||||
|
|
||||||
style: Screen.devicePixelRatio == 1.0 ? Text.Outline : Text.Raised
|
|
||||||
styleColor: "transparent"
|
styleColor: "transparent"
|
||||||
|
style: {
|
||||||
|
if(Screen.devicePixelRatio == 1.0) return Text.Outline;
|
||||||
|
if(Screen.devicePixelRatio >= 2.0) return Text.Normal;
|
||||||
|
return Text.Raised;
|
||||||
|
}
|
||||||
visible: false
|
visible: false
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
|
@ -625,7 +633,11 @@ Item {
|
||||||
font.pixelSize: timeLabel.font.pixelSize
|
font.pixelSize: timeLabel.font.pixelSize
|
||||||
font.hintingPreference: Font.PreferFullHinting
|
font.hintingPreference: Font.PreferFullHinting
|
||||||
minimumPixelSize: 1
|
minimumPixelSize: 1
|
||||||
style: Screen.devicePixelRatio == 1.0 ? Text.Outline : Text.Raised
|
style: {
|
||||||
|
if(Screen.devicePixelRatio == 1.0) return Text.Outline;
|
||||||
|
if(Screen.devicePixelRatio >= 2.0) return Text.Normal;
|
||||||
|
return Text.Raised;
|
||||||
|
}
|
||||||
styleColor: "transparent"
|
styleColor: "transparent"
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
SPDX-FileCopyrightText: 2018 Kai Uwe Broulik <kde@privat.broulik.de>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick
|
||||||
|
|
||||||
|
import org.kde.plasma.plasmoid 2.0
|
||||||
|
import org.kde.plasma.components as PlasmaComponents3
|
||||||
|
import org.kde.ksvg as KSvg
|
||||||
|
import org.kde.kirigami as Kirigami
|
||||||
|
import QtQuick.Effects
|
||||||
|
|
||||||
|
// This top-level item is an opaque background that goes behind the colored
|
||||||
|
// background, for contrast. It's not an Item since that it would be square,
|
||||||
|
// and not round, as required here
|
||||||
|
KSvg.SvgItem {
|
||||||
|
id: badgeRect
|
||||||
|
|
||||||
|
property int number: 0
|
||||||
|
property color badgeColor: "black"
|
||||||
|
|
||||||
|
implicitWidth: Kirigami.Units.iconSizes.small//Math.max(height, Math.round(label.contentWidth)) // Add some padding around.
|
||||||
|
implicitHeight: Kirigami.Units.iconSizes.small//implicitWidth
|
||||||
|
|
||||||
|
svg: badgeRing
|
||||||
|
elementId: "ring"
|
||||||
|
|
||||||
|
KSvg.SvgItem {
|
||||||
|
id: badgeGradient
|
||||||
|
svg: badgeRing
|
||||||
|
elementId: "gradient"
|
||||||
|
z: -1
|
||||||
|
anchors.fill: parent
|
||||||
|
layer.enabled: true
|
||||||
|
layer.effect: MultiEffect {
|
||||||
|
colorization: 1.0
|
||||||
|
colorizationColor: badgeRect.badgeColor
|
||||||
|
brightness: {
|
||||||
|
if(badgeRect.badgeColor.hslLightness < 0.5) return 0.75;
|
||||||
|
if(badgeRect.badgeColor.hslLightness > 0.7) { return 0.15; }
|
||||||
|
return 0.25
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Number
|
||||||
|
PlasmaComponents3.Label {
|
||||||
|
id: label
|
||||||
|
anchors.centerIn: parent
|
||||||
|
anchors.alignWhenCentered: false
|
||||||
|
width: height
|
||||||
|
height: Math.min(Kirigami.Units.gridUnit * 2, Math.round(parent.height)-2)
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
fontSizeMode: Text.VerticalFit
|
||||||
|
font.pointSize: 1024
|
||||||
|
font.letterSpacing: -1
|
||||||
|
minimumPointSize: 5
|
||||||
|
text: {
|
||||||
|
if (badgeRect.number < 0) {
|
||||||
|
return i18nc("Invalid number of new messages, overlay, keep short", "—");
|
||||||
|
} else if (badgeRect.number > 9) {
|
||||||
|
return i18nc("Over 9 new messages, overlay, keep short", "9+");
|
||||||
|
} else {
|
||||||
|
return badgeRect.number.toLocaleString(Qt.locale(), 'f', 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
textFormat: Text.PlainText
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -605,6 +605,7 @@ TaskManagerApplet.SmartLauncherItem { }
|
||||||
onTapped: leftClick()
|
onTapped: leftClick()
|
||||||
|
|
||||||
function leftClick() {
|
function leftClick() {
|
||||||
|
|
||||||
if(tasksRoot.pinnedToolTipOpen) {
|
if(tasksRoot.pinnedToolTipOpen) {
|
||||||
task.hideImmediately();
|
task.hideImmediately();
|
||||||
tasksRoot.pinnedToolTipOpen = false;
|
tasksRoot.pinnedToolTipOpen = false;
|
||||||
|
|
@ -1367,6 +1368,20 @@ TaskManagerApplet.SmartLauncherItem { }
|
||||||
|
|
||||||
onSourceChanged: {
|
onSourceChanged: {
|
||||||
containerRect.glowColor = Plasmoid.getDominantColor(iconBox.source);
|
containerRect.glowColor = Plasmoid.getDominantColor(iconBox.source);
|
||||||
|
badge.badgeColor = containerRect.glowColor
|
||||||
|
}
|
||||||
|
|
||||||
|
Badge {
|
||||||
|
id: badge
|
||||||
|
visible: task.smartLauncherItem && task.smartLauncherItem.countVisible
|
||||||
|
number: task.smartLauncherItem.count
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: (tasksRoot.height <= 30) ? -Kirigami.Units.largeSpacing : -Kirigami.Units.smallSpacing
|
||||||
|
anchors.topMargin: (tasksRoot.height <= 30) ? -Kirigami.Units.smallSpacing : 0
|
||||||
|
Component.onCompleted: {
|
||||||
|
badgeColor = containerRect.glowColor
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import org.kde.plasma.plasma5support as Plasma5Support
|
||||||
|
|
||||||
import org.kde.kquickcontrolsaddons
|
import org.kde.kquickcontrolsaddons
|
||||||
import org.kde.kwindowsystem
|
import org.kde.kwindowsystem
|
||||||
|
import org.kde.notificationmanager as NotificationManager
|
||||||
|
|
||||||
import "code/layoutmetrics.js" as LayoutMetrics
|
import "code/layoutmetrics.js" as LayoutMetrics
|
||||||
import "code/tools.js" as TaskTools
|
import "code/tools.js" as TaskTools
|
||||||
|
|
@ -71,6 +72,14 @@ PlasmoidItem {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
NotificationManager.Notifications {
|
||||||
|
id: historyModel
|
||||||
|
showExpired: true
|
||||||
|
showDismissed: true
|
||||||
|
showJobs: true
|
||||||
|
groupLimit: 2
|
||||||
|
expandUnread: true
|
||||||
|
}
|
||||||
|
|
||||||
onIconsOnlyChanged: {
|
onIconsOnlyChanged: {
|
||||||
iconGeometryTimer.start();
|
iconGeometryTimer.start();
|
||||||
|
|
@ -448,6 +457,10 @@ PlasmoidItem {
|
||||||
Drag.onDragFinished: tasks.dragSource = null;
|
Drag.onDragFinished: tasks.dragSource = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
KSvg.Svg {
|
||||||
|
id: badgeRing
|
||||||
|
imagePath: Qt.resolvedUrl("svgs/badge.svgz")
|
||||||
|
}
|
||||||
KSvg.FrameSvgItem {
|
KSvg.FrameSvgItem {
|
||||||
id: taskFrame
|
id: taskFrame
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -28,6 +28,12 @@ import "components" as Components
|
||||||
PlasmaExtras.Representation {
|
PlasmaExtras.Representation {
|
||||||
id: fullRepresentationRoot
|
id: fullRepresentationRoot
|
||||||
|
|
||||||
|
function fixDpi(val) {
|
||||||
|
if(Screen.devicePixelRatio !== 1.0) {
|
||||||
|
return Math.floor(val*Screen.devicePixelRatio) / Screen.devicePixelRatio;
|
||||||
|
}
|
||||||
|
return val;
|
||||||
|
}
|
||||||
// TODO these should be configurable in the future
|
// TODO these should be configurable in the future
|
||||||
readonly property int dndMorningHour: 6
|
readonly property int dndMorningHour: 6
|
||||||
readonly property int dndEveningHour: 20
|
readonly property int dndEveningHour: 20
|
||||||
|
|
@ -263,6 +269,7 @@ PlasmaExtras.Representation {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.bottomMargin: 2
|
anchors.bottomMargin: 2
|
||||||
anchors.rightMargin: -2
|
anchors.rightMargin: -2
|
||||||
|
anchors.leftMargin: -2
|
||||||
background: null
|
background: null
|
||||||
focus: true
|
focus: true
|
||||||
clip: true
|
clip: true
|
||||||
|
|
@ -370,7 +377,7 @@ PlasmaExtras.Representation {
|
||||||
|
|
||||||
delegate: DraggableDelegate {
|
delegate: DraggableDelegate {
|
||||||
id: delegate
|
id: delegate
|
||||||
width: ListView.view.width
|
width: fixDpi(ListView.view.width)
|
||||||
opacity: 0
|
opacity: 0
|
||||||
|
|
||||||
required property int index
|
required property int index
|
||||||
|
|
@ -643,8 +650,7 @@ PlasmaExtras.Representation {
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
width: parent.width - (Kirigami.Units.gridUnit * 4)
|
width: fixDpi(parent.width - Kirigami.Units.gridUnit * 4);
|
||||||
|
|
||||||
active: list.count === 0
|
active: list.count === 0
|
||||||
visible: active
|
visible: active
|
||||||
asynchronous: true
|
asynchronous: true
|
||||||
|
|
@ -657,6 +663,7 @@ PlasmaExtras.Representation {
|
||||||
|
|
||||||
PlasmaExtras.PlaceholderMessage {
|
PlasmaExtras.PlaceholderMessage {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
anchors.alignWhenCentered: Screen.devicePixelRatio == 1.0
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
iconName: "checkmark"
|
iconName: "checkmark"
|
||||||
|
|
@ -672,6 +679,7 @@ PlasmaExtras.Representation {
|
||||||
readonly property NotificationManager.ServerInfo currentOwner: NotificationManager.Server.currentOwner
|
readonly property NotificationManager.ServerInfo currentOwner: NotificationManager.Server.currentOwner
|
||||||
|
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
anchors.alignWhenCentered: Screen.devicePixelRatio == 1.0
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
||||||
iconName: "notifications-disabled"
|
iconName: "notifications-disabled"
|
||||||
|
|
|
||||||
263
uninstall.sh
Normal file
263
uninstall.sh
Normal file
|
|
@ -0,0 +1,263 @@
|
||||||
|
#!/bin/bash
|
||||||
|
CUR_DIR=$(pwd)
|
||||||
|
QDBUS_BIN="qdbus6"
|
||||||
|
|
||||||
|
# Sanity check to see if the proper tools are installed.
|
||||||
|
if [[ -z "$(command -v kpackagetool6)" ]]; then
|
||||||
|
echo "kpackagetool6 not found. Stopping."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if [[ -n "$(command -v qdbus6)" ]]; then # Arch
|
||||||
|
QDBUS_BIN=$(command -v qdbus6)
|
||||||
|
elif [[ -n "$(command -v qdbus-qt6)" ]]; then # Fedora
|
||||||
|
QDBUS_BIN=$(command -v qdbus-qt6)
|
||||||
|
else
|
||||||
|
echo "qdbus6 not found."
|
||||||
|
echo "qdbus-qt6 not found."
|
||||||
|
echo "Stopping."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
PLASMASHELL=$($QDBUS_BIN org.kde.plasmashell /PlasmaShell shell)
|
||||||
|
|
||||||
|
if [ $PLASMASHELL == "io.gitgud.wackyideas.desktop" ]; then
|
||||||
|
echo -e "You shouldn't run the uninstall script from AeroThemePlasma itself."
|
||||||
|
echo -e "Please run the uninstall script from the Plasma session or another session."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
BUILD_FILES=("kwin/decoration/build"
|
||||||
|
"plasma/sddm/login-sessions/build"
|
||||||
|
"plasma/aerothemeplasma-kcmloader/build"
|
||||||
|
"plasma/plasmoids/src/systemtray_src/build"
|
||||||
|
"plasma/plasmoids/src/notifications_src/build"
|
||||||
|
"plasma/plasmoids/src/volume_src/build"
|
||||||
|
"plasma/plasmoids/src/sevenstart_src/build"
|
||||||
|
"plasma/plasmoids/src/seventasks_src/build"
|
||||||
|
"plasma/plasmoids/src/desktopcontainment/build"
|
||||||
|
"kwin/effects_cpp/kde-effects-aeroglassblur/build"
|
||||||
|
"kwin/effects_cpp/kwin-effect-smodsnap-v2/build"
|
||||||
|
"kwin/effects_cpp/smodglow/build"
|
||||||
|
"kwin/effects_cpp/aeroglide/build"
|
||||||
|
"kwin/effects_cpp/startupfeedback/build"
|
||||||
|
"kwin/effects_cpp/kde-effects-aeroglassblur/build-wl"
|
||||||
|
"kwin/effects_cpp/kwin-effect-smodsnap-v2/build-wl"
|
||||||
|
"kwin/effects_cpp/smodglow/build-wl"
|
||||||
|
"kwin/effects_cpp/aeroglide/build-wl"
|
||||||
|
"kwin/effects_cpp/startupfeedback/build-wl"
|
||||||
|
)
|
||||||
|
|
||||||
|
function uninstall_cmake_component {
|
||||||
|
if [ ! -f "$CUR_DIR/$1/install_manifest.txt" ]; then
|
||||||
|
echo -e "File install_manifest.txt in $CUR_DIR/$1 was not found."
|
||||||
|
echo -e "If this component was already removed from the system, you can ignore this message.\n"
|
||||||
|
echo -e "Otherwise, to generate this file, run the compile.sh and install_plasmoids.sh scripts again like this:"
|
||||||
|
echo -e "$ bash compile.sh --skip-libplasma [--ninja]"
|
||||||
|
echo -e "$ bash install_plasmoids.sh --skip-kpackages [--ninja]"
|
||||||
|
echo -e "Afterwards, re-run this script."
|
||||||
|
else
|
||||||
|
cd "$CUR_DIR/$1"
|
||||||
|
BUILD_TOOL=make
|
||||||
|
if [ -f "build.ninja" ]; then
|
||||||
|
BUILD_TOOL=ninja
|
||||||
|
fi
|
||||||
|
sudo $BUILD_TOOL uninstall
|
||||||
|
echo -e "Done."
|
||||||
|
cd "$CUR_DIR"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
for path in ${BUILD_FILES[@]}; do
|
||||||
|
uninstall_cmake_component "$path"
|
||||||
|
done
|
||||||
|
|
||||||
|
function uninstall_prompt {
|
||||||
|
echo -e "Do you want to uninstall: $1? (y/N)"
|
||||||
|
if [ ! -z "$2" ]; then
|
||||||
|
echo -e "The following will be removed: $2"
|
||||||
|
fi
|
||||||
|
read answer
|
||||||
|
if [ "$answer" != "${answer#[Yy]}" ]; then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function uninstall_plasmoid {
|
||||||
|
PLASMOID=$(basename "$1")
|
||||||
|
if [[ $PLASMOID == 'src' ]]; then
|
||||||
|
echo "Skipping $PLASMOID"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [[ $PLASMOID == 'io.gitgud.wackyideas.systemtray' ]]; then
|
||||||
|
pkexec kpackagetool6 -t "Plasma/Applet" -g -r "$1"
|
||||||
|
else
|
||||||
|
kpackagetool6 -t "Plasma/Applet" -r "$1"
|
||||||
|
fi
|
||||||
|
echo -e "Uninstalled $1.\n"
|
||||||
|
cd "$CUR_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
function uninstall_component {
|
||||||
|
COMPONENT=$(basename "$1")
|
||||||
|
kpackagetool6 -t "$2" -r "$1"
|
||||||
|
echo -e "Uninstalled $1.\n"
|
||||||
|
cd "$CUR_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall_prompt "Plasmoids"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling plasmoids..."
|
||||||
|
for filename in "$PWD/plasma/plasmoids/"*; do
|
||||||
|
uninstall_plasmoid "$filename"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall_prompt "Plasma components"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling Plasma components..."
|
||||||
|
uninstall_component "authui7" "Plasma/LookAndFeel"
|
||||||
|
uninstall_component "io.gitgud.wackyideas.taskbar" "Plasma/LayoutTemplate"
|
||||||
|
uninstall_component "Seven-Black" "Plasma/Theme"
|
||||||
|
uninstall_component "io.gitgud.wackyideas.desktop" "Plasma/Shell"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
COLOR_DIR="$HOME/.local/share/color-schemes"
|
||||||
|
uninstall_prompt "Color scheme" "$COLOR_DIR/Aero.colors"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling color scheme..."
|
||||||
|
rm "$COLOR_DIR/Aero.colors"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
KV_DIR="$HOME/.config/Kvantum"
|
||||||
|
uninstall_prompt "Kvantum theme" "$KV_DIR/Windows7Aero"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling Kvantum theme..."
|
||||||
|
kvantummanager --set KvAdapta
|
||||||
|
rm -r "$KV_DIR/Windows7Aero"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall_prompt "Sound themes" "$(echo "$HOME/.local/share/sounds/Windows 7"*)"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling sound themes..."
|
||||||
|
for filename in "$HOME/.local/share/sounds/Windows 7"*; do
|
||||||
|
rm -r "$filename"
|
||||||
|
done
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
ICONS_DIR="$HOME/.local/share/icons"
|
||||||
|
uninstall_prompt "Icon theme" "$ICONS_DIR/Windows 7 Aero"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling icon theme..."
|
||||||
|
rm -r "$ICONS_DIR/Windows 7 Aero"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
MIMETYPE_DIR="$HOME/.local/share/mime/packages"
|
||||||
|
uninstall_prompt "Mimetypes" "$MIMETYPE_DIR/application-vnd.microsoft.portable-executable.xml application-x-ms-dll.xml application-x-msdownload.xml application-x-ms-ne-executable.xml"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling mimetypes..."
|
||||||
|
for filename in "$PWD/misc/mimetype/"*; do
|
||||||
|
MIME=$(basename $filename)
|
||||||
|
rm "$MIMETYPE_DIR/$MIME"
|
||||||
|
done
|
||||||
|
update-mime-database "$HOME/.local/share/mime"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall_prompt "KWin JS effects"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling KWin effects (JS)..."
|
||||||
|
for filename in "$PWD/kwin/effects/"*; do
|
||||||
|
uninstall_component "$filename" "KWin/Effect"
|
||||||
|
done
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall_prompt "KWin scripts"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling KWin scripts..."
|
||||||
|
for filename in "$PWD/kwin/scripts/"*; do
|
||||||
|
uninstall_component "$filename" "KWin/Script"
|
||||||
|
done
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
uninstall_prompt "KWin task switchers"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling KWin task switchers..."
|
||||||
|
for filename in "$PWD/kwin/tabbox/"*; do
|
||||||
|
uninstall_component "$filename" "KWin/WindowSwitcher"
|
||||||
|
done
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
KWIN_DIR="$HOME/.local/share/kwin"
|
||||||
|
echo "Uninstalling KWin outline"
|
||||||
|
rm -r "$KWIN_DIR/outline"
|
||||||
|
|
||||||
|
if [[ -L "$KWIN_DIR-x11" && -d "$KWIN_DIR-x11" ]]; then
|
||||||
|
echo "kwin-x11 folder is a symlink, remove it."
|
||||||
|
rm "$KWIN_DIR-x11"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -L "$KWIN_DIR-wayland" && -d "$KWIN_DIR-wayland" ]]; then
|
||||||
|
echo "kwin-wayland folder is a symlink, remove it."
|
||||||
|
rm "$KWIN_DIR-wayland"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BRANDING_DIR="$HOME/.config/kdedefaults"
|
||||||
|
if [ ! -z "$(grep -rni "aerothemeplasma" "$BRANDING_DIR/kcm-about-distrorc")" ]; then
|
||||||
|
echo "Uninstalling branding..."
|
||||||
|
rm "$BRANDING_DIR/kcm-about-distrorc"
|
||||||
|
rm "$BRANDING_DIR/kcminfo.png"
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURSOR_DIR="/usr/share/icons/aero-drop"
|
||||||
|
uninstall_prompt "Cursor theme (requires sudo privileges)" "$CURSOR_DIR"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling cursor theme..."
|
||||||
|
pkexec rm -r "$CURSOR_DIR"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
SDDM_DIR="/usr/share/sddm/themes/sddm-theme-mod"
|
||||||
|
uninstall_prompt "SDDM theme (requires sudo privileges)" "$SDDM_DIR"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling SDDM theme..."
|
||||||
|
pkexec rm -r "$SDDM_DIR"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
SMOD_DIR="/usr/share/smod"
|
||||||
|
uninstall_prompt "SMOD files (requires sudo privileges)" "$SMOD_DIR"
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling SMOD files..."
|
||||||
|
pkexec rm -r "$SMOD_DIR"
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
LIBDIR="/usr/lib/x86_64-linux-gnu/"
|
||||||
|
if [ ! -d ${LIBDIR} ]; then
|
||||||
|
LIBDIR="/usr/lib64/"
|
||||||
|
fi
|
||||||
|
APPLET_DIR="${LIBDIR}qt6/plugins/plasma/applets/"
|
||||||
|
uninstall_prompt "Plasma applets (requires sudo privileges)" "${APPLET_DIR}/io.gitgud.wackyideas."*
|
||||||
|
if [ "$?" == 1 ]; then
|
||||||
|
echo "Uninstalling Plasma applet plugins..."
|
||||||
|
pkexec rm -r "${APPLET_DIR}/io.gitgud.wackyideas."*
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Uninstalling /opt/aerothemeplasma..."
|
||||||
|
pkexec rm -r "/opt/aerothemeplasma"
|
||||||
|
echo "Done."
|
||||||
|
|
||||||
|
|
||||||
|
echo -e "Uninstallation complete."
|
||||||
|
echo -e "In order to uninstall the libplasma and polkit agent modifications, simply reinstall those packages using your distro's package manager."
|
||||||
Loading…
Add table
Add a link
Reference in a new issue