Комбинация ls и shuf … … … и многое другое


Введение

Португальская версия

Некоторые команды не создают никаких выходных списков, хотя и работают со списками, полученными от других команд, команда 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
Enter fullscreen mode Выйти из полноэкранного режима

Рандомизация в других приложениях:

Многие утилиты имеют свой собственный флаг для рандомизации, например, mpg123 имеет для этого флаг -Z.

Для тех приложений, в которых нет рандомизации, можно использовать трюк с оболочкой …

echo $((RANDOM % 10))
Войти в полноэкранный режим Выйти из полноэкранного режима

… Где 10 — максимально возможное рандомизированное число

Оцените статью
Procodings.ru
Добавить комментарий