Squashed commit of the following:
commit74cc8fa92e
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Jan 24 12:45:49 2020 -0600 MIC SCRIPT commitdbd88dde4b
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Jan 23 12:38:19 2020 -0600 Mic script, amd stuff, more fish fixes commitdadb7da642
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Jan 23 09:51:03 2020 -0600 Remove more generated fish stuff, more fixes commitb09a25cc17
Author: Daniel Flanagan <daniel@lytedev.io> Date: Wed Jan 22 17:25:47 2020 -0600 More fixes to various things commit58f6626280
Author: Daniel Flanagan <daniel@lytedev.io> Date: Wed Jan 22 08:34:12 2020 -0600 Updates commit00e919f7f5
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 14:28:45 2020 -0600 Fix notes and add vim pager commit5100983350
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 14:01:06 2020 -0600 More fixes and cleanup commit85eab2155c
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 13:09:31 2020 -0600 More notes commitda496b7f0c
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 12:43:55 2020 -0600 Maybe actually fix colors? commit3c11353256
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 12:32:23 2020 -0600 Colors fixed? commitf2a5060e7d
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 11:40:26 2020 -0600 Things commitf44d0d5479
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 10:54:09 2020 -0600 Kitty colors commit5f0fa76a67
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 10:49:06 2020 -0600 More updates for fish migration commit5b05be9fe7
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 09:14:08 2020 -0600 Nah commitfe0f1d8e32
Merge:52fe38f
205c12a
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 09:13:09 2020 -0600 Merge branch 'dev' of ssh://git.lyte.dev:2222/lytedev/dotfiles into dev commit52fe38f42a
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 20 09:12:52 2020 -0600 More fish fixes commit205c12a051
Author: Daniel Flanagan <daniel@lytedev.io> Date: Sat Jan 18 23:15:13 2020 -0600 WIP commitb73c4b26a4
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Jan 17 10:36:20 2020 -0600 Remove debug code, fix asdf references for fish commitd6ecaf88be
Merge:2e6b90b
46793bb
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Jan 17 10:34:01 2020 -0600 Merge remote-tracking branch 'origin/lappy' into dev commit2e6b90bed3
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Jan 17 10:26:00 2020 -0600 Pulsemixer > pavucontrol and some sway fixes commit46793bb735
Author: Daniel Flanagan <daniel@lyte.dev> Date: Fri Jan 17 03:02:53 2020 -0600 Whew commit26f32a0c6b
Author: Daniel Flanagan <daniel@lyte.dev> Date: Thu Jan 16 17:01:59 2020 -0600 WIP fish configuration commitfb0389eea4
Author: Daniel Flanagan <daniel@lyte.dev> Date: Thu Jan 16 13:30:35 2020 -0600 Fiiiish commit2f1af8411a
Author: Daniel Flanagan <daniel@lyte.dev> Date: Thu Jan 16 13:28:23 2020 -0600 Stuff commitba8ec1f524
Author: Daniel Flanagan <daniel@lyte.dev> Date: Thu Jan 9 19:02:31 2020 -0600 Fix some dock stuff, erlang with wx commitd80a823ce2
Merge:36d58e0
5195a85
Author: Daniel Flanagan <daniel@lytedev.io> Date: Wed Jan 8 13:32:56 2020 -0600 Merge remote-tracking branch 'origin/lappy' into wip-refactor commit36d58e037f
Author: Daniel Flanagan <daniel@lytedev.io> Date: Wed Jan 8 10:59:45 2020 -0600 Testing signed commits commit5195a855a6
Author: Daniel Flanagan <daniel@lyte.dev> Date: Tue Jan 7 19:38:43 2020 -0600 Bars commit1acb330746
Author: Daniel Flanagan <daniel@lyte.dev> Date: Tue Jan 7 11:36:12 2020 -0600 SWAAAAAY commitf547e5ec28
Merge:aa29acb
b1709d1
Author: Daniel Flanagan <daniel@lyte.dev> Date: Tue Jan 7 10:59:24 2020 -0600 Merge remote-tracking branch 'origin/wip-refactor' into lappy commitb1709d1e94
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Jan 7 10:59:22 2020 -0600 Stuff commitaa29acb364
Merge:66cc873
2456dad
Author: Daniel Flanagan <daniel@lyte.dev> Date: Tue Jan 7 10:58:29 2020 -0600 Merge remote-tracking branch 'origin/wip-refactor' into lappy commit2456dad7de
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Jan 6 11:15:30 2020 -0600 Zstd commit66cc8734a8
Author: Daniel Flanagan <daniel@lyte.dev> Date: Tue Dec 31 21:48:49 2019 -0600 Fix sudo setup and use fancy email for git commita05c02e1fb
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Dec 31 17:03:22 2019 -0600 Fancy colors commit026220fe26
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Dec 31 16:55:45 2019 -0600 SMTP tools commite2a854df65
Merge:0d0e131
825d91b
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Dec 31 15:07:09 2019 -0600 Merge branch 'wip-refactor' into lappy commit0d0e131714
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Dec 31 14:26:44 2019 -0600 Stuff commit825d91b462
Author: Daniel Flanagan <daniel@lytedev.io> Date: Tue Dec 31 10:15:01 2019 -0600 Utility updates commitae350894af
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Dec 30 10:02:14 2019 -0600 Lul. commitea5debe38c
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Dec 16 17:21:44 2019 -0600 WIP chat system commitc40fe94b70
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Dec 16 09:57:21 2019 -0600 Add weechat config commit76e8a68c34
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Dec 16 09:51:21 2019 -0600 Preparing for weechat stuf commit25aecdc139
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Dec 13 11:32:15 2019 -0600 Goodies? commit8d1e86feb4
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 12 13:31:18 2019 -0600 Logging for pipelines? commitb81bdf6abd
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 12 13:17:20 2019 -0600 errors break things? commit6f7d80d761
Merge:7659442
bc5ce9e
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 12 13:04:52 2019 -0600 Merge branch 'master' of ssh://git.lyte.dev:2222/lytedev/dotfiles commit76594427ff
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 12 13:00:03 2019 -0600 Pipelines! commit972508e74d
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 12 11:02:24 2019 -0600 WIP pipeline commit898848669c
Author: Daniel Flanagan <daniel@lytedev.io> Date: Fri Dec 6 10:08:42 2019 -0600 Archive commit16895af798
Author: Daniel Flanagan <daniel@lytedev.io> Date: Thu Dec 5 16:09:52 2019 -0600 Helpful bins commit3a8eb5d475
Author: Daniel Flanagan <daniel@lytedev.io> Date: Mon Dec 2 09:31:28 2019 -0600 Move a lot of stuff around
This commit is contained in:
parent
bc5ce9e725
commit
2dda9880d5
180 changed files with 4020 additions and 1164 deletions
17
.gitignore
vendored
17
.gitignore
vendored
|
@ -1,9 +1,18 @@
|
|||
colors/gen/vendor
|
||||
colors/gen/tmp
|
||||
*.lock
|
||||
*.log
|
||||
*.pid
|
||||
*.tmp
|
||||
*.secret
|
||||
/.repositories
|
||||
/.env/
|
||||
|
||||
# TODO: should be unnecessary once color generation is homegrown
|
||||
/colors/gen/vendor
|
||||
/colors/gen/tmp
|
||||
|
||||
# keep the pipelines but hide their results
|
||||
/bin/pipelines/*/*/*
|
||||
|
||||
# a place to keep secrets per-env
|
||||
/env/*/.hidden
|
||||
|
||||
# ... and a place to keep shared secrets
|
||||
/env/.hidden
|
||||
|
|
3
Makefile
3
Makefile
|
@ -1,7 +1,6 @@
|
|||
MAKEFILE_PATH ?= $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
ALERT_AGREEMENT_FILE ?= "$(MAKEFILE_PATH)/.agreed-to-erasing-files.lock"
|
||||
|
||||
default: install
|
||||
|
||||
install:
|
||||
./setup
|
||||
cd ${MAKEFILE_PATH} && ./setup.bash
|
||||
|
|
|
@ -1,21 +1,17 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
BORDER_WIDTH=5 # change in bspwmrc
|
||||
export WINDOW_GAP=25
|
||||
DESKTOPS=(dev web gfx env play chat misc mon out util)
|
||||
export WINDOW_GAP=0
|
||||
NUM_DESKTOPS=10
|
||||
DESKTOPS=$(seq "$NUM_DESKTOPS")
|
||||
|
||||
BSPWM_MONITORS=$(bspc query -M | tac)
|
||||
MONITOR_COUNT=$(echo "${BSPWM_MONITORS}" | wc -w | awk '{ printf $1 }')
|
||||
NUM_DESKTOPS=${#DESKTOPS[@]}
|
||||
MONITOR_COUNT=$(<<< "$BSPWM_MONITORS" wc -w | awk '{ printf $1 }')
|
||||
PER_MONITOR=$((NUM_DESKTOPS / MONITOR_COUNT))
|
||||
REVERSE_DESKTOP_ORDERING=0
|
||||
REVERSE_DESKTOP_ORDERING=${REVERSE_DESKTOP_ORDERING:-0}
|
||||
|
||||
# allow a per-device config to override options
|
||||
if [ -f "$EDFP/bspwm" ]; then
|
||||
source "$EDFP/bspwm"
|
||||
fi
|
||||
. maybe_source_env_file bspwm
|
||||
|
||||
bspc config normal_border_color "$(xrdb -query | sed -ne 's/.*background:\s*//p')"
|
||||
bspc config normal_border_color "$(xrdb -query | sed -ne 's/.*background:\s*//p')"
|
||||
bspc config focused_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
|
||||
bspc config active_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
|
||||
bspc config presel_feedback_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
|
||||
|
@ -26,34 +22,29 @@ bspc config gapless_monocle true
|
|||
bspc config pointer_modifier "mod4"
|
||||
bspc config remove_unplugged_monitors true
|
||||
bspc config remove_disabled_monitors true
|
||||
|
||||
bspc config window_gap "$WINDOW_GAP"
|
||||
bspc config window_gap "$WINDOW_GAP"
|
||||
|
||||
bspc rule -a "*" split_dir=right
|
||||
|
||||
i=1
|
||||
for mon in ${BSPWM_MONITORS}; do
|
||||
for mon in $BSPWM_MONITORS; do
|
||||
max=$((i + PER_MONITOR - 1))
|
||||
screens=
|
||||
for j in $(seq $i $max); do
|
||||
ind=${DESKTOPS[$((j - 1))]}
|
||||
screens="${screens}${ind} "
|
||||
screens="${screens}${j} "
|
||||
done
|
||||
bspc monitor "$mon" -d $screens
|
||||
i=$((max + 1))
|
||||
done
|
||||
|
||||
if [[ $REVERSE_DESKTOP_ORDERING -eq 1 ]]; then
|
||||
if [ $REVERSE_DESKTOP_ORDERING -eq 1 ]; then
|
||||
prev_mon=
|
||||
for mon in ${BSPWM_MONITORS}; do
|
||||
if [[ ! -z $prev_mon ]]; then
|
||||
if [ ! -z $prev_mon ]; then
|
||||
bspc monitor "$mon" --swap "$prev_mon"
|
||||
fi
|
||||
prev_mon="$mon"
|
||||
done
|
||||
fi
|
||||
|
||||
# allow a per-device config to override options
|
||||
if [ -f "$EDFP/bspwm-after" ]; then
|
||||
source "$EDFP/bspwm-after"
|
||||
fi
|
||||
. maybe_source_env_file bspwm-after
|
26
apps/de/bspwm/rc
Executable file
26
apps/de/bspwm/rc
Executable file
|
@ -0,0 +1,26 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
NO_COMPTON=1
|
||||
START_BAR=1
|
||||
BAR_COMMAND="startbar"
|
||||
|
||||
BSPWM_STATE_FILE="$HOME/.bspwm_state"
|
||||
|
||||
if [ -e "$BSPWM_STATE" ] ; then
|
||||
bspc wm -l "$BSPWM_STATE"
|
||||
rm "$BSPWM_STATE"
|
||||
fi
|
||||
|
||||
export BORDER_WIDTH=5
|
||||
. "$DOTFILES_PATH/apps/de/bspwm/config"
|
||||
|
||||
[ -f "$DOTFILES_PATH/apps/de/x/loadresources" ] && "$DOTFILES_PATH/apps/de/x/loadresources"
|
||||
[ -f "$HOME/.fehbg" ] && "$HOME/.fehbg" &
|
||||
[ "$NO_COMPTON" -ne 1 ] && has_command compton && compton &
|
||||
[ "$START_BAR" -eq 1 ] && has_command "${BAR_COMMAND}" && "${BAR_COMMAND}" &
|
||||
has_command urxvtd && urxvtd &
|
||||
has_command dunst && dunst &
|
||||
has_command sxhkd && sxhkd -m -1 &
|
||||
has_command unclutter && unclutter &
|
||||
|
||||
bspc wm -o
|
3
apps/de/bspwm/wmstart
Executable file
3
apps/de/bspwm/wmstart
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
bspwm
|
|
@ -1,3 +1,3 @@
|
|||
gtk-icon-theme-name = "elementary"
|
||||
gtk-theme-name = "Arc-Dark"
|
||||
gtk-font-name = "Iosevka 9"
|
||||
gtk-font-name = "Iosevka Type 10"
|
|
@ -1,5 +1,5 @@
|
|||
[Settings]
|
||||
gtk-icon-theme-name = elementary
|
||||
gtk-theme-name = Arc-Dark
|
||||
gtk-font-name = Iosevka 9
|
||||
gtk-font-name = Iosevka Type 10
|
||||
gtk-application-prefer-dark-theme = true
|
|
@ -5,4 +5,5 @@ Section "InputClass"
|
|||
MatchIsTouchpad "on"
|
||||
Option "Tapping" "on"
|
||||
Option "NaturalScrolling" "true"
|
||||
Option "DisableWhileTyping" "false"
|
||||
EndSection
|
4
apps/de/mako/config
Normal file
4
apps/de/mako/config
Normal file
|
@ -0,0 +1,4 @@
|
|||
max-visible=5
|
||||
default-timeout=30000
|
||||
background-color=#111111
|
||||
border-color=#666666
|
|
@ -102,16 +102,16 @@ format-mounted-prefix-foreground = ${colors.icon}
|
|||
; ########################### ;
|
||||
|
||||
[module/bspwm]
|
||||
ws-icon-0 = dev;
|
||||
ws-icon-1 = web;
|
||||
ws-icon-2 = gfx;
|
||||
ws-icon-3 = env;
|
||||
ws-icon-4 = play;
|
||||
ws-icon-5 = chat;
|
||||
ws-icon-6 = out;
|
||||
ws-icon-7 = mon;
|
||||
ws-icon-8 = misc;
|
||||
ws-icon-9 = util;
|
||||
ws-icon-0 = 1;
|
||||
ws-icon-1 = 2;
|
||||
ws-icon-2 = 3;
|
||||
ws-icon-3 = 4;
|
||||
ws-icon-4 = 5;
|
||||
ws-icon-5 = 6;
|
||||
ws-icon-6 = 7;
|
||||
ws-icon-7 = 8;
|
||||
ws-icon-8 = 9;
|
||||
ws-icon-9 = 10;
|
||||
ws-icon-default = ♟
|
||||
|
||||
; misc icon:
|
||||
|
@ -387,7 +387,7 @@ margin-bottom = ${env:WINDOW_GAP:0}
|
|||
|
||||
[module/microphone]
|
||||
type = custom/script
|
||||
exec = $DOTFILES_PATH/de/bar/mic.bash
|
||||
exec = $DOTFILES_PATH/apps/de/polybar/mic.sh
|
||||
tail = true
|
||||
format = <label>
|
||||
label-foreground = ${colors.icon}
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
pidfile="/var/run/user/$UID/polybar-mic-script.pid"
|
||||
pidfile="/var/run/user/$(id -u)/polybar-mic-script.sh.pid"
|
||||
|
||||
if [ -e "$pidfile" ]; then
|
||||
kill "$(cat "${pidfile}")" > /dev/null 2>&1
|
||||
|
@ -13,9 +13,11 @@ cleanup() {
|
|||
|
||||
print_status() {
|
||||
if amixer get Capture | grep -q '\[off\]'; then
|
||||
echo ""
|
||||
# red means recording
|
||||
echo "%{F$(xrdb -query | grep -Po 'color4:.*#\K\w[0-9a-f]+')}"
|
||||
else
|
||||
echo " "
|
||||
# blue means nobody can hear you scream
|
||||
echo "%{F$(xrdb -query | grep -Po 'color1:.*#\K\w[0-9a-f]+')}"
|
||||
fi
|
||||
}
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
export BAR_MONITOR="$(polybar --list-monitors | tail -n 1 | sed -n 's/^\s*\(.*\):.*$/\1/p')"
|
||||
# export BAR_MONITOR="$(polybar --list-monitors | tail -n 2 | head -n 1 | sed -n 's/^\s*\(.*\):.*$/\1/p')"
|
||||
export BAR_HEIGHT=40
|
||||
export BAR_ON_TOP=0
|
||||
export BAR_SIDE_MARGIN=200
|
||||
export BAR_SIDE_MARGIN=0
|
||||
|
||||
export BAR_FONT="${BAR_FONT:-$(xrdb -query | sed -ne 's/.*font:\s*xft:\([^:]*\)\:.*$/\1/p' | head -n 1)}"
|
||||
export BAR_FONT="${BAR_FONT:-$(xrdb -query | sed -ne 's/.*font:\s*xft:\([^:]*\)\:.*$/\1/p' | head -n 1)}"
|
||||
export BAR_ICON_FONT="${BAR_ICON_FONT:-"Font Awesome 5 Free"}"
|
||||
export BAR_FONT_SIZE="${BAR_FONT_SIZE:-$(xrdb -query | sed -ne 's/.*font:\s*xft:[^-,]*\=\([0-9]*\).*$/\1/p' | head -n 1)}"
|
||||
export BAR_ICON_FONT_SIZE="${BAR_ICON_FONT_SIZE:-$((BAR_FONT_SIZE))}"
|
||||
|
@ -21,11 +21,7 @@ export BAR_BOTTOM="false"
|
|||
export BAR_VERTICAL_MARGIN=0
|
||||
export POS_Y=0
|
||||
|
||||
# allow a per-device config to override options
|
||||
echo "$EDFP"
|
||||
if [ -f "$EDFP/bar" ]; then
|
||||
source "$EDFP/bar"
|
||||
fi
|
||||
. maybe_source_env_file polybar
|
||||
|
||||
export MONITOR_WIDTH=$(xrandr | grep "^$BAR_MONITOR " | grep -Po ' \d+' | head -n 1)
|
||||
|
||||
|
@ -45,12 +41,12 @@ fi
|
|||
|
||||
if [ "$BAR_ON_TOP" -eq 1 ]; then
|
||||
export BAR_BOTTOM="false"
|
||||
export POS_Y=$GAP
|
||||
export POS_Y="$GAP"
|
||||
bspc config -m "${BAR_MONITOR}" top_padding "$EHEIGHT"
|
||||
bspc config -m "${BAR_MONITOR}" bottom_padding "0"
|
||||
else
|
||||
export BAR_BOTTOM="true"
|
||||
export POS_Y=$GAP
|
||||
export POS_Y="$GAP"
|
||||
bspc config -m "${BAR_MONITOR}" top_padding "0"
|
||||
bspc config -m "${BAR_MONITOR}" bottom_padding "$EHEIGHT"
|
||||
fi
|
131
apps/de/sway/config
Normal file
131
apps/de/sway/config
Normal file
|
@ -0,0 +1,131 @@
|
|||
set $mod Mod4
|
||||
|
||||
set $left h
|
||||
set $down j
|
||||
set $up k
|
||||
set $right l
|
||||
|
||||
set $term kitty
|
||||
# TODO: launcher for wayland
|
||||
# set $menu app-launcher
|
||||
set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||
|
||||
output * bg $HOME/.wallpaper fill
|
||||
|
||||
# TODO: configured displays?
|
||||
output eDP-1 res 3200x1800 pos 0 0 scale 2
|
||||
# output DP-3 res 3440x1440 pos 1600 0
|
||||
|
||||
### Input configuration
|
||||
#
|
||||
# Example configuration:
|
||||
#
|
||||
#input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||
# dwt enabled
|
||||
# tap enabled
|
||||
# natural_scroll enabled
|
||||
# middle_emulation enabled
|
||||
#}
|
||||
#
|
||||
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||
# Read `man 5 sway-input` for more information about this section.
|
||||
|
||||
bindsym $mod+Return exec $term
|
||||
bindsym $mod+t exec $term
|
||||
bindsym $mod+c kill
|
||||
bindsym $mod+Space exec $menu
|
||||
bindsym $mod+Shift+r reload
|
||||
bindsym $mod+Control+Escape exit
|
||||
bindsym $mod+Shift+e exit
|
||||
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# TODO: this should nudge if floating?
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
floating_modifier $mod normal
|
||||
|
||||
bindsym $mod+1 workspace 1
|
||||
bindsym $mod+2 workspace 2
|
||||
bindsym $mod+3 workspace 3
|
||||
bindsym $mod+4 workspace 4
|
||||
bindsym $mod+5 workspace 5
|
||||
bindsym $mod+6 workspace 6
|
||||
bindsym $mod+7 workspace 7
|
||||
bindsym $mod+8 workspace 8
|
||||
bindsym $mod+9 workspace 9
|
||||
bindsym $mod+0 workspace 10
|
||||
|
||||
bindsym $mod+Shift+1 move container to workspace 1
|
||||
bindsym $mod+Shift+2 move container to workspace 2
|
||||
bindsym $mod+Shift+3 move container to workspace 3
|
||||
bindsym $mod+Shift+4 move container to workspace 4
|
||||
bindsym $mod+Shift+5 move container to workspace 5
|
||||
bindsym $mod+Shift+6 move container to workspace 6
|
||||
bindsym $mod+Shift+7 move container to workspace 7
|
||||
bindsym $mod+Shift+8 move container to workspace 8
|
||||
bindsym $mod+Shift+9 move container to workspace 9
|
||||
bindsym $mod+Shift+0 move container to workspace 10
|
||||
|
||||
bindsym $mod+b splith
|
||||
bindsym $mod+v splitv
|
||||
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
bindsym $mod+Shift+f fullscreen
|
||||
bindsym $mod+f floating toggle
|
||||
bindsym $mod+Alt+f focus mode_toggle
|
||||
bindsym $mod+p focus parent
|
||||
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
mode "resize" {
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
}
|
||||
|
||||
default_border none
|
||||
|
||||
# bindsym $mod+r mode "resize"
|
||||
|
||||
# man 5 sway-bar
|
||||
bar {
|
||||
swaybar_command waybar
|
||||
}
|
||||
|
||||
input * {
|
||||
repeat_delay 200
|
||||
repeat_rate 60
|
||||
}
|
||||
|
||||
focus_follows_mouse no
|
||||
|
||||
# include /etc/sway/config.d/*
|
||||
include $ENV_PATH/sway/config.d/*
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
killall -9 urxvtd
|
||||
urxvtd &
|
||||
# killall -9 urxvtd
|
||||
# urxvtd &
|
||||
|
||||
# key repeat
|
||||
export WLC_REPEAT_DELAY=200
|
||||
|
@ -14,5 +14,12 @@ export XKB_DEFAULT_OPTIONS=caps:escape
|
|||
export QT_QPA_PLATFORM=wayland-egl
|
||||
export CLUTTER_BACKEND=wayland
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
|
||||
# configuration flag for some of my dotfiles scripts
|
||||
export IS_WAYLAND=1
|
||||
|
||||
mako &
|
||||
killall -9 dunst &> /dev/null
|
||||
|
||||
sway
|
|
@ -5,7 +5,7 @@ set $down j
|
|||
set $up k
|
||||
set $right l
|
||||
|
||||
set $term termite
|
||||
set $term kitty
|
||||
set $menu app-launcher
|
||||
|
||||
output * bg /home/daniel/usr/.wallpaper fill
|
|
@ -67,7 +67,7 @@ super + {Left,Down,Up,Right}
|
|||
|
||||
# focus/move node to the selected desktop
|
||||
super + {_,shift + }{1-9,0}
|
||||
bspc {desktop -f,node -d} ^{1-9,10}
|
||||
bspc {desktop -f,node -d} {1-9,10}
|
||||
|
||||
# # focus clicked node
|
||||
~button1
|
||||
|
@ -152,7 +152,7 @@ super + ctrl + b
|
|||
|
||||
# spawn a transparent node
|
||||
super + alt + t
|
||||
urxvtc && compton-trans -c -o 0
|
||||
"$TERMINAL" && compton-trans -c -o 0
|
||||
|
||||
# make current node transparent
|
||||
super + t
|
||||
|
@ -168,7 +168,7 @@ super + shift + t
|
|||
|
||||
# spawn a terminal
|
||||
super + Return
|
||||
urxvtc
|
||||
"$TERMINAL"
|
||||
|
||||
# spawn a rock-solid and reliable terminal for when I break things
|
||||
super + alt + Return
|
||||
|
@ -176,7 +176,7 @@ super + alt + Return
|
|||
|
||||
# spawn a floating terminal
|
||||
super + shift + Return
|
||||
bspc rule -a '*' -o state=floating && "urxvtc"
|
||||
bspc rule -a '*' -o state=floating && "$TERMINAL"
|
||||
|
||||
# spawn the app launcher
|
||||
super + space
|
||||
|
@ -228,7 +228,10 @@ XF86AudioPrev
|
|||
|
||||
# open rofi as a window switcher
|
||||
super + w
|
||||
"$DOTFILES_PATH/scripts/bin/app-launcher" -modi window,run -show window
|
||||
"app-launcher" -modi window,run -show window
|
||||
|
||||
super + shift + v
|
||||
sh -c 'kill -USR1 $(cat "/var/run/user/$UID/polybar-mic-script.sh.pid")'
|
||||
|
||||
# close the current application
|
||||
super + c
|
||||
|
@ -241,25 +244,11 @@ super + shift + c
|
|||
# kill the wm, if alt is held, it will reload instead of truly quitting...
|
||||
# I think?
|
||||
super + ctrl + {alt +,_} Escape
|
||||
{bspc wm -d > "$BSPWM_STATE_FILE" && bspc quit, \
|
||||
bspc quit 1}
|
||||
|
||||
Print
|
||||
scrot "$NICE_HOME/img/scrots/%Y-%m-%d_%H-%M-%S_\$wx\$h.png"
|
||||
sh -c '{bspc wm -d > "$BSPWM_STATE_FILE" && bspc quit, bspc quit 1}'
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
|
||||
super + d
|
||||
xdotool key super+4 && sleep 0.1 && xdotool key shift+4 && xdotool key shift+4 && xdotool key shift+4 && sleep 0.2 && xdotool key super+1 && xdotool key super+3
|
||||
|
||||
super + ctrl + c
|
||||
bspc rule -a '*' -o state=floating && urxvtc --geometry 64x9 -e sh -c "cal -n 3 && bash"
|
||||
|
||||
super + shift + v
|
||||
kill -USR1 $(cat "/var/run/user/$UID/polybar-mic-script.pid")
|
||||
|
||||
super + v
|
||||
tmux new-window 'sh -ci tmuxswitcher'
|
||||
bspc rule -a '*' -o state=floating && urxvt --geometry 64x9 -e sh -c "cal -n 3 && bash"
|
158
apps/de/waybar/config
Normal file
158
apps/de/waybar/config
Normal file
|
@ -0,0 +1,158 @@
|
|||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
"position": "bottom", // Waybar position (top|bottom|left|right)
|
||||
"height": 32, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
// Choose the order of the modules
|
||||
"modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
|
||||
"modules-center": ["sway/window"],
|
||||
"modules-right": [
|
||||
// "mpd",
|
||||
// "idle_inhibitor",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
"cpu",
|
||||
"memory",
|
||||
"temperature",
|
||||
"backlight",
|
||||
"battery",
|
||||
// "battery#bat2",
|
||||
"clock",
|
||||
"tray"
|
||||
],
|
||||
"sway/workspaces": {
|
||||
"disable-scroll": false,
|
||||
"all-outputs": true,
|
||||
"format": "{name}: {icon}",
|
||||
"format-icons": {
|
||||
"1": "",
|
||||
"2": "龜",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": "",
|
||||
"urgent": "",
|
||||
"focused": "",
|
||||
"default": ""
|
||||
}
|
||||
},
|
||||
"sway/mode": {
|
||||
"format": "<span style=\"italic\">{}</span>"
|
||||
},
|
||||
"mpd": {
|
||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ",
|
||||
"format-disconnected": "Disconnected ",
|
||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
||||
"unknown-tag": "N/A",
|
||||
"interval": 2,
|
||||
"consume-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"random-icons": {
|
||||
"off": "<span color=\"#f53c3c\"></span> ",
|
||||
"on": " "
|
||||
},
|
||||
"repeat-icons": {
|
||||
"on": " "
|
||||
},
|
||||
"single-icons": {
|
||||
"on": "1 "
|
||||
},
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
},
|
||||
"tooltip-format": "MPD (connected)",
|
||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
"interval": 1,
|
||||
"format": "{:%a %b %d %H:%M:%S}"
|
||||
},
|
||||
"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": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"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": {
|
||||
"headphones": "",
|
||||
"handsfree": "",
|
||||
"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
|
||||
}
|
||||
}
|
188
apps/de/waybar/style.css
Normal file
188
apps/de/waybar/style.css
Normal file
|
@ -0,0 +1,188 @@
|
|||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: "Iosevka", Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: #111111;
|
||||
color: #ffffff;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
window#waybar.termite {
|
||||
background-color: #3F3F3F;
|
||||
}
|
||||
|
||||
window#waybar.chromium {
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 0.75em;
|
||||
background-color: transparent;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
/*
|
||||
* background: rgba(0, 0, 0, 0.2);
|
||||
* box-shadow: inherit;
|
||||
*/
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: #64727D;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#idle_inhibitor,
|
||||
#mpd {
|
||||
padding: 0 0.75em;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#clock {
|
||||
/* background-color: #64727D; */
|
||||
}
|
||||
|
||||
#battery {
|
||||
/* background-color: #ffffff; */
|
||||
/* color: #000000; */
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
/* color: #ffffff; */
|
||||
/* background-color: #26A65B; */
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
/* background-color: #2ecc71; */
|
||||
/* color: #000000; */
|
||||
}
|
||||
|
||||
#memory {
|
||||
/* background-color: #9b59b6; */
|
||||
}
|
||||
|
||||
#backlight {
|
||||
/* background-color: #90b1b1; */
|
||||
}
|
||||
|
||||
#network {
|
||||
/* background-color: #2980b9; */
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
/* background-color: #f53c3c; */
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
/* background-color: #f1c40f; */
|
||||
/* color: #000000; */
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
/* background-color: #90b1b1; */
|
||||
/* color: #2a5c45; */
|
||||
}
|
||||
|
||||
#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 {
|
||||
/* background-color: #f0932b; */
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
/* background-color: #eb4d4b; */
|
||||
}
|
||||
|
||||
#tray {
|
||||
/* background-color: #2980b9; */
|
||||
}
|
||||
|
||||
#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; */
|
||||
}
|
15
apps/de/x/init
Normal file
15
apps/de/x/init
Normal file
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# as far as I can tell, this file is only executed when you run startx from the
|
||||
# TTY - you probably want to modify xprofile
|
||||
|
||||
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
|
||||
[ -z "$DOTFILES_PATH" ] && export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
|
||||
. "$DOTFILES_PATH/bin/prelude"
|
||||
|
||||
[ -f "$HOME/.xprofile" ] && . "$HOME/.xprofile"
|
||||
|
||||
# TODO: env? [ -f "$HOME/.env_xinitrc" ] && . "$HOME/.env_xinitrc"
|
||||
|
||||
exec "$DOTFILES_PATH/apps/de/bspwm/wmstart"
|
23
apps/de/x/loadresources
Executable file
23
apps/de/x/loadresources
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
xqm() {
|
||||
f="$1"; shift; [ -f "$f" ] && xrdb -merge "$f" "$@" &>/dev/null
|
||||
}
|
||||
|
||||
xqm "/etc/X11/xinit/.Xresources"
|
||||
xqm "$HOME/.Xresources"
|
||||
xqm "$DOTFILES_PATH/bin/lib/colors/xresources"
|
||||
xqm "$ENV_PATH/x/resources"
|
||||
|
||||
sysmodmap="/etc/X11/xinit/.Xmodmap"
|
||||
usermodmap="$ENV_PATH/x/modmap"
|
||||
|
||||
[ -f "$sysmodmap" ] && xmodmap "$sysmodmap" &>/dev/null
|
||||
[ -f "$usermodmap" ] && xmodmap "$usermodmap" &>/dev/null
|
||||
|
||||
if [ -d "/etc/X11/xinit/xinitrc.d" ] ; then
|
||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
||||
[ -x "$f" ] && . "$f"
|
||||
done
|
||||
unset f
|
||||
fi
|
23
apps/de/x/profile
Normal file
23
apps/de/x/profile
Normal file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
|
||||
[ -z "$DOTFILES_PATH" ] && export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
|
||||
. "$DOTFILES_PATH/bin/prelude"
|
||||
|
||||
[ -f "$DOTFILES_PATH/apps/de/x/loadresources" ] && "$DOTFILES_PATH/apps/de/x/loadresources"
|
||||
[ -f "$HOME/.xmodmap" ] && xmodmap "$HOME/.xmodmap"
|
||||
has_command xcape && xcape -e 'Control_L=Escape' &
|
||||
has_command libinput-gestures-setup && libinput-gestures-setup start
|
||||
has_command autocutsel && autocutsel -s PRIMARY &
|
||||
has_command autocutsel && autocutsel -s CLIPBOARD &
|
||||
has_command autorandr && autorandr -c
|
||||
has_command redshift && redshift -r -l 39.1:-94.6 -t 6500K:3000K &
|
||||
has_command kdeconnect-indicator && kdeconnect-indicator &
|
||||
|
||||
eval "$(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)"
|
||||
export SSH_AUTH_SOCK
|
||||
|
||||
xset r rate 250 80 & # keyrepeat
|
||||
|
||||
. maybe_source_env_file x/profile
|
|
@ -1,27 +1,22 @@
|
|||
## Some of my favorite font setups...
|
||||
## *font: xft:Monaco for Powerline-9
|
||||
## *faceName: xft:Monaco for Powerline-9
|
||||
## *boldFont: xft:Monaco for Powerline-9
|
||||
## *letterSpace: -1
|
||||
|
||||
## *font: xft:artwiz lemon-8
|
||||
## *faceName: xft:artwiz lemon-8
|
||||
## *boldFont: xft:artwiz lemon-8
|
||||
## *letterSpace: 0
|
||||
|
||||
## *font: xft:xos4 Terminuss Powerline-8
|
||||
## *faceName: xft:xos4 Terminuss Powerline-8
|
||||
## *boldFont: xft:xos4 Terminuss Powerline-8
|
||||
## *letterSpace: 0
|
||||
|
||||
## Set fonts in "$HOME/.Xresources.env"
|
||||
URxvt.font: xft:Iosevka Term:pixelsize=14,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
|
||||
URxvt.faceName: xft:Iosevka Term:pixelsize=14,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
|
||||
Emacs.font: Iosevka Term
|
||||
Emacs.faceName: Iosevka Term
|
||||
# URxvt.transparent: true
|
||||
# URxvt.shading: 70
|
||||
URxvt.letterSpace: 0
|
||||
*.font: xft:Iosevka Term:pixelsize=14,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
|
||||
*.boldFont: xft:Iosevka Term Bold:pixelsize=14,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
|
||||
|
||||
*.letterSpace: 0
|
||||
## URxvt.transparent: true
|
||||
## URxvt.shading: 70
|
||||
|
||||
## rxvt-unicode configuration
|
||||
URxvt.termName: rxvt-unicode
|
||||
|
@ -49,6 +44,7 @@ dpi: 92
|
|||
.dpi: 92
|
||||
*dpi: 92
|
||||
Xft.dpi: 92
|
||||
|
||||
*autohint: 0
|
||||
*lcdfilter: lcddefault
|
||||
*hintstyle: hintfull
|
13
apps/elixir/iex.exs
Normal file
13
apps/elixir/iex.exs
Normal file
|
@ -0,0 +1,13 @@
|
|||
Application.put_env(:elixir, :ansi_enabled, true)
|
||||
|
||||
IEx.configure(
|
||||
colors: [enabled: true],
|
||||
default_prompt: [
|
||||
"\e[G", # ANSI CHA, move cursor to column 1
|
||||
:magenta,
|
||||
"%prefix", # IEx prompt variable
|
||||
">", # plain string
|
||||
:reset
|
||||
] |> IO.ANSI.format |> IO.chardata_to_string
|
||||
)
|
||||
|
|
@ -4,6 +4,7 @@
|
|||
[user]
|
||||
name = Daniel Flanagan
|
||||
email = daniel@lytedev.io
|
||||
signingkey = daniel@lytedev.io
|
||||
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
|
@ -36,6 +37,7 @@
|
|||
pf = push --force-with-lease
|
||||
a = add -A
|
||||
cnv = commit --no-verify
|
||||
canv = commit --no-verify
|
||||
c = commit
|
||||
|
||||
[merge]
|
||||
|
@ -50,7 +52,14 @@
|
|||
|
||||
[pager]
|
||||
branch = false
|
||||
diff = nvim -c 'silent %sm/\\e.\\{-}m//g' -c 'silent %s/^diff/\\r\\rdiff/' -c 'silent set ft=diff' -c 'silent setlocal nobuflisted buftype=nofile bufhidden=wipe noswapfile' -c 'goto 1' -
|
||||
# remove ansi codes, pad each file's diff with newlines, show as diff, remove top padding
|
||||
diff = vimpager -c 'silent %sm/\\e[^mK]*[mK]//g' -c 'silent %s/^diff/\\r\\rdiff/' -c 'silent set ft=diff' -c 'silent execute \"normal gg2dd\"'
|
||||
|
||||
[url "git@github.com:postmates"]
|
||||
insteadOf = https://github.com/postmates
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[gpg]
|
||||
program = gpg2
|
||||
|
|
|
@ -8,11 +8,11 @@ hide_kernel_threads=1
|
|||
hide_userland_threads=1
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=0
|
||||
highlight_base_name=1
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
tree_view=1
|
||||
tree_view=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_zero=0
|
||||
|
|
|
@ -1,9 +1,54 @@
|
|||
font_family Iosevka Term
|
||||
bold_font Iosevka Term Bold
|
||||
italic_font Iosevka Term Italic
|
||||
bold_italic_font Iosevka Term Bold Italic
|
||||
font_family iosevka-lyte
|
||||
|
||||
repaint_delay 5
|
||||
input_delay 1
|
||||
sync_to_monitor no
|
||||
|
||||
font_features iosevka-lyte -liga -dlig -calt
|
||||
|
||||
font_size 11.0
|
||||
adjust_line_height 0
|
||||
window_padding_width 18.0
|
||||
window_padding_width 5.0
|
||||
window_margin_width 0.0
|
||||
|
||||
clear_all_shortcuts yes
|
||||
|
||||
map ctrl+shift+equal change_font_size all +0.5
|
||||
map ctrl+shift+minus change_font_size all -0.5
|
||||
map shift+insert paste_from_clipboard
|
||||
map ctrl+shift+v paste_from_selection
|
||||
|
||||
enable_audio_bell yes
|
||||
|
||||
# TODO: generate via color scheme generator
|
||||
background #111111
|
||||
foreground #f8f8f2
|
||||
|
||||
url_style curly
|
||||
|
||||
# https://google.com
|
||||
|
||||
strip_trailing_spaces smart
|
||||
|
||||
color0 #111111
|
||||
color1 #f92672
|
||||
color2 #a6e22e
|
||||
color3 #f4bf75
|
||||
color4 #66d9ef
|
||||
color5 #ae81ff
|
||||
color6 #a1efe4
|
||||
color7 #f8f8f2
|
||||
|
||||
# TODO: where did these colors come from? donokai?
|
||||
color8 #75715e
|
||||
color9 #fd971f
|
||||
color10 #383830
|
||||
color11 #49483e
|
||||
color12 #a59f85
|
||||
color13 #f5f4f1
|
||||
color14 #cc6633
|
||||
color15 #f9f8f5
|
||||
|
||||
color18 #333333
|
||||
kitty_mod ctrl+shift+alt
|
||||
open_url_modifiers ctrl
|
||||
|
|
|
@ -1,19 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
# vim:fdm=marker
|
||||
#
|
||||
# Neofetch config file
|
||||
# https://github.com/dylanaraps/neofetch
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Speed up script by not using unicode
|
||||
export LC_ALL=C
|
||||
export LANG=C
|
||||
|
||||
# Info Options {{{
|
||||
|
||||
|
||||
# Info
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
print_info() {
|
||||
info line_break
|
||||
|
||||
|
@ -45,375 +34,86 @@ print_info() {
|
|||
wait
|
||||
}
|
||||
|
||||
|
||||
# Kernel
|
||||
|
||||
# Show more kernel info
|
||||
# --kernel_shorthand on, off
|
||||
kernel="off"
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
# Distro
|
||||
|
||||
# Shorten the output of distro (tiny, on, off)
|
||||
# NOTE: This is only possible on Linux, macOS, and Solaris
|
||||
distro_shorthand="off"
|
||||
|
||||
# Show 'x86_64' and 'x86' in 'Distro:' output.
|
||||
# --os_arch on, off
|
||||
os_arch="on"
|
||||
|
||||
|
||||
# Uptime
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
# --uptime_shorthand tiny, on, off
|
||||
uptime_shorthand="off"
|
||||
|
||||
|
||||
# Shell
|
||||
|
||||
# Show the path to $SHELL
|
||||
# --shell_path on, off
|
||||
shell_path="off"
|
||||
|
||||
# Show $SHELL's version
|
||||
# --shell_version on, off
|
||||
shell_version="on"
|
||||
|
||||
|
||||
# CPU
|
||||
|
||||
# CPU speed type
|
||||
# Only works on Linux with cpufreq.
|
||||
# --speed_type current, min, max, bios,
|
||||
# scaling_current, scaling_min, scaling_max
|
||||
speed_type="max"
|
||||
|
||||
# CPU Shorthand
|
||||
# Set shorthand setting
|
||||
# --cpu_shorthand name, speed, tiny, on, off
|
||||
cpu_shorthand="off"
|
||||
|
||||
# CPU Usage display
|
||||
# Set CPU usage display setting
|
||||
# --cpu_display bar, infobar, barinfo, off
|
||||
cpu_display="off"
|
||||
|
||||
# CPU Speed
|
||||
# Hide/Show CPU speed.
|
||||
# --cpu_speed on, off
|
||||
cpu_speed="on"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
# Logical: All virtual cores
|
||||
# Physical: All physical cores
|
||||
# --cpu_cores logical, physical, off
|
||||
# Note: 'physical' doesn't work on BSD.
|
||||
cpu_cores="logical"
|
||||
|
||||
# CPU Temperature
|
||||
# Hide/Show CPU temperature.
|
||||
# --cpu_temp on, off
|
||||
# Note: Only works on Linux.
|
||||
cpu_temp="off"
|
||||
|
||||
|
||||
# GPU
|
||||
|
||||
# Enable/Disable GPU Brand
|
||||
# --gpu_brand on, off
|
||||
gpu_brand="on"
|
||||
|
||||
|
||||
# Resolution
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Unsupported on Windows
|
||||
# --refresh_rate on, off
|
||||
refresh_rate="off"
|
||||
|
||||
|
||||
# Gtk Theme / Icons
|
||||
|
||||
# Shorten output (Hide [GTK2] etc)
|
||||
# --gtk_shorthand on, off
|
||||
gtk_shorthand="off"
|
||||
|
||||
|
||||
# Enable/Disable gtk2 theme/icons output
|
||||
# --gtk2 on, off
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 theme/icons output
|
||||
# --gtk3 on, off
|
||||
gtk3="on"
|
||||
|
||||
|
||||
# IP Address
|
||||
|
||||
# Website to ping for the public IP
|
||||
# --ip_host url
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
|
||||
# Song
|
||||
|
||||
# Print the Artist and Title on seperate lines
|
||||
# --song_shorthand on, off
|
||||
song_shorthand="off"
|
||||
|
||||
|
||||
# Birthday
|
||||
|
||||
# Whether to show a long pretty output
|
||||
# or a shortened one
|
||||
# NOTE: Long pretty output doesn't work on OpenBSD or NetBSD.
|
||||
# --birthday_shorthand on, off
|
||||
birthday_shorthand="off"
|
||||
|
||||
# Whether to show the time in the output
|
||||
# --birthday_time on, off
|
||||
birthday_time="on"
|
||||
|
||||
# Date format to use when printing birthday
|
||||
# --birthday_format "format"
|
||||
birthday_format="+%a %d %b %Y %l:%M %p"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Text Colors {{{
|
||||
|
||||
|
||||
# Text Colors
|
||||
# Each number represents a different part of
|
||||
# the text in this order:
|
||||
# title, @, underline, subtitle, colon, info
|
||||
# colors=(4 6 1 8 8 6)
|
||||
# You can also specify:
|
||||
# fg (foreground color)
|
||||
colors=(distro)
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Text Options {{{
|
||||
|
||||
|
||||
# Toggle bold text
|
||||
# --bold on, off
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
# --underline on, off
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
# --underline_char char
|
||||
underline_char="-"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Color Blocks {{{
|
||||
|
||||
|
||||
# Color block range
|
||||
# --block_range start end
|
||||
# block_range="0,15"
|
||||
|
||||
# Toggle color blocks
|
||||
# --color_blocks on, off
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
# --block_width num
|
||||
block_width=5
|
||||
|
||||
# Color block height in lines
|
||||
# --block_height num
|
||||
block_height=2
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Progress Bars {{{
|
||||
|
||||
|
||||
# Progress bar character
|
||||
# --progress_char elapsed_char total_char
|
||||
progress_char_elapsed="-"
|
||||
progress_char_total="="
|
||||
|
||||
# Progress border
|
||||
# --progress_border on, off
|
||||
progress_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
# --progress_length num
|
||||
progress_length="15"
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors
|
||||
# Takes: num, "distro"
|
||||
# --progress_colors col col
|
||||
progress_color_elapsed="distro"
|
||||
progress_color_total="distro"
|
||||
|
||||
# Customize how the info is displayed.
|
||||
# bar: Only the progress bar is displayed.
|
||||
# infobar: The bar is displayed after the info.
|
||||
# barinfo: The bar is displayed before the info.
|
||||
# off: Only the info is displayed.
|
||||
#
|
||||
# --memory_display bar, infobar, barinfo, off
|
||||
# --battery_display bar, infobar, barinfo, off
|
||||
# --disk_display bar, infobar, barinfo, off
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="on"
|
||||
|
||||
backend="kitty"
|
||||
image_backend="kitty"
|
||||
|
||||
# }}}
|
||||
|
||||
# Image Options {{{
|
||||
|
||||
backend="w3m"
|
||||
image_backend="w3m"
|
||||
|
||||
# Image Source
|
||||
# --image wall, ascii, /path/to/img, /path/to/dir/, off
|
||||
image="~/.wallpaper"
|
||||
|
||||
# Thumbnail directory
|
||||
thumbnail_dir="$HOME/.cache/thumbnails/neofetch"
|
||||
|
||||
# W3m-img path
|
||||
# Only works with the w3m backend.
|
||||
# Some systems have this in another location
|
||||
w3m_img_path="/usr/lib/w3m/w3mimgdisplay"
|
||||
|
||||
# Crop mode
|
||||
# --crop_mode normal, fit, fill
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Only affects normal mode.
|
||||
# --crop_offset northwest, north, northeast, west, center
|
||||
# east, southwest, south, southeast
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
# --size auto, 00px, 00%, none
|
||||
image_size="360px"
|
||||
|
||||
# Right gap between image and text
|
||||
# --gap num
|
||||
gap=1
|
||||
|
||||
# Image offsets
|
||||
# Only works with the w3m backend.
|
||||
# --xoffset px
|
||||
# --yoffset px
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
# Image background color
|
||||
# Only works with the w3m backend.
|
||||
# Unset by default.
|
||||
# --bg_color 'color', blue
|
||||
background_color=
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Ascii Options {{{
|
||||
|
||||
|
||||
# Default ascii image to use
|
||||
# When this is set to distro it will use your
|
||||
# distro's logo as the ascii.
|
||||
# --ascii 'distro', path/to/ascii
|
||||
ascii="distro"
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
# --ascii_distro 'auto', 'distro_name'
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii colors
|
||||
# When this is set to distro it will use your
|
||||
# ditro's colors to color the ascii.
|
||||
# NOTE: You can also set this to a range of colors
|
||||
# which will allow you to custom color distro logos
|
||||
# --ascii_colors distro
|
||||
# --ascii_colors 2 4 5 6
|
||||
ascii_colors=(distro)
|
||||
|
||||
# Logo size
|
||||
# Arch, Crux and Gentoo have a smaller logo
|
||||
# variant. Changing the value below to small
|
||||
# will make neofetch use the small logo.
|
||||
# --ascii_logo_size small, normal
|
||||
ascii_logo_size="normal"
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
# --ascii_bold on, off
|
||||
ascii_bold="on"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Scrot Options {{{
|
||||
|
||||
|
||||
# Whether or not to always take a screenshot
|
||||
# You can manually take a screenshot with "--scrot" or "-s"
|
||||
scrot="off"
|
||||
|
||||
# Screenshot program to launch
|
||||
# --scrot_cmd
|
||||
scrot_cmd="scrot -c -d 3"
|
||||
|
||||
# Scrot dir
|
||||
# Where to save the screenshots
|
||||
# --scrot_dir /path/to/screenshot/folder
|
||||
scrot_dir="$NICE_HOME/img/"
|
||||
|
||||
# Scrot filename
|
||||
# What to name the screenshots
|
||||
# --scrot_name str
|
||||
scrot_dir="$XDG_PICTURES_DIR"
|
||||
scrot_name="neofetch-$(date +%F-%I-%M-%S-${RANDOM}).png"
|
||||
|
||||
# Image upload host
|
||||
# Where to upload the image.
|
||||
# Possible values: imgur, teknik
|
||||
image_host="imgur"
|
||||
|
||||
# Imgur api key
|
||||
# This is an api key for neofetch, you can sign up for your own
|
||||
# here: http://api.imgur.com/oauth2/addclient
|
||||
imgur_client_id="0e8b44d15e9fc95"
|
||||
|
||||
|
||||
# }}}
|
||||
|
||||
# Config Options {{{
|
||||
|
||||
|
||||
# Enable/Disable config file
|
||||
# --config off, none
|
||||
config="on"
|
||||
|
||||
# Path to custom config file location
|
||||
# --config path/to/config
|
||||
config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/neofetch/config"
|
||||
|
||||
|
||||
# }}}
|
||||
|
|
|
@ -8,28 +8,30 @@ command! Q q
|
|||
" best leader
|
||||
let mapleader = "\<Space>"
|
||||
|
||||
if has('nvim')
|
||||
" terminal mappings
|
||||
" open a terminal split at 80 columns
|
||||
nnoremap <C-t> :vsplit term://bash<CR>
|
||||
nnoremap <C-S-T> :split term://bash<CR>
|
||||
" tnoremap <C-t> <C-\><C-n>:call TerminalSplit()<CR>
|
||||
|
||||
" close the terminal
|
||||
tnoremap <C-w> <C-\><C-n>:q!<CR>
|
||||
|
||||
" moving between terminal splits
|
||||
tnoremap <C-h> :TmuxNavigateLeft<CR>
|
||||
tnoremap <C-j> :TmuxNavigateDown<CR>
|
||||
tnoremap <C-k> :TmuxNavigateUp<CR>
|
||||
tnoremap <C-l> :TmuxNavigateRight<CR>
|
||||
endif
|
||||
|
||||
" enter insert mode when entering a terminal buffer
|
||||
augroup InsertModeOnBlankTerminal
|
||||
autocmd BufWinEnter,WinEnter term://* startinsert
|
||||
augroup END
|
||||
|
||||
" terminal mappings
|
||||
nnoremap <leader>t :split term://$SHELL<CR><C-\><C-n>:resize 24<CR>i
|
||||
nnoremap <C-t> :split term://$SHELL<CR><C-\><C-n>:resize 24<CR>i
|
||||
nnoremap <leader><leader>t :vsplit term://$SHELL<CR><C-\><C-n>:vertical resize 120<CR>i
|
||||
" nnoremap <C-S-T> :vsplit term://$SHELL<CR><C-\><C-n>:vertical resize 120<CR>i
|
||||
nnoremap <C-y> :vsplit term://$SHELL<CR><C-\><C-n>:vertical resize 120<CR>i
|
||||
|
||||
" close the terminal
|
||||
tnoremap <C-w> <C-\><C-n>:q!<CR>
|
||||
tnoremap <leader>w <C-\><C-n>:q!<CR>
|
||||
tnoremap <C-n> <C-\><C-n>
|
||||
tnoremap <C-[> <C-\><C-n>
|
||||
|
||||
" moving between terminal splits
|
||||
tnoremap <C-h> <C-\><C-n>:TmuxNavigateLeft<CR>
|
||||
tnoremap <C-j> <C-\><C-n>:TmuxNavigateDown<CR>
|
||||
tnoremap <C-k> <C-\><C-n>:TmuxNavigateUp<CR>
|
||||
tnoremap <C-l> <C-\><C-n>:TmuxNavigateRight<CR>
|
||||
|
||||
" Jump to the next or previous line that has the same level or a lower
|
||||
" level of indentation than the current line.
|
||||
"
|
||||
|
@ -121,10 +123,18 @@ nnoremap <leader>h :b#<CR>
|
|||
" use leader j and k to switch buffers as well
|
||||
nnoremap <leader>k :bnext<CR>
|
||||
nnoremap <leader>j :bprevious<CR>
|
||||
nnoremap <C-k> :bnext<CR>
|
||||
nnoremap <C-j> :bprevious<CR>
|
||||
|
||||
nnoremap <leader>r :source ~/.config/nvim/init.vim<CR>
|
||||
" window/pane navigation
|
||||
nnoremap <C-h> :TmuxNavigateLeft<CR>
|
||||
nnoremap <C-j> :TmuxNavigateDown<CR>
|
||||
nnoremap <C-k> :TmuxNavigateUp<CR>
|
||||
nnoremap <C-l> :TmuxNavigateRight<CR>
|
||||
|
||||
if has('nvim')
|
||||
nnoremap <leader>r :source $vimdir/init.vim<CR>
|
||||
else
|
||||
nnoremap <leader>r :source $HOME/.vimrc<CR>
|
||||
endif
|
||||
|
||||
" change buffers with leader,tab
|
||||
nnoremap <leader><Tab> :bnext<CR>
|
||||
|
@ -218,15 +228,15 @@ nnoremap <leader>gs :syntax sync fromstart<CR>
|
|||
" open coc config
|
||||
nnoremap <leader><space>c :CocConfig<CR>
|
||||
|
||||
" go to definitions
|
||||
nnoremap <leader>gd <Plug>(coc-jump-definition)
|
||||
nnoremap <leader>d <Plug>(coc-jump-definition)
|
||||
|
||||
" smart jumps
|
||||
nmap <silent> gd <Plug>(coc-definition)
|
||||
nmap <silent> gy <Plug>(coc-type-definition)
|
||||
nmap <silent> gi <Plug>(coc-implementation)
|
||||
nmap <silent> gr <Plug>(coc-references)
|
||||
|
||||
nmap <silent> g[ <Plug>(coc-diagnostic-prev)
|
||||
nmap <silent> g] <Plug>(coc-diagnostic-next)
|
||||
|
||||
nmap <leader>ac <Plug>(coc-codeaction)
|
||||
nmap <leader>qf <Plug>(coc-fix-current)
|
||||
|
||||
|
|
|
@ -18,22 +18,6 @@ if has("autocmd")
|
|||
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") && index(jump_to_pos_blacklist, &ft) | exe "normal! g'\"" | endif
|
||||
endif
|
||||
|
||||
" terminal split in neovim even tho we tmux
|
||||
if has('nvim')
|
||||
function! TerminalSplit()
|
||||
let current_file = @%
|
||||
echo current_file
|
||||
if match(current_file, "term://*") != -1
|
||||
split
|
||||
terminal
|
||||
else
|
||||
split
|
||||
resize 24
|
||||
terminal
|
||||
endif
|
||||
endfunction
|
||||
endif
|
||||
|
||||
" make any necessary directories in the path when saving a file
|
||||
fun! <SID>AutoMakeDirectory()
|
||||
let s:directory = expand("<afile>:p:h")
|
||||
|
|
|
@ -1,5 +1 @@
|
|||
let b:ale_fixers = ['uncrustify']
|
||||
let b:ale_linters = {
|
||||
\ 'cs': ['OmniSharp']
|
||||
\}
|
||||
let g:OmniSharp_server_use_mono = 1
|
||||
|
|
|
@ -1,34 +1,31 @@
|
|||
" let b:ale_fixers = ['mix_format']
|
||||
let b:ale_linters = ['dogma', 'credo', 'dialyxir', 'mix']
|
||||
" let g:ale_elixir_elixir_ls_release = '/Users/danielflanagan/Documents/code/open-source/elixir-ls/'
|
||||
|
||||
let g:elixirls = {
|
||||
\ 'path': printf('%s/%s', stdpath('config'), 'bundle/elixir-ls'),
|
||||
\ }
|
||||
\ 'path': printf('%s/%s', stdpath('config'), 'bundle/elixir-ls'),
|
||||
\ }
|
||||
|
||||
let g:elixirls.lsp = printf(
|
||||
\ '%s/%s',
|
||||
\ g:elixirls.path,
|
||||
\ 'release/language_server.sh')
|
||||
\ '%s/%s',
|
||||
\ g:elixirls.path,
|
||||
\ 'release/language_server.sh')
|
||||
|
||||
function! g:elixirls.compile(...)
|
||||
let l:commands = join([
|
||||
\ 'mix local.hex --force',
|
||||
\ 'mix local.rebar --force',
|
||||
\ 'mix deps.get',
|
||||
\ 'mix compile',
|
||||
\ 'mix elixir_ls.release'
|
||||
\ ], '&&')
|
||||
let l:commands = join([
|
||||
\ 'mix local.hex --force',
|
||||
\ 'mix local.rebar --force',
|
||||
\ 'mix deps.get',
|
||||
\ 'mix compile',
|
||||
\ 'mix elixir_ls.release'
|
||||
\ ], '&&')
|
||||
|
||||
echom '>>> Compiling elixirls'
|
||||
silent call system(l:commands)
|
||||
echom '>>> elixirls compiled'
|
||||
echom '>>> Compiling elixirls'
|
||||
silent call system(l:commands)
|
||||
echom '>>> elixirls compiled'
|
||||
endfunction
|
||||
|
||||
call coc#config('languageserver', {
|
||||
\ 'elixir': {
|
||||
\ 'command': g:elixirls.lsp,
|
||||
\ 'trace.server': 'verbose',
|
||||
\ 'filetypes': ['elixir', 'eelixir']
|
||||
\ }
|
||||
\})
|
||||
\ 'elixir': {
|
||||
\ 'command': g:elixirls.lsp,
|
||||
\ 'trace.server': 'verbose',
|
||||
\ 'filetypes': ['elixir', 'eelixir']
|
||||
\ }
|
||||
\})
|
||||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
let b:ale_fixers = ['prettier', 'eslint']
|
1
apps/neovim/ftplugin/lua.vim
Normal file
1
apps/neovim/ftplugin/lua.vim
Normal file
|
@ -0,0 +1 @@
|
|||
call coc#config('languageserver', {"lua": {"command": "lua-lsp", "filetypes": ["lua"]}})
|
12
apps/neovim/ftplugin/moon.vim
Normal file
12
apps/neovim/ftplugin/moon.vim
Normal file
|
@ -0,0 +1,12 @@
|
|||
" let g:moonscriptls = {'path': printf('/home/daniel/code/open-source/moonscript-language-server')}
|
||||
|
||||
" let g:moonscriptls.lsp = printf('%s/main.moon', g:moonscriptls.path)
|
||||
|
||||
" call coc#config('languageserver', {
|
||||
" \ 'moon': {
|
||||
" \ 'command': g:moonscriptls.lsp,
|
||||
" \ 'trace.server': 'verbose',
|
||||
" \ 'filetypes': ['moon']
|
||||
" \ }
|
||||
" \})
|
||||
|
|
@ -1,2 +1 @@
|
|||
let b:ale_linters = ['rls']
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
let b:ale_fixers = ['tslint']
|
||||
let b:ale_linters = ['tsserver']
|
|
@ -1 +0,0 @@
|
|||
" let b:ale_fixers = ['vint']
|
|
@ -1,2 +1 @@
|
|||
let b:ale_fixers = ['prettier', 'eslint']
|
||||
autocmd FileType vue syntax sync fromstart
|
||||
|
|
|
@ -1,57 +1,25 @@
|
|||
" vim compatibility
|
||||
let $vimdir = $HOME.'/.vim'
|
||||
if has('nvim')
|
||||
let $vimdir = $HOME.'/.config/nvim'
|
||||
let $vimdir = $XDG_CONFIG_HOME.'/nvim'
|
||||
endif
|
||||
|
||||
" utf8 encoding
|
||||
if has('vim_starting')
|
||||
set encoding=utf8
|
||||
endif
|
||||
|
||||
" os detection functions
|
||||
silent function! OSX()
|
||||
return has('macunix')
|
||||
endfunction
|
||||
silent function! LINUX()
|
||||
return has('unix') && !has('macunix') && !has('win32unix')
|
||||
endfunction
|
||||
silent function! WINDOWS()
|
||||
return (has('win32') || has('win64'))
|
||||
endfunction
|
||||
|
||||
" load a per-environment file if one exists
|
||||
if filereadable(expand('$HOME/.env_init.vim'))
|
||||
source "$HOME/.env_init.vim"
|
||||
if filereadable("$ENV_PATH/vim")
|
||||
source "$ENV_PATH/vim"
|
||||
endif
|
||||
|
||||
" initialize plugin manager
|
||||
if has('nvim')
|
||||
call plug#begin('~/.config/nvim/bundle')
|
||||
else
|
||||
call plug#begin('~/.vim/bundle')
|
||||
endif
|
||||
|
||||
let pluginsfile=$vimdir.'/plugins.vim'
|
||||
exec 'source ' . pluginsfile
|
||||
|
||||
call plug#begin($vimdir.'/bundle')
|
||||
source $vimdir/plugins.vim
|
||||
call plug#end()
|
||||
|
||||
filetype on
|
||||
filetype indent on
|
||||
filetype plugin on
|
||||
|
||||
let settingsfile=$vimdir.'/settings.vim'
|
||||
exec 'source ' . settingsfile
|
||||
source $vimdir/settings.vim
|
||||
source $vimdir/commands.vim
|
||||
source $vimdir/bindings.vim
|
||||
|
||||
let commandsfile=$vimdir.'/commands.vim'
|
||||
exec 'source ' . commandsfile
|
||||
|
||||
let bindingsfile=$vimdir.'/bindings.vim'
|
||||
exec 'source ' . bindingsfile
|
||||
|
||||
" load a per-environment file if one exists
|
||||
if filereadable(expand('$HOME/.env_init_after.vim'))
|
||||
source "$HOME/.env_init_after.vim"
|
||||
if filereadable("$ENV_PATH/vim-after")
|
||||
source "$ENV_PATH/vim-after"
|
||||
endif
|
||||
|
||||
|
|
|
@ -1,25 +1,15 @@
|
|||
" install plugin manager if needed
|
||||
augroup PluginManagerInstaller
|
||||
if has('nvim')
|
||||
if empty(glob('~/.config/nvim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
else
|
||||
if empty(glob('~/.vim/autoload/plug.vim'))
|
||||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
end
|
||||
if empty(glob("$vimdir/autoload/plug.vim"))
|
||||
silent !curl -fLo "$vimdir/autoload/plug.vim" --create-dirs 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||
autocmd VimEnter * PlugInstall
|
||||
endif
|
||||
augroup End
|
||||
|
||||
let g:airline_powerline_fonts = 1
|
||||
let g:airline#extensions#tabline#enabled = 1 " automatically displays all buffers when there's only one tab open
|
||||
let g:airline#extensions#tabline#fnamemod = ':t'
|
||||
" set laststatus=2 " always show statusline
|
||||
" set noshowmode " hides default mode
|
||||
|
||||
" cleanup/simplify airline
|
||||
let g:airline#extensions#tabline#left_sep = ''
|
||||
let g:airline#extensions#tabline#left_alt_sep = ''
|
||||
let g:airline_right_alt_sep = ''
|
||||
|
@ -28,7 +18,6 @@ let g:airline_left_alt_sep= ''
|
|||
let g:airline_left_sep = ''
|
||||
let g:airline#extensions#tabline#buffers_label = ''
|
||||
|
||||
" short mode texts
|
||||
let g:airline_mode_map = {
|
||||
\ '__' : '-',
|
||||
\ 'n' : 'N',
|
||||
|
@ -47,36 +36,24 @@ let g:airline_mode_map = {
|
|||
|
||||
let g:indent_guide_auto_colors = 1
|
||||
let g:indent_guides_enable_on_vim_startup = 1
|
||||
let g:prosession_dir = $vimdir."/session/"
|
||||
|
||||
" no ALE gutter
|
||||
" let g:ale_sign_column_always = 0
|
||||
" let g:ale_set_signs = 0
|
||||
" highlight clear ALEErrorSign
|
||||
" highlight clear ALEWarningSign
|
||||
let g:polyglot_disabled = ['cue', 'cuesheet']
|
||||
|
||||
" fix me, baby
|
||||
" let g:ale_fix_on_save = 1
|
||||
|
||||
" autocomplete
|
||||
" let g:ale_completion_enabled = 1
|
||||
" let g:ale_typescript_tslint_use_global = 1
|
||||
|
||||
let g:fzf_layout = { 'window': 'enew' }
|
||||
" let g:fzf_layout = { 'window': 'enew' }
|
||||
|
||||
" check if we're using vim as the manpage viewer before loading session plugins
|
||||
if exists('asmanviewer')
|
||||
let g:prosession_dir = '/dev/null'
|
||||
else
|
||||
Plug 'tpope/vim-obsession' " session ease-of-use
|
||||
Plug 'tpope/vim-obsession' " session ease-of-use
|
||||
Plug 'dhruvasagar/vim-prosession' " more session ease-of-use
|
||||
let g:prosession_dir = '~/.config/nvim/session/'
|
||||
endif
|
||||
|
||||
Plug 'junegunn/vim-plug' " plugin manager should manage itself
|
||||
Plug 'vim-airline/vim-airline' " status line
|
||||
Plug 'vim-airline/vim-airline-themes' " more minimal status line
|
||||
Plug 'nathanaelkane/vim-indent-guides' " indentation guides
|
||||
" Plug 'w0rp/ale' " syntax checker
|
||||
Plug 'SirVer/ultisnips' " snippet manager
|
||||
Plug 'junegunn/fzf', {'dir': '~/.fzf', 'do': './install --all'} " fuzzy file finding
|
||||
Plug 'junegunn/fzf.vim' " helpers for using fzf in vim
|
||||
|
@ -89,7 +66,7 @@ Plug 'tmux-plugins/vim-tmux-focus-events' " allow transiti
|
|||
Plug 'christoomey/vim-tmux-navigator' " allow transitions within tmux
|
||||
Plug 'godlygeek/tabular' " align text
|
||||
Plug 'lytedev/vim-superman' " view man pages with vim
|
||||
Plug 'tpope/vim-surround' " quickly modify text surrounding objects
|
||||
Plug 'machakann/vim-sandwich' " quickly modify text surrounding objects
|
||||
Plug 'tpope/vim-speeddating' " vim knows about date-like text objects
|
||||
Plug 'tpope/vim-fugitive' " vim git commands
|
||||
Plug 'michaeljsmith/vim-indent-object' " adds an indentation level text object
|
||||
|
@ -98,19 +75,22 @@ Plug 'dbakker/vim-projectroot' " adds helper fu
|
|||
Plug 'junegunn/goyo.vim' " better distraction-free editing
|
||||
Plug 'tpope/vim-sleuth' " try and detect indent method
|
||||
Plug 'editorconfig/editorconfig-vim' " loads project-specific editor settings
|
||||
Plug 'sheerun/vim-polyglot' " vim plugin loader for many languages
|
||||
Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language
|
||||
Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language
|
||||
" Plug 'junegunn/vim-peekaboo' " preview registers
|
||||
Plug 'scrooloose/nerdtree' " file browser
|
||||
Plug 'tpope/vim-eunuch' " unix helper commands
|
||||
Plug 'mbbill/undotree' " undo tree visualizer
|
||||
" Plug 'junegunn/vim-peekaboo' " preview registers
|
||||
|
||||
" language support
|
||||
Plug 'sheerun/vim-polyglot' " vim plugin loader for many languages
|
||||
Plug 'leafo/moonscript-vim', {'for': ['moon', 'moonscript']} " moonscript language
|
||||
Plug 'OmniSharp/omnisharp-vim', {'for': ['cs']} " C# language
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server completion
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'} " language server interface
|
||||
Plug 'JakeBecker/elixir-ls', {'for': ['elixir', 'eelixir'], 'do': { -> g:elixirls.compile() }}
|
||||
Plug 'tpope/vim-dadbod' " databasing in vim
|
||||
Plug 'lytedev/elm-vim' " elm lang
|
||||
Plug 'google/vim-jsonnet' " jsonnet
|
||||
Plug 'sirtaj/vim-openscad' " openscad
|
||||
Plug 'ssh://git@git.lyte.dev:2222/lytedev/vim-lytlang.git'
|
||||
Plug 'tpope/vim-dadbod' " vim
|
||||
Plug 'lytedev/elm-vim', {'for': ['elm']} " elm lang
|
||||
Plug 'google/vim-jsonnet', {'for': ['jsonnet', 'libsonnet']} " jsonnet
|
||||
Plug 'sirtaj/vim-openscad', {'for': ['scad']} " openscad
|
||||
Plug 'jjo/vim-cue'
|
||||
" Plug 'ssh://git@git.lyte.dev:2222/lytedev/vim-lytlang.git'
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
scriptencoding utf8
|
||||
scriptencoding utf-8
|
||||
set fileencoding=utf8
|
||||
set encoding=utf8
|
||||
|
||||
" ALE completeopt recommendation
|
||||
set completeopt=menu,menuone,preview,noselect,noinsert
|
||||
|
@ -74,12 +76,13 @@ set splitbelow " don't split top
|
|||
set noerrorbells " shhhh, vim
|
||||
set visualbell " but visual noise for alerts is ok
|
||||
set nobackup " sessions handle this quite nicely
|
||||
set nowritebackup " no but really they do
|
||||
set noswapfile " no seriously sessions are cool
|
||||
set nowritebackup " no, but really, they do
|
||||
set noswapfile " no, seriously, sessions are cool
|
||||
set timeout " key combo mapping timeout
|
||||
set ttimeoutlen=100 " ms delay for tapping key combos
|
||||
set timeoutlen=150 " ms for key combo mapping timeout
|
||||
set isfname+=32 " allow filenames to show them 32s
|
||||
set updatetime=300 " recommended for coc.nvim
|
||||
|
||||
" no freakin' bell
|
||||
set visualbell t_vb=
|
||||
|
@ -89,9 +92,6 @@ if has('autocmd')
|
|||
augroup END
|
||||
endif
|
||||
|
||||
" color scheme
|
||||
let base16colorspace=256
|
||||
set background=dark
|
||||
syntax enable
|
||||
colorscheme base16-donokai
|
||||
|
||||
|
@ -105,7 +105,7 @@ highlight GitGutterChangeDelete ctermbg=black guibg=black
|
|||
hi NonText ctermfg=black guifg=black
|
||||
|
||||
set hidden " allows buffer switching without saving
|
||||
set shortmess=Ia " hide vim intro, skip lots of file messages/prompts
|
||||
set shortmess+=Ia " hide vim intro, skip lots of file messages/prompts
|
||||
set history=1000
|
||||
|
||||
" undo files
|
||||
|
|
|
@ -16,6 +16,7 @@ alias tree='tree -Csuh'
|
|||
alias f='fzf'
|
||||
alias cp="rsync -ah --progress"
|
||||
alias year="cal $(date +%Y)"
|
||||
alias y="year"
|
||||
|
||||
# gets the newest function for the current directory (or the specified directory
|
||||
# if one is provided)
|
||||
|
@ -28,7 +29,17 @@ function ltl() {
|
|||
echo "$l"
|
||||
}
|
||||
|
||||
function ltld() {
|
||||
local d="${1-$PWD}"
|
||||
unset -v l
|
||||
for f in "$d"/*; do
|
||||
[[ $f -nt $l ]] && [[ -d $f ]] && l="$f"
|
||||
done
|
||||
echo "$l"
|
||||
}
|
||||
|
||||
alias vltl="vim \"\$(ltl)\""
|
||||
alias cdltl="cd \"\$(ltld)\""
|
||||
alias ltlv="vltl"
|
||||
|
||||
# navigation aliases
|
||||
|
@ -41,7 +52,8 @@ function c() {
|
|||
}
|
||||
alias cd..="cd .."
|
||||
alias cdd="cd \"\$DOTFILES_PATH\"" # go to dotfiles
|
||||
alias cdc="cd \"\$XDG_CONFIG_HOME\"" # go to
|
||||
alias cde="cd \"\$ENV_PATH\"" # go to current dotfiles...? env
|
||||
alias cdc="cd \"\$XDG_CONFIG_HOME\"" # go to ~/.config
|
||||
alias cdn="cd \"\$NOTES_PATH\""
|
||||
alias cdl="cd \"\$NICE_HOME/dl\""
|
||||
alias cdg="cd \"\$NICE_HOME/games\""
|
||||
|
@ -58,7 +70,6 @@ alias .........="cd ../../../../../../../.."
|
|||
|
||||
# tmux aliases
|
||||
# TODO: see if this can be worked around?
|
||||
alias tmux='TERM=screen-256color-bce tmux' # syntax higlighting for vim in tmux
|
||||
alias tmnew="tmux new -s"
|
||||
alias tmls="tmux list-sessions"
|
||||
alias tmatt="tmux attach -t"
|
||||
|
@ -108,7 +119,10 @@ alias sctlu="systemctl --user"
|
|||
alias logs="sudo journalctl"
|
||||
alias logsr="sudo journalctl -r"
|
||||
alias logsf="sudo journalctl -f"
|
||||
alias bt="sudo bluetoothctl"
|
||||
alias btctl="bt"
|
||||
alias btctl="sudo bluetoothctl"
|
||||
alias pbcopy="clip"
|
||||
alias pt="htop -t" # experimental htop tree-view-by-default
|
||||
alias resrc="source \$HOME/.bashrc"
|
||||
alias redshift="redshift -r -l 39.0997:-94.5786 -t 6500K:2500K"
|
||||
|
@ -119,6 +133,7 @@ alias scs="sc-im \"\$NOTES_PATH/_scratch.sc\""
|
|||
alias disks="lsblk && df -h"
|
||||
alias dd="dd status=progress"
|
||||
alias wifi="sudo nmtui"
|
||||
alias pa="pulsemixer"
|
||||
|
||||
# games aliases
|
||||
# this sometimes fixes steam dynamic library issues?
|
||||
|
@ -133,3 +148,6 @@ alias mutt="neomutt"
|
|||
|
||||
# fsw aliases
|
||||
alias fsw-mix-test="fsw \"mix test\" ./**/*.{ex,exs,erl,hrl,xrl,yrl}"
|
||||
|
||||
# weechat aliases
|
||||
alias chat="WEECHAT_PASSPHRASE=\"\$(pass config/weechat-passphrase | head -n 1)\" weechat"
|
|
@ -2,6 +2,6 @@
|
|||
|
||||
# bash_profile is executed immediately after logging in
|
||||
|
||||
if [ -f ~/.bashrc ]; then
|
||||
source ~/.bashrc
|
||||
if [[ -f "$HOME/.bashrc" ]]; then
|
||||
source "$HOME/.bashrc"
|
||||
fi
|
70
apps/shell/bash/rc
Normal file
70
apps/shell/bash/rc
Normal file
|
@ -0,0 +1,70 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
|
||||
|
||||
. "$DOTFILES_PATH/bin/prelude"
|
||||
|
||||
[[ ! $- == *i* ]] && return # stop parsing on a non-interactive shell
|
||||
|
||||
. "$DOTFILES_PATH/apps/shell/bash/aliases.bash"
|
||||
. "$DOTFILES_PATH/apps/shell/bash/autocompletions"
|
||||
. "$DOTFILES_PATH/apps/shell/bash/prompt"
|
||||
|
||||
stty -ixon # disable ctrl-s terminal freezing
|
||||
bind -f "$DOTFILES_PATH/apps/shell/inputrc" # load our key
|
||||
# load our vconsole colors if in a tty
|
||||
if [[ "${TERM%%-*}" = 'linux' ]]; then
|
||||
c="$DOTFILES_PATH/bin/lib/colors/vconsole"
|
||||
[[ -s "$c" ]] && . "$c"
|
||||
fi
|
||||
|
||||
# prevents some Java GUI apps from not working or rendering properly due to
|
||||
# using wacky window managers
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_bytes 1024000"
|
||||
has_command fd && export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
||||
export LS_COLORS='ow=01;36;40'
|
||||
export LESS="-x2" # less tab size of 2 spaces
|
||||
export TERMINAL="urxvtc"
|
||||
export BROWSER="firefox-developer-edition"
|
||||
export HISTFILESIZE="10000000" # "unlimited" history
|
||||
export HISTSIZE="10000000" # "unlimited" history
|
||||
export HISTCONTROL=ignoreboth # ignore duplicates and commands starting with space (" ")
|
||||
shopt -s globstar # allow ** recursive wildcard globbing
|
||||
# prevents binds or commands pulling from history from insta-sending, and
|
||||
# instead places them in the readline for editing
|
||||
shopt -s histverify
|
||||
shopt -s histappend # always _append_ to bash history
|
||||
shopt -s cmdhist # ensure command history is comprised of single lines
|
||||
HISTIGNORE='ls:ll:la' # ignore certain commands
|
||||
|
||||
# set our EDITOR to neovim if we've got it
|
||||
export EDITOR="vim"
|
||||
if has_command nvim; then
|
||||
alias vim="nvim"
|
||||
alias ovim="\\vim"
|
||||
export EDITOR="nvim"
|
||||
fi
|
||||
|
||||
# load a per-device config last so anything can be overridden
|
||||
. maybe_source_env_file bashrc
|
||||
. maybe_source_env_file .hidden/bashrc
|
||||
|
||||
# create paths we kind of expect to exist in some scripts
|
||||
mkdir -p "$NOTES_PATH" "$SCROTS_PATH" "$USER_LOGS_PATH"
|
||||
|
||||
# open nice home instead if we're opening at home
|
||||
if [ "$PWD" = "$HOME" ] || [ "$PWD" = "$NICE_HOME" ]; then
|
||||
cd "$NICE_HOME" || cd || return
|
||||
fi
|
||||
|
||||
[ -f "$HOME/.fzf.bash" ] && . "$HOME/.fzf.bash"
|
||||
|
||||
if [[ -d "$HOME/.asdf/" ]] && [[ -f "$HOME/.asdf/asdf.sh" ]]; then
|
||||
. "$HOME/.asdf/asdf.sh"
|
||||
elif [[ -d /opt/asdf-vm/ ]] && [[ -f /opt/asdf-vm/asdf.sh ]]; then
|
||||
. "/opt/asdf-vm/asdf.sh"
|
||||
fi
|
||||
|
||||
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
|
2
apps/shell/fish/.gitignore
vendored
Normal file
2
apps/shell/fish/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
fish_variables
|
||||
functions
|
184
apps/shell/fish/aliases.fish
Executable file
184
apps/shell/fish/aliases.fish
Executable file
|
@ -0,0 +1,184 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
# ls aliases
|
||||
alias lx 'ls -lXB' # order by filetype
|
||||
alias lk 'ls -lSr' # order by filesize reversed
|
||||
alias lt 'ls -ltr' # order by file modified time
|
||||
alias lc 'ls -ltcr' # order by filectime
|
||||
alias lu 'ls -ltur' # order by file access time
|
||||
alias ls 'ls -h --color --group-directories-first' # flat view w/ directories first
|
||||
alias l 'ls -h --color --group-directories-first' # same as above
|
||||
alias ll 'ls -lv --group-directories-first' # non-flat view
|
||||
alias lm 'll | more'
|
||||
alias lr 'll -R' # please don't - why is this even here...?
|
||||
alias la 'll -A' # show all
|
||||
|
||||
# other file aliases
|
||||
alias tree 'tree -Csuh'
|
||||
alias f fzf
|
||||
alias cp 'rsync -ah --progress'
|
||||
|
||||
# gets the newest file in the current directory (or the specified directory
|
||||
# if one is provided)
|
||||
function ltl
|
||||
set d $argv[1] .
|
||||
set -l l ""
|
||||
for f in $d[1]/*
|
||||
if test -z $l; set l $f; continue; end
|
||||
if command test $f -nt $l; and test ! -d $f
|
||||
set l $f
|
||||
end
|
||||
end
|
||||
echo $l
|
||||
end
|
||||
|
||||
function scount -d "Silent count" -w count
|
||||
count $argv > /dev/null
|
||||
end
|
||||
|
||||
function ltld
|
||||
set d $argv[1] .
|
||||
set -l l ""
|
||||
for f in $d[1]/*
|
||||
if test -z $l; set l $f; continue; end
|
||||
if command test $f -nt $l; and test -d $f
|
||||
set l $f
|
||||
end
|
||||
end
|
||||
echo $l
|
||||
end
|
||||
|
||||
alias vltl "vim (ltl)"
|
||||
alias cdltl "cd (ltld)"
|
||||
alias ltlv vltl
|
||||
|
||||
function d -w cd
|
||||
if scount $argv
|
||||
cd $argv || exit 1
|
||||
else
|
||||
cd $NICE_HOME || exit 1
|
||||
end
|
||||
la
|
||||
end
|
||||
|
||||
# navigation aliases
|
||||
function c -w cd
|
||||
if scount $argv
|
||||
cd $NICE_HOME && d $argv || exit 1
|
||||
else
|
||||
d $NICE_HOME
|
||||
end
|
||||
end
|
||||
|
||||
alias cd.. "d .."
|
||||
alias cdd "d $DOTFILES_PATH" # go to dotfiles
|
||||
alias cde "d $ENV_PATH" # go to env dotfiles
|
||||
alias cdc "d $XDG_CONFIG_HOME" # go to ~/.config
|
||||
alias cdn "d $NOTES_PATH"
|
||||
alias cdl "d $NICE_HOME/dl"
|
||||
alias cdg "d $NICE_HOME/games"
|
||||
|
||||
# quick parent-directory aliases
|
||||
alias .. "d .."
|
||||
alias ... "d ../.."
|
||||
alias .... "d ../../.."
|
||||
alias ..... "d ../../../.."
|
||||
alias ...... "d ../../../../.."
|
||||
alias ....... "d ../../../../../.."
|
||||
alias ........ "d ../../../../../../.."
|
||||
alias ......... "d ../../../../../../../.."
|
||||
|
||||
# tmux aliases
|
||||
# TODO: see if this can be worked around?
|
||||
alias tmnew "tmux new -s"
|
||||
alias tmls "tmux list-sessions"
|
||||
alias tmatt "tmux attach -t"
|
||||
alias tu "tmux attach -t utils || tmux new -s utils"
|
||||
alias tdf "tmux attach -t dotfiles || tmux new -s dotfiles -c $DOTFILES_PATH"
|
||||
alias tmon "tmux attach -t monitoring || tmux new -s monitoring"
|
||||
alias tcom "tmux attach -t comms || tmux new -s comms"
|
||||
alias tn "tmux attach -t notes || tmux new -s notes -c $NOTES_PATH"
|
||||
alias tm "tmux attach -t music || tmux new -s music"
|
||||
|
||||
# git aliases
|
||||
# TODO: make these git aliases in the gitconfig?
|
||||
function g
|
||||
if scount $argv
|
||||
git $argv
|
||||
else
|
||||
git status
|
||||
end
|
||||
end
|
||||
alias gs "git status"
|
||||
alias gd "git diff"
|
||||
alias gds "git diff --staged"
|
||||
# alias gdv "git dv" # TODO: what is this?
|
||||
alias gpl "git pull"
|
||||
alias gp "git push"
|
||||
alias gpa "git push --all && git push --tags"
|
||||
alias gpt "git push && git push --tags"
|
||||
alias gpf "git push --force-with-lease"
|
||||
alias gac "git add -A && git commit"
|
||||
alias gacnv "git add -A && git commit --no-verify"
|
||||
alias gsur "git submodule update --remote"
|
||||
alias glf "git ls-files"
|
||||
alias gl "git log --pretty=format:\"%h %ad%x09%an%x09%s\" --date=short"
|
||||
|
||||
# docker aliases
|
||||
alias dlf "docker logs --tail=500 -f"
|
||||
alias dclf "docker-compose logs --tail=500 -f"
|
||||
alias ctop "docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest"
|
||||
|
||||
# misc aliases
|
||||
alias p "ping 8.8.8.8"
|
||||
alias C "clear && clear"
|
||||
alias r "ranger"
|
||||
alias rn "/usr/bin/watch -n 1"
|
||||
alias sctl "sudo systemctl"
|
||||
alias sctlu "systemctl --user"
|
||||
alias logs "sudo journalctl"
|
||||
alias logsr "sudo journalctl -r"
|
||||
alias logsf "sudo journalctl -f"
|
||||
alias bt "sudo bluetoothctl"
|
||||
alias btctl "bt"
|
||||
alias btctl "sudo bluetoothctl"
|
||||
alias pbcopy "clip"
|
||||
alias pt "htop -t" # experimental htop tree-view-by-default
|
||||
alias resrc "source $XDG_CONFIG_HOME/fish/config.fish"
|
||||
alias redshift "redshift -r -l 39.0997:-94.5786 -t 6500K:2500K"
|
||||
alias gpmdpe "electron --app=/usr/share/gpmdp/resources/app.asar"
|
||||
alias t "task"
|
||||
alias sc "sc-im"
|
||||
alias scs "sc-im $NOTES_PATH/_scratch.sc"
|
||||
alias disks "lsblk && df -h"
|
||||
alias dd "dd status=progress"
|
||||
alias wifi "sudo nmtui"
|
||||
alias year 'cal (date +%Y)'
|
||||
alias y year
|
||||
alias pa pulsemixer
|
||||
|
||||
# games aliases
|
||||
# this sometimes fixes steam dynamic library issues?
|
||||
alias lsteam "env LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1 /usr/$LIB/libxcb.so.1 /usr/$LIB/libgpg-error.so' steam"
|
||||
|
||||
# override the man commands with vim
|
||||
alias _man "\\man"
|
||||
alias man "vman"
|
||||
|
||||
# neomutt is better
|
||||
alias mutt "neomutt"
|
||||
alias mail "mutt"
|
||||
|
||||
# fsw aliases
|
||||
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
|
||||
function chat
|
||||
set -l pass (pass config/weechat-passphrase | head -n 1)
|
||||
env WEECHAT_PASSPHRASE=$pass weechat
|
||||
end
|
33
apps/shell/fish/colors.fish
Executable file
33
apps/shell/fish/colors.fish
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
# TODO: once, I could set backgrounds
|
||||
|
||||
# unused since we handle it ourselves in fish_prompt
|
||||
set -U fish_color_cwd magenta
|
||||
set -U fish_color_cwd_root red
|
||||
set -U fish_color_host normal
|
||||
set -U fish_color_user blue
|
||||
|
||||
set -U fish_color_normal normal # default color
|
||||
set -U fish_color_command white # base command being run (>ls< -la)
|
||||
set -U fish_color_param white # command's parameters
|
||||
set -U fish_color_end green # command delimiter/separators (; and &)
|
||||
set -U fish_color_error red # color of errors
|
||||
set -U fish_color_escape yellow # color of escape codes (\n, \x2d, etc.)
|
||||
set -U fish_color_operator blue # expansion operators (~, *)
|
||||
set -U fish_color_quote yellow # quoted expressions (ls >"/tmp/test dir"<)
|
||||
set -U fish_color_redirection blue # redirection operators (|, >, etc.)
|
||||
set -U fish_color_cancel 333 brblack # sigint (cancel current comment) at prompt (^C)
|
||||
set -U fish_color_autosuggestion 666 brblack # as-you-type suggestions
|
||||
set -U fish_color_match blue # matching parens and the like
|
||||
set -U fish_color_search_match white\x1e\x2d\x2dbackground\x3d333 # selected pager item
|
||||
set -U fish_color_selection blue # vi mode visual selection (only fg)
|
||||
set -U fish_color_valid_path yellow # if an argument is a valid path (only -u?)
|
||||
set -U fish_color_comment 666 brblack # comments like this one!
|
||||
|
||||
# pager shown when completing
|
||||
set -U fish_pager_color_completion white # main color for pager
|
||||
set -U fish_pager_color_description magenta # color for meta description
|
||||
set -U fish_pager_color_prefix blue # the string being completed
|
||||
set -U fish_pager_color_progress white\x1e\x2d\x2dbackground\x3d333 # status indicator at the bottom
|
||||
# set -U fish_pager_color_secondary \x2d\x2dbackground\x3d181818 # alternating rows
|
61
apps/shell/fish/config.fish
Executable file
61
apps/shell/fish/config.fish
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
set -Ux XDG_CONFIG_HOME $HOME/.config
|
||||
set -Ux DOTFILES_PATH $XDG_CONFIG_HOME/dotfiles
|
||||
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
|
||||
|
||||
status --is-interactive || exit
|
||||
|
||||
for f in key-bindings colors prompt aliases
|
||||
source $DOTFILES_PATH/apps/shell/fish/$f.fish
|
||||
end
|
||||
|
||||
set -Ux _JAVA_AWT_WM_NONREPARENTING 1
|
||||
set -Ux TERMINAL kitty
|
||||
set -Ux BROWSER firefox-developer-edition
|
||||
set -Ux ERL_AFLAGS "-kernel shell_history enabled -kernel shell_history_file_bytes 1024000" # iex history
|
||||
|
||||
# set our EDITOR to neovim if we've got it
|
||||
set -Ux EDITOR vim
|
||||
if has_command nvim
|
||||
alias vim nvim
|
||||
alias ovim 'command vim'
|
||||
set -Ux EDITOR nvim
|
||||
end
|
||||
|
||||
# more sane ls colors
|
||||
set -Ux LS_COLORS 'ow=01;36;40'
|
||||
|
||||
has_command fd && set -Ux FZF_DEFAULT_COMMAND 'fd --type f --hidden --follow --exclude .git'
|
||||
|
||||
test -f ~/.fzf/shell/key-bindings.fish && source ~/.fzf/shell/key-bindings.fish
|
||||
|
||||
function fish_greeting
|
||||
fortune
|
||||
end
|
||||
|
||||
# we assume the user uses "$HOME" to just store their mess of dotfiles and other
|
||||
# nonsense that clutters it up and that they have a preferred starting
|
||||
# directory where they keep the stuff they actually care about
|
||||
# we only do this if the user is opening a shell at $HOME
|
||||
if test $PWD = $HOME; or test $PWD = $NICE_HOME;
|
||||
cd $NICE_HOME || cd
|
||||
end
|
||||
|
||||
if test -f $HOME/.asdf/asdf.fish
|
||||
source $HOME/.asdf/asdf.fish
|
||||
else if test -f /opt/asdf-vm/asdf.fish
|
||||
source /opt/asdf-vm/asdf.fish
|
||||
end
|
||||
|
||||
# load a per-device config last so anything can be overridden
|
||||
for cf in config.fish .hidden/config.fish
|
||||
set f $ENV_PATH/$cf
|
||||
test -f $f && source $f
|
||||
end
|
||||
|
||||
mkdir -p $NOTES_PATH $USER_LOGS_PATH $SCROTS_PATH
|
24
apps/shell/fish/key-bindings.fish
Executable file
24
apps/shell/fish/key-bindings.fish
Executable file
|
@ -0,0 +1,24 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
function fish_user_key_bindings
|
||||
fzf_key_bindings
|
||||
fish_vi_key_bindings insert --no-erase
|
||||
|
||||
set vi_esc "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f backward-char force-repaint; end"
|
||||
|
||||
bind -M insert jk $vi_esc
|
||||
bind -M insert Jk $vi_esc
|
||||
bind -M insert JK $vi_esc
|
||||
bind -M insert jj $vi_esc
|
||||
bind -M insert Jj $vi_esc
|
||||
bind -M insert JJ $vi_esc
|
||||
bind -M insert JJ $vi_esc
|
||||
|
||||
bind -M insert \cp up-or-search
|
||||
bind -M insert \cn down-or-search
|
||||
bind -M insert \cs fzf-cd-widget
|
||||
bind -M insert \ce end-of-line
|
||||
bind -M insert \ca beginning-of-line
|
||||
bind -M insert \cw forward-word
|
||||
# bind -M insert \t forward-word
|
||||
end
|
45
apps/shell/fish/paths.fish
Executable file
45
apps/shell/fish/paths.fish
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
set -U fish_user_paths \
|
||||
$HOME/.go \
|
||||
$GOPATH/bin \
|
||||
$DOTFILES_PATH/bin \
|
||||
$ENV_PATH/bin \
|
||||
$HOME/.bin \
|
||||
$HOME/.cargo/bin \
|
||||
$HOME/.yarn/bin
|
||||
|
||||
test -d $HOME/.local/bin && set -U fish_user_paths $HOME/.local/bin $fish_user_paths
|
||||
test -d $HOME/.bin && set -U fish_user_paths $HOME/.local/bin $fish_user_paths
|
||||
|
||||
has_command python && set -U fish_user_paths (python -m site --user-base)"/bin" $fish_user_paths
|
||||
has_command ruby && set -U fish_user_paths (ruby -e 'print Gem.user_dir')"/bin" $fish_user_paths
|
||||
|
||||
if test (dirname (basename $HOME)) = $USER
|
||||
set -Ux NICE_HOME $HOME
|
||||
else
|
||||
set -Ux NICE_HOME /home/$USER
|
||||
end
|
||||
|
||||
for p in $NICE_HOME $HOME $ENV_PATH
|
||||
test -f $p/.nice_home && set -Ux NICE_HOME (cat $p/.nice_home)
|
||||
end
|
||||
|
||||
set -Ux NOTES_PATH $NICE_HOME/doc/notes
|
||||
set -Ux SCROTS_PATH $NICE_HOME/img/scrots
|
||||
set -Ux USER_LOGS_PATH $NICE_HOME/doc/logs
|
||||
|
||||
set -Ux XDG_DESKTOP_DIR $HOME/desktop
|
||||
set -Ux XDG_PUBLICSHARE_DIR $HOME/public
|
||||
set -Ux XDG_TEMPLATES_DIR $HOME/templates
|
||||
|
||||
set -Ux XDG_DOCUMENTS_DIR $NICE_HOME/doc
|
||||
set -Ux XDG_DOWNLOAD_DIR $NICE_HOME/dl
|
||||
set -Ux XDG_MUSIC_DIR $NICE_HOME/music
|
||||
set -Ux XDG_PICTURES_DIR $NICE_HOME/img
|
||||
set -Ux XDG_VIDEOS_DIR $NICE_HOME/video
|
||||
set -Ux XDG_GAMES_DIR $NICE_HOME/games
|
||||
|
||||
set -Ux NOTES_PATH $XDG_DOCUMENTS_DIR/notes
|
||||
set -Ux USER_LOGS_PATH $XDG_DOCUMENTS_DIR/logs
|
||||
set -Ux SCROTS_PATH $XDG_PICTURES_DIR/scrots
|
44
apps/shell/fish/prompt.fish
Executable file
44
apps/shell/fish/prompt.fish
Executable file
|
@ -0,0 +1,44 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
# TODO: if root, background instead?
|
||||
|
||||
set MAX_PATH_PIECE_CHARS $BASH_PROMPT_MAX_PATH_PIECE_CHARS 3
|
||||
|
||||
# prompt rendering functions
|
||||
function preprocess_pwd
|
||||
test (pwd) = / && echo "/" && return 1
|
||||
test (pwd) = $NICE_HOME && echo "~" && return 0
|
||||
# with ellipsis
|
||||
#echo "$(<<< "$p" cut -c2- | awk '{split($0,p,"/");for(k in p){if(k==length(p)){printf "/%s",p[k]}else{if(length(p[k])>'"$((MAX_PATH_PIECE_CHARS+1))"'){printf "/%.'"$((MAX_PATH_PIECE_CHARS))"'s…",p[k]}else{printf "/%s",p[k]}}}}')"
|
||||
# without ellipsis
|
||||
echo (pwd) | cut -c2- | awk '{split($0,p,"/");for(k in p){if(k==length(p)){printf "/%s",p[k]}else{printf "/%.'$MAX_PATH_PIECE_CHARS[1]'s",p[k]}}}'
|
||||
end
|
||||
|
||||
function fish_prompt
|
||||
if test $status -eq 0
|
||||
set_color blue
|
||||
else
|
||||
set_color red
|
||||
end
|
||||
printf $USER"@"$hostname" "
|
||||
set_color magenta
|
||||
printf (preprocess_pwd)" "
|
||||
end
|
||||
|
||||
function fish_mode_prompt; end
|
||||
|
||||
# function fish_right_prompt
|
||||
# set_color brblack
|
||||
# switch $fish_bind_mode
|
||||
# case default
|
||||
# echo 'N'
|
||||
# case insert
|
||||
# echo 'I'
|
||||
# case replace_one
|
||||
# echo 'R'
|
||||
# case replace
|
||||
# echo 'R'
|
||||
# case visual
|
||||
# echo 'V'
|
||||
# end
|
||||
# end
|
|
@ -4,23 +4,25 @@ set -g prefix C-s
|
|||
bind-key s send-prefix
|
||||
|
||||
# reload tmux.conf
|
||||
bind-key T source-file ~/.tmux.conf \; display-message "source-file done"
|
||||
bind-key T source-file "$HOME/.tmux.conf" \; display-message "source-file done"
|
||||
unbind r
|
||||
bind r source-file ~/.tmux.conf
|
||||
bind r source-file "$HOME/.tmux.conf"
|
||||
|
||||
# set -as terminal-overrides ',xterm*:smxx=\E[9m'
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# sane defaults
|
||||
set -g default-terminal "tmux-256color"
|
||||
set-option -g mouse on
|
||||
set -g mouse on
|
||||
|
||||
# honestly not exactly sure?
|
||||
# set -sg escape-time 1
|
||||
set -sg escape-time 0
|
||||
set -g escape-time 0
|
||||
|
||||
# show window activity
|
||||
# TODO: this needs to be properly setup
|
||||
set-window-option -g monitor-activity on
|
||||
set-window-option -g visual-bell on
|
||||
set-window-option -g bell-action other
|
||||
# TODO: this needs to be properly setup - presumably with tmux-session-list
|
||||
setw -g monitor-activity on
|
||||
setw -g visual-bell on
|
||||
setw -g bell-action other
|
||||
|
||||
# common window sizes
|
||||
bind-key W resize-pane -x 100
|
||||
|
@ -36,7 +38,7 @@ bind-key h split-window
|
|||
|
||||
# show tmux status bar by default with (C-s, H) to toggle it
|
||||
set -g status on
|
||||
set-option -g history-limit 102400000
|
||||
set -g history-limit 102400000
|
||||
bind-key H set -s status
|
||||
|
||||
# simple session switching
|
||||
|
@ -44,13 +46,14 @@ bind-key j switch-client -p
|
|||
bind-key h switch-client -p
|
||||
bind-key k switch-client -n
|
||||
bind-key l switch-client -n
|
||||
# bind s run-shell "tmux new-window sh -c '$DOTFILES_PATH/bin/tmuxswitcher'"
|
||||
bind s run-shell "tmux new-window 'sh -c ~/.config/dotfiles/bin/tmuxswitcher'"
|
||||
|
||||
# reset the working directory of the current session
|
||||
bind-key P attach-session -t . -c '#{pane_current_path}' \; display-message 'Reset session dir to #{pane_current_path}'
|
||||
|
||||
# status bar and messages
|
||||
set-option -g status-position bottom
|
||||
set -g status-position bottom
|
||||
set -g status-bg colour0
|
||||
set -g status-fg colour8
|
||||
set -g message-style 'fg=colour7 bg=colour18'
|
||||
|
@ -58,9 +61,9 @@ set -g status-interval 5
|
|||
set -g status-right-length 80
|
||||
set -g status-right "#[fg=colour4]#W#[fg=default]#[bg=default] #H"
|
||||
set -g status-left-length 200
|
||||
set -g status-left "#[fg=colour7]#(~/.config/dotfiles/bin/tmux-session-list #S)"
|
||||
set -g status-left "#[fg=colour7]#(tmux-session-list #S)"
|
||||
|
||||
bind-key O run-shell "~/.config/dotfiles/bin/tmux-save-buffer #S" \; display-message "Saved buffer to ~/<date>.tmux-buffer.log"
|
||||
bind-key O display-message "#(tmux-save-buffer #S)"
|
||||
|
||||
# pane split line colors
|
||||
set -g pane-active-border-style bg=black,fg=blue
|
||||
|
@ -71,10 +74,10 @@ set -g clock-mode-colour colour8
|
|||
|
||||
# windows (which I don't use much...?)
|
||||
# TODO: do I have a use case for windows?
|
||||
set-window-option -g window-status-current-format ''
|
||||
setw -g window-status-current-format ''
|
||||
|
||||
# vim copying
|
||||
set-window-option -g mode-keys vi
|
||||
setw -g mode-keys vi
|
||||
|
||||
# 1-based indexing for key binding simplicity
|
||||
set -g base-index 1
|
||||
|
@ -133,21 +136,20 @@ set -g @resurrect-save 'C-v'
|
|||
set -g @resurrect-restore 'R'
|
||||
|
||||
# initialize tmux plugin manager
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
run '$HOME/.tmux/plugins/tpm/tpm'
|
||||
|
||||
# attempt at integrating nested tmux sessions nicely
|
||||
bind -T root F12 \
|
||||
set prefix None \;\
|
||||
set key-table off \;\
|
||||
set status off \
|
||||
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
|
||||
refresh-client -S \;\
|
||||
# bind -T root F12 \
|
||||
# set prefix None \;\
|
||||
# set key-table off \;\
|
||||
# set status off \
|
||||
# if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
|
||||
# refresh-client -S \;\
|
||||
|
||||
bind -T off F12 \
|
||||
set -u prefix \;\
|
||||
set -u key-table \;\
|
||||
set status on \;\
|
||||
refresh-client -S
|
||||
# bind -T off F12 \
|
||||
# set -u prefix \;\
|
||||
# set -u key-table \;\
|
||||
# set status on \;\
|
||||
# refresh-client -S
|
||||
|
||||
unbind-key C-p
|
||||
|
8
apps/shell/user-dirs
Normal file
8
apps/shell/user-dirs
Normal file
|
@ -0,0 +1,8 @@
|
|||
XDG_DESKTOP_DIR="$HOME/desktop"
|
||||
XDG_DOCUMENTS_DIR="$HOME/../doc"
|
||||
XDG_DOWNLOAD_DIR="$HOME/../dl"
|
||||
XDG_MUSIC_DIR="$HOME/../music"
|
||||
XDG_PICTURES_DIR="$HOME/../img"
|
||||
XDG_PUBLICSHARE_DIR="$HOME/public"
|
||||
XDG_TEMPLATES_DIR="$HOME/templates"
|
||||
XDG_VIDEOS_DIR="$HOME/../video"
|
1
apps/tmpfiles/disable-lid-wakeup
Normal file
1
apps/tmpfiles/disable-lid-wakeup
Normal file
|
@ -0,0 +1 @@
|
|||
w /proc/acpi/wakeup - - - - LID
|
2
apps/udev-rules/lowbat
Normal file
2
apps/udev-rules/lowbat
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Suspend the system when battery level drops to 3% or lower
|
||||
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="/usr/bin/systemctl hibernate"
|
1
apps/udev-rules/wifi-powersave
Normal file
1
apps/udev-rules/wifi-powersave
Normal file
|
@ -0,0 +1 @@
|
|||
ACTION=="add", SUBSYSTEM=="net", KERNEL=="wl*", RUN+="/usr/bin/iw dev $name set power_save on"
|
21
apps/weechat/.gitignore
vendored
21
apps/weechat/.gitignore
vendored
|
@ -1,2 +1,19 @@
|
|||
*
|
||||
!.gitignore
|
||||
/*
|
||||
!/alias.conf
|
||||
!/buflist.conf
|
||||
!/charset.conf
|
||||
!/exec.conf
|
||||
!/fifo.conf
|
||||
!/fset.conf
|
||||
!/irc.conf
|
||||
!/logger.conf
|
||||
!/lua.conf
|
||||
!/perl.conf
|
||||
!/python.conf
|
||||
!/relay.conf
|
||||
!/script.conf
|
||||
!/spell.conf
|
||||
!/tcl.conf
|
||||
!/trigger.conf
|
||||
!/weechat.conf
|
||||
!/xfer.conf
|
||||
|
|
47
apps/weechat/alias.conf
Normal file
47
apps/weechat/alias.conf
Normal file
|
@ -0,0 +1,47 @@
|
|||
#
|
||||
# weechat -- alias.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[cmd]
|
||||
AAWAY = "allserv /away"
|
||||
ANICK = "allserv /nick"
|
||||
BEEP = "print -beep"
|
||||
BYE = "quit"
|
||||
C = "buffer clear"
|
||||
CHAT = "dcc chat"
|
||||
CL = "buffer clear"
|
||||
CLOSE = "buffer close"
|
||||
EXIT = "quit"
|
||||
IG = "ignore"
|
||||
J = "join"
|
||||
K = "kick"
|
||||
KB = "kickban"
|
||||
LEAVE = "part"
|
||||
M = "msg"
|
||||
MSGBUF = "command -buffer $1 * /input send $2-"
|
||||
MUB = "unban *"
|
||||
N = "names"
|
||||
Q = "query"
|
||||
REDRAW = "window refresh"
|
||||
SAY = "msg *"
|
||||
SIGNOFF = "quit"
|
||||
T = "topic"
|
||||
UB = "unban"
|
||||
UMODE = "mode $nick"
|
||||
V = "command core version"
|
||||
W = "who"
|
||||
WC = "window close"
|
||||
WI = "whois"
|
||||
WII = "whois $1 $1"
|
||||
WM = "window merge"
|
||||
WW = "whowas"
|
||||
|
||||
[completion]
|
||||
MSGBUF = "%(buffers_plugins_names)"
|
39
apps/weechat/buflist.conf
Normal file
39
apps/weechat/buflist.conf
Normal file
|
@ -0,0 +1,39 @@
|
|||
#
|
||||
# weechat -- buflist.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
add_newline = on
|
||||
auto_scroll = 50
|
||||
display_conditions = "${buffer.hidden}==0"
|
||||
enabled = on
|
||||
mouse_jump_visited_buffer = off
|
||||
mouse_move_buffer = on
|
||||
mouse_wheel = on
|
||||
nick_prefix = off
|
||||
nick_prefix_empty = on
|
||||
signals_refresh = ""
|
||||
sort = "number,-active"
|
||||
|
||||
[format]
|
||||
buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"
|
||||
buffer_current = "${color:,blue}${format_buffer}"
|
||||
hotlist = " ${color:green}(${hotlist}${color:green})"
|
||||
hotlist_highlight = "${color:magenta}"
|
||||
hotlist_low = "${color:white}"
|
||||
hotlist_message = "${color:brown}"
|
||||
hotlist_none = "${color:default}"
|
||||
hotlist_private = "${color:green}"
|
||||
hotlist_separator = "${color:default},"
|
||||
indent = " "
|
||||
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
|
||||
name = "${name}"
|
||||
nick_prefix = "${color_nick_prefix}${nick_prefix}"
|
||||
number = "${color:green}${number}${if:${number_displayed}?.: }"
|
18
apps/weechat/charset.conf
Normal file
18
apps/weechat/charset.conf
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# weechat -- charset.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[default]
|
||||
decode = "iso-8859-1"
|
||||
encode = ""
|
||||
|
||||
[decode]
|
||||
|
||||
[encode]
|
19
apps/weechat/exec.conf
Normal file
19
apps/weechat/exec.conf
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# weechat -- exec.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[command]
|
||||
default_options = ""
|
||||
purge_delay = 0
|
||||
shell = "${env:SHELL}"
|
||||
|
||||
[color]
|
||||
flag_finished = lightred
|
||||
flag_running = lightgreen
|
14
apps/weechat/fifo.conf
Normal file
14
apps/weechat/fifo.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# weechat -- fifo.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[file]
|
||||
enabled = on
|
||||
path = "%h/weechat_fifo"
|
95
apps/weechat/fset.conf
Normal file
95
apps/weechat/fset.conf
Normal file
|
@ -0,0 +1,95 @@
|
|||
#
|
||||
# weechat -- fset.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
auto_unmark = off
|
||||
condition_catch_set = "${count} >= 1"
|
||||
export_help_default = on
|
||||
format_number = 1
|
||||
marked_string = "*"
|
||||
scroll_horizontal = 10
|
||||
show_plugins_desc = off
|
||||
sort = "~name"
|
||||
unmarked_string = " "
|
||||
use_color_value = off
|
||||
use_keys = on
|
||||
use_mute = off
|
||||
|
||||
[format]
|
||||
export_help = "# ${description2}"
|
||||
export_option = "/set ${name} ${quoted_value}"
|
||||
export_option_null = "/unset ${name}"
|
||||
option1 = ""
|
||||
option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"
|
||||
|
||||
[color]
|
||||
default_value = default
|
||||
default_value_selected = white
|
||||
description = default
|
||||
description_selected = white
|
||||
file = default
|
||||
file_changed = brown
|
||||
file_changed_selected = yellow
|
||||
file_selected = white
|
||||
help_default_value = white
|
||||
help_description = default
|
||||
help_name = white
|
||||
help_quotes = darkgray
|
||||
help_values = default
|
||||
index = cyan
|
||||
index_selected = lightcyan
|
||||
line_marked_bg1 = default
|
||||
line_marked_bg2 = default
|
||||
line_selected_bg1 = blue
|
||||
line_selected_bg2 = red
|
||||
marked = brown
|
||||
marked_selected = yellow
|
||||
max = default
|
||||
max_selected = white
|
||||
min = default
|
||||
min_selected = white
|
||||
name = default
|
||||
name_changed = brown
|
||||
name_changed_selected = yellow
|
||||
name_selected = white
|
||||
option = default
|
||||
option_changed = brown
|
||||
option_changed_selected = yellow
|
||||
option_selected = white
|
||||
parent_name = default
|
||||
parent_name_selected = white
|
||||
parent_value = cyan
|
||||
parent_value_selected = lightcyan
|
||||
quotes = darkgray
|
||||
quotes_changed = default
|
||||
quotes_changed_selected = white
|
||||
quotes_selected = default
|
||||
section = default
|
||||
section_changed = brown
|
||||
section_changed_selected = yellow
|
||||
section_selected = white
|
||||
string_values = default
|
||||
string_values_selected = white
|
||||
title_count_options = cyan
|
||||
title_current_option = lightcyan
|
||||
title_filter = yellow
|
||||
title_marked_options = lightgreen
|
||||
title_sort = white
|
||||
type = green
|
||||
type_selected = lightgreen
|
||||
unmarked = default
|
||||
unmarked_selected = white
|
||||
value = cyan
|
||||
value_changed = brown
|
||||
value_changed_selected = yellow
|
||||
value_selected = lightcyan
|
||||
value_undef = magenta
|
||||
value_undef_selected = lightmagenta
|
158
apps/weechat/irc.conf
Normal file
158
apps/weechat/irc.conf
Normal file
|
@ -0,0 +1,158 @@
|
|||
#
|
||||
# weechat -- irc.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
buffer_open_before_autojoin = on
|
||||
buffer_open_before_join = off
|
||||
buffer_switch_autojoin = on
|
||||
buffer_switch_join = on
|
||||
color_nicks_in_names = off
|
||||
color_nicks_in_nicklist = off
|
||||
color_nicks_in_server_messages = on
|
||||
color_pv_nick_like_channel = on
|
||||
ctcp_time_format = "%a, %d %b %Y %T %z"
|
||||
display_away = local
|
||||
display_ctcp_blocked = on
|
||||
display_ctcp_reply = on
|
||||
display_ctcp_unknown = on
|
||||
display_host_join = on
|
||||
display_host_join_local = on
|
||||
display_host_quit = on
|
||||
display_join_message = "329,332,333,366"
|
||||
display_old_topic = on
|
||||
display_pv_away_once = on
|
||||
display_pv_back = on
|
||||
display_pv_warning_address = off
|
||||
highlight_channel = "$nick"
|
||||
highlight_pv = "$nick"
|
||||
highlight_server = "$nick"
|
||||
highlight_tags_restrict = "irc_privmsg,irc_notice"
|
||||
item_channel_modes_hide_args = "k"
|
||||
item_display_server = buffer_plugin
|
||||
item_nick_modes = on
|
||||
item_nick_prefix = on
|
||||
join_auto_add_chantype = off
|
||||
msgbuffer_fallback = current
|
||||
new_channel_position = none
|
||||
new_pv_position = none
|
||||
nick_completion_smart = speakers
|
||||
nick_mode = prefix
|
||||
nick_mode_empty = off
|
||||
nicks_hide_password = "nickserv"
|
||||
notice_as_pv = auto
|
||||
notice_welcome_redirect = on
|
||||
notice_welcome_tags = ""
|
||||
notify_tags_ison = "notify_message"
|
||||
notify_tags_whois = "notify_message"
|
||||
part_closes_buffer = off
|
||||
pv_buffer = independent
|
||||
pv_tags = "notify_private"
|
||||
raw_messages = 256
|
||||
server_buffer = merge_with_core
|
||||
smart_filter = on
|
||||
smart_filter_chghost = on
|
||||
smart_filter_delay = 5
|
||||
smart_filter_join = on
|
||||
smart_filter_join_unmask = 30
|
||||
smart_filter_mode = "+"
|
||||
smart_filter_nick = on
|
||||
smart_filter_quit = on
|
||||
temporary_servers = off
|
||||
topic_strip_colors = off
|
||||
|
||||
[color]
|
||||
input_nick = lightcyan
|
||||
item_channel_modes = default
|
||||
item_lag_counting = default
|
||||
item_lag_finished = yellow
|
||||
item_nick_modes = default
|
||||
message_chghost = brown
|
||||
message_join = green
|
||||
message_kick = red
|
||||
message_quit = red
|
||||
mirc_remap = "1,-1:darkgray"
|
||||
nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
|
||||
notice = green
|
||||
reason_kick = default
|
||||
reason_quit = default
|
||||
topic_current = default
|
||||
topic_new = white
|
||||
topic_old = default
|
||||
|
||||
[network]
|
||||
autoreconnect_delay_growing = 2
|
||||
autoreconnect_delay_max = 600
|
||||
ban_mask_default = "*!$ident@$host"
|
||||
colors_receive = on
|
||||
colors_send = on
|
||||
lag_check = 60
|
||||
lag_max = 1800
|
||||
lag_min_show = 500
|
||||
lag_reconnect = 300
|
||||
lag_refresh_interval = 1
|
||||
notify_check_ison = 1
|
||||
notify_check_whois = 5
|
||||
sasl_fail_unavailable = on
|
||||
send_unknown_commands = off
|
||||
whois_double_nick = off
|
||||
|
||||
[msgbuffer]
|
||||
|
||||
[ctcp]
|
||||
|
||||
[ignore]
|
||||
|
||||
[server_default]
|
||||
addresses = ""
|
||||
anti_flood_prio_high = 2
|
||||
anti_flood_prio_low = 2
|
||||
autoconnect = off
|
||||
autojoin = ""
|
||||
autoreconnect = on
|
||||
autoreconnect_delay = 10
|
||||
autorejoin = off
|
||||
autorejoin_delay = 30
|
||||
away_check = 0
|
||||
away_check_max_nicks = 25
|
||||
capabilities = ""
|
||||
charset_message = message
|
||||
command = ""
|
||||
command_delay = 0
|
||||
connection_timeout = 60
|
||||
ipv6 = on
|
||||
local_hostname = ""
|
||||
msg_kick = ""
|
||||
msg_part = "WeeChat ${info:version}"
|
||||
msg_quit = "WeeChat ${info:version}"
|
||||
nicks = "daniel,daniel1,daniel2,daniel3,daniel4"
|
||||
nicks_alternate = on
|
||||
notify = ""
|
||||
password = ""
|
||||
proxy = ""
|
||||
realname = ""
|
||||
sasl_fail = continue
|
||||
sasl_key = ""
|
||||
sasl_mechanism = plain
|
||||
sasl_password = ""
|
||||
sasl_timeout = 15
|
||||
sasl_username = ""
|
||||
split_msg_max_length = 512
|
||||
ssl = off
|
||||
ssl_cert = ""
|
||||
ssl_dhkey_size = 2048
|
||||
ssl_fingerprint = ""
|
||||
ssl_password = ""
|
||||
ssl_priorities = "NORMAL:-VERS-SSL3.0"
|
||||
ssl_verify = on
|
||||
usermode = ""
|
||||
username = "daniel"
|
||||
|
||||
[server]
|
36
apps/weechat/logger.conf
Normal file
36
apps/weechat/logger.conf
Normal file
|
@ -0,0 +1,36 @@
|
|||
#
|
||||
# weechat -- logger.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
backlog = 20
|
||||
backlog_conditions = ""
|
||||
|
||||
[color]
|
||||
backlog_end = default
|
||||
backlog_line = default
|
||||
|
||||
[file]
|
||||
auto_log = on
|
||||
color_lines = off
|
||||
flush_delay = 120
|
||||
fsync = off
|
||||
info_lines = off
|
||||
mask = "$plugin.$name.weechatlog"
|
||||
name_lower_case = on
|
||||
nick_prefix = ""
|
||||
nick_suffix = ""
|
||||
path = "%h/logs/"
|
||||
replacement_char = "_"
|
||||
time_format = "%Y-%m-%d %H:%M:%S"
|
||||
|
||||
[level]
|
||||
|
||||
[mask]
|
14
apps/weechat/lua.conf
Normal file
14
apps/weechat/lua.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# weechat -- lua.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
check_license = off
|
||||
eval_keep_context = on
|
14
apps/weechat/perl.conf
Normal file
14
apps/weechat/perl.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# weechat -- perl.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
check_license = off
|
||||
eval_keep_context = on
|
14
apps/weechat/python.conf
Normal file
14
apps/weechat/python.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# weechat -- python.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
check_license = off
|
||||
eval_keep_context = on
|
55
apps/weechat/relay.conf
Normal file
55
apps/weechat/relay.conf
Normal file
|
@ -0,0 +1,55 @@
|
|||
#
|
||||
# weechat -- relay.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
auto_open_buffer = on
|
||||
raw_messages = 256
|
||||
|
||||
[color]
|
||||
client = cyan
|
||||
status_active = lightblue
|
||||
status_auth_failed = lightred
|
||||
status_connecting = yellow
|
||||
status_disconnected = lightred
|
||||
status_waiting_auth = brown
|
||||
text = default
|
||||
text_bg = default
|
||||
text_selected = white
|
||||
|
||||
[network]
|
||||
allow_empty_password = off
|
||||
allowed_ips = ""
|
||||
bind_address = ""
|
||||
clients_purge_delay = 0
|
||||
compression_level = 6
|
||||
ipv6 = on
|
||||
max_clients = 5
|
||||
password = ""
|
||||
ssl_cert_key = "%h/ssl/relay.pem"
|
||||
ssl_priorities = "NORMAL:-VERS-SSL3.0"
|
||||
totp_secret = ""
|
||||
totp_window = 0
|
||||
websocket_allowed_origins = ""
|
||||
|
||||
[irc]
|
||||
backlog_max_minutes = 1440
|
||||
backlog_max_number = 256
|
||||
backlog_since_last_disconnect = on
|
||||
backlog_since_last_message = off
|
||||
backlog_tags = "irc_privmsg"
|
||||
backlog_time_format = "[%H:%M] "
|
||||
|
||||
[weechat]
|
||||
commands = ""
|
||||
|
||||
[port]
|
||||
|
||||
[path]
|
56
apps/weechat/script.conf
Normal file
56
apps/weechat/script.conf
Normal file
|
@ -0,0 +1,56 @@
|
|||
#
|
||||
# weechat -- script.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
columns = "%s %n %V %v %u | %d | %t"
|
||||
diff_color = on
|
||||
diff_command = "auto"
|
||||
display_source = on
|
||||
quiet_actions = on
|
||||
sort = "i,p,n"
|
||||
translate_description = on
|
||||
use_keys = on
|
||||
|
||||
[color]
|
||||
status_autoloaded = cyan
|
||||
status_held = white
|
||||
status_installed = lightcyan
|
||||
status_obsolete = lightmagenta
|
||||
status_popular = yellow
|
||||
status_running = lightgreen
|
||||
status_unknown = lightred
|
||||
text = default
|
||||
text_bg = default
|
||||
text_bg_selected = red
|
||||
text_date = default
|
||||
text_date_selected = white
|
||||
text_delimiters = default
|
||||
text_description = default
|
||||
text_description_selected = white
|
||||
text_extension = default
|
||||
text_extension_selected = white
|
||||
text_name = cyan
|
||||
text_name_selected = lightcyan
|
||||
text_selected = white
|
||||
text_tags = brown
|
||||
text_tags_selected = yellow
|
||||
text_version = magenta
|
||||
text_version_loaded = default
|
||||
text_version_loaded_selected = white
|
||||
text_version_selected = lightmagenta
|
||||
|
||||
[scripts]
|
||||
autoload = on
|
||||
cache_expire = 1440
|
||||
download_timeout = 30
|
||||
hold = ""
|
||||
path = "%h/script"
|
||||
url = "https://weechat.org/files/plugins.xml.gz"
|
33
apps/weechat/spell.conf
Normal file
33
apps/weechat/spell.conf
Normal file
|
@ -0,0 +1,33 @@
|
|||
#
|
||||
# weechat -- spell.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[color]
|
||||
misspelled = lightred
|
||||
suggestion = default
|
||||
suggestion_delimiter_dict = cyan
|
||||
suggestion_delimiter_word = cyan
|
||||
|
||||
[check]
|
||||
commands = "away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
|
||||
default_dict = ""
|
||||
during_search = off
|
||||
enabled = off
|
||||
real_time = off
|
||||
suggestions = -1
|
||||
word_min_length = 2
|
||||
|
||||
[dict]
|
||||
|
||||
[look]
|
||||
suggestion_delimiter_dict = " / "
|
||||
suggestion_delimiter_word = ","
|
||||
|
||||
[option]
|
14
apps/weechat/tcl.conf
Normal file
14
apps/weechat/tcl.conf
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# weechat -- tcl.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
check_license = off
|
||||
eval_keep_context = on
|
67
apps/weechat/trigger.conf
Normal file
67
apps/weechat/trigger.conf
Normal file
|
@ -0,0 +1,67 @@
|
|||
#
|
||||
# weechat -- trigger.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
enabled = on
|
||||
monitor_strip_colors = off
|
||||
|
||||
[color]
|
||||
flag_command = lightgreen
|
||||
flag_conditions = yellow
|
||||
flag_post_action = lightblue
|
||||
flag_regex = lightcyan
|
||||
flag_return_code = lightmagenta
|
||||
regex = white
|
||||
replace = cyan
|
||||
trigger = green
|
||||
trigger_disabled = red
|
||||
|
||||
[trigger]
|
||||
beep.arguments = ""
|
||||
beep.command = "/print -beep"
|
||||
beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})"
|
||||
beep.enabled = on
|
||||
beep.hook = print
|
||||
beep.post_action = none
|
||||
beep.regex = ""
|
||||
beep.return_code = ok
|
||||
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
|
||||
cmd_pass.command = ""
|
||||
cmd_pass.conditions = ""
|
||||
cmd_pass.enabled = on
|
||||
cmd_pass.hook = modifier
|
||||
cmd_pass.post_action = none
|
||||
cmd_pass.regex = "==^((/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +(id|identify|set +password|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
|
||||
cmd_pass.return_code = ok
|
||||
cmd_pass_register.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
|
||||
cmd_pass_register.command = ""
|
||||
cmd_pass_register.conditions = ""
|
||||
cmd_pass_register.enabled = on
|
||||
cmd_pass_register.hook = modifier
|
||||
cmd_pass_register.post_action = none
|
||||
cmd_pass_register.regex = "==^(/(msg|m|quote) +nickserv +register +)([^ ]+)(.*)==${re:1}${hide:*,${re:3}}${re:4}"
|
||||
cmd_pass_register.return_code = ok
|
||||
msg_auth.arguments = "5000|irc_message_auth"
|
||||
msg_auth.command = ""
|
||||
msg_auth.conditions = ""
|
||||
msg_auth.enabled = on
|
||||
msg_auth.hook = modifier
|
||||
msg_auth.post_action = none
|
||||
msg_auth.regex = "==^(.*(id|identify|set +password|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
|
||||
msg_auth.return_code = ok
|
||||
server_pass.arguments = "5000|input_text_display;5000|history_add"
|
||||
server_pass.command = ""
|
||||
server_pass.conditions = ""
|
||||
server_pass.enabled = on
|
||||
server_pass.hook = modifier
|
||||
server_pass.post_action = none
|
||||
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}"
|
||||
server_pass.return_code = ok
|
674
apps/weechat/weechat.conf
Normal file
674
apps/weechat/weechat.conf
Normal file
|
@ -0,0 +1,674 @@
|
|||
#
|
||||
# weechat -- weechat.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[debug]
|
||||
|
||||
[startup]
|
||||
command_after_plugins = ""
|
||||
command_before_plugins = ""
|
||||
display_logo = on
|
||||
display_version = on
|
||||
sys_rlimit = ""
|
||||
|
||||
[look]
|
||||
align_end_of_lines = message
|
||||
align_multiline_words = on
|
||||
bar_more_down = "++"
|
||||
bar_more_left = "<<"
|
||||
bar_more_right = ">>"
|
||||
bar_more_up = "--"
|
||||
bare_display_exit_on_input = on
|
||||
bare_display_time_format = "%H:%M"
|
||||
buffer_auto_renumber = on
|
||||
buffer_notify_default = all
|
||||
buffer_position = end
|
||||
buffer_search_case_sensitive = off
|
||||
buffer_search_force_default = off
|
||||
buffer_search_regex = off
|
||||
buffer_search_where = prefix_message
|
||||
buffer_time_format = "%H:%M:%S"
|
||||
buffer_time_same = ""
|
||||
color_basic_force_bold = off
|
||||
color_inactive_buffer = on
|
||||
color_inactive_message = on
|
||||
color_inactive_prefix = on
|
||||
color_inactive_prefix_buffer = on
|
||||
color_inactive_time = off
|
||||
color_inactive_window = on
|
||||
color_nick_offline = off
|
||||
color_pairs_auto_reset = 5
|
||||
color_real_white = off
|
||||
command_chars = ""
|
||||
command_incomplete = off
|
||||
confirm_quit = off
|
||||
confirm_upgrade = off
|
||||
day_change = on
|
||||
day_change_message_1date = "-- %a, %d %b %Y --"
|
||||
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
|
||||
eat_newline_glitch = off
|
||||
emphasized_attributes = ""
|
||||
highlight = ""
|
||||
highlight_regex = ""
|
||||
highlight_tags = ""
|
||||
hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0"
|
||||
hotlist_buffer_separator = ", "
|
||||
hotlist_count_max = 2
|
||||
hotlist_count_min_msg = 2
|
||||
hotlist_names_count = 3
|
||||
hotlist_names_length = 0
|
||||
hotlist_names_level = 12
|
||||
hotlist_names_merged_buffers = off
|
||||
hotlist_prefix = "H: "
|
||||
hotlist_remove = merged
|
||||
hotlist_short_names = on
|
||||
hotlist_sort = group_time_asc
|
||||
hotlist_suffix = ""
|
||||
hotlist_unique_numbers = on
|
||||
input_cursor_scroll = 20
|
||||
input_share = none
|
||||
input_share_overwrite = off
|
||||
input_undo_max = 32
|
||||
item_away_message = on
|
||||
item_buffer_filter = "*"
|
||||
item_buffer_zoom = "!"
|
||||
item_mouse_status = "M"
|
||||
item_time_format = "%H:%M"
|
||||
jump_current_to_previous_buffer = on
|
||||
jump_previous_buffer_when_closing = on
|
||||
jump_smart_back_to_buffer = on
|
||||
key_bind_safe = on
|
||||
key_grab_delay = 800
|
||||
mouse = off
|
||||
mouse_timer_delay = 100
|
||||
nick_color_force = ""
|
||||
nick_color_hash = djb2
|
||||
nick_color_hash_salt = ""
|
||||
nick_color_stop_chars = "_|["
|
||||
nick_prefix = ""
|
||||
nick_suffix = ""
|
||||
paste_auto_add_newline = on
|
||||
paste_bracketed = on
|
||||
paste_bracketed_timer_delay = 10
|
||||
paste_max_lines = 1
|
||||
prefix_action = " *"
|
||||
prefix_align = right
|
||||
prefix_align_max = 0
|
||||
prefix_align_min = 0
|
||||
prefix_align_more = "+"
|
||||
prefix_align_more_after = on
|
||||
prefix_buffer_align = right
|
||||
prefix_buffer_align_max = 0
|
||||
prefix_buffer_align_more = "+"
|
||||
prefix_buffer_align_more_after = on
|
||||
prefix_error = "=!="
|
||||
prefix_join = "-->"
|
||||
prefix_network = "--"
|
||||
prefix_quit = "<--"
|
||||
prefix_same_nick = ""
|
||||
prefix_same_nick_middle = ""
|
||||
prefix_suffix = "|"
|
||||
quote_nick_prefix = "<"
|
||||
quote_nick_suffix = ">"
|
||||
quote_time_format = "%H:%M:%S"
|
||||
read_marker = line
|
||||
read_marker_always_show = off
|
||||
read_marker_string = "- "
|
||||
save_config_on_exit = on
|
||||
save_config_with_fsync = off
|
||||
save_layout_on_exit = none
|
||||
scroll_amount = 3
|
||||
scroll_bottom_after_switch = off
|
||||
scroll_page_percent = 100
|
||||
search_text_not_found_alert = on
|
||||
separator_horizontal = "-"
|
||||
separator_vertical = ""
|
||||
tab_width = 1
|
||||
time_format = "%a, %d %b %Y %T"
|
||||
window_auto_zoom = off
|
||||
window_separator_horizontal = on
|
||||
window_separator_vertical = on
|
||||
window_title = ""
|
||||
word_chars_highlight = "!\u00A0,-,_,|,alnum"
|
||||
word_chars_input = "!\u00A0,-,_,|,alnum"
|
||||
|
||||
[palette]
|
||||
|
||||
[color]
|
||||
bar_more = lightmagenta
|
||||
chat = default
|
||||
chat_bg = default
|
||||
chat_buffer = white
|
||||
chat_channel = white
|
||||
chat_day_change = cyan
|
||||
chat_delimiters = green
|
||||
chat_highlight = yellow
|
||||
chat_highlight_bg = magenta
|
||||
chat_host = cyan
|
||||
chat_inactive_buffer = default
|
||||
chat_inactive_window = default
|
||||
chat_nick = lightcyan
|
||||
chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"
|
||||
chat_nick_offline = default
|
||||
chat_nick_offline_highlight = default
|
||||
chat_nick_offline_highlight_bg = blue
|
||||
chat_nick_other = cyan
|
||||
chat_nick_prefix = green
|
||||
chat_nick_self = white
|
||||
chat_nick_suffix = green
|
||||
chat_prefix_action = white
|
||||
chat_prefix_buffer = brown
|
||||
chat_prefix_buffer_inactive_buffer = default
|
||||
chat_prefix_error = yellow
|
||||
chat_prefix_join = lightgreen
|
||||
chat_prefix_more = lightmagenta
|
||||
chat_prefix_network = magenta
|
||||
chat_prefix_quit = lightred
|
||||
chat_prefix_suffix = green
|
||||
chat_read_marker = magenta
|
||||
chat_read_marker_bg = default
|
||||
chat_server = brown
|
||||
chat_tags = red
|
||||
chat_text_found = yellow
|
||||
chat_text_found_bg = lightmagenta
|
||||
chat_time = default
|
||||
chat_time_delimiters = brown
|
||||
chat_value = cyan
|
||||
chat_value_null = blue
|
||||
emphasized = yellow
|
||||
emphasized_bg = magenta
|
||||
input_actions = lightgreen
|
||||
input_text_not_found = red
|
||||
item_away = yellow
|
||||
nicklist_away = cyan
|
||||
nicklist_group = green
|
||||
separator = blue
|
||||
status_count_highlight = magenta
|
||||
status_count_msg = brown
|
||||
status_count_other = default
|
||||
status_count_private = green
|
||||
status_data_highlight = lightmagenta
|
||||
status_data_msg = yellow
|
||||
status_data_other = default
|
||||
status_data_private = lightgreen
|
||||
status_filter = green
|
||||
status_more = yellow
|
||||
status_mouse = green
|
||||
status_name = white
|
||||
status_name_ssl = lightgreen
|
||||
status_nicklist_count = default
|
||||
status_number = yellow
|
||||
status_time = default
|
||||
|
||||
[completion]
|
||||
base_word_until_cursor = on
|
||||
command_inline = on
|
||||
default_template = "%(nicks)|%(irc_channels)"
|
||||
nick_add_space = on
|
||||
nick_case_sensitive = off
|
||||
nick_completer = ": "
|
||||
nick_first_only = off
|
||||
nick_ignore_chars = "[]`_-^"
|
||||
partial_completion_alert = on
|
||||
partial_completion_command = off
|
||||
partial_completion_command_arg = off
|
||||
partial_completion_count = on
|
||||
partial_completion_other = off
|
||||
partial_completion_templates = "config_options"
|
||||
|
||||
[history]
|
||||
display_default = 5
|
||||
max_buffer_lines_minutes = 0
|
||||
max_buffer_lines_number = 4096
|
||||
max_commands = 100
|
||||
max_visited_buffers = 50
|
||||
|
||||
[proxy]
|
||||
|
||||
[network]
|
||||
connection_timeout = 60
|
||||
gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt"
|
||||
gnutls_handshake_timeout = 30
|
||||
proxy_curl = ""
|
||||
|
||||
[plugin]
|
||||
autoload = "*"
|
||||
debug = off
|
||||
extension = ".so,.dll"
|
||||
path = "%h/plugins"
|
||||
save_config_on_unload = on
|
||||
|
||||
[bar]
|
||||
buflist.color_bg = default
|
||||
buflist.color_delim = default
|
||||
buflist.color_fg = default
|
||||
buflist.conditions = ""
|
||||
buflist.filling_left_right = vertical
|
||||
buflist.filling_top_bottom = columns_vertical
|
||||
buflist.hidden = off
|
||||
buflist.items = "buflist"
|
||||
buflist.position = left
|
||||
buflist.priority = 0
|
||||
buflist.separator = on
|
||||
buflist.size = 0
|
||||
buflist.size_max = 0
|
||||
buflist.type = root
|
||||
fset.color_bg = default
|
||||
fset.color_delim = cyan
|
||||
fset.color_fg = default
|
||||
fset.conditions = "${buffer.full_name} == fset.fset"
|
||||
fset.filling_left_right = vertical
|
||||
fset.filling_top_bottom = horizontal
|
||||
fset.hidden = off
|
||||
fset.items = "fset"
|
||||
fset.position = top
|
||||
fset.priority = 0
|
||||
fset.separator = on
|
||||
fset.size = 3
|
||||
fset.size_max = 3
|
||||
fset.type = window
|
||||
input.color_bg = default
|
||||
input.color_delim = cyan
|
||||
input.color_fg = default
|
||||
input.conditions = ""
|
||||
input.filling_left_right = vertical
|
||||
input.filling_top_bottom = horizontal
|
||||
input.hidden = off
|
||||
input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
|
||||
input.position = bottom
|
||||
input.priority = 1000
|
||||
input.separator = off
|
||||
input.size = 1
|
||||
input.size_max = 0
|
||||
input.type = window
|
||||
nicklist.color_bg = default
|
||||
nicklist.color_delim = cyan
|
||||
nicklist.color_fg = default
|
||||
nicklist.conditions = "${nicklist}"
|
||||
nicklist.filling_left_right = vertical
|
||||
nicklist.filling_top_bottom = columns_vertical
|
||||
nicklist.hidden = on
|
||||
nicklist.items = "buffer_nicklist"
|
||||
nicklist.position = right
|
||||
nicklist.priority = 200
|
||||
nicklist.separator = on
|
||||
nicklist.size = 0
|
||||
nicklist.size_max = 10
|
||||
nicklist.type = window
|
||||
status.color_bg = 0
|
||||
status.color_delim = cyan
|
||||
status.color_fg = default
|
||||
status.conditions = ""
|
||||
status.filling_left_right = vertical
|
||||
status.filling_top_bottom = horizontal
|
||||
status.hidden = off
|
||||
status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion"
|
||||
status.position = bottom
|
||||
status.priority = 500
|
||||
status.separator = off
|
||||
status.size = 1
|
||||
status.size_max = 0
|
||||
status.type = window
|
||||
title.color_bg = 0
|
||||
title.color_delim = cyan
|
||||
title.color_fg = default
|
||||
title.conditions = ""
|
||||
title.filling_left_right = vertical
|
||||
title.filling_top_bottom = horizontal
|
||||
title.hidden = off
|
||||
title.items = "buffer_title"
|
||||
title.position = top
|
||||
title.priority = 500
|
||||
title.separator = off
|
||||
title.size = 1
|
||||
title.size_max = 0
|
||||
title.type = window
|
||||
|
||||
[layout]
|
||||
|
||||
[notify]
|
||||
perl.highmon = none
|
||||
|
||||
[filter]
|
||||
|
||||
[key]
|
||||
ctrl-? = "/input delete_previous_char"
|
||||
ctrl-A = "/input move_beginning_of_line"
|
||||
ctrl-B = "/input move_previous_char"
|
||||
ctrl-C_ = "/input insert \x1F"
|
||||
ctrl-Cb = "/input insert \x02"
|
||||
ctrl-Cc = "/input insert \x03"
|
||||
ctrl-Ci = "/input insert \x1D"
|
||||
ctrl-Co = "/input insert \x0F"
|
||||
ctrl-Cv = "/input insert \x16"
|
||||
ctrl-D = "/input delete_next_char"
|
||||
ctrl-E = "/input move_end_of_line"
|
||||
ctrl-F = "/input move_next_char"
|
||||
ctrl-H = "/input delete_previous_char"
|
||||
ctrl-I = "/input complete_next"
|
||||
ctrl-J = "/input return"
|
||||
ctrl-K = "/input delete_end_of_line"
|
||||
ctrl-L = "/window refresh"
|
||||
ctrl-M = "/input return"
|
||||
ctrl-N = "/buffer +1"
|
||||
ctrl-P = "/buffer -1"
|
||||
ctrl-R = "/input search_text_here"
|
||||
ctrl-Sctrl-U = "/input set_unread"
|
||||
ctrl-T = "/input transpose_chars"
|
||||
ctrl-U = "/input delete_beginning_of_line"
|
||||
ctrl-W = "/input delete_previous_word"
|
||||
ctrl-X = "/input switch_active_buffer"
|
||||
ctrl-Y = "/input clipboard_paste"
|
||||
meta-meta-OP = "/bar scroll buflist * b"
|
||||
meta-meta-OQ = "/bar scroll buflist * e"
|
||||
meta-meta2-11~ = "/bar scroll buflist * b"
|
||||
meta-meta2-12~ = "/bar scroll buflist * e"
|
||||
meta-meta2-1~ = "/window scroll_top"
|
||||
meta-meta2-23~ = "/bar scroll nicklist * b"
|
||||
meta-meta2-24~ = "/bar scroll nicklist * e"
|
||||
meta-meta2-4~ = "/window scroll_bottom"
|
||||
meta-meta2-5~ = "/window scroll_up"
|
||||
meta-meta2-6~ = "/window scroll_down"
|
||||
meta-meta2-7~ = "/window scroll_top"
|
||||
meta-meta2-8~ = "/window scroll_bottom"
|
||||
meta-meta2-A = "/buffer -1"
|
||||
meta-meta2-B = "/buffer +1"
|
||||
meta-meta2-C = "/buffer +1"
|
||||
meta-meta2-D = "/buffer -1"
|
||||
meta-- = "/filter toggle @"
|
||||
meta-/ = "/input jump_last_buffer_displayed"
|
||||
meta-0 = "/buffer *10"
|
||||
meta-1 = "/buffer *1"
|
||||
meta-2 = "/buffer *2"
|
||||
meta-3 = "/buffer *3"
|
||||
meta-4 = "/buffer *4"
|
||||
meta-5 = "/buffer *5"
|
||||
meta-6 = "/buffer *6"
|
||||
meta-7 = "/buffer *7"
|
||||
meta-8 = "/buffer *8"
|
||||
meta-9 = "/buffer *9"
|
||||
meta-< = "/input jump_previously_visited_buffer"
|
||||
meta-= = "/filter toggle"
|
||||
meta-> = "/input jump_next_visited_buffer"
|
||||
meta-OA = "/input history_global_previous"
|
||||
meta-OB = "/input history_global_next"
|
||||
meta-OC = "/input move_next_word"
|
||||
meta-OD = "/input move_previous_word"
|
||||
meta-OF = "/input move_end_of_line"
|
||||
meta-OH = "/input move_beginning_of_line"
|
||||
meta-OP = "/bar scroll buflist * -100%"
|
||||
meta-OQ = "/bar scroll buflist * +100%"
|
||||
meta-Oa = "/input history_global_previous"
|
||||
meta-Ob = "/input history_global_next"
|
||||
meta-Oc = "/input move_next_word"
|
||||
meta-Od = "/input move_previous_word"
|
||||
meta2-11^ = "/bar scroll buflist * -100%"
|
||||
meta2-11~ = "/bar scroll buflist * -100%"
|
||||
meta2-12^ = "/bar scroll buflist * +100%"
|
||||
meta2-12~ = "/bar scroll buflist * +100%"
|
||||
meta2-15~ = "/buffer -1"
|
||||
meta2-17~ = "/buffer +1"
|
||||
meta2-18~ = "/window -1"
|
||||
meta2-19~ = "/window +1"
|
||||
meta2-1;3A = "/buffer -1"
|
||||
meta2-1;3B = "/buffer +1"
|
||||
meta2-1;3C = "/buffer +1"
|
||||
meta2-1;3D = "/buffer -1"
|
||||
meta2-1;3F = "/window scroll_bottom"
|
||||
meta2-1;3H = "/window scroll_top"
|
||||
meta2-1;3P = "/bar scroll buflist * b"
|
||||
meta2-1;3Q = "/bar scroll buflist * e"
|
||||
meta2-1;5A = "/input history_global_previous"
|
||||
meta2-1;5B = "/input history_global_next"
|
||||
meta2-1;5C = "/input move_next_word"
|
||||
meta2-1;5D = "/input move_previous_word"
|
||||
meta2-1;5P = "/bar scroll buflist * -100%"
|
||||
meta2-1;5Q = "/bar scroll buflist * +100%"
|
||||
meta2-1~ = "/input move_beginning_of_line"
|
||||
meta2-200~ = "/input paste_start"
|
||||
meta2-201~ = "/input paste_stop"
|
||||
meta2-20~ = "/bar scroll title * -30%"
|
||||
meta2-21~ = "/bar scroll title * +30%"
|
||||
meta2-23;3~ = "/bar scroll nicklist * b"
|
||||
meta2-23;5~ = "/bar scroll nicklist * -100%"
|
||||
meta2-23^ = "/bar scroll nicklist * -100%"
|
||||
meta2-23~ = "/bar scroll nicklist * -100%"
|
||||
meta2-24;3~ = "/bar scroll nicklist * e"
|
||||
meta2-24;5~ = "/bar scroll nicklist * +100%"
|
||||
meta2-24^ = "/bar scroll nicklist * +100%"
|
||||
meta2-24~ = "/bar scroll nicklist * +100%"
|
||||
meta2-3~ = "/input delete_next_char"
|
||||
meta2-4~ = "/input move_end_of_line"
|
||||
meta2-5;3~ = "/window scroll_up"
|
||||
meta2-5~ = "/window page_up"
|
||||
meta2-6;3~ = "/window scroll_down"
|
||||
meta2-6~ = "/window page_down"
|
||||
meta2-7~ = "/input move_beginning_of_line"
|
||||
meta2-8~ = "/input move_end_of_line"
|
||||
meta2-A = "/input history_previous"
|
||||
meta2-B = "/input history_next"
|
||||
meta2-C = "/input move_next_char"
|
||||
meta2-D = "/input move_previous_char"
|
||||
meta2-F = "/input move_end_of_line"
|
||||
meta2-G = "/window page_down"
|
||||
meta2-H = "/input move_beginning_of_line"
|
||||
meta2-I = "/window page_up"
|
||||
meta2-Z = "/input complete_previous"
|
||||
meta2-[E = "/buffer -1"
|
||||
meta-_ = "/input redo"
|
||||
meta-a = "/input jump_smart"
|
||||
meta-b = "/input move_previous_word"
|
||||
meta-d = "/input delete_next_word"
|
||||
meta-f = "/input move_next_word"
|
||||
meta-h = "/input hotlist_clear"
|
||||
meta-jmeta-f = "/buffer -"
|
||||
meta-jmeta-l = "/buffer +"
|
||||
meta-jmeta-r = "/server raw"
|
||||
meta-jmeta-s = "/server jump"
|
||||
meta-j01 = "/buffer *1"
|
||||
meta-j02 = "/buffer *2"
|
||||
meta-j03 = "/buffer *3"
|
||||
meta-j04 = "/buffer *4"
|
||||
meta-j05 = "/buffer *5"
|
||||
meta-j06 = "/buffer *6"
|
||||
meta-j07 = "/buffer *7"
|
||||
meta-j08 = "/buffer *8"
|
||||
meta-j09 = "/buffer *9"
|
||||
meta-j10 = "/buffer *10"
|
||||
meta-j11 = "/buffer *11"
|
||||
meta-j12 = "/buffer *12"
|
||||
meta-j13 = "/buffer *13"
|
||||
meta-j14 = "/buffer *14"
|
||||
meta-j15 = "/buffer *15"
|
||||
meta-j16 = "/buffer *16"
|
||||
meta-j17 = "/buffer *17"
|
||||
meta-j18 = "/buffer *18"
|
||||
meta-j19 = "/buffer *19"
|
||||
meta-j20 = "/buffer *20"
|
||||
meta-j21 = "/buffer *21"
|
||||
meta-j22 = "/buffer *22"
|
||||
meta-j23 = "/buffer *23"
|
||||
meta-j24 = "/buffer *24"
|
||||
meta-j25 = "/buffer *25"
|
||||
meta-j26 = "/buffer *26"
|
||||
meta-j27 = "/buffer *27"
|
||||
meta-j28 = "/buffer *28"
|
||||
meta-j29 = "/buffer *29"
|
||||
meta-j30 = "/buffer *30"
|
||||
meta-j31 = "/buffer *31"
|
||||
meta-j32 = "/buffer *32"
|
||||
meta-j33 = "/buffer *33"
|
||||
meta-j34 = "/buffer *34"
|
||||
meta-j35 = "/buffer *35"
|
||||
meta-j36 = "/buffer *36"
|
||||
meta-j37 = "/buffer *37"
|
||||
meta-j38 = "/buffer *38"
|
||||
meta-j39 = "/buffer *39"
|
||||
meta-j40 = "/buffer *40"
|
||||
meta-j41 = "/buffer *41"
|
||||
meta-j42 = "/buffer *42"
|
||||
meta-j43 = "/buffer *43"
|
||||
meta-j44 = "/buffer *44"
|
||||
meta-j45 = "/buffer *45"
|
||||
meta-j46 = "/buffer *46"
|
||||
meta-j47 = "/buffer *47"
|
||||
meta-j48 = "/buffer *48"
|
||||
meta-j49 = "/buffer *49"
|
||||
meta-j50 = "/buffer *50"
|
||||
meta-j51 = "/buffer *51"
|
||||
meta-j52 = "/buffer *52"
|
||||
meta-j53 = "/buffer *53"
|
||||
meta-j54 = "/buffer *54"
|
||||
meta-j55 = "/buffer *55"
|
||||
meta-j56 = "/buffer *56"
|
||||
meta-j57 = "/buffer *57"
|
||||
meta-j58 = "/buffer *58"
|
||||
meta-j59 = "/buffer *59"
|
||||
meta-j60 = "/buffer *60"
|
||||
meta-j61 = "/buffer *61"
|
||||
meta-j62 = "/buffer *62"
|
||||
meta-j63 = "/buffer *63"
|
||||
meta-j64 = "/buffer *64"
|
||||
meta-j65 = "/buffer *65"
|
||||
meta-j66 = "/buffer *66"
|
||||
meta-j67 = "/buffer *67"
|
||||
meta-j68 = "/buffer *68"
|
||||
meta-j69 = "/buffer *69"
|
||||
meta-j70 = "/buffer *70"
|
||||
meta-j71 = "/buffer *71"
|
||||
meta-j72 = "/buffer *72"
|
||||
meta-j73 = "/buffer *73"
|
||||
meta-j74 = "/buffer *74"
|
||||
meta-j75 = "/buffer *75"
|
||||
meta-j76 = "/buffer *76"
|
||||
meta-j77 = "/buffer *77"
|
||||
meta-j78 = "/buffer *78"
|
||||
meta-j79 = "/buffer *79"
|
||||
meta-j80 = "/buffer *80"
|
||||
meta-j81 = "/buffer *81"
|
||||
meta-j82 = "/buffer *82"
|
||||
meta-j83 = "/buffer *83"
|
||||
meta-j84 = "/buffer *84"
|
||||
meta-j85 = "/buffer *85"
|
||||
meta-j86 = "/buffer *86"
|
||||
meta-j87 = "/buffer *87"
|
||||
meta-j88 = "/buffer *88"
|
||||
meta-j89 = "/buffer *89"
|
||||
meta-j90 = "/buffer *90"
|
||||
meta-j91 = "/buffer *91"
|
||||
meta-j92 = "/buffer *92"
|
||||
meta-j93 = "/buffer *93"
|
||||
meta-j94 = "/buffer *94"
|
||||
meta-j95 = "/buffer *95"
|
||||
meta-j96 = "/buffer *96"
|
||||
meta-j97 = "/buffer *97"
|
||||
meta-j98 = "/buffer *98"
|
||||
meta-j99 = "/buffer *99"
|
||||
meta-k = "/input grab_key_command"
|
||||
meta-l = "/window bare"
|
||||
meta-m = "/mute mouse toggle"
|
||||
meta-n = "/window scroll_next_highlight"
|
||||
meta-p = "/window scroll_previous_highlight"
|
||||
meta-r = "/input delete_line"
|
||||
meta-s = "/mute spell toggle"
|
||||
meta-u = "/window scroll_unread"
|
||||
meta-wmeta-meta2-A = "/window up"
|
||||
meta-wmeta-meta2-B = "/window down"
|
||||
meta-wmeta-meta2-C = "/window right"
|
||||
meta-wmeta-meta2-D = "/window left"
|
||||
meta-wmeta2-1;3A = "/window up"
|
||||
meta-wmeta2-1;3B = "/window down"
|
||||
meta-wmeta2-1;3C = "/window right"
|
||||
meta-wmeta2-1;3D = "/window left"
|
||||
meta-wmeta-b = "/window balance"
|
||||
meta-wmeta-s = "/window swap"
|
||||
meta-x = "/input zoom_merged_buffer"
|
||||
meta-z = "/window zoom"
|
||||
ctrl-_ = "/input undo"
|
||||
|
||||
[key_search]
|
||||
ctrl-I = "/input search_switch_where"
|
||||
ctrl-J = "/input search_stop_here"
|
||||
ctrl-M = "/input search_stop_here"
|
||||
ctrl-Q = "/input search_stop"
|
||||
ctrl-R = "/input search_switch_regex"
|
||||
meta2-A = "/input search_previous"
|
||||
meta2-B = "/input search_next"
|
||||
meta-c = "/input search_switch_case"
|
||||
|
||||
[key_cursor]
|
||||
ctrl-J = "/cursor stop"
|
||||
ctrl-M = "/cursor stop"
|
||||
meta-meta2-A = "/cursor move area_up"
|
||||
meta-meta2-B = "/cursor move area_down"
|
||||
meta-meta2-C = "/cursor move area_right"
|
||||
meta-meta2-D = "/cursor move area_left"
|
||||
meta2-1;3A = "/cursor move area_up"
|
||||
meta2-1;3B = "/cursor move area_down"
|
||||
meta2-1;3C = "/cursor move area_right"
|
||||
meta2-1;3D = "/cursor move area_left"
|
||||
meta2-A = "/cursor move up"
|
||||
meta2-B = "/cursor move down"
|
||||
meta2-C = "/cursor move right"
|
||||
meta2-D = "/cursor move left"
|
||||
@chat(python.*):D = "hsignal:slack_cursor_delete"
|
||||
@chat(python.*):L = "hsignal:slack_cursor_linkarchive"
|
||||
@chat(python.*):M = "hsignal:slack_cursor_message"
|
||||
@chat(python.*):R = "hsignal:slack_cursor_reply"
|
||||
@chat(python.*):T = "hsignal:slack_cursor_thread"
|
||||
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
|
||||
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
|
||||
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
|
||||
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
|
||||
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
|
||||
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
|
||||
@chat:m = "hsignal:chat_quote_message;/cursor stop"
|
||||
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
|
||||
|
||||
[key_mouse]
|
||||
@bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse"
|
||||
@bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse"
|
||||
@bar(input):button2 = "/input grab_mouse_area"
|
||||
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
|
||||
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
|
||||
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
|
||||
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
|
||||
@chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}"
|
||||
@chat(fset.fset):button2* = "hsignal:fset_mouse"
|
||||
@chat(fset.fset):wheeldown = "/fset -down 5"
|
||||
@chat(fset.fset):wheelup = "/fset -up 5"
|
||||
@chat(python.*):button2 = "hsignal:slack_mouse"
|
||||
@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}"
|
||||
@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
|
||||
@chat(script.scripts):wheeldown = "/script down 5"
|
||||
@chat(script.scripts):wheelup = "/script up 5"
|
||||
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
|
||||
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
|
||||
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
|
||||
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
|
||||
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
|
||||
@item(buflist):button1* = "hsignal:buflist_mouse"
|
||||
@item(buflist):button2* = "hsignal:buflist_mouse"
|
||||
@item(buflist2):button1* = "hsignal:buflist_mouse"
|
||||
@item(buflist2):button2* = "hsignal:buflist_mouse"
|
||||
@item(buflist3):button1* = "hsignal:buflist_mouse"
|
||||
@item(buflist3):button2* = "hsignal:buflist_mouse"
|
||||
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
|
||||
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
|
||||
@chat:button1 = "/window ${_window_number}"
|
||||
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
|
||||
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
|
||||
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
|
||||
@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
|
||||
@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
|
||||
@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
|
||||
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
|
||||
@chat:wheelup = "/window scroll_up -window ${_window_number}"
|
||||
@*:button3 = "/cursor go ${_x},${_y}"
|
49
apps/weechat/xfer.conf
Normal file
49
apps/weechat/xfer.conf
Normal file
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# weechat -- xfer.conf
|
||||
#
|
||||
# WARNING: It is NOT recommended to edit this file by hand,
|
||||
# especially if WeeChat is running.
|
||||
#
|
||||
# Use /set or similar command to change settings in WeeChat.
|
||||
#
|
||||
# For more info, see: https://weechat.org/doc/quickstart
|
||||
#
|
||||
|
||||
[look]
|
||||
auto_open_buffer = on
|
||||
progress_bar_size = 20
|
||||
pv_tags = "notify_private"
|
||||
|
||||
[color]
|
||||
status_aborted = lightred
|
||||
status_active = lightblue
|
||||
status_connecting = yellow
|
||||
status_done = lightgreen
|
||||
status_failed = lightred
|
||||
status_waiting = lightcyan
|
||||
text = default
|
||||
text_bg = default
|
||||
text_selected = white
|
||||
|
||||
[network]
|
||||
blocksize = 65536
|
||||
fast_send = on
|
||||
own_ip = ""
|
||||
port_range = ""
|
||||
send_ack = on
|
||||
speed_limit_recv = 0
|
||||
speed_limit_send = 0
|
||||
timeout = 300
|
||||
|
||||
[file]
|
||||
auto_accept_chats = off
|
||||
auto_accept_files = off
|
||||
auto_accept_nicks = ""
|
||||
auto_check_crc32 = off
|
||||
auto_rename = on
|
||||
auto_resume = on
|
||||
convert_spaces = on
|
||||
download_path = "%h/xfer"
|
||||
download_temporary_suffix = ".part"
|
||||
upload_path = "~"
|
||||
use_nick_in_filename = on
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
source "$DOTFILES_PATH/de/bar/bar.bash" --just-vars
|
||||
. "$DOTFILES_PATH/apps/de/polybar/run" --just-vars
|
||||
|
||||
LAUNCHER_FONT="$BAR_FONT"
|
||||
LAUNCHER_FONT_SIZE="$BAR_FONT_SIZE"
|
||||
|
@ -10,10 +10,7 @@ BACKGROUND_COLOR=$(xrq background)
|
|||
FOREGROUND_COLOR=$(xrq foreground)
|
||||
GAP=$(xrq internalBorder)
|
||||
|
||||
# load a per-device config last so anything can be overridden
|
||||
if [ -a "$EDFP/app-launcher" ]; then
|
||||
source "$EDFP/app-launcher"
|
||||
fi
|
||||
. maybe_source_env_file app-launcher
|
||||
|
||||
rofi \
|
||||
-combi-modi run,window \
|
||||
|
|
5
bin/archive
Executable file
5
bin/archive
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
archive_name="$(basename "${1}").tar.zstd"
|
||||
tar --zstd -cvf "${archive_name}" "${@}"
|
||||
echo "Archive created at: ${archive_name} "
|
5
bin/archive.moon
Executable file
5
bin/archive.moon
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env moon
|
||||
|
||||
archive_name = "#{string.gsub arg[1], "(.*/)(.*)", "%2"}.tar.zstd"
|
||||
os.execute "tar --zstd -cvf '#{archive_name}' '#{table.concat arg, "' '"}'"
|
||||
print "Archive created at: #{archive_name}"
|
|
@ -1,3 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
pacaur -Syyu --noconfirm --noedit
|
||||
|
||||
# TODO: update kernel with a flag?
|
||||
# yes | pacman -Syu && kexec -l --initrd=/boot/initramfs-linux.img /boot/vmlinuz-linux && kexec -e
|
||||
|
|
5
bin/clip
Executable file
5
bin/clip
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
xclip -selection primary
|
||||
xclip -selection primary -out | xclip -selection clipboard
|
||||
xclip -selection primary -out | xclip -selection secondary
|
5
bin/clipstatus
Executable file
5
bin/clipstatus
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
echo "Primary : $(xclip -out -selection primary)"
|
||||
echo "Secondary: $(xclip -out -selection primary)"
|
||||
echo "Clipboard: $(xclip -out -selection clipboard)"
|
3
bin/compress
Executable file
3
bin/compress
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
zstd "$@"
|
3
bin/decompress
Executable file
3
bin/decompress
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
unzstd "$@"
|
30
bin/dotfiles-make-env
Executable file
30
bin/dotfiles-make-env
Executable file
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
echo "Not implemented yet!"; exit 1
|
||||
|
||||
edfp="$ENV_PATH/$1"
|
||||
mkdir -p "$edfp/"
|
||||
mkdir -p "$edfp/.hidden/bash.d/"
|
||||
mkdir -p "$edfp/bin/"
|
||||
mkdir -p "$edfp/x/"
|
||||
mkdir -p "$edfp/sway/waybar"
|
||||
mkdir -p "$edfp/sway/config.d"
|
||||
mkdir -p "$HOME/.bin/"
|
||||
|
||||
touches=(
|
||||
"$edfp/bash"
|
||||
"$edfp/x/init"
|
||||
"$edfp/x/profile"
|
||||
"$edfp/x/resources"
|
||||
"$edfp/vim"
|
||||
"$edfp/bspwm"
|
||||
"$edfp/polybar"
|
||||
"$edfp/app-launcher"
|
||||
"$edfp/workdock"
|
||||
)
|
||||
|
||||
for t in "${touches[@]}"; do
|
||||
touch "$t"
|
||||
done
|
||||
|
||||
chmod 700 -R "$edfp"
|
5
bin/dotfiles-update
Executable file
5
bin/dotfiles-update
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: implement
|
||||
|
||||
echo "Not implemented"
|
73
bin/email-via-mailgun-smtp
Executable file
73
bin/email-via-mailgun-smtp
Executable file
|
@ -0,0 +1,73 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
err() {
|
||||
errpre=""
|
||||
errpost=""
|
||||
if test -t 1; then
|
||||
ncolors=$(tput colors)
|
||||
if test -n "$ncolors" && test $ncolors -ge 8; then
|
||||
errpre="$(tput setaf 1)"
|
||||
errpost="$(tput setaf 7)"
|
||||
fi
|
||||
fi
|
||||
>&2 echo "${errpre}ERROR: $@${errpost}"; usage; exit 1
|
||||
}
|
||||
|
||||
warn() {
|
||||
pre=""
|
||||
post=""
|
||||
if test -t 1; then
|
||||
ncolors=$(tput colors)
|
||||
if test -n "$ncolors" && test $ncolors -ge 8; then
|
||||
pre="$(tput setaf 3)"
|
||||
post="$(tput setaf 7)"
|
||||
fi
|
||||
fi
|
||||
>&2 echo "${pre}WARNING: $@${post}"
|
||||
}
|
||||
|
||||
usage() { >&2 cat <<USAGEDOC
|
||||
usage:
|
||||
email-via-mailgun-smtp [recipient] [subject] [username] [password] <<< 'Hello, world!'
|
||||
|
||||
email-via-mailgun-smtp will read all the input from stdin and use the contents as the body of the email.
|
||||
recipient will default to DEFAULT_MAILGUN_SMTP_RECIPIENT if not set
|
||||
username will default to DEFAULT_MAILGUN_SMTP_USERNAME if not set
|
||||
password will default to DEFAULT_MAILGUN_SMTP_PASSWORD if not set
|
||||
subject will default to DEFAULT_MAILGUN_SMTP_SUBJECT if not set
|
||||
USAGEDOC
|
||||
}
|
||||
|
||||
recipient="${1:-$DEFAULT_MAILGUN_SMTP_RECIPIENT}"; shift
|
||||
[[ -z $recipient ]] && err 'No recipient provided.'
|
||||
|
||||
subject="${1:-$DEFAULT_MAILGUN_SMTP_SUBJECT}"; shift
|
||||
[[ -z $subject ]] && warn 'No subject provided. Leaving blank.'
|
||||
|
||||
username="${1:-$DEFAULT_MAILGUN_SMTP_USERNAME}"; shift
|
||||
[[ -z $username ]] && err 'No username provided.'
|
||||
|
||||
password="${1:-$DEFAULT_MAILGUN_SMTP_PASSWORD}"; shift
|
||||
[[ -z $password ]] && err 'No password provided.'
|
||||
|
||||
warn "Reading email body from stdin..."
|
||||
|
||||
body=""
|
||||
while read -r line; do
|
||||
body="${body}\n${line}"
|
||||
done
|
||||
|
||||
[[ -z $body ]] && err 'Body was blank.'
|
||||
|
||||
echo "Recipient: $recipient"
|
||||
|
||||
>&2 echo "Finished reading body. Sending email..."
|
||||
|
||||
swaks --auth \
|
||||
--server smtp.mailgun.org \
|
||||
--au "$username" \
|
||||
--ap "$password" \
|
||||
--to "$recipient" \
|
||||
--h-Subject: "$subject" \
|
||||
--body "$body"
|
||||
|
4
bin/ezln
4
bin/ezln
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
SOURCE=$(realpath "$1")
|
||||
DEST=$(realpath -m "$2")
|
||||
SOURCE=$(realpath "$1") # this one exists
|
||||
DEST=$(realpath -m "$2") # this is the link to what exists
|
||||
|
||||
ln -s "$SOURCE" "$DEST"
|
||||
|
|
18
bin/fsw
18
bin/fsw
|
@ -40,21 +40,32 @@ ${I}${I}${I}'.*' /etc/secrets \$HOME/.secrets
|
|||
USAGE
|
||||
}
|
||||
|
||||
dbg() {
|
||||
if [[ ! -z ${FSW_DEBUG+x} ]]; then
|
||||
echo -e "[debug] fsw: $@"
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ $1 = '-h' ]] || [[ $1 = '--help' ]] || [[ -z $1 ]]; then
|
||||
help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
FSW_EVENTS="${FSW_EVENTS:-close_write}"
|
||||
dbg "Events: $FSW_EVENTS"
|
||||
SHELL_COMMAND="${1}"; shift
|
||||
dbg "Command: $SHELL_COMMAND"
|
||||
FILTER="${1}"; shift
|
||||
dbg "Filter: $FILTER"
|
||||
dbg "Directory: ${1}"
|
||||
DIRS=("${1:-.}"); shift
|
||||
if [[ -e $FILTER ]]; then
|
||||
# TODO: this is a sad hack/workaround
|
||||
echo "It looks like your filter is an actual file. I'll just watch that for you."
|
||||
DIRS=("${FILTER}")
|
||||
fi
|
||||
while [[ ! -z $1 ]]; do
|
||||
while [[ ! -z $1 ]] && $(realpath $1) &> /dev/null; do
|
||||
dbg "Directory: ${1}"
|
||||
DIRS+=("$1"); shift
|
||||
done
|
||||
inotifywait -m -e "${FSW_EVENTS}" -r "${DIRS[@]}" 2>&1 \
|
||||
|
@ -62,12 +73,15 @@ inotifywait -m -e "${FSW_EVENTS}" -r "${DIRS[@]}" 2>&1 \
|
|||
| while read -r dir events filename; do
|
||||
if [[ "$dir $events" = "Watches established." ]]; then
|
||||
echo "Ready."
|
||||
dbg "Directory: ${DIRS[@]}"
|
||||
else
|
||||
export FSW_FILENAME="$filename"
|
||||
export FSW_DIR="$dir"
|
||||
export FSW_PATH="$dir$filename"
|
||||
export FSW_FILE_EVENTS="$events"
|
||||
export FSW_EVENT="$events $dir$filename"
|
||||
<<< "$FSW_PATH" grep -P "$FILTER" > /dev/null 2>&1 && eval "${SHELL_COMMAND}"
|
||||
dbg "Event:\n $(date)\n $FSW_PATH\n $FILTER\n $FSW_EVENT\n $dir $events $filename\n ${SHELL_COMMAND}"
|
||||
dbg "Filtered Event: $(<<< "$FSW_PATH" grep -P "$FILTER")"
|
||||
<<< "$FSW_PATH" grep -P "$FILTER" > /dev/null 2>&1 && eval "${SHELL_COMMAND}"
|
||||
fi
|
||||
done
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue