انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: تغیر خودکار پس زمینه در nitrogen  (دفعات بازدید: 1455 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
تغیر خودکار پس زمینه در nitrogen
« : 09 مهر 1404، 04:03 ب‌ظ »
سلام
من از مدیرت پنجره openbox استفاده میکنم برا تغییر پس زمینه از برنامه nitrogen
برای تغیر خودکار پس زمینه به طور پیش فرض گزینه ای نداره
اما یه جسنجو کردم راه هایی بود که من نتونستم جواب بگیرم :(
اگه دوستان میتونن راه نمایی کنند

https://www.ubuntuopenbox.com/tips/Nitrogen-Wallpapers-Slideshow/https://blog.desdelinux.net/en/automatically-change-wallpaper-with-nitrogen/

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #1 : 09 مهر 1404، 04:38 ب‌ظ »
سلام
من از مدیرت پنجره openbox استفاده میکنم برا تغییر پس زمینه از برنامه nitrogen
برای تغیر خودکار پس زمینه به طور پیش فرض گزینه ای نداره
اما یه جسنجو کردم راه هایی بود که من نتونستم جواب بگیرم :(
اگه دوستان میتونن راه نمایی کنند

https://www.ubuntuopenbox.com/tips/Nitrogen-Wallpapers-Slideshow/https://blog.desdelinux.net/en/automatically-change-wallpaper-with-nitrogen/

خود لینکها توضیح دادن !
- - -
از این اسکریپت استفاده کنید اگر جواب گرفتید همینجا اطلاع بدید .
- - -
یک فایل جدید بساز (مثلاً wallpaper-cycle.sh):
#!/bin/bash

# مسیر فولدر والپیپرها
WALLPAPERS="$HOME/Pictures/Wallpapers"

# همه‌ی فایل‌های تصویری داخل پوشه رو به ترتیب بگیر
while true; do
    for fe in "$WALLPAPERS"/*; do
        if [ -f "$fe" ]; then
            nitrogen --set-zoom-fill "$fe"
            sleep 300   # هر 300 ثانیه (5 دقیقه) عوض بشه
        fi
    done
done


قابل اجراش کن:
chmod +x ~/wallpaper-cycle.sh
نکته‌ها :
sleep 300 یعنی هر ۵ دقیقه. می‌تونی تغییرش بدی.
می‌تونی به‌جای --set-zoom-fill گزینه‌ی دلخواه nitrogen بذاری , مثل --set-scaled

با کامند screen در پس زمینه همیشه در حال اجرا باشه یا از cron کمک بگیر .
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #2 : 09 مهر 1404، 10:42 ب‌ظ »
#!/bin/bash

WALLPAPERS="$HOME/hashem/.wallpapers/1/"

while true; do
    for fe in "$WALLPAPERS"/*; do
        if [ -f "$fe" ]; then
            nitrogen --set-zoom-fill "$fe"
            sleep 300
        fi
    done
done
این رو متوجه نشدم
نقل‌قول
با کامند screen در پس زمینه همیشه در حال اجرا باشه یا از cron کمک بگیر

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #3 : 10 مهر 1404، 10:21 ق‌ظ »
اسکریپت رو چند بار اجرا کن ببین کار میکنه یا نه بعد که مطمئن شدی از screen کمک بگیر تا زمانی که کامپیوتر روشنه در حال اجرا باشه
آموزش این دستور رو از اینجا بخون [1] , آموزش cron هم از اینجا [2] .
[1] https://asamserver.com/blog/screen-command-in-linux/
[2] https://7learn.com/blog/what-is-cronjob
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #4 : 10 مهر 1404، 11:04 ق‌ظ »
screen
cd ~
./wallpaper-cycle.sh
Ctrl + A + D
حالا صفحه screen بسته میشه و ترمینالتون آزاد میشه
حالا میخوایم مثلا برگردیم به سشن screen ی که باز بود
screen -r [Tab بزنید]اسکرین برمیگرده به جایی که اسکریپت رو باز کرده بودیم
اینجوری این اسکریپت همیشه باز میمونه .
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #5 : 11 مهر 1404، 03:32 ب‌ظ »
نقل‌قول
اسکریپت رو چند بار اجرا کن ببین کار میکنه یا نه
نه کار نمیکنه فقط پردازش cpu میره بالا :(
./wallpaper-cycle.sh
sh wallpaper-cycle.sh

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #6 : 11 مهر 1404، 04:27 ب‌ظ »
اگر امکانش هست سریع تست کنید و سریعتر جواب بدید اینطوری رسیدن به نتیجه خیلی طول میکشه .
- - -
ببینید این دستور رو تو ترمینال میزنید اصلا کار میکنه ؟ بکگراند تصویرش عوض میشه یا نه :
/usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save
اگر کار کرد این رو ادامه بدید :
بدون sudo :
crontab -eو این خط رو به آخر صفحه ای  که باز شد اضافه کنید , بجای */20 مثلا بزارید 2 , که هر دو دقیقه تصویر رو عوض کنه , منتظر بمونید ببینید اعمال میشه یا نه .
 */20 * * * * (export DISPLAY=:0.0 && /bin/date && /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save) > /tmp/myNitrogen.log 2>&1
بعد این دستور رو بزنید :

sudo service cron restart
« آخرین ویرایش: 11 مهر 1404، 04:33 ب‌ظ توسط Chappie »
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #7 : 11 مهر 1404، 10:22 ب‌ظ »
دستور اول کار کرد و پس زمینه عوض شد.
دستور دوم به شکل زیر بود که تغییری نکرد
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
*/2 * * * * (export DISPLAY=:0.0 && /bin/date && /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save) > /tmp/myNitrogen.log 2>&2# m h  dom mon dow   command

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #8 : 11 مهر 1404، 10:58 ب‌ظ »
خب عالی , دستور اول اصل داستان هست که داره درست کار میکنه .
- - -
برای دستور دوم , اینجا فایل cron باز شده , اگر دقت کنید خطی که وارد کردید آخرش اینهارو اضافه زدید :
# m h  dom mon dow   command
و این باعث میشه دستور کامل نباشه و ارور بگیره .
شما دقیقا این رو وارد کنید :
*/2 * * * * (export DISPLAY=:0.0 && /bin/date && /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save) > /tmp/myNitrogen.log 2>&1
این باید هر دو دقیقه بکگراند رو با cron برای شما تغییر بده . ما فقط برای تست دو دقیقه قرار دادیم بعدا میتونید ویرایش کنید و هر دقیقه ای که خواستید بزارید .
بعد cron رو دوباره ریستارت کنید :
sudo service cron restartحتی میتونید دستور زیر که لاگ اجرا شدن دستورمون توسط cron  هست رو با دستور زیر در یک ترمینال دیگه ببینید :
tail -f /tmp/myNitrogen.log
اگر خروجی دستور بالا رو برای من هم بزارید من راحت تر میتونم بفهمم چه خبره .
پنج دقیقه صبر کنید و ببینید بکگراند خودکار عوض میشه  یا نه .
در ضمن با دستور زیر هم میتونید ببینید که cron در چه مرحله ای هست :
sudo journalctl -f
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #9 : 12 مهر 1404، 12:02 ق‌ظ »
کار نکرد
tail -f /tmp/myNitrogen.log
tail: cannot open '/tmp/myNitrogen.log' for reading: No such file or directory
tail: no files remaining
sudo journalctl -f
[sudo] password for hashem:
Oct 03 23:58:23 lenove systemd[1]: cron.service: Deactivated successfully.
Oct 03 23:58:23 lenove systemd[1]: Stopped cron.service - Regular background program processing daemon.
Oct 03 23:58:23 lenove systemd[1]: Started cron.service - Regular background program processing daemon.
Oct 03 23:58:23 lenove sudo[3194]: pam_unix(sudo:session): session closed for user root
Oct 03 23:58:23 lenove cron[3202]: (CRON) INFO (pidfile fd = 3)
Oct 03 23:58:23 lenove cron[3202]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Oct 03 23:58:38 lenove crontab[3220]: (hashem) BEGIN EDIT (hashem)
Oct 03 23:59:19 lenove crontab[3442]: (hashem) BEGIN EDIT (hashem)
Oct 04 00:00:22 lenove sudo[3859]:   hashem : TTY=pts/2 ; PWD=/home/hashem ; USER=root ; COMMAND=/usr/bin/journalctl -f
Oct 04 00:00:22 lenove sudo[3859]: pam_unix(sudo:session): session opened for user root(uid=0) by hashem(uid=1000)
Oct 04 00:00:33 lenove systemd[1]: Starting dpkg-db-backup.service - Daily dpkg database backup service...
Oct 04 00:00:33 lenove systemd[1]: dpkg-db-backup.service: Deactivated successfully.
Oct 04 00:00:33 lenove systemd[1]: Finished dpkg-db-backup.service - Daily dpkg database backup service.
Oct 04 00:01:39 lenove dbus-daemon[950]: [session uid=1000 pid=950 pidfd=5] Activating via systemd: service name='ca.desrt.dconf' unit='dconf.service' requested by ':1.58' (uid=1000 pid=3898 comm="mousepad")
Oct 04 00:01:39 lenove systemd[923]: Starting dconf.service - User preferences database...
Oct 04 00:01:39 lenove dbus-daemon[950]: [session uid=1000 pid=950 pidfd=5] Successfully activated service 'ca.desrt.dconf'
Oct 04 00:01:39 lenove systemd[923]: Started dconf.service - User preferences database.

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #10 : 12 مهر 1404، 12:15 ق‌ظ »
دوباره بزن:
crontab -eشما دقیقا این رو وارد کنید در انتهای نوشته های اولش و در ویرایشگر ترجیحا nano :
*/2 * * * * (export DISPLAY=:0.0 && /bin/date && /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save) > /tmp/myNitrogen.log 2>&1
بعد فایل رو ذخیره کن و از ویرایشگر بیا بیرون.
و خروجی این دستور رو برای من بزار همینجا:
crontab -l
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #11 : 12 مهر 1404، 12:22 ق‌ظ »
crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

*/2 * * * * (export DISPLAY=:0.0 && /bin/date && /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save) > /tmp/myNitrogen.log 2>&1

آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #12 : 12 مهر 1404، 12:28 ق‌ظ »
تا اینجا درسته
اینو بزن :
sudo service cron restartپنج دقیقه صبر کن ببین چی میشه
و بعد خروجی این رو برام اینجا بزار :
sudo journalctl --since "30 minutes ago"
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.

آفلاین Hashem-khan

  • Jr. Member
  • *
  • ارسال: 97
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #13 : 12 مهر 1404، 10:43 ب‌ظ »
کار نمیکنه ۱۰ دقیقه هم صبرکردم :(
sudo journalctl --since "30 minutes ago"
Oct 04 22:23:39 lenove kernel: Linux version 6.16.8+deb14-amd64 (debian-kernel@lists.debian.or>
Oct 04 22:23:39 lenove kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-6.16.8+deb14-amd64 root=>
Oct 04 22:23:39 lenove kernel: x86/split lock detection: #AC: crashing the kernel on kernel sp>
Oct 04 22:23:39 lenove kernel: BIOS-provided physical RAM map:
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009efff] usable
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x000000000009f000-0x00000000000fffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000000100000-0x0000000039f98fff] usable
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000039f99000-0x000000003a898fff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x000000003a899000-0x00000000434aefff] usable
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000434af000-0x00000000452fefff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000452ff000-0x0000000045b2efff] ACPI NVS
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000045b2f000-0x0000000045bfefff] ACPI data
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000045bff000-0x0000000045bfffff] usable
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000045c00000-0x0000000049ffffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x000000004a200000-0x000000004a3fffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x000000004b000000-0x00000000503fffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000c0000000-0x00000000cfffffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000fe010000-0x00000000fe010fff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000fed20000-0x00000000fed7ffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x00000000ff400000-0x00000000ffffffff] reserved
Oct 04 22:23:39 lenove kernel: BIOS-e820: [mem 0x0000000100000000-0x00000002afbfffff] usable
Oct 04 22:23:39 lenove kernel: NX (Execute Disable) protection: active
Oct 04 22:23:39 lenove kernel: APIC: Static calls initialized
Oct 04 22:23:39 lenove kernel: efi: EFI v2.7 by INSYDE Corp.
lines 1-24


آفلاین Chappie

  • Jr. Member
  • *
  • ارسال: 96
  • جنسیت : پسر
پاسخ : تغیر خودکار پس زمینه در nitrogen
« پاسخ #14 : 12 مهر 1404، 11:17 ب‌ظ »
همین دستور که برای شما کار کرد کافیه :
/usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --saveهمین رو بزاریم تو یه حلقه و هر ۲ دقیقه تصویر رو برای شما عوض کنه :
میتونید مثلا بزارید هر یک ساعت , اسکریپت رو تغییر بدید و ثانیه رو عوض کنید منظورم قسمت sleep هست :
#!/bin/bash

while true; do
    /usr/bin/nitrogen --set-zoom-fill --random /home/hashem/.wallpapers/1/ --save
    sleep 120   # هر 120 ثانیه (2 دقیقه) یک‌بار اجرا شود
done
بعد:

ذخیره کن (مثلاً در مسیر home):
~/wallpaper-loop.shقابل اجراش کن:
chmod +x ~/wallpaper-loop.shتستش کن:
./wallpaper-loop.sh
همینطور که در نوشته های قبلی توضیح دادم با screen هر بار که کامپیوتر رو که روشن کردید این اسکریپت رو اجراش کنید .

- - -
End
What is the Internet?
It's a thing in a computer. Lets you look up shit you don't know.
I want it! I want that Internet.