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 #!/usr/bin/fish
if ! test -e ~/.bspwm_no_lock #if ! test -e ~/.bspwm_no_lock
slock & # slock &
touch ~/.bspwm_no_lock # 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 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 & sxhkd &
picom -b
wmname LG3D if test $DISPLAY = ":0"
picom -b --blur-background
else
picom -b --backend xrender
end
#wmname LG3D
xfce4-screensaver &
~/.fehbg & ~/.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 & polybar m-bar &
cbatticon & cbatticon &
pasystray & pasystray &
keepassxc &
barrier &
bspc monitor -d I II III IV V VI VII 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' function define_aliases -a uname -d 'Defines aliases for commonly used commands'
alias q 'exit' alias q exit
alias rcp 'rsync -aP' alias rcp 'rsync -aP'
alias vg 'vagrant' alias vg vagrant
alias tf 'terraform' alias tf terraform
alias gco 'gcloud compute' alias gco 'gcloud compute'
alias tocb 'xclip -in -selection clipboard' alias tocb 'xclip -in -selection clipboard'
alias fromcb 'xclip -out -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-e 'age --armor --recipient (cat ~/.secrets/id_ed25519.pub)'
alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age' alias age-k 'age --decrypt --identity ~/.secrets/id_ed25519 ~/.secrets/age_keys.age'
alias bb 'bun --bun' alias bb 'bun --bun'
alias pn 'pnpm' alias pn pnpm
switch "$uname" switch "$uname"
case 'Linux' case Linux
alias goland 'command goland' alias goland 'command goland'
alias rider 'command rider' alias rider 'command rider'
alias webstorm 'command webstorm' alias webstorm 'command webstorm'
alias sctl 'sudo systemctl' alias sctl 'sudo systemctl'
alias uctl 'systemctl --user' alias uctl 'systemctl --user'
alias bctl 'bluetoothctl' alias bctl bluetoothctl
case 'Darwin' case Darwin
alias goland 'open -a Goland' alias goland 'open -a Goland'
alias rider 'open -a Rider' alias rider 'open -a Rider'
alias webstorm 'open -a Webstorm' alias webstorm 'open -a Webstorm'

View File

@ -1,10 +1,16 @@
function fish_greeting -d "What's up, fish?" function fish_greeting -d "What's up, fish?"
set_color $fish_color_autosuggestion 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 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 set_color normal
end end

View File

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

View File

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

View File

@ -7,7 +7,6 @@ shadow-radius = 12
fading = true fading = true
fade-delta = 5 fade-delta = 5
blur-background = true
blur-kern = "11x11gaussian" blur-kern = "11x11gaussian"
vsync = true 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 " Allows you to use // in order to search for the visually selected text
vnoremap // y/\V<C-R>=escape(@",'/\')<CR><CR> 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 let g:gruvbox_italic=1
colorscheme gruvbox colorscheme gruvbox
highlight Normal ctermbg=None highlight Normal guibg=None ctermbg=None
let g:ackprg = 'ag --nogroup --nocolor --column --hidden' let g:ackprg = 'ag --nogroup --nocolor --column --hidden'

View File

@ -1,29 +1,38 @@
set -U fish_color_autosuggestion 586e75 set -U fish_color_autosuggestion a89984
set -U fish_color_cancel -r set -U fish_color_cancel --reverse
set -U fish_color_command 93a1a1 set -U fish_color_command 98971a
set -U fish_color_comment 586e75 set -U fish_color_comment a89984
set -U fish_color_cwd green set -U fish_color_cwd green
set -U fish_color_cwd_root red set -U fish_color_cwd_root red
set -U fish_color_end 268bd2 set -U fish_color_end b16286
set -U fish_color_error dc322f set -U fish_color_error cc241d
set -U fish_color_escape 00a6b2 set -U fish_color_escape 458588
set -U fish_color_history_current --bold set -U fish_color_history_current --bold
set -U fish_color_host normal set -U fish_color_host normal
set -U fish_color_host_remote yellow set -U fish_color_host_remote
set -U fish_color_match --background=brblue set -U fish_color_keyword
set -U fish_color_match 458588
set -U fish_color_normal normal set -U fish_color_normal normal
set -U fish_color_operator 00a6b2 set -U fish_color_operator 458588
set -U fish_color_param 839496 set -U fish_color_option
set -U fish_color_quote 657b83 set -U fish_color_param ebdbb2
set -U fish_color_redirection 6c71c4 set -U fish_color_quote a89984
set -U fish_color_search_match 'bryellow' '--background=black' set -U fish_color_redirection 689d6a
set -U fish_color_selection 'white' '--bold' '--background=brblack' set -U fish_color_search_match 'bryellow' '--background=brblack'
set -U fish_color_status red set -U fish_color_selection 'white' '--bold' '--background=brblack'
set -U fish_color_user brgreen set -U fish_color_user brgreen
set -U fish_color_valid_path --underline set -U fish_color_valid_path --underline
set -U fish_greeting
set -U fish_key_bindings fish_vi_key_bindings set -U fish_key_bindings fish_vi_key_bindings
set -U fish_pager_color_completion B3A06D set -U fish_pager_color_background
set -U fish_pager_color_description B3A06D set -U fish_pager_color_completion normal
set -U fish_pager_color_prefix 'cyan' '--underline' set -U fish_pager_color_description a89984
set -U fish_pager_color_progress 'brwhite' '--background=cyan' 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 #!/usr/bin/env fish
function main function main
argparse 'd/desktop' 'g/git' -- $argv argparse d/desktop g/git -- $argv
set -l start_dir (pwd) set -l start_dir (pwd)
and set -l tmp_dir (mktemp --directory 2>/dev/null; or mktemp -d -t 'dotfiles') 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) and set -l cwd (string match -r '\w+$' $start_dir)
@ -45,7 +45,7 @@ function main
end end
function setup_tmp_space -a cwd tmp_dir 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 git clone --recurse-submodules https://github.com/mitchell/dotfiles.git $tmp_dir
and cd $tmp_dir and cd $tmp_dir
end end
@ -66,13 +66,11 @@ function sync_terminal_env
and rsync -aP ./.tmux.conf ~/ and rsync -aP ./.tmux.conf ~/
and rsync -aP ./.vim ~/ and rsync -aP ./.vim ~/
and rsync -aP ./.vimrc ~/ and rsync -aP ./.vimrc ~/
and rsync -aP ./.taskrc ~/
and rsync -aP ./scripts/ ~/code/scripts/ and rsync -aP ./scripts/ ~/code/scripts/
end end
function sync_desktop_env -a uname function sync_desktop_env -a uname
rsync -aP ./.config/kitty ~/.config/ rsync -aP ./.config/kitty ~/.config/
and rsync -aP ./.config/qutebrowser ~/.config/
and rsync -aP ./.ideavimrc ~/ and rsync -aP ./.ideavimrc ~/
or return 1 or return 1
@ -86,12 +84,11 @@ function sync_desktop_env -a uname
and rsync -aP ./.config/sxhkd ~/.config/ and rsync -aP ./.config/sxhkd ~/.config/
and rsync -aP ./.config/picom ~/.config/ and rsync -aP ./.config/picom ~/.config/
and rsync -aP ./.config/polybar ~/.config/ and rsync -aP ./.config/polybar ~/.config/
and rsync -aP ./.config/conky ~/.config/
end end
end end
function set_kitty_font_size -a uname 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 sed -i '' -e 's/font_size 11\.0/font_size 13\.0/' ~/.config/kitty/kitty.conf
end end
end end
@ -101,7 +98,7 @@ function install_fisher_packages
end end
function install_nvim_plugins function install_nvim_plugins
command -q nvim; and nvim +PlugUpgrade +PlugUpdate +qa command -q nvim; and nvim +PlugUpgrade +PlugUpdate +UpdateRemotePlugins +qa
end end
function sync_git_config function sync_git_config
@ -120,7 +117,7 @@ function set_fish_universal_vars
end end
function clean_up_tmp_space -a cwd start_dir tmp_dir function clean_up_tmp_space -a cwd start_dir tmp_dir
if test ! "$cwd" = 'dotfiles' if test ! "$cwd" = dotfiles
cd $start_dir cd $start_dir
and rm -r $tmp_dir and rm -r $tmp_dir
end end