From 1d73a2b920738bd59b627f4e8815bab0bda88222 Mon Sep 17 00:00:00 2001 From: DustVoice Date: Tue, 6 Sep 2022 16:29:06 +0200 Subject: [PATCH] Huge refactoring; Switch back to fish shell; Dip toes into wayland; Update dmenu stuff --- .Xresources | 4 +- .config/.gitignore | 4 + .config/bspwm/bspwmrc | 8 +- .config/dmenu-wl/.gitignore | 8 + .../{dmenu => dmenu-wl}/dmenu_bspwm_desktop | 0 .../dmenu_bspwm_desktop_content | 0 .../{dmenu => dmenu-wl}/dmenu_bspwm_monitor | 0 .config/dmenu-wl/dmenu_run_with_aliases | 9 + .config/dmenu/.gitignore | 7 +- .config/dmenu/bspwm | 142 ++++++++++ .config/dmenu/run | 16 ++ .../dmenu/{dmenu_run_with_aliases => run_zsh} | 2 +- .config/fish/.gitignore | 11 + .config/fish/completions/watson.fish | 189 +++++++++++++ .config/fish/conf.d/env.fish | 19 ++ .config/fish/conf.d/path.fish.example | 1 + .config/fish/config.fish | 12 + .config/fish/fish_variables | 33 +++ .config/fish/functions/battery-monitor.fish | 3 + .config/fish/functions/binance_miner.fish | 3 + .config/fish/functions/bspwm-load.fish | 12 + .config/fish/functions/bspwm-save.fish | 13 + .../fish/functions/bspwm-workspace-init.fish | 7 + .config/fish/functions/check-iommu.fish | 9 + .../construct_column_aware_prompt.fish | 43 +++ .config/fish/functions/devkitARM.fish | 3 + .config/fish/functions/dmenu_fish.fish | 7 + .config/fish/functions/ea.fish | 3 + .config/fish/functions/ee.fish | 3 + .config/fish/functions/es.fish | 3 + .config/fish/functions/esa.fish | 3 + .config/fish/functions/firefox-private.fish | 3 + .config/fish/functions/fish_prompt.fish | 24 ++ .../functions/fish_user_key_bindings.fish | 3 + .config/fish/functions/get-font.fish | 14 + .config/fish/functions/hyperv-forward.fish | 26 ++ .config/fish/functions/la.fish | 3 + .config/fish/functions/layout.fish | 3 + .config/fish/functions/ll.fish | 3 + .config/fish/functions/lock-screen.fish | 3 + .config/fish/functions/ls.fish | 3 + .config/fish/functions/lsa.fish | 3 + .config/fish/functions/octave-gui.fish | 3 + .config/fish/functions/pianoteq.fish | 3 + .config/fish/functions/picom-default.fish | 3 + .config/fish/functions/polybar-launch.fish | 3 + .config/fish/functions/resolve.fish | 3 + .config/fish/functions/sabaki.fish | 3 + .config/fish/functions/screenkey-obs.fish | 5 + .config/fish/functions/tmate-obs.fish | 3 + .config/fish/functions/xfce-polkit.fish | 3 + .config/nvim | 2 +- .config/polybar/config | 2 +- .config/river/init | 166 +++++++++++ .config/sxhkd/sxhkdrc | 34 +-- .config/waybar/config | 132 +++++++++ .config/waybar/dracula.style.css | 137 +++++++++ .config/waybar/style.css | 261 ++++++++++++++++++ .gnupg/gpg.conf | 2 +- .ssh/known_hosts | 2 + .zsh_alias | 16 +- .zshenv | 13 +- .zshrc | 14 +- 63 files changed, 1434 insertions(+), 41 deletions(-) create mode 100644 .config/dmenu-wl/.gitignore rename .config/{dmenu => dmenu-wl}/dmenu_bspwm_desktop (100%) rename .config/{dmenu => dmenu-wl}/dmenu_bspwm_desktop_content (100%) rename .config/{dmenu => dmenu-wl}/dmenu_bspwm_monitor (100%) create mode 100755 .config/dmenu-wl/dmenu_run_with_aliases create mode 100755 .config/dmenu/bspwm create mode 100755 .config/dmenu/run rename .config/dmenu/{dmenu_run_with_aliases => run_zsh} (58%) create mode 100644 .config/fish/.gitignore create mode 100644 .config/fish/completions/watson.fish create mode 100644 .config/fish/conf.d/env.fish create mode 100644 .config/fish/conf.d/path.fish.example create mode 100644 .config/fish/config.fish create mode 100644 .config/fish/fish_variables create mode 100644 .config/fish/functions/battery-monitor.fish create mode 100644 .config/fish/functions/binance_miner.fish create mode 100644 .config/fish/functions/bspwm-load.fish create mode 100644 .config/fish/functions/bspwm-save.fish create mode 100644 .config/fish/functions/bspwm-workspace-init.fish create mode 100644 .config/fish/functions/check-iommu.fish create mode 100644 .config/fish/functions/construct_column_aware_prompt.fish create mode 100644 .config/fish/functions/devkitARM.fish create mode 100644 .config/fish/functions/dmenu_fish.fish create mode 100644 .config/fish/functions/ea.fish create mode 100644 .config/fish/functions/ee.fish create mode 100644 .config/fish/functions/es.fish create mode 100644 .config/fish/functions/esa.fish create mode 100644 .config/fish/functions/firefox-private.fish create mode 100644 .config/fish/functions/fish_prompt.fish create mode 100644 .config/fish/functions/fish_user_key_bindings.fish create mode 100644 .config/fish/functions/get-font.fish create mode 100644 .config/fish/functions/hyperv-forward.fish create mode 100644 .config/fish/functions/la.fish create mode 100644 .config/fish/functions/layout.fish create mode 100644 .config/fish/functions/ll.fish create mode 100644 .config/fish/functions/lock-screen.fish create mode 100644 .config/fish/functions/ls.fish create mode 100644 .config/fish/functions/lsa.fish create mode 100644 .config/fish/functions/octave-gui.fish create mode 100644 .config/fish/functions/pianoteq.fish create mode 100644 .config/fish/functions/picom-default.fish create mode 100644 .config/fish/functions/polybar-launch.fish create mode 100644 .config/fish/functions/resolve.fish create mode 100644 .config/fish/functions/sabaki.fish create mode 100644 .config/fish/functions/screenkey-obs.fish create mode 100644 .config/fish/functions/tmate-obs.fish create mode 100644 .config/fish/functions/xfce-polkit.fish create mode 100755 .config/river/init create mode 100644 .config/waybar/config create mode 100644 .config/waybar/dracula.style.css create mode 100644 .config/waybar/style.css diff --git a/.Xresources b/.Xresources index 9ae04d3..985f26c 100644 --- a/.Xresources +++ b/.Xresources @@ -19,10 +19,12 @@ *.color13: #FF92D0 *.color14: #9AEDFE *.color15: #E6E6E6 -*.font: Hack:size=10:antialias=true:autohint=true +*.font: Fira Code:pixelsize=12:antialias=true:autohint=true *.termName: xterm-256color *.shell: /usr/bin/zsh *.tabspaces: 4 *.borderpx: 2 Xft.dpi: 96 +Xcursor.theme: Bibata-Modern-Amber +Xcursor.size: 24 diff --git a/.config/.gitignore b/.config/.gitignore index 7efd55f..40a4097 100644 --- a/.config/.gitignore +++ b/.config/.gitignore @@ -8,7 +8,11 @@ !/alacritty/ !/bspwm/ !/dmenu/ +!/dmenu-wl/ +!/fish/ !/nitrogen/ !/polybar/ !/rustfmt/ +!/river/ !/sxhkd/ +!/waybar/ diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc index 3ff6198..7e89767 100755 --- a/.config/bspwm/bspwmrc +++ b/.config/bspwm/bspwmrc @@ -63,14 +63,14 @@ else fi fi -if [ -x "$(command -v /usr/lib/xfce-polkit/xfce-polkit)" ]; then - /usr/lib/xfce-polkit/xfce-polkit & +if [ -x "$(command -v /usr/bin/lxqt-policykit-agent)" ]; then + /usr/bin/lxqt-policykit-agent & return_val=$? if [ $return_val -ne 0 ]; then - echo >&2 "Couldn't fire up xfce-polkit: $return_val" + echo >&2 "Couldn't fire up lxqt-policykit: $return_val" fi else - echo >&2 "Can't seem to find the /usr/lib/xfce-polkit/xfce-polkit executable" + echo >&2 "Can't seem to find the /usr/bin/lxqt-policykit-agent executable" fi if [ -x "$(command -v polybar)" ]; then diff --git a/.config/dmenu-wl/.gitignore b/.config/dmenu-wl/.gitignore new file mode 100644 index 0000000..06c65f4 --- /dev/null +++ b/.config/dmenu-wl/.gitignore @@ -0,0 +1,8 @@ +/* +/*/ +!/.gitignore + +!/dmenu_bspwm_desktop +!/dmenu_bspwm_desktop_content +!/dmenu_bspwm_monitor +!/dmenu_run_with_aliases diff --git a/.config/dmenu/dmenu_bspwm_desktop b/.config/dmenu-wl/dmenu_bspwm_desktop similarity index 100% rename from .config/dmenu/dmenu_bspwm_desktop rename to .config/dmenu-wl/dmenu_bspwm_desktop diff --git a/.config/dmenu/dmenu_bspwm_desktop_content b/.config/dmenu-wl/dmenu_bspwm_desktop_content similarity index 100% rename from .config/dmenu/dmenu_bspwm_desktop_content rename to .config/dmenu-wl/dmenu_bspwm_desktop_content diff --git a/.config/dmenu/dmenu_bspwm_monitor b/.config/dmenu-wl/dmenu_bspwm_monitor similarity index 100% rename from .config/dmenu/dmenu_bspwm_monitor rename to .config/dmenu-wl/dmenu_bspwm_monitor diff --git a/.config/dmenu-wl/dmenu_run_with_aliases b/.config/dmenu-wl/dmenu_run_with_aliases new file mode 100755 index 0000000..f10faa6 --- /dev/null +++ b/.config/dmenu-wl/dmenu_run_with_aliases @@ -0,0 +1,9 @@ +#!/usr/bin/env zsh + +if [[ -f $HOME/.zshenv ]]; then + source $HOME/.zshenv +fi + +command_to_run=$({ alias | awk '{split($0,alias,"="); print alias[1];}' ; dmenu-wl_path ; } | sort | dmenu-wl -i -fn "Fira Code:pixelsize=12:antialias=true:autohint=true" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" "$@") + +eval ${command_to_run} & diff --git a/.config/dmenu/.gitignore b/.config/dmenu/.gitignore index 06c65f4..a4cd279 100644 --- a/.config/dmenu/.gitignore +++ b/.config/dmenu/.gitignore @@ -2,7 +2,6 @@ /*/ !/.gitignore -!/dmenu_bspwm_desktop -!/dmenu_bspwm_desktop_content -!/dmenu_bspwm_monitor -!/dmenu_run_with_aliases +!/bspwm +!/run +!/run_zsh diff --git a/.config/dmenu/bspwm b/.config/dmenu/bspwm new file mode 100755 index 0000000..6311484 --- /dev/null +++ b/.config/dmenu/bspwm @@ -0,0 +1,142 @@ +#!/bin/sh + +dmenu_string="Wrong parameter" + +function desktop() { + case $1 in + "rename") + dmenu_string="Rename desktop to: " ;; + "delete") + dmenu_string="Really delete this desktop? (n = abort): " ;; + "swap") + dmenu_string="Swap desktop with desktop: " ;; + "swapfollow") + dmenu_string="Swap and follow desktop with desktop: " ;; + esac + + desktop="" + + if [[ $1 == "delete" || $1 == "rename" ]]; then + desktop=$(echo "" | dmenu -i -fn "$get_font" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" -p "$dmenu_string") + else + if [[ $1 != "bubbleprev" && $1 != "bubblenext" && $1 != "save" && $1 != "load" ]]; then + desktop=$(bspc query -m focused -D --names | dmenu -i -fn "$get_font" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" -p "$dmenu_string") + fi + fi + + case $1 in + "rename") + if [[ $desktop != "" ]]; + then + bspc desktop -n $desktop + fi + ;; + "delete") + echo $desktop + if [[ $desktop != "n" ]]; + then + bspc desktop -r + fi + ;; + "swap") + bspc desktop -s $desktop ;; + "swapfollow") + bspc desktop -s $desktop --follow ;; + "bubbleprev") + bspc desktop -b prev ;; + "bubblenext") + bspc desktop -b next ;; + "save") + bspwm-save ;; + "load") + bspwm-load ;; + esac +} + +function desktop_content() { + case $1 in + "goto") + dmenu_string="Switch to desktop: " ;; + "move") + dmenu_string="Move node to desktop: " ;; + "movefollow") + dmenu_string="Move and follow node to desktop: " ;; + esac + + desktop=$(bspc query -m focused -D --names | dmenu -i -fn "$get_font" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" -p "$dmenu_string") + + found=false + + desktop_list=$(bspc query -m focused -D --names) + desktop_array=$(echo $desktop_list | tr '\n' ' ') + + if [[ $desktop != "" ]]; then + for name in $desktop_array; do + if [[ $name == $desktop ]]; then + found=true + fi + done + fi + + if [ ! $found = true ]; then + bspc monitor -d $desktop_array $desktop + fi + + case $1 in + "goto") + bspc desktop -f $desktop ;; + "move") + bspc node -d $desktop ;; + "movefollow") + bspc node -d $desktop --follow ;; + esac +} + +function monitor() { + case $1 in + "goto") + dmenu_string="Switch to monitor: " ;; + "swap") + dmenu_string="Swap monitor with monitor: " ;; + "movenode") + dmenu_string="Move node to monitor: " ;; + "movenodefollow") + dmenu_string="Move and follow node to monitor: " ;; + "movedesktop") + dmenu_string="Move desktop to monitor: " ;; + "movedesktopfollow") + dmenu_string="Move and follow desktop to monitor: " ;; + esac + + monitor=$(bspc query -M --names | dmenu -i -fn "$get_font" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" -p "$dmenu_string") + + case $1 in + "goto") + bspc monitor -f $monitor ;; + "swap") + bspc monitor -s $monitor ;; + "movenode") + bspc node -m $monitor ;; + "movenodefollow") + bspc node -m $monitor --follow ;; + "movedesktop") + bspc desktop -m $monitor ;; + "movedesktopfollow") + bspc desktop -m $monitor --follow ;; + esac +} + +if [ ! -z $SHELL ]; then + get_font="$($SHELL -c "get-font")" +else + get_font="Fira Code:pixelsize=12:antialias=true:autohint=true" +fi + +case $1 in + "desktop") + desktop $2 ;; + "desktop_content") + desktop_content $2 ;; + "monitor") + monitor $2 ;; +esac diff --git a/.config/dmenu/run b/.config/dmenu/run new file mode 100755 index 0000000..c1ba5b0 --- /dev/null +++ b/.config/dmenu/run @@ -0,0 +1,16 @@ +#!/bin/sh + +fallback_command="dmenu_run -i -fn \"Fira Code:pixelsize=12:antialias=true:autohint=true\" -nb \"#282a36\" -nf \"#f8f8f2\" -sb \"#44475a\" -sf \"#f8f8f2\"" + +if [ ! -z $SHELL ]; then + case $SHELL in + *"fish") + fish -c "dmenu_fish" ;; + *"zsh") + $HOME/.config/dmenu/run_zsh ;; + *) + eval ${fallback_command} & + esac +else + eval ${fallback_command} & +fi diff --git a/.config/dmenu/dmenu_run_with_aliases b/.config/dmenu/run_zsh similarity index 58% rename from .config/dmenu/dmenu_run_with_aliases rename to .config/dmenu/run_zsh index ba00fa7..5c8dae0 100755 --- a/.config/dmenu/dmenu_run_with_aliases +++ b/.config/dmenu/run_zsh @@ -4,6 +4,6 @@ if [[ -f $HOME/.zshenv ]]; then source $HOME/.zshenv fi -command_to_run=$({ alias | awk '{split($0,alias,"="); print alias[1];}' ; dmenu_path ; } | sort | dmenu -i -fn $(get-font) -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" "$@") +command_to_run=$({ alias | awk '{split($0,alias,"="); print alias[1];}' ; dmenu_path ; } | sort | dmenu -i -fn "$(get-font)" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2" "$@") eval ${command_to_run} & diff --git a/.config/fish/.gitignore b/.config/fish/.gitignore new file mode 100644 index 0000000..4dff74f --- /dev/null +++ b/.config/fish/.gitignore @@ -0,0 +1,11 @@ +/* +/*/ +!/.gitignore + + +!/config.fish +!/fish_variables + +!/completions/ +!/conf.d/ +!/functions diff --git a/.config/fish/completions/watson.fish b/.config/fish/completions/watson.fish new file mode 100644 index 0000000..e2cf7ce --- /dev/null +++ b/.config/fish/completions/watson.fish @@ -0,0 +1,189 @@ +# copy this into ~/.config/fish/completions/ to enable autocomplete for the watson time tracker +# +function __fish_watson_needs_sub -d "provides a list of sub commands" + set cmd (commandline -opc) + if [ (count $cmd) -eq 1 -a $cmd[1] = 'watson' ] + return 0 + end + return 1 +end + +function __fish_watson_using_command -d "determine if watson is using the passed command" + set cmd (commandline -opc) + if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ] + if [ $argv[1] = $cmd[2] ] + return 0 + end + return 1 + end + return 1 +end + +function __fish_watson_get_projects -d "return a list of projects" + command watson projects +end + +function __fish_watson_get_tags -d "return a list of tags" + command watson tags +end + +function __fish_watson_has_project -d "determine if watson is using a passed command and if it has a project" + set cmd (commandline -opc) + if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ] + if [ $argv[1] = $cmd[2] ] + if contains "$cmd[3]" (__fish_watson_get_projects) + return 0 + end + end + end + return 1 +end + +function __fish_watson_has_from -d "determine if watson is using a passed command and if it is using from" + set cmd (commandline -opc) + if [ (count $cmd) -gt 2 -a $cmd[1] = 'watson' ] + if [ $argv[1] = $cmd[2] ] + if contains -- "$cmd[3]" -f --from + return 0 + end + end + end + return 1 +end + +function __fish_watson_get_frames -d "return a list of frames" #TODO, use watson logs to get more info + command watson frames +end + +function __fish_watson_needs_project -d "check if we need a project" + set cmd (commandline -opc) + if [ (count $cmd) -ge 2 -a $cmd[1] = 'watson' ] + if [ $argv[1] = $cmd[2] ] + for i in $cmd + if contains $i (__fish_watson_get_projects) + return 1 # return 1 because we alredy have a project + end + end + return 0 # we are using $argv as our command and the command does not contain any projects + end + end + return 1 +end + +# if a backend.url is set, use it in the command description +if [ -e ~/.config/watson/config ] + set url_string (command watson config backend.url 2> /dev/null) + if test -n "$url_string" + set url $url_string + end +else + set url "a remote Crick server" +end + +# ungrouped +complete -f -c watson -n '__fish_watson_needs_sub' -a cancel -d "Cancel the last start command" +complete -f -c watson -n '__fish_watson_needs_sub' -a frames -d "Display the list of all frame IDs" +complete -f -c watson -n '__fish_watson_needs_sub' -a help -d "Display help information" +complete -f -c watson -n '__fish_watson_needs_sub' -a projects -d "Display the list of projects" +complete -f -c watson -n '__fish_watson_needs_sub' -a sync -d "sync your work with $url" +complete -f -c watson -n '__fish_watson_needs_sub' -a tags -d "Display the list of tags" + +# add +complete -f -c watson -n '__fish_watson_needs_sub' -a add -d "Add time for project with tag(s) that was not tracked live" +complete -f -c watson -n '__fish_watson_using_command add' -s f -l from -d "Start date for add" +complete -f -c watson -n '__fish_watson_has_from add' -s t -l to -d "end date for add" +complete -f -c watson -n '__fish_watson_using_command add' -s c -l confirm-new-project -d "Confirm addition of new project" +complete -f -c watson -n '__fish_watson_using_command add' -s b -l confirm-new-tag -d "Confirm addition of new tag" + +# aggregate +complete -f -c watson -n '__fish_watson_needs_sub' -a aggregate -d "Display a report of the time spent on each project aggregated by day" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s c -l current -d "include the running frame" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s C -l no-current -d "exclude the running frame (default)" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s f -l from -d "Start date for aggregate" +complete -f -c watson -n '__fish_watson_has_from aggregate' -s t -l to -d "end date for aggregate" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s j -l json -d "output json" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s s -l csv -d "output csv" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s g -l pager -d "view through pager" +complete -f -c watson -n '__fish_watson_using_command aggregate' -s G -l no-pager -d "don't vew through pager" + +# config +complete -f -c watson -n '__fish_watson_needs_sub' -a config -d "Get and set configuration options" +complete -f -c watson -n '__fish_watson_using_command config' -s e -l edit -d "Edit the config with an editor" + +# edit +complete -f -c watson -n '__fish_watson_needs_sub' -a edit -d "Edit a frame" +complete -f -c watson -n '__fish_watson_using_command edit' -a "(__fish_watson_get_frames)" + +# log +complete -f -c watson -n '__fish_watson_needs_sub' -a log -d "Display sessions during the given timespan" +complete -f -c watson -n '__fish_watson_using_command log' -s c -l current -d "include the running frame" +complete -f -c watson -n '__fish_watson_using_command log' -s C -l no-current -d "exclude the running frame (default)" +complete -f -c watson -n '__fish_watson_using_command log' -s f -l from -d "Start date for log" +complete -f -c watson -n '__fish_watson_has_from log' -s t -l to -d "end date for log" +complete -f -c watson -n '__fish_watson_using_command log' -s y -l year -d "show the last year" +complete -f -c watson -n '__fish_watson_using_command log' -s m -l month -d "show the last month" +complete -f -c watson -n '__fish_watson_using_command log' -s l -l luna -d "show the last lunar cycle" +complete -f -c watson -n '__fish_watson_using_command log' -s w -l week -d "show week-to-day" +complete -f -c watson -n '__fish_watson_using_command log' -s d -l day -d "show today" +complete -f -c watson -n '__fish_watson_using_command log' -s a -l all -d "show all" +complete -f -c watson -n '__fish_watson_using_command log' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)" +complete -f -c watson -n '__fish_watson_using_command log' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)" +complete -f -c watson -n '__fish_watson_using_command log' -s j -l json -d "output json" +complete -f -c watson -n '__fish_watson_using_command log' -s s -l csv -d "output csv" +complete -f -c watson -n '__fish_watson_using_command log' -s g -l pager -d "view through pager" +complete -f -c watson -n '__fish_watson_using_command log' -s G -l no-pager -d "don't vew through pager" + +# merge +complete -f -c watson -n '__fish_watson_needs_sub' -a merge -d "merge existing frames with conflicting ones" +complete -f -c watson -n '__fish_watson_using_command merge' -s f -l force -d "silently merge" + +# remove +complete -f -c watson -n '__fish_watson_needs_sub' -a remove -d "Remove a frame" +complete -f -c watson -n '__fish_watson_using_command remove' -a "(__fish_watson_get_frames)" +complete -f -c watson -n '__fish_watson_using_command remove' -s f -l force -d "silently remove" + +# rename +complete -f -c watson -n '__fish_watson_needs_sub' -a rename -d "Rename a project or tag" +complete -f -c watson -n '__fish_watson_using_command rename' -a "(__fish_watson_get_projects) (__fish_watson_get_tags)" + +# report +complete -f -c watson -n '__fish_watson_needs_sub' -a report -d "Display a report of time spent" +complete -f -c watson -n '__fish_watson_using_command report' -s c -l current -d "include the running frame" +complete -f -c watson -n '__fish_watson_using_command report' -s C -l no-current -d "exclude the running frame (default)" +complete -f -c watson -n '__fish_watson_using_command report' -s f -l from -d "Start date for report" +complete -f -c watson -n '__fish_watson_has_from report' -s t -l to -d "end date for report" +complete -f -c watson -n '__fish_watson_using_command report' -s y -l year -d "show the last year" +complete -f -c watson -n '__fish_watson_using_command report' -s m -l month -d "show the last month" +complete -f -c watson -n '__fish_watson_using_command report' -s l -l luna -d "show the last lunar cycle" +complete -f -c watson -n '__fish_watson_using_command report' -s w -l week -d "show week-to-day" +complete -f -c watson -n '__fish_watson_using_command report' -s d -l day -d "show today" +complete -f -c watson -n '__fish_watson_using_command report' -s a -l all -d "show all" +complete -f -c watson -n '__fish_watson_using_command report' -s p -l project -d "restrict to project" -a "(__fish_watson_get_projects)" +complete -f -c watson -n '__fish_watson_using_command report' -s T -l tag -d "restrict to tag" -a "(__fish_watson_get_tags)" +complete -f -c watson -n '__fish_watson_using_command report' -s j -l json -d "output json" +complete -f -c watson -n '__fish_watson_using_command report' -s s -l csv -d "output csv" +complete -f -c watson -n '__fish_watson_using_command report' -s g -l pager -d "view through pager" +complete -f -c watson -n '__fish_watson_using_command report' -s G -l no-pager -d "don't vew through pager" + +# restart +complete -f -c watson -n '__fish_watson_needs_sub' -a restart -d "Restart monitoring time for a stopped project" +complete -f -c watson -n '__fish_watson_using_command restart' -s s -l stop -d "stop running project" +complete -f -c watson -n '__fish_watson_using_command restart' -s S -l no-stop -d "do not stop running project" +complete -f -c watson -n '__fish_watson_using_command restart' -a "(__fish_watson_get_frames)" + +# start +complete -f -c watson -n '__fish_watson_needs_sub' -a start -d "Start monitoring time for a project" +complete -f -c watson -n '__fish_watson_needs_project start' -a "(__fish_watson_get_projects)" +complete -f -c watson -n '__fish_watson_has_project start' -a "+(__fish_watson_get_tags)" + +# status +complete -f -c watson -n '__fish_watson_needs_sub' -a status -d "Display when the current project was started and time spent" +complete -f -c watson -n '__fish_watson_using_command status' -s p -l project -d "only show project" +complete -f -c watson -n '__fish_watson_using_command status' -s t -l tags -d "only show tags" +complete -f -c watson -n '__fish_watson_using_command status' -s e -l elapsed -d "only show elapsed time" + +# stop +complete -f -c watson -n '__fish_watson_needs_sub' -a stop -d "Stop monitoring time for the current project" +complete -f -c watson -n '__fish_watson_using_command stop' -l at -d "Stop frame at this time (YYYY-MM-DDT)?HH:MM(:SS)?" diff --git a/.config/fish/conf.d/env.fish b/.config/fish/conf.d/env.fish new file mode 100644 index 0000000..4dca111 --- /dev/null +++ b/.config/fish/conf.d/env.fish @@ -0,0 +1,19 @@ +set -x LANG "en_US.UTF-8" +set -x EDITOR "nvim" +set -x TERMINAL "alacritty" + +set -x SSH_AUTH_SOCK "$(gpgconf --list-dir socketdir)/S.gpg-agent.ssh" +set -x GPG_TTY $(tty) + +set -x CXXFLAGS "-std=c++14" + +set -x LD_LIBRARY_PATH $LD_LIBRARY_PATH +set -x XDG_CONFIG_HOME "$HOME/.config" + +set -x JUCE_PATH "$HOME/JUCE" + +set -x LIBGL_ALWAYS_INDIRECT 1 + +set -x WINIT_X11_SCALE_FACTOR 1 + +set -x MOZ_ENABLE_WAYLAND 1 diff --git a/.config/fish/conf.d/path.fish.example b/.config/fish/conf.d/path.fish.example new file mode 100644 index 0000000..90a70e5 --- /dev/null +++ b/.config/fish/conf.d/path.fish.example @@ -0,0 +1 @@ +set -x PATH "$HOME/.local/share/gem/ruby/3.0.0/bin" "$HOME/.dotnet/tools" $PATH diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..f285542 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,12 @@ +if command -q starship + starship init fish | source +end + +if command -q zoxide + zoxide init fish | source +end + +set fish_cursor_default block +set fish_cursor_insert line +set fish_cursor_replace_one underscore +set fish_cursor_visual block diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables new file mode 100644 index 0000000..1f3533f --- /dev/null +++ b/.config/fish/fish_variables @@ -0,0 +1,33 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR __fish_initialized:3400 +SETUVAR fish_color_autosuggestion:555\x1ebrblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:blue +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111 +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting: +SETUVAR fish_key_bindings:fish_vi_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di +SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR fish_user_paths:/home/dustvoice/\x2elocal/bin\x1e/usr/local/bin diff --git a/.config/fish/functions/battery-monitor.fish b/.config/fish/functions/battery-monitor.fish new file mode 100644 index 0000000..8569bab --- /dev/null +++ b/.config/fish/functions/battery-monitor.fish @@ -0,0 +1,3 @@ +function battery-monitor --description 'Simple stat overview regarding battery charge and power supply connection' + watch -t -n 60 '( if [ -f /sys/class/power_supply/ACAD/online ] && [ $(cat /sys/class/power_supply/ACAD/online) == "1" ]; then printf "Power connected\n"; else printf "Power disconnected\n"; fi; printf "\nBattery capacity: "; cat /sys/class/power_supply/BAT1/capacity; printf "\n(Updated every 60s)"; )' +end diff --git a/.config/fish/functions/binance_miner.fish b/.config/fish/functions/binance_miner.fish new file mode 100644 index 0000000..28e9186 --- /dev/null +++ b/.config/fish/functions/binance_miner.fish @@ -0,0 +1,3 @@ +function binance_miner --wraps='ethminer --farm-recheck 200 -P stratum+tcp://DustVoiceETH.Linux@ethash.poolbinance.com:1800' --description 'alias binance_miner=ethminer --farm-recheck 200 -P stratum+tcp://DustVoiceETH.Linux@ethash.poolbinance.com:1800' + ethminer --farm-recheck 200 -P stratum+tcp://DustVoiceETH.Linux@ethash.poolbinance.com:1800 $argv; +end diff --git a/.config/fish/functions/bspwm-load.fish b/.config/fish/functions/bspwm-load.fish new file mode 100644 index 0000000..1c29dcc --- /dev/null +++ b/.config/fish/functions/bspwm-load.fish @@ -0,0 +1,12 @@ +function bspwm-load-custom + bspwm-workspaces-init + + if test -e $BSPWM_FILES/$argv[1] + bspwm-save-custom $argv[2] $argv[2] + bspc monitor -d $(< $BSPWM_FILES/$argv[1]) + end +end + +function bspwm-load --description 'Load previously saved bspwm workspaces' + bspwm-load-custom workspaces workspaces.prev_save +end diff --git a/.config/fish/functions/bspwm-save.fish b/.config/fish/functions/bspwm-save.fish new file mode 100644 index 0000000..8f18b8b --- /dev/null +++ b/.config/fish/functions/bspwm-save.fish @@ -0,0 +1,13 @@ +function bspwm-save-custom + bspwm-workspaces-init + + if test -e $BSPWM_FILES/$argv[1] + cp $BSPWM_FILES/$argv[1] $BSPWM_FILES/$argv[2] + end + + bspc query -m focused -D --names | tr '\n' ' ' | sed 's/ $//g' > $BSPWM_FILES/$argv[1] +end + +function bspwm-save --description 'Save current bspwm workspaces' + bspwm-save-custom workspaces workspaces.prev_save +end diff --git a/.config/fish/functions/bspwm-workspace-init.fish b/.config/fish/functions/bspwm-workspace-init.fish new file mode 100644 index 0000000..fd041dd --- /dev/null +++ b/.config/fish/functions/bspwm-workspace-init.fish @@ -0,0 +1,7 @@ +function bspwm-workspaces-init + if not set -q BSPWM_FILES + set -x BSPWM_FILES "$HOME/.local/share/bspwm" + end + + mkdir -p $BSPWM_FILES +end diff --git a/.config/fish/functions/check-iommu.fish b/.config/fish/functions/check-iommu.fish new file mode 100644 index 0000000..d4ff72e --- /dev/null +++ b/.config/fish/functions/check-iommu.fish @@ -0,0 +1,9 @@ +function check-iommu --description 'Check iommu groups' + for g in /sys/kernel/iommu_groups/* + echo "IOMMU Group ${g##*/}:" + + for d in $g/devices/* + echo -e "\t$(lspci -nns ${d##*/})" + end + end +end diff --git a/.config/fish/functions/construct_column_aware_prompt.fish b/.config/fish/functions/construct_column_aware_prompt.fish new file mode 100644 index 0000000..a255f19 --- /dev/null +++ b/.config/fish/functions/construct_column_aware_prompt.fish @@ -0,0 +1,43 @@ +function construct_column_aware_prompt -a prompt_prefix prompt_dir + set -l prompt_concat "$prompt_prefix$prompt_dir" + + if test (expr length "$prompt_concat") -le $COLUMNS + echo $prompt_prefix$prompt_dir + else + if test (expr length "$prompt_prefix") -le $COLUMNS + set -l split_prompt_concat (string split "/" $prompt_dir) + + if test (count $split_prompt_concat) -lt 2 + echo (string sub -s 1 -l (math $COLUMNS - (expr length "$prompt_prefix")) $prompt_dir) + else + for i in (seq (count $split_prompt_concat)) + if test (expr length "> $split_prompt_concat[$i]/") -gt $COLUMNS + set split_prompt_concat[$i] (string sub -s 1 -l (math $COLUMNS - 8) $split_prompt_concat[$i])'[...]' + end + end + + set -l tmp_lines "$prompt_prefix" + + for item in $split_prompt_concat + set -l tmp_line "$tmp_lines$item/" + if test (expr length "$tmp_line") -le $COLUMNS + set tmp_lines $tmp_line + else + echo $tmp_lines + set tmp_lines "> $item/" + end + end + + set -l tmp_lines_length (expr length "$tmp_lines") + if test $tmp_lines_length -gt 0 + echo (string sub -s 1 -l (math $tmp_lines_length - 1) $tmp_lines) + end + end + else + set -l rec (construct_column_aware_prompt "" $prompt_dir) + for item in rec + echo $item + end + end + end +end diff --git a/.config/fish/functions/devkitARM.fish b/.config/fish/functions/devkitARM.fish new file mode 100644 index 0000000..8b1dc4e --- /dev/null +++ b/.config/fish/functions/devkitARM.fish @@ -0,0 +1,3 @@ +function devkitARM --description 'Shadow arm-none-eabi binaries with the devkitARM ones' + set -x PATH "/opt/devkitpro/devkitARM/bin" $PATH +end diff --git a/.config/fish/functions/dmenu_fish.fish b/.config/fish/functions/dmenu_fish.fish new file mode 100644 index 0000000..7e43595 --- /dev/null +++ b/.config/fish/functions/dmenu_fish.fish @@ -0,0 +1,7 @@ +function dmenu_fish --description 'Open fish agnostic dmenu' + set fns "$(string replace -a ', ' \n $(functions))" + + set commands $(string join \n $fns $(dmenu_path) | sort | dmenu -i -fn "$(get-font)" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2") + + eval $command_to_run & +end diff --git a/.config/fish/functions/ea.fish b/.config/fish/functions/ea.fish new file mode 100644 index 0000000..8e314ef --- /dev/null +++ b/.config/fish/functions/ea.fish @@ -0,0 +1,3 @@ +function ea --wraps='exa -lah' --description 'alias ea exa -lah' + exa -lah $argv; +end diff --git a/.config/fish/functions/ee.fish b/.config/fish/functions/ee.fish new file mode 100644 index 0000000..747f4a0 --- /dev/null +++ b/.config/fish/functions/ee.fish @@ -0,0 +1,3 @@ +function ee --wraps='exa -lh' --description 'alias ee exa -lh' + exa -lh $argv; +end diff --git a/.config/fish/functions/es.fish b/.config/fish/functions/es.fish new file mode 100644 index 0000000..302f577 --- /dev/null +++ b/.config/fish/functions/es.fish @@ -0,0 +1,3 @@ +function es --wraps=exa --description 'alias es exa' + exa $argv; +end diff --git a/.config/fish/functions/esa.fish b/.config/fish/functions/esa.fish new file mode 100644 index 0000000..21e60e3 --- /dev/null +++ b/.config/fish/functions/esa.fish @@ -0,0 +1,3 @@ +function esa --wraps='exa -a' --description 'alias esa exa -a' + exa -a $argv; +end diff --git a/.config/fish/functions/firefox-private.fish b/.config/fish/functions/firefox-private.fish new file mode 100644 index 0000000..5217fce --- /dev/null +++ b/.config/fish/functions/firefox-private.fish @@ -0,0 +1,3 @@ +function firefox-private --wraps='firefox --private-window' --description 'alias firefox-private=firefox --private-window' + firefox --private-window $argv; +end diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..727b296 --- /dev/null +++ b/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,24 @@ +function fish_prompt --description 'Write out the prompt' + if test (id -u) -eq 0 + set prompt_symbol '#' + else + set prompt_symbol '$' + end + + set -l prompt_prefix (set_color yellow)(whoami)'@'(set_color purple)(prompt_hostname)' ' + set -l prompt_dir (set_color green)(prompt_pwd) + + set -l column_aware_prompt (construct_column_aware_prompt $prompt_prefix $prompt_dir) + + if test -z $WINDOW + for dir in $column_aware_prompt + echo $dir + end + + set_color normal + + echo $prompt_symbol' ' + else + printf '%s%s@%s%s%s (%s)%s%s%s\n%s ' (set_color yellow) (whoami) (set_color purple) (prompt_hostname) (set_color white) (echo $WINDOW) (set_color green) (prompt_pwd) (set_color normal) $prompt_symbol + end +end diff --git a/.config/fish/functions/fish_user_key_bindings.fish b/.config/fish/functions/fish_user_key_bindings.fish new file mode 100644 index 0000000..5de85da --- /dev/null +++ b/.config/fish/functions/fish_user_key_bindings.fish @@ -0,0 +1,3 @@ +function fish_user_key_bindings + fish_vi_key_bindings +end diff --git a/.config/fish/functions/get-font.fish b/.config/fish/functions/get-font.fish new file mode 100644 index 0000000..5706d8c --- /dev/null +++ b/.config/fish/functions/get-font.fish @@ -0,0 +1,14 @@ +function get-font + set fallback_font "Fira Code:pixelsize=12:antialias=true:autohint=true" + set font "" + + if command -q xgetres + if not set font $(xgetres font) + set font $fallback_font + end + else + set font $fallback_font + end + + echo "$font" +end diff --git a/.config/fish/functions/hyperv-forward.fish b/.config/fish/functions/hyperv-forward.fish new file mode 100644 index 0000000..fa3fe1e --- /dev/null +++ b/.config/fish/functions/hyperv-forward.fish @@ -0,0 +1,26 @@ +function hyperv-gpg-agent + set socket_path "$HOME/.gnupg/S.gpg-agent" + set host_ip $(ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3) + + if test -e $socket_path + rm $socket_path + end + + setsid socat UNIX-LISTEN:$socket_path,fork tcp-connect:$host_ip:59545 & +end + +function hyperv-ssh-agent + set socket_path "$HOME/.gnupg/S.gpg-agent.ssh" + set host_ip $(ip route show 0.0.0.0/0 dev eth0 | cut -d\ -f3) + + if test -e $socket_path + rm $socket_path + end + + setsid socat UNIX-LISTEN:$socket_path,fork tcp-connect:$host_ip:59546 & +end + +function hyperv-forward --description 'Setup hyperv-agent forwarding' + hyperv-gpg-agent + hyperv-ssh-agent +end diff --git a/.config/fish/functions/la.fish b/.config/fish/functions/la.fish new file mode 100644 index 0000000..ad1b465 --- /dev/null +++ b/.config/fish/functions/la.fish @@ -0,0 +1,3 @@ +function la --wraps='ls -lah' --description 'alias la=ls -lah' + ls -lah $argv; +end diff --git a/.config/fish/functions/layout.fish b/.config/fish/functions/layout.fish new file mode 100644 index 0000000..c9d5f42 --- /dev/null +++ b/.config/fish/functions/layout.fish @@ -0,0 +1,3 @@ +function layout --wraps=xkblayout-state\ print\ \"\%s\(\%v\)\"\ \&\&\ echo\ -n\ \"\\n\" --description alias\ layout=xkblayout-state\ print\ \"\%s\(\%v\)\"\ \&\&\ echo\ -n\ \"\\n\" + xkblayout-state print "%s(%v)" && echo -n "\n" $argv; +end diff --git a/.config/fish/functions/ll.fish b/.config/fish/functions/ll.fish new file mode 100644 index 0000000..9621cb9 --- /dev/null +++ b/.config/fish/functions/ll.fish @@ -0,0 +1,3 @@ +function ll --wraps='ls -lh' --description 'alias ll=ls -lh' + ls -lh $argv; +end diff --git a/.config/fish/functions/lock-screen.fish b/.config/fish/functions/lock-screen.fish new file mode 100644 index 0000000..adf2e7b --- /dev/null +++ b/.config/fish/functions/lock-screen.fish @@ -0,0 +1,3 @@ +function lock-screen --wraps='xset 600 60 && env XSECURELOCK_AUTH_BACKGROUND_COLOR=rgb:28/2a/36 XSECURELOCK_AUTH_FOREGROUND_COLOR=rgb:f8/f8/f2 XSECURELOCK_AUTH_TIMEOUT=10 XSECURELOCK_BLANK_TIMEOUT=-1 XSECURELOCK_BLANK_DPMS_STATE=on XSECURELOCK_DISCARD_FIRST_KEYPRESS=1 XSECURELOCK_PASSWORD_PROMPT=cursor XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_SHOW_HOSTNAME=1 XSECURELOCK_SHOW_USERNAME=1 xsecurelock &' --description 'alias lock-screen=xset 600 60 && env XSECURELOCK_AUTH_BACKGROUND_COLOR=rgb:28/2a/36 XSECURELOCK_AUTH_FOREGROUND_COLOR=rgb:f8/f8/f2 XSECURELOCK_AUTH_TIMEOUT=10 XSECURELOCK_BLANK_TIMEOUT=-1 XSECURELOCK_BLANK_DPMS_STATE=on XSECURELOCK_DISCARD_FIRST_KEYPRESS=1 XSECURELOCK_PASSWORD_PROMPT=cursor XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_SHOW_HOSTNAME=1 XSECURELOCK_SHOW_USERNAME=1 xsecurelock &' + xset 600 60 && env XSECURELOCK_AUTH_BACKGROUND_COLOR=rgb:28/2a/36 XSECURELOCK_AUTH_FOREGROUND_COLOR=rgb:f8/f8/f2 XSECURELOCK_AUTH_TIMEOUT=10 XSECURELOCK_BLANK_TIMEOUT=-1 XSECURELOCK_BLANK_DPMS_STATE=on XSECURELOCK_DISCARD_FIRST_KEYPRESS=1 XSECURELOCK_PASSWORD_PROMPT=cursor XSECURELOCK_SHOW_DATETIME=1 XSECURELOCK_SHOW_HOSTNAME=1 XSECURELOCK_SHOW_USERNAME=1 xsecurelock & $argv; +end diff --git a/.config/fish/functions/ls.fish b/.config/fish/functions/ls.fish new file mode 100644 index 0000000..b9a82a0 --- /dev/null +++ b/.config/fish/functions/ls.fish @@ -0,0 +1,3 @@ +function ls --description 'alias ls=ls --color=tty' + command ls --color=tty $argv; +end diff --git a/.config/fish/functions/lsa.fish b/.config/fish/functions/lsa.fish new file mode 100644 index 0000000..5d99411 --- /dev/null +++ b/.config/fish/functions/lsa.fish @@ -0,0 +1,3 @@ +function lsa --wraps='ls -a' --description 'alias lsa=ls -a' + ls -a $argv; +end diff --git a/.config/fish/functions/octave-gui.fish b/.config/fish/functions/octave-gui.fish new file mode 100644 index 0000000..7500ce2 --- /dev/null +++ b/.config/fish/functions/octave-gui.fish @@ -0,0 +1,3 @@ +function octave-gui --wraps='octave --force-gui' --description 'alias octave-gui=octave --force-gui' + octave --force-gui $argv; +end diff --git a/.config/fish/functions/pianoteq.fish b/.config/fish/functions/pianoteq.fish new file mode 100644 index 0000000..8baaac3 --- /dev/null +++ b/.config/fish/functions/pianoteq.fish @@ -0,0 +1,3 @@ +function pianoteq --wraps=pianoteq\\\ 7 --description alias\ pianoteq=pianoteq\\\ 7 + pianoteq\ 7 $argv; +end diff --git a/.config/fish/functions/picom-default.fish b/.config/fish/functions/picom-default.fish new file mode 100644 index 0000000..ae1f795 --- /dev/null +++ b/.config/fish/functions/picom-default.fish @@ -0,0 +1,3 @@ +function picom-default --wraps='picom -bGC --backend glx --unredir-if-possible-delay 1000 --vsync' --description 'alias picom-default=picom -bGC --backend glx --unredir-if-possible-delay 1000 --vsync' + picom -bGC --backend glx --unredir-if-possible-delay 1000 --vsync $argv; +end diff --git a/.config/fish/functions/polybar-launch.fish b/.config/fish/functions/polybar-launch.fish new file mode 100644 index 0000000..a4bfa4a --- /dev/null +++ b/.config/fish/functions/polybar-launch.fish @@ -0,0 +1,3 @@ +function polybar-launch --wraps=/home/dustvoice/.config/polybar/launch --description 'alias polybar-launch=/home/dustvoice/.config/polybar/launch' + /home/dustvoice/.config/polybar/launch $argv; +end diff --git a/.config/fish/functions/resolve.fish b/.config/fish/functions/resolve.fish new file mode 100644 index 0000000..efb0916 --- /dev/null +++ b/.config/fish/functions/resolve.fish @@ -0,0 +1,3 @@ +function resolve --wraps=/opt/resolve/bin/resolve --description 'alias resolve=/opt/resolve/bin/resolve' + /opt/resolve/bin/resolve $argv; +end diff --git a/.config/fish/functions/sabaki.fish b/.config/fish/functions/sabaki.fish new file mode 100644 index 0000000..f799ed9 --- /dev/null +++ b/.config/fish/functions/sabaki.fish @@ -0,0 +1,3 @@ +function sabaki --wraps=/opt/Sabaki/sabaki --description 'alias sabaki=/opt/Sabaki/sabaki' + /opt/Sabaki/sabaki $argv; +end diff --git a/.config/fish/functions/screenkey-obs.fish b/.config/fish/functions/screenkey-obs.fish new file mode 100644 index 0000000..eec9b19 --- /dev/null +++ b/.config/fish/functions/screenkey-obs.fish @@ -0,0 +1,5 @@ +function screenkey-obs + set width $(xrandr | awk '$0 ~ "*" {split($1,res,"x"); print res[1];}') + set height $(xrandr | awk '$0 ~ "*" {split($1,res,"x"); print res[2];}') + screenkey --no-systray -t 2 -p fixed -s small -g $(awk -v height=$height -v width=$width 'BEGIN {printf "%.0fx%.0f+%.0f+%.0f", (width * 0.5), (height * 0.06), (width * 0.25), (height * 0.02)}') --key-mode composed --bak-mode full --mods-mode normal -f "Fira Code" --font-color "#f8f8f2" --bg-color "#44475a" --opacity "1.0" +end diff --git a/.config/fish/functions/tmate-obs.fish b/.config/fish/functions/tmate-obs.fish new file mode 100644 index 0000000..eeef337 --- /dev/null +++ b/.config/fish/functions/tmate-obs.fish @@ -0,0 +1,3 @@ +function tmate-obs --wraps='tmate -k tmk-ET35fx5m9cA7cxOt4jjWkSmaOy -r DustVoice' --description 'alias tmate-obs=tmate -k tmk-ET35fx5m9cA7cxOt4jjWkSmaOy -r DustVoice' + tmate -k tmk-ET35fx5m9cA7cxOt4jjWkSmaOy -r DustVoice $argv; +end diff --git a/.config/fish/functions/xfce-polkit.fish b/.config/fish/functions/xfce-polkit.fish new file mode 100644 index 0000000..96e9969 --- /dev/null +++ b/.config/fish/functions/xfce-polkit.fish @@ -0,0 +1,3 @@ +function xfce-polkit --wraps=/usr/lib/xfce-polkit/xfce-polkit --description 'alias xfce-polkit=/usr/lib/xfce-polkit/xfce-polkit' + /usr/lib/xfce-polkit/xfce-polkit $argv; +end diff --git a/.config/nvim b/.config/nvim index f34eee4..424a3a5 160000 --- a/.config/nvim +++ b/.config/nvim @@ -1 +1 @@ -Subproject commit f34eee43999373028f67964e1335bf49e0bd700a +Subproject commit 424a3a58af34da0f2d41a3558050e3839aaa15b2 diff --git a/.config/polybar/config b/.config/polybar/config index 84490f4..b3b2c86 100644 --- a/.config/polybar/config +++ b/.config/polybar/config @@ -14,7 +14,7 @@ error = #ff5555 [bar/top] monitor = ${env:MONITOR:} dpi = ${xrdb:Xft.dpi:-1} -font-0 = ${xrdb:font:Hack:size=10:antialias=true:autohint=true} +font-0 = ${xrdb:font:Fira Code:pixelsize=12:antialias=true:autohint=true} monitor-strict = false override-redirect = false bottom = false diff --git a/.config/river/init b/.config/river/init new file mode 100755 index 0000000..e68df26 --- /dev/null +++ b/.config/river/init @@ -0,0 +1,166 @@ +#!/bin/sh + +# This is the example configuration file for river. +# +# If you wish to edit this, you will probably want to copy it to +# $XDG_CONFIG_HOME/river/init or $HOME/.config/river/init first. +# +# See the river(1), riverctl(1), and rivertile(1) man pages for complete +# documentation. + +# Note: the "Alt" modifier is also known as Logo, GUI, Windows, Mod4, etc. + +# Alt+Shift+Return to start an instance of alacritty +riverctl map normal Alt Return spawn alacritty + +# dmenu-wl +riverctl map normal Alt d spawn $HOME/.config/dmenu-wl/dmenu_run + +# Alt+Q to close the focused view +riverctl map normal Alt+Shift c close + +# Alt+Shift+E to exit river +riverctl map normal Alt+Shift q exit + +# Alt+J and Alt+K to focus the next/previous view in the layout stack +riverctl map normal Alt J focus-view next +riverctl map normal Alt K focus-view previous + +# Alt+Shift+J and Alt+Shift+K to swap the focused view with the next/previous +# view in the layout stack +riverctl map normal Alt+Shift J swap next +riverctl map normal Alt+Shift K swap previous + +# Alt+Period and Alt+Comma to focus the next/previous output +riverctl map normal Alt Period focus-output next +riverctl map normal Alt Comma focus-output previous + +# Alt+Shift+{Period,Comma} to send theAlt focused view to the next/previous output +riverctl map normal Alt+Shift Period send-to-output next +riverctl map normal Alt+Shift Comma send-to-output previous + +# Alt+Return to bump the focused view to the top of the layout stack +riverctl map normal Alt+Shift Return zoom + +# Alt+H and Alt+L to decrease/increase the main ratio of rivertile(1) +riverctl map normal Alt H send-layout-cmd rivertile "main-ratio -0.05" +riverctl map normal Alt L send-layout-cmd rivertile "main-ratio +0.05" + +# Alt+Shift+H and Alt+Shift+L to increment/decrement the main count of rivertile(1) +riverctl map normal Alt+Shift H send-layout-cmd rivertile "main-count +1" +riverctl map normal Alt+Shift L send-layout-cmd rivertile "main-count -1" + +# Alt+Alt+{H,J,K,L} to move views +riverctl map normal Super+Alt H move left 100 +riverctl map normal Super+Alt J move down 100 +riverctl map normal Super+Alt K move up 100 +riverctl map normal Super+Alt L move right 100 + +# Super+Alt+Control+{H,J,K,L} to snap views to screen edges +riverctl map normal Super+Alt+Control H snap left +riverctl map normal Super+Alt+Control J snap down +riverctl map normal Super+Alt+Control K snap up +riverctl map normal Super+Alt+Control L snap right + +# Super+Alt+Shif+{H,J,K,L} to resize views +riverctl map normal Super+Alt+Shift H resize horizontal -100 +riverctl map normal Super+Alt+Shift J resize vertical 100 +riverctl map normal Super+Alt+Shift K resize vertical -100 +riverctl map normal Super+Alt+Shift L resize horizontal 100 + +# Alt + Left Mouse Button to move views +riverctl map-pointer normal Alt BTN_LEFT move-view + +# Alt + Right Mouse Button to resize views +riverctl map-pointer normal Alt BTN_RIGHT resize-view + +for i in $(seq 1 9) +do + tags=$((1 << ($i - 1))) + + # Alt+[1-9] to focus tag [0-8] + riverctl map normal Alt $i set-focused-tags $tags + + # Alt+Shift+[1-9] to tag focused view with tag [0-8] + riverctl map normal Alt+Shift $i set-view-tags $tags + + # Alt+Ctrl+[1-9] to toggle focus of tag [0-8] + riverctl map normal Alt+Control $i toggle-focused-tags $tags + + # Alt+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view + riverctl map normal Alt+Shift+Control $i toggle-view-tags $tags +done + +# Alt+0 to focus all tags +# Alt+Shift+0 to tag focused view with all tags +all_tags=$(((1 << 32) - 1)) +riverctl map normal Alt 0 set-focused-tags $all_tags +riverctl map normal Alt+Shift 0 set-view-tags $all_tags + +# Alt+S to toggle float +riverctl map normal Alt S toggle-float + +# Alt+M to toggle fullscreen +riverctl map normal Alt M toggle-fullscreen + +# Alt+{Up,Right,Down,Left} to change layout orientation +riverctl map normal Alt Up send-layout-cmd rivertile "main-location top" +riverctl map normal Alt Right send-layout-cmd rivertile "main-location right" +riverctl map normal Alt Down send-layout-cmd rivertile "main-location bottom" +riverctl map normal Alt Left send-layout-cmd rivertile "main-location left" + +# Declare a passthrough mode. This mode has only a single mapping to return to +# normal mode. This makes it useful for testing a nested wayland compositor +riverctl declare-mode passthrough + +# Alt+F11 to enter passthrough mode +riverctl map normal Alt F11 enter-mode passthrough + +# Alt+F11 to return to normal mode +riverctl map passthrough Alt F11 enter-mode normal + +# Various media key mapping examples for both normal and locked mode which do +# not have a modifier +for mode in normal locked +do + # Eject the optical drive (well if you still have one that is) + riverctl map $mode None XF86Eject spawn 'eject -T' + + # Control pulse audio volume with pamixer (https://github.com/cdemoulins/pamixer) + riverctl map $mode None XF86AudioRaiseVolume spawn 'pamixer -i 5' + riverctl map $mode None XF86AudioLowerVolume spawn 'pamixer -d 5' + riverctl map $mode None XF86AudioMute spawn 'pamixer --toggle-mute' + + # Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl) + riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause' + riverctl map $mode None XF86AudioPrev spawn 'playerctl previous' + riverctl map $mode None XF86AudioNext spawn 'playerctl next' + + # Control screen backlight brighness with light (https://github.com/haikarainen/light) + riverctl map $mode None XF86MonBrightnessUp spawn 'light -A 5' + riverctl map $mode None XF86MonBrightnessDown spawn 'light -U 5' +done + +# Set background and border color +riverctl background-color 0x282a36 +riverctl border-color-focused 0xff79c6 +riverctl border-color-unfocused 0x44475a + +# Set keyboard repeat rate +riverctl set-repeat 50 300 + +# Make certain views start floating +riverctl float-filter-add app-id float +riverctl float-filter-add title "popup title with spaces" + +# Set app-ids and titles of views which should use client side decorations +riverctl csd-filter-add app-id "gedit" + +# Set and exec into the default layout generator, rivertile. +# River will send the process group of the init executable SIGTERM on exit. + +waybar & + +riverctl default-layout rivertile +exec rivertile -view-padding 0 -outer-padding 0 diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc index d56ba7b..19b4c9a 100644 --- a/.config/sxhkd/sxhkdrc +++ b/.config/sxhkd/sxhkdrc @@ -123,52 +123,52 @@ alt + Return # run program launcher alt + d - if [ -x $(command -v zsh) ]; then $HOME/.config/dmenu/dmenu_run_with_aliases; else dmenu_run -i -fn "Hack:size=10:antialias=true:autohint=true" -nb "#282a36" -nf "#f8f8f2" -sb "#44475a" -sf "#f8f8f2"; fi + $HOME/.config/dmenu/run; alt + x - $HOME/.config/dmenu/dmenu_bspwm_desktop_content goto + $HOME/.config/dmenu/bspwm desktop_content goto alt + shift + x - $HOME/.config/dmenu/dmenu_bspwm_desktop_content move + $HOME/.config/dmenu/bspwm desktop_content move alt + ctrl + shift + x - $HOME/.config/dmenu/dmenu_bspwm_desktop_content movefollow + $HOME/.config/dmenu/bspwm desktop_content movefollow alt + z; r - $HOME/.config/dmenu/dmenu_bspwm_desktop rename + $HOME/.config/dmenu/bspwm desktop rename alt + z; d - $HOME/.config/dmenu/dmenu_bspwm_desktop delete + $HOME/.config/dmenu/bspwm desktop delete alt + z; s - $HOME/.config/dmenu/dmenu_bspwm_desktop swap + $HOME/.config/dmenu/bspwm desktop swap alt + z; h - $HOME/.config/dmenu/dmenu_bspwm_desktop bubbleprev + $HOME/.config/dmenu/bspwm desktop bubbleprev alt + z; l - $HOME/.config/dmenu/dmenu_bspwm_desktop bubblenext + $HOME/.config/dmenu/bspwm desktop bubblenext alt + z; y - $HOME/.config/dmenu/dmenu_bspwm_desktop save + $HOME/.config/dmenu/bspwm desktop save alt + z; p - $HOME/.config/dmenu/dmenu_bspwm_desktop load + $HOME/.config/dmenu/bspwm desktop load alt + a; g - $HOME/.config/dmenu/dmenu_bspwm_monitor goto + $HOME/.config/dmenu/bspwm monitor goto alt + a; s - $HOME/.config/dmenu/dmenu_bspwm_monitor swap + $HOME/.config/dmenu/bspwm monitor swap alt + a; shift + n - $HOME/.config/dmenu/dmenu_bspwm_monitor movenode + $HOME/.config/dmenu/bspwm monitor movenode alt + a; ctrl + shift + n - $HOME/.config/dmenu/dmenu_bspwm_monitor movenodefollow + $HOME/.config/dmenu/bspwm monitor movenodefollow alt + a; shift + d - $HOME/.config/dmenu/dmenu_bspwm_monitor movedesktop + $HOME/.config/dmenu/bspwm monitor movedesktop alt + a; ctrl + shift + d - $HOME/.config/dmenu/dmenu_bspwm_movement_monitor movedesktopfollow + $HOME/.config/dmenu/bspwm monitor movedesktopfollow diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..89d060b --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,132 @@ +{ + // "layer": "top", // Waybar at top layer + "position": "top", // Waybar position (top|bottom|left|right) + "height": 10, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 0, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["river/tags", "river/mode"], + "modules-center": ["river/window"], + "modules-right": ["pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "battery", "battery#bat2", "clock", "tray"], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "river/mode": { + "format": "{}" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + } + // "custom/media": { + // "format": "{icon} {}", + // "return-type": "json", + // "max-length": 40, + // "format-icons": { + // "spotify": "", + // "default": "🎜" + // }, + // "escape": true, + // "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + // } +} diff --git a/.config/waybar/dracula.style.css b/.config/waybar/dracula.style.css new file mode 100644 index 0000000..4386f78 --- /dev/null +++ b/.config/waybar/dracula.style.css @@ -0,0 +1,137 @@ +* { + border: none; + border-radius: 0; + font-family: Roboto,'Font Awesome 5', 'SFNS Display', Helvetica, Arial, sans-serif; + font-size: 15px; + min-height: 0; +} + +window#waybar { + background: rgba(0,0,0,0); + color: #ffffff; +} + +window#waybar.hidden { + opacity: 0.0; +} + +#workspaces { + background-color: #282a36; + border-radius: 20px; + padding: 0 15px; +} + +#workspaces button { + margin: 0 5px; + padding: 0; + background: transparent; + color: #ffffff; + border-bottom: 2px solid transparent; +} + +#workspaces button.focused { + border-bottom: 2px solid #ff79c6; + color: #ff79c6; +} + +#workspaces button.urgent { + color: #ff5555; +} + +#workspaces button:hover { + box-shadow: none; + text-shadow: none; + border-bottom: 2px solid #ff79c6; +} + +#window { + background-color: #282a36; + border-radius: 0 20px 20px 0; + padding: 0 20px; + margin: 0 10px 0 0; +} + +#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor { + padding: 0 20px; + margin: 0 10px; + background-color: #282a36; + color: #ffffff; + border-radius: 20px; +} + +#clock { + +} + +#battery { +} + +#battery.charging { +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#battery.critical:not(.charging) { + background: #f53c3c; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#cpu { +} + +#memory { +} + +#backlight { +} + +#network { + margin: 0 0 0 10px; + padding: 0 10px 0 20px; + border-radius: 20px 0 0 20px; +} + +#network.disconnected { +} + +#pulseaudio { +} + +#pulseaudio.muted { +} + +#custom-media { +} + +.custom-spotify { +} + +.custom-vlc { +} + +#temperature { +} + +#temperature.critical { +} + +#tray { + border-radius: 0; + margin: 0; + padding: 0 20px 0 0; +} + +#idle_inhibitor { +} + +#idle_inhibitor.activated { +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..9639b98 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,261 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: Fira Code, FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 12px; +} + +window#waybar { + background-color: #282a36; + /*border: 2px solid #ff79c6;*/ + color: #f8f8f2; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #282a36; + border: none; +} + +#tags button { + padding: 0 5px; + background-color: transparent; + color: #f8f8f2; + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -2px transparent; + /* Avoid rounded borders under each workspace name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +#tags button:hover { + background: #f8f8f2; + /*background: rgba(0, 0, 0, 0.2);*/ + /*box-shadow: inset 0 -2px #282a36;*/ + /*background-color: #6272a4;*/ + color: #282a36; +} + +#tags button.focused { + background-color: #44475a; + box-shadow: inset 0 -2px #f8f8f2; +} + +#tags button.urgent { + background-color: #ffb86c; +} + +#mode { + background-color: #44475a; + border-bottom: 2px solid #f8f8f2; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#mpd { + padding: 0 10px; + color: #f8f8f2; +} + +#window, +#tags { + margin: 0 4px; +} + +/* If workspaces is the leftmost module, omit left margin */ +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +/* If workspaces is the rightmost module, omit right margin */ +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +#clock { + background-color: #44475a; +} + +#battery { + background-color: #8be9fd; + color: #282a36; +} + +#battery.charging, #battery.plugged { + color: #282a36; + background-color: #50fa7b; +} + +@keyframes blink { + to { + background-color: #f8f8f2; + color: #282a36; + } +} + +#battery.critical:not(.charging) { + background-color: #ff5555; + color: #282a36; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +label:focus { + background-color: #282a36; +} + +#cpu { + background-color: #50fa7b; + color: #282a36; +} + +#memory { + color: #282a36; + background-color: #bd93f9; +} + +#disk { + background-color: #8be9fd; +} + +#backlight { + background-color: #6272a4; +} + +#network { + background-color: #6272a4; + color: #f8f8f2; +} + +#network.disconnected { + background-color: #8be9fd; + color: #282a36; +} + +#pulseaudio { + background-color: #ffb86c; + color: #282a36; +} + +#pulseaudio.muted { + background-color: #ff5555; + color: #282a36; +} + +#custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; +} + +#custom-media.custom-spotify { + background-color: #66cc99; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + color: #282a36; + background-color: #f1fa8c; +} + +#temperature.critical { + background-color: #ff5555; +} + +#tray { + background-color: #282a36; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #ffb86c; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #282a36; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf index 1682a99..a4cf20f 100644 --- a/.gnupg/gpg.conf +++ b/.gnupg/gpg.conf @@ -113,7 +113,7 @@ # servers. To see the IP address of the server actually used, you may use # the "--keyserver-options debug". -keyserver hkp://keys.gnupg.net +keyserver hkp://keys.openpgp.org #keyserver mailto:pgp-public-keys@keys.nl.pgp.net #keyserver ldap://keyserver.pgp.com diff --git a/.ssh/known_hosts b/.ssh/known_hosts index 94c3d41..e467e36 100644 --- a/.ssh/known_hosts +++ b/.ssh/known_hosts @@ -9,3 +9,5 @@ aur.archlinux.org,95.216.144.15 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAy 140.82.121.3 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 140.82.121.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 10.2.34.5 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIODBbJvBzvkTjqdOmd6kjj9N+q/AMzVYj8b5uGHFl89T +10.2.34.7 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIuSRDDg6CrpmoCK6Gps0v1mV0ATLt69nx6Az4tU1rsl +10.2.34.7 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC7koNqkejOnGh65X/vNmXtnX2IDAH1d9GEIrFji8pK0uZvebnMpwfOAVxG5Ul/LvOIuHe0iCzqm5oZKLbSQdQE= diff --git a/.zsh_alias b/.zsh_alias index 341e80f..4a794ed 100644 --- a/.zsh_alias +++ b/.zsh_alias @@ -70,7 +70,7 @@ alias tmate-obs='tmate -k tmk-ET35fx5m9cA7cxOt4jjWkSmaOy -r DustVoice' function screenkey-obs-func() { width=$(xrandr | awk '$0 ~ "*" {split($1,res,"x"); print res[1];}') height=$(xrandr | awk '$0 ~ "*" {split($1,res,"x"); print res[2];}') - screenkey --no-systray -t 2 -p fixed -s small -g $(awk -v height=$height -v width=$width 'BEGIN {printf "%.0fx%.0f+%.0f+%.0f", (width * 0.5), (height * 0.06), (width * 0.25), (height * 0.02)}') --key-mode composed --bak-mode full --mods-mode normal -f Hack --font-color "#f8f8f2" --bg-color "#44475a" --opacity "1.0" + screenkey --no-systray -t 2 -p fixed -s small -g $(awk -v height=$height -v width=$width 'BEGIN {printf "%.0fx%.0f+%.0f+%.0f", (width * 0.5), (height * 0.06), (width * 0.25), (height * 0.02)}') --key-mode composed --bak-mode full --mods-mode normal -f "Fira Code" --font-color "#f8f8f2" --bg-color "#44475a" --opacity "1.0" } alias screenkey-obs='screenkey-obs-func' @@ -93,7 +93,7 @@ alias polybar-launch="$HOME/.config/polybar/launch" # Font # === function get-font-func() { - fallback_font="Hack:size=10:antialias=true:autohint=true" + fallback_font="Fira Code:pixelsize=12:antialias=true:autohint=true" font="" if [ -x $(command -v xgetres) ]; then font=$(xgetres font || echo $fallback_font); @@ -126,7 +126,7 @@ function check-iommu-func() { alias check-iommu='check-iommu-func' function battery-monitor-func() { - watch1 -t -n 60 '( if [ $(cat /sys/class/power_supply/ACAD/online) == "1" ]; then printf "Power connected\n"; else printf "Power disconnected\n"; fi; printf "\nBattery capacity: "; cat /sys/class/power_supply/BAT1/capacity; printf "\n(Updated every 60s)"; )'; + watch -t -n 60 '( if [ $(cat /sys/class/power_supply/ACAD/online) == "1" ]; then printf "Power connected\n"; else printf "Power disconnected\n"; fi; printf "\nBattery capacity: "; cat /sys/class/power_supply/BAT1/capacity; printf "\n(Updated every 60s)"; )'; } alias battery-monitor='battery-monitor-func' @@ -192,3 +192,13 @@ alias hyperv-gpg-forward="hyperv-gpg-agent" alias hyperv-ssh-forward="hyperv-ssh-agent" alias hyperv-forward="hyperv-agents" # === + +# === +# devkitPro development +# === +function devkitPro-devkitARM() { + path=("/opt/devkitpro/devkitARM/bin" $path) +} + +alias devkitARM="devkitPro-devkitARM" +# === diff --git a/.zshenv b/.zshenv index 8c83780..a7471c0 100755 --- a/.zshenv +++ b/.zshenv @@ -38,7 +38,7 @@ export EDITOR='nvim' export SSH_AUTH_SOCK="$(gpgconf --list-dir socketdir)/S.gpg-agent.ssh" export GPG_TTY=$(tty) -export TERMINAL='st' +export TERMINAL='alacritty' export JUCE_PATH="$HOME/JUCE" @@ -50,6 +50,17 @@ export XDG_CONFIG_HOME="$HOME/.config" export WINIT_X11_SCALE_FACTOR=1 +export MOZ_ENABLE_WAYLAND=1 + if [[ -f $HOME/.zsh_alias ]]; then source $HOME/.zsh_alias fi + +# export HTTP_PROXY=http://ldiproxy.lsjv.rlp.de:8080 +# export HTTPS_PROXY=$HTTP__PROXY +# export FTP_PROXY=$HTTP__PROXY +# export NO_PROXY=svr-*,nas-*,web-*,lsjvko*,lsjvmz*,*.lsjv.rlp,10.5.*,localhost,127.0.0.1,*-ldi.rlp.de,kidz.lsjv.rlp.de,webmail.lsjv.rlp.de,webmail.lsjv.de,tickets.lsjv.rlp.de,i-doit.lsjv.rlp.de,rdweb.lsjv.rlp.de,rds.lsjv.rlp.de,rdgw.lsjv.rlp.de +# export http_proxy=$HTTP_PROXY +# export https_proxy=$HTTP_PROXY +# export ftp_proxy=$HTTP_PROXY +# export no_proxy=$NO_PROXY diff --git a/.zshrc b/.zshrc index 6b64049..36566f4 100644 --- a/.zshrc +++ b/.zshrc @@ -21,7 +21,7 @@ setopt COMPLETE_ALIASES if [[ -a $ZNAP_ZSH ]]; then ZSH_AUTOSUGGEST_USE_ASYNC="true" ZSH_AUTOSUGGEST_STRATEGY=(history) - ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=fg=5 + #ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=fg=5 ZSH_HIGHLIGHT_HIGHLIGHTERS=( main brackets ) @@ -38,12 +38,6 @@ if [[ -a $ZNAP_ZSH ]]; then znap source ohmyzsh/ohmyzsh lib/{git,theme-and-appearance,colored-man-pages,colorzie,command-not-found,history} - if [ -x "$(command -v starship)" ]; then - znap eval starship 'starship init zsh --print-full-init' - else - znap prompt dustvoice/dustvoice-zsh-theme - fi - znap source marlonrichert/zsh-hist znap source zsh-users/zsh-completions @@ -61,6 +55,12 @@ if [[ -a $ZNAP_ZSH ]]; then bindkey -M vicmd '^H' push-line-or-edit bindkey -M vicmd '^L' get-line + + if [ -x "$(command -v starship)" ]; then + znap eval starship 'starship init zsh --print-full-init' + else + znap prompt dustvoice/dustvoice-zsh-theme + fi else PS1=$'%b%n@%M %~ %(!.#.$) '