Skip to main content

Display the output of "du" in a window.

Project description

pyxdu

Pyxdu — display the output of "du" disk usage tool in a window.

Pyxdu is a Python port of "xdu", an X window disk usage utility. Pyxdu is a retro tool that tries to follow the style of 1990s in its visual design.

PyPI PyPI - Downloads

Examples

Disk Usage

Show the disk usage in /usr in megabytes:

du -m /usr | pyxdu -n

It runs "du" to show disk usage for directory /usr in megabytes, pipes the output to "pyxdu":

Diagram: Disk Usage

Lines of Code

Count the lines of code for all the Python files under the current directory:

find . -name '*.py' -print0 | xargs -0 wc -l | grep -v total$ | pyxdu -n

It runs "find" to list all the files named "*.py" in the current directory, pipes the output as the arguments of "wc" to count number of lines in each file (accounting for spaces in file names), strips the line with the total amount of lines via "grep", pipes the result to "pyxdu":

Diagram: Lines of Code

Installation

You can install pyxdu on Python 3.7 or newer using pip:

pip install pyxdu

macOS

The recommended way of installing pyxdu on macOS is via Homebrew and pipx:

brew install python python-tk pipx
pipx install pyxdu

Description

Pyxdu is a program for displaying a graphical tree of disk space utilization as reported by the UNIX utility "du". The user can navigate through the tree structure and change the order of the displayed information. The window is divided up into several columns, each of which is one level deeper in the directory hierarchy (from left to right). Boxes are drawn for each directory. The amount of vertical space occupied by each box is directly proportional to the amount of disk space consumed by it and all of its children. The name of each directory and the amount of data are displayed provided that there is enough space within its box. Any space at the "bottom" of a box not covered by its children to the right represents the space consumed by files in that directory (as opposed to space from its children).

There are several command line options available.

  • -h --help
    • Show help message.
  • -s
    • Don't display sizes. (not supported yet)
  • -a
    • Sort in alphabetical order.
  • -n
    • Sort in numerical order (the largest first).
  • -r
    • Reverse sense of sort (e.g. -rn means the smallest first).
  • -c <num>
    • Display <num> columns [default: 6].
  • --foreground <color>
    • Determines the color of the text and lines. (not supported yet)
  • --background <color>
    • Determines the color of the background. (not supported yet)
  • --dump <file>
    • Dump tree as JSON for debugging.
  • --traceback
    • Print traceback on exceptions.

Mouse Actions

The user can move up or down the tree by clicking the left mouse on a directory box. If the left most box is selected, the display will move up one level (assuming you are not already at the root). If any other box is selected, it will be placed against the left edge of the window, and the display will be rescaled appropriately. At any time the middle mouse will bring you back to the root. Clicking the right mouse will exit the program. (not supported yet)

Keystrokes

  • 1-9, 0
    • Sets the number of columns in the display (0 = 10).
  • a
    • Alphabetical sort.
  • n
    • Numerical sort (the largest first).
  • f
    • First-in-first-out sort (this is the order the data was read into the program).
  • l
    • Last-in-first-out sort.
  • r
    • Reverse sense of sort.
  • s
    • Toggle size display. (not supported yet)
  • h
    • Display a popup help window. (not supported yet)
  • i
    • Display information about the current root node to standard out. The first line shows the path within the tree, the total size from this node on down, and the percentage that total represents of all the data given to xdu. Subsequent lines show the size and name information for all children of this node in the order they are currently sorted in. This allows tiny directories to be seen that otherwise could not be labeled on the display, and also allows for cutting and pasting of the information. (not supported yet)
  • /
    • Goto the root.
  • q, Escape
    • Exit the program.

Development

Development requirements:

Set up a development environment:

git clone https://github.com/vlasovskikh/pyxdu.git
cd pyxdu
poetry install
poetry run pyxdu --help
du | poetry run pyxdu

Authors

Credits

The original tool xdu was released by Phil Dykstra on 1991-09-04. The most recent version xdu 3.0 was released on 1994-06-05.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyxdu-1.0.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

pyxdu-1.0.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file pyxdu-1.0.0.tar.gz.

File metadata

  • Download URL: pyxdu-1.0.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pyxdu-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c8748815641b0e8dcbd18e1ab6086744b6e4ec3c18d78f6a846402d6efb532a4
MD5 d8c3695be13b1c2b2f1a253770e95d6c
BLAKE2b-256 48f0b9de9394357a863a7dfc7d9866be630521d049944ef155dcb1edae5d3a4b

See more details on using hashes here.

File details

Details for the file pyxdu-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: pyxdu-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

File hashes

Hashes for pyxdu-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 592322938f9b7dcf46ddf9048de5a084da0cc60cd7e6b27689108d06b113e5b3
MD5 59aab60ea76410c863a8e3a273d47671
BLAKE2b-256 644c37db2a82541a1951b5c6b742d110d670ece2978572e1afb502ae11991532

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page