Skip to content

Add Linux partition resizing through GParted - #120

Open
OmarGonD wants to merge 1 commit into
tobi:mainfrom
OmarGonD:feat/linux-partition-resizing
Open

OmarGonD wants to merge 1 commit into
tobi:mainfrom
OmarGonD:feat/linux-partition-resizing

Conversation

@OmarGonD

@OmarGonD OmarGonD commented Oct 29, 2026 •

Copy link
Copy Markdown

A full Linux volume may have unallocated space available on its disk, but disktree currently offers only file removal. Add Resize partition… to the Disk panel so users can grow or shrink partitions through GParted.

The dialog identifies the physical disk and partition, then opens the installed GParted wrapper. Users select Resize/Move and review and apply operations in GParted. GParted owns filesystem support checks, administrator authentication, and disk writes; disktree stays unprivileged and rescans when the editor exits.

  • Resolve the current mount with findmnt, including Btrfs subvolumes, and follow explicit lsblk ancestry through partitions and LUKS mappings.
  • Reject ambiguous ancestry, LVM, RAID and loop devices; SSH sources remain read-only.
  • Keep discovery off the UI thread, ignore cancelled discovery results, prevent duplicate editor launches and background file actions, and show missing-dependency or editor errors.
  • Explain adjacent unallocated space, filesystem restrictions, encryption and when a live USB is required. GParted is an optional dependency.

Validation:

  • cargo xtask lint passed, including formatting and Clippy over every workspace target and feature.
  • cargo xtask test passed: 274 tests passed, 9 intentionally ignored. This includes five new desktop tests and four core tests for device resolution, unsupported layouts, argument handling, error reporting, cancellation and refresh.
  • Read-only discovery was checked against an actual Omarchy LUKS/Btrfs root.

Tests use fixtures and harmless substitute editor commands; no real partition changes have been performed. GParted is not installed on the development machine, so its actual authentication window and resize operations were not manually exercised. Local checks use the installed Rust 1.98 toolchain; the repository's Rust 1.97 CI run awaits maintainer approval for this fork.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant