| Crates.io | diskfmt |
| lib.rs | diskfmt |
| version | 0.1.3 |
| created_at | 2025-11-24 19:35:03.906416+00 |
| updated_at | 2025-12-05 21:26:04.203921+00 |
| description | A GUI utility for formatting disks using UDisks2. |
| homepage | |
| repository | https://github.com/MoAlyousef/diskfmt |
| max_upload_size | |
| id | 1948554 |
| size | 1,517,422 |
![]()
A disk formatting utility for linux that is similar to the windows format utility.
Currently it uses the UDisks2 system service (via the udisks2 crate) for the heavy lifting. Other backends can be conceptually added later.
Small, good defaults and easy to use, especially for users coming from windows to linux.

If you need to be able to create exfat partitions, you need to install exfatprogs package on your distribution if not already available.
git clone https://github.com/MoAlyousef/diskfmt
cd diskfmt
cargo build --release
# if you have libfltk1.4-dev installed, you can build using
cargo build --release --features=fltk/fltk-config
# To build with hybrid/x11 support
cargo build --release --features=fltk/use-wayland
Feature flags:
cargo build --release --no-default-features.cargo build --release --features a11y (requires GUI feature).scripts/build-appimage.sh builds a release binary, sets up an AppDir, and bundles it with linuxdeploy + appimagetool (downloaded into target/appimage/ if missing).convert from ImageMagick to downscale the provided icon.png (1024x1024) to 256x256 for the AppImage icon../scripts/build-appimage.sh # produces target/appimage/diskfmt-<version>-<arch>.AppImage
ARCH (defaults to uname -m), CARGO_FLAGS (e.g., --features fltk/use-wayland), LINUXDEPLOY/APPIMAGETOOL (custom paths), ICON_SRC, OUTPUT, VERSION.diskfmt starts the GUI by default (no arguments) or with --start-ui. The same operations are available via a command‑line interface.
Global options:
--mock-backend Use the mock backend (no system changes; useful for testing)--theme THEME UI color theme (e.g., DARK2) [GUI builds only]--scheme SCHEME UI widget scheme (Fleet1 or Fleet2) [GUI builds only]Commands:
Start GUI
diskfmt or diskfmt --start-uidiskfmt --start-ui --theme DARK2 --scheme Fleet2List devices (removable only)
diskfmt listdiskfmt --mock-backend listFormat a device or partition
diskfmt format --path <PATH> [--fs <vfat|exfat|ntfs|ext4|xfs|btrfs>] [--label <LABEL>] [--quick] [--size "Auto"|"4096 bytes"|"8 sectors"] [--table <GPT|DOS>]--path can be a device path (e.g., /dev/sdb1) or a UDisks object path. diskfmt list prints device paths with details.--quick enables a faster (non‑full) format; omit it for a full format.--size matches GUI labels. Examples:
"8 sectors", "16 sectors""4096 bytes", "65536 bytes""Auto" lets the formatter choose.--table GPT|DOS.diskfmt format --path /dev/sdb1 --fs vfat --label USB --quick --size "8 sectors"diskfmt format --path /dev/sdb --fs ext4 --label DATA --size "4096 bytes" --table GPTCancel a running format
diskfmt cancel <JOB_ID>Job <ID> started; use that ID with cancel.Config management
diskfmt config --print Print effective theme and scheme (merged: CLI > config > defaults)diskfmt config --path Show the resolved config file pathdiskfmt config --edit Open the config in $VISUAL/$EDITOR (creates a template if missing)diskfmt config --init [--force] Create or overwrite the config file with a templatediskfmt reads configuration from:
$XDG_CONFIG_HOME/diskfmt/config.toml, or~/.config/diskfmt/config.tomlSchema (TOML):
[style]
# Default GUI theme and scheme
theme = "DARK2" # See `diskfmt --help` for full list
scheme = "Fleet1" # Fleet1 or Fleet2
CLI flags always override config, which overrides built‑in defaults (DARK2 + Fleet1).