50 KiB
Installation
- Package Manager: yay
- Git Setup
- Terminal
- Shell: Bash and ZSH
- Terminal Multiplexer: Tmux
- Fonts
- Text Editors
- SSH setup
- GnuPG
- Launcher - Rofi
- Password Manager: Pass
- Bookmark Manager: Buku
- Browser: qutebrowser
- Monitors
- Sound Setup
- Music Setup
- Movies
- Contact Manager
- Connect with Phone
- Chat Application - Weechat
- Redshift
- Mail Setup
- File Manager
- Image viewer
- HotKeyManager - SXHKD
- Windows Manager - i3
- Polybar
- Compositor - Picom
- Notification Manager - Dunst
- Office Suite
- Managing Theme
- Advanced config
- LaTeX
- Mathematical Software
- Download Manager
- Default Applications
- Desktop files
- Bibliography Management
- Calendar
- RSS Reader
- Task Manager
- PDF Reader: Zathura
- Theme manager
- Streaming - OBS
- Graphical Editor
- VPN Setup with NordVPN
- Others
- Usefull commands
- Bash Snippets
- Some notes - Systemd
- Ressources
- List of all the install programs
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
https://github.com/so-fancy/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
https://github.com/thestinger/termite
Termite
Installation
yay -S termite
Configuration
~/.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 + |
increase font size |
ctrl - |
decrease font size |
Unicode Rxvt
Installation
yay -S rxvt-unicode
Configuration
Most of Urxvt configuration is done in ~/.Xresources
Shell: Bash and ZSH
https://wiki.archlinux.org/index.php/Bash
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
Ressources
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
Emacs
https://www.gnu.org/software/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 rofi-calc
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
https://www.passwordstore.org/
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
https://github.com/IJHack/qtpass
yay -S qtpass
Integration with Rofi
https://github.com/carnager/rofi-pass
Installation
yay -S rofi-pass
Then we can add a shortcut to rofi-pass
on i3 config.
Alternative
https://github.com/ibizaman/pass-clip
yay -S pass-clip
Integration with Browsers
This is explained here.
Integration with Git
https://github.com/languitar/pass-git-helper
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
https://github.com/carnager/buku_run
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
https://github.com/qutebrowser/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
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
https://wiki.archlinux.org/index.php/Ncmpcpp
Installation
yay -S ncmpcpp
Config
The main config is located here: ~/.ncmpcpp/config
.
The key bindings can be configured here: ~/.ncmpcpp/bindings
.
Cheatsheet
https://pkgbuild.com/~jelle/ncmpcpp/
Command | Usage |
Library Manager - beets
https://github.com/beetbox/beets
Installation
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
https://github.com/skorokithakis/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
https://weechat.org/files/doc/stable/weechat_user.en.html https://wiki.archlinux.org/index.php/WeeChat https://gist.github.com/pascalpoitras/8406501
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
Configuration
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
https://github.com/wee-slack/wee-slack
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}
Notifications
Deamon and Client
Weechat is started with the systemd service weechat
.
It runs weechat inside tmux.
Redshift
yay -S redshift
Mail Setup
Link to the mail setup.
Synchronize Mailboxes - Mbsync
http://isync.sourceforge.net/ https://wiki.archlinux.org/index.php/Isync
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
Mail Client - NeoMutt
https://github.com/neomutt/neomutt
Installation
yay -S neomutt
Display html mails
yay -S w3m
Open Url from mail
yay -S urlview
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
https://github.com/ranger/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.
GUI File Manager: pcmanfm
Image viewer
sxiv
https://github.com/muennich/sxiv https://www.youtube.com/watch?v=GYW9i_u5PYs
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
Polybar
Compositor - Picom
https://wiki.archlinux.org/index.php/Picom
Link to the documentation.
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
https://github.com/dunst-project/dunst https://wiki.archlinux.org/index.php/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.
Format disks
sudo gparted
to format disks
Using command line:
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 ~/.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.
From screenshot to latex math formula
Installation
yay -S mathpix-snipping-tool
Mathematical Software
Insect
https://github.com/sharkdp/insect
Installation
yay -S insect
Usage
Command | Usage |
---|---|
3 m/s to km/h |
Convert Unit |
Matlab
https://wiki.archlinux.org/index.php/MATLAB#Installation
Link to the configuration.
Installation
yay -S matlab
If there is a problem when opening a Simulink file, check the solution here.
SageMath
http://www.sagemath.org/ https://wiki.archlinux.org/index.php/SageMath
Installation
yay -S sagemath
Usage
Run sage -n jupyter
to run jupyter notebooks
Download Manager
Torrent Client - deluge
https://github.com/deluge-torrent/deluge https://wiki.archlinux.org/index.php/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
https://wiki.archlinux.org/index.php/Default_applications https://www.guyrutenberg.com/2018/01/20/set-default-application-using-xdg-mime/
Mailcap file
XDG-OPEN
~/.config/mimeapps.list
Desktop files
~/.local/share/applications/
Bibliography Management
I am using a plain bibtex file with org-ref
(link).
Alternatives:
Calendar
Link to configuration
Vdirsyncer - Sync calendars
https://github.com/pimutils/vdirsyncer
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
RSS Reader
GUI Alternatives:
With Emacs:
On the phone:
Newsboat
Link to configuration.
https://github.com/newsboat/newsboat https://wiki.archlinux.org/index.php/Newsboat
Installation
yay -S newboat
Configuration
Task Manager
OrgMode and Emacs
Wunderline
https://itsfoss.com/linux-client-wunderlist/ http://wayneashleyberry.github.io/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
https://pwmt.org/projects/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")"
- shell: https://github.com/chriskempson/base16-shell
- ranger: uses colors of the shell
- vim: https://github.com/chriskempson/base16-vim
- emacs: https://github.com/belak/base16-emacs
- zathura: https://github.com/nicodebo/base16-zathura
- neomutt: https://github.com/josephholsten/base16-mutt
- ncmpcpp: uses colors of terminal (termite) defined in
~/.config/termite/config
- polybar: uses colors of Xresources:
~/.Xressources.d/colors
- dunst: https://github.com/khamer/base16-dunst
- fzf: https://github.com/nicodebo/base16-fzf
- i3: https://github.com/khamer/base16-i3
- qutebrowser: https://github.com/theova/base16-qutebrowser
- rofi: https://gitlab.com/0xdec/base16-rofi
- background: use custom script
- tmux
- GUI file manager?
Possible theme managers:
Base16
https://github.com/chriskempson/base16 http://chriskempson.com/projects/base16/ https://www.youtube.com/watch?v=QcOxU1sOOuw
Base16 Philosophy
Define colors according to rules: http://chriskempson.com/projects/base16/ Then we can use these colors multiple applications.
Base16-shell
https://github.com/chriskempson/base16-shell
This changes the shell colors. This should be added to ~/.bashrc
:
# 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.
Streaming - OBS
yay -Ss obs-studio
To share the screen as a webcam: http://dlaw.me/webcam-spoofing-with-obs/
yay -S obs-v4l2sink
yay -S v4l2loopback-dkms-git
sudo modprobe v4l2loopback exclusive_caps=1 video_nr=9
Graphical Editor
VPN Setup with NordVPN
https://aur.archlinux.org/packages/nordvpn-bin/ https://wiki.archlinux.org/index.php/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 |
Alternative: Use NordVPM with openVPN Instead
Others
Wallpaper: xwallpaper
Interact with API
Take Screenshot
yay -S maim flameshot
File transfer
https://github.com/schollz/croc
yay -S croc
Utilities
- https://github.com/BurntSushi/ripgrep
- https://github.com/dawbarton/pdf2svg
- https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
- https://github.com/Airblader/unclutter-xfixes
yay -S fd ripgrep pdf2svg pdftk unclutter pdfarranger
Trash
trash-cli
is used to manage the trash.
It is integrated with Ranger.
Usefull commands
Find files or directories
- https://github.com/sharkdp/fd
- https://github.com/BurntSushi/ripgrep
- https://github.com/ggreer/the\_silver\_searcher
- find
- fzf
Show informations about the machine
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 |
bat | cat alternative |
procs | ps alternative |
sd | sed alternative |
inxi | CLI tool to get system information |
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
Dotfiles
Linux Softwares
- terminalare.sexy
- 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
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 |