1. 默認(rèn)鍵位
給那些“太長不看”的人绰上,以下圖片是默認(rèn)熱鍵初坠。
與$mod(Alt)一起按:
與Shift+$mod一起按:
紅色按鍵是你需要按的修飾鍵(默認(rèn)配置)秒梳,藍(lán)色按鍵是盲打鍵位贺待。
要注意的是悬而,若是沒有配置文件就啟動(dòng)i3,i3-config-wizard 會(huì)幫助你創(chuàng)建一個(gè)配置文件函喉,鍵位位置會(huì)跟上圖所示一樣避归,不管你是什么鍵盤布局。
如果你喜歡上圖的設(shè)置管呵,可以拒絕 i3-config-wizard的引導(dǎo)槐脏,默認(rèn)以 etc/i3/config 作為配置文件
2. 使用i3
貫穿整個(gè)使用文檔,關(guān)鍵字$mod將當(dāng)作已配置好的修飾鍵撇寞,修飾鍵默認(rèn)為Alt鍵(Mod1)顿天,windows(Mod4)鍵也是一個(gè)受歡迎的替換方案
2.1 打開虛擬終端和移動(dòng)位置
打開一個(gè)新的虛擬終端是非常簡單的操作,默認(rèn)情況下蔑担,這個(gè)操作的組合鍵是 $mod+Enter ,默認(rèn)配置下是Alt+Enter牌废。按下$mod+Enter,將會(huì)打開一個(gè)新的虛擬終端,它將占滿你屏幕的所有空間啤握。
如果你現(xiàn)在打開另一個(gè)虛擬終端鸟缕,i3會(huì)把屏幕空間一分為二,各占一半排抬。新創(chuàng)建的窗口會(huì)被i3放在已有窗口的旁邊(寬屏)或者下面(豎屏)
要在兩個(gè)終端之間移動(dòng)焦點(diǎn)懂从,你可以使用vi編輯器風(fēng)格的方向鍵。然而蹲蒲,在i3里番甩,盲打鍵位就是方向鍵(vi編輯器里的方向鍵為了兼容大多數(shù)鍵盤布局,都向左移動(dòng)了一個(gè)鍵位)届搁。因此缘薛,$mod+j是向左,$mod+k是向上卡睦,$mod+l是向下宴胧,$mod+;是向右。像上圖的情況表锻,用$mod+k或$mod+l在兩個(gè)終端之間切換恕齐。當(dāng)然,你也可以使用箭頭方向鍵瞬逊。
現(xiàn)在显歧,你的workspace是按特定方向(默認(rèn)水平方向)劃分(容器里包含兩個(gè)終端)补胚。你可把每個(gè)window都再分離一次(水平或者垂直),就像workspace一樣追迟。“window”指一個(gè)容器包含一個(gè)X11窗口(如一個(gè)瀏覽器或者一個(gè)終端)骚腥,“split container”指的是容器包含一個(gè)或多個(gè)窗口敦间。
TODO:picture of the tree
垂直分割窗口,在創(chuàng)建新窗口前按$mod+v束铭,水平分割窗口廓块,按$mod+h。
2.2 改變?nèi)萜鞑季?/h2>
一個(gè)split container 可以設(shè)置成下面所列出的布局之一契沫。
splith/splitv
容器里的每個(gè)窗口都獲得等量大小的空間带猴。splith 控制每個(gè)窗口在彼此的左右方。splitv 控制每個(gè)窗口在彼此的上下方懈万。
stacking
容器里只顯示一個(gè)正在活動(dòng)的窗口拴清。在容器上方得到一個(gè)窗口的列表。
tabbed
與stacking是一個(gè)原理会通,不過tabbed的窗口列表是單行顯示的標(biāo)簽頁口予。
切換模式:$mod+e打開splith/splitv,$mod+s打開stacking涕侈,$mod+w打開tabbed
2.3 把一個(gè)窗口切換到全屏模式
把一個(gè)窗口全屏顯示或者退出全屏沪停,按 $mod+f。
在i3里還有全局全屏模式裳涛,那么這個(gè)窗口將占據(jù)所有的顯示輸出(多屏顯示)(配置命令: fullscrren toggle global)
2.4 打開其他應(yīng)用程序
除了通過終端打開應(yīng)用程序木张,你也可以使用dmenu來打開程序,默認(rèn)情況下通過$mod+d調(diào)出端三。只需要輸入你要打開的應(yīng)用的名字(或者是名字的一部分)舷礼,應(yīng)用必須在$PATH中才能正常打開。
另外郊闯,如果你有一個(gè)需要經(jīng)常打開的應(yīng)用且轨,你可以創(chuàng)建一個(gè)組合鍵來直接打開它,細(xì)節(jié)請看 配置 部分.
2.5 關(guān)閉窗口
如果一個(gè)程序未提供一個(gè)關(guān)閉的機(jī)制(很多程序都提供了一個(gè)關(guān)閉方案虚婿,Esc鍵或者一個(gè)快捷鍵旋奢,比如Ctrl+w),你可以按$mod+Shift+q 來殺掉這個(gè)窗口然痊。對于支持 WM_DELETE 協(xié)議的應(yīng)用程序至朗,它將正確地關(guān)閉(保存任何修改或進(jìn)行其他清理)。如果程序不支持 WM_DELETE 協(xié)議剧浸。X server 將殺掉這個(gè)程序并且之后的動(dòng)作取決與此程序锹引。
2.6 使用workspaces
使用工作空間是分組歸類一堆窗口的好方法矗钟。默認(rèn)情況下,你處在第一個(gè)workspace,就像i3bar左下角所指示的一樣嫌变。要切換到其他workspace吨艇,按下$mod+數(shù)字鍵(你要切換到的workspace的數(shù)字)。如果工作空間不存在腾啥,它將被創(chuàng)建东涡。
一個(gè)常見的例子是把網(wǎng)頁瀏覽器放在第一workspace,聊天工具放在另一個(gè)workspace倘待,還有另一個(gè)你運(yùn)行的其他軟件放在第三個(gè)workspace疮跑。當(dāng)然,你可以不必照著做凸舵。
如果你擁有多個(gè)顯示屏祖娘,在啟動(dòng)時(shí)將會(huì)在每個(gè)屏幕創(chuàng)建一個(gè)workspace。如果你打開一個(gè)新的workspace啊奄,他會(huì)綁定到你正在工作的顯示屏渐苏。當(dāng)你切換一個(gè)在其他 顯示屏的workspace時(shí),i3會(huì)把焦點(diǎn)設(shè)置到那個(gè)顯示屏菇夸。
2.7 移動(dòng)一個(gè)window到另一個(gè)workspace
移動(dòng)一個(gè)窗口到另一個(gè)工作空間整以,按$mod+Shift+目標(biāo)工作區(qū)數(shù)字。跟切換workspaces時(shí)一樣的情況峻仇,如果目標(biāo)工作空間不存在公黑,它將被創(chuàng)建。
2.8 調(diào)整窗口大小
調(diào)整容器大小最簡單的辦法是用鼠標(biāo):拖拽邊框到想要的大小摄咆。
你也可以定義快捷鍵來調(diào)整凡蚜,可以看看這個(gè)例子,default config--由i3提供
2.9 重啟i3
為了重啟i3你可以使用$mod+Shift+r(例如當(dāng)有一個(gè)bug時(shí)吭从,恢復(fù)到正常狀態(tài)朝蜘,或者升級(jí)到一個(gè)新版本i3)。
2.10 退出i3
不關(guān)掉Xserver且利落地退出i3涩金,你可以按$mod+shift+e谱醇。通常,會(huì)有一個(gè)對話向你確認(rèn)是否退出步做。
2.11 浮動(dòng)模式
浮動(dòng)模式是相對于平鋪模式的副渴。窗口的位置和大小不是由i3自動(dòng)管理的,而是由你手工調(diào)整全度。使用這個(gè)模式有違于平鋪模式煮剧,但是他對一些案例如"Save as"對話窗口,或者toolbar窗口(GIMP或類似的)是有用的。這些窗口通常會(huì)設(shè)置恰當(dāng)?shù)奶崾竞湍J(rèn)情況下被打開于浮動(dòng)模式勉盅。
你可以通過按$mod+Shift+space來切換一個(gè)窗口的浮動(dòng)模式佑颇。通過鼠標(biāo)拖動(dòng)標(biāo)題欄,你可以移動(dòng)這個(gè)窗口草娜,通過拖動(dòng)邊框挑胸,你可以調(diào)整窗口大小。你也可以通過使用floating_modifier來操作宰闰。另一個(gè)調(diào)整浮動(dòng)窗口大小的方法是鼠標(biāo)右擊標(biāo)題欄并且拖拽茬贵。
關(guān)于用鍵盤來調(diào)整浮動(dòng)窗口的大小,請看調(diào)整大小的綁定模式议蟆,由i3提供
default config
浮動(dòng)窗口一直處于平鋪窗口的上方
3 樹
i3保存著所有關(guān)于 X11 output 的數(shù)據(jù),workspace和窗口布局在里面是樹形圖的結(jié)構(gòu)萎战。根節(jié)點(diǎn)是X11根窗口咐容,隨后是X11 putputs,然后是 dock areas 和一個(gè) content container蚂维,隨后是workspace戳粒,最后是window本身。在舊版本的i3虫啥,每個(gè)workspace有多個(gè)list和table蔚约,這個(gè)方法的結(jié)果是難以使用(真的難),理解和實(shí)現(xiàn)涂籽。
3.1 樹是由容器組成的
我們把樹的組件叫做Containers苹祟。一個(gè)容器可以掌控一個(gè)窗口(意思是一個(gè)X11 window,你可以真正看到的评雌,使用的树枫,比如說一個(gè)瀏覽器)。另外景东,Containers可以再包含一個(gè)或者多個(gè)Containers砂轻。一個(gè)簡單的workspace例子是:當(dāng)你在單個(gè)顯示器打開i3時(shí),只有一個(gè)workspace斤吐,你這時(shí)打開了兩個(gè)終端搔涝,你最后得到的樹是:
3.2 定位和Split Containers
當(dāng)以樹作為數(shù)據(jù)結(jié)構(gòu)時(shí),為了構(gòu)建一個(gè)布局和措,使用所謂的 Split Containers 是很正常的庄呈。在i3里,每個(gè)容器都有屬于自己的方位(水平派阱,垂直抒痒,或者未指定),并且定位取決于上一級(jí)容器的布局(垂直的有splitev和stacking,水平的有splith和tabbed)故响。所以我們以一個(gè)workspace作為例子傀广,workspace 容器的默認(rèn)布局是splith(如今很多顯示器是寬屏的)。如果你把布局切換成splitv(默認(rèn)情況下按$mod+v)然后打開兩個(gè)終端彩届,i3會(huì)把你的窗口設(shè)置成這個(gè)樣子:
從version 4開始伪冰,i3多了一個(gè)有趣的新特性,它能夠分割任何東西:讓我們假設(shè)你現(xiàn)在在workspace里打開了兩個(gè)終端(以splith布局打開,也就是水平定位)焦點(diǎn)處于右邊的終端,現(xiàn)在你想要要在當(dāng)前終端下面打開另外一個(gè)終端表窘。如果你直接打開新終端幔嫂,它會(huì)被放在最右邊而不是下面。解決辦法是按$mod+v用splitv布局來分割容器(要打開Horizontal Split Container架忌,用$mod+h)。現(xiàn)在你可以在當(dāng)前終端下面打開一個(gè)新終端了:
你可能已經(jīng)猜到了:它能夠無限分割到下一層。
3.3 聚焦于父容器
$mod+a
我們繼續(xù)以上圖為例耻警。我們在左邊有一個(gè)終端,右邊有兩個(gè)垂直分布的終端甸怕,焦點(diǎn)處在右下角的終端甘穿。當(dāng)你又打開一個(gè)新終端,他會(huì)被放在右下角終端的下面梢杭。
所以說温兼,要怎么把新終端放到右邊而不是下面呢,答案是使用focus parent武契,它會(huì)把焦點(diǎn)轉(zhuǎn)移到當(dāng)前容器的父容器募判。在這種情況下,你會(huì)把焦點(diǎn)放在水平方向的workspace里的vertical split Container咒唆。因此兰伤,新窗口會(huì)被打開在Vertical Split Container的右邊:
3.4 隱式容器
在一些情況下,i3需要隱式地創(chuàng)建一個(gè)容器來完成你的命令钧排。
一個(gè)例子如下:你在單個(gè)顯示器啟用i3敦腔,在單個(gè)workspace打開3個(gè)終端。workspace節(jié)點(diǎn)在i3的layout tree里恨溜,這些終端窗口直屬于workspace節(jié)點(diǎn)符衔。默認(rèn)workspace節(jié)點(diǎn)的方向設(shè)置是水平的。
現(xiàn)在你往下移動(dòng)其中一個(gè)終端($mod+Shift+k by default)糟袁。那么workspace節(jié)點(diǎn)會(huì)被設(shè)置成垂直布局判族,你移動(dòng)的這個(gè)終端就會(huì)出現(xiàn)在屏幕的下面并且直屬于workspace。一個(gè)新的容器被創(chuàng)建项戴,用于容納另外兩個(gè)終端形帮。當(dāng)你切換到tabbed模式,你會(huì)注意到這個(gè)情況。你最終會(huì)得到一個(gè)有標(biāo)簽頁容器辩撑,里面有兩個(gè)窗口(比如 "H[urxvt firefox]")界斜,還有一個(gè)你剛才移動(dòng)到下面的終端窗口。
4 配置i3
到這里各薇,真正有趣的事情才剛剛開始;-)。很多東西都非常依賴于你樣要的工作環(huán)境君躺,所以我們無法提供一個(gè)默認(rèn)的且合理的配置峭判。
雖然沒有使用編程語言來進(jìn)行配置,i3在你希望讓窗口管理器怎么做的方面依然保持著靈活的特性棕叫。
例如林螃,你可以配置一個(gè)綁定用來跳到指定的窗口,可以設(shè)置打開指定的應(yīng)用程序到指定的workspace俺泣,可以自動(dòng)啟動(dòng)某個(gè)程序疗认,可以改變i3的配色,還可以設(shè)置快捷鍵來做一些有用的事情砌滞。
要改變i3的配置侮邀,復(fù)制 /etc/i3/config 到 ~/.i3/config并且用一個(gè)文本編輯器來編輯它(或者是復(fù)制到~/.config/i3/config坏怪,如果你喜歡XDG目錄方案)
第一次啟動(dòng)i3時(shí)贝润,i3會(huì)引導(dǎo)你創(chuàng)建一個(gè)配置文件,你可以告訴向?qū)С绦蛟谂渲梦募镌O(shè)置Alt(Mod1)或windows(Mod4)鍵作為輔助按鍵铝宵。當(dāng)然打掘,創(chuàng)建的配置文件會(huì)使用你當(dāng)前鍵盤布局的鍵盤符號(hào)。要啟動(dòng)向?qū)С绦蚺羟铮堅(jiān)诮K端輸入命令i3-config-wizard尊蚁。
請確認(rèn)你當(dāng)前并沒有~/.i3/config/。否則向?qū)С绦驅(qū)?huì)退出侣夷。
4.1 備注
在配置文件里使用備注是可行的和推薦的横朋,為了以后參考或修改,適當(dāng)?shù)赜涗浤愕呐渲冒偻亍渥⒁?strong>#開始琴锭,而且只能用在每行的開頭:
例子
# This is a comment
4.2 字體
i3支持以 X core字體和 FreeType 字體來渲染窗口標(biāo)題
你可以使用xfontsel(1) 生成一個(gè) X core字體類型。你需要使用一個(gè)支持ISO-10646編碼的字體來顯示特殊字符(Unicode)衙传。
一個(gè)FreeType字體類型是由一個(gè)字體系列决帖,風(fēng)格,粗細(xì)蓖捶,便提地回,伸延組成的,F(xiàn)reeType字體支持從右到左的渲染和往往比 X core字體支持更多的Unicode符號(hào)。
如果i3不能打開配置好的字體刻像,i3會(huì)吧錯(cuò)誤輸出到日志文件畅买,退回到可以工作的字體
語法:
font <X core font description>
font pango:<family list> [<style options>] <size>
例子:
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font pango:DejaVu Sans Mono 10
font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11
font pango:Terminus 11px
4.3 鍵盤綁定
一個(gè)鍵盤綁定會(huì)讓i3在按下特定的按鍵后執(zhí)行一個(gè)命令。i3允許以keycode或keysym綁定(你可已隨便更改綁定绎速,雖然i3并不會(huì)幫你解決鍵位沖突)
Keysym(key symbol)是指鍵盤上的符號(hào)皮获。像是"A"或者"B",但是像是那些奇怪的"underscore"而不是"_"纹冤。這些符號(hào)是你們用Xmodmap重新映射的按鍵洒宝。要獲得當(dāng)前鍵盤的映射,使用命令
xmodmap -pke
萌京。要以交互方式輸入一個(gè)按鍵雁歌,查看它是被設(shè)置成什么keysym,使用命令xev
知残。Keycode 不需要擁有一個(gè)已賦值符號(hào)(方便某些筆記本熱鍵)靠瞎,而且他們即使在你換了鍵盤布局后,也不會(huì)改變keycode本身(當(dāng)使用xmodmap)求妹。
我的建議是:如果你經(jīng)常更換鍵盤布局乏盐,但是不想改變綁定鍵位的物理位置,使用keycodes制恍。如果你不改變鍵盤布局父能,而且想要一個(gè)簡單干凈的配置文件,使用keysyms净神。
某些工具(例如import或者xdotool)可能無法運(yùn)行在一些KeyPress事件何吝,因?yàn)殒I盤/指針被占用了。針對這些情況鹃唯,可以使用 --release 標(biāo)記,這將在按鍵被松開后執(zhí)行命令爱榕。
語法:
bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command
bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command
例子:
# Fullscreen
bindsym $mod+f fullscreen toggle
# Restart
bindsym $mod+Shift+r restart
# Notebook-specific hotkeys
bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh
# Simulate ctrl+v upon pressing $mod+x
bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v
# Take a screenshot upon pressing $mod+x (select an area)
bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png
可以使用的修飾鍵:
Mod1-mod5,Shift坡慌,Control
默認(rèn)修飾請看 xmodmap(1)
Group1, Group2, Group3, Group4
當(dāng)使用多個(gè)鍵盤布局(例如setxkbmap -layout us黔酥,ru)時(shí),您可以指定哪個(gè)XKB組(也稱為“布局”)鍵盤綁定應(yīng)處于活動(dòng)狀態(tài)洪橘。默認(rèn)的跪者,鍵盤綁定會(huì)被轉(zhuǎn)換成Group1并且活躍在所有鍵盤布局。如果你想為其中一個(gè)鍵盤布局重寫鍵盤綁定梨树,指定到相應(yīng)的group坑夯。為了向后兼容,“Mode_switch” 是Group2的別名抡四。
4.4 鼠標(biāo)綁定
在容器范圍內(nèi)按下一個(gè)已經(jīng)綁定的鼠標(biāo)按鍵柜蜈,i3將會(huì)執(zhí)行一個(gè)命令仗谆。你可以用綁定鍵盤的方法設(shè)置鼠標(biāo)綁定。
語法:
bindsym [--release] [--border] [--whole-window] [<Modifiers>+]button<n> command
默認(rèn)的淑履,綁定只會(huì)在點(diǎn)擊到標(biāo)題欄的時(shí)候運(yùn)行隶垮。如果添加了--release標(biāo)記,它會(huì)在按鍵松開時(shí)運(yùn)行秘噪。
如果添加了--whole-window標(biāo)記狸吞,綁定會(huì)在你點(diǎn)擊到窗口任何一個(gè)部位時(shí)運(yùn)行,但是邊框除外指煎。為了讓一個(gè)綁定在點(diǎn)擊到邊框時(shí)運(yùn)行蹋偏,指定一個(gè)--border標(biāo)記。
例子:
# The middle button over a titlebar kills the window
bindsym --release button2 kill
# The middle button and a modifer over any part of the window kills the window
bindsym --whole-window $mod+button2 kill
# The right button toggles floating
bindsym button3 floating toggle
bindsym $mod+button3 floating toggle
# The side buttons move the window around
bindsym button9 move left
bindsym button8 move right
綁定模式
你可以擁有多套鍵位綁定模式至壤,當(dāng)你切換到其他綁定模式的時(shí)候威始,所有當(dāng)前鍵位綁定會(huì)被釋放,并且只有你新切換的綁定模式生效像街。唯一的預(yù)設(shè)的綁定模式是defalut的黎棠,他伴隨i3的啟動(dòng),并且沒有定義任何指定的綁定模式镰绎。
使用綁定模式有以下兩部分組成:定義一個(gè)綁定模式和切換到它脓斩。為了做到這個(gè),需要一個(gè)配置指令和一個(gè)命令畴栖,他們被稱為mode随静。配置指令被用來定義一組綁定并且把它放到一個(gè)綁定模式,而命令是用來切換到一個(gè)綁定模式驶臊。
建議與[variables]組合使用綁定模式挪挤,以便維護(hù)更容易叼丑。以下是一個(gè)簡單案例
請注意定義一個(gè)退回默認(rèn)模式的綁定鍵
注意关翎,可以使用[pango_markup]來設(shè)置綁定模式, 但是你需要通過添加 --pango_markup標(biāo)記給定義模式來明確地開啟它鸠信。
語法
# config directive
mode [--pango_markup] <name>
# command
mode <name>
例子
# Press $mod+o followed by either f, t, Esc or Return to launch firefox,
# thunderbird or return to the default mode, respectively.
set $mode_launcher Launch: [f]irefox [t]hunderbird
bindsym $mod+o mode "$mode_launcher"
mode "$mode_launcher" {
bindsym f exec firefox
bindsym t exec thunderbird
bindsym Esc mode "default"
bindsym Return mode "default"
}
4.6 浮動(dòng)調(diào)節(jié)
移動(dòng)浮動(dòng)窗口纵寝。你可以選擇其中一個(gè)方式,1拖動(dòng)標(biāo)題欄星立,2配置可以通過按鍵和鼠標(biāo)點(diǎn)擊窗口來移動(dòng)窗口的浮動(dòng)調(diào)節(jié)器爽茴。最常見的設(shè)置是用與管理窗口相同的按鍵(例如Mod1)。也就是說绰垂,你可以按住Mod1,同時(shí)鼠標(biāo)左鍵點(diǎn)擊拖動(dòng)動(dòng)窗口到你想要的方位室奏。
當(dāng)你按住浮動(dòng)調(diào)節(jié)器時(shí)(Mod1),你可以通過按住鼠標(biāo)右鍵并拖動(dòng),來調(diào)整那一個(gè)窗口的大小劲装。如果你同時(shí)按住了Shift鍵胧沫,窗口將會(huì)按比例縮放(寬高比會(huì)保留)昌简。
語法
floating_modifier <Modifier>
例子
floating_modifier Mod1
4.7 限制浮動(dòng)窗口的大小
浮動(dòng)窗口的最大最小面積可以被指定。如果其中的floating_maximum_size被指定為-1绒怨,那么對于窗口的最大值將不會(huì)被約束纯赎。如果其中的floating_maximum_size為定義,或者被制定為0,i3會(huì)使用默認(rèn)值來限制窗口最大值南蹂。floating_minimum_size的處理方法一定程度上與floating_maximum_size的相同犬金。
語法
floating_minimum_size <width> x <height>
floating_maximum_size <width> x <height>
例子
floating_minimum_size 75 x 50
floating_maximum_size -1 x -1
4.8 工作區(qū)的定位
新工作區(qū)有一個(gè)默認(rèn)合適的定位:寬屏用水平定位,豎屏用垂直定位六剥。
你可以重寫default_orientation的行為
語法
default_orientation horizontal|vertical|auto
例子
default_orientation vertical
4.9 新容器的布局模式
這個(gè)選項(xiàng)決定了工作區(qū)級(jí)別的容器該用什么布局模式
語法
workspace_layout default|stacking|tabbed
例子
workspace_layout tabbed
4.10 新窗口的邊框風(fēng)格
此選項(xiàng)決定新窗口擁有什么樣的邊框風(fēng)格晚顷。默認(rèn)是normal。注意疗疟,new_float 僅應(yīng)用于作為浮動(dòng)窗口呼出的窗口音同。例如對話窗口,而不是到后來才被設(shè)置成浮動(dòng)窗口的窗口秃嗜。
語法
new_window normal|none|pixel
new_window normal|pixel <px>
new_float normal|none|pixel
new_float normal|pixel <px>
例子
new_window pixel
"normal" 和 "pixel" 邊框風(fēng)格支持設(shè)置邊框像素大小的可選項(xiàng)权均。
例子
# The same as new_window none
new_window pixel 0
# A 3 px border
new_window pixel 3
4.11 隱藏靠近屏幕邊緣的邊框
你可以使用hide_edge_borders來隱藏與屏幕邊緣靠近的邊框。如果你使用滾動(dòng)條的話這很有用锅锨,或者不想浪費(fèi)甚至兩像素的顯示空間叽赊。"smart"選項(xiàng)是在工作區(qū)內(nèi)只有一個(gè)可見窗口時(shí)才隱藏邊框,而在工作去內(nèi)有多個(gè)窗口必搞,他不會(huì)隱藏邊框必指。
語法
hide_edge_borders none|vertical|horizontal|both|smart
例子
hide_edge_borders vertical
4.12 指定窗口的任意命令(for window)
使用for_window指令,當(dāng)i3碰到特定的窗口恕洲,你可以讓i3執(zhí)行任何命令塔橡。它可以用在讓窗口浮動(dòng),改變他們的邊框的方面霜第,等葛家。
語法
for_window <criteria> <command>
例子
# enable floating mode for all XTerm windows
for_window [class="XTerm"] floating enable
# Make all urxvts use a 1-pixel border:
for_window [class="urxvt"] border pixel 1
# A less useful, but rather funny example:
# makes the window floating as soon as I change
# directory to ~/work
for_window [title="x200: ~/work"] floating enable
有效的命令請command_criteria
4.13 不把焦點(diǎn)放在新建窗口
當(dāng)一個(gè)新窗口出現(xiàn)時(shí),焦點(diǎn)會(huì)移到它那里泌类。no_focus 指令允許預(yù)防這種情況發(fā)生癞谒,而且它必須與command_criteria一起使用
注意,他不會(huì)在所有情景下生效刃榨,例如弹砚,當(dāng)數(shù)據(jù)正輸送給一個(gè)運(yùn)行中的程序,使得焦點(diǎn)必須移到它身上枢希。設(shè)置這種情況的行為桌吃,參考focus_on_window_activation
在工作區(qū)的第一個(gè)窗口中,no_focus也會(huì)被忽略苞轿,在這種情況下茅诱,沒有理由不把焦點(diǎn)放在這個(gè)窗口为流。與workspace_layaout結(jié)合使用會(huì)有更好是可用性。
語法
no_focus <criteria>
例子
no_focus [window_role="pop-up"]
4.14 變量
正如您在有關(guān)鍵盤綁定的章節(jié)中了解到的让簿,你將要配置許多包含修飾鍵的綁定敬察,如果你想要保存一些輸入并能夠改變你之后要用的修飾鍵,那么變量就很方便了尔当。
語法
set $<name> <value>
例子
set $m Mod1
bindsym $m+Shift+r restart
在解釋過程中莲祸,變量會(huì)在文件中被替換。變量擴(kuò)張不是遞歸的椭迎,所以不可能用一個(gè)包含另一個(gè)變量的值來定義變量锐帜。對于這個(gè)沒有其他的想法,而且絕對沒有改變的計(jì)劃畜号。如果你需要更多的動(dòng)態(tài)配置缴阎,你應(yīng)該創(chuàng)建一些用來生成配置文件在i3啟動(dòng)之前運(yùn)行的腳本。