ValaPad

Edit plain-text files with a familiar set of tools.

*Untitled - ValaPad
File Edit Format View Help
ValaPad is a plain-text editor written in Vala and GTK4. Features: - Open, edit, and save plain-text documents - Undo and redo - Autosave with crash recovery - Find, replace, go to line - Word wrap and font selection - Zoom in, zoom out, and reset zoom - Incredible features, right?
Ln 11 Col 15 100% LF UTF-8

Keyboard Shortcuts

New Ctrl + N
Open Ctrl + O
Save Ctrl + S
Save As Ctrl + Shift + S
Print Ctrl + P
Undo Ctrl + Z
Redo Ctrl + Y
Cut Ctrl + X
Copy Ctrl + C
Paste Ctrl + V
Delete Del
Select All Ctrl + A
Find Ctrl + F
Find Next F3
Find Previous Shift + F3
Replace Ctrl + H
Go To Ctrl + G
Time / Date F5
Zoom In / Out Ctrl + + / -
Reset Zoom Ctrl + 0
Make gay Super + G

Build from Source

Dependencies

ValaPad needs a C compiler, valac, meson (0.64+), ninja, gettext, pkg-config, gtk4 (4.14+), granite-7 (7.0+), pango, and pangocairo.

As an alternative, you can install Flatpak, add elementary os repos and install Valapad that way.

Ubuntu 24.04 LTS, Debian 13
sudo apt install appstream desktop-file-utils gettext libglib2.0-bin libgranite-7-dev libgtk-4-dev libpango1.0-dev meson ninja-build pkg-config shared-mime-info valac
Fedora 42+
sudo dnf install appstream desktop-file-utils gettext glib2-devel gtk4-devel granite-7-devel meson ninja-build pango-devel pkgconf-pkg-config shared-mime-info vala
Arch Linux 2026.10.01
sudo pacman -S appstream desktop-file-utils gettext glib2 gtk4 granite7 meson ninja pango pkgconf shared-mime-info vala
openSUSE Tumbleweed
sudo zypper install AppStream desktop-file-utils gcc gettext-tools glib2-devel gtk4-devel granite-devel meson ninja pango-devel pkg-config shared-mime-info vala
Granite 7

All distributions above ship Granite 7, but if yours does not, build it from source first so that granite-7.vapi and granite-7.pc exist, then continue below.

Granite needs git, sassc and the Gee development headers:

  • libgee-0.8-dev on Ubuntu and Debian,
  • libgee-devel on Fedora and openSUSE,
  • libgee on Arch.
git clone --depth 1 --branch 7.8.1 https://github.com/elementary/granite.git
cd granite
meson setup build --prefix=/usr -Ddocumentation=false -Ddemo=false -Dintrospection=false
sudo ninja -C build install
cd ..
Meson & Ninja
git clone https://github.com/hugmouse/valapad.git
cd valapad
meson setup build
ninja -C build
./build/src/dev.mysh.valapad

# install system-wide
sudo ninja -C build install