Введение
Португальская версия
Некоторые команды не создают никаких выходных списков, хотя и работают со списками, полученными от других команд, команда shuf — одна из таких команд. Если я хочу получить случайное имя изображения из моего каталога обоев, я делаю следующее:
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 -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 — максимально возможное рандомизированное число