2023年2月7日 星期二

How to configure 'gdm3' display manager resolution

現象: 使用 gmd3 做為登入 GUI Desktop 的 Display Manager 時, 登入前、後的螢幕解析度不一致。

設定步驟:

  1. $sudo cp ~/.config/monitor.xml /var/lib/gdm3/.config
  2. $cd /var/lib/gdm3/.config
  3. $sudo chown gdm:gdm monitor.xml
  4. $sudo dpkg-reconfigure gdm3
  5. $logout
注意一:
以上設定適用於 Ubuntu 22.04。若在 ~/.config 資料夾中找不到 monitor.xml, 可以先登入 Gnome 畫面, 在 Gnome 中調整螢幕解析後, 就會產生 monitor.xml。

注意二:
若使用 Debian Linux, 則步驟3 須改為
$sudo chown Debian-gdm:Debian-gdm monitor.xml。

2023年2月3日 星期五

How to prevent Linux 'gdm3' from making the desktop goes to sleep after being inactive for 20 minutes.

 方法一: 

修改 /etc/systemd/sleep.conf

修改其內容相關部份為:

AllowSuspend=no

AllowHibernation=no

存檔後, 重開機即可。

(或是執行 $sudo systemctl daemon-reexec)


方法二:

修改 /etc/gdm3/greeter.dconf-defaults

以及 /usr/share/gdm/greeter.dconf-defaults

以上兩個檔案的內容必須保持一致, 修改之內容相關部份為:

# sleep-inactive-ac-timeout=1200 #--default

sleep-inactive-ac-timeout=0

sleep-inactive-ac-type='blank'

# - As above but when on battery

sleep-inactive-battery-timeout=0

sleep-inactive-battery-type='blank'

修改後, 須重啟電腦方能生效。

(以上二個方法的出處:https://unix.stackexchange.com/questions/529471/debian-10-adjust-sleep-settings-via-command-line)


方法三:

放棄 gdm3,改用 lightdm .

$sudo dpkg-reconfigure gdm3

選單畫面出現後, 改選用 lightdm.


2021年11月15日 星期一

VSCode 更新檔下載很慢的解法

 VSCode 每有更新, 下載檔案的速度很慢時,

把下載的 Server 位址改為 "vscode.cdn.azure.cn" 即可。

===============================================

如果是 extension 下載很慢的話,解法如下:

(引用自:https://stackoverflow.com/questions/58901712/c-c-extension-downloading-for-long-time-in-vscode

  1. Go to vscode cpp tools release page
    https://github.com/Microsoft/vscode-cpptools/releases

  2. Scroll down and download the .vsix file corresponding to your OS (in your case it's win32) look for your OS in a section like this

  3. Open command prompt and type in
    code --install-extension <path to your downloaded .vsix file>
  4. Close and reopen VSCode and the extension downloading window should no longer appear


2021年6月28日 星期一

如何讓 VSCode 的 Run Code 三角形的執行動作改為在 Terminal 發生

出處: https://py-vscode.readthedocs.io/en/latest/files/code-runner.html

  1. File >> Preference >> Settings, 搜尋 "Run Code Terminal"。

  2.  將 "Code-runner: Run In Terminal" 之下的 "Whether to run code in Integrated Terminal" 打勾, 如下圖。


2020年11月29日 星期日

慕赫(The Mortlach)2.81 18年蘇格蘭單一麥芽威士忌

 (未成年請勿飲酒,飲酒過量有礙健康)

近日有機會試飲有達夫城野獸(The Beast of Dufftown)之稱的慕赫18年單一麥芽威士忌,心得如下:

"寫在品飲之前"

在酒盒上,標示這款酒使用的桶型有二,其一為精選歐洲橡木桶(Select European Oak),其二為二次填充的美國橡木桶(Refill American Oak)。

酒盒上對品飲的形容則是:風味飽滿、酒性強烈,帶有蘑姑、灌木叢氣息以及可可亞、蜜李的刺激,並且驚人而複雜地糾結著蜜餞、黑醋栗、檀香木組成的微妙香氣。

適合純飲,或加上一、兩滴水。

氣味的六角量表,則是:

麥味(Malty):3/4

清新感(Fresh):3/4

桶味(Woody):4/4

香味(Spicy):3/4

果味(Fruit):4/4

泥煤味(Peat):0/4


"我的品飲心得"

顏色(Color):古銅色

聞香(Smell):剛割過的草地,略帶溼氣。蜜李的甜香隨之而來。接著是微酸的青蘋果。煮熟的麥片甜、清新的玫瑰花香,鮮切的青蘋果皮味縱貫其中,石榴果汁的單寧澀味逐漸出現。在聞香的過程中,氣味會隨著時間而變化,莓果相似的香氣源源不斷。

品飲(Taste):第一口,口感相當柔和。入口後,岩石的礦物感呈現,之後果香隨之而來。茶葉般的底蘊留在舌底,再接著呈現高雅的單寧澀味。第一輪香氣過後,Dry 感出現。接下來的幾口,愈來愈能感受的麥味的回甘,回甘的感覺像是一杯好茶留下的溫潤。

後韻(Finish):口感醇厚而柔軟,像是走在一定厚度的地毯上。特別的是,在舌頭上並不會出現包覆感。香氣充份卻不致於過於濃烈,可以一口接著一口地喝。當然了,一口接著一口喝對這瓶酒而言,是一種浪費。這瓶酒的美好,適合慢慢地品飲。18年的年份,加上43.4%的酒精度,讓這瓶酒有了一定的厚度,而不帶有酒精的刺激感。這瓶酒經過冷凝過濾,因此口感相當乾淨。

結論(Conclusion):單純的美好,純粹的美好,不會過度複雜,不會讓人喝了之後陷入長考。這瓶酒像是一件薄絲絨,能讓人在略寒的冬天保持溫暖而不覺得厚重。它恰如其份地展現出一瓶中高年份威士忌該有的特質,在威士忌的氣味線上,剛好走到了接近深沉的邊緣。

後記:

慕赫威士忌經常被形容為有『肉味』,然而,我覺得用 "肉味" 這個形容法來詮譯 meaty 這個英文單字並不正確。如果用 meaty 來形容女生,如 "a meaty girl",其意為 "big and beautiful"。也就是中文裡的 "豐腴的女人",而不是『有肉味』的女人。

對照著包裝盒上寫著的『Muscular with meaty earthiness and peaks of cocoa & damson』,那麼這個 "meaty" 所形容的可不是女生,而是男生。於是,我想要這麼解釋:老外用 meaty 來描述慕赫威士忌的意思,是把慕赫威士忌形容成酒界的『健美先生』呢!

2020年7月6日 星期一

Redirecting standard input\output in Windows PowerShell

現象:在 Windows 10 上使用 Visual Studio Code 練習寫 C++ 程式時,VS Code 整合的 Terminal 為 Powershell 不支援原先在 cmd 視窗中可以使用的 '小於' 導向符號 (RedirectionNotSupported)。

在網路上查到的 Powershell 中重新導向 stdin 的命令寫法有二,如下:

  1. Get-Content a694.txt | .\a694.exe
  2. cat a694.txt | .\a694.exe
此二寫法等同在 cmd 視窗下達『.\a694.exe < a694.txt』指令。

2020年1月21日 星期二

PHP in userdir not working (Debian Buster, Apache2, Php 7.3)

現象: 在 user directory 中的 .php 檔案無法被 Apache2 執行。

解法:
編輯 /etc/apache2/mods-available 資料夾下的 php7.3.conf, 依據其說明操作如下:


將以上行首未以 '#' 符號註解掉的地方, 加上 '#' 後, 存檔。再重新啟動 Apache2 服務即可。


2020年1月15日 星期三

以 Vnc 連接 Debian Linux 10, 無法執行 synaptic 的解決方法

症狀:在 Windows 10 上執行 Vnc Viewer 連接 Debian 10 後, 欲執行 sudo synaptic, 結果出現
"Gtk-WARNING **: cannot open display: :1.0" 訊息。


解法一:
在輸入 "sudo synaptic" 前, 前執行 "xhost + local:" 指令, 如下:
$ xhost + local:
$ sudo synaptic

解法二:
改以 "gksudo synaptic" 執行之。

參考資料:

2019年4月9日 星期二

Fix Windows Update according to information found in CheckSur.log

參考資料: https://support.microsoft.com/en-us/help/2700601/how-to-fix-errors-found-in-the-checksur-log

現象:在 Windows 7 中,Windows Update 的檔案可以被下載,但總是安裝不成功;即使從 Windows Update Catalog 網站下載離線安裝檔案,也無法成功安裝。(經常看到的錯誤代碼是 0x800B0100)

解決方法之標準作業程序 (SOP) 如下:

步驟一:點選 "控制台 >> 系統及安全性 >> 找出問題並修復"。

如果步驟一無效,再執行步驟二。

步驟二:進安全模式,然後以 Administrator 身份在 cmd 視窗中執行 "sfc /scannow" 指令。

如果步驟二無效,再執行步驟三。

步驟三:(請先閱讀以下注意事項)下載 Windows Update Readiness Tool for Win7 (KB947821),然後執行之。Windows Updates Readiness Tool 會儘可能地修復 Windows Update 的功能,其未能修復者,會記錄在 C:\Windows\Logs\CBS\CheckSur.log 裡面。如何依據 CheckSur.log 的內容來修復 Windows Udpate,請參考本文第一行的參考資料。

(注意1:KB947821 的執行時間,少則  15 分鐘,多則數個鐘頭)
(注意2:用 dism.exe 來產生 CheckSur.log,會比 KB947821 快上許多,大約 5 分鐘左右。但第一次執行 dism /Online /Cleanup-Image /Scanhealth 時,所花費的時間可能會多上許多!)
(注意3:dism.exe 的語法如 "DISM /Online /Cleanup-Image /ScanHealth" ,又其必須在以 Administrator 身份執行的 command line window 中來執行,方為有效!)
(注意4:網路上有人發表了 GUI 版本的 DISM,名為 Dism++,或可參考看看!)
(注意5: 在 Win10 上, 執行 dism 來修復 Windows Update 的語法與 Win7 略有不同, 如:
"dism /Online /Cleanup-Image /Restorehealth")


2019年3月8日 星期五

如何讓 Word 的總頁數可以做運算

關鍵字: MS Word、功能變數、 頁碼、運算


Word中可以利用分節的功能來設定那些節次要顯示頁碼,但是總頁數只有一個,不管您分幾節,都會算進去,一般我們會把不相關的頁數給扣除,例如封面及目錄清單,這樣顯示的總頁數才會是正確的。操作方法如下:

  1. 在頁數變數按滑鼠右鍵,選切換功能變數代碼


假設頁碼”3-1”切換功能變數代碼後,出現下列運算式
{ SECTION \* Arabic }-{PAGE   \* MERGEFORMAT}
而欲把頁碼”3-1”的”3”利用運算式改為”1-1”的”1”話(意即此時的功能變數SECTION因封面頁、目錄頁、現用頁等3節的存在而數值為3,想要把現用頁的節做為第1節來編頁碼),須把SECTION變數的數值減2。

  1. 此時,將游標移到變數SECTION的前面,按組合鍵 ”Ctrl+F9” 會自動出現一個灰色的左右大括號。(這個組合鍵是成功的關鍵,若不用組合鍵而自己輸入大括號的話,將沒有作用!)

  1. 在大括號的左邊輸入”=”號,然後在大括號內輸入”SECTION”,最後在大括號的右邊輸入”-2”(如下圖)即可。


  1. 再按滑鼠右鍵,再一次切換功能變數代碼,即完成頁碼的修改。

2019年1月16日 星期三

20190123, 宮城藏王旅行, 日文地名平文式羅馬字

Day#1:

◎千葉縣(Chiba-ken):
成田國際機場(Narita International Airport)

◎栃木縣(Tochigi-ken):
那須町(Nasu machi)、那須溫泉(Nasu Onsen)
那須鹽原市(Nasu-shiobara-shi)、鹿之湯(Shika no Yu)
格蘭愛壽飯店(Grand Hotel Aiju)


Day#2:

◎福島縣(Fukushima-ken):
豬苗代湖(Inawashiro-ko)、會津若松市(Aizuwakamatsu-shi)
會津若松城(Wakamatsu-jo)、鶴之城(Tsuruga-jo)
野口英世(Hideyo, Nogushi)、磐梯山(Bandai-san)
磐梯高原(Bandai-kogen)

◎宮城縣(Miyagi-ken):
仙台市(Sendai-shi)、鹽竈市(Shiogama-shi)
鹽竈神社(Shiogama-shrine)、松島町(Matsushima-machi)
刈田溫泉(Katta Onsen)、刈田郡(Katta-gun)
宮城藏王活力渡假村(Active Resort Miyagi Zao)


 Day#3:

◎山形縣(Yamagata-ken):
藏王索道(Zao Ropeway)、藏王溫泉(Zao Onsen)

◎福島縣(Fukushima-ken):
利時達飯店豬苗代本館(Hotel Listel Inawashiro)


Day#4:

◎福島縣(Fukushima-ken):
那須彩繪玻璃美術館(Nasu Stained Glass Museum)
那須菓子之城(Okashi-no-Shiro Nasu Heartland)
那須高原農園草莓之森(Nasu kogen farm Ichigo-no-Mori)
日光東照宮(Nikko Tosho-gu)、日光國立公園(Nikko Kokuritsu Koen)

◎東京都(Tokyo):
東京巨蛋(Toky Domu)、小石川後樂園(Koishikawa Korakuen)
東京巨蛋城購物中心(LaQua City)


Day#5:

◎東京都(Tokyo):
光伸珍珠免稅店東京分店(Koshin Pear Duty Free Shop, Tokyo store)

◎千葉縣(Chiba-ken):
成田國際機場(Narita International Airport)

2019年1月12日 星期六

如何避免出現錯誤訊息: The owner of /home/username/.config/ibus/bus is not root!

現象:執行 sudo synaptic 時,會出現錯誤訊息如下,
(synaptic:5160): IBUS-WARNING **: 15:57:52.813: The owner of /home/username/.config/ibus/bus is not root!

解法: 改執行 sudo -i synaptic

原因: 避免 ‘權限錯誤!’

設定 TigerVNC 及 xfce4 桌面 (+ ibus 中文輸入法)

  1. 安裝 TigerVNC:
    #sudo apt install tigernvc-standalone-server
     
  2. 安裝 xfce4:
    #sudo apt install xfce4 xfce4-goodies
     
  3. 編輯 $HOME/.vnc 資料夾下的 xstartup 檔案,使其內容包含下列指令:
         For Debian 10 (Buster):
         #!/bin/bash
         xrdb $HOME/.Xresources
         startxfce4 &


         For Debian 11 (Bullseye):
         #!/bin/bash
         unset SESSION_MANAGER
         unset DBUS_SESSION_BUS_ADDRESS
         exec /bin/sh /etc/xdg/xfce4/xinitrc


  4. 在 $HOME 資料下,建立 run_vncserver.sh 執行檔,使其內容包含下列指令:
    #!/bin/bash
    vncserver -localhost no -geometry "1440x900"

     
  5. 然後 chmod a+x ./run_vncserver.sh 即可。
     
  6. 欲執行 vncserver,可輸入 ./run_vncserver.sh
     
  7. 結束 vncserver 時,可輸入 vncserver -kill :1

  8. 若使用 ibus 中文輸入法, 須 export 以下變數後, 再執行 ibus-daemon -xrd。(以下四行敘述可以寫在 $HOME/.bashrc, 或是寫在 $HOME/.vnc/xstartup 裡面, 擇一即可!)
    export GTK_IM_MODULE=ibus
    export QT4_IM_MODULE=ibus
    export QT_IM_MODULE=ibus
    export XMODIFIERS="@im=ibus"

因此, 在 Debian Bullseye 中為了執行 tigervnc server 時, 一併設定 ibus 輸入法所需要的環境變數,在 ~/.vnc/xstartup 檔案中的設定文字可以如下:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export QT4_IM_MODULE=ibus
export XMODIFIERS="@im=ibus"

exec /bin/sh /etc/xdg/xfce4/xinitrc

又若欲讓 ibus-daemon 在每次 login 後自動執行, 可以在 xfce4 介面下選擇左上角的 "Applications" 選單, 再向下選擇 "Settings", 再選擇 "Session and Startup", 然後在 "Application Autostartup" 頁籤下將 "/usr/bin/ibus-daemon -xrd" 加入清單內(如下圖)。


(若輸入法從 ibus 改用 fcitx5 的話, 在 .bashrc 裡 export 環境變數(如: GTK_IM_MODULE) 時, 把 ibus 改為 fcitx 即可! 如: export GTK_IM_MODULE=fcitx)



    2019年1月11日 星期五

    使用 FontForge 軟體調整字型在 Windows 10 的安裝顯示名稱

    !!! 本文所使用的字型均為測試用,各字型版權皆屬各字型公司所有,使用前請事先取得合法授權 !!!

    FontForge 是一個 Open Source 的字型編輯程式,可用來編輯字型檔的內容。
    有些舊有的字型檔欲安裝到 Windows 10 上時,若無法安裝, 可先用下列網站將字型檔轉換成 .TTF 格式:
    1. TransFonter.org
    2. OnlineFontConverter.com
    當轉換後的字型檔已可安裝,但若因為其字型名稱無法在 Windows 10 易於識別 (如若干中文字型安裝後以英文名稱顯示之)時,可使用 FontForge 修改字型的 Font info (主選單 >> Element >> Font info...),使其於安裝後易於辨識。

    須修改之有二,如下圖:

    一、修改 PS Names,其中 Fontname 欄位須修改為英文名稱 (自訂即可),而 Name For Humans  欄位留白即可 (這個欄位的內容會在修改下一步驟 TTF Names 後,自動被 FontForge 修正)。

    二、修改 TTF Names,先以 功能逐一增加 Chinese (Taiwan) 欄位;然後,填入適當的識別資料,如下圖。


    三、修改完畢後,選擇 Generate Fonts... (主選單 >> File >> Generate Fonts...),設定產生 TTF 字型即可,如下圖:


    四、產生後的檔案,即可安裝。值得注意的是,安裝時請在字型檔上按滑鼠右鍵,選擇 "為所有使用者安裝" (字型檔會安裝到 C:\Windows\Fonts)。如此,一些開源軟體如 GIMP 及 Inkscape 的字型選單內,才可以看到所安裝的字型。若僅選擇 "安裝",則字型會安裝到現用使用者的字型資料夾(如: C:\USERS\JOHN\APPDATA\LOCAL\MICROSOFT\WINDOWS\FONTS),此時, MS Word 看得到字型,但上述兩個軟體就看不到字型了。

    2019年1月10日 星期四

    TigerVNC 的幾個注意事項

    1. 執行 vncserver 後,VNC client 無法連線 (The connection is refused by the computer)。
    A: 須注意執行 vncserver 時, 是否加上 -loccalhost no 的參數。

    2. VNC client 連線後, Linux 端的中文輸入法無法使用。
    A: 在 $HOME/.vnc/xstartup 指令稿的最後一行加上 ibus restart 指令即可。

    3. 在 xstartup 中指定使用 xfce4 介面, 同時設定 vnc client 視窗大小, 其指令稿內容如下:
        -------------------------------------------------------------------------
        #!/bin/bash

        xrdb $HOME/.Xresources
        startxfce4 &
        ibus restart
        -------------------------------------------------------------------------

    Set System Timezone in Debian 9

    引用自:https://www.server-world.info/en/note?os=Debian_9&p=timezone

    功能一:顯示 timezone 清單
    指令:#timedatectl list-timezones

    功能二:設定 timezone
    指令:#timedatectl set-timezone Asia/Taipei

    功能三:顯示 timezone 設定
    指令:#timedatectl 


    無法重置 MariaDB 的 root 密碼該怎麼做? [引用自 goodjack.blogspot.com]

    關鍵字: reset mariadb root password {not working | plugin | socket}

    本問題的解法, 請參考網址: http://goodjack.blogspot.com/2018/02/mariadb-root.html
    解決的關鍵在資料欄位 plugin 的內容是否清空。

    2019年1月5日 星期六

    Domjudge users can not login, 500 internal server error

    Keyword: Domjudge, Domserver, PHP, Symfony, Proxy, Error

    現象1: 安裝完 Domjudge 6.0.3 後,發現 admin 帳號可以登入管理介面, 但由 admin 新建的一般 user 帳號卻無法登入, 而出現 Apache2 server 的 "500 internal error" 訊息。

    現象2: 觀察  /var/log/apache2/error.log 後, 會看到以下訊息:
    --------------------------------------------------------------------------------------------------------------------------
    [Fri Jan 04 17:48:08.602178 2019] [:error] [pid 3784] [client 10.7.21.241:56024] PHP Fatal error:  require(): Failed opening required '/opt/domjudge/domserver/webapp/var/cache/prod/doctrine/orm/Proxies/__CG__DOMJudgeBundleEntityTeam.php' (include_path='/opt/domjudge/domserver/lib/vendor/phpseclib/phpseclib/phpseclib:.:/usr/share/php') in /opt/domjudge/domserver/lib/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 209, referer: http://10.7.21.242/domjudge/login
    --------------------------------------------------------------------------------------------------------------------------
    此訊息描述了 PHP 的 prod cache 出了問題。

    現象3: 以 php symfony proxy error 為關鍵字 google 搜尋後, 可找到網址 https://stackoverflow.com/questions/36255440/symfony-cache-doctrine-orm-proxies-failed-to-open-stream-proxy-abstractproxyfac 的說明, 其意為在執行 application 前的 cache 未事先建立。

    解法:
    在 /opt/domjudge/domserver/webapp/bin/ 資料夾下, 執行 console 程式如下, 來 warmup prod 的 cache。
    -------------------------------------------------------------------------------
    sudo /opt/domjudge/domserver/webapp/bin/console cache:warmup --env=prod
    -------------------------------------------------------------------------------

    執行後, 會出現以下訊息:
    -------------------------------------------------------------------------------------------------------
     // Warming up the cache for the prod environment with debug
     // false


     [OK] Cache for the "prod" environment (debug=false) was successfully warmed.
    --------------------------------------------------------------------------------------------------------

    這樣子就可以讓 users 登入 Domjudge 了。

    2018年12月27日 星期四

    Switch command output language from native language to English

    現象: Ubuntu 在下達 command 之後, 系統回應的訊息會包含中文字。這樣的狀況會讓系統在需要維護時, command line interface 的訊息會完全無法閱讀。

    解決方法:
    [參考網址: https://askubuntu.com/questions/264283/switch-command-output-language-from-native-language-to-english]

    使用 'LC_ALL=C bash' 指令, 在提示符號下達此指令後, 訊息就會以英文顯示;
    如果要恢復為原語系設定,則再下達 'unset LC_ALL' 指令即可。


    2018年9月1日 星期六

    [Solved] Linux: Set Default App

    Keyword:
    1. Xfce4 desktop "Terminal Emulator" didn't show up.
    2. Xfce4 desktop didn't launch Terminal Emulator.

    相關連結:
    http://xahlee.info/linux/linux_set_default_app.html

    現象:
    在使用 Xfce4 桌面時, 發現 Terminal Emulator 圖示按下後, 系統沒有任何反應。
    理想上, 在按下 Terminal Emulator 圖示或選項時, 系統會執行相對應的 Terminal 程式。

    原因:
    系統預設的 Terminal Emulator 程式, 與我們所期待執行的 Terminal 程式不同。

    解法:
    先執行任何一個可以用鍵盤下達指令的 Terminal 程式 (如: 'xterm' 或直接輸入 'xfce4-terminal', 然後輸入 "exo-preferred-applications" 命令, 使其叫出 "Preferred Applications" 程式視窗 (如下圖)。
    再於其內設定 "Terminal Emualtor" 為系統已安裝的 "Xfce Terminal" 即可。