Installation

Table of Contents

Package Manager: yay

Installation

sudo pacman -S yay

CheatSheet

Command Usage
yay Perform system upgrade
yay -Ss <package> Search
yay -S <package> Install
yay -Si <package> Get informations
yay -Rs <package> Uninstall
yay -Yc Clean unneeded dependencies

To check all installed packages: pacman -Qq | fzf --preview 'pacman -Qil {}' --layout=reverse --bind 'enter:execute(pacman -Qil {} | less)'

Git Setup

Installation

yay -S git

Configuration

Git Configuration:

  • ~/.gitconfig
  • ~/.gitignore_global

Diff-So-Fancy

Installation

yay -S diff-so-fancy

Configuration

git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"

Credential Helper setup with Pass

This is explained in a further part: Integration of Pass with Git.

Terminal

Termite

Installation

yay -S termite

Configuration

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

Unicode Rxvt

Installation

yay -S rxvt-unicode

Configuration

Most of Urxvt configuration is done in ~/.Xresources

Shell: Bash and ZSH

Installation

yay -S bash bash-completion zsh

Configuration

Bash configuration:

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.config/bash/
  • ~/.profile

Terminal Multiplexer: Tmux

Installation

yay -S tmux

Configuration

TMUX configuration

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

Installation

yay -S nerd-fonts-complete

or just

yay -S nerd-fonts-hack

For emojis:

yay -S noto-fonts-emoji

Default fonts

Default font used:

  • Monospace Font: Hack Nerd Font Mono
  • Serif Font: Hack Nerd Font
  • Sans Font: Hack Nerd Font

List all fonts available: fc-list

Select font

yay -S gtk2fontsel

Text Editors

Neovim

Installation

yay -S neovim

Configuration

Vim configuration

Emacs

Installation

yay -S emacs

Configuration

Doom Emacs configuration

SpellCheck with Aspell

yay -S aspell aspell-en aspell-fr

SSH setup

Generating a new SSH key

ssh-keygen -t rsa -b 4096 -C "dehaeze.thomas@gmail.com"

Start the ssh-agent in the background

eval "$(ssh-agent -s)"

Add the SSH key to the ssh-agent

ssh-add ~/.ssh/id_rsa

GnuPG

Install the gnupg package:

yay -S gnupg

Create a key pair

gpg --full-gen-key

Configure the gpg-agent to cache the passphrase

Edit the following file ~/.gnupg/gpg-agent.conf

default-cache-ttl 60480000
max-cache-ttl 60480000

Gnome-Keyring and automatic GnuPG key unlocking

Note: GNOME users, and by extension any gnome-keyring user may have to follow the instructions at the end of the previous section on enabling autologin.

Alternative: https://github.com/cruegge/pam-gnupg

Launcher - Rofi

https://github.com/DaveDavenport/rofi

Alternative:

  • dmenu is sometimes used

Installation

yay -S rofi

Setup rofi as a dmenu replacement

Setup rofi as a dmenu replacement in ~/.i3/config:

bindsym $mod+d exec --no-startup-id rofi -show run

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:

export SUDO_ASKPASS=~/.local/bin/askpass-rofi

The askpass script is:

#!/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/://)"

Password Manager: Pass

Install the pass package

yay -S pass

Initialize the password store as a git repository

pass git init
pass git remote add origin https://github.com/tdehaeze/pass.git

Gui Manager

Integration with Rofi

Installation

yay -S rofi-pass

Then we can add a shortcut to rofi-pass on i3 config.

Alternative

Integration with Browsers

This is explained here.

Integration with Git

Installation

yay -S pass-git-helper

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:

[github.com*]
target=github.com/tdehaeze

Then, add the credential helper on the git configuration file ~/.gitconfig and add the default username for the repositories adresses.

[credential]
    helper = !pass-git-helper $@

[credential "https://github.com"]
    username = tdehaeze

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

yay -Ss bitwarden-bin bitwarden-cli-bin

Bookmark Manager: Buku

Installation

yay -S buku

Integration with Rofi

Installation

wget https://raw.githubusercontent.com/carnager/buku_run/master/buku_run -o ~/.local/bin/buku_run
chmod +x ~/.local/bin/buku_run

Configuration

The configuration file is here: ~/.config/buku_run/config

Integration with qutebrowser

Synchronization with a git repository

The database is stored in ~/.local/share/buku/bookmarks.db.

We initialize a git repository in this folder:

cd ~/.local/share/buku/bookmarks.db
git init

Then we create a script that will automatically add bookmarks.db and push to some repository: buku_git_push.

To automatically run the script every day, a systemd unit is used: ~/.config/systemd/user/bukugit.timer and ~/.config/systemd/user/bukugit.service

systemctl start --user bukugit.timer
systemctl enable --user bukugit.timer

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:

bukuserver run --host 127.0.0.1 --port 5001

And then browse to http://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

Browser: qutebrowser

Installation

yay -S qutebrowser

View Pdf inside qutebrowser with pdfjs

Installation

yay -S pdfjs

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

config.bind(',p', 'spawn --userscript password_fill')

The password_fill script can be found on github.com. It is configured using the ~/.config/qutebrowser/password_fill_rc file.

Integration with Buku

Custom key binding in ~/.config/qutebrowser/config.py

# Add current page to Buku (Bookmark Manager)
config.bind('B', 'spawn buku -a {url}')

Spell Checking

/usr/share/qutebrowser/scripts/dictcli.py install fr-FR
/usr/share/qutebrowser/scripts/dictcli.py install en-US

Monitors

yay -S xorg-xrandr arandr

Xrandr is used in shell scripts (mons could be used as a layer on top of Xrandr). Arandr is a GUI application to manage monitors.

Sound Setup

yay -S pulseaudio pavucontrol

Music Setup

Sound Server - Pulse Audio

https://wiki.archlinux.org/index.php/PulseAudio

Install

yay -S pulseaudio pulseaudio-alsa pulseaudio-bluetooth

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

=> Now Mopidy is used instead of MPD

Installation

yay -S mpd

Automatic Startup

systemctl start --user mpd.service
systemctl enable --user mpd.service

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

Audio Server with Spotify - Mopidy

https://github.com/mopidy/mopidy https://medium.com/@theos.space/using-mopidy-with-spotify-and-ncmpcpp-44352f4a2ce8

yay -S mopidy mopidy-spotify mopidy-mpd

To update local files:

mopidy local scan

If mopidy is used, MPD should be disabled. (systemctl disable --user mpd.service)

MPD Client - ncmpcpp

Installation

yay -S ncmpcpp

Config

The main config is located here: ~/.ncmpcpp/config. The key bindings can be configured here: ~/.ncmpcpp/bindings.

Cheatsheet

Library Manager - beets

Installation

yay -S beets

Configuration

Configuration folder: ~/.config/beets/

Cheatsheet

Command Usage
beet import <folder> Import folder to Music folder

Movies

Media Player - MPV

Installation

yay -S mpv

Key Bindings

The configuration is set in /.config/mpv/input.conf.

CheatSheet

Command Usage

Chromecast with CATT

Installation

yay -S catt

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

Contact Manager

Google Conctacts: Khard

https://github.com/scheibler/khard

yay -Ss khard

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

yay -Ss mu

This looks for contacts in all indexed emails. mu cfind <name>

Connect with Phone

yay -S kdeconnect

Chat Application - Weechat

Installation

yay -S weechat

Then we install some dependencies

yay -S tcl lua ruby

Enable mouse support

/mouse enable

Scripts

highmon.pl  
colorize_nicks.py  
go.py  
autosort.py  
buddylist.pl  
colorize_lines.pl  
multiline.pl  

Theme

https://www.bfoliver.com/technology/2017/07/15/weechat/ https://alexjj.com/blog/2016/9/setting-up-weechat/

/set weechat.look.prefix_same_nick "⤷"
/set weechat.look.prefix_error "⚠"
/set weechat.look.prefix_action "⚡"
/set weechat.look.bar_more_down "▼▼"
/set weechat.look.bar_more_left "◀◀"
/set weechat.look.bar_more_right "▶▶"
/set weechat.look.bar_more_up "▲▲"
/set weechat.look.prefix_suffix "╡"
/set weechat.color.chat_nick_colors red,green,brown,blue,magenta,cyan,white,lightred,lightgreen,yellow,lightblue,lightmagenta,lightcyan
/set weechat.color.separator 31
/set buffers.color.current_fg 31
/set buffers.color.current_bg white
/set buffers.color.hotlist_message_fg 229
/set buffers.color.hotlist_private_fg 121
/set buffers.color.hotlist_highlight_fg 163
/set buffers.color.number 239
/set buffers.color.number_char 245
/set weechat.bar.title.conditions "${inactive}"
/set weechat.bar.title.color_fg black
/set weechat.bar.title.color_bg 31         #Or white if 31 does nothing

Multi-line messages

Solution is provided here: https://github.com/wee-slack/wee-slack/issues/118 It uses multiline.pl script. Then alt-enter is bound to insert a new line:

/set plugins.var.perl.multiline.magic_paste_only on
/key bind meta-ctrl-M /input insert \x0a

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:

/key bind ctrl-M /input magic_enter

Send message using $EDITOR

https://github.com/keith/edit-weechat

mkdir -p ~/.weechat/python/autoload
cd ~/.weechat/python/autoload
wget https://raw.githubusercontent.com/keith/edit-weechat/master/edit.py

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

Installation

yay -S python2-websocket-client
cd ~/.weechat/python
wget https://raw.githubusercontent.com/wee-slack/wee-slack/master/wee_slack.py
ln -s ../wee_slack.py autoload

Add your Slack API key(s)

Log in to Slack:

/slack register

This command prints a link you should open in your browser to authorize WeeChat with Slack. Once you’ve accomplished this, copy the “code” portion of the URL in the browser and pass it to this command:

/slack register [CODE_FROM_URL]

Your Slack team is now added, and you can complete setup by restarting the wee-slack script.

/python reload slack

If you don’t want to store your API token in plaintext you can use the secure features of weechat:

/secure passphrase this is a super secret password
/secure set slack_token [YOUR_SLACK_TOKEN]
/set plugins.var.python.slack.slack_api_token ${sec.data.slack_token}

Deamon and Client

Weechat is started with the systemd service weechat. It runs weechat inside tmux.

Redshift

http://jonls.dk/redshift/

yay -S redshift

Mail Setup

Link to the mail setup.

Synchronize Mailboxes - Mbsync

Installation

yay -S isync

Configuration

~/.mbsyncrc

Automation using systemd

Retreive New mails
  • checkmail
  • ~/.config/systemd/user/checkmail.service
  • ~/.config/systemd/user/checkmail.timer
systemctl --user enable checkmail.timer
systemctl --user start checkmail.timer
Synchronize all the mailboxes
  • ~/.config/systemd/user/syncmail.service
  • ~/.config/systemd/user/syncmail.timer
systemctl --user enable syncmail.timer
systemctl --user start syncmail.timer

Send Mails - Msmtp

Installation

yay -S msmtp

Mail Index, Search and Tagging - Mu

Notification system

A script (checkmail) is used to retreive new mails and use notify=send is there are new received mails.

File Manager

Configuration files:

Ranger

Installation

yay -S ranger

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 (Github Issue).

It works better with Urxvt.

Image viewer

sxiv

Installation

yay -S sxiv

Open Gif

sxiv -a file.gif

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

HotKeyManager - SXHKD

yay -S sxhkd

Configuration file: SXHKD.

Windows Manager - i3

Link to the documentation

Installation

yay -S i3-gaps

Configuration

~/.i3/config

Polybar

https://polybar.github.io/

Link to the documentation.

Installation

yay -S polybar

Compositor - Picom

Installation

yay -S picom

Configuration

~/.config/picom/picom.conf

Automatic run as daemon

Compton is run from .xprofile config in the background:

picom --daemon

Notification Manager - Dunst

Installation

yay -S dunst dunstify

Configuration

~/.config/dunst/dunstrc

Usage

dunstify --replace=16549 "AppName" "Message"

The number --replace can be used with an ID to merge notifications from the same application for instance.

Office Suite

WPS Office

yay -S wps-office wps-office-extension-french-dictionary ttf-wps-fonts

Alternatives are:

  • open-office

Minimap 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.

yay -S sc-im

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:

yay -S lxappearance

Icons and themes

yay -S zukitwo-themes faenza-icon-theme
yay -S arc-gtk-theme

QT Themes

Run qt5ct to manage QT Themes.

XFT Themes

Some configuration are located in ~/.Xresources.

Advanced config

Printer

https://wiki.archlinux.org/index.php/CUPS Web based administration: http://localhost:631/

system-config-printer

Check the queue

lpq
lpq -a # on all queues

Clear the queue

lprm   # remove last entry only
lprm - # remove all entries

Print a file

lpr -P printer_name filename.pdf

List available printers

lpstat -a

Stats about the printer

lpstat -p printer_name

Kernel Management

https://wiki.manjaro.org/index.php/Manjaro_Kernels

Command Usage
mhwd-kernel -li Determine which kernel is used
  Change current kernel

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.

yay -S powertop

TLP is used for Power Management.

yay -S tlp
sudo systemctl enable tlp
sudo systemctl start tlp
sudo systemctl enable tlp-sleep
sudo systemctl start tlp-sleep
sudo tlp start

Thermald is used to automatically handle CPU frequency scaling according to system load.

yay -S thermald
sudo systemctl enable thermald
sudo systemctl start thermald

Lid open/close

https://wiki.archlinux.org/index.php/Power_management

Should automatic show lock screen

/etc/systemd/logind.conf

Automatically Mount devices - Udiskie

udiskie - Mount and unmount disks (https://github.com/coldfix/udiskie)

yay -S udiskie

Automatically run udiskie on startup.

Bluetooth

Bluetooth manager: https://github.com/blueman-project/blueman blueman-manager

LaTeX

Installation

yay -S texlive-most

Biber support for the bibliography:

yay -S biber

Support for source code using minted:

yay -S minted

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.

From screenshot to latex math formula

Installation

yay -S mathpix-snipping-tool

Mathematical Software

Insect

Installation

yay -S insect

Usage

Command Usage
3 m/s to km/h Convert Unit

Matlab

Installation

yay -S matlab

If there is a problem when opening a Simulink file, check the solution here.

Download Manager

Torrent Client - deluge

Installation

yay -S deluge

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.

Youtube-dl

yay -S youtube-dl

Download best audio

youtube-dl -f bestaudio url

Download best video with audio

youtube-dl -f best url

Default Applications

Mailcap file

XDG-OPEN

~/.config/mimeapps.list

Desktop files

Desktop Applications

~/.local/share/applications/

Bibliography Management

Alternatives:

GUI:

  • Zotero
  • Mendeley

Command line based:

Calendar

Link to configuration

Vdirsyncer - Sync calendars

Installation

yay -S vdirsyncer
sudo pip install requests-oauthlib

Cheatsheet

Command Usage
vdirsyncer sync Synchronize

Automation - Systemd

First, run

vdirsyncer discover google_calendar
systemctl --user enable vdirsyncer.timer
systemctl --user start vdirsyncer.timer

To check the status of the service:

systemctl --user status vdirsyncer.service

Calendar Client - Khal

Installation

yay -S khal

Import ICS files

khal import even.ics

RSS Reader

Task Manager

OrgMode and Emacs

Wunderline

Installation

yay -S wunderline

Cheatsheet

Add a task with:

  • wunderline add <task>
Options Usage
--today  
--tomorrow  
--note <note>  

Other commands:

  • wunderline inbox
  • wunderline today

PDF Reader: Zathura

Installation

yay -S zathura

Then add dependecies to view specific files:

yay -S zathura-pdf-mupdf zathura-djvu zathura-ps zathura-cb

It seems that mupdf is better that poppler to view pdf.

Configuration

~/.config/zathura/zathurarc

Cheatsheet

Command Usage
p Print the current pdf
tab Show the outline
r Reload
J/K Next/previous page
H/L Zoom in/out
a Fit height
s Fit width
D Double page
f Follow link
i Night Mode
<n>gg Go to page n
mm Mark current location to m
'm Goto location m

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

yay -S pdfpc

Video support

yay -S gst-plugins-ugly gst-plugins-good gst-plugins-base-libs gst-plugins-base gst-plugins-bad gst-libav

Usage

pdfpc filename.pdf

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. It seems the color is due to this part of the script. Should then source this file somehow.

BASE16_SHELL="$HOME/.base16-manager/chriskempson/base16-shell/"
[ -n "$PS1" ] && \
    [ -s "$BASE16_SHELL/profile_helper.sh" ] && \
        eval "$("$BASE16_SHELL/profile_helper.sh")"

Possible theme managers:

Base16

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:

# Base16 Shell
BASE16_SHELL="$HOME/.config/base16-shell/"
[ -n "$PS1" ] && \
    [ -s "$BASE16_SHELL/profile_helper.sh" ] && \
        eval "$("$BASE16_SHELL/profile_helper.sh")"

Base16-manager

https://github.com/AuditeMarlow/base16-manager

This help changes many applications colors at once.

Graphical Editor

VPN Setup with NordVPN

Installation

yay -S nordvpn-bin

Configuration

sudo systemctl enable nordvpnd.service
sudo systemctl start nordvpnd.service

Usage

Command Usage
nordvpn login  
nordvpn connect country  
nordvpn disconnect  
nordvpn status  
nordvpn countries  

Others

Wallpaper: xwallpaper

File transfer

Trash

trash-cli is used to manage the trash. It is integrated with Ranger.

Usefull commands

Show informations about the machine

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

yay -S translate-shell
trans englishwork en:fr

Others

tldr Community-driven man pages
transfer.sh upload and share files from the command line
ffsend share files from the command line
wttr.in weather in terminal
rtv Reddit in terminal
awk https://linuxhandbook.com/awk-command-tutorial/
z Jump around
thefuck Magnificent app which corrects your previous console command
bash-sensible An attempt at saner Bash defaults
awman Arch Wiki man pages - Arch wiki offline
s-tui Terminal based CPU stress and monitoring utility
glances A top/htop alternative
asciinema Reccord you terminal
ncdu See what takes place on the disk
light Program to easily change brightness on backlight-controllers
maim Take screenshots
Command Description
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
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

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

Bash Snippets

For loop

for file in ./*; do
  command ${file};
done

Some notes - Systemd

To improve the startup time.

sudo systemctl disable apparmor
sudo systemctl disable snapd
sudo systemctl disable systemd-backlight@backlight\:intel_backlight.service

To see next timers

systemctl --user list-timers

Ressources

List of all the install programs

Tmux

tmux - Terminal multiplexer reattach-to-user-namespace - Reattach process (e.g., tmux) to background

Git

bfg - Removes large or troublesome blobs like git-filter-branch does, but faster

Text Editors

aspell - Spell checker with better logic than ispell vim - Vi ’workalike’ with many additional features neovim - Ambitious Vim-fork focused on extensibility and agility

LaTeX

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 urlview - URL extractor/launcher w3m - Pager/text based browser abook - Address book with mutt support elinks - 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
fzf Command-line fuzzy finder written in Go
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 you-get - Dumb downloader that scrapes the web 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 httpstat - curl statistics made simple transmission - Lightweight BitTorrent client aria2 - lightweight download utility

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
cowsay Configurable talking characters in ASCII art
cppcheck Static analysis of C and C++ code
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
musikcube A cross-platform, terminal-based music player
openssl Cryptography and SSL/TLS Toolkit
openvpn SSL/TLS VPN implementing OSI layer 2 or 3 secure network extension
sdl Low-level access to audio, keyboard, mouse, joystick and graphics
texinfo Official documentation format of the GNU project
weechat Extensible IRC client
wego Weather app for the terminal
wifi password - Show the current WiFi network password
imagemagick Tools and libraries to manipulate images in many formats
glances Alternative to top/htop
pandoc Swiss-army knife of markup format conversion

Author: Thomas Dehaeze

Created: 2020-05-26 mar. 08:39