<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SamuraiDio &#187; x11</title>
	<atom:link href="http://blog.diovani.com/tag/x11/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.diovani.com</link>
	<description>GNU/Linux &#124; PHP &#124; JavaScript</description>
	<lastBuildDate>Fri, 28 May 2010 00:11:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Executando Aplicações X11 remotas por ssh</title>
		<link>http://blog.diovani.com/2008/07/03/executando-aplicacoes-x11-remotas-por-ssh/</link>
		<comments>http://blog.diovani.com/2008/07/03/executando-aplicacoes-x11-remotas-por-ssh/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 17:24:13 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[x11]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/2008/07/03/executando-aplicacoes-x11-remotas-por-ssh/</guid>
		<description><![CDATA[Já pensou na possibilidade de executar seus programas preferidos, instalados em seu computador de casa, a partir de seu computador do trabalho? Não apenas executar o mesmo programa, mas sim com todas as configurações, local de execução e acesso aos arquivos de seu pc de casa, sem precisar ter o mesmo programa instalado no trabalho.
O [...]]]></description>
			<content:encoded><![CDATA[<p>Já pensou na possibilidade de executar seus programas preferidos, instalados em seu computador de casa, a partir de seu computador do trabalho? Não apenas executar o mesmo programa, mas sim com todas as configurações, local de execução e acesso aos arquivos de seu pc de casa, sem precisar ter o mesmo programa instalado no trabalho.</p>
<p>O <a href="http://www.openssh.org/">SSH, ou Secure Shell</a>, é um aplicativo Unix que permite acesso remoto, por terminal, a outros computadores. Porém, o proŕio SSH tem uma opção de <a href="http://pt.wikipedia.org/wiki/Tunelamento">tunelar</a> o <a href="http://www.x.org/wiki/">X Server</a>, possibilitando a execução de aplicativos X11 remotos.</p>
<p>Já a algum tempo eu sabia que era possível fazer esse tunelamento para executar aplicativos X remotos por ssh, mas ainda não havia pesquisado a respeito. Foi então que ontem me surgiu a idéia de rodar os programas que tenho no trabalho (principelmente o Eclipse IDE) para desenvolver a partir de casa, sem precisar copiar todos os fontes ou montardiretórios remotos, e então acabei me surpreendendo com a facilidade disto.</p>
<p>A maioria dos usuários GNU/Linux devem estar acostumados a acessar máquinas remotas por ssh, com comandos como:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> user<span style="color: #000000; font-weight: bold;">@</span>server.com</pre></div></div>

<p>ou</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-l</span> user 192.168.1.1</pre></div></div>

<p>Nos exemplos acima exibo dois modos básicos para conexões com ssh. a opção <em><strong>-p</strong></em> é necessária apenas caso o servidor remoto ou cliente nãoestejam usando portas padrões para o SSH, a opção <em><strong>-l</strong></em> serve para definir o usuário a logar no servidor remoto, sendo necessário apenas quando os nomes de usuários no servidor e cliente não coincidem, e é equivalente a utilizar <em><strong>user@</strong></em> antes doendereço do servidor, que pode ser um endereço de ip, ou um nome de domínio.</p>
<p>Agora, para tunelar o X server basta adicionar a opção <em><strong>-X</strong></em> a linha de comando:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #660033;">-p</span> <span style="color: #000000;">22</span> <span style="color: #660033;">-l</span> user <span style="color: #660033;">-X</span> 192.168.1.1</pre></div></div>

<p>Assim, uma vez conectado ao servidor remoto, basta executar qualquer aplicação normalmente, que as janelas destas gerão criadas em sua máquina local. Veja o screenshot de exemplo:</p>
<p><a href="http://blog.diovani.com/wp-content/uploads/2008/07/remotexserver.jpg" title="Aplicações X remotas, rodando através de ssh -X"></a></p>
<p style="text-align: center"><a href="http://blog.diovani.com/wp-content/uploads/2008/07/remotexserver.jpg" title="Aplicações X remotas, rodando através de ssh -X"><img src="http://blog.diovani.com/wp-content/uploads/2008/07/remotexserver.thumbnail.jpg" alt="Aplicações X remotas, rodando através de ssh -X" /></a> <a href="http://blog.diovani.com/wp-content/uploads/2008/07/2008-07-03_14-14-14.jpg" title="lBreackout2 e Wine Notepad"><img src="http://blog.diovani.com/wp-content/uploads/2008/07/2008-07-03_14-14-14.thumbnail.jpg" alt="lBreackout2 e Wine Notepad" /></a><a href="http://blog.diovani.com/wp-content/uploads/2008/07/remotexserver.jpg" title="Aplicações X remotas, rodando através de ssh -X"> </a></p>
<p>No primeiro screenshot acima, estão sendo executados localmente (em meu computador de trabalho)  o terminal, com a sessão ssh aberta, o monitor de sistema <em>GKrellm</em> (a direita), o gerenciador de arquivos <em>Thunar</em>, e a calculadora <em>Galculator</em>, acima da qual está um outra calculadora sendo executada a partir do computador remoto (meu laptop, em casa, conectado através de uma rede sem fio de longa distância), note a diferença no tema do GTK2, e mais acima está o aplicativo <em>Eye of Gnome</em>, o qual tenho instalado apenas no Notebook.</p>
<p>No segundo Screenshot estou executando o jogo lBreakout2 e o Wine Notepad (um clone do editor Notepad do windows, para Wine), demonstrando como é possível rodar praticamente qualquer aplicativo remoto, é possivel inclusive executar um gerenciador de janelas ou desktop inteiramente.</p>
<p>Diferente do VNC, que geralmente se conecta a uma sessão X existente, o tunelamento do X sob ssh envia os aplicativos executados para a sessão X existente na máquina cliente (ou seja, não invade a privacidade de quem estiver utilizando a máquina remota).</p>
<p>Infelizmente o ssh não possibilita tunelar sons reproduzidos por aplicativos X, assim se vc executar um player de mídia, quem irá acabar ouvindo é quem estiver perto do servidor remoto. Aplicativos que exijam OpenGL ou outras bibliotecas gráficas podem não ser executados corretamente também.</p>
<p><em>Fonte: <a href="http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html">http://www.vanemery.com/Linux/XoverSSH/X-over-SSH2.html</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2008/07/03/executando-aplicacoes-x11-remotas-por-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Teclas Multimedia no X</title>
		<link>http://blog.diovani.com/2007/06/08/teclas-multimedia-no-x/</link>
		<comments>http://blog.diovani.com/2007/06/08/teclas-multimedia-no-x/#comments</comments>
		<pubDate>Fri, 08 Jun 2007 13:13:25 +0000</pubDate>
		<dc:creator>diovani</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[multimídia]]></category>
		<category><![CDATA[x11]]></category>

		<guid isPermaLink="false">http://blog.diovani.com/?p=45</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<p>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.</p>
<p>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 &#8216;xev&#8217;.</p>
<p><a title="xev" name="xev"></a>Apenas execute o comando &#8216;<strong>$ xev</strong>&#8216; 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:</p>
<blockquote><p><strong>KeyRelease event, serial 31, synthetic NO, window 0&#215;2800001,<br />
root 0&#215;7d, subw 0&#215;0, time 2792224, (-22,86), root:(565,101),<br />
state 0&#215;10, keycode 160, same_screen YES,<br />
XLookupString gives 0 bytes:</strong></p></blockquote>
<p>O valor &#8216;keycode&#8217; é o que precisamos, neste exemplo, o keycode é 160. Para facilitar use o script a seguir:</p>
<blockquote><p><strong>xev | grep keycode | \<br />
sed s/&#8221;^.*keycode *\([0-9]\+\).*$&#8221;/&#8221;keycode \1 = &#8220;/ |  uniq</strong></p></blockquote>
<p>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:</p>
<blockquote><p><strong>keycode 36 =<br />
keycode 144 =<br />
keycode 162 =<br />
keycode 164 =</strong></p></blockquote>
<p>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 <a href="#keysyms">configuração dos keysyms no X</a>, caso contrário veja a seguir.</p>
<p>Caso seu você não obtenha nenhuma saída no terminal após executar o xev, execute o comando &#8216;<strong>$ dmesg</strong>&#8216; no terminal. Você deverá ver algo como isto na saída:</p>
<blockquote><p>atkbd.c: Unknown key released (translated set 2, code 0&#215;96 on isa0060/serio0).<br />
atkbd.c: Use &#8217;setkeycodes e016 &lt;keycode&gt;&#8217; to make it known.</p></blockquote>
<p>Isso significa que seu kernel não possui keycodes mapeados dos &#8217;scancodes&#8217; de seu teclado. Assim você deverá adicionar uma linha no seu arquivo &#8216;<strong>/etc/rc.local</strong>&#8216; pra cada keycode que deseja adicionar, como a seguir:</p>
<blockquote><p><strong>Arquivo &#8216;</strong><strong>/etc/rc.local&#8217;</strong></p>
<p>setkeycodes e008 136<br />
setkeycodes e016 150<br />
&#8230; e assim por diante &#8230;</p></blockquote>
<p>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.</p>
<p>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 &#8216;<strong>sh /etc/rc.local</strong>&#8216; no terminal. Depois disso, reinicie o X e tente <a href="#xev">usar o xev novamente</a>.</p>
<p>Agora você precisará criar um arquivo que relacione os keycodes obtidos com sinais de teclas, ou keysyms. Crie um arquivo chamada <strong>~/.Xmodmap</strong> e adicione as linhas como a seguir:</p>
<blockquote><p><strong>! Configuracoes de Teclas multimedia no X<br />
! Use ! for comments</strong></p>
<p><strong>keycode 176 = XF86AudioRaiseVolume<br />
keycode 160 = XF86AudioMute<br />
keycode 174 = XF86AudioLowerVolume<br />
keycode 162 = XF86AudioPlay<br />
keycode 164 = XF86AudioStop<br />
keycode 144 = XF86AudioPrev<br />
keycode 153 = XF86AudioNext</strong></p></blockquote>
<p>Uma lista com os keysyms possíveis pode ser encontrada no arquivo &#8216;<strong>/usr/share/X11/XKeysymDB</strong>&#8216;, 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).</p>
<p><a title="keysyms" name="keysyms"></a>Agora adicione o comando a seguir no final de seu <strong>~/.xinitrc</strong>, ou crie o arquivo, caso não exista:</p>
<blockquote><p><strong> /usr/bin/xmodmap ~/.Xmodmap</strong></p></blockquote>
<p>Caso deseje que os keysyms sejam carregados na sessão de qualquer usuário, adicione o comando acima no final de seu &#8216;<strong>/etc/X11/xinit/xinitrc</strong>&#8216; e mude o diretório do arquivo (como &#8216;<strong>/usr/bin/xmodmap /etc/X11/xinit/Xmodmap</strong>&#8216;).</p>
<p>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.</p>
<blockquote><p><strong>Enlightement DR17</strong></p>
<p>Painel de Controle -&gt; Teclado -&gt; Keybindinds</p>
<p><strong>Xfce4</strong></p>
<p>Settings Manager -&gt; Teclado -&gt; Atalhos</p>
<p><strong>KDE</strong></p>
<p>Painel de Controle -&gt; Regional e Acessibilidade -&gt; Atalhos do Teclado<br />
ou no Kmix: Configurações -&gt; Configure GlobalShortcuts</p></blockquote>
<p><em>Fonte: <a href="http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys#Setting_up_xmodmap">http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys#Setting_up_xmodmap</a><br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.diovani.com/2007/06/08/teclas-multimedia-no-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
