A faithful, lightweight clone of the classic Windows Notepad — built with .NET 10 and Avalonia (XAML) so it runs natively on Linux, Windows, and macOS. It follows your system light/dark theme and ships with a desktop entry and icon.
There is also a Windows-only .NET Framework / WinForms version kept for reference in
winforms-dotnet-framework/. It only builds on Windows.
Everything the original Notepad does, and nothing it doesn't:
- File — New, Open, Save, Save As, Exit, with unsaved-changes prompts and an
Untitleddefault document. - Edit — Undo, Redo, Cut, Copy, Paste, Delete, Find, Find Next, Replace, Go To line, Select All, and Time/Date (F5).
- Format — Word Wrap toggle and a Font picker.
- View — Zoom in/out/reset and a toggleable status bar showing
Ln / Col, zoom level, line endings, and encoding. - Help — About box.
- Standard keyboard shortcuts (Ctrl+N/O/S, Ctrl+F/H/G, F3, F5, Ctrl + +/−/0).
- Follows the system theme (light/dark).
- Opens a file passed on the command line.
Snap (any distro with snap, zero setup):
sudo snap install wdnotepadOne line — installs the .NET runtime and the app:
curl -fsSL https://raw.githubusercontent.com/billsecond/simple-notepad-linux/main/get.sh | bashThis clones the repo and runs install.sh, which automatically installs the
.NET 10 SDK into ~/.dotnet if it isn't already present, then builds and
installs Simple Notepad.
Or via APT (true apt install, with apt update upgrades):
sudo install -d /etc/apt/keyrings
curl -fsSL https://billsecond.github.io/simple-notepad-linux/pubkey.gpg \
| sudo tee /etc/apt/keyrings/wdnotepad.gpg >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/wdnotepad.gpg] https://billsecond.github.io/simple-notepad-linux ./" \
| sudo tee /etc/apt/sources.list.d/wdnotepad.list
sudo apt update
sudo apt install wdnotepadOr from a local checkout:
./install.sh # per-user install into ~/.local (no root needed)
sudo ./install.sh # system-wide install into /usr/localAfter installing, run notepad (or wdnotepad) from a terminal or launch
"Simple Notepad" from your application menu.
The installer publishes a self-contained build (so the result runs without needing the .NET SDK/runtime installed), then:
- installs the app under
~/.local/share/simple-notepad/, - creates four launchers on your
PATH—notepad,Notepad,notepad.exe,Notepad.exe— each of which works with or without a filename argument, - registers a desktop entry + icon (
simple-notepad.desktop), and - prompts whether to make Notepad the default app for common text files.
Then just run, for example:
notepad # empty "Untitled" document
notepad.exe notes.txt # open a file
Notepad ~/todo # any capitalization, any/no extensionIf the installer warns that
~/.local/binisn't on yourPATH, addexport PATH="$HOME/.local/bin:$PATH"to your~/.bashrcand restart the shell.
To remove everything:
./uninstall.sh # or: sudo ./uninstall.sh for a system installRequires the .NET 10 SDK (dotnet).
dotnet run -c Release # build & run
dotnet run -c Release -- notes.txt # open a file
dotnet build -c Release # just build -> bin/Release/net10.0/| File | Purpose |
|---|---|
Program.cs |
Avalonia entry point. |
App.axaml(.cs) |
Application setup, theme, command-line file argument. |
MainWindow.axaml(.cs) |
The editor window — menus, status bar, all commands. |
FindReplaceWindow.cs |
Modeless Find / Replace tool window. |
Dialogs.cs |
Message box, Go To, and Font dialogs. |
Assets/notepad.png |
Application / window icon. |
install.sh / uninstall.sh |
Linux installer and uninstaller. |
Notepad.csproj |
Build configuration (.NET 10 + Avalonia). |
winforms-dotnet-framework/ |
Reference Windows-only WinForms version. |