Outils pour utilisateurs

Outils du site


welcome:fedora:wallpapers_on_desktop

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

welcome:fedora:wallpapers_on_desktop [2020/02/24 19:27] (Version actuelle)
Ligne 1: Ligne 1:
 +{{howhard>4}}
 +__**Wallpapers on desktop:**__
 +====== The script: ======
 +I have difficulties to find a solution to get a flexible diashow as wallpapers on the desktop.
 +Previously I used to let "wallpapoz" work, but unfortunately, this program doesn't work with Mate or with Xfce environments.
 +
 +I found this script very close to what I want to have: the diashow runs in a random and recursively way through the sub-folders.
 +I only added the command for the Gnome3 desktop.
 +
 +<code>
 +#!/bin/bash
 +
 +  function make_js {
 +       js=$(mktemp)
 +       cat > $js <<_EOF
 +      var wallpaper = "$X";
 +      var activity = activities()[0];
 +      activity.currentConfigGroup = new Array("Wallpaper", "image");
 +      activity.writeConfig("wallpaper", wallpaper);
 +      activity.writeConfig("userswallpaper", wallpaper);
 +      activity.reloadConfig();
 +_EOF
 +}
 +
 + function kde_wallpaper {
 +   make_js
 +   qdbus org.kde.plasma-desktop /MainApplication loadScriptInInteractiveConsole $js > /dev/null
 +   # sleep 2
 +   xdotool search --name "Desktop Shell Scripting Console -- Plasma Desktop Shell" windowactivate key ctrl+e key ctrl+w
 +   rm -f "$js"
 +   dbus-send --dest=org.kde.plasma-desktop /MainApplication org.kde.plasma-desktop.reparseConfiguration
 +   dbus-send --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ReloadConfig
 +   dbus-send --dest=org.kde.kwin /KWin org.kde.KWin.reloadConfig
 +   # kbuildsycoca4 2>/dev/null && kquitapp plasma-desktop 2>/dev/null ; kstart plasma-desktop > /dev/null 2>&1
 + }
 +
 + function xfce_wallpaper {
 +   xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s "$X"
 + }
 +
 + function lxde_wallpaper {
 +   pcmanfm -w "$X"
 + }
 +
 + function mate_wallpaper {
 +   gsettings set org.mate.background picture-filename "$X"
 + }
 +
 + function e17_wallpaper {
 +   OUTPUT_DIR=~/.e/e/backgrounds
 +   FileName="$X"
 +   edcFile=~/tmp/SlideShow.edc
 +
 +   echo 'images { image: "'$FileName'" LOSSY 90; }' > $edcFile
 +   echo 'collections {' >> $edcFile
 +   echo 'group { name: "e/desktop/background";' >> $edcFile
 +   echo 'data { item: "style" "4"; }' >> $edcFile
 +   echo 'data.item: "noanimation" "1";' >> $edcFile
 +   echo 'max: 990 742;' >> $edcFile
 +   echo 'parts {' >> $edcFile
 +   echo 'part { name: "bg"; mouse_events: 0;' >> $edcFile
 +   echo 'description { state: "default" 0.0;' >> $edcFile
 +   echo 'aspect: 1.334231806 1.334231806; aspect_preference: NONE;' >> $edcFile
 +   echo 'image { normal: "'$FileName'";  scale_hint: STATIC; }' >> $edcFile
 +   echo '} } } } }' >> $edcFile
 +   edje_cc -nothreads ~/tmp/SlideShow.edc -o $OUTPUT_DIR/SlideShow.edj
 +   sleep 2 && rm -f ~/tmp/SlideShow.edc
 +   echo 'Enlightenment e17 SlideShow.edj file created'
 +   enlightenment_remote -desktop-bg-del 0 0 -1 -1
 +   enlightenment_remote -desktop-bg-add 0 0 -1 -1 $OUTPUT_DIR/SlideShow.edj;
 + }
 +
 +function gnome3 {
 +# gsettings set org.gnome.desktop.background picture-filename "$X"
 + gsettings set org.gnome.desktop.background picture-uri "$X"
 +}
 +
 + function usage {
 +   printf "%s\n%s\n\n%s\n%s\n\n%s\n\n%s" \
 +   "Automatically set a random image as the desktop wallpaper,"\
 +   "from the user's ~/Wallpaper directory."\
 +   "Idea from a script by Just17. Written by Paul Arnote for PCLinuxOS."\
 +   "Originally published in The PCLinuxOS Magazine (http://pclosmag.com), Jan. 2014 issue."\
 +   "Works for KDE4, Xfce, LXDE, Mate, e17 and GNOME3 desktops."\
 +   "Usage: $0 [arguments]"\
 +
 +   printf "\n %s\t%s" \
 +   "-h, --help" "This help text"
 +   printf "\n %s\t\tSetup for the %s" \
 +   "--xfce"    "XFCE4 Desktop"\
 +   "--mate"    "Mate Desktop"\
 +   "--lxde"    "LXDE Desktop"\
 +   "--kde4"    "KDE4 Desktop"\
 +   "--e17"    "Enlightenment Desktop"\
 +   "--gnome3" "GNOME3 Desktop"
 +   printf "\n"
 + }
 +
 +DIR=$HOME/Wallpaper/
 +
 + if [ "$1" == "--help" ] || [ "$1" == "-h" ] || [ "$1" == "" ]; then
 +   usage
 +   exit
 + fi
 +
 +while true; do
 +X=`find $DIR -type f \( -name '*.jpg' -o -name '*.png' \) -print0 | shuf -n1 -z`
 +
 +   # For Xfce
 +   if [ "$1" == "--xfce" ]; then
 +     xfce_wallpaper
 +   fi
 +   # For LXDE
 +   if [ "$1" == "--lxde" ]; then
 +     lxde_wallpaper
 +   fi
 +   # For Mate
 +   if [ "$1" == "--mate" ]; then
 +     mate_wallpaper
 +   fi
 +   # For KDE4
 +   if [ "$1" == "--kde4" ]; then
 +     kde_wallpaper
 +   fi
 +   # For e17
 +   if [ "$1" == "--e17" ]; then
 +     e17_wallpaper
 +   fi
 +   # For Gnome3
 +   if [ "$1" == "--gnome3" ]; then
 +     gnome3
 +   fi
 +   #
 +# If using Cairo-Dock add the following line
 +#         killall cairo-dock && sleep 0.3 && exec cairo-dock
 +
 +   sleep 5m
 +
 +done
 +exit 0
 +
 +</code>
 +
 +Notes:
 +  *the script is done to work with a pictures folder "~/Wallpaper". So create and fill this folder with pictures (or create a link "Wallpaper" pointing to your pictures folder) or modify the line "DIR=$HOME/Wallpaper" according to your folder.
 +  *the change of the picture is set to 5 minutes. To modify it, adapt ''sleep 5m'' according to your wishes.
 +  *For Xfce, I had to modify the "function xfce_wallpaper". The original command line is commented. To find out which parameter sweet to your system, run <code>
 +$ xfconf-query -c xfce4-desktop -l | grep "last-image$" </code> and look at the output, it will give you the path put insert between "backdrop" and "last-image"
 +  *the script must be run in a terminal that must stay open until the end of the session. I don't have found a solution to make it to work as a daemon. <del>Therefore, the script doesn't run if put in the autostart scripts.</del>
 +
 +====== Use and integration with MATE: ======
 +  * create a link to the folder of the pictures <code>
 +ln -s /path/to/the/folder/ Wallpaper </code>
 +  * save this script under /path/to/the/script_diashow and give it 755 permissions
 +  * create a script /path/to/the/script_diashow-mate: <code>
 +#!/bin/bash
 +
 +/path/to/the/./script_diashow --mate &
 +killall mate-panel
 +exit 0; </code> and give it 755 permissions
 +  * under "system"-->"preferences"-->"Personal"-->"Applications at startup" set ''/path/to/the/script_diashow-mate'' to be started automatically
 +
 +====== Use and integration with GNOME3: ======
 +For Gnome3 the way is very simple: a [[Welcome:Fedora:Configuration Fedora24 Gnome#The desktop file|desktop file]] must only be created and via the tweaktool be selected for an autostart. <code>
 +[Desktop Entry]
 +Encoding=UTF-8
 +Type=Application
 +Name=activation du diaporama de fonds d'écran gnome3
 +Comment=activation du diaporama de fonds d'écran gnome3
 +Comment[fr]=activation du diaporama de fonds d'écran gnome3
 +Exec=/the/path/to/the/script_diashow --gnome3
 +Icon=/usr/share/icons/oxygen/base/32x32/apps/preferences-desktop-wallpaper.png
 +Categories=GTK;Utility;
 +Name[fr_FR]=activation du diaporama de fonds d'écran gnome3 </code>
 +====== TO BE DONE: change the picture by every changing of virtual desktop: ======
 +
 +===== For MATE =====
 +
 +This is only a draft in order to get another picture every time you go on another desktop (function present by "Wallpapoz").
 +
 +Script to know the number of the active desktop: source: [[http://askubuntu.com/questions/272566/wmctrl-ignore-other-workspaces]]
 +
 +''Ok, I came up with my own script. At least I learned some Ubuntu bash scripting ;)'' <code>
 +
 +#!/bin/bash
 +num=`wmctrl -d | grep '\*' | cut -d' ' -f 1`
 +name=`wmctrl -lx | grep $1 | grep " $num " | tail -1`
 +host=`hostname`
 +out=`echo ${name##*$host}`
 +
 +if [[ -n "${out}" ]]
 +    then
 +        `wmctrl -a "$out"`
 +    else
 +        $2
 +fi </code>
 +
 +''What it does:
 +    gets the current desktop number
 +    searches current desktop for the given name (parameter one)
 +
 +    then, depending on the result:
 +        either switches to found app
 +        or launches given app (parameter two)''
 +
 +
  
welcome/fedora/wallpapers_on_desktop.txt · Dernière modification: 2020/02/24 19:27 (modification externe)

DokuWiki Appliance - Powered by TurnKey Linux