ls와 shuf ... ... 등 결합

4500 단어 linuxbspwmshellpywal

소개



일부 명령은 다른 명령의 목록을 처리하지만 출력 목록을 생성하지 않습니다. shuf command이 이러한 명령 중 하나입니다. 내 월페이퍼 디렉토리에서 임의의 이미지 이름을 얻으려면 다음을 수행합니다.

ls -1A ~/img/backgrounds/* | shuf -n 1


위의 명령을 사용하여 변수를 만들고 다른 명령 인수로 사용할 수 있습니다. 이 경우에는 바탕 화면 색상을 기반으로 터미널 색상 체계를 설정하는 명령입니다.

sudo pip3 install pipx
pipx install pywal


pipx 명령은 네임스페이스 충돌을 피하면서 Python 모듈을 샌드박스에 설치합니다. pywal을 설치하면 wal 명령이 생성되며 이를 사용하여 다음 셸 스크립트 라인을 생성했습니다.

/home/sergio/.local/bin/wal -i "$(ls -1A ~/img/backgrounds/* | shuf -n 1)"


그에 따라 경로 및 시스템 변수를 변경한 후 새 터미널을 열고 다음 명령을 실행합니다.

업데이트!



pywal에 대해 보면서 나는 shuf 명령을 사용할 필요가 없다는 것을 배웠습니다. wal 명령에 디렉토리를 제공하면 거기에서 임의의 이미지가 선택되지만 shuf 사용에 대한 지식은 결국

wal --preview


이 방법으로 명령을 실행할 때마다 ...

wal -i "path-of-your-wallpapers"


...터미널 테마의 미리보기가 표시됩니다.

내 "타일링 창 관리자"인 bspwm의 경우 내sxhkdrc에 바로 가기가 있습니다.

# change background
super + b
    /home/sergio/.local/bin/wal -qi ~/img/backgrounds/ 


내에도 한 줄bspwmrc
/home/sergio/.local/bin/wal -qi ~/img/backgrounds/ 


마지막으로 crontab에 5분마다 동일한 스크립트를 실행하는 한 줄이 있습니다.

# crontab -e
# vim:et:sw=4:ts=4:cms=#%s:
# >/dev/null 2>&1   <- used to preven sending e-mail's
# env | grep -i display  to get your DISPLAY variable
# otherwhise feh will not be abble to change your background
# source: https://superuser.com/a/1122245/45032
DISPLAY=':0'
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/sergio/.dotfiles/algorithm/shell/bash/
XDG_PICTURES_DIR=/home/sergio/img
WALLPAPER_DIR=$XDG_PICTURES_DIR/backgrounds/
WAL=/home/sergio/.local/bin/wal
MAILTO=""
*/5    *    *    *    *  $WAL -qi $WALLPAPER_DIR
# */5    *    *    *    *  feh -z --bg-fill /home/sergio/img/backgrounds/*
# */5     *     *     *     *  wal -i "${XDG_PICTURES_DIR}/backgrounds/$(ls ${XDG_PICTURES_DIR}/backgrounds | shuf -n 1)"
#*/30    *    *    *    *  mpg123 /home/sergio/music/drink-water.mp3


다른 앱의 무작위화:



많은 유틸리티에는 무작위화를 위한 자체 플래그가 있습니다. 예를 들어 mpg123에는 이를 위한 -Z 플래그가 있습니다.

무작위화가 없는 앱의 경우 쉘 트릭을 사용할 수도 있습니다.

echo $((RANDOM % 10))


... 여기서 10은 가능한 최대 난수입니다.

좋은 웹페이지 즐겨찾기