sexta-feira, 20 de abril de 2012

Instale o recurso appmenu-qt no KDE 4.8.2

Olá mundo!

Ontem me deparei com o excelente recurso chamado appmenu-qt que tem como função adaptar o conteúdo da barra de menus de um app em um botão integrado à barra de título.

Pra quem possui laptop é uma mão na roda, já que ocupa menos espaço na tela, além do visual que fica muito bonito e sóbrio.

Na minha tentativa de ativar esse recurso no meu KDE 4.8.2 fiz umas buscas no google e não consegui obter respostas satisfatórias. Quando o resultado não apontava para um tutorial a ser executado em um Ubuntu desses da vida, apontava para perguntas em fórums, para sites de projetos com informações insuficientes, etc.

Resumo da ópera: Fui dormir 1h00 da manhã, tirando KDE 4.8.2, botando KDE 4.7.4, aplicando patch, compilando apps em qt pelo cmake, e por aí vai. Tudo bem, gosto de fazer isso. Na minha opinião nada ensina melhor do que a prática, mas, sinceramente, prefiro quando depois de tantas tentativas o resultado é de sucesso. Infelizmente ontem não consegui, mas hoje, com a "cabeça fresca" foi uma maravilha.

Para chegar a esse resultado fiz o seguinte:

1. Instalei o KDE 4.8.2 normalmente, o git, os "patterns" de desenvolvimento devel_kernel, devel_C_C++ e devel_kde e os pacotes libdbusmenu-qt-devellibqjson-devel para preparar o ambiente para a compilação dos plugins e softwares responsáveis pelo recurso.

2. Baixei os seguintes sources para compila-los nesta ordem:
appmenu-qt-0.2.6 pelo site oficial do projeto
plasma-widget-menubar-0.1.17 pelo site oficial do projeto
oxygen-appmenu pelo git

O appmenu-qt é o "mediador" entre o dbus e o qt que rorna possível esse processo de "movimentação" da barra de menu dos apps, para um widget, botão, etc.

O plasma-widget-menubar é, como o nome já diz, um widget para o plasma do KDE que lhe permite criar um menu global como no Mac OS X. Aquele painel superior que serve como container universal para a barra de menu de qualquer app.

O oxygen-appmenu é uma versão modificada do decorador KWIN OXYGEN padrão do KDE. Tive que baixa-lo pelo git porque a versão que está no kde-look.org é definida como 4.7.3 DEPRECATED, em outras palavras, é compatível até a versão 4.7.3, considerada ultrapassada.

Tudo instalado e pronto pra compilar, extraia os sources em /usr/src e compile da seguinte forma

1. Vá ao diretório extraído ( exemplo: /usr/src/appmenu-qt-0.2.6/ ) e crie um diretório /usr/src/appmenu-qt-0.2.6/ chamado build. Ficará assim: /usr/src/appmenu-qt-0.2.6/build/

2. Acesse a pasta build e execute os comandos abaixo
# cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# make
# make install

Após a compilação faça o mesmo processo com as outras fontes extraídas, seguindo a ordem citada acima.

Tudo compilado e instalado, reinicie sua sessão no KDE, vá até
Configurações do Sistema -> Aparência do Espaço de Trabalho -> Decorações da Janela
e escolha Oxygen-appmenu

Clicando em Configurar decoração, você encontra algumas opções referentes ao recurso appmenu. Clicando em Configurar botões, você define a ordem dos objetos (botões, espaços, menu, etc) apresentados na barra de título. 

O appmenu será exatamente o objeto "menu" que fica dentro de Configurar botões.




Espero que gostem da dica.

[ ] ' s e até a próxima.

quarta-feira, 18 de abril de 2012

Desativando o "Top Corner Hover" das Atividades no Gnome 3

Olá pessoal,

só pra finalizar as dicas de hoje sobre o Gnome 3, vou ensina-los como desativar o recurso de Atividades do Gnome 3 ao movimentar o ponteiro do mouse para o canto superior esquerdo da tela. Essa dica eu encontrei aqui e espero que seja útil para vocês como foi para mim.

Como root edite o arquivo  /usr/share/gnome-shell/js/ui/panel.js

Navegue até a linha 630 e substitua

hotBox.x1 = Math.round(x);
hotBox.x2 = hotBox.x1 + this._hotCorner.actor.width;
hotBox.y1 = Math.round(y);
hotBox.y2 = hotBox.y1 + this._hotCorner.actor.height;
               this._hotCorner.actor.allocate(hotBox, flags);

por

hotBox.x1 = Math.round(x);
hotBox.x2 = hotBox.x1 + this._hotCorner.actor.width;
hotBox.y1 = Math.round(y);
hotBox.y2 = hotBox.y1 + this._hotCorner.actor.height;
//qualquercoisa this._hotCorner.actor.allocate(hotBox, flags);


Reinicie o Gnome!

No link original explica o motivo de comentar a linha e colocar algo escrito em "qualquercoisa". No momento eu não me recordo e estou com um pouco de pressa.



[ ] ' s

Alterando os status disponiveis no Menu de IM no Gnome 3

Olá thurma!!

Estou com muito sono para criar um post extenso. Vou direto ao assunto!

Eu ficava intrigado na condição do "User Menu" (aquele que fica no canto superior direito do Gnome 3) só conter as opções DISPONÍVEL e INDISPONÍVEL do IM. Eu sempre fui de utilizar o status OCUPADO por padrão, pois nem sempre estou com tempo disponível pra bater papo, mas fico o tempo todo conectado ao Talk.

Resolvi fuçar um pouco e acabei descobrindo como colocar as opções OCUPADO e INDISPONÍVEL no menu do IM.

Abra o terminal e edite o arquivo /usr/share/gnome-shell/js/ui/userMenu.js

Navegue até a linha 332 e substitua

if (i == IMStatus.AVAILABLE || i == IMStatus.OFFLINE)

por

if (i == IMStatus.BUSY || i == IMStatus.OFFLINE)

Agora navegue até as linhas 343 e 344 para fazer as seguintes modificações

if (id == IMStatus.AVAILABLE) {
            newPresence = Tp.ConnectionPresenceType.AVAILABLE;


por

if (id == IMStatus.BUSY) {
            newPresence = Tp.ConnectionPresenceType.BUSY;

Reinicie o gnome e curta as modificações!!

[ ] ' s

sábado, 14 de abril de 2012

Recompilando o Freetype2 no OpenSUSE 12.1

Salve, pessoal!!

Ainda na busca pela melhoria da renderização das fontes no OpenSUSE 12.1 encontrei uma ótima dica (nesse blog) sobre recompilação do Freetype2 através do arquivo SPEC.

Para quem não sabe, um arquivo SPEC é um tipo de script que contém informações (especificações) sobre como o compilador deve proceder para compilar um software qualquer e transformá-lo em um pacote binário RPM.

Eu já tive a experiência de recompilar o Freetype2 no Slackware com suporte ao Subpixel -  inclusive mantenho em meu disco rígido um pacote txz com esse recurso ativado - mas nunca havia feito isso em sistemas baseados em pacotes RPM.

Existem duas formas de ativar o subpixel no OpenSUSE. A primeira é instalando um repositório extra que contem esses pacotes já prontos. A segunda forma é recompilando através do SPEC. Eu não gosto muito da primeira opção pois, quanto mais repositórios você mantem, mais "segmentado" fica o seu sistema. Pacotes do repositório A que não estão atualizados substituindo os pacotes atualizadíssimos do repositório B simplesmente porque os pacotes de A possuem os recursos que não estão nos pacotes de B. Ficou confuso? Pois é, assim fica o seu sistema.

Então vamos partir pra segunda opção. Primeiramente instale o arquivo de fonte (source) do Freetype2:
# zypper source-install freetype2 (ou zypper si freetype2)

Siga para o diretório /usr/src/packages/SOURCES/ e observe que ja estarão disponíveis os pacotes freetype-2.4.7.tar.bz2 e freetype-doc-2.4.7.tar.bz2, entre outros.

Instale os pacotes necessários pra compilação:
# zypper in gcc zlib-devel patch

ou, se preferir fazer como eu, instale os grupos de pacotes de desenvolvimento
# zypper in --type pattern devel_C_C++ devel_kernel

Agora siga para o diretório /usr/src/packages/SPECS/ e observe o arquivo freetype2.spec

Abra-o através do seu editor preferido (lembrando de abri-lo como root) e navegue até mais ou menos a linha 98
%define enable_subpixel_rendering 0

Nessa linha deverá ser trocado o valor 0 para 1
%define enable_subpixel_rendering 1

Salve a alteração, feche o editor e execute
# rpmbuild -bb freetype2.spec

Aguarde a compilação dos pacotes terminarem.

Por fim vá até o diretório /usr/src/packages/RPMS/x86_64 (ou i686, i586, depende da arquitetura do seu sistema) e instale os pacotes gerados:
# zypper in --force freetype2-devel-2.4.7-6.1.x86_64.rpm libfreetype6-2.4.7-6.1.x86_64.rpm

Lembrando que o nome do pacote no seu sistema pode variar a arquitetura de x86_64 para qualquer outra, dependendo da versão que esteja instalada.

Depois de concluída a instalação, reinicie o PC e ative o subpixel no seu gerenciador de janelas preferido na parte de aparência ou fontes.

Agora é só curtir as belas fontes no OpenSUSE.

[ ] ' s  e até a próxima!

UPDATE

Após a instalação dos pacotes fui atualizar o sistema e percebi que o zypper estava sugerindo a substituição de ambos pela versão que está no repositório. Em outras palavras, os pacotes com o subpixel ativado seriam removidos para que a versão padrão (sem subpixel) fossem instalados novamente.

Então me lembrei que havia lido algo sobre bloqueio de pacotes através do próprio zypper. Fiz uma rápida busca no oráculo, dei uma olhada no man e encontrei exatamente o que eu queria. Segundo o man, quando você bloqueia um pacote significa que SE ESTE ESTIVER INSTALADO NÃO PODERÁ SER REMOVIDO, OU, SE NÃO ESTIVER INSTALADO, QUALQUER TENTATIVA DE INSTALA-LO SERÁ NEGADA.

Abaixo mostrarei os comandos relacionados a  bloqueio de pacotes:

BLOQUEIO DE PACOTES
# zypper al package(s)
# zypper addlock package(s)

REMOVER O BLOQUEIO DE PACOTES
# zypper rl package(s)
# zypper removelock packages(s)

LISTAR OS PACOTES BLOQUEADOS
# zypper ll
# zypper locks

REMOVER TODOS OS BLOQUEIOS DE PACOTES DE FORMA INTERATIVA
# zypper cl
# zypper cleanlocks

No caso do Freetype2, executei o comando
# zypper al freetype2-devel libfreetype6

A lista com os pacotes bloqueados pode ser vista tambem no arquivo
/etc/zypp/locks

;-)

[ ] ' s

quinta-feira, 12 de abril de 2012

Instalar o Ubuntu numa partição LVM

E aí pessoal, tudo certo?

Hoje resolvi passar pela experiência de instalar o Ubuntu no meu notebook após muitos anos sem utiliza-lo (a ultima vez foi em 2006). Como não tinha exatamente nada pra fazer resolvi dar uma espiadinha nesse "mundo diferente" e gostei do desafio que encontrei: Instalar esse sistema (sim, considero o Ubuntu um sistema e não uma distro) numa partição LVM.

E agora, José?

Quando iniciei o instalador percebi que minhas partições LVM não foram reconhecidas. Aí pensei: isso é fácil! Basta instalar o suporte a esse modelo de particionamento. Então, 

# apt-get install lvm2 (pra instalar o suporte ao LVM)
# partprobe /dev/sda (pra detecar as partições no disco sda)

Perfeito!!

Reconhecidas as partições, instalei o Ubuntu sem problemas. Daí veio a surpresa. Reiniciei o PC e NADA do sistema carregar. Parava no shell do initramfs. Foi aí que a cabeça começou a funcionar: Se no LIVE não havia o suporte ao LVM instalado, obviamente no sistema que instalei não vai ter tambem.

Pra resolver isso precisei carregar novamente o LIVE, refazer o processo de instalação do LVM e detecção de partições e montar a partição raiz (/) do Ubuntu instalado em /mnt
# mount /dev/mappar/particao_root_lvm /mnt

Agora, como fazer pra alterar o conteúdo da distro instalada no disco rígido? Montando os diretorios de processos e dispositivos
# mount -o bind /dev /mnt/dev
# mount -o bind /dev/pts /mnt/dev/pts
# mount -o bind /proc /mnt/proc
# mount -o bind /sys /mnt/sys 

Fazendo um chroot
# chroot /mnt /bin/bash

Carregando o profile
# source /etc/profile

Pronto! Diretorios montados, chroot efetuado e arquivo de configurações do perfil padrão carregado, basta instalar o LVM
# apt-get install lvm

Após finalizar a instalação o próprio sistema irá se encarregar de atualizar o ramdisk pra carregar os módulos necessários para o funcionamento do LVM durante a inicialização.

Se você chegou até aqui deve saber o /boot tem que ser montado numa partição normal (fora do LVM) senão o sistema não carrega.

Por hoje é só!!

[ ] ' s

sexta-feira, 6 de abril de 2012

Melhorando as fontes no openSUSE

Que o openSUSE é uma ótima distro eu já percebi. Antigamente eu não gostava muito, achava meio pesada, confusa e tal... ficava muito preso ao YAST e achava tudo uma complicação e tanta!

Aprendendo a lidar com o "modo openSUSE" de resolver as coisas acabei por me adaptar.

No momento só tenho uma reclamação: a renderização das fontes são péssimas.

Fiz uma busca no oráculo e encontrei alguns resultados que me deixaram um pouco cético, mas resolvi dar um voto de confiança e deu certo!!

É necessário remover o "hint" das fontes. Estranho, hein?

Segue abaixo a configuração ideal

1. Arquivo ~/.fonts.conf



2. Arquivo ~/.Xresources

Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintnone
Xft.hint: 0
Xft.antialias: 1
Xft.rgba: none


Após editar esses dois arquivos, exatamente como os exemplos acima, rode o comando
$ fc-cache -fv

Não sei se é necessário, acredito que não. Mas como o comando está atribuido ao cache das fontes pode ser que o mesmo se baseie nas configurações de hint, antialias, etc.

Experimentem, sem moderação!! ;-)

[ ] ' s

terça-feira, 3 de abril de 2012

Adicionando um usuário a um grupo no OpenSUSE

Acabei de instalar o VirtualBOX no OpenSUSE e na hora que tentei adicionar meu usuário ao grupo vboxusers obtive uma mensagem de erro que nunca havia visto.

# gpasswd -a usuario grupo

Eu sempre usei o comando acima, mas no OpenSUSE parece que a opção "-a" não existe no gpasswd. Bom, procura daqui, procura dali encontrei o

# usermod usuario -A grupo

Fica a dica.

[ ] ' s

Linux, sua segmentação e... o synaptics.

Você deve estar se perguntando: O que tem a ver o Linux, sua segmentação e o Synaptics?

Muita coisa!!

Imagine as vantagens e desvantagens de ter um sistema completamente segmentado, quero dizer, desenvolvido em partes, por várias pessoas no mundo. As vantagens todos já conhecem: Suporte técnico informal 24h, desenvolvimento em ritmo acelerado, correção de bugs em poucas horas, etc.
As desvantagens? A falta de padronização, o que gera uma dificuldade na resolução de problemas quando, por exemplo, o touchpad não funciona em uma distro, enquanto na outra funciona até de "olho fechado".

Aí é que entra o synaptics. Você ja procurou entender o motivo do touchpad do seu notebook funcionar tão bem no fedora 15 e, de repente, nem ser reconhecido no fedora 16? É a mesma distro, correto? Sim! Mas muita coisa mudou de lá pra cá.

E quando você muda de distro, vai para o OpenSUSE 12.1 e descobre que as configurações que você fazia no fedora 15 funciona perfeitamente numa distro completamente diferente?

Pois é.

Cheguei a conclusão que temos que entender a lógica da segmentação: A equipe que desenvolve o servidor gráfico X não é a mesma equipe que desenvolve o ambiente de trabalho KDE, que por sua vez, não é a mesma equipe que desenvolve o módulo que da suporte aos eventos do touchpad. Então, se existe divisão no desenvolvimento, existe divisão na configuração. Entenda que 90% do que você configura no /etc/X11/xorg.conf.d/50-synaptics.conf só vai funcionar na tela de login (KDM, GDM, etc.) e que ao entrar no ambiente de trabalho (Gnome, KDE, Xfce, etc.) essas configurações provavelmente não estarão funcionando.

Enrolei, enrolei, enrolei BASTANTE para não deixar o post sem graça rsrs acho que nem falei coisa com coisa porque estou sem dormir. Estou com muito sono, mas não podia perder a oportunidade de escrever. Se eu não fizesse isso agora, provavelmente não iria ter disposição pra fazer mais tarde. Vamos configurar o touchpad? Mão na massa!!

Primeiro, edite e salve o arquivo /etc/X11/xorg.conf.d/50-synaptics.conf

Section "InputClass"
  Identifier "touchpad catchall"
  Driver "synaptics"
  MatchIsTouchpad "on"
  MatchDevicePath "/dev/input/event*"
  Option "TapButton1"           "1"
  Option "TapButton2"           "3"
  Option "VertTwoFingerScroll"  "on"
  Option "HorizTwoFingerScroll" "on"
  Option "VertEdgeScroll"       "off"
  Option "HorizEdgeScroll"      "off"
  Option "VertScrollDelta"      "113"
  Option "HorizScrollDelta"     "113"
EndSection

Section "InputClass"
  Identifier "touchpad ignore duplicates"
  MatchIsTouchpad "on"
  MatchOS "Linux"
  MatchDevicePath "/dev/input/mouse*"
  Option "Ignore" "on"
EndSection

O parâmetro MatchDevicePath "/dev/input/event*" deve ser utilizado em um sistema com suporte ao evdev. Combinado com o parâmetro
MatchDevicePath "/dev/input/mouse*" e a opção Option "Ignore" "on" evitará que erros e conflitos ocorram devido ao reconhecimento duplicado entre dispositivos touchpad e mouse.

Veja um pouco mais sobre esse assunto aqui. [Em inglês]

Depois crie um script com qualquer nome. Por exemplo, synclient-script.sh

#!/bin/bash
synclient TapButton1=1
synclient TapButton2=3
synclient VertTwoFingerScroll=1
synclient HorizTwoFingerScroll=1
synclient VertEdgeScroll=0
synclient HorizEdgeScroll=0
synclient VertScrollDelta=113
synclient HorizScrollDelta=113

Salve-o, mude a permissão para +x (permissão para execução) e copie para o diretório de inicialização automática do KDE

$HOME/.kde4/env

Esse diretório tem a função de armazenar scripts que devem ser carregados durante a inicialização do ambiente grafico KDE. Diferente do $HOME/.kde4/Autostart que é utilizado para armazenar scripts que devem ser carregados após o KDE ter sido completamente iniciado, por exemplo, algum navegador de internet que vocẽ deseja que seja aberto automaticamente toda vez que você entrar no KDE.

Para finalizar, analise se não tem nenhum outro gerenciador de touchpad/synaptic correndo no ambiente gráfico. Eu tive problemas para usar meu script porque ja havia o synaptiks instalado (gerenciador de touchpad para KDE). Simplesmente minhas configurações não funcionavam, parecia que um anulava o outro, algum tipo de conflito. Como o synaptiks não estava funcionando bem, dando umas travadas, resolvi remove-lo e ficar so com o script.

Bom, espero ter ajudado. ;-)

[ ] ' s

segunda-feira, 26 de março de 2012

Use e abuse da área de transferência no shell

Salve pessoal!

Para copiar uma saída de texto para a área de transferência basta utilizar o comando
xsel --clipboard --input

E para colar
xsel --clipboard --output

Exemplo:

Você deseja copiar para área de transferência uma lista com os nomes de todos os pacotes RPM instalados em seu sistema.

rpm -qa | xsel --clipboard --input

Se quiser colar o resultado no shell

xsel --clipboard --output

Ou se deseja concatenar o conteudo da área de transferência pra algum arquivo

xsel --clipboard --output > arquivo.txt

O comando xsel só funciona se estiver rodando em um terminal, dentro de uma sessão X ativa. Mas o que fazer se for no terminal puro?

Para isso temos o screen.

Dentro do terminal, execute o comando screen. Você perceberá uma piscada na tela.

Nesse momento você estará rodando um shell no modo screen.

Para iniciar o modo copy pressione Ctrl+A e [

Movimente-se pelo texto usando as setas de navegação ou as teclas H, J, K e L
H (esquerda)
J (baixo)
K (cima)
L (direita)

Inicie a seleção pressionando a tecla ESPAÇO. Depois que tiver selecionado tudo o que queria, pressione ENTER.

Para colar, basta pressionar Ctrl+A e ]

[ ] ' s

Aparência dos apps QT4 uniforme ao Gnome 3

E aí povo, beleza?

Eu estava enfrentando aquele velho dilema: KDE ou GNOME?

Bom, cada um com suas vantagens. Não sei por que, mas me adapto mais facil ao GNOME apesar de saber que o KDE é muito mais completo e customizável.

Utilizando o GNOME 3, percebi que os aplicativos escritos em QT4 utilizavam uma aparência feia padrão GTK+ e isso me incomodava muito, pois sou adepto da uniformização da interface geral de um sistema.

Como eu gosto do K3B, VLC e VirtualBox, corri atrás da informação e a encontrei no wiki do ArchLinux.

Muito fácil. Instale os pacotes abaixo:
aldabra-theme-gnome
gnome-tweak-tool
libgnomeui

O aldabra-theme-gnome serve para manter a aparência uniforme entres os apps GTK2 e GTK3. Esse tema nada mais é do que uma cópia quase idêntica do ADWAITA (GTK3), baseada na engine Murrine, para GTK2.

O gnome-tweak-tool é uma ferramenta indispensável para os usuários do GNOME 3. Através dela o usuário é capaz de alterar configurações que não estão disponíveis no Centro de Controle padrão. É aqui que vamos definir o tema Aldabra para GTK.

E por fim, o libgnomeui. Este é o principal componente necessário para que os apps em QT4 consigam utilizar o tema GTK2 (no nosso caso, o Aldabra).

Por hjoje é só.

[ ] ' s

domingo, 25 de março de 2012

Saída de audio HDMI no Mplayer

E ai pessoal, tudo certo?

Você que possui um dispositivo com saída HDMI e curte utilizar o excelente mplayer pela linha de comando já deve ter se perguntado: Como direciono a saída de audio pela HDMI?

Simples!

METODO 1 (recomendado)

1. Execute o comando
$ aplay -L


default
    Default
sysdefault:CARD=SB
    HDA ATI SB, ALC272X Analog
    Default Audio Device
front:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    Front speakers
surround40:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=SB,DEV=0
    HDA ATI SB, ALC272X Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output

Observe acima a saída hdmi:CARD=HDMI,DEV=0

O primeiro campo hdmi significa o nome (ou alias) dado pelo alsa ao dispositivo. Usaremos esse nome.

2. Execute o mplayer passando os parametros
$ mplayer -ao alsa:device=hdmi arquivo


METODO 2


1. Execute o comando
$ aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC272X Analog [ALC272X Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Observe acima a saída card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]

Precisaremos do campo card 1 e device 3

2. Execute o mplayer passando os parametros
$ mplayer -ao alsa:device=hw=1.3 arquivo

FACILITE SUA VIDA CRIANDO UM SCRIPT

1. Crie o arquivo com o nome desejado. Exemplo "mhdmi"
# touch /usr/local/bin/mhdmi

2. Insira o conteúdo abaixo
#!/bin/bash
mplayer -ao alsa:device=hdmi "$@"

ou

#!/bin/bash
mplayer -ao alsa:device=hw=1.3 "$@"

3. Salve o arquivo e ative a permissão de execução
# chmod +x /usr/local/bin/mhdmi

DICA PARA A RADEON

Vi num forum (infelizmente não me lembro onde) uma dica para as pessoas que possuem placas RADEON (AMD/ATI), e não conseguem de forma alguma executar o som pela saída hdmi.

Acrescente a opção radeon.audio=1 nos parametros do kernel

No caso do grub2, edite o arquivo /etc/default/grub, acrescente a opção acima em GRUB_CMDLINE_LINUX e confirme a alteração executando o comando

# grub2-mkconfig -o /boot/grub2/grub.cfg

Espero ter ajudado!

[ ] ' s

sábado, 24 de março de 2012

Acessando o GMAIL pelo Konqueror.

Simples: Acesse pela URL http://mail.google.com/mail?nocheckbrowser ;-)

quinta-feira, 8 de março de 2012

SSH no Fedora 16: No route to host. WTF!!!

Hoje quebrei a cabeça para conseguir copiar um arquivo do meu Desktop para o Notebook, no Fedora 16.
Primeiro passo foi criar um dispositivo de rede virtual para ambas as máquinas.
Eu uso uma conexao compartilhada por um vizinho, através de uma rede sem fio, e o IP é fornecido pelo servidor dele. Ou seja, se eu fosse fazer uma troca de dados utilizando o escopo da rede fornecida por essa conexão seria muito lento por causa da quantidade de rotas e firewalls que ele utiliza.

Para criar o dispositivo virtual e colocar os dois computadores na mesma rede foi simples.
No PC
ifconfig eth0:1 10.0.0.2 up

No Notebook
ifconfig p4p1:1 10.0.0.1 up

* sendo eth0 o nome do dispositivo de rede no meu PC e p4p1 o nome do dispositivo de rede no meu notebook.

Depois disso, fui executar a conexão. BOMBA!!
Aparecia uma "bendita" mensagem No route to host.

Verifiquei o status do serviço sshd e estava tudo ok.
service sshd status

Reiniciei o serviço por precaução
service sshd restart

Acrescentei o IP do PC no arquivo /etc/hosts.allow no Notebook. Fiz o mesmo processo no PC.

Não funcionava. Depois descobri que não há necessidade (nesse caso) de mexer nesses arquivos.

Procurei no google e segui algumas instruções.
Verifiquei o serviço pelo netstat -a | grep ssh
tcp    0   0   *:ssh   *:*   LISTEN

Tambem o netstat -an | grep :22
tcp    0   0   0.0.0.0:22   0.0.0.0:*   LISTEN
tcp    0   0   :::22             :::*   LISTEN

E o cat /etc/services | grep ssh
ssh    22/tcp     # The Secure Shell (SSH) Protocol
ssh    22/udp     # The Secure Shell (SSH) Protocol


No final, analisei o IPTABLES e ENCONTREI O PROBLEMA!

iptables -L -n

Simplesmente não havia nenhuma regra definida para o ssh. Porta 22 bloqueada.

Chain INPUT (policy ACCEPT)
target     prot opt source       destination        
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0     state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0    0.0.0.0/0          
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0          
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source       destination        
REJECT     all  --  0.0.0.0/0    0.0.0.0/0     reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source       destination


SOLUÇÃO:

Adicionar uma regra para a porta 22 editando o arquivo /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp -dport 22 -j ACCEPT




Antes do

-A INPUT -j REJECT --reject-with icmp-host-prohibited

Salve o arquivo e reinicie o serviço com o comando
service iptables restart

Ou reinicie o PC, se precisar.

Fonte: http://nixcraft.com/linux-hardware/6366-no-route-host.html
Dica postada pelo usuário Andrew Burdyug

Esqueça o ntsysv... agora é chkconfig!!

Só estou postando isso como um lembrete.

Acostumado a utilizar o ntsysv para definir as configurações relacionadas
aos serviços (daemons / scripts no init.d) nas versões anteriores do fedora, sempre perco
alguns minutos queimando neurônios tentando lembrar do atual comando
padrão para tal função: chkconfig

chkconfig
chkconfig
chkconfig
...

Espero não esquecer mais! ;-)
Follow Me on Twitter