├── .gitignore
├── Setup Version
├── Canary
│ └── shell-canary.v1.9.17.zip
├── Experimental
│ ├── shell.v1.9.18.dll
│ └── shell.v1.9.20.dll
└── Stable
│ └── setup.v1.9.15.exe
├── dev.develop
├── app.sandbox.md
├── app.sandbox.nss
└── app.sandbox.png
├── dev.helpers
├── nss.icons.segoe.nss
├── nss.icons.win.md
├── nss.icons.win.nss
├── nss.icons.win.png
├── nss.meta.1.png
├── nss.meta.2.png
├── nss.meta.md
├── nss.meta.nss
├── nss.paths.1.png
├── nss.paths.2.png
├── nss.paths.3.png
├── nss.paths.md
└── nss.paths.nss
├── docs
├── VSCode-item.png
├── VSCode-menu.png
├── index.html
├── meta.data.xls
└── meta.list.md
├── ex1.system
├── all.autorename.md
├── all.autorename.nss
├── all.autorename.png
├── all.clipboard.save.md
├── all.clipboard.save.nss
├── all.clipboard.save.png
├── all.keyboard.shortcuts.1.png
├── all.keyboard.shortcuts.2.png
├── all.keyboard.shortcuts.3.png
├── all.keyboard.shortcuts.4.png
├── all.keyboard.shortcuts.5.png
├── all.keyboard.shortcuts.md
├── all.keyboard.shortcuts.nss
├── all.openwith.md
├── all.openwith.minimal.ml.nss
├── all.openwith.minimal.ml.png
├── all.openwith.simple.nss
├── all.openwith.simple.png
├── all.sendto.md
├── all.sendto.nss
├── all.sendto.png
├── app.mozilla.nss
└── ext.msi.nss
├── ex2.user.cloud.share
├── cloud.aio.nss
├── cloud.aio.png
├── cloud.dropbox.basic.ml.nss
├── cloud.dropbox.basic.png
├── cloud.dropbox.enhanced.nss
├── cloud.dropbox.enhanced.png
├── cloud.dropbox.md
├── cloud.dropbox.remove.nss
├── cloud.google.md
├── cloud.google.nss
├── cloud.odrive.md
├── cloud.odrive.nss
├── cloud.onedrive.md
├── cloud.onedrive.nss
└── cloud.onedrive.png
├── ex3.archiver
├── app.NanaZup.nss
├── app.SevenZip.1.png
├── app.SevenZip.2.png
├── app.SevenZip.3.png
├── app.SevenZip.4.png
├── app.SevenZip.5.png
├── app.SevenZip.6.png
├── app.SevenZip.md
├── app.SevenZip.nss
├── app.UniExtract.md
├── app.UniExtract.nss
├── app.UniExtract.png
├── app.WinRAR.1.png
├── app.WinRAR.2.png
├── app.WinRAR.3.png
├── app.WinRAR.md
├── app.WinRAR.nss
├── app.WinRAR.portable.nss
├── sys.compress.extract.1.png
├── sys.compress.extract.2.png
├── sys.compress.extract.md
├── sys.compress.extract.nss
├── sys.compress.ps.1.png
├── sys.compress.ps.2.png
├── sys.compress.ps.md
└── sys.compress.ps.nss
├── ex3.multifunction
├── all.copy.hash.cmd.1.png
├── all.copy.hash.cmd.2.png
├── all.copy.hash.cmd.md
├── all.copy.hash.cmd.nss
├── all.copy.hash.cmd.png
├── all.copy.hash.ps.1.png
├── all.copy.hash.ps.2.png
├── all.copy.hash.ps.md
├── all.copy.hash.ps.nss
├── all.copy.hash.ps.png
├── all.copy.list.cp.1.png
├── all.copy.list.cp.md
├── all.copy.list.cp.nss
├── all.copy.list.cp.png
├── all.copy.list.ns.1.png
├── all.copy.list.ns.md
├── all.copy.list.ns.nss
├── all.copy.list.ns.png
├── all.copy.path.all.1.png
├── all.copy.path.all.2.png
├── all.copy.path.all.3.png
├── all.copy.path.all.4.png
├── all.copy.path.all.md
├── all.copy.path.all.nss
├── all.copy.path.env.1.png
├── all.copy.path.env.2.png
├── all.copy.path.env.md
├── all.copy.path.env.nss
├── all.copy.path.lnk.1.png
├── all.copy.path.lnk.2.png
├── all.copy.path.lnk.md
├── all.copy.path.lnk.nss
├── all.copy.path.lnk.png
├── all.copy.path.ps.1.png
├── all.copy.path.ps.2.png
├── all.copy.path.ps.md
├── all.copy.path.ps.nss
├── all.copy.path.url.1.png
├── all.copy.path.url.2.png
├── all.copy.path.url.md
├── all.copy.path.url.nss
├── all.drive.file.1.png
├── all.drive.file.2.png
├── all.drive.file.md
├── all.drive.file.nss
├── all.drive.folder.1.png
├── all.drive.folder.2.png
├── all.drive.folder.md
├── all.drive.folder.nss
├── all.drive.manage.1.png
├── all.drive.manage.2.png
├── all.drive.manage.md
├── all.drive.manage.nss
├── all.drive.swap.1.png
├── all.drive.swap.2.png
├── all.drive.swap.md
├── all.drive.swap.nss
├── all.security.encrypt.1.png
├── all.security.encrypt.2.png
├── all.security.encrypt.md
├── all.security.encrypt.nss
├── all.security.env.1.png
├── all.security.env.2.png
├── all.security.env.md
├── all.security.env.nss
├── all.security.firewall.1.png
├── all.security.firewall.md
├── all.security.firewall.nss
├── commands.item.options.nss
├── commands.links.0.png
├── commands.links.cmd.nss
├── commands.links.md
├── commands.links.png
├── commands.links.ps.nss
├── commands.renamer.1.png
├── commands.renamer.2.png
├── commands.renamer.md
├── commands.renamer.nss
└── commands.shortcut.nss
├── ex4.terminal
├── all.terminal.md
├── all.terminal.nss
└── all.terminal.png
├── ex5.goto
├── goto.address.md
├── goto.address.nss
├── goto.address.png
├── goto.aio.nss
├── goto.aio.png
├── goto.reg.md
├── goto.reg.nss
├── goto.reg.png
├── goto.run.md
├── goto.run.nss
├── goto.run.png
├── goto.temp.md
├── goto.temp.nss
├── goto.temp.png
├── goto.v2.md
├── goto.v2.nss
└── goto.v2.png
├── ext.desktop
├── sys.spotlight.1.png
├── sys.spotlight.2.png
├── sys.spotlight.3.png
├── sys.spotlight.md
└── sys.spotlight.nss
├── ext.managers
├── all.power.1.png
├── all.power.2.png
├── all.power.md
├── all.power.nss
├── nss.winver.md
├── nss.winver.nss
└── nss.winver.png
├── ext.nilesoft
├── nss.about.md
├── nss.about.nss
├── nss.about.png
└── theme-manager.nss
├── ext.others
├── bar.address.1.png
├── bar.address.md
├── bar.address.nss
├── bar.scroll.1.png
├── bar.scroll.2.png
├── bar.scroll.md
├── bar.scroll.nss
├── bar.title.1.png
├── bar.title.md
├── bar.title.nss
├── edit.1.png
├── edit.2.png
├── edit.md
├── edit.nss
├── recycle.bin.1.png
├── recycle.bin.2.png
├── recycle.bin.md
└── recycle.bin.nss
├── readme.md
├── shell.basic.1.nss
└── shell.basic.2.nss
/.gitignore:
--------------------------------------------------------------------------------
1 | *tmp*
--------------------------------------------------------------------------------
/Setup Version/Canary/shell-canary.v1.9.17.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/Setup Version/Canary/shell-canary.v1.9.17.zip
--------------------------------------------------------------------------------
/Setup Version/Experimental/shell.v1.9.18.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/Setup Version/Experimental/shell.v1.9.18.dll
--------------------------------------------------------------------------------
/Setup Version/Experimental/shell.v1.9.20.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/Setup Version/Experimental/shell.v1.9.20.dll
--------------------------------------------------------------------------------
/Setup Version/Stable/setup.v1.9.15.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/Setup Version/Stable/setup.v1.9.15.exe
--------------------------------------------------------------------------------
/dev.develop/app.sandbox.md:
--------------------------------------------------------------------------------
1 | # Windows Sandbox
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`app.sandbox.nss`](/dev.develop/app.sandbox.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Advanced Windows Sandbox integration for Nilesoft Shell, enabling secure file/folder testing and URL handling.
13 |
14 | ## Key Features
15 | - Folder synchronization
16 | - URL handling with Edge
17 | - Executable file testing
18 | - PowerShell script execution
19 | - Read/write access control
20 |
21 | ## Menu Structure
22 | - Sandbox with NS Shell options
23 | - Desktop synchronization
24 | - Folder sharing options
25 | - URL handling
26 | - File execution options
27 | - Script execution settings
28 |
29 | ## Usage Notes
30 | - SHIFT key enables write access
31 | - Disables when sandbox is running
32 | - Auto-cleans temporary files
33 | - Single selection mode
34 |
35 | ## Technical Details
36 | - Windows Sandbox does not support these characters in the path: é è à â ê û î ä ë ü ï ö ù ò ~ ! @ # $ % ^ & + = } { ] [ | < > ;
37 | - Disables GPU acceleration, ensuring that the sandbox does not utilize the host system's GPU resources. Instead, all graphical rendering is handled via software.
38 |
39 | ## Dependencies
40 | - Windows Operating System (build 1903+)
41 | - Nilesoft Shell framework
42 | - Windows Sandbox
43 | - Microsoft Edge
44 | - PowerShell
--------------------------------------------------------------------------------
/dev.develop/app.sandbox.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.develop/app.sandbox.png
--------------------------------------------------------------------------------
/dev.helpers/nss.icons.win.md:
--------------------------------------------------------------------------------
1 | # Nilesoft Shell Windows Icon Path Extractor
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`nss.icons.win.nss`](/dev.helpers/nss.icons.win.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | A specialized utility for extracting icon paths from Windows system DLLs and executables. This tool simplifies the process of accessing and copying Windows' built-in icon library paths through an organized context menu system.
13 |
14 | ## Key Features
15 | - Extract icon paths from system DLLs
16 | - Copy formatted icon references to clipboard
17 | - Access Windows executable icon paths
18 |
19 | ## Menu Structure
20 |
21 | 1. **Core System Icons**
22 | - shell32.dll (327 icons)
23 | - imageres.dll (359 icons)
24 |
25 | 2. **Hardware and Devices**
26 | - Hardware Devices (ddores.dll)
27 | - Audio Devices (mmres.dll)
28 | - Sensors (sensorscpl.dll)
29 | - Setup Wizard (setupapi.dll)
30 | - Multimedia (wmploc.dll)
31 | - Portable Devices (wpdshext.dll)
32 | - Disk Management (dmdskres.dll)
33 | - Imaging Hardware (wiashext.dll)
34 |
35 | 3. **Network Related**
36 | - Network (netcenter.dll)
37 | - Network Hardware (netshell.dll)
38 | - Network Settings (pnidui.dll)
39 | - Network Services (dsuiext.dll)
40 | - Internet Explorer (ieframe.dll)
41 | - Internet Shortcuts (url.dll)
42 | - Remote Desktop (mstscax.dll)
43 |
44 | 4. **System Utilities**
45 | - Accessibility Features
46 | - Actions
47 | - Action Center
48 | - Access Control
49 | - Auto Play
50 | - Common Controls
51 | - Installation
52 |
53 | 5. **Legacy Icons**
54 | - Windows 95/98 (pifmgr.dll)
55 | - Old Programming Language (moricons.dll)
56 | - Old Computer Management (mmcndmgr.dll)
57 | - Old Windows Hardware (compstui.dll)
58 |
59 | ## Usage Notes
60 | - Icons are accessed by their DLL location and index
61 | - Copies icon path in Nilesoft Shell's icon.box format
62 | - Shows number of available icons in each library
63 |
64 | ## Dependencies
65 | Required Components:
66 | - Windows Property System
67 | - Nilesoft Shell framework
68 | - Original system DLLs and executables
69 |
70 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/dev.helpers/nss.icons.win.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.icons.win.png
--------------------------------------------------------------------------------
/dev.helpers/nss.meta.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.meta.1.png
--------------------------------------------------------------------------------
/dev.helpers/nss.meta.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.meta.2.png
--------------------------------------------------------------------------------
/dev.helpers/nss.meta.md:
--------------------------------------------------------------------------------
1 | # Nilesoft Shell Windows Properties Meta Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`nss.meta.nss`](/dev.helpers/nss.meta.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A menu system for viewing and copying Windows file property metadata. The menu provides access to various Windows system property attributes organized into logical categories such as Core, Document, Image, Photo, Media, Audio, Music, Video...
14 |
15 | ## Key Features
16 | - Mouse-click command integration (Left Click, Right Click, with Shift modifiers)
17 | - Dynamic value retrieval from selected items
18 | - Tooltip support with command information
19 | - Extensive property list
20 |
21 | ## Usage Notes
22 | - Supports multiple selection mode
23 | - Command execution varies based on mouse button and shift key state
24 | - Tooltips provide additional information about properties
25 | - Properties are grouped logically for easier navigation
26 |
27 | ## Technical Details
28 | - Command Structure:
29 | - Left Click: `@this.title`
30 | - Left Click + Shift: io.meta(sel, '@this.title')
31 | - Right Click: `'@io.meta(sel, this.title)'`
32 | - Right Click + Shift: `io.meta(sel, '@this.title')=='@io.meta(sel, this.title)'`
33 |
34 | ## Dependencies
35 | Required Components:
36 | - Windows Property System
37 | - Nilesoft Shell framework
38 |
39 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/dev.helpers/nss.paths.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.paths.1.png
--------------------------------------------------------------------------------
/dev.helpers/nss.paths.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.paths.2.png
--------------------------------------------------------------------------------
/dev.helpers/nss.paths.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/dev.helpers/nss.paths.3.png
--------------------------------------------------------------------------------
/dev.helpers/nss.paths.md:
--------------------------------------------------------------------------------
1 | # Nilesoft Shell Path Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`nss.paths.nss`](/dev.helpers/nss.paths.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 | 
12 |
13 | ## Overview
14 | Extension for converting Windows paths to Nilesoft Shell variable paths, offering path conversion for app, user, and system directories.
15 |
16 | ## Key Features
17 | - Automatic path variable detection
18 | - App directory path conversion
19 | - User directory path conversion
20 | - System directory path conversion
21 | - Library path support
22 | - Smart menu visibility
23 |
24 | ## Menu Structure
25 | - App paths (app.directory, app.dir, app.cfg, app.dll)
26 | - User paths (user.home, user.appdata, user.desktop, etc.)
27 | - Library paths (user.libraries, user.documentslibrary)
28 | - System paths (sys.bin, sys.root, sys.prog, etc.)
29 |
30 | ## Usage Notes
31 | - Single selection mode
32 | - Menu is enable only for supported paths
33 | - Handles special folder GUIDs
34 |
35 | ## Dependencies
36 | Required Components:
37 | - Windows Operating System
38 | - Nilesoft Shell framework
39 |
40 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/docs/VSCode-item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/docs/VSCode-item.png
--------------------------------------------------------------------------------
/docs/VSCode-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/docs/VSCode-menu.png
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Hello World
7 |
8 |
9 | Hello, World!
10 |
11 |
--------------------------------------------------------------------------------
/docs/meta.data.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/docs/meta.data.xls
--------------------------------------------------------------------------------
/ex1.system/all.autorename.md:
--------------------------------------------------------------------------------
1 | # Auto Rename Long Names
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.autorename.nss`](/ex1.system/all.autorename.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 |
13 | This Nilesoft Shell script adds an enhanced "Rename" context menu option that automatically shortens file or directory names when they exceed Windows' maximum path length limitations.
14 |
15 | ## Key Features
16 | - Automatically shortens file names that exceed 259 characters
17 | - Automatically shortens directory names that exceed 248 characters
18 | - Shows tooltip with the number of characters that will be removed
19 | - Appears in the same position as the standard Rename command
20 |
21 | ## Menu Structure
22 | 1. **Rename (auto)**
23 | - Appears in place of the standard Rename command
24 | - Only visible when the selected file/directory exceeds the maximum length
25 | - Shows a distinctive green-yellow rename icon
26 | - Provides tooltip showing how many characters will be removed
27 |
28 | ## Usage Notes
29 | - The menu item only appears when a file or directory name exceeds Windows' maximum path length
30 | - For files: Maximum path length is 259 characters
31 | - For directories: Maximum path length is 248 characters
32 |
33 | ## Dependencies
34 | Required Components:
35 | - Windows Operating System
36 | - Nilesoft Shell framework
37 |
38 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
39 |
--------------------------------------------------------------------------------
/ex1.system/all.autorename.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // This code creates two menu items for renaming files and directories when their names exceed the maximum allowed length on Windows (259 characters for files and 248 characters for directories). When clicked, these menu items will automatically shorten the name to fit within the allowed length.
5 |
6 | //> https://learn.microsoft.com/en-gb/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
7 | $maxFileLen = 259
8 | item(title=title.rename keys='auto' type='file' where=sel.len>=maxFileLen
9 | image=icon.rename(auto, color.greenyellow) pos=indexof(quote(str.replace(title.rename, '&', '')))
10 | tip='shorten the name by @(sel.len-(maxFileLen-1)) characters' vis=if(this.level!=1, 'disabled')
11 | cmd=io.rename(sel.path, path.combine(sel.parent, str.left(sel.file.title, maxFileLen-1-sel.parent.len-sel.file.ext.len) + sel.file.ext)))
12 | $maxDirLen = 248
13 | item(title=title.rename keys='auto' type='dir' where=sel.len>=maxDirLen
14 | image=icon.rename(auto, color.greenyellow) pos=indexof(quote(str.replace(title.rename, '&', '')))
15 | tip='shorten the name by @(sel.len-(maxDirLen-1)) characters' vis=if(this.level!=1, 'disabled')
16 | cmd=io.rename(sel.path, path.combine(sel.parent, str.left(sel.path.name, maxDirLen-1-sel.parent.len))))
--------------------------------------------------------------------------------
/ex1.system/all.autorename.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.autorename.png
--------------------------------------------------------------------------------
/ex1.system/all.clipboard.save.md:
--------------------------------------------------------------------------------
1 | # Clipboard Save Image
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.clipboard.save.nss`](/ex1.system/all.clipboard.save.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 |
13 | This Nilesoft Shell script adds a "Save Image" context menu option that allows users to quickly save clipboard images as PNG files.
14 |
15 | ## Key Features
16 | - One-click saving of clipboard images to PNG files
17 | - Automatic filename generation using date and time
18 | - Strategic menu positioning near the Paste command
19 | - Only appears when an image is actually in the clipboard
20 | - Works on directories, drives, and desktop
21 |
22 | ## Menu Structure
23 | 1. **Save Image**
24 | - Single menu item that appears in the context menu
25 | - Positioned at the same level as the Paste command
26 | - Includes tooltip explaining the functionality
27 | - Shows a custom save icon
28 |
29 | ## Usage Notes
30 | - The menu item only appears when an image is present in the clipboard
31 | - Files are automatically named with date and time stamps (format: ymd-HMS.png)
32 | - The script uses PowerShell to access clipboard data and save the image
33 | - A system beep confirms successful saving
34 | - The menu option only appears when right-clicking on directories, drives, or the desktop
35 |
36 | ## Dependencies
37 | Required Components:
38 | - Windows Operating System
39 | - Nilesoft Shell framework
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
42 |
--------------------------------------------------------------------------------
/ex1.system/all.clipboard.save.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | $svg_save = ''
7 | item(title='Save Image' keys='.png' type='back.dir|back.drive|desktop' image=svg_save pos=indexof(str.replace(title.paste, '&', ''), 1) tip='Save the image to a file from the clipboard.'
8 | where=clipboard.is_bitmap commands {
9 | cmd-ps=`$filePath = '@path.combine(sel, sys.datetime("ymd-HMS") + '.png')'; Add-Type -AssemblyName System.Windows.Forms; Add-Type -AssemblyName System.Drawing; try { $image = [System.Windows.Forms.Clipboard]::GetImage(); $image.Save($filePath, [System.Drawing.Imaging.ImageFormat]::Png) } catch { Write-Host "Failed to save image to file: $_" }` window='hidden' wait=1,
10 | cmd=msg.beep, })
--------------------------------------------------------------------------------
/ex1.system/all.clipboard.save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.clipboard.save.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.keyboard.shortcuts.1.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.keyboard.shortcuts.2.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.keyboard.shortcuts.3.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.keyboard.shortcuts.4.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.keyboard.shortcuts.5.png
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.md:
--------------------------------------------------------------------------------
1 | # Windows Keyboard Shortcuts Menu Enhancement
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.keyboard.shortcuts.nss`](/ex1.system/all.keyboard.shortcuts.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 | 
12 | 
13 | 
14 |
15 | ## Overview
16 | A Nilesoft Shell extension that enhances the Windows context menu by adding keyboard shortcut information to standard menu items and introducing additional commands with keyboard shortcuts for improved productivity.
17 |
18 | ## Key Features
19 | - Displays keyboard shortcuts for common Windows operations
20 | - Adds tooltips with additional information for certain actions
21 | - Introduces new commands with keyboard shortcuts in the View menu
22 | - Modifies standard menu items with enhanced shortcut information
23 | - Customizes contextual behavior based on selection and window type
24 |
25 | ## Menu Structure
26 | - Common Operations
27 | - Open, Cut, Copy, Paste, Delete with keyboard shortcuts
28 | - Rename, Undo, Redo, Select All with shortcuts
29 | - Copy as Path, Refresh, Properties with shortcuts
30 | - View Menu Enhancements
31 | - Icon size shortcuts (Extra Large to Content)
32 | - Column Arrange (Ctrl+Shift+C)
33 | - Expand Navigation Pane (Ctrl+Shift+E)
34 | - Navigation shortcuts (Up, Back, Forward)
35 | - Desktop icon settings command
36 |
37 | ## Usage Notes
38 | - Displays keyboard shortcuts alongside menu items for quick reference
39 | - Window-specific commands appear only in appropriate contexts
40 | - Custom tooltips provide additional information
41 | - Introduces consistent keyboard shortcuts across Windows Explorer
42 |
43 | ## Dependencies
44 | Required Components:
45 | - Windows Operating System
46 | - System resources (shell32.dll)
47 | - String resources for localization support
48 | - Nilesoft Shell framework
49 |
50 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
51 |
--------------------------------------------------------------------------------
/ex1.system/all.keyboard.shortcuts.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // remove keyboard shortcut info of the only command that has one
5 | // modify(find='Undo*|Redo*' keys='')
6 | // modify(where=str.start(this.title, title.Undo) or str.start(this.title, title.Redo) keys='')
7 |
8 | //> https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec
9 | //> https://www.elevenforum.com/t/keyboard-shortcuts-in-windows-11.2253/
10 | modify(where=this.title==title.open keys='Enter')
11 | modify(where=this.title==title.cut type='*' keys='Ctrl+X')
12 | modify(where=this.title==title.copy type='*' keys='Ctrl+C')
13 | modify(where=this.title==title.paste type='*' keys='Ctrl+V') // tip='Open the clipboard history (Win+V)'
14 | modify(where=this.title==title.delete type='*' keys='Ctrl+D' tip=["\xE1A7 Press SHIFT key to permanently delete selected file"+if(sel.count>1, 's'), tip.danger, 1.0])
15 | modify(where=this.title==title.rename keys='F2')
16 | modify(where=str.start(this.title, title.undo) type='*' keys='Ctrl+Z')
17 | modify(where=str.start(this.title, title.redo) type='*' keys='Ctrl+Y')
18 | modify(where=this.title==title.select_all type='*' keys='Ctrl+A')
19 | modify(where=this.title==title.copy_as_path keys='Ctrl+Shift+C')
20 | modify(where=this.title==title.refresh keys='Ctrl+R')
21 | modify(where=this.title==title.properties & sel.count>0 keys='Alt+Enter')
22 |
23 | //> https://www.elevenforum.com/t/change-size-of-desktop-icons-in-windows-11.4820/
24 | modify(where=this.title==title.extra_large_icons in=str.replace(title.view, '&', '') keys='Ctrl+Shift+1')
25 | modify(where=this.title==title.large_icons in=str.replace(title.view, '&', '') keys='Ctrl+Shift+2')
26 | modify(where=this.title==title.medium_icons in=str.replace(title.view, '&', '') keys='Ctrl+Shift+3')
27 | modify(where=this.title==title.small_icons in=str.replace(title.view, '&', '') keys='Ctrl+Shift+4')
28 | modify(where=this.title==title.list in=str.replace(title.view, '&', '') keys='Ctrl+Shift+5')
29 | modify(where=this.title==title.details in=str.replace(title.view, '&', '') keys='Ctrl+Shift+6')
30 | modify(where=this.title==title.tiles in=str.replace(title.view, '&', '') keys='Ctrl+Shift+7')
31 | modify(where=this.title==title.content in=str.replace(title.view, '&', '') keys='Ctrl+Shift+8')
32 |
33 | // Add keyboard shortcut info to "&Folder" in "Ne&w" menu
34 | modify(where=this.title==eval(str.res('shell32.dll', -30317)) in=str.replace(title.new, '&', '') keys='Ctrl+Shift+N')
35 |
36 | // Add new commands for "Select &all"
37 | item(title='Select &all' keys='Ctrl+A' image=icon.select_all cmd=command.select_all)
38 |
39 | // Add keyboard shortcut info to "Size &All Columns to Fit"
40 | modify(type='*' keys='Ctrl+"Num Pad +"'
41 | where=(this.title==eval(str.res('shell32.dll', -37201)) or this.title==eval(str.res('shell32.dll', -37466))) and (wnd.parent.name=="SHELLDLL_DefView"))
42 |
43 | // Add new commands in "View" menu
44 | item(title='Column Arrange' keys='Ctrl+"Num Pad +"'
45 | where=window.name=='CabinetWClass' menu=title.view image=icon.details sep='top'
46 | commands{cmd=keys.send(key.ctrl, key.shift, 54) wait=1, cmd=keys.send(key.ctrl, 107)})
47 | item(title='Expand Navigation Pane' keys='Ctrl+Shift+E'
48 | where=window.name=='CabinetWClass' menu=title.view image=icon.expand sep='bottom'
49 | tip='Expands all folders from the tree in the navigation pane.' cmd=keys.send(key.ctrl, key.shift, 69))
50 | item(title='Up' keys='Alt+Up'
51 | where=window.name=='CabinetWClass' menu=title.view image=\uE214 cmd=keys.send(key.alt, key.up))
52 | item(title='Back' keys='Alt+Left'
53 | where=window.name=='CabinetWClass' menu=title.view image=\uE216 cmd=keys.send(key.alt, key.left))
54 | item(title='Forward' keys='Alt+Right'
55 | where=window.name=='CabinetWClass' menu=title.view image=\uE215 cmd=keys.send(key.alt, key.right))
56 |
57 | item(title='Desktop icon settings' where=wnd.is_desktop menu=title.view pos=indexof(quote(str.replace(title.show_desktop_icons, '&', ''))) image=image.res('@sys.bin\desk.cpl', 0)
58 | cmd='rundll32.exe' args='shell32.dll,Control_RunDLL desk.cpl,,0')
59 |
60 | /* this snippet is not working well
61 | item(title='&Hide file names' where=wnd.is_desktop menu=title.view pos=indexof(quote(str.replace(title.show_desktop_icons, '&', ''))) tip='hides file names on desctop icons temporarly'
62 | cmd=wnd.command(28727)) */
--------------------------------------------------------------------------------
/ex1.system/all.openwith.md:
--------------------------------------------------------------------------------
1 | # Open With Menu Replacement
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippets:
6 | [`all.openwith.simple.nss`](/ex1.system/all.openwith.simple.nss)
7 | [`all.openwith.minimal.ml.nss`](/ex1.system/all.openwith.minimal.ml.nss)
8 |
9 | ### Screenshot:
10 | 
11 | 
12 |
13 | ## Overview
14 | These Nilesoft Shell scripts replace the default Windows "Open With" menu with custom versions
15 |
16 | ## Key Features
17 | - Replaces the default Windows "Open With" menu
18 | - Provides direct access to the "Choose another app" dialog
19 | - Enhanced version adds Microsoft Store search for file extensions
20 | - Enhanced version adds web search for file extension information
21 |
22 | ## Menu Structure
23 |
24 | ### Enhanced Version (`all.openwith.simple.nss`):
25 | 1. **Main "Open With" Menu**
26 | - "Choose another app" entry that opens the standard Windows Open With dialog
27 | - Sub-menu with additional options:
28 | - Microsoft Store search for the file extension
29 | - Web search for "What is this extension?"
30 |
31 | ### Minimal Version (`all.openwith.minimal.ml.nss`):
32 | 1. **Single Menu Entry**
33 | - Direct "Open With" menu item that opens the standard Windows dialog
34 |
35 | ## Usage Notes
36 | - Both versions remove the default Windows "Open With" menu items
37 | - Enhanced version works with both files and directories
38 | - Enhanced version provides additional options only for files (not directories)
39 | - Microsoft Store search links directly to the store filtered by the file extension
40 | - Web search uses file-extensions.org for extension information
41 | - The minimal version provides a cleaner context menu with the same core functionality
42 | - Choose which version to implement based on your preference for functionality vs. simplicity
43 |
44 | ## Dependencies
45 | Required Components:
46 | - Windows Operating System
47 | - Nilesoft Shell framework
48 |
49 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex1.system/all.openwith.minimal.ml.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | remove(where=this.title==str.res('shell32.dll', -5376) or this.title==str.res('shell32.dll', -5377))
5 |
6 | item(title=str.res('shell32.dll', -5377) type='file|dir' image=icon.open_with tip=str.res('shell32.dll', -5378)
7 | cmd='rundll32.exe' args='shell32.dll,OpenAs_RunDLL @sel')
--------------------------------------------------------------------------------
/ex1.system/all.openwith.minimal.ml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.openwith.minimal.ml.png
--------------------------------------------------------------------------------
/ex1.system/all.openwith.simple.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | remove(where=this.title==str.res('shell32.dll', -5376) or this.title==str.res('shell32.dll', -5377))
5 |
6 | menu(title=str.res('shell32.dll', -5376) type='file|dir' image=icon.open_with) {
7 | item(title=str.res('shell32.dll', -5377) image=inherit tip=str.res('shell32.dll', -5378)
8 | cmd='rundll32.exe' args='shell32.dll,OpenAs_RunDLL @sel')
9 | separator()
10 | menu(expanded='true' mode='single' type='file') {
11 | item(image=\uE1B9 title=str.res('shell32.dll', -5382)
12 | cmd='ms-windows-store://search/?query=.@sel.file.ext')
13 | item(image=\uE120 title='What is this extension?'
14 | cmd='https://www.file-extensions.org/search/?searchstring='+sel.file.ext) } }
--------------------------------------------------------------------------------
/ex1.system/all.openwith.simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.openwith.simple.png
--------------------------------------------------------------------------------
/ex1.system/all.sendto.md:
--------------------------------------------------------------------------------
1 | # Send To Menu Enhancement
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.sendto.nss`](/ex1.system/all.sendto.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 |
13 | This Nilesoft Shell script enhances the Windows "Send to" context menu by reorganizing its position, adding new useful options, and reordering the existing entries.
14 |
15 | ## Key Features
16 | - Repositions the "Send to" menu to a more convenient location
17 | - Adds a "Send to Executable" option for opening files with any program
18 | - Provides direct access to the "Send To" folder
19 | - Allows creation of new "Send To" shortcuts directly from the context menu
20 | - Reorders existing "Send to" system items for better organization
21 | - Compatible with both files and directories
22 |
23 | ## Menu Structure
24 | 1. **New Top-Level Items**
25 | - "Send to Executable" - Choose any EXE to open the selected file(s)
26 | - "Open 'Send To' folder" - Opens the user's SendTo directory
27 | - "Add Here..." - Creates a shortcut to the selected folder or EXE in the SendTo directory
28 |
29 | 2. **Reordered Default Items**
30 | - Bluetooth device
31 | - Compressed (zipped) folder
32 | - Desktop (create shortcut)
33 | - Documents
34 | - Mail recipient
35 |
36 | ## Usage Notes
37 | - The script moves the "Send to" menu to be positioned after the "Copy" command
38 | - The "Send to Executable" option opens a file browser filtered to show only EXE files
39 | - The "Add Here..." option only appears for directories, drives, and EXE files
40 | - Access the "Send To" folder directly to manage all shortcuts in one place
41 |
42 | ## Dependencies
43 | Required Components:
44 | - Windows Operating System
45 | - Nilesoft Shell framework
46 |
47 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex1.system/all.sendto.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // These code snippet move down the 'Send to' menu.
5 | modify(where=this.title==title.send_to pos=indexof(quote(str.replace(title.copy, '&', '')), 1))
6 |
7 | // These code snippets add new menu items to the 'Send to' menu.
8 | item(menu=title.send_to title='Send to Executable'
9 | image=icon.send_to pos='top' sep='both'
10 | cmd=path.file.box('.exe|*.exe') args=sel.path(true))
11 | item(menu=title.send_to title='Open "Send To" folder'
12 | image=icon.open_folder sep='top'
13 | cmd=user.sendto)
14 | item(menu=title.send_to title='Add Here ...' type='namespace|drive|dir'
15 | image=icon.new_folder
16 | cmd=path.lnk.create(user.sendto+'\'+sel.path.title+'.lnk', sel.path))
17 | item(menu=title.send_to title='Add Here ...' where=sel.file.ext=='.exe'
18 | image=icon.new_folder
19 | cmd=path.lnk.create(user.sendto+'\'+sel.path.title+'.lnk', sel.path))
20 |
21 | // These code snippets reorder the 'Send to' menu.
22 | modify(where=this.title==str.res('sendmail.dll',-4)
23 | in=str.replace(title.send_to,'&','') pos='top' sep='after')
24 | modify(where=this.title==str.res('shell32.dll',-34575)
25 | in=str.replace(title.send_to,'&','') pos='top')
26 | modify(where=this.title==str.res('sendmail.dll',-21)
27 | in=str.replace(title.send_to,'&','') pos='top')
28 | modify(where=this.title==str.res('zipfldr.dll',-10148)
29 | in=str.replace(title.send_to,'&','') pos='top')
30 | modify(where=this.title==str.res('fsquirt.exe',-2343)
31 | in=str.replace(title.send_to,'&','') pos='top')
32 |
33 | /*
34 | // In Windows 11, the "Send to" menu generally copies files to a folder regardless of whether the source and destination are on the same drive. This change means that files are not moved when sending to a folder, which can be different from previous versions of Windows.
35 | $sendto_sc_path='@(user.sendto)\@(this.title).lnk'
36 | modify(where=path.lnk.type(sendto_sc_path)==2 or path.lnk.type(sendto_sc_path)==3 find='*' in=str.replace(title.send_to,'&','')
37 | keys=if(path.root(sel)==path.root(path.lnk(sendto_sc_path)), 'Move', 'Copy' ))
38 | */
39 |
--------------------------------------------------------------------------------
/ex1.system/all.sendto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex1.system/all.sendto.png
--------------------------------------------------------------------------------
/ex1.system/ext.msi.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='MSI Commands' where=sel.file.ext=='.msi' image=\uE0F8 pos=1) {
5 | item(title='Open'
6 | cmd='msiexec' args='/i @sel.path(true)')
7 | separator()
8 | item(title='&Install' keys='SHIFT no restart'
9 | cmd='msiexec' args='/i @sel.path(true) @if(key.shift(), '/norestart')')
10 | item(title='install quietly' keys='SHIFT no restart'
11 | cmd='msiexec' args='/i @sel.path(true) /qn @if(key.shift(), '/norestart')')
12 | item(title='&Uninstall' keys='SHIFT no restart'
13 | cmd='msiexec' args='/x @sel.path(true) @if(key.shift(), '/norestart')')
14 | item(title='Uninstall quietly' keys='SHIFT no restart'
15 | cmd='msiexec' args='/x @sel.path(true) /qn @if(key.shift(), '/norestart')')
16 | item(title='Re&pair'
17 | cmd='msiexec' args='/f @sel.path(true)')
18 | separator()
19 | item(title='Extract'
20 | cmd='msiexec' args='/a @sel.path(true) /qb TARGETDIR="@sel.parent\@sel.file.title"')
21 | separator()
22 | item(title='View MSI Options' tip='Microsoft Standard Installer command-line options'
23 | cmd='msiexec' args='/?')
24 | }
25 |
26 | remove(where=sel.file.ext=='.msi' and this.title=='&Uninstall')
27 | remove(where=sel.file.ext=='.msi' and this.title=='Re&pair')
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.aio.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | $menu_cloud = eval('Cloud and Share')
5 | menu(title=menu_cloud mode='multiple' where=sel.namespaces.count==0 image=\uE09C) { }
6 |
7 | // reverse order of appearance
8 | import 'cloud.odrive.nss'
9 | $menu_od_name = menu_cloud
10 | $menu_od_external_mod = true
11 |
12 | //import 'cloud.dropbox.basic.ml.nss'
13 | import 'cloud.dropbox.enhanced.nss'
14 | $menu_db_name = menu_cloud
15 | $menu_db_external_mod = true
16 |
17 | import 'cloud.google.nss'
18 | $menu_gd_name = menu_cloud
19 | $menu_gd_external_mod = true
20 |
21 | import 'cloud.onedrive.nss'
22 | $menu_od_name = menu_cloud
23 | $menu_od_external_mod = true
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.aio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex2.user.cloud.share/cloud.aio.png
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.dropbox.basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex2.user.cloud.share/cloud.dropbox.basic.png
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.dropbox.enhanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex2.user.cloud.share/cloud.dropbox.enhanced.png
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.dropbox.md:
--------------------------------------------------------------------------------
1 | # Dropbox Integration for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippets:
6 | - [`cloud.dropbox.remove.nss`](/ex2.user.cloud.share/cloud.dropbox.remove.nss) - Removes default Dropbox context menu
7 | - [`cloud.dropbox.basic.nss`](/ex2.user.cloud.share/cloud.dropbox.basic.ml.nss) - Basic Dropbox menu integration
8 | - [`cloud.dropbox.enhanced.nss`](/ex2.user.cloud.share/cloud.dropbox.enhanced.nss) - Enhanced Dropbox menu with custom icons
9 |
10 | ### Screenshot:
11 | 
12 | 
13 |
14 | ## Overview
15 | These Nilesoft Shell snippets enhance Windows context menu integration with Dropbox. The files provide different levels of customization, from completely removing the default Dropbox menu to creating enhanced menus with custom icons and tooltips.
16 |
17 | ## Key Features
18 | - Remove default Dropbox context menu items (remove snippet)
19 | - Create a custom Dropbox menu with localized text (basic snippet)
20 | - Add enhanced visual elements with custom SVG icons (enhanced snippet)
21 | - Contextual menu items based on file location (Dropbox folder vs. local)
22 | - Helpful tooltips explaining each action (enhanced snippet)
23 | - Special handling for Dropbox-specific features like ignoring files (enhanced snippet)
24 |
25 | ## Menu Structure
26 | The snippets modify or create a dedicated Dropbox menu with the following context-aware items:
27 |
28 | - Move to Dropbox
29 | - Copy Dropbox link
30 | - Share
31 | - View in Dropbox/Dropbox.com
32 | - Version history
33 | - Make available offline/online-only
34 | - Send for signature
35 | - Request files
36 | - Manage access
37 | - Ignore/Un-ignore from Dropbox
38 |
39 | ## Usage Notes
40 | - The menu title can be customized by changing the `$menu_db_name` variable
41 | - Three different snippets are available depending on your needs:
42 | - Use `remove` to disable the default Dropbox context menu
43 | - Use `basic` for a basic replacement with native icons
44 | - Use `enhanced` for an enhanced menu with custom SVG icons and tooltips
45 | - The helper menu in the simple snippet displays all available command strings (disabled by default)
46 | - Custom ignore/un-ignore commands create/modify the special `com.dropbox.ignored` file
47 |
48 | ## Dependencies
49 | - Windows Operating System
50 | - Nilesoft Shell framework
51 | - Dropbox desktop client
52 | - Dropbox DLL for localized strings and icons
53 | - Dropbox user account configured on the system
54 |
55 | The snippets automatically retrieve necessary paths from the Windows Registry:
56 | - Dropbox DLL path
57 | - Dropbox folder location
58 |
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.dropbox.remove.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // https://www.tenforums.com/tutorials/158955-how-add-remove-dropbox-context-menu-windows.html
5 | remove(clsid='{ECD97DE5-3C8F-4ACB-AEEE-CCAB78F7711C}' where=this.isuwp)
6 | // "...\Dropbox\Client\PackageAssets\Dropbox.msix\AppxManifest.xml"
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.google.md:
--------------------------------------------------------------------------------
1 | # Google Drive Integration for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`cloud.google.nss`](/ex2.user.cloud.share/cloud.google.nss)
7 |
8 | ### Screenshot:
9 |
10 | ## Overview
11 | This snippet enhances Windows Explorer's context menu by customizing Google Drive integration options. It provides a cleaner and more organized interface for Google Drive functionality directly in your file explorer.
12 |
13 | ## Key Features
14 | - Custom Google Drive menu with configurable name
15 | - Support for Google Workspace file extensions
16 |
17 | ## Menu Structure
18 | The extension modifies the following context menu items:
19 | - "Sync or Backup this Folder"
20 | - "Copy Link to clipboard"
21 | - "Open with Google Drive"
22 | - "Share with Google Drive"
23 | - "Copy diagnostic info to clipboard"
24 | - "Add shortcut to Drive"
25 | - "Add shortcut to Google Drive"
26 | - "Manage Version"
27 | - "Refresh Folder"
28 | - "Offline access"
29 |
30 | ## Usage Notes
31 | - The menu name is customizable via the `$menu_gd_name` variable
32 | - Handles both standard Google Drive extensions and web-compatible formats
33 |
34 | ## Dependencies
35 | - Windows Operating System
36 | - Nilesoft Shell framework
37 | - Google Drive desktop application
38 |
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.google.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // Change the menu name of the "Google Drive" menu if you want
5 | $menu_gd_name = 'Google Drive'
6 | $menu_gd_external_mod = false
7 | menu(title=menu_gd_name mode='multiple' where=!menu_gd_external_mod image=\uE09C) { }
8 |
9 | $ext_ge = '.gcsesheet|.gcseslides|.gdoc|.gdraw|.gdrive|.gform|.gjam|.glink|.gmaillayout|.gmap|.gnote|.gscript|.gsheet|.gsite|.gslides|.gtable|'
10 | $ext_ge_web = '.gdocx|'
11 |
12 | modify(menu=menu_cloud find='Sync or Backup this Folder' type='dir|desktop')
13 | modify(menu=menu_cloud find='Copy Link to clipboard' type='dir|file')
14 | modify(menu=menu_cloud find='Open with Google Drive' type='dir')
15 | modify(menu=menu_cloud find='Open with Google Drive' type='file' where=!str.contains(ext_ge+ext_ge_web, sel.file.ext+'|'))
16 | modify(menu=menu_cloud find='Share with Google Drive')
17 | modify(menu=menu_cloud find='Copy diagnostic info to clipboard' title='Copy Diagnostic Info')
18 | modify(menu=menu_cloud find='Add shortcut to Drive|Add shortcut to Google Drive')
19 | modify(menu=menu_cloud find='Manage Version' type='file')
20 | modify(menu=menu_cloud find='Refresh Folder|OFfline access')
21 |
22 | /* information for further use
23 | Open with Google Docs
24 | Open with Google Sheets
25 | Open with Google Slides
26 | */
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.odrive.md:
--------------------------------------------------------------------------------
1 | # ODrive Integration for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`cloud.odrive.nss`](/ex2.user.cloud.share/cloud.odrive.nss)
7 |
8 | ### Screenshot:
9 |
10 | ## Overview
11 | This snippet customizes the Windows Explorer context menu for ODrive integration.
12 |
13 | ## Key Features
14 | - Customizable ODrive menu name
15 | - Path-aware context menu modifications
16 |
17 | ## Menu Structure
18 | The extension modifies the following context menu items when in ODrive paths:
19 | - "Sync"/"Unsync"
20 | - "Refresh"
21 | - "Share Link"
22 | - "Share Storage"
23 | - "Open Web Preview"
24 |
25 | ## Usage Notes
26 | - The menu name is configurable via the `$menu_odrive_name` variable (default: 'ODrive')
27 | - Menu items only appear when working with files/folders in the ODrive path
28 |
29 | ## Dependencies
30 | - Windows Operating System
31 | - Nilesoft Shell framework
32 | - ODrive desktop application installed at default location
33 |
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.odrive.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // Change the menu name of the "OneDrive" menu if you want
5 | $menu_odrive_name='ODrive'
6 | $menu_odrive_external_mod = false
7 | menu(title=menu_odrive_name mode='multiple' where=!menu_odrive_external_mod image='@sys.prog\odrive\odrive.exe') { }
8 |
9 | $is_odrive_path = str.contains(sel, '@user.home\odrive')
10 |
11 | modify(menu=menu_odrive_name image=inherit find='"Sync"|"Unsync"' where=is_odrive_path)
12 | modify(menu=menu_odrive_name image=inherit where=str.equals(this.title, 'refresh') and is_odrive_path)
13 | modify(menu=menu_odrive_name image=inherit find='Share Link|Share Storage|Open Web Preview' where=is_odrive_path)
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.onedrive.md:
--------------------------------------------------------------------------------
1 | # OneDrive Integration for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`cloud.onedrive.nss`](/ex2.user.cloud.share/cloud.onedrive.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | This Nilesoft Shell snippet enhances the Windows context menu with improved OneDrive integration. It modifies the appearance and functionality of OneDrive-related menu items, providing better visual indicators and more consistent behavior across different OneDrive states.
13 |
14 | ## Key Features
15 | - Custom OneDrive menu with distinctive icons
16 | - Contextual menu items based on file location (OneDrive folder vs. local)
17 | - Support for OneDrive Personal account features
18 | - Dynamic localization using OneDrive's resource DLL
19 |
20 | ## Menu Structure
21 | The snippet creates and modifies a dedicated OneDrive menu with the following context-aware items:
22 | - Share
23 | - Copy Link
24 | - Move to OneDrive
25 | - Always keep on this device
26 | - Free up space
27 | - View online
28 | - Version history
29 | - Manage access
30 | - Storage status
31 | - OneDrive Vault
32 |
33 | ## Usage Notes
34 | - The menu title can be customized by changing the `$menu_od_name` variable
35 | - The script detects whether files are inside OneDrive folders to show relevant options
36 | - OneDrive Vault-specific commands appear only when selecting the Vault folder
37 | - Menu items are displayed in the user's system language via resource strings
38 |
39 | ## Dependencies
40 | - Windows Operating System
41 | - Nilesoft Shell framework
42 | - Microsoft OneDrive client
43 | - OneDrive resource DLL for localized strings
44 | - OneDrive user account configured on the system
45 |
46 | The snippet automatically retrieves necessary paths from the Windows Registry:
47 | - OneDrive installation path
48 | - User folder location
49 | - Vault shortcut path
50 | - Resource DLL location
51 |
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.onedrive.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 | // To-Do: Currently i am using "Microsoft OneDrive Free Plan", need information about "OneDrive Basic/Personal/Family"
4 |
5 | // Change the menu name of the "OneDrive" menu if you want
6 | $menu_od_name = 'OneDrive'
7 | $menu_od_external_mod = false
8 | menu(title=menu_od_name mode='multiple' where=!menu_od_external_mod image=\uE09C) { }
9 |
10 | $path_od_dll = reg.get('HKCU\Software\Microsoft\OneDrive', 'CurrentVersionPath') + '\FileSync.LocalizedResources.dll'
11 | $path_od_exe = reg.get('HKCU\Software\Microsoft\OneDrive', 'OneDriveTrigger')
12 | $path_od_dir = reg.get('HKCU\Software\Microsoft\OneDrive', 'UserFolder')
13 | $path_od_vlt = reg.get('HKCU\Software\Microsoft\OneDrive\Accounts\Personal', 'VaultShortcutPath')
14 |
15 | $svg_od_win = ''
20 | $ico_od_win = icon.res(path_od_exe, 0)
21 |
22 | $is_obp = str.contains(sel, path_od_dir)
23 | $is_obv = str.equals(sel, path_od_vlt)
24 |
25 | modify(menu=menu_od_name image=icon.share where=!is_obp && this.title==
26 | // "&Share"
27 | eval(str.res(path_od_dll, -9622)))
28 | modify(menu=menu_od_name image=svg_od_win where= is_obp && this.title(
29 | // "&Share"
30 | eval(str.res(path_od_dll, -9622)),
31 | // "Copy Link"
32 | eval(str.res(path_od_dll, -9649))
33 | ))
34 |
35 | modify(menu=menu_od_name image=svg_od_win where= this.title==
36 | // "&Move to OneDrive"
37 | eval(str.res(path_od_dll, -9643)))
38 | modify(menu=menu_od_name image=svg_od_win where= is_obp && this.title(
39 | // "&Always keep on this device" - pinned
40 | eval(str.res(path_od_dll, -9637)), eval(str.res(path_od_dll, -9637).trimstart('&')),
41 | // "&Free up space"
42 | eval(str.res(path_od_dll, -9636)), eval(str.res(path_od_dll, -9636).trimstart('&')),
43 | // "&View online"
44 | eval(str.res(path_od_dll, -9618)),
45 | // "&Version history"
46 | eval(str.res(path_od_dll, -9642)),
47 | // "Manage access"
48 | eval(str.res(path_od_dll, -9650)),
49 | // "Manage OneDrive backup"
50 | eval(str.res(path_od_dll, -9645)),
51 | // "Settings"
52 | eval(str.res(path_od_dll, -9638)),
53 | // "Folder color"
54 | eval(str.res(path_od_dll, -53002))
55 | ))
56 | // Storage %d%% full - Upgrade (tested with english language only)
57 | modify(menu=menu_od_name where= str.contains(this.title, eval(str.left(str.res(path_od_dll, -51550), str.find(str.res(path_od_dll, -51550), '%d%')))) and
58 | str.contains(this.title, eval(str.right(str.res(path_od_dll, -51550), str.len(str.res(path_od_dll, -51550)) - str.find(str.res(path_od_dll, -51550), '%d%') - 3))))
59 | // "Lock %1"; "Unlock %1" (tested with english language only)
60 | modify(menu=menu_od_name image=svg_od_win where= is_obv find='@str.replace(eval(str.res(path_od_dll, -9639)),'%1','*')||@str.replace(eval(str.res(path_od_dll, -9640)),'%1','*')')
61 |
62 | /* information for further use
63 | o 9617, "&More OneDrive sharing options" (OneDrive Business)
64 | o 9618, "&View online"
65 | 9619, "View sync &problems"
66 | + 9622, "&Share"
67 | 9623, "Sync anyway"
68 | o 9630, "Share a OneDrive link"
69 | o 9631, "Choose OneDrive folders to sync"
70 |
71 | 9648, "M&ove to OneDrive - Personal"
72 | + 9649, "Copy Link"
73 | + 9650, "Manage access"
74 | 9651, "Stop Sync"
75 |
76 | + 9636, "&Free up space"
77 | + 9637, "&Always keep on this device"
78 | + 9638, "Settings"
79 | + 9639, "Lock %1"
80 | + 9640, "Unlock %1"
81 | 9641, "&Preview with OneDrive"
82 | + 9642, "&Version history"
83 | + 9643, "&Move to OneDrive"
84 | 9644, "OneDrive - Personal"
85 | + 9645, "Manage OneDrive backup"
86 | 9646, "Remove shortcut" (https://support.microsoft.com/en-au/office/onedrive-sync-app-error-unable-to-sync-shortcut-aee9955f-f7de-4be8-bf5e-48375bad9dd3)
87 | 9647, "&Move to %1"
88 |
89 | 53002, "Folder color"
90 |
91 | 10540 Storage %d%% full - Get more
92 | 10541 Storage %d%% full - Manage storage
93 | + 51550 Storage %d%% full - Upgrade
94 | 10542 Storage full - Get more
95 | 10543 Storage full - Manage storage
96 | 51551 Storage full - Upgrade
97 | */
98 |
--------------------------------------------------------------------------------
/ex2.user.cloud.share/cloud.onedrive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex2.user.cloud.share/cloud.onedrive.png
--------------------------------------------------------------------------------
/ex3.archiver/app.NanaZup.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // Hide default menu: NS can not recognize drag&drop paths, so use:
5 | remove(find='NanaZip')
6 | // remove(clsid='{CAE3F1D4-7765-4D98-A060-52CD14D56EAB}' where=this.isuwp)
7 |
8 | // ? HKEY_CLASSES_ROOT\PackagedCom\ClassIndex\{CAE3F1D4-7765-4D98-A060-52CD14D56EAB}
9 | // ? HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PackagedCom\ClassIndex\{CAE3F1D4-7765-4D98-A060-52CD14D56EAB}
10 | // ? HKEY_CLASSES_ROOT\PackagedCom\Package\40174MouriNaruto.NanaZip_3.1.1080.0_x64__gnj4mf6z9tkrc
11 | // ? HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PackagedCom\Package\40174MouriNaruto.NanaZip_3.1.1080.0_x64__gnj4mf6z9tkrc
12 | // ? HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages\40174MouriNaruto.NanaZip_3.1.1080.0_x64__gnj4mf6z9tkrc\NanaZip.Modern\Capabilities\FileAssociations
13 |
14 | // supported formats by 7-zip
15 | $se7zP = '7z|xz|bz2|gz|tar|zip|wim'
16 | $se7zU = 'apfs|ar|arj|cab|chm|cpio|cramfs|dmg|ext|fat|gpt|hfs|ihex|iso|lzh|lzma|mbr|msi|nsis|ntfs|qcow2|rar|rpm|squashfs|udf|uefi|vdi|vhd|vhdx|vmdk|xar|z'
17 |
18 | // path to NanaZip
19 | $cmd_NanaM = path.combine(package('NanaZip'),'NanaZip.Modern.exe')
20 | $cmd_NanaW = path.combine(package('NanaZip'),'NanaZip.Windows.exe')
21 | $cmd_NanaM_alias = 'NanaZip.exe'
22 | $cmd_NanaW_alias = 'NanaZipG.exe'
23 |
24 | item(title='Browse with NanaZip...' mode='single' type='dir|drive|back'
25 | image=cmd_NanaM cmd=cmd_NanaM_alias args=sel(true))
26 | item(title='Open with NanaZip...' mode='single' type='file' find=str.replace('."'+se7zP+'|'+se7zU+'"', '|', '"|."')
27 | image=cmd_NanaM cmd=cmd_NanaM_alias args=sel(true))
28 | item(title='Extract files...' keys='single' mode='single' type='file' find=str.replace('."'+se7zP+'|'+se7zU+'"', '|', '"|."')
29 | image=cmd_NanaW cmd=cmd_NanaW_alias args='x @sel(true) -o@sel.path.title\ -ad')
30 | // or
31 | item(title=title.extract_to keys='single' mode='single' type='file' find=str.replace('."'+se7zP+'|'+se7zU+'"', '|', '"|."')
32 | image=icon.extract_to cmd=cmd_NanaW_alias args='x @sel(true) -o@sel.path.title\ -ad')
33 |
34 |
35 |
36 | // Extra
37 | item(title='NanaZip in Microsoft Store Mini' cmd='ms-windows-store://pdp/?mode=mini&ProductId=9N8G7TSCL18R')
38 | item(title='NanaZip in Microsoft Store' cmd='ms-windows-store://pdp/?ProductId=9N8G7TSCL18R')
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.1.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.2.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.3.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.4.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.5.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.SevenZip.6.png
--------------------------------------------------------------------------------
/ex3.archiver/app.SevenZip.md:
--------------------------------------------------------------------------------
1 | # 7-Zip Context Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`app.SevenZip.nss`](/ex3.archiver/app.SevenZip.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 | 
12 | 
13 | 
14 | 
15 |
16 | ## Overview
17 | Enhanced context menu integration for 7-Zip, providing comprehensive archive management capabilities directly in Windows Explorer.
18 |
19 | ## Key Features
20 | - Archive browsing and management
21 | - Multiple compression formats (7z, ZIP, SFX)
22 | - Password protection with header encryption
23 | - Smart extraction detection
24 | - Checksum generation and verification
25 | - PPMd compression for text files
26 | - Mail-ready archive creation
27 | - Multiple extraction options with cleanup
28 |
29 | ## Menu Structure
30 | 1. Main Menu
31 | - Browse/Open with 7-Zip
32 | - Extract submenu
33 | - Archive submenu
34 | - Test submenu
35 | - 7-Zip Info submenu
36 |
37 | 2. Extraction Options
38 | - Smart extraction
39 | - Extract here
40 | - Extract to named folder
41 | - Extract with cleanup
42 |
43 | 3. Archive Options
44 | - Password protection
45 | - SFX creation
46 | - Multiple format support
47 | - Mail-ready archives
48 |
49 | ## Usage Notes
50 | - SHIFT key toggles additional options
51 | - Smart extraction detects single-directory archives
52 | - Password protection can include filename encryption
53 | - PPMd compression optimized for text files
54 | - Supports archive testing and integrity verification
55 |
56 | ## Technical Details
57 | - Supported Compression Formats:
58 | - Packing/Unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM
59 | - Unpacking Only: APFS, AR, ARJ, CAB, CHM, CPIO, ISO, RAR, etc.
60 | - Checksum Support: SHA256, SHA512, SHA1, MD5, CRC32, CRC64
61 | - Custom SVG icons for menu items
62 | - Registry-based command management
63 | - PowerShell integration for smart extraction
64 |
65 | ## Dependencies
66 | - Windows Operating System
67 | - Nilesoft Shell framework
68 | - 7-Zip installation (7z.exe, 7zG.exe, 7zFM.exe)
69 | - Windows Shell32.dll
70 | - Administrative privileges for some operations
71 | - PowerShell for smart extraction features
--------------------------------------------------------------------------------
/ex3.archiver/app.UniExtract.md:
--------------------------------------------------------------------------------
1 | # UniExtract Context Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`app.UniExtract.nss`](/ex3.archiver/app.UniExtract.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Shell extension providing Universal Extractor integration into Windows context menu for comprehensive archive extraction capabilities.
13 |
14 | ## Key Features
15 | - Multiple extraction modes
16 | - File scanning functionality
17 | - Auto-update system
18 | - Automated installation process
19 | - Support for various archive formats
20 |
21 | ## Menu Structure
22 | 1. Extract Files...
23 | 2. Extract to Subdir...
24 | 3. Extract Here
25 | 4. Scan Files
26 | 5. Check for Updates
27 | 6. Download UniExtract (when not installed)
28 |
29 | ## Usage Notes
30 | - Requires UniExtract installation
31 | - SHIFT key toggles admin/non-admin updater
32 | - Automatic download and setup if not installed
33 | - Compatible with both admin and non-admin modes
34 |
35 | ## Technical Details
36 | - Installation Path: Program Files (x86)\UniExtract
37 | - Download Source: GitHub repository
38 | - PowerShell-based installation script
39 | - Automated directory creation
40 | - Update mechanisms: Admin and Non-Admin versions
41 |
42 | ## Dependencies
43 | - Windows Operating System
44 | - Nilesoft Shell framework
45 | - UniExtract executable
46 | - PowerShell for installation
47 | - System.IO.Compression for setup
48 | - Administrative privileges for certain operations
--------------------------------------------------------------------------------
/ex3.archiver/app.UniExtract.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | $cmd_UniExtract = eval(sys.prog32+'\UniExtract\UniExtract.exe')
5 | menu(title='UniExtract' type='file' image=cmd_UniExtract)
6 | {
7 | $vis_UE = if(!path.exists(cmd_UniExtract), 'disable')
8 | $tip_UE = if(!path.exists(cmd_UniExtract), 'Requires UniExtract to be installed')
9 |
10 | item(vis=vis_UE tip=tip_UE title ='Extract Files...' image cmd=cmd_UniExtract args='@sel.path(true)')
11 | item(vis=vis_UE tip=tip_UE title ='Extract to Subdir...' image cmd=cmd_UniExtract args='@sel.path(true) "/sub"')
12 | item(vis=vis_UE tip=tip_UE title ='Extract Here' image cmd=cmd_UniExtract args='@sel.path(true) "."')
13 | separator()
14 | item(vis=vis_UE tip=tip_UE title ='Scan Files' image cmd=cmd_UniExtract args='@sel.path(true) "/scan"')
15 | item(vis=vis_UE tip=tip_UE title ='Check for Updates' image cmd=path.parent(cmd_UniExtract) + if(key.shift(),'/UniExtractUpdater_NoAdmin.exe','/UniExtractUpdater.exe'))
16 | item(vis=!path.exists(cmd_UniExtract) title ='Download UniExtract' image=icon.res(path.combine(sys.bin, 'shell32.dll'), 122) commands {
17 | // admin cmd-ps=`$DownloadURL = 'https://github.com/Bioruebe/UniExtract2/releases/download/v2.0.0-rc.3/UniExtractRC3.zip'; $TempZipPath = '@sys.temp\UniExtractRC3.zip'; $ExtractPath = '@path.parent(path.parent(cmd_UniExtract))'; if (!(Test-Path -Path $ExtractPath)) { New-Item -ItemType Directory -Path $ExtractPath -Force }; Invoke-WebRequest -Uri $DownloadURL -OutFile $TempZipPath; Add-Type -AssemblyName System.IO.Compression.FileSystem; [System.IO.Compression.ZipFile]::ExtractToDirectory($TempZipPath, $ExtractPath); Remove-Item -Path $TempZipPath -Force` wait=1,
18 | admin cmd-ps=`$DownloadURL = 'https://github.com/Bioruebe/UniExtract2/releases/download/v2.0.0-rc.3/UniExtractRC3.zip'; $TempZipPath = '@sys.temp\UniExtractRC3.zip'; $ExtractPath = '@path.parent(path.parent(cmd_UniExtract))'; if (!(Test-Path -LiteralPath $ExtractPath)) { New-Item -ItemType Directory -Path $ExtractPath -Force }; Invoke-WebRequest -Uri $DownloadURL -OutFile $TempZipPath; Expand-Archive -LiteralPath $TempZipPath -DestinationPath $ExtractPath -Force; Remove-Item -LiteralPath $TempZipPath -Force` wait=1,
19 | cmd=path.parent(cmd_UniExtract) + if(key.shift(),'/UniExtractUpdater_NoAdmin.exe','/UniExtractUpdater.exe') wait=1,
20 | })
21 | }
22 |
23 |
24 | /*
25 | https://github.com/Bioruebe/UniExtract2/blob/master/UniExtract.au3
26 |
27 | ; Define context menu commands
28 | ; On top to make remove via command line parameter possible
29 | ; Shell | Commandline Parameter | Translation | MultiSelectModel
30 | Global $CM_Shells[5][4] = [ _
31 | ["uniextract_files", "", "EXTRACT_FILES", "Single"], _
32 | ["uniextract_here", " .", "EXTRACT_HERE", "Player"], _
33 | ["uniextract_sub", " /sub", "EXTRACT_SUB", "Player"], _
34 | ["uniextract_last", " /last", "EXTRACT_LAST", "Player"], _
35 | ["uniextract_scan", " /scan", "SCAN_FILE", "Player"] _
36 | ]
37 | */
--------------------------------------------------------------------------------
/ex3.archiver/app.UniExtract.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.UniExtract.png
--------------------------------------------------------------------------------
/ex3.archiver/app.WinRAR.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.WinRAR.1.png
--------------------------------------------------------------------------------
/ex3.archiver/app.WinRAR.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.WinRAR.2.png
--------------------------------------------------------------------------------
/ex3.archiver/app.WinRAR.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/app.WinRAR.3.png
--------------------------------------------------------------------------------
/ex3.archiver/app.WinRAR.md:
--------------------------------------------------------------------------------
1 | # WinRAR Context Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`app.WinRAR.nss`](/ex3.archiver/app.WinRAR.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 | 
12 |
13 | ## Overview
14 | A comprehensive context menu replacement for WinRAR that extends and customizes archiving functionality in Windows File Explorer. Designed to provide advanced options and seamless integration with WinRAR's features.
15 |
16 | ## Key Features
17 | - Extract
18 | - Extract with WinRAR GUI Manager
19 | - Extract files to current folder
20 | - Extract to specific destination
21 | - Extract with full path preservation
22 | - Extract selected files from multi-volume archives
23 | - Extract with automatic folder creation
24 |
25 | - Compress
26 | - Create archives with multiple compression levels
27 | - Support for various archive formats (ZIP, RAR, 7Z)
28 | - Compress multiple files and folders
29 | - Create self-extracting archives
30 | - Set compression method and algorithm
31 |
32 | - Compress to Profile
33 | - Utilize predefined WinRAR compression profiles
34 | - Quick access to custom archive configurations
35 | - Dynamic profile management
36 | - Create and save new compression profiles
37 | - Instant application of saved profiles
38 |
39 | - Convert / Test / Repair
40 | - Convert between different archive formats
41 | - Test archive integrity
42 | - Verify archive structure
43 | - Attempt to repair damaged or corrupted archives
44 | - Compare archive contents
45 |
46 | - Install Theme / Update / Registration
47 | - Download and install WinRAR themes
48 | - Automatic WinRAR version updates
49 | - Trial version registration support
50 | - Customize WinRAR interface
51 | - Manage WinRAR installation settings
52 |
53 | - Others
54 | - Password protection for archives
55 | - Multi-language support
56 | - Context menu customization
57 | - Support for large file and multi-volume archives
58 | - Minimal performance overhead
59 | - Seamless File Explorer integration
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.extract.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/sys.compress.extract.1.png
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.extract.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/sys.compress.extract.2.png
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.extract.md:
--------------------------------------------------------------------------------
1 | # Compress and Extract Context Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`sys.compress.extract.nss`](/ex3.archiver/sys.compress.extract.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A shell extension menu that enhances Windows' built-in compression functionality by providing modernized compression commands in the legacy context menu.
14 |
15 | ## Key Features
16 | - Integration of modern Windows compression commands
17 | - Support for multiple compression formats (ZIP, 7z, TAR)
18 | - Registry-based command management
19 | - Administrator-level modifications
20 | - Localized menu items using system resources
21 |
22 | ## Menu Structure
23 | 1. Main Menu ("Compress and Extract")
24 | 2. "Extract All" command (repositioned)
25 | 3. Submenu "NS Modern Commands":
26 | - Windows.CompressTo
27 | - Windows.CompressTo.Wizard
28 | - Windows.CompressTo.Zip
29 | - Windows.CompressTo.7z
30 | - Windows.CompressTo.Tar
31 |
32 | ## Usage Notes
33 | - Requires administrative privileges for registry modifications
34 |
35 | ## Technical Details
36 | - Registry paths:
37 | - HKEY_CLASSES_ROOT\*\shell
38 | - HKEY_CLASSES_ROOT\Folder\shell
39 | - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore
40 | - Uses Windows resource strings for localization
41 | - Command state verification through registry queries
42 | - Supports hidden window execution
43 |
44 | ## Dependencies
45 | - Windows Operating System (Windows 11)
46 | - Nilesoft Shell framework
47 | - Windows Shell32.dll
48 | - Windows.UI.FileExplorer.dll
49 | - Zipfldr.dll
50 | - Administrative privileges for registry modifications
51 |
52 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
53 |
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.extract.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | //> https://www.tenforums.com/tutorials/3233-add-remove-extract-all-context-menu-windows.html
5 | // modify(find='Extract All*' menu=title.more_options sep pos=0)
6 | // remove(clsid='{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af}' where=!this.isuwp)
7 |
8 | $menu_archiver = ''
9 | menu(title='Compress and Extract' type='file|dir' image=icon.res('zipfldr.dll,-101')) {
10 | //> https://www.elevenforum.com/t/zip-compress-files-and-folders-in-windows-11.8235/
11 |
12 | // move 'Extract All' to the middle of the menu
13 | modify(find=str.res('shell32.dll', -37514) pos='middle' menu=menu_archiver+'/Compress and Extract')
14 | menu(title='NS Modern Commands' image=icon.settings sep pos=bottom tip='Clone commands from modern to legacy context menu' vis=if(!sys.is11, 'disable')) {
15 | $rk = null // registry keyword name
16 | $rt = null // registry target name
17 | $re = null // registry file extension
18 | $reg_modify = 'reg query "HKEY_CLASSES_ROOT\@re\shell\@rk" >nul 2>&1 && reg delete "HKEY_CLASSES_ROOT\@re\shell\@rk" /f || reg copy "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\@rk" "HKEY_CLASSES_ROOT\@re\shell\@rk" /f'
19 |
20 | // Windows.CompressTo
21 | item(title=str.res('windows.UI.FileExplorer.dll,-51797') checked=reg.exists('HKCR\*\shell\Windows.CompressTo') and reg.exists('HKCR\Folder\shell\Windows.CompressTo') keys='menu'
22 | admin cmd-line='/c @{rk = 'Windows.CompressTo' rt = rk } @{re = '*'} @reg_modify & @{re = 'Folder'} @reg_modify' window='hidden')
23 | modify(where=this.title==str.res('windows.UI.FileExplorer.dll,-51797') image=icon.res('zipfldr.dll,-101') pos='middle' menu=menu_archiver+'/Compress and Extract')
24 | // Windows.CompressTo.Wizard
25 | item(title=str.res('zipfldr.dll,-10610') checked=reg.exists('HKCR\*\shell\Windows.CompressTo.Wizard') and reg.exists('HKCR\Folder\shell\Windows.CompressTo.Wizard') keys='wizard'
26 | admin cmd-line='/c @{rk = 'Windows.CompressTo.Wizard' rt = rk } @{re = '*'} @reg_modify & @{re = 'Folder'} @reg_modify' window='hidden')
27 | modify(where=this.title==str.res('zipfldr.dll,-10536') image=icon.res('zipfldr.dll,-101') title=str.res('zipfldr.dll,-10610') tip=str.res('zipfldr.dll,-10537') pos='middle' menu=menu_archiver+'/Compress and Extract')
28 | // Windows.CompressTo.Zip
29 | item(title=str.res('Windows.UI.FileExplorer.dll,-51793') checked=reg.exists('HKCR\*\shell\Windows.CompressTo.Zip') and reg.exists('HKCR\Folder\shell\Windows.CompressTo.Zip')
30 | admin cmd-line='/c @{rk = 'Windows.CompressTo.Zip' rt = rk } @{re = '*'} @reg_modify & @{re = 'Folder'} @reg_modify' window='hidden')
31 | modify(where=this.title==str.res('zipfldr.dll,-10530') image=icon.res('zipfldr.dll,-101') title=str.replace(str.res('windows.UI.FileExplorer.dll,-51797'), '...', ' ' + str.res('Windows.UI.FileExplorer.dll,-51798')) tip=str.res('zipfldr.dll,-10531') pos='middle' menu=menu_archiver+'/Compress and Extract')
32 | // Windows.CompressTo.7z
33 | item(title=str.replace(str.res('windows.UI.FileExplorer.dll,-51797'), '...', ' ' + str.res('Windows.UI.FileExplorer.dll,-51799')) checked=reg.exists('HKCR\*\shell\Windows.CompressTo.7z') and reg.exists('HKCR\Folder\shell\Windows.CompressTo.7z')
34 | admin cmd-line='/c @{rk = 'Windows.CompressTo.7z' rt = rk } @{re = '*'} @reg_modify & @{re = 'Folder'} @reg_modify' window='hidden')
35 | modify(where=this.title==str.res('zipfldr.dll,-10532') image=icon.res('zipfldr.dll,-101') title=str.replace(str.res('windows.UI.FileExplorer.dll,-51797'), '...', ' ' + str.res('Windows.UI.FileExplorer.dll,-51799')) pos='middle' menu=menu_archiver+'/Compress and Extract')
36 | // Windows.CompressTo.Tar
37 | item(title=str.replace(str.res('windows.UI.FileExplorer.dll,-51797'), '...', ' ' + str.res('Windows.UI.FileExplorer.dll,-51800')) checked=reg.exists('HKCR\*\shell\Windows.CompressTo.Tar')
38 | admin cmd-line='/c @{rk = 'Windows.CompressTo.Tar' rt = rk } @{re = '*'} @reg_modify & @{re = 'Folder'} @reg_modify' window='hidden')
39 | modify(where=this.title==str.res('zipfldr.dll,-10534') image=icon.res('zipfldr.dll,-101') title=str.replace(str.res('windows.UI.FileExplorer.dll,-51797'), '...', ' ' + str.res('Windows.UI.FileExplorer.dll,-51800')) pos='middle' menu=menu_archiver+'/Compress and Extract')
40 | }
41 | }
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.ps.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/sys.compress.ps.1.png
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.ps.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.archiver/sys.compress.ps.2.png
--------------------------------------------------------------------------------
/ex3.archiver/sys.compress.ps.md:
--------------------------------------------------------------------------------
1 | # PowerShell Archivator
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`sys.compress.ps.nss`](/ex3.archiver/sys.compress.ps.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | PowerShell Archivator is a shell extension menu that provides archive management capabilities through PowerShell commands. It enables users to create and extract ZIP files and create ISO images directly from the context menu.
14 |
15 | ## Key Features
16 | - Extract ZIP files to named folders
17 | - Create ZIP archives from files and directories
18 | - Background extraction and compression operations
19 | - ISO image creation with customizable media types
20 | - Support for single and multiple file operations
21 | - GUID-based naming options for extraction folders
22 |
23 | ## Menu Structure
24 | 1. ZIP Extraction Options
25 | - Extract to named folder
26 | - Extract multiple archives to separate folders
27 | - Silent background extraction
28 |
29 | 2. ZIP Creation Options
30 | - Create ZIP with selected items
31 | - Create ZIP with item contents
32 | - Silent background compression
33 |
34 | 3. ISO Creation
35 | - Create ISO with customizable label and media type
36 | - Support for various optical media sizes
37 |
38 | ## Usage Notes
39 | - Paths with double spaces or square brackets are not supported
40 | - Use SHIFT key for GUID-based naming
41 | - Silent operations run in background
42 | - ISO creation allows custom media title and type selection
43 |
44 | ## Dependencies
45 | - Windows Operating System
46 | - Nilesoft Shell framework
47 | - Windows PowerShell
48 | - System.IO.Compression.FileSystem
49 | - IMAPI2FS.MsftFileSystemImage COM object
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.cmd.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.cmd.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.cmd.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.cmd.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.cmd.md:
--------------------------------------------------------------------------------
1 | # File Hash Tool (CMD)
2 |
3 | ## Source Code & Screenshot
4 |
5 | ### Snippet:
6 | [`all.copy.hash.cmd.nss`](/ex3.multifunction/all.copy.hash.cmd.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A powerful context menu extension for Windows that allows you to calculate, verify, copy, and save various hash checksums of files directly from the right-click menu.
14 |
15 | ## Features
16 |
17 | ### Hash Types Supported
18 | - MD2 (Shift required)
19 | - MD4 (Shift required)
20 | - MD5
21 | - SHA1
22 | - SHA256
23 | - SHA384 (Shift required)
24 | - SHA512 (Shift required)
25 |
26 | ### Operations Available
27 |
28 | #### Verify Checksum (single file)
29 | - Automatically verifies checksums using `.md2`, `.md4`, `.md5`, `.sha1`, `.sha256`, `.SHA384`, and `.SHA512` files
30 | - Displays whether the hash matches or not
31 |
32 | #### Copy Hash (single file)
33 | - Copy of any supported hash to clipboard
34 | - Beep confirmation when hash is copied
35 |
36 | #### Copy or Create (single file)
37 | - Copy of any supported hash to clipboard
38 | - Hold SHIFT to create a checksum file (e.g., `.md5`, `.sha1`) with the hash value
39 | - Beep confirmation
40 |
41 | #### View or Save (single file)
42 | - View hash in terminal
43 | - Hold SHIFT to save hash report to a `.txt` file
44 |
45 | #### View (multiple file)
46 | - View hash in terminal
47 |
48 | ## Technical Details
49 | - Uses Windows `certutil` for hash calculations
50 | - Supports both single and multiple file selections
51 |
52 | ## Notes
53 | - All hash calculations are performed locally using Windows built-in tools
54 | - Operations are designed to be fast and efficient
55 | - Verification follows standard checksum file formats
56 | - Compatible with Windows command prompt environment
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.cmd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.cmd.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.ps.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.ps.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.ps.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.ps.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.ps.md:
--------------------------------------------------------------------------------
1 | # File Hash Tool (Powershell)
2 |
3 | ## Source Code & Screenshot
4 |
5 | ### Snippet:
6 | [`all.copy.hash.ps.nss`](/ex3.multifunction/all.copy.hash.ps.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A powerful context menu extension for Windows that allows you to calculate, verify, copy, and save various hash checksums of files directly from the right-click menu.
14 |
15 | ## Features
16 |
17 | ### Hash Types Supported
18 | - MD5
19 | - SHA1
20 | - SHA256
21 | - SHA384 (Shift required)
22 | - SHA512 (Shift required)
23 | - MACTripleDES (Shift required)
24 | - RIPEMD160 (Shift required)
25 |
26 | ### Operations Available
27 |
28 | #### Verify Checksum (single file)
29 | - Automatically verifies checksums using `.md5`, `.sha1`, `.sha256`, `.SHA384`, and `.SHA512` files
30 | - Displays whether the hash matches or not
31 | - Color-coded output (red for non-matching hashes)
32 |
33 | #### Copy Hash (single file)
34 | - Copy of any supported hash to clipboard
35 | - Beep confirmation when hash is copied
36 |
37 | #### View Hash (single file)
38 | - View detailed hash information in terminal
39 | - Displays file path and hash value
40 |
41 | #### Hash Multi Verifier (single file)
42 | - Compare file against any hash value
43 | - Automatically detects hash type by length
44 | - Supports MD5, SHA1, SHA256, SHA384, and SHA512
45 |
46 | #### Hash Verifier (single file)
47 | - Compare file against specific hash type
48 | - Input validation for hash format
49 | - Clear match/no match output
50 |
51 | #### Compare Two Files
52 | - Compare two selected files using any supported hash
53 | - Instant match/no match results
54 |
55 | #### Create Checksums File (single or multiple)
56 | - Create checksum files for multiple files
57 | - Optional recursive mode for folders (hold SHIFT)
58 | - Supports all hash types
59 | - Creates a single checksums file in source directory
60 |
61 | ## Technical Details
62 |
63 | - Uses PowerShell's `Get-FileHash` cmdlet
64 | - Supports both single and multiple file selections
65 | - Supports directories (for checksums creation)
66 |
67 | ## Notes
68 | - All hash calculations are performed locally using PowerShell
69 | - Operations are designed to be fast and efficient
70 | - Verification follows standard checksum file formats
71 | - Compatible with Windows PowerShell environment
72 |
73 | ## Requirements
74 | - Windows PowerShell 5.1 or later
75 | - Windows 10/11 recommended
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.hash.ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.hash.ps.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.cp.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.list.cp.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.cp.md:
--------------------------------------------------------------------------------
1 | # Copy List Tool (CMD and Powershell)
2 |
3 | ## Source Code & Screenshot
4 |
5 | ### Snippet:
6 | [`all.copy.list.cp.nss`](/ex3.multifunction/all.copy.list.cp.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Advanced directory listing extension using both Command Prompt and PowerShell commands to generate formatted file/folder lists with sizes and stats.
13 |
14 | ## Key Features
15 | - Directory listing with multiple format options
16 | - File size reporting in bytes and formatted units
17 | - Recursive directory support
18 | - Hidden item inclusion
19 | - Stats and details options
20 | - PowerShell-based size formatting
21 |
22 | ## Menu Structure
23 | - Item names (with/without stats)
24 | - Folder names (with/without stats)
25 | - File names (with/without stats)
26 | - File names with byte sizes
27 | - File names with formatted sizes (KB/MB/GB)
28 |
29 | ## Usage Notes
30 | - Single directory selection
31 | - SHIFT key enables recursive listing and paths
32 | - Hidden items included in most options
33 | - Size formatting automatic based on file size
34 |
35 | ## Dependencies
36 | Required Components:
37 | - Windows Operating System
38 | - Nilesoft Shell framework
39 | - Windows Command Prompt
40 | - Windows PowerShell
41 | - clip.exe
42 |
43 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.cp.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(image=icon.copy_path title='Copy list' mode='single' type='dir|back.dir|drive|back.drive|desktop') {
5 | item(image=inherit keys='SHIFT paths recursive' title='Copy item names'
6 | tip='Copy the names of selected items to the clipboard, including hidden irems. Hold SHIFT to include full paths and subfolders.'
7 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /b /o:gn | clip')
8 | item(image=inherit keys='SHIFT paths recursive' title='Copy item names with stats 'where=keys.shift()
9 | tip='Copy the names of selected items to the clipboard, including hidden irems. Hold SHIFT to include full paths, subfolders, and item details.'
10 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /o:gn | clip')
11 | item(image=inherit keys='SHIFT paths recursive' title='Copy folder names'
12 | tip='Copy the names of selected folders to the clipboard, including hidden folders. Hold SHIFT to include full paths and subfolders.'
13 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /b /a:d /o:n | clip')
14 | item(image=inherit keys='SHIFT paths recursive' title='Copy folder names with stats' where=keys.shift()
15 | tip='Copy the names of selected folders to the clipboard, including hidden folders. Hold SHIFT to include full paths, subfolders, and folder details.'
16 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /a:d /o:n | clip')
17 | item(image=inherit keys='SHIFT paths recursive' title='Copy file names'
18 | tip='Copy the names of selected files to the clipboard, including hidden files. Hold SHIFT to include full paths and subfolders.'
19 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /b /a:-d /o:n | clip')
20 | item(image=inherit keys='SHIFT paths recursive' title='Copy file names with stats' where=keys.shift()
21 | tip='Copy the names of selected files to the clipboard, including hidden files. Hold SHIFT to include full paths, subfolders, and file details.'
22 | window=hidden cmd-line='/c dir @sel(true) @if(keys.shift(), '/s') /a:-d /o:n | clip')
23 | separator()
24 | item(image=inherit title='Copy file names with size (in bytes)'
25 | tip='Copy the names and sizes (in bytes) of all files in the selected folder to the clipboard. Hidden files are not included.'
26 | cmd-ps=`$path = '@sel'; $list = Get-ChildItem -LiteralPath $path | Where-Object { $_.PSIsContainer -eq $false } | ForEach-Object { $fileName = $_.Name; $fileSize = $_.Length; \"$fileName - $($fileSize) bytes\"; }; $list | Out-String | Set-Clipboard;` window=hidden)
27 | item(image=inherit title='Copy file names with size (formated)'
28 | tip='Copy the names and sizes of all files in the selected folder to the clipboard, formatted as GB, MB, or KB as appropriate. Hidden files are not included.'
29 | cmd-ps=`$path = '@sel'; $list = Get-ChildItem -LiteralPath $path | Where-Object { $_.PSIsContainer -eq $false } | ForEach-Object { $fileName = $_.Name; $fileSizeBytes = $_.Length; if ($fileSizeBytes -ge 1GB) { $fileSizeGB = $fileSizeBytes / 1GB; \"$fileName - $($fileSizeGB.ToString('N2')) GB\"; } elseif ($fileSizeBytes -ge 1MB) { $fileSizeMB = $fileSizeBytes / 1MB; \"$fileName - $($fileSizeMB.ToString('N2')) MB\"; } else { $fileSizeKB = $fileSizeBytes / 1KB; \"$fileName - $($fileSizeKB.ToString('N2')) KB\"; } }; $list | Out-String | Set-Clipboard;` window=hidden) }
30 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.cp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.list.cp.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.ns.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.list.ns.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.ns.md:
--------------------------------------------------------------------------------
1 | # Copy List Tool (Nilesoft Shell)
2 |
3 | ## Source Code & Screenshot
4 |
5 | ### Snippet:
6 | [`all.copy.list.ns.nss`](/ex3.multifunction/all.copy.list.ns.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Nilesoft Shell extension for copying lists of files and folders with flexible formatting options.
13 |
14 | ## Key Features
15 | - Multiple selection support
16 | - Directory content listing
17 | - Separate file/folder listing
18 | - Full path inclusion option
19 | - Hidden item support
20 |
21 | ## Menu Structure
22 |
23 | - Copy selected items
24 | - For directories:
25 | - Copy all item names
26 | - Copy file names only
27 | - Copy folder names only
28 | - SHIFT modifier for full paths
29 |
30 | ## Usage Notes
31 | - Works with single/multiple selections
32 | - SHIFT key adds full paths
33 | - Includes hidden items
34 | - Shows item counts
35 |
36 | ## Dependencies
37 | Required Components:
38 | - Windows Operating System
39 | - Nilesoft Shell framework
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.ns.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 |
5 | menu(image=icon.copy_path title='Copy list' mode='multiple' where=(sel.count==1 and (sel.type==3 or sel.type==5)) or sel.count>1) {
6 | item(mode='multiple' where=sel.count>1 image=inherit title='Copy (@sel.count) item@if(sel.count>1, 's') selected'
7 | tip='Copy the names of all selected items to the clipboard.'
8 | cmd=command.copy(sel(false, "\n")))
9 | menu(expanded='true' mode='single' type='dir|back.dir|drive|back.drive|desktop' image=inherit) {
10 | item(title='Copy (@len(path.files(sel.dir))) item name@if(len(path.files(sel.dir))>1, 's')' keys='SHIFT with path@if(len(path.files(sel.dir))>1, 's')'
11 | image=inherit
12 | tip='Copy the names of all items in the selected folder to the clipboard, including hidden items. Hold SHIFT to include full paths.'
13 | cmd=command.copy(str.join(path.files(sel.dir, '*', if(keys.shift(), 5|16, 5)), "\n")))
14 | separator()
15 | item(title='Copy (@len(path.files(sel.dir, '*', 3))) file name@if(len(path.files(sel.dir, '*', 3))>1, 's')' keys='SHIFT with path@if(len(path.files(sel.dir, '*', 3))>1, 's')'
16 | image=inherit where=len(path.files(sel.dir, '*', 3))>0
17 | tip='Copy the names of all files in the selected folder to the clipboard, including hidden files. Hold SHIFT to include full paths.'
18 | cmd=command.copy(str.join(path.files(sel.dir, '*', if(keys.shift(), 3|16, 3)), "\n")))
19 | item(title='Copy (@len(path.files(sel.dir, '*', 2))) folder name@if(len(path.files(sel.dir, '*', 2))>1, 's')' keys='SHIFT with path@if(len(path.files(sel.dir, '*', 2))>1, 's')'
20 | image=inherit where=len(path.files(sel.dir, '*', 2))>0
21 | tip='Copy the names of all folders in the selected folder to the clipboard, including hidden folders. Hold SHIFT to include full paths.'
22 | cmd=command.copy(str.join(path.files(sel.dir, '*', if(keys.shift(), 2|16, 2)), "\n"))) }
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.list.ns.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.list.ns.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.all.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.all.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.all.3.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.all.4.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.md:
--------------------------------------------------------------------------------
1 | # Windows Path Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.copy.path.all.nss`](/ex3.multifunction/all.copy.path.all.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 | 
12 | 
13 |
14 | ## Overview
15 | Comprehensive Nilesoft Shell extension for copying various path formats and file information.
16 |
17 | ## Key Features
18 | - Multiple path format support (Windows, WSL, Cygwin, UNC)
19 | - File/folder name and extension extraction
20 | - UUID folder name handling
21 | - Library namespace support
22 | - Quick file location access
23 |
24 | ## Menu Structure
25 | - Open File Location
26 | - Full path variants (standard, raw, short, network, Unix)
27 | - Parent path variants
28 | - File names and extensions
29 | - Special folder names (UUID)
30 | - Namespace paths (.library-ms)
31 |
32 | ## Usage Notes
33 | - Single selection mode
34 | - SHIFT key reveals additional path formats
35 | - Supports files, folders, libraries
36 | - Handles special Windows folders
37 |
38 | ## Dependencies
39 | Required Components:
40 | - Windows Operating System
41 | - Nilesoft Shell framework
42 |
43 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.all.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // Based on: Nilesoft Shell original snippet
3 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
4 |
5 | menu(image=icon.copy_path title=title.copy_path mode='single') {
6 | item(title='Open File Location' image cmd='explorer.exe' args='/select, @sel')
7 | separator()
8 |
9 | // Section: Full Path Variants
10 | item(image=inherit cmd=command.copy(this.title) title=sel.path)
11 | item(image=inherit cmd=command.copy(this.title) title=sel.raw where=(sel.raw != sel.path))
12 | item(image=inherit cmd=command.copy(this.title) title=sel.short where=(sel.short != sel.path) and len(sel.short)>0 tip='Short Path: Uses DOS 8.3 names for compatibility with older systems')
13 | menu(expanded='true' where=keys.shift() and str.contains(sel.path, ':')) {
14 | item(cmd=command.copy(this.title) title='\\localhost\' + str.replace(sel.path, ':', '$') tip='Network Path: For accessing via a mapped drive or UNC path')
15 | item(cmd=command.copy(this.title) title=path.wsl(sel.path) tip='Unix-style Path: Use for WSL or similar environments')
16 | item(cmd=command.copy(this.title) title=str.replace(path.wsl(sel.path), '/mnt/', '/cygdrive/') tip='Cygwin Path: For use in Cygwin environments')
17 | item(cmd=command.copy(this.title) title=str.right(path.wsl(sel.path), len(path.wsl(sel.path))-len('/mnt/c')) tip='Pure Unix Path: For Linux systems (with root /home structure)')
18 | item(cmd=command.copy(this.title) title='file://' + path.separator(sel.path) tip='Internet Path: Use as a file URL for browsers or network links') }
19 | separator()
20 |
21 | // Section: Parent Path Variants
22 | item(image=inherit cmd=command.copy(this.title) where=(sel.parent.len>3 and !str.start(sel.raw, '::')) title=@sel.parent)
23 | item(image=inherit cmd=command.copy(this.title) title=@sel.parent.raw where=(sel.parent.raw != sel.parent))
24 | separator()
25 |
26 | // Section: File Name and Extension
27 | item(cmd=command.copy(this.title) type='file|dir|back.dir' title=@sel.file.name)
28 | item(cmd=command.copy(this.title) type='file' where=sel.file.len != sel.file.title.len title=@sel.file.title)
29 | item(cmd=command.copy(this.title) type='file' where=sel.file.ext.len>0 title=@sel.file.ext)
30 |
31 | // Section: Special Folder Names (UUID-based or System)
32 | $ext_dir = regex.matches(sel, '\.\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}$')
33 | item(cmd=command.copy(this.title) type='dir|back.dir' where=len(ext_dir[0])>0 title=str.replace(sel.file.name, ext_dir[0], ""))
34 | item(cmd=command.copy(this.title) type='dir|back.dir' where=len(ext_dir[0])>0 title=ext_dir[0])
35 |
36 | // Section: Namespace (e.g., libraries or virtual folders)
37 | item(cmd=command.copy(this.title) type='namespace' where=str.end(sel.raw, '.library-ms') title=sel.path.title+'.library-ms')
38 | item(cmd=command.copy(this.title) type='namespace' where=str.end(sel.raw, '.library-ms') title=sel.path.title)
39 | item(cmd=command.copy(this.title) type='namespace' where=str.end(sel.raw, '.library-ms') title='.library-ms')
40 | }
41 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.env.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.env.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.env.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.env.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.env.md:
--------------------------------------------------------------------------------
1 | # Windows Environment Path Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.copy.path.env.nss`](/ex3.multifunction/all.copy.path.env.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A Nilesoft Shell extension that converts file paths to use Windows environment variables and copies them to clipboard.
14 |
15 | ## Key Features
16 | - Quick access to Environment Variables settings
17 | - Converts paths to use environment variables
18 | - Supports system and user environment paths
19 | - Single folder/drive selection
20 |
21 | ## Menu Structure
22 | - Environment Variables (SHIFT + Click for admin)
23 | - User paths (%TMP%, %TEMP%, %LocalAppData%, etc.)
24 | - Program paths (%ProgramFiles%, %CommonProgramFiles%, etc.)
25 | - Windows paths (%WinDir%, %SystemRoot%)
26 | - Drive paths (%HomeDrive%, %SystemDrive%)
27 |
28 | ## Usage Notes
29 | - Works with directories, drives, and desktop
30 | - Single selection only
31 | - Only shows relevant variables for current path
32 |
33 |
34 | ## Dependencies
35 | Required Components:
36 | - Windows Operating System
37 | - Nilesoft Shell framework
38 |
39 | Optional Components:
40 | - Administrative privileges for system-wide changes
41 |
42 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.env.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(image=icon.copy_path title='Copy &env path' mode='single' type='dir|back.dir|drive|back.drive|desktop') {
5 | item(title='Environment Variables' keys='SHIFT admin' image='@sys.bin\imageres.dll,156'
6 | admin=keys.shift() cmd='rundll32.exe' args='sysdm.cpl,EditEnvironmentVariables')
7 | separator()
8 | // AppData / User
9 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%TMP%') title="%TMP%"+str.sub(sel.path, len(sys.expand('%TMP%'))))
10 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%TEMP%') title="%TEMP%"+str.sub(sel.path, len(sys.expand('%TEMP%'))))
11 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%LocalAppData%') title="%LocalAppData%"+str.sub(sel.path, len(sys.expand('%LocalAppData%'))))
12 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%UserProfile%') title="%UserProfile%"+str.sub(sel.path, len(sys.expand('%UserProfile%'))))
13 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%AppData%') title="%AppData%"+str.sub(sel.path, len(sys.expand('%AppData%'))))
14 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%Public%') title="%Public%"+str.sub(sel.path, len(sys.expand('%Public%'))))
15 | // ProgramData
16 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%ProgramData%') title="%ProgramData%"+str.sub(sel.path, len(sys.expand('%ProgramData%'))))
17 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%AllUsersProfile%') title="%AllUsersProfile%"+str.sub(sel.path, len(sys.expand('%AllUsersProfile%'))))
18 | // Program
19 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%CommonProgramFiles%') and !str.contains(sel.path, '%CommonProgramFiles(x86)%') title="%CommonProgramFiles%"+str.sub(sel.path, len(sys.expand('%CommonProgramFiles%'))))
20 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%ProgramFiles%') and !str.contains(sel.path, '%ProgramFiles(x86)%') title="%ProgramFiles%"+str.sub(sel.path, len(sys.expand('%ProgramFiles%'))))
21 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%CommonProgramFiles(x86)%') title="%CommonProgramFiles(x86)%"+str.sub(sel.path, len(sys.expand('%CommonProgramFiles(x86)%'))))
22 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%ProgramFiles(X86)%') title="%ProgramFiles(X86)%"+str.sub(sel.path, len(sys.expand('%ProgramFiles(X86)%'))))
23 | // Windows
24 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%WinDir%') title="%WinDir%"+str.sub(sel.path, len(sys.expand('%WinDir%'))))
25 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%SystemRoot%') title="%SystemRoot%"+str.sub(sel.path, len(sys.expand('%SystemRoot%'))))
26 | // drive letter
27 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%HomeDrive%') title="%HomeDrive%"+str.sub(sel.path, len(sys.expand('%HomeDrive%'))))
28 | item(image=inherit cmd=command.copy(this.title) where=str.contains(sel.path, '%SystemDrive%') title="%SystemDrive%"+str.sub(sel.path, len(sys.expand('%SystemDrive%')))) }
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.lnk.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.lnk.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.lnk.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.lnk.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.lnk.md:
--------------------------------------------------------------------------------
1 | # Shortcut Path Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.copy.path.lnk.nss`](/ex3.multifunction/all.copy.path.lnk.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A Nilesoft Shell extension adding enhanced shortcut (.lnk) path management capabilities to Windows context menu.
14 |
15 | ## Key Features
16 | - Copy target paths from shortcuts
17 | - Quick access to target file location
18 | - Copy shortcut/target names and locations
19 | - Support for "Start in" folder paths
20 | - Extension copying for target files
21 |
22 | ## Menu Structure
23 | - Open File Location
24 | - Target path
25 | - Resolved target path
26 | - Target location path
27 | - Start in folder path
28 | - Target name
29 | - Target title
30 | - Target extension
31 |
32 | ## Usage Notes
33 | - Single file selection only
34 | - Works exclusively with .lnk files
35 |
36 | ## Dependencies
37 | Required Components:
38 | - Windows Operating System
39 | - Nilesoft Shell framework
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.lnk.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(image=icon.copy_path title='Copy &lnk path' mode='single' type='file' where=len(path.lnktarget(sel))>0) {
5 | item(title='Open File Location' image cmd='explorer.exe' args='/select, @path.lnktarget(sel)')
6 | separator()
7 | // check if both path.lnktarget and path.lnk.target are the same
8 | item(image=inherit cmd=command.copy(this.title) title=path.lnk.target(sel))
9 | item(image=inherit cmd=command.copy(this.title) title=path.lnktarget(sel) where=path.lnktarget(sel) != path.lnk.target(sel))
10 | separator()
11 | item(image=inherit cmd=command.copy(this.title) title=path.location(path.lnk.target(sel)) where=len(path.location(path.lnk.target(sel)))>3)
12 | item(image=inherit cmd=command.copy(this.title) title=path.lnk.dir(sel) where=(path.location(path.lnk.target(sel)) != path.lnk.dir(sel)) and len(path.lnk.dir(sel))>0 tip='Start in folder')
13 | separator()
14 | item(cmd=command.copy(this.title) title=path.name(path.lnk.target(sel)))
15 | item(cmd=command.copy(this.title) title=path.title(path.lnk.target(sel)) where=path.name(path.lnk.target(sel)) != path.title(path.lnk.target(sel)))
16 | item(cmd=command.copy(this.title) title=path.file.ext(path.lnk.target(sel)) where=len(path.file.ext(path.lnk.target(sel)))>1) }
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.lnk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.lnk.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.ps.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.ps.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.ps.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.ps.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.ps.md:
--------------------------------------------------------------------------------
1 | # Copy Tool (Powershell)
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.copy.path.ps.nss`](/ex3.multifunction/all.copy.path.ps.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This Nilesoft Shell extension adds enhanced path and content copying capabilities to the Windows context menu.
14 |
15 | ## Key Features
16 | - Copy full file/folder paths
17 | - Copy parent directory paths
18 | - Copy file/folder names with/without extensions
19 | - Copy file contents
20 | - Copy directory contents listing
21 | - Multi-selection support
22 |
23 | ## Menu Structure
24 | - Copy item(s) full path
25 | - Copy parent(s) full path
26 | - Copy item(s) name
27 | - Copy item(s) title
28 | - Copy Content(s) - for files
29 | - Copy Content(s) - for directories
30 |
31 | ## Usage Notes
32 | - Works with files, folders, drives and desktop
33 | - Supports multiple item selection
34 | - Hidden PowerShell window execution
35 |
36 | ## Dependencies
37 | - Windows Operating System
38 | - Nilesoft Shell framework
39 | - PowerShell
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.ps.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // Based on: jorn's idea (Discord)
3 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
4 |
5 | menu(image=icon.copy_path title=title.copy_path mode='multiple' type='file|dir|back.dir|drive|back.drive|desktop') {
6 | item(image=inherit title='Copy item@if(sel.count>1, 's') full path' tip='Copies the full path of the selected item(s) to the clipboard'
7 | window='hidden' cmd-ps=`-Command @sel(2, ',') | % { [System.IO.Path]::GetFullPath($_) } | Set-Clipboard`)
8 | item(image=inherit title='Copy parent@if(sel.count>1, 's') full path' where=!path.isdrive(sel) tip='Copies the full path of the parent directory of the selected item(s) to the clipboard'
9 | window='hidden' cmd-ps=`-Command @sel(2, ',') | % { [System.IO.Path]::GetDirectoryName($_) } | Set-Clipboard`)
10 | separator()
11 | item(title='Copy item@if(sel.count>1, 's') name' tip='Copies the name (with extension) of the selected item(s) to the clipboard'
12 | window='hidden' cmd-ps=`-Command @sel(2, ',') | % { [System.IO.Path]::GetFileName($_) } | Set-Clipboard`)
13 | item(title='Copy item@if(sel.count>1, 's') title' tip='Copies the title (name without extension) of the selected item(s) to the clipboard'
14 | window='hidden' cmd-ps=`-Command @sel(2, ',') | % { [System.IO.Path]::GetFileNameWithoutExtension($_) } | Set-Clipboard`)
15 | separator()
16 | item(title='Copy Content@if(sel.count>1, 's')' type='file' mode='multi_unique' tip='Copies the content of the selected file(s) to the clipboard'
17 | window='hidden' cmd-ps=`-Command @sel(2, ',') | % { Get-Content $_ -Raw } | Set-Clipboard`)
18 | item(image=inherit title='Copy Content@if(sel.count>1, 's')' type='dir|back.dir|drive|back.drive|desktop' tip='Copies the full paths of all items inside the selected directory/drive to the clipboard'
19 | window='hidden' cmd-ps=`-Command Set-Clipboard -LiteralPath (@sel(2, ',') | % { Get-ChildItem $_ -Force | % { $_.FullName } })`) }
20 |
21 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.url.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.url.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.url.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.copy.path.url.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.url.md:
--------------------------------------------------------------------------------
1 | # URL Path Copy Tool
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.copy.path.url.nss`](/ex3.multifunction/all.copy.path.url.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A Nilesoft Shell extension for managing and copying URL components from .url shortcut files.
14 |
15 | ## Key Features
16 | - Extract and copy full URLs
17 | - Copy URL components (scheme, domain, path)
18 | - URL launch support with SHIFT key
19 | - Regular expression based parsing
20 | - Username extraction from URLs
21 |
22 | ## Menu Structure
23 | - Full URL (SHIFT to launch)
24 | - URL without scheme
25 | - Full domain (SHIFT to launch)
26 | - Domain without scheme
27 | - Username (if present)
28 | - URL scheme
29 |
30 | ## Usage Notes
31 | - Single file selection only
32 | - Works exclusively with .url files
33 | - SHIFT key enables direct URL launch
34 | - Supports various [`URI schemes`](https://en.wikipedia.org/wiki/List_of_URI_schemes)
35 |
36 | ## Dependencies
37 | Required Components:
38 | - Windows Operating System
39 | - Nilesoft Shell framework
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.copy.path.url.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(image=icon.copy_path title='Copy &url path' mode='single' type='file' where=sel.file.ext=='.url') {
5 | $url=ini.get(sel, 'InternetShortcut', 'URL') // io.meta(sel,'System.Link.TargetParsingPath')
6 | //https://en.wikipedia.org/wiki/List_of_URI_schemes
7 | $url_scheme=regex.matches(url, '^([a-zA-Z0-9]+):(\/\/)?')
8 | $url_domain=regex.matches(url, '^([a-zA-Z0-9]+):(\/\/)?(www\.)?([a-zA-Z0-9._\[\]:+-]+)@?([a-zA-Z0-9._-]+)?')
9 |
10 | item(title=url keys='SHIFT launch' cmd=if(keys.shift(), this.title, command.copy(this.title)))
11 | item(title=str.replace(url, url_scheme[0],'') cmd=command.copy(this.title))
12 | separator()
13 | item(title=str.left(url, str.findlast(url, '#')) keys='SHIFT launch' where=str.findlast(url, '#')>0 cmd=if(keys.shift(), this.title, command.copy(this.title)))
14 | item(title=str.replace(str.left(url, str.findlast(url, '#')), url_scheme[0],'') where=str.findlast(url, '#')>0 cmd=command.copy(this.title))
15 | separator()
16 | item(title=url_domain[0] keys='SHIFT launch' where=url_domain[0]!=url cmd=if(keys.shift(), this.title, command.copy(this.title)))
17 | item(title=str.replace(url_domain[0], url_scheme[0], '') where=url_domain[0]!=url cmd=command.copy(this.title))
18 | separator()
19 | item(title=str.remove(url_domain[0], 0, 1+str.find(url_domain[0], '@')) cmd=command.copy(this.title) where=str.contains(url_domain[0], '@'))
20 | item(title=url_scheme[0] cmd=command.copy(this.title)) }
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.file.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.file.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.file.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.file.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.file.md:
--------------------------------------------------------------------------------
1 | # File Drive - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.drive.file.nss`](/ex3.multifunction/all.drive.file.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This Nilesoft Shell snippet adds a "File Drive" context menu with two distinct functionalities: managing ISO/IMG disk image files and interacting with mounted virtual drives. It provides convenient tools for mounting, unmounting, and querying disk images directly from Windows Explorer's context menu.
14 |
15 | ## Key Features
16 | - Mount ISO and IMG files with a single click
17 | - Unmount disk images easily
18 | - View information about disk image files
19 | - Retrieve the source file path of mounted images
20 | - Eject mounted virtual drives directly
21 | - Smart eject option that navigates away before unmounting
22 |
23 | ## Menu Structure
24 | - For ISO/IMG files:
25 | - Mount (mounts the disk image)
26 | - UnMount (unmounts the disk image)
27 | - Info (displays technical information about the image)
28 | - Verify (checks if the image is currently mounted)
29 | - For mounted CD/DVD drives:
30 | - View Source File #1 (shows original ISO file path using Volume method)
31 | - View Source File #2 (shows original ISO file path using DevicePath method)
32 | - Eject (unmounts the disk image)
33 | - Eject Smart (attempts to navigate away before unmounting)
34 |
35 | ## Usage Notes
36 | - Right-click on ISO/IMG files to access mount options
37 | - Right-click on mounted virtual drives to access eject options
38 | - All operations use PowerShell commands for disk image management
39 | - The menu intelligently appears only for supported file types and drives
40 | - Smart eject tries to navigate away from the drive before ejecting
41 | - No administrative privileges required for these operations
42 | - Works with both native Windows mounting and third-party mounted images
43 | - Compatible with both CDFS (Compact Disc File System) formatted drives
44 |
45 | ## Dependencies
46 | - Windows Operating System
47 | - Requires Windows 8 or newer (for native ISO mounting support)
48 | - Nilesoft Shell framework
49 | - Uses PowerShell's DiskImage module for mounting/unmounting
50 | - Works with Windows built-in ISO mounting capability
51 |
52 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.file.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 | // To-Do: Check which is better to use: isCDFS or isCDDrive
4 |
5 | menu(title='File Drive' type='file' where=sel.file.ext=='.iso' or sel.file.ext=='.img' image=icon.mount) {
6 | // https://www.elevenforum.com/t/mount-or-unmount-iso-and-img-file-in-windows-11.1201/
7 | item(title='Mount' image=icon.mount
8 | cmd-ps=`$file = Get-Item -LiteralPath '@sel(true)'; Mount-DiskImage -ImagePath $file` window='hidden')
9 | item(title='UnMount' image=icon.mount
10 | cmd-ps=`$file = Get-Item -LiteralPath '@sel(true)'; Dismount-DiskImage -ImagePath $file` window='hidden')
11 | item(title='Info' tip='Info about an ISO file'
12 | cmd-ps=`$file = Get-Item -LiteralPath '@sel(true)'; Get-DiskImage -ImagePath $file; Read-Host -Prompt '[Enter] to close'`)
13 | item(title='Verify' tip='Verify if an ISO file is mounted'
14 | cmd-ps=`$file = Get-Item -LiteralPath '@sel(true)'; (Get-DiskImage -ImagePath $file).Attached; Read-Host -Prompt '[Enter] to close'`) }
15 |
16 | // https://www.geeksforgeeks.org/what-is-cdfs-compact-disc-file-system/
17 | $isCDFS = io.meta(sel,'System.Volume.FileSystem')=='CDFS' // Compact Disc File System
18 | $isCDDrive = io.meta(sel, 'System.ItemTypeText')=='CD Drive'
19 | menu(title='File Drive' where=isCDDrive image=icon.mount) {
20 | // https://www.elevenforum.com/t/find-file-path-location-of-mounted-iso-and-img-in-windows-11.23231/
21 | item(title='View Source File #1'
22 | cmd-ps=`$imagePath = (Get-Volume @str.left(sel.root, 1) | Get-DiskImage).ImagePath; Write-Host $imagePath; Read-Host -Prompt '[Enter] to close'`)
23 | item(title='View Source File #2'
24 | cmd-ps=`(Get-DiskImage -DevicePath \\.\@str.trim(sel.root, '\')).ImagePath; Read-Host -Prompt '[Enter] to close'`)
25 | item(title='Eject' image=icon.eject cmd-ps=`$imagePath = (Get-Volume @str.left(sel.root, 1) | Get-DiskImage).ImagePath; Dismount-DiskImage -ImagePath $imagePath` window='hidden')
26 |
27 | item(title='Eject' image=icon.eject keys='Smart' commands {
28 | // not working good; navigate to "This PC" not possible
29 | cmd=command.navigate('C:\') && sleep(500) && keys.send(key.alt, key.up) wait=1,
30 | cmd-ps=`$imagePath = (Get-Volume @str.left(sel.root, 1) | Get-DiskImage).ImagePath; Dismount-DiskImage -ImagePath $imagePath` window='hidden' wait=1,
31 | }) }
32 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.folder.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.folder.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.folder.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.folder.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.folder.md:
--------------------------------------------------------------------------------
1 | # Folder Drive - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.drive.folder.nss`](/ex3.multifunction/all.drive.folder.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This Nilesoft Shell snippet adds a "Folder Drive" context menu that allows users to mount folders as virtual drives using the Windows SUBST command. It provides a convenient way to access frequently used folders as if they were physical drives, with options to mount, unmount, and manage these virtual drives.
14 |
15 | ## Key Features
16 | - Mount any folder as a virtual drive with a single click
17 | - Unmount virtual drives with tracking of original folder location
18 | - Navigate directly to the original folder location of any mounted drive
19 | - Display list of all currently mounted folder drives
20 | - Smart unmounting that returns to original folder location
21 | - Automatic desktop.ini file management for persistent tracking
22 |
23 | ## Menu Structure
24 | - Main entry: "Folder Drive" with a mount icon
25 | - For mounted virtual drives:
26 | - Unmount (removes the virtual drive)
27 | - Unmount Smart (navigates back to original folder before unmounting)
28 | - Open folder location (navigates to the original folder)
29 | - For folders and desktop:
30 | - Mount Folder submenu with available drive letters (A-Z)
31 | - Unavailable letters appear disabled
32 | - Mounted Folders section:
33 | - Shows all currently mounted folder drives with their source paths
34 | - Clicking any entry navigates to that drive
35 |
36 | ## Usage Notes
37 | - Right-click on a folder to mount it as a virtual drive
38 | - Right-click on a mounted drive to manage or unmount it
39 | - Virtual drives are temporary and exist only for the current session
40 | - They will be removed when you restart your computer
41 | - The system tracks the original folder path in a hidden desktop.ini file
42 | - Drive letters already in use by physical or other virtual drives appear disabled
43 | - Column breaks organize drive letters into logical groups
44 |
45 | ## Dependencies
46 | - Windows Operating System
47 | - Nilesoft Shell framework
48 | - Uses Windows built-in SUBST command for drive mapping
49 | - Tracks mounted drives using desktop.ini files
50 |
51 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
52 |
53 |
54 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.manage.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.manage.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.manage.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.manage.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.manage.md:
--------------------------------------------------------------------------------
1 | # Drive Manage - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.drive.manage.nss`](/ex3.multifunction/all.drive.manage.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This Nilesoft Shell snippet adds a comprehensive "Drive Manage" context menu for drives in Windows Explorer. It provides quick access to various disk management utilities and operations without requiring users to navigate through system tools.
14 |
15 | ## Key Features
16 | - Direct access to essential drive maintenance tools
17 | - Disk cleanup options for freeing up space
18 | - Disk optimization and defragmentation tools
19 | - Disk error checking with different severity options
20 | - Access to system disk management utilities
21 | - Dynamic menu that adapts based on drive type
22 |
23 | ## Menu Structure
24 | - Main entry: "Drive Manage" with a drive icon
25 | - Section 1: Maintenance tools (for regular drives only)
26 | - Disk Cleanup (general and drive-specific)
27 | - Optimize/Defragment options
28 | - Check Disk utilities (standard and dismounted modes)
29 | - Section 2: System management tools
30 | - Disk Management console access
31 | - Disk and Volumes settings (Windows 8 and newer)
32 |
33 | ## Usage Notes
34 | - Right-click on any drive in Explorer to access this menu
35 | - Some options require administrative privileges (automatically requested)
36 | - The "Dismounted" check disk option is disabled for system drives
37 | - CD/DVD drives and virtual mapped folders show a simplified menu
38 | - Options dynamically appear/disappear based on available system utilities
39 | - Keyboard shortcuts are available for certain operations
40 |
41 | ## Dependencies
42 | - Windows Operating System
43 | - Nilesoft Shell framework
44 | - Uses Windows built-in utilities:
45 | - cleanmgr.exe (Disk Cleanup)
46 | - dfrgui.exe (Disk Defragmenter)
47 | - chkdsk (Check Disk)
48 | - diskmgmt.msc (Disk Management)
49 | - Some features require Windows 8 or newer
50 |
51 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
52 |
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.manage.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Drive Manage' where=sel.type==5 or io.meta(sel, 'System.ItemTypeText')=='CD Drive' image=\uE253) {
5 | separator()
6 | $isCDDrive = io.meta(sel, 'System.ItemTypeText')=='CD Drive'
7 | $isMFolder = path.exists(ini.get('@sel\desktop.ini', 'Nilesoft', 'subst'))
8 | menu(where=!(isCDDrive or isMFolder) expanded='true') {
9 | // https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cleanmgr
10 | item(title=str.replace(str.res('cleanmgr.exe', -28), ' : ', '@"\t"') where=path.exists('@sys.bin\cleanmgr.exe') image
11 | tip='Launches Disk Cleanup to free up space'
12 | cmd='cleanmgr.exe' keys=all)
13 | item(title=str.res('cleanmgr.exe', -19) keys=sel.root where=path.exists('@sys.bin\cleanmgr.exe') image
14 | tip='Runs Disk Cleanup on the selected drive'
15 | cmd='cleanmgr.exe' args='/d @sel')
16 | // https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/defrag
17 | item(title=str.res('dfrgui.exe', -106) where=path.exists('@sys.bin\dfrgui.exe') image
18 | tip='Opens the Defragment and Optimize Drives utility'
19 | cmd='dfrgui.exe' tip=str.res('dfrgui.exe', -103))
20 | // https://www.elevenforum.com/t/add-optimize-to-context-menu-of-drives-in-windows-11.3216/
21 | item(title=str.res('shell32.dll', -22027) where=path.exists('@sys.bin\dfrgui.exe') image='dfrgui.exe'
22 | tip='Runs disk optimization via command line'
23 | admin cmd-line='/k defrag @str.left(@sel, 2) /A & pause & exit')
24 | // https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk?tabs=event-viewer
25 | item(title=str.res('shell32.dll', -28816) image=\uE0F6
26 | tip='Scans the drive for errors and attempts to fix them'
27 | admin cmd-line='/k chkdsk @str.left(@sel, 2) /r /f & pause & exit')
28 | item(title=str.res('shell32.dll', -28816) keys='dismounted' image=\uE0F6 vis=if(!path.isroot(sel) or str.contains(sel, sys.root), 'disable')
29 | tip='Performs a thorough disk check and attempts repairs (drive will be dismounted first)'
30 | admin cmd-line='/k chkdsk @str.left(@sel, 2) /r /f /x & pause & exit')
31 | separator()
32 | item(title='Disk Management' where=path.exists('@sys.bin\diskmgmt.msc') image=icon.settings
33 | tip='Opens the Disk Management utility to manage partitions'
34 | cmd='diskmgmt.msc')
35 | item(title='Disk and Volumes' where=sys.ver.major>=8 image=icon.settings
36 | tip='Opens Windows Settings for disk and volume management'
37 | cmd='ms-settings:disksandvolumes') }
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.swap.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.swap.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.swap.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.drive.swap.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.swap.md:
--------------------------------------------------------------------------------
1 | # Swap Drive Letter - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.drive.swap.nss`](/ex3.multifunction/all.drive.swap.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This snippet adds a "Swap Drive Letter" context menu option for local and USB drives in Windows Explorer. It allows users to quickly change a drive's letter assignment through a hierarchical menu without having to open Disk Management.
14 |
15 | ## Key Features
16 | - Changes drive letters directly from Windows Explorer context menu
17 | - Shows only available drive letters (disables letters already in use)
18 | - Works with both local disks and USB drives
19 | - Organizes letters into a clean, categorized menu
20 | - Executes required administrative commands automatically
21 | - Prevents changes to system root drive
22 |
23 | ## Menu Structure
24 | - Submenu with all letters A-Z
25 | - Letters that are already assigned to other drives appear disabled
26 |
27 | ## Usage Notes
28 | - Right-click on any drive in Explorer to access this menu
29 | - The script only appears for items identified as "Local Disk" or "USB Drive"
30 | - The system drive (usually C:) is protected from changes
31 | - Administrative privileges are required (automatically requested)
32 | - Changes take effect immediately
33 | - The menu will not appear for virtual drives created by the SUBST command
34 |
35 | ## Dependencies
36 | - Windows Operating System
37 | - Nilesoft Shell framework
38 | - Uses Windows built-in firewall management tools:
39 | - PowerShell's `Set-Partition` cmdlet for drive letter modification
40 |
41 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.drive.swap.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Swap Drive Letter' image=\uE1A9 vis=if(!path.isroot(sel) or str.contains(sel, sys.root), 'disable')
5 | where=(io.meta(sel, 'System.ItemTypeText')=='Local Disk' or io.meta(sel, 'System.ItemTypeText')=='USB Drive')
6 | and !path.exists(ini.get('@sel\desktop.ini', 'Nilesoft', 'subst'))) {
7 | item(title = 'A:' vis=if(path.exists('A:'),'disable') where=key.shift()
8 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter A; Exit' window='hidden')
9 | item(title = 'B:' vis=if(path.exists('B:'),'disable') where=key.shift()
10 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter B; Exit' window='hidden')
11 | item(title = 'C:' vis=if(path.exists('C:'),'disable') col
12 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter C; Exit' window='hidden')
13 | item(title = 'D:' vis=if(path.exists('D:'),'disable')
14 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter D; Exit' window='hidden')
15 | item(title = 'E:' vis=if(path.exists('E:'),'disable')
16 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter E; Exit' window='hidden')
17 | item(title = 'F:' vis=if(path.exists('F:'),'disable')
18 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter F; Exit' window='hidden')
19 | item(title = 'G:' vis=if(path.exists('G:'),'disable')
20 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter G; Exit' window='hidden')
21 | item(title = 'H:' vis=if(path.exists('H:'),'disable')
22 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter H; Exit' window='hidden')
23 | item(title = 'I:' vis=if(path.exists('I:'),'disable') col
24 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter I; Exit' window='hidden')
25 | item(title = 'J:' vis=if(path.exists('J:'),'disable')
26 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter J; Exit' window='hidden')
27 | item(title = 'K:' vis=if(path.exists('K:'),'disable')
28 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter K; Exit' window='hidden')
29 | item(title = 'L:' vis=if(path.exists('L:'),'disable')
30 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter L; Exit' window='hidden')
31 | item(title = 'M:' vis=if(path.exists('M:'),'disable')
32 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter M; Exit' window='hidden')
33 | item(title = 'N:' vis=if(path.exists('N:'),'disable')
34 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter N; Exit' window='hidden')
35 | item(title = 'O:' vis=if(path.exists('O:'),'disable') col
36 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter O; Exit' window='hidden')
37 | item(title = 'P:' vis=if(path.exists('P:'),'disable')
38 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter P; Exit' window='hidden')
39 | item(title = 'Q:' vis=if(path.exists('Q:'),'disable')
40 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter Q; Exit' window='hidden')
41 | item(title = 'R:' vis=if(path.exists('R:'),'disable')
42 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter R; Exit' window='hidden')
43 | item(title = 'S:' vis=if(path.exists('S:'),'disable')
44 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter S; Exit' window='hidden')
45 | item(title = 'T:' vis=if(path.exists('T:'),'disable')
46 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter T; Exit' window='hidden')
47 | item(title = 'U:' vis=if(path.exists('U:'),'disable') col
48 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter U; Exit' window='hidden')
49 | item(title = 'V:' vis=if(path.exists('V:'),'disable')
50 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter V; Exit' window='hidden')
51 | item(title = 'W:' vis=if(path.exists('W:'),'disable')
52 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter W; Exit' window='hidden')
53 | item(title = 'X:' vis=if(path.exists('X:'),'disable')
54 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter X; Exit' window='hidden')
55 | item(title = 'Y:' vis=if(path.exists('Y:'),'disable')
56 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter Y; Exit' window='hidden')
57 | item(title = 'Z:' vis=if(path.exists('Z:'),'disable')
58 | admin cmd-ps='-command Set-Partition -DriveLetter @str.left(@sel, 1) -NewDriveLetter Z; Exit' window='hidden') }
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.encrypt.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.security.encrypt.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.encrypt.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.security.encrypt.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.encrypt.md:
--------------------------------------------------------------------------------
1 | # Encrypt, Decrypt - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.security.encrypt.nss`](/ex3.multifunction/all.security.encrypt.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | This Nilesoft Shell snippet adds an "Encrypt, Decrypt" context menu for files and folders, providing easy access to Windows' built-in Encrypted File System (EFS) functionality. It allows users to quickly encrypt or decrypt files and folders directly from the right-click menu without using command line tools.
14 |
15 | ## Key Features
16 | - One-click file and folder encryption using Windows EFS
17 | - One-click decryption of EFS-encrypted items
18 | - Recursive encryption/decryption options for folders
19 | - Smart menu that adapts based on the current encryption status
20 | - EFS certificate management options
21 | - Support for multiple file selection
22 |
23 | ## Menu Structure
24 | - Main entry: "Encrypt, Decrypt" with a lock icon
25 | - For unencrypted items:
26 | - Encrypt (for files and folders)
27 | - Encrypt recursive (for folders only)
28 | - For encrypted items:
29 | - Decrypt (for files and folders)
30 | - Decrypt recursive (for folders only)
31 | - Certificate management:
32 | - View EFS cert (displays encryption certificate details)
33 | - Copy EFS cert (copies certificate thumbprint to clipboard)
34 |
35 | ## Usage Notes
36 | - Right-click on files or folders to access this menu
37 | - The menu dynamically shows only relevant options based on encryption status
38 | - Encrypted files are identified by checking for the "E" attribute
39 | - All operations use the Windows built-in cipher.exe command
40 | - The Explorer view is automatically refreshed after encryption/decryption
41 | - Command windows display progress and require confirmation before closing
42 | - Certificate operations work with the current user's EFS certificate
43 | - Multiple files can be selected for batch encryption/decryption
44 |
45 | ## Dependencies
46 | - Windows Operating System
47 | - Windows Pro or Enterprise edition required (EFS is not available in Home editions)
48 | - Nilesoft Shell framework
49 | - Uses Windows built-in cipher.exe command for EFS operations
50 | - Requires NTFS file system (EFS is not available on FAT/exFAT)
51 |
52 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.encrypt.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Encrypt, Decrypt' type='file|dir' tip='Encrypted File System (EFS)' mode='multiple' image=\uE0BA) {
5 | //> https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cipher
6 | //> https://www.elevenforum.com/t/encrypt-or-decrypt-files-and-folders-with-efs-in-windows-11.9738/
7 | //+ https://winaero.com/decrypt-files-folders-efs-windows-10/
8 | //+ https://winaero.com/how-to-add-encrypt-and-decrypt-commands-in-windows-10-right-click-menu/
9 | //+ https://ss64.com/nt/cipher.html
10 | $isEncrypted=str.contains(io.meta(sel,'System.FileAttributes'), 'E')
11 | item(title='Encrypt' where=!isEncrypted image=\uE19A
12 | tip='Encrypt the selected file(s) using EFS'
13 | commands { cmd-line='/k cipher /e @sel(true) & pause & exit' wait=1, cmd=command.refresh })
14 | item(title='Encrypt@"\t"recursive' where=!isEncrypted type='dir' mode='single' image=\uE19A
15 | tip='Encrypt all files in the selected folder and its subfolders using EFS'
16 | commands { cmd-line='/k cipher /e /s:@sel(true) & pause & exit' wait=1, cmd=command.refresh })
17 | item(title='Decrypt' where=isEncrypted image=\uE19B
18 | tip='Decrypt the selected file(s) using EFS'
19 | commands { cmd-line='/k cipher /d @sel(true) & pause & exit' wait=1, cmd=command.refresh })
20 | item(title='Decrypt@"\t"recursive' where=isEncrypted type='dir' mode='single' image=\uE19B
21 | tip='Decrypt all files in the selected folder and its subfolders using EFS'
22 | commands { cmd-line='/k cipher /d /s:@sel(true) & pause & exit' wait=1, cmd=command.refresh })
23 | item(title='View EFS cert' image=\uE19C
24 | tip='Display the encryption certificate used for EFS'
25 | cmd-line='/k cipher /y & pause & exit')
26 | item(title='Copy EFS cert' image=\uE19C
27 | tip='Copy the encryption certificate thumbprint to the clipboard'
28 | cmd-line='/c cipher /y | findstr /r /c:"[0-9A-Fa-f] [0-9A-Fa-f]" | clip & exit' window='hidden') }
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.env.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.security.env.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.env.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.security.env.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.env.md:
--------------------------------------------------------------------------------
1 | # Environment Path Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.security.env.nss`](/ex3.multifunction/all.security.env.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | The Environment Path Menu provides a graphical interface for managing Windows environment variables and allowing users to modify system paths directly from the context menu.
14 |
15 | ## Key Features
16 | - Launch Environment Variables GUI editor
17 | - Add/Remove current directory to %PATH%
18 |
19 | ## Menu Structure
20 | - ENV GUI - Opens system Environment Variables editor
21 | - Add/Remove from %PATH% - Toggle current directory in %PATH%
22 | - Path Viewers (hidden)
23 | - Default %PATH%
24 | - Current User %PATH%
25 | - Local Machine %PATH%
26 | - Combined LM+CU %PATH%
27 |
28 | ## Usage Notes
29 | - Explorer restart needed for changes to take effect
30 | - Shift key combinations available for different %PATH% viewing options
31 | - Safety confirmation prompt when removing from %PATH%
32 |
33 | ## Technical Details
34 | - Registry locations:
35 | - Current User: `HKCU\Environment`
36 | - System: `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment`
37 |
38 | ## Dependencies
39 | - Windows Operating System
40 | - Nilesoft Shell framework
41 | - System DLLs:
42 | - sysdm.cpl
43 | - imageres.dll
44 |
45 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.env.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 | // To-Do: make exceptions for system folders
4 |
5 | menu(image=icon.copy_path title='Environment Path' mode='single' type='dir|back.dir|drive|back.drive|desktop') {
6 | //+ https://learn.microsoft.com/en-us/windows/deployment/usmt/usmt-recognized-environment-variables
7 | item(title='ENV GUI' keys='SHIFT edit sys env' tip='Edit Environment Variables' image='@sys.bin\imageres.dll,156' sep='both'
8 | admin=keys.shift() cmd='rundll32.exe' args='sysdm.cpl,EditEnvironmentVariables')
9 |
10 | $reg_cu = reg.get('HKCU\Environment', 'PATH')
11 | $reg_lm = reg.get('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'PATH')
12 | // does not work for drives
13 | $is_in_path = str.contains(reg_cu, sel+';') or str.contains(reg_cu, sel+'\;') or str.end(reg_cu, sel)
14 | $add_to_path = str.replace('@reg_cu;@sel', ';;', ';').trimstart(';')
15 | $remove_from_path = str.replace(reg_cu, sel, '').replace('\;', ';').replace(';;', ';')
16 |
17 | /* need explorer restart to take effect
18 | item(title=if(is_in_path, 'Remove from ', 'Add to ')+"%PATH%" type='dir'
19 | admin cmd-line='/c @if(is_in_path, if(msg('Are you sure you want to remove this path?', 'NileSoft Shell', msg.yesno | msg.warning)==msg.idyes, 'setx PATH "@remove_from_path" & pause & exit'), 'setx PATH "@add_to_path" & pause & exit')')
20 | */
21 | item(title=if(is_in_path, 'Remove path from ', 'Add path to ')+"%PATH%" type='dir|dir.back' image=if(is_in_path, \uE171, \uE172)
22 | admin cmd=if(is_in_path, if(msg('Are you sure you want to remove this path?', 'NileSoft Shell', msg.yesno | msg.warning)==msg.idyes, reg.set('HKCU\Environment', 'PATH', remove_from_path)), reg.set('HKCU\Environment', 'PATH', add_to_path)))
23 |
24 | separator()
25 | item(title='Check '+"%PATH%" keys='default' where=keys.shift() image=\uE187 cmd=msg(str.join(str.split('%path%', ';'), "\n")))
26 | item(title='Check '+"%PATH%" keys='CU' where=keys.shift() image=\uE187 cmd=msg(str.join(str.split(reg_cu, ';'), "\n")))
27 | item(title='Check '+"%PATH%" keys='LM' where=keys.shift() image=\uE187 cmd=msg(str.join(str.split(reg_lm, ';'), "\n")))
28 | item(title='Check '+"%PATH%" keys='LM+CU' where=keys.shift() image=\uE187 cmd=msg(str.join(str.split(reg_lm, ';'), "\n") + "\n\n" + str.join(str.split(reg_cu, ';'), "\n")))
29 | }
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.firewall.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/all.security.firewall.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.firewall.md:
--------------------------------------------------------------------------------
1 | # Firewall - Nilesoft Shell Snippet
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.security.firewall.nss`](/ex3.multifunction/all.security.firewall.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | This Nilesoft Shell snippet adds a "Firewall" context menu for executable files that allows quick management of Windows Firewall rules. Users can easily allow or block network access for applications without needing to navigate through the Windows Firewall interface.
13 |
14 | ## Key Features
15 | - One-click application firewall rule creation
16 | - Support for both inbound and outbound rules simultaneously
17 | - Options for allowing application network access
18 | - Options for blocking application network access
19 | - Easy removal of existing firewall rules
20 | - Rule verification capabilities
21 | - Multiple implementation methods (PowerShell and netsh)
22 | - Direct access to Windows Firewall management consoles
23 |
24 | ## Menu Structure
25 | - Main entry: "Firewall" with a custom shield icon
26 | - PowerShell implementation section:
27 | - Allow in Windows Firewall
28 | - Block in Windows Firewall
29 | - Remove From Windows Firewall
30 | - Netsh implementation section:
31 | - Allow in Windows Firewall
32 | - Block in Windows Firewall
33 | - Remove From Windows Firewall
34 | - Check the Rule in Windows Firewall
35 | - Utilities section:
36 | - Windows Firewall (wf.msc)
37 | - Windows Defender Firewall (firewall.cpl)
38 |
39 | ## Usage Notes
40 | - Right-click on executable files (.exe, .cmd, .bat, .msi, .ps1, .vbs) to access this menu
41 | - All firewall operations require administrative privileges (automatically requested)
42 | - Rules are created for both inbound and outbound directions
43 | - Rule names are automatically generated based on the file name
44 | - The menu includes two implementation methods:
45 | - PowerShell commands (New-NetFirewallRule)
46 | - Legacy netsh commands
47 | - Command windows are hidden by default except for verification
48 |
49 | ## Dependencies
50 | - Windows Operating System
51 | - Nilesoft Shell framework
52 | - Uses Windows built-in firewall management tools:
53 | - PowerShell's NetFirewall module
54 | - netsh advfirewall commands
55 | - Windows Firewall console (wf.msc)
56 | - Windows Defender Firewall control panel (firewall.cpl)
57 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/all.security.firewall.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 | // To-Do: Verify if PowerShell commands require escape characters.
4 | // To-Do: Ensure compatibility with .lnk files.
5 | // To-Do: Find the correct netsh commands to open and close ports.
6 |
7 | $svg_firewall=image.svg('')
9 | menu(title='Firewall' type='file' find='.exe|.cmd|.bat|.msi|.ps1|.vbs' image=svg_firewall) {
10 | //> https://learn.microsoft.com/en-us/windows-server/networking/technologies/netsh/netsh-contexts
11 | //> https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/netsh-advfirewall-firewall-control-firewall-behavior
12 | $name_allow='Allow @sel.name'
13 | $name_block='Block @sel.name'
14 | item(image=image.res('@sys.bin\comres.dll, 8') title='Allow in Windows Firewall'
15 | admin cmd-ps='New-NetFirewallRule -DisplayName \"@name_allow\" -Program @sel(true) -Direction Outbound -Action Allow; New-NetFirewallRule -DisplayName \"@name_allow\" -Program @sel(true) -Direction Inbound -Action Allow' window='hidden')
16 | item(image=image.res('@sys.bin\comres.dll,10') title='Block in Windows Firewall'
17 | admin cmd-ps='New-NetFirewallRule -DisplayName \"@name_block\" -Program @sel(true) -Direction Outbound -Action Block; New-NetFirewallRule -DisplayName \"@name_block\" -Program @sel(true) -Direction Inbound -Action Block' window='hidden')
18 | item(image=image.res('@sys.bin\comres.dll,13') title='Remove From Windows Firewall'
19 | admin cmd-ps='Get-NetFirewallRule -DisplayName \"@name_allow\" | Remove-NetFirewallRule; Get-NetFirewallRule -DisplayName \"@name_block\" | Remove-NetFirewallRule' window='hidden')
20 | separator()
21 | item(image=image.res('@sys.bin\imageres.dll, 101') title='Allow in Windows Firewall' keys='netsh'
22 | admin cmd-line='/c netsh advfirewall firewall add rule name="@name_allow" program=sel(true) dir=in action=allow && netsh advfirewall firewall add rule name="@name_allow" program=sel(true) dir=out action=allow' window='hidden')
23 | item(image=image.res('@sys.bin\imageres.dll, 100') title='Block in Windows Firewall' keys='netsh'
24 | admin cmd-line='/c netsh advfirewall firewall add rule name="@name_block" program=sel(true) dir=in action=block && netsh advfirewall firewall add rule name="@name_block" program=sel(true) dir=out action=block' window='hidden')
25 | item(image=image.res('@sys.bin\imageres.dll, 102') title='Remove From Windows Firewall' keys='netsh'
26 | admin cmd-line='/k netsh advfirewall firewall delete rule name="@name_allow" & netsh advfirewall firewall delete rule name="@name_block"' window='hidden')
27 | item(image=image.res('@sys.bin\imageres.dll, 099') title='Check the Rule in Windows Firewall' keys='netsh'
28 | admin cmd-line='/k netsh advfirewall firewall show rule name="@name_allow" & netsh advfirewall firewall show rule name="@name_block" & pause & exit')
29 | separator()
30 | item(image=inherit title='Windows Firewall' where=path.exists('@sys.bin\wf.msc')
31 | cmd='wf.msc')
32 | item(image=inherit title='Windows Defender Firewall' where=path.exists('@sys.bin\firewall.cpl')
33 | cmd='control' args='firewall.cpl') }
--------------------------------------------------------------------------------
/ex3.multifunction/commands.item.options.nss:
--------------------------------------------------------------------------------
1 | menu(title='Item Options' type='~Desktop' mode='single' image=icon.folder_options) {
2 | item(where=!wnd.is_desktop title=title.folder_options image=icon.folder_options cmd=command.folder_options)
3 | }
--------------------------------------------------------------------------------
/ex3.multifunction/commands.links.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/commands.links.0.png
--------------------------------------------------------------------------------
/ex3.multifunction/commands.links.md:
--------------------------------------------------------------------------------
1 | # Create NTFS Links
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`commands.links.ps.nss`](/ex3.multifunction/commands.links.ps.nss)
7 | or
8 | [`commands.links.cmd.nss (unfinished)`](/ex3.multifunction/commands.links.cmd.nss)
9 |
10 | ### Screenshot:
11 | 
12 |
13 | ## Overview
14 |
15 | Comprehensive Nilesoft Shell extension for creating different types of file system links in Windows.
16 |
17 | ## Key Features
18 | - Create symbolic links for files and directories
19 | - Create hard links for files
20 | - Create soft links (junctions) for directories
21 | - Link creation from various sources:
22 | - Current selection
23 | - Clipboard path
24 | - Specific file/folder selection
25 |
26 | ## Menu Structure
27 | 1. **Symbolic Links**
28 | - Create link from current item
29 | - Create link to specific location
30 | - Create link from file/folder
31 | - Create link from clipboard path
32 |
33 | 2. **Hard Links**
34 | - Create hard link from current file
35 | - Create hard link to specific location
36 | - Create hard link from selected file
37 | - Create hard link from clipboard file path
38 |
39 | 3. **Soft Links (Junctions)**
40 | - Create soft link from current directory
41 | - Create soft link to specific location
42 | - Create soft link from selected folder
43 | - Create soft link from clipboard folder path
44 |
45 | ## Usage Notes
46 | - Links can span different volumes
47 | - Supports linking to network shares
48 | - Broken links remain but will error on access
49 |
50 | ## Dependencies
51 | - Windows Operating System
52 | - Nilesoft Shell framework
53 | - PowerShell or Windows Command Prompt
54 |
55 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/commands.links.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/commands.links.png
--------------------------------------------------------------------------------
/ex3.multifunction/commands.renamer.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/commands.renamer.1.png
--------------------------------------------------------------------------------
/ex3.multifunction/commands.renamer.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex3.multifunction/commands.renamer.2.png
--------------------------------------------------------------------------------
/ex3.multifunction/commands.renamer.md:
--------------------------------------------------------------------------------
1 | # Fast Renamer
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`commands.renamer.nss`](/ex3.multifunction/commands.renamer.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | Comprehensive Nilesoft Shell extension for file and folder renaming, providing multiple renaming functionalities through an intuitive context menu.
14 |
15 | ## Key Features
16 | - Single and multiple file/folder renaming
17 | - Case conversion (lowercase, uppercase, mixed-case)
18 | - Space and punctuation manipulation
19 | - Prefix and suffix addition
20 | - Extension changing
21 | - Media file metadata-based renaming (for MP3 files) (example only)
22 |
23 | ## Menu Structure
24 |
25 | 1. **Basic Renaming**
26 | - Rename single item
27 | - Rename multiple items
28 | - Rename with automatic counter
29 |
30 | 2. **Case Conversion**
31 | - Lowercase
32 | - Uppercase
33 | - Mixed-Case
34 |
35 | 3. **Space/Punctuation Handling**
36 | - Strip double spaces
37 | - Convert dots to spaces
38 | - Convert spaces to dots
39 | - Convert underscores to spaces
40 | - Convert spaces to underscores
41 |
42 | 4. **Name Modification**
43 | - Add prefix
44 | - Add suffix
45 |
46 | 5. **Media-Specific Renaming**
47 | - MP3 file renaming based on metadata (artist, title, album)
48 |
49 | ## Usage Notes
50 | - Use SHIFT key when renaming with counter to start numbering from 1
51 | - Handles file extensions automatically
52 |
53 | ## Dependencies
54 | Required Components:
55 | - Windows Operating System
56 | - Nilesoft Shell framework
57 |
58 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex3.multifunction/commands.shortcut.nss:
--------------------------------------------------------------------------------
1 | item(title='Create shortcut@if(sel.count>1, 's')' mode=multiple type='file|dir' image=icon.create_shortcut
2 | cmd=for(i=0, i1
47 | image cmd=exe_wsl args='-d "@distro_guids[0]" --cd "@sel.dir"')
48 | item(title='Open in ' + distro_names[1] where=len(distro_guids)>1
49 | image cmd=exe_wsl args='-d "@distro_guids[1]" --cd "@sel.dir"')
50 | item(title='Open in ' + distro_names[2] where=len(distro_guids)>2
51 | image cmd=exe_wsl args='-d "@distro_guids[2]" --cd "@sel.dir"')
52 | item(title='Open in ' + distro_names[3] where=len(distro_guids)>3
53 | image cmd=exe_wsl args='-d "@distro_guids[3]" --cd "@sel.dir"')
54 | item(title='Open in ' + distro_names[4] where=len(distro_guids)>4
55 | image cmd=exe_wsl args='-d "@distro_guids[4]" --cd "@sel.dir"')
56 | item(title='Open in ' + distro_names[5] where=len(distro_guids)>5
57 | image cmd=exe_wsl args='-d "@distro_guids[5]" --cd "@sel.dir"')
58 | }
59 |
60 | separator()
61 | item(title='Git CMD' where=path.exists(path.combine(sys.prog, 'Git', 'git-cmd.exe'))
62 | image cmd=path.combine(sys.prog, 'Git', 'git-cmd.exe') args='--cd-to-home & title Git CMD')
63 |
64 | separator()
65 | }
66 |
67 | modify(where=this.id==id.open_powershell_window_here pos='bottom' menu='Terminal' vis=keys.shift())
68 | modify(where=this.name=='open linux shell here' image='wsl.exe' pos='bottom' menu='Terminal' vis=keys.shift())
69 | remove(clsid='{9F156763-7844-4DC4-B2B1-901F640F5155}|{02DB545A-3E20-46DE-83A5-1329B1E88B6B}') // Open in Windows Terminal; Open in Terminal
70 | modify(where=this.name=='open in terminal' || this.name=='open in terminal preview' pos='bottom' menu='Terminal' vis=if(str.contains(sel.path, '[') or str.contains(sel.path, ']'), 'disabled') vis=keys.shift())
71 |
--------------------------------------------------------------------------------
/ex4.terminal/all.terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex4.terminal/all.terminal.png
--------------------------------------------------------------------------------
/ex5.goto/goto.address.md:
--------------------------------------------------------------------------------
1 | # Go To Address Bar Menu for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`goto.address.nss`](/ex5.goto/goto.address.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | The Go To Address Bar Menu is a Nilesoft Shell extension that provides quick access to your File Explorer address bar history. This implementation offers an efficient way to access previously visited locations through a convenient context menu, enhancing Windows File Explorer navigation capabilities.
13 |
14 | ## Key Features
15 | - Access to up to 26 recently typed paths in File Explorer
16 | - Intelligent path display with simplified formatting
17 | - Full path tooltips on hover
18 | - Smart navigation within existing or new windows
19 | - Context-aware behavior in File Explorer
20 | - One-click history clearing option
21 | - Path existence verification before display
22 |
23 | ## Menu Structure
24 | 1. **History Entries**
25 | - Shows up to 26 most recent typed paths (url1 through url26)
26 | - Each entry displays in simplified format:
27 | - Root drives shown in full (e.g., "C:\")
28 | - Other paths shown as "...\ParentFolder\CurrentFolder"
29 | - Full paths available as tooltips
30 |
31 | 2. **Management Options**
32 | - "Clear Address Bar history" option at the bottom
33 |
34 | ## Usage Notes
35 | - Menu appears only when address bar history exists
36 | - Click normally to navigate in current window
37 | - Hold Shift to open location in new window
38 | - Tooltips show full paths on hover
39 | - Entries only appear if paths still exist
40 | - History can be cleared through the menu interface
41 |
42 | ## Technical Details
43 | - **Registry Path**: `HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths`
44 |
45 | ## Dependencies
46 | - Windows Operating System
47 | - Nilesoft Shell framework
48 | - Windows history tracking enabled
49 |
50 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex5.goto/goto.address.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.address.png
--------------------------------------------------------------------------------
/ex5.goto/goto.aio.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(expanded='true' where=keys.shift() type='back' )
5 | {
6 | separator()
7 | import 'goto.temp.nss'
8 | import 'goto.temp.nss'
9 | import 'goto.temp.nss'
10 | separator()
11 | import 'goto.reg.nss'
12 | import 'goto.run.nss'
13 | import 'goto.address.nss'
14 | import 'goto.v2.nss'
15 | separator()
16 | }
17 |
--------------------------------------------------------------------------------
/ex5.goto/goto.aio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.aio.png
--------------------------------------------------------------------------------
/ex5.goto/goto.reg.md:
--------------------------------------------------------------------------------
1 | # Go To Menu for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`goto.reg.nss`](/ex5.goto//goto.reg.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | A Nilesoft Shell script that adds a "Go To" context menu to Windows Explorer, allowing users to save and quickly navigate to up to 10 frequently accessed locations.
13 |
14 | ## Key Features
15 | - Store up to 10 directory paths in the Windows Registry
16 | - Quick navigation to saved locations
17 | - Path display shows simplified format for better readability
18 | - Automatic path validation before displaying menu items
19 | - Clear function to remove all saved paths
20 |
21 | ## Menu Structure
22 | - "Add current path" option with counter (x/10)
23 | - List of saved paths (up to 5 entries)
24 | - Clear option to remove all saved paths
25 |
26 | ## Usage Notes
27 | - Click normally to navigate in current window
28 | - Hold Shift to open location in new window
29 | - Duplicate paths are prevented from being added
30 | - Invalid or non-existent paths are automatically hidden
31 |
32 | ## Technical Details
33 | - **Registry Path**: `HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths`
34 |
35 | ## Dependencies
36 | - Windows Operating System
37 | - Nilesoft Shell framework
38 |
39 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex5.goto/goto.reg.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Go To@"\t"Registry' mode=mode.multiple image=\uE14A) {
5 | $reg_path = 'HKEY_CURRENT_USER\Software\Nilesoft\Shell\GoTo'
6 | $dir_max = 9
7 | $counter = len(reg.values(reg_path))
8 | $p00=null
9 | $p01=null
10 | $p02=null
11 | $p03=null
12 | $p04=null
13 | $p05=null
14 | $p06=null
15 | $p07=null
16 | $p08=null
17 | $p09=null
18 | menu(expanded='true' title={
19 | p00=reg.get(reg_path, 0)
20 | p01=reg.get(reg_path, 1)
21 | p02=reg.get(reg_path, 2)
22 | p03=reg.get(reg_path, 3)
23 | p04=reg.get(reg_path, 4)
24 | p05=reg.get(reg_path, 5)
25 | p06=reg.get(reg_path, 6)
26 | p07=reg.get(reg_path, 7)
27 | p08=reg.get(reg_path, 8)
28 | p09=reg.get(reg_path, 9)
29 | }) {
30 | item(title='Add current path' keys=counter+'/'+ toint(dir_max+1)
31 | type='drive|dir|back.drive|back.dir|desktop' image=icon.new_folder sep='both'
32 | vis=if(counter>=dir_max or sel==p00 or sel==p01 or sel==p02 and p03 or sel==p04 or sel==p05 or sel==p06 or sel==p07 or sel==p08 or sel==p09, 'disable')
33 | cmd=reg.set(reg_path, counter, sel, reg.sz))
34 | }
35 | item(title=if(len(path.location.name(p00))==1, p00, '...\@path.location.name(p00)\@path.title(p00)') where=path.exists(p00) image=\uE1F4 tip=p00 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p00), p00))
36 | item(title=if(len(path.location.name(p01))==1, p01, '...\@path.location.name(p01)\@path.title(p01)') where=path.exists(p01) image=\uE1F4 tip=p01 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p01), p01))
37 | item(title=if(len(path.location.name(p02))==1, p02, '...\@path.location.name(p02)\@path.title(p02)') where=path.exists(p02) image=\uE1F4 tip=p02 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p02), p02))
38 | item(title=if(len(path.location.name(p03))==1, p03, '...\@path.location.name(p03)\@path.title(p03)') where=path.exists(p03) image=\uE1F4 tip=p03 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p03), p03))
39 | item(title=if(len(path.location.name(p04))==1, p04, '...\@path.location.name(p04)\@path.title(p04)') where=path.exists(p04) image=\uE1F4 tip=p04 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p04), p04))
40 | item(title=if(len(path.location.name(p05))==1, p05, '...\@path.location.name(p05)\@path.title(p05)') where=path.exists(p05) image=\uE1F4 tip=p05 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p05), p05))
41 | item(title=if(len(path.location.name(p06))==1, p06, '...\@path.location.name(p06)\@path.title(p06)') where=path.exists(p06) image=\uE1F4 tip=p06 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p06), p06))
42 | item(title=if(len(path.location.name(p07))==1, p07, '...\@path.location.name(p07)\@path.title(p07)') where=path.exists(p07) image=\uE1F4 tip=p07 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p07), p07))
43 | item(title=if(len(path.location.name(p08))==1, p08, '...\@path.location.name(p08)\@path.title(p08)') where=path.exists(p08) image=\uE1F4 tip=p08 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p08), p09))
44 | item(title=if(len(path.location.name(p09))==1, p09, '...\@path.location.name(p09)\@path.title(p09)') where=path.exists(p09) image=\uE1F4 tip=p09 cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(p09), p09))
45 | item(title='Clear' where=counter>0 image=\uE0CE sep='both' cmd=reg.delete(reg_path) )
46 | }
--------------------------------------------------------------------------------
/ex5.goto/goto.reg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.reg.png
--------------------------------------------------------------------------------
/ex5.goto/goto.run.md:
--------------------------------------------------------------------------------
1 | # Go To Run Menu for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`goto.run.nss`](/ex5.goto/goto.run.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 |
12 | ## Overview
13 | The Go To Run Menu is a specialized Nilesoft Shell extension that provides quick access to your Run dialog history. This implementation offers an efficient way to access and manage your previously executed Run commands, enhancing the Windows Run functionality with a convenient history feature.
14 |
15 | ## Key Features
16 | - Access to the last 16 Run command entries
17 | - Ability to clear Run command history
18 | - Clean command display with stripped formatting
19 |
20 | ## Menu Structure
21 | 1. **History Entries**
22 | - Displays up to 16 most recent Run commands
23 | - Entries are automatically populated from the Windows Registry
24 | - Each entry is clickable and will re-execute the command
25 |
26 | 2. **Management Options**
27 | - "Clear Run history" option at the bottom
28 |
29 | ## Usage Notes
30 | - Menu appears only when Run history exists in the registry
31 | - Requires Windows Run command tracking to be enabled
32 | - History can be cleared through the menu interface
33 | - Settings can be adjusted through Windows Privacy settings
34 |
35 | ## Dependencies
36 | - Windows Operating System
37 | - Nilesoft Shell framework
38 | - Windows history tracking enabled
39 |
40 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex5.goto/goto.run.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | /* eanble/desable or reset the entries in the Run dialog box
5 | Settings > Privacy & security > General > Let Windows improve Start and search results by tracking app launches
6 | $enabel_tracking = reg.get('HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', 'Start_TrackProgs')
7 | */
8 | menu(title='Go To@"\t"RUN' type='*' mode=mode.multiple
9 | where=reg.exists('HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU', 'a') image=\uE14A) {
10 | $reg_path = 'HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU'
11 | $runO = null
12 | menu(title={ runO = reg.get(reg_path,'MRUList') } expanded='true') {
13 | // path.type corrently not working to determine file, dir, comand for better icons
14 | item(title=str.replace(reg.get(reg_path,runO[00]), '\1', '') where=reg.exists(reg_path, runO[00]) image cmd=sys.expand(this.title))
15 | item(title=str.replace(reg.get(reg_path,runO[01]), '\1', '') where=reg.exists(reg_path, runO[01]) image cmd=sys.expand(this.title))
16 | item(title=str.replace(reg.get(reg_path,runO[02]), '\1', '') where=reg.exists(reg_path, runO[02]) image cmd=sys.expand(this.title))
17 | item(title=str.replace(reg.get(reg_path,runO[03]), '\1', '') where=reg.exists(reg_path, runO[03]) image cmd=sys.expand(this.title))
18 | item(title=str.replace(reg.get(reg_path,runO[04]), '\1', '') where=reg.exists(reg_path, runO[04]) image cmd=sys.expand(this.title))
19 | item(title=str.replace(reg.get(reg_path,runO[05]), '\1', '') where=reg.exists(reg_path, runO[05]) image cmd=sys.expand(this.title))
20 | item(title=str.replace(reg.get(reg_path,runO[06]), '\1', '') where=reg.exists(reg_path, runO[06]) image cmd=sys.expand(this.title))
21 | item(title=str.replace(reg.get(reg_path,runO[07]), '\1', '') where=reg.exists(reg_path, runO[07]) image cmd=sys.expand(this.title))
22 | item(title=str.replace(reg.get(reg_path,runO[08]), '\1', '') where=reg.exists(reg_path, runO[08]) image cmd=sys.expand(this.title))
23 | item(title=str.replace(reg.get(reg_path,runO[09]), '\1', '') where=reg.exists(reg_path, runO[09]) image cmd=sys.expand(this.title))
24 | item(title=str.replace(reg.get(reg_path,runO[10]), '\1', '') where=reg.exists(reg_path, runO[10]) image cmd=sys.expand(this.title))
25 | item(title=str.replace(reg.get(reg_path,runO[11]), '\1', '') where=reg.exists(reg_path, runO[11]) image cmd=sys.expand(this.title))
26 | item(title=str.replace(reg.get(reg_path,runO[12]), '\1', '') where=reg.exists(reg_path, runO[12]) image cmd=sys.expand(this.title))
27 | item(title=str.replace(reg.get(reg_path,runO[13]), '\1', '') where=reg.exists(reg_path, runO[13]) image cmd=sys.expand(this.title))
28 | item(title=str.replace(reg.get(reg_path,runO[14]), '\1', '') where=reg.exists(reg_path, runO[14]) image cmd=sys.expand(this.title))
29 | item(title=str.replace(reg.get(reg_path,runO[15]), '\1', '') where=reg.exists(reg_path, runO[15]) image cmd=sys.expand(this.title)) }
30 | item(title='Clear Run history' image=image.glyph(\uE0CE) sep='both' cmd=reg.delete(reg_path)) }
31 |
--------------------------------------------------------------------------------
/ex5.goto/goto.run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.run.png
--------------------------------------------------------------------------------
/ex5.goto/goto.temp.md:
--------------------------------------------------------------------------------
1 | # Go To Menu for Nilesoft Shell
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`goto.temp.nss`](/ex5.goto/goto.temp.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 |
12 | ## Overview
13 | A Nilesoft Shell script that adds a "Go To" context menu to Windows Explorer, allowing users to save and quickly navigate to up to 10 frequently accessed locations.
14 |
15 | ## Dependencies
16 | - Windows Operating System
17 | - Nilesoft Shell framework
18 |
19 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex5.goto/goto.temp.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Go To@"\t"Temporary' type='*' mode=mode.multiple image=\uE14A) {
5 | // default order
6 | $do='0123456789'
7 | // next item
8 | $ni = 0
9 | // item paths
10 | $ip = ''
11 |
12 | item(title='Add current path' keys=ni+'/'+len(do) type='drive|dir|back.drive|back.dir|Desktop'
13 | vis=if(len(do)<=ni or str.contains(str.join(ip,'|')+'|', sel+'|'), 'disable', 'normal') sep='both' image=icon.new_folder
14 | cmd={ ip=[ if(ni==0, sel, ip[0]), if(ni==1, sel, ip[1]), if(ni==2, sel, ip[2]), if(ni==3, sel, ip[3]), if(ni==4, sel, ip[4]),
15 | if(ni==5, sel, ip[5]), if(ni==6, sel, ip[6]), if(ni==7, sel, ip[7]), if(ni==8, sel, ip[8]), if(ni==9, sel, ip[9])] ni+=1 })
16 | item(title=ip[toint(do[0])] where=path.exists(ip[toint(do[0])]) image=\uE1F4 commands{
17 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
18 | /*no need to change the order*/})
19 | item(title=ip[toint(do[1])] where=path.exists(ip[toint(do[1])]) image=\uE1F4 commands{
20 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
21 | cmd={ do=str.get(do, 1)+str.remove(do, 1, 1) }})
22 | item(title=ip[toint(do[2])] where=path.exists(ip[toint(do[2])]) image=\uE1F4 commands{
23 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
24 | cmd={ do=str.get(do, 2)+str.remove(do, 2, 1) }})
25 | item(title=ip[toint(do[3])] where=path.exists(ip[toint(do[3])]) image=\uE1F4 commands{
26 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
27 | cmd={ do=str.get(do, 3)+str.remove(do, 3, 1) }})
28 | item(title=ip[toint(do[4])] where=path.exists(ip[toint(do[4])]) image=\uE1F4 commands{
29 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
30 | cmd={ do=str.get(do, 4)+str.remove(do, 4, 1) }})
31 | item(title=ip[toint(do[5])] where=path.exists(ip[toint(do[5])]) image=\uE1F4 commands{
32 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
33 | cmd={ do=str.get(do, 5)+str.remove(do, 5, 1) }})
34 | item(title=ip[toint(do[6])] where=path.exists(ip[toint(do[6])]) image=\uE1F4 commands{
35 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
36 | cmd={ do=str.get(do, 6)+str.remove(do, 6, 1) }})
37 | item(title=ip[toint(do[7])] where=path.exists(ip[toint(do[7])]) image=\uE1F4 commands{
38 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
39 | cmd={ do=str.get(do, 7)+str.remove(do, 7, 1) }})
40 | item(title=ip[toint(do[8])] where=path.exists(ip[toint(do[8])]) image=\uE1F4 commands{
41 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
42 | cmd={ do=str.get(do, 8)+str.remove(do, 8, 1) }})
43 | item(title=ip[toint(do[9])] where=path.exists(ip[toint(do[9])]) image=\uE1F4 commands{
44 | cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(this.title), this.title),
45 | cmd={ do=str.get(do, 9)+str.remove(do, 9, 1) }})
46 | item(title='Clear' where=ni>0 image=image.glyph(\uE0CE) sep='both' cmd={ do='0123456789' ni=0 ip='' })
47 | // where=keys.shift()
48 | item(title='Set NS sys...' image=image.glyph(\uE0F9) cmd={ do='0123456789' ip=[user.desktop, user.downloads, user.documents, user.pictures] ni=len(ip) })
49 | item(title='Set NS user...' image=image.glyph(\uE0F9) cmd={ do='01234' ip=['sys.dir', sys.bin, sys.prog, sys.prog32, sys.users] ni=len(ip) })
50 | item(title='Set Example...' image=image.glyph(\uE0F9) cmd={ do='0123456789' ip=['C:', user.desktop, '%temp%', sys.prog, sys.bin, '@user.localappdata\Programs\Microsoft VS Code'] ni=len(ip) }) }
--------------------------------------------------------------------------------
/ex5.goto/goto.temp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.temp.png
--------------------------------------------------------------------------------
/ex5.goto/goto.v2.md:
--------------------------------------------------------------------------------
1 | # Go To Menu for Nilesoft Shell (Improved version)
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`goto.v2.nss`](/ex5.goto/goto.v2.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | The Go To Menu is a customizable navigation enhancement for Windows that provides quick access to essential system folders, Control Panel items, and Windows Settings. Based on the original Nilesoft Shell snippet.
13 |
14 | ## Key Features
15 | - Quick access to common Windows system folders
16 | - Direct navigation to user-specific directories
17 | - Integrated Control Panel and Settings access
18 | - Context-aware navigation behavior in File Explorer windows
19 | - Shift-key modifier support for alternative navigation methods
20 |
21 | ## Menu Structure
22 | 1. **Folders Section**
23 | - System directories (Windows, System, Program Files)
24 | - User directories (Desktop, Downloads, Pictures, etc.)
25 | - Special folders (ProgramData, Applications)
26 |
27 | 2. **Control Panel Access**
28 | - Direct Control Panel launcher
29 | - All Control Panel Items view
30 | - Run command shortcut
31 |
32 | 3. **Windows Settings** (Windows 10+ only)
33 | - System settings shortcuts
34 | - Personalization options
35 | - Network configurations
36 | - App management
37 |
38 | ## Usage Notes
39 | - When used in File Explorer windows:
40 | - Default click navigates within the current window
41 | - Holding Shift while clicking opens in a new window
42 | - Settings shortcuts require Windows 10 or later
43 | - Menu supports multiple selection mode
44 |
45 | ## Dependencies
46 | - Windows Operating System
47 | - Nilesoft Shell framework
48 | - Windows 10 or later for full Settings menu functionality
49 |
50 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ex5.goto/goto.v2.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // Based on: Nilesoft Shell original snippet
3 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
4 |
5 | menu(type='*' where=window.is_taskbar||sel.count mode=mode.multiple title=title.go_to+"\t"+'v2.0' image=\uE14A)
6 | {
7 | menu(title='Folder' image=\uE1F4)
8 | {
9 | item(image=inherit title='Windows' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.dir), sys.dir))
10 | item(image=inherit title='System' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.bin), sys.bin))
11 | item(image=inherit title='Program Files' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.prog), sys.prog))
12 | item(image=inherit title='Program Files x86' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.prog32), sys.prog32))
13 | item(image=inherit title='ProgramData' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.programdata), sys.programdata))
14 | item(image=inherit title='Applications' cmd='shell:appsfolder')
15 | item(image=inherit title='Users' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(sys.users), sys.users))
16 | separator
17 | //item(title='@user.name@@@sys.name' vis=label)
18 | item(image=inherit title='Desktop' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.desktop), user.desktop))
19 | item(image=inherit title='Downloads' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.downloads), user.downloads))
20 | item(image=inherit title='Pictures' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.pictures), user.pictures))
21 | item(image=inherit title='Documents' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.documents), user.documents))
22 | item(image=inherit title='Startmenu' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.startmenu), user.startmenu))
23 | item(image=inherit title='Profile' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.dir), user.dir))
24 | item(image=inherit title='AppData' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.appdata), user.appdata))
25 | item(image=inherit title='Temp' cmd=if(window.name=='CabinetWClass' and !keys.shift(), command.navigate(user.temp), user.temp))
26 | }
27 | item(image=\uE0F3 title=title.control_panel cmd='shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}')
28 | item(image=\uE0F3 title='All Control Panel Items' cmd='shell:::{ED7BA470-8E54-465E-825C-99712043E01C}')
29 | item(image=\uE14B title=title.run cmd='shell:::{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}')
30 | menu(image=\uE0F3 where=sys.ver.major >= 10 title=title.settings sep=sep.before)
31 | {
32 | // https://docs.microsoft.com/en-us/windows/uwp/launch-resume/launch-settings-app
33 | item(image=inherit title='system' cmd='ms-settings:')
34 | item(image=inherit title='about' cmd='ms-settings:about')
35 | item(image=inherit title='your-info' cmd='ms-settings:yourinfo')
36 | item(image=inherit title='system-info' cmd-line='/K systeminfo')
37 | item(image=inherit title='search' cmd='search-ms:')
38 | item(image=inherit title='usb' cmd='ms-settings:usb')
39 | item(image=inherit title='windows-update' cmd='ms-settings:windowsupdate')
40 | item(image=inherit title='windows-defender' cmd='ms-settings:windowsdefender')
41 | menu(image=inherit title='apps')
42 | {
43 | item(image=inherit title='apps-features' cmd='ms-settings:appsfeatures')
44 | item(image=inherit title='default-apps' cmd='ms-settings:defaultapps')
45 | item(image=inherit title='optional-features' cmd='ms-settings:optionalfeatures')
46 | item(image=inherit title='startup' cmd='ms-settings:startupapps')
47 | }
48 | menu(image=inherit title='personalization')
49 | {
50 | item(image=inherit title='personalization' cmd='ms-settings:personalization')
51 | item(image=inherit title='lockscreen' cmd='ms-settings:lockscreen')
52 | item(image=inherit title='background' cmd='ms-settings:personalization-background')
53 | item(image=inherit title='colors' cmd='ms-settings:colors')
54 | item(image=inherit title='themes' cmd='ms-settings:themes')
55 | item(image=inherit title='start' cmd='ms-settings:personalization-start')
56 | item(image=inherit title='taskbar' cmd='ms-settings:taskbar')
57 | }
58 | menu(image=inherit title='network')
59 | {
60 | item(image=inherit title='status' cmd='ms-settings:network-status')
61 | item(image=inherit title='ethernet' cmd='ms-settings:network-ethernet')
62 | item(image=inherit title='connections' cmd='shell:::{7007ACC7-3202-11D1-AAD2-00805FC1270E}')
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/ex5.goto/goto.v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ex5.goto/goto.v2.png
--------------------------------------------------------------------------------
/ext.desktop/sys.spotlight.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.desktop/sys.spotlight.1.png
--------------------------------------------------------------------------------
/ext.desktop/sys.spotlight.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.desktop/sys.spotlight.2.png
--------------------------------------------------------------------------------
/ext.desktop/sys.spotlight.3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.desktop/sys.spotlight.3.png
--------------------------------------------------------------------------------
/ext.desktop/sys.spotlight.md:
--------------------------------------------------------------------------------
1 | # Windows Spotlight Enhancement
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet
6 | [`sys.spotlight.nss`](/ext.desktop/sys.spotlight.nss)
7 |
8 | ### Screenshots
9 | 
10 | 
11 | 
12 |
13 | ## Overview
14 | This script enhances Windows Spotlight functionality by adding a context menu to manage desktop wallpapers and related content. It was developed in response to Microsoft's changes to the Windows Spotlight context menu, where traditional options like "Switch to next picture," "I like this picture," and "Not a fan of this picture" were removed in favor of a modern menu interface.
15 |
16 | ### Important Note
17 | This NS script generates commands based on the information provided by the modern context menu. Future updates from Microsoft to Windows Spotlight might affect the script's functionality. Users should be aware that changes in Windows Spotlight's core functionality could impact the script's performance.
18 |
19 | ## Key Features
20 | - Context menu integration for Windows Spotlight
21 | - Wallpaper management capabilities
22 | - Related content display
23 | - Developer tools and settings
24 | - Current wallpaper information display with photographer credits
25 | - Quick navigation through Spotlight wallpaper collection (4 images per session)
26 | - Direct access to wallpaper information and related web content
27 | - Wallpaper saving functionality
28 |
29 | ## Menu Structure
30 |
31 | ### Main Menu Items
32 | 1. Current wallpaper information with photographer credits (shown as tooltip)
33 | 2. "Learn more" link to detailed web content about the image
34 | 3. Next wallpaper option (cycles through four available images)
35 | 4. Individual wallpaper submenus (one for each available image)
36 |
37 | ### Per-Wallpaper Submenu
38 | Each wallpaper has a dedicated submenu containing:
39 | - Landscape information
40 | - Copyright details (displayed as tooltip)
41 | - Description (available offline, no internet connection required)
42 | - View/Set wallpaper options
43 | - Related links (if enabled by feature flags)
44 |
45 | ### Management Options
46 | - Save wallpaper to custom location
47 | - Change icon
48 | * Can be set with "invisible" icon
49 | * "Cancel" restores default icon
50 | - Rename functionality
51 | * Supports empty names
52 | * "Cancel" restores default name
53 | - Delete option
54 | * Protected by Shift-key requirement
55 | * Automatically creates .reg file for restoring the icon
56 | - Settings management
57 |
58 | ### Settings Submenu
59 | - Related content toggles
60 | * Default values can be configured in code
61 | * Separate toggles for content and hotspots
62 | - Quick access to Windows settings:
63 | * Background customization
64 | * Color schemes
65 | * Lock screen options
66 |
67 | ### Developer Menu (Shift-key activated)
68 | - Image path information
69 | - Current image folder access
70 | - Registry information
71 | - Additional resources
72 | - Links to Windows Spotlight documentation
73 |
74 | ## Technical Components
75 |
76 | ### Data Processing
77 | The script processes multiple data arrays from Windows Registry:
78 | - Image paths and metadata
79 | - Text content (titles, descriptions, copyright)
80 | - Related URLs and links
81 | - System identifiers
82 |
83 | ### Registry Integration
84 | Primary registry key: `HKCU\Software\Microsoft\Windows\CurrentVersion\DesktopSpotlight\Creatives`
85 |
86 | Data extracted includes:
87 | - Asset paths (both full and cropped versions)
88 | - Icon hover text
89 | - Icon labels
90 | - Titles
91 | - Descriptions
92 | - Copyright information
93 | - CTA (Call-to-Action) text and URLs
94 | - System IDs
95 |
96 | ### Feature Flags
97 | - `use_relatedContent`: Toggle for related content display
98 | - `use_relatedHotspots`: Toggle for related hotspots
99 | - Validation checks for content availability
100 | - Flags can be preset in code for default behavior
101 |
102 | ## Usage Notes
103 |
104 | ### Keyboard Shortcuts
105 | - Shift + Click: Opens cropped wallpaper version instead of full version
106 | - Shift: Enables developer menu with additional options
107 | - Shift: Required for delete operation (safety measure)
108 |
109 | ### Related Content
110 | Content availability depends on:
111 | - System language settings
112 | - Feature flag configuration
113 | - Content presence in registry
114 | - Internet connectivity (for web links only)
115 |
116 | ### User Interface
117 | - Top section: Current wallpaper name and photographer credits
118 | - Navigation: Simple "Next" option for cycling through images
119 | - Information: Detailed metadata for each wallpaper
120 | - Quick actions: Save, view, and set wallpaper options
121 | - Safety: Protected delete operation with recovery option
122 |
123 | ## Dependencies
124 | - Windows Registry access
125 | - PowerShell execution capabilities
126 | - Windows Spotlight service
127 | - System icon resources
128 | - Windows modern context menu system
129 |
--------------------------------------------------------------------------------
/ext.managers/all.power.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.managers/all.power.1.png
--------------------------------------------------------------------------------
/ext.managers/all.power.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.managers/all.power.2.png
--------------------------------------------------------------------------------
/ext.managers/all.power.md:
--------------------------------------------------------------------------------
1 | # Windows Power Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`all.power.nss`](/ext.managers/all.power.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | A comprehensive Windows context menu extension for power management operations, providing quick access to system power states and boot options.
14 |
15 | ## Key Features
16 | - System power states (Lock, Sleep, Hibernate, Shutdown)
17 | - Advanced restart options (Normal, Safe Mode, UEFI/BIOS)
18 | - Scheduled shutdown with hour/minute precision
19 | - Smart shutdown/restart with app state preservation
20 | - Hybrid power modes support (Not tested)
21 |
22 | ## Menu Structure
23 | - Basic Power Options
24 | - Lock
25 | - Logoff
26 | - Switch User
27 | - Sleep/Hibernate/Shutdown variants
28 | - Shutdown Schedule (up to 12 hours)
29 | - Advanced Boot Options
30 | - Recovery Mode
31 | - BIOS/UEFI Boot
32 | - Safe Mode variants
33 |
34 | ## Usage Notes
35 | - SHIFT key enables force operations for shutdown/restart
36 | - Hibernate availability depends on system configuration
37 | - Administrative privileges required for certain operations
38 |
39 | ## Dependencies
40 | - Windows built-in executables
41 | - shutdown.exe
42 | - rundll32.exe
43 | - powercfg.exe
44 |
45 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
46 |
--------------------------------------------------------------------------------
/ext.managers/nss.winver.md:
--------------------------------------------------------------------------------
1 | # Nilesoft Shell Windows Version Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`nss.winver.nss`](/ext.managers/nss.winver.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 |
13 | A simple but useful taskbar menu that displays Windows version information and provides quick access to system details.
14 |
15 | ## Key Features
16 |
17 | - Displays Windows OS name and version in the taskbar menu
18 | - Provides one-click copying of system information to clipboard
19 | - Quick access to System Information (msinfo32) and Windows Version (winver) tools
20 | - Shift key modifiers for alternate actions
21 |
22 | ## Menu Structure
23 |
24 | 1. **Windows OS Name**
25 | - Shows the Windows operating system name
26 | - Click to copy to clipboard
27 | - Hold Shift to open System Information (msinfo32)
28 |
29 | 2. **Windows Version**
30 | - Displays OS version and build information
31 | - Click to copy full version details to clipboard
32 | - Hold Shift to open Windows Version dialog (winver)
33 |
34 | ## Usage Notes
35 | - Menu appears in the Windows taskbar
36 | - Information is extracted directly from the registry
37 | - Provides contextual functionality through Shift key modifiers
38 |
39 | ## Dependencies
40 | Required Components:
41 | - Windows Operating System
42 | - Nilesoft Shell framework
43 |
44 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
45 |
--------------------------------------------------------------------------------
/ext.managers/nss.winver.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(expanded=1 type='taskbar') {
5 | $svg_info=image.svg('')
8 | $ver_short = reg.get('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'DisplayVersion')
9 | separator()
10 | item(image=svg_info title=sys.ver.name
11 | tip='Click to copy OS to clipboard. Hold SHIFT to open System Information'
12 | cmd=if(!keys.shift(), clipboard.set(sys.ver.name), 'msinfo32.exe'))
13 | item(image=svg_info title='OS: @sys.ver [@ver_short]'
14 | tip='Click to copy full OS version to clipboard. Hold SHIFT to open System Information'
15 | cmd=if(!keys.shift(), clipboard.set(sys.ver), 'winver.exe'))
16 | separator()
17 | }
--------------------------------------------------------------------------------
/ext.managers/nss.winver.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.managers/nss.winver.png
--------------------------------------------------------------------------------
/ext.nilesoft/nss.about.md:
--------------------------------------------------------------------------------
1 | # Nilesoft Shell About Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`nss.about.nss`](/ext.nilesoft/nss.about.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 |
13 | This Nilesoft Shell About menu appears when users press Shift or click the left mouse button on the taskbar and provides quick access to various Nilesoft Shell functions, links to documentation, community resources, and update options.
14 |
15 | ## Key Features
16 |
17 | - Quick access to Shell Manager and configuration files
18 | - One-click update checker with installation options
19 | - Registry modifications for .nss file preview in Explorer
20 | - Links to community resources (GitHub, Discord, Reddit)
21 | - Direct access to documentation and support channels
22 |
23 | ## Menu Structure
24 |
25 | 1. **Management Tools**
26 | - Shell Manager
27 | - Directory access
28 | - Configuration file access
29 | - NSS preview enabler
30 |
31 | 2. **Updates & Resources**
32 | - Update checker with installation instructions
33 | - GitHub repository
34 | - Discord server
35 | - YouTube channel
36 | - Reddit community
37 | - Documentation access
38 |
39 | 3. **Support & Information**
40 | - Version information
41 | - Documentation links
42 | - Code snippets gallery
43 | - Donation options
44 | - Email contact
45 |
46 | ## Usage Notes
47 | - The menu appears when pressing Shift or clicking the left mouse button on the taskbar
48 | - The update checker provides multiple installation options (manual, winget, scoop, choco)
49 | - Some functions require administrator privileges (indicated by `admin` property)
50 | - The Discord server is the recommended place for help and support
51 | - Alternative documentation access is provided via web archive if the main site is unavailable
52 |
53 | ## Dependencies
54 | Required Components:
55 | - Windows Operating System
56 | - Nilesoft Shell framework
57 |
58 | No additional software installation is required beyond the Nilesoft Shell framework and standard Windows components.
--------------------------------------------------------------------------------
/ext.nilesoft/nss.about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.nilesoft/nss.about.png
--------------------------------------------------------------------------------
/ext.others/bar.address.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/bar.address.1.png
--------------------------------------------------------------------------------
/ext.others/bar.address.md:
--------------------------------------------------------------------------------
1 | # Address Bar Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`bar.address.nss`](/ext.others/bar.address.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Customizing the context menu options for the address bar.
13 |
14 | ## Key Features
15 | - Custom icons for address bar actions
16 |
17 | ## Menu Structure
18 | - Copy address (with copy path icon)
19 | - Edit address (with rename icon)
20 | - Delete history (with delete icon, separated)
21 |
22 | ## Usage Notes
23 | - Compatible with Classic File Explorer with Ribbon in Windows 11
24 | - Menu appears in address bar context menu
25 |
26 | ## Dependencies
27 | - Windows Operating System
28 | - Nilesoft Shell framework
29 | - Windows File Explorer
30 | - Classic File Explorer with Ribbon (for Windows 11)
31 |
--------------------------------------------------------------------------------
/ext.others/bar.address.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | modify(type='*' where=wnd.name=='CabinetWClass' and wnd.parent.name=='msctls_progress32' find='Copy address' image=icon.copy_path)
5 | modify(type='*' where=wnd.name=='CabinetWClass' and wnd.parent.name=='msctls_progress32' find='Edit address' image=icon.rename)
6 | modify(type='*' where=wnd.name=='CabinetWClass' and wnd.parent.name=='msctls_progress32' find='Delete history' image=icon.delete sep='both')
7 |
8 | // Open Classic File Explorer with Ribbon in Windows 11 to test the menu
9 | // https://www.elevenforum.com/t/restore-classic-file-explorer-with-ribbon-in-wnds-11.620/
--------------------------------------------------------------------------------
/ext.others/bar.scroll.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/bar.scroll.1.png
--------------------------------------------------------------------------------
/ext.others/bar.scroll.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/bar.scroll.2.png
--------------------------------------------------------------------------------
/ext.others/bar.scroll.md:
--------------------------------------------------------------------------------
1 | # Scroll Bar Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`bar.scroll.nss`](/ext.others/bar.scroll.nss)
7 |
8 | ### Screenshots:
9 | 
10 | 
11 |
12 | ## Overview
13 | Configuration for customizing Windows scroll bar context menu with SVG icons and directional controls.
14 |
15 | ## Key Features
16 | - Custom SVG icons for scroll actions
17 | - Directional controls (up, down, left, right)
18 | - Multi-level scroll options
19 | - Dynamic color handling
20 |
21 | ## Menu Structure
22 | - Scroll Here
23 | - Vertical Navigation
24 | - Top/Bottom
25 | - Page Up/Down
26 | - Scroll Up/Down
27 | - Horizontal Navigation
28 | - Left/Right Edge
29 | - Page Left/Right
30 | - Scroll Left/Right
31 |
32 | ## Dependencies
33 | - Windows Operating System
34 | - Nilesoft Shell framework
35 | - Windows DirectUI framework
36 |
--------------------------------------------------------------------------------
/ext.others/bar.scroll.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | $svg_triple_up = ''
8 | $svg_triple_down = ''
12 | $svg_triple_left = ''
16 | $svg_triple_right = ''
20 |
21 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Scroll Here'
22 | image=[[\uE170, image.color1],[\uE16E, image.color2]])
23 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Top'
24 | image=image.svg(svg_triple_up().replace('@image.color1', '@image.color2').replace('@image.color3', '@image.color2')))
25 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Page Up'
26 | image=image.svg(svg_triple_up().replace('@image.color3', '@image.color2')))
27 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Scroll Up'
28 | image=image.svg(svg_triple_up().replace('@image.color2', '@image.color1').replace('@image.color3', '@image.color2')))
29 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Bottom'
30 | image=image.svg(svg_triple_down().replace('@image.color1', '@image.color2').replace('@image.color3', '@image.color2')))
31 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Page Down'
32 | image=image.svg(svg_triple_down().replace('@image.color3', '@image.color2')))
33 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Scroll Down'
34 | image=image.svg(svg_triple_down().replace('@image.color2', '@image.color1').replace('@image.color3', '@image.color2')))
35 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Left Edge'
36 | image=image.svg(svg_triple_left().replace('@image.color1', '@image.color2').replace('@image.color3', '@image.color2')))
37 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Page Left'
38 | image=image.svg(svg_triple_left().replace('@image.color3', '@image.color2')))
39 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Scroll Left'
40 | image=image.svg(svg_triple_left().replace('@image.color2', '@image.color1').replace('@image.color3', '@image.color2')))
41 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Right Edge'
42 | image=image.svg(svg_triple_right().replace('@image.color1', '@image.color2').replace('@image.color3', '@image.color2')))
43 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Page Right'
44 | image=image.svg(svg_triple_right().replace('@image.color3', '@image.color2')))
45 | modify(type='*' where=wnd.parent.name=='DirectUIHWND' && this.title=='Scroll Right'
46 | image=image.svg(svg_triple_right().replace('@image.color2', '@image.color1').replace('@image.color3', '@image.color2')))
--------------------------------------------------------------------------------
/ext.others/bar.title.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/bar.title.1.png
--------------------------------------------------------------------------------
/ext.others/bar.title.md:
--------------------------------------------------------------------------------
1 | # Title Bar Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`bar.title.nss`](/ext.others/bar.title.nss)
7 |
8 | ### Screenshot:
9 | 
10 |
11 | ## Overview
12 | Configuration for Windows title bar menu customization, adding window management controls and fullscreen functionality.
13 |
14 | ## Key Features
15 | - Fullscreen toggle button
16 | - Window arrangement options
17 | - Keyboard shortcut integration
18 |
19 | ## Menu Structure
20 | - Fullscreen Toggle (F11)
21 | - Windows Menu
22 | - Cascade Windows
23 | - Show Windows Stacked
24 | - Show Windows Side by Side
25 | - Minimize All Windows (Win+M)
26 | - Restore All Windows (Win+Shift+M)
27 |
28 | ## Usage Notes
29 | - Available in title bar context menu
30 | - Supports keyboard shortcuts
31 |
32 | ## Dependencies
33 | - Windows Operating System
34 | - Nilesoft Shell framework
35 | - Windows Explorer
36 | - ieframe.dll
37 |
--------------------------------------------------------------------------------
/ext.others/bar.title.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | // After replacing shell32 components with XAML resources, Windows Explorer's fullscreen does not work properly.
5 | item(title=str.res('ieframe.dll', -17985) where=wnd.is_titlebar type='*'
6 | tip=str.res('ieframe.dll', -9531)
7 | pos=indexof(str.replace(title.close, '&', '')) image=\uE1B1
8 | cmd=key.send(key.F11))
9 |
10 | menu(title=title.windows where=wnd.is_titlebar type='*' pos=indexof(str.replace(title.close, '&', '')) sep='both' image=\uE1FB)
11 | {
12 | item(title=title.cascade_windows cmd=command.cascade_windows)
13 | item(title=title.Show_windows_stacked cmd=command.Show_windows_stacked)
14 | item(title=title.Show_windows_side_by_side cmd=command.Show_windows_side_by_side)
15 | sep
16 | item(title=title.minimize_all_windows keys='Win+M' cmd=command.minimize_all_windows)
17 | item(title=title.restore_all_windows keys='Win+Shift+M' cmd=command.restore_all_windows)
18 | }
--------------------------------------------------------------------------------
/ext.others/edit.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/edit.1.png
--------------------------------------------------------------------------------
/ext.others/edit.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/edit.2.png
--------------------------------------------------------------------------------
/ext.others/edit.md:
--------------------------------------------------------------------------------
1 | # Editor Menu
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`edit.nss`](/ext.others/edit.nss)
7 |
8 | ### Screenshots:
9 | 
10 | 
11 |
12 | ## Overview
13 | Configuration for text editor context menu with quick phrases, emoji insertion, and clipboard management features.
14 |
15 | ## Key Features
16 | - Quick phrase insertion
17 | - Date/time stamps
18 | - Emoji picker integration
19 | - Clipboard history access
20 |
21 | ## Menu Structure
22 | - Phrases Menu
23 | - Examples submenu (SHIFT)
24 | - Copy and paste demos
25 | - Direct typing examples
26 | - Escape sequence samples
27 | - Date stamp
28 | - Time stamp
29 | - Preset phrases
30 | - Insert Emoji (Win+;)
31 | - Clipboard History (Win+V)
32 |
33 | ## Usage Notes
34 | - Two insertion methods: clipboard or direct typing
35 | - Special character handling via escape sequences
36 |
37 | ## Dependencies
38 | - Windows Operating System
39 | - Nilesoft Shell framework
40 | - PowerShell
41 | - System.Windows.Forms
42 | - Windows Clipboard
43 | - Fluent UI icons
44 |
--------------------------------------------------------------------------------
/ext.others/edit.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // https://github.com/RubicBG/Nilesoft-Shell-Snippets/
3 |
4 | menu(title='Phrases' type='*' where=wnd.is_edit pos=indexof('select all', 1) image=image.fluent(\uF684) sep='both') {
5 | menu(title='examples' expanded='true' where=keys.shift()) {
6 | item(title='copy phrase, then paste' keys='clip' tip='Copy the phrase to clipboard and then paste it.'
7 | commands { cmd=command.copy(this.title) wait=1, cmd=keys.send(key.ctrl, 86) })
8 | item(title='type phrase' keys='1by1' tip='Insert the phrase character by character.'
9 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
10 | /* Character - Escape Sequence
11 | + {+}
12 | ^ {^}
13 | % {%}
14 | ( {(}
15 | ) {)}
16 | { {{}
17 | } {}}
18 | [ {[}
19 | ] {]}
20 | ~ {~}
21 | ! {!}
22 | " {"}
23 | ' {'} */
24 | item(title='(use escape sequence)' keys='1by1' tip='Escape Char is used to represent a character that is not printable or to represent a special character. It is preceded with { and followed with }.'
25 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@str.replace(this.title, '(', '{(}').replace(')', '{)}')');` window=cmd.hidden)
26 | item(title='Unsupported phrase:' keys='1by1' tip='unsupported character will be skipped.'
27 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
28 | separator() }
29 |
30 | item(title=sys.datetime.date keys='1by1'
31 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
32 | item(title=sys.datetime("H.M") keys='1by1'
33 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
34 | item(title='New Project' keys='1by1'
35 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
36 | item(title='With Love for Nilesoft Shell' keys='1by1'
37 | cmd-ps=`Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('@this.title');` window=cmd.hidden)
38 | }
39 | item(title='Insert Emoji' keys='Win+;' type='*' where=wnd.is_edit pos=indexof('Paste', 1) image=image.fluent(\uED54) cmd=key.send(key.win, 190))
40 | item(title='Clipboard History' keys='Win+V' type='*' where=wnd.is_edit pos=indexof('Paste', 1) image=image.fluent(\uF0E3) cmd=key.send(key.win, 86))
41 |
--------------------------------------------------------------------------------
/ext.others/recycle.bin.1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/recycle.bin.1.png
--------------------------------------------------------------------------------
/ext.others/recycle.bin.2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RubicBG/Nilesoft-Shell-Snippets/9268a484a6a330d3571516cfb5872b551c239782/ext.others/recycle.bin.2.png
--------------------------------------------------------------------------------
/ext.others/recycle.bin.md:
--------------------------------------------------------------------------------
1 | # Recycle Bin and System Cleaning
2 |
3 | ## Source Code & Screenshots
4 |
5 | ### Snippet:
6 | [`recycle.bin.nss`](/ext.others/recycle.bin.nss)
7 |
8 | ### Screenshot:
9 | 
10 | 
11 |
12 | ## Overview
13 | Configuration for enhanced Recycle Bin context menu with system cleaning utilities and component store management.
14 |
15 | ## Key Features
16 | - Disk cleanup integration
17 | - Temporary file cleanup
18 | - Secure deletion option
19 | - Component store management
20 |
21 | ## Menu Structure
22 | - Cleaning/Recycling Menu
23 | - Disk Cleanup
24 | - Drive-specific cleanup
25 | - Temporary files cleanup
26 | - Empty Recycle Bin
27 | - Secure Empty (with SDelete)
28 | - Component Store (Windows 10+)
29 | - Analyze Store
30 | - Clean Up Store
31 | - Check and Clean Up
32 |
33 | ## Usage Notes
34 | - Requires admin rights for certain operations
35 | - SDelete integration optional
36 | - SHIFT key reveals additional options
37 | - Removes default Rename/Paste options
38 |
39 | ## Dependencies
40 | - Windows Operating System
41 | - Nilesoft Shell framework
42 | - Windows Disk Cleanup (cleanmgr.exe)
43 | - PowerShell
44 | - DISM (Windows 10+)
45 | - [SDelete]('https://winstall.app/apps/Microsoft.Sysinternals.SDelete') (optional) ([winget]('https://winstall.app/apps/Microsoft.Sysinternals.SDelete'))
46 | - Shell32.dll
47 |
--------------------------------------------------------------------------------
/shell.basic.1.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // Based on: Nilesoft Shell original snippet
3 | // https://web.archive.org/web/20240613020655/https://nilesoft.org/forum/viewtopic.php?t=23&sid=991564ba72bf76c8ef095e9d80b84f5f
4 |
5 | settings
6 | {
7 | priority=1
8 | exclude.where = !process.is_explorer
9 | showdelay = 200
10 | // Options to allow modification of system items
11 | modify.remove.duplicate=not(wnd.name=='SystemTray_Main')
12 | tip.enabled=true
13 | }
14 |
15 | import 'imports/theme.nss'
16 | import 'imports/images.nss'
17 |
18 | import 'imports/modify.nss'
19 |
20 | import 'imports/terminal.nss'
21 | $sys_object_recycle_bin = sel.raw=='::{645FF040-5081-101B-9F08-00AA002F954E}' or sel.parent.raw=='::{645FF040-5081-101B-9F08-00AA002F954E}'
22 | $sys_object_on_desktop = wnd.is_desktop and sel.type==0 // "Windows Spotlight"
23 | menu(mode='multiple' expanded='true' where=not(sys_object_on_desktop) and not(sys_object_recycle_bin))
24 | {
25 | menu(mode="multiple" title="Pin/Unpin" image=icon.pin) { }
26 | menu(mode="multiple" title=title.more_options image=icon.more_options) { }
27 |
28 | import 'imports/file-manage.nss'
29 | import 'imports/develop.nss'
30 | import 'imports/goto.nss'
31 | }
32 |
33 | import 'imports/taskbar.nss'
34 |
--------------------------------------------------------------------------------
/shell.basic.2.nss:
--------------------------------------------------------------------------------
1 | // Author: Rubic / RubicBG
2 | // Based on: Nilesoft Shell original snippet
3 | // https://web.archive.org/web/20240613020655/https://nilesoft.org/forum/viewtopic.php?t=23&sid=991564ba72bf76c8ef095e9d80b84f5f
4 |
5 | settings
6 | {
7 | priority=1
8 | exclude.where = !process.is_explorer
9 | showdelay = 200
10 | // Options to allow modification of system items
11 | modify.remove.duplicate=not(wnd.name=='SystemTray_Main')
12 | tip.enabled=true
13 | }
14 |
15 | import 'imports/theme.nss'
16 | import 'imports/images.nss'
17 |
18 | import 'imports/modify.nss'
19 |
20 | $sys_object_recycle_bin = sel.raw=='::{645FF040-5081-101B-9F08-00AA002F954E}' or sel.parent.raw=='::{645FF040-5081-101B-9F08-00AA002F954E}'
21 | $sys_object_on_desktop = wnd.is_desktop and sel.type==0 // "Windows Spotlight"
22 | menu(mode='multiple' expanded='true' where=not(sys_object_on_desktop) and not(sys_object_recycle_bin))
23 | {
24 | menu(mode="multiple" title="Pin/Unpin" image=icon.pin) { }
25 | menu(mode="multiple" title=title.more_options image=icon.more_options) { }
26 |
27 | import 'imports/terminal.nss'
28 | import 'imports/file-manage.nss'
29 | import 'imports/develop.nss'
30 | import 'imports/goto.nss'
31 | }
32 |
33 | menu(type='*' where=wnd.is_taskbar expanded='true')
34 | {
35 | import 'imports/terminal.nss'
36 | separator()
37 | import 'imports/taskbar.nss'
38 | }
39 |
--------------------------------------------------------------------------------