977 lines
26 KiB
Org Mode
977 lines
26 KiB
Org Mode
#+TITLE: Installation
|
|
#+SETUPFILE: ./setup/org-setup-file.org
|
|
|
|
* TODO [#A] Issues to handle
|
|
|
|
* =git= - Version Control System
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install git
|
|
#+end_src
|
|
|
|
[[file:git.org][Git]] Configuration:
|
|
- =~/.gitconfig=
|
|
- =~/.gitignore_global=
|
|
|
|
* =alacritty= - Terminal
|
|
[[https://github.com/alacritty/alacritty][Alacritty]] is a very nice keyboard-centric terminal.
|
|
|
|
It can be installed like so:
|
|
#+begin_src bash
|
|
sudo add-apt-repository ppa:aslatter/ppa
|
|
sudo apt install alacritty
|
|
#+end_src
|
|
|
|
Its configuration file is described [[file:alacritty.org][here]].
|
|
|
|
#+caption: =alacritty= - 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 += | increase font size |
|
|
| =ctrl -= | decrease font size |
|
|
|
|
* =bash= - Shell
|
|
https://wiki.archlinux.org/index.php/Bash
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install bash bash-completion zsh
|
|
#+end_src
|
|
|
|
[[file:bash.org][Bash]] configuration:
|
|
- =~/.bashrc=
|
|
- =~/.bash_profile=
|
|
- =~/.config/bash/=
|
|
- =~/.profile=
|
|
|
|
* =tmux= - Terminal Multiplexer
|
|
https://github.com/tmux/tmux
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install tmux
|
|
#+end_src
|
|
|
|
[[file:tmux.org][TMUX]] configuration
|
|
|
|
Ressources:
|
|
- 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
|
|
|
|
#+caption: =tmux= - Cheatsheet
|
|
| Command | Usage |
|
|
|----------------+-------------------------------|
|
|
| =ctrl-spc= | Prefix |
|
|
| =c= | New pane |
|
|
| =/=, =-= | Split Vertically/Horizontally |
|
|
| =s= | Change session |
|
|
| =p=, =n= | Previous/Next Pane |
|
|
| =ctrl-h,j,k,l= | Move between windows |
|
|
|
|
* Fonts
|
|
My font of choice is =nerd-fonts-hack= which can be installed as so:
|
|
#+begin_src bash
|
|
git clone --depth 1 https://github.com/ryanoasis/nerd-fonts
|
|
cd nerd-fonts
|
|
./install.sh Hack
|
|
#+end_src
|
|
|
|
For emojis, use:
|
|
#+begin_src bash
|
|
sudo apt install fonts-noto-color-emoji
|
|
#+end_src
|
|
|
|
Default font used:
|
|
|
|
- Monospace Font: =Hack Nerd Font Mono=
|
|
- Serif Font: =Hack Nerd Font=
|
|
- Sans Font: =Hack Nerd Font=
|
|
|
|
To list all fonts available:
|
|
#+begin_src bash
|
|
fc-list
|
|
#+end_src
|
|
|
|
* TODO Syncthing
|
|
https://leandeep.com/installer-syncthing-sur-ubuntu-20.04/
|
|
|
|
* =emacs= and =vim= - Text Editors
|
|
** Neovim
|
|
I use [[https://github.com/neovim/neovim][Neovim]] for all the small edits.
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install neovim
|
|
#+end_src
|
|
|
|
The Neovim configuration can be found [[file:vim.org][here]].
|
|
|
|
Simlink the Vim config to Neovim:
|
|
#+begin_src bash
|
|
mkdir ~/.config/nvim
|
|
ln -s ~/.vimrc ~/.config/nvim/init.vim
|
|
#+end_src
|
|
|
|
Then install the plugin manager [[https://github.com/junegunn/vim-plug][plug]]:
|
|
#+begin_src bash
|
|
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
|
#+end_src
|
|
|
|
And to install/setup all the plugins:
|
|
#+begin_src bash
|
|
nvim +PlugInstall
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
nvim +UpdateRemotePlugins
|
|
#+end_src
|
|
|
|
** Emacs
|
|
I use [[https://www.gnu.org/software/emacs/][Emacs]] and the [[https://github.com/hlissner/doom-emacs][Doom]] framework.
|
|
|
|
Install Emacs:
|
|
#+begin_src bash
|
|
sudo snap install emacs --edge --classic
|
|
#+end_src
|
|
|
|
And then the Doom framework:
|
|
#+begin_src bash
|
|
git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
~/.emacs.d/bin/doom install
|
|
#+end_src
|
|
|
|
The Emacs configuration can be found [[./doom.org][here]].
|
|
|
|
SpellCheck with Aspell:
|
|
#+begin_src bash
|
|
sudo apt install aspell aspell-en aspell-fr
|
|
#+end_src
|
|
|
|
* SSH setup
|
|
Generate 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
|
|
sudo apt install gnupg
|
|
#+end_src
|
|
|
|
Create a key pair:
|
|
#+begin_src bash
|
|
gpg --full-gen-key
|
|
#+end_src
|
|
|
|
To configure the =gpg-agent= to cache the passphrase, edit the following file =~/.gnupg/gpg-agent.conf=:
|
|
#+begin_src conf
|
|
default-cache-ttl 60480000
|
|
max-cache-ttl 60480000
|
|
#+end_src
|
|
|
|
Install =Gnome-Keyring= to automatically unlock the GnuPG keys:
|
|
#+begin_src bash
|
|
sudo apt install gnome-keyring
|
|
#+end_src
|
|
|
|
* =rofi= - Application Launcher
|
|
[[https://github.com/DaveDavenport/rofi][Rofi]] is a very nice alternative to [[https://tools.suckless.org/dmenu/][dmenu]].
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install dmenu rofi
|
|
#+end_src
|
|
|
|
To be able to run sudo commands with =rofi= ([[https://github.com/DaveDavenport/rofi/issues/584#issuecomment-384555551][github issue]]), the command =sudo -A= can be used: it opens 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=~/.local/bin/askpass-rofi
|
|
#+end_src
|
|
|
|
The =askpass-rofi= script is:
|
|
#+begin_src bash
|
|
#!/bin/sh
|
|
|
|
rofi -dmenu \
|
|
-password \
|
|
-no-fixed-num-lines \
|
|
-p "$(printf "$1" | sed s/://)"
|
|
#+end_src
|
|
|
|
* =pass= - Password Manager
|
|
https://www.passwordstore.org/
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install pass
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
git clone https://git.tdehaeze.xyz/tdehaeze/pass.git ~/.password-store
|
|
#+end_src
|
|
|
|
Gui Manager: [[https://github.com/IJHack/qtpass][qtpass]]
|
|
#+begin_src bash
|
|
sudo apt install qtpass
|
|
#+end_src
|
|
|
|
Integration with Rofi: [[https://github.com/carnager/rofi-pass][rofi-pass]]
|
|
#+begin_src bash
|
|
cd ~/.local/soft/
|
|
git clone https://github.com/carnager/rofi-pass
|
|
cd rofi-pass
|
|
sudo make install
|
|
#+end_src
|
|
Then we can add a shortcut to =rofi-pass= on i3 config.
|
|
|
|
Integration with Git: [[https://github.com/languitar/pass-git-helper][pass-git-helper]]
|
|
#+begin_src bash
|
|
sudo apt install pass-git-helper
|
|
#+end_src
|
|
|
|
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"=
|
|
|
|
** Alternative - Bitwarden
|
|
Bitwarden https://github.com/bitwarden/cli
|
|
#+begin_src bash
|
|
yay -Ss bitwarden-bin bitwarden-cli-bin
|
|
#+end_src
|
|
|
|
* =qutebrowser= - Browser
|
|
https://github.com/qutebrowser/qutebrowser
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
mkdir ~/.local/soft
|
|
cd ~/.local/soft
|
|
git clone https://github.com/qutebrowser/qutebrowser.git
|
|
cd qutebrowser
|
|
sudo apt install --no-install-recommends git ca-certificates python3 python3-venv asciidoc libglib2.0-0 libgl1 libfontconfig1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-xfixes0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libdbus-1-3 libyaml-dev gcc python3-dev libnss3
|
|
python3 scripts/mkvenv.py
|
|
#+end_src
|
|
|
|
Then it can be launched using [[file:binaries-private.org::#qutebrowser][file:~/.config/literate-dotfiles/binaries-private.org::#qutebrowser]]
|
|
#+begin_src bash
|
|
~/.local/soft/qutebrowser/.venv/bin/python3 -m qutebrowser
|
|
#+end_src
|
|
|
|
And upgraded with:
|
|
#+begin_src bash
|
|
cd ~/.local/soft/qutebrowser/
|
|
mkvenv.py --update
|
|
#+end_src
|
|
|
|
** View Pdf inside qutebrowser with pdfjs
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install pdf.js-common
|
|
#+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 |
|
|
|
|
** 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 Spell Checking
|
|
#+begin_src bash
|
|
./scripts/dictcli.py install fr-FR
|
|
./scripts/dictcli.py install en-US
|
|
#+end_src
|
|
|
|
** =firefox=
|
|
#+begin_src bash
|
|
sudo apt install firefox
|
|
#+end_src
|
|
|
|
Addons:
|
|
- [[https://addons.mozilla.org/fr/firefox/addon/ublock-origin/][uBlock Origin]]
|
|
- [[https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/][Adblock Plus]]
|
|
- [[https://addons.mozilla.org/fr/firefox/addon/bukubrow/][Bukurow]]
|
|
- [[https://addons.mozilla.org/fr/firefox/addon/i-dont-care-about-cookies/][I don't care about cookies]]
|
|
|
|
* =xrandr= - Monitor Manager
|
|
#+begin_src bash
|
|
sudo apt install arandr
|
|
#+end_src
|
|
|
|
[[https://wiki.archlinux.org/index.php/Xrandr][Xrandr]] is used in shell scripts ([[https://github.com/Ventto/mons][mons]] could be used as a layer on top of Xrandr).
|
|
[[https://christian.amsuess.com/tools/arandr/][Arandr]] is a GUI application to manage monitors.
|
|
|
|
* Music Setup
|
|
** =pulseaudio= - Sound Server
|
|
https://wiki.archlinux.org/index.php/PulseAudio
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install pulseaudio pulseaudio-module-bluetooth
|
|
#+end_src
|
|
|
|
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/
|
|
|
|
** =pavucontrol= - Sound Manager
|
|
=pavucontrol= is used as a sound manager:
|
|
|
|
#+begin_src bash
|
|
sudo apt install pavucontrol
|
|
#+end_src
|
|
|
|
** =mopidy= - Audio Server
|
|
https://github.com/mopidy/mopidy
|
|
https://medium.com/@theos.space/using-mopidy-with-spotify-and-ncmpcpp-44352f4a2ce8
|
|
|
|
#+begin_src bash
|
|
sudo apt install mopidy
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
sudo apt install python3-pip
|
|
python3 -m pip install --use mopidy-jellyfin
|
|
#+end_src
|
|
|
|
To update local files:
|
|
#+begin_src bash
|
|
mopidy local scan
|
|
#+end_src
|
|
|
|
If mopidy is used, MPD should be disabled. (=systemctl disable --user mpd.service=)
|
|
|
|
** =ncmpcpp= - MPD Client
|
|
https://wiki.archlinux.org/index.php/Ncmpcpp
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install ncmpcpp
|
|
#+end_src
|
|
|
|
The main config is located here: =~/.ncmpcpp/config=.
|
|
The key bindings can be configured here: =~/.ncmpcpp/bindings=.
|
|
|
|
* Movies
|
|
** =mpv= - Media Player
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install mpv
|
|
#+end_src
|
|
|
|
The configuration is set in =/.config/mpv/input.conf=.
|
|
|
|
* Contact Manager
|
|
** =khard= - Google Conctacts
|
|
https://github.com/scheibler/khard
|
|
|
|
#+begin_src bash
|
|
yay -Ss khard
|
|
#+end_src
|
|
|
|
This is the command line interface for contact management.
|
|
|
|
Contact synchronization:
|
|
Vdirsyncer is used for contact synchronization with Google.
|
|
|
|
To search with Khard: =khard <conctact-name>=
|
|
|
|
** =mu= - Index Emails
|
|
#+begin_src bash
|
|
sudo apt install maildir-utils
|
|
#+end_src
|
|
|
|
This looks for contacts in all indexed emails.
|
|
=mu cfind <name>=
|
|
|
|
* =redshift=
|
|
http://jonls.dk/redshift/
|
|
|
|
#+begin_src bash
|
|
sudo apt install redshift
|
|
#+end_src
|
|
|
|
* Mail Setup
|
|
[[file:mail.org][Link]] to the mail setup.
|
|
|
|
** =mbsync= - Synchronize Mailboxes
|
|
http://isync.sourceforge.net/
|
|
https://wiki.archlinux.org/index.php/Isync
|
|
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install isync
|
|
#+end_src
|
|
|
|
*** Configuration
|
|
=~/.mbsyncrc=
|
|
|
|
*** Automation using systemd
|
|
**** Retreive New mails
|
|
- =checkmail=
|
|
- =~/.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
|
|
|
|
** =msmtp= - Send Mails
|
|
https://marlam.de/msmtp/
|
|
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install msmtp
|
|
#+end_src
|
|
|
|
** =mu= - Mail Index, Search and Tagging
|
|
https://github.com/djcb/mu
|
|
|
|
** =neomutt= - Mail Client
|
|
https://github.com/neomutt/neomutt
|
|
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install neomutt
|
|
#+end_src
|
|
|
|
*** Display html mails
|
|
#+begin_src bash
|
|
sudo apt install w3m
|
|
#+end_src
|
|
|
|
*** Open Url from mail
|
|
#+begin_src bash
|
|
sudo apt install urlview
|
|
#+end_src
|
|
|
|
*** Ressources
|
|
- http://therandymon.com/woodnotes/mutt/using-mutt.html
|
|
- https://ankursinha.in/2017/12/16/transitioning-to-neomutt-and-friends-for-e-mail.html
|
|
- https://github.com/LukeSmithxyz/mutt-wizard
|
|
|
|
** Notification system
|
|
A script (=checkmail=) is used to retreive new mails and use =notify=send= is there are new received mails.
|
|
|
|
* =ranger=/=pcmanfm= - File Manager
|
|
Configuration files:
|
|
- GUI: [[file:pcmanfm.org][Pcmanfm]]
|
|
- Terminal based: [[file:ranger.org][Ranger]]
|
|
|
|
** Ranger
|
|
https://github.com/ranger/ranger
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install 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.
|
|
|
|
** GUI File Manager: pcmanfm
|
|
https://wiki.archlinux.org/index.php/PCManFM
|
|
|
|
* =sxiv= - Image viewer
|
|
https://github.com/muennich/sxiv
|
|
https://www.youtube.com/watch?v=GYW9i_u5PYs
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
sudo apt install sxiv
|
|
#+end_src
|
|
|
|
** Open Gif
|
|
#+begin_src bash
|
|
sxiv -a file.gif
|
|
#+end_src
|
|
|
|
** Cheatsheet
|
|
| Command | Usage |
|
|
|--------------+--------------------------|
|
|
| =-t= | Start in Thumbmail mode |
|
|
| =f= | Toggle fullscreen |
|
|
| =Return= | Switch to thumbmail mode |
|
|
| =<=, =>= | Rotate the image |
|
|
| =\vert=, =_= | Flip the image |
|
|
| =n=, =p= | Next, Previous image |
|
|
|
|
* =sxhkd= - HotKey Manager
|
|
#+begin_src bash
|
|
sudo apt install sxhkd
|
|
#+end_src
|
|
|
|
Configuration file: [[file:sxhkd.org][SXHKD]].
|
|
|
|
* =i3= - Windows Manager
|
|
[[file:i3.org][Link]] to the documentation
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
sudo add-apt-repository -y ppa:regolith-linux/stable
|
|
sudo apt install i3-gaps
|
|
#+end_src
|
|
|
|
** Configuration
|
|
=~/.i3/config=
|
|
|
|
* =polybar= - Top Bar
|
|
https://polybar.github.io/
|
|
|
|
[[file:polybar.org][Link]] to the documentation.
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
cd ~/.local/soft
|
|
git clone https://github.com/jaagr/polybar.git
|
|
cd polybar
|
|
# Install necessary
|
|
sudo apt install build-essential git cmake cmake-data pkg-config python3-sphinx python3-packaging libuv1-dev libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python3-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev
|
|
# Install optional
|
|
sudo apt install libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev i3-wm libjsoncpp-dev libmpdclient-dev libcurl4-openssl-dev libnl-genl-3-dev
|
|
./build.sh
|
|
#+end_src
|
|
|
|
* =picom= - Compositor
|
|
https://wiki.archlinux.org/index.php/Picom
|
|
|
|
[[file:compositor.org][Link]] to the documentation.
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
sudo apt install picom
|
|
#+end_src
|
|
|
|
** Configuration
|
|
=~/.config/picom/picom.conf=
|
|
|
|
** Automatic run as daemon
|
|
Compton is run from =.xprofile= config in the background:
|
|
#+begin_src bash
|
|
picom --daemon
|
|
#+end_src
|
|
|
|
* =dunst= - Notification Manager
|
|
https://github.com/dunst-project/dunst
|
|
https://wiki.archlinux.org/index.php/Dunst
|
|
|
|
** Installation
|
|
#+begin_src bash
|
|
sudo apt install dunst notify-send
|
|
#+end_src
|
|
|
|
** Configuration
|
|
=~/.config/dunst/dunstrc=
|
|
|
|
** Usage
|
|
#+begin_src bash
|
|
notify-send "AppName" "Message"
|
|
#+end_src
|
|
|
|
The number =--replace= can be used with an ID to merge notifications from the
|
|
same application for instance.
|
|
|
|
* LaTeX
|
|
Installation
|
|
#+begin_src bash
|
|
sudo apt install texlive-full
|
|
#+end_src
|
|
|
|
Every custom class or packages can be put under =~/.local/share/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.
|
|
|
|
* Mathematical Software
|
|
** Insect
|
|
https://github.com/sharkdp/insect
|
|
|
|
Installation
|
|
#+begin_src bash
|
|
sudo apt install insect
|
|
#+end_src
|
|
|
|
| Command | Usage |
|
|
|-----------------+--------------|
|
|
| =3 m/s to km/h= | Convert Unit |
|
|
|
|
** Matlab
|
|
https://wiki.archlinux.org/index.php/MATLAB#Installation
|
|
|
|
[[file:matlab.org][Link]] to the configuration.
|
|
|
|
Installation
|
|
#+begin_src bash
|
|
sudo apt install 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
|
|
sudo apt install sagemath
|
|
#+end_src
|
|
|
|
Run =sage -n jupyter= to run jupyter notebooks
|
|
|
|
** Python and Jupyter-notebook
|
|
|
|
* Calendar
|
|
[[file:calendar-contact.org][Link]] to configuration
|
|
|
|
** =vdirsyncer= - Sync calendars
|
|
https://github.com/pimutils/vdirsyncer
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install vdirsyncer python-requests-oauthlib-doc
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
sudo pip install requests-oauthlib
|
|
#+end_src
|
|
|
|
| Command | Usage |
|
|
|-------------------+-------------|
|
|
| =vdirsyncer sync= | Synchronize |
|
|
|
|
Setup the =google_calendar=:
|
|
#+begin_src bash
|
|
vdirsyncer discover radicale_calendar
|
|
#+end_src
|
|
|
|
And start the =systemd= timer that automatically synchronize the calendars;
|
|
#+begin_src bash
|
|
systemctl --user enable --now vdirsyncer.timer
|
|
#+end_src
|
|
|
|
To check the status of the service:
|
|
#+begin_src bash
|
|
systemctl --user status vdirsyncer.service
|
|
#+end_src
|
|
|
|
** =khal= - Calendar Client
|
|
https://github.com/pimutils/khal
|
|
|
|
Installation:
|
|
#+begin_src bash
|
|
sudo apt install khal
|
|
#+end_src
|
|
|
|
Import ICS files:
|
|
#+begin_src bash
|
|
khal import even.ics
|
|
#+end_src
|
|
|
|
* =zathura= - PDF Reader
|
|
https://pwmt.org/projects/zathura/
|
|
** Installation
|
|
#+begin_src bash
|
|
sudo apt install zathura
|
|
#+end_src
|
|
|
|
Then add dependecies to view specific files:
|
|
#+begin_src bash
|
|
sudo apt install zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb
|
|
#+end_src
|
|
|
|
** Configuration
|
|
=~/.config/zathura/zathurarc=
|
|
|
|
** Cheatsheet
|
|
| Command | Usage |
|
|
|---------+----------------------------|
|
|
| =p= | Print the current pdf |
|
|
| =tab= | Show the outline |
|
|
| =r= | Reload |
|
|
| =J/K= | Next/previous page |
|
|
| =H/L= | Zoom in/out |
|
|
| =a= | Fit height |
|
|
| =s= | Fit width |
|
|
| =D= | Double page |
|
|
| =f= | Follow link |
|
|
| =i= | Night Mode |
|
|
| =<n>gg= | Go to page n |
|
|
| =mm= | Mark current location to m |
|
|
| ='m= | Goto location m |
|
|
|
|
** Multi-monitor pdf presentation - pdfpc
|
|
https://github.com/pdfpc/pdfpc
|
|
|
|
pdfpc is a great tool for showing pdf presentations. It support:
|
|
- screen splitting
|
|
- support for videos in pdf presentations
|
|
- support for notes
|
|
- support for annotations
|
|
|
|
*** Installation
|
|
#+begin_src bash
|
|
sudo apt install pdfpc
|
|
#+end_src
|
|
|
|
*** Video support
|
|
#+begin_src bash
|
|
sudo apt install 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
|
|
|
|
* Display Manager
|
|
Before, I was using =lightDM=, but a single tty is enough.
|
|
|
|
However, to make tools like Anydesk or Teamviewer to work:
|
|
Add "type=x11" in =/etc/pam.d/system-login=:
|
|
#+begin_src conf
|
|
-session optional pam_systemd.so type=x11
|
|
#+end_src
|
|
|
|
- When executing =loginctl session-status | grep Service= X11 should appear as initialized.
|
|
- =echo $XDG_SESSION_TYPE= should show =x11= instead of =tty= now
|
|
|
|
* =inkscape= - Graphical Editor
|
|
- https://inkscape.org/
|
|
- Tikz
|
|
|
|
#+begin_src bash
|
|
sudo add-apt-repository ppa:inkscape.dev/stable
|
|
sudo apt update
|
|
sudo apt install inkscape
|
|
#+end_src
|
|
|
|
* TODO =wireguard= - VPN
|
|
#+begin_src bash
|
|
sudo apt install wireguard-tools
|
|
#+end_src
|
|
|
|
* Others
|
|
** Things to install
|
|
#+begin_src bash
|
|
sudo apt install xwallpaper mpc mpv maim
|
|
sudo apt install freerdp2-x11 xsel xclip xdotool
|
|
sudo apt install unclutter xautolock redshift
|
|
sudo apt install atool unrar p7zip
|
|
#+end_src
|
|
|
|
Diff so fancy
|
|
#+begin_src bash
|
|
sudo add-apt-repository ppa:aos1/diff-so-fancy
|
|
sudo apt-get update
|
|
sudo apt install diff-so-fancy
|
|
#+end_src
|
|
|
|
#+begin_src bash
|
|
cd ~/.local/bin
|
|
wget https://raw.githubusercontent.com/carnager/rofi-pass/master/rofi-pass
|
|
chmod +x rofi-pass
|
|
#+end_src
|
|
|
|
For image preview in =ranger=:
|
|
#+begin_src bash
|
|
sudo pip3 install ueberzug
|
|
#+end_src
|
|
|
|
** =maim=/=flameshot= - Take Screenshots
|
|
- https://github.com/naelstrof/maim
|
|
- https://github.com/lupoDharkael/flameshot
|
|
|
|
#+begin_src bash
|
|
sudo apt install maim flameshot
|
|
#+end_src
|
|
|
|
** Find Files
|
|
|
|
#+begin_src bash
|
|
sudo apt install fd-find ripgrep fzf
|
|
#+end_src
|
|
|
|
** PDF/Image Utilities
|
|
- https://github.com/dawbarton/pdf2svg
|
|
- https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
|
|
- https://github.com/Airblader/unclutter-xfixes
|
|
|
|
#+begin_src bash
|
|
sudo apt install pdf2svg pdftk unclutter pdfarranger imagemagick
|
|
#+end_src
|
|
|
|
** Trash
|
|
=trash-cli= is used to manage the trash.
|
|
It is integrated with =ranger= and =pcmanFM=.
|
|
|
|
#+begin_src bash
|
|
sudo apt install trash-cli
|
|
#+end_src
|
|
|
|
** Nice other programs
|
|
- https://github.com/leonwind/cli2cloud
|
|
- Gnu Make alternative https://github.com/taskctl/taskctl
|
|
|
|
* Printer
|
|
https://wiki.archlinux.org/index.php/CUPS
|
|
Web based administration: http://localhost:631/
|
|
|
|
To install the ESRF printer:
|
|
#+begin_src bash
|
|
lpadmin -p ctb127c1u -v ipp://cups.esrf.fr/printers/ctb127c1u -E
|
|
#+end_src
|
|
=system-config-printer=
|
|
|
|
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
|
|
|
|
Print a file
|
|
#+begin_src bash
|
|
lpr -P printer_name filename.pdf
|
|
#+end_src
|
|
|
|
List available printers
|
|
#+begin_src bash
|
|
lpstat -a
|
|
#+end_src
|
|
|
|
Stats about the printer
|
|
#+begin_src bash
|
|
lpstat -p printer_name
|
|
#+end_src
|
|
|
|
* List of all the install programs
|
|
** Mutt
|
|
| =neomutt= | Teaching an Old Dog New Tricks |
|
|
| =msmtp= | SMTP client that can be used as an SMTP plugin for Mutt |
|
|
| =isync= | Synchronize a maildir with an IMAP server |
|
|
| =vdirsyncer= | Synchronize calendars and contacts |
|
|
| =abook= | Address book with mutt support |
|
|
| =urlview= | URL extractor/launcher |
|
|
| =w3m= | Pager/text based browser |
|
|
| =lynx= | Text mode web browser |
|
|
| =lbdb= | Little brother's database for the mutt mail reader |
|
|
| =mu= | Tool for searching e-mail messages stored in the maildir-format |
|
|
| =ripmime= | Extract attachments out of MIME encoded email packages |
|
|
| =shared= | mime-info - Database of common MIME types |
|
|
|
|
** File Management
|
|
| =grep= | GNU grep, egrep and fgrep |
|
|
| =pdfgrep= | Search PDFs for strings matching a regular expression |
|
|
| =the_platinum_searcher= | Multi-platform code-search similar to ack and ag |
|
|
| =the_silver_searcher= | Code-search similar to ack |
|
|
| =fdupes= | Identify or delete duplicate files |
|
|
| =findutils= | Collection of GNU find, xargs, and locate |
|
|
| =ranger= | File browser |
|
|
| =vifm= | Ncurses based file manager with vi like keybindings |
|
|
| =tree= | Display directories as trees (with optional color/HTML output) |
|
|
| =p7zip= | 7-Zip (high compression file archiver) implementation |
|
|
| =unrar= | Extract, view, and test RAR archives |
|
|
| =atool= =zip= | script for managing file archives of various types |
|
|
|
|
** File Downloader
|
|
| =wget= | Internet file retriever |
|
|
| =htop= | Improved top (interactive process viewer) |
|
|
| =httpie= | User-friendly cURL replacement (command-line HTTP client) |
|
|
| =curl= | Get a file from an HTTP, HTTPS or FTP server |
|
|
|
|
** Utils
|
|
| =binutils= | GNU Binary Utilities |
|
|
| =coreutils= | GNU File, Shell, and Text utilities |
|
|
| =gnome= | doc-utils - Documentation utilities for the GNOME project |
|
|
| =moreutils= | Collection of tools that nobody wrote when UNIX was young |
|
|
|
|
** A trier
|
|
| =asciinema= | Terminal session recorder |
|
|
| =automake= | tool for automatically generating Makefile |
|
|
| =cmake= | Cross-platform make |
|
|
| =cputhrottle= | Limit the CPU usage of a process |
|
|
| =ctags= | Reimplementation of ctags |
|
|
| =gdb= | GNU debugger |
|
|
| =ghostscript= | Interpreter for PostScript and PDF |
|
|
| =go= | Open source programming language to build simple/reliable/efficient software |
|
|
| =hugo= | Configurable static site generator |
|
|
| =markdown= | Text-to-HTML conversion tool |
|
|
| =pandoc= | Swiss-army knife of markup format conversion |
|
|
| =uni= | Query the Unicode database from the commandline |
|