「Sawfish」の版間の差分
(en:Sawfishへの転送ページ) |
|||
1行目: | 1行目: | ||
+ | [[Category:動的ウィンドウマネージャ]] |
||
− | #redirect[[en:Sawfish]] |
||
+ | [[en:Sawfish]] |
||
+ | Sawfish は高度なカスタマイズができる[[ウィンドウマネージャ]]です。以前は GNOME デスクトップの標準ウィンドウマネージャでしたが、メンテナンスが変わって別のウィンドウマネージャになりました。この記事ではスタンドアロンのウィンドウマネージャとして (GNOME を用いずに) インストール・設定する方法を説明します。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | Sawfish は {{AUR|sawfish}} パッケージで[[インストール]]できます。 |
||
+ | |||
+ | == Sawfish の起動 == |
||
+ | |||
+ | ''startx'' を使う場合、{{ic|~/.xinitrc}} の最後に以下を追加してください: |
||
+ | exec sawfish |
||
+ | 他の方法は[[ディスプレイマネージャ]]を見て下さい。 |
||
+ | |||
+ | == カスタマイズ == |
||
+ | |||
+ | Sawfish では初めからルートウィンドウで Mouse-2 (中ボタン) をクリックすることでメニューを表示できるようになっています。メニューから、カスタマイズアプリを起動できます。 |
||
+ | |||
+ | 設定を変更すると、{{ic|~/.sawfish/custom}} に設定が保存されます。 |
||
+ | |||
+ | === テーマ === |
||
+ | |||
+ | カスタマイズアプリからウィンドウテーマを選択できます。些末なバグが存在します: テーマにパラメータが存在する場合、カスタマイズアプリを再起動しないとパラメータの設定ウィンドウが表示されません。 |
||
+ | |||
+ | ==== 新しいテーマを追加 ==== |
||
+ | |||
+ | {{ic|~/.sawfish/themes/}} ディレクトリを作成してそこにテーマファイルを保存してください。テーマファイルを解凍する必要はありません。[http://sawfish.wikia.com/wiki/Themes Sawfish のウェブサイト] には 500 以上のテーマが存在します。 |
||
+ | |||
+ | === メニュー === |
||
+ | |||
+ | Arch には Sawfish 用の自動メニュー生成プログラムがありませんが、XFCE4 のメニュープログラムを使ってメニューを生成できます。必要な手順は以下の通りです: |
||
+ | |||
+ | {{ic|~/.sawfish/lisp/}} ディレクトリを作成してください。ここに Sawfish のカスタムスクリプトを保存します。メニューもそのスクリプトの一つです。{{Pkg|libxslt}} をインストールして、[[#サンプルメニュー|xslt スタイルシートのサンプル]]をコピーして、{{ic|xfce4-menu-to-sawfish.xslt}} という名前のファイルとして貼り付けて下さい。次に XFCE4 のメニューが必要です。既にメニューが存在する場合はそれを利用できますが、メニューがないときは menumaker か xdg_menu のどちらかで生成できます。 |
||
+ | * {{Pkg|menumaker}} を使用する場合: |
||
+ | $ mmaker -c xfce4 | xsltproc xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl |
||
+ | * {{Pkg|archlinux-xdg-menu}} を使用する場合: |
||
+ | $ xdg_menu --format xfce4 --root-menu /etc/xdg/menus/arch-applications.menu | xsltproc xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl |
||
+ | |||
+ | アプリケーションのリストが含まれた ''arch-menu'' 変数を定義する {{ic|~/.sawfish/lisp/arch-menu.jl}} スクリプトが作成されます。ルートメニューからこのスクリプトにリンクする必要があります。{{ic|~/.sawfishrc}} をお好きなエディタで開いて、以下を入力してください: |
||
+ | |||
+ | ;;; sawfish configuration file |
||
+ | ; 1. Load defaults |
||
+ | (require 'sawfish-defaults) |
||
+ | ; 2. Load autogenerated arch-menu |
||
+ | (require 'arch-menu) |
||
+ | ; 3. Replace Sawfish's apps-menu with ours |
||
+ | (setq apps-menu arch-menu) |
||
+ | |||
+ | Sawfish を再起動して変更を適用してください。 |
||
+ | |||
+ | ==== サンプルメニュー ==== |
||
+ | |||
+ | {{hc|xfce4-menu-to-sawfish.xslt|<nowiki> |
||
+ | <?xml version="1.0" encoding="UTF-8" ?> |
||
+ | <xsl:stylesheet version="1.0" |
||
+ | xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
||
+ | <xsl:output method="text"/> |
||
+ | <xsl:strip-space elements="*"/> |
||
+ | <xsl:param name="terminal">urxvt</xsl:param> |
||
+ | <xsl:template name="indent"> |
||
+ | <xsl:text> |
||
+ | </xsl:text> |
||
+ | <xsl:for-each select="ancestor-or-self::*"> |
||
+ | <xsl:text> </xsl:text> |
||
+ | </xsl:for-each> |
||
+ | </xsl:template> |
||
+ | <xsl:template match="/"> |
||
+ | <xsl:text>;;; Arch applications menu for Sawfish, generated from xfce4 menu |
||
+ | (defvar arch-menu nil) |
||
+ | (setq arch-menu '(</xsl:text> |
||
+ | <xsl:apply-templates/> |
||
+ | <xsl:text>)) |
||
+ | </xsl:text> |
||
+ | </xsl:template> |
||
+ | <xsl:template match="menu[.//app]"> |
||
+ | <xsl:call-template name="indent"/> |
||
+ | <xsl:text>("</xsl:text> |
||
+ | <xsl:value-of select="@name"/> |
||
+ | <xsl:text>"</xsl:text> |
||
+ | <xsl:apply-templates/> |
||
+ | <xsl:text>)</xsl:text> |
||
+ | </xsl:template> |
||
+ | <xsl:template match="app"> |
||
+ | <xsl:call-template name="indent"/> |
||
+ | <xsl:text>("</xsl:text> |
||
+ | <xsl:value-of select="@name"/> |
||
+ | <xsl:text>" (system "</xsl:text> |
||
+ | <xsl:if test="@term='true'"> |
||
+ | <xsl:copy-of select="$terminal"/> |
||
+ | <xsl:text> -e </xsl:text> |
||
+ | </xsl:if> |
||
+ | <xsl:value-of select="@cmd"/> |
||
+ | <xsl:text> &"))</xsl:text> |
||
+ | </xsl:template> |
||
+ | </xsl:stylesheet> |
||
+ | </nowiki>}} |
||
+ | |||
+ | == 参考資料 == |
||
+ | |||
+ | * [http://sawfish.wikia.com/wiki/Main_Page Sawfish wiki] - 公式ウェブサイト |
2015年12月9日 (水) 11:49時点における最新版
Sawfish は高度なカスタマイズができるウィンドウマネージャです。以前は GNOME デスクトップの標準ウィンドウマネージャでしたが、メンテナンスが変わって別のウィンドウマネージャになりました。この記事ではスタンドアロンのウィンドウマネージャとして (GNOME を用いずに) インストール・設定する方法を説明します。
インストール
Sawfish は sawfishAUR パッケージでインストールできます。
Sawfish の起動
startx を使う場合、~/.xinitrc
の最後に以下を追加してください:
exec sawfish
他の方法はディスプレイマネージャを見て下さい。
カスタマイズ
Sawfish では初めからルートウィンドウで Mouse-2 (中ボタン) をクリックすることでメニューを表示できるようになっています。メニューから、カスタマイズアプリを起動できます。
設定を変更すると、~/.sawfish/custom
に設定が保存されます。
テーマ
カスタマイズアプリからウィンドウテーマを選択できます。些末なバグが存在します: テーマにパラメータが存在する場合、カスタマイズアプリを再起動しないとパラメータの設定ウィンドウが表示されません。
新しいテーマを追加
~/.sawfish/themes/
ディレクトリを作成してそこにテーマファイルを保存してください。テーマファイルを解凍する必要はありません。Sawfish のウェブサイト には 500 以上のテーマが存在します。
メニュー
Arch には Sawfish 用の自動メニュー生成プログラムがありませんが、XFCE4 のメニュープログラムを使ってメニューを生成できます。必要な手順は以下の通りです:
~/.sawfish/lisp/
ディレクトリを作成してください。ここに Sawfish のカスタムスクリプトを保存します。メニューもそのスクリプトの一つです。libxslt をインストールして、xslt スタイルシートのサンプルをコピーして、xfce4-menu-to-sawfish.xslt
という名前のファイルとして貼り付けて下さい。次に XFCE4 のメニューが必要です。既にメニューが存在する場合はそれを利用できますが、メニューがないときは menumaker か xdg_menu のどちらかで生成できます。
- menumaker を使用する場合:
$ mmaker -c xfce4 | xsltproc xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl
- archlinux-xdg-menu を使用する場合:
$ xdg_menu --format xfce4 --root-menu /etc/xdg/menus/arch-applications.menu | xsltproc xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl
アプリケーションのリストが含まれた arch-menu 変数を定義する ~/.sawfish/lisp/arch-menu.jl
スクリプトが作成されます。ルートメニューからこのスクリプトにリンクする必要があります。~/.sawfishrc
をお好きなエディタで開いて、以下を入力してください:
;;; sawfish configuration file ; 1. Load defaults (require 'sawfish-defaults) ; 2. Load autogenerated arch-menu (require 'arch-menu) ; 3. Replace Sawfish's apps-menu with ours (setq apps-menu arch-menu)
Sawfish を再起動して変更を適用してください。
サンプルメニュー
xfce4-menu-to-sawfish.xslt
<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:strip-space elements="*"/> <xsl:param name="terminal">urxvt</xsl:param> <xsl:template name="indent"> <xsl:text> </xsl:text> <xsl:for-each select="ancestor-or-self::*"> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template> <xsl:template match="/"> <xsl:text>;;; Arch applications menu for Sawfish, generated from xfce4 menu (defvar arch-menu nil) (setq arch-menu '(</xsl:text> <xsl:apply-templates/> <xsl:text>)) </xsl:text> </xsl:template> <xsl:template match="menu[.//app]"> <xsl:call-template name="indent"/> <xsl:text>("</xsl:text> <xsl:value-of select="@name"/> <xsl:text>"</xsl:text> <xsl:apply-templates/> <xsl:text>)</xsl:text> </xsl:template> <xsl:template match="app"> <xsl:call-template name="indent"/> <xsl:text>("</xsl:text> <xsl:value-of select="@name"/> <xsl:text>" (system "</xsl:text> <xsl:if test="@term='true'"> <xsl:copy-of select="$terminal"/> <xsl:text> -e </xsl:text> </xsl:if> <xsl:value-of select="@cmd"/> <xsl:text> &"))</xsl:text> </xsl:template> </xsl:stylesheet>
参考資料
- Sawfish wiki - 公式ウェブサイト