Resolvido: Spotify só abre em fullscreen no Ubuntu

Parece ser um problema comum o Spotify “travar” no modo fullscreen no Ubuntu, sem dar acesso a taskbar.

Felizmente arrumar este problema do fullscreen é simples. Você deve:

  1. Encontrar o arquivo de configuração / preferências do Spotify
  2. Remover as referências as configurações de janela

Como encontrar meu arquivo de configuração do Spotify

Primeiro feche o Spotify. Depois vamos encontrar seu arquivo de configuração. Alguns fóruns que encontrei falam que o arquivo fica em ~/.config/spotify/prefs

No Ubuntu 18 o Spotify usa o snap, então para encontrar todos os arquivos de configuração fiz o seguinte:

find ~/snap/spotify/ -name prefs

Isto irá listar todos os arquivos “prefs” dentro do diretório. Para facilitar, você pode usar o seu editor e já abrir todos no editor:

find ~/snap/spotify/ -name prefs -execdir vscode {} \;

Agora é só procurar pelas ocorrências de app.window e remover estas linhas dos arquivos de configuração. Feito isso, salve os arquivos e pronto, seu spotify não abrirá mais no modo fullscreen.

Você também pode optar por apagar os arquivos de configuração – mas isto vai forçar um novo login quando você reiniciar o Spotify (e possivelmente perder qualquer outra configuração local que esteja salva nos arquivos de preferências).

Como abrir sublime no terminal (Linux) sem usar a sessão do terminal

Um dos problemas que eu não enfrentava com o Sublime no MacOS mas achava um pouco chato no Subline no Linux (Ubuntu) é que quando eu abria o Sublime pelo terminal no Ubuntu o aplicativo ficava atrelado a sessão do terminal – não posso usar o termina e se eu fechar o terminal, encerra o Sublime.

Como abrir o Sublime no terminal sem usar a sessão do terminal

O primeiro passo é remover o link simbólico em /user/bin/sublime (ou outro nome que você tenha utilizado para chamar o aplicativo pelo terminal).

rm /usr/bin/sublime

Feito isso vamos criar um pequeno shell que vai abrir o sublime sem estar atrelado a sessão do terminal:

Crie o arquivi /usr/bin/sublime com o seguinte conteúdo:

#!/bin/sh
nohup /opt/Sublime\ Text\ 2/sublime_text $1 >/dev/null 2>&1 &

Se necessário substitua /opt/Sublime\ Text\ 2/sublime_text pelo caminho onde você fez a instalação do Sublime Text.

Salve o arquivo e agora é só abrir o terminal e digitar “sublime” que você terá o aplicativo aberto e pode usar ou fechar o terminal, sem afetar o programa.

Configurando teclado da Apple no Ubuntu

Esta semana eu vendi meu Mac Mini e voltei a usar o Ubuntu como sistema operacional para trabalhar. Continuei utilizando o teclado do Mac, e encontrei alguns problemas:

Problema de acentuação

Tive um problema para fazer o teclado do Mac funcionar no Ubuntu, para corrigir os problemas de acentuação foi só alterar o idioma do teclado (keyboard layout) para “English (US, alternative, international)” – mas isso pode mudar de acordo com o seu teclado.

Teclado numérico

Problema de acentuação resolvido, o segundo problema foi que o numlock não estava ligado – mas descobri que o botão “clear” (em cima do numpad) ativa e desativa o teclado numérico.

Teclas function sempre ativa (F1, F2, etc não funciona)

Um comportamento estranho foi que sempre qualquer tecla Fx (onde x é qualquer número) era pressionada o teclado executava a função (fn) da tecla, como aumentar volume, pausar música, etc.

Para utilizar a tecla “normal”, sem as funções de mídia eu tinha que pressionar a tecla fn.

Você pode resolver este “comportamento estranho” criando um arquivo de configuração para o teclado, se trata da opção “fnmode” do teclado. A opção fnmode pode ter 3 valores (0, 1 ou 2) e funciona da seguinte forma:

0 = Pressionar fn+F1 vai ser o mesmo que pressionar F1.

1 = Pressionar F1 vai executar a ação especial do F1. Pressionar fn+F1 vai executar a função do F1

2 = Pressionar F1 vai executar a função esperada para o F1. Pressionar fn+F1 vai executar a função especial do F1 (o comportamento esperado na maioria dos casos).

Vamos configurar, execute no terminal:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf

Ou adicione (crie, se precisar) a configuração do fnmode=2 no /etc/modprobe.d/hid_apple.conf.

Agora é só fazer seu novo arquivo de configuração ser carregado:

sudo update-initramfs -u -k all

Problema resolvido, agora você pode usar o seu teclado do Mac no Ubuntu sem quebrar a cabeça para usar os F´s!

Se você  programa no Ubuntu, leia também:

Mais informações no Help Ubuntu (en)

Resolvendo o problema de locale no EC2

Tenho algumas instâncias no EC2 da Amazon e todas utilizam Ubuntu Server. E todas tinham um problema com language, o que me impedia de abrir o terminal do MongoDB por exemplo, ou exibia os avisos abaixo em algumas instalações:

WARNING! Your environment specifies an invalid locale. This can affect your user experience significantly, including the ability to manage packages.

perl: warning: Setting locale failed.

perl: warning: Please check that your locale settings:

    LANGUAGE = (unset),

    LC_ALL = (unset),

    LC_CTYPE = "de_DE.UTF-8",

    LANG = "en_US.UTF-8"

    are supported and installed on your system.

perl: warning: Falling back to the standard locale ("C").

locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_ALL to default locale: No such file or directory

O problema é não ter um locale definido, eu já tentei várias coisas, a maioria dos tutorias mandava eu fazer o seguinte:

sudo locale-gen fi_FI.UTF-8
sudo dpkg-reconfigure locales

Isso, teoricamente, resolve o problema porém ele voltou acontecer em todas as instâncias, e ter que repetir o processo não é o que chamo de solução.

O que realmente resolveu meu problema foi editar o arquivo /etc/environment e adicionar a seguinte linha:

LC_ALL="en_US.UTF-8"

Agora, sempre que a instância iniciar ela terá o LC_ALL definido, resolvendo o probelma com o locale inválido.

Tutorial – deploy com git no Ubuntu Server (AWS EC2)

Semana passada configurei um servidor novo para um cliente (GS Solutions) e optamos por usar AWS para este projeto (leia meu comparativo entre Locaweb e Amazon) e fiquei encarregado de configurar o servidor.

O servidor será exclusivo para um projeto e optei por fazer todos os deploys com git para manter o controle do código que vai para o ar e automatizar o deploy. 

Já fiz isso para o And After e para o Eu Compraria e lembro que foi um pouco complicado permitir o git pull através do apache (usuário www-data no Ubuntu Server).

Mas uma vez feito, não tem erro. este é um tutorial de 4 passos simples para configurar seu servidor e permitir deploy utilizando o Git.

O tutorial foi testado em servidor Linux (Ubuntu Server) e pode precisar de ajustes simples para outros servidores.

1. Instale o git no servidor

Sem nenhum mistério:

sudo apt-get install git

2. Crie uma chave para o user www-data

Aqui está o segredo de permitir o deploy diretamente por comandos do Apache, que utiliza o usuário www-data.

No meu caso o deploy é feito através de um ambiente fechado do sistema, onde através do PHP o git pull é executado. O repositório em questão será onde está configurado o domínio do serviço, então quando o pull é executado na branch master acontece o deploy.

Para criar uma chave ssh para o user www-data você vai precisar executar o ssh-keygen com este usuário, para isso execute no servidor:

sudo -u www-data ssh-keygen

E gere uma chave para este usuário, com ou sem senha. Na home deste usuáriuo (no Ubuntu Server a home do usuário www-data normalmente é /var/www/) você terá uma pasta .ssh onde ficarão as chaves.

3. Libere as chaves no seu repositório

Agora é só cadastrar as chaves no seu repositório para que seu www-data do servidor tenha acesso ao repositório, no terminal do servidor digite:

vi ~/var/www/.ssh/id_rsa.pub

Cadastre a chave pública no seu repositório e pronto, você está pronto para acessar seu repositório diretamente do seu servidor.

4. Clone o repositório

Agora no seu servidor você pode executar os comandos do git com o usuário www-data, por exemplo:

sudo -u www-data git clone meurepositorio.git

Lembre-se que para automatizar o seu deploy o domínio configurado no Apache (sites available) deve ser o seu próprio repositório.

Para fazer o deploy você pode escolher a forma que achar melhor. Eu executo os comandos com a ajuda do PHP em um ambiente fechado: assim o php (www-data) executa o git pull no repositório do seridor.

Não sei se existe (e qual é) o risco do user www-data ter uma chave pública cadastrada no repositório, mas o ideal é que este usuário tenha acesso apenas de leitura no seu repositório.

Leia também mais algumas dicas e utilidades para seu servidor: