Archive:KDE System Administration/Configuration Files (zh TW): Difference between revisions
No edit summary |
m (AnneW moved page KDE System Administration/Configuration Files (zh TW) to Archive:KDE System Administration/Configuration Files (zh TW) without leaving a redirect: Obsolete) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 9: | Line 9: | ||
==== 範例:一份簡單的配置檔==== | ==== 範例:一份簡單的配置檔==== | ||
以下的範例展示了一個包含兩個組的配置檔。第一組包含了關鍵字「<tt>LargeCursor</tt>」和「<tt>SingleClick</tt>」,第二組包含了關鍵字「<tt>Show hidden files</tt>」和「<tt>Sort by</tt>」。 | 以下的範例展示了一個包含兩個組的配置檔。第一組包含了關鍵字「<tt>LargeCursor</tt>」和「<tt>SingleClick</tt>」,第二組包含了關鍵字「<tt>Show hidden files</tt>」和「<tt>Sort by</tt>」。 | ||
< | <syntaxhighlight lang="ini"> | ||
[KDE] | [KDE] | ||
LargeCursor=false | LargeCursor=false | ||
Line 17: | Line 17: | ||
Show hidden files=false | Show hidden files=false | ||
Sort by=Name | Sort by=Name | ||
</ | </syntaxhighlight> | ||
在組中的每個項目都是使用「關鍵字=值」的格式。關鍵字能夠包含空格,也可在其後加上放置於中括號內的選項。 | 在組中的每個項目都是使用「關鍵字=值」的格式。關鍵字能夠包含空格,也可在其後加上放置於中括號內的選項。 | ||
Line 35: | Line 35: | ||
==== 範例:空白 ==== | ==== 範例:空白 ==== | ||
下面的配置檔片段相當於與上一個範例。關鍵字與值周圍的空白將被忽略。 | 下面的配置檔片段相當於與上一個範例。關鍵字與值周圍的空白將被忽略。 | ||
< | <syntaxhighlight lang="ini"> | ||
[KDE] | [KDE] | ||
LargeCursor= false | LargeCursor= false | ||
Line 43: | Line 43: | ||
Show hidden files = false | Show hidden files = false | ||
Sort by =Name | Sort by =Name | ||
</ | </syntaxhighlight> | ||
==== 範例:保留空白 ==== | ==== 範例:保留空白 ==== | ||
在接下來的例子中「<tt>Caption</tt>」項的值以兩個空格開始,同時「<tt>Description</tt>」項包含三行文字。反斜線標記的換行符號(\n)用於分割不同行。 | 在接下來的例子中「<tt>Caption</tt>」項的值以兩個空格開始,同時「<tt>Description</tt>」項包含三行文字。反斜線標記的換行符號(\n)用於分割不同行。 | ||
< | <syntaxhighlight lang="ini"> | ||
[Preview Image] | [Preview Image] | ||
Caption=\s My Caption | Caption=\s My Caption | ||
Description=This is\na very long\ndescription. | Description=This is\na very long\ndescription. | ||
</ | </syntaxhighlight> | ||
配置檔中的空行將被忽略,就像對待井字「#」開始的行一樣。井字用於在配置檔中加上註釋,但是需要注意當 KDE 應用程式更新配置檔時,這些註釋將不被保留。 | 配置檔中的空行將被忽略,就像對待井字「#」開始的行一樣。井字用於在配置檔中加上註釋,但是需要注意當 KDE 應用程式更新配置檔時,這些註釋將不被保留。 | ||
Line 73: | Line 73: | ||
「<tt>Email</tt>」項目是由 $USER 和 $HOST 這兩個環境變數的值來決定的。當 ''joe'' 登錄到 ''joes_host'' 時,這將會使得該值等於「<tt>joe@joes_host</tt>」。這個設定是未被鎖定的。 | 「<tt>Email</tt>」項目是由 $USER 和 $HOST 這兩個環境變數的值來決定的。當 ''joe'' 登錄到 ''joes_host'' 時,這將會使得該值等於「<tt>joe@joes_host</tt>」。這個設定是未被鎖定的。 | ||
< | <syntaxhighlight lang="ini"> | ||
[Mail Settings] | [Mail Settings] | ||
Host[$ie]=$(hostname) | Host[$ie]=$(hostname) | ||
Email[$e]=${USER}@${HOST} | Email[$e]=${USER}@${HOST} | ||
</ | </syntaxhighlight> | ||
== 本地化 == | == 本地化 == | ||
Line 86: | Line 86: | ||
在接下來的例子中,「<tt>Caption</tt>」項目的值依賴於所用的語言。如果使用者選用了法語(語言碼為<tt>fr</tt>),項目的值就將是「<tt>Ma Légende</tt>」,在其餘的情況下將使用「<tt>My Caption</tt>」值。 | 在接下來的例子中,「<tt>Caption</tt>」項目的值依賴於所用的語言。如果使用者選用了法語(語言碼為<tt>fr</tt>),項目的值就將是「<tt>Ma Légende</tt>」,在其餘的情況下將使用「<tt>My Caption</tt>」值。 | ||
< | <syntaxhighlight lang="ini"> | ||
[Preview Image] | [Preview Image] | ||
Caption=My Caption | Caption=My Caption | ||
Caption[fr]=Ma Légende | Caption[fr]=Ma Légende | ||
</ | </syntaxhighlight> | ||
== 鎖定 == | == 鎖定 == | ||
Line 99: | Line 99: | ||
在接下來的例子中,「<tt>Caption</tt>」項目已經被鎖定。所有在「<tt>Mail Settings</tt>」組中的項目同樣也已經被鎖定。 | 在接下來的例子中,「<tt>Caption</tt>」項目已經被鎖定。所有在「<tt>Mail Settings</tt>」組中的項目同樣也已經被鎖定。 | ||
< | <syntaxhighlight lang="text"> | ||
[Preview Image] | [Preview Image] | ||
Caption[$i]=My Caption | Caption[$i]=My Caption | ||
Line 106: | Line 106: | ||
Host[$e]=$(hostname) | Host[$e]=$(hostname) | ||
Email=waldo@kde.org | Email=waldo@kde.org | ||
</ | </syntaxhighlight> | ||
如果一個項目已經被鎖定,那麼其他優先於預設設定的項目將被忽略。 | 如果一個項目已經被鎖定,那麼其他優先於預設設定的項目將被忽略。 | ||
應用程式對被鎖定設定作出的任何修改,將在無提示的情況下被丟棄。應用程式對於被鎖定設定可能有不同的反應。一些應用程式會辨認出某個設定被鎖定了,並且會在使用者介面上隱藏這些元素。其他應用程式將會繼續在它們的使用者介面上提供這些選項,即使這些選項已不再起作用了。同樣也有可能,正在運行的程式實際上仍然可以修改這些設定。在這種情況下,被修改的設定僅會在這支程式仍在執行的期間起作用。當這支該程式重新啟動後,將會回復成被鎖定的預設設定。 | |||
== 編輯器 == | == 編輯器 == | ||
Line 126: | Line 117: | ||
要想在命令列中進行腳本設計或修改檔案,命令列程式 <tt>kwriteconfig</tt> 是非常有用的。<tt>kwriteconfig</tt> 可以同時建立一個配置檔名、一個組、一個關鍵字、一個可選的類型和一個值,例如: | 要想在命令列中進行腳本設計或修改檔案,命令列程式 <tt>kwriteconfig</tt> 是非常有用的。<tt>kwriteconfig</tt> 可以同時建立一個配置檔名、一個組、一個關鍵字、一個可選的類型和一個值,例如: | ||
< | <syntaxhighlight lang="text">kwriteconfig --file kickerrc \ | ||
--group General \ | --group General \ | ||
--key AutoHidePanel \ | --key AutoHidePanel \ | ||
--type bool \ | --type bool \ | ||
true</ | true</syntaxhighlight> |
Latest revision as of 13:38, 23 June 2013
Template:I18n/Language Navigation Bar (zh TW)
檔案格式
KDE 在它所有的配置檔都使用基於純文字的檔案格式。這種檔案包含由多項關鍵字與值(key-value)相配組合成的組(group)。所有的 KDE 配置檔使用 UTF-8 編碼,而不用 ASCII。
每組的開始處是由放置在中括號內的組名標示。所有放置在開始標籤後的關鍵字與值項目皆屬於該組。每個組結束於下一組的開始標籤或設定檔的結尾。
在檔案最上面的第一個項,不會作為預設的組被優先處理。
範例:一份簡單的配置檔
以下的範例展示了一個包含兩個組的配置檔。第一組包含了關鍵字「LargeCursor」和「SingleClick」,第二組包含了關鍵字「Show hidden files」和「Sort by」。
[KDE]
LargeCursor=false
SingleClick=true
[KFileDialog Settings]
Show hidden files=false
Sort by=Name
在組中的每個項目都是使用「關鍵字=值」的格式。關鍵字能夠包含空格,也可在其後加上放置於中括號內的選項。
等號後面的部分是每個項目的值。所有在等號周圍和項目末端的空格都將被忽略。
如果一個值需要包含一個空格在它的開始或結尾,這種情況可以用反斜線加 s 來代替。
有許多其他這樣的反斜線替代碼,以下是完整列表:
- 「\s」 能夠被當作空格使用
- 「\t」 能夠被當作 tab 使用
- 「\r」 表示 return 符號
- 「\n」 表示換行符號(新增一行)
- 「\\」 表示反斜線本身
範例:空白
下面的配置檔片段相當於與上一個範例。關鍵字與值周圍的空白將被忽略。
[KDE]
LargeCursor= false
SingleClick = true
[KFileDialog Settings]
Show hidden files = false
Sort by =Name
範例:保留空白
在接下來的例子中「Caption」項的值以兩個空格開始,同時「Description」項包含三行文字。反斜線標記的換行符號(\n)用於分割不同行。
[Preview Image]
Caption=\s My Caption
Description=This is\na very long\ndescription.
配置檔中的空行將被忽略,就像對待井字「#」開始的行一樣。井字用於在配置檔中加上註釋,但是需要注意當 KDE 應用程式更新配置檔時,這些註釋將不被保留。
配置
在許多 [[../KDE Filesystem Hierarchy#Location_of_the_Directory_Trees|KDE 目錄樹]]的 share/config 子目錄下可以有多個同名的配置檔。在這種情況下,所有這些配置檔中的資訊將逐條項地合併在一起。如果某個組內同一個關鍵字不止在一個地方被定義過,將使用最高優先權目錄樹下的關鍵字值。在 $KDEHOME 下的配置檔擁有最高優先權。如果某個組中的某個關鍵字在同一個檔中被定義了多次,那麼最後出現的值將被採用。
KDE 的級聯配置方案提供使用者在系統或整個組織預設設定的基礎上,對某些個別設定進行修改。KDE 不會為了符合系統的預設設定,覆寫 $KDEHOME 下的使用者配置檔項目。這樣使得預設設定的修改可以立即傳播給所有使用者。注意,不同於傳統透過 /etc/skel 來為使用者提供預設設定,修改 /etc/skel 只能套用於建立新的使用者帳戶時。
當管理員不希望預設設定被個別使用者隨意修改時,可以鎖定預設設定。
Shell 擴展
之所以稱作Shell 擴展,是因為這種技術能夠用於提供更多動態的預設值。透過 shell 擴展,你能夠從環境變數或 shell 指令輸出的值來構建配置檔中關鍵字的值。
要想把 Shell 擴展使用在配置項目,關鍵字後必須緊跟 [$e]。一般情況下,擴展部分在第一次使用後,會寫入使用者配置檔。為了避免這種情況發生,我們推薦使用 [$ie] 來鎖定相應的配置項目。
範例:動態項目
在接下來的例子,「Host」項目的值由 hostname 程式的輸出決定。這個設定同樣可以被鎖定,以確保該值始終是動態決定的。
「Email」項目是由 $USER 和 $HOST 這兩個環境變數的值來決定的。當 joe 登錄到 joes_host 時,這將會使得該值等於「joe@joes_host」。這個設定是未被鎖定的。
[Mail Settings]
Host[$ie]=$(hostname)
Email[$e]=${USER}@${HOST}
本地化
所有的配置項目都能按照語言碼來加以標記。在這種情況下,桌面使用者選用的語言一般會查詢相應的關鍵字值。如果預設語言(美式英語)已被選用,或者沒有與所選語言相符合的標記,沒有加標記的關鍵字項目將被使用。
範例:把 UTF-8 用在關鍵字
在接下來的例子中,「Caption」項目的值依賴於所用的語言。如果使用者選用了法語(語言碼為fr),項目的值就將是「Ma Légende」,在其餘的情況下將使用「My Caption」值。
[Preview Image]
Caption=My Caption
Caption[fr]=Ma Légende
鎖定
為了避免使用者複寫預設設定,你可以對全系統配置檔的設定進行鎖定。無論是每個組,還是每個檔,設定都能夠單獨地鎖定。一個單獨的項目能夠透過在關鍵字後加入 [$i] 來加以鎖定。一組中的項目也同樣能夠透過在組的名字後面放置 [$i] 來加以鎖定。想要鎖定整個項目檔,在這個檔案的開頭加入 [$i] 成獨立的一行。
範例:使用 [$i]
在接下來的例子中,「Caption」項目已經被鎖定。所有在「Mail Settings」組中的項目同樣也已經被鎖定。
[Preview Image]
Caption[$i]=My Caption
[Mail Settings][$i]
Host[$e]=$(hostname)
Email=waldo@kde.org
如果一個項目已經被鎖定,那麼其他優先於預設設定的項目將被忽略。
應用程式對被鎖定設定作出的任何修改,將在無提示的情況下被丟棄。應用程式對於被鎖定設定可能有不同的反應。一些應用程式會辨認出某個設定被鎖定了,並且會在使用者介面上隱藏這些元素。其他應用程式將會繼續在它們的使用者介面上提供這些選項,即使這些選項已不再起作用了。同樣也有可能,正在運行的程式實際上仍然可以修改這些設定。在這種情況下,被修改的設定僅會在這支程式仍在執行的期間起作用。當這支該程式重新啟動後,將會回復成被鎖定的預設設定。
編輯器
如果你不願意使用文字編輯器的話,那麼 KConfigEditor 提供了一種編輯 KDE 配置檔的便利方法。
要想在命令列中進行腳本設計或修改檔案,命令列程式 kwriteconfig 是非常有用的。kwriteconfig 可以同時建立一個配置檔名、一個組、一個關鍵字、一個可選的類型和一個值,例如:
kwriteconfig --file kickerrc \
--group General \
--key AutoHidePanel \
--type bool \
true