first commit
This commit is contained in:
commit
66f1491f4e
56 changed files with 3144 additions and 0 deletions
.gitignoreMakefileREADME.md
conky
fonts
Hack Bold Italic Nerd Font Complete Mono Windows Compatible.ttfHack Bold Italic Nerd Font Complete Mono.ttfHack Bold Italic Nerd Font Complete Windows Compatible.ttfHack Bold Italic Nerd Font Complete.ttfHack Bold Nerd Font Complete Mono Windows Compatible.ttfHack Bold Nerd Font Complete Mono.ttfHack Bold Nerd Font Complete Windows Compatible.ttfHack Bold Nerd Font Complete.ttfHack Italic Nerd Font Complete Mono Windows Compatible.ttfHack Italic Nerd Font Complete Mono.ttfHack Italic Nerd Font Complete Windows Compatible.ttfHack Italic Nerd Font Complete.ttfHack Regular Nerd Font Complete Mono Windows Compatible.ttfHack Regular Nerd Font Complete Mono.ttfHack Regular Nerd Font Complete Windows Compatible.ttfHack Regular Nerd Font Complete.ttfdeploy.zsh
git
install.zshmc
neofetch
powerline
scripts
task
tmux
zsh
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/private
|
||||
.task/*.data
|
5
Makefile
Normal file
5
Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
install:
|
||||
./install.zsh
|
||||
|
||||
update:
|
||||
./install.zsh update
|
43
README.md
Normal file
43
README.md
Normal file
|
@ -0,0 +1,43 @@
|
|||
# Remarks
|
||||
|
||||
## Symlinks
|
||||
|
||||
`.config/*` should be copied or linked **into** `~/.config`
|
||||
|
||||
`.ssh/config` should be linked to `~/.ssh/config`
|
||||
|
||||
`.p10k.zsh` must be linked or copied to `~/.p10k.zsh`
|
||||
|
||||
`.tmux.conf` must be linked or copied to `~/.tmux.conf`
|
||||
|
||||
`.zshrc` must be linked or copied to `~/.zshrc`
|
||||
|
||||
`neofetch.conf` must be linked or copied to `/etc/neofetch.conf`
|
||||
|
||||
`.taskrc` should be linked or copied to `~/.taskrc` to work properly `.task` must be copied or linked to `~/.task`
|
||||
|
||||
## Fonts for p10k
|
||||
|
||||
`fonts` needs to be installed manually
|
||||
|
||||
## tmux
|
||||
|
||||
### Plugin and Theme Installation
|
||||
|
||||
Start `tmux` and press `<prefix>` (`ctrl+y`) followed by `I` (capital i) to install plugins and theme.
|
||||
|
||||
### Sessions
|
||||
|
||||
Sessionscripts in `tmux` might only work properly with `.ssh/config`
|
||||
|
||||
## Fixes
|
||||
|
||||
### Docker-Autocompletion
|
||||
|
||||
`docker-autocompletion` might report `compinit:501: no such file or directory: /usr/share/zsh/vendor-completions/_docker`. The file is a symlink to `/mnt/wsl/docker-desktop/cli-tools/usr/share/zsh/vendor-completions/_docker` which doesn't exist if Docker-Desktop isn't running. A workaround is to replace the symlink with an copy of the real file:
|
||||
|
||||
```
|
||||
sudo rm -rf /usr/share/zsh/vendor-completions/_docker
|
||||
sudo cp /mnt/wsl/docker-desktop/cli-tools/usr/share/zsh/vendor-completions/_docker /usr/share/zsh/vendor-completions/
|
||||
sudo chattr +i /usr/share/zsh/vendor-completions/_docker
|
||||
```
|
87
conky/conkyrc
Normal file
87
conky/conkyrc
Normal file
|
@ -0,0 +1,87 @@
|
|||
-- Conky, a system monitor https://github.com/brndnmtthws/conky
|
||||
--
|
||||
-- This configuration file is Lua code. You can write code in here, and it will
|
||||
-- execute when Conky loads. You can use it to generate your own advanced
|
||||
-- configurations.
|
||||
--
|
||||
-- Try this (remove the `--`):
|
||||
--
|
||||
-- print("Loading Conky config")
|
||||
--
|
||||
-- For more on Lua, see:
|
||||
-- https://www.lua.org/pil/contents.html
|
||||
|
||||
conky.config = {
|
||||
alignment = 'top_left',
|
||||
background = false,
|
||||
border_width = 1,
|
||||
cpu_avg_samples = 2,
|
||||
default_color = 'white',
|
||||
default_outline_color = 'white',
|
||||
default_shade_color = 'white',
|
||||
double_buffer = true,
|
||||
draw_borders = false,
|
||||
draw_graph_borders = true,
|
||||
draw_outline = false,
|
||||
draw_shades = false,
|
||||
extra_newline = false,
|
||||
font = 'DejaVu Sans Mono:size=12',
|
||||
gap_x = 30,
|
||||
gap_y = 60,
|
||||
minimum_height = 5,
|
||||
minimum_width = 5,
|
||||
net_avg_samples = 2,
|
||||
no_buffers = true,
|
||||
out_to_console = false,
|
||||
out_to_ncurses = false,
|
||||
out_to_stderr = false,
|
||||
out_to_x = true,
|
||||
own_window = true,
|
||||
own_window_class = 'Conky',
|
||||
own_window_type = 'desktop',
|
||||
show_graph_range = false,
|
||||
show_graph_scale = false,
|
||||
stippled_borders = 0,
|
||||
update_interval = 1.0,
|
||||
uppercase = false,
|
||||
use_spacer = 'none',
|
||||
use_xft = true,
|
||||
own_window_transparent = true,
|
||||
own_window_argb_visual = true
|
||||
}
|
||||
|
||||
conky.text = [[
|
||||
${color grey}Info:$color ${scroll 32 $sysname $nodename $machine}
|
||||
$hr
|
||||
${color grey}Uptime:$color $uptime
|
||||
${color grey}Frequency (in GHz):$color $freq_g
|
||||
${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4}$color
|
||||
$memgraph
|
||||
${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4}
|
||||
${color grey}CPU Usage:$color $cpu% ${cpubar 4}
|
||||
$color${cpugraph}
|
||||
${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes
|
||||
${color grey}Load:$color $loadavg $color
|
||||
$loadgraph
|
||||
$hr
|
||||
${color grey}Battery:$color ${acpiacadapter ACAD} ${battery_percent BAT1}% ${battery_bar BAT1}
|
||||
$hr
|
||||
${color grey}File systems:
|
||||
/ $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
|
||||
${color grey}Disk IO:
|
||||
${color grey} Read:$color $diskio_read ${color grey}${goto 230}Write:$color $diskio_write
|
||||
$diskiograph
|
||||
$hr
|
||||
${color grey}Networking:
|
||||
WLAN Up:$color ${upspeed wlp57s0} ${color grey}${goto 230}Down:$color ${downspeed wlp57s0}
|
||||
${color grey}VPN Up:$color ${upspeed proton0} ${color grey}${goto 230}Down:$color ${downspeed proton0}
|
||||
${color grey}LAN Up:$color ${upspeed enx00e04cf03bf0} ${color grey}${goto 230}Down:$color ${downspeed enx00e04cf03bf0}
|
||||
$hr
|
||||
${color grey}Name PID CPU% MEM%
|
||||
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
|
||||
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
|
||||
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
|
||||
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
|
||||
${color lightgrey} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}
|
||||
$hr
|
||||
]]
|
6
conky/deploy.zsh
Executable file
6
conky/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.conkyrc
|
||||
ln -s ${GIT_ROOT}/conky/conkyrc ~/.conkyrc
|
Binary file not shown.
BIN
fonts/Hack Bold Italic Nerd Font Complete Mono.ttf
Normal file
BIN
fonts/Hack Bold Italic Nerd Font Complete Mono.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Italic Nerd Font Complete Windows Compatible.ttf
Normal file
BIN
fonts/Hack Bold Italic Nerd Font Complete Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Italic Nerd Font Complete.ttf
Normal file
BIN
fonts/Hack Bold Italic Nerd Font Complete.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Nerd Font Complete Mono Windows Compatible.ttf
Normal file
BIN
fonts/Hack Bold Nerd Font Complete Mono Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Nerd Font Complete Mono.ttf
Normal file
BIN
fonts/Hack Bold Nerd Font Complete Mono.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Nerd Font Complete Windows Compatible.ttf
Normal file
BIN
fonts/Hack Bold Nerd Font Complete Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Bold Nerd Font Complete.ttf
Normal file
BIN
fonts/Hack Bold Nerd Font Complete.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Italic Nerd Font Complete Mono Windows Compatible.ttf
Normal file
BIN
fonts/Hack Italic Nerd Font Complete Mono Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Italic Nerd Font Complete Mono.ttf
Normal file
BIN
fonts/Hack Italic Nerd Font Complete Mono.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Italic Nerd Font Complete Windows Compatible.ttf
Normal file
BIN
fonts/Hack Italic Nerd Font Complete Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Italic Nerd Font Complete.ttf
Normal file
BIN
fonts/Hack Italic Nerd Font Complete.ttf
Normal file
Binary file not shown.
Binary file not shown.
BIN
fonts/Hack Regular Nerd Font Complete Mono.ttf
Normal file
BIN
fonts/Hack Regular Nerd Font Complete Mono.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Regular Nerd Font Complete Windows Compatible.ttf
Normal file
BIN
fonts/Hack Regular Nerd Font Complete Windows Compatible.ttf
Normal file
Binary file not shown.
BIN
fonts/Hack Regular Nerd Font Complete.ttf
Normal file
BIN
fonts/Hack Regular Nerd Font Complete.ttf
Normal file
Binary file not shown.
0
fonts/deploy.zsh
Executable file
0
fonts/deploy.zsh
Executable file
6
git/deploy.zsh
Executable file
6
git/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.gitconfig
|
||||
ln -s ${GIT_ROOT}/git/gitconfig ~/.gitconfig
|
9
git/gitconfig
Normal file
9
git/gitconfig
Normal file
|
@ -0,0 +1,9 @@
|
|||
# This is Git's per-user configuration file.
|
||||
|
||||
[user]
|
||||
name = gpkvt
|
||||
email = git@21x9.org
|
||||
[pull]
|
||||
ff = only
|
||||
[credential]
|
||||
helper = store
|
84
install.zsh
Executable file
84
install.zsh
Executable file
|
@ -0,0 +1,84 @@
|
|||
#! /bin/zsh
|
||||
|
||||
tools=(
|
||||
netcat-openbsd
|
||||
aria2
|
||||
bat
|
||||
btop
|
||||
bind9-dnsutils
|
||||
debian-goodies
|
||||
gron
|
||||
htop
|
||||
hub
|
||||
icdiff
|
||||
ioping
|
||||
iotop
|
||||
keychain
|
||||
lsof
|
||||
mlocate
|
||||
mtr
|
||||
ncdu
|
||||
net-tools
|
||||
nload
|
||||
nmon
|
||||
oping
|
||||
powerline
|
||||
progress
|
||||
pv
|
||||
ranger
|
||||
reptyr
|
||||
taskwarrior
|
||||
tig
|
||||
tmux
|
||||
tmux-plugin-manager
|
||||
unp
|
||||
jq
|
||||
nethogs
|
||||
duf
|
||||
)
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
cd ${GIT_ROOT}
|
||||
|
||||
for file in $(ls -1 ./**/deploy.zsh); do
|
||||
chmod +x ${file}
|
||||
echo "Executing ${file}"
|
||||
${file}
|
||||
done
|
||||
|
||||
echo "Checking zplug installation"
|
||||
if [ $(dpkg-query -W -f='${Status}' zplug 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
echo "Installing zplug"
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt install zplug -yq
|
||||
fi
|
||||
|
||||
echo "Executing zplug init script"
|
||||
# zplug - manage plugins
|
||||
source /usr/share/zplug/init.zsh
|
||||
zplug "zsh-users/zsh-syntax-highlighting"
|
||||
zplug "zsh-users/zsh-autosuggestions"
|
||||
zplug "zsh-users/zsh-completions"
|
||||
zplug "plugins/per-directory-history", from:oh-my-zsh
|
||||
zplug "plugins/history-substring-search", from:oh-my-zsh
|
||||
zplug "plugins/common-aliases", from:oh-my-zsh
|
||||
zplug "plugins/nmap", from:oh-my-zsh
|
||||
zplug "plugins/taskwarrior", from:oh-my-zsh
|
||||
zplug "romkatv/powerlevel10k", use:powerlevel10k.zsh-theme
|
||||
|
||||
echo "Installing zplug plugins"
|
||||
# zplug - install/load new plugins when zsh is started or reloaded
|
||||
if ! zplug check --verbose; then
|
||||
printf "Install? [y/N]: "
|
||||
if read -q; then
|
||||
echo; zplug install
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Installing tools"
|
||||
# Install "standard" tools
|
||||
for i in "${tools[@]}"; do
|
||||
if [ $(dpkg-query -W -f='${Status}' ${i} 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
echo "Installing ${i}"
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt install ${i} -yq
|
||||
fi
|
||||
done
|
8
mc/deploy.zsh
Executable file
8
mc/deploy.zsh
Executable file
|
@ -0,0 +1,8 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
# cp instead of ln -s because the files may get changed by mc when using it
|
||||
cp ${GIT_ROOT}/mc/ini ~/.config/mc/
|
||||
cp ${GIT_ROOT}/mc/panels.ini ~/.config/mc/
|
||||
cp ${GIT_ROOT}/mc/solarized.ini ~/.config/mc/
|
152
mc/ini
Normal file
152
mc/ini
Normal file
|
@ -0,0 +1,152 @@
|
|||
[Midnight-Commander]
|
||||
verbose=true
|
||||
shell_patterns=true
|
||||
auto_save_setup=true
|
||||
preallocate_space=false
|
||||
auto_menu=false
|
||||
use_internal_view=true
|
||||
use_internal_edit=true
|
||||
clear_before_exec=true
|
||||
confirm_delete=true
|
||||
confirm_overwrite=true
|
||||
confirm_execute=false
|
||||
confirm_history_cleanup=true
|
||||
confirm_exit=false
|
||||
confirm_directory_hotlist_delete=false
|
||||
confirm_view_dir=false
|
||||
safe_delete=false
|
||||
safe_overwrite=false
|
||||
use_8th_bit_as_meta=false
|
||||
mouse_move_pages_viewer=true
|
||||
mouse_close_dialog=false
|
||||
fast_refresh=false
|
||||
drop_menus=false
|
||||
wrap_mode=true
|
||||
old_esc_mode=true
|
||||
cd_symlinks=true
|
||||
show_all_if_ambiguous=false
|
||||
use_file_to_guess_type=true
|
||||
alternate_plus_minus=false
|
||||
only_leading_plus_minus=true
|
||||
show_output_starts_shell=false
|
||||
xtree_mode=false
|
||||
file_op_compute_totals=true
|
||||
classic_progressbar=true
|
||||
use_netrc=true
|
||||
ftpfs_always_use_proxy=false
|
||||
ftpfs_use_passive_connections=true
|
||||
ftpfs_use_passive_connections_over_proxy=false
|
||||
ftpfs_use_unix_list_options=true
|
||||
ftpfs_first_cd_then_ls=true
|
||||
ignore_ftp_chattr_errors=true
|
||||
editor_fill_tabs_with_spaces=false
|
||||
editor_return_does_auto_indent=false
|
||||
editor_backspace_through_tabs=false
|
||||
editor_fake_half_tabs=true
|
||||
editor_option_save_position=true
|
||||
editor_option_auto_para_formatting=false
|
||||
editor_option_typewriter_wrap=false
|
||||
editor_edit_confirm_save=true
|
||||
editor_syntax_highlighting=true
|
||||
editor_persistent_selections=true
|
||||
editor_drop_selection_on_copy=true
|
||||
editor_cursor_beyond_eol=false
|
||||
editor_cursor_after_inserted_block=false
|
||||
editor_visible_tabs=true
|
||||
editor_visible_spaces=true
|
||||
editor_line_state=false
|
||||
editor_simple_statusbar=false
|
||||
editor_check_new_line=false
|
||||
editor_show_right_margin=false
|
||||
editor_group_undo=true
|
||||
editor_state_full_filename=true
|
||||
editor_ask_filename_before_edit=false
|
||||
nice_rotating_dash=true
|
||||
shadows=true
|
||||
mcview_remember_file_position=false
|
||||
auto_fill_mkdir_name=true
|
||||
copymove_persistent_attr=true
|
||||
pause_after_run=1
|
||||
mouse_repeat_rate=100
|
||||
double_click_speed=250
|
||||
old_esc_mode_timeout=1000000
|
||||
max_dirt_limit=10
|
||||
num_history_items_recorded=60
|
||||
vfs_timeout=60
|
||||
ftpfs_directory_timeout=900
|
||||
ftpfs_retry_seconds=30
|
||||
fish_directory_timeout=900
|
||||
editor_tab_spacing=8
|
||||
editor_word_wrap_line_length=72
|
||||
editor_option_save_mode=0
|
||||
editor_backup_extension=~
|
||||
editor_filesize_threshold=64M
|
||||
editor_stop_format_chars=-+*\\,.;:&>
|
||||
mcview_eof=
|
||||
skin=/home/gpkvt/.config/mc/solarized.ini
|
||||
|
||||
filepos_max_saved_entries=1024
|
||||
|
||||
[Layout]
|
||||
output_lines=0
|
||||
left_panel_size=140
|
||||
top_panel_size=0
|
||||
message_visible=true
|
||||
keybar_visible=true
|
||||
xterm_title=true
|
||||
command_prompt=true
|
||||
menubar_visible=true
|
||||
free_space=true
|
||||
horizontal_split=false
|
||||
vertical_equal=true
|
||||
horizontal_equal=false
|
||||
|
||||
[Misc]
|
||||
timeformat_recent=%b %e %H:%M
|
||||
timeformat_old=%b %e %Y
|
||||
ftp_proxy_host=gate
|
||||
ftpfs_password=anonymous@
|
||||
display_codepage=UTF-8
|
||||
source_codepage=Other_8_bit
|
||||
autodetect_codeset=
|
||||
spell_language=en
|
||||
clipboard_store=
|
||||
clipboard_paste=
|
||||
|
||||
[Colors]
|
||||
base_color=
|
||||
screen=
|
||||
color_terminals=
|
||||
|
||||
xterm-256color=
|
||||
|
||||
linux=
|
||||
|
||||
tmux-256color=
|
||||
|
||||
[Panels]
|
||||
show_mini_info=true
|
||||
kilobyte_si=false
|
||||
mix_all_files=false
|
||||
show_backups=true
|
||||
show_dot_files=true
|
||||
fast_reload=false
|
||||
fast_reload_msg_shown=false
|
||||
mark_moves_down=true
|
||||
reverse_files_only=true
|
||||
auto_save_setup_panels=false
|
||||
navigate_with_arrows=false
|
||||
panel_scroll_pages=true
|
||||
panel_scroll_center=false
|
||||
mouse_move_pages=true
|
||||
filetype_mode=true
|
||||
permission_mode=false
|
||||
torben_fj_mode=false
|
||||
quick_search_mode=2
|
||||
select_flags=6
|
||||
|
||||
[Panelize]
|
||||
Find *.orig after patching=find . -name \\*.orig -print
|
||||
Find SUID and SGID programs=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
|
||||
Find rejects after patching=find . -name \\*.rej -print
|
||||
Modified git files=git ls-files --modified
|
0
mc/panels.ini
Normal file
0
mc/panels.ini
Normal file
152
mc/solarized.ini
Normal file
152
mc/solarized.ini
Normal file
|
@ -0,0 +1,152 @@
|
|||
[skin]
|
||||
description = Solarized (mostly) dark skin for Midnight Commander.
|
||||
|
||||
[Lines]
|
||||
# TODO: Description.
|
||||
horiz = ─
|
||||
vert = │
|
||||
lefttop = ┌
|
||||
righttop = ┐
|
||||
leftbottom = └
|
||||
rightbottom = ┘
|
||||
topmiddle = ─
|
||||
bottommiddle = ─
|
||||
leftmiddle = ├
|
||||
rightmiddle = ┤
|
||||
cross = ┼
|
||||
dhoriz = ═
|
||||
dvert = ║
|
||||
dlefttop = ╔
|
||||
drighttop = ╗
|
||||
dleftbottom = ╚
|
||||
drightbottom = ╝
|
||||
dtopmiddle = ╤
|
||||
dbottommiddle = ╧
|
||||
dleftmiddle = ╟
|
||||
drightmiddle = ╢
|
||||
|
||||
[core]
|
||||
# Panes.
|
||||
_default_ = lightgray;black ;; Default file colors/background.
|
||||
selected = white;cyan ;; Color while hovering above a file/directory.
|
||||
marked = white;brightmagenta ;; Marked line (using select - insert, ctrl-t, etc...)
|
||||
markselect = red;cyan ;; Marked and selected.
|
||||
header = white ;; Pane header (name,size,date titles).
|
||||
reverse = white;brightmagenta ;; The direcotry PWD above the header, in focused pane.
|
||||
|
||||
# Input fields.
|
||||
inputunchanged = lightgray;black ;; Input fields colors.
|
||||
input = white;black ;; Input fields, modified.
|
||||
inputhistory = red;lightgray ;; Input history controller.
|
||||
inputmark = black;brightred ;; Input field marked text, if any.
|
||||
disabled = brightcyan;lightgray ;; Disabled input fields in dialog boxes.
|
||||
gauge = magenta;blue ;; Progress bars (while copying etc). TODO: What the text stands for?!
|
||||
|
||||
# Command line.
|
||||
# TODO: Command prompt line colors. What are they?!
|
||||
commandlinemark = black;brightred ;; Commandline marked text, if any.
|
||||
commandhistory = red;brightblack ;; Command prompt history controller.
|
||||
|
||||
# TODO: What these stand for?
|
||||
errors = black;green
|
||||
statusbar = black;green
|
||||
|
||||
[popup]
|
||||
# TODO: Probably user menu, screenlist, encoding, etc...
|
||||
pmenunormal = black;green
|
||||
pmenusel = black;green
|
||||
pmenutitle = black;green
|
||||
|
||||
[dialog]
|
||||
_default_ = black;lightgray ;; Default colors of dialogs (e.g. copy dialog).
|
||||
dfocus = black;green ;; Controller colors (checkboxes, actions) in focus.
|
||||
dhotnormal = red ;; Controllers hotkey color.
|
||||
dhotfocus = red;green ;; Controllers hotkey color in focus.
|
||||
dtitle = white;brightmagenta ;; Dialog title.
|
||||
|
||||
[error]
|
||||
_default_ = black;lightgray ;; Default colors of error dialogs (e.g. overwrite permission).
|
||||
errdfocus = black;green ;; Controller colors (checkboxes, actions) in focus.
|
||||
errdhotnormal = red ;; Controllers hotkey color.
|
||||
errdhotfocus = red;green ;; Controllers hotkey color in focus.
|
||||
errdtitle = white;red ;; Error dialog title.
|
||||
|
||||
[filehighlight]
|
||||
# View filehighlight.ini as reference.
|
||||
directory = cyan;black ;; Directories.
|
||||
executable = brightred;black ;; Executable files.
|
||||
symlink = magenta;black ;; Symbolic links.
|
||||
stalelink = lightgray;black ;; Broken links.
|
||||
device = red;blueblack ;; An interface for a device driver.
|
||||
special = black;blueblack ;; Pipes (FIFOs), sockets, block files, character files etc...
|
||||
core = brightcyan;black ;; Core dump files, etc?...
|
||||
temp = brightgreen;black ;; Bak, Temp, ~, etc...
|
||||
archive = brightmagenta;black ;; Archives.
|
||||
source = green;black ;; Source files.
|
||||
media = brown;black ;; Interactive media.
|
||||
graph = blue;black ;; Images, in other words.
|
||||
database = brightgreen;black ;; DataBases, duh.
|
||||
doc = red;black ;; Documents, duh.
|
||||
|
||||
[menu]
|
||||
_default_ = black;lightgray ;; Default colors for menu while active.
|
||||
menuinactive = black;lightgray ;; Colors for menu while inactive.
|
||||
menuhot = red ;; Menu item hotkey.
|
||||
menusel = black;green ;; Selected menu item.
|
||||
menuhotsel = red;green ;; Selected menu item hotkey.
|
||||
|
||||
[help]
|
||||
_default_ = black;lightgray ;; Default help tooltip text color/background.
|
||||
helpitalic = brightmagenta ;; Help when italic.
|
||||
helpbold = red ;; Help when bold.
|
||||
helplink = cyan ;; Links insde help tooltip.
|
||||
helpslink = green ;; Links insde help tooltip focused.
|
||||
helptitle = white;brightmagenta ;; Help title.
|
||||
|
||||
[buttonbar]
|
||||
#Bottom button bar (copy,move, etc...)
|
||||
hotkey = red;brightblack ;; Hotkey colors (1-10).
|
||||
button = white;brightblack ;; Button colors (text itself).
|
||||
|
||||
[editor]
|
||||
# TODO: These.
|
||||
_default_ = lightgray;black
|
||||
editbold = green;blue
|
||||
editmarked = lightgray;green
|
||||
editwhitespace = brightblue;blue
|
||||
editlinestate = brightmagenta
|
||||
bookmark = white;red
|
||||
bookmarkfound = black;green
|
||||
editbg = lightgray;black
|
||||
editframe = lightgray;black
|
||||
editframeactive = lightgray;black
|
||||
editframedrag = lightgray;black
|
||||
|
||||
[viewer]
|
||||
# TODO: These.
|
||||
viewunderline = brighmagenta;black
|
||||
viewbold = brighmagenta;black
|
||||
viewselected = brighmagenta;black
|
||||
|
||||
[widget-common]
|
||||
# TODO: These.
|
||||
sort-sign-up = ↓
|
||||
sort-sign-down = ↑
|
||||
|
||||
[widget-panel]
|
||||
# TODO: These.
|
||||
hiddenfiles-sign-show = ⋅
|
||||
hiddenfiles-sign-hide = •
|
||||
history-prev-item-sign = «
|
||||
history-next-item-sign = »
|
||||
history-show-list-sign = ^
|
||||
|
||||
[widget-scollbar]
|
||||
# TODO: These.
|
||||
first-vert-char = ↑
|
||||
last-vert-char = ↓
|
||||
first-horiz-char = «
|
||||
last-horiz-char = »
|
||||
current-char = ■
|
||||
background-char = ▒
|
||||
|
6
neofetch/deploy.zsh
Executable file
6
neofetch/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
sudo rm /etc/neofetch.conf
|
||||
sudo ln -s ${GIT_ROOT}/neofetch/neofetch.conf /etc/neofetch.conf
|
52
neofetch/neofetch.conf
Normal file
52
neofetch/neofetch.conf
Normal file
|
@ -0,0 +1,52 @@
|
|||
print_info () {
|
||||
|
||||
prin
|
||||
prin "------------------------------------------------------------"
|
||||
info title
|
||||
#info underline
|
||||
prin "------------------------------------------------------------"
|
||||
|
||||
#info "Host" model
|
||||
info "OS" distro
|
||||
info "Kernel" kernel
|
||||
info "Uptime" uptime
|
||||
#info "Packages" packages
|
||||
#prin "Updates" $(apt-get -q -y --ignore-hold --allow-change-held-packages --allow-unauthenticated -s dist-upgrade | /bin/grep ^Inst | wc -l)
|
||||
info "Shell" shell
|
||||
|
||||
#info "Resolution" resolution
|
||||
#info "DE" de
|
||||
#info "WM" wm
|
||||
#info "WM Theme" wm_theme
|
||||
#info "Theme" theme
|
||||
#info "Icons" icons
|
||||
#info "Terminal" term
|
||||
#info "Terminal Font" term_font
|
||||
prin "------------------------------------------------------------"
|
||||
#prin
|
||||
|
||||
info "CPU" cpu
|
||||
#info "GPU" gpu
|
||||
#info "CPUsage" cpu_usage
|
||||
info "Memory" memory
|
||||
info "Disk" disk
|
||||
info "Battery" battery
|
||||
|
||||
# The lines below with a '#' in front are additional info functions
|
||||
# that are disabled by default. Removing the '#' enables them and adding
|
||||
# a '#' to the start disables them again. You can add a '#' to any of the
|
||||
# lines in this function to disable their output.
|
||||
|
||||
#info "Font" font
|
||||
#info "Song" song
|
||||
info "LAN IP" local_ip
|
||||
info "WAN IP" public_ip
|
||||
#info "Users" users
|
||||
#info "Birthday" birthday
|
||||
|
||||
#prin
|
||||
prin "------------------------------------------------------------"
|
||||
#prin "Weather" "$(curl wttr.in/?0?q?T | awk '/°(C|F)/ {printf $(NF-1) $(NF) " ("a")"} /,/ {a=$0}')"
|
||||
|
||||
#info cols
|
||||
}
|
9
powerline/deploy.zsh
Executable file
9
powerline/deploy.zsh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.p10k.zsh
|
||||
ln -s ${GIT_ROOT}/powerline/p10k.zsh ~/.p10k.zsh
|
||||
|
||||
rm -rf ~/.config/powerline/themes/tmux
|
||||
ln -s ${GIT_ROOT}/powerline/themes/tmux ~/.config/powerline/themes/tmux
|
1750
powerline/p10k.zsh
Normal file
1750
powerline/p10k.zsh
Normal file
File diff suppressed because it is too large
Load diff
29
powerline/themes/tmux/default.json
Normal file
29
powerline/themes/tmux/default.json
Normal file
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"segments": {
|
||||
"right": [
|
||||
{
|
||||
"function": "powerline.segments.common.net.external_ip"
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.net.network_load"
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.time.date"
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.time.date",
|
||||
"name": "time",
|
||||
"args": {
|
||||
"format": "%H:%M",
|
||||
"istime": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.net.hostname"
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.tmux.attached_clients"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
23
scripts/startup.sh
Executable file
23
scripts/startup.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
# set scrolling speed
|
||||
/usr/bin/xinput set-prop 13 "libinput Scrolling Pixel Distance" 25
|
||||
|
||||
# connect vpn
|
||||
vpn=$(nmcli c | grep "Proton VPN" | awk -F" " '{print $1}')
|
||||
echo ${vpn}
|
||||
|
||||
if [ ! -z "${vpn}" ]; then
|
||||
/usr/bin/nmcli c down "${vpn}"
|
||||
fi
|
||||
|
||||
/usr/bin/protonvpn-cli config --dns custom --ip 9.9.9.11 149.112.112.10
|
||||
/usr/bin/protonvpn-cli c -f
|
||||
|
||||
if [ ! -z "${vpn}" ]; then
|
||||
/usr/bin/nmcli c up "${vpn}"
|
||||
fi
|
||||
|
||||
#sudo wg-quick up wg0
|
||||
|
||||
/usr/bin/protonvpn
|
6
task/deploy.zsh
Executable file
6
task/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.taskrc
|
||||
ln -s ${GIT_ROOT}/task/taskrc ~/.taskrc
|
35
task/taskrc
Normal file
35
task/taskrc
Normal file
|
@ -0,0 +1,35 @@
|
|||
# [Created by task 2.5.3 6/4/2022 22:30:58]
|
||||
# Taskwarrior program configuration file.
|
||||
# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color',
|
||||
# 'man task-sync' or 'man taskrc'
|
||||
|
||||
# Here is an example of entries that use the default, override and blank values
|
||||
# variable=foo -- By specifying a value, this overrides the default
|
||||
# variable= -- By specifying no value, this means no default
|
||||
# #variable=foo -- By commenting out the line, or deleting it, this uses the default
|
||||
|
||||
# Use the command 'task show' to see all defaults and overrides
|
||||
|
||||
# Files
|
||||
data.location=~/.task
|
||||
|
||||
# Color theme (uncomment one to use)
|
||||
#include /usr/share/taskwarrior/light-16.theme
|
||||
#include /usr/share/taskwarrior/light-256.theme
|
||||
#include /usr/share/taskwarrior/dark-16.theme
|
||||
#include /usr/share/taskwarrior/dark-256.theme
|
||||
#include /usr/share/taskwarrior/dark-red-256.theme
|
||||
#include /usr/share/taskwarrior/dark-green-256.theme
|
||||
#include /usr/share/taskwarrior/dark-blue-256.theme
|
||||
#include /usr/share/taskwarrior/dark-violets-256.theme
|
||||
#include /usr/share/taskwarrior/dark-yellow-green.theme
|
||||
include /usr/share/taskwarrior/dark-gray-256.theme
|
||||
#include /usr/share/taskwarrior/dark-gray-blue-256.theme
|
||||
#include /usr/share/taskwarrior/solarized-dark-256.theme
|
||||
#include /usr/share/taskwarrior/solarized-light-256.theme
|
||||
#include /usr/share/taskwarrior/no-color.theme
|
||||
|
||||
taskd.trust=ignore hostname
|
||||
news.version=2.6.0
|
||||
|
||||
include ~/.taskrc-credentials
|
36
tmux/checkmail.sh
Executable file
36
tmux/checkmail.sh
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
session="checkmail"
|
||||
|
||||
tmux new-session -d -s ${session}
|
||||
|
||||
window=1
|
||||
tmux rename-window -t ${session}:${window} 'maillog'
|
||||
tmux select-window -t ${session}:${window}
|
||||
|
||||
tmux send-keys 'clear;ssh proxy1 "clear;tail /var/log/mail.log -f"' C-m
|
||||
tmux select-pane -T 'mail.log 1'
|
||||
tmux split-window -v
|
||||
tmux select-pane -T 'mail.log 2'
|
||||
tmux send-keys 'clear;ssh proxy2 "clear;tail /var/log/mail.log -f"' C-m
|
||||
|
||||
window=2
|
||||
tmux new-window -t ${session}:${window}
|
||||
tmux select-window -t ${session}:${window}
|
||||
tmux rename-window -t ${session}:${window} 'mailq'
|
||||
|
||||
tmux send-keys 'clear;ssh proxy1' C-m 'clear;mailq' C-m
|
||||
tmux select-pane -T 'proxy1'
|
||||
tmux split-window -v
|
||||
tmux select-pane -T 'proxy2'
|
||||
tmux send-keys 'clear;ssh proxy2' C-m 'clear;mailq' C-m
|
||||
|
||||
window=3
|
||||
tmux new-window -t ${session}:${window}
|
||||
tmux select-window -t ${session}:${window}
|
||||
tmux rename-window -t ${session}:${window} 'salt'
|
||||
tmux send-keys 'clear;ssh salt' C-m
|
||||
tmux select-pane -T 'salt'
|
||||
|
||||
tmux select-window -t ${session}:2
|
||||
tmux attach-session -t ${session}
|
6
tmux/deploy.zsh
Executable file
6
tmux/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.tmux.conf
|
||||
ln -s ${GIT_ROOT}/tmux/tmux.conf ~/.tmux.conf
|
5
tmux/shared.sh
Executable file
5
tmux/shared.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Use 'tmux -S /tmp/tmux_shared new-session -s shared' to start a new shared session."
|
||||
echo "Change group ownership: 'chgrp tmuxshared /tmp/tmux_shared'"
|
||||
echo "Execute 'tmux -S /tmp/shared attach -t shared' to join in, use '-r' for read-only mode."
|
43
tmux/tmux.conf
Normal file
43
tmux/tmux.conf
Normal file
|
@ -0,0 +1,43 @@
|
|||
# Install plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
# set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
# set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||
set -g @plugin 'tmux-plugins/tmux-mighty-scroll'
|
||||
set -g @plugin 'tmux-plugins/tmux-logging'
|
||||
set -g @plugin 'jaclu/tmux-menus'
|
||||
|
||||
# Activate continuum restore
|
||||
# set -g @continuum-restore 'on'
|
||||
|
||||
# Activate menu plugin
|
||||
set -g @menus_trigger 'F9'
|
||||
set -g @menus_without_prefix 1
|
||||
|
||||
# Defaults
|
||||
set -s default-terminal 'tmux-256color'
|
||||
set -g mouse on
|
||||
|
||||
# Show pane status
|
||||
set -g pane-border-status top
|
||||
|
||||
# Start index from 1 not 0
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# remap prefix from 'C-b' to 'C-y'
|
||||
unbind C-b
|
||||
set-option -g prefix C-y
|
||||
bind-key C-y send-prefix
|
||||
|
||||
# switch panes using Alt-arrow without prefix
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# exit session on C-x (use 'bind -n' to use it without prefix)
|
||||
bind C-x confirm-before -p "kill-session #S? (y/n)" "kill-session"
|
||||
|
||||
run '/usr/share/tmux-plugin-manager/tpm'
|
||||
run-shell "powerline-config tmux setup"
|
9
zsh/aliases.zsh
Normal file
9
zsh/aliases.zsh
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Aliases
|
||||
alias ls='ls --color=never'
|
||||
alias ll='ls -lah --color=never'
|
||||
alias grep='grep --color=auto'
|
||||
alias a='tmux attach'
|
||||
alias bat='batcat'
|
||||
alias rep='reptyr'
|
||||
alias tools="echo \"${tools}\""
|
||||
unalias duf 2> /dev/null
|
6
zsh/completions.zsh
Normal file
6
zsh/completions.zsh
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Use modern completion system
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
zstyle ':completion:*' menu select
|
||||
|
||||
fpath=(~/dotfiles/zsh/zsh-completions $fpath)
|
6
zsh/deploy.zsh
Executable file
6
zsh/deploy.zsh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#! /bin/zsh
|
||||
|
||||
GIT_ROOT=$(git rev-parse --show-toplevel)
|
||||
|
||||
rm ~/.zshrc
|
||||
ln -s ${GIT_ROOT}/zsh/zshrc ~/.zshrc
|
6
zsh/exports.zsh
Normal file
6
zsh/exports.zsh
Normal file
|
@ -0,0 +1,6 @@
|
|||
export LANGUAGE=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export PATH=$PATH:/usr/local/sbin:~/dotfiles/tmux:~/dotfiles/bin
|
||||
export EDITOR=mcedit
|
||||
export TPM2_PKCS11_LOG_LEVEL=0
|
5
zsh/history.zsh
Normal file
5
zsh/history.zsh
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Keep 5000 lines of history within the shell and save it to ~/.zsh_history:
|
||||
setopt histignorealldups sharehistory
|
||||
HISTSIZE=5000
|
||||
SAVEHIST=5000
|
||||
HISTFILE=~/.zsh_history
|
63
zsh/keybindings.zsh
Normal file
63
zsh/keybindings.zsh
Normal file
|
@ -0,0 +1,63 @@
|
|||
# Use vi keybindings
|
||||
bindkey -e
|
||||
|
||||
function detect-clipboard() {
|
||||
emulate -L zsh
|
||||
|
||||
if [[ "${OSTYPE}" == darwin* ]] && (( ${+commands[pbcopy]} )) && (( ${+commands[pbpaste]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | pbcopy; }
|
||||
function clippaste() { pbpaste; }
|
||||
elif [[ "${OSTYPE}" == (cygwin|msys)* ]]; then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" > /dev/clipboard; }
|
||||
function clippaste() { cat /dev/clipboard; }
|
||||
elif (( $+commands[clip.exe] )) && (( $+commands[powershell.exe] )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | clip.exe; }
|
||||
function clippaste() { powershell.exe -noprofile -command Get-Clipboard; }
|
||||
elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; }
|
||||
function clippaste() { wl-paste; }
|
||||
elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | xsel --clipboard --input; }
|
||||
function clippaste() { xsel --clipboard --output; }
|
||||
elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xclip]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | xclip -selection clipboard -in &>/dev/null &|; }
|
||||
function clippaste() { xclip -out -selection clipboard; }
|
||||
elif (( ${+commands[lemonade]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | lemonade copy; }
|
||||
function clippaste() { lemonade paste; }
|
||||
elif (( ${+commands[doitclient]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | doitclient wclip; }
|
||||
function clippaste() { doitclient wclip -r; }
|
||||
elif (( ${+commands[win32yank]} )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | win32yank -i; }
|
||||
function clippaste() { win32yank -o; }
|
||||
elif [[ $OSTYPE == linux-android* ]] && (( $+commands[termux-clipboard-set] )); then
|
||||
function clipcopy() { cat "${1:-/dev/stdin}" | termux-clipboard-set; }
|
||||
function clippaste() { termux-clipboard-get; }
|
||||
elif [ -n "${TMUX:-}" ] && (( ${+commands[tmux]} )); then
|
||||
function clipcopy() { tmux load-buffer "${1:--}"; }
|
||||
function clippaste() { tmux save-buffer -; }
|
||||
else
|
||||
function _retry_clipboard_detection_or_fail() {
|
||||
local clipcmd="${1}"; shift
|
||||
if detect-clipboard; then
|
||||
"${clipcmd}" "$@"
|
||||
else
|
||||
print "${clipcmd}: Platform $OSTYPE not supported or xclip/xsel not installed" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
function clipcopy() { _retry_clipboard_detection_or_fail clipcopy "$@"; }
|
||||
function clippaste() { _retry_clipboard_detection_or_fail clippaste "$@"; }
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
detect-clipboard || true
|
||||
|
||||
copybuffer () {
|
||||
echo $BUFFER | clipcopy
|
||||
}
|
||||
|
||||
zle -N copybuffer
|
||||
bindkey "^O" copybuffer
|
1
zsh/neofetch.zsh
Normal file
1
zsh/neofetch.zsh
Normal file
|
@ -0,0 +1 @@
|
|||
neofetch --config /etc/neofetch.conf
|
10
zsh/powerlevel.zsh
Normal file
10
zsh/powerlevel.zsh
Normal file
|
@ -0,0 +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
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
typeset -g POWERLEVEL9K_INSTANT_PROMPT=on
|
5
zsh/ssh.zsh
Normal file
5
zsh/ssh.zsh
Normal file
|
@ -0,0 +1,5 @@
|
|||
if [ -z ${TMUX} ]; then
|
||||
# Add SSH keys to keychain
|
||||
find ~/.ssh -type f -regextype egrep -regex '.*/id_[^.]+$' | xargs /usr/bin/keychain --nogui
|
||||
source ~/.keychain/$(hostname)-sh
|
||||
fi
|
5
zsh/tasks.zsh
Normal file
5
zsh/tasks.zsh
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Show tasks
|
||||
if nc -zw1 192.168.42.100 53589; then
|
||||
/usr/bin/task sync
|
||||
fi
|
||||
/usr/bin/task list
|
2
zsh/tmux.zsh
Normal file
2
zsh/tmux.zsh
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Start tmux
|
||||
# if [ -z ${TMUX} ]; then tmux; fi
|
2
zsh/variables.zsh
Normal file
2
zsh/variables.zsh
Normal file
|
@ -0,0 +1,2 @@
|
|||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#555555"
|
||||
HISTORY_START_WITH_GLOBAL=true
|
23
zsh/zplug.zsh
Executable file
23
zsh/zplug.zsh
Executable file
|
@ -0,0 +1,23 @@
|
|||
# zplug - manage plugins
|
||||
source /usr/share/zplug/init.zsh
|
||||
zplug "zsh-users/zsh-syntax-highlighting"
|
||||
zplug "zsh-users/zsh-autosuggestions"
|
||||
zplug "zsh-users/zsh-completions"
|
||||
zplug "plugins/per-directory-history", from:oh-my-zsh
|
||||
zplug "plugins/history-substring-search", from:oh-my-zsh
|
||||
zplug "plugins/common-aliases", from:oh-my-zsh
|
||||
zplug "plugins/nmap", from:oh-my-zsh
|
||||
zplug "plugins/taskwarrior", from:oh-my-zsh
|
||||
|
||||
HISTORY_START_WITH_GLOBAL=true
|
||||
|
||||
zplug "romkatv/powerlevel10k", use:powerlevel10k.zsh-theme
|
||||
|
||||
# zplug - install/load new plugins when zsh is started or reloaded
|
||||
if ! zplug check --verbose; then
|
||||
printf "Install? [y/N]: "
|
||||
if read -q; then
|
||||
echo; zplug install
|
||||
fi
|
||||
fi
|
||||
zplug load
|
429
zsh/zsh-completions/_bw
Normal file
429
zsh/zsh-completions/_bw
Normal file
|
@ -0,0 +1,429 @@
|
|||
#compdef _bw bw
|
||||
|
||||
function _bw {
|
||||
local -a commands
|
||||
|
||||
_arguments -C \
|
||||
'--pretty[Format output. JSON is tabbed with two spaces.]' \
|
||||
'--raw[Return raw output instead of a descriptive message.]' \
|
||||
'--response[Return a JSON formatted version of response output.]' \
|
||||
'--cleanexit[Exit with a success exit code (0) unless an error is thrown.]' \
|
||||
'--quiet[Don'"'"'t return anything to stdout.]' \
|
||||
'--nointeraction[Do not prompt for interactive user input.]' \
|
||||
'--session[Pass session key instead of reading from env.]' \
|
||||
'(-v --version)'{-v,--version}'[output the version number]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"1: :->cmnds" \
|
||||
"*::arg:->args"
|
||||
|
||||
case $state in
|
||||
cmnds)
|
||||
commands=(
|
||||
"login:Log into a user account."
|
||||
"logout:Log out of the current user account."
|
||||
"lock:Lock the vault and destroy active session keys."
|
||||
"unlock:Unlock the vault and return a new session key."
|
||||
"sync:Pull the latest vault data from server."
|
||||
"generate:Generate a password/passphrase."
|
||||
"encode:Base 64 encode stdin."
|
||||
"config:Configure CLI settings."
|
||||
"update:Check for updates."
|
||||
"completion:Generate shell completions."
|
||||
"status:Show server, last sync, user information, and vault status."
|
||||
"serve:Start a RESTful API webserver."
|
||||
"list:List an array of objects from the vault."
|
||||
"get:Get an object from the vault."
|
||||
"create:Create an object in the vault."
|
||||
"edit:Edit an object from the vault."
|
||||
"delete:Delete an object from the vault."
|
||||
"restore:Restores an object from the trash."
|
||||
"move:Move an item to an organization."
|
||||
"confirm:Confirm an object to the organization."
|
||||
"import:Import vault data from a file."
|
||||
"export:Export vault data to a CSV or JSON file."
|
||||
"share:--DEPRECATED-- Move an item to an organization."
|
||||
"send:Work with Bitwarden sends. A Send can be quickly created using this command or subcommands can be used to fine-tune the Send"
|
||||
"receive:Access a Bitwarden Send from a url"
|
||||
)
|
||||
_describe "command" commands
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$words[1]" in
|
||||
login)
|
||||
_bw_login
|
||||
;;
|
||||
logout)
|
||||
_bw_logout
|
||||
;;
|
||||
lock)
|
||||
_bw_lock
|
||||
;;
|
||||
unlock)
|
||||
_bw_unlock
|
||||
;;
|
||||
sync)
|
||||
_bw_sync
|
||||
;;
|
||||
generate)
|
||||
_bw_generate
|
||||
;;
|
||||
encode)
|
||||
_bw_encode
|
||||
;;
|
||||
config)
|
||||
_bw_config
|
||||
;;
|
||||
update)
|
||||
_bw_update
|
||||
;;
|
||||
completion)
|
||||
_bw_completion
|
||||
;;
|
||||
status)
|
||||
_bw_status
|
||||
;;
|
||||
serve)
|
||||
_bw_serve
|
||||
;;
|
||||
list)
|
||||
_bw_list
|
||||
;;
|
||||
get)
|
||||
_bw_get
|
||||
;;
|
||||
create)
|
||||
_bw_create
|
||||
;;
|
||||
edit)
|
||||
_bw_edit
|
||||
;;
|
||||
delete)
|
||||
_bw_delete
|
||||
;;
|
||||
restore)
|
||||
_bw_restore
|
||||
;;
|
||||
move)
|
||||
_bw_move
|
||||
;;
|
||||
confirm)
|
||||
_bw_confirm
|
||||
;;
|
||||
import)
|
||||
_bw_import
|
||||
;;
|
||||
export)
|
||||
_bw_export
|
||||
;;
|
||||
share)
|
||||
_bw_share
|
||||
;;
|
||||
send)
|
||||
_bw_send
|
||||
;;
|
||||
receive)
|
||||
_bw_receive
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _bw_login {
|
||||
_arguments -C \
|
||||
'--method[Two-step login method.]' \
|
||||
'--code[Two-step login code.]' \
|
||||
'--sso[Log in with Single-Sign On.]' \
|
||||
'--apikey[Log in with an Api Key.]' \
|
||||
'--passwordenv[Environment variable storing your password]' \
|
||||
'--passwordfile[Path to a file containing your password as its first line]' \
|
||||
'--check[Check login status.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_logout {
|
||||
|
||||
}
|
||||
|
||||
function _bw_lock {
|
||||
|
||||
}
|
||||
|
||||
function _bw_unlock {
|
||||
_arguments -C \
|
||||
'--check[Check lock status.]' \
|
||||
'--passwordenv[Environment variable storing your password]' \
|
||||
'--passwordfile[Path to a file containing your password as its first line]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_sync {
|
||||
_arguments -C \
|
||||
'(-f --force)'{-f,--force}'[Force a full sync.]' \
|
||||
'--last[Get the last sync date.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_generate {
|
||||
_arguments -C \
|
||||
'(-u --uppercase)'{-u,--uppercase}'[Include uppercase characters.]' \
|
||||
'(-l --lowercase)'{-l,--lowercase}'[Include lowercase characters.]' \
|
||||
'(-n --number)'{-n,--number}'[Include numeric characters.]' \
|
||||
'(-s --special)'{-s,--special}'[Include special characters.]' \
|
||||
'(-p --passphrase)'{-p,--passphrase}'[Generate a passphrase.]' \
|
||||
'--length[Length of the password.]' \
|
||||
'--words[Number of words.]' \
|
||||
'--separator[Word separator.]' \
|
||||
'(-c --capitalize)'{-c,--capitalize}'[Title case passphrase.]' \
|
||||
'--includeNumber[Passphrase includes number.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_encode {
|
||||
|
||||
}
|
||||
|
||||
function _bw_config {
|
||||
_arguments -C \
|
||||
'--web-vault[Provides a custom web vault URL that differs from the base URL.]' \
|
||||
'--api[Provides a custom API URL that differs from the base URL.]' \
|
||||
'--identity[Provides a custom identity URL that differs from the base URL.]' \
|
||||
'--icons[Provides a custom icons service URL that differs from the base URL.]' \
|
||||
'--notifications[Provides a custom notifications URL that differs from the base URL.]' \
|
||||
'--events[Provides a custom events URL that differs from the base URL.]' \
|
||||
'--key-connector[Provides the URL for your Key Connector server.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_update {
|
||||
|
||||
}
|
||||
|
||||
function _bw_completion {
|
||||
_arguments -C \
|
||||
'--shell[Shell to generate completions for.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_status {
|
||||
|
||||
}
|
||||
|
||||
function _bw_serve {
|
||||
_arguments -C \
|
||||
'--hostname[The hostname to bind your API webserver to.]' \
|
||||
'--port[The port to run your API webserver on.]' \
|
||||
'--disable-origin-protection[If set, allows requests with origin header. Warning, this option exists for backwards compatibility reasons and exposes your environment to known CSRF attacks.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_list {
|
||||
_arguments -C \
|
||||
'--search[Perform a search on the listed objects.]' \
|
||||
'--url[Filter items of type login with a url-match search.]' \
|
||||
'--folderid[Filter items by folder id.]' \
|
||||
'--collectionid[Filter items by collection id.]' \
|
||||
'--organizationid[Filter items or collections by organization id.]' \
|
||||
'--trash[Filter items that are deleted and in the trash.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_get {
|
||||
_arguments -C \
|
||||
'--itemid[Attachment'"'"'s item id.]' \
|
||||
'--output[Output directory or filename for attachment.]' \
|
||||
'--organizationid[Organization id for an organization object.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_create {
|
||||
_arguments -C \
|
||||
'--file[Path to file for attachment.]' \
|
||||
'--itemid[Attachment'"'"'s item id.]' \
|
||||
'--organizationid[Organization id for an organization object.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_edit {
|
||||
_arguments -C \
|
||||
'--organizationid[Organization id for an organization object.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_delete {
|
||||
_arguments -C \
|
||||
'--itemid[Attachment'"'"'s item id.]' \
|
||||
'--organizationid[Organization id for an organization object.]' \
|
||||
'(-p --permanent)'{-p,--permanent}'[Permanently deletes the item instead of soft-deleting it (item only).]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_restore {
|
||||
|
||||
}
|
||||
|
||||
function _bw_move {
|
||||
|
||||
}
|
||||
|
||||
function _bw_confirm {
|
||||
_arguments -C \
|
||||
'--organizationid[Organization id for an organization object.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_import {
|
||||
_arguments -C \
|
||||
'--formats[List formats]' \
|
||||
'--organizationid[ID of the organization to import to.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_export {
|
||||
_arguments -C \
|
||||
'--output[Output directory or filename.]' \
|
||||
'--format[Export file format.]' \
|
||||
'--password[Use password to encrypt instead of your Bitwarden account encryption key. Only applies to the encrypted_json format.]' \
|
||||
'--organizationid[Organization id for an organization.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_share {
|
||||
|
||||
}
|
||||
|
||||
function _bw_send {
|
||||
local -a commands
|
||||
|
||||
_arguments -C \
|
||||
'(-f --file)'{-f,--file}'[Specifies that <data> is a filepath]' \
|
||||
'(-d --deleteInDays)'{-d,--deleteInDays}'[The number of days in the future to set deletion date, defaults to 7]' \
|
||||
'(-a --maxAccessCount)'{-a,--maxAccessCount}'[The amount of max possible accesses.]' \
|
||||
'--hidden[Hide <data> in web by default. Valid only if --file is not set.]' \
|
||||
'(-n --name)'{-n,--name}'[The name of the Send. Defaults to a guid for text Sends and the filename for files.]' \
|
||||
'--notes[Notes to add to the Send.]' \
|
||||
'--fullObject[Specifies that the full Send object should be returned rather than just the access url.]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"1: :->cmnds" \
|
||||
"*::arg:->args"
|
||||
|
||||
case $state in
|
||||
cmnds)
|
||||
commands=(
|
||||
"list:List all the Sends owned by you"
|
||||
"template:Get json templates for send objects"
|
||||
"get:Get Sends owned by you."
|
||||
"receive:Access a Bitwarden Send from a url"
|
||||
"create:create a Send"
|
||||
"edit:edit a Send"
|
||||
"remove-password:removes the saved password from a Send."
|
||||
"delete:delete a Send"
|
||||
)
|
||||
_describe "command" commands
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$words[1]" in
|
||||
list)
|
||||
_bw_send_list
|
||||
;;
|
||||
template)
|
||||
_bw_send_template
|
||||
;;
|
||||
get)
|
||||
_bw_send_get
|
||||
;;
|
||||
receive)
|
||||
_bw_send_receive
|
||||
;;
|
||||
create)
|
||||
_bw_send_create
|
||||
;;
|
||||
edit)
|
||||
_bw_send_edit
|
||||
;;
|
||||
remove-password)
|
||||
_bw_send_remove-password
|
||||
;;
|
||||
delete)
|
||||
_bw_send_delete
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function _bw_send_list {
|
||||
|
||||
}
|
||||
|
||||
function _bw_send_template {
|
||||
|
||||
}
|
||||
|
||||
function _bw_send_get {
|
||||
_arguments -C \
|
||||
'--output[Output directory or filename for attachment.]' \
|
||||
'--text[Specifies to return the text content of a Send]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_send_receive {
|
||||
_arguments -C \
|
||||
'--password[Password needed to access the Send.]' \
|
||||
'--passwordenv[Environment variable storing the Send'"'"'s password]' \
|
||||
'--passwordfile[Path to a file containing the Sends password as its first line]' \
|
||||
'--obj[Return the Send'"'"'s json object rather than the Send's content]' \
|
||||
'--output[Specify a file path to save a File-type Send to]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_send_create {
|
||||
_arguments -C \
|
||||
'--file[file to Send. Can also be specified in parent'"'"'s JSON.]' \
|
||||
'--text[text to Send. Can also be specified in parent'"'"'s JSON.]' \
|
||||
'--hidden[text hidden flag. Valid only with the --text option.]' \
|
||||
'--password[optional password to access this Send. Can also be specified in JSON]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_send_edit {
|
||||
_arguments -C \
|
||||
'--itemid[Overrides the itemId provided in [encodedJson]]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
||||
|
||||
function _bw_send_remove-password {
|
||||
|
||||
}
|
||||
|
||||
function _bw_send_delete {
|
||||
|
||||
}
|
||||
|
||||
function _bw_receive {
|
||||
_arguments -C \
|
||||
'--password[Password needed to access the Send.]' \
|
||||
'--passwordenv[Environment variable storing the Send'"'"'s password]' \
|
||||
'--passwordfile[Path to a file containing the Sends password as its first line]' \
|
||||
'--obj[Return the Send'"'"'s json object rather than the Send's content]' \
|
||||
'--output[Specify a file path to save a File-type Send to]' \
|
||||
'(-h --help)'{-h,--help}'[output usage information]' \
|
||||
"*::arg:->args"
|
||||
}
|
18
zsh/zshrc
Normal file
18
zsh/zshrc
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Exit if mc is active
|
||||
[[ -v MC_SID ]] && return
|
||||
|
||||
# source settings
|
||||
source ~/dotfiles/zsh/exports.zsh
|
||||
source ~/dotfiles/zsh/variables.zsh
|
||||
source ~/dotfiles/zsh/keybindings.zsh
|
||||
source ~/dotfiles/zsh/history.zsh
|
||||
source ~/dotfiles/zsh/aliases.zsh
|
||||
source ~/dotfiles/zsh/completions.zsh
|
||||
source ~/dotfiles/zsh/zplug.zsh
|
||||
source ~/dotfiles/zsh/neofetch.zsh
|
||||
source ~/dotfiles/zsh/ssh.zsh
|
||||
source ~/dotfiles/zsh/tasks.zsh
|
||||
source ~/dotfiles/zsh/tmux.zsh
|
||||
|
||||
# always execute powerlevel last to avoid problems with instant prompt
|
||||
source ~/dotfiles/zsh/powerlevel.zsh
|
Loading…
Add table
Reference in a new issue