顯示具有 技術文件 標籤的文章。 顯示所有文章
顯示具有 技術文件 標籤的文章。 顯示所有文章

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年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月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" 即可。




    2018年8月30日 星期四

    [Solved] Ubuntu 18.04 is not booting up, it's stuck in splash screen but recovery mode working fine

    Ubuntu 18.04 is not booting up, it's stuck in splash screen but recovery mode working fine

    現象: 
    Ubuntu 18.04 無法完成開機, 會停在第 3 個圓圈處。但使用 Recovery Mode 進入 Ubuntu 後, 所有的運作又正常無誤。

    解法: 
    在 Reddit 中有人提出解法的連結: https://linuxconfig.org/how-to-disable-wayland-and-enable-xorg-display-server-on-ubuntu-18-04-bionic-beaver-linux, 此連結的文章說明了在使用 Recovery Mode 開機進入 Ubutntu 後, 只要去編輯 /etc/gdm3/custom.conf, 將其中一行

    #WaylandEnable=false

    的註解拿掉, 變成

    WaylandEnable=false

    , 重開機後, Ubuntu 18.04 即可恢復正常。

    [Solved] VNC Server not listening connections but from localhost

    今天使用 VncViewer 連接 Debian 9 的時候, 遇到下列無法連線的訊息:



    其原因為 VncServer 在 Debian 9 上執行時, 預設只讓 localhost 連線。
    因此, 只要在執行 vncserver 指令時, 以 "vncserver -localhost no" 執行之, 即可連線。