如何設定 ubuntu 在幾分鐘不活動後切換回英文?

如何設定 ubuntu 在幾分鐘不活動後切換回英文?

我已經使用 Ubuntu 好幾年了並且非常喜歡它。我以開發 PHP 和 Javascript 軟體為生。

我唯一的小煩惱是,我希望電腦切換回英語作為主要鍵盤語言,因為我有時會忘記希伯來語,然後當我返回輸入一些 shell 命令或只是解鎖它時,我發現它在按Enter 鍵後選擇另一種語言。

您可能會認為這是一個非常邊緣的情況,但我很好奇是否可以編寫一個腳本來設定計時器,該計時器在鍵盤不活動一定時間後(我可能正在閱讀一些電子書並使用滑鼠)切換回我的預設值鍵盤設定中的語言為英語。

如果我可以從腳本中排除箭頭鍵和向下翻頁以及類似的按鍵,並讓計時器在按下這些按鍵時繼續滴答作響,那就有好處了。

答案1

在後台腳本的幫助下,這是很有可能的,使用xprintidle,它返回當前的空閒時間。

您需要先安裝它:

sudo apt-get install xprintidle

下面的腳本讀取命令的輸出xprintidle,並在經過設定時間後設定鍵盤。

如何設定鍵盤(索引)

要建立正確的命令,腳本需要知道目標鍵盤的索引。為此,請運行命令:

gsettings get org.gnome.desktop.input-sources sources

輸出將類似:

[('xkb', 'us+intl'), ('xkb', 'us'), ('xkb', 'nl')]

現在,如果您想設定 x 時間後的最後一個,則其索引為 2,因為清單中的第一項始終為 0。

如何使用腳本

  1. 如前所述,首先安裝xprintidle
  2. 將以下腳本複製到空文件中
  3. 在腳本的頭部,設定:
    • 目標鍵盤語言的索引,如上所述
    • 您將更改鍵盤語言之前的空閒時間(以秒為單位)
  4. 將腳本另存為change_kb.py
  5. 通過以下命令從終端測試運行它:

    python3 /path/to/change_kb.py
    
  6. 如果一切按預期工作,請將其添加到您的啟動應用程式中:Dash > 啟動應用程式 > 添加

劇本

#!/usr/bin/env python3
import subprocess
import time

#--- 
kb_id = 2       # set the targeted keyboard index (first = 0)
set_time = 300  # idle tim in seconds
#---

get_t = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()

t1 = int(get_t(["xprintidle"]))
idle_t = set_time*1000

while True:
    time.sleep(1)
    t2 = int(get_t(["xprintidle"]))
    if all([t1<idle_t, t2>idle_t]):
        cmd = "gsettings set org.gnome.desktop.input-sources current "+str(kb_id)
        subprocess.Popen(["/bin/bash", "-c", cmd])
    else:
        pass
    t1 = t2

相關內容