<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neni</title>
    <description>The latest articles on DEV Community by Neni (@nenitf).</description>
    <link>https://dev.to/nenitf</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F171157%2F892d8ed1-ec26-4f9a-9b52-bf8f9edf0cd1.png</url>
      <title>DEV Community: Neni</title>
      <link>https://dev.to/nenitf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nenitf"/>
    <language>en</language>
    <item>
      <title>Todolist no vim</title>
      <dc:creator>Neni</dc:creator>
      <pubDate>Sat, 17 Oct 2020 22:31:01 +0000</pubDate>
      <link>https://dev.to/nenitf/todolist-no-vim-1lg8</link>
      <guid>https://dev.to/nenitf/todolist-no-vim-1lg8</guid>
      <description>&lt;p&gt;Explicações sobre meu "fluxo de todolist" com vim&lt;/p&gt;

&lt;p&gt;Objetivos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fácil de ver e atualizar (pouco "burocrático")&lt;/li&gt;
&lt;li&gt;Ser simples e intuitivo de lembrar e manter&lt;/li&gt;
&lt;li&gt;Agrupar tarefas semelhantes (projetos)&lt;/li&gt;
&lt;li&gt;Possuir checkbox e listas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Facilidade
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Todas tarefas que não foram concluídas ficam em um arquivo &lt;code&gt;BACKLOG&lt;/code&gt; (concluídas em outro &lt;code&gt;DONE&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Cada linha que possui &lt;strong&gt;TODO&lt;/strong&gt; é uma tarefa por fazer&lt;/li&gt;
&lt;li&gt;Cada linha que possui &lt;strong&gt;WAIT&lt;/strong&gt; é uma tarefa delegada ou pausada&lt;/li&gt;
&lt;li&gt;Demais linhas não são importantes&lt;/li&gt;
&lt;li&gt;A listagem é criada com &lt;code&gt;:lvimgrep&lt;/code&gt; buscando por &lt;code&gt;\C\&amp;lt;TODO\&amp;gt;&lt;/code&gt; e/ou &lt;code&gt;\C\&amp;lt;WAIT\&amp;gt;&lt;/code&gt; e exibida com &lt;code&gt;:lli&lt;/code&gt;, não necessitando abrir o arquivo de tarefas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8qvpgjx80024wo4wpq92.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F8qvpgjx80024wo4wpq92.gif" alt="demonstração"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visualizar &lt;em&gt;todolist&lt;/em&gt; com &lt;code&gt;:lli&lt;/code&gt; e selecionar se for preciso com &lt;code&gt;:ll &amp;lt;numero&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Simplicidade
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Comandos:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;:TodoList&lt;/code&gt; abstrai o &lt;code&gt;:lvimgrep&lt;/code&gt; e de bônus formata &lt;code&gt;module&lt;/code&gt; e &lt;code&gt;pattern&lt;/code&gt; do &lt;code&gt;:lli&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;:TodoListFileBacklog&lt;/code&gt; e &lt;code&gt;:TodoListFileDone&lt;/code&gt; acessar os arquivos com as tarefas&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;leader&amp;gt;o&lt;/code&gt; lista os comandos anteriores e outros futuros que podem ser criados&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Para mudar status de uma tarefa (&lt;strong&gt;TODO&lt;/strong&gt; e &lt;strong&gt;WAIT&lt;/strong&gt;) basta apagar a palavra na linha (possui &lt;em&gt;highlight&lt;/em&gt;)&lt;/li&gt;

&lt;li&gt;Uma tarefa é concluída saindo do arquivo de backlog&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9wod4p6vjp0yicbza9a8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F9wod4p6vjp0yicbza9a8.gif" alt="demonstração"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Gerar a lista &lt;code&gt;TODO&lt;/code&gt; a partir do texto &lt;strong&gt;TODO&lt;/strong&gt; ou &lt;strong&gt;WAIT&lt;/strong&gt; inserido em linhas do arquivo com &lt;code&gt;:lvimgrep&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ignore &lt;code&gt;- [ ]&lt;/code&gt; pois é uma implementação antiga de checkbox, durante o post explico melhor&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjtcnu2jbgogmhdoqelmq.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjtcnu2jbgogmhdoqelmq.gif" alt="demonstração"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Remover da &lt;em&gt;todolist&lt;/em&gt; apagando &lt;strong&gt;TODO&lt;/strong&gt; ou &lt;strong&gt;WAIT&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2w7exvpbrjwd6aqrzgz1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2w7exvpbrjwd6aqrzgz1.gif" alt="demonstração"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Possuir arquivos &lt;code&gt;BACKLOG&lt;/code&gt; e &lt;code&gt;DONE&lt;/code&gt; e acessar facilmente os mesmos&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Escopo
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;BACKLOG&lt;/code&gt; possui &lt;em&gt;fold&lt;/em&gt; no primeiro nível de indentação, permitindo separação simples de projeto (não subprojetos). Ex.:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;projeto 1
    Projeto XYZ

    = fazer x
    = fazer y
    = fazer z

projeto 2
    Projeto ABC

    = fazer a
    = fazer b
    = fazer c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fea1e9gqfodbqfdbz3a22.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fea1e9gqfodbqfdbz3a22.gif" alt="demonstração"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Concluir itens de escopo com checkbox e conceal&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Listas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;BACKLOG&lt;/code&gt; possui &lt;em&gt;syntax&lt;/em&gt; com uso de &lt;strong&gt;conceal&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-&lt;/code&gt; converte para um &lt;em&gt;bullet&lt;/em&gt; comum&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;=&lt;/code&gt; converte para um checkbox desmarcado&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;+&lt;/code&gt; converte para um checkbox marcado&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Por que &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;=&lt;/code&gt; e &lt;code&gt;+&lt;/code&gt;?

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;-&lt;/code&gt; igual ao markdown&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;=&lt;/code&gt; e &lt;code&gt;+&lt;/code&gt; &lt;em&gt;conceal&lt;/em&gt; de 1 carácter é mais agradável que &lt;code&gt;- [ ]&lt;/code&gt; ou &lt;code&gt;- [x]&lt;/code&gt; pois é mais fácil de entender o tamanho da linha.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Quando se edita uma linha com carácter escondido ele pode reaparecer quando 1) passa o cursor na linha ou 2) entra no modo &lt;em&gt;insert&lt;/em&gt; na linha. É mais agradável evitar o efeito do "texto se expandido", pois o &lt;em&gt;conceal&lt;/em&gt; (que sempre é 1 carácter) se transforma em outro carácter&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;C-SPACE&amp;gt;&lt;/code&gt; (crlspace) marca ou desmarca checkbox. Caso não exista um, é criado desmarcado&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Consequências não planejadas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Para manter a listagem &lt;code&gt;:lli&lt;/code&gt; simples, tanto o projeto quanto o item devem ser objetivos&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Código
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/nenitf/dotfiles/blob/778022c7d6797745aa2a537930753f2c05660301/vim/dotfiles.vim#L49" rel="noopener noreferrer"&gt;Configurações globais&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nenitf/dotfiles/blob/778022c7d6797745aa2a537930753f2c05660301/vim/syntax/todolist.vim" rel="noopener noreferrer"&gt;Configurações de syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nenitf/dotfiles/blob/778022c7d6797745aa2a537930753f2c05660301/vim/ftplugin/todolist.vim" rel="noopener noreferrer"&gt;Configurações específicas de TODO e DONE&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vim</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Usando DWM - Dynamic Window Manager</title>
      <dc:creator>Neni</dc:creator>
      <pubDate>Sat, 08 Jun 2019 04:55:45 +0000</pubDate>
      <link>https://dev.to/nenitf/usando-dwm-dynamic-window-manager-4c4j</link>
      <guid>https://dev.to/nenitf/usando-dwm-dynamic-window-manager-4c4j</guid>
      <description>&lt;p&gt;&lt;a href="http://dwm.suckless.org/"&gt;DWM&lt;/a&gt; é um &lt;strong&gt;&lt;em&gt;tiling&lt;/em&gt;&lt;/strong&gt; &lt;em&gt;window manager&lt;/em&gt;, um de gerenciador de janelas, responsável por dispor as aplicações na tela. Ele possui a filosofia suckless, tornando seu código fonte o menor possível, normalmente aumentando o desempenho do programa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que DWM?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Pouco consumo de RAM, ótimo para notebooks mais fracos&lt;/li&gt;
&lt;li&gt;Você no comando, liberdade total de teclas de atalho&lt;/li&gt;
&lt;li&gt;Poucos recursos opcionais, a enfase no DWM é no MVP de um window manager&lt;/li&gt;
&lt;li&gt;Disposição de janelas com o conceito de área master, onde torna prevísivel a visualização de novos aplicativos&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Dmenu
&lt;/h2&gt;

&lt;p&gt;DWM vem com &lt;a href="http://tools.suckless.org/dmenu/"&gt;dmenu&lt;/a&gt;, que é um lançador de aplicativos (&lt;code&gt;Super+d&lt;/code&gt;).&lt;/p&gt;

&lt;h1&gt;
  
  
  Funcionamento
&lt;/h1&gt;

&lt;p&gt;DWM trabalha com os conceitos de clientes, área master, tags e modos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clientes são as janelas das aplicações abertas, como firefox por exemplo.&lt;/li&gt;
&lt;li&gt;Área master é o local onde novos clientes são enviados (podem ser trocados com &lt;code&gt;Super+Enter&lt;/code&gt;), por padrão à esquerda. A cada novo cliente, o antigo é deslocado para a direita, e os que já estão a direita vão para baixo.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;+---------------+    +-------+-------+    +-------+-------+    +-------+-------+
|               |    |       |       |    |       |   2   |    |       |   3   |
|               |    |       |       |    |       |       |    |       +-------+
|       1       | -&amp;gt; |   2   |   1   | -&amp;gt; |   3   +-------+ -&amp;gt; |   4   |   2   |
|               |    |       |       |    |       |   1   |    |       +-------+
|               |    |       |       |    |       |       |    |       |   1   |
+---------------+    +-------+-------+    +-------+-------+    +-------+-------+

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Tags são muito semelhantes a workspaces comuns, onde você como usuário delimita quais aplicações estão abertas. Porém é possível marcar clientes para aparecerem em mais de uma tag simultaneamente - caso queira que o player de musica lhe acompanhe por exemplo.&lt;/li&gt;
&lt;li&gt;Modos são as disposições das janelas, sendo por padrão 3 - Tiling (padrão), float (janelas flutuantes) e mono (uma janela aparece por vez, podendo acessar outras através de &lt;code&gt;Super+j&lt;/code&gt; ou &lt;code&gt;Super+k&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Meu uso comum
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Abro terminal (&lt;code&gt;Super+Shift+Enter&lt;/code&gt;) em full screen ou ao lado de uma aplicação&lt;/li&gt;
&lt;li&gt;Pesquiso algum programa com dmenu como o firefox por exemplo&lt;/li&gt;
&lt;li&gt;Pulo de uma janela para outra com &lt;code&gt;Super+j&lt;/code&gt; ou &lt;code&gt;Super+k&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Movo alguma janela para a área master com &lt;code&gt;Super+Enter&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Troco de tag com &lt;code&gt;Super+NumeroDaTag&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Fecho janela com &lt;code&gt;Super+Shift+q&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Desligo o sistema com &lt;code&gt;Super+Shift+s&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Instalação
&lt;/h2&gt;

&lt;p&gt;Para instalar basta baixar o código fonte e compilar com o comando &lt;code&gt;sudo make clean install&lt;/code&gt; e colocar em seu ~/.xinitrc o trecho &lt;code&gt;exec dwm&lt;/code&gt;&lt;br&gt;
obs: Dependendo do seu display manager, responsável por iniciar o desktop, talvez seja necessário configurá-lo. Para o lightdm, basta criar um novo arquivo &lt;code&gt;dwm.desktop&lt;/code&gt; como abaixo e colocá-lo em /usr/share/xsession.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Desktop Entry]
Name=DWM
Comment=DWM
Exec=/home/neni/.xinitrc
Type=Application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ao fazer isso, antes de logar pode ser escolhido o perfil DWM.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuração
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Escrevendo no config.h
&lt;/h3&gt;

&lt;p&gt;As configurações mais simples como cores, atalhos, numero e simbolos de tags, bordas de janelas e font padrão é no arquivo config.h. A cada modificação é necessário recompilar o código e reiniciar a sessão.&lt;/p&gt;

&lt;h3&gt;
  
  
  Patches
&lt;/h3&gt;

&lt;p&gt;DWM vem com o mínimo necessário, porém existem diversas outras features implementadas por outros programadores que podem ser implementadas. Elas são através de &lt;a href="http://dwm.suckless.org/patches"&gt;patches&lt;/a&gt;, que são "colagens" de código.&lt;br&gt;
Como funciona:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pegar arquivo .diff do patch e analisar a diferença do código fonte do implementado&lt;/li&gt;
&lt;li&gt;Modificar arquivo correspondente apontado na área lida do diff&lt;/li&gt;
&lt;li&gt;Recompilar o código&lt;/li&gt;
&lt;li&gt;Reiniciar sessão&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Personalizando status bar
&lt;/h3&gt;

&lt;p&gt;É possível modificar a barra de status através do comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;xsetroot &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"tudo que for colocado aqui | vai atualizar a barra de status"&lt;/span&gt;
xsetroot &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'tabém é possivel usar comandos bash'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Um exemplo de script que atualiza sozinho a barra (para o relógio) é:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;online&lt;span class="o"&gt;(){&lt;/span&gt;
    curl &lt;span class="nt"&gt;-w&lt;/span&gt; %&lt;span class="o"&gt;{&lt;/span&gt;http_code&lt;span class="o"&gt;}&lt;/span&gt; &lt;span class="nt"&gt;--silent&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null google.com | &lt;span class="nb"&gt;awk&lt;/span&gt; &lt;span class="s1"&gt;'{if($0=="000") {print "OFFLINE"} else { print "ONLINE"}}'&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

datetime&lt;span class="o"&gt;(){&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;" &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%H:%M&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;while &lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    &lt;/span&gt;xsetroot &lt;span class="nt"&gt;-name&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;online&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; | &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;datetime&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    &lt;span class="nb"&gt;sleep &lt;/span&gt;5s
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para inicializar o script automaticamente ao entrar numa sessão, basta colocar no arquivo ~/.xinitrc.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# mata processo do script se existente&lt;/span&gt;
pkill &lt;span class="nt"&gt;-f&lt;/span&gt; ~/dev/scripts/dwm/status.sh

&lt;span class="c"&gt;# modifica status&lt;/span&gt;
~/dev/scripts/dwm/status.sh&amp;amp;

&lt;span class="c"&gt;# inicia dwm&lt;/span&gt;
&lt;span class="nb"&gt;exec &lt;/span&gt;dwm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Atualizações desse post
&lt;/h2&gt;

&lt;p&gt;Pretendo atualizar este post com meu tempo de experiência do DWM. Na primeira versão (08/06/2019) possuo por volta de 1 mês de uso com o gerenciador.&lt;/p&gt;

&lt;h3&gt;
  
  
  2021-09-24
&lt;/h3&gt;

&lt;p&gt;Estou gostando de utilizar a distro &lt;a href="https://instantos.io/"&gt;instantOS&lt;/a&gt;, ele possui um &lt;a href="https://github.com/instantOS/instantWM"&gt;tiling window manager&lt;/a&gt; forkado do DWM.&lt;/p&gt;

&lt;h3&gt;
  
  
  2021-10-21
&lt;/h3&gt;

&lt;p&gt;Não apoio a &lt;a href="https://dwm.suckless.org"&gt;descrição cringe do DWM&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Because dwm is customized through editing its source code, it's pointless to make binary packages of it. This keeps its userbase small and &lt;strong&gt;elitist&lt;/strong&gt;. No novices asking stupid questions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;O que me fez experimentar o &lt;a href="https://awesomewm.org/"&gt;Awesome&lt;/a&gt; no Ubuntu, cujo atende todas minhas necessidades de um &lt;em&gt;twm&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observações
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ratfactor.com/slackware/dwm2/"&gt;Inspiração do post&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/Dwm#Statusbar_configuration"&gt;Wiki do arch&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nenitf/dwm"&gt;Meu repositório do dwm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dwm</category>
    </item>
  </channel>
</rss>
