#+TITLE: Dotfiles - Manjaro Linux on Macbook Pro :DRAWER: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: :END: * 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/ - https://enchiridion.red/2019/1/18/desktop-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 sudo pacman -S yay #+END_SRC ** CheatSheet | Command | Usage | |---------------------+-----------------------------| | =yay= | Perform system upgrade | | =yay -Ss = | Search | | =yay -S = | Install | | =yay -Si = | Get informations | | =yay -Rs = | Uninstall | | =yay -Yc = | Clean unneeded dependencies | * Git Setup https://git-scm.com/ ** Installation #+BEGIN_SRC bash yay -S git #+END_SRC ** Configuration [[file:dotfiles/git.org][dotfiles/git.org]] - =~/.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 ** 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 yay -S termite #+END_SRC *** Configuration [[file:dotfiles/termite.org][termite.org]] - =~/.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 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 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 yay -S tmux #+END_SRC ** Configuration After configuration is generated. #+begin_src bash tmux source-file ~/.tmux.conf #+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 =. 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 yay -S ttf-inconsolata nerd-fonts-complete ttf-linux-libertine ttf-emojione #+END_SRC ** TODO [#C] Default fonts SauceCodePro Nerd Font Mono Maybe use: - Monospace Font: Inconsolata - Serif Font: Libertine - Sans Font: Linux Biolinum ** Cheatsheet | Command | Usage | |-----------+--------------------------| | =fc-list= | List all fonts available | * Text Editors ** Neovim https://github.com/neovim/neovim *** Installation #+BEGIN_SRC bash 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 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 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 * 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 * Password Manager: Pass https://www.passwordstore.org/ ** Install the pass package #+BEGIN_SRC bash yay -S pass #+END_SRC ** 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 ** 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. *** Alternative https://github.com/ibizaman/pass-clip #+begin_src bash yay -S pass-clip #+end_src ** 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 yay -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 | |------------+-------------------| | == | 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(',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 = | 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 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 = ** TODO Integration with Mutt * TODO Chat Application ** 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/ #+begin_src conf /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 #+end_src *** TODO Configuration 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 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 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= 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 | Command | Usage | |-----------+------------------| | =Ctlr-N= | Next channel | | =Ctlr-P= | Previous channel | | =Esc-n= | Toggle nicklist | | =alt-ent= | New line | *** Slack Integration https://github.com/wee-slack/wee-slack Dependency: #+begin_src bash yay -S python2-websocket-client #+end_src ** 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 == to add them all **** TODO Add attachment using GUI file manager **** Cheatsheet | Command | Usage | |---------+---------------| | == | 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 [#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 ** 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= ** TODO 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=. * TODO [#A] Advanced config ** TODO [#C] Printer https://wiki.archlinux.org/index.php/CUPS Web based administration: http://localhost:631/ =system-config-printer= *** Check and Clear the Queue Check the queue #+begin_src bash lpq lpq -a # on all queues #+end_src Clear the queue #+begin_src bash lprm # remove last entry only lprm - # remove all entries #+end_src *** 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] 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] Format disks https://gparted.org/ =sudo gparted= to format disks () ** TODO [#B] Bluetooth Bluetooth: Gui: https://github.com/blueman-project/blueman ** TODO [#B] Temperature and Fan control https://github.com/dgraziotin/mbpfan 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] 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 =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 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]]. ** 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 | | =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/timvisee/ffsend][ffsend]] - 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 | |-----------------------------------+-------------------------------------------| ** 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 | * 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