Skip to content

Commit

Permalink
XDG application desktop launcher & configuration cleanup
Browse files Browse the repository at this point in the history
There were `.desktop` files for applications that are not used anymore
for some time now as well as applications that don't require a
user-level launcher file anymore.

>> Desktop Launchers

- `atom.desktop` - Atom [1] was not used anymore since at least February
  23 2019 and was replaced by Visual Studio Code [2] in GH-179.
- `evolution.desktop` - The usage of Evolution [3] was only temporary
  and for test purposes regarding the compatibility with different
  protocols that could be used through opt-in extensions,
  but it was never the plan to replace the fantasic Thunderbird [4] as
  main mail application.
- `gpick.desktop` - The main reason for a user-level launcher was the
  missing `MimeType` entry for `application/x-gpick-palette` which has
  already been patched in the upstream [5]. Anyway, Gpick is also not
  used anymore since most design related applications include tools to
  pick colors, like e.g. Firefox's Eyedropper [6] or of course GIMP [7].
- `gtkhash.desktop` - GTKHash [8] is also not used anymore,
  the user-level launcher was introduced back then to add more keywords
  for supported hash algorithms.
- `jetbrains-ide.desktop` - The user-level launcher was introduced
  because the used icon name `intellij-idea-ultimate-edition` was not
  provided by the used icon the ("Numix Circle") so it was changed to
  the available `idea` icon. Anyway, a symlink was added a long time ago
  in the icon theme upstream and therefore the custom launcher is not
  required anymore.
- `org.gnome.gedit.desktop` - The user-level launcher was introduced to
  add more _MIME_ types that should be handled by Gedit [9], this was
  then resolved shortly afterwards using the correct way through XDG
  MIME type handling [10].
- `shotwell-viewer.desktop` - The user-level launcher was introduced in
  order to hide the `shotwell-viewer` application, that is not intended
  to be called as standalone application, using the `NoDisplay`
  attribute. Anyway, the launcher is now hidden by default in the
  upstream [11] and therefore doesn't require a custom launcher anymore.

>> XDG Autostart

- `dropbox.desktop` - Dropbox [12] was only used for testing purposes
  and has been replaced by the fantastic and advanced Syncthing [13] and
  Seafile [14] projects.

>> XDG Configurations

The `$XDG_CONFIG_HOME/gtk-*/bookmarks` file was never really useful
since it only support absolute file/directory paths using the `file://`
protocol but doesn't resolve environment variables.
It also takes less than a minute to manually create the bookmarks using
either Nautilus UI or any other GTK application that support the
`GtkPlacesSidebar` API [15]. This also allows to dynamically add or
remove bookmarks based on the current requirements.
Therefore the file has been removed at all.

[1]: https://atom.io
[2]: https://code.visualstudio.com
[3]: https://wiki.gnome.org/Apps/Evolution
[4]: https://www.thunderbird.net
[5]: https://github.com/thezbyg/gpick/blob/6adcd1337416e11959a7bc64829ac63459086416/share/applications/gpick.desktop#L10
[6]: https://developer.mozilla.org/en-US/docs/Tools/Eyedropper
[7]: https://www.gimp.org
[8]: https://github.com/tristanheaven/gtkhash
[9]: https://wiki.gnome.org/Apps/Gedit
[10]: https://wiki.archlinux.org/index.php/XDG_MIME_Applications
[11]: https://gitlab.gnome.org/GNOME/shotwell/-/blob/ca03ce2f8e70670d43be00e9f381f9cd22afbceb/data/org.gnome.Shotwell-Viewer.desktop.in#L9
[12]: https://www.dropbox.com
[13]: https://syncthing.net
[14]: https://www.seafile.com
[15]: https://developer.gnome.org/gtk3/stable/GtkPlacesSidebar.html

GH-246
  • Loading branch information
arcticicestudio committed Apr 15, 2020
1 parent 66852dd commit b3364c9
Show file tree
Hide file tree
Showing 14 changed files with 43 additions and 209 deletions.
45 changes: 16 additions & 29 deletions snowblocks/xdg/README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,26 @@
* [Application Desktop Entries](#application-desktop-entries)
* [Autostart](#autostart)
* [Bookmarks](#bookmarks)
* [User Directories](#user-directories)
## _XDG_ Application Desktop Launchers

### Application Desktop Entries
All application `*.desktop` launcher files adhere the [_XDG_ Desktop Entry Specification][fd-spec-desktop-entry].

All application `*.desktop` entry files adhere the freedesktop [Desktop Entry Specification][fd-spec-desktop-entry].
See the _Arch Linux wiki_ page about [desktop entries][archw-desktop_entries] for more details.

Read the [Arch Linux Wiki][archw-desktop-entries] site for detailed information and examples.
## _XDG_ Autostart

### Autostart
In an _XDG_-compliant desktop environment, such as [GNOME][], the desktop environment will automatically start `*.desktop` files found in the directories specified in the [Desktop Application Autostart Specification][fd-spec-autostart]:

In an XDG-compliant desktop environment, such as GNOME, the desktop environment will automatically start `*.desktop` files found in the directories specified in the [Desktop Application Autostart Specification][fd-spec-autostart]:
- System-wide: `$XDG_CONFIG_DIRS/autostart/` (`/etc/xdg/autostart/` by default)
- GNOME also starts files found in `/usr/share/gnome/autostart`
- User-level: `$XDG_CONFIG_HOME/autostart` (`~/.config/autostart/` by default)

* System-wide: `$XDG_CONFIG_DIRS/autostart/` (`/etc/xdg/autostart/` by default)
* GNOME also starts files found in `/usr/share/gnome/autostart/`
* User-specific: `$XDG_CONFIG_HOME/autostart/` (`~/.config/autostart/` by default)
See the _Arch Linux_ wiki page about [desktop autostart entries][archw-desktop_entries#autostart] for more details.

System-wide `*.desktop` files can be overridden via the user-specific `~/.config/autostart/` folder.
## _XDG_ User Directories

References:
All user directory configurations adhere the _freedesktop_/_XDG_ [user directories specification][archw-xdg_user_dir].

* [Arch Linux Wiki - Desktop Entries (Autostart)][archw-desktop-entries-autostart]

### Bookmarks

All bookmark configurations adhere the freedesktop [Desktop Bookmark Specification][fd-spec-bookmark].

### User Directories

All user directory configurations adhere the freedesktop [XDG user directories][archw-xdg-user-dir] specification.

[archw-desktop-entries]: https://wiki.archlinux.org/index.php/Desktop_entries
[archw-desktop-entries-autostart]: https://wiki.archlinux.org/index.php/Desktop_entries#Autostart
[archw-xdg-user-dir]: https://wiki.archlinux.org/index.php/XDG_user_directories
[archw-desktop_entries]: https://wiki.archlinux.org/index.php/Desktop_entries
[archw-desktop_entries#autostart]: https://wiki.archlinux.org/index.php/Desktop_entries#Autostart
[archw-xdg_user_dir]: https://wiki.archlinux.org/index.php/XDG_user_directories
[fd-spec-autostart]: https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html
[fd-spec-bookmark]: https://www.freedesktop.org/wiki/Specifications/desktop-bookmark-spec/
[fd-spec-desktop-entry]: https://specifications.freedesktop.org/desktop-entry-spec/latest/
[fd-spec-desktop-entry]: https://specifications.freedesktop.org/desktop-entry-spec/latest
[gnome]: https://www.gnome.org
19 changes: 0 additions & 19 deletions snowblocks/xdg/applications/atom.desktop

This file was deleted.

21 changes: 0 additions & 21 deletions snowblocks/xdg/applications/evolution.desktop

This file was deleted.

14 changes: 0 additions & 14 deletions snowblocks/xdg/applications/gpick.desktop

This file was deleted.

14 changes: 0 additions & 14 deletions snowblocks/xdg/applications/gtkhash.desktop

This file was deleted.

7 changes: 0 additions & 7 deletions snowblocks/xdg/applications/jetbrains-idea.desktop

This file was deleted.

15 changes: 0 additions & 15 deletions snowblocks/xdg/applications/org.gnome.gedit.desktop

This file was deleted.

12 changes: 0 additions & 12 deletions snowblocks/xdg/applications/shotwell-viewer.desktop

This file was deleted.

12 changes: 0 additions & 12 deletions snowblocks/xdg/autostart/dropbox.desktop

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
[Desktop Entry]
Name=Plank
Type=Application
Exec=plank -n igloo
Exec=plank -n polarbear
Icon=plank
Binary file removed snowblocks/xdg/gtk-3.0/bookmarks-igloo.igloocrypt
Binary file not shown.
2 changes: 1 addition & 1 deletion snowblocks/xdg/gtk-3.0/settings.ini
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@

[Settings]
gtk-application-prefer-dark-theme=0
gtk-button-images=1
gtk-button-images=0
gtk-menu-images=0
84 changes: 24 additions & 60 deletions snowblocks/xdg/snowblock.json
Original file line number Diff line number Diff line change
@@ -1,86 +1,50 @@
[
{
"clean": [
"~/.config",
"~/.config/autostart",
"~/.config/gtk-3.0",
"~/.local/share/applications"
"$XDG_CONFIG_HOME",
"$XDG_CONFIG_HOME/autostart",
"$XDG_CONFIG_HOME/gtk-3.0",
"$XDG_DATA_HOME/applications"
]
},
{
"link": {
"~/.config/user-dirs.conf": {
"force": true
},
"~/.config/user-dirs.dirs": {
"force": true
},
"~/.config/user-dirs.locale": {
"force": true
},
"~/.config/gtk-3.0/bookmarks": {
"$XDG_DATA_HOME/applications/minecraft.desktop": {
"create": true,
"force": true,
"hosts": {
"igloo": "gtk-3.0/bookmarks-igloo.igloocrypt"
"polarbear": "applications/minecraft.desktop"
}
},
"~/.local/share/applications/atom.desktop": {
"create": true,
"force": true,
"path": "applications/atom.desktop"
},
"~/.local/share/applications/evolution.desktop": {
"create": true,
"force": true,
"path": "applications/evolution.desktop"
},
"~/.local/share/applications/gpick.desktop": {
"create": true,
"force": true,
"path": "applications/gpick.desktop"
},
"~/.local/share/applications/gtkhash.desktop": {
"create": true,
"force": true,
"path": "applications/gtkhash.desktop"
},
"~/.local/share/applications/minecraft.desktop": {
"create": true,
"force": true,
"path": "applications/minecraft.desktop"
},
"~/.local/share/applications/org.gnome.gedit.desktop": {
"create": true,
"force": true,
"path": "applications/org.gnome.gedit.desktop"
},
"~/.local/share/applications/org.gnome.Screenshot.desktop": {
"$XDG_DATA_HOME/applications/org.gnome.Screenshot.desktop": {
"create": true,
"force": true,
"path": "applications/org.gnome.Screenshot.desktop"
},
"~/.local/share/applications/shotwell-viewer.desktop": {
"create": true,
"force": true,
"path": "applications/shotwell-viewer.desktop"
"hosts": {
"polarbear": "applications/org.gnome.Screenshot.desktop"
}
},
"~/.config/autostart/dropbox.desktop": {
"$XDG_CONFIG_HOME/autostart/plank.desktop": {
"create": true,
"force": true,
"path": "autostart/dropbox.desktop"
"hosts": {
"polarbear": "autostart/plank.desktop.polarbear"
}
},
"~/.config/autostart/plank.desktop": {
"$XDG_CONFIG_HOME/gtk-3.0/settings.ini": {
"create": true,
"force": true,
"hosts": {
"igloo": "autostart/plank.desktop.igloo"
"polarbear": "gtk-3.0/settings.ini"
}
},
"~/.config/gtk-3.0/settings.ini": {
"create": true,
"force": true,
"path": "gtk-3.0/settings.ini"
"$XDG_CONFIG_HOME/user-dirs.conf": {
"force": true
},
"$XDG_CONFIG_HOME/user-dirs.dirs": {
"force": true
},
"$XDG_CONFIG_HOME/user-dirs.locale": {
"force": true
}
}
}
Expand Down
5 changes: 1 addition & 4 deletions snowblocks/xdg/user-dirs.dirs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@

XDG_DESKTOP_DIR="$HOME/desktop" Desktop
XDG_DOCUMENTS_DIR="$HOME/documents" Documents
XDG_TEMPLATES_DIR="$HOME/code/snippetbox/gists"
XDG_DOWNLOAD_DIR="$HOME/downloads" Downloads
XDG_MUSIC_DIR="$HOME/music" Music
XDG_PICTURES_DIR="$HOME/images" Images
XDG_TEMPLATES_DIR="$HOME/code/snippetbox/gists"
XDG_VIDEOS_DIR="$HOME/videos" Videos

# Public share directory is currently disabled
#XDG_PUBLICSHARE_DIR="$HOME/public/share"

0 comments on commit b3364c9

Please sign in to comment.