Huge refactoring; Switch back to fish shell; Dip toes into wayland; Update dmenu stuff

This commit is contained in:
David Holland 2022-09-06 16:29:06 +02:00
parent dc5e2049c7
commit 1d73a2b920
Signed by: DustVoice
GPG Key ID: 47068995A14EDCA9
63 changed files with 1434 additions and 41 deletions

View File

@ -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

4
.config/.gitignore vendored
View File

@ -8,7 +8,11 @@
!/alacritty/
!/bspwm/
!/dmenu/
!/dmenu-wl/
!/fish/
!/nitrogen/
!/polybar/
!/rustfmt/
!/river/
!/sxhkd/
!/waybar/

View File

@ -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

8
.config/dmenu-wl/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
/*
/*/
!/.gitignore
!/dmenu_bspwm_desktop
!/dmenu_bspwm_desktop_content
!/dmenu_bspwm_monitor
!/dmenu_run_with_aliases

View File

@ -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} &

View File

@ -2,7 +2,6 @@
/*/
!/.gitignore
!/dmenu_bspwm_desktop
!/dmenu_bspwm_desktop_content
!/dmenu_bspwm_monitor
!/dmenu_run_with_aliases
!/bspwm
!/run
!/run_zsh

142
.config/dmenu/bspwm Executable file
View File

@ -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

16
.config/dmenu/run Executable file
View File

@ -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

View File

@ -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} &

11
.config/fish/.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
/*
/*/
!/.gitignore
!/config.fish
!/fish_variables
!/completions/
!/conf.d/
!/functions

View File

@ -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)?"

View File

@ -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

View File

@ -0,0 +1 @@
set -x PATH "$HOME/.local/share/gem/ruby/3.0.0/bin" "$HOME/.dotnet/tools" $PATH

12
.config/fish/config.fish Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
function ea --wraps='exa -lah' --description 'alias ea exa -lah'
exa -lah $argv;
end

View File

@ -0,0 +1,3 @@
function ee --wraps='exa -lh' --description 'alias ee exa -lh'
exa -lh $argv;
end

View File

@ -0,0 +1,3 @@
function es --wraps=exa --description 'alias es exa'
exa $argv;
end

View File

@ -0,0 +1,3 @@
function esa --wraps='exa -a' --description 'alias esa exa -a'
exa -a $argv;
end

View File

@ -0,0 +1,3 @@
function firefox-private --wraps='firefox --private-window' --description 'alias firefox-private=firefox --private-window'
firefox --private-window $argv;
end

View File

@ -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

View File

@ -0,0 +1,3 @@
function fish_user_key_bindings
fish_vi_key_bindings
end

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
function la --wraps='ls -lah' --description 'alias la=ls -lah'
ls -lah $argv;
end

View File

@ -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

View File

@ -0,0 +1,3 @@
function ll --wraps='ls -lh' --description 'alias ll=ls -lh'
ls -lh $argv;
end

View File

@ -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

View File

@ -0,0 +1,3 @@
function ls --description 'alias ls=ls --color=tty'
command ls --color=tty $argv;
end

View File

@ -0,0 +1,3 @@
function lsa --wraps='ls -a' --description 'alias lsa=ls -a'
ls -a $argv;
end

View File

@ -0,0 +1,3 @@
function octave-gui --wraps='octave --force-gui' --description 'alias octave-gui=octave --force-gui'
octave --force-gui $argv;
end

View File

@ -0,0 +1,3 @@
function pianoteq --wraps=pianoteq\\\ 7 --description alias\ pianoteq=pianoteq\\\ 7
pianoteq\ 7 $argv;
end

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,3 @@
function resolve --wraps=/opt/resolve/bin/resolve --description 'alias resolve=/opt/resolve/bin/resolve'
/opt/resolve/bin/resolve $argv;
end

View File

@ -0,0 +1,3 @@
function sabaki --wraps=/opt/Sabaki/sabaki --description 'alias sabaki=/opt/Sabaki/sabaki'
/opt/Sabaki/sabaki $argv;
end

View File

@ -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

View File

@ -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

View File

@ -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

@ -1 +1 @@
Subproject commit f34eee43999373028f67964e1335bf49e0bd700a
Subproject commit 424a3a58af34da0f2d41a3558050e3839aaa15b2

View File

@ -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

166
.config/river/init Executable file
View File

@ -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

View File

@ -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

132
.config/waybar/config Normal file
View File

@ -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": "<span style=\"italic\">{}</span>"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"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
// }
}

View File

@ -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 {
}

261
.config/waybar/style.css Normal file
View File

@ -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);
}

View File

@ -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

View File

@ -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=

View File

@ -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"
# ===

13
.zshenv
View File

@ -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

14
.zshrc
View File

@ -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 %~
%(!.#.$) '