monte de coisa

This commit is contained in:
lelgenio 2019-12-09 15:25:42 -03:00
parent 624b0fc49b
commit e886f58364
17 changed files with 1330 additions and 303 deletions

View File

@ -2,17 +2,17 @@
#
#LICENSE#{{{
# Copyright (c) 2012 Tom Wambold
#
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@ -89,7 +89,7 @@ FULL_INSTALL=false
#}}}
# PACKAGES{{{
# sudo to allow to run as a user later
sudo pacman -Sy
sudo pacman -Sy
pkgs_base=''
pkgs_base+=' base linux-zen linux-firmware intel-ucode lvm2 '
@ -100,8 +100,8 @@ FULL_INSTALL=false
pkgs=''
pkgs+=" $pkgs_base"
# DE
pkgs+=' sway waybar gnome-keyring python-keyring light mako udiskie wofi-hg stow yay'
pkgs+=' i3 termite scrot pamixer'
pkgs+=' sway waybar ruby-fusuma light mako udiskie wofi-hg stow yay'
# pkgs+=' i3 termite scrot pamixer'
pkgs+=' nemo redshift-wlr-gamma-control-git '
pkgs+=' pkgfile kitty neovim moreutils htop-vim-git'
# Audio
@ -118,20 +118,20 @@ FULL_INSTALL=false
pkgs+=' flashfocus-git '
# Terminal
pkgs+=' tmux ranger atool p7zip tree'
pkgs+=' neofetch powerline-fonts'
pkgs+=' neofetch powerline-fonts otf-fira-code'
pkgs+=' lolcat cmatrix'
# Network
pkgs+=' bluez-utils rsync rclone nmap gnu-netcat tor mtr speedtest-cli'
# Browser
pkgs+=' qutebrowser youtube-dl'
# Email
pkgs+=' evolution mutt-wizard-git neomutt isync'
pkgs+=' evolution mutt-wizard-git neomutt isync'
# Files
pkgs+=' syncthing nextcloud-client '
pkgs+=' deluge deezloader-remix-bin smloadr'
pkgs+=' syncthing nextcloud-client '
pkgs+=' deluge deezloader-remix-bin smloadr'
# Media
pkgs+=' sxiv mpv mpd mpc ncmpcpp mpv-mpris mpdris2 playerctl'
pkgs+=' blender gimp kdenlive picard image_optim'
pkgs+=' blender gimp kdenlive picard image_optim'
# Office
pkgs+=' libreoffice-fresh libreoffice-fresh-pt-br hunspell-pt-br papirus-libreoffice-theme'
# Programing
@ -164,7 +164,7 @@ FULL_INSTALL=false
#}}}
# Initial Setup{{{
# Base install{{{
setup() {
setup() {
local boot_dev="$DRIVE"1
local lvm_dev="$DRIVE"2
@ -221,7 +221,7 @@ setup() {
}
#}}}
# Partition Drive{{{
partition_drive() {
partition_drive() {
local dev="$1"; shift
# 100 MB /boot partition, everything else under LVM
@ -234,7 +234,7 @@ partition_drive() {
if $IS_BIOS;then
parted -s "$dev" \
set 1 bios_grub on
set 1 bios_grub on
fi
}
#}}}
@ -345,7 +345,7 @@ configure() {
set_daemons "$TMP_ON_TMPFS"
echo 'Configuring Bluetooth'
set_bluetooth
set_bluetooth
echo 'Configuring bootloader'
set_bootctl "$boot_dev" "$lvm_dev"
@ -554,7 +554,7 @@ set_initcpio() {
local encrypt=""
if [ -n "$ENCRYPT_DRIVE" ]
then
encrypt="encrypt"
encrypt="encrypt keyboard"
fi
cat > /etc/mkinitcpio.conf <<EOF
@ -565,7 +565,7 @@ BINARIES=()
FILES=()
HOOKS=(base udev autodetect modconf block $encrypt lvm2 filesystems keyboard fsck)
HOOKS=(base udev autodetect block $encrypt lvm2 filesystems fsck)
EOF
@ -613,7 +613,7 @@ set_bootctl() {
# Load in resources
crypt="root=UUID=$lvm_uuid"
fi
if $IS_BIOS;then
grub install "$boot_dev"
grub

View File

@ -1,6 +1,6 @@
{
// Remove clutter
// "window.titleBarStyle": "custom",
//"window.titleBarStyle": "custom",
"window.menuBarVisibility": "toggle",
"workbench.activityBar.visible": false,
"workbench.editor.showTabs": false,
@ -21,8 +21,8 @@
"window.zoomLevel": 0,
"vim.foldfix": true,
// Fonts
"terminal.integrated.fontFamily": "'Hack', 'Roboto Mono'",
"editor.fontFamily": "'Hack','Roboto Mono', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
"terminal.integrated.fontFamily": "'Fira Code', 'Hack', 'Roboto Mono'",
"editor.fontFamily": "'Fira Code', 'Hack','Roboto Mono', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
"editor.fontSize": 15,
"editor.fontLigatures": true,
// Vim
@ -110,4 +110,4 @@
"editor.formatOnType": true,
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
}
}

View File

@ -2,8 +2,7 @@
;;; Commentary:
(require 'package)
(setq package-list '(
evil
(setq package-list '(evil
lsp-mode
lsp-ui
yasnippet
@ -60,7 +59,7 @@
(add-hook 'before-save-hook 'tide-format-before-save)
(add-hook 'typescript-mode-hook #'setup-tide-mode)
;; Python
;; Python
;; Completion
(add-hook 'after-init-hook 'global-company-mode)
@ -86,7 +85,7 @@
(global-set-key (kbd "C-,") (lambda() (interactive)
(find-file "~/.emacs.d/init.el")))
(set-face-attribute 'default nil :height 110)
(set-face-attribute 'default nil :height 200)
(custom-set-variables
;; custom-set-variables was added by Custom.
@ -116,7 +115,7 @@
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "#202020" :foreground "#f6f3e8" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 100 :width normal :foundry "pyrs" :family "Roboto Mono"))))
'(default ((t (:inherit nil :stipple nil :background "#202020" :foreground "#f6f3e8" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :width normal :foundry "pyrs" :family "Fira Code"))))
'(line-number ((t (:inherit (shadow default) :foreground "#cc5757"))))
'(line-number-current-line ((t (:inherit line-number :foreground "white"))))
'(whitespace-big-indent ((t (:foreground "dark gray"))))

View File

@ -24,22 +24,20 @@ set -x PAGER less
export QT_SCALE_FACTOR=1
export QPA_PLATFORM=wayland
export QT_QPA_PLATFORM=wayland
export _JAVA_AWT_WM_NONREPARENTING=1
export GTK_CSD=0
export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0
export XCURSOR_THEME=capitaine-cursors
exec sway
end
function ei3
clear
export _JAVA_AWT_WM_NONREPARENTING=1
export GTK_CSD=0
export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0
export XCURSOR_THEME=capitaine-cursors
exec startx i3
end
if test $XDG_VTNR -eq 1 #faster like this
if systemctl -q is-active graphical.target && test ! $DISPLAY
if test "$XDG_VTNR"=1 -a ! "$DISPLAY" -a "$XDG_SESSION_TYPE"="tty" #faster like this
if systemctl -q is-active graphical.target
export _JAVA_AWT_WM_NONREPARENTING=1
export GTK_CSD=0
export LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0
export XCURSOR_THEME=capitaine-cursors
export GTK_THEME=materia-custom-accent:dark
esway > .swaylog
# ei3 > .i3log
end

View File

@ -1,9 +1,11 @@
font_family Hack
# font_family Hack
font_family Fira Code
font_size 12
#colors
cursor #cc5757
background #202020
foreground #dddddd
# background_opacity 0.97
@ -38,4 +40,5 @@ color14 #37c3d6
# white
color7 #a2a2a2
color15 #f9f9f9
scrollback_pager nvim -
scrollback_pager nvim -c "set ft=man noreadonly modifiable" -
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER

View File

@ -1,11 +1,11 @@
" LEL
" _
" _ ____ _(_)_ __ ___
" | '_ \ \ / / | '_ ` _ \
" _
" _ ____ _(_)_ __ ___
" | '_ \ \ / / | '_ ` _ \
" | | | \ V /| | | | | | |
" |_| |_|\_/ |_|_| |_| |_|
" Plugins{{{
"
" Install plug if it isn't already
@ -26,10 +26,10 @@
Plug 'junegunn/vim-easy-align'
" Language server support
Plug 'autozimu/LanguageClient-neovim', {
\ 'branch': 'next',
\ 'do': 'bash install.sh',
\}
" Plug 'autozimu/LanguageClient-neovim', {
" \ 'branch': 'next',
" \ 'do': 'bash install.sh',
" \}
" Fuzzy find
Plug 'junegunn/fzf'
@ -40,10 +40,11 @@
" Comments
Plug 'tpope/vim-commentary'
" Status bar
"Plug 'vim-airline/vim-airline'
"Plug 'vim-airline/vim-airline-themes'
" Plug 'vim-airline/vim-airline'
" Plug 'vim-airline/vim-airline-themes'
" let g:airline#extensions#ale#enabled = 1
" Bufferlist (integrates with airline)
"Plug 'bling/vim-bufferline'
@ -52,8 +53,8 @@
Plug 'dikiaap/minimalist'
" Language support
Plug 'sheerun/vim-polyglot'
" Plug 'dense-analysis/ale'
" Plug 'sheerun/vim-polyglot'
Plug 'dense-analysis/ale'
" Plug 'davidhalter/jedi-vim'
" Simplify movement
@ -81,7 +82,11 @@
" Latex
Plug 'xuhdev/vim-latex-live-preview', { 'for': 'tex' }
Plug 'vim-latex/vim-latex', { 'for': 'tex' }
Plug 'vim-scripts/AnsiEsc.vim'
" Plug 'powerman/vim-plugin-AnsiEsc'
Plug 'mboughaba/i3config.vim'
call plug#end()
"}}}
" Syntax options{{{
"
@ -102,7 +107,7 @@ call plug#end()
"display whitespace
set listchars=tab:>-,trail:~,extends:>,precedes:<
set listchars=space:_,eol:;,tab:>-,trail:~,extends:>,precedes:<
"set list
set list
"ativa o mouse
set mouse =a
@ -123,23 +128,23 @@ call plug#end()
colorscheme minimalist
" set background=dark
"background color is transparent
highlight Normal guibg=None
highlight EndOfBuffer guibg=None
highlight Normal guibg=None
highlight EndOfBuffer guibg=None guifg=#303030
highlight SpecialKey guibg=None guifg=#cc5757
"Line numers
highlight LineNr term=bold ctermfg=9 guifg=#cc5757 guibg=None
"Make whitespace dark
highlight NonText ctermfg=black guifg=#303030
highlight SpecialKey ctermfg=black guifg=#303030
highlight NonText ctermfg=black guifg=#252525 guibg=None
" highlight SpecialKey ctermfg=black guifg=#252525 guibg=None
"Current line
set cursorline
highlight CursorLine term=bold cterm=bold gui=Bold guibg=#303030
highlight CursorLineNr term=bold cterm=bold gui=Bold guibg=None guifg=white
highlight CursorLine term=bold cterm=bold gui=Bold guibg=#191919
highlight CursorLineNr term=bold cterm=bold gui=Bold guibg=#191919 guifg=white
"}}}
" Keys{{{
"
@ -162,43 +167,43 @@ call plug#end()
nnoremap <silent> <C-l> <C-w><C-l>
" Interact with language server
map <silent> <C-Space> :call LanguageClient_contextMenu()<CR>
nnoremap <silent> gh :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> gr :call LanguageClient#textDocument_references()<CR>
nnoremap <silent> gs :call LanguageClient#textDocument_documentSymbol()<CR>
nnoremap <silent> gR :call LanguageClient#textDocument_rename()<CR>
" map <silent> <C-Space> :<CR>
nnoremap <silent> gd :ALEGoToDefinition<CR>
" nnoremap <silent> gh :call LanguageClient#textDocument_hover()<CR>
" nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
" nnoremap <silent> gr :call LanguageClient#textDocument_references()<CR>
" nnoremap <silent> gs :call LanguageClient#textDocument_documentSymbol()<CR>
" nnoremap <silent> gR :call LanguageClient#textDocument_rename()<CR>
"}}}
" Lanugage Server{{{
"
" " Set this variable to 1 to fix files when you save them.
" let g:ale_fix_on_save = 1
" let g:ale_linters = {
" \ 'python': ['pyls'],
" \}
" let g:ale_fixers = {
" \ '*': ['remove_trailing_lines', 'trim_whitespace'],
" \ 'javascript': ['prettier', 'eslint'],
" \ 'python': ['black'],
" \}
" Set this variable to 1 to fix files when you save them.
let g:ale_fix_on_save = 1
set hidden
let g:LanguageClient_serverCommands = {
\ 'c': ['cquery', '--log-file=/tmp/cq.log'],
\ 'cpp': ['cquery', '--log-file=/tmp/cq.log'],
let g:ale_linters = {
\ 'python': ['pyls'],
\ 'rust': ['~/.cargo/bin/rustup', 'run', 'stable', 'rls'],
\ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
\ 'python': ['/usr/bin/pyls'],
\ 'tex': ['/usr/bin/texlab'],
\ }
\}
" \ 'c': ['cquery', '--log-file=/tmp/cq.log'],
" \ 'cpp': ['cquery', '--log-file=/tmp/cq.log'],
" \ 'javascript': ['/usr/local/bin/javascript-typescript-stdio'],
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\ 'javascript': ['prettier', 'eslint'],
\ 'python': ['black'],
\}
let g:deoplete#enable_at_startup = 1
" Configure deoplete to use language server
call deoplete#custom#source('LanguageClient',
\ 'min_pattern_length',
\ 2)
call deoplete#custom#option('sources', {
\ '_': ['ale'],
\})
" let g:ale_completion_enabled = 1
" set omnifunc=ale#completion#OmniFunc
"python env{{{
" MUST NOT BE INDENTED!
py3 << EOF
@ -236,4 +241,4 @@ EOF
nnoremap <S-h> :call ToggleHiddenAll()<CR>
call ToggleHiddenAll()
"}}}
" vim:foldmethod=marker
" vim:foldmethod=marker

View File

@ -1,19 +1,17 @@
#!/bin/sh
set -e
short(){
owm(){
# IPINFO=$(curl -s ipinfo.io/loc)
# LAT=$(echo $IPINFO | cut -d, -f1 | cut -d. -f1)
# LON=$(echo $IPINFO | cut -d, -f2 | cut -d. -f1)
CITY=$(curl -s ipinfo.io/city)
APPID="fd68c0fe7951f5ab7e24a240eb0942b8"
FORECAST=$(http get http://api.openweathermap.org/data/2.5/forecast\?APPID\=${APPID}\&q\="${CITY}"\&units\=metric)
TEMP=$(echo $FORECAST | jq -r ".list[0].main.temp")
WEATHER=$(echo $FORECAST | jq -r ".list[0].weather[0].main")
http get http://api.openweathermap.org/data/2.5/forecast\?APPID\=${APPID}\&q="${CITY}"\&units\=metric
}
MIN=$(echo $FORECAST | jq -r ".list[2].main.temp_min" |
perl -pe 's/(\d*)\.\d*/\1/')
MAX=$(echo $FORECAST | jq -r ".list[2].main.temp_max" |
perl -pe 's/(\d*)\.\d*/\1/')
format_weather(){
case $WEATHER in
"Clear")
WEATHER=" "
@ -34,23 +32,48 @@ short(){
WEATHER=""
;;
esac
}
owm_long(){
FORECAST=$(owm)
TEMP=$(echo $FORECAST | jq -r ".list[0].main.temp")
WEATHER=$(echo $FORECAST | jq -r ".list[0].weather[0].main")
format_weather
MIN=$(echo $FORECAST | jq -r ".list[2].main.temp_min" |
perl -pe 's/(\d*)\.\d*/\1/')
MAX=$(echo $FORECAST | jq -r ".list[2].main.temp_max" |
perl -pe 's/(\d*)\.\d*/\1/')
text="$MIN $MAX $TEMP°C $WEATHER"
# tooltip="$(curl -s wttr.in | paste -d'\\n' -s )"
tooltip=""
echo "$text"
}
full(){
local request="wttr.in/${1-Caxias}"
[ "$(tput cols)" -lt 125 ] && request+='?n'
curl -sH "Accept-Language: ${LANG%_*}" --compressed "$request" |
head -n-3 | tail -n+3
owm_short(){
FORECAST=$(owm)
TEMP=$(echo $FORECAST | jq -r ".list[0].main.temp" |
perl -pe 's/(\d*)\.\d*/\1/')
WEATHER=$(echo $FORECAST | jq -r ".list[0].weather[0].main")
format_weather
text="$TEMP°C $WEATHER"
echo "$text"
}
wttrin(){
local request="wttr.in/${1-Caxias}?QF"
[ "$(tput cols)" -lt 125 ] && request+='n'
curl -sH "Accept-Language: ${LANG%_*}" --compressed "$request"
}
if [ "$1" == "full" ]
then
full
wttrin
elif [ "$1" == "short" ]
then
owm_short
else
short
owm_long
fi

View File

@ -3,7 +3,7 @@ set -e
MENU(){
if [ -n "$SWAYSOCK" ];then
wofi -dIk/dev/null "$@"
wofi -dIk/dev/null $@
else
rofi -dmenu -i $@
fi
@ -47,4 +47,5 @@ then
search
else
usage
search
fi

View File

@ -1,8 +1,8 @@
#!/bin/bash
#!/bin/sh
MENU(){
if [ -n "$SWAYSOCK" ];then
wofi -dIk/dev/null "$@"
wofi -dIk/dev/null $@
else
rofi -dmenu -i $@
fi

View File

@ -0,0 +1,23 @@
swipe:
3:
left:
command: 'swaymsg workspace prev'
right:
command: 'swaymsg workspace next'
up:
command: 'swaymsg fullscreen toggle'
down:
command: 'wofi -S drun -ip"Iniciar: "'
# pinch:
# in:
# command: 'xdotool key ctrl+shift+plus'
# out:
# command: 'xdotool key ctrl+minus'
threshold:
swipe: 1
# pinch: 0.2
interval:
swipe: 0.5
# pinch: 0.2

View File

@ -1,4 +1,5 @@
font=Inter 12
text-color=#aaaaaa
background-color=#202020
border-color=#cc5757
progress-color=#cc5757

View File

@ -1,13 +1,13 @@
# LEL
#
# _____ ____ _ _ _
# _____ ____ _ _ _
# / __\ \ /\ / / _` | | | |
# \__ \\ V V / (_| | |_| |
# |___/ \_/\_/ \__,_|\__, |
# |___/
# |___/
# Variables {{{
#
#
# Logo key.
set $mod Mod4
# Home row direction keys, like vim
@ -41,8 +41,12 @@
# }}}
# Input configuration {{{
#
input "1739:30966:Synaptics_TM3096-006" {
#hide the mouse after 10 seconds
seat * hide_cursor 10000
input "type:touchpad" {
#disable while typing
dwt enabled
natural_scroll enabled
tap enabled
@ -52,13 +56,14 @@
xkb_layout br
xkb_numlock enabled
}
# }}}
# Key bindings: {{{
# Basic {{{
#
# Start a terminal
bindsym $mod+Return exec $term
bindsym $mod+Return exec $term
#start web browser
bindsym $mod+q exec qutebrowser
@ -66,10 +71,10 @@
bindsym $mod+m exec nemo
# Kill focused window
bindsym $mod+x kill
bindsym $mod+x kill
# Start your launcher
bindsym $mod+d exec $menu
bindsym $mod+d exec $menu
# Fill passwords
bindsym Control+$mod+p exec keepmenu
@ -78,7 +83,7 @@
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
bindsym $mod+Shift+c reload
# Lock Sway
bindsym $mod+Control+s exec swaylock
@ -88,8 +93,8 @@
# }}}
# Moving around: {{{
#
# Move your focus around
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
@ -99,22 +104,24 @@
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Resizing containers:
# Resizing containers:
bindsym $mod+Control+$left resize shrink width 10px
bindsym $mod+Control+$down resize grow height 10px
bindsym $mod+Control+$up resize shrink height 10px
bindsym $mod+Control+$right resize grow width 10px
# }}}
#}}}
# Workspaces: {{{
#
# Switch to workspace
bindsym $mod+Next workspace next
bindsym $mod+Prior workspace prev
# Switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
@ -125,7 +132,7 @@
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# Move focused container to workspace
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
@ -144,7 +151,7 @@
# }}}
# Layout stuff: {{{
#
#
# Splits
bindsym $mod+b splith
bindsym $mod+v splitv
@ -163,6 +170,8 @@
# Move focus to the parent container
bindsym $mod+a focus parent
bindsym $mod+z focus child
# }}}
# Scratchpad: {{{
#
@ -172,7 +181,7 @@
bindsym $mod+minus scratchpad show
#}}}
# Screenshots: {{{
#
#
# Screens to file
bindsym Print exec grim $(xdg-user-dir PICTURES)/$(date +'%Y-%m-%d-%H%M%S_grim.png')
@ -187,7 +196,7 @@
bindsym Control+Print exec grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name') - | wl-copy
# Screen recorder
bindsym Control+Alt+Shift+r exec wf-recorder -a
bindsym Control+Alt+Shift+r exec wf-recorder -a
# }}}
# Audio: {{{
@ -196,16 +205,16 @@
for_window [app_id="pavucontrol"] floating enable
# Volume controll
bindsym XF86AudioRaiseVolume exec pavolume volup 5
bindsym XF86AudioLowerVolume exec pavolume voldown 5
bindsym XF86AudioMute exec pavolume mutetoggle
bindsym --locked XF86AudioRaiseVolume exec pavolume volup 5
bindsym --locked XF86AudioLowerVolume exec pavolume voldown 5
bindsym --locked XF86AudioMute exec pavolume mutetoggle
# Media player controls
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86AudioNext exec mpc next
bindsym XF86AudioPrev exec mpc prev
bindsym $mod+Shift+x exec musmenu delete
bindsym $mod+Shift+s exec musmenu search
bindsym --locked XF86AudioPlay exec mpc toggle
bindsym --locked XF86AudioNext exec mpc next
bindsym --locked XF86AudioPrev exec mpc prev
bindsym $mod+Shift+x exec musmenu delete
bindsym $mod+Shift+s exec musmenu search
# }}}
# }}}
@ -258,6 +267,8 @@
exec mako
# Block device Mounter to /run/media/<username>
exec udiskie
# gesture daemon
exec fusuma
# Blue light filter
exec redshift
# kde connect
@ -278,5 +289,5 @@
# resume 'swaymsg "output * dpms on;reload"' \
#}}}
include /etc/sway/config.d/*
include /etc/sway/config.d/
# vim:filetype=i3config:foldmethod=marker

View File

@ -3,43 +3,38 @@
//"margin":"5 5 0 5",
//"margin-bottom":10,
//"position": "bottom", // Waybar position (top|bottom|left|right)
"height": 26, // Waybar height (to be removed for auto height)
//"height": 26, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules
"modules-left": ["sway/workspaces", "sway/mode", "sway/window"],
"modules-center": ["clock"],
"modules-right": ["custom/recording","mpd", "pulseaudio", "network", "battery","custom/weather","custom/mail", "custom/updates", "tray"],
//Modules configuration
"modules-left": ["sway/workspaces","sway/window"],
"modules-center": ["clock","custom/weather"],
"modules-right": ["custom/recording","mpd", "pulseaudio", "network", "battery","custom/mail", "custom/updates", "tray"],
"sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
"format": "{name}: {icon}",
"enable-bar-scroll":true,
"format": "{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
// "4": "",
"1": "",
"2": "",
"3": "",
"10": "",
"urgent": "",
"focused": "",
"default": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/window":{
"tooltip":false,
"format": " {} "
},
"sway/window":{
"max-length":40
},
"mpd": {
"tooltip":false,
"format": " {stateIcon} {title} - {artist} 🎜 ",
"format-disconnected": " Disconnected 🎜 ",
"format-stopped": " Stopped 🎜 ",
"timeout":15,
"timeout":5,
"unknown-tag": " N/A ",
"tooltip":false,
"interval": 2,
"max-length":40,
"state-icons": {
"paused": "",
"playing": ""
@ -53,34 +48,20 @@
}
},
"tray": {
// "icon-size": 21,
"tooltip":false,
"spacing": 10
},
"clock": {
"tooltip":false,
"tooltip-format": "{:%Y-%m-%d | %H:%M}",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", ""]
},
"battery": {
"tooltip":false,
"states": {
"full":100,
"good": 95,
@ -99,20 +80,19 @@
"tooltip":false,
// "interface": "wlp2*", // (Optional) To force the use of this interface
"on-click": "termite -e nmtui",
"format-wifi": "{essid} ",
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-wifi": "",
"format-ethernet": "",
"format-linked": "",
"format-disconnected": "⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
"tooltip":false,
"scroll-step": 10,
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format": "{icon}",
"format-bluetooth": "",
"format-bluetooth-muted": "",
"format-muted": "",
"format-icons": {
"headphones": "",
"handsfree": "",
@ -125,29 +105,33 @@
"on-click": "pavucontrol"
},
"custom/weather": {
"exec": "forecast",
"tooltip":false,
"exec": "forecast short",
"interval": 1800,
"on-click": "kitty --class weather sh -c 'forecast full;read -n1 -p\"Press Any key to quit \"'"
"on-click": "kitty --class weather sh -c 'forecast full;read -n1 -p\"Press Any key to quit \"'",
"on-click-right": "xdg-open https://openweathermap.org"
},
"custom/mail": {
"format":"{} ",
"tooltip":false,
"exec": "checkmail",
"on-click": "kitty neomutt; pkill -SIGRTMIN+4 waybar", // update system
"format":"{} ",
"exec": "sleep 10s; checkmail",
"on-click": "kitty neomutt; pkill -SIGRTMIN+4 waybar",
"signal": 4,
"interval": 1800
},
"custom/updates": {
"tooltip":false,
"format": "{} ",
"interval": 3600, // every hour
"exec": "yay -Sy > /dev/null; yay -Qqu | wc -l | sed 's/^0$//'",
"on-click": "kitty yay; pkill -SIGRTMIN+8 waybar", // update system
"interval": 3600,
"exec": "sleep 30s; yay -Syuw --noconfirm> /dev/null; yay -Qqu | wc -l | sed 's/^0$//'",
"on-click": "[ ping -qc1 archlinux.org ] && kitty yay -Syu || kitty yay -Su; pkill -SIGRTMIN+8 waybar",
"signal": 8
},
"custom/recording": {
"tooltip":false,
"exec": "pgrep wf-recorder > /dev/null && echo  || echo",
"interval": 1,
"on-click": "pkill wf-recorder; pkill -SIGRTMIN+5 waybar", // update system
"on-click": "pkill wf-recorder; pkill -SIGRTMIN+5 waybar",
"signal": 5
}

View File

@ -1,27 +1,20 @@
* {
border: none;
border-radius: 0;
font-family: Inter;
font-size: 14px;
min-height: 0;
/*
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
*/
font: 14px Inter;
font-weight:bold;
/* border: none; */
border-radius:0;
margin:0;
padding: 0;
transition-duration:0;
/* font-size: ; */
/* min-height: 0; */
}
window#waybar {
background-color: #202020;
border-bottom: 2px solid #191919;
color: #ffffff;
transition: background-color .3s;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.empty {
background-color: transparent;
border:none;
@ -29,20 +22,22 @@ window#waybar.empty {
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
transition: .3s border;
border: 3px solid transparent;
color: #aaaaaa;
}
/*
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
border-top: 1px solid white;
}
*/
#workspaces button.focused {
background-color: rgba(255,255,255,.01);
/* padding: 0 2px; */
/* background-color: rgba(255,255,255,.01); */
border-top: 3px solid #cc5757;
border-bottom: 3px solid transparent;
color: #ffffff;
}
#workspaces button.urgent {
@ -51,58 +46,61 @@ window#waybar.empty {
/*Window Title*/
#window{
color:#ccc;
margin:0 4px;
}
#mode {
background-color: #64727D;
border-bottom: 3px solid #ffffff;
color:#aaa;
margin:0 4px;
/* width:15px; */
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#mpd,
#backlight,
#tray
#clock,
#network,
#battery,
#backlight,
#pulseaudio,
#custom-weather,
#custom-mail,
#custom-updates,
#tray,
#mode,
#idle_inhibitor {
padding: 0 10px;
margin: 0 4px;
#custom-weather
{
margin: 0 7px;
color: #ffffff;
opacity:.7;
}
#clock {
/*border-top: 2px solid #64727D;*/
font:15px bold;
#mpd,
#window,
#workspaces
{
font-weight:normal;
}
#battery {
border-top: 2px solid #ffffff;
/*background-color: #ffffff;*/
#tray
{
margin-right:7px;
}
#battery.charging {
border-top: 2px solid #26A65B;
/*background-color: #26A65B;*/
color: #ffffff;
/*
label:focus {
border-top: 2px solid #000000;
background-color: #000000;
}
@keyframes blink {
to {
border-top: 2px solid #ffffff;
/*background-color: #ffffff;*/
color: #000000;
}
}
#battery {
border-top: 2px solid #ffffff;
}
#battery.charging {
border-top: 2px solid #26A65B;
color: #ffffff;
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
@ -112,82 +110,62 @@ window#waybar.empty {
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
border-top: 2px solid #000000;
background-color: #000000;
}
#network {
border-top: 2px solid #66cc99;
/*background-color: #66cc99;*/
/*color: #2a5c45;*/
}
#network.disconnected {
border-top: 2px solid #f53c3c;
/*background-color: #f53c3c;*/
}
#pulseaudio {
border-top: 2px solid #f1c40f;
/*background-color: #f1c40f;*/
/*color: #000000;*/
}
#pulseaudio.muted {
border-top: 2px solid #90b1b1;
/*background-color: #90b1b1;*/
/*color: #2a5c45;*/
}
#custom-weather {
border-top: 2px solid #2980b9;
/*background-color: #2980b9;*/
}
#custom-mail {
border-top: 2px solid #67334d;
/*background-color: #2980b9;*/
}
#custom-updates {
border-top: 2px solid #ee9957;
/*background-color: #2980b9;*/
}
#tray {
border-top: 2px solid #2980b9;
}
#mpd {
border-top: 2px solid #66cc99;
}
#mpd.disconnected {
border-top: 2px solid #f53c3c;
}
#mpd.stopped {
border-top: 2px solid #90b1b1;
}
*/
#mpd.paused {
font-size: 0;
border: none;
}
#custom-recording {
/* border-top: 2px solid #ee9957; */
color: #ee4040;
}
#tray {
border-top: 2px solid #2980b9;
/*background-color: #2980b9;*/
}
#mpd {
border-top: 2px solid #66cc99;
/*background-color: #66cc99;*/
/*color: #2a5c45;*/
}
#mpd.disconnected {
border-top: 2px solid #f53c3c;
/*background-color: #f53c3c;*/
}
#mpd.stopped {
border-top: 2px solid #90b1b1;
/*background-color: #90b1b1;*/
}
#mpd.paused {
font-size: 0;
border: none;
/*background-color: #51a37a;*/
}
/*
* UNUSED
*

View File

@ -1,5 +1,5 @@
[Settings]
gtk-application-prefer-dark-theme=1
gtk-application-prefer-dark-theme=0
gtk-theme-name=materia-custom-accent
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Inter 11

960
zsh/.p10k.zsh Normal file
View File

@ -0,0 +1,960 @@
# Generated by Powerlevel10k configuration wizard on 2019-12-09 at 10:11 -03.
# Based on romkatv/powerlevel10k/config/p10k-lean.zsh, checksum 51917.
# Wizard options: awesome-fontconfig + powerline, small icons, lean, time, 2 lines,
# disconnected, no frame, sparse, few icons, concise, transient_prompt,
# instant_prompt=verbose.
# Type `p10k configure` to generate another config.
#
# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate
# your own config based on it.
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
() {
emulate -L zsh
setopt no_unset extended_glob
# Unset all configuration options. This allows you to apply configiguration changes without
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
unset -m 'POWERLEVEL9K_*'
autoload -Uz is-at-least && is-at-least 5.1 || return
zmodload zsh/langinfo
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
fi
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
# os_icon # os identifier
dir # current directory
vcs # git status
# =========================[ Line #2 ]=========================
newline
prompt_char # prompt symbol
)
# The list of segments shown on the right. Fill it with less important segments.
# Right prompt on the last prompt line (where you are typing your commands) gets
# automatically hidden when the input line reaches it. Right prompt above the
# last prompt line gets hidden if it would overlap with left prompt.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
# =========================[ Line #1 ]=========================
status # exit code of the last command
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
goenv # go environment (https://github.com/syndbg/goenv)
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
# node_version # node.js version
# go_version # go version (https://golang.org)
# rust_version # rustc version (https://www.rust-lang.org)
# dotnet_version # .NET version (https://dotnet.microsoft.com)
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
rvm # ruby version from rvm (https://rvm.io)
fvm # flutter version management (https://github.com/leoafarias/fvm)
kubecontext # current kubernetes context (https://kubernetes.io/)
terraform # terraform workspace (https://www.terraform.io)
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
# aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
# azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
# gcloud # google cloud acccount and project (https://cloud.google.com/)
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger)
vim_shell # vim shell indicator (:sh)
# midnight_commander # midnight commander shell (https://midnight-commander.org/)
# vpn_ip # virtual private network indicator
# ram # free RAM
# load # CPU load
time # current time
# =========================[ Line #2 ]=========================
newline
# public_ip # public IP address
# proxy # system-wide http/https/ftp proxy
# battery # internal battery
# example # example user-defined segment (see prompt_example function below)
)
# Basic style options that define the overall look of your prompt. You probably don't want to
# change them.
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
# To disable default icons for all segments, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=''.
#
# To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
# or set it to '${P9K_VISUAL_IDENTIFIER}'.
#
# To remove spaces from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
# to '${P9K_VISUAL_IDENTIFIER// }'. You'll know that you you need this option if you see extra
# spaces after icons.
#
# To enable default icons for one segment (e.g., dir), set
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'.
#
# To assign a specific icon to one segment (e.g., dir), set
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'.
#
# To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE),
# set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'.
#
# Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying
# icons that your text editor cannot render. Don't forget to put $ and use single quotes when
# defining icons via Unicode codepoints.
#
# Note: Many default icons cannot be displayed with system fonts. You'll need to install a
# capable font to use them. See POWERLEVEL9K_MODE below.
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
# This option makes a difference only when default icons are enabled for all or some prompt
# segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as
# $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this
# parameter depends on the provider of the font your terminal is using.
#
# Font Provider | POWERLEVEL9K_MODE
# ---------------------------------+-------------------
# Powerline | powerline
# Font Awesome | awesome-fontconfig
# Adobe Source Code Pro | awesome-fontconfig
# Source Code Pro | awesome-fontconfig
# Awesome-Terminal Fonts (regular) | awesome-fontconfig
# Awesome-Terminal Fonts (patched) | awesome-patched
# Nerd Fonts | nerdfont-complete
# Other | compatible
#
# If this looks overwhelming, either stick with a preinstalled system font and set
# POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
# https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
# and set POWERLEVEL9K_MODE=nerdfont-complete.
typeset -g POWERLEVEL9K_MODE=awesome-fontconfig
# When set to true, icons appear before content on both sides of the prompt. When set
# to false, icons go after content. If empty or not set, icons go before content in the left
# prompt and after content in the right prompt.
#
# You can also override it for a specific segment:
#
# POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
#
# Or for a specific segment in specific state:
#
# POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true
# Add an empty line before each prompt.
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Connect left prompt lines with these symbols.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=
# Connect right prompt lines with these symbols.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=
# The left end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
# The right end of right prompt.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=
# Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll
# probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and
# POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below.
typeset -g POWERLEVEL9K_SHOW_RULER=false
typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·'
typeset -g POWERLEVEL9K_RULER_FOREGROUND=240
# Filler between left and right prompt on the first prompt line. You can set it to '·' or '─'
# to make it easier to see the alignment between left and right prompt and to separate prompt
# from command output. It serves the same purpose as ruler (see above) without increasing
# the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false
# if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact
# prompt.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
# The color of the filler.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242
# Add a space between the end of left prompt and the filler.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' '
# Add a space between the filler and the start of right prompt.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' '
# Start filler from the edge of the screen if there are no left segments on the first line.
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
# End filler on the edge of the screen if there are no right segments on the first line.
typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
fi
#################################[ os_icon: os identifier ]##################################
# OS identifier color.
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=
# Make the icon bold.
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT// }'
################################[ prompt_char: prompt symbol ]################################
# Green prompt symbol if the last command succeeded.
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76
# Red prompt symbol if the last command failed.
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196
# Default prompt symbol.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION=''
# Prompt symbol in command vi mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION=''
# Prompt symbol in visual vi mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION=''
# Prompt symbol in overwrite vi mode.
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
##################################[ dir: current directory ]##################################
# Default current directory color.
typeset -g POWERLEVEL9K_DIR_FOREGROUND=31
# If directory is too long, shorten some of its segments to the shortest possible unique
# prefix. The shortened directory can be tab-completed to the original.
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
# Replace removed segment suffixes with this symbol.
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
# Color of the shortened directory segments.
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103
# Color of the anchor directory segments. Anchor segments are never shortened. The first
# segment is always an anchor.
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
# Display anchor directory segments in bold.
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
# Don't shorten directories that contain any of these files. They are anchors.
local anchor_files=(
.bzr
.citc
.git
.hg
.node-version
.python-version
.ruby-version
.shorten_folder_marker
.svn
.terraform
CVS
Cargo.toml
composer.json
go.mod
package.json
)
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
# Don't shorten this many last directory segments. They are anchors.
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
# Shorten directory if it's longer than this even if there is space for it. The value can
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
# If set to `0`, directory will always be shortened to its minimum length.
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
# many columns for typing commands.
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
# If set to true, embed a hyperlink into the directory. Useful for quickly
# opening a directory in the file manager simply by clicking the link.
# Can also be handy when the directory is shortened, as it allows you to see
# the full directory that was used in previous commands.
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
# Enable special styling for non-writable directories.
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
# Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
# above must be set to true for this parameter to have effect.
# typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Custom prefix.
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
# POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories.
# It must be an array with 3 * N elements. Each triplet consists of:
#
# 1. A pattern against which the current directory is matched. Matching is done with
# extended_glob option enabled.
# 2. Directory class for the purpose of styling.
# 3. Icon.
#
# Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there
# are no matches, the directory will have no icon.
#
# Example:
#
# typeset -g POWERLEVEL9K_DIR_CLASSES=(
# '~/work(|/*)' WORK '(╯°□°)╯︵ ┻━┻'
# '~(|/*)' HOME '⌂'
# '*' DEFAULT '')
#
# With these settings, the current directory in the prompt may look like this:
#
# (╯°□°)╯︵ ┻━┻ ~/work/projects/important/urgent
#
# Or like this:
#
# ⌂ ~/best/powerlevel10k
#
# You can also set different colors for directories of different classes. Remember to override
# FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
# to have its own color.
#
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
#
typeset -g POWERLEVEL9K_DIR_CLASSES=()
#####################################[ vcs: git status ]######################################
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
# Untracked files icon. It's really a question mark, your font isn't broken.
# Change the value of this parameter to show a different icon.
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
# Formatter for Git status.
#
# Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
#
# You can edit the function to customize how Git status looks.
#
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
function my_git_formatter() {
emulate -L zsh
if [[ -n $P9K_CONTENT ]]; then
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
typeset -g my_git_format=$P9K_CONTENT
return
fi
if (( $1 )); then
# Styling for up-to-date Git status.
local meta='%f' # default foreground
local clean='%76F' # green foreground
local modified='%178F' # yellow foreground
local untracked='%39F' # blue foreground
local conflicted='%196F' # red foreground
else
# Styling for incomplete and stale Git status.
local meta='%244F' # grey foreground
local clean='%244F' # grey foreground
local modified='%244F' # grey foreground
local untracked='%244F' # grey foreground
local conflicted='%244F' # grey foreground
fi
local res
local where # branch name, tag or commit
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
where=${(V)VCS_STATUS_LOCAL_BRANCH}
elif [[ -n $VCS_STATUS_TAG ]]; then
res+="${meta}#"
where=${(V)VCS_STATUS_TAG}
else
res+="${meta}@"
where=${VCS_STATUS_COMMIT[1,8]}
fi
# If local branch name or tag is at most 32 characters long, show it in full.
# Otherwise show the first 12 … the last 12.
(( $#where > 32 )) && where[13,-13]="…"
res+="${clean}${where//\%/%%}" # escape %
# Show tracking branch name if it differs from local branch.
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
fi
# ⇣42 if behind the remote.
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_COMMITS_BEHIND}"
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}${VCS_STATUS_COMMITS_AHEAD}"
# *42 if have stashes.
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
# 'merge' if the repo is in an unusual state.
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
# ~42 if have merge conflicts.
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
# +42 if have staged changes.
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
# !42 if have unstaged changes.
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
# Remove the next line if you don't want to see untracked files at all.
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
typeset -g my_git_format=$res
}
functions -M my_git_formatter 2>/dev/null
# Disable the default Git status formatting.
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
# Install our own Git status formatter.
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
# Enable counters for staged, unstaged, etc.
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
# Icon color.
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
# Custom icon.
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
# Show status of repositories of these types. You can add svn and/or hg if you are
# using them. If you do, your prompt may become slow even when your current directory
# isn't in an svn or hg reposotiry.
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
# These settings are used for respositories other than Git or when gitstatusd fails and
# Powerlevel10k has to fall back to using vcs_info.
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
##########################[ status: exit code of the last command ]###########################
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
# style them independently from the regular OK and ERROR state.
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
# Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
# it will signify success by turning green.
typeset -g POWERLEVEL9K_STATUS_OK=false
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70
typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'
# Status when some part of a pipe command fails but the overall exit status is zero. It may look
# like this: 1|0.
typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'
# Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
# it will signify error by turning red.
typeset -g POWERLEVEL9K_STATUS_ERROR=false
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160
typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'
# Status when the last command was terminated by a signal.
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160
# Use terse signal names: "INT" instead of "SIGINT(2)".
typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘'
# Status when some part of a pipe command fails and the overall exit status is also non-zero.
# It may look like this: 1|0.
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘'
###################[ command_execution_time: duration of the last command ]###################
# Show duration of the last command if takes longer than this many seconds.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
# Show this many fractional digits. Zero means round to seconds.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
# Execution time color.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101
# Duration format: 1d 2h 3m 4s.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
# Custom icon.
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
#######################[ background_jobs: presence of background jobs ]#######################
# Don't show the number of background jobs.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
# Background jobs color.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70
# Icon to show when there are background jobs.
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
#######################[ direnv: direnv status (https://direnv.net/) ]########################
# Direnv color.
typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178
# Icon to show when direnv is active.
typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
# NordVPN connection indicator color.
typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39
# Hide NordVPN connection indicator when not connected.
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
# Ranger shell color.
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
# Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########################[ vim_shell: vim shell indicator (:sh) ]###########################
# Vim shell indicator color.
typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34
# Icon to show when in a vim shell.
typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######
# Midnight Commander shell color.
typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=178
# Icon to show when in a midnight commander shell.
typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
######################################[ ram: free RAM ]#######################################
# RAM color.
typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
# Custom icon.
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################################[ load: CPU load ]######################################
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
typeset -g POWERLEVEL9K_LOAD_WHICH=5
# Load color when load is under 50%.
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
# Load color when load is between 50% and 70%.
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
# Load color when load is over 70%.
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
# Custom icon.
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
##################################[ context: user@hostname ]##################################
# Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
# Context color in SSH without privileges.
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180
# Default context color (no privileges, no SSH).
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
# Context format when running with privileges: bold user@hostname.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
# Context format when in SSH without privileges: user@hostname.
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
# Default context format (no privileges, no SSH): user@hostname.
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
# Don't show context unless running with privileges or in SSH.
# Tip: Remove the next line to always show context.
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Custom prefix.
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith '
###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
# Python virtual environment color.
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37
# Don't show Python version next to the virtual environment name.
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
# Separate environment name from Python version only with a space.
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
# Custom icon.
typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='🐍'
#####################[ anaconda: conda environment (https://conda.io/) ]######################
# Anaconda environment color.
typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37
# Don't show Python version next to the anaconda environment name.
typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false
# Separate environment name from Python version only with a space.
typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
# Custom icon.
typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='🐍'
################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
# Pyenv color.
typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37
# Don't show the current Python version if it's the same as global.
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
# Custom icon.
typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='🐍'
################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
# Goenv color.
typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37
# Don't show the current Go version if it's the same as global.
typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
# Custom icon.
# typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
# Nodenv color.
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
# Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global).
typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
# Custom icon.
# typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
# Nodeenv color.
typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70
# Don't show Node version next to the environment name.
typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
# Separate environment name from Node version only with a space.
typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
# Custom icon.
# typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
##############################[ node_version: node.js version ]###############################
# Node version color.
typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70
# Show node version only when in a directory tree containing package.json.
typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
# Custom icon.
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
#######################[ go_version: go version (https://golang.org) ]########################
# Go version color.
typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
# Show go version only when in a go project subdirectory.
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
# Custom icon.
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
# Rust version color.
typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
# Show rust version only when in a rust project subdirectory.
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
# Custom icon.
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
# .NET version color.
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
# Show .NET version only when in a .NET project subdirectory.
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
# Custom icon.
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
# Rbenv color.
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
# Hide ruby version if it doesn't come from one of these sources.
typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)
# If set to false, hide ruby version if it's the same as global:
# $(rbenv version-name) == $(rbenv global).
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
# Custom icon.
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
# Rvm color.
typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
# Don't show @gemset at the end.
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
# Don't show ruby- at the front.
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
# Custom icon.
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############
# Fvm color.
typeset -g POWERLEVEL9K_FVM_FOREGROUND=38
# Custom icon.
# typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
#
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current kubernetes context gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current kubernetes context is "deathray-testing/default", its class is TEST
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134
# typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
# segment. Parameter expansions are very flexible and fast, too. See reference:
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
#
# Within the expansion the following parameters are always available:
#
# - P9K_CONTENT The content that would've been displayed if there was no content
# expansion defined.
# - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
# output of `kubectl config get-contexts`.
# - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
# output of `kubectl config get-contexts`.
# - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
# in the output of `kubectl config get-contexts`. If there is no
# namespace, the parameter is set to "default".
#
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
# the following extra parameters are available:
#
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
# - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
# - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
#
# P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
# if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
#
# - P9K_KUBECONTEXT_CLOUD_NAME=gke
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
#
# If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
#
# - P9K_KUBECONTEXT_CLOUD_NAME=eks
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
# Append the current context's namespace if it's not "default".
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
# Custom prefix.
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
# Terraform color.
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
# Custom icon.
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# AWS profile color.
typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current AWS profile gets matched.
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
# that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
# you'll see this value in your prompt. The second element of each pair in
# POWERLEVEL9K_AWS_CLASSES defines the context class. Patterns are tried in order. The
# first match wins.
#
# For example, given these settings:
#
# typeset -g POWERLEVEL9K_AWS_CLASSES=(
# '*prod*' PROD
# '*test*' TEST
# '*' DEFAULT)
#
# If your current AWS profile is "company_test", its class is TEST
# because "company_test" doesn't match the pattern '*prod*' but does match '*test*'.
#
# You can define different colors, icons and content expansions for different classes:
#
# typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28
# typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
# typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
typeset -g POWERLEVEL9K_AWS_CLASSES=(
# '*prod*' PROD # These values are examples that are unlikely
# '*test*' TEST # to match your needs. Customize them as needed.
'*' DEFAULT)
# typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
# AWS Elastic Beanstalk environment color.
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
# Custom icon.
# typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
# Azure account name color.
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
# Custom icon.
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud acccount and project (https://cloud.google.com/) ]###########
# Google cloud color.
typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32
# Google cloud format. Uncomment POWERLEVEL9K_GCLOUD_CONTENT_EXPANSION and edit its value if the
# default is too verbose.
#
# P9K_GCLOUD_ACCOUNT: the output of `gcloud config get-value account`
# P9K_GCLOUD_PROJECT: the output of `gcloud config get-value project`
# ${VARIABLE//\%/%%}: ${VARIABLE} with all occurences of '%' replaced with '%%'.
#
# typeset -g POWERLEVEL9K_GCLOUD_CONTENT_EXPANSION='${P9K_GCLOUD_ACCOUNT//\%/%%}:${P9K_GCLOUD_PROJECT//\%/%%}'
# Custom icon.
# typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'
###############################[ public_ip: public IP address ]###############################
# Public IP color.
typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94
# Custom icon.
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
########################[ vpn_ip: virtual private network indicator ]#########################
# VPN IP color.
typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
# When on VPN, show just an icon without the IP address.
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
# name of the interface.
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
# Icon to show when on VPN.
typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
# Proxy color.
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
# Custom icon.
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
################################[ battery: internal battery ]#################################
# Show battery in red when it's below this level and not connected to power supply.
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
# Show battery in green when it's charging or fully charged.
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
# Show battery in yellow when it's discharging.
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
# Battery pictograms going from low to high level of charge.
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}▁' '%K{232}▂' '%K{232}▃' '%K{232}▄' '%K{232}▅' '%K{232}▆' '%K{232}▇' '%K{232}█')
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
####################################[ time: current time ]####################################
# Current time color.
typeset -g POWERLEVEL9K_TIME_FOREGROUND=66
# Format for the current time: 09:51:02. See `man 3 strftime`.
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
# If set to true, time will update when you hit enter. This way prompts for the past
# commands will contain the start times of their commands as opposed to the default
# behavior where they contain the end times of their preceding commands.
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
# Custom icon.
typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
# Custom prefix.
# typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
# Example of a user-defined prompt segment. Function prompt_example will be called on every
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
#
# Type `p10k help segment` for documentation and a more sophisticated example.
function prompt_example() {
p10k segment -f 208 -i '⭐' -t 'hello, %n'
}
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
# is to generate the prompt segment for display in instant prompt. See
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
#
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
# will replay these calls without actually calling instant_prompt_*. It is imperative that
# instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this
# rule is not observed, the content of instant prompt will be incorrect.
#
# Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If
# instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.
function instant_prompt_example() {
# Since prompt_example always makes the same `p10k segment` calls, we can call it from
# instant_prompt_example. This will give us the same `example` prompt segment in the instant
# and regular prompts.
prompt_example
}
# User-defined prompt segments can be customized the same way as built-in segments.
# typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208
# typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
# when accepting a command line. Supported values:
#
# - off: Don't change prompt when accepting a command line.
# - always: Trim down prompt when accepting a command line.
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
# typed after changing current working directory.
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
# Instant prompt mode.
#
# - off: Disable instant prompt. Choose this if you've tried instant prompt and found
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
# https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
# Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
# For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
# can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
# really need it.
typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
# If p10k is already loaded, reload configuration.
# This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
(( ! $+functions[p10k] )) || p10k reload
}
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
'builtin' 'unset' 'p10k_config_opts'

View File

@ -1,3 +1,10 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block, everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# LEL
# _
@ -5,7 +12,7 @@
# |_ / __| '_ \
# / /\__ \ | | |
# /___|___/_| |_|
# Environment Vairables {{{
export QT_QPA_PLATFORMTHEME=qt5ct
export PATH=$PATH:~/.local/bin
@ -59,14 +66,15 @@ export PAGER=less
then
if systemctl -q is-active graphical.target && [[ ! $DISPLAY ]]
then
# esway > .swaylog
ei3 > .i3log
esway > .swaylog
# ei3 > .i3log
fi
fi
# }}}
# use tmux{{{
TMUX=1
if [ -z "$TMUX" ] && [ "$TERM" != "xterm-kitty" ]; then
attach_session=$(tmux 2> /dev/null ls -F \
'#{session_attached} #{?#{==:#{session_last_attached},},1,#{session_last_attached}} #{session_id}' |
@ -91,6 +99,7 @@ fi
zplug 'zplug/zplug', hook-build:'zplug --self-manage'
zplug "zsh-users/zsh-completions"
zplug "hlissner/zsh-autopair", defer:2
# History
zplug "scripts/dirhistory", from:oh-my-zsh
@ -108,12 +117,13 @@ fi
zplug "zsh-users/zsh-autosuggestions"
# Promp config
bindkey -e
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_CHAR_SYMBOL='$ '
SPACESHIP_CHAR_SYMBOL_ROOT='# '
zplug "denysdovhan/spaceship-prompt", use:spaceship.zsh, from:github, as:theme
# bindkey -e
# SPACESHIP_PROMPT_ADD_NEWLINE=false
# SPACESHIP_CHAR_SYMBOL='$ '
# SPACESHIP_CHAR_SYMBOL_ROOT='# '
# zplug "denysdovhan/spaceship-prompt", use:spaceship.zsh, from:github, as:theme
zplug "romkatv/powerlevel10k", as:theme, depth:1
if ! zplug check
then
zplug install
@ -157,7 +167,35 @@ fi
#
autoload -z edit-command-line
zle -N edit-command-line
bindkey "^X^E" edit-command-line
bindkey "^X" edit-command-line
# typeset -g -A key
# key[Home]="${terminfo[khome]}"
# key[End]="${terminfo[kend]}"
# key[Insert]="${terminfo[kich1]}"
# key[Backspace]="${terminfo[kbs]}"
# key[Delete]="${terminfo[kdch1]}"
# key[Up]="${terminfo[kcuu1]}"
# key[Down]="${terminfo[kcud1]}"
# key[Left]="${terminfo[kcub1]}"
# key[Right]="${terminfo[kcuf1]}"
# key[PageUp]="${terminfo[kpp]}"
# key[PageDown]="${terminfo[knp]}"
# key[ShiftTab]="${terminfo[kcbt]}"
# ${key[Home]}
# ${key[End]}
# ${key[Delete]}
# ${key[Insert]}
# ${key[Backspace]}
# ${key[Up]}
# ${key[Down]}
# ${key[Left]}
# ${key[Right]}
# ${key[PageUp]}
# ${key[PageDown]}
# ${key[ShiftTab]}
case $TERM in
rxvt*|xterm*)
@ -168,7 +206,7 @@ fi
bindkey "^[[B" history-substring-search-down #Down Arrow
bindkey "^[Oc" forward-word # control + right arrow
bindkey "^[Od" backward-word # control + left arrow
bindkey "^H" backward-kill-word # control + backspace
bindkey "^H" backward-kill-word # control + backspace
bindkey "^[[3^" kill-word # control + delete
;;
linux)
@ -220,3 +258,6 @@ fi
#}}}
# vim:foldmethod=marker
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh