Lots of wayland progress

This commit is contained in:
Daniel Flanagan 2020-05-18 15:34:35 -05:00
parent d7af5e1d46
commit 2dcaf6790b
Signed by: lytedev
GPG key ID: 5B2020A0F9921EF4
29 changed files with 202 additions and 52 deletions

View file

@ -2,3 +2,12 @@ max-visible=5
default-timeout=30000 default-timeout=30000
background-color=#111111 background-color=#111111
border-color=#666666 border-color=#666666
font=iosevka-lyte 11
progress-color=source #33333388
# format="<b>%s</b>
default-timeout=15000
[urgency="high"]
background-color=#f92672
text-color=#111111
border-color=#f92672

View file

@ -1,26 +1,43 @@
set $mod Mod4 # TODO:
#
# + Super+r should rotate the selected group of windows.
# + Super+Control+{1-9} should control the size of the preselect space.
# + Super+Shift+b should balance the size of all selected nodes.
set $default_gap 20
set $left h set $left h
set $down j set $down j
set $up k set $up k
set $right l set $right l
set $term term
set $term kitty set $fterm floating-term
# TODO: launcher for wayland set $menu app-launcher
# set $menu app-launcher
set $menu dmenu_path | dmenu | xargs swaymsg exec --
output * bg $HOME/.wallpaper fill output * bg $HOME/.wallpaper fill
focus_wrapping no
gaps inner $default_gap
smart_borders on|no_gaps
hide_edge_borders smart_no_gaps
set $mod Mod4
bindsym Control+Space exec makoctl dismiss
# bindsym $mod+Control+Space exec makoctl invoke
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
bindsym $mod+shift+Return exec $fterm
bindsym $mod+t exec $term bindsym $mod+t exec $term
bindsym $mod+Alt+Return exec urxvt bindsym $mod+Alt+Return exec urxvt
bindsym $mod+Shift+Alt+Return exec kitty
bindsym $mod+c kill bindsym $mod+c kill
bindsym $mod+Shift+c kill # TODO: kill -9 bindsym $mod+Shift+c kill # TODO: kill -9
bindsym $mod+Space exec $menu bindsym $mod+Space exec $menu
bindsym $mod+Shift+r reload bindsym $mod+Shift+r reload
bindsym $mod+Control+Escape exit bindsym $mod+Control+Escape exit
bindsym $mod+Shift+e exit bindsym $mod+Shift+e exit
bindsym $mod+Shift+p exec pass-chooser
bindsym $mod+Control+j split v
bindsym $mod+Control+l split h
bindsym $mod+Control+f focus mode_toggle
bindsym $mod+$left focus left bindsym $mod+$left focus left
bindsym $mod+$down focus down bindsym $mod+$down focus down
@ -74,8 +91,12 @@ bindsym $mod+e layout toggle split
bindsym $mod+Shift+f fullscreen bindsym $mod+Shift+f fullscreen
bindsym $mod+f floating toggle bindsym $mod+f floating toggle
bindsym $mod+s floating disable
bindsym $mod+Alt+f focus mode_toggle bindsym $mod+Alt+f focus mode_toggle
bindsym $mod+p focus parent bindsym $mod+p focus parent
bindsym $mod+period focus child
bindsym $mod+comma focus child
bindsym $mod+tab workspace back_and_forth
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
@ -89,8 +110,14 @@ bindsym XF86AudioPrev exec playerctl previous
bindsym $mod+Shift+v exec pactl set-source-mute @DEFAULT_SOURCE@ toggle bindsym $mod+Shift+v exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym $mod+Shift+minus move scratchpad bindsym $mod+minus gaps inner current minus 5
bindsym $mod+minus scratchpad show bindsym $mod+plus gaps inner current plus 5
bindsym $mod+Control+Alt+h gaps horizontal current minus 5
bindsym $mod+Control+Alt+l gaps horizontal current plus 5
bindsym $mod+Control+Alt+j gaps vertical current minus 5
bindsym $mod+Control+Alt+k gaps vertical current plus 5
# TODO: this should also reset the horizontal and vertical gaps?
bindsym $mod+Control+equal gaps inner current set $default_gap
bindsym $mod+Control+Shift+l exec swaylock bindsym $mod+Control+Shift+l exec swaylock
@ -109,13 +136,13 @@ mode "resize" {
bindsym Escape mode "default" bindsym Escape mode "default"
} }
default_border none default_border pixel 5
for_window [app_id="^.*"] border pixel 5 for_window [app_id="floating_terminal"] floating enable
for_window [class="^.*"] border pixel 5 for_window [class="floating_terminal"] floating enable
for_window [class=".*"] layout splith
# bindsym $mod+r mode "resize" # bindsym $mod+r mode "resize"
# man 5 sway-bar
bar { bar {
swaybar_command waybar swaybar_command waybar
} }
@ -131,4 +158,7 @@ client.focused #66d9ef #66d9ef #66d9ef #66d9ef #66d9ef
client.focused_inactive #111111 #111111 #ffffff #111111 #111111 client.focused_inactive #111111 #111111 #ffffff #111111 #111111
client.unfocused #111111 #111111 #ffffff #111111 #111111 client.unfocused #111111 #111111 #ffffff #111111 #111111
exec_always makoctl reload
exec_always notify-send -a "Sway" -i ~/.wallpaper "Sway configuration loaded."
include $ENV_PATH/sway/config.d/* include $ENV_PATH/sway/config.d/*

View file

@ -263,5 +263,4 @@ super + ctrl + c
bspc rule -a '*' -o state=floating && kitty -o remember_window_size=no -o initial_window_width=66c -o initial_window_height=10c sh -c "cal -n 3 && printf 'Press [ENTER] to close.' && read" bspc rule -a '*' -o state=floating && kitty -o remember_window_size=no -o initial_window_width=66c -o initial_window_height=10c sh -c "cal -n 3 && printf 'Press [ENTER] to close.' && read"
super + ctrl + p super + ctrl + p
bspc rule -a '*' -o state=floating && \ pass-chooser
kitty -o remember_window_size=no -o initial_window_width=122c -o initial_window_height=40c sh -c "{ env FZFP_PASS_OPTS='' FZFP_HEIGHT=100% fzfp | head -n 1 | sd '\n\$' '' | clip; } &"

View file

@ -17,18 +17,8 @@ window#waybar.hidden {
opacity: 0.2; opacity: 0.2;
} }
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
window#waybar.empty { window#waybar.empty {
color: #666666; opacity: 0.2;
background-color: #111111;
} }
#workspaces button { #workspaces button {
@ -44,10 +34,20 @@ window#waybar.empty {
*/ */
} }
#workspaces button.focused { #workspaces button.visible {
background-color: #333333; background-color: #333333;
} }
#workspaces button.focused {
background-color: #66d9ef;
color: #111111;
}
#workspaces button.empty {
color: #666666;
/* background-color: #111111; */
}
#workspaces button.urgent { #workspaces button.urgent {
background-color: #eb4d4b; background-color: #eb4d4b;
} }

View file

@ -52,3 +52,5 @@ color15 #f9f8f5
color18 #333333 color18 #333333
kitty_mod ctrl+shift+alt kitty_mod ctrl+shift+alt
open_url_modifiers ctrl open_url_modifiers ctrl
wheel_scroll_multiplier 5.0
touch_scroll_multiplier 5.0

View file

@ -88,7 +88,7 @@ Plug 'sheerun/vim-polyglot' " vim plugin loa
Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language
Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language
Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface
Plug 'JakeBecker/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }} Plug 'elixir-lsp/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }}
Plug 'tpope/vim-dadbod' " vim Plug 'tpope/vim-dadbod' " vim
Plug 'lytedev/elm-vim', {'for': ['elm']} " elm lang Plug 'lytedev/elm-vim', {'for': ['elm']} " elm lang
Plug 'google/vim-jsonnet', {'for': ['jsonnet', 'libsonnet']} " jsonnet Plug 'google/vim-jsonnet', {'for': ['jsonnet', 'libsonnet']} " jsonnet

View file

@ -26,7 +26,7 @@ export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_byte
has_command fd && export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' has_command fd && export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
export LS_COLORS='ow=01;36;40' export LS_COLORS='ow=01;36;40'
export LESS="-x2" # less tab size of 2 spaces export LESS="-x2" # less tab size of 2 spaces
export TERMINAL="urxvtc" export TERMINAL="kitty"
export BROWSER="firefox-developer-edition" export BROWSER="firefox-developer-edition"
export HISTFILESIZE="10000000" # "unlimited" history export HISTFILESIZE="10000000" # "unlimited" history
export HISTSIZE="10000000" # "unlimited" history export HISTSIZE="10000000" # "unlimited" history

View file

@ -91,7 +91,7 @@ alias ......... "d ../../../../../../../.."
# tmux aliases # tmux aliases
# TODO: see if this can be worked around? # TODO: see if this can be worked around?
alias tmnew "tmux new -s" alias tmnew "tmux new -s"
alias tmls "tmux list-sessions" alias tmls "tmux list-sessions | rg --color never -o '^(.*?):.*?\(.*?\)(.*)\$' -r '\$1\$2'"
alias tmatt "tmux attach -t" alias tmatt "tmux attach -t"
alias tu "tmux attach -t utils || tmux new -s utils" alias tu "tmux attach -t utils || tmux new -s utils"
alias tdf "tmux attach -t dotfiles || tmux new -s dotfiles -c $DOTFILES_PATH" alias tdf "tmux attach -t dotfiles || tmux new -s dotfiles -c $DOTFILES_PATH"
@ -182,11 +182,6 @@ alias mail "mutt"
# fsw aliases # fsw aliases
alias fsw-mix-test 'fsw "mix test" ./**/*.{ex,exs,erl,hrl,xrl,yrl}' alias fsw-mix-test 'fsw "mix test" ./**/*.{ex,exs,erl,hrl,xrl,yrl}'
function field
not scount $argv && echo "No field index provided"; exit 1
awk "{print \$$argv[1]}"
end
# weechat aliases # weechat aliases
function chat function chat
set -l pass (pass config/weechat-passphrase | head -n 1) set -l pass (pass config/weechat-passphrase | head -n 1)

View file

@ -4,8 +4,6 @@ set -Ux XDG_CONFIG_HOME $HOME/.config
set -Ux DOTFILES_PATH $XDG_CONFIG_HOME/dotfiles set -Ux DOTFILES_PATH $XDG_CONFIG_HOME/dotfiles
set -Ux ENV_PATH $HOME/.env set -Ux ENV_PATH $HOME/.env
function has_command; command -v $argv[1] 2>&1 >/dev/null; end
source $DOTFILES_PATH/apps/shell/fish/paths.fish source $DOTFILES_PATH/apps/shell/fish/paths.fish
status --is-interactive || exit status --is-interactive || exit
@ -60,3 +58,10 @@ for cf in config.fish .hidden/config.fish
end end
mkdir -p $NOTES_PATH $USER_LOGS_PATH $SCROTS_PATH mkdir -p $NOTES_PATH $USER_LOGS_PATH $SCROTS_PATH
# start a tmux session by default if possible and we're not already in
# a terminal multiplexer
if has_command tmux && string match -v -q '*tmux*' $TERM && string match -v -q '*screen*' $TERM
tmux attach -t default || tmux new -s default
end

View file

@ -132,7 +132,10 @@ set -g @plugin "christoomey/vim-tmux-navigator"
set -g @continuum-restore "on" set -g @continuum-restore "on"
# let continuum startup on boot # let continuum startup on boot
set -g @continuum-boot "on" # NOTE: disabled this due to it starting up before sway socket is up and then
# sway commands do not work from within tmux
# TODO: maybe sway (or any wm) can start continuum?
# set -g @continuum-boot "on"
# bindings for tmux-resurrect # bindings for tmux-resurrect
set -g @resurrect-save "C-v" set -g @resurrect-save "C-v"

View file

@ -1,3 +1,7 @@
#!/usr/bin/env sh #!/usr/bin/env sh
if is_wayland; then
floating-term sh -c "launch | xargs swaymsg exec --"
else
rofi -combi-modi run,window -show combi -modi combi -sorting-method fzf --sort "$@" rofi -combi-modi run,window -show combi -modi combi -sorting-method fzf --sort "$@"
fi

11
bin/at Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env bash
[[ -z "$1" ]] && { echo "No argument provided." >&2 ; exit 1; }
d="$(date -d "${@}" +%s)"
while [[ "$d" -ge "$(date +%s)" ]]; do
_dt=$((d - $(date +%s)))
days=$((_dt / 86400))
echo -ne "\rTime Remaining: ${days}d $(date -u --date @$((_dt)) +%H:%M:%S) ";
sleep 0.1
done

View file

@ -1,11 +1,11 @@
#!/usr/bin/env sh #!/usr/bin/env bash
# TODO: detect MIME type? # TODO: detect MIME type?
# can a `clip-once` script exist building on this? # can a `clip-once` script exist building on this?
# wl-copy `-o`, xclip `-l 1`? # wl-copy `-o`, xclip `-l 1`?
if is_wayland; then if is_wayland; then
wl-copy -n wl-copy --trim-newline "$@" wl-copy -n "$@"
else else
xclip -i -sel p -f "$@" | xclip -i -sel c "$@" xclip -i -sel c "$@"
fi fi

View file

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
[[ -z "${@}" ]] && { echo "No argument provided." >&2 ; exit 1; }
d=$(($(date +%s) + $1)); d=$(($(date +%s) + $1));
echo "Countdown started at $(date)" echo "Countdown started at $(date)"

View file

@ -1,4 +1,6 @@
#!/usr/bin/env sh #!/usr/bin/env sh
has_command gawk || ( echo "No gawk."; exit 1 ) has_command gawk || { echo "No gawk." >&2 ; exit 1; }
index="${1:-1}"; shift; gawk '{print $'"${index}"'}' "$@" index="${1:-1}"
[ "$#" -lt 1 ] || shift
gawk '{print $'"${index}"'}' "$@"

21
bin/floating-term Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
# TODO: geomoetry flags?
flags=("")
case "$TERMINAL" in
kitty )
flags=(-o remember_window_size=no -o initial_window_width=122c -o initial_window_height=24c --class floating_terminal)
;;
# TODO: rxvt?
esac
if is_wayland; then
# wayland only needs app_id or class set to "floating_terminal"
: # no-op
else
bspc rule -a '*' -o state=floating
fi
"$TERMINAL" "${flags[@]}" "$@"

View file

@ -10,4 +10,3 @@ cd "$FZFP_PASS_DIR" || { echo "Could not cd to $FZFP_PASS_DIR" >&2; exit 1; }
pp="$(fd gpg | sd ".gpg" "" | fzf --height "$FZFP_HEIGHT" --prompt "$FZFP_PROMPT")" pp="$(fd gpg | sd ".gpg" "" | fzf --height "$FZFP_HEIGHT" --prompt "$FZFP_PROMPT")"
"${FZFP_PASS_CMD}" $FZFP_PASS_OPTS "$@" "$pp" "${FZFP_PASS_CMD}" $FZFP_PASS_OPTS "$@" "$pp"
cd - >/dev/null || return 1 cd - >/dev/null || return 1

View file

@ -1,3 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
loginctl show-session "$(loginctl | grep $(whoami) | field 1)" -p Type | grep -i wayland >/dev/null loginctl show-session "$(loginctl | grep "$(whoami)" | tail -n 1 | field 1)" -p Type | grep -i wayland >/dev/null

15
bin/launch Executable file
View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
LAUNCHER_HISTORY_FILE="$ENV_PATH/launch.log"
touch "$LAUNCHER_HISTORY_FILE"
app="$(
< "$LAUNCHER_HISTORY_FILE" \
awk 'NF{NF--};1' | \
cat - <(dmenu_path) | \
sort | uniq -c | sort -nr | \
sd '^\s+' '' | \
cut -d' ' -f2- | \
fzf
)"
echo "$app $(date +%s)" >> "$LAUNCHER_HISTORY_FILE"
echo "$app"

View file

@ -60,6 +60,7 @@ pacaur --needed -S \
fortune-mod fortune-mod-archlinux `# Fortune` \ fortune-mod fortune-mod-archlinux `# Fortune` \
diff-so-fancy `# Fancy Diffs` \ diff-so-fancy `# Fancy Diffs` \
oath-toolkig `# One-Time Passwords` \ oath-toolkig `# One-Time Passwords` \
sysstat `# System Statistics` \
--noconfirm --noedit --noconfirm --noedit
# install rxvt-unicode script for resizing font on-the-fly # install rxvt-unicode script for resizing font on-the-fly

15
bin/pass-chooser Executable file
View file

@ -0,0 +1,15 @@
#!/usr/bin/env sh
# TODO: can we use fzfp here?
floating-term \
bash -c "
cd $HOME/.password-store
fd gpg |
sd '.gpg\$' '' |
fzf --height 100% --prompt 'fzf-pass> ' > /tmp/fzfp-key
pass \"\$(cat /tmp/fzfp-key)\" |
head -n 1 |
sd '\s+\$' '' |
nohup clip &>/dev/null &
notify-send -a 'pass' 'Password in Clipboard'
"

View file

@ -6,6 +6,7 @@
export XDG_CONFIG_HOME="$HOME/.config" export XDG_CONFIG_HOME="$HOME/.config"
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles" export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
export ENV_PATH="$HOME/.env" export ENV_PATH="$HOME/.env"
export TERMINAL="kitty"
# TODO: better logic for auto-detecting alternative home directories? # TODO: better logic for auto-detecting alternative home directories?
# 1. check dirname(basename $HOME)) matches username # 1. check dirname(basename $HOME)) matches username

23
bin/resource-usage Executable file
View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
# TODO: radeontop can continuously dump to a file, would be fast to just keep
# last line and have this run in the background
gpu_usage="$(radeontop -l 1 -d - | rg --color never -o "gpu (\d+.\d+)" -r '$1')"
gpu_temp="$(sensors | rg 'amdgpu.*mem:\s+\+(\d+\.\d+)' --multiline-dotall --multiline -o -r '$1')"
# NOTE: this is all cpu usage since boot:
# cpu_usage_data_snapshot="$(cat /proc/stat | head -n 1 | cut -d ' ' -f 2- | sd '^\s+' '')"
# function cpu_usage_data() {
# echo "$cpu_usage_data_snapshot"
# }
# cpu_usage="$(bc -l <<< "100-(100*($(cpu_usage_data | awk '{printf $4}').0/$(cpu_usage_data | sd " " "+" | bc).0))")"
mpstat_samples=2
mpstat_sample_seconds=1
cpu_idle="$(mpstat --dec=2 "$mpstat_sample_seconds" "$mpstat_samples" | tail -n 1 | field 12)"
cpu_usage="$(echo "100.0-$cpu_idle" | bc -l)"
cpu_temp="0.0"
printf "GPU [USAGE: %6.2f%%] [THERMALS: %6.2f°C]\n" "$gpu_usage" "$gpu_temp"
printf "CPU [USAGE: %6.2f%%] [THERMALS: %6.2f°C]\n" "$cpu_usage" "$cpu_temp"

4
bin/sw
View file

@ -1,8 +1,11 @@
#!/usr/bin/env bash #!/usr/bin/env bash
d="$(date +%s)" d="$(date +%s)"
_dt=$(($(date +%s) - d))
echo "Stopwatch started $(date)" echo "Stopwatch started $(date)"
trap 'echo -ne "\nStopwatch stopped at $(date)\n" && exit 0' SIGINT
while true; do while true; do
_dt=$(($(date +%s) - d)) _dt=$(($(date +%s) - d))
days=$((_dt / 86400)) days=$((_dt / 86400))
@ -12,4 +15,3 @@ done
# TODO: add "lap" capabilities? # TODO: add "lap" capabilities?
echo -ne "\rStopwatch stopped at $(date)\n"

View file

@ -1,3 +1,12 @@
output DP-1 res 3440x1440@100Hz pos 0 0 output DP-1 res 3440x1440@100Hz pos 0 0
output HDMI-A-1 res 2560x1440@60Hz pos 3440 -720 output DP-3 res 2560x1440@60Hz pos -1440 0 transform 270
output HDMI-A-1 transform 270 output DP-4 res 2560x1440@60Hz pos 3440 0 transform 270
workspace 1 output DP-1
workspace 2 output DP-1
workspace 3 output DP-1
workspace 4 output DP-4
workspace 5 output DP-4
workspace 6 output DP-4
workspace 7 output DP-3
workspace 8 output DP-3
workspace 9 output DP-3

View file

@ -1,7 +1,7 @@
#define bar_font_size 12 #define bar_font_size 12
# TODO: this needs fixing # TODO: this needs fixing
polybar.primary_font: iosevka\-lyte:pixelsize=bar_font_size;1 polybar.primary_font: iosevka\-lyte:pixelsize=bar_font_size;1
bspwm.num_desktops_per_monitor: 8 bspwm.num_desktops_per_monitor: 4
bspwm.reverse_desktop_ordering: 0 bspwm.reverse_desktop_ordering: 0
bspwm.reverse_monitor_desktops: 0 bspwm.reverse_monitor_desktops: 0
polybar.display_monitor: DisplayPort-0 polybar.display_monitor: DisplayPort-0

View file

@ -3,6 +3,8 @@ output HDMI-A-1 res 2560x1440@60Hz pos 0 0
output HDMI-A-1 transform 270 output HDMI-A-1 transform 270
output DP-1 res 3440x1440@100Hz pos 1440 1120 output DP-1 res 3440x1440@100Hz pos 1440 1120
bindswitch lid:toggle exec swaylock
# TODO: setup trackpad/gestures # TODO: setup trackpad/gestures
### Input configuration ### Input configuration
# #