You've already forked personal-linux-config
Compare commits
55 Commits
Author | SHA1 | Date | |
---|---|---|---|
1d8ec5e402 | |||
8d37dfd5ad | |||
bea9c85c9a | |||
0eb28cf6cc | |||
3c9736d165 | |||
759f0c9494 | |||
39cb410c3e | |||
d792ce8809 | |||
dc984eb128 | |||
5d6c22f1b8 | |||
c53a382a4f | |||
bcaffe612c | |||
391b85bea5 | |||
e24f3337a1 | |||
fdb5d070e4 | |||
ab8821aa4c | |||
4833a0a72e | |||
761f7cf482 | |||
fd349baa99 | |||
3c4e7d7858 | |||
756bfbc542 | |||
d235ac670d | |||
3a1f00ae34 | |||
8a87db917d | |||
dc2300b9cb | |||
464b77caa4 | |||
74d4d88ac6 | |||
42c11470b9 | |||
ae3732ebbb | |||
1c41cd039d | |||
799af1f6a1 | |||
c51a067dda | |||
8a8f304c1c | |||
ead9cb0d71 | |||
6dd1d386d1 | |||
9c4db7fef6 | |||
fe4a896ada | |||
c33ae90b33 | |||
09cf9b8bbe | |||
2913920987 | |||
ee267c0c50 | |||
6179e8d809 | |||
e8f69fbbad | |||
53752a866e | |||
a4885fa060 | |||
627282b2cc | |||
a8eaab7e81 | |||
6b2dded19a | |||
c8758fe259 | |||
597354356b | |||
f5fb8e5dc3 | |||
82f2d7a989 | |||
7d8f7312f1 | |||
9851de3007 | |||
8866dc5bec |
29
README.md
29
README.md
@@ -1,4 +1,27 @@
|
||||
# personal-kde-config
|
||||
Personal KDE and other Linux-related configs to help me succeed in life (or at least simplify it).
|
||||
# Personal Linux config
|
||||
Personal Linux-related configs to help me succeed in life (or at least simplify it).
|
||||
|
||||
Feel free to try this out, or even add "cool stuff" to help each other out!
|
||||
Feel free to try or poke around in the source (it's all human-readable bash), or heck even add "cool stuff" to help each other out!
|
||||
|
||||
## Usage
|
||||
Explaining section for not-so-intuitive configurations
|
||||
|
||||
- alias `sambaserver`: (¡requires Docker!) please `cd` into the directoy is needed to be shared and execute `sambaserver`, then just login with default username `user` and the default password `P4ssw0rd` with the host computer as URL/IP, autodiscovery of both the host and the share was tested working on Windows and a Samsung Tablet.
|
||||
- alias `sambastop`: (¡requires Docker!) when you're finished, this command stops and removes the samba container.
|
||||
- alias `termbin`: (¡requires Netcat!) use when piping a cat/echo/file/etc to upload to termbin.com
|
||||
|
||||
## Modular sourcing mechanism
|
||||
Create a file in your home directory called `~/.bash_sources`, and put a script path on every line of this file, it will be sourced automatically.<br>
|
||||
WARNING: it has to be a full path, for example `/path/to/script.sh` and not abbreviated (as in `~/script.sh`)... idk bash decided like so.<br>
|
||||
WARNING 2: every line needs to be a path to a file, not a direct command, sourcing a file is possible; souring an "export" or a function... not so much!
|
||||
|
||||
#### For example:
|
||||
`/home/user/.bash_sources`:
|
||||
```bash
|
||||
/home/user/.bash_path
|
||||
/path/to/some/other/script.sh
|
||||
```
|
||||
`/home/user/.bash_path`:
|
||||
```bash
|
||||
export PATH=~/bin/myproject/bin:$PATH
|
||||
```
|
||||
|
@@ -1,5 +1,15 @@
|
||||
for source in colored_commands convenience_aliases git_functions histcontrol ls_aliases safety_aliases terminal_colors terminal_fancyfying; do
|
||||
if [ -f ~/.bashrc_overrides/$source ]; then
|
||||
. ~/.bashrc_overrides/$source
|
||||
fi
|
||||
# Source all the overrides in this folder
|
||||
for source in $(find "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" -type f | grep -Ev "_all|terminal_fancyfying"); do
|
||||
. "${source}"
|
||||
done
|
||||
. "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)/terminal_fancyfying_${TERMINAL_FANCYFY}"
|
||||
|
||||
# If the file ~/.bash_sources exist, source every line it contains
|
||||
if [ -f ~/.bash_sources ]; then
|
||||
while IFS= read -r line; do
|
||||
# Skip empty lines and comments (#)
|
||||
if [ -n "$line" ] && ! [[ "$line" == \#* ]]; then
|
||||
. "$line"
|
||||
fi
|
||||
done < ~/.bash_sources
|
||||
fi
|
||||
|
@@ -1,3 +1,19 @@
|
||||
alias pubkey='cat ~/.ssh/id_rsa.pub'
|
||||
alias pubkey='for PUBKEY_FILE in $(ls ~/.ssh/id_*.pub); do echo "${PUBKEY_FILE} :" | sed -e "s/.*id_//;s/\.pub//"; cat "${PUBKEY_FILE}"; ssh-keygen -lf "${PUBKEY_FILE}" -E sha256; echo; done'
|
||||
alias taglist='git tag | tr - \~ | sort -V | tr \~ -'
|
||||
alias hosts='sudo nano /etc/hosts'
|
||||
alias historygrep='history | grep'
|
||||
alias sshconfig='nano ~/.ssh/config'
|
||||
alias aliases='nano ~/.bash_aliases'
|
||||
alias bashrc='. ~/.bashrc'
|
||||
alias sshagent='eval `ssh-agent` && ssh-add ~/.ssh/id_!(*.pub)'
|
||||
alias sshfingerprint='ssh-keygen -lf'
|
||||
alias nocomments='grep -vE "^$|^#|^;"'
|
||||
alias newrepo='bash <(curl -s https://get.bjphoster.com/new-git-repo.sh)'
|
||||
alias newansibleworkspace='bash <(curl -s https://get.bjphoster.com/new-ansible-workspace.sh)'
|
||||
alias infinitenothing='while true; do sleep 1; done'
|
||||
|
||||
alias sambaserver='docker run -dit --rm --name sambaserver -p 137:137 -p 138:138 -p 139:139 -p 445:445 -v `pwd`:/share dperson/samba -n -p -u "user;P4ssw0rd" -s "share;/share;yes;no;yes;user;user" -w "WORKGROUP"'
|
||||
alias sambastop='docker stop sambaserver; docker rm sambaserver'
|
||||
alias acme.sh='docker run -it --rm -v ~/acme.sh:/acme.sh neilpang/acme.sh'
|
||||
alias termbin='nc termbin.com 9999'
|
||||
alias dnsversion='dig txt chaos version.bind'
|
||||
|
9
bashrc_overrides/docker_aliases
Normal file
9
bashrc_overrides/docker_aliases
Normal file
@@ -0,0 +1,9 @@
|
||||
alias dockerpull='docker compose pull'
|
||||
alias dockerup='docker compose up'
|
||||
alias dockerupd='docker compose up -d'
|
||||
alias dockerdown='docker compose down'
|
||||
alias dockerdownv='docker compose down --volumes'
|
||||
alias dockerlogs='docker compose logs'
|
||||
alias dockerlogsf='docker compose logs --follow'
|
||||
alias dockerlogst='docker compose logs --tail=10'
|
||||
alias dockerlogstf='docker compose logs --tail=10 --follow'
|
@@ -21,3 +21,16 @@ __git_prompt() {
|
||||
__git_history() {
|
||||
echo "$(git log --oneline | cut -d ' ' -f 1)"
|
||||
}
|
||||
|
||||
tagpush() {
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: tagpush <tag>"
|
||||
return
|
||||
fi
|
||||
git tag "$1"
|
||||
# for every remote
|
||||
for REMOTE in $(git remote) ; do
|
||||
# push current branch and newly created tag
|
||||
git push "$REMOTE" $(git branch | grep "*" | sed 's/\* //') "$1"
|
||||
done
|
||||
}
|
||||
|
4
bashrc_overrides/home_bin_folder
Normal file
4
bashrc_overrides/home_bin_folder
Normal file
@@ -0,0 +1,4 @@
|
||||
# set PATH so it includes user's private bin if it exists
|
||||
if [ -d "$HOME/bin" ] ; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
@@ -1,4 +1,7 @@
|
||||
GIT_FUNCTIONS=true
|
||||
command -v git &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
GIT_FUNCTIONS=true
|
||||
fi
|
||||
|
||||
# Spaced
|
||||
#PS1="${LIGHTBLUE}[ ${LIGHTRED}\u ${LIGHTBLUE}@ ${LIGHTBROWN}$(hostname --fqdn) ${LIGHTBLUE}] ${LIGHTPURPLE}( ${GREEN}\w ${LIGHTPURPLE}) "
|
||||
@@ -7,10 +10,10 @@ GIT_FUNCTIONS=true
|
||||
# another version I really like
|
||||
PS1="${PURPLE}\# ${LIGHTBLUE}{${LIGHTGREEN}\u${BROWN}@${LIGHTGREEN}\$(hostname --fqdn)${LIGHTBLUE}} ${LIGHTPURPLE}[${CYAN}\w${LIGHTPURPLE}] "
|
||||
|
||||
if [ $GIT_FUNCTIONS ]; then
|
||||
if [ $GIT_FUNCTIONS = "true" ]; then
|
||||
#PS1="$PS1${LIGHTPURPLE}[${LIGHTCYAN}$(__git_prompt)${LIGHTPURPLE}]"
|
||||
PS1="$PS1${LIGHTBROWN}(${LIGHTCYAN}\$(__git_prompt)${LIGHTBROWN}) "
|
||||
fi
|
||||
|
||||
#PS1="$PS1${RED}#${FORMAT_RESET}"
|
||||
PS1="$PS1${RED}${FORMAT_BLINK}\$${FORMAT_RESET}"
|
||||
PS1="$PS1${RED}\$${FORMAT_RESET}"
|
16
bashrc_overrides/terminal_fancyfying_server
Normal file
16
bashrc_overrides/terminal_fancyfying_server
Normal file
@@ -0,0 +1,16 @@
|
||||
command -v git &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
GIT_FUNCTIONS=true
|
||||
fi
|
||||
|
||||
# Spaced
|
||||
#PS1="${LIGHTBLUE}[ ${LIGHTRED}\u ${LIGHTBLUE}@ ${LIGHTBROWN}$(hostname --fqdn) ${LIGHTBLUE}] ${LIGHTPURPLE}( ${GREEN}\w ${LIGHTPURPLE}) "
|
||||
# Not spaced
|
||||
PS1="${LIGHTBLUE}[${LIGHTRED}\u${LIGHTBLUE}@${LIGHTBROWN}$(hostname --fqdn)${LIGHTBLUE}]${LIGHTPURPLE}(${GREEN}\w${LIGHTPURPLE})"
|
||||
|
||||
if [ $GIT_FUNCTIONS = "true" ]; then
|
||||
#PS1="$PS1${LIGHTPURPLE}[${LIGHTCYAN}$(__git_prompt)${LIGHTPURPLE}]"
|
||||
PS1="$PS1${LIGHTBROWN}(${LIGHTCYAN}\$(__git_prompt)${LIGHTBROWN}) "
|
||||
fi
|
||||
|
||||
PS1="$PS1${RED}#${FORMAT_RESET}"
|
95
deploy.sh
95
deploy.sh
@@ -1,12 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
THIS="$(dirname "$(readlink -fm "$0")")"
|
||||
CLEANUP=true
|
||||
FANCYFY="client"
|
||||
CURRENT_FANCYFY=""
|
||||
DELETE=false
|
||||
MOVE=false
|
||||
PRESENT=false
|
||||
|
||||
_bashrc_present() {
|
||||
if [ ! -z "$(grep "#REF:bashrc_overrides:REF" ~/.bashrc)" ]; then
|
||||
echo true
|
||||
exit
|
||||
fi
|
||||
echo false
|
||||
}
|
||||
|
||||
_arguments() {
|
||||
if [ "$(_bashrc_present)" = true ]; then
|
||||
PRESENT=true
|
||||
CURRENT_FANCYFY="$(grep TERMINAL_FANCYFY ~/.bashrc | sed 's/.*=//')"
|
||||
fi
|
||||
for PARM in "$@"; do
|
||||
if [ "${PARM}" = "--no-cleanup" ]; then
|
||||
CLEANUP=false
|
||||
if [ "${PARM}" = "--server" ]; then
|
||||
FANCYFY="server"
|
||||
elif [ "${PARM}" = "--delete" ]; then
|
||||
DELETE=true
|
||||
elif [ "${PARM}" = "--move" ]; then
|
||||
MOVE=true
|
||||
elif [ "${PARM}" = "-h" ] || [ "${PARM}" = "--help" ]; then
|
||||
_help
|
||||
exit 0
|
||||
@@ -15,43 +35,70 @@ _arguments() {
|
||||
}
|
||||
|
||||
_help() {
|
||||
echo "Usage: $(readlink -fm "$0") [-h | --help] [--no-cleanup]"
|
||||
echo "Usage: $(readlink -fm "$0") [-h | --help] [--cleanup]"
|
||||
echo
|
||||
echo "Options:"
|
||||
echo " -h | --help : Prints this help message and quits"
|
||||
echo " --no-cleanup: Does not clean the source folder after adding the bash overrides"
|
||||
echo " -h | --help"
|
||||
echo " Prints this help message and quits"
|
||||
echo " --force"
|
||||
echo " Force the reinstallation of the files"
|
||||
echo " --delete"
|
||||
echo " Delete the reference in ${BASHRC}"
|
||||
echo " --move"
|
||||
echo " Create a new reference if the location of this folder has been changed"
|
||||
echo " --server"
|
||||
echo " Customizes the terminal feel for a server installation"
|
||||
echo
|
||||
}
|
||||
|
||||
_bash_overrides() {
|
||||
cp -r bashrc_overrides ~/.bashrc_overrides
|
||||
echo "#REF:bashrc_overrides:REF" >> ~/.bashrc
|
||||
echo "if [ -f ~/.bashrc_overrides/_all ]; then" >> ~/.bashrc
|
||||
echo " . ~/.bashrc_overrides/_all" >> ~/.bashrc
|
||||
echo "fi" >> ~/.bashrc
|
||||
_delete() {
|
||||
sed -i '/REF:bashrc_overrides:REF/{N;N;d}' ~/.bashrc
|
||||
}
|
||||
|
||||
_cleanup() {
|
||||
rm -rf ${THIS}
|
||||
_bashrc_ref() {
|
||||
echo "#REF:bashrc_overrides:REF" >> ~/.bashrc
|
||||
echo "export TERMINAL_FANCYFY=${1}" >> ~/.bashrc
|
||||
echo ". ${THIS}/bashrc_overrides/_all" >> ~/.bashrc
|
||||
}
|
||||
|
||||
_move() {
|
||||
_delete
|
||||
_bashrc_ref "${FANCYFY}"
|
||||
}
|
||||
|
||||
_main() {
|
||||
_arguments "$@"
|
||||
|
||||
if [ ! -z "$(grep "#REF:bashrc_overrides:REF" ~/.bashrc)" ]; then
|
||||
echo "bash overrides already in place"
|
||||
echo "skipping..."
|
||||
echo
|
||||
if [ "${DELETE}" = true ]; then
|
||||
_delete
|
||||
echo "removed custom configs"
|
||||
elif [ "${MOVE}" = true ]; then
|
||||
if [ "${PRESENT}" = false ]; then
|
||||
_bashrc_ref "${FANCYFY}"
|
||||
echo "unable to move to current directory"
|
||||
echo "bash overrides not previously present"
|
||||
echo "adding bash overrides..."
|
||||
echo
|
||||
else
|
||||
_move
|
||||
echo "moved custom config directory to ${THIS}"
|
||||
echo
|
||||
fi
|
||||
elif [ "${PRESENT}" = true ]; then
|
||||
if [ "${CURRENT_FANCYFY}" != "${FANCYFY}" ]; then
|
||||
sed -i "s/TERMINAL_FANCYFY=${CURRENT_FANCYFY}/TERMINAL_FANCYFY=${FANCYFY}/" ~/.bashrc
|
||||
echo "customized fancyfying"
|
||||
echo
|
||||
else
|
||||
echo "bash overrides already in place"
|
||||
echo "skipping..."
|
||||
echo
|
||||
fi
|
||||
else
|
||||
_bash_overrides
|
||||
_bashrc_ref "${FANCYFY}"
|
||||
echo "bash overrides added"
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ "${CLEANUP}" = true ]; then
|
||||
echo "cleaning up..."
|
||||
_cleanup
|
||||
fi
|
||||
}
|
||||
|
||||
_main "$@"
|
||||
|
Reference in New Issue
Block a user