mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 00:03:02 +03:00
deploy: ec9d4f60e5
This commit is contained in:
parent
2f7aa57881
commit
9ef54c3cbc
11 changed files with 743 additions and 738 deletions
|
|
@ -481,7 +481,7 @@
|
|||
<p>Fish seems to have hardcoded colorcodes in some color settings. I set these to base16 colors, so they would match Xresources.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_command</span> cyan
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_comment</span> green
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_end</span> white
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_end</span> black
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_error</span> red
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_escape</span> yellow
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_operator</span> yellow
|
||||
|
|
@ -630,35 +630,35 @@
|
|||
<p>It provides pretty sane defaults, so the config is not too large. I rebind the prefix to <code>C-a</code> though.</p>
|
||||
<h3 id="term-settings">Term settings</h3>
|
||||
<p>I have no idea how and why these statements work.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>set -g default-terminal <span style="color:#ba2121">"screen-256color"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -ga terminal-overrides <span style="color:#ba2121">",*256col*:Tc"</span><span style="">
|
||||
</span></span></span></code></pre></div><p>History limit.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>set -g history-limit <span style="color:#666">20000</span><span style="">
|
||||
</span></span></span></code></pre></div><h3 id="keybindings-1">Keybindings</h3>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g default-terminal <span style="color:#ba2121">"screen-256color"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -ga terminal-overrides <span style="color:#ba2121">",*256col*:Tc"</span>
|
||||
</span></span></code></pre></div><p>History limit.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g history-limit <span style="color:#666">20000</span>
|
||||
</span></span></code></pre></div><h3 id="keybindings-1">Keybindings</h3>
|
||||
<p>Enable vi keys and mouse.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>set-window-option -g mode-keys vi<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set-option -g xterm-keys on<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set-option -g mouse on<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -sg escape-time <span style="color:#666">10</span><span style="">
|
||||
</span></span></span></code></pre></div><p>Change prefix from <code>C-b</code> to <code>C-a</code>.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>unbind C-b<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g prefix C-a<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind C-a send-prefix<span style="">
|
||||
</span></span></span></code></pre></div><p>Vi-like keybindings to manage panes & windows.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind h select-pane -L<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind j select-pane -D<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind k select-pane -U<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind l select-pane -R<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind s split-window<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind v split-window -h<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind-key n new-window<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind-key t next-window<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind-key T previous-window<span style="">
|
||||
</span></span></span></code></pre></div><p>Reload the config.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind r source-file ~/.tmux.conf<span style="">
|
||||
</span></span></span></code></pre></div><h3 id="copy-to-clipboard">Copy to clipboard</h3>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-window-option -g mode-keys vi
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-option -g xterm-keys on
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-option -g mouse on
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -sg escape-time <span style="color:#666">10</span>
|
||||
</span></span></code></pre></div><p>Change prefix from <code>C-b</code> to <code>C-a</code>.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>unbind C-b
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g prefix C-a
|
||||
</span></span><span style="display:flex;"><span>bind C-a send-prefix
|
||||
</span></span></code></pre></div><p>Vi-like keybindings to manage panes & windows.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind h select-pane -L
|
||||
</span></span><span style="display:flex;"><span>bind j select-pane -D
|
||||
</span></span><span style="display:flex;"><span>bind k select-pane -U
|
||||
</span></span><span style="display:flex;"><span>bind l select-pane -R
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>bind s split-window
|
||||
</span></span><span style="display:flex;"><span>bind v split-window -h
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>bind-key n new-window
|
||||
</span></span><span style="display:flex;"><span>bind-key t next-window
|
||||
</span></span><span style="display:flex;"><span>bind-key T previous-window
|
||||
</span></span></code></pre></div><p>Reload the config.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind r source-file ~/.tmux.conf
|
||||
</span></span></code></pre></div><h3 id="copy-to-clipboard">Copy to clipboard</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
@ -672,32 +672,32 @@
|
|||
</tbody>
|
||||
</table>
|
||||
<p>Make tmux copy to clipboard as well</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span><span style="">
|
||||
</span></span></span></code></pre></div><h3 id="ui">UI</h3>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span>
|
||||
</span></span><span style="display:flex;"><span>bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span>
|
||||
</span></span></code></pre></div><h3 id="ui">UI</h3>
|
||||
<p>On <span class="timestamp-wrapper"><span class="timestamp">[2020-01-22 Wed]</span></span>, I had generated the first version of this following with <a href="https://github.com/edkolev/tmuxline.vim">tmuxline.vim</a> plugin and palenight theme for <a href="https://github.com/vim-airline/vim-airline">vim-airline</a>.</p>
|
||||
<p>Then I adapted it to use the current Emacs theme.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>set -g status-justify <span style="color:#ba2121">"centre"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status <span style="color:#ba2121">"on"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left-style <span style="color:#ba2121">"none"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-command-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right-style <span style="color:#ba2121">"none"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-active-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-style <span style="color:#ba2121">"none,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right-length <span style="color:#ba2121">"100"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left-length <span style="color:#ba2121">"100"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-activity-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-separator <span style="color:#ba2121">""</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left <span style="color:#ba2121">"#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #S #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #W #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right <span style="color:#ba2121">"%-H:%M #[bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] %a, %b %d #[bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #H "</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #I #W #[align=left] #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-current-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #I #W #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span><span style="">
|
||||
</span></span></span></code></pre></div><p>Source the line config:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>source ~/.tmux.line.conf<span style="">
|
||||
</span></span></span></code></pre></div><h2 id="alacritty">Alacritty</h2>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-justify <span style="color:#ba2121">"centre"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status <span style="color:#ba2121">"on"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left-style <span style="color:#ba2121">"none"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g message-command-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right-style <span style="color:#ba2121">"none"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g pane-active-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-style <span style="color:#ba2121">"none,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g message-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g pane-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right-length <span style="color:#ba2121">"100"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left-length <span style="color:#ba2121">"100"</span>
|
||||
</span></span><span style="display:flex;"><span>setw -g window-status-activity-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span>setw -g window-status-separator <span style="color:#ba2121">""</span>
|
||||
</span></span><span style="display:flex;"><span>setw -g window-status-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left <span style="color:#ba2121">"#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #S #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #W #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right <span style="color:#ba2121">"%-H:%M #[bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] %a, %b %d #[bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #H "</span>
|
||||
</span></span><span style="display:flex;"><span>setw -g window-status-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #I #W #[align=left] #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||||
</span></span><span style="display:flex;"><span>setw -g window-status-current-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #I #W #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||||
</span></span></code></pre></div><p>Source the line config:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>source ~/.tmux.line.conf
|
||||
</span></span></code></pre></div><h2 id="alacritty">Alacritty</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -602,25 +602,25 @@
|
|||
<ul>
|
||||
<li>
|
||||
<p>paths to <code>ca</code>, <code>cert</code> and <code>key</code> are made absolute</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>ca <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>ca.crt<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>cert <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>client.crt<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>key <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>client.key<span style="">
|
||||
</span></span></span></code></pre></div></li>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>ca <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>ca.crt
|
||||
</span></span><span style="display:flex;"><span>cert <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>client.crt
|
||||
</span></span><span style="display:flex;"><span>key <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>client.key
|
||||
</span></span></code></pre></div></li>
|
||||
<li>
|
||||
<p>added <code>auth-user-pass</code> with a link to login info</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>auth-user-pass <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>auth.conf<span style="">
|
||||
</span></span></span></code></pre></div><p><code>auth.conf</code> looks like this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>auth-user-pass <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.vpn/</span>auth.conf
|
||||
</span></span></code></pre></div><p><code>auth.conf</code> looks like this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>login
|
||||
</span></span><span style="display:flex;"><span>password
|
||||
</span></span></code></pre></div></li>
|
||||
<li>
|
||||
<p>Run <a href="https://github.com/alfredopalhares/openvpn-update-resolv-conf">openvpn-update-resolv-conf</a> script to prevent DNS leaks. <code>openvpn-update-resolve-conf</code> originates in my <a href="https://github.com/SqrtMinusOne/channel-q">channel-q</a>.</p>
|
||||
<p>Edit <span class="timestamp-wrapper"><span class="timestamp"><2022-04-07 Thu></span></span>: Looks like this doesn’t work on some connections. See the next option in that case</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>setenv PATH <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin:<span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>sbin:<span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>console<span style="color:#b68">/console/</span>bin:<span style="color:#b68">/run/</span>current-system<span style="color:#b68">/profile/</span>bin:<span style="color:#b68">/run/</span>current-system<span style="color:#b68">/profile/</span>sbin<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin/update-resolv-conf.sh<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>down <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin/update-resolv-conf.sh<span style="">
|
||||
</span></span></span></code></pre></div><p><code>setenv PATH</code> is necessary because both <code>resolvconf</code> (openresolve) and <code>update-resolv-conf.sh</code> are shell scripts which need GNU coreutils and stuff, and OpenVPN clears PATH by default.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>setenv PATH <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin:<span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>sbin:<span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>console<span style="color:#b68">/console/</span>bin:<span style="color:#b68">/run/</span>current-system<span style="color:#b68">/profile/</span>bin:<span style="color:#b68">/run/</span>current-system<span style="color:#b68">/profile/</span>sbin
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin/update-resolv-conf.sh
|
||||
</span></span><span style="display:flex;"><span>down <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/.guix-extra-profiles/</span>system<span style="color:#b68">/system/</span>bin/update-resolv-conf.sh
|
||||
</span></span></code></pre></div><p><code>setenv PATH</code> is necessary because both <code>resolvconf</code> (openresolve) and <code>update-resolv-conf.sh</code> are shell scripts which need GNU coreutils and stuff, and OpenVPN clears PATH by default.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Manually fix <code>etc/resolv.conf</code> to prevent DNS leaks</p>
|
||||
|
|
@ -628,13 +628,13 @@
|
|||
</span></span><span style="display:flex;"><span><span style="color:#008000">echo</span> <span style="color:#ba2121">"nameserver 8.8.8.8"</span> > /etc/resolv.conf
|
||||
</span></span></code></pre></div><p>Restore <code>resolv.conf</code></p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span>resolveconf -u
|
||||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/fix-resolve-conf<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>down <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/restore-resolve-conf<span style="">
|
||||
</span></span></span></code></pre></div></li>
|
||||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/fix-resolve-conf
|
||||
</span></span><span style="display:flex;"><span>down <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/restore-resolve-conf
|
||||
</span></span></code></pre></div></li>
|
||||
<li>
|
||||
<p>run a script to fix Docker routes</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>route-up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/vpn-fix-routes<span style="">
|
||||
</span></span></span></code></pre></div><p>References:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>route-up <span style="color:#b68">/home/</span>pavel<span style="color:#b68">/bin/</span>scripts/vpn-fix-routes
|
||||
</span></span></code></pre></div><p>References:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/moby/libnetwork/issues/779">Github issue</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
|
|
@ -397,35 +397,35 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
</tbody>
|
||||
</table>
|
||||
<p>Sending emails can be done with MSMTP. It automatially chooses the email address and server based on the contents of the message, which is handy if there are multiple mailboxes to be managed.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>defaults<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>auth on<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>tls on<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>tls_trust_file <span style="color:#b68">/etc/</span>ssl<span style="color:#b68">/certs/</span>ca-certificates.crt<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>logfile ~/.msmtp.log<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>account main<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>host smtp.gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>port <span style="color:#666">587</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>from thexcloud@gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>user thexcloud@gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>passwordeval <span style="color:#ba2121">"pass show My_Online/APIs/google-main-app-password | head -n 1"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>account progin<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>host smtp.gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>port <span style="color:#666">587</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>from progin6304@gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>user progin6304@gmail.com<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>passwordeval <span style="color:#ba2121">"pass show My_Online/ETU/progin6304@gmail.com | head -n 1"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>account pvkorytov<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>tls off<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>auth plain<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>host localhost<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>port <span style="color:#666">1025</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>from pvkorytov@etu.ru<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>user pvkorytov<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>passwordeval <span style="color:#ba2121">"pass show Job/Digital/Email/pvkorytov@etu.ru | head -n 1"</span><span style="">
|
||||
</span></span></span></code></pre></div><h2 id="emacs">Emacs</h2>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>defaults
|
||||
</span></span><span style="display:flex;"><span>auth on
|
||||
</span></span><span style="display:flex;"><span>tls on
|
||||
</span></span><span style="display:flex;"><span>tls_trust_file <span style="color:#b68">/etc/</span>ssl<span style="color:#b68">/certs/</span>ca-certificates.crt
|
||||
</span></span><span style="display:flex;"><span>logfile ~/.msmtp.log
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>account main
|
||||
</span></span><span style="display:flex;"><span>host smtp.gmail.com
|
||||
</span></span><span style="display:flex;"><span>port <span style="color:#666">587</span>
|
||||
</span></span><span style="display:flex;"><span>from thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>user thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>passwordeval <span style="color:#ba2121">"pass show My_Online/APIs/google-main-app-password | head -n 1"</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>account progin
|
||||
</span></span><span style="display:flex;"><span>host smtp.gmail.com
|
||||
</span></span><span style="display:flex;"><span>port <span style="color:#666">587</span>
|
||||
</span></span><span style="display:flex;"><span>from progin6304@gmail.com
|
||||
</span></span><span style="display:flex;"><span>user progin6304@gmail.com
|
||||
</span></span><span style="display:flex;"><span>passwordeval <span style="color:#ba2121">"pass show My_Online/ETU/progin6304@gmail.com | head -n 1"</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>account pvkorytov
|
||||
</span></span><span style="display:flex;"><span>tls off
|
||||
</span></span><span style="display:flex;"><span>auth plain
|
||||
</span></span><span style="display:flex;"><span>host localhost
|
||||
</span></span><span style="display:flex;"><span>port <span style="color:#666">1025</span>
|
||||
</span></span><span style="display:flex;"><span>from pvkorytov@etu.ru
|
||||
</span></span><span style="display:flex;"><span>user pvkorytov
|
||||
</span></span><span style="display:flex;"><span>passwordeval <span style="color:#ba2121">"pass show Job/Digital/Email/pvkorytov@etu.ru | head -n 1"</span>
|
||||
</span></span></code></pre></div><h2 id="emacs">Emacs</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang=""><head>
|
||||
<meta name="generator" content="Hugo 0.118.2">
|
||||
<meta name="generator" content="Hugo 0.119.0">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
|
|
|
|||
26
index.xml
26
index.xml
|
|
@ -2297,19 +2297,19 @@ I&rsquo;ve seen a couple of cases where people would swap their username and
|
|||
<p><a href="https://www.musicpd.org/">MPD</a> is a server for playing music, although it is usually hosted on the local machine, i.e. the one on which you intend to listen to music. There is <a href="https://www.musicpd.org/clients/">bunch of clients</a> available (take a look at <a href="https://github.com/ncmpcpp/ncmpcpp">ncmpcpp</a> is you like terminal-based apps), but here our point of interest is its integration with EMMS.</p>
|
||||
<p>While EMMS is capable of playing music without it, MPD has the advantage of being independent of Emacs. That means it won&rsquo;t close if Emacs crashes and it can be controlled more easily with other means.</p>
|
||||
<p>MPD configuration is a pretty easy process. First, install MPD and <a href="https://www.musicpd.org/clients/mpc/">mpc</a> (a minimal MPD CLI client) from your distribution&rsquo;s package repository. After doing that, you&rsquo;d have to create a config file at the location <code>~/.config/mpd/mpd.conf</code>. Mine looks something like this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">&#34;~/Music&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>playlist_directory <span style="color:#ba2121">&#34;~/.mpd/playlists&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>db_file <span style="color:#ba2121">&#34;~/.mpd/database&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>log_file <span style="color:#ba2121">&#34;~/.mpd/log&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>pid_file <span style="color:#ba2121">&#34;~/.mpd/pid&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>state_file <span style="color:#ba2121">&#34;~/.mpd/state&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>sticker_file <span style="color:#ba2121">&#34;~/.mpd/sticker.sql&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>audio_output {<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> type <span style="color:#ba2121">&#34;pulse&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> name <span style="color:#ba2121">&#34;My Pulse Output&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>}<span style="">
|
||||
</span></span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">&#34;~/Music&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>playlist_directory <span style="color:#ba2121">&#34;~/.mpd/playlists&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>db_file <span style="color:#ba2121">&#34;~/.mpd/database&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>log_file <span style="color:#ba2121">&#34;~/.mpd/log&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>pid_file <span style="color:#ba2121">&#34;~/.mpd/pid&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>state_file <span style="color:#ba2121">&#34;~/.mpd/state&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>sticker_file <span style="color:#ba2121">&#34;~/.mpd/sticker.sql&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>audio_output {
|
||||
</span></span><span style="display:flex;"><span> type <span style="color:#ba2121">&#34;pulse&#34;</span>
|
||||
</span></span><span style="display:flex;"><span> name <span style="color:#ba2121">&#34;My Pulse Output&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>}
|
||||
</span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<p>Because MPD is a daemon, it has to be started in order to work. The easiest way is to add <code>mpd</code> to your init system, e.g. with GNU Shepherd:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-scheme" data-lang="scheme"><span style="display:flex;"><span>(<span style="color:#008000;font-weight:bold">define </span><span style="color:#19177c">mpd</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">make</span> <span style="color:#19177c">&lt;service&gt;</span>
|
||||
|
|
|
|||
|
|
@ -81,19 +81,19 @@
|
|||
<p><a href="https://www.musicpd.org/">MPD</a> is a server for playing music, although it is usually hosted on the local machine, i.e. the one on which you intend to listen to music. There is <a href="https://www.musicpd.org/clients/">bunch of clients</a> available (take a look at <a href="https://github.com/ncmpcpp/ncmpcpp">ncmpcpp</a> is you like terminal-based apps), but here our point of interest is its integration with EMMS.</p>
|
||||
<p>While EMMS is capable of playing music without it, MPD has the advantage of being independent of Emacs. That means it won’t close if Emacs crashes and it can be controlled more easily with other means.</p>
|
||||
<p>MPD configuration is a pretty easy process. First, install MPD and <a href="https://www.musicpd.org/clients/mpc/">mpc</a> (a minimal MPD CLI client) from your distribution’s package repository. After doing that, you’d have to create a config file at the location <code>~/.config/mpd/mpd.conf</code>. Mine looks something like this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">"~/Music"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>playlist_directory <span style="color:#ba2121">"~/.mpd/playlists"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>db_file <span style="color:#ba2121">"~/.mpd/database"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>log_file <span style="color:#ba2121">"~/.mpd/log"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>pid_file <span style="color:#ba2121">"~/.mpd/pid"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>state_file <span style="color:#ba2121">"~/.mpd/state"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>sticker_file <span style="color:#ba2121">"~/.mpd/sticker.sql"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>audio_output {<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> type <span style="color:#ba2121">"pulse"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> name <span style="color:#ba2121">"My Pulse Output"</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>}<span style="">
|
||||
</span></span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">"~/Music"</span>
|
||||
</span></span><span style="display:flex;"><span>playlist_directory <span style="color:#ba2121">"~/.mpd/playlists"</span>
|
||||
</span></span><span style="display:flex;"><span>db_file <span style="color:#ba2121">"~/.mpd/database"</span>
|
||||
</span></span><span style="display:flex;"><span>log_file <span style="color:#ba2121">"~/.mpd/log"</span>
|
||||
</span></span><span style="display:flex;"><span>pid_file <span style="color:#ba2121">"~/.mpd/pid"</span>
|
||||
</span></span><span style="display:flex;"><span>state_file <span style="color:#ba2121">"~/.mpd/state"</span>
|
||||
</span></span><span style="display:flex;"><span>sticker_file <span style="color:#ba2121">"~/.mpd/sticker.sql"</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>audio_output {
|
||||
</span></span><span style="display:flex;"><span> type <span style="color:#ba2121">"pulse"</span>
|
||||
</span></span><span style="display:flex;"><span> name <span style="color:#ba2121">"My Pulse Output"</span>
|
||||
</span></span><span style="display:flex;"><span>}
|
||||
</span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<p>Because MPD is a daemon, it has to be started in order to work. The easiest way is to add <code>mpd</code> to your init system, e.g. with GNU Shepherd:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-scheme" data-lang="scheme"><span style="display:flex;"><span>(<span style="color:#008000;font-weight:bold">define </span><span style="color:#19177c">mpd</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">make</span> <span style="color:#19177c"><service></span>
|
||||
|
|
|
|||
|
|
@ -2297,19 +2297,19 @@ I&rsquo;ve seen a couple of cases where people would swap their username and
|
|||
<p><a href="https://www.musicpd.org/">MPD</a> is a server for playing music, although it is usually hosted on the local machine, i.e. the one on which you intend to listen to music. There is <a href="https://www.musicpd.org/clients/">bunch of clients</a> available (take a look at <a href="https://github.com/ncmpcpp/ncmpcpp">ncmpcpp</a> is you like terminal-based apps), but here our point of interest is its integration with EMMS.</p>
|
||||
<p>While EMMS is capable of playing music without it, MPD has the advantage of being independent of Emacs. That means it won&rsquo;t close if Emacs crashes and it can be controlled more easily with other means.</p>
|
||||
<p>MPD configuration is a pretty easy process. First, install MPD and <a href="https://www.musicpd.org/clients/mpc/">mpc</a> (a minimal MPD CLI client) from your distribution&rsquo;s package repository. After doing that, you&rsquo;d have to create a config file at the location <code>~/.config/mpd/mpd.conf</code>. Mine looks something like this:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">&#34;~/Music&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>playlist_directory <span style="color:#ba2121">&#34;~/.mpd/playlists&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>db_file <span style="color:#ba2121">&#34;~/.mpd/database&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>log_file <span style="color:#ba2121">&#34;~/.mpd/log&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>pid_file <span style="color:#ba2121">&#34;~/.mpd/pid&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>state_file <span style="color:#ba2121">&#34;~/.mpd/state&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>sticker_file <span style="color:#ba2121">&#34;~/.mpd/sticker.sql&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>audio_output {<span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> type <span style="color:#ba2121">&#34;pulse&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span> name <span style="color:#ba2121">&#34;My Pulse Output&#34;</span><span style="">
|
||||
</span></span></span><span style="display:flex;"><span><span style=""></span>}<span style="">
|
||||
</span></span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>music_directory <span style="color:#ba2121">&#34;~/Music&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>playlist_directory <span style="color:#ba2121">&#34;~/.mpd/playlists&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>db_file <span style="color:#ba2121">&#34;~/.mpd/database&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>log_file <span style="color:#ba2121">&#34;~/.mpd/log&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>pid_file <span style="color:#ba2121">&#34;~/.mpd/pid&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>state_file <span style="color:#ba2121">&#34;~/.mpd/state&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>sticker_file <span style="color:#ba2121">&#34;~/.mpd/sticker.sql&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>audio_output {
|
||||
</span></span><span style="display:flex;"><span> type <span style="color:#ba2121">&#34;pulse&#34;</span>
|
||||
</span></span><span style="display:flex;"><span> name <span style="color:#ba2121">&#34;My Pulse Output&#34;</span>
|
||||
</span></span><span style="display:flex;"><span>}
|
||||
</span></span></code></pre></div><p>Here <code>music_directory</code> is, well, a directory in which MPD will look for music files. Take a look at <a href="https://linux.die.net/man/5/mpd.conf">man mpd.conf</a> and <a href="https://github.com/MusicPlayerDaemon/MPD/blob/master/doc/mpdconf.example">the default config example</a> for more information.</p>
|
||||
<p>Because MPD is a daemon, it has to be started in order to work. The easiest way is to add <code>mpd</code> to your init system, e.g. with GNU Shepherd:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-scheme" data-lang="scheme"><span style="display:flex;"><span>(<span style="color:#008000;font-weight:bold">define </span><span style="color:#19177c">mpd</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">make</span> <span style="color:#19177c">&lt;service&gt;</span>
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
Loading…
Add table
Reference in a new issue