「Feh」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
(他言語へのリンクを追加)
 
(4人の利用者による、間の11版が非表示)
1行目: 1行目:
  +
{{Lowercase title}}
 
[[Category:グラフィックとデスクトップパブリッシング]]
 
[[Category:グラフィックとデスクトップパブリッシング]]
 
[[de:Feh]]
 
[[de:Feh]]
 
[[en:Feh]]
 
[[en:Feh]]
 
[[es:Feh]]
 
[[es:Feh]]
[[it:Feh]]
+
[[fr:Feh]]
[[lt:Feh]]
+
[[pl:Feh]]
 
[[ru:Feh]]
 
[[ru:Feh]]
 
[[zh-hans:Feh]]
 
[[zh-hans:Feh]]
11行目: 12行目:
 
{{Related|sxiv}}
 
{{Related|sxiv}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
[[Wikipedia:Feh_(image_viewer)|Wikipedia]] から:
[http://feh.finalrewind.org/ feh] は軽量かつ強力な画像ビューアであり、壁紙を管理する機能がないスタンドアロンのウィンドウマネージャの壁紙管理にも使えます。
 
  +
  +
feh は、主にコマンドラインインターフェイスのユーザーを対象とした、軽量なイメージビューワーです。多くのグラフィカルな画像ビューアとは異なり、feh はグラフィカルな制御要素を持たない (オプションのファイル名表示を除く) ため、X ウィンドウシステムが動作するシステムで背景画像を表示するのにも使用できるようになりました。
  +
  +
== インストール ==
   
==インストール==
 
 
{{pkg|feh}} パッケージを[[インストール]]してください。
 
{{pkg|feh}} パッケージを[[インストール]]してください。
   
==使用法==
+
== 使い方 ==
  +
 
feh は細かく設定することができます。オプションの完全なリストを見るには、{{Ic|feh --help}} を実行するか {{man|1|feh}} [[man ページ]]を参照してください。
 
feh は細かく設定することができます。オプションの完全なリストを見るには、{{Ic|feh --help}} を実行するか {{man|1|feh}} [[man ページ]]を参照してください。
   
===画像ビューア===
+
=== 画像ビューア ===
  +
 
特定のディレクトリの画像をすばやく見るには、以下の引数をつけて feh を起動します:
 
特定のディレクトリの画像をすばやく見るには、以下の引数をつけて feh を起動します:
   
28行目: 34行目:
 
* {{Ic|-S filename}} フラグは画像をファイル名でソートします
 
* {{Ic|-S filename}} フラグは画像をファイル名でソートします
   
も様々なオプションが使えます。
+
これはほんの一例です。柔軟性を高めたい場合は、さら多くのオプションを利用できます。
   
  +
{{Tip|{{ic|--start-at}} オプションは、選択した画像を feh に表示し、ディレクトリ内の他のすべての画像もデフォルトの順序で参照できるようにします。つまり、{{ic|feh *}} を実行して循環して選んだ画像まで。たとえば、{{ic|feh --start-at ./foo.jpg .}} は、{{ic|''foo''.jpg}} で始まる、現在のディレクトリ内のすべての画像を表示します。}}
====ファイルブラウザの画像ランチャー====
 
以下のスクリプトはファイルブラウザに使えます。feh で選択した画像が表示されますが、ディレクトリの他の画像もブラウズすることができます。"feh *" を実行して選択した画像を順に切り替えるのと同じです。
 
   
  +
=== 壁紙を設定する ===
このスクリプトを使う場合、最初の引数はファイル名です。
 
{{hc|feh_browser.sh|<nowiki>
 
#!/bin/bash
 
 
shopt -s nullglob
 
 
if [[ ! -f $1 ]]; then
 
echo "$0: first argument is not a file" >&2
 
exit 1
 
fi
 
 
file=$(basename -- "$1")
 
dir=$(dirname -- "$1")
 
arr=()
 
shift
 
 
cd -- "$dir"
 
 
for i in *; do
 
[[ -f $i ]] || continue
 
arr+=("$i")
 
[[ $i == $file ]] && c=$((${#arr[@]} - 1))
 
done
 
 
exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}"
 
</nowiki>}}
 
 
選択した画像のパスを付けてスクリプトを呼び出して下さい。他にも feh に引数を追加することができます。以下はファイルブラウザで使うことができるランチャーの例です:
 
 
{{bc|$ /path/to/script/feh_browser.sh %f -F -Z}}
 
 
{{Ic|-F}} と {{Ic|-Z}} は feh の引数です。{{Ic|-F}} は画像をフルスクリーンモードで開いて、{{Ic|-Z}} は自動的に画像を拡大します。{{Ic|-q}} (quiet) フラグは feh がカレントフォルダから画像以外のファイルをロードしようとしたときにターミナルにエラーメッセージを表示しないようにします。
 
 
シンプルに記述すると:
 
{{hc|feh_browser.sh|<nowiki>
 
#! /bin/sh
 
feh -. "$(dirname "$1")" --start-at "$1"
 
</nowiki>}}
 
上のスクリプトはオプションを受け付けません。
 
 
===デスクトップの壁紙マネージャ===
 
   
 
feh は [[Openbox]], [[Fluxbox]], [[xmonad]] などのデスクトップ機能がないウィンドウマネージャの壁紙を管理するのに使えます。
 
feh は [[Openbox]], [[Fluxbox]], [[xmonad]] などのデスクトップ機能がないウィンドウマネージャの壁紙を管理するのに使えます。
 
[[GNOME]] を使用している場合、GNOME Files がデスクトップを管理しないようにする必要があります。それには次のコマンドを実行するのが一番簡単です:
 
 
{{bc|$ gconftool-2 --set /apps/nautilus/preferences/show_desktop --type boolean false}}
 
   
 
以下のコマンドは最初の壁紙を設定する例です:
 
以下のコマンドは最初の壁紙を設定する例です:
94行目: 55行目:
   
 
次のセッション時に壁紙をまた設定するには、スタートアップファイルに以下を追加してください (例: {{ic|~/.xinitrc}}, {{ic|~/.config/openbox/autostart}} など):
 
次のセッション時に壁紙をまた設定するには、スタートアップファイルに以下を追加してください (例: {{ic|~/.xinitrc}}, {{ic|~/.config/openbox/autostart}} など):
  +
{{bc|$ sh ~/.fehbg &}}
 
  +
~/.fehbg &
   
 
壁紙画像を変更するには、上記の {{Ic|feh --bg-scale /path/to/image.file}} コマンドを実行した後に作成される {{ic|~/.fehbg}} ファイルを編集してください。
 
壁紙画像を変更するには、上記の {{Ic|feh --bg-scale /path/to/image.file}} コマンドを実行した後に作成される {{ic|~/.fehbg}} ファイルを編集してください。
   
  +
{{ic|--no-fehbg}} フラグを渡すことで、{{ic|~/.fehbg}} の作成を明示的に無効にすることもできます。
== ヒントとテクニック ==
 
  +
===SVG 画像を開く===
 
  +
異なるモニターに異なる壁紙をセットアップするには、使用可能なモニターの数と同じ数のファイル パスを渡す必要があります。たとえば、デュアルモニター設定の場合は次のようになります。
{{bc|$ feh --magick-timeout 1 file.svg}}
 
  +
  +
$ feh --bg-center ''path/to/file/for/first/monitor path/to/file/for/second/monitor''
  +
  +
=== SVG 画像を開く ===
  +
{{bc|$ feh --conversion-timeout 1 file.svg}}
   
 
{{Pkg|imagemagick}} が必要です。
 
{{Pkg|imagemagick}} が必要です。
   
===ランダム壁紙画像===
+
=== ランダム壁紙画像 ===
  +
 
{{ic|--bg-foo}} オプションのどれかと {{ic|--randomize}} オプションを使うことでランダムに壁紙を feh で設定することができます、例えば:
 
{{ic|--bg-foo}} オプションのどれかと {{ic|--randomize}} オプションを使うことでランダムに壁紙を feh で設定することができます、例えば:
   
122行目: 90行目:
 
</nowiki>}}
 
</nowiki>}}
   
定期的に壁紙を変更するには、スクリプト cron ジョブ、または systemd のサビスなどを使って一定間隔でコマンドを実行してください
+
{{Tip|壁紙を定期的に変更するには、スクリプト ([https://mywiki.wooledge.org/BashGuide/TestsAndConditionals#Conditional_Loops_.28while.2C_until_and_for.29 while loop] を参照)、[[cron]] ジョブ、または [[systemd/タイマ]] を使用し必要な間隔でコマンドを実行します}}
   
  +
== トラブルシューティング ==
==== スクリプトを使用 ====
 
壁紙をランダムに表示するには、以下のコードでスクリプトを作成します (例: {{ic|wallpaper.sh}})。スクリプトには実行可能属性を付与してください:
 
 
{{bc|$ chmod +x wallpaper.sh}}
 
 
{{ic|~/.xinitrc}} からスクリプトを呼び出して下さい。もしくは別のファイルを作らないで {{ic|~/.xinitrc}} に直接ソースを記述することもできます。
 
 
{{ic|~/.wallpaper}} ディレクトリや {{Ic|15m}} という時間はを必要に応じて変更してください (オプションは {{Ic|man sleep}} を参照)。
 
{{hc|wallpaper.sh|<nowiki>
 
#!/bin/sh
 
 
while true; do
 
find ~/.wallpaper -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
 
shuf -n1 -z | xargs -0 feh --bg-max
 
sleep 15m
 
done
 
</nowiki>}}
 
 
{{ic|find ~/.wallpaper}} を {{ic|find ~/.wallpaper/}} に変更する必要があるかもしれません。
 
 
以下のバージョンは大して変わっていませんが、ディレクトリを再帰的に検索しません:
 
{{hc|wallpaper.sh|<nowiki>
 
#!/bin/bash
 
 
shopt -s nullglob
 
cd ~/.wallpaper
 
 
while true; do
 
files=()
 
for i in *.jpg *.png; do
 
[[ -f $i ]] && files+=("$i")
 
done
 
range=${#files[@]}
 
 
((range)) && feh --bg-scale "${files[RANDOM % range]}"
 
 
sleep 15m
 
done
 
</nowiki>}}
 
 
===== xinerama 以外のデュアルスクリーン =====
 
このスクリプトは nvidia twinview (など) のデュアルスクリーン環境で壁紙を追加できるように ''feh'' の実行を変えています。
 
{{hc|wallpaper.sh|<nowiki>
 
#!/bin/sh
 
exec feh --bg-max --no-xinerama "$@"
 
</nowiki>}}
 
 
==== cron ジョブを使用 ====
 
[[cron]] ジョブを使うことで同じようなことができ、継続的にスクリプトを sleep させる必要はなくなります。
 
 
{{ic|$ crontab -e}} を実行して以下を追加:
 
 
{{bc|<nowiki>
 
* * * * * DISPLAY=:0.0 feh --bg-max "$(find ~/.wallpaper/|shuf -n1)"
 
</nowiki>}}
 
 
==== systemd ユーザーセッションを使用 ====
 
{{Note|以下は systemd ユーザーセッションを使っている場合にのみ使うことができます。詳しくは [[Systemd/ユーザー]] を見て下さい。}}
 
 
ユニットサービスファイルを作成:
 
{{hc|$HOME/.config/systemd/user/feh-wallpaper.service|<nowiki>
 
[Unit]
 
Description=Random wallpaper with feh
 
 
[Service]
 
Type=oneshot
 
EnvironmentFile=%h/.wallpaper
 
ExecStart=/bin/bash -c '/usr/bin/feh --bg-max "$(find ${WALLPATH}|shuf|head -n 1)"'
 
 
[Install]
 
WantedBy=default.target
 
</nowiki>}}
 
そしてタイマーファイルを作成。時間は必要に応じて変更して下さい。この例では {{ic|15 seconds}} になっています。
 
{{hc|$HOME/.config/systemd/user/feh-wallpaper.timer|<nowiki>
 
[Unit]
 
Description=Random wallpaper with feh
 
 
[Timer]
 
OnUnitActiveSec=</nowiki>''15s''<nowiki>
 
Unit=feh-wallpaper.service
 
 
[Install]
 
WantedBy=default.target
 
</nowiki>}}
 
この例ではホームディレクトリの隠しファイルで設定を行い、画像が保存されているディレクトリのパスを指定します。
 
{{hc|$HOME/.wallpaper|<nowiki>
 
WALLPATH=</nowiki>''/home/user/.wallpaper/''
 
}}
 
   
  +
=== Cron ジョブで使用する ===
{{ic|feh-wallpaper.timer}} を有効化して下さい。詳しくは [[systemd/タイマー#管理]]を参照。
 
   
  +
壁紙のランダム化を行う cron ジョブで feh を使用するには、DISPLAY 環境変数を指定する必要があります:
{{Note|systemd ユーザーセッションでは、{{ic|systemctl}} で {{ic|--user}} フラグを使って下さい。}}
 
   
  +
DISPLAY=:0 feh --bg-max --randomize ~/.wallpaper/*
== 参照 ==
 
* [https://bbs.archlinux.org/viewtopic.php?pid=884635#p884635 Forum post with original script for feh_browser]
 

2023年4月11日 (火) 21:20時点における最新版

関連記事

Wikipedia から:

feh は、主にコマンドラインインターフェイスのユーザーを対象とした、軽量なイメージビューワーです。多くのグラフィカルな画像ビューアとは異なり、feh はグラフィカルな制御要素を持たない (オプションのファイル名表示を除く) ため、X ウィンドウシステムが動作するシステムで背景画像を表示するのにも使用できるようになりました。

インストール

feh パッケージをインストールしてください。

使い方

feh は細かく設定することができます。オプションの完全なリストを見るには、feh --help を実行するか feh(1) man ページを参照してください。

画像ビューア

特定のディレクトリの画像をすばやく見るには、以下の引数をつけて feh を起動します:

$ feh -g 640x480 -d -S filename /path/to/directory
  • -g フラグは画像を強制的に 640x480 以下で表示します
  • -d フラグはファイル名を表示します
  • -S filename フラグは画像をファイル名でソートします

これはほんの一例です。柔軟性を高めたい場合は、さらに多くのオプションを利用できます。

ヒント: --start-at オプションは、選択した画像を feh に表示し、ディレクトリ内の他のすべての画像もデフォルトの順序で参照できるようにします。つまり、feh * を実行して循環して選んだ画像まで。たとえば、feh --start-at ./foo.jpg . は、foo.jpg で始まる、現在のディレクトリ内のすべての画像を表示します。

壁紙を設定する

feh は Openbox, Fluxbox, xmonad などのデスクトップ機能がないウィンドウマネージャの壁紙を管理するのに使えます。

以下のコマンドは最初の壁紙を設定する例です:

$ feh --bg-scale /path/to/image.file

他にも以下のようなスケーリングオプションがあります:

--bg-tile FILE
--bg-center FILE
--bg-max FILE
--bg-fill FILE

次のセッション時に壁紙をまた設定するには、スタートアップファイルに以下を追加してください (例: ~/.xinitrc, ~/.config/openbox/autostart など):

~/.fehbg &

壁紙画像を変更するには、上記の feh --bg-scale /path/to/image.file コマンドを実行した後に作成される ~/.fehbg ファイルを編集してください。

--no-fehbg フラグを渡すことで、~/.fehbg の作成を明示的に無効にすることもできます。

異なるモニターに異なる壁紙をセットアップするには、使用可能なモニターの数と同じ数のファイル パスを渡す必要があります。たとえば、デュアルモニター設定の場合は次のようになります。

$ feh --bg-center path/to/file/for/first/monitor path/to/file/for/second/monitor

SVG 画像を開く

$ feh --conversion-timeout 1 file.svg

imagemagick が必要です。

ランダム壁紙画像

--bg-foo オプションのどれかと --randomize オプションを使うことでランダムに壁紙を feh で設定することができます、例えば:

$ feh --randomize --bg-fill ~/.wallpaper/*

上記のコマンドは ~/.wallpaper/ ディレクトリのファイルからランダムで画像を壁紙に設定します。もしくは、壁紙をサブフォルダに分割している場合は、再帰的に実行することもできます:

$ feh --recursive --randomize --bg-fill ~/.wallpaper

セッションごとに ~/.wallpaper から異なる壁紙をランダムに設定するには、以下を .xinitrc に追加します:

$ feh --bg-max --randomize ~/.wallpaper/* &

以下のように .fehbg を編集することでもランダムに壁紙を設定できます:

$HOME/.fehbg
feh --bg-max --randomize --no-fehbg ~/.wallpaper/* 
ヒント: 壁紙を定期的に変更するには、スクリプト (while loop を参照)、cron ジョブ、または systemd/タイマー を使用し、必要な間隔でコマンドを実行します。

トラブルシューティング

Cron ジョブで使用する

壁紙のランダム化を行う cron ジョブで feh を使用するには、DISPLAY 環境変数を指定する必要があります:

DISPLAY=:0 feh --bg-max --randomize ~/.wallpaper/*