Автоматично міняйте шпалери за допомогою азоту

Скільки з вас використовують «менеджер вікон», і, безумовно, через деякий час наші шпалери нам набридають? Дуже дратує, коли потрібно перекомпілювати, щоб мати змогу змінити прості шпалери, або навіть повторити «азот» і передати йому інший параметр.

Ну, сьогодні я приношу вам скрипт bash, він отримує випадкове зображення з нашої колекції і ставить його як шпалери Змініть азотні шпалери, якщо ви завантажуєте сценарій з тут не забудьте видалити розширення .txt із файлу та надати йому дозволи на виконання

directory = ~ / Функція зображень my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | вирізати -d "x" -f 2` my_width = `echo" $ res "| вирізати -d "x" -f 1`} функція rand_image () {image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` image_dir = `знайти" $ directory "-iname" $ ​​image "`} function image_resolution () {rand_image high_image = `identify -format"% h "" $ image_dir "` wide_image = `identify -format" % w "" $ image_dir "`} пропорція функції () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ my_width | bc -l`} скаляр функції () { пропорція, якщо [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; потім азот --set-zoom "$ image_dir" ще азот - set-center "$ image_dir" fi} масштаб виходу

Тепер йде пояснення сценарію.
каталог = ~ / Зображення // Перехід до каталогу, де розташовані ваші шпалери

image_resolution () // Ця функція визначає роздільну здатність нашого монітора та зберігає її у змінних:
my_high // Високий
моя_ширина // Ширина

rand_image () // Ця функція отримує зображення всередині "каталогу"

image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортувати –випадково-сортувати | голова -1`

ВАЖЛИВО! Якщо ви помітили, що ми фільтруємо всі файли з розширенням .png, .jpg, .jpeg. Додайте -e ".extention" відповідно.

Приклад:

imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensión" | sort --random-sort | head -1`

image_resolution () // Ця функція отримує роздільну здатність зображення, отриманого функцією rand_image ()

пропорція () // Ця функція отримує співвідношення image_resolution / screen_resolution

підйом() // Ця функція масштабує зображення, якщо воно перевищує роздільну здатність нашого монітора, і встановлює шпалери

Тепер, коли у нас є сценарій для призначення випадкових шпалер для азоту (а також зображення адаптується до вашого монітора), нам залишається лише запускати сценарій так часто, це досягається виконанням наступної команди під час запуску

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

У цьому випадку ця команда виконується кожні 4 секунди. Зверніть увагу, що path_where_the_script_is_found - це повний шлях, де знаходиться скрипт, а script_name - це ім'я, яке було надано сценарію.

Сподіваюся, вам це буде корисно.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   KZKG ^ Гаара - сказав він

    Я перевірю цей азот на наявність сценарію для KDE, який я хочу зробити :)
    В іншому випадку хороший пост ... ха-ха-ха, чудове фото, яке ви вибрали для поста (Snoopy LOL !!!)

    1.    alpj - сказав він

      Джаджаяджаяяджая, дякую, справді прискіплива розіграш, хахаджаяяяяяя

  2.   st0rmt4il - сказав він

    Дякую..

  3.   ШИРИНА - сказав він

    Грекіас

  4.   ферхметал - сказав він

    Gracias!

  5.   іззивп - сказав він

    Це не працює для кориці, чи не так?

    1.    alpj - сказав він

      Я не уявляю, як змінити шпалери в кориці, але впевнений у тому, що функція rand_image служить для зйомки випадкового зображення, тому вам просто потрібно передати його $ dir_image
      Дозвольте розслідувати

  6.   + AMEM + - сказав він

    Дякую, я трохи змінив його для майбутніх поколінь ... Сподіваюся, ви не турбуєтесь
    Я хотів би знати, що ви думаєте, я не дуже багато знаю про мову

    #! / бін / баш

    # ~ Оригінальний автор
    #~
    # ~ halonsov: математик, любитель GNU / LINUX, програміст, користувач Debian та xmonad.
    #~
    # ~ Посилання
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Команда для запуску сценарію кожні 120 секунд
    # ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Співпраця
    # ~ + AMEM +
    # ~ Особисто я вважаю за краще використовувати його лише один раз, щоб не використовувати простір
    # ~ додавання в autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Особиста нотатка
    # ~ цей сценарій спочатку був зроблений halonsov.
    # ~ Я змінив його так, щоб лише трохи, щоб виконати його на початку #CrunchBang!
    # ~ мета полягає в тому, щоб можна було побачити всі ті зображення, які є на вашому диску
    # ~ так часто, і щоб вони пристосовувались до екрану відповідно до своїх властивостей.
    # ~ для цього цей скрипт визначає характеристики вашого монітора,
    # ~ та зображення або фотографії вашого «каталогу»,
    # ~ для виконання азоту + уникання параметра масштабування або масштабування
    # ~ видовжені, нерівні зображення.
    # ~ Якщо цей сценарій не відповідає вашим потребам, ви можете змінити його параметри
    # ~ Наприклад, азот - з центром набору
    # ~ для центрування зображення без масштабування
    # ~ Я рекомендую вивчити інструкцію з азоту.

    # Каталог
    # Каталог зображень, які будуть використовуватися як шпалери, включаючи підкаталоги
    # Перейдіть до каталогу, де розташовані ваші шпалери
    # Наприклад каталог = / home /… / images
    directory = / home / amem / images / Wallpaper

    # Роздільна здатність монітора
    # Ця функція визначає роздільну здатність нашого монітора та зберігає її у змінних:
    функція my_resolution ()
    {
    # Ми отримуємо роздільну здатність нашого монітора за допомогою xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' '
    # Висота монітора
    my_high = `echo" $ res "| вирізати -d "x" -f 2`
    Ширина монітора
    my_width = `echo" $ res "| вирізати -d "x" -f 1`
    }

    # Випадкове зображення
    # Ця функція отримує зображення всередині "каталогу"
    функція rand_image ()
    {
    # Ми отримуємо ім'я якогось зображення всередині каталогу $
    image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортувати –випадково-сортувати | голова -1`

    # ВАЖЛИВО! Якщо ви помітили, ми фільтруємо всі файли із "розширеннями" .png, .jpg, .jpeg. Додайте -e ".extention" відповідно.
    # Приклад:
    # image = `ls -1 -b -R" $ каталог "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".ne__ Extension" | сортувати –випадково-сортувати | голова -1`

    # Отримуємо шлях $ image
    image_dir = `знайти" $ directory "-iname" $ ​​image "`
    }

    # Роздільна здатність зображення
    # Ця функція отримує роздільну здатність зображення, отриманого функцією rand_imagen ()
    функція image_resolution ()
    {
    rand_image
    # Отримуємо висоту $ image
    high_image = `ідентифікувати -формат"% h "" $ image_dir "`
    # Отримуємо ширину $ image
    wide_image = `ідентифікувати -формат"% w "" $ image_dir "`
    }

    # Отримуємо співвідношення image_resolution / screen_resolution
    # результат цього ділення повертає значення більше або менше 1
    # пропорція 1 зображення більше, ніж екран
    пропорція функції ()
    {
    my_resolution
    роздільна здатність зображення
    ratio_high = `echo $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    # Отримуємо співвідношення image_high / image_width
    # результат цього ділення повертає значення більше або менше 1; Якщо зображення не має квадратного значення Oo
    # image_proportion 1 зображення вище, ніж широке
    співвідношення зображення функції ()
    {
    роздільна здатність зображення
    ratio_image_rate = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Встановіть шпалери
    # Ця функція змінює параметри азоту відповідно до властивостей зображення щодо монітора
    # Зображення занадто високе або більше, ніж наш екран Встановлює шпалери, масштабуючи зображення
    # –Центр, встановлений по центру, визначає масштаб зображення
    # –Встановлений масштаб заповнює екран викривленим зображенням
    # –Встановити масштаб заповнює екран з масштабованим зображенням доверху
    # –Set-zoom-fill заповнює екран масштабованим зображенням
    функція скаляр ()
    {
    пропорція
    if [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; тоді
    # Якщо роздільна здатність зображення більша за роздільну здатність нашого екрану, виконайте ...
    азот - масштабований "$ image_dir"
    ще
    if [`echo" $ high_rate> 1 ″ | bc` -eq 1]; тоді
    # Якщо роздільна здатність зображення менша, ніж у нашого екрану, виконайте ...
    азот –центрований "$ image_dir"
    ще
    # Коли зображення менше екрана, ми можемо розширити його до довжини або ширини
    пропорція зображення
    if [`echo« $ proportionimage_reason> 1 ″ | bc` -eq 1]; тоді
    #Якщо висота зображення менше, ніж нашого екрану, виконайте ...
    азот - встановити масштаб "$ image_dir"
    ще
    якщо [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; тоді
    # Якщо ширина зображення менша, ніж у нашого екрану, виконайте ...
    азот –набір-масштабування-заповнення "$ image_dir"
    fi
    fi
    fi
    fi
    }

    підніматися

    вихід

    1.    Халонсо V - сказав він

      Відмінно. Дякую.