ncmpcpp CheatSheet

11 de outubro de 2018

Atalhos - Movimentação

  • Up k - Move cursor up
  • Down j - Move cursor down
  • [ - Move cursor up one album
  • ] - Move cursor down one album
  • { - Move cursor up one artist
  • } - Move cursor down one artist
  • Page Up - Page up
  • Page Down - Page down
  • Home - Home
  • End - End
  • Tab - Switch to next screen in sequence
  • Shift-Tab - Switch to previous screen in sequence
  • F1 - Show help
  • 1 - Show playlist
  • 2 - Show browser
  • 3 - Show search engine
  • 4 - Show media library
  • 5 - Show playlist editor
  • 6 - Show tag editor
  • 7 - Show outputs
  • 8 - Show music visualizer
  • = - Show clock
  • @ - Show server info

Atalhos - Global

  • s - Stop
  • p - Pause
  • > - Next track
  • < - Previous track
  • Ctrl-H Backspace - Replay playing song
  • f - Seek forward in playing song
  • b - Seek backward in playing song
  • − Left - Decrease volume by 2%
  • Right + - Increase volume by 2%
  • t - Toggle space mode (select/add)
  • T - Toggle add mode (add or remove/always add)
  • - Toggle mouse support
  • v - Reverse selection
  • V - Remove selection
  • B - Select songs of album around the cursor
  • a - Add selected items to playlist
  • ` - Add random items to playlist
  • r - Toggle repeat mode
  • z - Toggle random mode
  • y - Toggle single mode
  • R - Toggle consume mode
  • Y - Toggle replay gain mode
  • # - Toggle bitrate visibility
  • Z - Shuffle playlist
  • x - Toggle crossfade mode
  • X - Set crossfade
  • u - Start music database update
  • : - Execute command
  • Ctrl-F - Apply filter
  • / - Find item forward
  • ? - Find item backward
  • , - Jump to previous found item
  • . - Jump to next found item
  • w - Toggle find mode (normal/wrapped)
  • G - Locate song in browser
  • ~ - Locate song in media library
  • Ctrl-L - Lock/unlock current screen
  • Left h - Switch to master screen (left one)
  • Right l - Switch to slave screen (right one)
  • E - Locate song in tag editor
  • P - Toggle display mode
  • \ - Toggle user interface
  • ! - Toggle displaying separators between albums
  • g - Jump to given position in playing song (formats: mm:ss, x%)
  • i - Show song info
  • I - Show artist info
  • L - Toggle lyrics fetcher
  • F - Toggle fetching lyrics for playing songs in background
  • q - Quit

Atalhos - Lista

  • Enter - Play selected item
  • Delete - Delete selected item(s) from playlist
  • c - Clear playlist
  • C - Clear playlist except selected item(s)
  • Ctrl-P - Set priority of selected items
  • Ctrl-K m - Move selected item(s) up
  • n Ctrl-J - Move selected item(s) down
  • M - Move selected item(s) to cursor position
  • A - Add item to playlist
  • e - Edit song
  • S - Save playlist
  • Ctrl-V - Sort playlist
  • Ctrl-R - Reverse playlist
  • o - Jump to current song
  • U - Toggle playing song centering

Atalhos - Navegador

  • Enter - Enter directory/Add item to playlist and play it
  • Space - Add item to playlist/select it
  • e - Edit song
  • e - Edit directory name
  • e - Edit playlist name
  • 2 - Browse MPD database/local filesystem
  • ` - Toggle sort mode
  • o - Locate playing song
  • Ctrl-H Backspace - Jump to parent directory
  • Delete - Delete selected items from disk
  • G - Jump to playlist editor (playlists only)

Atalhos - Sistema de Busca

  • Enter - Add item to playlist and play it/change option
  • Space - Add item to playlist
  • e - Edit song
  • y - Start searching
  • 3 - Reset search constraints and clear results

Atalhos - Biblioteca de Mídia

  • 4 - Switch between two/three columns mode
  • Left h - Previous column
  • Right l - Next column
  • Enter - Add item to playlist and play it
  • Space - Add item to playlist
  • e - Edit song
  • e - Edit tag (left column)/album (middle/right column)
  • ` - Toggle type of tag used in left column
  • m - Toggle sort mode

Atalhos - Editor de Lista

  • Left h - Previous column
  • Right l - Next column
  • Enter - Add item to playlist and play it
  • Space - Add item to playlist/select it
  • e - Edit song
  • e - Edit playlist name
  • Ctrl-K m - Move selected item(s) up
  • n Ctrl-J - Move selected item(s) down
  • Delete - Delete selected playlists (left column)
  • C - Clear playlist except selected item(s)
  • Ctrl-P - Set priority of selected items
  • Ctrl-K m - Move selected item(s) up
  • n Ctrl-J - Move selected item(s) down
  • M - Move selected item(s) to cursor position
  • A - Add item to playlist
  • e - Edit song
  • S - Save playlist
  • Ctrl-V - Sort playlist
  • Ctrl-R - Reverse playlist
  • o - Jump to current song
  • U - Toggle playing song centering

Atalhos - Navegador

  • Enter - Enter directory/Add item to playlist and play it
  • Space - Add item to playlist/select it
  • e - Edit song
  • e - Edit directory name
  • e - Edit playlist name
  • 2 - Browse MPD database/local filesystem
  • ` - Toggle sort mode
  • o - Locate playing song
  • Ctrl-H Backspace - Jump to parent directory
  • Delete - Delete selected items from disk
  • G - Jump to playlist editor (playlists only)

Atalhos - Sistema de Busca

  • Enter - Add item to playlist and play it/change option
  • Space - Add item to playlist
  • e - Edit song
  • y - Start searching
  • 3 - Reset search constraints and clear results

Atalhos - Biblioteca de Mídia

  • 4 - Switch between two/three columns mode
  • Left h - Previous column
  • Right l - Next column
  • Enter - Add item to playlist and play it
  • Space - Add item to playlist
  • e - Edit song
  • e - Edit tag (left column)/album (middle/right column)
  • ` - Toggle type of tag used in left column
  • m - Toggle sort mode

Atalhos - Editor de Lista

  • Left h - Previous column
  • Right l - Next column
  • Enter - Add item to playlist and play it
  • Space - Add item to playlist/select it
  • e - Edit song
  • e - Edit playlist name
  • Ctrl-K m - Move selected item(s) up
  • n Ctrl-J - Move selected item(s) down
  • Delete - Delete selected playlists (left column)
  • Delete - Delete selected item(s) from playlist (right column)
  • c - Clear playlist
  • C - Clear playlist except selected items

Atalhos - Letras

  • Space - Toggle reloading lyrics upon song change
  • e - Open lyrics in external editor
  • ` - Refetch lyrics

Atalhos - Editar de Tags Pequeno

  • Enter - Edit tag
  • y - Save

Atalhos - Editar de Tags

  • Enter - Edit tag/filename of selected item (left column)
  • Enter - Perform operation on all/selected items (middle column)
  • Space - Switch to albums/directories view (left column)
  • Space - Select item (right column)
  • Left h - Previous column
  • Right l - Next column
  • Ctrl-H Backspace - Jump to parent directory (left column, directories view)

Fonte: ncmpcpp CheatSheet

Leia Mais

Mini-tutorial de backup de sites em servidores

29 de abril de 2018

Script para backup automatizado

#!/bin/bash
#
# /usr/local/bin/backup.sh: Um script simples para backup de banco de dados e arquivos de um(ou vários sites).
#
# Uso: ./backup.sh [clear|sites|mysql|both]
# * Não se esqueça de alterar as variáveis $USUARIO_MYSQL, $SENHA_MYSQL e $DIR_WEBSERVER!!!
# 
# Script criado por Lucas Saliés Brum a.k.a. sistematico, <lucas@archlinux.com.br>

DIR_WEBSERVER="/var/www"
USUARIO_MYSQL="root"
SENHA_MYSQL="SENHA"
DIAS=30 # Dias para manter o backup
DIR="/tmp/backup"
DIR_DB="$DIR/dbs"
DIR_SITES="$DIR/site"

backupMysql() {
	if [ ! -d $DIR_DB ]; then
		mkdir -p $DIR_DB
	else
		rm -f "$DIR_DB/*gz" > /dev/null 2>&1
	fi

	databases=$(mysql -u $USUARIO_MYSQL -p$SENHA_MYSQL -e "SHOW DATABASES;" | tr -d "| " | egrep -v "Database|mysql|performance_schema|phpmyadmin|information_schema")

	for db in $databases; do
    	if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
			banco="$(date +%Y%m%d).$db.sql"
        	mysqldump -u $USUARIO_MYSQL -p$SENHA_MYSQL --databases $db > $DIR_DB/$banco
      		gzip --force $DIR_DB/$banco
    	fi
	done	
}

backupSites() {
	SITES=$(ls -1 $DIR_WEBSERVER)

	if [ ! -d $DIR_SITES ]; then
        mkdir -p $DIR_SITES
	else
		rm -f "$DIR_SITES/*gz" > /dev/null 2>&1
    fi

	for site in $SITES; do
		if [[ "$site" != "storage" ]] && [[ "$site" != "test" ]]; then
			/usr/bin/rsync -a $DIR_WEBSERVER/$site $DIR_SITES/ --delete >/dev/null 2>&1
			gzip -r --force $DIR_SITES/$site
		fi
	done	
}

if [ "$1" == "mysql" ]; then
	echo -e "[*] Backup do MySQL"
	backupMysql
elif [ "$1" == "sites" ]; then
	echo -e "[*] Backup dos Arquivos"
	backupSites
elif [ "$1" == "both" ]; then
	echo -e "[*] Backup do MySQL"
	backupMysql
	echo -e "[*] Backup dos Arquivos"	
	backupSites
elif [ "$1" == "clear" ]; then
	echo -e "[*] Limpando backups mais antigos que $DIAS dias"
	arquivos=$(find $DIR -mtime +$DIAS)
	echo "Os arquivos:"
	echo "$arquivos"
	echo "Serão apagados."
	echo
	read -p "Você tem certeza? [s/N]: " resposta
	if [[ "$resposta" = *[sS]* ]]; then
		echo "A resposta foi sim."
		sleep 5
	else
		echo "A resposta foi não.."
	fi
fi
Leia Mais

Instalando o Nginx + PHP FastCGI no Windows 10 como um Serviço

14 de abril de 2018

Instalando o Nginx + PHP FastCGI no Windows 10 como um serviço.

  1. Baixe o WinSW
  2. Faça duas cópias do arquivo WinSW.NET2.exe com os seguintes nomes: c:\svc\php\phpsvc.exe e c:\svc\nginx\nginxsvc.exe
  3. Copie este arquivo para c:\svc\php\phpsvc.xml e este para c:\svc\nginx\nginxsvc.xml
  4. Baixe e extraia o PHP(Non Thread Safe) em c:\php
  5. Baixe e extraia o Nginx para Windows em c:\nginx
  6. Substitua o arquivo c:\nginx\conf\nginx.conf pelo nginx.conf logo abaixo
  7. Rode o comando cmd com privilégios de administrador(isso é muito importante!)
  8. Dentro do prompt de comando execute os seguintes passos:
cd c:\svc\nginx  
nginxsvc.exe install  
cd c:\svc\php  
phpsvc.exe install
  1. Abra o services.msc e rode os serviços PHP e Nginx.
  2. Tudo pronto!

Espero que funcione.
Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Emulando o rc.local através do systemd

10 de abril de 2018
Tags: lnx systemd dicas

Execute:

# touch /usr/lib/systemd/system/rc-local.service /etc/rc.local
# chmod +x /usr/lib/systemd/system/rc-local.service /etc/rc.local
# nano /usr/lib/systemd/system/rc-local.service /etc/rc.local

rc-local.service

[Unit]
Description=/etc/rc.local compatibility

[Service]
Type=oneshot
ExecStart=/etc/rc.local
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

/etc/rc.local

#!/bin/sh -e
#
# /etc/rc.local
#
# By default this script does nothing.

algum_comando

exit 0

E por último e não meno importante:

systemctl enable rc-local.service`.  

Todos os comandos executados como root.

Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Nginx Snippets

23 de março de 2018

Alguns snippets que podem ser úteis.

Redirecionar www para não-www

server {
    server_name www.dominio.com;
    # $scheme é uma variável interna do Nginx. 
    # Se você digitou https://www.dominio.com ele transformará em https://dominio.com
    # E se você digitou http://www.dominio.com ele transformará em http://dominio.com
    return 301 $scheme://$host$request_uri;
}

Redirecionar http para https

server {
    listen 80; # IPv4
    listen [::]:80; # IPv6	
    server_name dominio.com;
    return 301 https://$host$request_uri; # Você pode usar $host (variável interna do Nginx) ou dominio.com
}

Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Shell Script Snippets

13 de janeiro de 2018

Alguns snippets que podem ser úteis.

Arrays

Contando itens de um array:

echo ${#array[@]}  

Listagem de diretórios para um array:

i=0
while read linha
do
    arquivos[$i]="$linha"        
    ((i++))
done < <(ls -1 $dir)

echo ${arquivos[0]}

Descobrindo um índice de array com base em seu valor:

array=(vermelho laranja verde)
valor='verde'

for i in "${!array[@]}"; do
   if [[ "${array[$i]}" = "${valor}" ]]; then
       echo "${i}";
   fi
done

Baixando todas as imagens de um site com o wget

wget -r -c -nd -p -H -e robots=off --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" -A jpg,png https://site.com/media/

Removendo todos os comentários de um arquivo

sed -e 's/#.*$//' -e '/^$/d' arquivo

Veja essa e outras dicas sobre sed em operações com sed.

Pegando um arquivo aleatório de um diretório

ls /dir | shuf -n 1
# ou, um modo mais rápido
find /dir -type f | shuf -n 1

Redimensionando todas as imagens de um diretório

find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"

Pode se usar porcentagem ou tamanho, ex: 200x100

Pegando valores dentro de aspas duplas (“)

grep -o '".*"' arquivo | sed 's/"//g'

Passando parametros no formato –parametro=valor

for a in $@; do
    pa=$(echo $a | awk -F= '{print $1}')
    va=$(echo $a | awk -F= '{print $2}')

	case $pa in
        -u | --usuario) usuario=$va ;;
		-s | --senha) senha=$va ;;
		-b | --banco) banco=$va ;;
		-c | --caminho) caminho=$va ;;
        *) ajuda ;;
    esac
done  

Checando se uma variável contem algum valor

[ -z $var ] && echo '$var não existe!'

Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Criando e aplicando um patch no Linux

17 de junho de 2017
Tags: lnx diff patch

Primeiro vamos criar uma copia do arquivo de sistema. Usarei como exemplo o arquivo /usr/bin/xdg-open presente em diversas distribuições.

sudo cp /usr/bin/xdg-open /usr/bin/xdg-open.new

Faça as alterações necessárias no arquivo:

sudo vim /usr/bin/xdg-open.new

Crie o diff:

diff -Naur /usr/bin/xdg-open /usr/bin/xdg-open.new > xdg-open.diff

Aplicando o patch com backup:

sudo patch -b /usr/bin/xdg-open xdg-open.diff

Aplicando o patch sem backup:

sudo patch -p0 /usr/bin/xdg-open xdg-open.diff

Comparando as diferenças:

diff /usr/bin/xdg-open /usr/bin/xdg-open.orig

Em breve mais exemplos…

Boa sorte!
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Operações de texto com o SED

7 de junho de 2017
Tags: lnx sed regex

Cortar apenas o espaço em branco no começo das linhas em um arquivo use um dos três exemplos:

sed -i 's/^ *//' arquivo.txt
sed -i 's/^[[:blank:]]*//g' arquivo.txt
sed -i 's/^[[:space:]]*//g' arquivo.txt

ou para remover qualquer espaço em branco(não só no começo dos arquivos):

sed -i 's/ //' arquivo.txt
sed -i 's/[[:blank:]]//g' arquivo.txt
sed -i 's/[[:space:]]//g' arquivo.txt  

Extrair apenas a primeira palavra de cada linha:

sed -i 's/ .*//' arquivo.txt

Omitir N caracteres no início de cada linha:

sed -i 's/^...//' arquivo.txt

Onde os pontos são os números de caracteres a serem omitidos.

Removendo todos os comentários de um arquivo

sed -e 's/#.*$//' -e '/^$/d' arquivo

Alterando um linha específica em um arquivo

variavel="Novo começo"
sed -i "0,/^Começo.*/s//${variavel}/" /caminho/arquivo.txt

Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Escondendo uma categoria da index do seu site no Wordpress

23 de abril de 2017
Tags: wordpress

Vá em http://seusite.com/wp-admin/edit-tags.php?taxonomy=category
E procure a tag_ID esse número é o ID da categoria.

Com esse número em mãos, vá até:
http://seusite.com/wp-admin/ > Aparência > Editor e procure o arquivo functions.php

Insira o seguinte código:

// Hide Cats function excludeCat($query) { if ( $query->is_home ) { $query->set('cat', '-8,-9,-10,-29'); } return $query; } add_filter('pre_get_posts', 'excludeCat');

A partir de agora seu site não mostrará mais posts nestas categorias na página inicial.

Boa sorte!
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Tiling no Openbox

21 de agosto de 2016
Tags: openbox

Como funciona: OpenBox Tiling

Adicionar ao seu arquivo /etc/xdg/openbox/rc.xml ou ~/.config/openbox/rc.xml:

<!-- Tiling -->
<!-- Vertical tiling -->
<keybind key="C-W-Left">
  <action name="UnmaximizeFull"/>
  <action name="MoveResizeTo">
  <width>50%</width>
  </action>
  <action name="MaximizeVert"/>
  <action name="MoveResizeTo">
  <x>0</x>
  <y>0</y>
  </action>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="UnmaximizeFull"/>
    <action name="MoveResizeTo">
      <width>50%</width>
    </action>
    <action name="MaximizeVert"/>
    <action name="MoveResizeTo">
      <x>-0</x>
      <y>0</y>
    </action>
  </finalactions>
  </action>
</keybind>

<keybind key="C-W-Right">
  <action name="UnmaximizeFull"/>
  <action name="MoveResizeTo">
  <width>50%</width>
  </action>
  <action name="MaximizeVert"/>
  <action name="MoveResizeTo">
  <x>-1</x>
  <y>0</y>
  </action>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="UnmaximizeFull"/>
    <action name="MoveResizeTo">
      <width>50%</width>
    </action>
    <action name="MaximizeVert"/>
    <action name="MoveResizeTo">
      <x>-0</x>
      <y>0</y>
    </action>
  </finalactions>
  </action>
</keybind>

<!-- Horizontal tiling -->
<keybind key="C-W-Up">
  <action name="UnmaximizeFull"/>
  <action name="MoveResizeTo">
  <height>50%</height>
  </action>
  <action name="MaximizeHorz"/>
  <action name="MoveResizeTo">
  <x>0</x>
  <y>0</y>
  </action>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="UnmaximizeFull"/>
    <action name="MoveResizeTo">
      <height>50%</height>
    </action>
    <action name="MaximizeHorz"/>
    <action name="MoveResizeTo">
      <x>0</x>
      <y>-0</y>
    </action>
  </finalactions>
  </action>
</keybind>

<keybind key="C-W-Down">
  <action name="UnmaximizeFull"/>
  <action name="MoveResizeTo">
  <height>50%</height>
  </action>
  <action name="MaximizeHorz"/>
  <action name="MoveResizeTo">
  <x>0</x>
  <y>-1</y>
  </action>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="UnmaximizeFull"/>
    <action name="MoveResizeTo">
      <height>50%</height>
    </action>
    <action name="MaximizeHorz"/>
    <action name="MoveResizeTo">
      <x>0</x>
      <y>-0</y>
    </action>
  </finalactions>
  </action>
</keybind>

<!-- Restore window dimensions -->
<keybind key="C-W-r">
  <action name="UnmaximizeFull"/>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="UnmaximizeFull"/>
  </finalactions>
  </action>
</keybind>

<!-- Restore FullScreen -->
<keybind key="C-W-f">
  <action name="ToggleMaximizeFull"/>
  <action name="NextWindow">
  <interactive>no</interactive>
  <dialog>none</dialog>
  <finalactions>
    <action name="ToggleMaximizeFull"/>
  </finalactions>
  </action>
</keybind> 	 
<!-- Fim do Tiling -->    

Em qualquer lugar entre a linha <keyboard> e </keyboard>.

Arquivo completo: https://github.com/sistematico/caos/blob/master/etc/xdg/openbox/rc.xml#L326-L394

Boa sorte!
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Automatizando o envio de projetos para o Github

21 de agosto de 2016
Tags: git

Configure seu git:

git config --global user.name "SEU NOME"  
git config --global user.email "SEU EMAIL"

Crie suas chaves SSH e copie-as para a área de transferência:

ssh-keygen -t rsa -b 4096 -C "seu_email@exemplo.com"  
xclip -sel clip < ~/.ssh/id_rsa.pub  

(Para a última linha de comando é necessário o pacote xclip, aprenda aqui neste outro artigo mais sobre o xclip).

Vá até aqui > “New SSH Key” e cole a chave que você acabou de copiar.

Siga estes passos para criar um novo repositório(ou sinta-se livre para dar um fork em um repositório já existente).

Adicione um upstream e altere o metodo da origem remota:

git remote add upstream https://github.com/USUARIO/REPO.git
git remote set-url origin git+ssh://git@github.com/USUARIO/REPO.git

Altere algum arquivo e envie as modificações:

touch README.md   
git add .  
git commit -m 'Alterações automáticas...'   
git push origin master  

Acesse seu novo repositório no Github e veja as alterações: https://github.com/USUARIO/REPO

Dica: Para realizar o “push” em suas alterações sem senha, entre na pasta local do seu repositório e digite o seguinte código: git remote set-url origin git@github.com:USUARIO/REPO.git

Fontes: https://help.github.com/
http://stackoverflow.com/a/8588786

Boa sorte e bom git! :laughing:
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

Criando uma WebRádio com o ShoutCast + sc_trans

15 de agosto de 2016

Olá pessoal!

Aqui vai uma dica que achei um pouco útil.

sc_trans é o daemon responsável por carregar um lista de músicas que serão tocadas através do sc_serv(ShoutCast), lembrando que esse é o software mais popular para se montar um webrádio.

Este simples script recarrega uma lista de músicas sem parar o ShoutCast:


#!/bin/sh
#
# sct_refresh.sh: Create and Refresh a SC Trans playlist
#
# Developed by Lucas Saliés Brum a.k.a. sistematico, <lucas@archlinux.com.br>
# Based on "Dytut" work:
# http://forums.winamp.com/showpost.php?p=1806538&postcount=6
#
# Suggested cronjob: */60 * * * * /bin/sh /home/shoutcast/bin/sct_refresh.sh
#

# Vars
TRANS_HOME="/home/radio"
TRANS_PID=$(pidof sc_trans)
TRANS_FIND=$(which find)
TRANS_KILL=$(which kill)
TRANS_CHOWN=$(which chown)
TRANS_PATH="${TRANS_HOME}/musicas"
TRANS_LIST="${TRANS_HOME}/lista.lst"
TRANS_USER="radio"
TRANS_GROUP="radio"

# DONT CHANGE BELOW
# Create playlist
$TRANS_FIND $TRANS_PATH -iname "*.mp3" > $TRANS_LIST

# Reload new playlist(try one of above, maybe need root permissions)
#$TRANS_KILL -s USR1 $TRANS_PID
#$TRANS_KILL -USR1 $TRANS_PID
sudo $TRANS_KILL -SIGUSR1 $TRANS_PID

# turn shuffle on/off
# $TRANS_KILL -s USR2 $TRANS_PID

# Change permissions
# $TRANS_CHOWN ${TRANS_USER}:${TRANS_GROUP} $TRANS_LIST

Abaixo seguem alguns Gists que podem ser úteis.

Post original: http://forums.winamp.com/showthread.php?p=3023643#post3023643

Forte Abraço..
--
Lucas Saliés Brum
a.k.a. sistematico

Leia Mais

As cores oficiais das maiores redes sociais

5 de julho de 2016

Facebook Blue Hex: #3b5998 RGB: 59, 89, 152

Twitter Blue Twitter Blue Hex: #55acee RGB: 85, 172, 238

182-googleplus-red Google+ Red Hex: #dd4b39 RGB: 221, 75, 57

182-youtube-red YouTube Red Hex: #bb0000 RGB: 187, 0, 0

182-linkedin-blue Linkedin Blue Hex: #007bb5 RGB: 0, 123, 181

NEW Instagram Red Orange Hex: #e95950 RGB: 233, 89, 80

Instagram Blue Instagram Blue Hex: #125688 RGB: 18, 86, 136

WhatsApp Green WhatsApp Green Hex: #4dc247 RGB: 77, 194, 71

182-pinterest-red Pinterest Red Hex: #cb2027 RGB: 203, 32, 39

Vine Green Vine Green Hex: #00bf8f RGB: 0, 191, 143

Snapchat Yellow Snapchat Yellow Hex: #fffc00 RGB: 255, 252, 0

Quora Burgundy Quora Burgundy Hex: #a82400 RGB: 168, 36, 0

Dropbox Blue Dropbox Blue Hex: #007ee5 RGB: 0, 126, 229

182-flickr-pink Flickr Pink Hex: #ff0084 RGB: 255, 0, 132

182-tumblr-dark-turquoise Tumblr Dark Turquoise Hex: #32506d RGB: 50, 80, 109

182-vk-blue VK Blue Hex: #45668e RGB: 69, 102, 142

319-vimeo-green Vimeo Green Hex: #aad450 RGB: 170, 212, 80

182-foursquare-logo-blue Foursquare Logo Blue Hex: #0072b1 RGB: 0, 114, 177

Spotify Green Spotify Green Hex: #00e461 RGB: 0, 228, 97

Github Black Github Black Hex: #000000 RGB: 0, 0, 0

Behance Blue Behance Blue Hex: #1769ff RGB: 23, 105, 255

RSS Orange RSS Orange Hex: #ff6600 RGB: 255, 102, 0

Dribbble Hex: #ea4c89 RGB: 235, 75, 136

Skype Hex: #00aff0 RGB:

Fontes: Design Pieces & Brand Colors

Leia Mais

Algumas dicas de como usar o comando find para diversas operações

3 de julho de 2016

Arquivos vazios

Achar diretórios vazios na pasta atual:

find . -type d -empty

Achar e remover(use com cuidado):

find . -type d -empty -exec rmdir {} \;

ou

find . -type d -empty -delete

ou

find . -type d -empty -print0 | xargs -0 -I {} /bin/rm -r "{}"

Mais de um

Procurar mais de um padrão por vez:

find . -type f \( -name "*cache" -o -name "*xml" -o -name "*html" \)

Procurar em mais de um diretório:

find /var /usr /lib -name "*.py"

Por tamanho

Achar arquivos grandes:

find ~ -type f -size +50000k
  • Nesse exemplo acima o comando find irá procurar por arquivos com mais de 100MB na sua pasta $HOME.

Por data

Achar arquivos mais antigos que 5 dias.

find /path/ -mtime +5

Achar arquivos mais novos que 5 dias.

find /path/ -mtime 5

Fontes:
http://www.thegeekstuff.com/2009/03/15-practical-linux-find-command-examples/ http://www.thegeekstuff.com/2009/06/15-practical-unix-linux-find-command-examples-part-2/
https://www.cyberciti.biz/faq/find-large-files-linux/
man find

Leia Mais

Operações básicas no MySQL em modo texto

2 de julho de 2016
Tags: mysql snippets

Conectar ao MySQL:

mysql -u root -p

Criar um banco de dados:

CREATE DATABASE banco;

Excluir um banco de dados:

DROP DATABASE banco;

Criar um usuário e adicionar as permissões específicas de um banco de dados ao usuário criado:

GRANT ALL PRIVILEGES ON banco.* TO "usuario"@"localhost" IDENTIFIED BY "senha";

Recarregar os privilégios:

FLUSH PRIVILEGES;

Importar um arquivo SQL para o banco de dados:

mysql -u root -p banco < arquivo.sql

Exportar banco de dados:

mysqldump -u root -p banco > banco.sql

Exportar todos os bancos de dados:

mysqldump -u root -p --all-databases > todos.sql

Em breve mais snippets…

Leia Mais

Novos temas GTK de 2016

21 de junho de 2016
Tags: gtk novidades

Alguns temas GTK2/GTK3 para MATE, OpenBox, XFCE ou Gnome3.

Arc

Arc GTK Theme

Site oficial: https://github.com/horst3180/arc-theme


Paper

Paper

Site oficial: https://snwh.org/paper/


Vertex

Vertex

Site oficial: https://github.com/horst3180/Vertex-theme


Iris Light

Iris Light

Site oficial: https://github.com/xyl0n/iris-light


Numix

Numix

Site oficial: https://numixproject.org/


Polar Night

Polar Night

Site oficial: https://github.com/baurigae/polar-night


Cenozoic

Cenozoic

Gnome Look: https://www.gnome-look.org/content/show.php/Cenozoic?content=165734


Fontes:
https://www.maketecheasier.com/more-gtk-themes-linux/
https://www.maketecheasier.com/gtk-themes-for-linux/

Leia Mais

Definindo aplicativos padrão no Arch Linux

8 de junho de 2016
Tags: arch linux

Usando o xdg-mime:

Instale o pacote xdg-utils:

sudo pacman -S xdg-utils

Ache o tipo do arquivo:

xdg-mime query filetype /path/pagina.html

Veja qual aplicativo está associado:

xdg-mime query default text/html

Liste os aplicativos instalados:

ls /usr/share/applications/

Configure o aplicativo padrão:

xdg-mime default chromium.desktop text/html

Fontes: Arch Linux Wiki
              Arch Linux Forums

Boa sorte! :wink:

Leia Mais

Usando o git.io, gist e ix.io por linha de comando

8 de junho de 2016

Como usar os Git.io, gist e o ix.io direto da linha de comando:

Encurtando uma URL

git.io:

curl -i https://git.io -F "url=https://github.com/url/muito/longa"

Enviando um trecho de código ou texto para o Github:

gists:

Instalando o gist no Arch Linux:

sudo pacman -S gist

Fazendo o login:

gist --login

Enviando o código:

gist arquivo.txt

ix.io:

Colando um arquivo de texto em http://ix.io

cat arquivo.txt | curl -F 'f:1=<-' ix.io

Instalando o ix:

curl ix.io/client > ix  
chmod +x ix  
sudo mv ix /usr/bin/

Usando:

ix arquivo.txt

Alguns serviçoes de encurtamento de URL e pastebin em: links
Exemplos de funções para o Fish Shell: config.fish

Fontes:
Github Blog
Gist ix.io

Leia Mais

Definindo aplicativos padrão no Arch Linux

8 de junho de 2016
Tags: arch linux

Usando o xdg-mime:

Instale o pacote xdg-utils:

sudo pacman -S xdg-utils

Ache o tipo do arquivo:

xdg-mime query filetype /path/pagina.html

Veja qual aplicativo está associado:

xdg-mime query default text/html

Liste os aplicativos instalados:

ls /usr/share/applications/

Configure o aplicativo padrão:

xdg-mime default chromium.desktop text/html

Para o MATE:

gsettings set org.mate.applications-browser exec chromium

No modo gráfico:

mate-default-applications-properties

BÔNUS váriaveis globais

/etc/profile ou /etc/bash.bashrc ou ~/.bashrc

BROWSER="chromium"
export BROWSER

/etc/fish/config.fish ou /etc/fish/conf.d/variables.fish (ou qualquer outro nome terminado em .fish) ou ~/.config/fish/config.fish

set -x -g BROWSER chromium

EDIT

gvfs-mime --set x-scheme-handler/magnet deluge.desktop

Fontes: Arch Linux Wiki
Arch Linux Forums
Arch Linux MATE Wiki
Arch Linux BBS
Ask Ubuntu

Boa sorte! :wink:

Leia Mais

Como criar um site no Github

7 de junho de 2016

Um novo repositório:

echo "# LOGIN.github.io" >> README.md
git init
git add README.md
git commit -m "Meu primeiro commit"
git remote add origin https://github.com/sistematico/LOGIN.github.io.git
git push -u origin master

…ou um repositório existente:

git remote add origin https://github.com/sistematico/LOGIN.github.io.git
git push -u origin master

Para atualizar seu site:

cd /pasta/do/site/
nano x y z
git add .
git commit -m "Alterados os arquivos x, y e z..."
git push origin master

Substitua LOGIN com seu nome de usuário do GitHub.

Saiba mais sobre Git aqui e aqui.

Boa sorte! :wink:

Leia Mais

Adicionando chaves públicas ao Arch Linux

7 de junho de 2016

Se você já se deparou com o seguinte erro:

┬─[lucas@caos:~/abs/lynx]─[15:01:12]
╰─>$ makepkg
==> Criando o pacote: lynx 2.8.8-4 (Ter Jun  7 15:01:16 AMT 2016)
==> Verificando as dependências de tempo de execução...
==> Verificando as dependências de tempo de compilação...
==> Obtendo fontes...
  -> Baixando lynx2.8.8rel.2.tar.bz2...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 2526k  100 2526k    0     0  34176      0  0:01:15  0:01:15 --:--:-- 26411
  -> Baixando lynx2.8.8rel.2.tar.bz2.asc...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   254  100   254    0     0     96      0  0:00:02  0:00:02 --:--:--    96
==> Validando source arquivos com md5sums...
    lynx2.8.8rel.2.tar.bz2 ... Passou
    lynx2.8.8rel.2.tar.bz2.asc ... Ignorada
==> Verificando assinatura de arquivo fonte com gpg...
    lynx2.8.8rel.2.tar.bz2 ... FALHOU (chave pública desconhecida 5DDF8FB7688E31A6)
==> ERRO: Uma ou mais assinaturas PGP não puderam ser verificadas!

Leia Mais

Usando o xclip

5 de junho de 2016

Um breve guia de como usar o xclip.

Copiar o conteúdo de um arquivo para a área de transferência:

xclip -sel clip < arquivo.txt

Copiando a saída de comando para a área de transferência:

comando | xsel -i -b

Agora é só usar o CTRL+v ou CTRL+SHIFT+v e colar!

Boa sorte! :wink:

Leia Mais

Guia Markdown

5 de junho de 2016

Um guia sobre a sintaxe básica do Markdown.

Este guia destina-se como uma referência rápida e básica. Guia extraído do Wiki: Markdown Here de Adam Pritchard Para informações mais completas, veja o [Original de John Gruber] (http://daringfireball.net/projects/markdown/) e a [página de informação Markdown do Github] (http://github.github.com/github-flavored-markdown/).

Você pode verificar mais ferramentas Markdown na seção Links.

Leia Mais


Criar um pen-drive bootavel do Windows no Linux

23 de maio de 2016
Tags: windows

Criar a partição: cfdisk /dev/sdb ou fdisk /dev/sdb (partição tipo 7 e flag boot)

Criar o sistema de arquivos NTFS:

mkfs.ntfs -f /dev/sdb1

Escrever a MBR do Windows 7 no Pen-Drive(Funciona para o Windows 8 tambem, e talvez o 10?):

ms-sys -7 /dev/sdb

ou

sudo lilo -M  /dev/sdb mbr

ou

sudo dd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdb

Montar a ISO e USB:

mkdir -p /mnt/usb /mnt/iso
mount -o loop win7.iso /mnt/iso
mount /dev/sdb1 /mnt/usb

Copiar os arquivos:

cp -r /mnt/iso/* /mnt/usb/

Use o sync para ter certeza que os arquivos foram escritos.

Pronto.

Agora quando quiser restaurar sua instalação é só usar:

dd if=/dev/sdb of=/win7.img

Fonte: ServerFault

Leia Mais

Papel de parede aletório do site Unsplash.com

9 de abril de 2016
Tags: archlinux

O script e snippets abaixo servem para carregar um papel de parede aleatório do site Unsplash.

Uma versão para Linux via Bash Script e a outra para incluir como background usando JavaScript e CSS em seu site.

A versão desktop troca automaticamente o papel de parede a cada dez minutos usando o programa feh.
Lembre-se de dar um chmod 755 no arquivo.

Na dúvida, comente :smile:

Leia Mais


Ativando o Windows Snapping no OpenBox

Testado no OpenBox sob Arch Linux
27 de março de 2016
Tags: openbox

Algumas pessoas sempre me perguntam porque eu não uso um gerenciador de janelas que funcione no modo Tiling. A grande verdade é que resisto a mudanças, e o estilo Tiling realmente não me atrai, sou um escravo do mouse :smile:

Porem, existem alguns momentos que é necessário dividir a tela em duas(ou mais) partes para aumentar nossa produtividade.

Pensando nisto eu resolvi procurar uma solução, que fosse parecida com o sistema de Tiling porem que não perdesse a flexibilidade de mover as janelas como o Openbox faz, e achei!

Leia Mais

Apagando todas as revisões no Git

26 de março de 2016
Tags: git

Lembre-se de fazer BACKUP dos seus dados antes deste processo!!!

Para apagar todas as revisões de um determinado arquivo usando o Git, prossiga da seguinte maneira:

Leia Mais



Manipulação de vídeo usando o ffmpeg

10 de março de 2016

Vou postar aqui alguns snippets para a manipulação de vídeos usando o ffmpeg.

Edição

Cortando um vídeo

ffmpeg -i original.mp4 -ss 00:00:30.0 -c copy -t 00:00:10.0 alterado.mp4

Onde -ss 00:00:30.0 é o tempo que o vídeo deve iniciar, neste caso 30 segundos.
E -t 00:00:10.0 é a duração do vídeo, neste caso 10 segundos.

Conversão

Convertendo um arquivo de vídeo FLV em MP4.

ffmpeg -i video.flv -codec copy "${video%.flv}.mp4"

Escala

Diminuindo um vídeo.

ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner

Forte abraço.

Leia Mais