답변:
* 편집-두 번째 시도-모든 터미널 작업에 대해 즉시 사과드립니다-희망적으로 강조 표시된 항목을 복사하여 붙여 넣으십시오. *
그놈 배경 화면의 세부 정보가 들어있는 폴더는 /usr/share/gnome-background-properties/ubuntu-wallpapers.xml입니다.
해당 파일을 편집하여 바탕 화면 ... / 배경 화면 하위 섹션이 새 폴더 및 바탕 화면 파일을 가리 키도록 할 수 있습니다.
아래는이 포럼 항목 에서 수정 된 .png 및 .jpg 파일이 포함 된 폴더에 대해 자동으로 ubuntu-wallpapers.xml 파일을 재생성 하는 스크립트 입니다.
내용을 복사하여 "ubuntu-wallpaper-generator"라는 새 텍스트 파일에 붙여 넣기
그런 다음 구문으로 파일을 실행하십시오.
sh ubuntu-wallpaper-generator <path to new wallpaper folder>
이 스크립트를 실행하는 폴더와 동일한 폴더에 ubuntu-wallpapers.xml이라는 파일이 생성됩니다.
현재 xml 파일을 안전하게 백업하십시오.
sudo cp /usr/share/gnome-background-properties/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/ubuntu-wallpapers.xml.backup
새로 생성 된 파일의 사본
sudo cp ubuntu-wallpapers.xml /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
다음은 내가 참조한 스크립트 파일입니다.
#!/bin/bash
#
# This script will take all wallpapers in a given folder and
# make them available as "default" background in the "Change Background" gui
# frontend in Ubuntu.
#
################################################################################
#CONFIG_DIR="/usr/share/gnome-background-properties"
CONFIG_DIR="./"
XML_FILE="$CONFIG_DIR/ubuntu-wallpapers.xml"
if [ $# -ne 1 ]; then
echo "*** syntax ubuntu-wallpaper-generator <path to wallpaper folder> ***"
echo "*** for example ***"
echo "*** ubuntu-wallpaper-generator /usr/share/backgrounds ***"
exit 1
else
WALLPAPER_DIR=$1
echo "*** parameters passed: $1 ***"
fi
#### First check if we have write permissions to the share dirctory. ####
touch $CONFIG_DIR/testfile >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
echo "**** No permissions to the desktop share directory. ****"
echo "**** $CONFIG_DIR ****"
echo "**** Procedure Terminated. ****"
exit 1
else
rm $CONFIG_DIR/testfile 2>/dev/null
fi
#### Show the script description message. ###
cat <<EOF
################################################################################
This script makes all pictures in the $WALLPAPER_DIR
directory available to all users defined on this system as their
system-wide GNOME wallpapers.
################################################################################
EOF
#### Fail if the wallpaper directory does not exist. ####
if [ ! -d $WALLPAPER_DIR ]; then
echo "**** The wallpaper directory \"$WALLPAPER_DIR\" does not exist. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Count the number of jpg/jpeg/png images. ####
numfiles=`ls -1 $WALLPAPER_DIR/*.jpg WALLPAPER_DIR/*.jpeg WALLPAPER_DIR/*.png 2>/dev/null | wc -l`
#### If there are no image files there then exit. ####
if [ $numfiles -eq 0 ]; then
echo "**** The wallpaper directory \"$WALLPAPER_DIR\" has no images. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Now we create the XML file containing the images for backgrounds. ####
#### Start by creating the header in the XML file. ####
cat <<EOF > $XML_FILE
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
EOF
#### Add each file to the XML file. ####
#### Doing it this way makes sure files with spaces in their names are ####
#### handled properly. (ls .... | while read fname; do) ####
ls -1 $WALLPAPER_DIR/*.jpg $WALLPAPER_DIR/*.png $WALLPAPER_DIR/*.jpeg 2> /dev/null |
while read image_name; do
echo " Adding: `basename "$image_name"`."
fname=`basename "$image_name"`
fname="${fname%%\.*}"
echo " <wallpaper>" >> $XML_FILE
echo " <name>$fname</name>" >> $XML_FILE
echo " <filename>$image_name</filename>" >> $XML_FILE
echo " <options>stretched</options>" >> $XML_FILE
echo " <pcolor>#c58357</pcolor>" >> $XML_FILE
echo " <scolor>#c58357</scolor>" >> $XML_FILE
echo " <shade_type>solid</shade_type>" >> $XML_FILE
echo " </wallpaper>" >> $XML_FILE
done
#### Create the footer for the XML file. ####
echo "</wallpapers>" >> $XML_FILE
cat <<EOF
################################################################################
You're almost done. copy the generated file ubuntu-wallpapers.xml to the
folder /usr/shared/gnome-background-properties
REMEMBER to backup the current ubuntu-wallpaper.xml in that folder first!
################################################################################
EOF
CreBS (배경 슬라이드 쇼 생성)를 사용하면 배경 화면 슬라이드 쇼용 XML 파일을 만들 수 있습니다. 이미지의 전체 경로는 XML로 저장되므로 파일을 이동할 필요가 없습니다.
여기에 업데이트 :
#!/bin/bash
################################################################################
# This script will take all wallpapers in a given folder and
# make them available as options in the "change desktop background" OR "system->pref->apperances"
# dialog boxes.
# for ubuntu or debian
# wallpapers are in /usr/share/pixmaps/backgrounds/gnome OR /usr/share/backgrounds
# config file(s) for the dialog are in /usr/share/gnome-background-properties
# --that will make them system wide.
#
#ToDo:
# paths with spaces.
################################################################################
# put the output in the same directory as this script
OutDirectory="$( cd "$( dirname "$0" )" && pwd )"
OutFile="$OutDirectory/gnome-added.xml"
# options
options="zoom" #zoom is best but stretch,center,scale,tile,span
shade_type="solid" #horizontal-gradient, vertical-gradient
pcolor="#000000"
scolor="#000000"
if [ $# -ne 1 ]; then
echo "*** need path to directory containing files to include."
echo "*** for example: /usr/share/backgrounds"
exit 1
else
ScanDirectory=$1
fi
#------need to strip and trailing "/" or this writes incorrect file names.
# not if [ "$lastchr" -eq "/" ]
# lastchr=`expr substr $ScanDirectory ${#ScanDirectory} 1` #--OR:
lastchr=${ScanDirectory#${ScanDirectory%?}}
if [ "${lastchr}" = "/" ]; then
ScanDirectory=${ScanDirectory%?}
fi
#--operating in same directory as the script? set full path for the xml file
if [ ${#ScanDirectory} -le 1 ]; then
ScanDirectory=$OutDirectory
fi
# ---does directory exist
if [ ! -d $ScanDirectory ]; then
echo "**** The wallpaper directory \"$ScanDirectory\" does not exist. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
# ----can we write to it?
# touch $OutDirectory/testfile >/dev/null 2>/dev/null
# if [ $? -ne 0 ]; then
if [ ! -w $OutDirectory ]; then
echo "**** No permissions to the desktop share directory. ****"
echo "**** $OutDirectory ****"
echo "**** Procedure Terminated. ****"
exit 1
fi
#### Count the number of jpg/jpeg/png/svg [tif(f)] images. ####
numfiles=`ls -1 $ScanDirectory/*.jpg ScanDirectory/*.jpeg ScanDirectory/*.png ScanDirectory/*.svg 2>/dev/null | wc -l`
#### If there are no image files there then exit. ####
if [ $numfiles -eq 0 ]; then
echo "**** The wallpaper directory \"$ScanDirectory\" has no images. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Now we create the XML file containing the images for backgrounds. ####
#### Start by creating the header in the XML file. ####
cat <<EOF > $OutFile
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
EOF
#### Add each file to the XML file. ####
#### Doing it this way makes sure files with spaces in their names are ####
#### handled properly. (ls .... | while read fname; do) ####
ls -1 $ScanDirectory/*.jpg $ScanDirectory/*.png $ScanDirectory/*.jpeg $ScanDirectory/*.svg 2> /dev/null |
while read image_name; do
fname=`basename "$image_name"`
echo " Adding: $fname."
echo " <wallpaper deleted=\"false\">" >> $OutFile
echo " <name>$fname</name>" >> $OutFile
echo " <filename>$image_name</filename>" >> $OutFile
echo " <options>$options</options>" >> $OutFile
echo " <pcolor>$pcolor</pcolor>" >> $OutFile
echo " <scolor>$scolor</scolor>" >> $OutFile
echo " <shade_type>$shade_type</shade_type>" >> $OutFile
echo " </wallpaper>" >> $OutFile
done
#### Create the footer for the XML file. ####
echo "</wallpapers>" >> $OutFile
나는 같은 문제에 직면하여에 배치 할 수있는 사용자 정의 XML 파일을 편집하는 Python 스크립트를 작성했습니다 /usr/share/gnome-background-properties/my-backgrounds.xml
. GitHub 에 있습니다 .
사용법 예 :
xml 파일 을 추가 space_galaxy.jpeg
하고 fuzz_dog.png
xml 파일에 추가하려면
python my-backgrounds.py -a space_galaxy.jpeg fuzzy_dog.png -n "Cool Galaxy" "Cute Dog"
기본 xml 파일은 /usr/share/gnome-background-properties/my-backgrounds.xml
GNOME이 xml을 감시하는 위치에 있습니다. 대체 xml 파일을 지정하려면 다음 -x
옵션을 사용하십시오 .
python my-backgrounds.py -a space_galaxy.jpeg -x ~/my-backgrounds.xml
xml 파일에서 항목을 제거하려면 다음 -r
옵션을 사용하십시오 .
python my-backgrounds.py -r "Cool Galaxy" fuzzy_dog.png
이것은 GNOME 3.6 및 Python 3.3에서 작동합니다.
이것이 내가하는 방법입니다.
데스크탑> 배경 변경을 마우스 오른쪽 버튼으로 클릭하십시오.
배경 탭에서 추가를 클릭하십시오.
폴더 로 이동 하여 하나를 클릭하고 Ctrl+를 눌러 모든 배경 화면을 선택하십시오 A.
이제 선택기에 표시되어야합니다. 또한 자동으로 배경 화면을 변경하기 위해 사용한 작은 응용 프로그램을 찾으려고 노력하고 있습니다. 내가 찾으면 게시 할 수 있습니다.
나는 Wally라고 불리는 것을 발견하고 강력하게 추천했지만 그 것을 사용하지 않았다는 것을 기억합니다. 어쨌든, 당신은 입력하여 설치할 수 있습니다
sudo apt-get install wally
터미널에서.
폴더를 수동으로 업데이트하지 않고 셀렉터에 배경 화면을 표시하려면에 배경 화면을 추가해야합니다 /usr/share/backgrounds
.
또한 폴더에 심볼릭 링크를 만들어 선택기의 배경 화면을 나열 할 수있었습니다.
$ cd /usr/share/backgrounds
$ ln -s /path/to/wallpapers
매번 루트가 소유 한 폴더에 월페이퍼를 추가하는 것이 항상 편리한 것은 아니기 때문에 도움이 될 수 있습니다.
$HOME/.local/share/gnome-background-properties/my-wallpapers.xml
시스템 배경 파일을 편집하는 대신이를 작성 하여 사용할 수 있습니다 .