g-push
git push origin `git branch --show`
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
g-push
git push origin `git branch --show`
Not exactly a single script, but I use scm breeze for git stuff. Has a ton of QoL features for working with git
I wrote this suite of scripts a few years ago and still use them to:
cfg/cfg.sh
if it's the first time using the toolsetup.sh
to configure the environment into a familiar/productive stateThe tools are flexible on hardware (more directed toward x64 systems at this time), and I (almost) never have to worry about OS upgrades. Just boot into a newer live OS image once it's ready. They are still a work-in-progress and still have a few customizations that I should abstract for more general use, but it's FOSS in case anyone has merge requests, issues, suggestions, etc.
I alias traditional stuff to better, usually drop-in versions of that thing on computers that have the better thing. I often forget which systems have the better thing, so this helps me get the better experience if I was able to install it at some point. For example I alias cat to bat, or top to htop, or dig to drill, etc.
alias ed=$EDITOR
is my most used alias by far.
To save videos from certain streaming sites that are not supported by yt-dlp, I catch the M3U playlist used by the page and with that I use this script that gets ffmpeg to put together the pieces into a single file.
#!/bin/bash
if [ "$1" == "-h" ] || [ $# -lt 2 ]; then
echo Download a video from a playlist into a single file
echo usage: $(basename $0) PLAYLIST OUTPUT_VID
exit
fi
nbparts=$(grep ^[^#] $1 | wc -l)
echo -e "\e[38;5;202m Downloading" $(( nbparts - 1 )) "parts \e[00m"
time ffmpeg -hide_banner -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto -i $1 -codec copy $2
Because using docker can sometimes cause ownership issues if not properly configured in your docker-compose.yml, I just added an alias to ~/.zshrc to rectify that.
-edit- Only run this script in your user owned directories, e.g. anything from ~/ (or /home/<your_username>) you might otherwise cause ownership issues for your system.
## Set ownership of files/folders recursively to current user
alias iownyou="sudo chown -R $USER:$GROUP"
I replaced rm with trash-put, just in case I realize I need some files that I removed down the line.
alias rm='trash-put'
Official author don't recommend it due to different semantics. But honestly for my own personal use case its fine for me.
Also I like to alias xclip:
alias clippy='xclip -selection clipboard'
# cat things.txt | clippy
For me it's pretty basic. It's mostly aliases for nix related commands, like rebuild-switch, updating, garbage collecting, because those nix commands are pretty lenghty, especially with having to point to your flake and everything. I'm thinking of maybe adding an alias for cyanrip (cli cd ripper), because i recently ripped my entire cd collection, but going forward if i buy another cd every now and then, i'll probably end up forgetting about which flags i used.
Similar to yours OP I copy many URLs and then run my script that takes the number of URLs I copied eg 5,and downloads them with yt-dlp
and GNU parallel
to ~/Videos
I use CopyQ to hold the clipboard history.
#Create predefined session with multiple tabs/panes (rss, bluetooth, docker...)
tmux-start
#Create predefined tmux session with ncmpcpp and ueberzug cover
music
#Comfort
ls = "ls --color=auto"
please = "sudo !!"
#Quick weather check
weatherH='curl -s "wttr.in/HomeCity?2QF"'
#Download Youtube playlist videos in separate directory indexed by video order in playlist -> lectures, etc
ytPlaylist='yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s"'
#Download whole album -> podcasts primarily
ytAlbum='yt-dlp -x --audio-format mp3 --split-chapters --embed-thumbnail -o "chapter:%(section_title)s.%(ext)s"'
# download video -> extract audio -> show notification
ytm()
{
tsp yt-dlp -x --audio-format mp3 --no-playlist -P "~/Music/downloaded" $1 \
--exec "dunstify -i folder-download -t 3000 -r 2598 -u normal %(filepath)q"
}
# Provide list of optional packages which can be manually selected
pacmanOpts()
{
typeset -a os
for o in `expac -S '%o\n' $1`
do
read -p "Install ${o}? " r
[[ ${r,,} =~ ^y(|e|es)$ ]] && os+=( $o )
done
sudo pacman -S $1 ${os[@]}
}
# fkill - kill process
fkill() {
pid=$(ps -ef | sed 1d | fzf -m --ansi --color fg:-1,bg:-1,hl:46,fg+:40,bg+:233,hl+:46 --color prompt:166,border:46 --height 40% --border=sharp --prompt="➤ " --pointer="➤ " --marker="➤ " | awk '{print $2}')
if [ "x$pid" != "x" ]
then
kill -${1:-9} $pid
fi
}
Ooooh tmpv is a smart name for your little tool. I may steal it lol
Please do!
git() {
if [ "$1" = clone ]; then
shift
set -- clone --recursive "$@"
fi
command git "$@"
}
Is this just meant to make git clone always clone recursively?
Can't you do this with aliases in your .gitconfig?
yes it is. idk😄 i have a similar one for github-cli
ganis
:
git add -A && sudo nixos-rebuild switch --impure -j$(nproc)
Everyone who uses nixos probably has a similar alias set x)
Technically not an alias, because I just use nushell's history + autocompletion everytime I use it, but one could alias it. I think I might even write a custom command for it, with path
argument, some day. Anyway, here it goes:
rsync -aPh -e "ssh -p 2222" test@172.16.0.86:/storage/emulated/0/PicturesArchive/ ~/PicturesArchive/
I run an ssh daemon on my phone, and use this snippet to back up my photos.
Currently using this to resize screenshots in a Word doc
#Requires AutoHotkey v2.0
^+1:: { Send "{RButton}z{Tab 3}4{Enter}" }
# grep search the current directory
function lg() {
ls -alt | grep $1
}
I don't have anything too fancy. I use [theFuck(https://github.com/nvbn/thefuck) to handle typos, and I have some variables set to common directories that I use.
I have a few:
loginserver
dcompose(d/pull) - docker compose (down/pull)
3 scripts that are just docker compose up/down/pull, as scripts (remind me in 6 hours and I will post the scripts) so that it will CD to my compose folder, execute the command (with option for naming specific containers or blank for all) and then CD back to the directory I started in.