moved config.org to README.org
This commit is contained in:
parent
6b98792d32
commit
c26f33fd34
@ -1 +0,0 @@
|
||||
config.org
|
550
.config/fish/README.org
Normal file
550
.config/fish/README.org
Normal file
@ -0,0 +1,550 @@
|
||||
#+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: <meta name="description" content="Phundrak's fish config" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's fish config" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the fish config file of Phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <script src="https://kit.fontawesome.com/4d42d0c8c5.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <link rel="shortcut icon" href="https://cdn.phundrak.fr/img/mahakala-128x128.png" type="img/png" media="screen" />
|
||||
#+HTML_HEAD_EXTRA: <link rel="shortcut icon" href="https://cdn.phundrak.fr/img/favicon.ico" type="image/x-icon" media="screen" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:image" content="https://cdn.phundrak.fr/img/rich_preview.png" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:card" content="summary" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:site" content="@phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:creator" content="@phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <style>.org-svg{width:auto}</style>
|
||||
#+INFOJS_OPT: view:info toc:1 home:https://phundrak.fr/ toc:t
|
||||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" href="https://langue.phundrak.fr/css/htmlize.min.css"/>
|
||||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" href="https://langue.phundrak.fr/css/main.css"/>
|
||||
#+HTML_HEAD_EXTRA: <script src="https://langue.phundrak.fr/js/jquery.min.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <script defer src="https://langue.phundrak.fr/js/main.js"></script>
|
||||
|
||||
* 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
|
||||
:HEADER-ARGS: :tangle config.fish :exports code
|
||||
: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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr remove 'sudo pacman -Rscnd'
|
||||
#+END_SRC
|
||||
|
||||
And if I want to install something, I just have to type =install=.
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr tlmgr tllocalmgr
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr clean clear
|
||||
#+END_SRC
|
||||
|
||||
I’m also very bad at typing =exit=.
|
||||
#+BEGIN_SRC fish
|
||||
abbr exi exit
|
||||
abbr exti exit
|
||||
#+END_SRC
|
||||
|
||||
And sometimes I suck at typing =htop=.
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr wget 'wget -c'
|
||||
#+END_SRC
|
@ -1,550 +0,0 @@
|
||||
#+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: <meta name="description" content="Phundrak's fish config" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's fish config" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the fish config file of Phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <script src="https://kit.fontawesome.com/4d42d0c8c5.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <link rel="shortcut icon" href="https://cdn.phundrak.fr/img/mahakala-128x128.png" type="img/png" media="screen" />
|
||||
#+HTML_HEAD_EXTRA: <link rel="shortcut icon" href="https://cdn.phundrak.fr/img/favicon.ico" type="image/x-icon" media="screen" />
|
||||
#+HTML_HEAD_EXTRA: <meta property="og:image" content="https://cdn.phundrak.fr/img/rich_preview.png" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:card" content="summary" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:site" content="@phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <meta name="twitter:creator" content="@phundrak" />
|
||||
#+HTML_HEAD_EXTRA: <style>.org-svg{width:auto}</style>
|
||||
#+INFOJS_OPT: view:info toc:1 home:https://phundrak.fr/ toc:t
|
||||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" href="https://langue.phundrak.fr/css/htmlize.min.css"/>
|
||||
#+HTML_HEAD_EXTRA: <link rel="stylesheet" href="https://langue.phundrak.fr/css/main.css"/>
|
||||
#+HTML_HEAD_EXTRA: <script src="https://langue.phundrak.fr/js/jquery.min.js"></script>
|
||||
#+HTML_HEAD_EXTRA: <script defer src="https://langue.phundrak.fr/js/main.js"></script>
|
||||
|
||||
* 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
|
||||
:HEADER-ARGS: :tangle yes
|
||||
: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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr remove 'sudo pacman -Rscnd'
|
||||
#+END_SRC
|
||||
|
||||
And if I want to install something, I just have to type =install=.
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr tlmgr tllocalmgr
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr clean clear
|
||||
#+END_SRC
|
||||
|
||||
I’m also very bad at typing =exit=.
|
||||
#+BEGIN_SRC fish
|
||||
abbr exi exit
|
||||
abbr exti exit
|
||||
#+END_SRC
|
||||
|
||||
And sometimes I suck at typing =htop=.
|
||||
#+BEGIN_SRC fish
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
abbr wget 'wget -c'
|
||||
#+END_SRC
|
Loading…
Reference in New Issue
Block a user