Merge remote-tracking branch 'origin/main'
Jes Olson j3s@c3f.net
Wed, 03 May 2023 15:13:35 -0700
10 files changed,
259 insertions(+),
69 deletions(-)
M
.config/foot/foot.ini
→
.config/foot/foot.ini
@@ -1,4 +1,28 @@
-font=monospace:size=11 +font = monospace:size=10 [scrollback] -lines=4000 +lines = 50000 + +# everforest/dark/hard +[colors] +alpha=1.0 +background=2b3339 +foreground=d3c6aa + +regular0=4b565c # black +regular1=e67e80 # red +regular2=a7c080 # green +regular3=dbbc7f # yellow +regular4=7fbbb3 # blue +regular5=d699b6 # magenta +regular6=83c092 # cyan +regular7=d3c6aa # white + +bright0=4b565c # black +bright1=e67e80 # red +bright2=a7c080 # green +bright3=dbbc7f # yellow +bright4=7fbbb3 # blue +bright5=d699b6 # magenta +bright6=83c092 # cyan +bright7=d3c6aa # white
A
.config/himalaya/config.toml
@@ -0,0 +1,17 @@
+[Personal] +backend = "imap" +email = "j3s@c3f.net" +default = true +display-name = "jes olson" +sender = "smtp" +smtp-host = "smtp.migadu.com" +smtp-port = 465 +smtp-ssl = true +smtp-login = "j3s@c3f.net" +smtp-passwd-cmd = "pa show j3s@c3f.net" +sync = false +imap-host = "imap.migadu.com" +imap-port = 993 +imap-ssl = true +imap-login = "j3s@c3f.net" +imap-passwd-cmd = "pa show j3s@c3f.net"
A
.config/hypr/hyprland.conf
@@ -0,0 +1,168 @@
+# https://wiki.hyprland.org/Configuring/Monitors +# https://wiki.hyprland.org/Configuring/Keywords +monitor = ,preferred,auto,auto +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = swaybg -i /home/j3s/Pictures/rose.jpg -m tile + +# my quake-style terminal +exec-once=[workspace special; size 75% 20%;move 12.5% 40] foot + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = ctrl:nocaps + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + gaps_in = 5 + gaps_out = 20 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 10 + blur = yes + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) +} + +animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = on + workspace_swipe_invert = false + workspace_swipe_distance = 3000 + workspace_swipe_min_speed_to_force = 5 +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +# device:epic mouse V1 { +# sensitivity = -0.5 +# } + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# https://wiki.hyprland.org/Configuring/Binds +bind = $mainMod, -, togglespecialworkspace +bind = $mainMod, Return, exec, foot +bind = $mainMod SHIFT, Q, killactive, +bind = $mainMod SHIFT, E, exit, +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy +bind = $mainMod, F, fullscreen, +bind = $mainMod SHIFT, Space, togglefloating, +bind = $mainMod, D, exec, wofi --show drun +# s = special workspace +# ??? = screenshot +# bind = $mainMod, S, exec, wofi --show drun +# bind = $mainMod, P, pseudo, # dwindle +# bind = $mainMod SHIFT, J, togglesplit, # dwindle + +binde = , XF86AudioRaiseVolume, exec, vol up 5 +bindl = , XF86AudioLowerVolume, exec, vol down 5 + +# clamshell mode +bindl = ,switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" +bindl = ,switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, auto" + +# vim movement +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d +bind = $mainMod SHIFT, H, workspace, e-1 +bind = $mainMod SHIFT, L, workspace, e+1 + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, workspace, 1 +bind = $mainMod, 2, workspace, 2 +bind = $mainMod, 3, workspace, 3 +bind = $mainMod, 4, workspace, 4 +bind = $mainMod, 5, workspace, 5 +bind = $mainMod, 6, workspace, 6 +bind = $mainMod, 7, workspace, 7 +bind = $mainMod, 8, workspace, 8 +bind = $mainMod, 9, workspace, 9 +bind = $mainMod, 0, workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, movetoworkspace, 1 +bind = $mainMod SHIFT, 2, movetoworkspace, 2 +bind = $mainMod SHIFT, 3, movetoworkspace, 3 +bind = $mainMod SHIFT, 4, movetoworkspace, 4 +bind = $mainMod SHIFT, 5, movetoworkspace, 5 +bind = $mainMod SHIFT, 6, movetoworkspace, 6 +bind = $mainMod SHIFT, 7, movetoworkspace, 7 +bind = $mainMod SHIFT, 8, movetoworkspace, 8 +bind = $mainMod SHIFT, 9, movetoworkspace, 9 +bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow
D
.config/mako/config
@@ -1,6 +0,0 @@
-width=200 -font=sans 10 -border-radius=3 -max-visible=2 -background-color=#d3d3d3 -text-color=#000000
M
.profile
→
.profile
@@ -1,17 +1,17 @@
-export PATH=~/bin/$(hostname):~/bin/$(uname -m):~/bin:~/go/bin:$PATH +export PATH=~/bin/$(hostname):~/bin:~/go/bin:$PATH export ENV=~/.rc export EDITOR=nvim export LANG=en_US.UTF-8 export GDK_BACKEND=wayland # https://wiki.archlinux.org/title/Firefox#Applications_on_Wayland_can_not_launch_Firefox export MOZ_DBUS_REMOTE=1 -export XDG_CURRENT_DESKTOP=sway -export CHEF_USER_NAME=jolson +# export XDG_CURRENT_DESKTOP=sway -# for chef +# DO +export CHEF_USER_NAME=jolson +export KITCHEN_SSH_GATEWAY_USERNAME=jolson export DIGITALOCEAN_ACCESS_TOKEN="$(pa show cloud.digitalocean.com | head -1)" export DIGITALOCEAN_STAGE2_ACCESS_TOKEN="$(pa show stage2.cloud.digitalocean.com | head -1)" -export KITCHEN_SSH_GATEWAY_USERNAME=jolson # this apparently makes java windows not suck # for reasons beyond my mortal comprehension
D
bin/nostromo/statusbar
@@ -1,20 +0,0 @@
-#!/bin/sh - -get_bat() { - bat="$(cat /sys/class/power_supply/BAT1/capacity)" - if [ "$bat" -lt 10 ]; then - printf '<span foreground="red">%s%%</span>' "$bat" - else - printf '%s%%' "$bat" - fi -} - -while true -do - time=$(date +"%A %Y-%m-%d %I:%M %p") - time="$time $(date -u +"(%H:%M UTC)")" - bat="$(get_bat)" - wifi="$(nmcli -t dev show wlp170s0 | grep GENERAL.CONNECTION | cut -d ':' -f 2)" - printf "wifi: %s | bat: %s | %s\n" "$wifi" "$bat" "$time" - sleep 10 -done
M
bin/prompt.go
→
bin/prompt.go
@@ -6,53 +6,34 @@ "os"
"os/exec" "path/filepath" "strings" - "time" ) -// getRepoRoot returns the full path to the root -// of the closest git dir -func gitTopLevel() string { - path, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() +func main() { + wd, err := os.Getwd() if err != nil { - // assume the error means there's no git - // dir above us - return "/" + fmt.Print("$ ") + return } - return strings.TrimSpace(string(path)) -} - -func resolveEmoji(hostname string) string { - emoji := "💀" - if hostname == "zora" { - emoji = "🌸" - } else if hostname == "nostromo" { - emoji = "🛸" + cwd, err := filepath.EvalSymlinks(wd) + if err != nil { + fmt.Print("$ ") + return } - return emoji -} - -func main() { - wd, _ := os.Getwd() - cwd, _ := filepath.EvalSymlinks(wd) - host, _ := os.Hostname() - home := os.Getenv("HOME") - now := time.Now().Format("15:04:05") - emoji := resolveEmoji(host) - fmt.Printf("%s %s ", now, emoji) + emoji := resolveEmoji() var promptRoot string - gitTop := gitTopLevel() - if gitTop == home { + gitRoot := gitRoot() + if gitRoot == os.Getenv("HOME") { promptRoot = "~" } else { - promptRoot = filepath.Base(gitTop) + promptRoot = filepath.Base(gitRoot) } // subtract the git toplevel "/home/j3s" // from the cwd "/home/j3s/code/nongitdir" // to get the suffix "/code/nongitdir" // os.cwd gets the symlink, git does not - suffix := cwd[len(gitTop):] - fmt.Printf("%s", promptRoot) + suffix := cwd[len(gitRoot):] + fmt.Printf("%s %s", emoji, promptRoot) var parts []string parts = strings.Split(suffix, "/")@@ -68,3 +49,26 @@ }
} } } + +func resolveEmoji() string { + hostname, _ := os.Hostname() + if hostname == "zora" { + return "🌸" + } + if hostname == "rose" { + return "🌹" + } + return "💀" +} + +// getRepoRoot returns the full path to the root +// of the closest git dir +func gitRoot() string { + path, err := exec.Command("git", "rev-parse", "--show-toplevel").Output() + if err != nil { + // assume the error means there's no git + // dir above us, or git isn't installed. + return "/" + } + return strings.TrimSpace(string(path)) +}
M
bin/vol
→
bin/vol
@@ -1,7 +1,10 @@
-#!/bin/sh -e +#!/bin/sh +# +# simple pulse wrapper for controlling volume # -# simple pulse wrapper for controlling -# audio stuff i care about +# deps: +# - pactl +# - notify-send get_current_volume_percent() { percent="$(pactl get-sink-volume @DEFAULT_SINK@ | awk '/Volume/ {print $5}')"