「Sawfish」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(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> &amp;&quot;))</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 のどちらかで生成できます。

$ mmaker -c xfce4 | xsltproc xfce4-menu-to-sawfish.xslt - > ~/.sawfish/lisp/arch-menu.jl
$  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>

参考資料