• File: notepad-portable.md.php
  • Full Path: /home/daemondevin/public_html/portableapps/content/posts/notepad-portable.md.php
  • Date Modified: 10/31/2026 8:04 AM
  • File size: 10.58 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php http_response_code(404); exit; ?>
---
title: Notepad++ Portable
date: 2026-10-31 01:01
updated: 2026-10-31 01:04
status: published
type: post
tags: [Development]
image: /~daemondevin/portableapps/uploads/2026/10/notepad++.png
---

Notepad++ Portable v8.9.8.1 released!

<!--more-->

A portable launcher for [Notepad++](https://notepad-plus-plus.org/), the source code and text editor, built with the [PortableApps Compiler][PACMAN] (PAC-MAN). It keeps Notepad++'s settings, sessions, themes, user defined languages, macros, backups and plugin settings in the package, follows the PortableApps.com Platform's language, installs Notepad++ from its GitHub releases on the first launch and keeps it up to date itself. Every change it makes to Windows is recorded first and undone when Notepad++ closes, or on the next launch if something went wrong.

Notepad++ is free software under the GNU GPL, by Don Ho and contributors. The package downloads Notepad++'s own, unmodified portable zips.

 [PACMAN]: https://github.com/daemondevin/pac-man

## System Requirements

* A Windows version the Notepad++ you add supports, with the build for it: x64 or ARM64 on 64-bit Windows, x86 on 32-bit Windows.
* An internet connection for the first launch and for updates, unless you add Notepad++ yourself.
* [PortableApps.com Platform](https://portableapps.com/download) (optional).

## Download

[Direct Link](https://github.com/daemondevin/PortableApps/releases/download/1.0/NotepadPlusPlusPortable_8.9.8.1.paf.exe)

## First launch

The package doesn't include Notepad++. The first launch offers to download it:

1. It asks GitHub for Notepad++'s latest release (`notepad-plus-plus/notepad-plus-plus`).
2. It downloads that release's portable zip for your Windows: `npp.<version>.portable.x64.zip`, `.arm64.zip`, or `npp.<version>.portable.zip` on 32-bit Windows.
3. It checks the zip against the SHA-256 the release notes list for it, and checks that `notepad++.exe` carries a valid signature by **Notepad++** that Windows trusts. A download that fails a check is never used.
4. It unpacks the zip into `App\Notepad++` with Windows' own `tar.exe`, or with 7-Zip if `tar.exe` isn't there.

Then Notepad++ starts. If you say no, or something fails, nothing is left behind and the launcher stops.

### Adding Notepad++ yourself

You can also add Notepad++ without the launcher downloading it, for a computer that's offline, say:

1. Download Notepad++ as the **portable zip** from [notepad-plus-plus.org/downloads](https://notepad-plus-plus.org/downloads/): `npp.<version>.portable.x64.zip` for most computers.
2. Unpack it into this package's `App\Notepad++` folder, so `notepad++.exe` is `App\Notepad++\notepad++.exe`.
3. Start `Notepad++Portable.exe`.

If the build in `App\Notepad++` can't run on the computer (x64 on 32-bit Windows, or ARM64 on x64), the launcher says so and stops. After each session it writes the version of `notepad++.exe` to `appinfo.ini`, so the PortableApps.com Platform shows it.

## Updates

The launcher keeps Notepad++ up to date, the same way as the first install:

* Before Notepad++ starts, at most once every `UpdateInterval` days, it asks GitHub for the latest release. It stays with the build you have: a 32-bit Notepad++ is updated with the 32-bit zip.
* If there's a newer one, it asks whether to update now (`UpdateCheck=ask`), or just does it (`UpdateCheck=auto`). Say no and Notepad++ starts as it is; you're asked again at the next check.
* The new Notepad++ is downloaded, checked and unpacked as above, then swapped in. The plugins you installed (folders in `App\Notepad++\plugins` that Notepad++ doesn't come with) are moved into the new one; the plugins Notepad++ comes with are the new versions. The old folder is kept until the new one is in place, and the swap is journaled: if the launcher is stopped halfway, the next launch puts the old Notepad++ back.
* If anything fails, it says why and starts the Notepad++ you have.

Changes you made inside `App\Notepad++` itself (its `autoCompletion` or `functionList` files, say) don't carry over; your settings in `Data\Config` do.

Notepad++'s own updater stays off (`disableNppAutoUpdate.xml`): it downloads the installer, which would install Notepad++ into Program Files.

## Configuration

`Notepad++Portable.ini`, next to the launcher, holds the user settings. If it gets damaged, or you want to go back to the defaults, copy `Other\Source\Notepad++Portable.ini` over it.

```INI
[Notepad++Portable]
AdditionalParameters=
Language=
UpdateCheck=ask
UpdateInterval=1
```

| Key | Default | What it does |
| --- | --- | --- |
| `Language` | empty | Notepad++'s interface language, as its `localization` folder names the file, without `.xml`: `german`, `french`, `chineseSimplified`... Set, it's used on every launch. Empty follows the PortableApps.com Platform's language when that changes (see below). |
| `UpdateCheck` | `ask` | `ask` asks before updating, `auto` updates without asking, `off` never checks. |
| `UpdateInterval` | `1` | Days between update checks. `0` checks on every launch. |
| `AdditionalParameters` | empty | Extra command line switches passed to Notepad++, such as `-multiInst` or `-nosession`. |
| `ReleaseURL`, `DownloadURL` | GitHub's | Not in the file by default. Where the release information and the zips are downloaded from, for a mirror. |

### Language

Started from the PortableApps.com Platform, Notepad++'s language is set to the Platform's when the Platform's language is different from last time. A language you pick in Notepad++ (Settings > Preferences > General) stays until the Platform's language changes again. Started on its own, Notepad++ keeps the language you picked.

## Data

| Folder | Contents |
| --- | --- |
| `Data\Config` | Everything Notepad++ keeps for you: `config.xml`, `session.xml`, `shortcuts.xml` (macros and run commands), `stylers.xml`, `langs.xml`, `contextMenu.xml`, `nativeLang.xml`, `themes`, `userDefineLangs`, `functionList`, and `backup` (unsaved files, for session snapshots) |
| `Data\Config\plugins\config` | Plugin settings |
| `Data\Fonts` | Fonts you want Notepad++ to have wherever it runs. They're loaded for the session and removed afterward. |

How it's done:

* Notepad++ is started with `-settingsDir="Data\Config"`, which takes its settings and session there.
* `doLocalConf.xml` next to `notepad++.exe` keeps it out of `%APPDATA%\Notepad++`.
* With `doLocalConf.xml`, Notepad++ looks for themes next to `notepad++.exe` only, whatever `-settingsDir` says. Its cloud setting (`App\Notepad++\cloud\choice`) names `Data\Config` and makes it look there too. The launcher writes it for every launch, so it follows the package. Settings > Preferences > Cloud & Link shows that folder; changing it there has no effect.
* Plugins keep their settings in `App\Notepad++\plugins\Config` whatever the settings folder is. The launcher moves them in from `Data\Config\plugins\config` for each session and back afterward. Plugins Admin's list (`nppPluginList.dll`) comes with Notepad++ and stays where it is.
* When Plugins Admin installs a plugin, it closes Notepad++ and starts it again without `-settingsDir`. That Notepad++ saves its session next to `notepad++.exe`; the launcher waits for it and takes the session into `Data\Config`.

When the package is started from another folder or drive letter, the paths in `session.xml`, `config.xml` (recent files and folders, the Folder as Workspace roots), `shortcuts.xml` and the Explorer plugin's settings are updated, first those into the package, then, if the drive letter changed, the others on the same drive.

## What's journaled and undone

| Could be written | When Notepad++ closes |
| --- | --- |
| Settings > Preferences > File Association: extensions set to open with Notepad++, and its `Notepad++_file` type | Each extension gets its earlier file type back. This needs administrator rights, so the launcher only does it for `HKEY_LOCAL_MACHINE` when it runs as administrator. |
| Explorer's Open with entry (`HKCU\Software\Classes\Applications\notepad++.exe`) | Removed, or put back as it was |
| `%APPDATA%\Notepad++`, `%LOCALAPPDATA%\Notepad++`, if anything still used the defaults | Removed, if they weren't there before |
| Fonts in `Data\Fonts` | Unloaded |

## Coming from PortableApps.com's Notepad++ Portable

That package had a 32-bit Notepad++ in `App\Notepad++` and a 64-bit one in `App\Notepad++64`. It kept the settings in `Data\Config` (as this one does), and moved `Data\themes`, `Data\toolbarIcons` and the plugin settings next to `notepad++.exe` for each session.

Copy this package's files over your existing `Notepad++Portable` folder and compile the launcher. On 64-bit Windows, the first launch:

* moves `App\Notepad++` (the 32-bit one) to `App\Notepad++32`, and `App\Notepad++64` to `App\Notepad++`, with its plugins. Paths that pointed into `App\Notepad++64`, the Explorer plugin's NppExec folder for one, are updated.
* moves `Data\themes` and `Data\toolbarIcons` into `Data\Config`.
* puts the `nppPluginList.dll` copy it kept in `Data\Config\plugins\config` back with Notepad++, when Notepad++ doesn't have its own.

These are left from that package and not used any more; delete them when you like:

* `App\Notepad++32`, `App\DefaultData`, `App\DarkNpp.dll`
* `Data\plugins` and `Data\settings-backup` (from Notepad++ 6 and 7)
* `Data\backup`, `Data\Temp`, `Data\updater`, `Data\My Documents`
* `help.html`

## If something goes wrong

If Notepad++ Portable didn't close properly (a crash, a power cut, a USB drive pulled out), the next launch tells you and undoes what the last session changed. Plugin settings and a session left next to `notepad++.exe` are taken back into `Data` first. Start it again afterward.

When reporting a problem, please include an export of the `HKEY_CURRENT_USER\Software\pac-man\Journal` registry key and the contents of `%LOCALAPPDATA%\pac-man\Journal`.

## Building from source

The launcher is built with the [PortableApps Compiler][PACMAN], and needs the Fonts segment. Its configuration lives in `App\AppInfo`:

| File | Contents |
| --- | --- |
| `App\AppInfo\appinfo.ini` | Package details, version and file types. The launcher keeps the version current. |
| `App\AppInfo\Launcher\Notepad++Portable.ini` | The executable, the settings folder switch and the fonts |
| `App\AppInfo\Launcher\custom.nsh` | Install, updates, the settings folder, plugin settings, the session, the older layout, the language, path updates, the journal of Windows leftovers and the version |

## Credits

* Notepad++ is developed by [Don Ho](https://notepad-plus-plus.org/) and contributors.
* [PortableApps.com Platform](https://portableapps.com/download) by [PortableApps.com](https://portableapps.com/).
* [PortableApps Compiler][PACMAN] developed by daemon.devin.