#+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 | |------------+-------------------| | == | 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 = ** =mu= - Index Emails #+begin_src bash sudo apt install maildir-utils #+end_src This looks for contacts in all indexed emails. =mu cfind = * =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 | | =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 |