Compare commits

...

30 Commits

Author SHA1 Message Date
b0c5edc100 increase basedness of keybinds 2025-03-17 08:45:23 -06:00
f8fe872aff command updates 2024-12-08 21:20:13 -07:00
3900d6e89d use nvim by default 2024-08-30 05:21:00 +00:00
a03739b204 make sure the new user has a home 2024-08-05 21:01:39 +00:00
e8daa5f7f7 Update .local/bin/chroot-gen 2024-08-05 20:46:41 +00:00
4df4be69b7 add coc plugins 2024-07-25 16:25:15 +00:00
5a9d8f991d add cursor line back 2024-05-14 18:28:30 +00:00
Oliver Atkinson
4b4fcd7e0a move xresources to new x11 folder 2024-04-30 13:13:52 -06:00
Oliver Atkinson
308940981f Merge branch 'main' of https://git.oliveratkinson.net/Oliver/config 2024-04-30 13:12:07 -06:00
Oliver Atkinson
b8251a5695 add file operation aliases 2024-04-30 13:10:47 -06:00
Oliver Atkinson
87bc2b297c cleaning up home 2024-04-30 13:03:42 -06:00
Oliver Atkinson
3510290e3d moved to x11 folder 2024-04-30 13:03:30 -06:00
Oliver Atkinson
b05bb89bca x11 get's own folder 2024-04-30 13:03:13 -06:00
Oliver Atkinson
80e5eae7bf move aliases to own file 2024-04-30 13:02:59 -06:00
5e4a1adff7 add script 2024-03-12 19:08:46 -06:00
9c83663b89 tar gzip script 2024-01-15 03:23:45 -07:00
ac4d1a97a5 use the nvim version lmao 2024-01-05 04:42:44 +00:00
3d97c89e87 fix typing for weird strings 2023-12-31 04:58:33 +00:00
78237afa2a Fixed names for when files have spaces in them 2023-12-30 16:30:57 -07:00
632653808b Added cli options. Fixed copy logic for directories 2023-12-30 16:05:16 -07:00
d80d426a68 Update README.md 2023-12-27 04:20:01 +00:00
eb64c319de make bash default shell 2023-12-14 10:01:02 +00:00
0842e2d353 add PS1 incase of bash useage 2023-12-14 02:52:57 -07:00
1abf7f48e2 fix up home dir handling 2023-12-14 02:45:44 -07:00
be2aa79a37 add bash to commands 2023-12-14 02:36:39 -07:00
ad58d4f3cd clean up messages 2023-12-14 02:36:15 -07:00
9ca6bed8f1 restart sshd service 2023-12-14 02:32:30 -07:00
d2cc661ed8 fix chrootdir perms 2023-12-14 02:31:31 -07:00
c75ebcfef6 create new home dir 2023-12-14 09:27:11 +00:00
b4813fb1de jail to correct dir 2023-12-14 09:15:12 +00:00
13 changed files with 157 additions and 64 deletions

55
.bashrc
View File

@@ -7,32 +7,43 @@
# alias ls='ls --color=auto'
PS1='\[\e[38;5;249m\]+$(jobs | wc -l)\[\e[38;5;24m\][$(ip route get 1.1.1.1 2>/dev/null | awk -F"src " '"'"'NR==1{split($2,a," ");print a[1]}'"'"')\[\e[38;5;46m\]:\[\e[38;5;208m\]\W\[\e[38;5;24m\]]\$ \[\e[0m\]'
alias luamake=/home/oliver/sources/lua-language-server/3rd/luamake/luamake
alias l=lfcd
alias clip="xclip -selection clipboard"
alias phone="simple-mtpfs"
alias bell="paplay /usr/share/sounds/freedesktop/stereo/complete.oga"
alias usage="du -h -d 1 2> /dev/null | sort -h"
# For laptop multi-gpu offloading
alias nvidia_gpu="DRI_PRIME=1 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"
# Opinionated defaults
alias feh="swallow feh --force-aliasing --draw-exif --scale-down --draw-filename"
alias ffplay="swallow ffplay $@"
alias shutdown="shutdown -P now"
alias untar="tar -xvf $@"
alias cura="cura5 -platformtheme gtk3"
export DENO_INSTALL="/home/oliver/.deno"
export PATH="$PATH:$DENO_INSTALL/bin:$HOME/.cargo/bin:$HOME/.local/bin/"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export TORCH_CUDA_VERSION="cu117"
export LIBTORCH="/home/oliver/sources/libtorchcxx11"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${LIBTORCH}/lib"
export WINEPREFIX="$HOME/.wine/"
export DXVK_HUD="fps,compiler"
export EDITOR="nvim"
export TZ='America/Denver'
# XDG
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_DATA_HOME="$HOME/.local/share"
# Clean ~/
# Languages
export GOPATH="$XDG_DATA_HOME/go"
export GOMODCACHE="$XDG_DATA_HOME/go/mod"
export RBENV_ROOT="$XDG_DATA_HOME/rbenv"
export PYENV_ROOT="$XDG_DATA_HOME/pyenv"
export CARGO_HOME="$XDG_DATA_HOME/cargo"
export RUSTUP_HOME="$XDG_DATA_HOME/rustup"
export DENO_INSTALL="$XDG_DATA_HOME/deno"
export DOTNET_CLI_HOME="$XDG_DATA_HOME/dotnet"
export PYTHON_HISTORY="$XDG_CACHE_HOME/pyhton_history"
# Programs
export LESSHIST="-"
export WINEPREFIX="$XDG_CONFIG_HOME/wine"
export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
export XAUTHORITY="$XDG_CONFIG_HOME/x11/Xauthority"
export GIT_CONFIG_GLOBAL="$XDG_CONFIG_HOME/gitconfig"
export HISTFILE="$XDG_CACHE_HOME/bash_history"
# Would need to be run as root, prevents the creation of "~/.sudo_as_admin_successful"
# echo Default !admin_flag >> /etc/sudoers.d/disable_saas
# Paths
export PATH="$PATH:$HOME/.local/bin/"
export PATH="$PATH:$CARGO_HOME/bin:$DENO_INSTALL/bin:$PYENV_ROOT/bin"
lfcd() {
tmp="$(mktemp)"
lfrun -last-dir-path="$tmp" "$@"
@@ -47,3 +58,9 @@ lfcd() {
fi
fi
}
# Load aliases from file
if [ -f $XDG_CONFIG_HOME/aliasrc ]; then
. $XDG_CONFIG_HOME/aliasrc
fi

36
.config/aliasrc Normal file
View File

@@ -0,0 +1,36 @@
#!/bin/sh
# New commands
alias clip="xclip -selection clipboard"
alias phone="simple-mtpfs"
alias bell="paplay /usr/share/sounds/freedesktop/stereo/complete.oga"
alias usage="du -h -d 1 2> /dev/null | sort -h"
# alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# For laptop multi-gpu offloading
alias nvidia_gpu="DRI_PRIME=1 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"
# Opinionated defaults
alias feh="swallow feh --force-aliasing --draw-exif --scale-down --draw-filename"
alias ffplay="swallow ffplay $@"
alias shutdown="shutdown -P now"
alias untar="tar -xvf $@"
alias cura="cura5 -platformtheme gtk3"
alias cp="cp -iv"
alias mv="mv -iv"
alias rm="rm -vI"
alias vim="nvim"
# User lfcd by default (it should exist), fall back
# to ranger if lfcd isn't found. IDK why you wouldn't
# have either
[ -x "$(command -v ranger)"] && alias l=". ranger"
[ -x "$(command -v lfcd)" ] && alias l="lfcd"
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
fi

View File

@@ -25,7 +25,6 @@ set tabstop=4 shiftwidth=4 smarttab
highlight Comment ctermfg=Grey
nnoremap <silent> <leader>p :split +term <CR>
" =============== NERDTree ================================================
" Toggle file browser
nnoremap <silent> <leader>e :NERDTreeToggle<CR>
@@ -37,7 +36,7 @@ let g:onedark_config = {
colorscheme onedark
hi CocFloating guibg=#151515 guifg=clear
hi Pmenu guibg=#151515 guifg=clear
hi @parameter guifg=#ed6215
" hi @parameter guifg=#ed6215
hi CursorColumn guibg=#e2c792 guifg=#232326
" =============== NERDTree Config ================================================
@@ -63,16 +62,16 @@ endfunction
autocmd CursorHold * silent call CocActionAsync('highlight')
" coc rename
nnoremap <silent> <leader>r <Plug>(coc-rename)
nmap <leader>r <Plug>(coc-rename)
" Jump between references and definiton
nnoremap <silent> <C-k> :call CocActionAsync('jumpReferences')<CR>
nnoremap <silent> K :call CocActionAsync('jumpDefinition')<CR>
nnoremap <leader>j :call CocActionAsync('jumpReferences')<CR>
nnoremap <leader>k :call CocActionAsync('jumpDefinition')<CR>
" show help menu
nnoremap <C-u> :call CocActionAsync('codeAction', 'cursor')<CR>
nnoremap <leader>d :call CocActionAsync('codeAction', 'cursor')<CR>
nnoremap <leader>a :call CocActionAsync('runCommand', 'editor.action.formatDocument')<CR>
" Show Documentation
nnoremap <silent> J :call ShowDocumentation()<CR>
nnoremap <leader>f :call ShowDocumentation()<CR>
function! ShowDocumentation() " Show hover when provider exists, fallback to vim's builtin behavior.
if CocAction('hasProvider', 'hover')
call CocActionAsync('definitionHover')

View File

@@ -1,7 +1,8 @@
#!/bin/sh
x11_home="$XDG_CONFIG_HOME/x11"
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
userresources=$x11_home/Xresources
usermodmap=$x11_home/Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

View File

@@ -1,3 +1,2 @@
#!/bin/bash
paplay /usr/share/sounds/freedesktop/stereo/complete.oga
pw-play /usr/share/sounds/freedesktop/stereo/complete.oga

2
.local/bin/brightness Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
xrandr | grep " connected" | awk '{print $1}' | xargs -I% xrandr --output % --brightness $1

View File

@@ -1,7 +1,9 @@
#!/bin/bash
# Adapted from LinuxConfig.org
# GNU GPL v3.0+
CMDS="mkdir touch mv rm ls grep cat vim"
# cmds build into bash: echo, cd
CMDS="bash clear mkdir touch mv rm ls grep cat vim"
USER=$1
CMDS=($CMDS) # convert to array
@@ -9,13 +11,26 @@ CMDS=($CMDS) # convert to array
if ! id "$USER" 2&>/dev/null; then
echo 'INFO: User not found'
echo 'Creating...'
useradd -m $USER
useradd --create-home --shell /usr/bin/bash $USER
echo "Password for $USER:"
passwd $USER
fi
CHROOT=$(eval echo ~$USER)
printf "Match User $USER\n ChrootDirectory $CHROOT$CHROOT" > /etc/ssh/sshd_config.d/70-$USER.conf
mkdir -p $CHROOT$CHROOT # make new home dir
chown $USER:$USER $CHROOT$CHROOT
echo "PS1='\[\e[38;5;202m\][\[\e[38;5;45m\]\h\[\e[38;5;202m\]:\[\e[38;5;40m\]\W\[\e[38;5;202m\]]\\$ \[\e[0m\]'" > $CHROOT$CHROOT/.bashrc
# ChrootDirectory requires these permissions
chown root:root $CHROOT
chmod 745 $CHROOT
printf "Match User $USER\n ChrootDirectory $CHROOT" > /etc/ssh/sshd_config.d/70-$USER.conf
# cp user and group into chroot
mkdir -p $CHROOT/etc/
cat /etc/passwd | grep $USER > $CHROOT/etc/passwd
cat /etc/group | grep $USER > $CHROOT/etc/group
# cp in all commands and dependencies
for cmd in "${CMDS[@]}"; do
@@ -25,14 +40,9 @@ for cmd in "${CMDS[@]}"; do
cp --parents $(which $cmd) $CHROOT
done
# cp user and group into chroot
mkdir -p $CHROOT/etc/
cat /etc/passwd | grep $USER > $CHROOT/etc/passwd
cat /etc/group | grep $USER > $CHROOT/etc/group
SHELL=$(cat /etc/passwd | grep $USER | tr ":" "\n" | tail -n 1)
if [ ! -f $CHROOT$SHELL ]; then
echo "WARN: You didn't add the shell specified in /etc/passwd for $USER: ($SHELL)"
echo "WARN: You didn't add the shell specified in /etc/passwd for \"$USER\": ($SHELL)"
fi
# ARCH amd64
@@ -45,7 +55,4 @@ if [ -f /lib/ld-linux.so.2 ]; then
cp --parents /lib/ld-linux.so.2 /$CHROOT
fi
echo "NOTE: If you are using a shell that is NOT /bin/bash, you need to tell"
echo " chroot that by using: chroot $CHROOT {other shell path}"
echo ""
echo "Chroot jail is ready. To access it execute: chroot $CHROOT"
systemctl restart sshd

View File

@@ -5,4 +5,4 @@ for (( i=1; i<4; i++ )); do
sleep 1
done
echo "Go!"
xdotool type $(xclip -o)
xclip -o | xdotool type --file -

2
.local/bin/srt-mp4-embed Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/bash
ffmpeg -i "$1" -i "$2" -c:s mov_text -c:v copy -c:a copy $(basename "$1").embed.mp4

View File

@@ -1,31 +1,45 @@
#!/bin/bash
# ssh-encode FILE SSH-ALIAS
FILE=$1
OTHER=$2
EXTENSION=".new.mp4"
# probably best this file is on a tmpfs mount as to reduce
# rw wear
TEMP="/tmp/"
__usage="Usage: $(basename $0) FILE [ssh alias]
Options:
[FILE], Input video file
[ssh alias], The alias setup in ~/.ssh/config (default location)
See: ssh_config(5)
-d, Delete origional file
Notes:
The file will be copied to the remote computer and then the new file movied to the local computer.
This can use lots of bandwidth. Plan accordingly.
"
if [[ -z $1 ]];
then
echo "$__usage"
echo "Pass the file to encode as the first argument."
exit
fi
if [[ -z $2 ]];
then
echo "$__usage"
echo "Pass the ssh alias of the remote device as the second argument."
exit
fi
# move file to other's temp drive
scp $FILE $OTHER:$TEMP
# use ffmpeg to encode on other computer
ssh $OTHER "ffmpeg -y -i $TEMP$FILE -vcodec h264_nvenc -acodec aac -pix_fmt yuv420p -g 15 -movflags frag_keyframe+empty_moov $TEMP$FILE$EXTENSION"
# move file back
scp $OTHER:$TEMP$FILE$EXTENSION .
# delete temp file
ssh $OTHER "rm $TEMP$FILE; rm $TEMP$FILE$EXTESION"
FILE=$1
BASE=$(basename "$FILE")
OTHER=$2
EXTENSION=".new.mp4"
TEMP="/tmp/" # don't put in a dir with spaces
# move file to other's temp drive
scp "$FILE" $OTHER:$TEMP
# use ffmpeg to encode on other computer
ssh $OTHER "ffmpeg -y -i $TEMP\"$BASE\" -vcodec hevc -filter:v scale=-2:720 $TEMP\"$BASE\"$EXTENSION"
# move file back
scp $OTHER:$TEMP"$BASE"$EXTENSION "$FILE"$EXTENSION
# delete temp file
ssh $OTHER "rm $TEMP\"$FILE\"; rm $TEMP\"$FILE\"$EXTENSION"
if [[ $3 == "-d" ]];
rm $FILE
then

5
.local/bin/tgz Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
tar cvf $1.tar $1
gzip --best $1.tar
rm $1.tar

View File

@@ -1,2 +1,13 @@
# config
These are my configs for my personal linux systems (AwesomeWM / X11)
## Installation
This is needed to install nvim plugins
```bash
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
```
otherwise just copy the .local and .config folders into your system's
## Coc plugins
* coc-pyright
* coc-rust-analyzer