Nilesoft Shell GitHub

Troubleshooting and FAQ


Each section starts with what you see, then says why it happens and how to fix it. Where a version of Nilesoft Shell Pro fixed the problem, the section says which one. Your version is shown in Preferences → About.

If your problem isn't here, see Where is the log, and what to put in a bug report.


The context menu

The taskbar

The app, installing and updating


Home shows "Couldn't read the Shell status. Could not start shell.exe (error 740)."

Windows is set to always run shell.exe as administrator. This setting is often left over from the original Nilesoft Shell. Windows stores it by file path, so it stays after you uninstall and reinstall.

Nilesoft Shell Pro 2.2.2 works around it, so updating is enough. To remove the setting yourself:

  1. Open C:\Program Files\Nilesoft Shell in File Explorer.
  2. Right-click shell.exe and choose Properties.
  3. Open the Compatibility tab and untick Run this program as an administrator.
  4. Click Change settings for all users, approve the administrator prompt, and untick Run this program as an administrator there too.
  5. Click OK, then Try again on Home.

Fixed in 2.2.2.


A menu item from another program shows "This app can't run on your PC", or does nothing

The program that added the item saved its command without quotes around a path that has spaces in it, for example C:\Users\First Last\AppData\Local\App\App.exe. If a file named like the first part of that path exists, here C:\Users\First, Windows tries to run that file instead. It is often a leftover installer log with no file extension. This is not caused by Shell; Windows' own menu does the same.

An example is File Pilot's File Pilot here and Open in File Pilot on accounts whose user name has a space.

  1. Open C:\Users in File Explorer.
  2. Look for a file with no extension whose name is the first part of your user name, for example First next to the folder First Last.
  3. Rename it (for example to First.old) or delete it. Windows asks for administrator approval, because C:\Users belongs to the system.
  4. Right-click again and try the item.
  5. Tell the program's maker that its menu command needs quotes around the path, so it works on every PC.

If you are comfortable with the registry, you can add the quotes yourself:

  1. Press Win+R, type regedit and press Enter.
  2. Go to HKEY_CURRENT_USER\Software\Classes and find the item's key, for example Directory\Background\shell\<item>\command or Directory\shell\<item>\command.
  3. Right-click the shell\<item> key and choose Export to save a backup first.
  4. Double-click (Default) under command and put quotes around the program's path, for example "C:\Users\First Last\AppData\Local\App\App.exe" "%V".

The program may write its unquoted command again when it updates.


The app keeps offering the same update after updating

Before 2.2.2, when the app was kept in the system tray, the old version stayed running after an update and offered the same update again.

This only affects the update from an older version to 2.2.2 or later. For that one update:

  1. Right-click the Nilesoft Shell Pro icon in the tray, next to the clock. If you don't see it, click the small arrow there first.
  2. Choose Quit.
  3. Open Nilesoft Shell Pro again from the Start menu. It starts the new version.

Fixed in 2.2.2.


Right-clicking the taskbar shows nothing after excluding the taskbar

When the taskbar is excluded, for example with exclude.where = !process.is_explorer or window.is_taskbar, Shell leaves the taskbar's right-click to Windows. Windows 11 has no classic taskbar menu for Shell to hand over, so before 2.1.0 the menu was empty.

Since 2.1.0 that line gives Windows 11's own taskbar menu, with Task Manager and Taskbar settings. On an older version:

  1. Update Nilesoft Shell Pro (see Preferences: Updates), or open shell.nss in the Config Editor.
  2. If you don't update, change the line back to exclude.where = !process.is_explorer and save.
  3. Right-click the taskbar again.

Fixed in 2.1.0.


How do I keep Windows' own taskbar menu?

If you use a taskbar tool that adds its own items to Windows' taskbar menu, you may want Shell's menu everywhere except the taskbar. Shell then leaves the taskbar's right-click to Windows. This needs 2.1.0 or later.

  1. Open Config Editor in the app and choose shell.nss.
  2. In the settings block at the top, change the line exclude.where = !process.is_explorer so the block reads:
    settings
    {
    	priority=1
    	exclude.where = !process.is_explorer or window.is_taskbar
    	...
    }
  3. Save with Ctrl+S.
  4. Right-click the taskbar. You get Windows' menu; File Explorer and the desktop still get Shell's menu.

To undo it, remove or window.is_taskbar again. See Settings: The taskbar.



The menu mixes two languages

Before 2.0.6, Shell's own items followed the Windows regional format (dates and numbers) instead of the Windows display language. When the two were different, Shell's items and Windows' items came out in different languages.

Since 2.0.6 Shell's items follow the display language. If the menu still mixes languages:

  1. Open Settings → Time & language → Language & region and check the Windows display language. Windows' items always use it.
  2. Sign out and back in if you changed it.
  3. The app's own window has a separate setting: Preferences → Language. It changes only the app, not the menu. See Preferences: Language.

Fixed in 2.0.6.


A black block appears where the item was after clicking

Windows fades out the clicked menu item, and with Shell's menu that fade came out as a black block.

Update Nilesoft Shell Pro. On an older version, turn the fade off in Windows:

  1. Press Win+R, type SystemPropertiesPerformance and press Enter.
  2. On the Visual Effects tab, untick Fade out menu items after clicking.
  3. Click OK.

Fixed in 2.0.5.


A small coloured square appears in the top-left corner after right-clicking

On recent Windows 11 builds, right-clicking left a small coloured square in the corner of the desktop or the folder view.

  1. Update Nilesoft Shell Pro (see Preferences: Updates).
  2. Press Restart Explorer on Home, so File Explorer loads the new shell.dll.

Fixed in 2.1.0.


Pin to Start and Pin to Quick access aren't grouped into Pin/Unpin

On Windows 11 in a language other than English, Shell didn't recognise Pin to Start, Unpin from Start and Pin to Quick access, so they stayed outside the Pin/Unpin submenu. That was fixed in 2.0.6, in the file imports\modify.nss.

A personal configuration in %APPDATA%\Nilesoft\Shell has its own copy of modify.nss. Since 2.0.6, the app replaces copies you never edited with the new version after an update. A copy you edited is kept as it is.

  1. Open Nilesoft Shell Pro and look at Home.
  2. If it lists modify.nss as edited, press Compare to see the differences.
  3. Press Use the new version. Your copy is saved in Backups first.
  4. Right-click a file again.

Fixed in 2.0.6. See Home: After an update.


My change in shell.nss doesn't show, or the whole menu disappeared after editing

Shell reads shell.nss again on the next right-click after you save it, so no restart is needed. A mistake anywhere in the file stops Shell from loading it, and you get Windows' menu instead.

  1. Open Config Editor in the app. The Problems list shows each error with its file and line number. Click one to jump to it, fix it and save.
  2. Or open Home: Diagnostics lists the errors from shell.log. Click one to open it in the Config Editor.
  3. If you can't find the mistake, open Backups and restore the snapshot from before your change.
  4. To start over, use Preferences → Reset configuration → Reset to defaults… (2.2.2 and later). Your files are saved in Backups first.
  5. If the menu still doesn't change, use Restart Explorer on Home or in the tray icon's menu.

Also check that you edited the file Shell reads: Home shows it under Active config.


Windows 11's short menu ("Show more options") still appears first

On Windows 11, Shell's menu opens straight away only when the classic menu is turned on for your account or for all users. Home shows this on the Windows 11 menu line. Windows 11 menu; Shell is under "Show more options" means it is off.

  1. Open Behavior in the app, turn on Open Shell's menu instead of the Windows 11 menu and save.
  2. If Home still says Shell is under "Show more options", register Shell again with the classic menu. The MSI does this for all users. For a portable copy, run shell -register -user -treat -restart from its folder.
  3. Press Restart Explorer on Home and right-click again.

If the line says Set by another app, another program changed the classic menu setting.


Updating asks for administrator approval

Since 2.2.0, most updates install without administrator approval, because they only change the app and its menu files. An update that also changes the Shell core (shell.dll or shell.exe), which an install for all users shares with everyone on the PC, uses the installer, and that needs approval.

  1. When Home says the update changes the Shell core, press Install with administrator approval.
  2. Choose Yes in the Windows prompt.
  3. To wait, choose Later. You keep the version you have.

A portable copy never needs approval to update. See How updates work.


Windows says "Windows protected your PC"

The installer and the portable files are not code-signed, so Windows SmartScreen doesn't know them and asks first.

  1. Download SHA256SUMS.txt from the same release.
  2. Open a command prompt in your Downloads folder and run certutil -hashfile setup-x64.msi SHA256 (use the name of the file you downloaded).
  3. Check that the result matches the line for that file in SHA256SUMS.txt. If it doesn't, delete the file and download it again.
  4. Run the file, click More info, then Run anyway.

A snippet's switch is greyed out with "Needs ..."

The snippet uses a program that isn't installed, for example Needs 7-Zip. The switch stays off until the program is there.

  1. Install the program named in the label.
  2. Come back to the Snippets page. The label is gone and you can turn the switch on.

The snippets by RubicBG come from RubicBG's collection, which is CC0, and are credited to him. See Snippets.


Where is the log, and what to put in a bug report

Shell writes errors to shell.log. For an installed copy it is %LOCALAPPDATA%\Nilesoft\Shell\shell.log; a portable copy writes it next to its shell.dll. Home lists its errors under Diagnostics, and Open shell.log there opens the whole file.

To report a problem:

  1. Note your version from Preferences → About.
  2. Note your Windows version: press Win+R, type winver and press Enter.
  3. Open a command prompt in the program folder (C:\Program Files\Nilesoft Shell for the installer) and run shell -status. Copy what it prints.
  4. Copy the errors from Diagnostics or from shell.log, and say what you did and what you saw.
  5. Open a new issue and paste it all in.

Questions and ideas are welcome in Discussions.


How do I translate the app or check a translation?

All the app's text is in one .po file per language, and you can test a file in the app without building anything.

  1. Open Preferences → Language.
  2. Click Test a translation file… and choose your .po file. The app switches to it right away.
  3. After editing the file, press Reload in the bar at the top. Stop goes back to your usual language.

Where to get the file and how to share it is in Preferences: Translating the app.