Ratpoison

出自 Arch Linux 中文维基

本文內容或本節內容已經過期。

原因: 請提供模板的第一個位置參數以概括原因。 (在Talk:Ratpoison討論)

這篇文章或章節的翻譯不反映原文。

原因:Last updated in 2016(在 Talk:Ratpoison# 中討論)

Ratpoison是一個用C語言編寫的平鋪式窗口管理器,它允許用戶不用滑鼠就能管理應用程式。它的界面收到GNU Screen的啟發。

安裝[編輯 | 編輯原始碼]

Ratpoison可以通過ratpoison 或者是ratpoison-gitAUR[損壞的連結:package not found] (開發版本)安裝。

配置[編輯 | 編輯原始碼]

為了讓Ratpoison成為你的窗口管理器,你必須新建/編輯文件~/.xinitrc.

.xinitrc的一個例子:

# The black/white grid as background doesn't suit my taste.
xsetroot -solid black &
# Ratpoison is compatible with xcompmgr! now you can have real transparency
xcompmgr -c -f -D 5 &
#fire up ratpoison!
exec /usr/bin/ratpoison

使用Ratpoison[編輯 | 編輯原始碼]

在X11啟動後你會看到黑色的屏幕背景還有右上角它彈出的一個文本框"Welcome to Ratpoison"。現在按下Ctrl+t,再輸入?來獲取快捷鍵列表。如果你習慣使用GNU screen,你將馬上感到它非常熟悉。 你可以自定義快捷鍵,你甚至可以覆蓋~/.ratpoisonrc中已存在的快捷鍵

例如:

# Overriding CTRL+t 'c' to start aterm instead of xterm
bind c exec aterm

bind f exec firefox

如果使用上述配置,當你按下Ctrl+t 然後f後, ratpoison將啟動firefox.

這是另一個我正在用的.ratpoisonrc配置:

exec xsetroot -cursor_name left_ptr
startup_message off

escape C-z

# Make a screenshot
alias sshot exec import -window root ~/screenshot-$(date +%F).jpg
definekey top M-C-Print sshot

#virtual desks
gnewbg one
gnewbg two

definekey top M-l exec ratpoison -c "select -" -c "gprev" -c "next"
definekey top M-h exec ratpoison -c "select -" -c "gnext" -c "next"

#switch between windows
definekey top M-j next
definekey top M-k prev

#apps
unbind c
bind c exec urxvt -tr
#bind c exec aterm

bind g exec gftp
bind f exec firefox

小貼士[編輯 | 編輯原始碼]

Java Swing應用程式[編輯 | 編輯原始碼]

Java Swing GUI應用程式不認為ratpoison是平鋪式窗口管理器, 且不正確地像ratpoison配置的那樣全屏顯示。不過有一種方法可以讓它認為自己在平鋪式管理器中並且正確的全屏。

首先安裝wmname package, 然後將這一行加入你的.ratpoisonrc中:

~/.ratpoisonrc
exec wmname LG3D

啊哈!Java Swing應用現在可以正確全屏了。

多個虛擬桌面[編輯 | 編輯原始碼]

默認情況下,ratpoison只有一個虛擬桌面,但是用一個叫做rpws(默認安裝)的腳本,你可以有多個虛擬桌面。

只要更改你的.ratpoisonrc,然後加入:

~/.ratpoisonrc
exec /usr/bin/rpws init 6 -k

這樣就會創建6個虛擬桌面。默認地,你可以進入通過按下Alt+F1 來進入1號虛擬桌面, Alt+F2 來進入2號虛擬桌面,以此類推。

你也可以這樣添加快捷鍵:

bind C-1 exec rpws 1
bind C-2 exec rpws 2
...

這樣允許你通過Ctrl+t Ctrl+1 進入它們(假定Ctrl+t 是你的escape鍵)

Urxvt和xterm[編輯 | 編輯原始碼]

Urxvt和xter,因為它們被默認安裝,發送重調大小的信號給窗口管理器。這個在大多數窗口管理器中起作用,但是在ratpoison中無效。結果就是URxvt/xterm通過更改字號調整自己的大小,而不是將自己調整成全屏,有無法填充空格的機率很高。有兩種方法改變這個現狀。請看下文。

安裝打過補丁的URxvt[編輯 | 編輯原始碼]

如果你使用URxvt,軟體包rxvt-unicode-fontspacing-noinc-vteclear-secondarywheelAUR除其他改動外,還不發送重調大小的信號給窗口管理器。如果你安裝這個版本的URxvt而不是默認版本,URxvt就會在ratpoison中正常調整大小。

配置邊緣[編輯 | 編輯原始碼]

我們可以使用xterm/URxvt默認的邊框設置工具將ratpoison的邊框設置為0。

~/.Xresources
urxvt*internalBorder: 8 #change urxvt to xterm if necessary. Using the font terminus in urxvt at 14px size, 8 is the correct number here.
~/.ratpoisonrc
set border 0

自啟動[編輯 | 編輯原始碼]

當ratpoison啟動時自啟動應用的例子。文件 ~/.ratpoisonrc中的內容會在ratpoison啟動時執行。

Launch urxvt with a tmux session
exec urxvt -e bash -c "tmux -q has-session && exec tmux attach-session -d || exec tmux new-session -n$USER -s$USER@$HOSTNAME"
Launch optimized chromium
exec bash -c 'pidof chromium &>/dev/null || exec /usr/bin/chromium --disk-cache-dir=~/tmp/cache'

壁紙和透明度[編輯 | 編輯原始碼]

通過xcompmgr還有nitrogen設置透明的例子. 首先啟動nitrogen然後設置你希望設置成壁紙的壁紙。然後把這個加入到你的.ratpoisonrc中去

Wallpaper and transparency
exec xcompmgr -c -f -D 5 &
exec nitrogen --restore

有用的快捷鍵[編輯 | 編輯原始碼]

Ctrl+t ! <程序名稱> 啟動某個程序
Ctrl+t ? 顯示快捷鍵設置
Ctrl+t c 啟動一個x terminal
Ctrl+t n 切換到下一個窗口
Ctrl+t p 切換到之前的窗口
Ctrl+t 1-9 切換到1-9號窗口
Ctrl+t k 關閉當前窗口
Ctrl+t Shift+k 殺死當前窗口
Ctrl+t s,Shift+s 將當前布局改為豎直布局或水平布局
Ctrl+t Tab, , , , 切換到下一個,左邊的,頂部的,右邊的,頂部的框架.
Ctrl+t Shift+q 將當前框架指定為唯一
Ctrl+t : 執行一個ratpoison命令

焦點跟隨滑鼠[編輯 | 編輯原始碼]

Arch linux的ratpoison包同時在/usr/share/ratpoison中安裝了編譯腳本,sloppy.c。它能被用來在ratpoison中啟動焦點跟隨滑鼠。為了啟動它,你可以:

# cd /usr/share/ratpoison/
# gcc -o sloppy sloppy.c -lX11
# ./sloppy

想要自啟動,你可以將下列行加入~/.ratpoisonrc

exec /usr/share/ratpoison/sloppy

Ratpoison和顯示管理器[編輯 | 編輯原始碼]

許多display managers (例如 LightDM) 在 /usr/share/xsessions/中確認可用的會話,並且大多數窗口管理器和桌面環境會在那建立一個.desktop文件。然而ratpoison卻會在/etc/X11/sessions/裡創建。 為了讓顯示管理器識別ratpoison,你需要將/etc/X11/sessions/ratpoison.desktop 拷貝至/usr/share/xsessions/ratpoison.desktop. 如果 /usr/share/xsessions不存在,你需要在root下建立

更多連結[編輯 | 編輯原始碼]