Автоматично променяйте тапета с азот

Колко от вас използват „Мениджър на прозорци с плочки“ и със сигурност след известно време нашият тапет ни отегчава? Много е досадно да трябва да прекомпилирате, за да можете да смените обикновен тапет или дори да повторите "азот" и да му предадете друг параметър.

Ами днес ви нося скрипт в bash, той получава произволно изображение от нашата колекция и го поставя като тапет Променете азотния тапет, ако изтеглите скрипта от тук не забравяйте да премахнете разширението .txt от файла и да му дадете разрешения за изпълнение

директория = ~ / Функция за изображения my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` ехо "$ res" | cut -d "x" -f 2` my_width = `echo" $ res "| cut -d "x" -f 1`} функция rand_image () {image = `ls -1 -b -R" $ директория "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | сортиране - произволно сортиране | head -1` image_dir = `намери" $ directory "-iname" $ ​​image "`} функция 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" else азот - set-centered "$ image_dir" fi} мащаб изход

Сега идва обяснението на сценария.
директория = ~ / Изображения // Преминете към директорията, в която се намират вашите тапети

image_resolution () // Тази функция открива разделителната способност на нашия монитор и я записва във променливите:
my_high //Висок
my_width // Ширина

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. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

      KZKG ^ Гаара каза той

    Ще проверя този азот за скрипт за KDE, който искам да направя :)
    Иначе добър пост ... хахахаха, отлична снимка, която сте избрали за публикацията (LOL на Snoopy's !!!)

         alpj каза той

      Jjajajajjajajajaja благодаря, наистина snoopy томбола, hahahahajajajjajaj

      st0rmt4il каза той

    Благодаря ти..

      ШИРИНА каза той

    благодаря

      ферхметал каза той

    Грасиас!

      иззивп каза той

    Това не работи за канела, нали?

         alpj каза той

      Нямам представа как да сменя тапета в канела, но сигурно е, че функцията rand_image работи за вас, за да получите произволно изображение, така че просто трябва да го предадете $ dir_image
      Позволете ми да разследвам

      + 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!
    # ~ целта е всички тези изображения, които имате на вашия диск, да можете да ги видите
    # ~ на всеки толкова често, и че те се приспособяват към екрана според техните свойства.
    # ~ за това този скрипт идентифицира характеристиките на вашия монитор,
    # ~ и тези на изображението или снимката от вашата «директория»,
    # ~, за да се изпълни азот + избягване на параметър за мащабиране или мащабиране
    # ~ удължени, пикселизирани изображения.
    # ~ Ако този скрипт не отговаря на вашите нужди, можете да промените параметрите му
    # ~ Например азот - съсредоточен в центъра
    # ~ за центриране на изображението без мащабиране
    # ~ Препоръчвам ви да изучите ръководството за азот.

    #Directory
    # Директория на изображения, които ще се използват като тапет, включително поддиректории
    # Променете в директорията, в която се намират вашите тапети
    # Например директория = / home / ... / images
    directory = / home / amem / images / Wallpaper

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

    #Random Image
    # Тази функция получава изображение в "директория"
    функция 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__extention" | сортиране –случайно сортиране | глава -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
    image_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 изображението е по-високо, отколкото е широко
    пропорция на изображението на функцията ()
    {
    image_resolution
    ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Задайте тапета
    # Тази функция променя параметрите на азота според свойствата на изображението по отношение на монитора
    #Image твърде висок или по-голям от нашия екран Задава тапета чрез мащабиране на изображението
    # –Центрирано в центъра центрира немащабираното изображение
    # –Set-scaled запълва екрана с изкривеното изображение
    # –Задаване на мащабиране изпълва екрана с мащабираното изображение до върха
    # –Set-zoom-fill запълва екрана с мащабираното изображение
    скаларна функция ()
    {
    пропорция
    ако [`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
    }

    изкачване

    изход

         Халонсо V каза той

      Отлично. Благодаря ти.