diff --git a/README.md b/README.md index 15d4966..8e3dc8c 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,22 @@ ## Configurations - [Neovim Nightly](https://github.com/neovim/neovim) -- [Wezterm](https://github.com/wez/wezterm) - [Fish Shell](https://github.com/fish-shell/fish-shell) - And more +Pick and choose - you might want to change some stuff (git config for example). + ## Fonts You will have to install the fonts I use in these dotfiles separately - [ttf-jetbrains-mono-nerd](https://github.com/ryanoasis/nerd-fonts) -## Nice programs to have +## Tools -- [ripgrep](https://github.com/BurntSushi/ripgrep) (used by nvim) -- [fd](https://github.com/sharkdp/fd) (used by nvim) -- [exa](https://github.com/ogham/exa) (ls replacement used by fish) +- [ripgrep](https://github.com/BurntSushi/ripgrep) `grep` alternative (used by nvim) +- [fd](https://github.com/sharkdp/fd) - `find` alternative (used by nvim) +- [lsd](https://github.com/lsd-rs/lsd) - `ls` alternative ## Usage @@ -27,8 +28,10 @@ cd ~/.dotfiles ``` - For automated dotfile linking use [just](https://github.com/casey/just) +- Use `just add target` where target is the config directory ``` +cd ~/.dotfiles just add fish just add nvim just add wezterm diff --git a/justfile b/justfile index 2fe54ac..0dca51f 100644 --- a/justfile +++ b/justfile @@ -1,8 +1,8 @@ add target: #!/bin/env sh + set -e target={{trim_end_matches(target, '/')}} - find $target -mindepth 1 | while read p - do + find $target -mindepth 1 | while read p; do t=~/`echo -n $p | sed "s/^$target\///" | sed s/dot-/./g` s="{{justfile_directory()}}/$p" if ( ! test -e $t ); then @@ -13,13 +13,13 @@ add target: remove target: #!/bin/env sh + set -e target={{trim_end_matches(target, '/')}} - find $target -mindepth 1 | while read p - do + find $target -mindepth 1 | while read p; do t=~/`echo -n $p | sed "s/^$target\///" | sed s/dot-/./g` if ( test -L $t ); then - rm $t && echo "rm $t" + rm $t && echo "Removing $t" fi done -# vim: set ft=sh : +# vim: set syntax=sh : diff --git a/scripts/.local/bin/share b/scripts/.local/bin/share deleted file mode 100755 index e44e0b3..0000000 --- a/scripts/.local/bin/share +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/env bash - -# share.sh - Shares a file with a link by uploading to a "Gokapi" backend -# Depends on: curl, jq, libsecret - -set -e - -URL="https://${SHARE_DOMAIN}/api/files/add" - -usage() { - printf "share - Share a file - -Usage: share [options] FILE - -Options: - -f \tName of the file that will be uploaded - -p \tPassword - -d \tAllowed nubmer of downloads - -e \tExpiry in days\n" -} - -[ $# -eq 0 ] && usage && exit 1 - -options=$(getopt "hp:d:e:f:" "$@") -eval set -- "$options" - -while true; do - case $1 in - -p) - shift - PASSWORD="$1" - ;; - -d) - shift - ALLOWED_DOWNLOADS="$1" - ;; - -e) - shift - EXPIRY_DAYS="$1" - ;; - -f) - shift - FILENAME="$1" - ;; - -h) - usage - exit 0 - ;; - --) - shift - break;; - esac - shift -done - -[ $# -eq 0 ] && usage && exit 1 || FILE=$1 - -if [ ! -f "$FILE" ] && [ $FILE != "-" ]; then - echo "File ${FILE} not found." - exit 1 -fi - -APIKEY=$(secret-tool lookup share apikey) -if [ ! "$APIKEY" ]; then - echo "Please enter your API key for Gokapi" - secret-tool store --label "API key for share.sh" share apikey - APIKEY=$(secret-tool lookup share apikey) -fi - -read RESULT ID URL HOTLINKURL HOTLINKID < <(echo $(curl -# -X POST \ - --fail \ - -F "file=@${FILE};filename=${FILENAME:-$FILE}" \ - -F "password=${PASSWORD}" \ - -F "allowedDownloads=${ALLOWED_DOWNLOADS:-0}" \ - -F "expiryDays=${EXPIRY_DAYS}" \ - -H "accept: application/json" \ - -H "apikey: ${APIKEY}" \ - -H "Content-Type: multipart/form-data" \ - "${URL}" | jq -r '.Result, .FileInfo.Id, .Url, .HotlinkUrl, .FileInfo.HotlinkId')) - -if [ $RESULT != "OK" ]; then - echo "An error occured when trying to upload the file." - echo "Result was: $RESULT" - exit 1 -fi - -echo "Uploaded url: ${URL}${ID}" -[ ! "$HOTLINKID" ] || echo "Hotlink: ${HOTLINKURL}${HOTLINKID}" diff --git a/scripts/.local/bin/shot b/scripts/.local/bin/shot deleted file mode 100755 index da74552..0000000 --- a/scripts/.local/bin/shot +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/env bash - -# shot - Take a screenshot and upload it -# Depends on: share - -filename=$(date "+%F_%T").png -flameshot_cmd="flatpak run org.flameshot.Flameshot" - -if command -v $flameshot_cmd &> /dev/null; then - $flameshot_cmd gui -r | ~/.local/bin/share -f $filename - | grep "Hotlink:" | cut -d ' ' -f2 | xclip -selection c \ - && notify-send "Shot" "Screenshot URL copied to clipboard" -else - echo "No supported screenshot program found" - exit 1 -fi diff --git a/zsh/.zshrc b/zsh/.zshrc deleted file mode 100644 index acd4b53..0000000 --- a/zsh/.zshrc +++ /dev/null @@ -1,98 +0,0 @@ -unsetopt beep -# unsetopt AUTO_MENU -# setopt MENU_COMPLETE -# setopt AUTO_CD - -# History -HISTFILE=~/.zsh_history -HISTSIZE=10000 -SAVEHIST=10000 -setopt HIST_IGNORE_ALL_DUPS -setopt EXTENDED_HISTORY -setopt APPEND_HISTORY - -if [ -e "/usr/share/fzf" ]; then - source /usr/share/fzf/key-bindings.zsh - source /usr/share/fzf/completion.zsh -fi - -### Aliases --------------------------------------------- -alias vim="nvim" -alias rm="rm -i" -alias mv="mv -i" -alias ls="exa --group-directories-first" -alias ll="ls -lh" -alias la="ls -lha" -alias grep="grep --color=auto" -alias less="less -r" -alias nnn="nnn -e" -[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh" -alias gs="git status" -alias gap="git add -p" -alias gc="git commit" -alias lg="lazygit" -### ----------------------------------------------------- - -# Fix keys -bindkey '^[[H' beginning-of-line -bindkey '^[[F' end-of-line -bindkey '^H' backward-delete-word -bindkey '^[[1;5D' backward-word -bindkey '^[[1;5C' forward-word -bindkey '^[[3~' delete-char -bindkey '^[[3;5~' delete-word - -### zsh-autosuggestions -ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#a6a6a6" -ZSH_AUTOSUGGEST_USE_ASYNC=1 -ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 -zle -N autosuggest-accept -bindkey '^ ' autosuggest-accept - -export ZISH_HOME=$HOME/.local/share/zish -export RUSTUP_HOME="$XDG_DATA_HOME"/rustup -export PATH="$PATH:$HOME/.local/bin" - -install_plugin() { - IFS='/' read group project <<< "$1" - repo=$1 - dir="$ZISH_HOME/repos/$repo" - shift - - while [ $# -gt 0 ]; do - IFS=':' read action value <<< "$1" - case $action in - "build") - build=$value - ;; - "use") - use=$dir/$value - ;; - esac - shift - done - - if [[ ! -d $dir ]]; then - mkdir -p $dir && cd $dir && git clone --depth=1 "https://github.com/$repo" . - [ -v build ] && eval $build - fi - - [ -v use ] && source $use || source $dir/$project.plugin.zsh -} - -install_plugin "zsh-users/zsh-syntax-highlighting" -install_plugin "zsh-users/zsh-autosuggestions" -install_plugin "zsh-users/zsh-completions" -install_plugin "trapd00r/LS_COLORS" build:"dircolors -b LS_COLORS > c.zsh" use:"c.zsh" - -zstyle ":completion:*" list-colors ${(s.:.)LS_COLORS} -zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' -zstyle ':completion:*' menu select - -autoload -U compinit - -eval "$(zoxide init zsh)" - -# starship prompt: https://github.com/starship/starship -# Must be at end of file -eval "$(starship init zsh)"