diff options
-rw-r--r-- | bash/.bash_profile | 4 | ||||
-rw-r--r-- | makefile | 122 | ||||
-rw-r--r-- | rofi/.config/rofi/config.rasi | 2 | ||||
-rw-r--r-- | sh/.profile | 53 | ||||
-rw-r--r-- | sway/.config/environment.d/sway.conf | 3 | ||||
-rw-r--r-- | sway/.config/sway/config | 27 | ||||
-rw-r--r-- | xdg/.config/user-dirs.dirs | 2 | ||||
-rw-r--r-- | zsh/.zshenv | 50 |
8 files changed, 83 insertions, 180 deletions
diff --git a/bash/.bash_profile b/bash/.bash_profile index 515cf94..6c85f86 100644 --- a/bash/.bash_profile +++ b/bash/.bash_profile @@ -1,7 +1,7 @@ #!/bin/bash -# shellcheck disable=1091 -. "$HOME/.zshenv" +# shellcheck disable=1090 +. ~/.profile # shellcheck disable=1090 if [[ $- == *i* ]]; then . ~/.bashrc; fi @@ -1,122 +1,24 @@ -VPATH = $(PATH) - -ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) -ZSH_COMP_DIR := $(HOME)/.local/share/zsh/site-functions -BASH_COMP_DIR := $(HOME)/.local/share/bash-completion/completions - -ARCH := $(shell uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/ | sed s/armv7l/armv6/) - -.PHONY: interactive stow unstow clean gpg wsl - -# TODO https://github.com/andrewsardone/dotfiles/blob/master/Makefile -stow: # Install configs - @stow alacritty --defer=/* - @stow bash - @stow bat - @stow git - @stow gnupg --defer=/* - @stow lazygit - @stow mpv - @stow nvim - @stow paru - @stow rofi - @stow scripts - @stow sheldon - @stow spotify - @stow ssh - @stow starship - @stow streamlink - @stow sway - @stow tmux - @stow wezterm - @stow wired - @stow zsh - @if [ -n "$$WSL_DISTRO_NAME" ]; then stow wsl --override=/*; fi +.PHONY: stow +stow: # Install configs + stow */ +.PHONY: unstow unstow: # Uninstall configuration files stow --delete */ +.PHONY: clean clean: # Remove all broken symbolic links from $HOME (recursivly) fd . $(HOME) --hidden --exclude $(XDG_CACHE_HOME) --type l --exec sh -c '[ -e "{}" ] || rm -v {}' -wsl: stow # Run WSL install script - ./wsl/.local/bin/wsl-installer.sh - +.PHONY: gpg gpg: # Install GPG keys gpg --auto-key-locate keyserver --locate-keys tobyv13@gmail.com gpg --import-ownertrust $(HOME)/.gnupg/trustfile.txt -$(ZSH_COMP_DIR): - mkdir -p $(ZSH_COMP_DIR) - -$(BASH_COMP_DIR): - mkdir -p $(BASH_COMP_DIR) - -interactive: fzf rg # Interactive target runner - @rg '^(\w+):(?:.*#\s*(.*)|.*)$$' 'makefile' --color always --line-number --no-heading -H --smart-case -r '$$1:$$2' \ - | fzf -0 -1 --ansi --tac --multi -d':' --with-nth 3 --header="Select target(s)" \ - --color "hl:-1:underline,hl+:-1:underline:reverse" \ - --preview 'echo; echo {3} "-" {4}; echo; bat --style=auto --color=always {..1} --highlight-line {2}' \ - --preview-window '80%,border-bottom,+{2}+3/3,~3' - -cargo rust: $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # Install rust - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path - rustup completions bash >$(BASH_COMP_DIR)/rustup - rustup completions zsh >$(ZSH_COMP_DIR)/_rustup - rustup completions bash cargo >$(BASH_COMP_DIR)/cargo - rustup completions zsh cargo >$(ZSH_COMP_DIR)/_cargo - -cargo-quickinstall: cargo # Attempts to install prebuilt binaries, using cargo install as a fallback - cargo install cargo-quickinstall - -starship: cargo-quickinstall $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # Cross shell prompt, written in rust - cargo quickinstall starship - starship completions bash >$(BASH_COMP_DIR)/starship - starship completions zsh >$(ZSH_COMP_DIR)/_starship - -sheldon: cargo-quickinstall $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # Cross shell prompt, written in rust - cargo quickinstall sheldon - sheldon completions --shell bash >$(BASH_COMP_DIR)/sheldon - sheldon completions --shell zsh >$(ZSH_COMP_DIR)/_sheldon - -bat: cargo-quickinstall $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # Better cat, written in rust - cargo quickinstall bat --target $(arch())-unknown-$(os())-mus - curl -sL https://raw.githubusercontent.com/sharkdp/bat/master/assets/completions/bat.bash.in >$(BASH_COMP_DIR)/bat - curl -sL https://raw.githubusercontent.com/sharkdp/bat/master/assets/completions/bat.zsh.in >$(ZSH_COMP_DIR)/_bat - -fd: cargo-quickinstall $(ZSH_COMP_DIR) # Better cat, written in rust - cargo quickinstall fd-find - curl -sL https://raw.githubusercontent.com/sharkdp/fd/master/contrib/completion/_fd >$(ZSH_COMP_DIR)/_fd - -rg: cargo-quickinstall $(ZSH_COMP_DIR) # Better grep, written in rust - cargo quickinstall ripgrep - curl -sL https://raw.githubusercontent.com/BurntSushi/ripgrep/master/complete/_rg >$(ZSH_COMP_DIR)/_rg - -chtsh: $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # CLI for https://cht.sh - curl https://cht.sh/:cht.sh >$(HOME)/.local/bin/cht.sh - chmod +x $(HOME)/.local/bin/cht.sh - curl https://cht.sh/:bash_completion >$(BASH_COMP_DIR)/cht - curl https://cheat.sh/:zsh >$(ZSH_COMP_DIR)/_cht - -git-open: # Open git remotes in the browser - curl -sL "https://raw.githubusercontent.com/paulirish/git-open/master/git-open" >$(HOME)/.local/bin/git-open && - chmod +x $(HOME)/.local/bin/git-open - -gh: $(ZSH_COMP_DIR) $(BASH_COMP_DIR) # CLI for github API - $(eval TEMP := $(shell mktemp -d)) - $(eval TAG := $(shell curl -sI https://github.com/cli/cli/releases/latest | grep -Po 'tag\/v?\K(\S+)')) - curl -sL https://github.com/cli/cli/releases/latest/download/gh_$(TAG)_linux_$(ARCH).tar.gz | tar -C $(TEMP) -xz - test -x $(TEMP)/gh_$(TAG)_linux_$(ARCH)/bin/gh - install -Dm 755 $(TEMP)/gh_$(TAG)_linux_$(ARCH)/bin/gh $(HOME)/.local/bin/gh - rm -rf $(TEMP) - gh completion --shell bash >$(BASH_COMP_DIR)/gh - gh completion --shell zsh >$(ZSH_COMP_DIR)/_gh +.PHONY: wsl +wsl: + @if [ -n "$$WSL_DISTRO_NAME" ]; then stow wsl --override=/*; fi -fzf: # Fuzzy finder, written in go - $(eval TEMP := $(shell mktemp -d)) - $(eval TAG := $(shell curl -sI https://github.com/junegunn/fzf/releases/latest | grep -Po 'tag\/v?\K(\S+)')) - curl -sL https://github.com/junegunn/fzf/releases/latest/download/fzf-${TAG}-linux_$(ARCH).tar.gz | tar -C $(TEMP) -xz - test -x $(TEMP)/fzf - rm -f $(HOME)/.local/bin/fzf - install -Dm 755 $(TEMP)/fzf $(HOME)/.local/bin/fzf - rm -rf $(TEMP) +.PHONY: wsl-script +wsl-script: wsl # Run WSL install script + ./wsl/.local/bin/wsl-installer.sh diff --git a/rofi/.config/rofi/config.rasi b/rofi/.config/rofi/config.rasi index aad0fc6..28381a9 100644 --- a/rofi/.config/rofi/config.rasi +++ b/rofi/.config/rofi/config.rasi @@ -1,5 +1,5 @@ configuration { -/* modi: "run,ssh";*/ +modi: "run,drun,ssh"; /* font: "mono 12";*/ /* location: 0;*/ /* yoffset: 0;*/ diff --git a/sh/.profile b/sh/.profile new file mode 100644 index 0000000..f865eb2 --- /dev/null +++ b/sh/.profile @@ -0,0 +1,53 @@ +#!/bin/sh +# shellcheck disable=2155 + +# https://wiki.archlinux.org/title/XDG_Base_Directory +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_STATE_HOME="$HOME/.local/state" +export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u "$USER")}" + +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +export BASH_COMPLETION_USER_DIR="$XDG_DATA_HOME/bash-completion/completions" +export LESSHISTFILE="$XDG_STATE_HOME/lesshst" +export WGETRC="$XDG_CONFIG_HOME/wgetrc" + +# Misc +export EDITOR="$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null || command -v vi)" +export BROWSER="$(command -v firefox || command -v chromium 2>/dev/null)" +export TERMINAL="alacritty" +export MANPAGER="sh -c 'col -bx | bat -l man -p'" +export MANROFFOPT="-c" +export STARSHIP_LOG="error" +export FZF_PREVIEW_COMMAND="bat --style=numbers,changes --wrap never --color always {} || cat {} || exa --tree --icons --git-ignore {} || tree -C {}" +export FZF_DEFAULT_COMMAND="fd --type f || git ls-tree -r --name-only HEAD || rg --files || find ." +export FZF_DEFAULT_OPTS='--exit-0 --select-1 --bind "ctrl-q:abort,ctrl-y:preview-up,ctrl-e:preview-down,ctrl-u:preview-half-page-up,ctrl-d:preview-half-page-down,ctrl-b:preview-page-up,ctrl-f:preview-page-down,alt-up:half-page-up,alt-down:half-page-down"' +export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" +export FZF_CTRL_T_OPTS="--min-height 30 --preview-window down:60% --preview-window noborder --preview '($FZF_PREVIEW_COMMAND) 2> /dev/null'" + +export PATH="$PATH:$HOME/.local/bin" + +# rust +export RUSTUP_HOME="$XDG_DATA_HOME/rustup" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export PATH="$PATH:$CARGO_HOME/bin" + +# go +export GOPATH="$XDG_DATA_HOME/go" +export PATH="$PATH:$GOPATH/bin" + +# npm +export npm_config_userconfig="$XDG_CONFIG_HOME/npm/config" +export npm_config_cache="$XDG_CACHE_HOME/npm" +export npm_config_prefix="$XDG_DATA_HOME/npm" +export PATH="$PATH:$npm_config_prefix/bin" + +# dotnet +export DOTNET_CLI_HOME="$XDG_DATA_HOME/dotnet" +export PATH="$PATH:$DOTNET_CLI_HOME/tools" + +# texlive +export TEXMFHOME="$XDG_DATA_HOME/texmf" +export TEXMFVAR="$XDG_CACHE_HOME/texlive/texmf-var" +export TEXMFCONFIG="$XDG_CONFIG_HOME/texlive/texmf-config" diff --git a/sway/.config/environment.d/sway.conf b/sway/.config/environment.d/sway.conf deleted file mode 100644 index 4c61a50..0000000 --- a/sway/.config/environment.d/sway.conf +++ /dev/null @@ -1,3 +0,0 @@ -DISPLAY=:0 -XDG_SESSION_TYPE=wayland -WAYLAND_DISPLAY=0
\ No newline at end of file diff --git a/sway/.config/sway/config b/sway/.config/sway/config index 06daa5e..22bd029 100644 --- a/sway/.config/sway/config +++ b/sway/.config/sway/config @@ -7,9 +7,7 @@ set $mod Mod4 set $term $TERMINAL # Menu -set $menu exec rofi -modi "run,drun" -show drun -show-icons -set $menu_all exec rofi -modi "run,drun" -show run -show-icons -set $menu_ssh exec rofi -modi "ssh" -show ssh -show-icons +set $menu exec rofi -show-icons # Home row direction keys, like vim set $left h @@ -70,16 +68,17 @@ input type:keyboard { ### Key bindings -# Exit sway -bindsym $mod+Shift+e exec swaynag -t warning -m 'Do you really want to exit sway?' -B 'Yes, exit sway' 'swaymsg exit' +# Power menu +bindsym $mod+Escape exec $menu -modi p:rofi-power-menu -show p +bindsym $mod+Shift+Escape exec swaynag -t warning -m 'Do you really want to exit sway?' -B 'Yes, exit sway' 'swaymsg exit' -# App launcher -bindsym $mod+space exec $menu -bindsym $mod+shift+space exec $menu_all +# Run menu +bindsym $mod+space exec $menu -show drun +bindsym $mod+shift+space exec $menu -show run # Launch terminal bindsym $mod+return exec $TERMINAL -bindsym $mod+shift+return exec $menu_ssh +bindsym $mod+shift+return exec $menu -show ssh # Launch browser bindsym $mod+w exec $BROWSER @@ -141,7 +140,7 @@ bindsym $mod+7 workspace number 7 bindsym $mod+8 workspace number 8 bindsym $mod+9 workspace number 9 bindsym $mod+0 workspace number 10 -bindsym $mod+tab workspace back_and_forth +bindsym $mod+ctrl+6 workspace back_and_forth # Move focused container to workspace bindsym $mod+Shift+1 move container to workspace number 1; workspace number 1 @@ -208,9 +207,9 @@ hide_edge_borders smart # Clipboard manager exec wl-paste --type text --watch clipman store --no-persist bindsym $mod+v exec clipman pick --tool=rofi -bindsym $mod+b exec rofi-rbw -# float launcher window -for_window [app_id="^launcher$"] floating enable, sticky enable, resize set 30 ppt 60 ppt, border pixel 2 +# Password manager +bindsym $mod+b exec rofi-rbw -include @sysconfdir@/sway/config.d/* +include config.d/* +include /etc/sway/config.d/* diff --git a/xdg/.config/user-dirs.dirs b/xdg/.config/user-dirs.dirs index ecb9eca..974eb39 100644 --- a/xdg/.config/user-dirs.dirs +++ b/xdg/.config/user-dirs.dirs @@ -5,4 +5,4 @@ XDG_PICTURES_DIR="$HOME/img" XDG_PUBLICSHARE_DIR="$HOME/pub" XDG_TEMPLATES_DIR="$HOME/tmplt" XDG_VIDEOS_DIR="$HOME/vid" - +XDG_DESKTOP_DIR="$HOME/desk" diff --git a/zsh/.zshenv b/zsh/.zshenv index f865eb2..ad32cea 100644 --- a/zsh/.zshenv +++ b/zsh/.zshenv @@ -1,53 +1,5 @@ #!/bin/sh -# shellcheck disable=2155 -# https://wiki.archlinux.org/title/XDG_Base_Directory -export XDG_CONFIG_HOME="$HOME/.config" -export XDG_CACHE_HOME="$HOME/.cache" -export XDG_DATA_HOME="$HOME/.local/share" -export XDG_STATE_HOME="$HOME/.local/state" -export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u "$USER")}" +emulate sh -c '. ~/.profile' export ZDOTDIR="$XDG_CONFIG_HOME/zsh" -export BASH_COMPLETION_USER_DIR="$XDG_DATA_HOME/bash-completion/completions" -export LESSHISTFILE="$XDG_STATE_HOME/lesshst" -export WGETRC="$XDG_CONFIG_HOME/wgetrc" - -# Misc -export EDITOR="$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null || command -v vi)" -export BROWSER="$(command -v firefox || command -v chromium 2>/dev/null)" -export TERMINAL="alacritty" -export MANPAGER="sh -c 'col -bx | bat -l man -p'" -export MANROFFOPT="-c" -export STARSHIP_LOG="error" -export FZF_PREVIEW_COMMAND="bat --style=numbers,changes --wrap never --color always {} || cat {} || exa --tree --icons --git-ignore {} || tree -C {}" -export FZF_DEFAULT_COMMAND="fd --type f || git ls-tree -r --name-only HEAD || rg --files || find ." -export FZF_DEFAULT_OPTS='--exit-0 --select-1 --bind "ctrl-q:abort,ctrl-y:preview-up,ctrl-e:preview-down,ctrl-u:preview-half-page-up,ctrl-d:preview-half-page-down,ctrl-b:preview-page-up,ctrl-f:preview-page-down,alt-up:half-page-up,alt-down:half-page-down"' -export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" -export FZF_CTRL_T_OPTS="--min-height 30 --preview-window down:60% --preview-window noborder --preview '($FZF_PREVIEW_COMMAND) 2> /dev/null'" - -export PATH="$PATH:$HOME/.local/bin" - -# rust -export RUSTUP_HOME="$XDG_DATA_HOME/rustup" -export CARGO_HOME="$XDG_DATA_HOME/cargo" -export PATH="$PATH:$CARGO_HOME/bin" - -# go -export GOPATH="$XDG_DATA_HOME/go" -export PATH="$PATH:$GOPATH/bin" - -# npm -export npm_config_userconfig="$XDG_CONFIG_HOME/npm/config" -export npm_config_cache="$XDG_CACHE_HOME/npm" -export npm_config_prefix="$XDG_DATA_HOME/npm" -export PATH="$PATH:$npm_config_prefix/bin" - -# dotnet -export DOTNET_CLI_HOME="$XDG_DATA_HOME/dotnet" -export PATH="$PATH:$DOTNET_CLI_HOME/tools" - -# texlive -export TEXMFHOME="$XDG_DATA_HOME/texmf" -export TEXMFVAR="$XDG_CACHE_HOME/texlive/texmf-var" -export TEXMFCONFIG="$XDG_CONFIG_HOME/texlive/texmf-config" |