init upload
This commit is contained in:
@@ -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.
|
||||
@@ -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"'
|
||||
@@ -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'
|
||||
@@ -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
|
||||
@@ -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"'
|
||||
@@ -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'
|
||||
@@ -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"'
|
||||
Reference in New Issue
Block a user