PythonやRuby等のスクリプトをUbuntuデスクトップのメニューに追加する - GNOME メニュー編集用ツール alacarte -


はじめに

Ubuntu Desktopを使っている人も最近はわりと多いのではないかと思います。そして、PythonやRubyで自分用のスクリプト(GUIを含むもの)を書いて利用している人も少なくないと思います。ここではalacarteというメニュー編集ツールを利用してUbuntuのメニューに、自作のスクリプトを登録する方法を記述します。

alacarte

インストール

sudo apt install alacarte

alacarteを起動したところ ↓

ここでは、例として、サウンドとビデオの項目にLibUIで作成したtiny_midi_palyer.rb を追加することにします。

左のリストから、サウンドトビデオを選び、新しいアイテムをクリックします。

Nameを入力します。
Browseをクリックして、Rubyスクリプトを選択します。

しかし、実はこれだけではうまくいかなかったりします。Ruby ユーザーの多くは rbenv を利用して Ruby をインストールしていると思いますが、こうやってしまうと、rbenv で global にした Ruby ではなく、/usr/bin/ruby が呼ばれてしまいます。~/.bashrc を経由していないのが原因かもしれません。Pythonスクリプトでも似たような問題が発生するかも知れないので気をつけてください。

ここでは原因を突き止めるのは面倒なので、安易な解決策、つまり、rubyのパスをベタ書きすることで対処します。
(shebangを書き換えても動作するかも知れませんが、確かめていません)

/home/kojix2/.rbenv/shims/ruby your_script_name.rb

です。これで無事にアプリが登録されます。

↑ここから、アイコンを登録することができますが、スキップしても大丈夫です。
きちんと起動できるか確認します。きちんと登録されていれば、アプリが検索できるようになっているはずです。

うまく起動しました。

注意点

この記事はここで終了でも良いかもしれませんが、いくつか注意点がありますので書いておきます。

  • 一度登録したメニューはプロパディから編集できないかも知れません。これは、私の環境が悪いのか、ソフトのバグなのかわかりませんが、アイテムを一度作ってしまうと、プロパディからアイテムを編集しても変更が反映されないということがありました。これで1時間ぐらいハマりました。これも原因を詳しく調査していませんがそういうことがあり得るので気をつけてください。

  • 上と関連するのですが、うまくスクリプトのメニューへの登録ができなくて、デバッグのようなことをする場合は、Launch in Terminalに✅を入れて調べることになると思います。これも、一回作成したものをすべて削除して、あたらしくアイテムの追加からやりなおさなければ反映されないケースがあります。気をつけてください。

 この記事ではalacarteを使う方法を紹介しましたが、それ以前には他にも方法があったようですがなくなってしまったようです。理由はわかりませんが、Ubuntuデスクトップのクオリティの高さとは裏腹に、RubyやPythonのようなスクリプトをメニューに登録する方法はあまり整備されていないような印象を受けました。セキュリティの関係でしょうか?また上記に書いたような不具合のようなものも存在します。RubyやPython、Perlといったスクリプト言語でGUIアプリを作成する人が少ないため、整備が遅れているのでしょうか? 少し不思議です。

この記事は以上です。