Remove files from before refactor

Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
This commit is contained in:
Skylar "The Cobra" Widulski 2023-06-05 14:41:17 -04:00
parent a91d7ecf17
commit be50d1c12b
Signed by: cobra
GPG Key ID: 4FD8F812083FF6F9
4 changed files with 0 additions and 1930 deletions

View File

@ -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=$(</sys/class/power_supply/BAT0/capacity)
if [[ $BAT0 -le 5 && -z \"$BEEPED\" && $(</sys/class/power_supply/BAT0/status) == Discharging ]]; then
sudo ~/.local/bin/beep 9
BEEPED=1
elif [[ $BAT0 -le 2 && $(</sys/class/power_supply/BAT0/status) == Discharging ]]; then
sudo ~/.local/bin/beep 9
BEEPED=0
fi
fi
done" "\nEOF"))
(chmod #$output #o755))))
(define %bin:beep
(computed-file "bin-beep"
#~(begin
(system (string-append #$coreutils "/bin/cat << \"EOF\" >" #$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))))

View File

@ -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\": \"<span style=\\\"italic\\\"> {}</span>\", // 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=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# box-drawings-uses-font-glyphs=no
dpi-aware=false
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
# 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=<number of logical CPUs>
[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=<inverse foreground/background>
blink=yes
# beam-thickness=1.5
# underline-thickness=<font 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=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
#16 = <256-color palette #16>
# ...
#255 = <256-color palette #255>
## Misc colors
#selection-foreground=<inverse foreground/background>
#selection-background=<inverse foreground/background>
#jump-labels=<regular0> <regular3>
#urls=<regular3>
#scrollback-indicator=<regular0> <bright4>
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-typing=no
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[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\""))

View File

@ -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:]' </dev/urandom | head -c ${1:-256}
}
# Get CPU usage
cpusage() {
bc<<<\"scale=3;$(ps aux | awk 'BEGIN {sum=0} {sum+=$3}; END {print sum}') / $(nproc --all)\"
}
# Update and upgrade system
update() { eval \"$UPDATE\"; }
# Im too lazy to type
copy() {
printf \"%s\" \"$(</dev/stdin)\" > >($COPY_COMMAND)
}
# URL-encode stdin
urlencode() {
LC_COLLATE_OLD=$LC_COLLATE
LC_COLLATE=C
local TEXT=\"$(</dev/stdin)\"
local LENGTH=\"${#TEXT}\"
for (( i = 0; i < LENGTH; i++ )); do
local c=\"${TEXT:$i:1}\"
case $c in
[a-zA-Z0-9.~_-]) printf '%s' \"$c\" ;;
*) printf '%%%02X' \"'$c\" ;;
esac
done
LC_COLLATE=$LC_COLLATE_OLD
}
diffhome() { find . -type f -regex '\\./\\.[^g].*' -exec diff -q ~/{} {} 2> /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 -- \"$(</dev/stdin)\"
L1=\"$(head -1 \"$PERM\")\"
while read -r line; do
tr \"${L1^^}${L1}\" \"${line^^}${line}\" <<< \"$*\"
done < \"$PERM\" | \
while read -r line; do
for word in $line; do
[ $COLOR -eq 1 ] && grep=\"$(grep --color=always -xF \"$word\" /etc/dictionaries-common/words)\"
printf %s \"${grep:-$word} \"
done
printf '\\n'
done
}
playcd() {
mpv --start=00:00:00.0000000 av://libcdio:/dev/cdrom --cache=yes
}
playdvd() {
mpv --start=00:00:00.0000000 dvd:///dev/sr0 --cache=yes
}
gpginfo() {
gpg --with-colons --import-options show-only --import
}
lc() {
fc -nl $HISTCMD | sed 's/^\\s*//'
}
baseto() {
if [ $# -ge 3 ]; then
local i=\"$1\"
local o=\"$2\"
shift 2
bc <<< \"obase=$o;$(($i#$*))\"
else
local line i o n
while read -r line; do
read -r i o n <<< \"$line\"
bc <<< \"obase=$o;$(($i#$n))\"
done
fi
}
rebash() { . ~/.bashrc; }
bashrc() { \"$EDITOR\" ~/.bashrc && rebash; }
uplot() {
ssh vern \"${1:-/opt/gnuplot/users/gnuplot.sh}; cat /opt/gnuplot/users/${1:-$(date -u -I)}.svg\" > ${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
}"))

View File

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