init upload

This commit is contained in:
Luxferre
2026-03-04 11:25:39 +02:00
commit 6e826f2603
8 changed files with 163 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
# Servalias: a shell alias system friendly for your paws
## What is it?
Servalias is a curated, forever free, modular shell alias collection for Unix-like operating systems, designed to make routine tasks much easier.
All the aliases provided in this repo are designed to be POSIX-compatible.
## Installation
First, clone the repo and remove the cruft:
```
git clone https://codeberg.org/luxferre/servalias.git ~/.aliases && rm -rf ~/.aliases/.git ~/.aliases/README.md
```
Then, append the following line to your shell's RC file (for Bash, it's usually `.bashrc`):
```
[ -f ~/.aliases/main ] && . ~/.aliases/main
```
## Modules
By default, Servalias is shipped with the following modules:
* `main`: the entry point that contains the alias management framework, **do not touch unless absolutely necessary**;
* `core`: the core commands that can be reused within any other module;
* `sys`: OS-specific stuff that's supposed to be modified according to your distribution (the included alias set is for Void Linux);
* `net`: aliases related to any networking activity;
* `dev`: aliases related to any development or DevOps activity;
* `media`: multimedia-related aliases;
* `custom`: aliases created automatically via other commands, like `savealias` (see below).
Every module can be edited with the `aliases-[modulename]` command (e.g. `aliases-net`). These commands use the `$EDITOR` environment variable to open corresponding files, defaulting to `vim` if such a variable isn't set.
## Custom aliases
Once Servalias is plugged into your shell, you can do all sorts of tricks with custom alias definitions.
Scenario 1: you need to define an alias that uses positional parameters within your command. The standard `alias` would require some sort of function wrapping to achieve this. For this purpose, the `defalias` macro exists here. You just write `defalias myname '...all sorts of crazy stuff...'` and you'll see the alias being saved properly with all the wrappers applied.
Scenario 2: you have come up with a really long command line that you have tested and want to turn into an alias right away. To do this without additional copy-pasting, use the `toalias [name]` macro. It will take the most recent line in your command history and turn it into a ready-to-use alias.
Scenario 3: you have created a new alias (with the usual `alias` command or with Servalias macros like `defalias` or `toalias`) and really liked it, but now you want to save it to reuse in future shell sessions. Again, to avoid any copy-pasting, the `savealias [name]` command allows you to save any live alias of your choice into the `custom` module which will be reloaded alongside the others on the next session.
By the way, in case you prefer editing the files manually and not via `aliases-[modulename]` commands, you can apply your changes after saving the files with `reload-aliases` command.
## Credits
Created by Luxferre in 2026, released into public domain with no warranties.
+21
View File
@@ -0,0 +1,21 @@
# core aliases
# paginate any command output, but only in case it's necessary
alias pg='less -RXF'
# ultimate ls
defalias l 'ls -lahF --time-style=long-iso --color=always $* | less -RXF'
alias rootsh='sudo $SHELL'
alias doas=sudo
# ed maxout (requires rlwrap)
alias ee='rlwrap ed -p:'
alias eer='doas rlwrap ed -p:'
defalias edr 'ssh "$1" rlwrap ed -p: "$2"'
# one-line notetaking (in twtxt format)
alias n='echo -e "$(date -Im)\t$*" >> ~/n'
# rot13 masking
defalias r13 'echo "$*" | tr "A-Za-z" "N-ZA-Mn-za-m"'
+1
View File
@@ -0,0 +1 @@
# saved aliases will go here
+6
View File
@@ -0,0 +1,6 @@
# Development and DevOps-related aliases
# Git aliases
alias gcm='git commit -a -m'
alias gp='git push origin'
alias gpm='git push origin master'
+44
View File
@@ -0,0 +1,44 @@
# Servalias: shell-independent alias collection by Luxferre
# This is the core file to be included from the outside world
# (source as . $HOME/.aliases/main)
. $HOME/.profile
# set modules (order matters)
ALIAS_MODULES='core sys net dev media custom'
# detect the current alias file path, hardcode it for non-bash
ALIASES_MAIN="$BASH_SOURCE"
[ -z "$ALIASES_MAIN" ] && ALIASES_MAIN="$HOME/.aliases/main"
# set some editor
[ -z "$EDITOR" ] && EDITOR=vim
# get the alias directory
ALIASDIR="$(dirname "$ALIASES_MAIN")"
# these are the bedrock commands for alias manipulation
# live-reload all aliases from this collection
alias reload-aliases=". $ALIASES_MAIN"
# edit this file and then live-reload all aliases
alias aliases-main="$EDITOR $ALIASES_MAIN && reload-aliases"
# get the most recent command run on this shell
alias lastcmd='history | tail -q -n 2 | head -q -n 1 | sed "s/^[[:space:]]*[0-9]*[[:space:]]*//"'
# define complex, function-like command aliases that can handle positional parameters anywhere
alias defalias='___(){ __="$1";shift;alias $__="_$__(){ $*; };_$__"; };___'
# convert the last run command into an alias
defalias toalias 'defalias "$1" "$(lastcmd)";alias "$1"'
# save any live alias into the custom alias file
defalias savealias "[ -n \"\$1\" ] && echo \"alias \$(alias \$1 | sed 's/^alias //')\" >> ${ALIASDIR}/custom"
# load the alias modules
for mod in $ALIAS_MODULES; do
alias aliases-${mod}="$EDITOR ${ALIASDIR}/$mod && reload-aliases"
. ${ALIASDIR}/$mod
done
+9
View File
@@ -0,0 +1,9 @@
# Multimedia-related aliases
# pngcrush
alias pngc='pngcrush -ow'
# music grabber
alias musgrab='yt-dlp -t mp3'
alias radio='mpv --vid=no --sid=no --ytdl-format=bestaudio/best'
alias stream='mpv --ytdl-format="bestvideo[height<=?768][vcodec!=vp9]+bestaudio/best"'
+13
View File
@@ -0,0 +1,13 @@
# network activity related aliases
# itty-bitty-siting
defalias ibs 'cat $* | lzma -9 | base64 -w0 | xargs -0 printf "https://itty.bitty.site/#/%s\n"'
# some Tor-related aliases
# reset tor circuit for torified programs (requires control port 9051)
alias tornew='echo -e "AUTHENTICATE \"\"\r\nsignal NEWNYM\r\nQUIT" | nc 127.0.0.1 9051'
# most efficient downloads via Tor (torify + aria2)
alias toraria='torsocks aria2c --async-dns=false -x 16 -j 16'
alias websrv='python3 -m http.server'
+18
View File
@@ -0,0 +1,18 @@
# OS-specific aliases (may change according to your distro)
# Flatpak-specific
alias flatinst='sudo flatpak install flathub'
alias flatunseal='sudo flatpak override --filesystem=host'
alias flatrun='flatpak run'
alias flatupd='sudo flatpak update -y'
# Void-specific
alias pkgadd='sudo xbps-install -Sy'
alias pkgdel='sudo xbps-remove -oy'
alias pkgsearch='xbps-query -Rs'
alias xbpsup='sudo xbps-install -u xbps'
alias sysup='sudo xbps-install -Suy && sudo vkpurge rm all'
alias sysclean='sudo vkpurge rm all && sudo xbps-remove -OOoy'
# restore my layout
alias mykb='setxkbmap -option "grp:caps_toggle,grp_led:scroll,terminate:ctrl_alt_bksp" -layout "us,ua,ru" -variant "altgr-weur,phonetic,phonetic"'