「Dmenu」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「http://tools.suckless.org/」を「https://tools.suckless.org/」に置換)
(他言語へのリンクを追加)
 
(5人の利用者による、間の14版が非表示)
1行目: 1行目:
 
{{DISPLAYTITLE:dmenu}}
 
{{DISPLAYTITLE:dmenu}}
 
[[Category:アプリケーションランチャー]]
 
[[Category:アプリケーションランチャー]]
[[da:Dmenu]]
+
[[Category:Suckless]]
 
[[en:Dmenu]]
 
[[en:Dmenu]]
 
[[es:Dmenu]]
 
[[es:Dmenu]]
  +
[[pt:Dmenu]]
  +
[[ru:Dmenu]]
  +
[[uk:Dmenu]]
 
[[zh-hans:Dmenu]]
 
[[zh-hans:Dmenu]]
 
{{Related articles start}}
 
{{Related articles start}}
13行目: 16行目:
 
== インストール ==
 
== インストール ==
   
[[公式リポジトリ]]から {{Pkg|dmenu}} パッケージを[[インストール]]してください。git の開発ビルドを使いたい場合は、[[Arch User Repository]] から {{AUR|dmenu-git}} パッケージをインストールしてください
+
{{Pkg|dmenu}} パッケージを [[インストール]] してください。開発バージョンの場合は {{AUR|dmenu-git}} を [[インストール]] ます
   
dmenu にはデフォルトの機能を拡張した、様々な亜種も存在します。[[AUR]] から以下のパッケージインストールできます:
+
dmenu にはデフォルトの機能を拡張した、様々な亜種も存在します。[[AUR]] からパッケージインストールできます
  +
{{AUR|dmenu2}} 多数の便利なパッチが適用された dmenu のフォーク。明るさの調整や透過のカスタマイズ、下線などの機能が追加されています。
 
* {{AUR|dmenu2}}: 多数の便利なパッチが適用された dmenu のフォーク。明るさの調整や透過のカスタマイズ、下線などの機能が追加されています。
 
   
 
''dmenu'' は次のコマンドで実行できます:
 
''dmenu'' は次のコマンドで実行できます:
25行目: 27行目:
 
== 設定 ==
 
== 設定 ==
   
{{Ic|dmenu_run}} コマンドにはキーストロークのコンビネーションを割り振ると良いでしょう。ウィンドウマネージャやデスクトップ環境の設定を使ったり、{{Pkg|xbindkeys}} などのプログラムで設定できます。詳しくは[[ホットキー]]の記事を見て下さい。また、''dmenu'' を [[Prelink]] するのも有用です
+
{{Ic|dmenu_run}} コマンドにはキーストロークのコンビネーションを割り振ると良いでしょう。ウィンドウマネージャやデスクトップ環境の設定を使ったり、{{Pkg|xbindkeys}} などのプログラムで設定できます。詳しくは[[ホットキー]]の記事を見て下さい。
   
 
=== カスタムアイコンの表示 ===
 
=== カスタムアイコンの表示 ===
  +
 
''dmenu'' にカスタムアイテムをパイプで渡すことで表示できます。例えば:
 
''dmenu'' にカスタムアイテムをパイプで渡すことで表示できます。例えば:
   
33行目: 36行目:
   
 
=== 手動でアイテムを追加 ===
 
=== 手動でアイテムを追加 ===
  +
''dmenu'' は {{ic|$PATH}} で定義されたディレクトリにある実行可能ファイルを検索します。{{ic|$PATH}} を変更する方法については次の記事を参照: [[環境変数]]。
 
  +
''dmenu'' は {{ic|$PATH}} で定義されたディレクトリにある実行可能ファイルを検索します。{{ic|$PATH}} を変更する方法については次の記事を参照: [[環境変数]]
   
 
=== フォント ===
 
=== フォント ===
''dmenu'' は ({{Pkg|xorg-xfontsel}} に入っている) ''xfontsel'' ツールを使って [[XLFD|X 論理フォント記述子]]を利用してフォントを表示できます。次の例は {{Pkg|terminus-font}} を使って dmenu を実行します:
 
   
  +
''dmenu'' は、[[フォント#インストールした全てのフォントを一覧する|XFT]] を使用してフォントを表示できます。この例では、{{Pkg|ttf-droid}} を使用して dmenu を実行します:
$ dmenu_run -fn "-xos4-terminus-medium-r-*-*-14-*"
 
 
XFT サポートのパッチが適用された ''dmenu'' を使用する場合も構文は同じです:
 
   
 
$ dmenu_run -fn 'Droid Sans Mono-9'
 
$ dmenu_run -fn 'Droid Sans Mono-9'
   
 
=== シェルのエイリアスのサポート ===
 
=== シェルのエイリアスのサポート ===
  +
''dmenu'' は[[Bash#エイリアス|シェルのエイリアス]]に対応していません。''dmenu'' にエイリアスを認識させるには、[[AUR]] から {{AUR|dmenu-recent-aliases}}{{Broken package link|{{aur-mirror|dmenu-recent-aliases}}}} パッケージを[[インストール]]して {{ic|dmenu_run_aliases}} を実行してください。''dmenu_run_aliases'' によって認識させるにはエイリアスを {{ic|~/.bash_aliases}} か {{ic|~/.zsh_aliases}} のどちらかに記述する必要があります。
 
  +
''dmenu'' は[[Bash#エイリアス|シェルのエイリアス]]に対応していません。''dmenu'' にエイリアスを認識させるには、[[AUR]] から {{AUR|dmenu-recent-aliases-git}} パッケージを[[インストール]]して {{ic|dmenu-recent-aliases}} を実行してください。''dmenu_run_aliases'' によって認識させるにはエイリアスを {{ic|~/.bash_aliases}} に記述する必要があります。
  +
  +
=== 履歴のサポート ===
  +
  +
最近使用した順にコマンドを並べ替えるには、 [https://tools.suckless.org/dmenu/scripts/dmenu_run_with_command_history dmenu_run_history] を {{ic|$PATH}} にダウンロードし、{{ic|dmenu_run}} の代わりに {{ic|dmenu_run_history}} を使用します。
  +
  +
== ヒントとテクニック ==
  +
  +
=== dmenu を使用して入力を取得する ===
  +
  +
スクリプト内 (例:ショートカットから起動) では、ユーザー入力の取得が必要になる場合があります。これには、EOF を渡すことで dmenu を使用できます。選択フィールドは空になり、dmenu はユーザー入力を受け取ることができます。
  +
  +
{{ic|/dev/null}} を読み取ると EOF が返されるため、次のコマンドで簡単に実行できます。
  +
  +
$ dmenu < /dev/null
  +
  +
=== 現在のターミナルへ埋め込む ===
  +
  +
Dmenu は、{{ic|-w id}} オプションを使用して任意のウィンドウ内に埋め込むことができます。
  +
  +
現在アクティブなウィンドウ (たとえば、実行されているターミナルなど) 内に埋め込むには、{{Pkg|xdo}} を使用してその ID を取得します。
  +
  +
$ echo hello | dmenu -w $(xdo id)
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
65行目: 89行目:
 
$ rm ~/.cache/dmenu_run
 
$ rm ~/.cache/dmenu_run
 
{{ic|$XDG_CACHE_HOME}} が設定されている場合、キャッシュファイルは一つしか存在しません。詳しくは {{ic|/usr/bin/dmenu_run}} の中を見て下さい。
 
{{ic|$XDG_CACHE_HOME}} が設定されている場合、キャッシュファイルは一つしか存在しません。詳しくは {{ic|/usr/bin/dmenu_run}} の中を見て下さい。
  +
  +
=== 環境変数 ===
  +
  +
アプリケーションに必要な環境変数を {{ic|/etc/environment}} で定義して下さい。
   
 
== 参照 ==
 
== 参照 ==

2023年12月15日 (金) 07:25時点における最新版

関連記事

dmenu は X 向けの高速で軽量なダイナミックメニューです。標準入力から任意のテキストを読み込んで、1行ごとを1つのアイテムとしてメニューを作成します。ユーザーは矢印キーや名前の一部を入力してアイテムを選択することができ、標準出力に行が出力されます。dmenu_run は dmenu をアプリケーションランチャーとして使えるようにするラッパーです。

インストール

dmenu パッケージを インストール してください。開発バージョンの場合は dmenu-gitAURインストール します。

dmenu にはデフォルトの機能を拡張した、様々な亜種も存在します。AUR からパッケージをインストールできます dmenu2AUR 多数の便利なパッチが適用された dmenu のフォーク。明るさの調整や透過のカスタマイズ、下線などの機能が追加されています。

dmenu は次のコマンドで実行できます:

$ dmenu_run

設定

dmenu_run コマンドにはキーストロークのコンビネーションを割り振ると良いでしょう。ウィンドウマネージャやデスクトップ環境の設定を使ったり、xbindkeys などのプログラムで設定できます。詳しくはホットキーの記事を見て下さい。

カスタムアイコンの表示

dmenu にカスタムアイテムをパイプで渡すことで表示できます。例えば:

$ echo -e "first\nsecond\nthird" | dmenu

手動でアイテムを追加

dmenu$PATH で定義されたディレクトリにある実行可能ファイルを検索します。$PATH を変更する方法については次の記事を参照: 環境変数

フォント

dmenu は、XFT を使用してフォントを表示できます。この例では、ttf-droid を使用して dmenu を実行します:

$ dmenu_run -fn 'Droid Sans Mono-9'

シェルのエイリアスのサポート

dmenuシェルのエイリアスに対応していません。dmenu にエイリアスを認識させるには、AUR から dmenu-recent-aliases-gitAUR パッケージをインストールして dmenu-recent-aliases を実行してください。dmenu_run_aliases によって認識させるにはエイリアスを ~/.bash_aliases に記述する必要があります。

履歴のサポート

最近使用した順にコマンドを並べ替えるには、 dmenu_run_history$PATH にダウンロードし、dmenu_run の代わりに dmenu_run_history を使用します。

ヒントとテクニック

dmenu を使用して入力を取得する

スクリプト内 (例:ショートカットから起動) では、ユーザー入力の取得が必要になる場合があります。これには、EOF を渡すことで dmenu を使用できます。選択フィールドは空になり、dmenu はユーザー入力を受け取ることができます。

/dev/null を読み取ると EOF が返されるため、次のコマンドで簡単に実行できます。

$ dmenu < /dev/null

現在のターミナルへ埋め込む

Dmenu は、-w id オプションを使用して任意のウィンドウ内に埋め込むことができます。

現在アクティブなウィンドウ (たとえば、実行されているターミナルなど) 内に埋め込むには、xdo を使用してその ID を取得します。

$ echo hello | dmenu -w $(xdo id)

トラブルシューティング

No locale support

dmenu_run を実行すると以下のエラーメッセージが表示される場合:

$ dmenu_run
no locale support

LANG 環境変数が正しく設定されていることを確認してください。詳しくは次のページを参照: ロケール#トラブルシューティング

メニューエントリが表示されない

特定のメニューエントリが dmenu に表示されない場合、キャッシュが壊れている可能性があります。キャッシュを削除して dmenu を再起動してください:

$ rm ~/.dmenu_cache
$ rm ~/.cache/dmenu_run

$XDG_CACHE_HOME が設定されている場合、キャッシュファイルは一つしか存在しません。詳しくは /usr/bin/dmenu_run の中を見て下さい。

環境変数

アプリケーションに必要な環境変数を /etc/environment で定義して下さい。

参照