feat: wezterm

This commit is contained in:
rxyhn 2022-03-31 16:28:44 +07:00
parent 3f1ebe2fc4
commit 081604aa52
9 changed files with 122 additions and 384 deletions

4
.github/README.md vendored
View file

@ -33,7 +33,7 @@ These dotfiles are made with love, for sure.
| ---------- | ----------------- |
| WM | awesome |
| OS | arch linux |
| Terminal | alacritty |
| Terminal | wezterm |
| Shell | zsh |
| Editor | neovim / vscode |
| Compositor | picom |
@ -55,7 +55,7 @@ These dotfiles are made with love, for sure.
*Assuming your AUR helper is* `yay`
```shell
yay -Sy awesome-git picom-git alacritty rofi todo-bin acpi acpid \
yay -Sy awesome-git picom-ibhagwan-git wezterm rofi todo-bin acpi acpid \
wireless_tools jq inotify-tools polkit-gnome xdotool xclip maim \
brightnessctl alsa-utils alsa-tools pulseaudio lm_sensors \
mpd mpc mpdris2 ncmpcpp playerctl --needed

View file

@ -1,81 +0,0 @@
## Import files (Colors,Etc)
import:
- ~/.config/alacritty/night/colors.yml
## Set environment variables
env:
TERM: xterm-256color
## Terminal window settings
window:
opacity: 1.0
padding:
x: 25
y: 25
## Font
font:
normal:
family: Iosevka Nerd Font Mono
style: Regular
bold:
family: Iosevka Nerd Font Mono
style: Bold
italic:
family: Iosevka Nerd Font Mono
style: Italic
bold_italic:
family: Iosevka Nerd Font Mono
style: Bold Italic
size: 10
offset:
x: 0
y: 0
glyph_offset:
x: 0
y: 0
# Class
class:
instance: Alacritty
general: Alacritty
# Scrolling
scrolling:
history: 10000
multiplier: 3
# Visual
visual_bell:
animation: EaseOutExpo
duration: 0.5
color: "#ffffff"
# Selection
selection:
semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
save_to_clipboard: true
# Cursor
cursor:
style: 'Underline'
# Shell
shell:
program: /usr/bin/zsh
# Mouse
mouse:
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
hide_when_typing: true
# Global Configuration
live_config_reload: true
draw_bold_text_with_bright_colors: true

View file

@ -1,28 +0,0 @@
# Aesthetic Color
# Created by https://github.com/rxyhn
colors:
primary:
background: '#061115'
foreground: '#D9D7D6'
cursor:
text: CellForeground
cursor: '#D9D7D6'
bright:
black: '#1C252C'
red: '#DF5B61'
green: '#78B892'
yellow: '#DE8F78'
blue: '#6791C9'
magenta: '#BC83E3'
cyan: '#67AFC1'
white: '#D9D7D6'
normal:
black: '#1C252C'
red: '#DF5B61'
green: '#78B892'
yellow: '#DE8F78'
blue: '#6791C9'
magenta: '#BC83E3'
cyan: '#67AFC1'
white: '#D9D7D6'

View file

@ -12,7 +12,7 @@ start mpd
start mpDris2 # add playerctl support to mpd
# compositor
start picom -b --experimental-backends --dbus --config $HOME/.config/awesome/theme/picom.conf
start picom --experimental-backends --config $HOME/.config/awesome/theme/picom.conf
# auth
start /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1

View file

@ -12,7 +12,7 @@ awful.screen.connect_for_each_screen(function(s)
-- Submenu
awesomemenu = {
{"Hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end},
{"Manual", terminal .. " -e man awesome"},
{"Manual", terminal .. " start man awesome"},
{"Edit Config", editor .. " " .. awesome.conffile},
{"Restart", awesome.restart},
{"Quit", function() awesome.quit() end}

View file

@ -18,13 +18,13 @@ dpi = beautiful.xresources.apply_dpi
beautiful.init(gfs.get_configuration_dir() .. "theme/theme.lua")
-- Default Applications
terminal = "alacritty"
editor = terminal .. " -e " .. os.getenv("EDITOR")
terminal = "wezterm"
editor = terminal .. " start " .. os.getenv("EDITOR")
vscode = "code"
browser = "firefox"
launcher = "rofi -show drun -theme " .. os.getenv("HOME") .. "/.config/awesome/theme/rofi.rasi"
file_manager = "nautilus"
music_client = terminal .. " --class music -e ncmpcpp"
music_client = terminal .. " start --class music ncmpcpp"
-- Weather API
openweathermap_key = "" -- API Key

View file

@ -1,65 +1,22 @@
format = "$all"
add_newline = true
format = """
($username)[@](bold white)($hostname)
($directory)
"""
right_format = """$all"""
[username]
disabled = false
show_always = true
style_user = "bold white"
format = "[$user]($style)"
[character]
error_symbol = "[](bold red)"
success_symbol = "[](bold green)"
vicmd_symbol = "[](bold yellow)"
format = "$symbol [|](bold bright-black) "
[hostname]
ssh_only = true
format = "[$hostname](bold blue) "
disabled = false
ssh_only = false
style = "bold white"
format = "[$hostname]($style)"
[directory]
disabled = false
truncation_length = 1
home_symbol = "~"
format = "[$path](bold cyan)[/](bold green) "
[character]
success_symbol = ""
error_symbol = "[](bold red)"
[git_branch]
symbol = " "
style = "bold blue"
[git_commit]
commit_hash_length = 4
tag_symbol = "🔖 "
[git_state]
format = '[\($state( $progress_current of $progress_total)\)]($style) '
cherry_pick = "[🍒 PICKING](bold red)"
[git_metrics]
added_style = "bold blue"
format = '[+$added]($added_style)/[-$deleted]($deleted_style) '
[git_status]
format = '([\[$all_status$ahead_behind\]]($style) )'
style = "bold cyan"
conflicted = "= "
ahead = "⇡ ${count} "
behind = "⇣ ${count} "
diverged = "⇕ "
up_to_date = ""
untracked = "? "
stashed = "$ "
modified = "! "
staged = '[++\($count\)](green)'
renamed = "» "
deleted = " "
[cmd_duration]
disabled = true
[line_break]
disabled = true
[lua]
symbol = "[](blue) "

View file

@ -0,0 +1,41 @@
--[[
_ _ _ _____ _____ _____ _____ _____ _____
| | | | __|__ |_ _| __| __ | |
| | | | __| __| | | | __| -| | | |
|_____|_____|_____| |_| |_____|__|__|_|_|_|
~ Aesthetic Wezterm ~
rxyhn
--]]
local wezterm = require 'wezterm';
return {
font_dirs = {"/home/rxyhn/.local/share/fonts"},
front_end = "OpenGL",
font = wezterm.font("Iosevka", {weight = "Regular", italic = false}),
harfbuzz_features = {"calt=0", "clig=0", "liga=0"},
font_size = 11,
colors = { -- aesthetic night colorscheme
foreground = "#d9d7d6",
background = "#061115",
cursor_bg = "#d9d7d6",
cursor_fg = "#d9d7d6",
cursor_border = "#d9d7d6",
selection_fg = "#061115",
selection_bg = "#d9d7d6",
scrollbar_thumb = "#d9d7d6",
split = "#16161a",
ansi = {"#061115", "#df5b61", "#78b892", "#de8f78", "#6791c9", "#bc83e3", "#67afc1", "#d9d7d6"},
brights = {"#484e5b", "#f16269", "#8cd7aa", "#e9967e", "#79aaeb", "#c488ec", "#7acfe4", "#e5e5e5"},
indexed = {[136] = "#d9d7d6"},
},
window_padding = {
left = 25,
right = 25,
top = 25,
bottom = 25,
},
enable_tab_bar = false,
default_cursor_style = "BlinkingUnderline",
exit_behavior = "CloseOnCleanExit"
}

View file

@ -1,257 +1,106 @@
#! /bin/zsh
#--------------------------------------------------------------------------------
# ▒███████▒ ██████ ██░ ██ ▄████▄ ▒█████ ███▄ █ █████▒██▓ ▄████
# ▒ ▒ ▒ ▄▀░▒██ ▒ ▓██░ ██▒ ▒██▀ ▀█ ▒██▒ ██▒ ██ ▀█ █ ▓██ ▒▓██▒ ██▒ ▀█▒
# ░ ▒ ▄▀▒░ ░ ▓██▄ ▒██▀▀██░ ▒▓█ ▄ ▒██░ ██▒▓██ ▀█ ██▒▒████ ░▒██▒▒██░▄▄▄░
# ▄▀▒ ░ ▒ ██▒░▓█ ░██ ▒▓▓▄ ▄██▒▒██ ██░▓██▒ ▐▌██▒░▓█▒ ░░██░░▓█ ██▓
# ▒███████▒▒██████▒▒░▓█▒░██▓ ▒ ▓███▀ ░░ ████▓▒░▒██░ ▓██░░▒█░ ░██░░▒▓███▀▒
# ░▒▒ ▓░▒░▒▒ ▒▓▒ ▒ ░ ▒ ░░▒░▒ ░ ░▒ ▒ ░░ ▒░▒░▒░ ░ ▒░ ▒ ▒ ▒ ░ ░▓ ░▒ ▒
# ░░▒ ▒ ░ ▒░ ░▒ ░ ░ ▒ ░▒░ ░ ░ ▒ ░ ▒ ▒░ ░ ░░ ░ ▒░ ░ ▒ ░ ░ ░
# ░ ░ ░ ░ ░░ ░ ░ ░ ░░ ░ ░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ░░ ░ ░
# ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
# ░ ░
#--------------------------------By: @rxyhn--------------------------------------
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="true"
if [[ $- != *i* ]]; then
return
fi
# completion cache path setup
typeset -g comppath="$HOME/.cache"
typeset -g compfile="$comppath/.zcompdump"
if [[ -d "$comppath" ]]; then
[[ -w "$compfile" ]] || rm -rf "$compfile" >/dev/null 2>&1
else
mkdir -p "$comppath"
fi
# ---| zsh Internal Stuff |--- #
SHELL=$(which zsh || echo '/bin/zsh')
KEYTIMEOUT=1
SAVEHIST=10000
HISTSIZE=10000
HISTFILE="$HOME/.cache/.zsh_history"
# Show top 21 Commands used (thanks totoro
toppy() {
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n 21
}
setopt autocd # change directory just by typing its name
setopt interactivecomments # allow comments in interactive mode
setopt magicequalsubst # enable filename expansion for arguments of the form anything=expression
setopt nonomatch # hide error message if there is no match for the pattern
setopt notify # report the status of background jobs immediately
setopt numericglobsort # sort filenames numerically when it makes sense
setopt promptsubst # enable command substitution in prompt
setopt MENU_COMPLETE # Automatically highlight first element of completion menu
setopt AUTO_LIST # Automatically list choices on ambiguous completion.
setopt COMPLETE_IN_WORD # Complete from both ends of a word.
file_amount() {
ls -l | wc -l
}
# enable completion features
autoload -Uz compinit
compinit -i
# ls with preferred arguments
ls() {
command ls --group-directories-first --color=auto -F1 "$@"
}
# cd and ls after
cd() {
builtin cd "$@" && command ls --group-directories-first --color=auto -F
}
# recompile completion and reload zsh
src() {
autoload -U zrecompile
rm -rf "$compfile"*
compinit -u -d "$compfile"
zrecompile -p "$compfile"
exec zsh
}
# completion
setopt CORRECT
setopt NO_NOMATCH
setopt LIST_PACKED
setopt ALWAYS_TO_END
setopt GLOB_COMPLETE
setopt COMPLETE_ALIASES
setopt COMPLETE_IN_WORD
# builtin command behaviour
setopt AUTO_CD
# job control
setopt AUTO_CONTINUE
setopt LONG_LIST_JOBS
# history control
setopt HIST_VERIFY
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_SAVE_NO_DUPS
setopt HIST_IGNORE_ALL_DUPS
# misc
setopt EXTENDED_GLOB
setopt TRANSIENT_RPROMPT
setopt INTERACTIVE_COMMENTS
autoload -U compinit # completion
autoload -U terminfo # terminfo keys
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
# better history navigation, matching currently typed text
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
# set the terminal mode when entering or exiting zle, otherwise terminfo keys are not loaded
if (( ${+terminfo[smkx]} && ${+terminfo[rmkx]} )); then
zle-line-init() { echoti smkx; }; zle -N zle-line-init
zle-line-finish() { echoti rmkx; }; zle -N zle-line-finish
fi
# History
zshAddHistory() {
whence ${${(z)1}[1]} >| /dev/null || return 1
}
# ---| Correction and Autocompletion |--- #
zstyle ':completion:*:correct:*' original true
zstyle ':completion:*:correct:*' insert-unambiguous true
zstyle ':completion:*:approximate:*' max-errors 'reply=($(( ($#PREFIX + $#SUFFIX) / 3 )) numeric)'
# completion
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path "$comppath"
zstyle ':completion:*' rehash true
zstyle ':completion:*' verbose true
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' accept-exact '*(N)'
zstyle ':completion:*' squeeze-slashes true
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:-command-:*:' verbose false
zstyle ':completion::complete:*' gain-privileges 1
zstyle ':completion:*:manuals.*' insert-sections true
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*' completer _complete _match _approximate _ignored
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # case insensitive tab completion
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path "$HOME/.config/zsh/.zcompcache"
# Define completers
zstyle ':completion:*' completer _extensions _complete _approximate
zstyle ':completion:*:*:*:*:corrections' format '%F{yellow}!- %d (errors: %e) -!%f'
zstyle ':completion:*:*:*:*:descriptions' format '%F{blue}-- %D %d --%f'
zstyle ':completion:*:*:*:*:messages' format ' %F{purple} -- %d --%f'
zstyle ':completion:*:*:*:*:warnings' format ' %F{red}-- no matches found --%f'
# labels and categories
zstyle ':completion:*' group-name ''
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' format ' %F{green}->%F{yellow} %d%f'
zstyle ':completion:*:messages' format ' %F{green}->%F{purple} %d%f'
zstyle ':completion:*:descriptions' format ' %F{green}->%F{yellow} %d%f'
zstyle ':completion:*:warnings' format ' %F{green}->%F{red} no matches%f'
zstyle ':completion:*:corrections' format ' %F{green}->%F{green} %d: %e%f'
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
# menu colours
eval "$(dircolors)"
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=36=0=01'
# Only display some tags for the command cd
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
# command parameters
zstyle ':completion:*:functions' ignored-patterns '(prompt*|_*|*precmd*|*preexec*)'
zstyle ':completion::*:(-command-|export):*' fake-parameters ${${${_comps[(I)-value-*]#*,}%%,*}:#-*-}
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
zstyle ':completion:*:processes-names' command 'ps c -u ${USER} -o command | uniq'
zstyle ':completion:*:(vim|nvim|vi|nano):*' ignored-patterns '*.(wav|mp3|flac|ogg|mp4|avi|mkv|iso|so|o|7z|zip|tar|gz|bz2|rar|deb|pkg|gzip|pdf|png|jpeg|jpg|gif)'
# History configurations
HISTFILE="$HOME/.cache/.zsh_history"
HISTSIZE=10000
SAVEHIST=20000
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
setopt hist_ignore_dups # ignore duplicated commands history list
setopt hist_ignore_space # ignore commands that start with space
setopt hist_verify # show command with history expansion to user before running it
setopt share_history # share command history data
# hostnames and addresses
zstyle ':completion:*:ssh:*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:ssh:*' group-order users hosts-domain hosts-host users hosts-ipaddr
zstyle ':completion:*:(scp|rsync):*' tag-order 'hosts:-host:host hosts:-domain:domain hosts:-ipaddr:ip\ address *'
zstyle ':completion:*:(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-domain' ignored-patterns '<->.<->.<->.<->' '^[-[:alnum:]]##(.[-[:alnum:]]##)##' '*@*'
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'
zstyle -e ':completion:*:hosts' hosts 'reply=( ${=${=${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) 2>/dev/null)"}%%[#| ]*}//\]:[0-9]*/ }//,/ }//\[/ } ${=${(f)"$(cat /etc/hosts(|)(N) <<(ypcat hosts 2>/dev/null))"}%%\#*} ${=${${${${(@M)${(f)"$(cat ~/.ssh/config 2>/dev/null)"}:#Host *}#Host }:#*\**}:#*\?*}})'
ttyctl -f
# source plugins
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/share/fzf/key-bindings.zsh
# For tty
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#484E5B,underline"
# tty
if [ "$TERM" = "linux" ] ; then
echo -en "\e]P0232323"
fi
# initialize completion
compinit -u -d "$compfile"
# custom function
toppy() {
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n 21
}
# zsh auto suggestions and syntax highlighting and auto completion
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
cd() {
builtin cd "$@" && command ls --group-directories-first --color=auto -F
}
# Custom Highlight syntax
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#4C566A,underline"
# Uncomment the following line to use case-sensitive completion.
CASE_SENSITIVE="false"
# fzf source
source /usr/share/fzf/key-bindings.zsh
###############################
# ****** ALIAS SECTION ****** #
###############################
# Update thingy
# alias
alias grub-update='sudo grub-mkconfig -o /boot/grub/grub.cfg'
alias mirror-update='sudo reflector --verbose -c Indonesia -c Japan -c Singapore --sort rate --save /etc/pacman.d/mirrorlist'
# Archives
alias mtar='tar -zcvf' # mtar <archive_compress>
alias utar='tar -zxvf' # utar <archive_decompress> <file_list>
alias z='zip -r' # z <archive_compress> <file_list>
alias uz='unzip' # uz <archive_decompress> -d <dir>
# alias for sourcing the zshrc
alias sr='source ~/.zshrc'
# alias for cd up a directory
alias ..="cd .."
# alias for making a directory and cd to it
mcd () {
mkdir -p $1
cd $1
}
# alias for searching through ps
alias psg="ps aux | grep -v grep | grep -i -e VSZ -e"
# alias for mkdir so that it makes required parent directory
alias mkdir="mkdir -p"
# alias for ranger
alias fm='ranger'
# alias for searching and installing packages
alias pacs="pacman -Slq | fzf -m --preview 'cat <(pacman -Si {1}) <(pacman -Fl {1} | awk \"{print \$2}\")' | xargs -ro sudo pacman -S"
# alias for searching and installing packages from AUR
alias yays="yay -Slq | fzf -m --preview 'cat <(yay -Si {1}) <(yay -Fl {1} | awk \"{print \$2}\")' | xargs -ro yay -S"
# alias for searching and removing packages from system
alias pacr="pacman -Qq | fzf --multi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns"
# alias for searching packages from system
alias p="pacman -Q | fzf"
# alias for wifi
alias wifi="nmtui-connect"
# alias for grep
alias ls="exa --color=auto --icons"
alias l="ls -l"
alias la="ls -a"
alias lla="ls -la"
alias lt="ls --tree"
alias cat="bat --color always --plain"
alias grep='grep --color=auto'
# alias for Neovim
alias v='nvim'
# alias for verbose cp, mv, rm
alias mv='mv -v'
alias cp='cp -vr'
alias rm='rm -vr'
# alias for running cpp files
rc(){
g++ "$1" -o run
./run
}
# alias for checking dunst
alias dun='killall dunst && dunst &
notify-send "cool1" "yeah it is working"
notify-send "cool2" "yeah it is working"'
# ---------------P R O M P T------------------
# Init Starship
# init starship
eval "$(starship init zsh)"
# Setup Starship custom prompt
# setup starship custom prompt
export STARSHIP_CONFIG=$HOME/.config/starship/starship.toml