# emacs-systemd-mode

> major mode for editing systemd units in Emacs

**Wikidata**: [Q116597030](https://www.wikidata.org/wiki/Q116597030)  
**Source**: https://4ort.xyz/entity/emacs-systemd-mode

## Summary  
emacs-systemd-mode is a major mode for editing systemd unit files in GNU Emacs, providing syntax highlighting, indentation, and navigation support tailored to systemd configuration syntax. It is a free software library written in Emacs Lisp and maintained by Mark Oteiza since its inception in 2014.

## Key Facts
- emacs-systemd-mode is a major mode for editing systemd units in GNU Emacs.
- It was created in 2014 by Mark Oteiza, who also serves as its maintainer.
- The software is written in Emacs Lisp, a dialect of Lisp used in GNU Emacs since 1985.
- It is distributed via the Emacs Lisp Package Archive (ELPA), specifically NonGNU ELPA, starting from August 29, 2021.
- The current stable version is 1.6.1, released on February 1, 2023.
- Version 1.6 was released on September 19, 2017, and is available at https://elpa.nongnu.org/nongnu/systemd-1.6.tar.lz.
- Earlier stable versions include 1.0 (March 2, 2015), 1.2 (April 26, 2015), 1.3 (September 10, 2015), 1.4 (May 14, 2016), and 1.5 (February 3, 2017).
- It is hosted on GitHub at https://github.com/holomorph/systemd-mode and mirrored on GNU Savannah.
- The official end-user website is https://elpa.nongnu.org/nongnu/systemd.html.
- The source code repositories include URLs on GNU Savannah using cgit and Gitweb interfaces, as well as the primary GitHub repository.
- It is classified as both free software and a software library specifically for GNU Emacs.
- The copyright is held by Mark Oteiza and the software remains under copyright.
- It is packaged in Debian as systemd-el (since 2017), with the stable package named elpa-systemd.
- In Ubuntu, it is available as elpa-systemd and tracked via Launchpad project ubuntu/+source/systemd-el.
- In Gentoo Linux, it is available as app-emacs/systemd-mode.
- In Guix, the package variable name is emacs-systemd-mode.
- Aliases for the project include emacs-systemd, elpa-systemd, systemd-mode, and systemd.
- It requires GNU Emacs as its platform and does not run independently.
- It is related to elogind, a software component used in systemd-free systems.
- While not directly dependent on GNOME Shell, it operates within environments where GNOME Shell (introduced in 2011) may be present.

## FAQs  
**What is emacs-systemd-mode used for?**  
emacs-systemd-mode is used for editing systemd unit files in GNU Emacs. It provides syntax highlighting, proper indentation, and navigation features specific to systemd configuration syntax, improving the editing experience for system administrators and developers.

**Who created and maintains emacs-systemd-mode?**  
Mark Oteiza created emacs-systemd-mode in 2014 and continues to maintain it. He is responsible for its development, releases, and integration into package archives.

**Where can I download or install emacs-systemd-mode?**  
It is available through the NonGNU ELPA archive at https://elpa.nongnu.org/nongnu/systemd.html and can be installed directly in Emacs. It is also packaged in Debian, Ubuntu, Gentoo, and Guix under various names including elpa-systemd, systemd-el, app-emacs/systemd-mode, and emacs-systemd-mode.

**What programming language is emacs-systemd-mode written in?**  
It is written entirely in Emacs Lisp, the extension language of GNU Emacs, which has been in use since 1985 for customizing and extending the editor.

**Is emacs-systemd-mode free software?**  
Yes, emacs-systemd-mode is distributed as free software, allowing users to run, study, modify, and redistribute the code. However, it is copyrighted, with Mark Oteiza as the copyright holder.

**Which platforms or desktop environments does it require?**  
emacs-systemd-mode runs on GNU Emacs and does not depend on any specific desktop environment. While it may be used in systems running GNOME Shell (introduced in 2011), it does not require it.

## Why It Matters  
emacs-systemd-mode fills a critical niche for users who manage Linux systems using systemd and prefer Emacs as their primary editor. Systemd unit files have a specific syntax and structure, and editing them without tooling support can lead to errors and inefficiencies. By offering syntax highlighting, intelligent indentation, and navigation capabilities, emacs-systemd-mode reduces the cognitive load and increases accuracy when writing or modifying unit files. Its availability through standard package managers like ELPA, Debian, Ubuntu, Gentoo, and Guix ensures broad accessibility across different distributions and workflows. As systemd remains the dominant init system in modern Linux distributions, having a dedicated, well-maintained editing mode in one of the most powerful text editors enhances productivity for system administrators, DevOps engineers, and developers. Furthermore, its status as free software ensures transparency, community involvement, and long-term sustainability.

## Notable For  
- Being the primary Emacs major mode dedicated to systemd unit file editing.
- Its integration into NonGNU ELPA since August 29, 2021, marking official recognition within the GNU Emacs ecosystem.
- Long-term maintenance by a single developer, Mark Oteiza, since its inception in 2014.
- Support across multiple Linux distributions via native packaging in Debian, Ubuntu, Gentoo, and Guix.
- Providing both GitHub and GNU Savannah hosting, ensuring redundancy and alignment with free software hosting principles.
- Offering multiple access points to source code, including cgit and Gitweb interfaces on GNU Savannah.
- Maintaining a consistent release history with documented stable versions from 1.0 (2015) through 1.6.1 (2023).

## Body  
### History  
emacs-systemd-mode was created in 2014 by Mark Oteiza, who has maintained it continuously since then. The first stable release, version 1.0, was published on March 2, 2015. Subsequent versions followed regularly, including 1.2 (April 26, 2015), 1.2.1 (May 30, 2015), 1.2.2 (August 5, 2015), 1.3 (September 10, 2015), 1.3.1 (September 28, 2015), 1.4 (May 14, 2016), 1.4.1 (September 29, 2016), 1.5 (February 3, 2017), and 1.6 (September 19, 2017). The most recent stable version, 1.6.1, was released on February 1, 2023. The project transitioned to official distribution via NonGNU ELPA on August 29, 2021, marking a significant milestone in its integration into the broader GNU Emacs ecosystem.

### Development and Maintenance  
Mark Oteiza is the sole creator and maintainer of emacs-systemd-mode, having assumed responsibility for its development from inception in 2014. He oversees all aspects of the project, including coding, versioning, documentation, and distribution. The software is copyrighted, with Oteiza listed as the copyright holder, though it remains free software, allowing users to use, modify, and redistribute it under appropriate licensing terms.

### Distribution and Packaging  
emacs-systemd-mode is distributed through the Emacs Lisp Package Archive (ELPA), specifically NonGNU ELPA, starting from August 29, 2021. This inclusion is documented at https://elpa.nongnu.org/nongnu/systemd.html, which serves as the preferred end-user website. It is also available as a source package in Debian under the name systemd-el since 2017, with the binary package named elpa-systemd in both Debian and Ubuntu. In Gentoo Linux, it is packaged as app-emacs/systemd-mode, and in Guix, it is accessible via the variable name emacs-systemd-mode. The Ubuntu package elpa-systemd is tracked on Launchpad under the project ubuntu/+source/systemd-el.

### Source Code and Hosting  
The primary source code repository is hosted on GitHub at https://github.com/holomorph/systemd-mode.git. The project is also mirrored on GNU Savannah, a free software hosting platform, with two access URLs: one using the cgit interface (https://git.savannah.gnu.org/cgit/emacs/nongnu.git/tree/?h=elpa/systemd) and another using Gitweb (https://git.savannah.gnu.org/gitweb/?p=emacs/nongnu.git;a=tree;h=refs/heads/elpa/systemd;hb=refs/heads/elpa/systemd). These mirrors ensure availability and align with free software principles by providing access through community-run infrastructure.

### Technical Specifications  
emacs-systemd-mode is implemented in Emacs Lisp, the extension language of GNU Emacs, which has been in use since 1985. It functions as a major mode within GNU Emacs, meaning it provides a specialized editing environment for systemd unit files. The mode supports syntax highlighting, indentation rules, and navigation features tailored to the structure of systemd configuration files. It does not operate as a standalone application and requires GNU Emacs to function.

### Ecosystem and Related Projects  
emacs-systemd-mode is part of the NonGNU ELPA collection, a repository for Emacs packages not included in the main GNU distribution. It is related to elogind, a software component that provides systemd-compatible login management for systems without systemd. While not directly dependent on GNOME Shell, the mode may be used in desktop environments where GNOME Shell (introduced in 2011) is present, particularly by developers and system administrators working on Linux systems.

### Classification and Metadata  
The project is classified as both free software and a software library intended for use within GNU Emacs. Its official Wikidata description is "major mode for editing systemd units in Emacs." Aliases include emacs-systemd, elpa-systemd, systemd-mode, and systemd. The preferred website for end users is https://elpa.nongnu.org/nongnu/systemd.html, while developers are directed to the GitHub page. The project is written in English and targeted at both programmers and end users, as indicated by its website qualifiers.

## References

1. [Systemd version 1.6. 2021](https://lists.gnu.org/archive/html/gnu-emacs-sources/2021-08/msg00092.html)
2. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.6)
3. [Systemd version 1.6.1. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-02/msg00002.html)
4. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.0)
5. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.2)
6. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.2.1)
7. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.2.2)
8. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.3)
9. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.3.1)
10. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.4)
11. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.4.1)
12. [Source](https://github.com/holomorph/systemd-mode/releases/tag/v1.5)
13. [Source](https://elpa.nongnu.org/nongnu/systemd.html)
14. GNU Guix