List of applications/Utilities
Terminal
Command shells
See the main article: Command-line shell.
See also Wikipedia:Comparison of command shells.
Terminal emulators
Terminal emulators show a GUI Window that contains a terminal. Most emulate Xterm, which in turn emulates VT102, which emulates typewriter. For further background information, see Wikipedia:Terminal emulator.
For a comprehensive list, see Wikipedia:List of terminal emulators.
- Alacritty — A cross-platform, GPU-accelerated terminal emulator.
- aterm — Xterm replacement with transparency support. It has been deprecated in favour of urxvt since 2008.
- Contour — A modern and fast terminal emulator with truly full Unicode support including ZJW (unlike 99% of TE).
- cool-retro-term — A good looking terminal emulator which mimics the old cathode display.
- CoreTerminal — Terminal emulator based on qtermwidget. Part of C-Suite.
- CuteCom — A graphical serial terminal.
- Darktile — GPU rendered terminal emulator designed for tiling window managers.
- Deepin Terminal — Terminal emulation application for Deepin desktop.
- Eterm — Terminal emulator intended as a replacement for xterm and designed for the Enlightenment desktop.
- Extraterm — A terminal emulator with support for images in terminal, Unicode, font ligature, text zoom, etc.
- Hyper — A terminal with JS/CSS support. Based on the Electron platform.
- Konsole — Terminal emulator included in the KDE desktop. Part of kde-utilities.
- kitty — A modern, hackable, featureful, OpenGL based terminal emulator
- Liri Terminal — Material Design terminal for Liri.
- mlterm — A multi-lingual terminal emulator supporting various character sets and encodings, variable-width fonts and bidi rendering.
- moserial — GTK-based serial terminal for the GNOME desktop.
- PuTTY — Highly configurable ssh/telnet/serial console program.
- QMLKonsole — Terminal application for Plasma Mobile.
- QTerminal — Lightweight Qt-based terminal emulator.
- rxvt-unicode (urxvt) — Customizable terminal emulator forked from rxvt, with support for Perl extensions.
- shellinabox — A web-based SSH Terminal
- st — Simple terminal implementation for X.
- https://st.suckless.org || stAUR
- Station — Terminal emulation features different view modes such as split vertically and horizontally, a tabbed interface, and copy and paste commands. Part of maui.
- Tabby — A terminal for a more modern age with Unicode support.
- https://tabby.sh/ || tabbyAUR
- Terminal — Terminal emulator for GNUstep.
- Terminology — Terminal emulator by the Enlightenment project team with innovative features: file thumbnails and media play like a media player.
- wayst — Simple terminal emulator for Wayland and X11 with OpenGL rendering and minimal dependencies.
- xterm — Simple terminal emulator for the X Window System. It provides DEC VT102 and Tektronix 4014 compatible terminals for programs that cannot use the window system directly.
- Yakuake — Drop-down terminal (Quake style) emulator based on Konsole. Part of kde-utilities.
- zutty — A high-end terminal for low-end systems.
VTE-based
VTE (Virtual Terminal Emulator) is a widget developed during early GNOME days for use in the GNOME Terminal. It has since given birth to many terminals with similar capabilities.
- Black Box — An elegant and customizable terminal for GNOME.
- Deepin Terminal (GTK version) — Old terminal emulation application for Deepin desktop.
- EasySSH — SSH Connection Manager.
- GCM — SSH and telnet connection manager.
- Germinal — Minimalist terminal emulator which provides a borderless maximized terminal, attached to a tmux session by default, hence providing tabs and panels.
- GNOME Console — Formerly known as King’s Cross, a simple user-friendly terminal emulator for the GNOME desktop. Part of gnome.
- GNOME Terminal — A terminal emulator included in the GNOME desktop with support for Unicode. Part of gnome-extra.
- Guake — Drop-down terminal for the GNOME desktop.
- kermit — A VTE-based terminal emulator that aims to be simple, fast and effective.
- LXTerminal — Desktop independent terminal emulator for LXDE.
- MATE Terminal — A fork of GNOME Terminal for the MATE desktop.
- Pantheon Terminal — A super lightweight, beautiful, and simple terminal emulator. It is designed to be setup with sane defaults and little to no configuration.
- ROXTerm — Tabbed terminal emulator with a small footprint.
- sakura — Terminal emulator based on GTK and VTE.
- Terminator — Terminal emulator supporting multiple resizable terminal panels.
- Termite — Keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support. Unmaintained - the developers recommend switching to Alacritty.
- Termit — Simple VTE-based terminal emulator with Lua scripting support
- Tilda — Configurable drop down terminal emulator.
- Tilix — Tiling terminal emulator for GNOME.
- tym — Lua-configurable terminal emulator
- Xfce Terminal — Terminal emulator included in the Xfce desktop with support for a colorized prompt and a tabbed interface.
KMS-based
The following terminal emulators are based on the kernel mode setting that could be invoked without X.
- KMSCON — A KMS/DRM-based system console(getty) with an integrated terminal emulator for Linux operating systems.
framebuffer-based
In the GNU/Linux world, the framebuffer can refer to a virtual device in the Linux kernel (fbdev) or the virtual framebuffer system for X (xvfb). This section mainly lists the terminal emulators based on the in-kernel virtual device, i.e. fbdev.
- yaft — A simple terminal emulator for living without X, with UCS2 glyphs, wallpaper and 256color support.
- Fbterm — a fast FrameBuffer based TERMinal emulator for linux
Terminal pagers
See also Wikipedia:Terminal pager.
- less — A program similar to more, but with support for both forward and backward scrolling, as well as partial loading of files.
- jless — A command-line pager for JSON data.
- mcview — A pager with mouse and colour support. It is bundled with midnight commander.
- moar — Moar is a pager. It's designed to just do the right thing without any configuration.
- more — A simple and feature-light pager. It is a part of util-linux.
- most — A pager with support for multiple windows, left and right scrolling, and built-in colour support
- ov — Feature-rich terminal-based text viewer. It is a so-called terminal pager.
Terminal multiplexers
See also Wikipedia:Terminal multiplexer.
- abduco — Tool for session attach and detach support which allows a process to run independently from its controlling terminal.
- byobu — An GPLv3 licensed addon for tmux or screen. It requires a terminal multiplexer installed.
- dtach — Program that emulates the detach feature of GNU Screen.
- dvtm — dwm-style window manager in the console.
- GNU Screen — Full-screen window manager that multiplexes a physical terminal.
- mtm — Simple terminal multiplexer with just four commands: change focus, split, close, and screen redraw.
- tmate — A fork of tmux aiming to help with remote access and pair programming.
- tmux — BSD licensed terminal multiplexer.
- zellij — Terminal multiplexer on steroids written in Rust
- wezterm — GPU-accelerated cross-platform terminal emulator and multiplexer implemented in Rust.
Files
File managers
See also Wikipedia:Comparison of file managers.
Console
- Clex — File manager with full-screen user interface
- CliFM — The command line file manager: full-featured, fast, extensible, and lightweight as hell.
- ded (Directory-Editor) — The enhancement of dired, is similar to Emacs Dired.
- fff — A simple file manager written in Bash.
- fm — A terminal based file manager.
- joshuto — ranger-like terminal file manager written in Rust.
- Last File Manager — Powerful file manager written in Python 3 with a curses interface.
- lf — Terminal file manager written in Go using server/client architecture.
- Midnight Commander — Console-based, dual-paneled file manager.
- nffm — "Nothing Fancy File Manager", a mouseless ncurses file manager written in C.
- nnn — Tiny, lightning fast, feature-packed file manager.
- Pilot — File manager that comes with the Alpine email client.
- Ranger — Console-based file manager with vi bindings, customizability, and lots of features.
- sfm — simple file manager for unix-like systems.
- TUIFI Manager — A cross-platform terminal-based termux-oriented file manager (and component), meant to be used with a Uni-Curses project or as is.
- Vifm — Ncurses-based two-panel file manager with vi-like keybindings.
- xplr — A hackable, minimal, fast TUI file explorer.
- yazi — Blazing fast terminal file manager written in Rust, based on async I/O.
Graphical
- Caja — The file manager for the MATE desktop.
- CoreFM — Simple lightweight easy to use file manager with many features like image previews, mime-icon support, split view, auto-mounting of removable media, drag-n-drop support etc. Part of C-Suite.
- Deepin File Manager — File manager developed for Deepin.
- Dolphin — File manager included in the KDE desktop. Part of kde-system.
- fm — Small, general purpose file manager built using GTK and Relm, written in Rust,
- Gentoo — A lightweight file manager for GTK.
- GNOME Files — Extensible, heavyweight file manager used by default in GNOME with support for custom scripts. Part of gnome.
- Index — File manager that lets you browse your system files and applications and preview your music, text, image and video files and share them with external applications. Part of maui.
- Konqueror — File manager and web browser for the KDE desktop. Part of kde-network.
- Liri Files — The file manager for Liri.
- Nemo — Nemo is the file manager of the Cinnamon desktop. A fork of Nautilus.
- Pantheon Files — File browser designed for elementary OS.
- PathFinder — File browser that comes with the FOX toolkit.
- PCManFM — Very fast and lightweight file manager which can also optionally manage the desktop icons and background.
- PCManFM-Qt — Qt port of PCManFM file manager.
- Peony — File manager for the UKUI desktop.
- qtFM — Small, lightweight filemanager for Linux desktops based on pure Qt.
- https://qtfm.eu/ || qtfmAUR
- ROX Filer — Small and fast file manager which can optionally manage the desktop background and panels.
- Thunar — File manager that can be run as a daemon with excellent start up and directory load times.
Twin-panel
Note that some of these twin-panel file managers can also be set to have only one pane.
- Double Commander — File manager with two panels side by side. It is inspired by Total Commander and features some new ideas.
- https://doublecmd.sourceforge.io/ || GTK: doublecmd-gtk2, Qt5: doublecmd-qt5
- Gnome Commander — A dual-paned file manager for the GNOME Desktop.
- Krusader — Advanced twin panel (Midnight Commander style) file manager for the KDE desktop.
- muCommander — A lightweight, cross-platform file manager with a dual-pane interface written in Java.
- SpaceFM — GTK multi-panel tabbed file manager.
- Sunflower — Small and highly customizable twin-panel file manager for Linux with support for plugins.
- Tux Commander — Windowed file manager with two panels side by side similar to popular Total Commander or Midnight Commander file managers.
- Worker — Fast, lightweight and feature-rich file manager for the X Window System.
- Xfe — Microsoft Explorer-like file manager for X (X File Explorer).
Trash management
See Trash management#Trash creation.
File synchronization and backup
See also Synchronization and backup programs, Wikipedia:Comparison of file synchronization software, and Wikipedia:Comparison of backup software.
Console
- Borg — Deduplicating backup program with compression and authenticated encryption that supports backing up over ssh.
- bup — Efficient backup system based on the git packfile format, providing fast incremental saves and global deduplication.
- duplicity — Simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.
- Duply — Command-line front-end for duplicity which simplifies running it. It manages backup job settings in profiles and allows to batch execute commands.
- https://www.duply.net/ || duplyAUR
- git-annex — Manage files with git, without checking the file contents into git.
- hsync — Command line program to sync only those files that have been renamed/moved but otherwise unchanged. It works by issuing simple move operations at the destination without actually transferring the files, and is meant to be used in conjunction with other synchronization programs that lack this capability.
- rclone — Command line program to sync files and directories to and from Amazon S3, Dropbox, Google Drive, Microsoft OneDrive, Yandex Disk and many other cloud storage services as well as between local paths.
- restic — Fast, secure, efficient backup program that supports backing up to many cloud services.
- rsync — File transfer program that uses the "rsync algorithm" which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. Has multiple frontends available.
- Tarsnap — Secure, efficient proprietary online backup service.
- Unison — File synchronization tool that allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.
- YARsync — A Python wrapper around rsync, providing file synchronization and backup with an interface similar to git.
Graphical
- Déjà Dup — Simple GTK backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.
- DirSync Pro — Small, but powerful utility for file and folder synchronization.
- Duplicati — Backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers.
- FreeFileSync — Folder comparison and synchronization software that creates and manages backup copies of all your important files.
- grsync — GTK+ GUI for rsync to synchronize folders, files and make backups
- KBackup — Backup program with an easy to use user interface based on the KDE Frameworks. Part of kde-utilities.
- Pika Backup — Easy to use backup tool to keep your data safe. Uses Borg as backend.
- SparkleShare — File sharing and collaboration application written in C#. It can sync with any Git server over SSH.
- Syncthing — Continuous file synchronization program. It synchronizes files between two or more computers in a simple way without advanced configuration.
- Syncany — Cloud storage and filesharing application with a focus on security and abstraction of storage.
- Synkron — Application that helps you keep your files and folders always updated. You can easily sync your documents, music or pictures to have their latest versions everywhere.
- Timeshift — A system restore tool for Linux.
- Vorta — Encrypted, deduplicated and compressed backups using Borg as backend.
Archiving and compression tools
Console
For archiving and compression command-line tools, see Archiving and compression.
Graphical
- 360zip — A proprietary archiving tool.
- https://yasuo.360.cn/ || 360zipAUR
- Ark — Archiving tool included in the KDE desktop. Part of kde-utilities.
- Arqiver — Simple Qt archive manager based on libarchive.
- CoreArchiver — Simple file compressing/extracting utility based on Qt and libarchive-qt. Part of C-Suite.
- Deepin Archive Manager — Fast and lightweight application for creating and extracting archives.
- Engrampa — Archive manager for MATE
- File Roller — Archive manager for the GNOME desktop. Part of gnome-extra.
- LXQt File Archiver — Simple and lightweight desktop-agnostic Qt file archiver.
- p7zip-gui — The GUI belonging to the p7zip software.
- PeaZip — Open source file and archive manager.
- https://peazip.github.io/peazip-linux.html || GTK: peazip-gtk2-binAUR, Qt: peazip-qt-binAUR
- Xarchiver — Lightweight desktop independent archive manager built with GTK.
- https://github.com/ib/xarchiver || GTK 3: xarchiver, GTK 2: xarchiver-gtk2
Comparison, diff, merge
See also Wikipedia:Comparison of file comparison tools.
For managing pacnew/pacsave files, specialised tools exist. See Pacnew and Pacsave files#Managing .pac* files.
Console
See diff(1) from diffutils and its alternatives.
- colordiff — A Perl script wrapper for 'diff' that produces the same output but with pretty 'syntax' highlighting.
- diff-highlight — Perl script to highlight changed parts within pairable lines of
diff -u
output
- diffr — A Rust utility to pretty-print diff with highlighting at word-level for ease of review.
- ydiff — A Python wrapper to get highlighted diff output from stdin or VCS-tracked file/dirs, in either unfied or side-by-side view.
- delta — A diff viewer written in Rust with syntax highlighting.
- diff-so-fancy — A diff output decorator. It does not calculate the diff, it only decorates it.
- difftastic — Compares files using their syntax trees
Graphical
- DiffPDF — Compare the text or the visual appearance of each page in two PDF files.
- Diffuse — Small and simple text merge tool written in Python.
- KDiff3 — File and directory diff and merge tool for the KDE desktop.
- Kompare — GUI front-end program for viewing and merging differences between source files. It supports a variety of diff formats and provides many options to customize the information level displayed. Part of kde-sdk.
- Meld — Visual diff and merge tool that can compare files, directories, and version controlled projects.
- xxdiff — A graphical browser for file and directory differences.
Vim and Emacs provide merge functionality with vimdiff and ediff
.
Batch renamers
Console
See rename(1) from util-linux.
- brn2 — fast bulk renamer with swapping.
- edir — Rename, delete, and copy files and directories using your editor (enhanced vidir).
- f2 — Cross-platform command-line tool for batch renaming files and directories quickly and safely, can also rename files based on audio tags.
- nomino — A batch rename utility for developers.
- rename.pl — Batch renamer based on perl regex.
- vidir — Rename and delete files and directories using your editor.
Graphical
- Caja-Rename — Batch renaming extension for Caja.
- CoreRenamer — Simple lightweight batch file renamer application. Part of C-Suite.
- GPRename — GTK batch renamer for files and directories.
- KRename — Very powerful batch file renamer for the KDE desktop.
- metamorphose2 — wxPython based batch renamer with support for regular expressions, renaming multimedia files according to their metadata, etc.
- Thunar Bulk Rename — Change the name of multiple files at once using some criterion that applies to at least one of the files. Run with
thunar -B
.
File searching
This section lists utilities for file searching based on filename, file path or metadata. For full-text searching, see the next section.
See also Wikipedia:List of search engines#Desktop search engines.
Console
See find(1) from findutils and its alternatives.
Graphical
- Catfish — Versatile file searching tool by Xfce, can be powered by find, locate and Zeitgeist.
- CoreHunt — Easy to use fast file searching tool with categorized search and search history. Part of C-Suite.
- Czkawka — GTK file searching utility with advanced features, it can also find similar images and videos.
- GNOME Search Tool — GNOME utility to search for files, depends on GNOME Files.
- KFind — Search tool for KDE to find files by name, type or content. Has internal search and supports locate. Part of kde-utilities.
- MATE Search Tool — MATE utility to search for files.
- regexxer — Interactive search and replace tool featuring Perl-style regular expressions.
- Searchmonkey — Powerful GUI search utility for matching regex patterns.
File indexers
These programs index your files to allow for quick searching.
- fsearch — A fast file search utility for Unix-like systems based on GTK 3.
- angrysearch — Linux file search tool with instant results as you type.
Full-text searching
See grep(1) from grep and its alternatives, which provide non-indexed full-text search.
Full-text indexers
- DocFetcher — Graphical Java desktop search application.
- LocalSearch — LocalSearch is the indexer and search engine that powers desktop search for core GNOME components, replacing Tracker.
- MeiliSearch — Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine.
- Namazu — A Full-Text Search Engine
- Recoll — Full text search tool based on Xapian, has CLI and GUI.
- Zeitgeist — Event aggregation framework for the user's activities and notifications (files opened, websites visited, conversations had, etc.), has several third-party front-ends.
Development
Code forges
- GitLab — Project management and code hosting application.
- Gitea — Painless self-hosted Git service. Fork of Gogs.
- Forgejo — A lightweight software forge. Community project built on top of Gitea.
Code forge clients
- git-open — Open a repository website (GitHub, GitLab, Bitbucket) in your browser
- github-cli — GitHub's official command line tool
- hub — Command line interface for GitHub
- hut — Command line interface for Sourcehut
- lab — A hub-like tool for GitLab
- snippet — A terminal based interface to create a new GitLab snippet
Version control systems
See also Wikipedia:Comparison of revision control software.
- Bazaar — Distributed version control system that helps you track project history over time and to collaborate easily with others.
- CVS — Concurrent Versions System, a client-server revision control system.
- Darcs — Distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.
- Fossil — Distributed VCS with bug tracking, wiki, forum, and technotes.
- Git — Distributed revision control and source code management system with an emphasis on speed.
- Mercurial — Distributed version control system written in Python and similar in many ways to Git.
- Subversion — Full-featured centralized version control system originally designed to be a better CVS.
Build automation
See also Wikipedia:List of build automation software.
- Apache Ant — Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.
- Apache Maven — Build automation tool used primarily for Java.
- Bazel — An open-source tool that allows for the automated building and testing of software.
- CMake — Family of tools designed to build, test and package software.
- GNU make — GNU make utility to maintain groups of programs.
- https://www.gnu.org/software/make/ || make (dependency of base-devel)
- Meson — Extremely fast and user friendly build system.
- Gradle — Powerful build system for the JVM.
- Phing — PHP program designed to automate tasks of all kinds.
- https://www.phing.info/ || phingAUR
- Xmake — A cross-platform build utility based on Lua with a built-in package manager.
Integrated development environments
See also Wikipedia:Comparison of integrated development environments.
For PHP specific list, see PHP#Development tools.
- Android Studio — The official Android development environment based on IntelliJ IDEA.
- Anjuta — Versatile IDE with project management, an application wizard, an interactive debugger, a source editor, version control support and many more tools.
- Aptana Studio — IDE based on Eclipse, but geared towards web development, with support for HTML, CSS, Javascript, Ruby on Rails, PHP, Adobe AIR and others.
- Bluefish — Powerful editor targeted towards programmers and webdevelopers, with many options to write websites, scripts and programming code. It supports many programming and markup languages.
- Builder — Tool to write and contribute to great GNOME-based applications. Part of gnome-extra.
- Code::Blocks — C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.
- CLion — A cross-platform IDE for C and C++.
- CodeLite — Open source and cross-platform C/C++/PHP and Node.js IDE written in C++ .
- Eclipse — IDE for Java, C/C++, PHP, Perl and Python with subversion support and task management.
- https://www.eclipse.org/ || Java EE: eclipse-jee-binAUR, Java: eclipse-java-binAUR, RCP: eclipse-rcp-binAUR, C/C++: eclipse-cpp-binAUR, PHP: eclipse-php-binAUR
- Eric — Full-featured Python and Ruby IDE written in PyQt5.
- Gambas — IDE based on a Basic interpreter with object extensions.
- Geany — Small and lightweight IDE with many supported many programming and markup languages including C, Java, PHP, HTML, Python, Perl, Pascal.
- KDevelop — Feature-full, plugin extensible IDE for C/C++ and other programming languages. Part of kde-applications.
- Komodo Edit — A free, multi-language editor.
- Lapce — Lightning-fast and Powerful Code Editor written in Rust.
- Lazarus — Delphi (Object Pascal) compatible IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.
- LiteIDE — Simple Go IDE.
- Lite XL — A lightweight, simple, fast, feature-filled, and extremely extensible text editor written in C, and Lua, adapted from lite.
- MPLAB — IDE for Microchip PIC and dsPIC development.
- Netbeans — IDE for developing with Java, JavaScript, PHP, Python, Ruby, Groovy, C, C++, Scala, Clojure, and other languages.
- PhpStorm — JetBrains PhpStorm is a commercial, cross-platform IDE for PHP built on JetBrains' IntelliJ IDEA platform, providing an editor for PHP, HTML and JavaScript with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code.
- Qt Creator — Lightweight, cross-platform C++ integrated development environment with a focus on Qt.
- Strike — Simple and covergent IDE that works on desktop and mobile computers. Part of maui.
- Theia — Eclipse Theia is a free and open-source IDE for desktop and web applications. It is implemented in TypeScript, is based on Visual Studio Code, and emphasizes extensibility. It can be run as a web or a desktop application.
- Visual Studio Code — Visual Studio Code is a cross-platform, free and open-source text editor developed by Microsoft, written in JavaScript and TypeScript. It supports a variety of languages thanks to its extensions.
- VSCodium — Free/Libre Open Source Software Binaries of VSCode.
- ZeroBrane Studio — IDE with debugging support for Lua 5.1, Lua 5.2, Lua 5.3, LuaJIT, and other Lua engines.
Java IDEs
- BlueJ — Fully featured Java IDE used mainly for educational and beginner purposes.
- https://bluej.org/ || bluejAUR
- IntelliJ IDEA — IDE for Java, Groovy and other programming languages with advanced refactoring features.
- https://www.jetbrains.com/idea/ || community edition: intellij-idea-community-edition, ultimate edition: intellij-idea-ultimate-editionAUR
Python IDEs
- Ninja-IDE — IDE for Python development.
- PyCharm — Python IDE with support for code analysis, debugging, unit testing, version control and web development with Django.
- https://www.jetbrains.com/pycharm/ || community edition: pycharm-community-edition, professional edition: pycharm-professionalAUR
- Spyder — Scientific Python Development Environment providing MATLAB-like features.
- Thonny — Python IDE for beginners.
- https://thonny.org/ || thonnyAUR
- WingIDE — Proprietary Python development environment. It is fully featured and meant for professional use.
- https://wingware.com/ || wingideAUR
Educational IDEs
- KTurtle — Educational programming environment that aims to make learning how to program as easily as possible. Part of kde-education.
- Processing — Playground for teaching non-programmers the fundamentals of computer programming in a visual context.
- Scratch — Programming system and content development tool for educational and entertainment purposes, such as creating interactive projects and simple sprite-based games. It is used primarly by unskilled users (such as children) as an entry to event-driven programming.
- Turbowarp — A mod/fork of scratch 3 primarily to run the scratch projects faster with other features
Debuggers
- Accerciser — Interactive Python accessibility explorer. It uses the AT-SPI library to inspect, examine, and interact with widgets, allowing you to check if an application is providing correct information to assistive technologies and automated testing frameworks. Part of gnome-extra.
- Accessibility Inspector — Inspector for application accessibility tree. Part of kde-accessibility.
- bin-cpuflags-x86 — A small CLI tool to detect CPU flags (instruction sets) of X86 binaries.
- Bustle — Draws sequence diagrams of D-Bus activity. It shows signal emissions, method calls and their corresponding returns, with time stamps for each individual event and the duration of each method call.
- Data Display Debugger — Graphical front-end for command-line debuggers such as GDB.
- Desed — TUI-based debugger for sed. Features variable and regex preview, setting breakpoints and stepping back and forth.
- D-Spy — Easy to use D-Bus debugger. It's like d-feet, but written in C and blisteringly fast. Part of gnome-extra.
- GammaRay — Qt-application inspection and manipulation tool.
- GDBFrontend — Easy, flexible and extensible graphical debugger.
- Heaptrack — A heap memory profiler for Linux.
- KCachegrind — Profile data visualization tool, used to determine the most time consuming execution parts of program. Part of kde-sdk.
- https://apps.kde.org/kcachegrind/ || KDE: kcachegrind, Qt: qcachegrind
- KDbg — Graphical user interface to GDB, the GNU debugger. It provides an intuitive interface for setting breakpoints, inspecting variables, and stepping through code.
- KDebugSettings — Application to choose which QLoggingCategory are displayed by editing the user's global
qtlogging.ini
configuration file. Part of kde-utilities.
- Massif-Visualizer — Visualizer for Valgrind Massif data files.
- Nemiver — Easy to use standalone C/C++ debugger (GDB front-end) that integrates well in the GNOME environment.
- Qt QDbusViewer — Tool to introspect D-Bus objects and messages.
- scanmem — Debugging utility designed to isolate the address of an arbitrary variable in an executing process.
- https://github.com/scanmem/scanmem || CLI: scanmem, GUI: gameconqueror
- Sysprof — Profiling tool that helps in finding the functions in which a program uses most of its time. Part of gnome-extra.
Lexing and parsing
Lex and Yacc are part of POSIX.
- flex — A tool for generating text-scanning programs, alternative to Lex.
- Berkeley Yacc — Berkeley reimplementation of the Unix parser generator Yacc.
- GNU Bison — The GNU general-purpose parser generator, alternative to byacc.
And then there are also:
- ANTLR — Parser generator, written in Java, for parsing structured text or binary files.
- LPeg — Pattern-matching library, based on PEGs, for Lua.
- peg/leg — Recursive-descent parser generators for C.
- Ragel — Compiles finite state machines from regular languages into executable C, C++, Objective-C, or D code.
GUI/TUI prompts
These programs provide ready-made user interfaces for alerting the user or prompting for information. These are best suited for writing shell scripts; for more complex use-cases, see #GUI builders.
- KDialog — Qt-based GUI prompts by KDE. Part of kde-utilities.
- yad (Yet Another Dialog) — Zenity fork with more dialog types and support for custom buttons.
- Qarma — Zenity clone for Qt5.
GUI builders
- Elastic — Design and export spring physics-based animations to use with libadwaita.
- FLUID — FLTK GUI designer.
- Glade — Create or open user interface designs for GTK applications. Part of gnome-extra.
- KUIViewer — Quick viewer for Qt Designer UI File. Part of kde-sdk.
- Qt Designer — Tool for designing and building graphical user interfaces (GUIs) with Qt Widgets.
Hex editors
See also Wikipedia:Comparison of hex editors.
- Bless — High quality, full featured hex editor.
- GHex — Hex editor for GNOME, which allows the user to load data from any file, view and edit it in either hex or ascii. Part of gnome-extra.
- hyx — A minimalistic (< 2300 lines of C) but powerful (hex/ASCII, insert/replace/delete, copy/paste, undo/redo, search, colors, vim-inspired controls) Linux terminal hex editor.
- https://yx7.cc/code/ || hyxAUR
- ImHex — A hex editor for reverse engineers, programmers, and people who value their retinas when working at 3 AM.
- Okteta — KDE hex editor for viewing and editing the raw data of files.
- Reverse Engineer's Hex Editor — Hex editor with features for analyzing and annotating binary file formats
- wxHexEditor — Hex editor for large files with advanced features such as raw memory and disk editing capabilities.
Hex dumpers
See also Wikipedia:Hex dump.
- chd — Unicode-aware replacement for xxd/hexdump.
- hex — Modern colored hex dump. Binary name is
hx
.
- hexd — Modern colored hex dump.
- hexdump — Basic hex dump from the standard package util-linux.
- hexyl — Modern colored hex dump.
- hexxy — Modern colored hex dump.
- huxdemp — Advanced and colored version of hexdump using a pager. Binary name is
huxd
.
- https://github.com/kiedtl/huxdemp || huxdemp-gitAUR (git), huxdempAUR (bin), hxdAUR (bin)
- phd — Colored hex dump.
pwn phd
.
- ugrep — Grep alternative with a hex dump feature.
ug --hexdump
.
- unidump — hexdump for Unicode data.
- xxd — Basic hex dump from vim.
Web development tools
- Emblem — Generate projects avatars for your Matrix rooms and git forges from a symbolic icon.
- KImageMapEditor — Editor of image maps embedded inside HTML files, based on the <map> tag. Part of kde-graphics.
- Share Preview — Preview and debug websites metadata tags for social media share.
- Webfont Kit Generator — Utility to generate WOFF, WOFF2 and the necessary CSS boilerplate from non-web font formats (OTF & TTF).
JSON tools
- gron — gron transforms JSON into discrete assignments to make it easier to grep.
- jid — JSON incremental digger
- jo — A command to create JSON.
- jq — Command-line JSON processor
- jshon — A JSON parser for the shell.
- the Elvish shell has built-in support for JSON
Literate programming
See also Wikipedia:Literate programming.
- Noweb — A Simple, Extensible Tool for Literate Programming build against ICON libs and texlive
- nuweb — A Simple Literate Programming Tool
UML modelers
See also Wikipedia:List of Unified Modeling Language tools.
- ArgoUML — UML modeling tool with support for all standard UML 1.4 diagrams.
- Eclipse Modeling Tools — Tools and runtimes for building model-based applications.
- Gaphor — Simple modeling tool for UML.
- Modelio — Modeling environment supporting the main standards: UML, BPMN, MDA, SysML.
- Papyrus — Model-based engineering tool based on Eclipse.
- PlantUML — Tool to create UML diagrams from a plain text language.
- PlantUML QEditor — PlantUML editor written in Qt.
- Umbrello — Unified Modelling Language (UML) diagram program based on KDE Technology. Part of kde-sdk.
- UMLet — UML tool with a simple user interface: draw UML diagrams fast, build sequence and activity diagrams from plain text, export diagrams to eps, pdf, jpg, svg, and clipboard, share diagrams using Eclipse, and create new, custom UML elements.
- https://umlet.com/ || umletAUR
- UML/INTERLIS-editor — Facilitate the application of the model driven approach to a greater number of users.
- Violet — Very easy to learn and use UML editor that draws nice-looking diagrams.
API documentation browsers
- Devhelp — Developer tool for browsing and searching API documentation. Part of gnome-extra.
- Doc Browser — API documentation browser with support for DevDocs and Hoogle.
- Qt Assistant — Tool for viewing on-line documentation in Qt help file format.
- quickDocs — Fast developer docs reader for reading Valadoc and DevDocs.
- Zeal — Offline API documentation browser for software developers.
Issue tracking systems
- Bugzilla — Bug tracker from Mozilla.
- Flyspray — Lightweight, web-based bug tracking system written in PHP
- MantisBT — Web-based issue tracking system
- Redmine — A flexible project management web application. Written using the Ruby on Rails, it is cross-platform and cross-database.
- Trac — Trac Integrated SCM and Project Management using Apache and Subversion.
See also Git server#Advanced web applications.
Code review
- Gerrit — A web-based code review tool built on top of the Git version control system
- GitLab also supports code reviews.
See also Wikipedia:List of tools for code review.
Game development
See also Wikipedia:List of game engines.
- Allegro — A cross-platform library mainly aimed at video game and multimedia programming.
- GDevelop — Game creator designed to be used by everyone - no programming skills required.
- Godot — Advanced, feature-packed, multi-platform 2D and 3D game engine. Create games with ease, using Godot's unique approach to game development.
- LibreSprite — Animated sprite editor and pixel art tool lets you create 2D animations for videogames.
- LÖVE — Lua based game development environment.
- Pixelorama — 2D sprite editor with animation support, made by Orama Interactive in the Godot Engine using GDScript.
- TIC-80 — Fantasy computer/console.
- https://tic80.com/ || tic-80-gitAUR
- Tiled — General purpose 2D level editor with powerful tile map editing features. It is built to be easy to use and is suitable for many type of games.
- Unity — Unity is a flexible and powerful development platform for creating multi-platform 3D and 2D games. Proprietary, but a free version is available for certain use-cases (see here for more details).
Repository managers
- Nexus 2 — Nexus 2 Repository Manager (OSS)
- Nexus 3 — Nexus 3 Repository OSS
- Artifactory — Artifactory is an advanced Binary Repository Manager for use by build tools, dependency management tools and build servers
Text input
Character selectors
- Emote — A modern emoji picker written in GTK3.
- GNOME Characters — Character map application for GNOME. Part of gnome.
- gucharmap — GTK 3 character selector for GNOME.
- Hieroglyphic — Search through over 1000 different LaTeX symbols by sketching.
- KCharSelect — Tool to select special characters from all installed fonts and copy them into the clipboard. Part of kde-utilities.
- r-clisymbols — Unicode Symbols at the R Prompt.
- rofimoji — Emoji, unicode and general character picker for rofi and rofi-likes
- Smile — An emoji picker with custom tags support and localization.
- unipicker — CLI utility for searching unicode characters by description and copy them to the clipboard
On-screen keyboards
- CellWriter — Grid-entry handwriting recognition input panel.
- CoreKeyboard — Simple X11 based Qt virtual keyboard with word suggestions. Part of C-Suite.
- eekboard — Easy to use virtual keyboard toolkit.
- Florence — Extensible scalable on-screen virtual keyboard for GNOME that stays out of your way when not needed.
- Maliit Keyboard — Virtual keyboard useful for KDE Plasma-Wayland
- Onboard — Onscreen keyboard useful for tablet PC users and for mobility impaired users.
- qtvkbd — Virtual keyboard written in Qt, a fork of kvkbd.
- QVKbd — Virtual keyboard written in Qt.
- Squeekboard — GTK 3 virtual keyboard for Wayland, written in Rust/C.
- theShell On Screen Keyboard — Touchscreen keyboard for theShell.
- xvkbd — Virtual keyboard for X window system.
- wvkbd — Virtual keyboard for Wayland and wlroots.
Keyboard layout switchers
- fbxkb — A NETWM compliant keyboard indicator and switcher. It shows a flag of current keyboard in a systray area and allows you to switch to another one.
- xxkb — A lightweight keyboard layout indicator and switcher.
- gxkb — X11 keyboard layout indicator and switcher.
- qxkb — A keyboard switcher written in Qt.
Keybinding managers
Input methods
See the main article: Input method.
Disks
Partitioning tools
See Partitioning#Partitioning tools.
Formatting tools
See File systems#Types of file systems.
Cloning tools
See Disk cloning.
Mount tools
See also udisks#Mount helpers.
- 9mount — Mount 9p filesystems.
- cryptmount — Mount an encrypted file system as a regular user.
- KDiskFree — Displays information about hard disks and other storage devices. It also allows to mount and unmount drives and view them in a file manager. Part of kde-utilities.
- ldm — A lightweight daemon that mounts drives automagically using udev
- pmount — Mount source as a regular user to an automatically created destination
/media/source_name
.
- Debian:pmount || pmountAUR
- pmount-safe-removal — Mount removable devices as regular user with safe removal
- https://mywaytoarch.tumblr.com/post/13111098534/pmount-safe-removal-of-usb-device || pmount-safe-removalAUR
- udevil — Mounts removable devices as a regular user, show device info, and monitor device changes. Only depends on udev and glib.
- zulucrypt — A GUI frontend for cryptsetup to create, manage and mount encrypted volumes; supports encfs as well
Disk usage display
Console
- duc — A library and suite of tools for inspecting disk usage.
- https://duc.zevv.nl/ || ducAUR
- dust — A more intuitive version of du in rust.
- gdu — Disk usage analyzer with console interface written in Go.
- gt5 — Diff-capable "du-browser".
- ncdu — Simple ncurses disk usage analyzer.
Graphical
- Filelight — Disk usage analyzer that creates an interactive map of concentric, segmented rings that help visualise disk usage on your computer. Part of kde-utilities.
- File Size Viewer (part of Konqueror) — KDE based disk usage analyzer that draws a map of rectangles sized according to file or dir sizes. Run with
fsview
. Part of kde-network.
- GNOME Disk Usage Analyzer — Disk usage analyzer for the GNOME desktop to check folder sizes and available disk space. Part of gnome.
- Graphical Disk Map — Disk usage analyzer that draws a map of rectangles sized according to file or dir sizes.
- MATE Disk Usage Analyzer — Disk usage analyzing tool for MATE Desktop.
- qdirstat — Qt-based directory statistics (KDirStat/K4DirStat without any KDE - from the original KDirStat author).
Disk health status
See S.M.A.R.T.#GUI applications.
File recovery tools
See File recovery#List of utilities.
Disk cleaning
Console
- Czkawka CLI — Simple, fast and free app to remove unnecessary files from your computer.
- duff — A command-line utility for quickly finding duplicates in a given set of files.
- fclones — Very fast duplicate file Finder written in rust.
- fdupes — Program for identifying or deleting duplicate files residing within specified directories.
- jdupes — Identify and take actions upon duplicate files.
- rdfind — Command line tool that finds duplicate files. It compares files based on their content.
- rmlint — Tool to quickly find (and optionally remove) duplicate files and other lint.
Graphical
- BleachBit — Frees disk space and guards your privacy; frees cache, deletes cookies, clears Internet history, shreds temporary files, deletes logs, and discards junk you did not know was there.
- Czkawka GUI — Simple, fast and free app to remove unnecessary files from your computer. Looks similar to FSlint.
- dupeGuru — GUI tool to find duplicate files in a system.
- FSlint — A utility to find and clean various forms of lint on a filesystem.
- Shredder — Graphical user interface for rmlint.
- Sweeper — System cleaning utility for KDE. Part of kde-utilities.
Disk image writing
See also Wikipedia:List of tools to create Live USB systems.
- Bytewalk — Bytewalk is a firmware extraction tool and binwalk fork.
- Deepin Boot Maker — Tool to make boot disk for Deepin OS.
- Fedora Media Writer — Tool that helps users put Fedora images on their portable drives such as flash disks.
- Image Burner — Simple imageburner designed for elementary OS.
- Impression — Application to create bootable drives from disk images.
- ISO Image Writer — KDE tool to write a .iso file to a USB disk. Part of kde-utilities.
- MultiBootUSB — Install multiple live distributions on a USB disk non-destructively and has an option to uninstall them.
- MultiWriter — Write an ISO file to multiple USB devices at once. Part of gnome-extra.
- Popsicle — Utility for flashing multiple USB devices in parallel, written in Rust.
- SUSE Studio ImageWriter — Utility for writing raw disk images and hybrid ISOs to USB keys.
- UNetbootin — Installs Linux/BSD distributions to a partition or USB drive.
- Usbimager — Minimal GUI application to write compressed disk images to USB drives.
- WoeUSB — Simple tool to create USB stick windows installer from an ISO image or a real DVD. (Fork of WinUSB).
- https://github.com/WoeUSB/WoeUSB || woeusbAUR, woeusb-ngAUR
- windows2usb — Windows ISO to Flash Drive burning utility for Linux with MBR/GPT, BIOS/UEFI, FAT32/NTFS support
- Ventoy — A New Bootable USB Solution
System
System monitors
See also Category:Monitoring.
Console
- bashtop — A Linux resource monitor written in bash.
- bottom — A customizable graphical process/system monitor for the terminal.
- bpytop — Htop but more lightweight with more features.
- btop — Rewrite of bpytop in C++
- collectl — Collectl is a light-weight performance monitoring tool capable of reporting interactively as well as logging to disk. It reports statistics on cpu, disk, infiniband, lustre, memory, network, nfs, process, quadrics, slabs and more in easy to read format.
- CoreFreq — Low-level CPU monitor with BIOS like functionalities.
- dool — Versatile resource statistics tool.
- glances — CLI curses-based monitoring tool in Python.
- gtop — A system monitoring dashboard for the terminal.
- hitome — A quick and dirty system monitor that is light on resources.
- htop — Simple, ncurses interactive process viewer.
- kmon — Linux kernel manager and activity monitor.
- Sysstat — Collection of resource monitoring tools: iostat, isag, mpstat, pidstat, sadf, sar.
- zps — A small utility for listing and reaping zombie processes on GNU/Linux.
Graphical
- Conky — Lightweight, scriptable system monitor.
- CoreStats — Simple lightweight system resource viewer to monitor the CPU, RAM, Network and Disk IO statistics. Part of C-Suite.
- Deepin System Monitor — Monitor system process status for Deepin desktop.
- Linux Process Explorer — Graphical process explorer for Linux.
- LXTask — Lightweight process manager for LXDE.
- MATE System Monitor — System monitor for MATE.
- Mission Center — GTK4 application for monitoring CPU, memory, disk, network and GPU usage.
- Nagstamon — Status monitor that connects to multiple Nagios, Icinga, Opsview, Centreon, Op5 Monitor/Ninja, Checkmk and Thruk monitoring servers.
- Qt Process Manager — Lightweight process manager for LXQt.
- Resources — Simple and versatile monitor for graphical applications, processes and system resources (CPUs, memory, GPUs, network interfaces and block devices), written in Rust and GTK4.
- Task Manager — GTK3 based process manager with basic system resource monitor for Xfce.
- Usage — View information about use of system resources, like memory and disk space.
- xosview — System monitor that resembles gr_osview from SGI IRIX.
Daemon
- Collectd — Simple, extensible system monitoring daemon based on rrdtool. It has a small footprint and can be set up either stand-alone or as a server/client application.
- Fsniper — Daemon to run scripts based on changes in files monitored by inotify.
- netdata — Web-based real-time performance monitor.
- Telegraf — Agent written in Go for collecting, processing, aggregating, and writing metrics.
Hardware sensor monitoring
See lm_sensors#Graphical front-ends.
System information viewers
Console
- alsi — A system information tool for Arch Linux. It can be configured for every other system without even touching the source code of the script.
- archey4 — Python script to display system information alongside the Arch Linux logo.
- dmidecode — It reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard.
- fastfetch — Like Neofetch, but much faster because written in C.
- hwdetect — Simple script to list modules that are exported in
/sys/
.
- hwinfo — Powerful hardware detection tool come from openSUSE.
- hw-probe — Tool to probe for hardware, check operability and find drivers with the help of Linux Hardware Database.
- inxi — A script to get system information.
- neofetch — A fast, highly customizable system info script that supports displaying images with w3m.
- nmon — Console based application for monitoring various system components.
- pfetch — A pretty system information tool written in POSIX sh.
- screenfetch — Similar to archey but has an option to take a screenshot. Written in bash.
Graphical
- GPU-Viewer — GUI to glxinfo, vulkaninfo, clinfo and es2_info; written in Python with GTK.
- hardinfo2 — System Information and Benchmark for Linux Systems.
- i-Nex — An application that gathers information for hardware components available on your system and displays it using an user interface similar to the popular Windows tool CPU-Z.
- lshw — A small tool to provide detailed information on the hardware configuration of the machine with CLI and GTK interfaces.
- KInfoCenter — Centralized and convenient overview of system information for KDE. Part of plasma.
- USBView — Display the topology of devices on the USB bus.
System log viewers
- GNOME Logs — Viewer for the systemd journal. Part of gnome.
- GNOME System Log — System log viewer for GNOME.
- KJournald Browser — Provides a flexible tool to browse in local, remote and offline systemd-journald databases. Part of kde-system.
- KSystemLog — System log viewer tool for KDE. Part of kde-system.
- MATE System Log — System log viewer for MATE.
- Pacman Log Viewer — Tool used to inspect pacman log file, in particular it lists installed, removed and upgraded packages letting you to filter by package's name and/or date.
- QJournalctl — Qt-based graphical user interface for systemd's journalctl command.
Font viewers
See also Wikipedia:Font management software.
- Deepin Font Manager — A font management tool for Deepin desktop.
- Font Manager — Simple font management for GTK desktop environments.
- fontpreview — Simple shell script using fzf and sxiv for previewing fonts.
- fontpreview-ueberzug — Shell script inspired by fontpreview that uses ueberzug instead of sxiv.
- Fonty Python — Manage, view and find your fonts.
- GNOME Fonts — Font viewer for GNOME. Part of gnome.
- gtk2fontsel — Font selection and preview tool.
- KFontview — KDE application to view and install different types of fonts. Part of plasma.
- MATE Font Viewer — Font viewer for MATE.
Help viewers
See man page#Reading local man pages.
Command schedulers
See also Cron.
- FcronQ — Fcron GUI, an advanced periodic command scheduler.
- KCron — Tool for KDE to run applications in the background at regular intervals. It is a graphical interface to the Cron command. Part of kde-system.
- KTimer — Little tool for KDE to execute programs after some time. It allows you to enter several tasks and to set a timer for each of them. The timers for each task can be started, stopped, changed, or looped. Part of kde-utilities.
Shutdown timers
- auto-suspend — A small script for shutting down or suspending the system due to missing configured activities.
- Hsiu-Ming's Timer — Graphical shutdown timer, which enables you to shutdown, turn off monitor, reboot or play sound after a period of time.
- KShutdown — Graphical shutdown utility, which allows you to turn off or suspend a computer at a specified time. It features various time and delay options, command-line support, and notifications.
Clock synchronization
See Time synchronization.
Screen management
See also Xrandr#Graphical front-ends.
- RRandR — A graphical interface to the RandR X Window System extension.
Backlight management
See Backlight#Backlight utilities.
Color management
See ICC profiles#Utilities and Backlight#Color correction.
Printer management
Bluetooth management
See Bluetooth#Front-ends.
Power management
See Power management#Userspace tools.
System management
See Systemd#GUI configuration tools.
Boot management
See GRUB/Tips and tricks#GUI configuration tools.
Package management
Configuration management
- aconfmgr — Package to track, manage, and restore the configuration of an Arch Linux system.
- Ansible — IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.
- cdist — Simple configuration management system with Arch Linux support.
- https://www.cdi.st/ || cdistAUR
- Chef — Automation Software for Continuous Delivery of Secure Applications and Infrastructure.
- https://www.chef.io/ || chef-workstationAUR, chef-clientAUR
- etckeeper — Collection of tools to let
/etc
be stored in a VCS repository.
- Puppet — IT automation software that helps system administrators manage infrastructure throughout its lifecycle, from provisioning and configuration to patch management and compliance.
- Saltstack — A Python-based, open-source software for event-driven IT automation, remote task execution, and configuration management.
Virtualization
See Libvirt#Client and VirtualBox.