Skip to content

Releases: kainctl/isd

v0.6.2

08 Mar 20:52
0e997ed

Choose a tag to compare

A small bug-fix release that actually makes the experimental terminal-derived-theme option selectable in the theme menu. Before, it only worked, when it was directly defined via the settings...

Additionally, this release further improves color support.
For terminal-derived-theme a user can now define whether or not it is a light theme (dark by default). This option is used to further adjust/tune the contrast to the background. See the documentation for more details.
isd will also try to guess if TRUECOLOR is supported or not by inspecting the TERM environment variable.
Finally, the dependencies have been updated, making more upstream textual themes available.

Full Changelog: v0.6.1...v0.6.2

v0.6.1

06 Oct 20:05
a4a5099

Choose a tag to compare

This quick bug-fix release, greatly improves the general coloring in isd and fixes color clashes in various themes.
Now the color palette of a theme should always look "good". Most notably the "ansi" colors are replaced by the theme's colors. For example, the "green" color in the search results and preview window will now adapt to the selected theme.

Further, this release includes an experimental feature that allows the theme to be inherited from the terminal emulator.

When using a modern terminal emulator such as kitty or ghostty, a new theme called terminal-derived-theme can be selected. This theme will infer the appropriate theme from the terminal palette colors. When an unsupported terminal emulator is used, a notification will be raised and the default selected.

This feature is EXPERIMENTAL. But it seems to be working nicely with ghostty and kitty. Though there seems to be some
flickering during startup.

v0.6.0

04 Oct 07:34
4e38a37

Choose a tag to compare

Summary

Sometimes it is not about the destination but the regression we made along the way...

First, the most visual change:
I have changed my GitHub username from isd-project to kainctl to clarify
that this is a personal account and not a GitHub project.
This means that the old GitHub pages link is broken and you should use
https://kainctl.github.io/isd/ instead.

This release is mostly an accumulation of bug fixes with some minor features.
If isd has been buggy for you this release should greatly improve your experience.

Though, there are a few new features:

  1. Includes a few more systemctl actions by default (disable and reset-failed)
  2. Support for root user to connect to the --user bus (if this is configured on the system).
  3. Reads a global configuration file (by default /etc/xdg/isd_tui/config.yaml), where local configurations have a higher priority than global options.

And a few default values have been updated:

  • Limit the default journalctl output in the preview window to 1_000 lines, and
  • More frequently refresh the selection and preview window.

The fixes are:

  • More robust configuration and persistent storage loading.
  • Fix authorization issues when interacting with system units on newer systemd versions.
  • Fix responsive, auto-update and window refresh issues. Most notably, the unit selection window should now correctly update when the underlying unit states change.
  • Disable CLI argument parsing as this is not meant for public use and floods the user with too many options. A future release will include a "blessed" CLI.
  • Fix theme variable not being applied from the configuration file.

PS: The project is named isd and not ISD ;)

New Contributors

Full Changelog: v0.5.1...v0.6.0

v0.5.1

24 Feb 10:17
51d52a2

Choose a tag to compare

This release fixes a bug that caused isd to crash if no matching units were found.

v0.5.0

17 Feb 18:04
8021a51

Choose a tag to compare

What's Changed

This is a big one ⛰️ that consists of many tiny changes.

Support old systemd versions

The most important one is that isd now supports very old systemd version 🥳
The current tests suite even includes systemd v229 (Ubuntu 16.04) and has been reported to even work with v217!
Thanks to @CollinDewey for getting the ball rolling! This officially fixes #17.

Improve service tab UX

There were many different iterations that I have tried in order to fix #48.
The final version moves the tab headers to the bottom of the preview window and keeps the tab header focusable.
This keeps the UI accessible while reducing friction for power users who want to quickly move between the search results pane and the preview output.

Add systemctl edit --full to default list

This is in response to #42.

Allow customizing the widget heights

Now the widget heights of the search results and preview widgets can be manually configured.
It is also possible to temporarily zoom in/out of the widget if one of them is currently focused.
This fixes #48.

Clicking on a unit now only highlights instead of selecting it

Previously, clicking on a unit without a modifier selected the unit.
This was a surprising behaviour for some users.
Now, clicking a unit only highlights the unit and is the same
as moving to it via keyboard navigation.
To select a unit, the user has to press one of the modifier keys.

This was kindly pointed out in the Late Night Linux Podcast.

Display a donation screen for each 100 startups

Hopefully, this won't be a controversial feature. ❤️

isd now includes a startup tracker that checks how many times isd has been opened.
Every time isd is opened a multiple of 100 times, a modal screen will appear that mentions how often isd has been opened and kindly asks the user to consider donating (if possible) to support the project.
By using a counting-based approach, I can be sure that new users who simply try it out a few times a month will probably never see it.
But those who make heavy use of the program might see it once or twice per year.
The value of 100 is derived from how often I have opened my text editor over a month, a program that I use far more regularly than isd.

Documentation updates

  • docs: Fix typo by @Adda0 in #45
  • docs: Fix typos in documentation by @Adda0 in #47
  • docs: Add new media mentions

Add proper testing

In order to minimize the potential for regression, I have included many tests in this release.
These tests also include parsing test data for very old systemd versions.
I will try to support until v229 from Ubuntu 16.04.
I also include visual snapshot comparison tests to ensure that I do not accidentally break the visual properties without noticing it.
Here is a quick shoutout to textualize that has created the insanely helpful pytest fixture for snapshot testing. 🚀

If you would like to read the motivation for using quickemu over anything else, have a look at the quickemu/README.md file.

More default vi(m) keybindings

As discussed in #12, this release includes the new default keybindings for ctrl+b/f for page down/up.
Of course, it can still be customized if you'd like to do so.

v0.4.1

01 Feb 15:49
2480a1b

Choose a tag to compare

Not a "real" patch release but simply relaxing the minimal required
Python version to 3.11. To support 3.11 only minor changes had to be
made. But to provide the best experience for "upstream" users, the nix
package and AppImage will use 3.13 for best performance.

Full Changelog: v0.4.0...v0.4.1

v0.4.0

01 Feb 01:37
5191c60

Choose a tag to compare

What's Changed

This release mainly focuses on improving the packaging side.
isd now provides a desktop file and uses a standard size for the icon (fixes #29).

This release will also be available on PyPI. The main reason for publishing
to PyPI is to better support packaging for distros as mentioned in #18.
Due to a naming clash on PyPI, the Python project has been renamed
to isd-tui. However, the project will continue to be named isd
and the executable will continue to be called isd!

The Python wheel only includes the necessary files, including
the .desktop file and icon.
The nix derivation propagates the .desktop file and the icon and makes them
available for Desktops of nix users.
Due to a bug in isd-appimage, identical nixpkgs pins cannot be used for isd
(#37 is blocked).

This release also introduces EXPERIMENTAL arm support!
I do not have access to an arm-based machine, and as such, I cannot actually
test the arm-based AppImage. The AppImage was created by cross-compiling.
However, I cannot run a cross-platform AppImage (should fix #36).
Please let me know if it works for you or not 🙏

At least the arm-based nix derivation can be run with QEMU, and it seems to work.

PS: This release also includes a workaround for a Zellij bug (fixes #34).
Though upstream already has a bug-fix available until a new version has
been published, isd will work around the Zellij issue.

Full Changelog: v0.3.0...v0.4.0

v0.3.0 -- New keybinding logic

26 Jan 15:43
01ffd84

Choose a tag to compare

Breaking changes to keybinding logic and configuration

This release moves from partially unsupported keybindings for old terminals to a modal-based action trigger (fixes #12) and uses more widely supported defaults. For the motivation, see #12 and the Customization page
for details. It is recommended to delete the ~/.config/isd/config.yaml file and regenerate it if required.

"Direct" systemctl actions need to be explicitly enabled (but are still supported!).

isd will also check for overlapping keybindings and raise an error to minimize unexpected behaviour of the tool.

Updated command palette

The command palette includes more descriptive help texts and mentions the associated keyboard shortcut if available.
This should help with keybinding discovery.
The documentation now explicitly mentions how to quit the application (fixes #25 and solves #21).

New Logo

isd now comes with a new logo from a hobby artist who prefers to only be referenced as Denis. Thank you Denis!

Pager fixes

isd uses a more widely used less argument configuration to also work with older versions of less (fixes #22)

Templated services

isd now behaves more similarly to systemd when viewing templated service files. To better convey that they do not provide a Preview output (apart from Cat), these units are greyed out, as suggested in #16 (fixed #16).

Basic error recovery

If the settings cannot be correctly loaded, the error message is shown and an error log is generated. This should help users with breaking changes in the future.

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0 - Add configurable page up/down keybindings

19 Jan 12:46

Choose a tag to compare

What's Changed

  • internal: add GPL-v3.0 license
  • feat: Add configurable pageup/down support in Selection widget
  • docs: Update FAQ
  • fix: Add AppImage environment variable for Ubuntu 24.04
  • docs: fix typos (#9)
  • docs: correct spelling in README
  • docs: enforce minimal Python version in uv cmds
  • docs: fix nix run URL
  • docs: fix nix install instructions
  • docs: fix uv install instructions
  • community: add welcome-bot
  • docs: fix links

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

18 Jan 10:54

Choose a tag to compare

Public Release! 🎉

Full Changelog: https://github.com/isd-project/isd/commits/v0.1.0