LightTable を /opt/LightTable に入れました
デフォルトでは、テキスト エディター LightTable を ubuntu 14.04 64 ビットにインストールすると、それで開きたいファイルを右クリックしたときに、「LightTable で開く」が表示されません。
したがって、次を含むファイル /home/theuser/.local/share/applications/LightTable.desktop を作成しました。
[Desktop Entry]
Name=LighTable Text Editor
Comment=Edit text files
Exec=/opt/LightTable/LightTable %f
Terminal=false
Type=Application
Icon=/opt/LightTable/core/img/lticon.png
Categories=Utility;TextEditor;
StartupNotify=true
MimeType=text/plain
LightTable でファイルを開きたいときに、「LightTable で開く」が表示されるようにします。さて、問題が始まります。これを行うと、スクリプトのみを実行したかのように、LightTable のみが開きます
/opt/LightTable/LightTable
したがって、私はスクリプトを見に行きました:
#!/bin/bash
BIN=ltbin
HERE=`dirname $(readlink -f $0)`
LIBUDEV_0=libudev.so.0
LIBUDEV_1=libudev.so.1
add_udev_symlinks() {
# 64-bit specific; look for libudev.so.0, and if that can't be
# found link it to libudev.so.1
FOLDERS="/lib64 /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /usr/lib64 /usr/lib /lib"
for folder in $FOLDERS; do
if [ -f "${folder}/${LIBUDEV_0}" ]; then
return 0
fi
done
for folder in $FOLDERS; do
if [ -f "${folder}/${LIBUDEV_1}" ]; then
ln -snf "${folder}/${LIBUDEV_1}" "${HERE}/${LIBUDEV_0}"
return 0
fi
done
echo "${LIBUDEV_0} or ${LIBUDEV_1} not found in any of ${FOLDERS}".
exit 1
}
add_udev_symlinks
ARGS="$@"
CORRECTED=${ARGS//-/<d>}
CORRECTED=${CORRECTED// /<s>}
if [ -t 0 ] && [ $# != 0 ]; then
#We're in a terminal...
LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN "<d><d>dir=`pwd`<s>$CORRECTED" &
else
#We were double clicked
LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN &
fi
末尾の if/else/fi を単純な :
LD_LIBRARY_PATH="$HERE:$LD_LIBRARY_PATH" $HERE/$BIN "<d><d>dir=`pwd`<s>$CORRECTED" &
正しい動作(端末からファイルを開くときの動作)が選択されるようにします。
これはほとんど私の一日を作りました。ここで、ファイルをダブルクリックするか、右クリックして [LightTable で開く] を選択すると、ファイルは確かに LightTable で開かれます... しかし、これは、ファイル名とファイルへのパスに名前がない場合にのみ当てはまります。名前の空白。
「the file」という名前のファイルがスペースのないパス thepath にある場合、それをダブルクリックすると、LightTable に「the」と「file」という 2 つの空のファイルが開きます。パスにスペースが含まれている場合、同じ動作が制限されます。
誰かがアイデアを持っていますか?bash スクリプトを修正する必要があると思いますが、私はその専門家ではありません。(スクリプトが本当に間違っているかどうかさえわかりません...)
前もって感謝します
MEF