De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Planos de fundo aleatórios no GRUB

Colaboração: Anderson H. Dalcy

Data de Publicação: 18 de January de 2010

Bem, lendo a recente dica a respeito do pacote "grub-splashimages" veiculada aqui na Dicas-L, achei o sistema de customização do GRUB bem interessante e flexível.

Mas como, em geral, costumo enjoar rápido de imagens de fundo e afins, dei uma pesquisada e resolvi escrever um script que mudasse a imagem de fundo a cada boot. Venho aqui então compartilhá-lho com todos a quem possa interessar.

Basta salvá-lo e dar permissão de execução. Para que a troca ocorra em todo boot, configure-o para ser executado na inicialização do sistema. No meu caso, usei a opção "Aplicativos de sessão" do próprio Gnome para isso, mas existem outras maneiras, mesmo sem ambiente gráfico. E uma observação: antes de executá-lo pela primeira vez, modifique a variável DIR (que encontra-se no topo do script, vazia) e adicione o caminho para a pasta que contém as imagens "candidatas" a plano de fundo do GRUB. Outra coisa importante a se atentar é que o script é "burro", não sabendo diferenciar imagens de outros formatos de arquivos. Portanto não use uma pasta que contenha outros arquivos que não sejam imagens (nos testes que fiz aqui, ele travou consumindo 100% de processamento ao tenta definir uma "não-imagem" como plano de fundo).

Download do Script

  #! /bin/bash
  # Script para alterar a imagem de fundo do GRUB aleatóriamente a cada boot
  
  # caminho do diretório contendo as imagens de origem. Altere de acordo com
  # suas necessidades. Preferencialmente use o caminho absoluto
  
  DIR="" 
  
  ## grande POG para determinar qual o programa usado para invocar poderes de ROOT
  TIAKE_NORIS="gksu"
  if [ -z "`which gksu`" ]
  then
  	if [ -z "`which kdesu`" ]
  	then
  		TIAKE_NORIS="sudo"
  	else
  		TIAKE_NORIS="kdesu"
  	fi
  fi	
  
  	
  #cria o diretório de trabalho na home do usuário, se não existir
  [ -e $HOME/.gbg-changer ] || mkdir "$HOME/.gbg-changer" 
  
  #gambiarra para que quem não tem o pacote "grub-splashimages" possa usar este script também
  [ -e /boot/grub/splashimages ] || $TIAKE_NORIS mkdir /boot/grub/splashimages 
  
  #dá permissão de gravar no diretório splashimages caso isso não seja permitido 
  [ -w /boot/grub/splashimages ] || $TIAKE_NORIS chmod 777 /boot/grub/splashimages 
  
  
  [ -z "`cat /boot/grub/menu.lst | grep /boot/grub/splashimages/gbg-changer.xpm.gz`" ] && xmessage -center -title 'gbg-changer' 'Por favor, adicione manualmente a entrada ao arquivo "/boot/grub/menu.lst"
  para usar como splash o arquivo "/boot/grub/splashimages/gbg-changer.xpm.gz"
  
  Ela sera algo como:
  
       splashimage=(hdX,Y)/boot/grub/splashimages/gbg-changer.xpm.gz
  
  onde X e Y variam de acordo com a disposicao das particoes do sistema.'
  
  
  function fillList()
  {
    ls -B1 $DIR > $HOME/.gbg-changer/list
    cat -n $HOME/.gbg-changer/list > $HOME/.gbg-changer/indexedList
  }
  
  function getLimit()
  {
    LIMIT=`wc -l "$HOME/.gbg-changer/list"`
    LIMIT=${LIMIT%$HOME/.gbg-changer/list}
  }
  
  function choose()
  {
    CHOSEN=$RANDOM
    let "CHOSEN %= $LIMIT"
    CHOSEN=$(($CHOSEN+1))
  }
  
  function getFile()
  {
    FILE=`cat $HOME/.gbg-changer/indexedList | grep -w "  $CHOSEN"`
    FILE="$DIR/${FILE#*"$CHOSEN	"}"
  }
  
  function checkPrevious()
  {
    PREVIOUS=`cat $HOME/.gbg-changer/previous`
    if [ "$PREVIOUS" != "$FILE" ]
    then
      setBg
    else
      choose
      getFile
      checkPrevious
    fi
    echo "$FILE" > $HOME/.gbg-changer/previous
  }
  
  function setBg()
  {
    convert "$FILE" -resize 640x480! -colors 14 /tmp/gbg-changer.xpm
    gzip -c /tmp/gbg-changer.xpm > /boot/grub/splashimages/gbg-changer.xpm.gz
    echo "File ${FILE#$DIR'/'} foi definido como plano de fundo do GRUB!"
  }
  
  fillList
  getLimit
  choose
  getFile
  checkPrevious

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Anderson H. Dalcy