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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
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

ToolFamiliar starting pointDebian engine
RDPShiftAn mstsc-style “enter a computer and connect” workflowFreeRDP
SSHShiftWindows key → PuTTY → Enter → host → Enter, made native to KDEOpenSSH + Konsole
MapShiftA familiar “map network drive” path into KDE applicationsKDE KIO SMB + KIO-FUSE
ServiceShiftA services.msc-style overview with familiar service controlssystemd + PolicyKit
TaskShiftA Task Scheduler-style overview with safe schedule editingsystemd 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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages