LoginSignup
0
0

More than 5 years have passed since last update.

nitrogenでデュアルディスプレイの壁紙をぶち抜きでランダム更新

Last updated at Posted at 2019-02-05

私の場合,壁紙ディレクトリの下にサブディレクトリを掘ってジャンル毎に壁紙を入れているため,lsコマンドではうまくファイルパスを抜けない.
しかしそこは,findをうまく使えば絶対パスで抜ける.

set-background.sh
#!/bin/sh

PICDIR=~/Pictures/wallpapers
TARGETFILE=$HOME/.config/nitrogen/bg.jpg

interval=900
while true
do
    if [ ! -e ~/.config/nitrogen/bg-saved.cfg ]; then
        echo First of all you have to setup ~/.config/nitrogen/bg-saved.cfg
        echo Next, change 'file' value into \$TARGETFILE.
    else
        JPGLIST=$(find ${PICDIR} -type f)
        NUM_JPG=$(echo "$JPGLIST" | wc -l)
        RAND=$(expr $(date +%s) % ${NUM_JPG} + 1)
        SRC=$(echo "$JPGLIST" | head -${RAND} | tail -1)

        cp -f ${SRC} ${TARGETFILE}
        nitrogen --restore

        sleep $interval
    fi
done

私の環境では左側ディスプレイが1,右側ディスプレイが0なので,xin_-1に設定する.xin_-0だと画像が右・左にぶった切れてしまう.

.config/nitrogen/bg-saved.cfg
[xin_-1]
file=/home/username/.config/nitrogen/bg.jpg
mode=0
bgcolor=#000000

これは普通.以前はfehを使っていたが,4Kディスプレイを2分割して縦長に使うようになったので壁紙はぶちぬきにしたくなったのであった.

.xmonad/xmonad.hs
myStartupHook = do
    --spawn "feh --bg-fill -z ~/Pictures/wallpapers/*"
    spawn "/home/username/bin/set-background.sh"

追記

参考文献を書き忘れてた.
基本はそのまんまパクもとい参考にさせていただいたが,サブディレクトリ対応をしたのと,変数RANDの設定時に+1をしないと境界条件でエラーを吐いたのが,この記事のnewなところ.

Xmonad + nitrogenで壁紙を設定する - tototoshi の日記

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0