diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 5faafcb..2291cc3 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -1,13 +1,11 @@ -# emacs ansi-term support -if test -n "$EMACS" - set -x TERM eterm-color -end - -# this function may be required function fish_title true end +if test -n "$EMACS" + set -x TERM eterm-color +end + if test "$TERM" = "dumb" function fish_prompt echo "\$ " @@ -17,74 +15,106 @@ if test "$TERM" = "dumb" function fish_title; end end -set -gx PATH $HOME/go/bin $HOME/.cargo/bin $HOME/.local/bin $HOME/.gem/ruby/2.6.0/bin $PATH -set -gx PKG_CONFIG_PATH /usr/local/lib/pkgconfig/ $PKG_CONFIG_PATH +function fish_greeting; end + +set -gx PATH $HOME/.local/bin $HOME/go/bin $HOME/.cargo/bin $PATH + set -gx SUDO_ASKPASS ~/.local/bin/askpass + set -gx EDITOR emacsclient -c -nw -abbr S 'sudo systemctl' -abbr cdebug 'cmake -DCMAKE_BUILD_TYPE=Debug' -abbr chgrp 'chgrp --preserve-root' -abbr chmod 'chmod --preserve-root' -abbr chown 'chown --preserve-root' -abbr clang 'clang -Wall' -abbr clang++ 'clang++ -Wall' -abbr clean clear -abbr compress 'tar -czf' -abbr cp 'cp -i' +set -gx PKG_CONFIG_PATH /usr/local/lib/pkgconfig/ $PKG_CONFIG_PATH + +abbr df 'df -H' +abbr diskspace 'sudo df -h | grep -E "sd|lv|Size"' + +abbr meminfo 'free -m -l -t' + +abbr gpumeminfo 'grep -i --color memory /var/log/Xorg.0.log' + abbr cpuinfo lscpu + +abbr pscpu 'ps auxf | sort -nr -k 3' +abbr pscpu10 'ps auxf | sort -nr -k 3 | head -10' + +abbr psmem 'ps auxf | sort -nr -k 4' +abbr psmem10 'ps auxf | sort -nr -k 4 | head -10' + +abbr remove 'sudo pacman -Rscnd' + +abbr install 'sudo pacman -Sy' + +abbr p 'sudo -A pacman' + +abbr purge 'yay -Sc' + +abbr search 'pacman -Ss' + +abbr update 'sudo pacman -Syu' + +abbr s 'systemctl --user' + +abbr S 'sudo systemctl' + +abbr cdebug 'cmake -DCMAKE_BUILD_TYPE=Debug' abbr crelease 'cmake -DCMAKE_BUILD_TYPE=Release' + abbr dc docker-compose abbr dcd 'docker-compose down' abbr dcr 'docker-compose run --rm' abbr dcu 'docker-compose up' abbr dcub 'docker-compose up --build' -abbr df 'df -H' -abbr diskspace 'sudo df -h | grep -E "sd|lv|Size"' -abbr du 'du -ch' + +abbr swipl 'clear && swipl -q && clear' + abbr e 'emacsclient -c' + abbr enw 'emacsclient -c -nw' -abbr exi exit -abbr exti exit -abbr feh 'feh -Zx.' -abbr flac 'youtube-dl -x --audio-format flac --audio-quality 0' -abbr g++ 'g++ -Wall -std=c++17' -abbr gcc 'gcc -Wall -std=c18' -abbr gpumeminfo 'grep -i --color memory /var/log/Xorg.0.log' -abbr hist history -abbr hotp htop -abbr install 'sudo pacman -Sy' + +abbr vi vim + +abbr tlmgr tllocalmgr + +abbr texhash 'sudo texhash' + +abbr cp 'cp -i' abbr ln 'ln -i' abbr lns 'ln -si' -abbr lsl 'ls -ahl' -abbr meminfo 'free -m -l -t' -abbr mp3 'youtube-dl -x --audio-format flac --audio-quality 0' -abbr mpv 'mpv --no-border --force-window=no' abbr mv 'mv -i' -abbr nmcli 'nmcli -p -c auto' -abbr p 'sudo -A pacman' -abbr please 'sudo -A' -abbr pscpu 'ps auxf | sort -nr -k 3' -abbr pscpu10 'ps auxf | sort -nr -k 3 | head -10' -abbr psmem 'ps auxf | sort -nr -k 4' -abbr psmem10 'ps auxf | sort -nr -k 4 | head -10' -abbr purge 'yay -Sc' -abbr q exit -abbr randcommit 'git commit -m (curl -s whatthecommit.com/index.txt)' -abbr remove 'sudo pacman -Rscnd' abbr rm 'rm -I' abbr rmd 'rm --preserve-root -Ir' abbr rmdf 'rm --preserve-root -Irf' abbr rmf 'rm --preserve-root -If' -abbr s 'systemctl --user' -abbr search 'pacman -Ss' + +abbr chgrp 'chgrp --preserve-root' +abbr chmod 'chmod --preserve-root' +abbr chown 'chown --preserve-root' + +abbr clean clear + +abbr exi exit +abbr exti exit + +abbr hotp htop + abbr sudo 'sudo -A' -abbr swipl 'clear && swipl -q && clear' -abbr texhash 'sudo texhash' -abbr tlmgr tllocalmgr -abbr umountC 'cd ~; and sudo umount /media/C' -abbr umountD 'cd; and sudo umount /media/Marpa' +abbr please 'sudo -A' + +abbr q exit + +abbr hist history + +abbr flac 'youtube-dl -x --audio-format flac --audio-quality 0' + +abbr mpv 'mpv --no-border --force-window=no' + +abbr compress 'tar -czf' abbr untar 'tar -xvzf' -abbr update 'sudo pacman -Syu' -abbr vi vim + +abbr feh 'feh -Zx.' + +abbr lsl 'ls -ahl' + +abbr nmcli 'nmcli -p -c auto' + abbr wget 'wget -c' diff --git a/.config/fish/config.org b/.config/fish/config.org new file mode 100644 index 0000000..712eb51 --- /dev/null +++ b/.config/fish/config.org @@ -0,0 +1,549 @@ +#+TITLE: Phundrak’s dotfiles +#+AUTHOR: Lucien "Phundrak” Cartier-Tilet +#+EMAIL: phundrak@phundrak.fr +#+OPTIONS: H:4 broken_links:mark email:t ^:{} auto-id:t + +# ### LaTeX #################################################################### +#+LATEX_CLASS: conlang +#+LaTeX_CLASS_OPTIONS: [a4paper,twoside] +#+LATEX_HEADER_EXTRA: \usepackage{tocloft} \setlength{\cftchapnumwidth}{3em} +#+LATEX_HEADER_EXTRA: \usepackage{xltxtra,fontspec,xunicode,svg} +#+LATEX_HEADER_EXTRA: \usepackage[total={17cm,24cm}]{geometry} +#+LATEX_HEADER_EXTRA: \setromanfont{Charis SIL} +#+LATEX_HEADER_EXTRA: \usepackage{xcolor} +#+LATEX_HEADER_EXTRA: \usepackage{hyperref} +#+LATEX_HEADER_EXTRA: \hypersetup{colorlinks=true,linkbordercolor=red,linkcolor=blue,pdfborderstyle={/S/U/W 1}} +#+LATEX_HEADER_EXTRA: \usepackage{multicol} +#+LATEX_HEADER_EXTRA: \usepackage{indentfirst} +#+LATEX_HEADER_EXTRA: \sloppy + +# ### HTML ##################################################################### +#+HTML_DOCTYPE: html5 +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+INFOJS_OPT: view:info toc:1 home:https://phundrak.fr/ toc:t +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: +#+HTML_HEAD_EXTRA: + +* Table of Contents :TOC_4_gh:noexport: + :PROPERTIES: + :CUSTOM_ID: h-c7ab05d0-4c5f-4a4c-8603-4c79e264141c + :END: +- [[#presentation][Presentation]] + - [[#fish-from-within-emacs][Fish from within Emacs]] + - [[#tramp-remote-access][Tramp remote access]] + - [[#regular-fish-shell-appearance][Regular fish shell appearance]] + - [[#global-variables][Global variables]] + - [[#abbreviations][Abbreviations]] + - [[#system-monitoring][System monitoring]] + - [[#system-management-packages-and-services][System management (packages and services)]] + - [[#package-mangaement][Package mangaement]] + - [[#service-management][Service management]] + - [[#development][Development]] + - [[#cmake][CMake]] + - [[#compilation][Compilation]] + - [[#docker][Docker]] + - [[#git][Git]] + - [[#prolog][Prolog]] + - [[#text-editors][Text editors]] + - [[#latex][LaTeX]] + - [[#some-security-measures][Some security measures]] + - [[#typos][Typos]] + - [[#misc][Misc]] + - [[#sudo][Sudo]] + - [[#exit][Exit]] + - [[#history][History]] + - [[#song-download-from-youtube][Song download from YouTube]] + - [[#mpv][MPV]] + - [[#compression][Compression]] + - [[#feh][Feh]] + - [[#ls][ls]] + - [[#networkmanager][NetworkManager]] + - [[#wget][Wget]] + +* Presentation + :PROPERTIES: + :CUSTOM_ID: h-c2560b46-7f97-472f-b898-5ab483832228 + :END: + The file present in =~/.config/fish/config.fish= is the configuration file for + the [[https://fishshell.com/][fish shell]]. It contains custom functions, environment variables and + abbreviations. + + Just in case, we might need sometimes to declare the fish function + =fish_title= as =true=, so let’s do so. + #+BEGIN_SRC fish :tangle yes + function fish_title + true + end + #+END_SRC + +** Fish from within Emacs + :PROPERTIES: + :CUSTOM_ID: h-97d738f4-1ea0-4f64-a31d-19643486a951 + :END: + I sometimes call fish from within emacs, with =M-x ansi-term=. In this case, + the variable =TERM= needs to have the value =eterm-color=. + #+BEGIN_SRC fish :tangle yes + if test -n "$EMACS" + set -x TERM eterm-color + end + #+END_SRC + +** Tramp remote access + :PROPERTIES: + :CUSTOM_ID: h-6cad2cc9-aef6-4df4-90f9-97053e82072a + :END: + When accessing from a remote machine our computer from Emacs, tramp needs a + precise shell appearance: a simple =$= followed by a space after which to put + the commands it needs to execute, and nothing else. Due to this, let’s + deactivate and redefine some of the functions defining the appearance of + fish. + #+BEGIN_SRC fish :tangle yes + if test "$TERM" = "dumb" + function fish_prompt + echo "\$ " + end + function fish_right_prompt; end + function fish_greeting; end + function fish_title; end + end + #+END_SRC + +** Regular fish shell appearance + :PROPERTIES: + :CUSTOM_ID: h-a8434b29-c146-4141-b8f8-1b446c791907 + :END: + Now, there is only one function I modify when it comes to the appearance of + fish when I’m the one using it: I simply “delete” the =fish_greeting= + function. + #+BEGIN_SRC fish :tangle yes + function fish_greeting; end + #+END_SRC + +** Global variables + :PROPERTIES: + :CUSTOM_ID: h-0eff37da-af9f-4546-8ad3-201961a2200f + :END: + Some global variables might sometimes be needed and need to be modified. This + is for example the case with my =PATH= variable in which I add Rust’s Cargo’s + binaries, Go’s binaries and my own executables. And of course, don’t forget + to add the already existing =PATH=. + #+BEGIN_SRC fish :tangle yes + set -gx PATH $HOME/.local/bin $HOME/go/bin $HOME/.cargo/bin $PATH + #+END_SRC + + Sometimes, software will rely on =SUDO_ASKPASS= to get a GUI from which it + can get the sudo password. So, let’s declare it. + #+BEGIN_SRC fish :tangle yes + set -gx SUDO_ASKPASS ~/.local/bin/askpass + #+END_SRC + + Now, let’s declare our editor of choice, EmacsClient. Now, we want it to run + in the terminal, since it will most often be just quick edits, nothing too + heavy, if it is called from the =EDITOR= variable (from Git, for example). + #+BEGIN_SRC fish :tangle yes + set -gx EDITOR emacsclient -c -nw + #+END_SRC + + Finally, some development packages require the =PKG_CONFIG_PATH= to be set, + so let’s do so. + #+BEGIN_SRC fish :tangle yes + set -gx PKG_CONFIG_PATH /usr/local/lib/pkgconfig/ $PKG_CONFIG_PATH + #+END_SRC + +** Abbreviations + :PROPERTIES: + :CUSTOM_ID: h-740bd904-3e32-4c09-b0a4-bde16ae2e116 + :END: +*** System monitoring + :PROPERTIES: + :CUSTOM_ID: h-ec910a8c-9154-48a4-b4cd-df28cb4e54d9 + :END: + Here I have some abbreviations which are quite useful when performing some + system monitoring. With =df=, we can get an overview of our filesystem + usage, while with =diskspace= we get some more precise information. + #+BEGIN_SRC fish :tangle yes + abbr df 'df -H' + abbr diskspace 'sudo df -h | grep -E "sd|lv|Size"' + #+END_SRC + + =meminfo= is a call to =free= with sane defaults. + #+BEGIN_SRC fish :tangle yes + abbr meminfo 'free -m -l -t' + #+END_SRC + + Similar to =meminfo=, we also have =gpumeminfo= so we can get a quick look + at the memory-related logs of our X session. + #+BEGIN_SRC fish :tangle yes + abbr gpumeminfo 'grep -i --color memory /var/log/Xorg.0.log' + #+END_SRC + + I also declared =cpuinfo= an alias of =lscpu= in order to keep consistent + with =meminfo=. + #+BEGIN_SRC fish :tangle yes + abbr cpuinfo lscpu + #+END_SRC + + =pscpu= gives us information on what the CPU is running right now, and + =pscpu10= limits that to the top 10 threads. + #+BEGIN_SRC fish :tangle yes + abbr pscpu 'ps auxf | sort -nr -k 3' + abbr pscpu10 'ps auxf | sort -nr -k 3 | head -10' + #+END_SRC + + Similarly, =psmem= gives us information on the memory usage of the current + threads, and =psmem10= only the ten most important threads in terms of + memory usage. + #+BEGIN_SRC fish :tangle yes + abbr psmem 'ps auxf | sort -nr -k 4' + abbr psmem10 'ps auxf | sort -nr -k 4 | head -10' + #+END_SRC + +*** System management (packages and services) + :PROPERTIES: + :CUSTOM_ID: h-78ac23f0-960d-4f56-9cba-64413fd61885 + :END: + I added some of these abbreviations due to how often I have to write the + whole thing. + +**** Package mangaement + :PROPERTIES: + :CUSTOM_ID: h-281a59aa-4ea0-47ab-a4cc-33fff8d38165 + :END: + The first command is =remove= which removes a package from my system, as + well as its dependencies no longer needed. + #+BEGIN_SRC fish :tangle yes + abbr remove 'sudo pacman -Rscnd' + #+END_SRC + + And if I want to install something, I just have to type =install=. + #+BEGIN_SRC fish :tangle yes + abbr install 'sudo pacman -Sy' + #+END_SRC + + But if I just want to run =pacman= as sudo, then I could always just type + =p=. + #+BEGIN_SRC fish :tangle yes + abbr p 'sudo -A pacman' + #+END_SRC + + Sometimes, I just want to purge my package manager’s cache, be it + =pacman='s or =yay='s. This is why I simply type =purge=. + #+BEGIN_SRC fish :tangle yes + abbr purge 'yay -Sc' + #+END_SRC + + And if I want to simply seach among the =pacman= repos, I can type + =search=. Otherwise, if I want to include AUR results, I’ll use =yay=. + #+BEGIN_SRC fish :tangle yes + abbr search 'pacman -Ss' + #+END_SRC + + To update everything from the official repos, I’ll sometimes type =update= + instead of the full command. + #+BEGIN_SRC fish :tangle yes + abbr update 'sudo pacman -Syu' + #+END_SRC + +**** Service management + :PROPERTIES: + :CUSTOM_ID: h-3a734119-ccee-4cdf-b04c-d55a37dea571 + :END: + I don’t have the muscle memory of =systemctl=. So instead, I simply type + =c= when I want to do something user service related. + #+BEGIN_SRC fish :tangle yes + abbr s 'systemctl --user' + #+END_SRC + + And if I want to manipulate system services, I can instead type a simple + capital =S=. + #+BEGIN_SRC fish :tangle yes + abbr S 'sudo systemctl' + #+END_SRC + +*** Development + :PROPERTIES: + :CUSTOM_ID: h-32ae38a2-41ad-438e-b619-220a63166115 + :END: + A good amount of these commands are development related, especially when it + comes to compilation or Docker. + +**** CMake + :PROPERTIES: + :CUSTOM_ID: h-887c87aa-b100-4b27-9006-778fd7e3329c + :END: + I have the following abbreviations so I can quickly run CMake and create a + configuration for debug or release profiles. + #+BEGIN_SRC fish :tangle yes + abbr cdebug 'cmake -DCMAKE_BUILD_TYPE=Debug' + abbr crelease 'cmake -DCMAKE_BUILD_TYPE=Release' + #+END_SRC + +**** Compilation + :PROPERTIES: + :CUSTOM_ID: h-0beb47e5-d76a-4037-8f58-e8de141e3761 + :END: + By default, I set =clang=, =clang++=, =gcc= and =g++= to the latest + standard and with the =-Wall= flag activated. + #+BEGIN_SRC fish :tangle + abbr clang 'clang -Wall' + abbr clang++ 'clang++ -Wall' + abbr g++ 'g++ -Wall -std=c++17' + abbr gcc 'gcc -Wall -std=c18' + #+END_SRC + +**** Docker + :PROPERTIES: + :CUSTOM_ID: h-91c7ff90-7b43-4802-be69-5d102281c6d3 + :END: + And of course, when it comes to Docker Compose, I don’t have time to write + the full command, so I use these instead. + #+BEGIN_SRC fish :tangle yes + abbr dc docker-compose + abbr dcd 'docker-compose down' + abbr dcr 'docker-compose run --rm' + abbr dcu 'docker-compose up' + abbr dcub 'docker-compose up --build' + #+END_SRC + +**** Git + :PROPERTIES: + :CUSTOM_ID: h-e72347d4-590e-448c-bc33-0a70fa8ab35b + :END: + And let’s face it: we all at one point just wanted to commit our code + without thinking about the message, to just get over with it. Don’t worry, + I got you covered. + #+BEGIN_SRC fish :tangle + abbr randcommit 'git commit -m (curl -s whatthecommit.com/index.txt)' + #+END_SRC + +**** Prolog + :PROPERTIES: + :CUSTOM_ID: h-cbb6c31e-faaa-48c3-a83a-d1f143fdcb8d + :END: + When I launch =swipl=, I prefer to have my terminal cleaned before and + after it runs, I find it more clean. + #+BEGIN_SRC fish :tangle yes + abbr swipl 'clear && swipl -q && clear' + #+END_SRC + +**** Text editors + :PROPERTIES: + :CUSTOM_ID: h-51155e06-872d-4a12-9bf7-ae5eabc256ad + :END: + I greatly prefer to use Emacsclient as my main text editor; Emacs has + basically all I need. So, it’s only normal I have an abbreviation to launch + a new instance of it. + #+BEGIN_SRC fish :tangle yes + abbr e 'emacsclient -c' + #+END_SRC + However, in a graphical environment, this will launch a new graphical + window of Emacs. To launch a terminal instance, I’ll use =enw= (=nw= stands + for the option “nowindow” =-nw= of Emacs). + #+BEGIN_SRC fish :tangle yes + abbr enw 'emacsclient -c -nw' + #+END_SRC + + I also have the abbreviation =vi= which refers to =vim=. I really should + learn =vi=, but I also really don’t feel like it. + #+BEGIN_SRC fish :tangle yes + abbr vi vim + #+END_SRC + +*** LaTeX + :PROPERTIES: + :CUSTOM_ID: h-a8f8a707-90d7-4784-982d-d959b183148e + :END: + Yes, although I use org-mode, I still have some use for LaTeX, especially + when it comes to PDF exports of my org files. Hence why I use the LaTeX + package manager. It is recommended to use =tllocalmgr= instead of =tlmgr=, + but I can never remember the command, and the latter is faster to type, so + time for an abbreviation. + #+BEGIN_SRC fish :tangle yes + abbr tlmgr tllocalmgr + #+END_SRC + + #+BEGIN_SRC fish :tangle yes + abbr texhash 'sudo texhash' + #+END_SRC + +*** Some security measures + :PROPERTIES: + :CUSTOM_ID: h-dd97ea71-c43f-4b79-8bb7-1f857284b1b4 + :END: + Some commands can be quite dangerous when not used properly, which is why I + added default flags and options so I can get warnings before things get + ugly. + #+BEGIN_SRC fish :tangle yes + abbr cp 'cp -i' + abbr ln 'ln -i' + abbr lns 'ln -si' + abbr mv 'mv -i' + abbr rm 'rm -I' + abbr rmd 'rm --preserve-root -Ir' + abbr rmdf 'rm --preserve-root -Irf' + abbr rmf 'rm --preserve-root -If' + #+END_SRC + The =-i= and =-I= add prompts in case we might not want to do what we asked + the shell to do. Notice =lns= which creates symlinks, =rmd= which removes + directories, =rmf= which forces deletion, and =rmdf= which forces the + delition of a directory. Notice also the =--preserve-root= which will + prevent me from accidentally removing the root folder. I added the same + option to =chgrp=, =chmod=, and =chown=. + #+BEGIN_SRC fish :tangle yes + abbr chgrp 'chgrp --preserve-root' + abbr chmod 'chmod --preserve-root' + abbr chown 'chown --preserve-root' + #+END_SRC + +*** Typos + :PROPERTIES: + :CUSTOM_ID: h-4c5a03cd-20a8-437e-87b7-af990780084e + :END: + Let’s admit it, we all make typos from time to time in the shell, and some + are recurrent enough we make abbreviations or aliases of the correct + command. Well, I have some of my abbreviations which were make exactly + because of this. + + Sometimes for some reasons, my brain makes me write =clean= instead of + =clear=. So, let’s just replace the former by the latter. + #+BEGIN_SRC fish :tangle yes + abbr clean clear + #+END_SRC + + I’m also very bad at typing =exit=. + #+BEGIN_SRC fish :tangle yes + abbr exi exit + abbr exti exit + #+END_SRC + + And sometimes I suck at typing =htop=. + #+BEGIN_SRC fish :tangle yes + abbr hotp htop + #+END_SRC + +*** Misc + :PROPERTIES: + :CUSTOM_ID: h-3a237ec0-c535-42c7-9c60-3d083745b643 + :END: + Finally, some miscellaneous abbreviations that don’t really fit into any of + the above categories. + +**** Sudo + :PROPERTIES: + :CUSTOM_ID: h-0955e2fc-ec25-41b6-814a-929fa3718dda + :END: + First, I make it so that =sudo= comes with the =-A= switch in order to call + my custom graphical script for getting my password (see + [[file:~/.local/bin/askpass][.local/bin/askpass]]). I also made it so =please= is an equivalent to =sudo + -A= as a joke. + #+BEGIN_SRC fish :tangle yes + abbr sudo 'sudo -A' + abbr please 'sudo -A' + #+END_SRC + +**** Exit + :PROPERTIES: + :CUSTOM_ID: h-8cf0e895-b919-41a8-ad3d-c5294dc507fd + :END: + Sometimes I find it easier to just type =q= instead of =exit=. + #+BEGIN_SRC fish :tangle yes + abbr q exit + #+END_SRC + +**** History + :PROPERTIES: + :CUSTOM_ID: h-162052c5-63c4-435a-b973-422346522c69 + :END: + I also find it more intuitive and faster to just write =hist= instead of + =history=, so let’s declare that. + #+BEGIN_SRC fish :tangle yes + abbr hist history + #+END_SRC + +**** Song download from YouTube + :PROPERTIES: + :CUSTOM_ID: h-4bc663a9-b609-4c86-9a4d-a220013c67f9 + :END: + When I want to download a song from YouTube, I’ll just use the command + =flac videoIdentifier= to get it through =youtube-dl=. + #+BEGIN_SRC fish :tangle yes + abbr flac 'youtube-dl -x --audio-format flac --audio-quality 0' + #+END_SRC + +**** MPV + :PROPERTIES: + :CUSTOM_ID: h-3fd5a7eb-4ed4-4b0b-87ca-28f36fb22793 + :END: + When it comes to mpv, I do not want to force it to open a graphical window + if for example I want to listen to an audio file. I also do not want any + border on that window. So, I declared this abbreviation. + #+BEGIN_SRC fish :tangle yes + abbr mpv 'mpv --no-border --force-window=no' + #+END_SRC + +**** Compression + :PROPERTIES: + :CUSTOM_ID: h-05919be3-360a-45c6-8c89-76836375d55b + :END: + It seems it’s just like many other people, but I cannot for the life of me + remember the syntax of =tar=. So, I made the following abbreviations, and + one day hopefully, after seeing the abbreviations’ expansion over and over + I’ll remember the command like I did for the abbreviation of =remove= (see + [[#h-281a59aa-4ea0-47ab-a4cc-33fff8d38165][Package management]]). + #+BEGIN_SRC fish :tangle yes + abbr compress 'tar -czf' + abbr untar 'tar -xvzf' + #+END_SRC + +**** Feh + :PROPERTIES: + :CUSTOM_ID: h-41cfc583-14ba-4f15-9578-bc37b432a3ce + :END: + Some sane default options for =feh=, including auto-zoom to fit the picture + to the window, a borderless window, and again scale the image to fit the + window geometry. + #+BEGIN_SRC fish :tangle yes + abbr feh 'feh -Zx.' + #+END_SRC + +**** ls + :PROPERTIES: + :CUSTOM_ID: h-9980009d-3fc4-4e2e-861b-1af007212f8d + :END: + Yep, an abbreviation of =ls= called =lsl=. It allows me to view all the + files in a directory as a list with detailed, human-readable information. + #+BEGIN_SRC fish :tangle yes + abbr lsl 'ls -ahl' + #+END_SRC + +**** NetworkManager + :PROPERTIES: + :CUSTOM_ID: h-5f9d4866-3086-4ed9-9ff3-d80a0af36593 + :END: + This is just =nmcli= with sane default options, that is a pretty output + with colors. + #+BEGIN_SRC fish :tangle yes + abbr nmcli 'nmcli -p -c auto' + #+END_SRC + +**** Wget + :PROPERTIES: + :CUSTOM_ID: h-74f84f1c-433d-488a-88a7-89915c1a3bd5 + :END: + By default, continue a download that was interupted. + #+BEGIN_SRC fish :tangle yes + abbr wget 'wget -c' + #+END_SRC