ITADN
matinlotfali/KDE-Rounded-Corners
matinlotfali/KDE-Rounded-Corners · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

KDE-Rounded-Corners

此效果会圆化窗口边角,并在其周围添加轮廓线,同时几乎不影响 KDE Plasma 桌面的性能(参见 #49#50)。

此效果最初是 shapecorners 的一个分支,并包含来自 Alex47 的项目 的一些额外贡献,随后使用着色器进行了优化和重新实现,并受到了 invert effect 的影响。

此效果在 5.27 到 6.6+ 版本的 KDE Plasma 桌面以及各类 Linux 发行版中均得到维护(查看测试)。
"Buy Me A Coffee"

before-after

已测试配置 + 下载链接(.deb、.rpm)

  • Wayland Wayland
  • Kubuntu 22.04 Jammy               
  • Kubuntu 22.04 Jammy + Backports
  • Kubuntu 24.04 Noble                       
  • Kubuntu 26.04                       
  • Debian 12 Bookworm                             
  • Debian 13 Trixie                             
  • Debian Sid             
  • openSUSE Leap 16                 
  • openSUSE Tumbleweed            Copr build status
  • Fedora 44                              Copr build status
  • Fedora Rawhide                      Copr build status
  • Arch                            
  • KDE Neon (Stable)                
  • KDE Neon (Unstable)             

贡献:

  • 与 Wobbly windows 等其他效果的兼容性
  • 与 Plasma 5.27 至 6.7+ 版本 KWin 的兼容性
  • 与 Plasma 6.0 中 HDR 的兼容性
  • 从 6.4 版本开始与拆分后的 KWin 代码库依赖的兼容性 - 参见 #383
  • 优化效果,使其渲染一次而非五次 - 参见 #49
  • 窗口移动到激活状态时的平滑动画
  • 使用着色器重新实现,包括角落阴影和三个轮廓
  • 在窗口最大化或平铺时禁用效果的功能
  • 清理插件逻辑,从 CMakeLists.txt 文件中移除不必要的依赖 - 由 alex1701c
  • 为激活和非激活窗口设置独立的轮廓颜色 - 由 OrkenWhite
  • 支持语言翻译 - 由 VictorR2007 (参见 如何添加更多翻译?)
  • Squircle 圆角形状 - 由 zxsleebu (参见 #503)

如何使用非官方仓库安装

Copr 软件包位于 matinlotfali/KDE-Rounded-Corners

sudo dnf copr enable matinlotfali/KDE-Rounded-Corners
sudo dnf install kwin-effect-roundcorners # or kwin-effect-roundcorners-x11 

AUR 软件包,由 xiota

sudo pamac build kwin-effect-rounded-corners-git # or kwin-effect-rounded-corners-x11-git

NixOS 软件包,由 flexagoon

nix-env -iA nixos.kde-rounded-corners

如何从源代码构建

首先,您需要为发行版安装开发包:

基于 Debian 的发行版(Ubuntu、Kubuntu、KDE Neon)
  • Plasma 6
    sudo apt install git cmake g++ extra-cmake-modules kwin-dev qt6-base-private-dev qt6-base-dev-tools libkf6kcmutils-dev libdrm-dev
  • Plasma 5 - 由 alex47 提供:
    sudo apt install git cmake g++ extra-cmake-modules kwin-dev libkf5configwidgets-dev 
Fedora
  • Plasma 6(Fedora 40 及更高版本)
    sudo dnf install git cmake gcc-c++ extra-cmake-modules kwin-devel kf6-kconfigwidgets-devel libepoxy-devel kf6-kcmutils-devel kf6-ki18n-devel qt6-qtbase-private-devel wayland-devel libdrm-devel
  • Plasma 5(Fedora 39)
    sudo dnf install git cmake gcc-c++ extra-cmake-modules kwin-devel kf5-kconfigwidgets-devel kf5-ki18n-devel libepoxy-devel
Arch - 由 hexa-one 提供
  • Plasma 6
    sudo pacman -S git cmake extra-cmake-modules base-devel vulkan-headers
  • Plasma 5
    sudo pacman -S git cmake extra-cmake-modules base-devel
    yay -S qt5-tools
OpenSUSE
  • Plasma 6(由 aaronkirschen 提供)
    sudo zypper in git cmake gcc-c++ kf6-kconfigwidgets-devel kf6-kcmutils-devel kwin6-devel kf6-kwindowsystem-devel qt6-quick-devel qt6-core-private-devel
  • Plasma 5(由 mathiasgredalRichardsause 提供)
    sudo zypper install git cmake gcc-c++ extra-cmake-modules libqt5-qttools-devel kconfigwidgets-devel kwindowsystem-devel kguiaddons-devel ki18n-devel knotifications-devel kwin5-devel libQt5Gui-devel libQt5OpenGL-devel libepoxy-devel libqt5-qtnetworkauth-devel
Void

lay-bytre-flip 提供

xbps-install git cmake make extra-cmake-modules gettext-devel kwin-devel kf6-kconfigwidgets-devel kf6-kcmutils-devel

然后克隆源代码并编译:

git clone https://github.com/matinlotfali/KDE-Rounded-Corners
cd KDE-Rounded-Corners
mkdir build
cd build
cmake ..
cmake --build . -j
sudo make install
为 X11 构建

如果你是为 X11 构建,请使用命令 cmake .. -DKWIN_X11=ON 而不是 cmake ..

为 KDE Linux 发行版构建

在为 KDE Linux 或其他不提供诸如 rpm-ostree 等工具的不可变发行版进行构建时,你无法写入诸如 /usr 这样的系统路径。要在这样的环境中部署插件,你需要将其构建到用户覆盖层中,并使用 systemd-sysext 激活它。

为了确保插件安装在 KWin 预期的正确目录结构下,请使用

cmake .. \
  -DCMAKE_INSTALL_PREFIX=~/kde/usr \
  -DKDE_INSTALL_PLUGINDIR=lib/qt6/plugins

而不是 cmake ..,并且使用 make install 而不是 sudo make install

构建完成后,你可以将覆盖层放置在 ~/kde 下,并将其链接到 /var/lib/extensions/kdesystemd-sysext 期望扩展根目录位于此处。以下命令可以自动化该过程:

sh ../tools/deploy-to-overlay.sh

这样,插件将以 systemd-sysext 能够识别和加载的形式安装,同时仍保持不可变根文件系统的完整性。

如何加载或卸载效果

要激活该效果,您现在可以注销并重新登录,或在 build 目录中运行以下命令:

sh ../tools/load.sh

要完全卸载该效果,请在 build 目录中运行以下命令:

sh ../tools/unload.sh
sudo make uninstall

如何在 KWin 更新后自动安装

每次 KWin 软件包更新后,该效果都会变得不兼容。因此,如果不重新构建,它将无法加载。

只要该效果尚未成为 KWin 的一部分(正在 此处讨论),您就可以通过在 build 目录中运行以下命令 来自动化重新安装过程:

sh ../tools/install-autorun-test.sh

上述命令会在 autorun 目录内添加一个 .desktop 文件,用于检查该效果是否仍然兼容, 如果不再兼容,脚本将自动重新构建并重新安装该效果。

[!NOTE] 该脚本使用 qdbus 来显示进度条。在 Plasma 6 中,它默认未安装。您需要手动安装软件包 qtchooser

如何调整其设置

您可以在以下位置更改圆角半径、轮廓、排除项等:

系统设置 → 工作区行为 → 桌面效果 → 圆角

额外提示

如何为翻译添加更多语言

翻译存储在 po/<lang>/kcmcorners.po 中。您可以从其他语言复制,并在 po 的不同子目录中开始编辑。

如果 kcm.ui 发生变化,可以通过运行脚本 tools/generate-messages.sh 生成新的语言模板 .pot

如何为无装饰的窗口(如 Steam)添加阴影

您可以使用以下技巧为特定窗口添加阴影。

  1. 在 [ 系统设置 ] → [ 窗口管理 ] → [ 窗口规则 ] → [ 外观与修复 ] 中:

    添加 [steam] 并将 [ 无标题栏 ] 和边框设置为 [ 否 ]

  2. 在 [ 系统设置 ] → [ 应用程序样式 ] → [ 窗口装饰 ] → [ Breeze 主题设置 ] → [ 特定窗口覆盖 ] 中:

    添加 [steam] 并将 [ 隐藏窗口标题栏 ] 设置为 [ 是 ]。

之后,Steam 窗口将恢复其阴影。

如何添加调试消息

在排查问题或报告问题时,使用以下方法在构建期间启用调试日志可能很有用:

cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build . -j

您可能还需要在 ~/.config/QtProject/qtlogging.ini 中添加 default.debug=true 规则。文件内容的示例如下:

[Rules]
*.debug=false
qt.qpa.xcb.xcberror.warning=false
default.debug=true

安装并加载效果后,调试消息将显示在 journalctl 中:

journalctl -f | grep kwin

或者拥有一些彩色的日志

sh ../tools/show-kwin-logs.sh