「Feh」の版間の差分
細 (→SVG 画像を開く: option名変更) |
(他言語へのリンクを追加) |
||
(3人の利用者による、間の10版が非表示) | |||
1行目: | 1行目: | ||
+ | {{Lowercase title}} |
||
[[Category:グラフィックとデスクトップパブリッシング]] |
[[Category:グラフィックとデスクトップパブリッシング]] |
||
[[de:Feh]] |
[[de:Feh]] |
||
[[en:Feh]] |
[[en:Feh]] |
||
[[es:Feh]] |
[[es:Feh]] |
||
− | [[ |
+ | [[fr: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 画像を開く=== |
||
+ | 異なるモニターに異なる壁紙をセットアップするには、使用可能なモニターの数と同じ数のファイル パスを渡す必要があります。たとえば、デュアルモニター設定の場合は次のようになります。 |
||
+ | |||
+ | $ feh --bg-center ''path/to/file/for/first/monitor path/to/file/for/second/monitor'' |
||
+ | |||
+ | === SVG 画像を開く === |
||
{{bc|$ feh --conversion-timeout 1 file.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>}} |
||
− | 定期的に |
+ | {{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 --help
を実行するか feh(1) man ページを参照してください。
画像ビューア
特定のディレクトリの画像をすばやく見るには、以下の引数をつけて feh を起動します:
$ feh -g 640x480 -d -S filename /path/to/directory
-g
フラグは画像を強制的に 640x480 以下で表示します-d
フラグはファイル名を表示します-S filename
フラグは画像をファイル名でソートします
これはほんの一例です。柔軟性を高めたい場合は、さらに多くのオプションを利用できます。
壁紙を設定する
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/*
トラブルシューティング
Cron ジョブで使用する
壁紙のランダム化を行う cron ジョブで feh を使用するには、DISPLAY 環境変数を指定する必要があります:
DISPLAY=:0 feh --bg-max --randomize ~/.wallpaper/*