Category: Linux

[GNOME] putting your application in the menus

這類型的Menu呈現方式,是我愛用GNOME的原因之一

但如果要將自己的application加入到這個menu要怎麼做呢?

身為一個開發者經常需要執行各種程式,有些常用的程式我會希望可以放在menu中

那麼,要如何將程式放在menu中呢?

首先,你需要寫一個GNOME desktop file,內容看起來會像是這樣:

[Desktop Entry]                                                                                                                        
Encoding=UTF-8
Name=MyApplication
Exec=/home/tony/an-executable-file 
Icon=/home/tony/a_icon.png
Terminal=false
Type=Application
  1. [Desktop Entry] 基本上每個gnome desktop file的第1行一定要是這個
  2. Encoding 設定這個desktop file實際的編碼
  3. Name application的名稱
  4. Exec 你希望這個application執行的檔案
  5. Icon application的圖示
  6. Terminal 是否要在terminal中執行
  7. Type 告訴gnome這個desktop file是一個application,也可以是Link or Directory

完成後,我們可以將這個desktop file放在以下兩個路徑其中一個:

放在系統目錄下,可以讓每個使用者都能看見

/usr/share/applications

或是放在家目錄,只有自己可以看見

~/.local/share/applications

 

參考來源:

https://developer.gnome.org/integration-guide/stable/desktop-files.html.en

Advertisements

[Debian]升級Debian 9後無法使用觸控版

趁這週末有空趕緊把我的筆電從Debian 8升到Debian 9

升級的過程都還算滿順利的,但升級後觸控版沒辦法使用

稍微查了一下發現是因為Debian 9預設改用新的 libinput driver

雖然它不支援一些舊的driver提供的功能

但如果你的筆電是新的應該就沒有這個問題

解法1:

直接把舊的driver移除

sudo apt-get remove xserver-xorg-input-synaptics

解法2:

sudo mkdir /etc/X11/xorg.conf.d
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d

以上兩種方式都需要重新登入才會生效

雖然這兩種都可以解決觸控版無法正常使用的問題

但我比較建議使用解法1畢竟synaptic Xorg會漸漸被libinput取代

直接移除掉以後升級應該就不會遇到類似的問題了

 

參考來源:

https://wiki.debian.org/SynapticsTouchpad#Debian_9_.22Stretch.22

[Linux]利用nslookup指定DNS查詢Domain

總該有個前因

今天遇到一個突發狀況,DNS(Domain Name Server)上的子網域設定突然失效導致客戶無法使用子網域下的服務

在查明是DNS的問題之前,腦海中有閃過一個指令是可以用來指定DNS查詢Domain

後來詢問Google大神才喚醒我的記憶

在解決這個突發狀況的時候nslookup幫了我很大的忙

正好趁這個機會重溫一下nslookup這個指令

我記得第一次接觸它是在大學修網路概論課的時候

一句話說明nslookup的作用

nslookup是用來查詢網路上的DNS

我們都知道網路上有非常多DNS,常見的有:

中華電信

  • 168.95.1.1
  • 168.95.192.1

Google

  • 8.8.8.8
  • 8.8.4.4

我們在本機可以設定要去哪一台DNS查詢Domain

那如果在不更動本機的DNS設定下,可以使用別台的DNS來查詢Domain嗎?

答案是Yes, 對!就是利用nslookup

如何使用nslookup

nslookup提供interactive和non-interactive兩種模式來查詢

non-interactive

nslookup google.com #使用本機設定的DNS查詢google.com這個domain
nslookup google.com 8.8.8.8 #到8.8.8.8這台DNS查詢google.com這個domain

interactive

nslookup
> server 8.8.8.8 #指定DNS
> google.com 8.8.8.8 #查詢google.com這個domain

以上兩種方式都有人在用,看個人習慣

自己比較偏好第二個

解決無法在Virtualbox Guest OS Shared Folder建立Link

建立好VM的shared foleder後發現無法在該目錄建立Link

找了一下只需要在Host OS下個一行指令就能解決

Linux:

VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

Windows:

VBoxManage.exe setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

VM_NAME: VM(Guest OS)的名字
SHARE_NAME: Shared Foleder的名字 (不含”sf_”前綴字)

記得重啟VM!
參考來源:http://serverfault.com/questions/345341/cant-create-symlinks-in-virtualbox-shared-folders

How to Enable Virtualbox 5.0 Shared Folder on Debian 8.5 Guest OS Step By Step

真的花了超多時間才解決這個問題!

前置作業:

  1. Devices > Insert Guest Additions CD image
  2. 切換到root權限

掛載剛剛插入的Guest Additions CD映像檔

mount /dev/sr0 /mnt

確認掛應像檔的內容

cd /mnt
ls -al

執行VBoxLinuxAdditions.run

./VBoxLinuxAdditions.run

若出現以下內容表示安裝失敗:

The make utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The gcc utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module …fail!
(Look at /var/log/vboxadd-install.log to find out what went wrong)

檢查安裝紀錄檔

tail /var/log/vboxadd-install.log

內容如下:

/opt/VBoxGuestAdditions-5.0.24/src/vboxguest-5.0.24/build_in_tmp: 62: /opt/VBoxGuestAdditions-5.0.24/src/vboxguest-5.0.24/build_in_tmp: make: not found

重點是後面的make: not found
看起來是還沒裝make,安裝make

apt-get install make

再執行一次VBoxLinuxAdditions.run

./VBoxLinuxAdditions.run

結果還是安裝失敗

The gcc utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module …fail!
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions …done.

再檢查一次/var/log/vboxadd-install.log

tail /var/log/vboxadd-install.log

看起來來是少裝了一些東西,爬了一些文章看到這篇試著安裝DKMS就搞定了

/tmp/vbox.0/Makefile.include.header:97: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again. Stop.

安裝dkms

apt-get install dkms

再執行一次VBoxLinuxAdditions.run

./VBoxLinuxAdditions.run

若沒有出現任何的錯誤訊息就重啟VM

確認/media目錄的內容,看到sf_xxx目錄表示設定成功了!
virtualbox_shared_folder

來源和目的伺服器都需要有rsync

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127) at io.c(226) [Receiver=3.1.1]

之前使用rsync一直遇到這個問題

很納悶的是我的本機端明明有安裝rsync但怎麼會噴command not found

後來看到這篇文章才知道由於來源端(source)和目的端(destination)都要使用rsync溝通

所以使用rsync看到上述的錯誤訊息先檢查來源和目的端是否都有安裝rsync

因為某些Linux Distribution預設不會安裝rsync

安裝指令:

apt-get install rsync

與Kubuntu14.04筆電的省電之旅

前言就像自言自語

兩年前我曾經寫過一篇「關於Ubuntu安裝在筆電需要解決的事情」,主要是把當時碰到ubuntu裝在筆電上太耗電的解決方式做個紀錄,但現在回頭看看,發現裡面很多連結和資訊已經不存在或過時了,而且因為裝了很多自己不瞭解的套件,系統也變得怪怪的,所以利用這次機會把我瞭解和目前正在使用的省電方式紀錄一下

基本上,只要把Linux裝在筆電上都會遇到「太耗電」這個問題,除非是買已經內建好Linux的筆電,才不會遇到這些問題,因為在出廠前已經做過調校了,但其實這在台灣很不好買,也幾乎沒人會買(笑),雖然還滿想買的…

嚇不倒我der

這次重新把筆電裝上Kubunu讓我最驚訝的事情是,達到我要的省電效果我只裝了兩個套件和調整configuration file的設定,就從原本撐不過一小時的續航力變成可以撐到超過三小時, 考量到這台Acer Aspire 4830TG,已經用了5年而且電池從來沒換過,這已經很不容易了…重要的是我還沒完全設定好針對這台筆電的最佳化調整,所以,我樂觀的認為得至少可以撐到超過4小時,當然,上述說的續航力,其實和使用行為有很大的關係,如果是玩遊戲和看線上flash影片當然無法撐得那麼久,但只是寫寫code或上上網真的可以做到!

節能減碳之旅

只需要帶上兩個package

laptop-mode-tools

sudo apt-get install laptop-mode-tools

cpufreqd

sudo apt-get install cpufreqd

建議裝完之後重啟系統

sudo reboot

將以上兩個套件裝完,就會自動設定在開機完成的時候啟用,保險起見,重開機完成的時候可以下個指令檢查一下:

檢查cpufreqd是否正在運行

ps aux | grep cpufreqd

check_cpufreq_process

檢查laptop-mode-tools目前的狀態

sudo laptop_mode status | grep 'exists'

check_laptop_mode_status

設定檔路徑

laptop-mode-tools

/etc/laptop-mode/

cpufreqd

/etc/cpufreqd.conf

追求省電的情況下,調整configuration file的原則就是在沒有插電的情況下(AC off)cpu的maxfreq頻率不要調得太高

其實裝完上述兩個套件,我對於筆電的續航力就超有感der~

還有一些額外的設定,還可以讓筆電的續航力更加提升

1.在沒有插電源時,螢幕亮度不要調太亮

on_battery_screen_brightness

2.使用內建顯卡

trun_on_intel_card

3.關閉藍牙功能turn_off_bluetooth

若目前正在使用藍牙,建議至少要關閉自動偵測藍牙裝置的功能