เปลี่ยนวอลเปเปอร์ด้วยไนโตรเจนโดยอัตโนมัติ

มีคุณกี่คนที่ใช้ "Tiling window manager" และหลังจากนั้นไม่นานวอลล์เปเปอร์ของเราก็ทำให้เราเบื่อ เป็นเรื่องที่น่ารำคาญมากที่ต้องรวบรวมใหม่เพื่อให้สามารถเปลี่ยนวอลเปเปอร์ธรรมดา ๆ หรือแม้แต่เรียกใช้ "ไนโตรเจน" ใหม่และส่งผ่านพารามิเตอร์อื่นไป

วันนี้ผมนำสคริปต์มาให้คุณได้รับภาพสุ่มจากคอลเลกชันของเราและนำมาเป็นภาพพื้นหลัง เปลี่ยนวอลเปเปอร์ไนโตรเจนหากคุณดาวน์โหลดสคริปต์จากไฟล์ ที่นี่ อย่าลืมลบนามสกุล. txt ออกจากไฟล์และให้สิทธิ์ดำเนินการ

ไดเร็กทอรี = ~ / ฟังก์ชันรูปภาพ 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 "| cut -d "x" -f 1`} ฟังก์ชัน rand_image () {image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | เรียงลำดับ - แบบสุ่ม | head -1` image_dir = `find" $ directory "-iname" $ ​​image "`} function image_resolution () {rand_image high_image = `ระบุ -format"% h "" $ image_dir "` wide_image = `ระบุ -format" % w "" $ image_dir "`} สัดส่วนฟังก์ชัน () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` ratio_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 ไนโตรเจน - กำหนดเป็นศูนย์กลาง "$ image_dir" fi} ออกจากสเกล

ตอนนี้มาถึงคำอธิบายของสคริปต์
ไดเรกทอรี = ~ / รูปภาพ // เปลี่ยนเป็นไดเร็กทอรีที่มีวอลเปเปอร์ของคุณอยู่

image_resolution () // ฟังก์ชันนี้ตรวจจับความละเอียดของจอภาพของเราและบันทึกไว้ในตัวแปร:
my_high //สูง
my_width // ความกว้าง

Rand_image () // ฟังก์ชันนี้รับรูปภาพภายใน«ไดเร็กทอรี»

image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | เรียง - สุ่มเรียง | หัว -1`

สำคัญ! หากคุณสังเกตเห็นว่าเรากำลังกรองไฟล์ทั้งหมดที่มี "นามสกุล" .png, .jpg, .jpeg เพิ่ม -e ".extension" ตามความเหมาะสม

ตัวอย่าง:

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. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   KZKG ^ กาอาระ dijo

    ฉันจะตรวจสอบไนโตรเจนนี้สำหรับสคริปต์ KDE ที่ฉันต้องการทำ :)
    ไม่งั้นโพสต์ดี ... ฮ่า ๆ ๆ รูปสวย ๆ ที่คุณเลือกโพสต์ (สนูปปี้ฮ่า ๆ !!!)

    1.    อัลพีเจ dijo

      Jjajajajajajajaja ขอบคุณจริงๆ snoopy raffle, hahajjajajajajajaj

  2.   st0rmt4il dijo

    ขอขอบคุณ..

  3.   ความกว้าง dijo

    กราเซีย

  4.   เฟอร์ชเมทัล dijo

    Gracias!

  5.   อิซซิฟ dijo

    นี่ใช้ไม่ได้กับอบเชยใช่ไหม

    1.    อัลพีเจ dijo

      ฉันไม่รู้ว่าจะเปลี่ยนวอลเปเปอร์เป็นอบเชยได้อย่างไร แต่สิ่งที่แน่นอนก็คือฟังก์ชัน rand_image ทำหน้าที่ให้คุณได้ภาพแบบสุ่มดังนั้นคุณเพียงแค่ส่งมันไป $ dir_image
      ให้ฉันตรวจสอบ

  6.   + AMEM + dijo

    ขอบคุณฉันแก้ไขเล็กน้อยสำหรับคนรุ่นหลัง ... ฉันหวังว่าคุณจะไม่รำคาญ
    ฉันอยากรู้ว่าคุณคิดยังไงฉันไม่รู้เรื่องภาษามากนัก

    #! / bin / ทุบตี

    # ~ ผู้เขียนต้นฉบับ
    #~
    # ~ halonsov: นักคณิตศาสตร์คนรัก GNU / LINUX โปรแกรมเมอร์ผู้ใช้ Debian และ xmonad
    #~
    # ~ อ้างอิง
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ คำสั่งเพื่อเรียกใช้สคริปต์ทุกๆ 120 วินาที
    # ~ ชม -n 120 / home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ การทำงานร่วมกัน
    # ~ + AMEM +
    # ~ โดยส่วนตัวแล้วฉันชอบใช้เพียงครั้งเดียวเพื่อไม่ให้ใช้พื้นที่
    # ~ เพิ่มใน autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ บันทึกส่วนตัว
    # ~ สคริปต์นี้สร้างขึ้นโดย halonsov
    # ~ ฉันแก้ไขเพื่อให้เรียกใช้เมื่อเริ่มต้น #CrunchBang!
    # ~ จุดประสงค์คือสามารถมองเห็นภาพทั้งหมดที่คุณมีในดิสก์ของคุณได้
    # ~ ทุก ๆ ครั้งและปรับให้เข้ากับหน้าจอตามคุณสมบัติของมัน
    # ~ สำหรับสคริปต์นี้ระบุลักษณะของจอภาพของคุณ
    # ~ และรูปภาพหรือรูปถ่ายของ«ไดเร็กทอรี»ของคุณ
    # ~ เพื่อเรียกใช้ไนโตรเจน + พารามิเตอร์การปรับขนาดหรือการซูมที่หลีกเลี่ยง
    # ~ ภาพแบบพิกเซลยาว
    # ~ หากสคริปต์นี้ไม่ตรงกับความต้องการของคุณคุณสามารถแก้ไขพารามิเตอร์ได้
    # ~ เช่นไนโตรเจน - ตั้งศูนย์กลาง
    # ~ เพื่อจัดกึ่งกลางภาพโดยไม่ต้องปรับขนาด
    # ~ ขอแนะนำให้คุณศึกษาคู่มือไนโตรเจน

    #Directory
    # ไดเร็กทอรีรูปภาพที่จะใช้เป็นวอลเปเปอร์รวมถึงไดเร็กทอรีย่อย
    # เปลี่ยนเป็นไดเรกทอรีที่วอลเปเปอร์ของคุณอยู่
    # เช่นไดเรกทอรี = / home / … / images
    ไดเรกทอรี = / 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" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | หัว -1`

    #สำคัญ! หากคุณสังเกตเห็นว่าเรากำลังกรองไฟล์ทั้งหมดที่มี "นามสกุล" .png, .jpg, .jpeg เพิ่ม -e ".extension" ตามความเหมาะสม
    #ตัวอย่าง:
    # image = `ls -1 -b -R" $ directory "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | sort --random-sort | หัว -1`

    # เราได้รับเส้นทางของ $ image
    image_dir = `ค้นหา" $ directory "- ชื่อ" $ 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`
    }

    # ตั้งวอลล์เปเปอร์
    # ฟังก์ชันนี้จะปรับเปลี่ยนพารามิเตอร์ไนโตรเจนตามคุณสมบัติของภาพที่สัมพันธ์กับจอภาพ
    # ภาพสูงเกินไปหรือใหญ่กว่าหน้าจอของเราตั้งค่าวอลเปเปอร์โดยการปรับขนาดภาพ
    # –Set-centered จัดกึ่งกลางภาพที่ไม่มีการปรับขนาด
    # –Set-scaled ทำให้ภาพบิดเบี้ยวเต็มหน้าจอ
    # –Set-zoom เติมเต็มหน้าจอโดยปรับขนาดภาพไปด้านบนสุด
    # –Set-zoom-fill เติมเต็มหน้าจอด้วยภาพที่ปรับขนาดตาม
    ฟังก์ชันสเกลาร์ ()
    {
    สัดส่วน
    ถ้า [`echo" $ width_proportion> 1″ | bc` -eq 1]; แล้ว
    # หากความละเอียดของภาพใหญ่กว่าหน้าจอให้ดำเนินการ ...
    ไนโตรเจนที่กำหนดมาตราส่วน "$ image_dir"
    อื่น
    ถ้า [`echo" $ high_rate> 1″ | bc` -eq 1]; แล้ว
    # หากความละเอียดของภาพเล็กกว่าหน้าจอของเราให้ดำเนินการ ...
    ไนโตรเจนที่ตั้งเป็นศูนย์กลาง "$ image_dir"
    อื่น
    # เมื่อภาพมีขนาดเล็กกว่าหน้าจอเราสามารถขยายให้ยาวหรือกว้างได้
    สัดส่วนภาพ
    ถ้า [`echo « $ ratioimage_reason> 1″ | bc` -eq 1]; แล้ว
    # ถ้าความสูงของภาพเล็กกว่าหน้าจอให้ดำเนินการ ...
    ไนโตรเจน –set-zoom "$ image_dir"
    อื่น
    ถ้า [`echo « $ ratioimage_reason <1" | bc` -eq 1]; แล้ว
    # ถ้าความกว้างของภาพเล็กกว่าหน้าจอให้ดำเนินการ ...
    ไนโตรเจน –set-zoom-fill "$ image_dir"
    fi
    fi
    fi
    fi
    }

    ปีนขึ้นไป

    ทางออก

    1.    Halonso V. dijo

      ยอดเยี่ยม. ขอขอบคุณ.