Make bspwm work with vnc displays; and general updates/cleanups

- Set fish colors to more gruvbox accurate theme
- Fix nvim transparency
- Remove conky, qutebrowser, and taskrc configs
- Update fish greeting
- Update toglpulse script
This commit is contained in:
mitchell 2024-06-30 18:41:49 -04:00
parent 81e8b0c49c
commit 503fb8bff6
15 changed files with 83 additions and 638 deletions

View File

@ -1,30 +1,39 @@
#!/usr/bin/fish
if ! test -e ~/.bspwm_no_lock
slock &
touch ~/.bspwm_no_lock
#if ! test -e ~/.bspwm_no_lock
# slock &
# touch ~/.bspwm_no_lock
#end
if test $DISPLAY = ":0"
setxkbmap -option ctrl:swapcaps
setxkbmap -option altwin:swap_alt_win
xset s off -dpms
xinput set-prop 'MSFT0001:00 04F3:317C Touchpad' 'libinput Tapping Enabled' 1
xinput set-prop 'MSFT0001:00 04F3:317C Touchpad' 'libinput Middle Emulation Enabled' 1
end
setxkbmap -option ctrl:swapcaps
setxkbmap -option altwin:swap_alt_win
xset s off -dpms
xinput set-prop 'MSFT0001:00 04F3:317C Touchpad' 'libinput Tapping Enabled' 1
xinput set-prop 'MSFT0001:00 04F3:317C Touchpad' 'libinput Middle Emulation Enabled' 1
sxhkd &
picom -b
wmname LG3D
if test $DISPLAY = ":0"
picom -b --blur-background
else
picom -b --backend xrender
end
#wmname LG3D
xfce4-screensaver &
~/.fehbg &
killall -q polybar barrier barrierc cbatticon pasystray
if test $DISPLAY = ":0"
killall -q polybar cbatticon pasystray barrier barrierc
barrier &
keepassxc &
end
polybar m-bar &
cbatticon &
pasystray &
keepassxc &
barrier &
bspc monitor -d I II III IV V VI VII

View File

@ -1,121 +0,0 @@
conky.config ={
-- CONKY SETTINGS
background = true,
update_interval = 1,
total_run_times = 0,
cpu_avg_samples = 2,
net_avg_samples = 2,
override_utf8_locale = true,
double_buffer = true,
no_buffers = true,
text_buffer_size = 32768,
-- CONKY: WINDOW SPECIFICATIONS
own_window = true,
own_window_argb_value = 216,
own_window_argb_visual = true,
own_window_class = 'conky',
own_window_name = 'conky',
own_window_colour = '#282828',
-- own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_transparent = false,
own_window_type = 'desktop',
border_inner_margin = 6,
border_width = 5,
minimum_height = 997,
minimum_width = 280,
maximum_width = 280,
alignment = 'top_right',
gap_x = 24,
gap_y = 60,
-- GRAPHICS SETTINGS
draw_shades = true,
draw_outline = false,
draw_borders = false,
draw_graph_borders = true,
-- TEXT SETTINGS
use_xft = true,
font = 'IBM Plex Sans Regular:size=10',
xftalpha = 0.2,
uppercase = false,
-- Pad percentages to this many decimals (0 = no padding)
pad_percents = 2,
-- COLOUR SETTINGS
default_color = 'ebdbb2',
default_shade_color = '1d2021',
default_outline_color = '1d2021',
color1 = 'fbf1c7',
color2 = '458588',
color3 = '98971a',
color4 = '79740e',
color5 = '689d6a',
color7 = 'cc241d',
color8 = '9d0006',
};
conky.text = [[
${alignc}${font IBM Plex Sans Light:size=10}${time %A %d %B %Y}${font}${alignc}
${color1}${hr 2}${color}
${voffset -5}
${font IBM Plex Sans Light:size=8}${color1}HOSTNAME:${color}${font} ${alignr}$nodename
${font IBM Plex Sans Light:size=8}${color1}UPTIME:${color}${font} ${alignr}$uptime_short
${font IBM Plex Sans Light:size=8}${color1}KERNEL:${color}${font} ${alignr}$kernel ${voffset 5}
${font :size=11}${color}Network ${hr 2}
${voffset -20}
${font IBM Plex Sans Light:size=10}${color1}IP ADDRESS:${color}${font} ${alignr}${addr wlan0}${color}
${if_match "${addr wlan0}"!="No Address"}${voffset 5}${font IBM Plex Sans Light:size=10}${font}Download ${alignr}${downspeedf wlan0}k/s (${totaldown wlan0})
${color1}${downspeedgraph wlan0 50,280 98971a 79740e -t}${color}
${font IBM Plex Sans Light:size=10}${font}Upload ${alignr}${upspeedf wlan0}k/s (${totalup wlan0})
${color1}${upspeedgraph wlan0 50,280 9d0006 cc241d -t}${color}
${endif}${voffset 5}${font :size=11}${color}HDD ${hr 2}
${voffset 5}${color1}Used: ${fs_used /}${goto 175}Free:${goto 225}${fs_free /}${color}
${color2}${fs_bar /}${color}
${font IBM Plex Sans Light:size=8}${color1}DISK I/O:${color}${font} ${alignr}$diskio
${voffset 2}${font IBM Plex Sans Light:size=8}${color1}READ: ${font} ${goto 80}${diskiograph_read 15,210 98971a 79740e 750}${color}
${voffset 2}${font IBM Plex Sans Light:size=8}${color1}WRITE:${font} ${goto 80}${diskiograph_write 15,210 9d0006 cc241d 750}${color}
${voffset 5}${font :size=11}Memory ${hr 2}${voffset 2}${font}
${font IBM Plex Sans Light:size=10}RAM $alignc ${font}${color1}$mem / $memmax $alignr ${color4}$memperc%${color}
${color2}$membar${voffset 5}${color}
${font :size=11}GPU ${hr 2}${voffset 2}
${font IBM Plex Sans Light:size=9}${color1}GPU Freq.: $alignr ${color}${font}${nvidia gpufreq} Mhz${voffset 2}
${font IBM Plex Sans Light:size=9}${color1}Memory Freq.: $alignr ${color}${font}${nvidia memfreq} Mhz${voffset 2}
${font IBM Plex Sans Light:size=9}${color1}Temperature: $alignr ${color4}${font}${nvidia temp}°C ${voffset 5}${color}
${font :size=11}CPUs ${hr 2}
${voffset -20}
${font IBM Plex Sans Light:size=10}${color1}CPU:${color}${font} ${alignr}AMD Ryzen 7 3800X
${voffset -20}
${font IBM Plex Sans Light:size=9}${color1}01 - 04:${color}${font} ${goto 100}${cpu cpu1}% ${goto 150}${cpu cpu2 }% ${goto 200}${cpu cpu3 }% ${goto 250}${cpu cpu4 }%
${font IBM Plex Sans Light:size=9}${color1}05 - 08:${color}${font} ${goto 100}${cpu cpu5}% ${goto 150}${cpu cpu6 }% ${goto 200}${cpu cpu7 }% ${goto 250}${cpu cpu8 }%
${font IBM Plex Sans Light:size=9}${color1}09 - 12:${color}${font} ${goto 100}${cpu cpu9}% ${goto 150}${cpu cpu10}% ${goto 200}${cpu cpu11}% ${goto 250}${cpu cpu12}%
${voffset -10}
${font IBM Plex Sans Light:size=9}${color1}CPU TEMP:${color4}${font}${alignr}${hwmon 1 temp 1}°C${color}
${voffset 5}${font :size=11}Processes ${hr 2}${font}
${voffset -20}
${font :size=10}${font IBM Plex Sans Light:size=8}${color1}TOTAL:${color}${font} ${alignr}${processes}
${voffset -12}
${font IBM Plex Sans Light:size=9}${color1}APP NAME: ${goto 160}MEMORY: ${goto 245}CPU: ${color}${font}
${voffset -20}
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 1} ${color}${font} ${goto 160}${top mem 1} % ${goto 235}${top cpu 1} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 2} ${color}${font} ${goto 160}${top mem 2} % ${goto 235}${top cpu 2} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 3} ${color}${font} ${goto 160}${top mem 3} % ${goto 235}${top cpu 3} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 4} ${color}${font} ${goto 160}${top mem 4} % ${goto 235}${top cpu 4} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 5} ${color}${font} ${goto 160}${top mem 5} % ${goto 235}${top cpu 5} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 6} ${color}${font} ${goto 160}${top mem 6} % ${goto 235}${top cpu 6} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 7} ${color}${font} ${goto 160}${top mem 7} % ${goto 235}${top cpu 7} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 8} ${color}${font} ${goto 160}${top mem 8} % ${goto 235}${top cpu 8} %
${font IBM Plex Sans Light:size=9}${color1}${top_mem name 9} ${color}${font} ${goto 160}${top mem 9} % ${goto 235}${top cpu 9} %
]];

View File

@ -1,8 +1,8 @@
function define_aliases -a uname -d 'Defines aliases for commonly used commands'
alias q 'exit'
alias q exit
alias rcp 'rsync -aP'
alias vg 'vagrant'
alias tf 'terraform'
alias vg vagrant
alias tf terraform
alias gco 'gcloud compute'
alias tocb 'xclip -in -selection clipboard'
alias fromcb 'xclip -out -selection clipboard'
@ -12,17 +12,17 @@ function define_aliases -a uname -d 'Defines aliases for commonly used commands'
alias age-e 'age --armor --recipient (cat ~/.secrets/id_ed25519.pub)'
alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age'
alias bb 'bun --bun'
alias pn 'pnpm'
alias pn pnpm
switch "$uname"
case 'Linux'
case Linux
alias goland 'command goland'
alias rider 'command rider'
alias webstorm 'command webstorm'
alias sctl 'sudo systemctl'
alias uctl 'systemctl --user'
alias bctl 'bluetoothctl'
case 'Darwin'
alias bctl bluetoothctl
case Darwin
alias goland 'open -a Goland'
alias rider 'open -a Rider'
alias webstorm 'open -a Webstorm'

View File

@ -1,10 +1,16 @@
function fish_greeting -d "What's up, fish?"
set_color $fish_color_autosuggestion
uname -nmsr
# TODO: `command -q -s` only works on fish 2.5+, so hold off on that for now
set uname (uname -nor)
command -s uptime >/dev/null
and uptime
and if test (uname) = Linux
and set uptime '; ' (uptime --pretty)
else
and set uptime '; ' (uptime)
end
echo -s $uname $uptime
set_color normal
end

View File

@ -3,13 +3,12 @@ function toglpulse
if test -e ~/.config/pulse/client.conf
rm -rf ~/.config/pulse/client.conf
ssh -o StrictHostKeyChecking=no venator.lan systemctl --user restart pipewire-pulse
or ssh -o StrictHostKeyChecking=no venator.lan nssm restart pulseaudio
systemctl --user start pipewire.socket
rebar
else
killall easyeffects pavucontrol; or killall -9 easyeffects pavucontrol
echo "default-server = venator.lan" > ~/.config/pulse/client.conf
systemctl --user stop pipewire pipewire-pulse wireplumber
echo "default-server = 192.168.1.155" >~/.config/pulse/client.conf
systemctl --user stop pipewire.socket pipewire pipewire-pulse wireplumber
rebar
end
end

View File

@ -24,6 +24,10 @@ require("symbols-outline").setup({
})
require("leap").add_default_mappings()
require("notify").setup({
background_colour = "#000000",
})
require("noice").setup({
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**

View File

@ -7,7 +7,6 @@ shadow-radius = 12
fading = true
fade-delta = 5
blur-background = true
blur-kern = "11x11gaussian"
vsync = true

View File

@ -1,95 +0,0 @@
# If a config.py file exists, this file is ignored unless it's explicitly loaded
# via config.load_autoconfig(). For more information, see:
# https://github.com/qutebrowser/qutebrowser/blob/master/doc/help/configuring.asciidoc#loading-autoconfigyml
# DO NOT edit this file by hand, qutebrowser will overwrite it.
# Instead, create a config.py - see :help for details.
config_version: 2
settings:
aliases:
global:
q: close
qa: quit
w: session-save
wq: quit --save
wqa: quit --save
auto_save.interval:
global: 15000
auto_save.session:
global: false
backend:
global: webengine
bindings.commands:
global:
insert: {}
colors.webpage.darkmode.enabled:
global: false
completion.web_history.max_items:
global: 0
content.autoplay:
global: false
content.cache.size:
global: 0
content.cookies.accept:
global: no-3rdparty
content.cookies.store:
global: false
content.javascript.enabled:
global: false
content.local_storage:
global: true
content.notifications:
https://app.slack.com: true
content.webrtc_ip_handling_policy:
global: all-interfaces
content.xss_auditing:
global: false
downloads.location.directory:
global: ~/downloads
downloads.location.prompt:
global: true
downloads.location.remember:
global: true
downloads.location.suggestion:
global: path
downloads.open_dispatcher:
global: null
downloads.position:
global: top
downloads.remove_finished:
global: -1
editor.command:
global:
- kitty
- nvim
- -f
- '{file}'
- -c
- normal {line}G{column0}l
editor.encoding:
global: utf-8
fonts.default_family:
global: JetBrains Mono
fonts.default_size:
global: 8pt
fonts.web.family.fixed:
global: JetBrains Mono
fonts.web.family.sans_serif:
global: IBM Plex Sans
fonts.web.family.serif:
global: IBM Plex Serif
fonts.web.family.standard:
global: IBM Plex Sans
fonts.web.size.default:
global: 16
url.default_page:
global: http://search.m
url.searchengines:
global:
DEFAULT: http://search.m/?q={}
url.start_pages:
global: http://search.m
window.title_format:
global: '{perc}{host}{title_sep}qutebrowser'
zoom.default:
global: 125%

View File

@ -1,9 +0,0 @@
hn https://news.ycombinator.com/
ch https://app.clubhouse.io/rotabull/stories/space/1285/platform-eng
gh https://github.com/
gcp https://console.cloud.google.com/projectselector2/home/dashboard?organizationId=817788800675&supportedpurview=project
aws https://console.aws.amazon.com/s3/home?region=us-east-1
rip https://app.rippling.com/dashboard
slk https://rotabull.slack.com/
octo https://rotabull.octopus.app/app#/users/sign-in
log https://logentries.com/login/

37
.taskrc
View File

@ -1,37 +0,0 @@
# [Created by task 2.5.1 8/10/2020 11:48:16]
# 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/local/Cellar/task/2.5.1/share/doc/task/rc/light-16.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/light-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-16.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-red-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-green-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-blue-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-violets-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-yellow-green.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-blue-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-dark-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-light-256.theme
#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/no-color.theme
uda.link.type=string
uda.link.label=Link
uda.file.type=string
uda.file.label=File
uda.wiki.type=string
uda.wiki.label=Wiki

5
.vimrc
View File

@ -120,13 +120,10 @@ endif
" Allows you to use // in order to search for the visually selected text
vnoremap // y/\V<C-R>=escape(@",'/\')<CR><CR>
" next line is necessary to prevent background rendering bug with kitty term
let &t_ut=''
let g:gruvbox_italic=1
colorscheme gruvbox
highlight Normal ctermbg=None
highlight Normal guibg=None ctermbg=None
let g:ackprg = 'ag --nogroup --nocolor --column --hidden'

View File

@ -1,29 +1,38 @@
set -U fish_color_autosuggestion 586e75
set -U fish_color_cancel -r
set -U fish_color_command 93a1a1
set -U fish_color_comment 586e75
set -U fish_color_autosuggestion a89984
set -U fish_color_cancel --reverse
set -U fish_color_command 98971a
set -U fish_color_comment a89984
set -U fish_color_cwd green
set -U fish_color_cwd_root red
set -U fish_color_end 268bd2
set -U fish_color_error dc322f
set -U fish_color_escape 00a6b2
set -U fish_color_end b16286
set -U fish_color_error cc241d
set -U fish_color_escape 458588
set -U fish_color_history_current --bold
set -U fish_color_host normal
set -U fish_color_host_remote yellow
set -U fish_color_match --background=brblue
set -U fish_color_host_remote
set -U fish_color_keyword
set -U fish_color_match 458588
set -U fish_color_normal normal
set -U fish_color_operator 00a6b2
set -U fish_color_param 839496
set -U fish_color_quote 657b83
set -U fish_color_redirection 6c71c4
set -U fish_color_search_match 'bryellow' '--background=black'
set -U fish_color_selection 'white' '--bold' '--background=brblack'
set -U fish_color_status red
set -U fish_color_operator 458588
set -U fish_color_option
set -U fish_color_param ebdbb2
set -U fish_color_quote a89984
set -U fish_color_redirection 689d6a
set -U fish_color_search_match 'bryellow' '--background=brblack'
set -U fish_color_selection 'white' '--bold' '--background=brblack'
set -U fish_color_user brgreen
set -U fish_color_valid_path --underline
set -U fish_greeting
set -U fish_key_bindings fish_vi_key_bindings
set -U fish_pager_color_completion B3A06D
set -U fish_pager_color_description B3A06D
set -U fish_pager_color_prefix 'cyan' '--underline'
set -U fish_pager_color_progress 'brwhite' '--background=cyan'
set -U fish_pager_color_background
set -U fish_pager_color_completion normal
set -U fish_pager_color_description a89984
set -U fish_pager_color_prefix 'normal' '--bold' '--underline'
set -U fish_pager_color_progress 'brwhite' '--background=cyan'
set -U fish_pager_color_secondary_background
set -U fish_pager_color_secondary_completion
set -U fish_pager_color_secondary_description
set -U fish_pager_color_secondary_prefix
set -U fish_pager_color_selected_background --background=brblack
set -U fish_pager_color_selected_completion
set -U fish_pager_color_selected_description
set -U fish_pager_color_selected_prefix

View File

@ -1,313 +0,0 @@
#!/usr/bin/env fish
# Source: https://github.com/mitchell/run.fish
#
# OUTDATED USE ./provision_linux
### Config ###
# Top-level configurations, like function prefixes and argument delimeters
#
set -g run_func_prefix 'provision'
set -g run_arg_delimeter ':'
function define_aliases
end
### Commands ###
# Add, edit, and remove commands freely below.
# To add a command simply create a function with this naming scheme: {run_func_prefix}_{name}.
#
function provision_m_env -d 'Provision m environment (fish, git, neovim, etc.)'
log "Provisioning m's environment." head
log 'Installing git, neovim, tmux, rsync, curl, and kitty-terminfo...'
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes \
git \
neovim \
tmux \
rsync \
curl \
kitty-terminfo \
>/dev/null 2>&1
log 'Installing fzf, silversearcher, bat, and feh.'
sudo apt-get install --yes fzf silversearcher-ag bat feh >/dev/null 2>&1
log 'Adding fish apt repo and install fish...'
sudo apt-get install --yes gpg >/dev/null 2>&1
echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' |
sudo tee /etc/apt/sources.list.d/shells:fish:release:3.list
curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key |
gpg --dearmor |
sudo apt-key add -
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes fish >/dev/null 2>&1
log "Setting m's default shell to fish"
sudo chsh -s /usr/bin/fish m
log 'Running dotfiles sync script.'
./sync
log 'Installing asdf-vm.'
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.8 >/dev/null 2>&1
log "Done provisioning m's environment." tail
end
function provision_desktop_env -d 'Provision bspwm based desktop environment'
log 'Provisioning desktop environment.' head
log 'Installing window manager and compositor.'
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes bspwm sxhkd picom >/dev/null 2>&1
log 'Installing terminal.'
sudo apt-get install --yes kitty >/dev/null 2>&1
log 'Installing panel.'
sudo apt-get install --yes xfce4-panel xfce4-pulseaudio-plugin >/dev/null 2>&1
log 'Installing and configuring xinit and xclip.'
sudo apt-get install --yes xinit xclip >/dev/null 2>&1
echo 'exec bspwm' >~/.xinitrc
log 'Installing browser.'
sudo apt-get install --yes qutebrowser >/dev/null 2>&1
log 'Installing application launcher.'
sudo apt-get install --yes rofi >/dev/null 2>&1
log 'Installing theme and fonts.'
mkdir ./nordic; and cd ./nordic
wget -q -O nordic.tar.xz https://github.com/EliverLara/Nordic/releases/download/v1.9.0/Nordic.tar.xz
tar -xf ./nordic.tar.xz
mkdir ~/.themes
mv ./Nordic/ ~/.themes/
cd ..; and rm -r ./nordic
sudo apt-get install --yes fonts-ibm-plex unzip >/dev/null 2>&1
log 'Installing desktop background manager.'
sudo apt-get install --yes feh >/dev/null 2>&1
log 'Installing screen saver.'
sudo apt-get install --yes xfce4-screensaver >/dev/null 2>&1
log 'Installing JetBrainsMono.'
mkdir _fonts_tmp
cd _fonts_tmp
wget -q https://github.com/JetBrains/JetBrainsMono/releases/download/v2.002/JetBrainsMono-2.002.zip
unzip JetBrainsMono-2.002.zip >/dev/null
mkdir -p ~/.local/share/fonts/truetype/JetBrainsMono
cp ./ttf/*.ttf ~/.local/share/fonts/truetype/JetBrainsMono/
cd ..
rm -r _fonts_tmp
log 'Configure GTK theme and font.'
mkdir -p ~/.config/gtk-3.0
echo "
[Settings]
gtk-icon-theme-name = Adwaita
gtk-theme-name = Nordic
gtk-font-name = IBM Plex Sans 11" >~/.config/gtk-3.0/settings.ini
log 'Done provisioning desktop environment.' tail
end
function provision_m_net -d 'Provision applications to join m-net'
log 'Provisioning m-net.' head
sudo apt-get update >/dev/null 2>&1
log 'Installing keepassxc.'
sudo apt-get install --yes keepassxc >/dev/null 2>&1
log 'Installing syncthing.'
sudo apt-get install --yes syncthing >/dev/null 2>&1
sudo systemctl enable syncthing@m
log 'Done provisioning desktop environment.' tail
end
function provision_libvirt -d 'Provision libvirt and virt-manager'
log 'Provisioning Libvirt and KVM.' head
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes \
qemu-system \
libvirt-clients \
libvirt-daemon-system \
virt-manager \
>/dev/null 2>&1
sudo adduser m libvirt
log 'Done provisioning Libvirt and KVM' tail
end
function provision_vagrant -d 'Provision vagrant with libvirt plugin'
log 'Provisioning vagrant and the libvirt provider.' head
sudo apt-get update >/dev/null 2>&1
log 'Installing vagrant from apt'
sudo apt-get install --yes vagrant-libvirt libvirt-daemon-system >/dev/null 2>&1
log 'Installing vagrant libvirt provider.'
vagrant plugin install vagrant-libvirt
log 'Done provisioning vagrant and libvirt provider.' tail
end
function provision_docker -d 'Provision docker and docker-compose'
log 'Provisioning Docker CE and Docker Compose.' head
log 'Installing docker dependencies.'
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common \
>/dev/null 2>&1
log 'Adding Docker apt repo and install docker-ce.'
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository \
'deb [arch=amd64] https://download.docker.com/linux/debian
buster
stable'
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes docker-ce docker-ce-cli containerd.io >/dev/null 2>&1
log 'Installing docker-compose.'
set uname_m (uname -m)
set uname_s (uname -s)
sudo curl \
-L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$uname_s-$uname_m" \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
log 'Adding m to docker group.'
sudo adduser m docker
log 'Done provisioning Docker CE and Docker Compose.' tail
end
function provision_wireguard -d 'Provision wireguard'
log 'Provisioning Wireguard.' head
log 'Installing wireguard and resolvconf.'
set uname_r (uname -r)
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes "linux-headers-$uname_r" >/dev/null 2>&1
sudo apt-get install --yes wireguard resolvconf >/dev/null 2>&1
log 'Done provisioning Wireguard.' tail
end
function provision_caddy -d 'Provision caddy and disable service'
log 'Provisioning Caddy.' head
log 'Adding Caddy repo and installing caddy.'
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" |
sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt-get update >/dev/null 2>&1
sudo apt-get install --yes caddy >/dev/null 2>&1
log 'Disabling and stopping service.'
sudo systemctl disable caddy.service
sudo systemctl stop caddy.service
log 'Done provisioning Caddy.' tail
end
function log -a message level
if test "$level" = head
echo "
###########################################################################################
#
#--> $message
#"
else if test "$level" = tail
echo "#--> $message
#
###########################################################################################
"
else
echo -e "#--> $message\n#"
end
end
function main
alias $run_func_prefix\_default=$run_func_prefix\_help
define_aliases
for command in $argv
and execute_command $run_func_prefix $command
end
and if test -z "$argv"
execute_command $run_func_prefix default
end
end
function execute_command -a prefix command
set -l args (string split --max 1 $run_arg_delimeter $command)
set -l func $prefix\_$args[1]
define_default_functions $prefix
if functions -q $func
$func $args[2]
else if test -z "$command"
execute_command $prefix default
else
echo "$prefix command '$command' does not exist"
exit 1
end
end
function define_default_functions
set -g prefix $argv[1]
function _$prefix\_commands -d 'List all available commands'
set -l names (functions --names | grep $prefix\_)
for name in $names
set -l details (functions -D -v $name)
set -l description $details[5]
set -l short_name (string replace $prefix\_ '' $name)
if test (string length $short_name) -ge 8
echo $short_name\t$description
else
echo $short_name\t\t$description
end
end
end
function $prefix\_help -a command -d 'Print help menu or command definition'
if test -n "$command"
functions $prefix\_$command
else
echo 'Here are the available commands:'\n
_$prefix\_commands
echo \n"To see a command's definition do `run help$run_arg_delimeter{command}`"
echo "To see a subcommand group's help menu do `run {command}$run_arg_delimeter""help`"
end
end
end
main $argv

13
sync
View File

@ -1,7 +1,7 @@
#!/usr/bin/env fish
function main
argparse 'd/desktop' 'g/git' -- $argv
argparse d/desktop g/git -- $argv
set -l start_dir (pwd)
and set -l tmp_dir (mktemp --directory 2>/dev/null; or mktemp -d -t 'dotfiles')
and set -l cwd (string match -r '\w+$' $start_dir)
@ -45,7 +45,7 @@ function main
end
function setup_tmp_space -a cwd tmp_dir
if test ! "$cwd" = 'dotfiles'
if test ! "$cwd" = dotfiles
git clone --recurse-submodules https://github.com/mitchell/dotfiles.git $tmp_dir
and cd $tmp_dir
end
@ -66,13 +66,11 @@ function sync_terminal_env
and rsync -aP ./.tmux.conf ~/
and rsync -aP ./.vim ~/
and rsync -aP ./.vimrc ~/
and rsync -aP ./.taskrc ~/
and rsync -aP ./scripts/ ~/code/scripts/
end
function sync_desktop_env -a uname
rsync -aP ./.config/kitty ~/.config/
and rsync -aP ./.config/qutebrowser ~/.config/
and rsync -aP ./.ideavimrc ~/
or return 1
@ -86,12 +84,11 @@ function sync_desktop_env -a uname
and rsync -aP ./.config/sxhkd ~/.config/
and rsync -aP ./.config/picom ~/.config/
and rsync -aP ./.config/polybar ~/.config/
and rsync -aP ./.config/conky ~/.config/
end
end
function set_kitty_font_size -a uname
if test "$uname" = 'Darwin'
if test "$uname" = Darwin
sed -i '' -e 's/font_size 11\.0/font_size 13\.0/' ~/.config/kitty/kitty.conf
end
end
@ -101,7 +98,7 @@ function install_fisher_packages
end
function install_nvim_plugins
command -q nvim; and nvim +PlugUpgrade +PlugUpdate +qa
command -q nvim; and nvim +PlugUpgrade +PlugUpdate +UpdateRemotePlugins +qa
end
function sync_git_config
@ -120,7 +117,7 @@ function set_fish_universal_vars
end
function clean_up_tmp_space -a cwd start_dir tmp_dir
if test ! "$cwd" = 'dotfiles'
if test ! "$cwd" = dotfiles
cd $start_dir
and rm -r $tmp_dir
end