Tukar kertas dinding secara automatik dengan Nitrogen

Berapa ramai daripada anda yang menggunakan "Tiling window manager" dan pasti selepas beberapa ketika kertas dinding kami membosankan? Ini sangat menjengkelkan apabila harus menyusun semula untuk dapat mengubah kertas dinding sederhana, atau bahkan untuk menjalankan kembali "nitrogen" dan meneruskan parameter lain kepadanya.

Nah, hari ini saya membawakan anda skrip bash, ia mendapat gambar rawak dari koleksi kami dan meletakkannya sebagai kertas dinding Tukar Kertas Dinding Nitrogen, jika anda memuat turun skrip dari di sini jangan lupa untuk mengeluarkan pelanjutan .txt dari fail dan memberikannya kebenaran

direktori = ~ / Gambar berfungsi my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` gema "$ res" | potong -d "x" -f 2` my_width = `echo" $ res "| cut -d "x" -f 1`} fungsi rand_image () {image = `ls -1 -b -R" $ direktori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | urutkan - rawak-urut | head -1` image_dir = `find" $ directory "-iname" $ ​​image "`} function image_resolution () {rand_image high_image = `Identify -format"% h "" $ image_dir "` wide_image = `Identify -format" % w "" $ image_dir "`} bahagian fungsi () {my_resolution image_resolution height_rate = `echo $ image_high / $ my_high | bc -l` ratio_width =` echo $ image_width / $ my_width | bc -l`} skalar fungsi () { perkadaran jika [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; kemudian nitrogen --set-zoom "$ image_dir" nitrogen lain - keluar berpusat pada set "$ image_dir" fi}

Sekarang datang penjelasan skrip.
direktori = ~ / Imej // Tukar ke direktori di mana kertas dinding anda berada

penyelesaian_citra () // Fungsi ini mengesan resolusi monitor kami, dan menyimpannya dalam pemboleh ubah:
my_high // Tinggi
lebar_ku // Lebar

rand_image () // Fungsi ini mendapat gambar di dalam "direktori"

image = `ls -1 -b -R" $ direktori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | urutkan –rawak-urut | kepala -1`

PENTING! Sekiranya anda menyedari kami menyaring semua fail dengan "ekstensi" .png, .jpg, .jpeg. Tambah -e ".extension" yang sesuai.

Contoh:

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

penyelesaian_citra () // Fungsi ini memperoleh resolusi gambar yang diperoleh oleh fungsi rand_image ()

perkadaran () // Fungsi ini mendapat ratio image_resolution / screen_resolution

mendaki() // Fungsi ini mengecilkan gambar jika lebih besar daripada resolusi monitor kami dan menetapkan kertas dinding

Sekarang kita mempunyai skrip untuk menetapkan kertas dinding acak kepada nitrogen (dan juga gambar yang disesuaikan dengan monitor anda) kita hanya perlu membuat skrip berjalan sesering ini, ini dapat dicapai dengan melaksanakan perintah berikut pada awalnya.

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

Dalam kes ini, perintah ini dilaksanakan setiap 4 detik, perhatikan bahawa path_where_the_script_is_encountered adalah jalur penuh di mana skrip berada dan script_name adalah nama yang diberikan kepada skrip.

Saya harap anda menganggapnya berguna.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   KZKG ^ Gaara kata

    Saya akan memeriksa Nitrogen ini untuk skrip untuk KDE yang ingin saya lakukan :)
    Jika tidak, pos yang baik ... hahahaha, foto yang sangat baik yang anda pilih untuk jawatan tersebut (Snoopy's LOL !!!)

    1.    alpj kata

      Jjajajajajajaja terima kasih, sesungguhnya undian snoopy, hahajjajajajjajaj

  2.   st0rmt4il kata

    Terima kasih..

  3.   Luas kata

    Terima kasih

  4.   ferchmetal kata

    terima kasih!

  5.   izzyvp kata

    Ini tidak berfungsi untuk kayu manis bukan?

    1.    alpj kata

      Saya tidak tahu bagaimana menukar kertas dinding di kayu manis, tetapi yang pasti ialah fungsi rand_image berfungsi untuk anda mendapatkan gambar secara rawak, jadi anda hanya perlu meneruskannya $ dir_image
      Biarkan saya menyiasat

  6.   + AMEM + kata

    Terima kasih, saya sedikit mengubahnya untuk generasi akan datang ... Saya harap anda tidak mengganggu
    Saya ingin tahu pendapat anda, saya tidak tahu banyak tentang bahasa

    #! / Bin / Bash

    # ~ Pengarang asal
    #~
    # ~ halonsov: Ahli Matematik, pencinta GNU / LINUX, pengaturcara, pengguna Debian dan xmonad.
    #~
    # ~ Rujukan
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Perintah untuk menjalankan skrip setiap 120 saat
    # ~ tonton -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Kerjasama
    # ~ + AMEM +
    # ~ Secara peribadi saya lebih suka menggunakannya sekali sahaja agar tidak menggunakan ruang
    # ~ menambah dalam autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Catatan peribadi
    # ~ skrip ini pada asalnya dibuat oleh halonsov.
    # ~ Saya mengubahnya sehingga hanya sedikit, untuk melaksanakannya pada awal #CrunchBang!
    # ~ tujuannya adalah agar semua gambar yang ada pada cakera anda dapat melihatnya
    # ~ sesekali, dan mereka menyesuaikan dengan skrin mengikut sifatnya.
    # ~ untuk skrip ini mengenal pasti ciri monitor anda,
    # ~ dan gambar atau gambar «direktori» anda,
    # ~ untuk melaksanakan nitrogen + parameter penskalaan atau zoom mengelakkan
    # ~ gambar memanjang, piksel.
    # ~ Sekiranya skrip ini tidak sesuai dengan keperluan anda, anda boleh mengubah parameternya
    # ~ Contohnya nitrogen - berpusatkan set
    # ~ untuk memusatkan gambar tanpa penskalaan
    # ~ Saya cadangkan anda mempelajari manual nitrogen.

    #Direktori
    #Direktori gambar untuk dijadikan wallpaper, termasuk subdirektori
    #Tukar ke direktori di mana kertas dinding anda berada
    # Contoh direktori = / rumah /… / gambar
    direktori = / rumah / amem / gambar / Kertas dinding

    # Monitor resolusi
    # Fungsi ini mengesan resolusi monitor kami, dan menyimpannya dalam pemboleh ubah:
    fungsi my_resolution ()
    {
    #Kami memperoleh resolusi monitor kami dengan xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' '
    #Tinggi monitor
    my_high = `gema" $ res "| potong -d "x" -f 2`
    # Lebar monitor
    my_width = `gema" $ res "| potong -d "x" -f 1`
    }

    # Gambar Rawak
    #Fungsi ini mendapat gambar di dalam "direktori"
    fungsi rand_image ()
    {
    #Kami mendapat nama beberapa gambar di dalam direktori $
    image = `ls -1 -b -R" $ direktori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | urutkan –rawak-urut | kepala -1`

    # PENTING! Sekiranya anda menyedari kami menyaring semua fail dengan "extensions" .png, .jpg, .jpeg. Tambah -e ".extension" yang sesuai.
    #Contoh:
    # image = `ls -1 -b -R" $ direktori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | urutkan –rawak-urut | kepala -1`

    #Kami mendapat jalan $ image
    image_dir = `cari" $ direktori "-iname" $ ​​image "`
    }

    # Resolusi gambar
    #Fungsi ini memperoleh resolusi gambar yang diperoleh oleh fungsi rand_imagen ()
    fungsi image_resolution ()
    {
    rand_image
    #Kami mendapat tinggi $ image
    high_image = `Identify -format"% h "" $ image_dir "`
    #Kami mendapat lebar $ image
    wide_image = `Identify -format"% w "" $ image_dir "`
    }

    #Kami mendapat ratio image_resolution / screen_resolution
    # hasil pembahagian ini mengembalikan nilai yang lebih besar atau kurang dari 1
    # perkadaran 1 gambar lebih besar daripada skrin
    bahagian fungsi ()
    {
    penyelesaian_ku
    penyelesaian gambar_
    ratio_high = `gema $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    #Kami mendapat nisbah lebar_ gambar / lebar_ gambar
    # hasil pembahagian ini mengembalikan nilai yang lebih besar atau kurang dari 1; Kecuali gambarnya Oo persegi
    # image_proportion 1 gambar lebih tinggi daripada lebarnya
    perkadaran gambar fungsi ()
    {
    penyelesaian gambar_
    ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Tetapkan kertas dinding
    # Fungsi ini mengubah parameter nitrogen mengikut sifat gambar berkaitan dengan monitor
    #Gambar terlalu tinggi atau lebih besar daripada layar kami Mengatur kertas dinding dengan menskalakan gambar
    # –Pusat berpusat pada gambar yang tidak berskala
    # –Skala-set mengisi skrin dengan gambar yang melengkung
    # –Set-zoom mengisi skrin dengan gambar berskala ke atas
    # –Set-zoom-fill mengisi skrin dengan gambar berskala
    fungsi skalar ()
    {
    perkadaran
    jika [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; kemudian
    #Jika resolusi gambar lebih besar daripada layar kita, jalankan ...
    nitrogen - skala "$ image_dir"
    lagi
    jika [`echo" $ high_rate> 1 ″ | bc` -eq 1]; kemudian
    #Jika resolusi gambar lebih kecil daripada layar kita, jalankan ...
    nitrogen - berpusat pada set "$ image_dir"
    lagi
    #Apabila gambar lebih kecil dari layar kita dapat memperluasnya menjadi panjang atau lebar
    perkadaran gambar
    jika [`gema« $ proporsimage_reason> 1 ″ | bc` -eq 1]; kemudian
    #Jika ketinggian gambar lebih kecil daripada layar kita, jalankan ...
    nitrogen –set-zoom "$ image_dir"
    lagi
    jika [`gema« $ proporsimage_reason <1 "| bc` -eq 1]; maka
    #Jika lebar gambar lebih kecil daripada layar kita, jalankan ...
    nitrogen –set-zoom-isi "$ image_dir"
    fi
    fi
    fi
    fi
    }

    mendaki

    keluar

    1.    Halonsus V kata

      Cemerlang. Terima kasih.