1314 lines
36 KiB
Org Mode
1314 lines
36 KiB
Org Mode
#+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 |
|
|
|------------+-------------------|
|
|
| =<return>= | Download the file |
|
|
| =Ctrl-x= | Download and open |
|
|
| =Ctrl-p= | Open with pdf.js |
|
|
| =Alt-y= | Yank the url |
|
|
|
|
** Integration with Pass: the password manager
|
|
Add the key-binding on =~/.config/qutebrowser/config.py=
|
|
|
|
#+begin_src
|
|
config.bind(',p', 'spawn --userscript password_fill')
|
|
#+end_src
|
|
|
|
The =password_fill= script can be found on [[https://github.com/qutebrowser/qutebrowser/blob/master/misc/userscripts/password_fill][github.com]].
|
|
It is configured using the =~/.config/qutebrowser/password_fill_rc= file.
|
|
|
|
** 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 <conctact-name>=
|
|
|
|
** =mu= - Index Emails
|
|
#+begin_src bash
|
|
paru -S mu
|
|
#+end_src
|
|
|
|
This looks for contacts in all indexed emails.
|
|
=mu cfind <name>=
|
|
|
|
* =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 |
|
|
| =<n>gg= | Go to page n |
|
|
| =mm= | Mark current location to m |
|
|
| ='m= | Goto location m |
|
|
|
|
** Multi-monitor pdf presentation - pdfpc
|
|
https://github.com/pdfpc/pdfpc
|
|
|
|
pdfpc is a great tool for showing pdf presentations. It support:
|
|
- screen splitting
|
|
- support for videos in pdf presentations
|
|
- support for notes
|
|
- support for annotations
|
|
|
|
*** Installation
|
|
#+begin_src bash
|
|
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
|
|
|
|
** =colorpicker= ([[https://github.com/Jack12816/colorpicker][github]])
|
|
Copy hexadecimal value of the color to the clipboard:
|
|
#+begin_src bash :eval no
|
|
colorpicker --short --one-shot --preview | xsel -b
|
|
#+end_src
|
|
|
|
Also colorbrag: https://aur.archlinux.org/packages/colorgrab
|
|
|
|
** =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=
|
|
|
|
Starts to cups service:
|
|
#+begin_src bash :eval no
|
|
sudo systemctl start cups
|
|
#+end_src
|
|
|
|
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 rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist
|
|
#+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 |
|
|
| =usbimager= | 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 |
|