literate-dotfiles/dotfiles/index.org

1748 lines
46 KiB
Org Mode
Raw Normal View History

2019-08-23 10:01:34 +02:00
#+TITLE: Dotfiles - Manjaro Linux
2019-04-01 18:13:54 +02:00
:DRAWER:
2020-01-11 22:04:28 +01:00
#+STARTUP: overview
2019-04-01 18:13:54 +02:00
2020-01-11 22:04:28 +01:00
#+LANGUAGE: en
#+EMAIL: dehaeze.thomas@gmail.com
#+AUTHOR: Dehaeze Thomas
#+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
2020-01-11 22:24:51 +01:00
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
2019-04-01 18:13:54 +02:00
:END:
2019-01-31 09:41:03 +01:00
2020-01-12 00:19:16 +01:00
* Links to literate configs
Desktop Configuration:
- Windows Manager: [[file:bspwm.org][BSPWM]] and [[file:i3.org][I3]]
- Hotkey Manager: [[file:sxhkd.org][SXHKD]]
- Status Bar: [[file:polybar.org][Polybar]]
- Launcher: [[file:rofi.org][Rofi]]
- Compositor: [[file:compositor.org][Picom]]
- Notification Manager: [[file:notifications.org][Dunst]]
- [[file:systemd.org][Systemd]]
- [[file:xconfig.org][X configuration]]
2020-01-12 00:19:16 +01:00
Editors:
- [[file:vim.org][Vim]]
- [[./doom.org][Doom Emacs]] (old [[file:spacemacs.org][Spacacemacs]] configuration)
2020-01-12 00:19:16 +01:00
Command Line:
- [[file:bash.org][Bash]] and [[file:zsh.org][ZSH]]
- Terminal: [[file:termite.org][Termite]]
- Terminal Multiplexer [[file:tmux.org][TMUX]]
2020-01-12 00:19:16 +01:00
Multimedia:
- [[file:image.org][Image]]
- [[file:music.org][Music]]
- [[file:video.org][Video]]
2020-01-12 00:19:16 +01:00
Internet Related:
- Bookmark Manager: [[file:bookmarks.org][Buku]]
- Web Browser: [[file:qutebrowser.org][Qutebrowser]]
2020-01-12 00:19:16 +01:00
PDF Reader:
- [[file:zathura.org][Zathura]]
2020-01-12 00:19:16 +01:00
File Managers:
- GUI: [[file:pcmanfm.org][Pcmanfm]]
- Terminal based: [[file:ranger.org][Ranger]]
2020-01-12 00:19:16 +01:00
Organization:
- [[file:calendar.org][Calendar]]
- [[file:mail.org][Mail]]
- [[file:contacts.org][Contacts]]
- RSS-Reader: [[file:newsboat.org][Newsboat]]
2020-01-12 00:19:16 +01:00
Others:
- [[file:applications.org][Desktop Applications]]
2020-01-12 17:40:59 +01:00
- [[file:matlab.org][Matlab]]
2020-01-12 00:19:16 +01:00
- Some useful [[file:binaries.org][Binaries]]
- Some useful [[file:scripts.org][Scripts]]
- [[file:git.org][Git]] Configuration
- [[file:gtk.org][GTK]]
- [[file:config.org][Other Config]]
2019-01-31 09:41:03 +01:00
* Package Manager: yay
https://github.com/Jguer/yay
** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
sudo pacman -S yay
#+end_src
2019-01-31 09:41:03 +01:00
** CheatSheet
2019-03-05 22:08:47 +01:00
| Command | Usage |
|---------------------+-----------------------------|
| =yay= | Perform system upgrade |
| =yay -Ss <package>= | Search |
| =yay -S <package>= | Install |
| =yay -Si <package>= | Get informations |
| =yay -Rs <package>= | Uninstall |
2019-07-20 16:29:27 +02:00
| =yay -Yc= | Clean unneeded dependencies |
To check all installed packages:
=pacman -Qq | fzf --preview 'pacman -Qil {}' --layout=reverse --bind 'enter:execute(pacman -Qil {} | less)'=
2019-01-31 09:41:03 +01:00
* Git Setup
https://git-scm.com/
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S git
#+end_src
2019-01-31 09:41:03 +01:00
** Configuration
[[file:git.org][Git]] Configuration:
2019-01-31 09:41:03 +01:00
- =~/.gitconfig=
- =~/.gitignore_global=
** Diff-So-Fancy
https://github.com/so-fancy/diff-so-fancy
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S diff-so-fancy
2019-01-31 09:41:03 +01:00
#+end_src
*** Configuration
#+begin_src bash
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
#+end_src
** Credential Helper setup with Pass
This is explained in a further part: [[*Integration with Git][Integration of Pass with Git]].
* Terminal
https://github.com/thestinger/termite
** Termite
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S termite
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
2019-04-04 10:27:43 +02:00
[[file:dotfiles/termite.org][termite.org]]
2019-01-31 09:41:03 +01:00
- =~/.config/termite/config=
*** Cheatsheet
| Command | Usage |
|--------------------+----------------------------|
| =ctrl-shift-x= | activate url hints mode |
| =ctrl-shift-c= | copy to CLIPBOARD |
| =ctrl-shift-v= | paste from CLIPBOARD |
| =ctrl-shift-space= | start selection mode |
| =ctrl-shift-up= | scroll up a line |
| =ctrl-shift-down= | scroll down a line |
| =ctrl-+= | increase font size |
| =ctrl--= | decrease font size |
| =ctrl-== | reset font size to default |
** Unicode Rxvt
2019-01-31 09:41:03 +01:00
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S rxvt-unicode
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
Most of Urxvt configuration is done in =~/.Xresources=
* Shell: Bash and ZSH
2019-01-31 09:41:03 +01:00
https://wiki.archlinux.org/index.php/Bash
** Installation
#+begin_src bash
yay -S bash bash-completion zsh
#+end_src
2019-01-31 09:41:03 +01:00
** Configuration
[[file:bash.org][Bash]] configuration:
2019-01-31 09:41:03 +01:00
- =~/.bashrc=
- =~/.bash_profile=
- =~/.config/bash/=
- =~/.profile=
* Terminal Multiplexer: Tmux
2019-01-31 09:41:03 +01:00
https://github.com/tmux/tmux
** Installation
2019-04-04 10:27:43 +02:00
#+begin_src bash
yay -S tmux
2019-04-04 10:27:43 +02:00
#+end_src
** Configuration
[[file:tmux.org][TMUX]] configuration
2019-04-04 10:27:43 +02:00
** Ressources
2019-01-31 09:41:03 +01:00
- https://github.com/gpakosz/.tmux
- https://gist.github.com/MohamedAlaa/2961058
- https://blog.bugsnag.com/tmux-and-vim/
- https://github.com/tmux-plugins/tmux-resurrect
- https://github.com/rothgar/awesome-tmux
- https://thoughtbot.com/upcase/tmux
** Cheatsheet
| Command | Usage |
|----------------+-------------------------------|
| =ctrl-spc= | Prefix |
| =c= | New pane |
| =/=, =-= | Split Vertically/Horizontally |
| =s= | Change session |
| =p=, =n= | Previous/Next Pane |
| =ctrl-h,j,k,l= | Move between windows |
* Fonts
2019-01-31 09:41:03 +01:00
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S ttf-inconsolata nerd-fonts-complete ttf-linux-libertine ttf-emojione
#+end_src
2019-01-31 09:41:03 +01:00
** Default fonts
Default font used:
- Monospace Font: =Hack Nerd Font Mono=
- Serif Font: =Hack Nerd Font=
- Sans Font: =Hack Nerd Font=
2019-01-31 09:41:03 +01:00
List all fonts available: =fc-list=
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
** Select font
#+begin_src bash
yay -S gtk2fontsel
#+end_src
2019-01-31 09:41:03 +01:00
* Text Editors
** Neovim
https://github.com/neovim/neovim
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S neovim
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
[[file:vim.org][Vim]] configuration
2019-01-31 09:41:03 +01:00
** Emacs
https://www.gnu.org/software/emacs/
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S emacs
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
[[./doom.org][Doom Emacs]] configuration
2019-01-31 09:41:03 +01:00
*** SpellCheck with Aspell
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S aspell aspell-en aspell-fr
#+end_src
2019-01-31 09:41:03 +01:00
* SSH setup
** Generating a new SSH key
#+begin_src bash
ssh-keygen -t rsa -b 4096 -C "dehaeze.thomas@gmail.com"
#+end_src
2019-01-31 09:41:03 +01:00
** Start the ssh-agent in the background
#+begin_src bash
eval "$(ssh-agent -s)"
#+end_src
2019-01-31 09:41:03 +01:00
** Add the SSH key to the ssh-agent
#+begin_src bash
ssh-add ~/.ssh/id_rsa
#+end_src
2019-01-31 09:41:03 +01:00
* GnuPG
https://gnupg.org/
** Install the gnupg package:
#+begin_src bash
yay -S gnupg
#+end_src
2019-01-31 09:41:03 +01:00
** Create a key pair
#+begin_src bash
gpg --full-gen-key
#+end_src
2019-01-31 09:41:03 +01:00
** Configure the gpg-agent to cache the passphrase
Edit the following file =~/.gnupg/gpg-agent.conf=
#+begin_src conf
max-cache-ttl 60480000
default-cache-ttl 60480000
#+end_src
2019-01-31 09:41:03 +01:00
2019-04-04 10:27:43 +02:00
* Launcher - Rofi
https://github.com/DaveDavenport/rofi
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S rofi
#+end_src
2019-04-04 10:27:43 +02:00
** Setup rofi as a dmenu replacement
Setup rofi as a dmenu replacement in =~/.i3/config=:
#+begin_src
2019-04-04 10:27:43 +02:00
bindsym $mod+d exec --no-startup-id rofi -show run
#+end_src
2019-04-04 10:27:43 +02:00
** Run sudo commands with rofi
https://github.com/DaveDavenport/rofi/issues/584#issuecomment-384555551
Use ~sudo -A~, that will open a rofi prompt to ask for the password.
For that to work, we need to add the following code to =~/.profile=:
#+begin_src bash
2019-04-04 10:27:43 +02:00
export SUDO_ASKPASS=~/bin/askpass-rofi
#+end_src
2019-04-04 10:27:43 +02:00
The =askpass= script is:
#+begin_src bash
2019-04-04 10:27:43 +02:00
#!/bin/sh
# Take password prompt from STDIN, print password to STDOUT
# the sed piece just removes the colon from the provided
# prompt: rofi -p already gives us a colon
rofi -dmenu \
-password \
-no-fixed-num-lines \
-p "$(printf "$1" | sed s/://)"
#+end_src
2019-04-04 10:27:43 +02:00
2019-01-31 09:41:03 +01:00
* Password Manager: Pass
https://www.passwordstore.org/
** Install the pass package
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S pass
#+end_src
2019-01-31 09:41:03 +01:00
** Initialize the password store as a git repository
#+begin_src bash
2019-01-31 09:41:03 +01:00
pass git init
pass git remote add origin https://github.com/tdehaeze/pass.git
#+end_src
2019-01-31 09:41:03 +01:00
** Gui Manager
https://github.com/IJHack/qtpass
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S qtpass
#+end_src
2019-01-31 09:41:03 +01:00
** Integration with Rofi
https://github.com/carnager/rofi-pass
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S rofi-pass
#+end_src
2019-01-31 09:41:03 +01:00
Then we can add a shortcut to =rofi-pass= on i3 config.
2019-03-05 22:08:47 +01:00
*** Alternative
https://github.com/ibizaman/pass-clip
#+begin_src bash
yay -S pass-clip
#+end_src
2019-01-31 09:41:03 +01:00
** Integration with Browsers
This is explained [[*Integration with Pass: the password manager][here]].
** Integration with Git
https://github.com/languitar/pass-git-helper
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S pass-git-helper
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
First, add the relation between repository addresses and entries in =pass=. This is done in the following config file =.config/pass-git-helper/git-pass-mapping.ini=:
#+begin_src
2019-01-31 09:41:03 +01:00
[github.com*]
target=github.com/tdehaeze
#+end_src
2019-01-31 09:41:03 +01:00
Then, add the credential helper on the git configuration file =~/.gitconfig= and add the default username for the repositories adresses.
#+begin_src
2019-01-31 09:41:03 +01:00
[credential]
helper = !pass-git-helper $@
[credential "https://github.com"]
username = tdehaeze
#+end_src
2019-01-31 09:41:03 +01:00
** Integration with other programs
Integrate pass in other programs is usually very easy, here are few examples:
- =~/.msmtprc=:
- =passwordeval "pass email/dehaeze.thomas@gmail.com"=
- =~/.mbsyncrc=
- =PassCmd "pass email/dehaeze.thomas@gmail.com"=
* Bookmark Manager: Buku
https://github.com/jarun/Buku
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S buku
#+end_src
2019-01-31 09:41:03 +01:00
** Integration with Rofi
https://github.com/carnager/buku_run
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
wget https://raw.githubusercontent.com/carnager/buku_run/master/buku_run -o ~/bin/buku_run
chmod +x ~/bin/buku_run
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
The configuration file is here: =~/.config/buku_run/config=
** Integration with qutebrowser
[[*Integration with Buku][Integration with Buku]]
** Synchronization with a git repository
The database is stored in =~/.local/share/buku/bookmarks.db=.
We initialize a git repository in this folder:
#+begin_src bash
2019-01-31 09:41:03 +01:00
cd ~/.local/share/buku/bookmarks.db
git init
#+end_src
2019-01-31 09:41:03 +01:00
Then we create a script that will automatically add =bookmarks.db= and push to some repository: =~/scripts/buku_git_push.sh=.
To automatically run the script every day, a systemd unit is used: =~/.config/systemd/user/bukugit.timer= and =~/.config/systemd/user/bukugit.service=
#+begin_src bash
2019-01-31 09:41:03 +01:00
systemctl start --user bukugit.timer
systemctl enable --user bukugit.timer
#+end_src
2019-01-31 09:41:03 +01:00
** Import Bookmarks from Firefox and Chrome
From Firefox, export the bookmarks as html file.
Then import the bookmark file using =buku -i bookmarks.html=.
This will add a tag with current date to all bookmarks imported.
To remove them, use: =buku --replace '2018dec20' ''=
** Web Interface
Run:
#+begin_src bash
bukuserver run --host 127.0.0.1 --port 5001
#+end_src
And then browse to http://127.0.0.1:5001.
2019-01-31 09:41:03 +01:00
** Cheatsheet
| Command | Usage |
|--------------+------------------------|
| =buku= | Run buku interactively |
| =buku -p= | List all bookmarks |
| =buku -w id= | Edit bookmark |
| =buku -d id= | Delete bookmark |
| =buku -s <>= | Search bookmarks |
** Alternatives
2019-01-31 09:41:03 +01:00
- https://github.com/RadhiFadlillah/shiori
- https://karl-voit.at/2014/08/10/bookmarks-with-orgmode/
* Browser: qutebrowser
2019-01-31 09:41:03 +01:00
https://github.com/qutebrowser/qutebrowser
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S qutebrowser
#+end_src
2019-01-31 09:41:03 +01:00
** View Pdf inside qutebrowser with pdfjs
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S pdfjs
#+end_src
2019-01-31 09:41:03 +01:00
*** Usage
When opening a pdf file on qutebrowser, you'll be ask for options:
| Command | Usage |
|------------+-------------------|
| =<return>= | Download the file |
| =Ctrl-x= | Download and open |
| =Ctrl-p= | Open with pdf.js |
| =Alt-y= | Yank the url |
** Integration with Pass: the password manager
Add the key-binding on =~/.config/qutebrowser/config.py=
#+begin_src
2019-04-04 10:27:43 +02:00
config.bind(',p', 'spawn --userscript password_fill')
#+end_src
2019-01-31 09:41:03 +01:00
The =password_fill= script can be found on [[https://github.com/qutebrowser/qutebrowser/blob/master/misc/userscripts/password_fill][github.com]].
It is configured using the =~/.config/qutebrowser/password_fill_rc= file.
** Integration with Buku
2019-01-31 09:41:03 +01:00
Custom key binding in =~/.config/qutebrowser/config.py=
#+begin_src
2019-01-31 09:41:03 +01:00
# Add current page to Buku (Bookmark Manager)
config.bind('B', 'spawn buku -a {url}')
#+end_src
2019-01-31 09:41:03 +01:00
** Spell Checking
#+begin_src bash
/usr/share/qutebrowser/scripts/dictcli.py install fr-FR
/usr/share/qutebrowser/scripts/dictcli.py install en-US
#+end_src
* Monitors
#+begin_src bash
yay -S xorg-xrandr arandr
#+end_src
2019-01-31 09:41:03 +01:00
[[https://wiki.archlinux.org/index.php/Xrandr][Xrandr]] is used in shell scripts ([[https://github.com/Ventto/mons][mons]] could be used as a layer on top of Xrandr).
[[https://christian.amsuess.com/tools/arandr/][Arandr]] is a GUI application to manage monitors.
2019-01-31 09:41:03 +01:00
* Sound Setup
#+begin_src bash
yay -S pulseaudio pavucontrol
#+end_src
2019-01-31 09:41:03 +01:00
* Music Setup
** Sound Server - Pulse Audio
https://wiki.archlinux.org/index.php/PulseAudio
Install
#+begin_src bash
yay -S pulseaudio pulseaudio-alsa pulseaudio-bluetooth
#+end_src
2019-01-31 09:41:03 +01:00
If sound is not working, should run =pulseaudio --kill= to kill the deamon and then =pulseaudio --daemonize= to run it again.
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Running/
** Audio Server - MPD
https://wiki.archlinux.org/index.php/Music_Player_Daemon
2019-12-30 17:22:22 +01:00
=> Now Mopidy is used instead of MPD
2019-01-31 09:41:03 +01:00
*** Installation
#+begin_src bash
yay -S mpd
#+end_src
2019-01-31 09:41:03 +01:00
*** Automatic Startup
#+begin_src bash
systemctl start --user mpd.service
systemctl enable --user mpd.service
#+end_src
2019-01-31 09:41:03 +01:00
*** Command line interface to MPD - MPC
https://github.com/MusicPlayerDaemon/mpc
To install mpc: =yay -S mpc=.
| Command | Usage |
|--------------+--------------------|
| =mpc update= | Update the library |
| =mpc rescan= | Rescan the library |
** Audio Server with Spotify - Mopidy
2019-01-31 09:41:03 +01:00
https://github.com/mopidy/mopidy
https://medium.com/@theos.space/using-mopidy-with-spotify-and-ncmpcpp-44352f4a2ce8
2019-04-10 16:57:25 +02:00
#+begin_src bash
yay -S mopidy mopidy-spotify
#+end_src
To update local files:
#+begin_src bash
mopidy local scan
#+end_src
If mopidy is used, MPD should be disabled. (=systemctl disable --user mpd.service=)
2019-12-30 17:22:22 +01:00
2019-01-31 09:41:03 +01:00
** MPD Client - ncmpcpp
https://wiki.archlinux.org/index.php/Ncmpcpp
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S ncmpcpp
#+end_src
2019-01-31 09:41:03 +01:00
*** Config
The main config is located here: =~/.ncmpcpp/config=.
The key bindings can be configured here: =~/.ncmpcpp/bindings=.
*** Cheatsheet
https://pkgbuild.com/~jelle/ncmpcpp/
| Command | Usage |
|---------+-------|
** Library Manager - beets
https://github.com/beetbox/beets
*** Installation
#+begin_src bash
yay -S beets
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
Configuration folder: =~/.config/beets/=
*** Cheatsheet
| Command | Usage |
|------------------------+-------------------------------|
| =beet import <folder>= | Import folder to Music folder |
* Movies
2019-01-31 09:41:03 +01:00
** Media Player - MPV
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S mpv
#+end_src
2019-01-31 09:41:03 +01:00
*** Key Bindings
The configuration is set in =/.config/mpv/input.conf=.
2019-02-09 19:28:23 +01:00
*** CheatSheet
2019-01-31 09:41:03 +01:00
| Command | Usage |
|---------+-------|
** Chromecast with CATT
2019-01-31 09:41:03 +01:00
https://github.com/skorokithakis/catt
*** Installation
#+begin_src bash
yay -S catt
#+end_src
*** Usage to cast videos to chromecast
| Command | Usage |
|----------------------------------------------------------+--------------------------|
| catt cast "https://www.youtube.com/watch?v=dQw4w9WgXcQ" | Cast youtube video |
| catt cast ./myvideo.mp4 | Cast local video |
| catt add ./myvideo.mp4 | Add a video to the queue |
| catt cast -s ./mysubtitle.srt /myvideo.mp4 | Add sub title |
| catt cast_site https://en.wikipedia.org/wiki/Rickrolling | Cast website |
*** Usage for controlling the device
| Command | Usage |
|--------------+---------------------------------------------------------------|
| ffwd | Fastforward a video by TIME duration |
| rewind | Rewind a video by TIME duration |
| seek | Seek the video to TIME position |
| scan | Scan the local network and show all Chromecasts and their IPs |
| status | Show some information about the currently-playing video |
| pause | Pause a video |
| play | Resume a video after it has been paused |
| stop | Stop playing |
| skip | Skip to end of content |
| save | Save the current state of the Chromecast for later use |
| restore | Return Chromecast to saved state |
| volume | Set the volume to LVL [0-100] |
| volumedown | Turn down volume by a DELTA increment |
| volumeup | Turn up volume by a DELTA increment |
* Contact Manager
** Google Conctacts: Khard
2019-01-31 09:41:03 +01:00
https://github.com/scheibler/khard
#+begin_src bash
yay -Ss khard
#+end_src
2019-12-15 10:57:23 +01:00
This is the command line interface for contact management.
2019-01-31 09:41:03 +01:00
Contact synchronization:
2019-12-15 10:57:23 +01:00
Vdirsyncer is used for contact synchronization with Google.
2019-01-31 09:41:03 +01:00
To search with Khard: =khard <conctact-name>=
2019-12-15 10:57:23 +01:00
** Mu
#+begin_src bash
yay -Ss mu
#+end_src
2019-12-15 10:57:23 +01:00
This looks for contacts in all indexed emails.
2019-01-31 09:41:03 +01:00
=mu cfind <name>=
2019-12-15 10:57:23 +01:00
* Connect with Phone
#+begin_src bash
yay -S kdeconnect
#+end_src
2019-01-31 09:41:03 +01:00
* Chat Application - Weechat
2019-01-31 09:41:03 +01:00
https://weechat.org/files/doc/stable/weechat_user.en.html
2019-04-10 16:57:25 +02:00
https://wiki.archlinux.org/index.php/WeeChat
2019-12-16 08:53:36 +01:00
https://gist.github.com/pascalpoitras/8406501
2019-01-31 09:41:03 +01:00
** Installation
2019-01-31 09:41:03 +01:00
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S weechat
2019-01-31 09:41:03 +01:00
#+end_src
Then we install some dependencies
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S tcl lua ruby
2019-01-31 09:41:03 +01:00
#+end_src
** Enable mouse support
2019-01-31 09:41:03 +01:00
#+begin_src text
2019-04-04 10:27:43 +02:00
/mouse enable
2019-01-31 09:41:03 +01:00
#+end_src
** Scripts
2019-04-04 10:55:31 +02:00
| highmon.pl | |
| colorize_nicks.py | |
| go.py | |
| autosort.py | |
| buddylist.pl | |
| colorize_lines.pl | |
| multiline.pl | |
** Theme
2019-01-31 09:41:03 +01:00
https://www.bfoliver.com/technology/2017/07/15/weechat/
https://alexjj.com/blog/2016/9/setting-up-weechat/
2019-04-04 10:55:31 +02:00
2019-03-05 22:08:47 +01:00
#+begin_src conf
2019-04-10 16:57:25 +02:00
/set weechat.look.prefix_same_nick "⤷"
/set weechat.look.prefix_error "⚠"
/set weechat.look.prefix_action "⚡"
/set weechat.look.bar_more_down "▼▼"
/set weechat.look.bar_more_left "◀◀"
/set weechat.look.bar_more_right "▶▶"
/set weechat.look.bar_more_up "▲▲"
/set weechat.look.prefix_suffix "╡"
/set weechat.color.chat_nick_colors red,green,brown,blue,magenta,cyan,white,lightred,lightgreen,yellow,lightblue,lightmagenta,lightcyan
/set weechat.color.separator 31
/set buffers.color.current_fg 31
/set buffers.color.current_bg white
/set buffers.color.hotlist_message_fg 229
/set buffers.color.hotlist_private_fg 121
/set buffers.color.hotlist_highlight_fg 163
/set buffers.color.number 239
/set buffers.color.number_char 245
/set weechat.bar.title.conditions "${inactive}"
/set weechat.bar.title.color_fg black
/set weechat.bar.title.color_bg 31 #Or white if 31 does nothing
2019-03-05 22:08:47 +01:00
#+end_src
2019-01-31 09:41:03 +01:00
** Configuration
2019-01-31 09:41:03 +01:00
https://hugo.md/post/the-perfect-weechat-setup-2/
https://robots.thoughtbot.com/weechat-for-slacks-irc-gateway
Use the command =/fset=
** Multi-line messages
2019-04-01 18:13:54 +02:00
Solution is provided here: https://github.com/wee-slack/wee-slack/issues/118
It uses [[https://weechat.org/scripts/source/multiline.pl.html/][multiline.pl]] script.
Then alt-enter is bound to insert a new line:
#+begin_src conf
/set plugins.var.perl.multiline.magic_paste_only on
/key bind meta-ctrl-M /input insert \x0a
#+end_src
2019-04-04 10:27:43 +02:00
2019-04-01 18:13:54 +02:00
And enter is bound to =magic_enter= that directly sends the message if its one line, and if its multiple line, waits a little bit and then sends the message:
#+begin_src conf
/key bind ctrl-M /input magic_enter
#+end_src
** Send message using =$EDITOR=
2019-04-01 18:13:54 +02:00
https://github.com/keith/edit-weechat
#+begin_src bash
mkdir -p ~/.weechat/python/autoload
cd ~/.weechat/python/autoload
wget https://raw.githubusercontent.com/keith/edit-weechat/master/edit.py
#+end_src
Then, on weechat, type =/edit=.
** CheatSheet
2019-04-01 18:13:54 +02:00
| Command | Usage |
|-----------+------------------|
| =Ctlr-N= | Next channel |
| =Ctlr-P= | Previous channel |
| =Esc-n= | Toggle nicklist |
| =alt-ent= | New line |
2019-01-31 09:41:03 +01:00
** Slack Integration
2019-01-31 09:41:03 +01:00
https://github.com/wee-slack/wee-slack
*** Installation
2019-01-31 09:41:03 +01:00
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S python2-websocket-client
2019-01-31 09:41:03 +01:00
#+end_src
2019-04-04 10:55:31 +02:00
#+begin_src bash
cd ~/.weechat/python
wget https://raw.githubusercontent.com/wee-slack/wee-slack/master/wee_slack.py
ln -s ../wee_slack.py autoload
#+end_src
*** Add your Slack API key(s)
2019-04-04 10:55:31 +02:00
Log in to Slack:
#+begin_src conf
/slack register
#+end_src
This command prints a link you should open in your browser to authorize WeeChat with Slack. Once you've accomplished this, copy the "code" portion of the URL in the browser and pass it to this command:
#+begin_src conf
/slack register [CODE_FROM_URL]
#+end_src
Your Slack team is now added, and you can complete setup by restarting the wee-slack script.
#+begin_src conf
/python reload slack
#+end_src
If you don't want to store your API token in plaintext you can use the secure features of weechat:
#+begin_src conf
/secure passphrase this is a super secret password
/secure set slack_token [YOUR_SLACK_TOKEN]
/set plugins.var.python.slack.slack_api_token ${sec.data.slack_token}
#+end_src
** Aspell
2019-05-16 21:13:08 +02:00
https://blog.qoba.lt/using_aspell_in_weechat.html
2019-12-15 10:57:23 +01:00
** Notifications
2019-04-10 16:57:25 +02:00
https://github.com/s3rvac/weechat-notify-send
** Deamon and Client
2019-04-10 16:57:25 +02:00
Weechat is started with the systemd service =weechat=.
It runs weechat inside tmux.
2019-01-31 09:41:03 +01:00
* Redshift
http://jonls.dk/redshift/
#+begin_src bash
yay -S redshift
#+end_src
2019-01-31 09:41:03 +01:00
* Mail Setup
[[file:mail.org][Link]] to the mail setup.
2019-01-31 09:41:03 +01:00
** Synchronize Mailboxes - Mbsync
http://isync.sourceforge.net/
https://wiki.archlinux.org/index.php/Isync
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S isync
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
2019-01-31 09:41:03 +01:00
=~/.mbsyncrc=
*** Automation using systemd
**** Retreive New mails
- =~/scripts/checkmail.sh=
- =~/.config/systemd/user/checkmail.service=
- =~/.config/systemd/user/checkmail.timer=
#+begin_src bash
2019-01-31 09:41:03 +01:00
systemctl --user enable checkmail.timer
systemctl --user start checkmail.timer
#+end_src
2019-01-31 09:41:03 +01:00
**** Synchronize all the mailboxes
- =~/.config/systemd/user/syncmail.service=
- =~/.config/systemd/user/syncmail.timer=
#+begin_src bash
2019-01-31 09:41:03 +01:00
systemctl --user enable syncmail.timer
systemctl --user start syncmail.timer
#+end_src
2019-01-31 09:41:03 +01:00
** Send Mails - Msmtp
https://marlam.de/msmtp/
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S msmtp
#+end_src
2019-01-31 09:41:03 +01:00
** Mail Index, Search and Tagging - Mu
2019-01-31 09:41:03 +01:00
https://github.com/djcb/mu
** Mail Client - NeoMutt
2019-01-31 09:41:03 +01:00
https://github.com/neomutt/neomutt
*** Installation
#+begin_src bash
yay -S neomutt
#+end_src
2019-01-31 09:41:03 +01:00
*** Display html mails
#+begin_src bash
yay -S w3m
#+end_src
2019-01-31 09:41:03 +01:00
*** Open PDF from mail
=~/scripts/openfile.sh=
*** Open Url from mail
#+begin_src bash
yay -S urlview
#+end_src
2019-01-31 09:41:03 +01:00
*** Ressources
- http://therandymon.com/woodnotes/mutt/using-mutt.html
- https://ankursinha.in/2017/12/16/transitioning-to-neomutt-and-friends-for-e-mail.html
- https://github.com/LukeSmithxyz/mutt-wizard
** Notification system
2019-01-31 09:41:03 +01:00
A script (=~/scripts/checkmail.sh=) is used to retreive new mails and use =notify=send= is there are new received mails.
* File Manager
Configuration files:
- GUI: [[file:pcmanfm.org][Pcmanfm]]
- Terminal based: [[file:ranger.org][Ranger]]
** Ranger
2019-01-31 09:41:03 +01:00
https://github.com/ranger/ranger
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S ranger
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
The configuration file is =~/.config/ranger/rc.conf=.
*** Display pdf
All the display of the files are defined in =~/.config/ranger/scope.sh=.
It seems that Ranger is not working well with Termite. The screen is not refreshing after viewing one image ([[https://github.com/ranger/ranger/issues/859][Github Issue]]).
It works better with Urxvt.
** GUI File Manager: pcmanfm
2019-01-31 09:41:03 +01:00
https://wiki.archlinux.org/index.php/PCManFM
* Image viewer
2019-05-16 21:13:08 +02:00
** sxiv
2019-01-31 09:41:03 +01:00
https://github.com/muennich/sxiv
https://www.youtube.com/watch?v=GYW9i_u5PYs
2019-05-16 21:13:08 +02:00
2019-01-31 09:41:03 +01:00
*** Installation
#+begin_src bash
yay -S sxiv
#+end_src
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
*** Open Gif
#+begin_src bash
sxiv -a file.gif
#+end_src
*** Cheatsheet
| Command | Usage |
|--------------+--------------------------|
| =-t= | Start in Thumbmail mode |
| =f= | Toggle fullscreen |
| =Return= | Switch to thumbmail mode |
| =<=, =>= | Rotate the image |
| =\vert=, =_= | Flip the image |
| =n=, =p= | Next, Previous image |
* HotKeyManager - SXHKD
#+begin_src bash
yay -S sxhkd
#+end_src
2019-01-31 09:41:03 +01:00
Configuration file: [[file:sxhkd.org][SXHKD]].
2019-01-31 09:41:03 +01:00
* Windows Manager - i3
[[file:i3.org][Link]] to the documentation
2019-01-31 09:41:03 +01:00
** Installation
#+begin_src bash
yay -S i3-gaps
#+end_src
2019-01-31 09:41:03 +01:00
** Configuration
=~/.i3/config=
2019-01-31 09:41:03 +01:00
* Polybar
2019-01-31 09:41:03 +01:00
https://polybar.github.io/
[[file:polybar.org][Link]] to the documentation.
2019-01-31 09:41:03 +01:00
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S polybar
#+end_src
2019-01-31 09:41:03 +01:00
* Compositor - Picom
https://wiki.archlinux.org/index.php/Picom
2019-01-31 09:41:03 +01:00
[[file:compositor.org][Link]] to the documentation.
2019-01-31 09:41:03 +01:00
** Installation
#+begin_src bash
yay -S picom
2019-01-31 09:41:03 +01:00
#+end_src
** Configuration
=~/.config/picom/picom.conf=
2019-01-31 09:41:03 +01:00
** Automatic run as daemon
Compton is run from =.xprofile= config in the background:
2019-01-31 09:41:03 +01:00
#+begin_src bash
picom --daemon
2019-01-31 09:41:03 +01:00
#+end_src
* Notification Manager - Dunst
2019-01-31 09:41:03 +01:00
https://github.com/dunst-project/dunst
https://wiki.archlinux.org/index.php/Dunst
** Installation
#+begin_src bash
yay -S dunst dunstify
#+end_src
2019-01-31 09:41:03 +01:00
** Configuration
=~/.config/dunst/dunstrc=
** Usage
#+begin_src bash
dunstify --replace=16549 "AppName" "Message"
#+end_src
The number =--replace= can be used with an ID to merge notifications from the
same application for instance.
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
* Office Suite
** WPS Office
#+begin_src bash
yay -S wps-office wps-office-extension-french-dictionary ttf-wps-fonts
#+end_src
Alternatives are:
- open-office
** Minimap SpreadSheet - SC-IM
2019-01-31 09:41:03 +01:00
https://github.com/andmarti1424/sc-im
https://www.youtube.com/watch?v=K_8_gazN7h0
It permits to open Excel files on the terminal very quickly.
#+begin_src bash
yay -S sc-im
#+end_src
* Managing Theme
** GTK Themes
Gtk2 themes are managed using the file =~/.gtkrc-2.0= while Gtk3 themes are managed using =~/.config/gtk-3.0/settings.ini=.
*** Gui Manager
To customize the look of the system using GUI application, run ~lxappearance~.
Installation:
#+begin_src bash
2019-04-10 16:57:25 +02:00
yay -S lxappearance
#+end_src
2019-01-31 09:41:03 +01:00
*** Icons and themes
#+begin_src bash
2019-04-10 16:57:25 +02:00
yay -S zukitwo-themes faenza-icon-theme
#+end_src
2019-01-31 09:41:03 +01:00
2019-04-10 16:57:25 +02:00
#+begin_src bash
yay -S arc-gtk-theme
#+end_src
2019-01-31 09:41:03 +01:00
** QT Themes
Run ~qt5ct~ to manage QT Themes.
** XFT Themes
Some configuration are located in =~/.Xresources=.
* Advanced config
** Printer
2019-01-31 09:41:03 +01:00
https://wiki.archlinux.org/index.php/CUPS
2019-04-01 18:13:54 +02:00
Web based administration: http://localhost:631/
2019-01-31 09:41:03 +01:00
=system-config-printer=
2019-05-16 21:13:08 +02:00
2019-04-01 18:13:54 +02:00
Check the queue
#+begin_src bash
2019-05-16 21:13:08 +02:00
lpq
lpq -a # on all queues
2019-04-01 18:13:54 +02:00
#+end_src
2019-01-31 09:41:03 +01:00
2019-04-01 18:13:54 +02:00
Clear the queue
#+begin_src bash
2019-05-16 21:13:08 +02:00
lprm # remove last entry only
lprm - # remove all entries
2019-04-01 18:13:54 +02:00
#+end_src
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
Print a file
#+begin_src bash
lpr -P printer_name filename.pdf
#+end_src
List available printers
#+begin_src bash
lpstat -a
#+end_src
Stats about the printer
#+begin_src bash
lpstat -p printer_name
#+end_src
** Kernel Management
2019-01-31 09:41:03 +01:00
https://wiki.manjaro.org/index.php/Manjaro_Kernels
| Command | Usage |
|-------------------+--------------------------------|
| =mhwd-kernel -li= | Determine which kernel is used |
2019-04-01 18:13:54 +02:00
| | Change current kernel |
2019-01-31 09:41:03 +01:00
** Power Management Tool: Powertop
2019-01-31 09:41:03 +01:00
https://wiki.archlinux.org/index.php/Powertop
https://wiki.manjaro.org/index.php?title=Power_Savings
2019-01-31 09:41:03 +01:00
=PowerTop= a diagnostic tool used to identify and report issues with power consumption and management.
2019-06-22 17:36:03 +02:00
#+begin_src bash
yay -S powertop
2019-06-22 17:36:03 +02:00
#+end_src
2019-06-22 18:10:05 +02:00
=TLP= is used for Power Management.
#+begin_src bash
2019-05-16 21:13:08 +02:00
yay -S tlp
sudo systemctl enable tlp
sudo systemctl start tlp
sudo systemctl enable tlp-sleep
sudo systemctl start tlp-sleep
sudo tlp start
#+end_src
2019-01-31 09:41:03 +01:00
=Thermald= is used to automatically handle CPU frequency scaling according to system load.
#+begin_src bash
2019-05-16 21:13:08 +02:00
yay -S thermald
sudo systemctl enable thermald
sudo systemctl start thermald
#+end_src
2019-01-31 09:41:03 +01:00
** Lid open/close
https://wiki.archlinux.org/index.php/Power_management
Should automatic show lock screen
=/etc/systemd/logind.conf=
** Automatically Mount devices - Udiskie
udiskie - Mount and unmount disks (https://github.com/coldfix/udiskie)
2019-01-31 09:41:03 +01:00
#+begin_src bash
yay -S udiskie
2019-01-31 09:41:03 +01:00
#+end_src
Automatically run =udiskie= on startup.
** Format disks
https://gparted.org/
=sudo gparted= to format disks
Using command line:
- https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux
** Bluetooth
Bluetooth manager: https://github.com/blueman-project/blueman
=blueman-manager=
* LaTeX
2019-01-31 09:41:03 +01:00
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S texlive-most
#+end_src
2019-01-31 09:41:03 +01:00
Biber support for the bibliography:
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S biber
#+end_src
2019-01-31 09:41:03 +01:00
Support for source code using minted:
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S minted
#+end_src
2019-01-31 09:41:03 +01:00
** Personnal classes/packages
Every custom class or packages can be put under =~/texmf/tex/latex/local/= folder.
In order for LaTeX to be aware of new packages/classes, run =sudo texhash= each time a new custom package is added.
** From screenshot to latex math formula
2019-01-31 09:41:03 +01:00
https://mathpix.com/
*** Installation
#+begin_src bash
yay -S mathpix-snipping-tool
#+end_src
2019-01-31 09:41:03 +01:00
* Mathematical Software
** Insect
https://github.com/sharkdp/insect
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S insect
#+end_src
2019-01-31 09:41:03 +01:00
*** Usage
| Command | Usage |
|-----------------+--------------|
| =3 m/s to km/h= | Convert Unit |
** Matlab
https://wiki.archlinux.org/index.php/MATLAB#Installation
2020-01-12 17:40:59 +01:00
[[file:matlab.org][Link]] to the configuration.
2019-01-31 09:41:03 +01:00
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S matlab
#+end_src
2019-01-31 09:41:03 +01:00
2019-04-04 10:27:43 +02:00
If there is a problem when opening a Simulink file, check the solution [[https://fr.mathworks.com/matlabcentral/answers/361053-can-t-reload-usr-local-matlab-r2017b-bin-glnxa64-libmwdastudio-so][here]].
2019-01-31 09:41:03 +01:00
** SageMath
http://www.sagemath.org/
https://wiki.archlinux.org/index.php/SageMath
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S sagemath
#+end_src
2019-01-31 09:41:03 +01:00
*** Usage
Run =sage -n jupyter= to run jupyter notebooks
*** Documentation
http://doc.sagemath.org/html/en/reference/plotting/sage/plot/plot.html#sage.plot.plot.plot
http://doc.sagemath.org/html/en/reference/calculus/sage/symbolic/expression.html
http://doc.sagemath.org/html/en/reference/calculus/sage/symbolic/assumptions.html
* Download Manager
** Torrent Client - deluge
2019-01-31 09:41:03 +01:00
https://github.com/deluge-torrent/deluge
https://wiki.archlinux.org/index.php/Deluge
*** Installation
#+begin_src bash
yay -S deluge
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
=~/.config/deluge/=
*** Command Line Interface
https://whatbox.ca/wiki/deluge_console_documentation
Start the daemon using =deluge -d=.
Then run the CLI client using =deluge-console=.
** Youtube-dl
2019-01-31 09:41:03 +01:00
#+begin_src bash
yay -S youtube-dl
#+end_src
2019-01-31 09:41:03 +01:00
*** Download best audio
#+begin_src bash
youtube-dl -f bestaudio url
#+end_src
*** Download best video with audio
#+begin_src bash
youtube-dl -f best url
#+end_src
* Default Applications
2019-01-31 09:41:03 +01:00
https://wiki.archlinux.org/index.php/Default_applications
https://www.guyrutenberg.com/2018/01/20/set-default-application-using-xdg-mime/
** Mailcap file
** XDG-OPEN
2019-01-31 09:41:03 +01:00
=~/.config/mimeapps.list=
* Desktop files
[[file:applications.org][Desktop Applications]]
2019-01-31 09:41:03 +01:00
=~/.local/share/applications/=
* Bibliography Management
2019-01-31 09:41:03 +01:00
- https://github.com/JabRef/jabref
- https://github.com/t-wissmann/rofi-bibbrowser
I am using a plain bibtex file with =org-ref= ([[https://github.com/jkitchin/org-ref][link]]).
2019-01-31 09:41:03 +01:00
** Alternatives:
GUI:
- Zotero
- Mendeley
Command line based:
- [[https://github.com/papis/papis][Papis]]
* Calendar
[[file:calendar.org][Link]] to configuration
2019-01-31 09:41:03 +01:00
2019-04-04 11:17:06 +02:00
** Vdirsyncer - Sync calendars
https://github.com/pimutils/vdirsyncer
2019-01-31 09:41:03 +01:00
*** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S vdirsyncer
#+end_src
2019-01-31 09:41:03 +01:00
#+begin_src bash
2019-04-04 10:27:43 +02:00
sudo pip install requests-oauthlib
#+end_src
2019-01-31 09:41:03 +01:00
*** Cheatsheet
| Command | Usage |
|-------------------+-------------|
| =vdirsyncer sync= | Synchronize |
*** Automation - Systemd
2019-07-20 17:45:53 +02:00
First, run
#+begin_src bash
2019-07-20 17:45:53 +02:00
vdirsyncer discover google_calendar
#+end_src
2019-07-20 17:45:53 +02:00
#+begin_src bash
2019-04-04 10:27:43 +02:00
systemctl --user enable vdirsyncer.timer
systemctl --user start vdirsyncer.timer
#+end_src
2019-01-31 09:41:03 +01:00
To check the status of the service:
#+begin_src bash
2019-04-04 10:27:43 +02:00
systemctl --user status vdirsyncer.service
#+end_src
2019-01-31 09:41:03 +01:00
** Calendar Client - Khal
2019-01-31 09:41:03 +01:00
https://github.com/pimutils/khal
*** Installation
#+begin_src bash
2019-04-04 11:17:06 +02:00
yay -S khal
#+end_src
2019-01-31 09:41:03 +01:00
*** Import ICS files
#+begin_src bash
khal import even.ics
#+end_src
2019-12-15 10:57:23 +01:00
* RSS Reader
GUI Alternatives:
2019-01-31 09:41:03 +01:00
- http://www.rssowl.org/
- https://github.com/jangernert/FeedReader
With Emacs:
- http://pragmaticemacs.com/emacs/read-your-rss-feeds-in-emacs-with-elfeed/
On the phone:
- https://feedly.com/i/my
2019-01-31 09:41:03 +01:00
2019-04-04 11:17:06 +02:00
** Newsboat
[[file:newsboat.org][Link]] to configuration.
2019-01-31 09:41:03 +01:00
https://github.com/newsboat/newsboat
https://wiki.archlinux.org/index.php/Newsboat
*** Installation
#+begin_src bash
2019-01-31 09:41:03 +01:00
yay -S newboat
#+end_src
2019-01-31 09:41:03 +01:00
*** Configuration
https://newsboat.org/releases/2.12/docs/newsboat.html
=~/.newsboat/=
*** CheatSheet
https://newsboat.org/releases/2.12/docs/newsboat.html#available-operations
2019-06-22 18:10:05 +02:00
* Task Manager
2019-01-31 09:41:03 +01:00
** OrgMode and Emacs
** Wunderline
2019-01-31 09:41:03 +01:00
https://itsfoss.com/linux-client-wunderlist/
http://wayneashleyberry.github.io/wunderline/
*** Installation
2019-01-31 09:41:03 +01:00
#+begin_src bash
yay -S wunderline
#+end_src
*** Cheatsheet
Add a task with:
- =wunderline add <task>=
2019-05-16 21:13:08 +02:00
| Options | Usage |
|-----------------+-------|
| =--today= | |
| =--tomorrow= | |
| =--note <note>= | |
2019-01-31 09:41:03 +01:00
Other commands:
- =wunderline inbox=
- =wunderline today=
2019-05-16 21:13:08 +02:00
2019-01-31 09:41:03 +01:00
* Background manager: nitrogen
https://github.com/l3ib/nitrogen/
** Configuration
=~/.config/nitrogen/nitrogen.cfg=
** Wallpapers
=~/scripts/wallpaper.sh=: script to automatically change wallpaper each x minutes.
* PDF Reader: Zathura
https://pwmt.org/projects/zathura/
** Installation
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S zathura
#+end_src
2019-01-31 09:41:03 +01:00
Then add dependecies to view specific files:
#+begin_src bash
2019-04-04 10:27:43 +02:00
yay -S zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb
#+end_src
2019-01-31 09:41:03 +01:00
It seems that mupdf is better that poppler to view pdf.
** Configuration
=~/.config/zathura/zathurarc=
** Cheatsheet
| Command | Usage |
|---------+----------------------------|
| =p= | Print the current pdf |
| =tab= | Show the outline |
| =r= | Reload |
| =J/K= | Next/previous page |
| =H/L= | Zoom in/out |
| =a= | Fit height |
| =s= | Fit width |
| =D= | Double page |
| =f= | Follow link |
| =i= | Night Mode |
| =<n>gg= | Go to page n |
| =mm= | Mark current location to m |
| ='m= | Goto location m |
** Multi-monitor pdf presentation - pdfpc
https://github.com/pdfpc/pdfpc
pdfpc is a great tool for showing pdf presentations. It support:
- screen splitting
- support for videos in pdf presentations
- support for notes
- support for annotations
*** Installation
#+begin_src bash
yay -S pdfpc
#+end_src
*** Video support
#+begin_src bash
yay -S gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav
#+end_src
*** Usage
#+begin_src bash
pdfpc filename.pdf
#+end_src
* Theme manager
2019-01-31 09:41:03 +01:00
The idea would be to have a command that changes the theme of all the system.
There would be at least one light and one dark theme.
Applications that could change:
- [ ] terminal: https://github.com/khamer/base16-termite. TODO: this does not seems to work. Some is takken from config of termite, some from xresources. Also when reload the terminal is does not make the colors well: https://github.com/thestinger/termite/issues/273
It seems the color is due to this part of the script. Should then source this file somehow.
#+begin_src bash
2019-01-31 09:41:03 +01:00
BASE16_SHELL="$HOME/.base16-manager/chriskempson/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
#+end_src
2019-01-31 09:41:03 +01:00
- [X] shell: https://github.com/chriskempson/base16-shell
- [X] ranger: uses colors of the shell
- [X] vim: https://github.com/chriskempson/base16-vim
- [ ] emacs: https://github.com/belak/base16-emacs
- [X] zathura: https://github.com/nicodebo/base16-zathura
- [ ] neomutt: https://github.com/josephholsten/base16-mutt
- [X] ncmpcpp: uses colors of terminal (termite) defined in =~/.config/termite/config=
- [X] polybar: uses colors of Xresources: =~/.Xressources.d/colors=
- [ ] dunst: https://github.com/khamer/base16-dunst
- [ ] fzf: https://github.com/nicodebo/base16-fzf
- [ ] i3: https://github.com/khamer/base16-i3
- [ ] qutebrowser: https://github.com/theova/base16-qutebrowser
- [ ] rofi: https://gitlab.com/0xdec/base16-rofi
- [ ] background: use custom script
- [ ] tmux
- [ ] GUI file manager?
Possible theme managers:
- https://github.com/mjswensen/themer
- https://github.com/dylanaraps/pywal
** Base16
2019-01-31 09:41:03 +01:00
https://github.com/chriskempson/base16
http://chriskempson.com/projects/base16/
https://www.youtube.com/watch?v=QcOxU1sOOuw
*** Base16 Philosophy
Define colors according to rules: http://chriskempson.com/projects/base16/
Then we can use these colors multiple applications.
*** Base16-shell
https://github.com/chriskempson/base16-shell
This changes the shell colors. This should be added to =~/.bashrc=:
#+begin_src bash
2019-01-31 09:41:03 +01:00
# Base16 Shell
BASE16_SHELL="$HOME/.config/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
#+end_src
2019-01-31 09:41:03 +01:00
*** Base16-manager
https://github.com/AuditeMarlow/base16-manager
This help changes many applications colors at once.
* Graphical Editor
2019-01-31 09:41:03 +01:00
- https://inkscape.org/
- Tikz
2019-05-16 21:13:08 +02:00
* VPN Setup with NordVPN
2019-01-31 09:41:03 +01:00
https://aur.archlinux.org/packages/nordvpn-bin/
https://wiki.archlinux.org/index.php/NordVPN
** Installation
2019-01-31 09:41:03 +01:00
#+begin_src bash
yay -S nordvpn-bin
#+end_src
** Configuration
2019-01-31 09:41:03 +01:00
#+begin_src bash
sudo systemctl enable nordvpnd.service
sudo systemctl start nordvpnd.service
#+end_src
** Usage
2019-01-31 09:41:03 +01:00
| Command | Usage |
|---------------------------+-------|
| =nordvpn login= | |
| =nordvpn connect country= | |
| =nordvpn disconnect= | |
| =nordvpn status= | |
| =nordvpn countries= | |
** Alternative: Use NordVPM with openVPN Instead
2019-01-31 09:41:03 +01:00
https://github.com/nstinus/nordvpn
https://github.com/jotyGill/openpyn-nordvpn
https://nordvpn.com/fr/tutorials/linux/openvpn/
* Others
** Reddit on terminal: rtv
#+begin_src bash
yay -S rtv
#+end_src
2019-01-31 09:41:03 +01:00
2019-05-16 21:13:08 +02:00
** Interact with API
- GUI: https://github.com/getinsomnia/insomnia
- CLI: https://github.com/jakubroztocil/httpie
** Take Screenshot
https://github.com/naelstrof/maim
#+begin_src bash
yay -S maim
#+end_src
#+begin_src bash
man maim
#+end_src
2019-12-30 17:22:22 +01:00
** Utilities
#+begin_src bash
yay -S fd ripgrep pdf2svg pdftk
#+end_src
#+begin_src bash
yay -S unclutter
#+end_src
* Usefull commands
2019-01-31 09:41:03 +01:00
** Find files or directories
- https://github.com/sharkdp/fd
- https://github.com/BurntSushi/ripgrep
- https://github.com/ggreer/the\_silver\_searcher
- find
- fzf
** Show informations about the machine
- [[https://github.com/dylanaraps/neofetch][neofetch]]
** Work with PDF
=pdftk=
** Separate PDF
=pdfseparate -f 1 -l 6 file.pdf split%d.pdf=
Will create =split1.pdf= to =split6.pdf= files corresponding to correct pages of =file.pdf=.
** Readline
https://wiki.archlinux.org/index.php/Keyboard_shortcuts
| Keyboard | Shortcut Description |
|----------+----------------------|
| Ctrl+l | Clear the screen |
*** Cursor Movement
| Keyboard | Shortcut Description |
|----------+----------------------------------------|
| =Ctrl+b= | Move cursor one character to the left |
| =Ctrl+f= | Move cursor one character to the right |
| =Alt+b= | Move cursor one word to the left |
| =Alt+f= | Move cursor one word to the right |
| =Ctrl+a= | Move cursor to start of the line |
| =Ctrl+e= | Move cursor to end of the line |
*** Copy & Paste
| Keyboard | Shortcut Description |
|--------------+---------------------------------------------------|
| =Ctrl+u= | Cut everything from line start to cursor |
| =Ctrl+k= | Cut everything from the cursor to end of the line |
| =Alt+d= | Cut the current word after the cursor |
| =Ctrl+w= | Cut the current word before the cursor |
| =Ctrl+y= | Paste the previous cut text |
| =Alt+y= | Paste the second latest cut text |
| =Alt+Ctrl+y= | Paste the first argument of the previous command |
| =Alt+./= | Paste the last argument of the previous command |
*** History
| Keyboard | Shortcut Description |
|----------+---------------------------------------|
| =Ctrl+p= | Move to the previous line |
| =Ctrl+n= | Move to the next line |
| =Ctrl+s= | Search |
| =Ctrl+r= | Reverse search |
| =Ctrl+j= | End search |
| =Ctrl+g= | Abort search (restores original line) |
| =Alt+r= | Restores all changes made to line |
*** Completion
| Keyboard | Shortcut Description |
|----------+---------------------------------|
| =Tab= | Auto-complete a name |
| =Alt+?= | List all possible completions |
| =Alt+*= | Insert all possible completions |
** Google translate from the command line
#+begin_src bash
yay -S translate-shell
#+end_src
#+begin_src bash
trans englishwork en:fr
#+end_src
** Others
2019-05-16 21:13:08 +02:00
| [[https://github.com/tldr-pages/tldr][tldr]] | Community-driven man pages |
| [[https://github.com/dutchcoders/transfer.sh][transfer.sh]] | upload and share files from the command line |
| [[https://github.com/timvisee/ffsend][ffsend]] | share files from the command line |
| [[https://github.com/chubin/wttr.in][wttr.in]] | weather in terminal |
| [[https://github.com/michael-lazar/rtv][rtv]] | Reddit in terminal |
| awk | https://linuxhandbook.com/awk-command-tutorial/ |
| [[https://github.com/rupa/z][z]] | Jump around |
| [[https://github.com/nvbn/thefuck][thefuck]] | Magnificent app which corrects your previous console command |
| [[https://github.com/mrzool/bash-sensible][bash-sensible]] | An attempt at saner Bash defaults |
| [[https://github.com/greg-js/arch-wiki-man][awman]] | Arch Wiki man pages - Arch wiki offline |
| [[https://github.com/amanusk/s-tui/][s-tui]] | Terminal based CPU stress and monitoring utility |
| [[https://github.com/nicolargo/glances][glances]] | A top/htop alternative |
| [[https://github.com/asciinema/asciinema][asciinema]] | Reccord you terminal |
| [[https://dev.yorhel.nl/ncdu][ncdu]] | See what takes place on the disk |
| [[https://github.com/haikarainen/light][light]] | Program to easily change brightness on backlight-controllers |
| [[https://github.com/naelstrof/maim][maim]] | Take screenshots |
2019-01-31 09:41:03 +01:00
|-----------------------------------+-------------------------------------------|
| Command | Description |
|-----------------------------------+-------------------------------------------|
| =meteo= | Get the meteo |
| =sudo cputhrottle PID %PROC= | Limiter l'accès au proc pour un processus |
| =nmap -sP “192.168.1.*"= | Check all ip addresses on local netword |
| =rsync -a --progress source dest= | Copy folders with stats |
| =du -sh folder= | Return the size of the folder |
| =df -h= | Report disk usage |
|-----------------------------------+-------------------------------------------|
2019-05-16 21:13:08 +02:00
2019-03-05 22:08:47 +01:00
** Archive and Extract
Use =apack= and =aunpack=:
| | |
|-------------------------------+-----------------------------------|
| =aunpack foobar.tar.gz= | extract all files from archive |
| =apack myarchive.zip foo bar= | create a zip archive of two files |
2019-05-16 21:13:08 +02:00
** Hardware
| =dmesg= | Detected hardware and boot messages |
| =lshw= | Display information on hardware |
| =lsusb -tv= | Show usb devices |
** Network
| =ip addr show= | Show all network interfaces and ip address |
| =ethtooo eth0= | Tool to show ethernet status |
| =netstat -tulp= | List all active listening ports |
* Bash Snippets
2019-01-31 09:41:03 +01:00
** For loop
#+begin_src bash
2019-01-31 09:41:03 +01:00
for file in ./*; do
command ${file};
done
#+end_src
2019-12-30 17:22:22 +01:00
* Some notes
To improve the startup time.
#+begin_src bash
sudo systemctl disable apparmor
sudo systemctl disable snapd
sudo systemctl disable systemd-backlight@backlight\:intel_backlight.service
#+end_src
* Ressources
** Dotfiles
- https://github.com/LukeSmithxyz/voidrice
- https://github.com/wincent/wincent
- https://github.com/korolr/dotfiles
- https://github.com/Shougo/shougo-s-github
- https://github.com/addy-dclxvi/almighty-dotfiles
** Linux Softwares
- [[https://github.com/k4m4/terminals-are-sexy][terminalare.sexy]]
- [[https://www.reddit.com/r/vim/comments/3tluqr/my_list_of_applications_with_vi_keybindings/][the big list of vim like software]]
- https://github.com/jlevy/the-art-of-command-line
- https://github.com/herrbischoff/awesome-command-line-apps
- https://github.com/luongvo209/Awesome-Linux-Software
- https://wiki.archlinux.org/index.php/List_of_applications
- https://ambrevar.xyz/power-apps/
- https://enchiridion.red/2019/1/18/desktop-apps/