Apt Pinning

Tags: — June 13, 2007 @ 12:40 pm

Com o lançamento do Debian Etch, e as Recentes atualizações do E17,estive com um pequeno problema… Como atualizar meus pacotes do E17 sem atualizar todo meu sistema para o Debian Unstable…

Com ajuda do pessoal do canal #debian@irc.freenode.net do irc encontrei um ótima solução. Trata-se do Apt Pinning

“Pinning permite que você rode certos pacotes de uma versão (estável, teste ou instável) sem a necessidade de atualizar todo seu sistema”

O Apt Pinning consistem em definir prioridades para cada versão de cada pacote, ou de todos os pacotes. Assim aversão de maior prioridade sempre será a usada, a menos que os pacotes a serem instalados não existam nesta versão. O Pinning também funciona para manter atualizada a versão de um pacote instalado anteriormente, sem precisar atualizar os demais pacotes, a não ser sua dependências (:-| confuso? continue lendo…) .

No meu caso, minha intenção é manter todo meu sistema como o Debian Etch, atual estável, com excessão do Enlightenment DR17, instável. Segue meu sources.list:

arquivo ‘/etc/apt/sources.list’

## Debian official ##
deb http://ftp.debian.org/debian/ stable main contrib non-free
deb http://ftp.debian.org/debian/ testing main contrib non-free
deb http://ftp.debian.org/debian/ unstable main contrib non-free

## Atualizacoes de seguranca – para stable e testing, apenas ##
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free

##Enlightenment Window Manager 0.17 ##
deb http://edevelop.org/debian/ unstable main contrib non-free

Com esta configuração do ‘/etc/apt/sources.list’ nós estaría-mos instalando sempre a versão unstable dos pacotes, a menos que no momento da instalação fosse definida explicitamente a versão a ser usada: ‘# aptitude -t testing install <package_name>‘, pois a prioridade é sempre a última versão.

Para definir a prioridade para outra versão que não a ultima devemos configurar outro arquivo, o ‘/etc/apt/preferences’, neste arquivo podemos configurar a versão prioridade para cada pacote, ou para todo o sistema (utilizando-se um *, como no exemplo). O ‘Pin-Priority’ é um valor numérico que define a prioridade da versão, quanto maior o valor, maior a prioridade. Caso este arquivo não exista, apenas crie um novo.

Em meu ‘/etc/apt/preferences’ eu defini as prioridades na seguinte ordem: stable, testing e unstable:

arquivo ‘/etc/apt/preferences’

Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release a=testing
Pin-Priority: 800

Package: *
Pin: release a=unstable
Pin-Priority: 700

Após configurar os arquivos corretamente atualize seu apt: ‘#aptitude update‘.

Com está configuração, todos seu pacotes serão mantidos na versão estável. Se um pacote não existe nesta versão ele será instalado na versão teste, caso também não exista na teste, será instalada a versão instável.

Assim, ao executar ‘#aptitude -t unstable install e17‘ será instalada a versão instável do Enlightenment, e suas dependências serão também atualizadas para a versão instável, conforme necessário. Ao executar ‘#aptitude upgrade‘ seus pacotes estáveis serão atualizados para última versão estável, quando necessário, e seus pacotes teste , ou instáveis, serão atualizações para suas respectivas versões.

Nota:

“Instalando pacotes de distribuições mais recentes, instalará suas bibliotecas também, o que pode acabar com você tendo as desvantagens da versão stable (programas desatualizados) assim como as desvantagens das versões testing e unstable (suporte não tão bom quanto na versão stable, bugs) sem as vantagens de ambos”

Como pode-se ver, pelo texto acima, extraído da wiki Debian, não é recomendado mesclar versões, contudo, em alguns casos, é preferível atualizar apenas os pacotes desejados do que todo seu sistema. Minha dica é: “se está funcionando bem, deixe estar, a menos que necessite da nova versão de algum programa”.

Fontes: http://wiki.debian.org/AptPinning

Teclas Multimedia no X

Tags: , , — June 8, 2007 @ 11:13 am

Muitos usuários GNU/Linux podem ter problemas com com teclados multimedia, onde as teclas não funcionam no ambiente X. Com os passos a seguir você poderá facilmente configurar seu teclado multimedia para as funções que desejar.

O problema do não conhecimento das teclas multimedia é que o servidor X não reconhece os códigos das teclas (keycodes) quando pressionados, então devemos configurar esses códigos corretamente, para isso, obtenha os códigos usando aplicativo ‘xev’.

Apenas execute o comando ‘$ xev‘ no terminal. Ao executá-lo, basta pressionar as teclas desejadas e obter o keycodes destas, a saída no terminal será mais ou menos como esta:

KeyRelease event, serial 31, synthetic NO, window 0×2800001,
root 0×7d, subw 0×0, time 2792224, (-22,86), root:(565,101),
state 0×10, keycode 160, same_screen YES,
XLookupString gives 0 bytes:

O valor ‘keycode’ é o que precisamos, neste exemplo, o keycode é 160. Para facilitar use o script a seguir:

xev | grep keycode | \
sed s/”^.*keycode *\([0-9]\+\).*$”/”keycode \1 = “/ | uniq

Execute os comandos e pressione em sequência as suas teclas multimedia e, após fechar o aplicativo xev você verá uma saída como a seguir:

keycode 36 =
keycode 144 =
keycode 162 =
keycode 164 =

Algumas vezes, como neste exemplo, você obterá um primeiro keycode que não é uma tecla multimedia, simplesmente a remova. Se você tiver obtido os keycodes na corretamente na saída, como acima, poderá prosseguir com a configuração dos keysyms no X, caso contrário veja a seguir.

Caso seu você não obtenha nenhuma saída no terminal após executar o xev, execute o comando ‘$ dmesg‘ no terminal. Você deverá ver algo como isto na saída:

atkbd.c: Unknown key released (translated set 2, code 0×96 on isa0060/serio0).
atkbd.c: Use ’setkeycodes e016 <keycode>’ to make it known.

Isso significa que seu kernel não possui keycodes mapeados dos ’scancodes’ de seu teclado. Assim você deverá adicionar uma linha no seu arquivo ‘/etc/rc.local‘ pra cada keycode que deseja adicionar, como a seguir:

Arquivo ‘/etc/rc.local’

setkeycodes e008 136
setkeycodes e016 150
… e assim por diante …

Onde o primeiro número (e008) é o que você vê no dmesg, e o segundo é um keycode não utilizado no seu kernel. Geralmente você pode obter keycodes válidos obtendo os últimos dois dígitos do primeiro número, converter de hexadecimal para decimal e adicionando 128.

Isto vai adicionar corretamente os keycodes a partir dos scancodes do teclado na inicialização do sistema, para adicioná-los sem reiniciar o sistema apenas rode ‘sh /etc/rc.local‘ no terminal. Depois disso, reinicie o X e tente usar o xev novamente.

Agora você precisará criar um arquivo que relacione os keycodes obtidos com sinais de teclas, ou keysyms. Crie um arquivo chamada ~/.Xmodmap e adicione as linhas como a seguir:

! Configuracoes de Teclas multimedia no X
! Use ! for comments

keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext

Uma lista com os keysyms possíveis pode ser encontrada no arquivo ‘/usr/share/X11/XKeysymDB‘, este é o caminho do arquivo no Debian, podendo variar em outras distribuições, relacione corretamente os keycodes obtidos com os respectivos keysyms (as linhas acima são apenas um exemplo, os códigos podem variar).

Agora adicione o comando a seguir no final de seu ~/.xinitrc, ou crie o arquivo, caso não exista:

/usr/bin/xmodmap ~/.Xmodmap

Caso deseje que os keysyms sejam carregados na sessão de qualquer usuário, adicione o comando acima no final de seu ‘/etc/X11/xinit/xinitrc‘ e mude o diretório do arquivo (como ‘/usr/bin/xmodmap /etc/X11/xinit/Xmodmap‘).

Depois disse, para definir funções para as teclas multimedia, basta adicionar os atalhos e funções correspondentes nas configurações de seu Gerenciador de Janelas.

Enlightement DR17

Painel de Controle -> Teclado -> Keybindinds

Xfce4

Settings Manager -> Teclado -> Atalhos

KDE

Painel de Controle -> Regional e Acessibilidade -> Atalhos do Teclado
ou no Kmix: Configurações -> Configure GlobalShortcuts

Fonte: http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys#Setting_up_xmodmap

not only E17…

Tags: , — @ 12:51 am

Só pra variar um pouco, aí vão alguns screenshots to Xfce4 com composite:

Xfce4, GTK+ Linsta e composite Xfce4, GTK+ LiNsta e composite

Note o detalhe da transparência na decoração da janela do primeiro screenshot (a lá windows vista), o segundo mostra a janela transparente ao mover…

Os temas usados são o GTK+ Aero-LiNsta (http://xfce-look.org/content/show.php/Aero-LiNsta?content=57915), e Xfwm Vista Royale (http://xfce-look.org/content/show.php/Vista+Royale?content=59665), o tema dos ícones é o Glass Icons (http://gnome-look.org/content/show.php/Glass+Icons+Theme?content=32146).
Para usar as transparências basta ter o composite instalado e habilidato no xorg.conf (veja o tutorial aqui) e configurar como quiser no painel de configuração do Xfce4 (Menu Xfce -> Settings -> Settings Manager (ou apenas ‘$ xfce-setting-show’ no terminal) -> Ajustes Epeciais do Gerenciador de Janelas -> Compositor).

Enjoy… ^.^

Red/Dark Theme

Tags: , — June 6, 2007 @ 10:29 am

Estive brincando com alguns temas nesta madrugada e tirei um screenshot:

e17 | Carbon 14 theme | GTK+ Ghostly Red theme

O Tema do E17 é o Carbon14. O tema GTK+ é o Ghostly Red (http://xfce-look.org/content/show.php/Ghostly+Red?content=58455) , pacotes Debian podem ser obtidos aqui. Também usei o xcompmgr e transset (veja posts anteriores) para criar as transparências.

DICA: para usar o transparências com xcompmgr e transset no E, desabilite o módulo DropShadow, caso mantenha ambos efeitos habilitados a performance do sistema tende a diminuir muito, além de não ficar tão bonito.

<<< Previous Page - Next Page >>>