diff --git a/.config/guix/cobra/bin.scm b/.config/guix/cobra/bin.scm deleted file mode 100644 index e77f165..0000000 --- a/.config/guix/cobra/bin.scm +++ /dev/null @@ -1,210 +0,0 @@ -(define-module (cobra bin) - #:use-module (guix gexp) - #:use-module (gnu packages base) - #:export (%bin:torbrowser - %bin:suspend-wrap - %bin:suspend - %bin:start-pipewire - %bin:screenshot - %bin:logout-wofi - %bin:lock - %bin:fss - %bin:beep-wrapper - %bin:beep - %bin:backtick)) - -(define %bin:torbrowser - (computed-file "bin-torbrowser" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash - -cd ~/.local/share/torbrowser/tor-browser/ -guix shell --check --pure --expression='(list (@@ (gnu packages gcc) gcc-11) \"lib\")' coreutils bash grep sed gcc-toolchain patchelf gtk+ dbus-glib libxt libevent openssl file alsa-lib << EOT -set -x -cd Browser -patchelf --set-interpreter \\$LIBRARY_PATH/ld-linux-x86-64.so.2 firefox.real -patchelf --set-interpreter \\$LIBRARY_PATH/ld-linux-x86-64.so.2 TorBrowser/Tor/tor -LD_LIBRARY_PATH=\\$LIBRARY_PATH ./start-tor-browser -v -EOT" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:suspend-wrap - (computed-file "bin-suspend-wrap" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash -sudo ~/.local/bin/__suspend -while grep -v '\\[' /sys/power/state; do - swaylock - break -done" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:suspend - (computed-file "bin-suspend" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash -echo mem > /sys/power/state" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:start-pipewire - (computed-file "bin-start-pipewire" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash - -rm -rf /run/user/$UID/pulse -pkill pulseaudio -rm -rf /run/user/$UID/pulse - -pipewire & -pipewire-pulse & -wireplumber &" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:screenshot - (computed-file "bin-screenshot" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash - -if [ ! -d $HOME/Pictures/Screenshots ] -then - mkdir -p $HOME/Pictures/Screenshots -fi - -fullscreen() { - filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Fullscreen).png - grim $filename - cat $filename | wl-copy \ - && notify-send -i $filename \"Fullscreen Screenshot taken\" - } - -selecting() { - filename=$HOME/Pictures/Screenshots/$(date +%Y%m%d_%H:%M:%S_Selected).png - grim -g \"$(slurp -b e3eaf699)\" $filename \ - && notify-send -i $filename \"Selective Screenshot taken\" - cat $filename | wl-copy - } - -wofirun() { - case \"$(printf \"fullscreen\\nselect\\n\" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )\" in - 'fullscreen')fullscreen;; - 'select')selecting;; - esac -} - -helpscreen() { - echo \"Usage: screenshot [-f] [-s] [-w] [-h] \" - echo \"Options:\" - echo \"-f : Fullscreen screenshot\" - echo \"-s : Select a region for the screenshot\" - echo \"-w : Shows a wofi prompt for screenshot\" - echo \"-h : Shows this fucking help menu\" - echo \"If no flags are selected then -f is chosen\" -} -case $1 in - -f)fullscreen;; - -s)selecting;; - -h)helpscreen;; - -w)wofirun;; - *)fullscreen;; -esac" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:logout-wofi - (computed-file "bin-logout-wofi" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash - -case \"$(printf \"logout\\nreboot\\nshutdown\\nsleep\\n\" | wofi --dmenu -i -H 500 -W 250 -x 0 -y 0 )\" in - 'logout') swaymsg exit;; - 'sleep') ~/.local/bin/suspend ;; - 'reboot') sudo reboot ;; - 'shutdown') sudo poweroff ;; - *) exit 1 ;; -esac" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:lock - (computed-file "bin-lock" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash -if ! ps aux | grep -v grep | grep swaylock; then -# if [[ $(playerctl status) != \"Playing\" ]]; then -# swayidle -w timeout 600 'sudo ~/.local/bin/__suspend' & -# SUSPEND=$! -# fi - swayidle -w timeout 15 'swaymsg \"output * dpms off\"' resume 'swaymsg \"output * dpms on\"' & - SCREENOFF=$! - swaylock - kill $SUSPEND $SCREENOFF -fi" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:fss - (computed-file "bin-fss" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash -# made by aryak.vern.cc modified by cobra.vern.cc -if [[ -S \"/tmp/mpvfsfsock\" ]]; then - echo quit | socat - /tmp/mpvfsfsock -else - mpv --input-ipc-server=/tmp/mpvfsfsock ~/.local/share/fss.ogg - trap \"rm -rf /tmp/mpvfsfsock\" EXIT -fi" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:beep-wrapper - (computed-file "bin-beep-wrapper" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash -while sleep 1; do - ## Battery beep - if ls /sys/class/power_supply/BAT* &>/dev/null; then - BAT0=$(" #$output "\n" "\ -#!/usr/bin/env sh -echo $1 > /proc/acpi/ibm/beep" "\nEOF")) - (chmod #$output #o755)))) - -(define %bin:backtick - (computed-file "bin-backtick" - #~(begin - (system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$output "\n" "\ -#!/usr/bin/env bash - -cpu() { - bc<<<\"scale=3;$(ps aux | awk 'BEGIN {sum=0} {sum+=$3}; END {print sum}') / $(nproc --all)\" -} - -ram() { - free -h | sed '2!d' | (read _ _ used _; echo $used) -} - -bat() { - acpi -b | sed 's/Battery /BAT/' -} - -echo \"$(cpu)% $(ram) $(bat)\"" "\nEOF")) - (chmod #$output #o755)))) diff --git a/.config/guix/cobra/config.scm b/.config/guix/cobra/config.scm deleted file mode 100644 index f9b3047..0000000 --- a/.config/guix/cobra/config.scm +++ /dev/null @@ -1,978 +0,0 @@ -(define-module (cobra config) - #:use-module (guix gexp) - #:export (%waybar:style - %waybar:config - %config:swaylock - %config:sway - %config:mpv - %config:mako - %config:foot - %config:colorscheme - %config:hyfetch - %config:neofetch)) - -(define %waybar:style - (plain-file "waybar-style" "\ -/* ============================================================================= - * - * Waybar configuration - * - * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration - * - * =========================================================================== */ - -/* ----------------------------------------------------------------------------- - * Keyframes - * -------------------------------------------------------------------------- */ - -@keyframes blink-warning { - 70% { - color: white; - } - - to { - color: white; - background-color: orange; - } -} - -@keyframes blink-critical { - 70% { - color: white; - } - - to { - color: white; - background-color: red; - } -} - - -/* ----------------------------------------------------------------------------- - * Base styles - * -------------------------------------------------------------------------- */ - -/* Reset all styles */ -* { - border: none; - border-radius: 0; - min-height: 0; - margin: 0; - padding: 0; -} - -/* The whole bar */ -#waybar { - background: transparent; - color: black; - font-family: 'Fira Mono'; - font-size: 14px; -} - -/* Each module */ -#battery, -#clock, -#cpu, -#memory, -#mode, -#network, -#pulseaudio, -#temperature, -#tray { - padding-left: 10px; - padding-right: 10px; -} - - -/* ----------------------------------------------------------------------------- - * Module styles - * -------------------------------------------------------------------------- */ - -#battery { - background-color: #F79489; - color: black; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - border-top-right-radius: 15px; - border-bottom-right-radius: 15px; -} - -#battery.warning { - color: orange; - font-weight: bold; -} - -#battery.critical { - color: red; - font-weight: bold; -} - -#battery.warning.discharging { - animation-name: blink-warning; - animation-duration: 3s; - font-weight: bold; -} - -#battery.critical.discharging { - animation-name: blink-critical; - animation-duration: 2s; -} - -#clock { - font-weight: bold; - color: black; - text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white; - border-radius: 50%; -} - -#cpu { - /* No styles */ - background-color: #F9C6C0; - color: black; -} - -#cpu.warning { - color: orange; - font-weight: bold; -} - -#cpu.critical { - color: red; - font-weight: bold; -} - -#memory { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - background-color: #FADCD9; - color: black; -} - -#memory.warning { - color: orange; - font-weight: bold; -} - -#memory.critical { - color: red; - animation-name: blink-critical; - animation-duration: 2s; - font-weight: bold; -} - -#mode { - background: #64727D; - border-top: 2px solid white; - /* To compensate for the top border and still have vertical centering */ - padding-bottom: 2px; - margin-left: 10px; -} - -#network { - /* No styles */ - background-color: #F9F1F0; - color: black; - border-top-left-radius: 15px; - border-bottom-left-radius: 15px; -} - -#network.disconnected { -/* color: orange;*/ -} - -#pulseaudio { - /* No styles */ -} - -#pulseaudio.muted { - /* No styles */ -} - -#temperature { - /* No styles */ - background-color: #F8AFA6; - color: black; -} - -#temperature.critical { - color: red; -} - -#tray { - /* No styles */ -} - -#window { - font-weight: bold; - padding-left: 5px; -} - -#workspaces button { - border: 2px solid black; - border-radius: 15px; - padding-left: 10px; - padding-right: 10px; - color: black; -} - -#workspaces button.focused { - background-color: #F79489; -} - -#workspaces button.urgent { - border-color: #f4c815; - color: #f4c815; -}")) - -(define %waybar:config - (plain-file "waybar-config" "\ -// ============================================================================= -// -// Waybar configuration -// -// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration -// -// ============================================================================= - -{ - // ------------------------------------------------------------------------- - // Global configuration - // ------------------------------------------------------------------------- - - \"layer\": \"top\", - - \"position\": \"top\", - - // If height property would be not present, it'd be calculated dynamically - \"height\": 30, - - \"modules-left\": [ - \"sway/workspaces\", - \"sway/window\", - \"sway/mode\", - ], -// \"modules-center\": [ -// ], - \"modules-right\": [ - \"network\", - \"memory\", - \"cpu\", - \"temperature\", - \"custom/keyboard-layout\", - \"battery\", - \"tray\", - \"clock#date\", - \"clock#time\" - ], - - - // ------------------------------------------------------------------------- - // Modules - // ------------------------------------------------------------------------- - - \"battery\": { - \"interval\": 10, - \"states\": { - \"warning\": 30, - \"critical\": 15 - }, - // Connected to AC - \"format\": \"{icon} ^{capacity}%\", // Icon: bolt - // Not connected to AC - \"format-discharging\": \"{icon} {capacity}%\", - \"format-icons\": [ - \"\", - \"\", - \"\", - \"\", - \"\" - ], - \"tooltip\": true - }, - - \"clock#time\": { - \"interval\": 1, - \"format\": \"{:%H:%M:%S}\", - \"tooltip\": false - }, - - \"clock#date\": { - \"interval\": 10, - \"format\": \"{:%Y-%m-%d}\", // Icon: calendar-alt - \"tooltip-format\": \"{:%e %B %Y}\" - }, - - \"cpu\": { - \"interval\": 5, - \"format\": \" {usage}%\", // Icon: microchip - \"states\": { - \"warning\": 70, - \"critical\": 90 - } - }, - - \"memory\": { - \"interval\": 5, - \"format\": \"MEM {}%\", // Icon: memory - \"states\": { - \"warning\": 70, - \"critical\": 90 - } - }, - - \"network\": { - \"interval\": 5, - \"format-wifi\": \" {signalStrength}%\", // Icon: wifi - \"format-ethernet\": \" {ifname}: {ipaddr}/{cidr}\", // Icon: ethernet - \"format-disconnected\": \"⚠ Disconnected\", - \"tooltip-format\": \"{ifname}: {ipaddr}\" - }, - - \"sway/mode\": { - \"format\": \" {}\", // Icon: expand-arrows-alt - \"tooltip\": false - }, - - \"sway/window\": { - \"format\": \"{}\", - \"max-length\": 120 - }, - - \"sway/workspaces\": { - \"all-outputs\": false, - \"disable-scroll\": true, - \"format\": \"{name}\", - \"format-icons\": { -// \"1:www\": \"龜\", // Icon: firefox-browser -// \"2:mail\": \"\", // Icon: mail -// \"3:editor\": \"\", // Icon: code -// \"4:terminals\": \"\", // Icon: terminal -// \"5:portal\": \"\", // Icon: terminal -// \"urgent\": \"\", - \"focused\": \"\", - \"default\": \"\" - } - }, - - //\"pulseaudio\": { - // //\"scroll-step\": 1, - // \"format\": \"{icon} {volume}%\", - // \"format-bluetooth\": \"{icon} {volume}%\", - // \"format-muted\": \"\", - // \"format-icons\": { - // \"headphones\": \"\", - // \"handsfree\": \"\", - // \"headset\": \"\", - // \"phone\": \"\", - // \"portable\": \"\", - // \"car\": \"\", - // \"default\": [\"\", \"\"] - // }, - // \"on-click\": \"pavucontrol\" - //}, - - \"temperature\": { - \"critical-threshold\": 80, - \"interval\": 5, - \"format\": \"{icon} {temperatureC}°C\", - \"format-icons\": [ - \"\", // Icon: temperature-empty - \"\", // Icon: temperature-quarter - \"\", // Icon: temperature-half - \"\", // Icon: temperature-three-quarters - \"\" // Icon: temperature-full - ], - \"tooltip\": true - }, - - \"tray\": { - \"icon-size\": 21, - \"spacing\": 10 - } - -}")) - -(define %config:swaylock - (plain-file "config-swaylock" "\ -ignore-empty-password -show-failed-attempts -hide-keyboard-layout -disable-caps-lock-text -bs-hl-color=d88f96 -inside-color=4730327f -inside-clear-color=dbbc2f7f -inside-ver-color=1961e67f -inside-wrong-color=d88f967f -key-hl-color=c6888d -line-color=fcf5f3 -line-clear-color=fcf5f3 -line-ver-color=fcf5f3 -line-wrong-color=fcf5f3 -ring-color=b3787e -ring-clear-color=f3d64d -ring-ver-color=4545db -ring-wrong-color=d88f96 -separator-color=fcf5f3 -text-color=fcf5f3 -text-clear-color=fcf5f3 -text-ver-color=fcf5f3 -text-wrong-color=fcf5f3 -image=~/.config/sway/background.png -font=\"Fira Code\"")) - -(define %config:sway - (plain-file "config-sway" "\ -# SWAY CONFIG - - -# Variables - -set $mod Mod4 -set $menu wofi --show drun -i -H 500 -W 450 -set $term foot - -set $WOBSOCK $XDG_RUNTIME_DIR/wob.sock - -floating_modifier $mod normal -default_border pixel 2 -client.focused #1c81e6 #1c81e6 #771cb7 #bf1541 -client.unfocused #3436a7 #3436a7 #ffffff -client.focused_inactive #3436a7 #3436a7 #ffffff -gaps inner 10 -gaps outer 0 -font pango: Fira Code 12 - -# No gaps if there's only 1 window -smart_gaps on - -# Hides the borders if theres only 1 window -hide_edge_borders smart - -# Output configuration -output * { - bg ~/.config/sway/background.png fill -} - -output LVDS-1 pos 640 1080 -output DP-1 pos 1280 0 -output VGA-1 pos 0 56 - -# Input configuration -input type:touchpad { - dwt disabled - scroll_method edge -} - -# Key bindings -bindsym $mod+Return exec $term -bindsym $mod+Shift+Return exec $term -a float -bindsym $mod+q kill -bindsym $mod+F4 wkill -bindsym $mod+d exec $menu -bindsym $mod+Shift+c reload -bindsym mod1+shift+w exec setbg -s -bindsym $mod+Shift+l exec ~/.local/bin/lock -bindsym $mod+Shift+q exec ~/.local/bin/logout-wofi - -# Moving around: - -# Move your focus around -bindsym $mod+Left focus left -bindsym $mod+Down focus down -bindsym $mod+Up focus up -bindsym $mod+Right focus right - -# Move the focused window with the same, but add Shift -bindsym $mod+Shift+Left move left -bindsym $mod+Shift+Down move down -bindsym $mod+Shift+Up move up -bindsym $mod+Shift+Right move right - -#resize -bindsym $mod+mod1+Left exec swaymsg resize shrink right 10px || swaymsg resize grow left 10px -bindsym $mod+mod1+Down exec swaymsg resize grow down 10px || swaymsg resize shrink up 10px -bindsym $mod+mod1+Up exec swaymsg resize shrink down 10px || swaymsg resize grow up 10px -bindsym $mod+mod1+Right exec swaymsg resize grow right 10px || swaymsg resize shrink left 10px - -# Workspaces: - -# Switch to workspace -bindsym $mod+1 workspace number 1 -bindsym $mod+2 workspace number 2 -bindsym $mod+3 workspace number 3 -bindsym $mod+4 workspace number 4 -bindsym $mod+5 workspace number 5 -bindsym $mod+6 workspace number 6 -bindsym $mod+7 workspace number 7 -bindsym $mod+8 workspace number 8 -bindsym $mod+9 workspace number 9 -bindsym $mod+0 workspace number 10 -# Move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number 1 -bindsym $mod+Shift+2 move container to workspace number 2 -bindsym $mod+Shift+3 move container to workspace number 3 -bindsym $mod+Shift+4 move container to workspace number 4 -bindsym $mod+Shift+5 move container to workspace number 5 -bindsym $mod+Shift+6 move container to workspace number 6 -bindsym $mod+Shift+7 move container to workspace number 7 -bindsym $mod+Shift+8 move container to workspace number 8 -bindsym $mod+Shift+9 move container to workspace number 9 -bindsym $mod+Shift+0 move container to workspace number 10 - -# Layout stuff: -bindsym $mod+b splith -bindsym $mod+v splitv - -# Switch the current container between different layout styles -bindsym $mod+t layout toggle split -bindsym $mod+Shift+t layout tabbed -bindsym $mod+Shift+s layout stacking - -# Make the current focus fullscreen -bindsym $mod+f fullscreen - -# Toggle the current focus between tiling and floating mode -bindsym $mod+space floating toggle - -# Swap focus between the tiling area and the floating area -bindsym $mod+Shift+space focus mode_toggle - -# Move focus to the parent container -bindsym $mod+a focus parent - -# Sticky -bindsym $mod+s sticky toggle -# Scratchpad: - -bindsym $mod+bracketleft move scratchpad -bindsym $mod+bracketright scratchpad show - -# Tor Browser -bindsym $mod+w exec ~/.local/bin/torbrowser - - -# Resizing containers: - -mode \"resize\" { - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode \"default\" - bindsym Escape mode \"default\" -} - - -# Media Keys -bindsym XF86AudioLowerVolume exec pamixer -d 5 && pamixer --get-volume > $WOBSOCK -bindsym XF86AudioRaiseVolume exec pamixer -i 5 && pamixer --get-volume > $WOBSOCK - -bindsym XF86MonBrightnessUp exec brightnessctl s +5% -bindsym XF86MonBrightnessDown exec brightnessctl s 5%- - -bindsym XF86AudioStop exec cmus-remote -s -bindsym XF86AudioPlay exec cmus-remote -u -bindsym XF86AudioNext exec cmus-remote -n -bindsym XF86AudioPrev exec cmus-remote -r - -# Funny noises -bindsym XF86Launch1 exec mpv ~/Audio/boom.opus -bindsym KP_Enter exec mpv ~/Audio/metal-pipe.opus -bindsym KP_0 exec mpv ~/Audio/running.opus -bindsym KP_Decimal exec mpv ~/Audio/among-us.opus -bindsym KP_Add exec mpv ~/Audio/wah-wah-wah-wah.opus -bindsym KP_1 exec mpv ~/Audio/boowomp.opus -bindsym KP_2 exec mpv ~/Audio/chomp.ogg -bindsym KP_3 exec mpv ~/Audio/slip.opus -bindsym KP_Subtract exec mpv ~/Audio/inception.opus -bindsym KP_4 exec mpv ~/Audio/waltuh.opus -bindsym KP_5 exec mpv ~/Audio/hallway.opus -bindsym KP_6 exec mpv ~/Audio/bell.opus -bindsym KP_Multiply exec mpv ~/Audio/lego.opus -bindsym KP_7 exec mpv ~/Audio/mega.opus - -# clipped -exec ~/.local/bin/make-combined - -bindsym $mod+r exec ~/.local/bin/wf-shadow -r LVDS-1 -bindsym $mod+g exec ~/.local/bin/wf-shadow -r DP-1 - -bindsym XF86ScreenSaver exec ~/.local/bin/lock -bindsym Print exec ~/.local/bin/screenshot -w -bindsym Pause exec ~/.local/bin/logout-wofi - -# Mumble - -bindsym $mod+z exec mumble rpc starttalking -bindsym --release $mod+z exec mumble rpc stoptalking - -# Rules -for_window [app_id=\"float\"] floating enable; - -exec swayidle -w timeout 290 'brightnessctl -s; brightnessctl s 50%-' resume 'brightnessctl -r' -exec swayidle -w timeout 300 '~/.local/bin/lock' -exec rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK | wob -exec ~/.local/bin/beep-wrapper - -# Audio -exec ~/.local/bin/start-pipewire - -bindswitch --reload --locked lid:on exec ~/.local/bin/suspend - -bar { - swaybar_command waybar - } -} - -include /etc/sway/config.d/*")) - -(define %config:mpv - (plain-file "config-mpv" "\ -ytdl-format=\"bestvideo[height=?480][fps<=?30][vcodec!=?vp9]+bestaudio/best\" -user-agent=\"Mozilla/5.0\" - - -msg-level=ffmpeg=fatal -vo=gpu -hwdec=vaapi -hwdec-codecs=all -video-sync=display-resample")) - -(define %config:mako - (plain-file "config-mako" "\ -default-timeout=8000 -# configversion: b2dba52da9a482ccd1a8170517e502c5 -background-color=#22225588 -text-color=#ffffff -border-color=#6666cc -layer=overlay -group-by=app-name - -[urgency=low] -default-timeout=5000 -background-color=#222222 -text-color=#888888 - -[urgency=high] -default-timeout=10000 -background-color=#900000 -text-color=#ffffff -background-color=#ff0000")) - -(define %config:foot - (plain-file "config-foot" "\ -# -*- conf -*- -# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) -# term=foot (or xterm-256color if built with -Dterminfo=disabled) -# login-shell=no - -# app-id=foot -# title=foot -# locked-title=no - - font= Fira Code:size=8 - -# font-bold= -# font-italic= -# font-bold-italic= -# line-height= -# letter-spacing=0 -# horizontal-letter-offset=0 -# vertical-letter-offset=0 -# underline-offset= -# box-drawings-uses-font-glyphs=no - -dpi-aware=false - -# initial-window-size-pixels=700x500 # Or, -# initial-window-size-chars= -# initial-window-mode=windowed -pad=10x10 # optionally append 'center' -# resize-delay-ms=100 - -# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} - -bold-text-in-bright=yes -# word-delimiters=,│`|:\"'()[]{}<> -# selection-target=primary -# workers= - -[bell] -# urgent=no -# notify=no -# command= -# command-focused=no - -[scrollback] -# lines=1000 -# multiplier=3.0 -# indicator-position=relative -# indicator-format= - -[url] -# launch=xdg-open ${url} -# label-letters=sadfjklewcmpgh -# osc8-underline=url-mode -# protocols=http, https, ftp, ftps, file, gemini, gopher -# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[] - -[cursor] -# style=block -# color= -blink=yes -# beam-thickness=1.5 -# underline-thickness= - -[mouse] -hide-when-typing=yes -# alternate-scroll-mode=yes - -[colors] -alpha=0.7 -#Default - -foreground=e0e0e0 -background=000000 -regular0=2e2016 # black -regular1=d88f96 # red -regular2=16af38 # green -regular3=dbbc2f # yellow -regular4=1961e6 # blue -regular5=b3787e # magenta -regular6=32cbe6 # cyan -regular7=f4e5e7 # white -bright0=473032 # bright black -bright1=e5a7aa # bright red -bright2=27d64d # bright green -bright3=f3d64d # bright yellow -bright4=4545db # bright blue -bright5=c6888d # bright magenta -bright6=67cbe6 # bright cyan -bright7=fcf5f3 # bright white - -## dimmed colors (see foot.ini(5) man page) -# dim0= -# ... -# dim7= - -## The remaining 256-color palette -#16 = <256-color palette #16> -# ... -#255 = <256-color palette #255> - -## Misc colors -#selection-foreground= -#selection-background= -#jump-labels= -#urls= -#scrollback-indicator= - -[csd] -# preferred=server -# size=26 -# font= -# color= -# hide-when-typing=no -# border-width=0 -# border-color= -# button-width=26 -# button-color= -# button-minimize-color= -# button-maximize-color= -# button-close-color= - -[key-bindings] -scrollback-up-page=none -scrollback-up-half-page=Mod1+Shift+e -scrollback-up-line=Mod1+e -scrollback-down-page=none -scrollback-down-half-page=Mod1+Shift+n -scrollback-down-line=Mod1+n -#clipboard-copy=Control+Shift+c XF86Copy -#clipboard-paste=Control+Shift+v XF86Paste -# primary-paste=Shift+Insert -# search-start=Control+Shift+r -# font-increase=Control+plus Control+equal Control+KP_Add -# font-decrease=Control+minus Control+KP_Subtract -# font-reset=Control+0 Control+KP_0 -# spawn-terminal=Control+Shift+n -# minimize=none -# maximize=none -# fullscreen=none -# pipe-visible=[sh -c \"xurls | fuzzel | xargs -r firefox\"] none -# pipe-scrollback=[sh -c \"xurls | fuzzel | xargs -r firefox\"] none -# pipe-selected=[xargs -r firefox] none -# show-urls-launch=Control+Shift+u -# show-urls-copy=none -# show-urls-persistent=none -# noop=none - -[search-bindings] -# cancel=Control+g Control+c Escape -# commit=Return -# find-prev=Control+r -# find-next=Control+s -# cursor-left=Left Control+b -# cursor-left-word=Control+Left Mod1+b -# cursor-right=Right Control+f -# cursor-right-word=Control+Right Mod1+f -# cursor-home=Home Control+a -# cursor-end=End Control+e -# delete-prev=BackSpace -# delete-prev-word=Mod1+BackSpace Control+BackSpace -# delete-next=Delete -# delete-next-word=Mod1+d Control+Delete -# extend-to-word-boundary=Control+w -# extend-to-next-whitespace=Control+Shift+w -# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste -# primary-paste=Shift+Insert - -[url-bindings] -# cancel=Control+g Control+c Control+d Escape -# toggle-url-visible=t - -[text-bindings] -# \\x03=Mod4+c # Map Super+c -> Ctrl+c - -[mouse-bindings] -# selection-override-modifiers=Shift -# primary-paste=BTN_MIDDLE -# select-begin=BTN_LEFT -# select-begin-block=Control+BTN_LEFT -# select-extend=BTN_RIGHT -# select-extend-character-wise=Control+BTN_RIGHT -# select-word=BTN_LEFT-2 -# select-word-whitespace=Control+BTN_LEFT-2 -# select-row=BTN_LEFT-3 - -# vim: ft=dosini")) - -(define %config:colorscheme - (plain-file "config-colorscheme" "\ -#!/bin/sh -foreground=e0e0e0 -background=000000 -regular0=2e2016 # black -regular1=d88f96 # red -regular2=16af38 # green -regular3=dbbc2f # yellow -regular4=1961e6 # blue -regular5=b3787e # magenta -regular6=32cbe6 # cyan -regular7=f4e5e7 # white -bright0=473032 # bright black -bright1=e5a7aa # bright red -bright2=27d64d # bright green -bright3=f3d64d # bright yellow -bright4=4545db # bright blue -bright5=c6888d # bright magenta -bright6=67cbe6 # bright cyan -bright7=fcf5f3 # bright white - -if [[ \"$TERM\" = \"vt102\" || \"$TERM\" = \"linux\" ]]; then - printf \"\\e]P$background\\e]P1$regular1\\e]P2$regular2\\e]P3$regular3\\e]P4$regular4\\e]P5$regular5\\e]P6$regular6\\e]P7$foreground\\e]P8$bright0\\e]P9$bright1\\e]PA$bright2\\e]PB$bright3\\e]PC$bright4\\e]PD$bright5\\e]PE$bright6\\e]PF$bright7\" -fi")) - -(define %config:hyfetch - (plain-file "config-hyfetch" "{\"preset\": \"transgender\", \"mode\": \"rgb\", \"light_dark\": \"dark\", \"lightness\": 0.65, \"color_align\": {\"mode\": \"horizontal\", \"custom_colors\": [], \"fore_back\": null}}")) - -(define %config:neofetch - (plain-file "config-neofetch" "\ -print_info() { - info title - info underline - info \"OS\" distro - info \"Host\" model - info \"Kernel\" kernel - info \"Uptime\" uptime - info \"Packages\" packages - info \"Shell\" shell - info \"Resolution\" resolution - info \"DE\" de - info \"WM\" wm - info \"WM Theme\" wm_theme - info \"Theme\" theme - info \"Icons\" icons - info \"Terminal\" term - info \"Terminal Font\" term_font - info \"Font\" font - [[ \"$player\" ]] && prin \"Music Player\" \"$player\" - info \"Song\" song - info \"CPU\" cpu - info \"CPU Usage\" cpu_usage - info \"GPU\" gpu - info \"GPU Driver\" gpu_driver # Linux/macOS only - info \"Disk\" disk - info \"Memory\" memory - info cols -} -title_fqdn=\"off\" -kernel_shorthand=\"on\" -distro_shorthand=\"off\" -os_arch=\"on\" -uptime_shorthand=\"on\" -memory_percent=\"off\" -package_managers=\"on\" -shell_path=\"off\" -shell_version=\"on\" -speed_type=\"bios_limit\" -speed_shorthand=\"off\" -cpu_brand=\"on\" -cpu_speed=\"on\" -cpu_cores=\"logical\" -cpu_temp=\"off\" -gpu_brand=\"on\" -gpu_type=\"all\" -refresh_rate=\"off\" -gtk_shorthand=\"off\" -gtk2=\"on\" -gtk3=\"on\" -public_ip_host=\"http://ident.me\" -public_ip_timeout=2 -de_version=\"off\" -disk_show=('/') -disk_subtitle=\"mount\" -disk_percent=\"on\" -music_player=\"auto\" -song_format=\"%artist% - %album% - %title%\" -song_shorthand=\"off\" -mpc_args=() -colors=(distro) -bold=\"on\" -underline_enabled=\"on\" -underline_char=\"-\" -separator=\":\" -block_range=(0 15) -color_blocks=\"on\" -block_width=3 -block_height=1 -col_offset=\"auto\" -bar_char_elapsed=\"-\" -bar_char_total=\"=\" -bar_border=\"on\" -bar_length=15 -bar_color_elapsed=\"distro\" -bar_color_total=\"distro\" -cpu_display=\"off\" -memory_display=\"off\" -battery_display=\"off\" -disk_display=\"off\" -image_backend=\"ascii\" -image_source=\"auto\" -ascii_distro=\"auto\" -ascii_colors=(distro) -ascii_bold=\"on\" -image_loop=\"off\" -thumbnail_dir=\"${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch\" -crop_mode=\"normal\" -crop_offset=\"center\" -image_size=\"auto\" -gap=3 -yoffset=0 -xoffset=0 -background_color= -stdout=\"off\"")) diff --git a/.config/guix/cobra/homedir.scm b/.config/guix/cobra/homedir.scm deleted file mode 100644 index d4e97b6..0000000 --- a/.config/guix/cobra/homedir.scm +++ /dev/null @@ -1,547 +0,0 @@ -(define-module (cobra homedir) - #:use-module (guix gexp) - #:export (%home:devspec - %home:bashrc - %home:prompt - %home:bash-profile)) - -(define %home:devspec - (plain-file "devspec" "\ -#!/usr/bin/env bash - -if [[ $HOSTNAME == pp ]]; then - PRIV=doas - UPDATE=\"$PRIV sh -c 'apk update && apk upgrade -aiv && apk fix'\" - COPY_COMMAND=\"wl-copy\" - PASTE_COMMAND=\"wl-paste\" - WIFI=wlan0 - WM=\"bash\" -elif [[ $HOSTNAME == Oganesson ]]; then : - #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 -elif [[ $HOSTNAME == Neon ]]; then - export WLR_NO_HARDWARE_CURSORS=1 -else - PRIV=sudo - UPDATE=\"$PRIV sh -c 'apt update && apt upgrade && apt autoremove'\" - COPY_COMMAND=\"xclip -i -selection clipboard\" - PASTE_COMMAND=\"xclip -o -selection clipboard\" - WIFI=wlp2s0 - WM=\"bash\" -fi")) - -(define %home:bash-profile - (plain-file "bash_profile" "\ -# Honor per-interactive-shell startup file -if [ -f ~/.bashrc ]; then . ~/.bashrc; fi -export PATH=\"~/.local/bin:$PATH\" -export LESS_TERMCAP_mb='' -export LESS_TERMCAP_md='' -export LESS_TERMCAP_me='' -export LESS_TERMCAP_se='' -export LESS_TERMCAP_so='' -export LESS_TERMCAP_ue='' -export LESS_TERMCAP_us='' -export LESS=-R -export PATH=~/.guix-home/profile/bin:$PATH - -PATH=\"/home/cobra/perl5/bin${PATH:+:${PATH}}\"; export PATH; -PERL5LIB=\"/home/cobra/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}\"; export PERL5LIB; -PERL_LOCAL_LIB_ROOT=\"/home/cobra/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}\"; export PERL_LOCAL_LIB_ROOT; -PERL_MB_OPT=\"--install_base \\\"/home/cobra/perl5\\\"\"; export PERL_MB_OPT; -PERL_MM_OPT=\"INSTALL_BASE=/home/cobra/perl5\"; export PERL_MM_OPT; - -. ~/.devspec -. ~/.guix-home/setup-environment -if [[ $(tty) == /dev/tty2 ]]; then - exec $WM -fi")) - -(define %home:prompt - (plain-file "prompt" "\ -#!/bin/bash -# shebang for syntax highlighting purposes - -# Colors -_NON=\"\\[\\033[0m\\]\" -_BLD=\"\\[\\033[1m\\]\" -_BLK=\"\\[\\033[30m\\]\" -_RED=\"\\[\\033[31m\\]\" -_GRN=\"\\[\\033[32m\\]\" -_YLW=\"\\[\\033[33m\\]\" -_BLU=\"\\[\\033[34m\\]\" -_PRP=\"\\[\\033[35m\\]\" -_CYN=\"\\[\\033[36m\\]\" -_WHT=\"\\[\\033[37m\\]\" - -__debug_trap() { - # Set necessary pre-command variables (PROMPT_COMMAND is a - # command so its excluded here) - if [[ \"$BASH_COMMAND\" != \"$PROMPT_COMMAND\" - && \"$LAST_BASH_COMMAND\" == \"$PROMPT_COMMAND\" ]]; then - INC_TIME=1 - LAST_RT=\"$EPOCHREALTIME\" # This should be the last thing done in this function - fi - LAST_BASH_COMMAND=\"$BASH_COMMAND\" -} - -trap '__debug_trap' DEBUG - -__get_cmd_time() { - # Set hours minutes seconds and remove preceding zeros - local YEAR - local DAYS - local HOUR - local MINS - local SECS - ((YEAR=10#$(($(TZ=UTC printf '%(%Y)T' \"$CMD_TIME\")))-1970)) - ((DAYS=10#$(TZ=UTC printf '%(%j)T' \"$CMD_TIME\"))) - ((HOUR=10#$(TZ=UTC printf '%(%H)T' \"$CMD_TIME\"))) - ((MINS=10#$(TZ=UTC printf '%(%M)T' \"$CMD_TIME\"))) - ((SECS=10#$(TZ=UTC printf '%(%S)T' \"$CMD_TIME\"))) - - # Choose whether or not to print hours minutes and seconds - [[ $CMD_TIME -ge 31536000 ]] && printf '%sy ' \"${YEAR}\" - [[ $CMD_TIME -ge 86400 ]] && printf '%sd ' \"${DAYS}\" - [[ $CMD_TIME -ge 3600 ]] && printf '%sh ' \"${HOUR}\" - [[ $CMD_TIME -ge 60 ]] && printf '%sm ' \"${MINS}\" - [[ $CMD_TIME -ge 1 ]] && printf '%ss ' \"${SECS}\" - # If you want to have a limit uncomment the next line and replace somenum with - # the minimum microseconds -# [[ $CMD_US -ge somenum ]] && - printf '%sμs' \"${CMD_US:-0}\" -} - -__sig() { - # Giant switch case for getting the name of the signal (`kill -l`) - local ITR=0 - local RET - for RET in \"$@\"; do - if [[ $ITR != 0 ]]; then - printf '%s|%s' \"$_WHT\" \"$_RED\" - fi - ((ITR++)) - case $RET in - 126): \"ACCES\" ;; - 127): \"NOENT\" ;; - 129): \"HUP\" ;; - 130): \"INT\" ;; - 131): \"QUIT\" ;; - 132): \"ILL\" ;; - 133): \"TRAP\" ;; - 134): \"ABRT\" ;; - 135): \"BUS\" ;; - 136): \"FPE\" ;; - 137): \"KILL\" ;; - 138): \"USR\"1 ;; - 139): \"SEGV\" ;; - 140): \"USR\"2 ;; - 141): \"PIPE\" ;; - 142): \"ALRM\" ;; - 143): \"TERM\" ;; - 144): \"STKFLT\" ;; - 145): \"CHLD\" ;; - 146): \"CONT\" ;; - 147): \"STOP\" ;; - 148): \"TSTP\" ;; - 149): \"TTIN\" ;; - 150): \"TTOU\" ;; - 151): \"URG\" ;; - 152): \"XCPU\" ;; - 153): \"XFSZ\" ;; - 154): \"VTALRM\" ;; - 155): \"PROF\" ;; - 156): \"WINCH\" ;; - 157): \"IO\" ;; - 158): \"PWR\" ;; - 159): \"SYS\" ;; - 16[3-9]|1[7-8][0-9]|19[0-2]): \"RT$((RET-128))\" ;; # Savagery - *): \"$RET\" ;; # Print exit code if not in list - esac - printf '%s' \"$_\" - done -} - -__ssh() { - local CON=($SSH_CONNECTION) - local SRV_IP=\"${CON[2]}\" - [[ -z \"$SRV_IP\" ]] && return - local SRV_PORT=\"${CON[3]}\" - # 4 chars from startand 4 chars from end - local SRV_IP_CUT=\"${_CYN}${SRV_IP}\" - [[ ${#SRV_IP} -gt 8 ]] && local SRV_IP_CUT=\"${_CYN}${SRV_IP:0:4}${_WHT}*${_CYN}${SRV_IP: -4}\" - - printf '%s' \"${_GRN}${_BLU}[${SRV_IP_CUT}${_PRP}${_BLD}:${_NON}${_CYN}${SRV_PORT}${_BLU}]${_NON}\" -} - -__guix_env() { - local re='[\\(]?\\(\"([^\"]*)\"' - if [[ \"$GUIX_ENVIRONMENT\" ]]; then - local PACKAGES=($(while read -r line; do - [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" - done < $GUIX_ENVIRONMENT/manifest)) - if [[ ${#PACKAGES[@]} -eq 2 ]]; then - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkg${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" - elif [[ ${#PACKAGES[@]} -gt 2 ]]; then - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s ${_NON}+ ${_PRP}%d ${_NON}pkgs${_BLD}${_BLU}] \" \"${PACKAGES[0]}\" \"$((${#PACKAGES[@]}-1))\" - else - printf \"${_BLD}${_BLU}[${_NON}${_YLW}Guix${_NON}: ${_WHT}%s${_BLD}${_BLU}] \" \"${PACKAGES[@]}\" - fi - fi -} - -__prompt() { - # Get exit code (must be first) - local PLC=(\"${PIPESTATUS[@]}\") - - # Reset time when prompt was first displayed after command - # this contributes to the ~40 microsecond difference in $CMD_US and the actual time it took - if [[ \"$INC_TIME\" != 0 ]]; then - PROMPT_RT=\"$EPOCHREALTIME\" - INC_TIME=0 - fi - - # *_RT may not be set - LAST_RT=\"${LAST_RT:-$EPOCHREALTIME}\" - PROMPT_RT=\"${PROMPT_RT:-$EPOCHREALTIME}\" - - # Get relative times - - # Remove decimal point, simulating multiplying by 1 million - PROMPT_RT1M=\"${PROMPT_RT/.}\" - PROMPT_RT1M=\"${PROMPT_RT1M/,}\" - LAST_RT1M=\"${LAST_RT/.}\" - LAST_RT1M=\"${LAST_RT1M/,}\" - - ((CMD_US=PROMPT_RT1M-LAST_RT1M)) - - CMD_TIME=0 - - # Divide by 1 million to get a more accurate difference - ((CMD_TIME=CMD_US/1000000)) - - [[ ${#CMD_US} -lt 6 ]] || CMD_US=\"${CMD_US: -6}\" - ((CMD_US=10#$CMD_US)) - - # Set prompt sections - - local SIG - local COL - local UHD - local TIME - local IND - local GUIX - - # Text - - # ssh detection and indicator - [[ \"$SSH_CONNECTION\" ]] && local SSH=\"$(__ssh) \" - - # [INT], [4], etc. - local RET - for RET in \"${PLC[@]}\"; do - if [[ $RET -gt 0 ]]; then - SIG=\"$(printf '%s[%s%s%s] ' \"$_BLU\" \"$_RED\" \"$(__sig \"${PLC[@]}\")\" \"$_BLU\")\" - break - fi - done - - # Guix shell environment - GUIX=\"$(__guix_env)\" - - # [user@homeserver:~] - COL=\"$([[ $UID == 0 ]] && printf '%s' \"$_RED\" || printf '%s' \"$_YLW\")\" - UHD=\"${_BLD}${_BLU}[${COL}\\u${_PRP}@${_CYN}\\h${_PRP}:${_GRN}\\w${_BLU}]\" - - # 2y 351d 12m 43s 382969μs - TIME=\"${_YLW}$(__get_cmd_time)\" - - # Random colored $ or # - _RAND256=\"\\[\\033[38;2;$((RANDOM%256));$((RANDOM%256));$((RANDOM%256))m\\]\" - IND=\"${_RAND256}\\\\$\" - - # Set the prompt - PS1=\"${_NON}${SSH}${GUIX}${SIG}${UHD} ${TIME} ${IND} ${_NON}\" -} - -PROMPT_COMMAND=__prompt")) - -(define %home:bashrc - (plain-file "bashrc" "\ -# Source other files -[ -r ~/.prompt ] && . ~/.prompt -[ -r ~/.devspec ] && . ~/.devspec -[ -r ~/.config/colorscheme ] && . ~/.config/colorscheme - -[ \"$TERM\" == \"screen.linux\" ] && export TERM=\"screen\" - -export EDITOR=\"vim\" -export TERM=xterm-256color - -# History stuff -export HISTCONTROL=ignoredups:erasedups -export HISTFILESIZE=1000 -export HISTSIZE=1000 - -export GPG_TTY=$(tty) - -export MANPATH=/run/current-system/profile/share/man:/home/cobra/.guix-profile/share/man:/run/current-system/profile/share/man:/home/cobra/.guix-home/profile/share/man - -clear() { - printf '\\033c' # faster than ncurses clear by a lot -} - -# Other aliases -alias c='clear' -alias ls='ls --color=auto -FAh' -alias ll='ls -l' -alias nf='hyfetch' -alias ga='git add' -alias gc='git commit -sS' -alias gp='git push' -alias mpv='mpv --no-audio-display' -alias wv='swayhide mpv $($PASTE_COMMAND)' -alias curl='curl -L' -alias prof='profanity' -alias gomuks=\"http_proxy='socks5://127.0.0.1:9050' gomuks\" -alias tut=\"http_proxy='socks5://127.0.0.1:9050' tut\" -alias dico=\"dico -d en-wiktionary\" - -# Random string (passwords) -randstr() { - tr -cd '[:graph:]' >($COPY_COMMAND) -} - -# URL-encode stdin -urlencode() { - LC_COLLATE_OLD=$LC_COLLATE - LC_COLLATE=C - - local TEXT=\"$( /dev/null \\;; } - -fixdh() { - diffhome | while read -r _ SRC _ DEST _; do - cp $SRC $DEST; - done; -} - -strlen() { - N=$(wc -c <<< \"$*\") - ((N--)) - printf '%u\\n' \"$N\" -} - -uppweb() { - ssh vern.cc 'cd ~/public_html; git pull' -} - -caption() { - [ -z \"$3\" ] && { - echo \"Usage: caption [input] [output] [text...]\" - return 1 - } - local FILE=\"$1\" - local OUT=\"$2\" - shift 2 - local TEXT=\"$*\" - local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" - local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" - local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" - convert -gravity north \\( -size \"${WIDTH}x\" -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' caption:\"$TEXT\" -gravity Center -extent \"${WIDTH}x\" \\) \"$FILE\" -append \"$OUT\" -} - -captionvid() { - [ -z \"$3\" ] && { - echo \"Usage: captionvid [input] [output] [text...]\" - return 1 - } - rm /tmp/caption.*.png - FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" - IN=\"$1\" - OUT=\"$2\" - shift 2 - ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" - for i in /tmp/caption.*; do - caption \"$i\" \"$i-new.png\" \"$*\" - done - ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" - rm /tmp/caption.*.png -} - -topbottom() { - [ -z \"$3\" ] && { - echo \"Usage: caption [input] [output] [text...]\" - return 1 - } - local FILE=\"$1\" - local OUT=\"$2\" - shift 2 - local WIDTH=\"$(identify -format \"%[w]\\n\" \"$FILE\" | head -n1)\" - local HEIGHT=\"$(identify -format \"%[h]\\n\" \"$FILE\" | head -n1)\" - local FONT_SIZE=\"$(((HEIGHT+WIDTH)/20))\" - convert -size \"${WIDTH}x\" -stroke black -strokewidth 3 -fill white -pointsize \"$FONT_SIZE\" -font 'Liberation-Sans-Bold' -gravity Center -extent \"${WIDTH}x\" -gravity north \\( -annotate +0+0 \"$1\" \\) -gravity south \\( -annotate +0+0 \"$2\" \\) \"$FILE\" -append \"$OUT\" -} - -topbottomvid() { - [ -z \"$3\" ] && { - echo \"Usage: captionvid [input] [output] [text...]\" - return 1 - } - rm /tmp/caption.*.png - FPS=\"$(ffmpeg -i \"$1\" 2>&1 |grep fps | sed 's/.* \\([0-9]\\+\\) fps.*/\\1/')\" - IN=\"$1\" - OUT=\"$2\" - shift 2 - ffmpeg -i \"$IN\" \"/tmp/caption.%02d.png\" - for i in /tmp/caption.*; do - topbottom \"$i\" \"$i-new.png\" \"$1\" \"$2\" - done - ffmpeg -framerate $FPS -i \"/tmp/caption.%02d.png-new.png\" \"$OUT\" - rm /tmp/caption.*.png -} - -subcipher() { - local COLOR PERM L1 line grep word - if [ $# -lt 3 ]; then - if [ $# -lt 2 ] || [[ \"$1\" != \"0\" && \"$1\" != \"1\" ]]; then - printf \"Usage: [0|1] subcipher file [string...]\\n\" - return 1 - fi - fi - COLOR=\"$1\" - shift - PERM=\"$1\" - shift - [ -z \"$*\" ] && set -- \"$( ${1:-$(date -u -I)}.svg -} - - -mnplot() { - ssh mythos \"${1:-/opt/gnuplot/gnuplot.sh}; cat /opt/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -vnplot() { - ssh vern \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -vpplot() { - ssh vern \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -inplot() { - ssh iceberg \"${1:-~/gnuplot/gnuplot.sh}; cat ~/gnuplot/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -cnplot() { - ssh crescent \"${1:-/opt/gnuplot/net/gnuplot.sh}; cat /opt/gnuplot/net/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -cpplot() { - ssh crescent \"${1:-/opt/gnuplot/power/gnuplot.sh}; cat /opt/gnuplot/power/${1:-$(date -u -I)}.svg\" > ${1:-$(date -u -I)}.svg -} - -reconf() { - $PRIV guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm -} - -hreconf() { - guix home reconfigure $HOME/.config/guix/home.scm -} - -geng() { - < \"$1\" sed 's/\\s*;.*//' | grep -ve '^$' -e '^T' | awk '{print \"N\"NR\" \"$0}' > \"$2\" -} - -mkmshex() { - FILE=\"${1%.*}\" - microscheme \"$1\" - avr-gcc -B /run/current-system/profile/avr/lib/avr5 -mmcu=\"$2\" -g -Os \"$FILE\".s -o \"$FILE\".elf - avr-objcopy -Oihex \"$FILE\".o \"$FILE\".hex -} - -uploadhex() { - avrdude -C/run/current-system/profile/etc/avrdude.conf -v -p\"$2\" -carduino -P${3:-/dev/ttyS0} -U\"flash:w:$1:i\" -} - -gshpkg() { - local re='[\\(]?\\(\"([^\"]*)\"' - if [[ \"$GUIX_ENVIRONMENT\" ]]; then - local PACKAGES=($(while read -r line; do - [[ \"$line\" =~ $re ]] && printf '%s ' \"${BASH_REMATCH[1]}\" - done < $GUIX_ENVIRONMENT/manifest)) - echo ${PACKAGES[@]} - fi -}")) diff --git a/.config/guix/home.scm b/.config/guix/home.scm deleted file mode 100644 index d0345e3..0000000 --- a/.config/guix/home.scm +++ /dev/null @@ -1,195 +0,0 @@ -(add-to-load-path "/etc/guix-config") -(add-to-load-path "/home/cobra/.config/guix") - -(use-modules (gnu home) - (gnu home services) - (gnu home services mcron) - (gnu home services desktop) - (gnu home services shells) - (gnu packages) - (gnu packages gl) - (gnu services) - (gnu services dbus) - (gnu services mcron) - (guix gexp) - - ;; Deranged Guix Home Usage(TM) - (cobra homedir) - (cobra config) - (cobra bin) - (cobra packages)) - -(define webfetch-job - #~(job "*/1 * * * *" - "hyfetch > /tmp/fetch; rsync --rsh=\"ssh -i /home/cobra/.ssh/id_fetch\" /tmp/fetch vern.cc:~/public_html/${HOSTNAME,,}")) - -(home-environment - (packages - (map specification->package+output - (list ;; Audio - "alsa-utils" - "cmus" - "mumble" - "pamixer" - "pipewire" - "playerctl" - "pulseaudio" - "pulsemixer" - "wireplumber" - - ;; Browsers - "icecat" - "icedove" - "lynx" - "ungoogled-chromium-wayland" - - ;; CAD - "cura" - "freecad" - "gpx" - "kicad" - "kicad-doc" - "kicad-footprints" - "kicad-packages3d" - "kicad-symbols" - "kicad-templates" - - ;; Chat - "irssi" - "pinentry" - "profanity" - - ;; Desktop - "brightnessctl" - "foot" - "grim" - "libnotify" - "light" - "light" - "mako" - "slurp" - "sway" - "swayhide" - "swayidle" - "swaylock" - "waybar" - "wf-recorder" - "wl-clipboard" - "wlr-randr" - "wob" - "wofi" - "xorg-server-xwayland" - - ;; Development - "at-spi2-core" - "avr-toolchain" - "gcc-toolchain" - "git" - "git:send-email" - "go" - "make" - "microscheme" - "perl" - "python" - - ;; DICT - "dico" - - ;; Encryption - "gnupg" - "password-store" - - ;; Games - "adanaxisgpl" - "minetest" - "red-eclipse" - "supertuxkart" - "teeworlds" - "xonotic" - - ;; Multimedia - "ffmpeg" - "gimp" - "handbrake" - "imagemagick" - "kodi" - "mpv" - "mpv-mpris" - "reptyr" - "ripit" - - ;; Network - "bind:utils" - "i2pd" - "net-tools" - "netcat" - "proxychains-ng" - "socat" - "tmate" - "whois" - "wireguard-tools" - - ;; Utilities - "bc" - "dialog" - "emacs" - "htop" - "hyfetch" - "libqalculate" - "lm-sensors" - "macchanger" - "monero-gui" - "newsboat" - "rsync" - "scdoc" - "screen" - "unzip" - "wget" - "yt-dlp"))) - (services - (list - (service home-dbus-service-type) - (service home-mcron-service-type - (home-mcron-configuration - (jobs (list webfetch-job)))) - (simple-service 'home-env - home-environment-variables-service-type - `(("LIBGL_DRIVERS_PATH" . ,(if (equal? (gethostname) "Neon") - (file-append mesa-i915 "/lib/dri") - (file-append mesa "/lib/dri"))) - ("PRIV" . "sudo") - ("WM" . "sway") - ("WIFI" . "wlp2s0") - ("COPY_COMMAND" . "wl-copy") - ("PASTE_COMMAND" . "wl-paste") - ("UPDATE" . "guix pull --branch=master && reconf && hreconf"))) - (simple-service 'dotfiles - home-files-service-type - (list `(".bashrc" ,%home:bashrc) - `(".prompt" ,%home:prompt) - `(".devspec" ,%home:devspec) - `(".bash_profile" ,%home:bash-profile) - - `(".local/bin/backtick" ,%bin:backtick) - `(".local/bin/beep" ,%bin:beep) - `(".local/bin/beep-wrapper" ,%bin:beep-wrapper) - `(".local/bin/fss" ,%bin:fss) - `(".local/bin/lock" ,%bin:lock) - `(".local/bin/logout-wofi" ,%bin:logout-wofi) - `(".local/bin/screenshot" ,%bin:screenshot) - `(".local/bin/start-pipewire" ,%bin:start-pipewire) - `(".local/bin/__suspend" ,%bin:suspend) - `(".local/bin/suspend" ,%bin:suspend-wrap) - `(".local/bin/torbrowser" ,%bin:torbrowser) - - `(".config/neofetch/config.conf" ,%config:neofetch) - `(".config/hyfetch.json" ,%config:hyfetch) - `(".config/colorscheme" ,%config:colorscheme) - `(".config/foot/foot.ini" ,%config:foot) - `(".config/mako/config" ,%config:mako) - `(".config/mpv/mpv.conf" ,%config:mpv) - `(".config/swaylock/config" ,%config:swaylock) - `(".config/sway/config" ,%config:sway) - - `(".config/waybar/config" ,%waybar:config) - `(".config/waybar/style.css" ,%waybar:style))))))