インストールを自動化するためにbashスクリプトを作成しています。TLauncher(マインクラフトランチャー)Lubuntu 18.04を実行するUSBの基本的な依存関係の管理。
以下のbashスクリプトの一部は、/usr/share/applications
Lubuntuメニューから簡単に起動できるデスクトップエントリを生成します。
これは私が使用する項目です。
[Desktop Entry]
Encoding=UTF-8
Exec=pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar
Icon=~/.minecraft/icons/default.png
Type=Application
Terminal=false
Name=Minecraft
GenericName=minecraft
StartupNotify=false
Categories=Game
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar
端末でコマンドを実行すると動作し、TLauncher が実行されます。ところで、デスクトップアイテムにコマンドを入れると何か抜けたような感じがします。
Lubuntuメニューでアイテムを開こうとすると、カーソルに何かをロードしているというメッセージが表示されますが、待っても何も起こりません。また、デスクトップ項目をデバッグする方法もよくわかりません。入力しようとしましたが、xdg-open
端末に出力がなく、何も起こりませんでした。つまり、TLauncherは起動しませんでした。
次のように別のbashファイルにコマンドを入れてみました。
#!/bin/bash
pkexec env DISPLAY=:0 XAUTHORITY=/home/me/.Xauthority /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel ~/.minecraft/tlauncher.jar
端末で実行すると、bash testscript.sh
TLauncher が実行されます。
ただし、デスクトップ項目に入れると、上記の項目exec
の項目は次のように置き換えられます。
Exec=/bin/bash /path/to/testscript.sh
これはうまくいきません。
シェルスクリプトには適切な権限があります。
exec
デスクトップアイテムに誤った値を書き込んだり、デスクトップアイテムpkexec
が私が動作するように動作しないようにする必要があると思います。
メニューからデスクトップ項目からTLauncherを実行し、コマンドをroot
。
編集する:
代わりにフルパスを使用すると、~
同じ結果が生成されます。つまり、動作せず、上記の問題が持続します。
設定Terminal=true
はこの問題を解決しません。
答え1
現在の回避策:コマンドは端末で実行されたときに機能するため、デスクトップ項目で端末を使用してコマンドを実行するようにしてください。
Exec=lxterminal -e "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar -Dswing.systemlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel /home/me/.minecraft/tlauncher.jar"
メモ:
ps aux
私はこれに基づいてランチャーが閉じたときに実際に閉じることができると思いました。プロセスが実際に期待どおりに終了せず、次にランチャーを開くと奇妙な現象が発生することがわかったからです。 。