找到 The Exec key 然後實在不知道該用哪個和怎麼用。。。。
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/PATH/ICON.png
Name=NAME
Exec=/PATH/NAME.bash
就用 Exec key 來指定執行的程式路徑啊
/usr/share/applications 應該有很多範例?
當然 .bash 檔本身也要有可執行 Unix 檔案權限
所以說我就是要執行這個 .bash 檔。。。key 該用哪個?
把表格中必填的 key 填好,然後 Exec key 填入執行 .bash 檔的命令列
不需要,跟副檔名無關
倒是可以執行 head -n1 <.bash file> 看看是不是真的是 bash script
head --lines=1 <.bash file>
怎麼說呢。。。。作者的 readme 寫了如果要執行程式就直接在 terminal 裡 ./NAME.bash 就可以了(不需要 su)
./<filename>.bash 代表說程式可能預期使用者的當前工作目錄在 .bash 檔案目錄
To run, double click on the desktop icon or
cd <install dir>
./NAME.bash
另外命令列介面互動式的程式不能直接啟動,因為沒有有效的 control terminal 可以操作
按照他說的 double click on the desktop icon 說明是可以寫 .desktop 來啓動的
@kuishi914 好啦,先告訴我你在弄什麼東西好不
覺得神奇,為什麼java不包成.jar要包成.run
下載並安裝了這個 kbmaster-pre4_0.4.4-linux-x64-installer.run
.run 只是附了binary的shell script?
.run只是代表可以./filename.run吧
我在想為什麼作者不乾脆直接輸出成.jar就好,弄成這樣感覺自找麻煩
最好是開發者直接把桌面項目安裝到系統中啦,這樣直接搜尋就好了
其實很簡單的問題。。。有沒有辦法寫一箇 ".desktop" 執行 "./.bash"
可以試試看 bash -c "cd <install_dir> && ./.bash" 啦
java -cp . -Djava.library.path=lib/native -jar KeyboardingMaster.jar
其中lib/native和KeyboardingMaster.jar用絕對路徑提換掉應該就好了
但是我以前有用過 .desktop 是來啓動 .sh 的啊 .sh 不是也需要 ./.sh?
不需要,只有不知道工作目錄在哪的 script 才需要這樣
或者有沒有辦法開機啟動這個 .bash。。。我想寫 .desktop 因為每次都要開一箇 terminal 還不能關掉很煩(會習慣性 Ctrl+C.....
在script第二行加上cd /installDir即可不是嗎?
我安裝到 /opt 中的所以寫 cd /opt/INSTALLDIR 就可以了?
這個嚴格來說是上游自己的問題,直接修上游的 code 然後加個 desktop entry 吧
#!/bin/bash
if [ $(uname -m) == 'x86_64' ]; then
# 64-bit stuff here
JAVA=lib/java-linux-x64/bin/java
else
# 32-bit stuff here
JAVA=lib/java-linux/bin/java
fi
$JAVA -cp . -Djava.library.path=lib/native -jar KeyboardingMaster.jar
然後 cd /DIR 加在哪?
#!/bin/bash
cd /DIR
if [ $(uname -m) == 'x86_64' ]; then
# 64-bit stuff here
JAVA=lib/java-linux-x64/bin/java
else
# 32-bit stuff here
JAVA=lib/java-linux/bin/java
fi
$JAVA -cp . -Djava.library.path=lib/native -jar KeyboardingMaster.jar
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/PATH/ICON.png
Name=NAME
Exec=/PATH/NAME.bash
新增 @S_ean 、 @s8321414 為 admin
在終端機底下執行 xdg-open <desktop entry file> 看看?
啊。。。。我是重新寫了一個 "run2.bash" 結果忘記 chmod +x............
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon=/opt/kbmaster-pre4_0.4.4/logo_256x256.png
Name=Keyboarding Master
Exec=/opt/kbmaster-pre4_0.4.4/run.bash
怪怪噠
pppoeconf在debian testing居然不能自己開機撥號
太神奇惹傑克
目前只能暫時把開機自動撥號寫在/etc/network/if-pre-up.d/裡面
如果是pppoeconf的話
它原本的開機自動撥號設定
是寫在/etc/network/interfaces裡面
我的interfaces 檔,pppoe相關的
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up
provider dsl-provider
剛剛發現interfaces裡面pre-up的設定被改成ip link 網卡代號了
改成用ifconfig 網卡代號 up試試看
debian目前其實有很多網路的設定可以不靠systemd去啟動
當然要用systemd啟動也可以
只是多跑一個行程而已
pppoeconf原本的設定是把pon dsl-provider這個指令
寫在/etc/network/interfaces裡面
用pre-up這個參數去讓它做開機自動執行撥號
悲劇
看起來好像只能靠if-pre-up.d來跑了
Systemd 還不是預設的 int system 嗎?
是
但是大部分的網路功能不一定是systemd再啟動的
如果有圖形界面裝network manager的話
那是systemd啟動沒錯
沒裝圖形界面的話有些就不一定是systemd啟動
像是iptables
iptables在debian的官方建議
是把iptables-restore的指令寫在/etc/network/if-pre-up.d裡面弄一個執行檔
讓iptables自己寫的規格在開機的時候
會自動執行restore讓規則導進去
印象中ubuntu的官方建議好像也是類似的方式
如果不用ufw的話
至於目前比較新的nftables
我在debian sid上面看到的是預設systemd啟動
不過如果要用/etc/network/if-pre-up.d去弄個執行檔啟動nftables也沒有問題
我測試過是可以動
完全不靠systemd
Debian 也改用 Network Manager 了啦
那應該是有裝桌面吧 XD
沒裝的也還是設在/etc/network/interfaces裡面
有裝桌面的都直接設定network manager 沒錯
如果/etc/network/interface 被軟體亂動,network manager會偵測不到interface,因為它會當作已經有其他軟體管裡他了…
沒錯
所以要用就不要混用
要馬network manager
要馬原本的interfaces設定
對啊,不要混用。要把network manager 砍掉
其實可以混用啦,只是要把不讓 NM 管理的網路界面設定為不管理