migrate to new dotfiles repo

This commit is contained in:
Penelope Gwen 2026-03-20 11:47:19 -07:00
commit e87d6ac7c7
971 changed files with 30650 additions and 0 deletions

73
.dotter/global.toml Normal file
View file

@ -0,0 +1,73 @@
[helpers]
[default]
depends = []
[default.files]
"default/bashrc.d" = "~/.bashrc.d"
"default/config/hyfetch.json" = "~/.config/hyfetch.json"
"default/config/fastfetch" = "~/.config/fastfetch"
"default/gitconfig" = "~/.gitconfig"
"default/bin" = "~/.local/bin"
"default/scripts" = "~/Scripts"
"default/config/starship.toml" = "~/.config/starship.toml"
"default/config/helix" = "~/.config/helix"
"default/XCompose" = "~/.XCompose"
[default.variables]
[graphical]
depends = ["default"]
[graphical.files]
"graphical/bin" = "~/.local/bin"
"graphical/config" = { target = "~/.config", type = "symbolic" }
"graphical/librewolf" = { target = "~/.librewolf", type = "symbolic" }
"graphical/flatpak" = "~/.var/app"
"graphical/share" = "~/.local/share"
"graphical/fonts" = "~/.fonts"
[graphical.variables]
[wayland]
depends = ["graphical"]
[wayland.files]
"wayland/config" = { target = "~/.config", type = "symbolic" }
[wayland.variables]
[desktop]
depends = ["wayland"]
[desktop.files]
"desktop/config" = "~/.config"
[desktop.variables]
[personal-laptop]
depends = ["wayland"]
[personal-laptop.files]
"personal-laptop/config" = "~/.config"
[personal-laptop.variables]
[fajita]
depends = ["wayland"]
[fajita.files]
"fajita/config" = "~/.config"
[fajita.variables]
[work-laptop]
depends = ["wayland"]
[work-laptop.files]
"work-laptop/config" = "~/.config"
[work-laptop.variables]
[settings]
default_target_type = "automatic"

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.dotter/local.toml
.dotter/cache.toml
.dotter/cache

4
default/XCompose Normal file
View file

@ -0,0 +1,4 @@
include "%L"
<Multi_key> <g> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON
<Multi_key> <3> <3> : "Ɛ" U0190 # GREEK CAPITAL LETTER EPSILON

260
default/bashrc.d/default Executable file
View file

@ -0,0 +1,260 @@
#!/bin/bash
if [[ -z ${ZELLIJ} ]] && [[ -z ${SSH_CLIENT} ]]; then
zellij && exit
fi
export EDITOR=hx
export VISUAL="${EDITOR}"
hyfetch 2>/dev/null || true
# Quality of Life
#enable using sudo with functions
function Sudo {
local firstArg=$1
if [ $(type -t $firstArg) = function ]; then
shift && command sudo bash -c "$(declare -f $firstArg);$firstArg $*"
elif [ $(type -t $firstArg) = alias ]; then
alias sudo='\sudo '
eval "sudo $@"
else
command sudo "$@"
fi
}
#find in history
alias h="history|grep "
#search files in current and sub dirs
#alias f="find . |grep "
find_file() {
find . -name *"${1}"*
}
#find running processes
alias p="ps aux |grep "
#open file
alias o="open "
#find large files
#alias find_largest_files="du -h -x -s -- * | sort -r -h | head -20"
alias nano="hx"
alias nvim="hx"
sort_filesizes() {
[ -z ${1} ] && local dir="$(pwd)" || local dir="${1}"
du -ah --max-depth=1 "$(realpath ${dir})" | sort --human-numeric-sort
}
sort_filesizes-monitor() {
[ -z ${1} ] && local dir="$(pwd)" || local dir="${1}"
watch "du -ah --max-depth=1 $(realpath ${dir}) | sort --human-numeric-sort"
}
#connect to android via adb as root
alias adb_root="adb shell -t exec run-as com.termux files/usr/bin/bash -c 'su -'"
#df -h without tmpfs
alias dfh="df -h | grep 'Use%\|/dev/'"
#dev environment toolbox with proper term env var
devpod() {
podman container start debian-sid-dev
podman exec --env POD_PATH=$(pwd | sed "s|${HOME}|/root|") -it debian-sid-dev /bin/bash
}
devpod-arm() {
podman container start debian-sid-arm-dev
podman exec --env POD_PATH=$(pwd | sed "s|${HOME}|/root|") -it debian-sid-arm-dev /bin/bash
}
#db-create(){
# if [ -z ${1} ] {
# distro_array=()
# while read distro;do
# distro_array+=("${distro}" "${distro}")
# done
# if [[ ${#distro_array[@]} -eq 0 ]];then
# "no matching distros found"
# fi
# dialog --no-tags --menu 'select an image' 0 0 0
# }
# if distrobox create --image
#}
#db-enter(){
# if [ -z ${1} ] {
# printf "no container name provided\nUSAGE:\n db-enter [container_name]\nAvailable containers:\n"
# distrobox ls | awk '{print $3}' | tail -n +2 | sed 's/^/- /'
# return 1
# }
# distrobox enter --additional-flags "--env DB_PATH=${PWD}" ${1}
#}
simplewebserver() {
if [ "${1}" = "-n" ]; then
screen bash -c "printf 'running [ /usr/bin/python3 -m http.server ] in screen...\nTo run with server-side includes, remove -n\n';/usr/bin/python3 -m http.server"
else
screen bash -c "printf 'running [ %s ] in screen...\nTo run barebones webserver, add -n\n' """$(which ssi-server)""";ssi-server"
fi
}
filecount() {
[[ -z ${1} ]] && fc_targetdir=$(pwd) || fc_targetdir="${1}"
find "${fc_targetdir}" -type f | wc -l
}
filecount-monitor() {
[[ -z ${1} ]] && fc_targetdir=$(pwd) || fc_targetdir="${1}"
watch "find ${fc_targetdir} -type f | wc -l"
}
pwatch() {
local firstArg=$1
if [ $(type -t $firstArg) = function ]; then
shift && while true; do
clear -x
command bash -c "$(declare -f $firstArg);$firstArg $*"
sleep 2
done
elif [ $(type -t $firstArg) = alias ]; then
# alias sudo='\sudo '
while true; do
clear -x
eval "$@"
sleep 2
done
else
while true; do
clear -x
command "$@"
sleep 2
done
fi
}
process_search() {
if [[ -z ${1} ]]; then
printf 'no search arg provided\n'
return 1
fi
ps aux | grep -ie "${1}"
}
alias nowrap='sed -E "s/(.{$((COLUMNS - 2))}).*$/\1 >/"'
#alias devbox-stable="TERM=xterm-256color toolbox enter debian-toolbox-12"
#alias devbox-testing="TERM=xterm-256color toolbox enter debian-toolbox-testing"
#git shortcut to quickly push all changes with comment
pushall() {
git add .
git commit -m "${1}"
git push origin
read -p "tag as well? (Y/n)" bool_tag
[ -z ${bool_tag} ] && bool_tag="y"
case "${bool_tag}" in
[yY] | [yY][eE][sS])
read -p "Tag version: " ver_tag
git tag -a "${ver_tag}" -m "${ver_tag}"
git push origin "${ver_tag}"
;;
esac
}
#deb_canvas(){
# dh_make -c custom --copyrightfile ~/Development/metapackages/pogmom_deb_template/licenses/oql -n -e "${GIT_AUTHOR_EMAIL}" -p pogmom-essentials_0.1 -C i
#}
network-status() {
[[ -z ${1} ]] && loglength="10" || loglength="${1}"
sudo journalctl -u NetworkManager.service -u openvpn.service --lines="${loglength}" --follow
}
tb-encrypt() {
if ! [[ -f "${1}" || -d "${1}" ]]; then
printf 'no path provided\n'
return 1
fi
path=$(realpath "${1}")
bn=$(basename "${path}")
tar -czf - "${1}" | openssl enc -e -aes256 -out "${bn}-$(date +%Y-%m-%d_%H%M%S).tar.gz.enc"
}
tb-decrypt() {
if ! [[ -f "${1}" ]]; then
printf 'no path provided\n'
return 1
fi
path=$(realpath "${1}")
bn=$(basename "${path}")
echo "${1}"
echo "${path}"
echo "${bn}"
mkdir "${bn%%.*}"
openssl enc -d -aes256 -in "${1}" | tar xz -C "${bn%%.*}"
}
alias quickdeb='dpkg-buildpackage -b -tc'
alias gituntracked='git ls-files . --exclude-standard --others'
alias gitdiff='git diff --name-only'
gitchanges() {
printf '%b\n' "\033[1m"'Modified Files:'"\033[0m"
while read l; do printf ' - %s\n' "${l}"; done < <(git diff --name-only)
# git diff --name-only
printf '%b\n' "\033[1m"'Untracked Files:'"\033[0m"
# git ls-files . --exclude-standard --others
while read l; do printf ' - %s\n' "${l}"; done < <(git ls-files . --exclude-standard --others)
}
dpkg-log-search() {
zgrep "${1}" /var/log/dpkg.log*
}
#apt update summary
alias thong-list="sudo apt update;apt list --upgradable"
alias thong="sudo apt update;sudo apt upgrade"
#User Env Vars
export DEBEMAIL="support@pogmom.me"
export DEBFULLNAME="Penelope Gwen"
#SSH Personal Machines
alias pogmommy-omen-328p1aa="ssh pogmommy-omen-328p1aa"
alias pogmommy-apple-a2337="ssh pogmommy-apple-a2337"
alias pogmommy-apple-a2337-vpn="ssh pogmommy-apple-a2337-vpn"
alias pogmommy-dell-p135g="ssh pogmommy-dell-p135g"
#Git env vars
GIT_AUTHOR_NAME="Penelope Gwen"
GIT_AUTHOR_EMAIL="penelope@pogmom.me"
GIT_EDITOR="/usr/bin/nano"
#Bash Prompt Customization
prompt_prefix=""
if [ -n "${SSH_CLIENT}" ] || [ -n "${SSH_TTY}" ]; then
prompt_prefix="${prompt_prefix} [SSH] "
fi
if [[ "$HOSTNAME" == pod* ]]; then
prompt_prefix="${prompt_prefix} [POD] "
mkdir -p "${HOME}/.devpod/$(uname -m)"
export CARGO_HOME="${HOME}/.devpod/$(uname -m)/.cargo"
export RUSTUP_HOME="${HOME}/.devpod/$(uname -m)/.rustup"
cd ${POD_PATH}
fi
[[ -d $HOME/.cargo/bin ]] && export PATH="$HOME/.cargo/bin:$PATH"
#[[ -d $HOME/.rustup/toolchains/nightly-$(uname -m)-unknown-linux-gnu/bin ]] && export PATH="$HOME/.rustup/toolchains/nightly-$(uname -m)-unknown-linux-gnu/bin:$PATH"
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash 2>/dev/null)"
[[ -d $HOME/.local/share/gem/ruby/3.3.0/bin ]] && export PATH="$HOME/.local/share/gem/ruby/3.3.0/bin:$PATH"
export NODE_PATH=$HOME/.local/lib/node_modules:$NODE_PATH
export npm_config_prefix=$HOME/.local
#TPUT_RED="$(tput setaf 1)$(tput setab 0)"
#TPUT_MAGENTA_BG="$(tput setab 5)$(tput setaf 0)"
#TPUT_MAGENTA="$(tput sgr0)$(tput setaf 5)"
#TPUT_MAGENTA="$(tput setab 0)$(tput setaf 5)"
#TPUT_BLACK="$(tput sgr0)$(tput setaf 0)"
#export prompt_prefix=`awk '{$1=$1};1' <<< "${prompt_prefix}"`
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]\w\[\e[00m\]\n\$ '
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]$(pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\\/.*)(?=\\/.*\\/)/\\/…/s")\[\e[00m\]\n\$ '
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[${TPUT_MAGENTA_BG}▓▒░ 󰊟 \u ${TPUT_MAGENTA} ${TPUT_RED}󰣚 ${TPUT_MAGENTA}$(hostname | cut -d - -f 3-) ${TPUT_BLACK} \[\[\e[01;34m\]$(pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\\/.*)(?=\\/.*\\/)/\\/…/s")\[\e[00m\]\n\$ '
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[${TPUT_MAGENTA_BG} 󰊟 \u${TPUT_MAGENTA} ${TPUT_RED}󰣚\[\e[00m\] \[\e[01;34m\]$(pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\\/.*)(?=\\/.*\\/)/\\/…/s")\[\e[00m\]\n\$ '
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[\e[01;32m\]󰊟 \u ${TPUT_RED}󰣚\[\e[00m\] \[\e[01;34m\]$(pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\\/.*)(?=\\/.*\\/)/\\/…/s")\[\e[00m\]\n\$ '
#PS1='\[\e[1m\e[95m\]${prompt_prefix}\[\e[m\]${debian_chroot:+($debian_chroot)}\[\e[01;32m\]\u@\h\[\e[00m\]:\[\e[01;34m\]$(pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\\/.*)(?=\\/.*\\/)/\\/…/s"|xargs printf "\\e]2;%s — Alacritty\007")\[\e[00m\]\n\$ '
#Alacritty custom window title
if [ "$TERM" = alacritty ]; then
PROMPT_COMMAND='pwd|sed "s|${HOME}|~|"|perl -pe "s/(?<!(^~))(\/.*)(?=\/.*\/)/\/…/s"|xargs printf "\e]2;%s — Alacritty\007"'
fi
eval "$(starship init bash)"
#bind TAB:menu-complete
#set show-all-if-ambiguous on
bind 'set show-all-if-ambiguous on'
bind 'set completion-ignore-case on'

48
default/bin/hass-cli Executable file
View file

@ -0,0 +1,48 @@
#!/usr/bin/env bash
#https://developers.home-assistant.io/docs/api/rest/
source "${HOME}/.secrets"
while getopts "a:I:i:d:s:" flag; do
case $flag in
a)
action="${OPTARG}"
;;
I)
identify_by="${OPTARG}"
;;
i)
identifier="${OPTARG}"
;;
d)
domain="${OPTARG}"
;;
s)
service="${OPTARG}"
;;
*)
printf '%s' "bad option: ${flag}"
;;
esac
done
#echo "action: ${action}"
#echo "entity_id: ${entity_id}"
case "${action}" in
"states")
curl -s \
-H "Authorization: Bearer ${HA_TOKEN}" \
-H "Content-Type: application/json" \
"${HA_URL}/api/${action}/${identifier}" | jq '.'
;;
"services")
# echo '{"entity_id": "'"${entity_id}"'"}'
curl -s \
-H "Authorization: Bearer ${HA_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"'"${identify_by}"'": "'"${identifier}"'"}' \
"${HA_URL}/api/${action}/${domain}/${service}" | jq '.'
;;
esac

21
default/bin/rdict Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
search_cache_path="${HOME}/.cache/rdict/searches"
mkdir -p "${search_cache_path}"
search_string=''
for i in $@;do
if [[ -n "${search_string}" ]];then
search_pad=" "
fi
search_string="${search_string}${search_pad}${i}"
done
search_encode="$(printf %s "${search_string}"|jq -sRr @uri)"
search_cache_file="${search_cache_path}/${search_encode}.json"
if [ ! -f "${search_cache_file}" ];then
curl --silent --get "https://api.datamuse.com/words?ml=${search_encode}" | tee "${search_cache_file}" 1&>/dev/null
fi
jq '.[].word' "${search_cache_file}"
#jq -C '.[].word' "${search_cache_file}"

View file

@ -0,0 +1,20 @@
#!/usr/bin/env bash
if [[ -z ${1} ]]; then
printf 'File not provided!\n'
exit 1
fi
if [[ ! -f "${1}" ]]; then
printf 'File does not exist!\n'
exit 1
fi
if [[ "${1}" != *'.deb' ]]; then
printf 'File is not a deb!\n'
exit 1
fi
if ! ping -c 1 -w 10 server-dell-7050sff-debian &>/dev/null; then
printf 'Server inaccessible!\n'
exit 2
fi
printf 'Sending file to server: %s\n' "${1}"
scp "${1}" pogmom@server-dell-7050sff-debian:/home/pogmom/debs/

View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
if [[ -z ${1} ]];then
echo "no host provided"
exit 1
fi
host="${1}"
if [[ -z ${2} ]];then
echo "no icon provided"
exit 1
fi
icon="${2}"
echo "${host}"
echo "${host#*@}"
#exit 0
alacritty -T "${icon} ${host#*@}" -e bash -c '\
eval $(ssh-agent) &> /dev/null; \
ssh-add ~/.ssh/id_ed25519 &> /dev/null; \
ssh -A '"${host}"

View file

@ -0,0 +1,161 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"padding": {
"top": 2
}
},
"display": {
"separator": ": ",
"percent": {
"type": 3,
"color": {
"green": "green",
"yellow": "light_yellow",
"red": "red"
}
}
},
"modules": [
"title",
"separator",
// "host",
{
"type": "host",
"key": "Host",
"format": "{vendor} {family}"
},
{
"type": "cpu",
"key": " CPU",
"temp": true
},
{
"type": "gpu",
"key": " GPU",
"temp": true
},
{
"type": "title",
"key": "Memory",
"format": " "
},
{
"type": "memory",
"key": " RAM ",
"keycolor": "green",
"format": "{percentage-bar} {used} / {total} ({percentage})"
},
{
"type": "swap",
"key": " Swap",
"keycolor": "green",
"format": "{percentage-bar} {used} / {total} ({percentage})"
},
{
"type": "title",
"key": "Disks",
"format": " "
},
{
"type": "disk",
"key": " {mountpoint<6}",
"keycolor": "blue",
"format": "{size-percentage-bar} {size-used} / {size-total} ({size-percentage})",
},
{
"type": "title",
"key": "Power",
"format": " "
},
{
"type": "battery",
"key": " Battery",
"format": "{capacity-bar} ({capacity})"
},
// "battery",
"poweradapter",
"uptime",
// "os",
{
"type": "os",
"key": "OS",
// "keyColor": "blue",
"format": "{name} {version} ({arch})"
},
// "kernel",
{
"type": "kernel",
"key": " Kernel",
"format": "{sysname} {release}"
},
// "packages",
{
"type": "shell",
"": "Shell",
},
"terminal",
{
"type": "packages",
"key": "Packages",
"format": "{dpkg} (dpkg), {flatpak-all} (flatpak)"
},
/* {
"type": "",
"key": "",
"format": ""
},*/
// "terminalfont",
"localip",
// "display",
// "separator",
// "wm",
{
"type": "wm",
"key": "WM",
"format": "{pretty-name} {version~0,-1}"
},
// "wmtheme",
// "theme",
{
"type": "theme",
"key": " Theme",
"format": "{theme1}"
},
// "icons",
{
"type": "icons",
"key": " Icons",
"format": "{icons1}"
},
// "font",
{
"type": "font",
"key": " Font",
"format": "{font1}"
},
// "cursor",
"separator",
// "cpu",
// "gpu",
// "memory",
// "swap",
// "disk",
// "locale",
"break",
"colors"
]
}
/*
{
"type": ""
"key": ""
"format": ""
},
{
"type": ""
"key": ""
"format": ""
},
*/

View file

@ -0,0 +1,75 @@
theme = "seoul256-custom"
[editor]
line-number = "relative"
shell = ["bash", "-c"]
scroll-lines = 1
continue-comments = false
auto-completion = true
path-completion = true
auto-format = true
insert-final-newline = true
trim-trailing-whitespace = true
popup-border = "all"
clipboard-provider = "wayland"
bufferline = "multiple"
[editor.statusline]
mode.normal = ""
mode.insert = ""
mode.select = "󱄽"
[editor.lsp]
enable = true
display-messages = true
snippets = true
display-inlay-hints = true
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false
max-depth = 1
[editor.indent-guides]
render = true
[editor.whitespace]
render = "all"
[editor.whitespace.characters]
space = " "
nbsp = "⍽"
nnbsp = "␣"
tab = "→"
newline = ""
tabpad = "·"
[editor.gutters]
layout = ["diff", "diagnostics", "line-numbers", "spacer"]
[editor.gutters.line-numbers]
min-width = 2
[keys.insert]
esc = ["collapse_selection", "normal_mode"]
C-A-left = ":buffer-previous"
C-left = "move_prev_word_start"
C-A-right = ":buffer-next"
C-right = "move_next_word_start"
[keys.normal]
esc = ["collapse_selection", "keep_primary_selection"]
ret = ["move_line_down", "goto_first_nonwhitespace"]
0 = "goto_line_start"
C-A-left = ":buffer-previous"
C-left = "move_prev_word_start"
C-A-right = ":buffer-next"
C-right = "move_next_word_start"
[keys.select]
esc = ["collapse_selection", "keep_primary_selection", "normal_mode"]
0 = "goto_line_start"

View file

@ -0,0 +1,13 @@
[[language]]
name = "rust"
[language-server.rust-analyzer.config.check]
command = "clippy"
features = "all"
[language-server.rust-analyzer.config.rustfmt]
extraArgs = [ "+nightly" ]
[language-server.rust-analyzer.config]
inlayHints.closureReturnTypeHints.enable = "always"
inlayHints.closureCaptureHints.enable = true

View file

@ -0,0 +1,21 @@
# Seoul256 Dark Soft
# Author : EricHenry
# Original Creator: https://github.com/junegunn/seoul256.vim
inherits = "seoul256-dark"
"ui.background" = { }
"ui.gutter" = { modifiers = ["dim", "bold"] }
"ui.linenr" = { fg = "salmon" }
"ui.cursorline.primary" = { bg = "gray5" }
"ui.gutter.selected" = { bg = "gray8" }
"ui.linenr.selected" = { fg = "salmon2", modifiers = ["bold"] }
"ui.help" = { bg = "gray5" }
"ui.popup" = { bg = "gray5" }
"ui.menu" = { bg = "gray7" }
"ui.statusline" = { fg = "yellow1", modifiers = ["bold"] }
"ui.statusline.inactive" = { fg = "yellow", modifiers = ["dim"] }
"ui.statusline.normal" = { fg = "salmon2" }
"ui.statusline.insert" = { fg = "green3" }
"ui.statusline.select" = { fg = "cyan" }

View file

@ -0,0 +1,16 @@
{
"preset": "lesbian",
"mode": "rgb",
"light_dark": "dark",
"lightness": 0.73,
"color_align": {
"mode": "horizontal",
"custom_colors": [],
"fore_back": null
},
"backend": "fastfetch",
"args": null,
"distro": null,
"pride_month_shown": [],
"pride_month_disable": false
}

View file

@ -0,0 +1,84 @@
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Inserts a blank line between shell prompts
add_newline = false
#format = '[░▒▓](fg:purple bg:transparent)[ 󰊟 ${user}](fg:black bg:purple)'
format = """[](fg:purple bg:transparent)\
$time\
$sudo\
$username\
${custom.hostname}\
$directory\
$git_branch\
$git_commit\
$git_metrics\
$line_break\
$character"""
#$git_status\
[username]
style_user = 'bg:purple fg:black'
#style_root = 'bg:blue fg:black'
format = '[ 󰊟 $user ]($style)[](fg:purple bg:black)'
show_always = true
[sudo]
style = 'bold bg:purple fg:black'
#symbol = 'root'
format = '[ ‼]($style)'
disabled = false
[directory]
truncation_length = 2
fish_style_pwd_dir_length = 2
format = '[ $path]($style)[$read_only]($read_only_style)'#[](fg:cyan bg:black)'
style = 'bg:transparent fg:cyan'
truncate_to_repo = true
[git_branch]
format = ' [$symbol$branch(:$remote_branch)]($style)'
[git_status]
#format = ' [](fg:green)[$all_status$ahead_behind]($style)[](fg:green)'
format = ' [$all_status$ahead_behind]($style)'
#up_to_date = ''
style = 'fg:green'
#style = 'bg:green fg:black'
[git_commit]
format = ' [\($hash$tag\)]($style)'
only_detached = false
tag_disabled = false
[git_metrics]
disabled = false
added_style = 'bold blue'
format = ' [+$added]($added_style)/[-$deleted]($deleted_style) '
only_nonzero_diffs = true
[time]
disabled = true
style = 'bg:purple fg:black'
time_format = '%H:%M'
format = '[ \[$time\]]($style)'
[hostname]
ssh_only = false
#trim_at =
ssh_symbol = '\[\]'
aliases = { "pogmommy" = "", "penelope" = "" }
disabled = false
[custom.hostname]
#command = 'hostname | cut -d - -f 3-'
command = ' hostname | sed -n "s/^.*-\(.*\)-.*$/\1/p"'
when = true
style = 'bold bg:black fg:purple'
format = '[ 󰣚 ](fg:red bg:black)[$symbol($output )]($style)[](fg:black bg:transparent)'
[character]
success_symbol = '[\$](green)'
error_symbol = '[\$](red)'

10
default/gitconfig Normal file
View file

@ -0,0 +1,10 @@
# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
name = Penelope Gwen
email = support@pogmom.me
[core]
editor = /usr/bin/nvim
[init]
defaultBranch = main

View file

@ -0,0 +1,83 @@
#!/bin/bash
#echo "this is not yet done!"
#echo "Currently it does not add swap to /etc/fstab or /etc/crypttab"
#exit 1
if [[ "$(whoami)" == "root" ]];then
printf "[-] running as root, continuing...\n"
else
printf "[!] Run this script as root!\n"
exit 1
fi
read -p '[?] keyfile path [/etc/crypttab.d/swap_key]: ' keyfile_dest
keyfile_dest=${keyfile_dest:-/etc/crypttab.d/swap_key}
read -p '[?] swap partition name [swap_crypt]: ' part_name
part_name=${part_name:-swap_crypt}
read -p '[?] partition password (input hidden): ' -s part_pass
while [[ -z "${part_pass}" ]]; do
printf '[!] empty password\n'
read -p '[?] partition password (input hidden): ' -s part_pass
done
#printf '\n'
#lsblk -o NAME,SIZE,FSTYPE
lsblk -o PATH,SIZE,FSTYPE
read -p '[?] encrypted swap device: ' swap_blk_dev
while [[ ! "$(file ${swap_blk_dev})" == *'block'* ]]; do
printf '[!] bad encrypted swap device\n'
read -p '[?] encrypted swap device: ' swap_blk_dev
done
printf '[!] ALL DATA AT THE SELECTED KEYFILE PATH WILL BE OVERWRITTEN\n'
printf '[!] ALL DATA ON THE SELECTED DEVICE WILL BE DELETED\n'
printf '[!] keyfile path: %s\n' "${keyfile_dest}"
printf '[!] encrypted swap device: %s\n' "${swap_blk_dev}"
printf '[!] decrypted partition name: %s\n' "${part_name}"
read -p '[?] Proceed? [y/N] ' proceed_confirm
proceed_confirm=${proceed_confirm:-n}
case "${proceed_confirm}" in
[Nn][Oo]|[Nn])
printf '[!] Exiting without making changes\n'
;;
*)
printf '[!] Here we go!\n'
;;
esac
#exit
printf '[-] Writing keyfile...\n'
mkdir -p "$(dirname ${keyfile_dest})"
openssl genrsa -out "${keyfile_dest}" 4096
printf '[-] Setting keyfile permissions...\n'
chmod -v 0400 "${keyfile_dest}"
chown root:root "${keyfile_dest}"
printf '[-] Formatting encrypted swap block device...\n'
#printf '[!] When prompted, set the device\'s password\n'
printf '%s' "${part_pass}" | cryptsetup luksFormat "${swap_blk_dev}" -
printf '[-] Adding keyfile to encrypted device header\n'
#printf '[!] When prompted, set the device\'s password\n'
printf '%s' "${part_pass}" | cryptsetup luksAddKey "${swap_blk_dev}" "${keyfile_dest}" -
printf '[-] Opening encrypted partition using keyfile\n'
cryptsetup luksOpen "${swap_blk_dev}" "${part_name}" --key-file "${keyfile_dest}"
printf '[-] Creating swap inside encrypted partition\n'
mkswap "/dev/mapper/${part_name}"
crypt_uuid=$(lsblk -rno UUID "${swap_blk_dev}")
printf '[!] Finished. Follow the instructions below to complete setup.\n\n'
printf '[-] 1. Add the following line to your /etc/crypttab file:\n\n'
printf 'swap_crypt UUID=%s /etc/crypttab.d/swap_key luks,swap,discard\n\n' "${crypt_uuid}"
printf '[-] 1a. if a similar crypttab entry previously existed, remove it from the crypttab file\n'
printf '[-] 2. If it does not already exist, add the following line to your /etc/fstab file:\n'
printf '/dev/mapper/%s none swap sw 0 0\n' "${part_name}"
printf '[-] 3. run the following command to enable the swap partition for the current session:\n'
printf 'sudo swapon -a\n'
printf '[-] 4. run the following command to regenerate your initial ramdisk:\n\n'
printf 'sudo update-initramfs -u -k all\n\n'

16
default/scripts/ovpn-import.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/bash
ovpn_file="${1}"
ovpn_name="${2}"
[ -f "${ovpn_file}" ] || exit
[ -z "${ovpn_name}" ] && basename -s .ovpn "${ovpn_file}"
read -p "Username: " ovpn_user
read -p "Password: " -s ovpn_pass;printf "\n"
nmcli connection import type openvpn file "${ovpn_file}"
nmcli connection modify `basename -s .ovpn "${ovpn_file}"` con-name "${ovpn_name}"
nmcli connection modify "${ovpn_name}" +vpn.data username="${ovpn_user}"
nmcli connection modify "${ovpn_name}" +vpn.data password-flags=0
nmcli connection modify "${ovpn_name}" +vpn.secrets password="${ovpn_pass}"

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

View file

@ -0,0 +1,52 @@
[interval]
# The interval at which the screen should automatically change
# set to 0 if you don't want it to change automatically
refresh=15
[clock]
enabled = true
# Set this to the highest priority so it will start with the clock
# priority = 1
# Enables a twelve hour clock instead of the 24hr one
# Defaults to your local format if unset
twelve_hour = false
[mpris2]
enabled = false
# Set this so web browsers like Firefox or Chrome don't steal the focus of your real music player
# You can check what to put here by using tools like D-Feet
preferred_player = "org.mpris.MediaPlayer2.Feishin"
#preferred_player = "Feishin"
[coindesk]
enabled = false
# Valid choices are "gbp", "usd" and "eur"
# Default is USD
currency = "eur"
[sysinfo]
enabled = false
# The polling interval for system stats in milliseconds.
polling_interval = 1500
# The maximum value for the net I/O stat bar (in MiB), used for scaling its fill
# net_load_max = 100
# The maximum value for the cpu frequency stat bar (in GHz), used for scaling its fill
# cpu_frequency_max = 7
# The maximum value for the temperature stat bar (in degC), used for scaling its fill
# temperature_max = 100
# Network interface name used in network I/O stat bar
# To find values for this config in Linux, use the `ip link` command
# net_interface_name = "eth0"
# sensor name used in temperature stat bar
# To find values for this config in Linux, use the `sensors` command
# sensor_name = "asus_wmi_sensors CPU Temperature"
[image]
enabled = true
# /!\
# Please note that it is a relative path, so once compiled, please
# copy the images folder to the current directory
path = ".config/apex-tux/images/image.gif"
# This only works if the image feature is passed in the build instructions
# It supports all those formats : https://github.com/image-rs/image/tree/8824ab3375ddab0fd3429fe3915334523d50c532#supported-image-formats
# (even in color, but it will only display in black and white)

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_0.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_0.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_1.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_2.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

View file

@ -0,0 +1 @@
p_3.jpg

Some files were not shown because too many files have changed in this diff Show more