えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

LinuxのDesktopショートカットを自動生成するテンプレートを作った

最近ずっと「そこそこ作りやすくて使いやすいアプリケーション」という課題に対していくつか個人的にツールを作っていたりします。


ここでは、Linuxアプリケーションにおけるデスクトップショートカットの作成についてより手続きを単純化するツールを作ったので紹介します。


Linuxアプリのショートカットの作り方

Linuxアプリケーションのショートカットを作成するためには、.desktop ファイルを作成して .local/share/applications/~/Desktop に配置して実行権限を与えるだけでOKです。

.desktop には実行先のパスなどのアプリケーション情報を記載していきます。

ただ、慣れないうちはこの .desktop を正しく作るのは意外と面倒で、正しくパスを通しているはずなのにどこかでコケていることが多々あります。

そこで、エントリーポイントとなるbashファイル情報とアイコンを入力として勝手にインストールするスクリプトを作りました。

github.com

近いうちにReadableWidgetsの機能の一つに入れる予定です。


ショートカットの作り方

以下の画像にインストールの流れを示します。用意すべきものは緑枠の2つのファイルだけです。

アイコンはオプション指定しなかった場合は自動的にダウンロードするようにテンプレートを組んでいるので、実行可能なbashファイルさえあればなんとかなります。


別にインストールしたいアプリがないなら以下のコードで試せます。

インストールしたアプリのリンク先は entrypoint.bash になっており、ターミナル上に hello world を表示して5秒待機するシェルスクリプトです。

インストール時に --terminal (-t) をつけると、実行時にターミナルを開きます。実行中の出力をみたい場合や管理者権限確認ウィンドウを開かない場合は付けておいた方がいいです。

# git clone https://github.com/Ar-Ray-code/icon2entry-Linux.git
cd icon2entry-Linux/
sudo bash icon2entry_linux.bash --entry_bash ./entrypoint.bash -t

インストールするとデスクトップに entrypoint という名前の白紙アイコン(いらすとや)が貼り付けられます。

バツマークが付いて実行できなかったら、右クリック→ "Allow launching" を選択して有効化してください。

次のルートから実行可能です。


アンインストール

--entry_bash (-e) <.bash>--uninstall (-u) オプションでアンインストール可能です。

sudo bash icon2entry_linux.bash --entry_bash ./entrypoint.bash -u


注意

SCRIPT_DIR=$(cd $(dirname $0); pwd) でパス通しができなくなったり、ターミナルのinputが効かなくなったりする場合があります。

パス通しについては、テンプレートに環境変数登録スクリプトを埋め込み→環境変数を登録などで対応しておくといいかもしれません。