Remove files from before refactor
Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
This commit is contained in:
parent
a91d7ecf17
commit
be50d1c12b
|
@ -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))))
|
|
|
@ -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\""))
|
|
|
@ -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='[01;32m'
|
|
||||||
export LESS_TERMCAP_md='[01;32m'
|
|
||||||
export LESS_TERMCAP_me='[0m'
|
|
||||||
export LESS_TERMCAP_se='[0m'
|
|
||||||
export LESS_TERMCAP_so='[01;47;34m'
|
|
||||||
export LESS_TERMCAP_ue='[0m'
|
|
||||||
export LESS_TERMCAP_us='[01;36m'
|
|
||||||
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
|
|
||||||
}"))
|
|
|
@ -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))))))
|
|
Loading…
Reference in New Issue