TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Window snapping, tiling and scrolling for KDE Plasma
Three placement modes in one daemon. Snap windows into zones you drew, let an algorithm tile them for you, or scroll them along an endless strip. Every monitor picks its own.
Questions, ideas or bug reports: join the Discord
Each monitor runs one mode, chosen per virtual desktop and per activity, so a widescreen can scroll while the laptop panel tiles. Meta+Shift+T cycles the focused screen through the enabled modes, and any mode can be turned off entirely.README 전문 보기 ↗Window snapping, tiling and scrolling for KDE Plasma
Three placement modes in one daemon. Snap windows into zones you drew, let an algorithm tile them for you, or scroll them along an endless strip. Every monitor picks its own.
Docs and screenshots: phosphor-works.github.io/plasmazones
Questions, ideas or bug reports: join the Discord
Each monitor runs one mode, chosen per virtual desktop and per activity, so a widescreen can scroll while the laptop panel tiles. Meta+Shift+T cycles the focused screen through the enabled modes, and any mode can be turned off entirely.
Hold Alt (or your configured modifier) while dragging a window. The zones light up. Drop the window into one and it resizes to fill that zone.
Zones are named regions you draw yourself, in a visual editor with drag-to-resize, snap-to-grid, and mirroring. A library of layouts ships built in (grids, BSP, master and stack, fibonacci, plus portrait, ultrawide, and super-ultrawide variants), and after a snap the remaining zones show as thumbnails so the next window is one click away. Zones can span, and keyboard users can skip the drag entirely with Meta+Ctrl+1 through Meta+Ctrl+9.
Layouts gallery → · Coming from FancyZones →
Windows place themselves as they open, with no drag and no zones to draw. The bundled algorithms are written in Luau and run in a sandbox, covering the usual master-and-stack, BSP, columns, grid, spiral, and monocle families along with less common ones. Write your own in the same language and the daemon hot-reloads it from disk while you edit.
Autotile gallery → · Authoring guide →
Modeled on the niri compositor. Windows form columns on an endless strip and the screen is a window onto it, so opening a window never resizes the ones you already have. The strip slides them aside and scrolls the view instead.
Columns cycle through width presets or take any width you give them. Windows inside a column share it or show one at a time as tabs, with a configurable indicator alongside. A window can be consumed into its neighbor's column or expelled into its own, columns center on demand, and the strip runs side to side or top to bottom to match the shape of the monitor. Hold Meta and scroll the wheel to move along it. Templates set the starting columns and the presets each screen cycles through.
A shortcut family on Meta+Alt covers the whole vocabulary: Keyboard shortcuts →
org.plasmazones covering every mode — scripting guide →Arch (AUR, prebuilt):
yay -S plasmazones-bin
Fedora (COPR):
sudo dnf copr enable fuddlesworth/PlasmaZones && sudo dnf install plasmazones
Fedora Atomic (Kinoite), layering the same COPR package (replace 44 with your Fedora release):
sudo curl -fsSL -o /etc/yum.repos.d/plasmazones.repo https://copr.fedorainfracloud.org/coprs/fuddlesworth/PlasmaZones/repo/fedora-44/fuddlesworth-PlasmaZones-fedora-44.repo
rpm-ostree install plasmazones && systemctl reboot
Debian testing/unstable (apt):
sudo curl -fsSL https://download.opensuse.org/repositories/home:fuddlesworth/Debian_Unstable/Release.key -o /etc/apt/keyrings/plasmazones.asc
echo 'deb [signed-by=/etc/apt/keyrings/plasmazones.asc] https://download.opensuse.org/repositories/home:/fuddlesworth/Debian_Unstable/ /' | sudo tee /etc/apt/sources.list.d/plasmazones.list
sudo apt update && sudo apt install plasmazones
signed-by scopes the key to this repository, so it cannot sign anything from the Debian archive itself. apt reads the armored key as it comes, so there is no gpg --dearmor step and nothing to install first. The two URL spellings are both correct: the repository line uses home:/fuddlesworth/ and the key uses home:fuddlesworth/, which is how OBS lays them out.
On Debian testing, swap Debian_Unstable for Debian_Testing in both lines. Packages are built for x86_64 only. The same repository works on Debian-derived rolling distributions such as PikaOS.
The release tarball is built on Arch and only runs where KWin matches Arch's at release time and Qt is the same or newer, so it is not a route for Fedora, Debian or SteamOS. openSUSE Tumbleweed, the tarball, and source-build instructions (including the -DUSE_KDE_FRAMEWORKS=OFF portable build): Install page →.
After install, enable the daemon:
systemctl --user enable --now plasmazones.service
kbuildsycoca6 --noincremental # KDE only — refresh the service cache
Requirements: KDE Plasma 6.7+ on Wayland — the integration runs as a KWin effect, and KWin must be compositing with OpenGL — plus Qt 6.10+, CMake 3.16+, and a C++20 compiler. Kirigami is required for the settings app in every build. Optional: the rest of KDE Frameworks 6.26+ for the settings KCM and KGlobalAccel shortcuts, PlasmaActivities for activity-based layouts. The portable build (-DUSE_KDE_FRAMEWORKS=OFF) drops those optional framework deps.
Add to your flake inputs:
plasmazones.url = "github:fuddlesworth/PlasmaZones";
Import the module and enable it in your NixOS configuration:
imports = [ inputs.plasmazones.nixosModules.default ];
programs.plasmazones.enable = true;
After rebuilding, enable the daemon and refresh KDE:
systemctl --user enable --now plasmazones.service
kbuildsycoca6 --noincremental
Then log out and back in.
nix profile install github:fuddlesworth/PlasmaZones
Note: This pins the package to the flake's nixpkgs. If your system's KWin updates, the effect plugin may stop loading until you reinstall. The NixOS module method above avoids this by always building against your system's KWin.
systemctl --user enable --now plasmazones.serviceplasmazones-settings (or System Settings → Apps → PlasmaZones on KDE)Meta+Shift+T to cycle the focused one through the enabled modes.Full first-run tour: Getting started →.
| Action | Default |
|---|---|
| Open editor | Meta+Shift+E |
| Open settings | Meta+Shift+P |
| Cycle placement mode (snapping / tiling / scrolling) | Meta+Shift+T |
| Toggle floating | Meta+F |
| Restore window size | Meta+Alt+Escape |
| Snapping: snap window to zone 1–9 | Meta+Ctrl+1 … Meta+Ctrl+9 |
| Previous / next layout | Meta+Alt+[ / Meta+Alt+] |
| Open layout picker | Meta+Alt+Space |
| Scrolling: consume / expel window | Meta+Alt+I / Meta+Alt+Shift+I |
| Scrolling: cycle column width forward / back | Meta+Alt+PgUp / Meta+Alt+PgDown |
| Scrolling: windowed fullscreen | Meta+Alt+Shift+F |
| Open shortcut cheatsheet | Meta+Alt+/ |
Full reference, across core actions, zone movement, snap, layouts, autotile, scrolling, virtual screens, and the editor: Keyboard shortcuts →.
All bindings are rebindable in System Settings → Shortcuts → PlasmaZones (KDE). The PlasmaZones settings app rebinds only the layout editor's own shortcuts.
Settings live in ~/.config/plasmazones/config.json. Layouts live in ~/.local/share/plasmazones/layouts/. Everything is edited through the settings app:
plasmazones-settings # overview
plasmazones-settings -p snapping-layouts # jump straight to the snapping layout library
plasmazones-settings --page tiling-behavior
plasmazones-settings --page scrolling-templates
The app is single-instance — launching it again while running raises the existing window and switches to the requested page.
Daemon startup, verbose logging, KWin minimum-size rules, and the full support-report flow: Troubleshooting →.
Better Blur DX: the force-blur mode blurs every window not on its allowlist, which catches PlasmaZones' overlay surfaces and makes the screen look blurred all the time. To fix it, open System Settings → Window Management → Desktop Effects → Better Blur DX → Configure → Force blur tab, select "Blur all except matching", then add this line:
/^plasmazones/
The slashes are required, they put the parser into regex mode. One entry covers the daemon, editor, and settings. The "Blur all except matching" toggle is the important part. The default mode treats the list as a whitelist instead of an exclusion list.
When filing a bug, attach a support report:
plasmazones-report
The archive lands in /tmp by default with home paths redacted, so it's safe to attach to a public issue.
The daemon exposes its whole surface on org.plasmazones for scripting and integration. Interface inventory, scripting recipes, and signal watching: D-Bus scripting guide →.
Directory tree and data locations: Project Structure on the wiki.
See CONTRIBUTING.md for guidelines on code style, license headers, testing, and translations.
If PlasmaZones is useful to you, consider supporting development:
Bug reports and feature requests: GitHub Issues
GPL-3.0-or-later
Snapping is inspired by FancyZones from PowerToys. Scrolling is inspired by niri.
Built for KDE Plasma 6 on Wayland.