GnuLinux를 시작할 때마다 xfce를 사용하여 배경 데스크톱 이미지를 변경하는 방법
10098 단어 bashbashscriptlinuxgnulinux
⚠️ 이 스크립트는 xfce4 데스크톱 환경에서만 작동합니다. (이것은 xfce가 배경 이미지를 제어하는 설정이기 때문에, xfce의 일부분인 이진 파일을 사용하여 배경을 설정할 것입니다.)
좋습니다. 이것은 매우 간단합니다. 우선 바이너리 파일 xfconf-query 을 사용해야 합니다. 이 바이너리 파일의 기능은 GUI (그래픽 사용자 인터페이스) 를 사용하지 않고 데스크톱 환경에서 설정을 설정하는 데 도움을 주기 때문에 첫 번째는 형식입니다.
xfconf-query -l
이것은 채널 목록입니다. 좋습니다. 채널이 도대체 무엇인지 설명해 봅시다. 채널은 이 바이너리 파일로 설정할 수 있는 모든 하위 메뉴의 이름입니다. 왜 우리는 스크립트를 작성하지 않고 명령을 입력하기 시작합니까?이것은 매우 간단하다. 왜냐하면 우리는 어떤 설정을 수정해서 배경을 설정해야 할지 모른다😉👍✌️, 계속해서 스크립트를 준비하여 마지막 명령과 해당 출력을 살펴보겠습니다.lex@lexSys:~$ xfconf-query -l
Channels:
parole
thunar-volman
xfprint
ristretto
xfce4-power-manager
xfce4-notifyd
xfce4-appfinder
thunar
xsettings
xfce4-panel
keyboards
xfce4-session
xfce4-settings-manager
xfwm4
xfce4-keyboard-shortcuts
xfce4-desktop
displays
인쇄 채널 목록을 출력하기 때문에 논리적인 이유로 데스크톱 설정을 수정해야 합니다. 백엔드 데스크톱을 수정하는 데 필요한 옵션이 있는 채널은 xfce4-desktop
입니다.다음은 우리가 이 채널에서 수정할 수 있는 설정을 보여 줍니다. 이것은 다음 명령
xfconf-query -c xfce4-desktop -lv
으로 하는 것입니다. 좋습니다. 이 명령의 매개 변수-c
는 채널을 설정하는 데 사용되는 (xfce4-desktop
입니다. -l
는 이 채널의 설정을 보여 줍니다. 그런데 왜 제 명령은 -l
가 없습니까? -lv
???알겠습니다. 매개 변수 -v
는 상세한 출력을 표시하는 데 사용되기 때문에, 이 예에서 사용하면, 명령은 채널 xfce4-desktop
의 설정 목록과 그에 상응하는 값을 표시합니다.😉👍✌️, 또한 명령의 순서는 xfconf-query -lvc xfce4-desktop
일 수 있으므로 명령과 해당 명령의 출력은 다음과 같습니다.lex@lexSys:~$ xfconf-query -lvc xfce4-desktop
/backdrop/screen0/monitor0/image-path /home/lex/Descargas/QwOrRDy.jpg
/backdrop/screen0/monitor0/image-show true
/backdrop/screen0/monitor0/image-style 5
/backdrop/screen0/monitor0/workspace0/color-style 3
/backdrop/screen0/monitor0/workspace0/image-style 5
/backdrop/screen0/monitor0/workspace0/last-image /home/lex/Descargas/QwOrRDy.jpg
/backdrop/screen0/monitor1/image-path /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
/backdrop/screen0/monitor1/image-show true
/backdrop/screen0/monitor1/image-style 5
/backdrop/screen0/monitor1/workspace0/color-style 0
/backdrop/screen0/monitor1/workspace0/image-style 5
/backdrop/screen0/monitor1/workspace0/last-image /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
/desktop-icons/file-icons/show-filesystem true
/desktop-icons/file-icons/show-home true
/desktop-icons/file-icons/show-removable true
/desktop-icons/file-icons/show-trash true
/desktop-icons/icon-size 48
/desktop-icons/show-thumbnails true
/desktop-icons/style 2
/desktop-icons/tooltip-size 64.000000
/desktop-menu/show-icons true
/last/window-height 546
/last/window-width 666
여기서 배경 그림을 설정하는 설정이 /backdrop/screen0/monitor0/last-image
인 것을 볼 수 있습니다. 따라서 모든 설정을 설정하려면 명령-s
을 사용해야 합니다. 그래서 완전한 명령은 이렇게 해야 합니다xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s pathOfOurImageToSet
. 좋습니다. 마지막으로 우리의 주요 명령은 Bash 스크립트를 만드는 시간입니다.다음 단계에서는 모든 이미지를 배치하는 폴더를 만듭니다. 스크립트는 무작위로 이미지를 촬영하고 배경으로 설정합니다. 폴더 이미지나 그림에 폴더를 만들어서 폴더에서 하는 것이 좋습니다.
mkdir /Images/backgroundImages
현재 가장 멋있는 것은 첫 번째로 배경 이미지 폴더의 파일 총량을 얻기 위해 변수를 설정하는 것입니다. 이것은 다음 명령을 통해 이루어집니다.fileNumber=$(ls -1 $HOME/Images/backgroundImages|wc -l)
이 파이프 명령을 설명합니다. 우선 ls -1 $HOME/Images/backgroundImages
이 ls
명령은 매개 변수 -1
를 사용하여 폴더의 파일을 표시하고, ls 줄마다 파일을 표시합니다. 그리고 이 명령의 출력 파이프를 wc -l
이 명령으로 해서 wc가 폴더의 이미지 파일 총수를 되돌려줍니다.셸 변수$RANDOM
를 사용해야 하기 때문에 이것이 필요합니다. 셸 변수가 어떻게 작동하는지 봅시다.랜덤이었어
Each time this parameter is referenced,random integer between 0 and 32767 is generated. The sequence of random numbers may be initialized by assigning a value to RANDOM. If RANDOM is unset, it loses its special properties, even if it is subsequently reset.
알겠습니다. 위의 셸 변수는 0에서 32767 사이의 무작위 수를 취할 수 있습니다. 그러나 우리는 이러한 방식으로 이 범위를 제한할 수 있습니다. 우리는 bash의 문법으로 산술 연산
$(())
을 해야 합니다. 예를 들어 0에서 1000 사이의 무작위 수를 얻으려면 셸에 다음과 같이 입력해야 합니다.echo $(( $RANDOM % 1000 ))
그래서 이게 어떻게 된 일인지 모르실 수도 있어요. (네, 제 생각이 미쳤을지도 몰라요. 제가 간단한 식으로 설명할 수는 없어요. 미안해요) 그런데 저희가 설명해 드릴게요.😉👍✌️ 그림 폴더의 파일 총수가 필요합니다. 이 숫자는 랜덤수를 가져오는 수량 제한을 설정하는 데 도움을 줄 것입니다. 랜덤수를 가져오는 결과를 사용하여 배경 그림 폴더에서 그림을 선택할 것입니다. 좋습니다. 코드를 보고 이 점을 더 잘 설명하겠습니다.😉.제 대본을 한번 보도록 하겠습니다.😉👍✌️ 그리고 이런 혼란 속에서 모든 일이 어떻게 작동하는지 설명한다.
#!/usr/bin/env bash
folderPath="/home/lex/Imágenes/"
let fileNumber=$(ls -1 $folderPath|wc -l)
getFileNumber(){
let randomNumber=$(( $RANDOM % $fileNumber ))
}
getFileNumber
until [[ $randomNumber -ne 0 ]]; do
getFileNumber
done
imageToSet=$(ls -1 $folderPath|sed -n ${randomNumber}p)
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s $folderPath$imageToSet
먼저 이 스크립트가 어떻게 작동하는지 설명해 봅시다. 좋습니다. 첫 줄에shebang이 있습니다. 이 코드는 프로그램 마운트가 어떤 해석기를 사용해야 하는지 알려 줍니다. 그리고 우리는 $folderPath
라는 변수가 있습니다. 이 변수는 우리의 파일 폴더 경로, 우리의 폴더와 이미지가 어디에 있는지 저장합니다.그리고 이미지 폴더의 파일 총량을 저장하기 위해 let fileNumber=$(ls -1 $folderPath|wc -l)
이 변수가 있습니다. let
이 변수의 값은 정수입니다. 그리고 함수 getFileNumber
가 있습니다. 이 함수는 수량에 따라 무작위 이미지 파일을 얻을 수 있습니다. 이 함수는 폴더backgroundImages에서 순환 중 until
에서 어떻게 필터합니까?이것 좀 봅시다...RANDOM 셸 변수는 0과 32767 사이에 있는 숫자를 되돌려줍니다. 문제는 0이 있습니다. 이미지 파일의 수량에 따라 무작위 수를 얻으려면 0을 얻을 수 있지만, 이것은 실제 파일 수량에 없습니다. 필터와 순환을 이 순환 함수 getFileNumber
가 0이 될 때까지 놓아두었기 때문입니다.간단하게 말하자면, 함수 getFileNumber
의 결과가 0이면, 함수는 0이 되지 않을 때까지 계속 실행되며, 마지막으로sed와 인자 -n
를 사용합니다. 이 인자는 줄 수를 인쇄하고, 심지어는 텍스트에서 문자열을 검색할 수 있습니다. 만약 문자열이 일치한다면, 이 문자열을 인쇄한 줄 (예, 마치 grep
처럼, 그러나sed를 사용하면 매우 멋있습니다.😁😁😁) 변수 randomNumber
의 무작위 값을 사용하여 이 그림 파일의 이름을 가진 숫자 줄을 인쇄합니다. 이것은 이전 인자에 변수 $folderPath
와 $imageToSet
를 연결하기 위해서입니다. 이 명령 xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s $folderPath$imageToSet
에서 데스크톱 배경 그림을 설정하는 것은 간단합니다. 다음 단계는 xfce4가 시작될 때 실행할 수 있도록 이 스크립트를 설정하는 것입니다.간단합니다. GUI(Grafic 사용자 인터페이스)를 사용할 수 있는 두 가지 방법이 있습니다. 이를 위해 Ctrl+Esc를 누르면 프로그램 메뉴를 열고 세션을 검색하고 선택을 시작합니다.세션과 시작 창을 열고 프로그램 Autostart를 선택한 다음 추가 중 누르고 프로그램 이름만 입력하십시오. 변경 Background, 명령에 스크립트 경로를 입력할 수 있습니다.😉👍✌️. 다른 방법은 하나를 만드는 것이다.~/.config/autostart
의 데스크톱 파일이 좋습니다. 먼저 해당 이름을 가진 파일을 만듭니다. 이것은 ChangeBackground.desktop
이어야 합니다. 그 내용에 다음과 같은 내용을 추가합니다.[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=ChangeBackground
Comment=Script for change the background.
Exec=/home/lex/changeBackground.sh
OnlyShowIn=XFCE;
StartupNotify=false
Terminal=false
Hidden=false
여기서 중요한 것은 스크립트의 경로를 Exec= 섹션에 배치하는 것입니다. 마지막으로 우리의 스크립트는 실행 권한이 있어야 합니다. 우리는 다음 명령을 통해 스크립트를 부여할 수 있습니다.
sudo chmod u+x changeBackground.sh
이것들, 나는 이 글이 도움이 될 수 있기를 희망하기 때문에 Gnulux(Linux)를 사용하여 평화와 사랑, 영원히 포기하지 않고 즐거운 인코딩과 프로그래밍...👍✌️
Reference
이 문제에 관하여(GnuLinux를 시작할 때마다 xfce를 사용하여 배경 데스크톱 이미지를 변경하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/titanhero/how-to-make-a-script-to-change-our-background-image-in-every-boot-in-gnulinux-with-xfce-2pme텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)