literate-dotfiles/readme.org
2019-01-31 09:41:03 +01:00

1934 lines
53 KiB
Org Mode

#+TITLE: Dotfiles - Manjaro Linux on Macbook Pro
#+SETUPFILE: https://fniessen.github.io/org-html-themes/setup/theme-readtheorg.setup
* Ressources
** Dotfiles
- https://github.com/LukeSmithxyz/voidrice
- https://github.com/wincent/wincent
- https://github.com/korolr/dotfiles
- https://github.com/Shougo/shougo-s-github
** 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/
** Macbook Pro
- https://medium.com/@philpl/arch-linux-running-on-my-macbook-2ea525ebefe3
- https://lobotuerto.com/blog/how-to-setup-manjaro-linux-i3-on-a-macbook-pro/
- https://mchladek.me/post/arch-mbp/
- https://0xadada.pub/2016/03/05/install-encrypted-arch-linux-on-apple-macbook-pro/
- https://loicpefferkorn.net/2015/01/arch-linux-sur-macbook-pro-retina-2014-avec-dm-crypt-lvm-et-hibernation/
** Ricing
- https://www.reddit.com/r/unixporn/comments/8monwi/i3gapspolybar_my_first_attempt_at_ricing/
** Others
- Font Art: http://www.patorjk.com/software/taag/#p=display&f=ANSI%20Shadow&t=config
- https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA
** TODO to read
http://www.howardism.org/Technical/Emacs/literate-devops.html
* Package Manager: yay
https://github.com/Jguer/yay
** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
sudo pacman -S yay
#+END_SRC
** CheatSheet
| Command | Usage |
|---------------------------------+-----------------------------|
| =yay -Ss <package>= | Search |
| =yay -S <package>= | Install |
| =yay -Si <package>= | Get informations |
| =yay -Rs <package>= | Uninstall |
| =yay -Yc <package>= | Clean unneeded dependencies |
| =yay -Syu --devel --timeupdate= | Perform system upgrade |
* Git Setup
https://git-scm.com/
** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S git
#+END_SRC
** Configuration
- =~/.gitconfig=
- =~/.gitignore_global=
** Diff-So-Fancy
https://github.com/so-fancy/diff-so-fancy
*** Installation
#+begin_src bash
yay -S diff-so-fancy
#+end_src
*** Configuration
#+begin_src bash
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
#+end_src
** TODO Github interface - Hub
*** Installation
#+begin_src bash
yay -S hub
#+end_src
** Credential Helper setup with Pass
This is explained in a further part: [[*Integration with Git][Integration of Pass with Git]].
* TODO [#A] Dotfile Manager: yadm
https://github.com/TheLocehiliosan/yadm
** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S yadm-git
#+END_SRC
** TODO [#A] Managing Yadm with Magit on Emacs
https://github.com/TheLocehiliosan/yadm/blob/09a018ea5a081923a8d39f5f0bb02b138284230a/yadm.md
** TODO [#A] Switch from YADM to litterate dotfiles
SCHEDULED: <2019-01-07 lun.>
* Terminal
https://github.com/thestinger/termite
** Termite
*** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S termite
#+END_SRC
*** Configuration
- =~/.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 |
** TODO [#C] Unicode Rxvt
*** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S rxvt-unicode
#+END_SRC
*** Configuration
Most of Urxvt configuration is done in =~/.Xresources=
* TODO [#B] Shell: Bash
https://wiki.archlinux.org/index.php/Bash
** Bash Completion
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S bash-completion
#+END_SRC
** TODO [#B] Configuration
- =~/.bashrc=
- =~/.bash_profile=
- =~/.config/bash/=
- =~/.profile=
* TODO [#B] Terminal Multiplexer: Tmux
https://github.com/tmux/tmux
** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S tmux
#+END_SRC
** Session Manager - Tmuxinator
https://github.com/tmuxinator/tmuxinator
*** Installation
#+BEGIN_SRC bash
yay -S tmuxinator
#+END_SRC
*** Special sessions
Sessions are created using =tmuxinator new session_name= and edited using =tmuxinator edit session_name=.
*** Mux: run terminal and tmux session
=~/bin/mux=
To open a terminal and run tmux session automatically, run =mux <session-name>=.
This is used with rofi.
** TODO [#A] Multiple Tmux configuration
- one with no line for neomutt
- one complete for coding
** TODO [#B] Configuration: theme
https://github.com/seebi/tmux-colors-solarized
** TODO [#A] To check
- 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
** TODO [#B] Cheatsheet
| Command | Usage |
|---------+-------|
| | |
* TODO [#C] Fonts
** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S ttf-inconsolata nerd-font-complete ttf-linux-libertine
#+END_SRC
** TODO [#C] Default fonts
SauceCodePro Nerd Font Mono
Maybe use:
- Monospace Font: Inconsolata
- Serif Font: Libertine
- Sans Font: Linux Biolinum
** Nice fonts
- https://github.com/be5invis/Iosevka
** Emojis
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S ttf-emojione
#+END_SRC
** Cheatsheet
| Command | Usage |
|-----------+--------------------------|
| =fc-list= | List all fonts available |
* Text Editors
** Neovim
https://github.com/neovim/neovim
*** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S neovim
#+END_SRC
*** Configuration
[[file:.vim/readme.org]]
*** Vim Anywhere with i3
https://github.com/cknadler/vim-anywhere
#+BEGIN_SRC bash
yay -S vim-anywhere-git
#+END_SRC
Then, add the following to the i3 config: =bindsym $mod+t exec vim-anywhere nvim termite=
*** Matlab Setup
https://github.com/daeyun/vim-matlab/
*** Ressources
- https://thoughtbot.com/upcase/dive-into-neovim
- https://github.com/liuchengxu/vim-better-default
- https://github.com/liuchengxu/space-vim
** Emacs
https://www.gnu.org/software/emacs/
*** Installation
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S emacs
#+END_SRC
*** TODO Emacs Client/Server - I removed the systemd service to just run it with i3 startup
Add a systemd service to automatically run Emacs deamon in the background on startup:
=~/.config/systemd/user/emacs.service=
Then run:
#+BEGIN_SRC bash
systemctl enable --user emacs
systemctl start --user emacs
#+END_SRC
In order to open the emacs client: =emacsclient -create-frame --alternate-editor=""=
Then, add a shortcut to i3 config to open an emacsclient.
*** Configuration
[[file:~/.spacemacs.d/spacemacs.org][file:~/.spacemacs.d/spacemacs.org]]
*** SpellCheck with Aspell
#+BEGIN_SRC bash :tangle ~/dotfiles-install.sh
yay -S aspell aspell-en aspell-fr
#+END_SRC
* SSH setup
** Generating a new SSH key
#+BEGIN_SRC bash
ssh-keygen -t rsa -b 4096 -C "dehaeze.thomas@gmail.com"
#+END_SRC
** Start the ssh-agent in the background
#+BEGIN_SRC bash
eval "$(ssh-agent -s)"
#+END_SRC
** Add the SSH key to the ssh-agent
#+BEGIN_SRC bash
ssh-add ~/.ssh/id_rsa
#+END_SRC
* GnuPG
https://gnupg.org/
** Install the gnupg package:
#+BEGIN_SRC bash
yay -S gnupg
#+END_SRC
** Create a key pair
#+BEGIN_SRC bash
gpg --full-gen-key
#+END_SRC
** Configure the gpg-agent to cache the passphrase
Edit the following file =~/.gnupg/gpg-agent.conf=
#+BEGIN_SRC
max-cache-ttl 60480000
default-cache-ttl 60480000
#+END_SRC
* Password Manager: Pass
https://www.passwordstore.org/
** Install the pass package
#+BEGIN_SRC bash
yay -S pass
#+END_SRC
** TODO Connect the GPG key
** Initialize the password store as a git repository
#+BEGIN_SRC bash
pass git init
pass git remote add origin https://github.com/tdehaeze/pass.git
#+END_SRC
** Gui Manager
https://github.com/IJHack/qtpass
#+BEGIN_SRC bash
yay -S qtpass
#+END_SRC
** IOs app
https://github.com/mssun/passforios
** Integration with Rofi
https://github.com/carnager/rofi-pass
*** Installation
#+BEGIN_SRC bash
yay -S rofi-pass
#+END_SRC
Then we can add a shortcut to =rofi-pass= on i3 config.
** 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
yay -S pass-git-helper
#+END_SRC
*** 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
[github.com*]
target=github.com/tdehaeze
#+END_SRC
Then, add the credential helper on the git configuration file =~/.gitconfig= and add the default username for the repositories adresses.
#+BEGIN_SRC
[credential]
helper = !pass-git-helper $@
[credential "https://github.com"]
username = tdehaeze
#+END_SRC
** 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
yaourt -S buku
#+END_SRC
** Integration with Rofi
https://github.com/carnager/buku_run
*** Installation
#+BEGIN_SRC bash
wget https://raw.githubusercontent.com/carnager/buku_run/master/buku_run -o ~/bin/buku_run
chmod +x ~/bin/buku_run
#+END_SRC
*** Configuration
The configuration file is here: =~/.config/buku_run/config=
*** Key binding with i3
Custom key binding in i3 config file =~/.i3/config=:
#+BEGIN_SRC
bindsym $mod+Shift+f exec --no-startup-id buku_run
#+END_SRC
** 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
cd ~/.local/share/buku/bookmarks.db
git init
#+END_SRC
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
systemctl start --user bukugit.timer
systemctl enable --user bukugit.timer
#+END_SRC
** 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 =127.0.0.1:5001=.
** 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 |
** TODO Alternatives
- https://github.com/RadhiFadlillah/shiori
- https://karl-voit.at/2014/08/10/bookmarks-with-orgmode/
* TODO Browser: qutebrowser
https://github.com/qutebrowser/qutebrowser
** Installation
#+BEGIN_SRC bash
yay -S qutebrowser
#+END_SRC
** View Pdf inside qutebrowser with pdfjs
*** Installation
#+BEGIN_SRC bash
yay -S pdfjs
#+END_SRC
*** 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 |
** TODO Make it default browser
** Integration with Pass: the password manager
Add the key-binding on =~/.config/qutebrowser/config.py=
#+BEGIN_SRC
config.bind('<Ctrl-p>', 'spawn --userscript password_fill')
#+END_SRC
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.
** TODO Integration with Buku
Custom key binding in =~/.config/qutebrowser/config.py=
#+BEGIN_SRC
# Add current page to Buku (Bookmark Manager)
config.bind('B', 'spawn buku -a {url}')
#+END_SRC
*** TODO Add an option to specify title, modify url? add tags?
** TODO Save Bookmarks to Emacs Org Mode
https://www.reddit.com/r/emacs/comments/9ze1ln/capture_orgmode_bookmarks_from_qutebrowser_with/
** TODO Cast youtube to chromecast
** 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
** TODO Adblocker
https://github.com/qutebrowser/qutebrowser/issues/29
https://github.com/StevenBlack/hosts
** TODO Ressources
- [[https://github.com/qutebrowser/qutebrowser/tree/master/misc/userscripts][Userscript]]
* Monitors
https://github.com/Ventto/mons
https://wiki.archlinux.org/index.php/Xrandr
gui: https://christian.amsuess.com/tools/arandr/
** TODO cscreen script
* Music Setup
** Sound Server - Pulse Audio
https://wiki.archlinux.org/index.php/PulseAudio
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
*** Installation
#+BEGIN_SRC bash
yay -S mpd
#+END_SRC
*** Automatic Startup
#+BEGIN_SRC bash
systemctl start --user mpd.service
systemctl enable --user mpd.service
#+END_SRC
*** 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 |
** TODO Audio Server with Spotify - Mopidy
https://github.com/mopidy/mopidy
https://medium.com/@theos.space/using-mopidy-with-spotify-and-ncmpcpp-44352f4a2ce8
** MPD Client - ncmpcpp
https://wiki.archlinux.org/index.php/Ncmpcpp
*** Installation
#+BEGIN_SRC bash
yay -S ncmpcpp
#+END_SRC
*** 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
*** Configuration
Configuration folder: =~/.config/beets/=
*** Cheatsheet
| Command | Usage |
|------------------------+-------------------------------|
| =beet import <folder>= | Import folder to Music folder |
* TODO [#C] Movies
** Media Player - MPV
*** Installation
#+BEGIN_SRC bash
yay -S mpv
#+END_SRC
*** Key Bindings
The configuration is set in =/.config/mpv/input.conf=.
*** TODO CheatSheet
| Command | Usage |
|---------+-------|
** TODO Chromecast with CATT
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 |
*** TODO Cast from qutebrowser on youtube
This is explained here: [[*Chromecast integration][Chromecast integration]].
** TODO Popcorn Time or similar
** TODO [#C] Movie Collection Manager - Filebot
https://github.com/filebot/filebot
*This is paid software, I should uninstall it and find alternative*
*** Installation
#+BEGIN_SRC bash
yay -S bilebot
#+END_SRC
When runing =filebot=, if you obtain the following error:
=/usr/bin/filebot: line 22: /usr/lib/jvm/java-8-openjdk/bin/java: No such file or directory=.
You can simlink the java binary:
#+BEGIN_SRC bash
sudo ln -s /usr/lib/jvm/java-8-openjdk/jre/bin/java /usr/lib/jvm/java-8-openjdk/bin/java
#+END_SRC
*** Usage
*** Configuration
Configuration folder: =~/.config/filebot/=
*** Documentation
https://www.filebot.net/cli.html
*** TODO Alternative
https://github.com/Sonarr/Sonarr
https://github.com/Radarr/Radarr
https://github.com/tinyMediaManager/tinyMediaManager
** Subtitle Manager
*** subdl
** TODO Youtube
https://github.com/mps-youtube/mps-youtube
* TODO [#A] Contact Manager
https://wiki.archlinux.org/index.php/mutt#Contact_management
https://gitlab.com/goobook/goobook
https://github.com/hensmith/ppl
https://github.com/scheibler/khard
http://abook.sourceforge.net/
** GooBook - Contacts from Google
*** Installation
#+BEGIN_SRC bash
yay -S goobook-git
#+END_SRC
And Then
#+BEGIN_SRC bash
goobook authenticate
#+END_SRC
*** Usage
#+BEGIN_SRC bash
goobook query name
#+END_SRC
** TODO lbdb
*** Installation
#+BEGIN_SRC bash
yay -S lbdb
#+END_SRC
** TODO Use Vdirsyncer for contact synchronization
** TODO Mu
This looks for contacts in your emails.
=mu cfind <name>=
** TODO Integration with Mutt
* TODO Chat Application
** Gui Chat Application - Franz
https://github.com/meetfranz/franz
*** Installation
Download the AppImage and run it.
** Weechat
https://weechat.org/files/doc/stable/weechat_user.en.html
Installation
#+begin_src bash
yay -S weechat
#+end_src
Then we install some dependencies
#+begin_src bash
yay -S tcl lua ruby
#+end_src
Enable mouse support:
#+begin_src text
/mouse enable
#+end_src
*** TODO Theme
https://www.bfoliver.com/technology/2017/07/15/weechat/
https://alexjj.com/blog/2016/9/setting-up-weechat/
/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
*** TODO Configuration
https://hugo.md/post/the-perfect-weechat-setup-2/
https://robots.thoughtbot.com/weechat-for-slacks-irc-gateway
Use the command =/fset=
*** CheatSheet
| Command | Usage |
|----------+------------------|
| =Ctlr-N= | Next channel |
| =Ctlr-P= | Previous channel |
| =Esc-n= | Toggle nicklist |
*** Slack Integration
https://github.com/wee-slack/wee-slack
Dependency:
#+begin_src bash
yay -S python2-websocket-client
#+end_src
** TODO Terminal Based - Slack-Term
https://github.com/erroneousboat/slack-term
*** Installation
** TODO Using Emacs
* Redshift
http://jonls.dk/redshift/
** Installation
#+BEGIN_SRC bash
yay -S redshift
#+END_SRC
* TODO [#A] Mail Setup
** Synchronize Mailboxes - Mbsync
http://isync.sourceforge.net/
https://wiki.archlinux.org/index.php/Isync
*** Installation
#+BEGIN_SRC bash
yay -S isync
#+END_SRC
*** TODO Configuration
=~/.mbsyncrc=
*** Automation using systemd
**** Retreive New mails
- =~/scripts/checkmail.sh=
- =~/.config/systemd/user/checkmail.service=
- =~/.config/systemd/user/checkmail.timer=
#+BEGIN_SRC bash
systemctl --user enable checkmail.timer
systemctl --user start checkmail.timer
#+END_SRC
**** Synchronize all the mailboxes
- =~/.config/systemd/user/syncmail.service=
- =~/.config/systemd/user/syncmail.timer=
#+BEGIN_SRC bash
systemctl --user enable syncmail.timer
systemctl --user start syncmail.timer
#+END_SRC
**** Alternative
https://github.com/rlue/little_red_flag
*** Documentation
https://bostonenginerd.com/posts/notmuch-of-a-mail-setup-part-1-mbsync-msmtp-and-systemd/
https://bostonenginerd.com/posts/notmuch-of-a-mail-setup-part-2-notmuch-and-emacs/
** Send Mails - Msmtp
https://marlam.de/msmtp/
*** Installation
#+BEGIN_SRC bash
yay -S msmtp
#+END_SRC
** Mail Indexer - Notmuch
https://notmuchmail.org/
https://wiki.archlinux.org/index.php/Notmuch
*** Installation
#+BEGIN_SRC bash
yay -S notmuch
#+END_SRC
*** Configuration
Configuration file: =~/.notmuch-config=
*** Cheatsheet
| Command | Usage |
|-----------------+---------------------------------------------|
| =notmuch setup= | Initial Setup |
| =notmuch new= | Incorporate new email into notmuch database |
** TODO [#B] Mail Index, Search and Tagging - Mu
https://github.com/djcb/mu
** TODO [#A] Mail Client - NeoMutt
https://github.com/neomutt/neomutt
*** Installation
#+BEGIN_SRC bash
yay -S neomutt
#+END_SRC
*** TODO Vim Bindings
Unding toutes les touches (https://github.com/iagox86/mutt/blob/master/keybindings.conf) et rebind tout pour faire un truc coherent et documenté
Rajouter les keybindings de vim https://github.com/neomutt/neomutt/issues/56#issuecomment-250780838
*** TODO Mailcap configuration
*** Display html mails
#+BEGIN_SRC bash
yay -S w3m
#+END_SRC
*** Open PDF from mail
=~/scripts/openfile.sh=
*** TODO [#B] Integrate with contact manager
*** TODO Integration with org-mode
https://www.donarmstrong.com/posts/org_mode_mutt_capture/
https://upsilon.cc/~zack/blog/posts/2010/02/integrating_Mutt_with_Org-mode/
*** TODO Send HTML mails using Markdown
https://unix.stackexchange.com/questions/108485/send-email-written-in-markdown-using-mutt/424162
https://github.com/Roguelazer/muttdown
*** Attachments
**** Attach multiple files at once
First, tag the files you want to send using =t=, then =;= to apply the action on all tagged files and finally =<enter>= to add them all
**** TODO Add attachment using GUI file manager
**** Cheatsheet
| Command | Usage |
|---------+---------------|
| =<spc>= | Open the file |
*** Open Url from mail
#+BEGIN_SRC bash
yay -S urlview
#+END_SRC
*** TODO View emails while composing
https://wiki.archlinux.org/index.php/Mutt#Display_another_email_while_composing
*** TODO Searching mails with notmuch
https://github.com/tsto/notmuchfs
*** TODO Cheatsheet
| Command | Usage |
|---------+-------|
| | |
*** TODO Integration with calendar application
http://jasonwryan.com/blog/2014/04/05/calendar/
https://gist.github.com/guiniol/5109c5bd953af950e0530b720507d704
=~/scripts/printics.sh=
*** 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
** TODO [#C] Mu4e
** TODO [#C] Notification system
A script (=~/scripts/checkmail.sh=) is used to retreive new mails and use =notify=send= is there are new received mails.
* TODO [#A] File Manager
** TODO [#A] Ranger
https://github.com/ranger/ranger
*** Installation
#+BEGIN_SRC bash
yay -S ranger
#+END_SRC
*** 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.
*** TODO [#B] Cheatsheet
| Command | Usage |
|---------+-------------------------|
| =X= | Extract archive |
| =Z= | Compress file or folder |
** TODO nnn
https://github.com/jarun/nnn
https://www.youtube.com/watch?v=U2n5aGqou9E
*** Installation
#+BEGIN_SRC bash
yay -S nnn
#+END_SRC
** TODO [#C] GUI File Manager: pcmanfm
https://wiki.archlinux.org/index.php/PCManFM
* TODO [#B] Image viewer
** TODO Write a script to open any type of image using the corresponding program
| Filetype | png | pdf | svg |
|----------+-----+---------+---------|
| Program | feh | zathura | inkview |
** Feh - Minimal Image Viewer
https://feh.finalrewind.org/
*** Installation
#+BEGIN_SRC bash
yay -S feh
#+END_SRC
*** Cheatsheet
| Command | Usage |
|---------+----------------|
| =f= | Fullscreen |
| =m= | Show menu |
| =spc= | next image |
| =bspc= | previous image |
| =w= | Fit image |
** TODO Vimiv
https://github.com/karlch/vimiv
*** Installation
#+BEGIN_SRC bash
yay -S vimiv
#+END_SRC
*** TODO Cheatsheet
http://karlch.github.io/vimiv/docs/keybindings_commands#keybinding-cheatsheet
| Command | Usage |
|---------+-------|
** TODO sxiv
https://github.com/muennich/sxiv
https://www.youtube.com/watch?v=GYW9i_u5PYs
*** Installation
#+BEGIN_SRC bash
yay -S sxiv
#+END_SRC
* TODO [#B] Windows Manager - i3
** TODO Installation
#+BEGIN_SRC bash
yay -S i3-gaps
#+END_SRC
** TODO Packages to install/understand
artwork-i3
i3-wallpapers
** TODO Configuration
=~/.i3/config=
** TODO [#C] Specific config per workspace
https://github.com/i3/i3/blob/next/contrib/per-workspace-layout.pl
For instance, default to tabbed windows for workspace dealing with matlab figures.
*** Figures / Matlab
** TODO [#C] Scratchpad
This mode is activated using =cmd-s=.
| Command | Usage |
|---------+------------------------|
| =p= | Music Player - ncmpcpp |
| =m= | Mail Reader - neomutt |
| =c= | Calculator - insect |
To close the current Scratchpad, use =cmd-bsp=
** TODO [#B] CheatSheet
| Command | Usage |
|---------+-------|
* TODO [#B] Custom bar - Polybar
https://polybar.github.io/
** Installation
#+BEGIN_SRC bash
yay -S polybar
#+END_SRC
** TODO [#C] Configuration
=~/.config/polybar/config=
Polybar is launched automatically from i3 config.
** TODO [#B] Add custom modules
- [ ] show passwords
- [ ] show bibliography
- [ ] show bookmarks
- [ ] switch theme (dark/light)
- [ ] suspend, restart, hibernate, lock
** Display unread emails
Let's say we want to display unread emails, and when clicking on that we open our mail client.
#+BEGIN_SRC
[module/unread_mail]
type = custom/script
label-font = 2
format-underline = ${colors.background}
click-left = termite -e "tmuxinator start neomutt" &
format = <label>
exec = ~/.config/polybar/scripts/unread_mails.sh
interval = 1
#+END_SRC
A custom script =~/.config/polybar/scripts/unread_mails.sh= is just returning the unread emails.
** TODO [#C] Create multiple bars
https://www.reddit.com/r/unixporn/comments/92guq6/i3polybar_animated_polybar_drop_down_menus/?utm_name=u_tdehaeze
** TODO [#C] Add Conky to polybar
* TODO [#C] Compositor - Compton
https://wiki.archlinux.org/index.php/Compton
https://github.com/chjj/compton
** Installation
#+begin_src bash
yay -S compton
#+end_src
** TODO [#B] Configuration
=~/.config/compton.conf=
** GUI Configuration
To install:
#+begin_src bash
yay -S compton-conf
#+end_src
Then run =compton-conf=
** Automatic run as daemon
Compton is run from i3 config in the background (=-b= option)
#+BEGIN_SRC bash
exec --no-startup-id compton -b
#+END_SRC
* TODO [#C] Notification Manager - Dunst
https://github.com/dunst-project/dunst
https://wiki.archlinux.org/index.php/Dunst
** Installation
#+BEGIN_SRC bash
yay -S dunst
#+END_SRC
** Configuration
=~/.config/dunst/dunstrc=
** TODO [#C] Special notifications
- [ ] Mails
- [ ] New messages on slack
** TODO [#C] How to merge similar notifications like new mails?
* Office Suite - LibreOffice
#+begin_src bash
yay -S libreoffice-fresh
#+end_src
* SpreadSheet - SC-IM
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
yay -S lxappearance
#+END_SRC
*** Icons and themes
#+BEGIN_SRC bash
yay -S zukitwo-themes faenza-icon-theme
#+END_SRC
** QT Themes
Run ~qt5ct~ to manage QT Themes.
** XFT Themes
Some configuration are located in =~/.Xresources=.
* Launcher - Rofi
https://github.com/DaveDavenport/rofi
** Installation
#+BEGIN_SRC bash
yay -S rofi
#+END_SRC
** Setup rofi as a dmenu replacement
Setup rofi as a dmenu replacement in =~/.i3/config=:
#+BEGIN_SRC
bindsym $mod+d exec --no-startup-id rofi -show run
#+END_SRC
** 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
export SUDO_ASKPASS=~/bin/askpass-rofi
#+END_SRC
The =askpass= script is:
#+BEGIN_SRC bash
#!/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
* TODO [#A] Advanced config
** TODO [#A] Deactivate startup mac sound
#+BEGIN_SRC bash
sudo nvram SystemAudioVolume=%80
#+END_SRC
** TODO [#B] Webcam
https://github.com/patjak/bcwc_pcie/wiki/Get-Started
Explain how this is working now
** TODO [#C] Trackpad
The configuration is here: =/etc/X11/xorg.conf.d/30-touchpad.conf=
** TODO [#A] Startup programs
Should I use i3 or systemd for that?
https://www.reddit.com/r/linux/comments/132gle/eli5_the_systemd_vs_initupstart_controversy/
** TODO [#C] Printer
https://wiki.archlinux.org/index.php/CUPS
http://localhost:631/
=system-config-printer=
*** TODO How to store pin number for the printer?
*** TODO CheatSheet
| Command | Usage |
|---------+-------|
** TODO [#C] Kernel Management
https://wiki.manjaro.org/index.php/Manjaro_Kernels
*** TODO Cheatsheet
| Command | Usage |
|-------------------+--------------------------------|
| =mhwd-kernel -li= | Determine which kernel is used |
| == | Change current kernel |
** TODO [#C] Power Consumption
https://wiki.manjaro.org/index.php?title=Power_Savings
** TODO [#C] Power Management Tool: TLP and Powertop
https://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html#commands
https://wiki.archlinux.org/index.php/Powertop
Alternative: pm-utils
** TODO [#A] Suspend / Hibernate
https://bbs.archlinux.org/viewtopic.php?id=215091
https://loicpefferkorn.net/2015/01/arch-linux-sur-macbook-pro-retina-2014-avec-dm-crypt-lvm-et-hibernation/
https://0xadada.pub/2016/03/05/install-encrypted-arch-linux-on-apple-macbook-pro/#configuring-wireless
https://medium.com/@tigersoldier/macbook-pro-2015-with-arch-linux-4f8d3a2c0de5
To work around this problem, disable the driver before suspend: =sudo rmmod brcmfmac=
On wake up, re-enable the driver: =sudo modprobe brcmfmac=
*** Current behavior
Actually, it seems that the first suspend is working. After that the macbook go out of the suspend after few seconds
** TODO [#A] Lid open/close
Should automatic show lock screen
=/etc/systemd/logind.conf=
** TODO [#B] Mount devices
- udiskie - Mount and unmount disks (https://github.com/coldfix/udiskie)
https://wiki.archlinux.org/index.php/Udisks
https://wiki.archlinux.org/index.php/USB_storage_devices
https://wiki.manjaro.org/index.php?title=ExFAT_file_system
AUR package: bash mount
** TODO [#C] NAS Synology
*** Script to mount and umount
https://blog.whabash.com/posts/mounting_synology_nas_shared_folder_nfs_ubuntu_16_10
=~/bin/nas=
*** TODO Automatic Backup of folders?
AUR package: synology backup
*** TODO Automatic Mount of NAS folder
https://wiki.archlinux.org/index.php/NFS
https://hoarding.me/rclone-scripts/
https://blog.whabash.com/posts/mounting_synology_nas_shared_folder_nfs_ubuntu_16_10
*** TODO [#A] Install beets on the nas?
** TODO [#C] Format disks
https://gparted.org/
=sudo gparted= to format disks ()
** TODO [#B] Bluetooth
Bluetooth: Gui: https://github.com/blueman-project/blueman
*** TODO Bluetooth mouse MX Anywhere
https://blog.onee3.org/2016/09/how-to-get-logitech-mx-anywhere-2-to-work-with-ubuntu/
*** TODO Bluetooth headset
** TODO [#B] Wifi
https://0xadada.pub/2016/03/05/install-encrypted-arch-linux-on-apple-macbook-pro/#ref:note:1
** TODO [#B] Temperature and Fan control
https://github.com/dgraziotin/mbpfan
https://0xadada.pub/2016/03/05/install-encrypted-arch-linux-on-apple-macbook-pro/#fine-tuning
Fan are controlled by mbpfan. The config file is =/etc/mbpfan.conf=
#+BEGIN_SRC bash
# Enable Automated Power Regulation
sudo pacman -S tlp
sudo systemctl enable tlp
sudo systemctl enable tlp-sleep
sudo tlp start
# Enable thermald (overheat shutoff)
yaourt -S thermald
sudo systemctl enable thermald
sudo systemctl start thermald
#+END_SRC
** TODO [#B] Refind / Grub
https://github.com/EvanPurkhiser/rEFInd-minimal
https://www.pclosmag.com/html/Issues/200709/page07.html
*** TODO Switch from Refind to Grub
https://www.reddit.com/r/archlinux/comments/a2euuz/switching_from_refind_to_grub/?utm_name=u_tdehaeze
** TODO [#B] Lock Screen
https://github.com/pavanjadhaw/betterlockscreen
*** Installation
#+begin_src bash
yay -S betterlockscreen
#+end_src
* TODO [#C] LaTeX
** Installation
#+BEGIN_SRC bash
yay -S texlive-most
#+END_SRC
Biber support for the bibliography:
#+BEGIN_SRC bash
yay -S biber
#+END_SRC
Support for source code using minted:
#+BEGIN_SRC bash
yay -S minted
#+END_SRC
** 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.
** TODO [#C] From screenshot to latex math formula
https://mathpix.com/
*** Installation
#+BEGIN_SRC bash
yay -S mathpix-snipping-tool
#+END_SRC
*** Usage
First, you have to run =mathpix-snipping-tool=. That will add something in the tray.
Then, use =<ctrl><alt>m= and then select a part of the screen to convert that area to latex formula.
*** TODO [#C] Think of a better way to run that program. Maybe disable the tray icon and add some polybar script that automatically run the program, and ask for selection of the screen.
** TODO [#B] Custom script to select latex symbol
https://github.com/superluserdo/Latex-picker
Maybe use that script for other things?
** Awesome LaTeX
[[file:awesome/latex.org][file:~/.config/dotfiles/awesome/latex.org]]
* Mathematical Software
** Insect
https://github.com/sharkdp/insect
*** Installation
#+BEGIN_SRC bash
yay -S insect
#+END_SRC
*** Usage
| Command | Usage |
|-----------------+--------------|
| =3 m/s to km/h= | Convert Unit |
** Matlab
https://wiki.archlinux.org/index.php/MATLAB#Installation
*** Installation
#+BEGIN_SRC bash
yay -S matlab
#+END_SRC
** SageMath
http://www.sagemath.org/
https://wiki.archlinux.org/index.php/SageMath
*** Installation
#+BEGIN_SRC bash
yay -S sagemath
#+END_SRC
*** 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
* TODO [#A] Cloud Backup / Sync - Rclone
https://github.com/ncw/rclone
https://rclone.org/docs/
gui: https://martins.ninja/RcloneBrowser/
Rclone is used to manage the online drives like Google Drive and Dropbox.
** Installation
#+BEGIN_SRC bash
yay -S rclone
#+END_SRC
** Cheatsheet
| Command | Usage |
|-------------------------------------+------------------------------------------------------------|
| =rclone config= | Configuration |
| =rclone listremotes= | List configured remotes |
| =rclone about= | Informations about the remote |
| =rclone copy= | Copy files from source to dest |
| =rclone sync= | Make source and dest identical, modifying destination only |
| =rclone check= | Check if the files in the source and destination match |
| =rclone ls= | List all the objects in the path |
| =rclone size= | Return the total size and number of objects in remote:path |
| =rclone cleanup= | Clean up the remote if possible |
** Usefull commands
| Command | Usage |
|---------------------------------------------------------+-----------------------------------------------|
| =rclone sync ~/gdrive/ gdrive:/ -P= | Make Google Drive files to same as local ones |
| =rclone copy gdrive:/directory/ ~/gdrive/directory/ -P= | Copy directory from Google Drive to local |
| =rclone lsf gdrive:/ --max-depth 1= | List files and directory |
*** Progress bar for long synchronizations
Use =--progress --stats-one-line=.
* Download Manager
** TODO CLI Download Manager - Aria2
*** Installation
#+BEGIN_SRC bash
yay -S aria2
#+END_SRC
*** Usage
** TODO Torrent Client - deluge
https://github.com/deluge-torrent/deluge
https://wiki.archlinux.org/index.php/Deluge
*** Installation
#+BEGIN_SRC bash
yay -S deluge
#+END_SRC
*** 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=.
*** GUI Client
=deluge=
*** Alternatives
https://github.com/rakshasa/rtorrent
https://webtorrent.io/
** TODO CLI Torrent Client - btpd
https://github.com/btpd/btpd
** TODO Youtube-dl
#+begin_src bash
yay -S youtube-dl
#+end_src
*** 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
*** Download playlist
* TODO [#A] Default Applications
https://wiki.archlinux.org/index.php/Default_applications
https://www.guyrutenberg.com/2018/01/20/set-default-application-using-xdg-mime/
** Mailcap file
** TODO [#A] XDG-OPEN
=~/.config/mimeapps.list=
** TODO Make QuteBrowser the default browser
* TODO Desktop files
=~/.local/share/applications/=
* TODO Bibliography Management
- https://github.com/JabRef/jabref
- https://github.com/t-wissmann/rofi-bibbrowser
** TODO Biblatex
http://www.gerd-neugebauer.de/software/TeX/BibTool/en/
** Papis
https://github.com/papis/papis
*** Installation
#+BEGIN_SRC bash
sudo pip3 install papis
#+END_SRC
* TODO [#A] Calendar
** TODO Vdirsyncer - Sync calendars
*** Installation
#+BEGIN_SRC bash
yay -S vdirsyncer
#+END_SRC
#+BEGIN_SRC bash
sudo pip install requests-oauthlib
#+END_SRC
*** Cheatsheet
| Command | Usage |
|-------------------+-------------|
| =vdirsyncer sync= | Synchronize |
*** Automation - Systemd
http://vdirsyncer.pimutils.org/en/stable/tutorials/systemd-timer.html?highlight=systemd
#+BEGIN_SRC bash
systemctl --user enable vdirsyncer.timer
systemctl --user start vdirsyncer.timer
#+END_SRC
To check the status of the service:
#+BEGIN_SRC bash
systemctl --user status vdirsyncer.service
#+END_SRC
** TODO Calendar Client - Khal
https://github.com/pimutils/khal
*** Installation
#+BEGIN_SRC bash
yay -S khal
#+END_SRC
*** TODO Cheatsheet
| Command | Usage |
|---------+-------|
** TODO Calendar Client - Calcurse
https://www.calcurse.org/
https://github.com/lfos/calcurse
*** Installation
#+BEGIN_SRC bash
yay -S calcurse
#+END_SRC
** TODO gcalcli
https://github.com/insanum/gcalcli
* TODO Presentation software
** Beamer
** Org Mode
https://orgmode.org/worg/exporters/beamer/tutorial.html
** Presentation setup on computer
** PowerPoint Viewer
** 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
*** 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
* TODO RSS Reader
GUI:
- http://www.rssowl.org/
- https://github.com/jangernert/FeedReader
With Emacs:
- http://pragmaticemacs.com/emacs/read-your-rss-feeds-in-emacs-with-elfeed/
** Newboat
https://github.com/newsboat/newsboat
https://wiki.archlinux.org/index.php/Newsboat
*** Installation
#+BEGIN_SRC bash
yay -S newboat
#+END_SRC
*** Configuration
https://newsboat.org/releases/2.12/docs/newsboat.html
=~/.newsboat/=
*** TODO Automatic Retrival of Feeds
Make a systemd service.
*** TODO Add reddit personnal RSS
https://www.reddit.com/prefs/feeds/
*** CheatSheet
https://newsboat.org/releases/2.12/docs/newsboat.html#available-operations
| Command | Usage |
|---------+-------|
* TODO Task Manager
** OrgMode and Emacs
** Wunderlist
https://itsfoss.com/linux-client-wunderlist/
*** Wunderline
http://wayneashleyberry.github.io/wunderline/
**** Installation
#+begin_src bash
yay -S wunderline
#+end_src
**** Cheatsheet
=wunderline list=
* 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
yay -S zathura
#+END_SRC
Then add dependecies to view specific files:
#+BEGIN_SRC bash
yay -S zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb
#+END_SRC
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 |
* TODO Theme manager
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
BASE16_SHELL="$HOME/.base16-manager/chriskempson/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
#+END_SRC
- [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
** TODO Theme script
=~/bin/theme=
** TODO Base16
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
# Base16 Shell
BASE16_SHELL="$HOME/.config/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
#+END_SRC
*** Base16-manager
https://github.com/AuditeMarlow/base16-manager
This help changes many applications colors at once.
* TODO Graphical Editor
- GIMP
- http://dia-installer.de/
- https://inkscape.org/
- https://krita.org/en/features/highlights/
- Tikz
* TODO [#B] System monitor: conky
https://github.com/brndnmtthws/conky
https://wiki.archlinux.org/index.php/Conky
Integration with polybar:
- https://www.reddit.com/r/unixporn/comments/92guq6/i3polybar_animated_polybar_drop_down_menus/
- https://github.com/ntcarlson/dotfiles
* TODO Bugs
** TODO Why the cursor is turning when on the background image?
* TODO Games on Linux
https://www.protondb.com/
https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561
* TODO VPN Setup
** NordVPN
https://aur.archlinux.org/packages/nordvpn-bin/
https://wiki.archlinux.org/index.php/NordVPN
*** Installation
#+begin_src bash
yay -S nordvpn-bin
#+end_src
*** Configuration
#+begin_src bash
sudo systemctl enable nordvpnd.service
sudo systemctl start nordvpnd.service
#+end_src
*** Usage
| Command | Usage |
|---------------------------+-------|
| =nordvpn login= | |
| =nordvpn connect country= | |
| =nordvpn disconnect= | |
| =nordvpn status= | |
| =nordvpn countries= | |
*** TODO Integration with Polybar
** TODO Maybe use NordVPM with openVPN Instead?
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
* TODO Usefull commands
** 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
- [[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/chubin/wttr.in - weather in terminal
- https://github.com/michael-lazar/rtv
- trans =yay -S translate-shell=
- awk https://linuxhandbook.com/awk-command-tutorial/
- install the software to convert image to latex code => create script to take screenshot and automatically export latex
- https://github.com/rupa/z
- https://github.com/nvbn/thefuck
- bash-sensible
- Also check at the end of this readme
- awman - Arch Wiki man pages - Arch wiki offline
- https://www.tecmint.com/linux-commands-cheat-sheet/
|-----------------------------------+-------------------------------------------|
| Command | Description |
|-----------------------------------+-------------------------------------------|
| =glances= | Moniteur d'activité |
| =meteo= | Get the meteo |
| =sudo cputhrottle PID %PROC= | Limiter l'accès au proc pour un processus |
| =asciinema= | Reccord you terminal |
| =nmap -sP “192.168.1.*"= | Check all ip addresses on local netword |
| =ncdu= | See what takes place on the disk |
| =rsync -a --progress source dest= | Copy folders with stats |
| =du -sh folder= | Return the size of the folder |
| =df -h= | Report disk usage |
|-----------------------------------+-------------------------------------------|
* TODO Custom scripts
** TODO [#A] Password completion with fzf
Make a script to use FZF for autocompletion of password (with pass program) and then send to current line or copy.
Maybe use tmux pane for that.
* TODO Bash Snippets
** For loop
#+BEGIN_SRC bash
for file in ./*; do
command ${file};
done
#+END_SRC