X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/9a8c5aff2dc98c673e92e76385d44eb59879b021..d93c02bbe62d9404557db658694d24a00c598b84:/blog/archive/2023/01/index.html diff --git a/blog/archive/2023/01/index.html b/blog/archive/2023/01/index.html index 9c63b9717d..cacd672e89 100644 --- a/blog/archive/2023/01/index.html +++ b/blog/archive/2023/01/index.html @@ -4,15 +4,15 @@ Petter Reinholdtsen: entries from January 2023 - - + +

- Petter Reinholdtsen + Petter Reinholdtsen

@@ -23,7 +23,99 @@
+
+ 29th January 2023 +
+
+

Linux desktop systems +have +standardized how programs present themselves to the desktop +system. If a package include a .desktop file in +/usr/share/applications/, Gnome, KDE, LXDE, Xfce and the other desktop +environments will pick up the file and use its content to generate the +menu of available programs in the system. A lesser known fact is that +a package can also explain to the desktop system how to recognize the +files created by the program in question, and use it to open these +files on request, for example via a GUI file browser.

+ +

A while back I ran into a package that did not tell the desktop +system how to recognize its files and was not used to open its files +in the file browser and fixed it. In the process I wrote a simple +debian/tests/ script to ensure the setup keep working. It might be +useful for other packages too, to ensure any future version of the +package keep handling its own files.

+ +

For this to work the file format need a useful MIME type that can +be used to identify the format. If the file format do not yet have a +MIME type, it should define one and preferably also +register +it with IANA to ensure the MIME type string is reserved.

+ +

The script uses the xdg-mime program from xdg-utils to +query the database of standardized package information and ensure it +return sensible values. It also need the location of an example file +for xdg-mime to guess the format of.

+ +
+#!/bin/sh
+#
+# Author: Petter Reinholdtsen
+# License: GPL v2 or later at your choice.
+#
+# Validate the MIME setup, making sure motor types have
+# application/vnd.openmotor+yaml associated with them and is connected
+# to the openmotor desktop file.
+
+retval=0
+
+mimetype="application/vnd.openmotor+yaml"
+testfile="test/data/real/o3100/motor.ric"
+mydesktopfile="openmotor.desktop"
+
+filemime="$(xdg-mime query filetype "$testfile")"
+
+if [ "$mimetype" != "$filemime" ] ; then
+    retval=1
+    echo "error: xdg-mime claim motor file MIME type is $filemine, not $mimetype"
+else
+    echo "success: xdg-mime report correct mime type $mimetype for motor file"
+fi
+
+desktop=$(xdg-mime query default "$mimetype")
+
+if [ "$mydesktopfile" != "$desktop" ]; then
+    retval=1
+    echo "error: xdg-mime claim motor file should be handled by $desktop, not $mydesktopfile"
+else
+    echo "success: xdg-mime agree motor file should be handled by $mydesktopfile"
+fi
+
+exit $retval
+
+ +

It is a simple way to ensure your users are not very surprised when +they try to open one of your file formats in their file browser.

+ +

As usual, if you use Bitcoin and want to show your support of my +activities, please send Bitcoin donations to my address +15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.

+ +
+
+ + + Tags: debian, english. + + +
+
+
+ +
+
22nd January 2023 @@ -38,7 +130,7 @@ description of the Little Snitch application for MacOS X. It seemed like a very nice tool to have in the tool box, and I decided to see if something similar was available for Linux.

-

It did not took long to find +

It did not take long to find the OpenSnitch package, which has been in development since 2017, and now is in version 1.5.0. It has had a @@ -65,7 +157,7 @@ activities, please send Bitcoin donations to my address

- Tags: debian, english. + Tags: debian, english, opensnitch.
@@ -74,7 +166,7 @@ activities, please send Bitcoin donations to my address
8th January 2023 @@ -127,14 +219,14 @@ activities, please send Bitcoin donations to my address
-

RSS Feed

+

RSS Feed