#+TITLE: Installation #+SETUPFILE: ./setup/org-setup-file.org * =paru= - Package Manager Installation: #+begin_src bash mkdir ~/.local/soft && cd ~/.local/soft sudo pacman -S --needed base-devel git clone https://aur.archlinux.org/paru.git cd paru makepkg -si #+end_src After that, the =paru= folder may be removed. * =git= - Version Control System Installation: #+begin_src bash paru -S 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 paru -S 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 paru -S 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 paru -S 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 paru -S nerd-fonts-hack #+end_src For emojis, use: #+begin_src bash paru -S noto-fonts-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 To select fonts using a GUI, =gtk2fontsel= can be used: #+begin_src bash paru -S gtk2fontsel #+end_src * =emacs= and =vim= - Text Editors ** Neovim I use [[https://github.com/neovim/neovim][Neovim]] for all the small edits. Installation: #+begin_src bash paru -S neovim nodejs-neovim python-pynvim #+end_src The Neovim configuration can be found [[file:vim.org][here]]. 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 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 paru -S emacs-nativecomp #+end_src And then the Doom framework: #+begin_src bash git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d ~/.emacs.d/bin/doom install #+end_src The Emacs configuration can be found [[./doom.org][here]]. SpellCheck with Aspell: #+begin_src bash paru -S 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 paru -S gnupg #+end_src Create a key pair: #+begin_src bash paru --full-gen-key #+end_src To configure the =gpg-agent= to cache the passphrase, edit the following file =~/.local/share/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 paru -S 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 paru -S dmenu rofi rofi-calc #+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= 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 paru -S pass #+end_src #+begin_src bash mkdir .config/pass #+end_src Initialize the password store as a git repository #+begin_src bash cd .config/pass pass git init pass git remote add origin https://github.com/tdehaeze/pass.git #+end_src Gui Manager: [[https://github.com/IJHack/qtpass][qtpass]] #+begin_src bash paru -S qtpass #+end_src Integration with Rofi: [[https://github.com/carnager/rofi-pass][rofi-pass]] #+begin_src bash paru -S rofi-pass #+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 paru -S 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 paru -Ss bitwarden-bin bitwarden-cli-bin #+end_src * =qutebrowser= - Browser https://github.com/qutebrowser/qutebrowser ** Installation #+begin_src bash paru -S qutebrowser python-adblock #+end_src ** View Pdf inside qutebrowser with pdfjs *** Installation #+begin_src bash paru -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 | ** 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. ** 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 * =firefox= #+begin_src bash paru -S firefox-developer-edition #+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]] In order to have passwords: #+begin_src bash paru -S passff-host #+end_src * =xrandr= - Monitor Manager #+begin_src bash paru -S xorg-xrandr 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 paru -S pulseaudio pulseaudio-alsa pulseaudio-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 paru -S 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 paru -S mopidy #+end_src #+begin_src bash python3 -m pip install --user mopidy-mpd mopidy-jellyfin mopidy-spotify #+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 paru -S 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 paru -S 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 paru -S 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 paru -S mu #+end_src This looks for contacts in all indexed emails. =mu cfind = * =redshift= http://jonls.dk/redshift/ #+begin_src bash paru -S redshift-minimal #+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 paru -S 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 paru -S msmtp #+end_src ** =mu= - Mail Index, Search and Tagging https://github.com/djcb/mu #+begin_src bash paru -S mu #+end_src #+begin_src bash mu init -m ~/.mail/ mu index #+end_src ** =neomutt= - Mail Client https://github.com/neomutt/neomutt *** Installation #+begin_src bash paru -S neomutt #+end_src *** Open Url from mail #+begin_src bash paru -S 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= and =pcmanfm= - File Manager Configuration files: - Terminal based: [[file:ranger.org][Ranger]] ** Ranger https://github.com/ranger/ranger *** Installation #+begin_src bash paru -S ranger #+end_src #+begin_src bash paru -S dragon-drop #+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 #+begin_src bash paru -S pcmanfm #+end_src * =sxiv= - Image viewer https://github.com/muennich/sxiv https://www.youtube.com/watch?v=GYW9i_u5PYs ** Installation #+begin_src bash paru -S 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 paru -S sxhkd #+end_src Configuration file: [[file:sxhkd.org][SXHKD]]. * =i3= - Windows Manager [[file:i3.org][Link]] to the documentation ** Installation #+begin_src bash paru -S 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 paru -S polybar #+end_src * =picom= - Compositor https://wiki.archlinux.org/index.php/Picom [[file:compositor.org][Link]] to the documentation. ** Installation #+begin_src bash paru -S 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 paru -S dunst #+end_src ** Configuration =~/.config/dunst/dunstrc= ** Usage #+begin_src bash dunstify --replace=16549 "AppName" "Message" #+end_src The number =--replace= can be used with an ID to merge notifications from the same application for instance. * Office Suite ** =libreoffice= #+begin_src bash paru -S libreoffice-fresh libreoffice-fresh-fr #+end_src ** only-office #+begin_src bash paru -S onlyoffice-bin #+end_src * =blueman= - Bluetooth Manager Bluetooth manager: https://github.com/blueman-project/blueman #+begin_src bash paru -S blueman #+end_src * =udiskie= - Automatically Mount devices udiskie - Mount and unmount disks (https://github.com/coldfix/udiskie) #+begin_src bash paru -S udiskie #+end_src Automatically run =udiskie= on startup. * LaTeX Installation #+begin_src bash paru -S texlive-most tllocalmgr-git #+end_src Biber support for the bibliography: #+begin_src bash paru -S biber #+end_src Support for source code using minted: #+begin_src bash paru -S minted #+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. * Matrix - Gomuks #+begin_src bash paru -S gomuks #+end_src * Syncthing #+begin_src bash paru -S syncthing #+end_src #+begin_src bash systemctl --user enable --now syncthing #+end_src * Gotify #+begin_src bash paru -S gotify-dunst-git #+end_src * Custom Systemd Services Tangle everything in the [[file:systemd.org][Systemd]] config file. Then enable and start all the services: #+begin_src bash systemctl --user enable --now homelab-tunnel systemctl --user enable --now esrf-tunnel systemctl --user enable --now syncthing systemctl --user enable --now vdirsyncer.timer systemctl --user enable --now syncmail.timer systemctl --user enable --now checkmail.timer #+end_src * Mathematical Software ** Insect https://github.com/sharkdp/insect Installation #+begin_src bash paru -S insect #+end_src | Command | Usage | |-----------------+--------------| | =3 m/s to km/h= | Convert Unit | ** Matlab [[file:matlab.org][Link]] to the configuration. Download Matlab here: https://fr.mathworks.com/downloads/ Unzip, and run =./install=. Then, choose the install directory to be =~/.local/soft/Matlab/R2019b=. 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]] or [[https://bbs.archlinux.org/viewtopic.php?id=231299][here]]. Also, there might be a problem with displaying multi-body models. In such case type =opengl('save', 'software')= (see [[https://fr.mathworks.com/matlabcentral/answers/342906-could-not-initialize-shared-resources-for-x11graphicsdevice][here]]). To install a new package, run =./install= in =~/.local/soft/Matlab_Install=. ** Python and Jupyter-notebook #+begin_src bash paru -S python ipython python-pip #+end_src * Download Manager ** =stig= #+begin_src bash paru -S stig #+end_src ** =youtube-dl= #+begin_src bash paru -S youtube-dl #+end_src * Default Applications https://wiki.archlinux.org/index.php/Default_applications https://www.guyrutenberg.com/2018/01/20/set-default-application-using-xdg-mime/ =~/.config/mimeapps.list= #+begin_src bash xdg-mime default qutebrowser.desktop x-scheme-handler/http xdg-mime default qutebrowser.desktop x-scheme-handler/https #+end_src * Desktop files [[file:applications.org][Desktop Applications]] =~/.local/share/applications/= * Calendar [[file:calendar-contact.org][Link]] to configuration ** =vdirsyncer= - Sync calendars https://github.com/pimutils/vdirsyncer Installation: #+begin_src bash paru -S vdirsyncer #+end_src | Command | Usage | |-------------------+-------------| | =vdirsyncer sync= | Synchronize | 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 paru -S 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 paru -S zathura #+end_src Then add dependecies to view specific files: #+begin_src bash paru -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 | ** 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 paru -S pdfpc #+end_src *** Video support #+begin_src bash paru -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 * =gtk=/=qt= - 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 paru -S lxappearance #+end_src *** Icons and themes #+begin_src bash paru -S zukitwo-themes faenza-icon-theme #+end_src #+begin_src bash paru -S arc-gtk-theme #+end_src ** QT Themes Run ~qt5ct~ to manage QT Themes. * =inkscape= - Graphical Editor - https://inkscape.org/ - Tikz #+begin_src bash paru -S inkscape #+end_src * Docker #+begin_src bash paru -S docker docker-compose #+end_src Add current user to =docker= group: #+begin_src bash sudo gpasswd -a thomas docker #+end_src * =wireguard= - VPN #+begin_src bash paru -S wireguard-tools #+end_src * =nordvpn= - VPN https://aur.archlinux.org/packages/nordvpn-bin/ https://wiki.archlinux.org/index.php/NordVPN #+begin_src bash sudo groupadd -r nordvpn sudo gpasswd -a $USER nordvpn #+end_src Installation: #+begin_src bash paru -S nordvpn-bin #+end_src Configuration: #+begin_src bash sudo systemctl enable --now nordvpnd.service #+end_src | Command | Usage | |---------------------------+-------| | =nordvpn login= | | | =nordvpn connect country= | | | =nordvpn disconnect= | | | =nordvpn status= | | | =nordvpn countries= | | * Others ** Useful utils #+begin_src bash paru -S sshfs poppler mpd xwallpaper sof-firmware usbutils xautolock atool unzip xsel man-db npm highlight-pointer-git xorg-xkill #+end_src ** ESRF related #+begin_src bash paru -S zoom #+end_src ** =maim=/=flameshot= - Take Screenshots - https://github.com/naelstrof/maim - https://github.com/lupoDharkael/flameshot #+begin_src bash paru -S maim flameshot #+end_src ** =screenkey= - Show pressed keys #+begin_src bash paru -S screenkey #+end_src ** =croc= - File transfer https://github.com/schollz/croc #+begin_src bash paru -S croc #+end_src ** Find Files #+begin_src bash paru -S fd 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 paru -S 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 paru -S trash-cli #+end_src ** Show information about the machine [[https://github.com/dylanaraps/neofetch][neofetch]] #+begin_src bash paru -S neofetch #+end_src ** Nice other programs - https://github.com/leonwind/cli2cloud - Gnu Make alternative https://github.com/taskctl/taskctl * Printer ** CUPS https://wiki.archlinux.org/index.php/CUPS #+begin_src bash paru -S cups #+end_src Web based administration: http://localhost:631/ =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 ** Network Lexmark #+begin_src matlab paru -S sane simple-scan lexmark-network-scan #+end_src * Kernel Management https://wiki.manjaro.org/index.php/Manjaro_Kernels | Command | Usage | |------------------------------------+---------------------------------------| | =mhwd-kernel -li= | Determine which kernel is used | | =sudo mhwd-kernel -i linux419= | Install new kernel | | =sudo mhwd-kernel -i linux419 rmc= | Install new kernel and remove old one | * Format disks https://gparted.org/ =sudo gparted= to format disks Using command line: - https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux * Theme #+begin_src bash paru -S arc-gtk-theme paru -S xcursor-breeze #+end_src * Useful commands ** 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 | ** Others | [[https://github.com/tldr-pages/tldr][tldr]] | Community-driven man pages | | [[https://github.com/chubin/wttr.in][wttr.in]] | weather in terminal | | [[https://github.com/michael-lazar/rtv][rtv]] | Reddit in terminal | | awk | https://linuxhandbook.com/awk-command-tutorial/ | | [[https://github.com/rupa/z][z]] | Jump around | | [[https://github.com/nvbn/thefuck][thefuck]] | Magnificent app which corrects your previous console command | | [[https://github.com/amanusk/s-tui/][s-tui]] | Terminal based CPU stress and monitoring utility | | [[https://github.com/nicolargo/glances][glances]] | A top/htop alternative | | [[https://github.com/asciinema/asciinema][asciinema]] | Reccord you terminal | | [[https://dev.yorhel.nl/ncdu][ncdu]] | See what takes place on the disk | | [[https://github.com/sharkdp/bat][bat]] | cat alternative | | [[https://github.com/dalance/procs][procs]] | ps alternative | | [[https://github.com/chmln/sd][sd]] | sed alternative | | =meteo= | Get the meteo | | =sudo cputhrottle PID %PROC= | Limiter l'accès au proc pour un processus | | =nmap -sP “192.168.1.*"= | Check all ip addresses on local netword | | =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 | ** Hardware | =dmesg= | Detected hardware and boot messages | | =lshw= | Display information on hardware | | =lsusb -tv= | Show usb devices | ** Network | =ip addr show= | Show all network interfaces and ip address | | =ethtooo eth0= | Tool to show ethernet status | | =netstat -tulp= | List all active listening ports | * After Install Enable TRIM (SSD only) #+begin_src bash sudo systemctl enable --now fstrim.timer #+end_src Set the fastest mirror for Pacman #+begin_src bash sudo pacman-mirrors --fasttrack #+end_src * Configuration for Laptops ** Power Management Tool: Powertop https://wiki.archlinux.org/index.php/Powertop https://wiki.manjaro.org/index.php?title=Power_Savings =PowerTop= a diagnostic tool used to identify and report issues with power consumption and management. #+begin_src bash paru -S powertop #+end_src =TLP= is used for Power Management. #+begin_src bash paru -S tlp sudo systemctl enable tlp sudo systemctl start tlp sudo systemctl enable tlp-sleep sudo systemctl start tlp-sleep sudo tlp start #+end_src =Thermald= is used to automatically handle CPU frequency scaling according to system load. #+begin_src bash paru -S thermald sudo systemctl enable thermald sudo systemctl start thermald #+end_src ** Lid open/close https://wiki.archlinux.org/index.php/Power_management Should automatic show lock screen =/etc/systemd/logind.conf= * Some notes - Systemd To improve the startup time. #+begin_src bash sudo systemctl disable apparmor sudo systemctl disable snapd sudo systemctl disable systemd-backlight@backlight\:intel_backlight.service #+end_src To see next timers #+begin_src bash systemctl --user list-timers #+end_src * Resources ** Dotfiles - https://github.com/LukeSmithxyz/voidrice - https://github.com/wincent/wincent - https://github.com/korolr/dotfiles - https://github.com/Shougo/shougo-s-github - https://github.com/addy-dclxvi/almighty-dotfiles ** Linux Softwares - [[https://github.com/k4m4/terminals-are-sexy][terminalare.sexy]] - [[https://www.reddit.com/r/vim/comments/3tluqr/my_list_of_applications_with_vi_keybindings/][the big list of vim like software]] - https://github.com/jlevy/the-art-of-command-line - https://github.com/herrbischoff/awesome-command-line-apps - https://github.com/luongvo209/Awesome-Linux-Software - https://wiki.archlinux.org/index.php/List_of_applications - https://ambrevar.xyz/power-apps/ - https://enchiridion.red/2019/1/18/desktop-apps/ * 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 | ** Micro controllers | =avrdude= | Atmel AVR MCU programmer | | =bootloadhid= | USB boot loader for AVR microcontrollers | | =dfu= | programmer - Device firmware update based USB programmer for Atmel chips | | =platformio= | Ecosystem for IoT development (Arduino and ARM mbed compatible) | | =micropython= | Python implementation for microcontrollers and constrained systems | | =arduino= | mk - Makefile for Arduino sketches | ** 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 | https://gitlab.com/bztsrc/usbimager ** 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 |