Alterando o plano de fundo da área de trabalho no bash [duplicado]

4

Eu queria fazer um script bash que tira uma foto aleatória de uma pasta e a define como plano de fundo da área de trabalho. Eu descobri o algoritmo (não é difícil), mas não consigo encontrar um comando que altere a imagem de fundo se você der o caminho para a imagem.

Eu encontrei gconftool para o bash 2. ~ e gsettings para o bash 3. ~, mas eu tenho o GNU bash, versão 4.3.42 (1) -release no Ubuntu 16.04 LTS e estes não funcionam. / p>     

por someoneb100 06.06.2016 / 17:59

2 respostas

6

Supondo que você esteja usando o Ubuntu 16.04 padrão com o Unity, você pode usar o seguinte comando para definir o papel de parede:

gsettings set org.gnome.desktop.background picture-uri "file:///home/username/path/to/image.jpg"

Você também deve olhar para Variety wallpaper changer - ele faz a mesma coisa que você quer fazer com um shell script, com muito de recursos e opções.

    
por JonasCz 06.06.2016 / 18:15
0

Eu fiz assim:

targetDir="/home/username/Photos"


function get_next_photo() {
    # Returns a random file form targetdir
    files=( "$targetDir"/* )
    echo "${files[RANDOM % ${#files[@]}]}"
}

function set_background() {
    # Takes an absolute file path as argument. Need * for spaces in path
    bg="$*"
    echo "Setting background to $bg"
    gsettings set org.gnome.desktop.background picture-uri "file://$bg"
}


background=$(get_next_photo)
echo "Next background is $background"
set_background $background

Em seguida, adicione um iniciador rápido ao seu script no encaixe e você poderá alterar seu papel de parede em um clique.

    
por CodeKid 06.06.2018 / 01:24