Mostrar mensagens com a etiqueta Aspecto e Facilidade de Utilização. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Aspecto e Facilidade de Utilização. Mostrar todas as mensagens

quarta-feira, 8 de abril de 2015

Skype com aspecto nativo em GTK

# if [ $(dpkg --print-architecture) == "amd64" ] ; then dpkg --add-architecture i386 ; fi
# apt-get install gtk2-engines-pixbuf:i386

quarta-feira, 24 de dezembro de 2014

Mudar nomes de fotografias para incluir a data no nome

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in *.jpg *.JPG
do
  echo Processing $i...
  SPEC=$(/usr/bin/exiv2 $i  |/bin/grep -a timestamp) 
  [ $? -eq 0 ] || (echo Skipping $i. && continue);
  IFS=$SAVEIFS
  read X Y YEAR MONTH DAY HOUR MINUTE SECOND <<<${SPEC//:/ }
  IFS=$(echo -en "\n\b")
  [ "x$YEAR" = "x" ] && echo Skipping $i. && continue;
  mv "$i" "$YEAR-$MONTH-$DAY $HOUR:$MINUTE:$SECOND - $i"
  IFS=$(echo -en "\n\b")
done

IFS=$SAVEIFS

sábado, 12 de novembro de 2011

Manual de Sobrevivência para Gnome 3

ATENÇÃO: Durante estes passos é conveniente resistir ao impulso de espancar alguém.

Eis como sobreviver (moderadamente) ileso ao Gnome 3:

  1. Encontrar uma forma de chegar a um terminal;

  2. # apt-get install gnome-session-fallback gnome-tweak-tool

  3. Encontrar forma de fazer logout e, no ecrã de login, escolher o modo "GNOME Fallback";

  4. Encontrar forma de executar a "Gnome Tweak Tool", percorrer as opções e tentar escolher as que pareçam menos insanas;

  5. Recuperar a sanidade. Para isto é necessário carregar na tecla Alt enquanto se clica com o botão do lado direito do rato num dos panels e escolher a opção "Remove From Panel" no lixo inútil que povoa os panels e, de seguida, escolher "Add to Panel" e voltar a repor os applets que lá estavam e que ninguém mandou tirar.




Referências:
ao2's blog - Gnome 3: go to Shell? Not just yet, thanks.
Dedoimedo - Gnome 3 - This is the end, it seems

segunda-feira, 22 de novembro de 2010

Optimizações para o arranque (e não só)

Ultimamente tenho estado a testar técnicas de melhoria de desempenho no meu computador.

# apt-get install readahead-fedora preload
# #switch apt repositories to unstable, apt-get update
# apt-get install bootchart bootchart-view
# #switch apt repositories back to testing

Com a utilização do readahead consegue-se reduzir o tempo de arranque da máquina. No meu PC, reduzi de cerca de 66 segundos para 55. O Ubuntu utiliza o ureadahead, uma variante deste programa.
Com o preload, o tempo de espera antes de os programas iniciarem reduz-se visivelmente.
O tempo de arranque é medido com o bootchart. É contabilizado desde o momento em que o kernel é carregado pelo GRUB até depois de o preload ter terminado. O desktop pode ser utilizado um pouco antes de o preload iniciar, algo que deve ser bem evidente no gráfico.

AVISO: As instruções a seguir devem ser vistas como indicações e não como um how to pronto a seguir. Para se obterem os melhores resultados os passos devem ser afinados para a configuração de cada máquina.

bootchart:
Cria um gráfico de utilização do CPU, acessos a disco e de processos em execução. É bastante útil para analisar o processo de arranque. Não está em Debian testing, pelo que é necessário trocar temporariamente os repositórios para unstable para o instalar.
  1. Activar o bootchart:
    $ grep CMDLINE /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/sbin/bootchartd"

  2. Ver o dito gráfico:
    $ cd /tmp/; bootchart; eog bootchart.png

  3. Convém fazer com que o bootchart registe *todo* o processo de arranque. Com a configuração pré-definida em Debian só é registado o arranque até todos os programas terem sido iniciados. Como nesse momento o sistema ainda não está pronto a utilizar, convém esperar mais um pouco (cerca de 20 segundos, no meu caso).
    Depois de todas as alterações neste post, o último processo a considerar como parte do arranque passará a ser o preload. O bootchart só deve terminar então depois de o preload ter terminado. Antes da configuração do preload, e para melhor compreender as configurações intermédias, pode-se considerar o gvfsd-metadata (ver adiante).

    Terminar o bootchart 30 segundos depois de o preload iniciar a execução:
    $ cat /etc/init.d/bootchart
    (...)
    case "$1" in
    start)
    RETSTATUS=1
    while [ ! $RETSTATUS -eq 0 ] ; do
    #this is inside an if because otherwise the script fails and dies...
    if /bin/sh -c "/bin/pidof /usr/sbin/preload > /dev/null"; then
    RETSTATUS=$?
    else
    RETSTATUS=$?
    fi
    sleep 1;
    done
    sleep 30;
    if pgrep -x $NAME > /dev/null; then
    (...)

Depois destas configurações é necessário executar:
# update-grub


readahead:
É composto por três tarefas essenciais:
  1. Profiling - analisa o processo de arranque da máquina e guarda um registo dos ficheiros necessários durante o mesmo. Esta operação é executada pelo menos uma vez por mês ou sempre que o processo sofre alterações (p.ex., com a instalação ou actualização de pacotes). Quando isto acontece, o processo é mais lento do que o habitual (no meu caso, o pior que vi foi 20 segundos mais lento -- depois das optimizações aqui indicadas, o profiling passa a pesar apenas uns 2 a 5 segundos adicionais);

  2. readahead - sempre que o sistema inicia, e antes de qualquer outra operação, lê os ficheiros que vão ser necessários do disco para memória, de forma sequencial e contínua;

  3. Optimização - diariamente, enquanto a máquina está a ser utilizada, o registo de ficheiros a ler é ordenado para que a leitura do disco durante o arranque seja ainda mais rápida.

A configuração que se segue faz com que o profiling seja feito durante *todo* o processo de arranque, desde o início até ao momento em que o desktop está pronto a ser utilizado.
No meu PC, decidi que esse instante é o momento em que o processo gvfsd-metadata já se encontra em execução. Digo ainda ao profiler para se manter em execução durante 3 segundos depois de detectar este processo.

Estas configurações foram determinadas empiricamente, através da observação do gráfico do bootchart. O gvfsd-metadata é o último processo que vejo a iniciar no gráfico. Isto poderá mudar em futuras versões do Gnome, para além de que outras configurações podem fazer com que seja outro processo qualquer o último a iniciar. Convém escolher sempre o "último" processo mais adequado para a máquina em questão.

$ grep COLLECT /etc/default/readahead-fedora 
READAHEAD_COLLECT="yes"
READAHEAD_EXTRA_COLLECT="3"

$ cat /etc/init.d/stop-readahead-fedora
(...)
case "$1" in
start|stop)
(
RETSTATUS=1
while [ ! $RETSTATUS -eq 0 ] ; do
if /bin/sh -c "/bin/pidof gvfsd-metadata > /dev/null"; then
RETSTATUS=$?
else
RETSTATUS=$?
fi
sleep 1;
done

rm -f /.readahead_collect
(...)


Se existirem ficheiros de configuração em /etc/readahead.d/, pode ser conveniente apagá-los antes do primeiro profiling ou depois da afinação destes parâmetros.

O ficheiro /etc/readahead.conf tem parâmetros interessantes que podem (e devem) ser afinados (ver RAC_EXCLUDE).


Depois desta configuração é necessário executar:
# touch /.readahead_collect
...para que o profiler corra no próximo arranque.

preload:
Este programa está permanentemente em execução e analisa os padrões de utilização do computador por parte do utilizador. Tendo em conta esta análise, faz uma previsão das bibliotecas e executáveis que deverão ser pedidos brevemente e lê-os do disco para a memória antes de serem necessários.

AVISO: É importante que o preload nunca comece a executar ao mesmo tempo que o readahead está em profiling. Com a configuração anterior o profiler do readahead irá terminar 4 segundos depois de o gvfsd-metadata iniciar. A modificação ao script de inicialização em baixo faz com que o preload inicie 10 segundos depois de o mesmo processo iniciar, evitando que profiler e preload executem em concorrência.
No meu computador isto é suficiente. Noutros pode não ser. Mais uma vez, é essencial observar os gráficos do bootchart para tomar uma "boa" decisão.

Ao fim de alguns dias de utilização começam a notar-se melhorias na velocidade do sistema. :)

$ cat /etc/init.d/preload
(...)
# Required-Start: $all
(...)
start)
echo -n "Starting $DESC: "
RETSTATUS=1
while [ ! $RETSTATUS -eq 0 ] ; do
if /bin/sh -c "/bin/pidof gvfsd-metadata > /dev/null"; then
RETSTATUS=$?
else
RETSTATUS=$?
fi
sleep 1;
done
sleep 10;
if start-stop-daemon --start --quiet -u 0 $PRELOAD_IOSCHED --exec $DAEMON -- $DAEMON_OPTS; then
(...)


O ficheiro /etc/preload.conf tem parâmetros que podem (e devem) ser afinados (ver mapprefix e exeprefix).

Depois desta configuração é necessário executar:
# update-rc.d preload disable
# update-rc.d preload enable



Referências:
Bootchart
README e ficheiros de configuração do readahead e preload (/usr/share/doc/{readahead-fedora,preload}/, /etc/{readahad,preload}.conf)

quinta-feira, 7 de janeiro de 2010

Configurações para o arranque do sistema

GRUB2: A nova versão do GRUB. A configuração é feita em ficheiros diferentes do antigo menu.lst.
Bootchart: criação de gráficos do processo de arranque. Útil para analisar quanto tempo demoram os programas a arrancar até que o sistema esteja pronto a usar.
Kernel Mode Setting (KMS): definição da resolução do ecrã no núcleo do Sistema Operativo. Permite evitar que o ecrã "pisque" tantas vezes durante o arranque e na alteração entre o sistema gráfico e os terminais virtuais (TTYs).
Novo sistema de init: Permitirá definir a ordem dos programas a arrancar com o sistema baseando-se nas suas dependências. Tornará obsoleta a configuração baseada em números de sequência e supostamente o arranque será mais rápido.

O leitor mais interessado deverá consultar as referências para melhores explicações sobre cada uma destas opções. :-)

Notas:
- O KMS passou a ser usado por pré-definição em Debian para placas gráficas Intel. Já não é necessário fazer nenhuma configuração. Placas de outros fabricantes poderão precisar de configurações extra.
- O novo sistema de init já se encontra em Debian. Não são necessárias configurações adicionais.
- As resoluções suportadas pelo GRUB2 (e que dependem da BIOS) podem ser consultadas durante o arranque: no próprio GRUB carregar na tecla "C" e escrever: vbeinfo.

Ainda há um momento durante o arranque em que o ecrã muda a resolução: quando do GRUB se passa para o arranque do Linux. É um instante breve, em que apenas aparece a linha "Loading Linux..." e pouco mais. A opção GFXPAYLOAD na configuração do GRUB2 (a partir da versão 1.98) serve exactamente para manter a resolução durante esta transição.

Configurações com GRUB2, bootchart:
  1. # egrep "(CMDLINE|GFX)" /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/sbin/bootchartd"
    GRUB_CMDLINE_LINUX=""
    GRUB_GFXMODE=1280x1024x32
    GRUB_GFXPAYLOAD_LINUX=1280x1024x32
  2. # update-grub2


TODO: plymouth, uvesafb

Referências:
Bootchart - How it Works
Bootchart - README
Debian Wiki - KernelModesetting
Debian Wiki - Dependency based boot sequence
Mailing list debian-devel-announce: The future of the boot system in Debian
[Lucid][Ubuntu 10.04] High resolution Plymouth & Virtual Terminal for ATI/NVIDIA cards with proprietary/restricted driver

domingo, 4 de outubro de 2009

Manter o relógio consistente entre vários SOs instalados no mesmo computador

Se se cometer a burrice de indicar a utilização de UTC durante a instalação de Debian num sistema com outro(s) SOs instalados com suporte para fusos horários (e.g.: Windows XP, Vista ou 7), o mais provável é mais tarde ou mais cedo o relógio ficar errado em pelo menos um dos sistemas.

Solução:

  1. Confirmar as configurações do fuso horário: # dpkg-reconfigure tzdata

  2. Editar o ficheiro /etc/default/rcS e verificar que está definida a variável UTC=no

  3. Reboot! (pode não ser necessário, mas convém verificar que todos os SOs na máquina estão agora bem configurados



Referências:
debian-laptop mailing list: "Re: Dual boot Vista Debian Unstable hardware clock read incorrectly"
Debian GNU/Linux System Administrator's Manual - 16.1 Setting time, time zones and Daylight Saving
Hora legal segundo o Observatório Astronómico de Lisboa

quinta-feira, 1 de outubro de 2009

~/.vimrc

# apt-get install vim-gnome
$ echo ":syntax enable
:set mouse=a
:set shiftwidth=4
:set tabstop=4
:set expandtab
:set smartindent
\"Copy with Ctrl+C, cut with Ctrl+X, and paste with Ctrl+V
vmap \"+yi
vmap \"+c
vmap c\"+p
imap \"+pa
" >> ~/.vimrc

quarta-feira, 8 de julho de 2009

Integrar programas do KDE no Gnome

Os programas desenhados para o KDE, que utilizam o toolkit QT, podem aparecer com mau aspecto ou parecer mal desenhados quando usados em Gnome.

Para dar um aspecto GTK aos programas em QT, basta instalar o pacote qt4-qtconfig.
Depois, é só usar o qtconfig (presente no menu System > Preferences > Qt 4 Settings) e indicar que se quer usar o estilo "Desktop Settings (Default)" ou o estilo GTK+.
Depois de feitas as alterações o pacote pode ser apagado, bem como as dependências que trouxe atrás.

Alternativamente pode-se apagar o ficheiro ~/.config/Trolltech.conf - com este método talvez se percam outras configurações, mas como não uso o KDE não o posso confirmar.

Fonte:
Ubuntu Forums - Gnome makes my favorite KDE applications look ugly

quarta-feira, 18 de fevereiro de 2009

/etc/apt/apt.conf

$ cat /etc/apt/apt.conf
# Evitar que sejam instalados pacotes que não quero/não preciso
APT::Install-Recommends "false";
#Por omissão a opção Install-Suggests vem como "false"
APT::Install-Suggests "false";

quinta-feira, 18 de dezembro de 2008

Frases ditas por personagens ASCII no terminal

 ______________________________________
( If builders built buildings the way )
( programmers wrote programs, then the )
( first woodpecker to come along would )
( destroy civilization. )
--------------------------------------
o
o
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/


Utilizando-se os programas cowsay e fortunes, pode-se ter uma (deveras inútil) personagem com uma mensagem engraçada como saudação desenhada no terminal.

Para a ver em acção, basta gravar o código que se segue num ficheiro executável... E executá-lo! Se for colocado no ficheiro ~/.bash_rc, de preferência no final, mostra a personagem sempre que se inicia o terminal.

A personagem irá mostrar um estado de espírito, aspecto e frase diferentes de cada vez que for mostrada, conforme a sua disposição no momento. :)

Só precisa de um # apt-get install cowsay fortunes prévio.

# Pretty fortune-telling fellow, by Pitxyoki
# Ideas from http://bbs.archlinux.org/viewtopic.php?pid=36736#p36736
# and http://www.virtualroadside.com/blog/index.php/2007/06/09/rndsay-random-cow-sayings-and-fortune-combined/
#
# The character will be a random one from those that you don't consider ugly
#(set those on the BADFILES variable). It will also display a different
#emotional and physical state each time it appears.
#
# issue cowsay -l to get the list of cows you don't want to see
BADFILES=(beavis.zen bong bud-frogs calvin cheese cock daemon dragon
dragon-and-cow elephant eyes ghostbusters gnu head-in hellokitty kiss kitty
koala kosh luke-koala mech-and-cow meow milk ren sodomized sodomized-sheep
stegosaurus stimpy supermilker surgery suse telebears turkey turtle vader
vader-koala)

case $((RANDOM%2)) in
0)
CMD="cowthink";;
1)
CMD="cowsay";;
esac
case $((RANDOM%9)) in
1)
CMD=$CMD" -b";;
2)
CMD=$CMD" -d";;
3)
CMD=$CMD" -g";;
4)
CMD=$CMD" -p";;
5)
CMD=$CMD" -s";;
6)
CMD=$CMD" -t";;
7)
CMD=$CMD" -w";;
8)
CMD=$CMD" -y";;
esac
function randcowfile() {
file_list=( `$CMD -l| tail -n+2` )

while [[ ${#file_list[@]} -gt 0 ]]; do
randex=` expr $RANDOM % ${#file_list[@]} `

bad=false
for (( i=0 ; i < ${#BADFILES[@]}; i++ )); do
if [[ ${file_list[$randex]} == ${BADFILES[$i]} ]]; then
unset file_list[$randex]
unset BADFILES[$i]
file_list=("${file_list[@]}") # Converting to string and back to array to avoid having a sparse array
BADFILES=("${BADFILES[@]}") # If anyone knows a better alternative, I'd like to know it
bad=true
break
fi
done

if ! $bad ; then
cowfile=${file_list[$randex]}
echo $cowfile
break
fi
done
}

fortune -s | $CMD -f `randcowfile`
unset BADFILES
unset CMD


EDIT:Código actualizado para ser mais rápido a executar.

segunda-feira, 8 de dezembro de 2008

Tornar o Gnome mais rápido

Devido a uma falha já com algum tempo, o ficheiro ~/.recently-used.xbel, usado por alguns programas em GTK, pode crescer sem qualquer limite.
O que eu aqui tinha já continha informações com mais de um ano, representando um histórico de ficheiros abertos em grande parte inútil.
Isto pode fazer com que estes programas demorem muito mais tempo a abrir do que aquilo que seria de esperar. P.ex., o gedit já demorava mais de 5 segundos a abrir, para um simples ficheiro de texto com poucas dezenas de linhas.

A solução é simples: $ rm ~/.recently-used.xbel
Isto irá apagar todo o histórico de ficheiros usados. Outra solução possível é instalar o pacote libgtk2.0-0 que se encontra nos repositórios experimental. (Uma das dependências d)Este pacote já irá fazer com que grande parte das entradas mais antigas naquele ficheiro sejam apagadas.

Esta falha já foi corrigida há algum tempo, mas por não ser considerada grave a correcção ainda não entrou nos repositórios testing da Debian, por estes estarem em freeze.

segunda-feira, 17 de novembro de 2008

Optimizações para o arranque (versão antiga)

AVISO: Com o novo sistema de init do Debian Squeeze as indicações neste post são desnecessárias. Por ainda poderem ser úteis em Debian Lenny e anteriores ficam aqui por tempo indeterminado.


Quando o Debian arranca, com todos os serviços necessários (e outros que nem tanto), é possível observar que o ambiente gráfico é das últimas coisas a ser iniciadas. Isto dá uma sensação de grande demora no arranque do sistema, agravada quando a ligação à rede não está disponível: "tem" de se esperar que o sistema detecte isso, podendo levar alguns minutos até que desista e se dê por vencido.
No extremo oposto, p.ex. em Windows, nota-se bem que quando o ambiente gráfico inicia, ainda há muita coisa a acontecer. O disco ainda está a fazer leituras, e até a ligação à rede é configurada depois de terem aparecido os ícones no desktop.

Em Debian é possível configurar o sistema de arranque dos programas, sendo possível ao utilizador configurar exactamente por que ordem quer que cada programa seja iniciado. Trata-se da manipulação de simples configurações, que não desaparecem com um apt-get remove (mas desaparecem com --purge), sem ser preciso estar a compilar ou modificar os programas em si.

Para se fazer o que se segue em consciência, talvez seja conveniente ler-se o Debian Policy Manual, o manual do sistema init (também acessível através de man init) e o manual do comando sysv-rc-conf (com man sysv-rc-conf).

ATENÇÃO: As alterações feitas no interface do programa sysv-rc-conf têm efeito IMEDIATO. Não há undos e ao sair do programa as modificações já foram aplicadas.

  1. # apt-get install sysv-rc-conf
    # man sysv-rc-conf
    # sysv-rc-conf -p

  2. Alterar, no runlevel 2, na linha do gdm, a sua prioridade para S13

  3. Alterar, no runlevel 2, na linha do hal, a sua prioridade para S14 - este serviço é usado por algumas partes do Gnome, mas vamos fazê-lo iniciar um pouco depois do gdm porque demora algum tempo a inciar - talvez não seja uma muito boa ideia para todos os sistemas, mas aqui funciona

  4. Retirar o serviço networking da coluna do runlevel S. Para que inicie só depois do ambiente gráfico, passa-se para a coluna do runlevel 2, com prioridade S15



Já agora, para evitar que as letras pisquem durante o arranque, quando aparece a frase Setting console screen modes and fonts, basta comentar as últimas linhas do ficheiro /etc/console-tools/config (adicionar um # ao início das linhas com SCREEN_FONT=...).

Inspirado no artigo: Booting Debian in 14 seconds

sexta-feira, 24 de outubro de 2008

audacious com acção "enqueue" por pré-definição

Esta é muito estúpida não estar por default, mas enfim...

# grep Exec /usr/share/applications/audacious.desktop
Exec=audacious %U --enqueue

sábado, 18 de outubro de 2008

evince com tamanho de página A4 por pré-definição


  1. # dpkg-reconfigure locales

  2. Adicionar o locale pt_PT.UTF-8

  3. # echo "LC_PAPER=pt_PT.UTF-8" >> /etc/environment

  4. Fazer logout e login de novo

domingo, 14 de setembro de 2008

Ter uma coluna com o bitrate (e outras propriedades) dos mp3 no Nautilus

Finalmente!
# apt-get install python-nautilus python-mutagen
$ mkdir ~/.nautilus/python-extensions


Gravar isto no ficheiro ~/.nautilus/python-extensions/bsc.py :
#!/usr/bin/python

import os
import urllib
import nautilus
from mutagen.easyid3 import EasyID3
from mutagen.mp3 import MPEGInfo

class ColumnExtension(nautilus.ColumnProvider, nautilus.InfoProvider):
def __init__(self):
pass

def get_columns(self):
return (nautilus.Column("NautilusPython::title_column","title","Title","Song title"),
nautilus.Column("NautilusPython::album_column",
"album",
"Album",
"Album"),
nautilus.Column("NautilusPython::artist_column",
"artist",
"Artist",
"Artist"),
nautilus.Column("NautilusPython::bitrate_column",
"bitrate",
"Bitrate",
"Bitrate"),)

def update_file_info(self, file):
if file.get_uri_scheme() != 'file':
return
if file.is_mime_type('audio/mpeg'):
filename = urllib.unquote(file.get_uri()[7:])
audio = EasyID3(filename)

if (os.path.isfile (filename) and (not os.path.isdir (filename))):
mpfile = open (filename)
mpinfo = MPEGInfo (mpfile)
br = str(mpinfo.bitrate/1000) + " Kbps"
else:
br = ""

file.add_string_attribute('title', audio["title"][0])
file.add_string_attribute('album', audio["album"][0])
file.add_string_attribute('artist', audio["artist"][0])
file.add_string_attribute('bitrate', br)
self.get_columns()

Depois, basta ir a uma janela do Nautilus, e em Edit -> Preferences -> List Columns seleccionar as colunas que se pretendem adicionar.

Daqui:
http://ubuntuforums.org/showthread.php?t=878683

terça-feira, 9 de setembro de 2008

~/.bashrc

cat ~/.bashrc
(...)

alias ls='ls --color -lhXp --group-directories-first'
alias cc='cc -Wall -g'
alias gcc='gcc -Wall -g'
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'
alias grep='grep --color'
alias diff='colordiff'
function svndiff () { svn diff $@ | colordiff; } #'colorizar' diffs do svn
alias less='less -R'
alias mp3br='for i in *.mp3; do mp3info -p "%r KB/s %f\n" "$i"; done'
alias MP3br='for i in *.MP3; do mp3info -p "%f: %r KB/s \n" "$i"; done'
(...)
PS1="[\t] "$PS1 #Indicação das horas, entre parêntesis rectos

# cores para manpages com o less
export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;44;33m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[04;32m'

# comando para mostrar a vermelho linhas impressas no stderr
colerr () {
$@ 2> >(while line=$(line); do echo -e "\e[01;31m$line\e[0m"; done)
}


Referências:
less colors for manpages by Nico Golde
Bash Prompt HOWTO: 6. ANSI Escape Sequences: Colours and Cursor Movement
code | less - Viewing svn diff result in colors - Comments.

sábado, 26 de abril de 2008

Preferências e Add-ons obrigatórios para o Firefox/Iceweasel

Para quem usa o Firefox/Iceweasel em Linux e partilha as definições do mesmo com o Windows ou se as pretende manter de um computador para o outro, convém guardar algumas opções "persistentes" nos ficheiros de configuração, dentro da directoria de configuração do browser.

Estas são as que não dispenso (para Iceweasel/Firefox 4.0):
$ cat user.js
/* Backspace volta à página anterior */
user_pref("browser.backspace_action", 0);

/* Preferências só são aplicadas ao clicar no "OK" */
user_pref("browser.preferences.instantApply", false);

/* O Botão do meio do rato só serve para scroll e não para entrar em URLs */
user_pref("general.autoScroll", true);
user_pref("middlemouse.contentLoadURL", false);

/* Links para abrir em novas janelas abrem em novas tabs */
user_pref("browser.link.open_newwindow", 3);

/* Novas tabs não aparecem "à frente" da actual */
user_pref("browser.tabs.loadDivertedInBackground", true);

/* Pesquisar o que está seleccionado com o botão do lado direito não dá põe a nova tab à frente */
user_pref("browser.search.context.loadInBackground", true);

/* Não mostrar janelinha de alerta quando os downloads terminam */
user_pref("browser.download.manager.showAlertOnComplete", false);

/* Ao arrastar imagens ou texto mostrar um ícone em vez de uma miniatura dessa imagem ou texto */
user_pref("nglayout.enable_drag_images",false);

/* Quando o browser inicia apenas é feito o download da tab visível no momento (~equivalente ao plugin BarTab) */
user_pref("browser.sessionstore.max_concurrent_tabs", 0);

/* Não pesquisar automaticamente URLs mal escritos */
user_pref("keyword.enabled", false);

/* Não adivinhar domínios mal escritos
 * Ver https://support.mozilla.org/en-US/kb/search-web-address-bar
 * e, principalmente http://www-archive.mozilla.org/docs/end-user/domain-guessing.html
 * para os problemas associados com a activação desta opção.
 */
user_pref("browser.fixup.alternate.enabled", false);

/* Não informar os servidores sobre a página de origem dos cliques */
user_pref("network.http.sendRefererHeader", 0);

/* Não dar sugestões de pesquisa na barra de pesquisa */
user_pref("browser.search.suggest.enabled", false);


$ cat chrome/userChrome.css
/* Remover setas para baixo nos Bookmarks */
#PersonalToolbar .toolbarbutton-menu-dropmarker { display: none !important; }

/* "Go Button" sempre na Location Bar */
#urlbar[pageproxystate="valid"] > #urlbar-icons > #go-button { visibility: visible !important;}

/* Tirar o "Add bookmark"/"Star Button" da Location Bar */
#star-button { display: none !important; }

/* Tirar o botão "+" ("Open a new tab") da barra de separadores */
.tabs-newtab-button {display: none;}


Alguns Add-ons que também não dispenso:
AdBlock Plus
BetterPrivacy
Download Helper
Flashblock
Forecastfox
Ghostery
Greasemonkey + Youtube without Flash Auto
HTTPS Everywhere
RefControl

quinta-feira, 31 de janeiro de 2008

Testar um teclado

O programa xev serve para verificar a forma como o ambiente gráfico X interpreta eventos de input. Se se pretender testar a integridade de um teclado através desse programa, torna-se muito fácil através do comando
$ xev | grep keysym
que mostrará em tempo real o nome da tecla que foi pressionada.

No caso de se estar em modo texto, num terminal pode-se usar o comando
$ showkey
que não mostra os nomes das teclas, mas sempre dá para ter uma confirmação de que está a haver comunicação entre o teclado e o computador.

domingo, 30 de dezembro de 2007

Aceleração 3D com placas intel (e possivelmente outras)

Se programas com objectos 3D ou que usam funcionalidades do OpenGL não estão a funcionar correctamente e isto acontece:
$ cat /var/log/Xorg.0.log | grep EE
(EE) AIGLX error: dlopen of /usr/lib/dri/i915_dri.so failed (/usr/lib/dri/i915_dri.so: cannot open shared object file: No such file or directory)
(EE) AIGLX: reverting to software rendering


...pode significar que falta instalar isto:
# apt-get install libgl1-mesa-dri

...pelo menos funcionou aqui:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)

E a usar a driver 'intel'.