External Drive Support

Summary

Mentor(s): Prof. Bill Griffin-Dubson
Dr. Mike Murphy
Project Type: Software development
Technologies: Python, Qt (PySide6, Qt D-Bus), D-Bus, Git
Undergraduate Credit: CSCI 399, CSCI 490
Graduate Credit: IST 659
Locality: Main campus and/or remote

Purpose

On a modern desktop environment, a user expects to be able to plug in a USB flash drive or similar removable device and have it appear in the file browser. At the moment, TealFiler can browse and manage files on removable devices, but it cannot mount or unmount them. In Linux terminology, attaching a file system to the running system is called mounting. Ejecting, or detaching, a file system is unmounting.

Fortunately, TealFiler will not have to handle mounting and unmounting directly. Instead, the udisks2 service can handle such details. It is simply necessary to communicate with udisks2 over the Linux system message bus (which is called D-Bus). The Qt toolkit provides already provides a Python interface to D-Bus.

Scope of Work

Add support for mounting and unmounting removable drives to TealFiler. Use Qt D-Bus from Python to communicate with udisks2 to perform the required system operations. Thoroughly test the code to ensure that it works properly and doesn't result in data loss due to bugs.