GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - helloSystem/launch: Command line tool to launch applications, will search for .app bundles and .AppDir directories in various directories, and will show launch errors in the GUI

BranchesTags
Open more actions menu

Latest commit

 

History

136 Commits
136 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
man
man
 
 
src
src
 
 
tests
tests
 
 
.cirrus.yml
.cirrus.yml
 
 
.clang-format
.clang-format
 
 
.gitignore
.gitignore
 
 
CMakeLists.txt
CMakeLists.txt
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

launch Build Status

Command line tools (launch, open,...) to launch applications and open documents (and protocols). Will first search $PATH and then .app bundles and .AppDir directories using the launch "database", and will show launch errors in the GUI. GUI applications in helloSystem like like Filer, Menu, and other applications use these tools to launch applications and open documents (and protocols). The command line tools can also be invoked directly from the command line.

The use of XDG standards relating to launching applications and opening documents (and protocols) is only supported to a certain extent to provide smooth backward compatibility to legacy applications, but is otherwise discouraged.

While the tools are developed with helloSystem in mind, they are also built and occasionally tested on Linux to ensure platform independence.

Build

On Alpine Linux:

apk add --no-cache qt5-qtbase-dev kwindowsystem-dev git cmake musl-dev alpine-sdk clang
mkdir build
cd build
cmake ..
make

Launch "database"

The tools use a filesystem-based "database" to look up which applications should be launched to open documents (or protocols) of certain (MIME) types.

Currently the implementation is like this:

~/.local/share/launch/Applications
~/.local/share/launch/MIME
~/.local/share/launch/MIME/x-scheme-handler_https
# The following entries get populated automatically whenever the system "sees" an application
~/.local/share/launch/MIME/x-scheme-handler_https/Chromium.app
~/.local/share/launch/MIME/x-scheme-handler_https/firefox.desktop
# The following entries do not get populated automatically, but only after the user chooses a default application for a (MIME) type
~/.local/share/launch/MIME/x-scheme-handler_https/Default # Symlink to the default application for this MIME type

Types of error messages

In general, launch shows error messages that would otherwise get printed to stderr (and hence be invisible for GUI users) in a dialog box.

image

Some of the default error messages are less then user friendly, and do not give any clues to the user on how the situation can be resolved:

image

Hence, launch can handle certain types of error messages and provide more useful information:

image

image

It is also possible to get additional information, e.g., from the package manager:

image

It would even be conceivable that the dialog just asks the user for confirmation to run the suggested command automatically.

About

Command line tool to launch applications, will search for .app bundles and .AppDir directories in various directories, and will show launch errors in the GUI

Topics

desktopguihellosystemqtusability

Resources

Readme
BSD-2-Clause license
Activity
Custom properties

Stars

17 stars

Watchers

1 watching

Forks

6 forks
Report repository

Releases

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.