Skip to content

Repository files navigation

MapShift

Shift from “Map network drive” to Debian without losing the familiar first step.

MapShift is a profile-free KDE launcher for SMB shares, built for Windows administrators moving their daily work to Debian. Enter a familiar network path, let KDE authenticate, and receive a normal local path that desktop applications can use.

Current release: 0.4.1

MapShift uses Debian's KIO SMB worker and KIO-FUSE packages. It does not bundle an SMB implementation, collect passwords, or create its own connection-profile database.

The Shift suite

Tool Familiar starting point Debian engine
RDPShift An mstsc-style “enter a computer and connect” workflow FreeRDP
SSHShift Windows key → PuTTY → Enter → host → Enter, made native to KDE OpenSSH + Konsole
MapShift A familiar “map network drive” path into KDE applications KDE KIO SMB + KIO-FUSE
ServiceShift A services.msc-style overview with familiar service controls systemd + PolicyKit
TaskShift A Task Scheduler-style overview with safe schedule editing systemd timers + PolicyKit

Supported input

  • \\server\share
  • smb://server/share
  • server/share
  • Optional subfolders and SMB ports
  • Optional username, DOMAIN\username, or username@domain

Passwords are requested by KDE's normal authentication dialog. MapShift never receives them. The mapped local path can be opened in Dolphin or copied for use in other applications. Dolphin opens only when the user presses the explicit button in the result window; mapping never launches it automatically. MapShift then raises the Dolphin window containing that mapped location.

When the optional private /maps directory is configured, MapShift creates a keyboard-friendly path based on the share name, such as /maps/team. If that name is already used by a different mapping, MapShift selects team-2, team-3, and so on. The /maps shortcut points to a private session alias; it does not contain the server name.

Privacy behavior

  • No MapShift profiles, recent-share list, saved username, or saved password.
  • The share URL is sent over the KDE session bus rather than placed in process arguments.
  • Dolphin is opened through its D-Bus interface rather than with a destination in command-line arguments.
  • A mapping remains available through KIO-FUSE for the current KDE session.
  • MapShift displays and opens /maps/share when /maps is securely configured for the current user; otherwise it falls back to the private runtime alias.
  • /maps/share points to a session alias, which in turn points to KIO-FUSE's live path containing the server name. Same-user processes can follow that chain, and applications may retain resolved paths in recent-document data.
  • KDE controls its own authentication cache and optional KWallet storage.

See SECURITY.md for the complete boundary.

Installation on Debian 13

git clone https://github.com/MadsIT-com/map-shift.git
cd map-shift
sudo apt install kio-fuse kio-extras python3-dbus python3-pyqt6 dolphin
./install.sh

To enable the optional short /maps/share locations, explicitly create the private directory once for your desktop user:

sudo install -d -m 0700 -o "$USER" -g "$(id -gn)" /maps

MapShift and install.sh never run this privileged command for you. Without the optional directory, mappings continue to work under $XDG_RUNTIME_DIR/mapshift.

MapShift then appears in Plasma's application menu. To remove the launcher:

./uninstall.sh

Uninstalling does not terminate KIO-FUSE, disrupt mappings already used by other KDE applications, or remove the optional /maps directory.

Testing

python3 -m unittest discover -s tests -v
python3 -m py_compile map-shift
shellcheck install.sh uninstall.sh

License

MIT. See LICENSE.

About

A profile-free KDE mapper for SMB shares, built on Debian's native KIO stack for Windows admins moving to Debian.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages