summaryrefslogblamecommitdiffstatshomepage
path: root/posts/weltschmerz-1.4.0.md
blob: bab87f7fa279f46e5a511843154751070b8672d1 (plain) (tree)





































































                                                                                                                      

                                                                      


























                                                                                                   



                                                                               
title: New features in weltschmerz 1.4.0
date: 2021-07-03
author: Wolfgang Müller

After more than a year of hibernation, the last two weeks have seen a greatly
increased amount of work dedicated to [weltschmerz](weltschmerz). The initial
impetus to pick up on development came after a whole bunch of contributions and
bug reports from a new user, [nortti](https://ahti.space/~nortti/). Thanks a lot
for those and for jump-starting further work on the project!

Read on to take a look at noteworthy changes and all the new features, or head
on over to the [project page](weltschmerz) to get 1.4.0 right away.

## Controlling cursor blinking

The first feature nortti
[proposed and implemented](https://git.oriole.systems/weltschmerz/commit/?id=0774a46257bdc6daa1c6a1c3485d75bd07ef849c)
is the new **`cursor_blink`** setting. Modifying cursor blink behaviour was not
possible before; weltschmerz simply relied on GTK's default setting of `SYSTEM`.
This falls back to whatever is set for
[`gtk-cursor-blink`](https://developer.gnome.org/gtk3/stable/GtkSettings.html#GtkSettings--gtk-cursor-blink)
which in almost all cases[^1] will be `TRUE`.

Now users may enable or disable cursor blinking within weltschmerz. The default
value for `cursor_blink` is `SYSTEM` which means that there is nothing to do if
the current behaviour already works for you.

## Open terminal

<figure>
	<img src="img/weltschmerz-open-terminal.png" alt="The 'Open
	terminal' feature in weltschmerz 1.4.0"/>
	<figcaption>The 'Open terminal' feature in weltschmerz 1.4.0</figcaption>
</figure>

The
[second contribution](https://git.oriole.systems/weltschmerz/commit/?id=b70083a5f4404e2422ff0a0aadd023a661164fae)
they made is the incredibly handy **Open terminal** feature. Similar to
[**Open directory**](new-features-in-weltschmerz#Open%20directory),
this feature leverages `OSC 7` support[^2] to open a new instance of weltschmerz in
the current directory. This is bound to `Ctrl+Shift+T` for quick and easy access.

## URL copying

Up until now, weltschmerz only populated the `CLIPBOARD` selection when copying
URLs to the clipboard via the **Copy URL** context menu entry. Since all other
copy operations set the `PRIMARY` selection as well,
[1.4.0 changes this](https://git.oriole.systems/weltschmerz/commit/?id=b497a49d8bd2a345dd30a9f55dc4976560df157f).
Now, **Copy URL** populates both `CLIPBOARD` and `PRIMARY`, making weltschmerz
behave like other GTK and QT apps[^3].

## A handful of bugfixes

weltschmerz now has a minimum size of 28 × 3 cells, reports its window geometry
correctly at all times, and always draws the scrollbar if the user or
distribution turns overlay scrolling off. The latter may seem inconsequential,
but the journey to the fix was a very long and arduous one.

I've written about these changes extensively in the relevant commit messages
[here](https://git.oriole.systems/weltschmerz/commit/?id=ff708b2251ffdc209f23a2275c721532dff2fddb),
[here](https://git.oriole.systems/weltschmerz/commit/?id=89f8571cbcf48b7810c7027faf26ee5cf4b968b1),
and
[here](https://git.oriole.systems/weltschmerz/commit/?id=ff27c3da1266df519aa15d95cfc32ad9d0d7b5e5).
Definitely check those out if you are a fan of weird issues and possibly even
weirder workarounds.

## Internationalization

Finally, I'm glad to announce that weltschmerz is now translatable! The 1.4.0
release comes with a German and a Finnish translation of the program, excluding
the manual (a bigger effort, and I did not want to drag 1.4.0 out even
further[^4]).

This introduces [gettext](https://www.gnu.org/software/gettext) as new
dependency. In almost all cases it should already be installed since it is the
de-facto standard for translations in GNOME and GNU-adjacent projects.

If your language is missing and you want to contribute, have a look at the
[`TRANSLATE`](https://git.oriole.systems/weltschmerz/tree/TRANSLATE#n1) file in the
project repository.

## Closing & Thanks

That's it for this release. Thanks a lot again to nortti for all their
contributions and for providing valuable feedback throughout the entire 1.4.0
development process!

See [`NEWS`](https://git.oriole.systems/weltschmerz/tree/NEWS) for the full set
of changes, and
[`1.3.0..1.4.0`](https://git.oriole.systems/weltschmerz/log/?qt=range&q=1.3.0..1.4.0)
for all relevant commits.

[^1]: I'd love to hear from you if your distribution disables blinking cursors
  by default.
[^2]: This particular escape is
  [not yet fully specified](https://gitlab.freedesktop.org/terminal-wg/specifications/-/issues/20).
[^3]: See
  [here](https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt)
  for freedesktop's consensus on how clipboards should work in X11.
[^4]: The newly released
  [version 1.4.1](https://git.oriole.systems/weltschmerz/tag/?h=1.4.1)
  now contains a full translation of the manual
  [into German](https://git.oriole.systems/weltschmerz/about/weltschmerz.de.1).