Compare commits

..

42 Commits

Author SHA1 Message Date
8b52914683 Edit the show facts parameter to exit after it runs. Also fix its spacing in the usage. 2025-12-18 10:46:26 -07:00
b3e9f7584f Also add boolean check for swap_block. 2025-12-18 10:37:56 -07:00
1a2572870f Ensure that the editing variable is interpreted as a boolean if it is true or false. 2025-12-18 10:36:45 -07:00
d32c913a40 Add music tagger for audio editing machines. 2025-12-18 10:03:07 -07:00
b8fa688e52 Add a parameter to image compressing which does not use a big fancy tag. 2025-12-08 15:15:11 -07:00
ea3ce8d023 Change the t parameter to do what the e parameter does, and finish what the e parameter is supposed to do. 2025-12-08 14:54:08 -07:00
dd7325da39 Prevent date formatting if the time flag is not set. 2025-12-08 14:48:32 -07:00
195c315714 Add shortcut for running a command in a loop. 2025-12-02 16:38:57 -07:00
b91b43b56d Add wireless-tools package for workstations. 2025-12-02 16:29:35 -07:00
a64f2253b6 Add colors to PS2. 2025-12-01 19:19:06 -07:00
7f21a0fc7b Refactor the prompt colors. 2025-12-01 19:14:04 -07:00
87aca38811 Add time and colors to PS1. 2025-12-01 19:11:24 -07:00
9ce7c641af Merge pull request 'BASHrc Upgrades, Backup Script, DWM Enhancements, Hugo Helpers, Branch Controls' (#7) from dev into main
Reviewed-on: #7
2025-12-01 09:50:54 -07:00
71cf71e29b Ignore the /srv/sftp directory when making system backups. 2025-12-01 09:47:43 -07:00
58525e2a5c Fix function exits to be returns. 2025-12-01 09:05:20 -07:00
f7869fd453 Change the timestamp formatting to be optional. 2025-11-30 19:16:50 -07:00
95212b1c73 Add shortcuts for checking code project branches to easily see which have been promoted and which have dev/stage changes. 2025-11-30 17:56:56 -07:00
ad6b9d4794 Remove TBD from commit code by using commit. :) 2025-11-28 15:00:43 -07:00
c6e8290b43 Add commit function to bashrc. 2025-11-28 14:57:22 -07:00
4a9cd06654 Add code for commit function. 2025-11-28 14:07:34 -07:00
c36a689d8f Add TBD. 2025-11-28 13:50:03 -07:00
0790da74dc Add flatpak Xournal++. Remove flatpak Simplex. Improve comments. 2025-11-22 12:21:07 -07:00
7be9c3a82f Add alias for cleaning unused Flatpak dependencies. 2025-11-22 12:13:50 -07:00
650157478d Add a TBD for preventing annoying behavior in gnome-terminal. 2025-11-22 10:55:02 -07:00
f4c3cc8b8e Add a few small docker shortcuts. 2025-11-22 10:19:30 -07:00
8b6e665db3 Update formatting of README. Add comments on which OS's are truly currently supported. 2025-11-21 17:58:52 -07:00
d8a29952f6 Move messaging apps to the end of the favorites bar. 2025-11-21 15:33:40 -07:00
1d699ae4a5 Run pull and build before taking the container down. 2025-11-21 08:29:02 -07:00
c568e0efbb Ensure headers are always installed on Debian systems. They stopped being included on a Macbook which resulted in Broadcom wl not being available, meaning WiFi was not working. 2025-11-19 12:31:20 -07:00
f48fcaf610 Stop using the Hugo Server params recommended by YT videos, they seem to make things break and also cause caching issues which were not previously present. 2025-11-16 07:24:03 -07:00
8a4446f7e3 Add TBD. 2025-11-11 20:11:15 -07:00
477797e045 Change default non-DWM formatting. 2025-11-10 21:58:30 -07:00
88b602f8f4 Have DWM status call status with a parameter. 2025-11-10 21:58:13 -07:00
5274d6d94d Move status to be a normal function so it's available on non-workstations. 2025-11-10 21:57:59 -07:00
692df74d41 Add reset of function files in case of renames. 2025-11-10 21:57:20 -07:00
7af798a7c0 Add placeholder functions for later functionality. 2025-11-10 21:37:47 -07:00
683e03eab2 Move function files to their own folder. Move the copy to General from Workstation. Leave dwm-status function under Workstation. 2025-11-10 21:37:25 -07:00
91c0a412bf Change storage output to be shorter. 2025-11-10 21:29:46 -07:00
4584a1a4c3 Add clock icon. 2025-11-10 21:29:01 -07:00
a4378c2bb3 Use for loop and . to keep functions in current shell. 2025-11-10 21:25:14 -07:00
72ce1e2ab5 Prevent additional call in dwm-status. 2025-11-10 21:19:36 -07:00
dde5b35bef Ensure all function files get sourced rather than hardcoding them. 2025-11-10 21:19:16 -07:00
21 changed files with 361 additions and 100 deletions

View File

@@ -1,4 +1,5 @@
# ansible # ansible
Getting real with system management via ansible-pull. Getting real with system management via ansible-pull.
Per-system configuration is handled via local files to the provisioned machine, Per-system configuration is handled via local files to the provisioned machine,
@@ -10,59 +11,124 @@ accessed via the show-config and edit-config aliases.
This setup is specific to the maintainer's devices and needs. You're welcome to This setup is specific to the maintainer's devices and needs. You're welcome to
use it as an example for your needs, but do not expect it to work as-is. use it as an example for your needs, but do not expect it to work as-is.
## Currently Supported Linux Systems ## Currently Supported Systems
This information is as of 2025-11-21.
### Primary
These are the operating systems used as my daily driver.
#### Debian Trixie
This has been used as my primary server and workstation OS since at least 2024.
The `apt` version of `ansible` in both Bookworm and Trixie are sufficient,
no longer need to use `ansible` out of `pip`.
### Secondary
These are tested via my Docker project's `ProvisionsTests` container but not currently used as daily drivers.
#### Arch
TBD
#### Fedora
TBD
#### OpenSUSE
TBD
#### Ubuntu
TBD
## Previusly Supported Systems
### Debian Family ### Debian Family
#### Debian #### Debian
100%, but only if using a recent enough version of Ansible. `pip` usually has a 100%, but only if using a recent enough version of Ansible. `pip` usually has a
better version than `apt`. better version than `apt`.
#### Ubuntu #### Ubuntu
100%, both server and desktop. 100%, both server and desktop.
#### Pop!_OS #### Pop!_OS
100%, have not used for a while though. 100%, have not used for a while though.
#### Mint #### Mint
100%, but not really used, just tested once for fun. 100%, but not really used, just tested once for fun.
#### Parrot Security OS (MATE) #### Parrot Security OS (MATE)
100% for a while, but OS did not serve maintainer's needs and 404 errors were 100% for a while, but OS did not serve maintainer's needs and 404 errors were
terrible while updating. Ubuntu Rolling Rhino filled the gap. terrible while updating. Ubuntu Rolling Rhino filled the gap.
### Arch Family ### Arch Family
#### Arch
100% at some point, including installation and configuration of a Desktop Environment.
#### Manjaro #### Manjaro
100% at some point. 100% at some point.
### Fedora Family ### Fedora Family
#### Fedora 35 #### Fedora 35
Workstation: 100%
Workstation: 100%,
Server: 100% Server: 100%
## Suse Family ## Suse Family
### openSUSE Tumbleweed v2022-02-17 ### openSUSE Tumbleweed v2022-02-17
Generic: 100%
Generic: 100%,
Workstation: 100% Workstation: 100%
### openSUSE Leap 15.4 ### openSUSE Leap 15.4
Generic: 100% Generic: 100%
Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`. Workstation: Currently failing at `[Workstation | Linux | Flatpak Distro | Package Manager | Install From Repo]` with message `Problem: nothing provides libedataserver-1.2.so.24 needed by the to be installed evolution-data-server-32bit-3.34.4-3.3.1.x86_64`.
### NixOS ### NixOS
99%, still need to get Telegraf going and refactor local.yml but everything else 99%, still need to get Telegraf going and refactor local.yml but everything else
is working well. It is automatically implementing git.hyperling.com/me/env-nixos. is working well. It is automatically implementing git.hyperling.com/me/env-nixos.
## Currently Supported Unix Systems
### FreeBSD 12, 13 ### FreeBSD 12, 13
100%, although GUI is not working completely on 13 yet (dash-to-dock doesn't compile). 100%, although GUI is not working completely on 13 yet (dash-to-dock doesn't compile).
Software choices are slightly more limited since not `flatpak`-enabled and not feeling a `ports` setup. Software choices are slightly more limited since not `flatpak`-enabled and not feeling a `ports` setup.
## Waiting To Be Tested ## Waiting To Be Tested
### Kali Linux ### Kali Linux
### Arch Linux ARM ### Arch Linux ARM
Specifically for the Pinephone. Specifically for the Pinephone.
### Arch Linux x86 ### Arch Linux x86
Would be great to have Arch get built up by this. Used for many years but left Would be great to have Arch get built up by this. Used for many years but left
after update problems due to a long computer hiatus. after update problems due to a long computer hiatus.
### Fedora Mobile ### Fedora Mobile
Specifically for the Pinephone. Specifically for the Pinephone.
## Future Goals ## Future Goals
Eventually some of the scripts and install files will be put into the files Eventually some of the scripts and install files will be put into the files
folder. This will allow initializing systems outside of the maintainer's home folder. This will allow initializing systems outside of the maintainer's home
network. network.
@@ -74,6 +140,8 @@ benefit has yet to be seen for some tasks. Shared facts will definitely continue
to exist under the facts tree. to exist under the facts tree.
## Other Notes ## Other Notes
### Get Setup Values ### Get Setup Values
Use this command to see the variables for a system: Use this command to see the variables for a system:
`ansible localhost -m setup --connection=local`. `ansible localhost -m setup --connection=local`.

View File

@@ -2,63 +2,8 @@
# 2025-11-10 Hyperling # 2025-11-10 Hyperling
# Icons: https://fontawesome.com/v4/cheatsheet/ # Icons: https://fontawesome.com/v4/cheatsheet/
source "`which volume.function`" source "`which status.function`"
source "`which battery.function`"
source "`which storage.function`"
function datetime {
date +"%Y-%m-%d %H:%M:%S"
}
function dwm-status { function dwm-status {
cmd="xsetroot -name " status-display --dwm
if [[ $1 == "-t" || $1 == "--test" || $1 == "test" ]]; then
cmd="echo"
fi
if [[ "`storage-root`" == "`storage-home`" ]]; then
function dwm-status-storage {
echo "`storage-root-dwm`)"
}
else
function dwm-status-storage {
echo "(Root `storage-root-dwm`, Home `storage-home-dwm`)"
}
fi
battery=""; storage=""; volume=""; datetime="";
while true; do
# Reset Variables
if [[ $datetime == *"00" ]]; then
unset battery
unset storage
fi
if [[ $datetime != "`datetime`" ]]; then
unset volume
unset datetime
fi
# Set Variables
if [[ -z $battery ]]; then
battery="`battery-display`"
fi
if [[ -z $storage ]]; then
storage="`dwm-status-storage`"
fi
if [[ -z $volume ]]; then
volume="`volume-display`"
fi
if [[ -z $datetime ]]; then
datetime="`datetime`"
fi
# Display Variables
readout="$readout  $battery"
readout="$readout |  $storage"
readout="$readout |  $volume"
readout="$readout | `whoami`@`hostname`"
readout="$readout $datetime"
$cmd "$readout"
readout=""
sleep 0.2
done
} }
alias status="dwm-status --test"

View File

@@ -0,0 +1,3 @@
#/usr/local/bin env
# TBD/TODO

View File

@@ -0,0 +1,3 @@
#/usr/local/bin env
# TBD/TODO

85
files/functions/status.function Executable file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
# 2025-11-10 Hyperling
# Icons: https://fontawesome.com/v4/cheatsheet/
source "`which volume.function`"
source "`which battery.function`"
source "`which storage.function`"
function datetime {
date +"%Y-%m-%d %H:%M:%S"
}
function status-display {
# Defaults
cmd="echo"
sleep=0.2
if [[ "`storage-root`" == "`storage-home`" ]]; then
function status-display-storage {
echo "`storage-root`"
}
else
function status-display-storage {
echo "Root (`storage-root`), Home (`storage-home`)"
}
fi
# Test Config
if [[ $1 == "-t" || $1 == "--test" || $1 == "test" ]]; then
sleep=5
fi
# DWM Config
if [[ $1 == "-d" || $1 == "--dwm" || $1 == "dwm" ]]; then
cmd="xsetroot -name"
if [[ "`storage-root`" == "`storage-home`" ]]; then
function status-display-storage {
echo "`storage-root-dwm`)"
}
else
function status-display-storage {
echo "(Root `storage-root-dwm`, Home `storage-home-dwm`)"
}
fi
fi
battery=""; storage=""; volume=""; datetime="";
userhost="`whoami`@`hostname`"
while true; do
# Exit if parent process is gone.
#TBD/TODO
# Reset Variables
if [[ $datetime == *"00" ]]; then
unset battery
unset storage
fi
if [[ $datetime != "`datetime`" ]]; then
unset volume
unset datetime
fi
# Set Variables
if [[ -z $battery ]]; then
battery="`battery-display`"
fi
if [[ -z $storage ]]; then
storage="`status-display-storage`"
fi
if [[ -z $volume ]]; then
volume="`volume-display`"
fi
if [[ -z $datetime ]]; then
datetime="`datetime`"
fi
# Display Variables
readout="$readout  $battery"
readout="$readout |  $storage"
readout="$readout |  $volume"
readout="$readout |  $userhost"
readout="$readout |  $datetime"
$cmd "$readout"
readout=""
sleep $sleep
done
}
alias status="status-display --test"

View File

@@ -13,13 +13,15 @@ function storage-display {
df -h "$location" | tail -n 1 | awk '{print $5" Used"}' df -h "$location" | tail -n 1 | awk '{print $5" Used"}'
elif [[ "$style" == "/" || "$style" == "use" || "$style" == "usage" ]]; then elif [[ "$style" == "/" || "$style" == "use" || "$style" == "usage" ]]; then
df -h "$location" | tail -n 1 | awk '{print $4"/"$2" Free"}' df -h "$location" | tail -n 1 | awk '{print $4"/"$2" Free"}'
elif [[ "$style" == "G" || "$style" == "S" || "$style" == "F" ]]; then
df -h "$location" | tail -n 1 | awk '{print $4" Free"}'
else else
df -h "$location" | tail -n 1 | awk '{print $5" Used, "$4"/"$2" Free"}' df -h "$location" | tail -n 1 | awk '{print $5" Used - "$4"/"$2" Free"}'
fi fi
} }
alias storage='echo -n "Root: " && storage-display "/" && echo -n "Home: " && storage-display "/home"' alias storage='echo -n "Root: " && storage-display "/" "F" && echo -n "Home: " && storage-display "/home" "F"'
export dwm_storage_style="usage" export dwm_storage_style="F"
function storage-root { function storage-root {
storage-display / "$1" storage-display / "$1"

View File

@@ -0,0 +1,3 @@
#/usr/local/bin env
# TBD/TODO

View File

@@ -0,0 +1,3 @@
#/usr/local/bin env
# TBD/TODO

View File

@@ -0,0 +1,3 @@
#/usr/local/bin env
# TBD/TODO

View File

@@ -39,7 +39,7 @@ echo "*** Creating backup at '$BACKUP' ***"
sudo zip -rv "$BACKUP" \ sudo zip -rv "$BACKUP" \
/etc /var/{log,mail,spool} /srv /boot \ /etc /var/{log,mail,spool} /srv /boot \
/usr/local/etc $EXTRA \ /usr/local/etc $EXTRA \
-x "/srv/backup/*" -x "/srv/backup/*" -x "/srv/sftp/*"
status="$?" status="$?"
if [[ "$status" != 0 ]]; then if [[ "$status" != 0 ]]; then

View File

@@ -15,6 +15,7 @@ size=2000
# Strings # Strings
tag="shrunk" tag="shrunk"
use_tag="Y"
date_YYYYMMDD="`date "+%Y%m%d"`" date_YYYYMMDD="`date "+%Y%m%d"`"
location="." location="."
search="ls" search="ls"
@@ -28,7 +29,7 @@ function usage() {
# Parameters: # Parameters:
# 1) The exit status to use. # 1) The exit status to use.
status=$1 status=$1
echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c]] [-h] [-x]" >&2 echo "Usage: $PROG [-s SIZE] [-l LOCATION] [-A | [-r] [-f] [-d] [-c] [-e | -t] [-h] [-x] [-n]" >&2
cat <<- EOF cat <<- EOF
Compress JPG or PNG image(s). Can handle folders and work recursively. Compress JPG or PNG image(s). Can handle folders and work recursively.
@@ -42,16 +43,18 @@ function usage() {
-F : FORCE the image to be shrunk even if the file is already shrunk. -F : FORCE the image to be shrunk even if the file is already shrunk.
-d : Delete the original image if the compressed image is smaller. -d : Delete the original image if the compressed image is smaller.
-c : Clean the filename of underscores, dashes, 'IMG', etc. -c : Clean the filename of underscores, dashes, 'IMG', etc.
-e | -t : Format timestamp to the expanded model.
-A : Resursively Force, Delete, and Clean. -A : Resursively Force, Delete, and Clean.
-h : Display this usage text. -h : Display this usage text.
-x : Enable BASH debugging. -x : Enable BASH debugging.
-n : No file extension.
EOF EOF
exit $status exit $status
} }
## Parameters ## ## Parameters ##
while getopts ":s:l:rfFdcAhx" opt; do while getopts ":s:l:rfFdcetAhxn" opt; do
case $opt in case $opt in
s) in_size="$OPTARG" && size="$in_size" ;; s) in_size="$OPTARG" && size="$in_size" ;;
l) location="$OPTARG" ;; l) location="$OPTARG" ;;
@@ -61,9 +64,11 @@ while getopts ":s:l:rfFdcAhx" opt; do
d) delete="Y" ;; d) delete="Y" ;;
c) clean="Y" ;; c) clean="Y" ;;
e) expand="Y" ;; e) expand="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" && expand="Y" ;; t) expand="Y" ;;
A) recurse="Y" && search="find" && force="Y" && delete="Y" ;;
h) usage 0 ;; h) usage 0 ;;
x) set -x ;; x) set -x ;;
n) use_tag="N" ;;
*) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;; *) echo "ERROR: Option $OPTARG not recognized." >&2 && usage 1 ;;
esac esac
done done
@@ -112,6 +117,12 @@ $search "$location" | sort | while read image; do
fi fi
new_image="${image//.$extension/}.$tag-$date_YYYYMMDD.$size.$extension" new_image="${image//.$extension/}.$tag-$date_YYYYMMDD.$size.$extension"
if [[ "$use_tag" == "N" ]]; then
new_image="$image"
new_image="${new_image//.$extension/}"
new_image="${new_image//.$tag/}"
new_image="$new_image.$tag.$extension"
fi
## Clean Filename ## ## Clean Filename ##
# Prevent directory from having its name cleaned too. # Prevent directory from having its name cleaned too.
@@ -152,7 +163,7 @@ $search "$location" | sort | while read image; do
fi fi
# Skip if a compressed image was already created today. # Skip if a compressed image was already created today.
if [[ -e "$new_image" || -e $new_image_clean ]]; then if [[ (-e "$new_image" || -e $new_image_clean) && $use_tag == "Y" ]]; then
echo " SKIP: Image has already been shrunk previously, moving on." echo " SKIP: Image has already been shrunk previously, moving on."
continue continue
fi fi

View File

@@ -130,6 +130,7 @@ echo "Installed!"
if [[ "$show_facts" == "Y" ]]; then if [[ "$show_facts" == "Y" ]]; then
echo "Showing Ansible Facts" echo "Showing Ansible Facts"
ansible localhost -m setup --connection=local ansible localhost -m setup --connection=local
exit 0
fi fi
#echo "Adding Ansible Collections..." #echo "Adding Ansible Collections..."

View File

@@ -144,6 +144,11 @@
prod_port: "{{ lookup('ini', 'prod_port file={{gen_file}} default=22') }}" prod_port: "{{ lookup('ini', 'prod_port file={{gen_file}} default=22') }}"
prod_user: "{{ lookup('ini', 'prod_user file={{gen_file}} default=user') }}" prod_user: "{{ lookup('ini', 'prod_user file={{gen_file}} default=user') }}"
- name: General | Account Management | Provisioning Configuration | General | Boolean Check | Swap Block
set_fact:
swap_block: "{{ swap_block | bool }}"
when: swap_block in ("true", "false")
- name: General | Account Management | Provisioning Configuration | General | List - name: General | Account Management | Provisioning Configuration | General | List
set_fact: set_fact:
provision_variables: "{{ provision_variables | combine(item) }}" provision_variables: "{{ provision_variables | combine(item) }}"
@@ -223,6 +228,11 @@
mobile: "{{ lookup('ini', 'mobile file={{wrk_file}} default=false') | bool }}" mobile: "{{ lookup('ini', 'mobile file={{wrk_file}} default=false') | bool }}"
redmode: "{{ lookup('ini', 'redmode file={{wrk_file}} default=true' ) | bool }}" redmode: "{{ lookup('ini', 'redmode file={{wrk_file}} default=true' ) | bool }}"
- name: General | Account Management | Provisioning Configuration | Workstation | Boolean Check | Editing
set_fact:
editing: "{{ editing | bool }}"
when: editing in ("true", "false")
- name: General | Account Management | Provisioning Configuration | Workstation | List - name: General | Account Management | Provisioning Configuration | Workstation | List
set_fact: set_fact:
provision_variables: "{{ provision_variables | combine(item) }}" provision_variables: "{{ provision_variables | combine(item) }}"

View File

@@ -145,7 +145,50 @@
fi fi
curl "https://wttr.in/${1//\ /+}" curl "https://wttr.in/${1//\ /+}"
} }
export_PS1: export PS1='[\u@\h \w]\$ ' export_PS1: |
## Prompts ##
# Old Trusty
#export PS1='[\u@\h \w]\$ '
# 20251201 - Add time.
#export PS1='[\t \u@\h \w]\$ '
# 20251201 - Add colors.
# This helps to determine the color palette numbers:
# https://robotmoon.com/bash-prompt-generator/
PURPLE=`tput setaf 5`
ORANGE=`tput setaf 214`
GREEN=`tput setaf 2`
RED=`tput setaf 9`
SCARLET=`tput setaf 1`
YELLOW=`tput setaf 226` # 11 does not seem to work
GRAY=`tput setaf 8`
RESET=`tput sgr0`
BOLD=`tput bold`
if [[ "$USER" == "root" || $UID == 0 ]]; then
CLR_BRACKETS=$BOLD$YELLOW
CLR_TIME=$BOLD$ORANGE
CLR_USER=$BOLD$SCARLET
CLR_DIR=$BOLD$RED
CLR_PROMPT=$BOLD$GRAY
else
CLR_BRACKETS=$RESET
CLR_TIME=$BOLD$PURPLE
CLR_USER=$BOLD$ORANGE
CLR_DIR=$BOLD$GREEN
CLR_PROMPT=$RESET
fi
export PS1='\[$CLR_BRACKETS\][\[$CLR_TIME\]\t \[$CLR_USER\]\u@\h \[$CLR_DIR\]\w\[$CLR_BRACKETS\]]\[$CLR_PROMPT\]\$ \[$RESET\]'
export PS2='\[$CLR_BRACKETS\](\[$CLR_TIME\]>\[$CLR_USER\]^\[$CLR_DIR\].\[$CLR_USER\]^\[$CLR_BRACKETS\])\[$CLR_TIME\]> \[$RESET\]'
## End Prompts ##
alias_remount: | alias_remount: |
alias remount=' alias remount='
sudo umount /mnt/* sudo umount /mnt/*
@@ -453,8 +496,8 @@
return 0 return 0
fi fi
docker compose down &&
docker compose build && docker compose build &&
docker compose down &&
docker compose up -d docker compose up -d
if [[ -n "$1" ]]; then if [[ -n "$1" ]]; then
@@ -475,9 +518,9 @@
return 0 return 0
fi fi
docker compose down &&
docker compose pull && docker compose pull &&
docker compose build && docker compose build &&
docker compose down &&
docker compose up -d docker compose up -d
if [[ -n "$1" ]]; then if [[ -n "$1" ]]; then
@@ -519,12 +562,12 @@
docker ps docker ps
return; return;
fi fi
echo "*** Going Down ***" &&
docker compose down &&
echo "*** Upgrading Images ***" && echo "*** Upgrading Images ***" &&
docker compose pull && docker compose pull &&
echo "*** Building Containers ***" && echo "*** Building Containers ***" &&
docker compose build && docker compose build &&
echo "*** Going Down ***" &&
docker compose down &&
echo "*** Starting Daemons ***" && echo "*** Starting Daemons ***" &&
docker compose up -d && docker compose up -d &&
echo "*** Following Log ***" && echo "*** Following Log ***" &&
@@ -554,6 +597,10 @@
return 0 return 0
} }
alias_docker_other: |
alias docker-stop="docker compose down"
alias docker-start="docker compose up -d && docker compose start"
alias docker-prep="docker compose pull && docker compose build"
alias_code_check: | alias_code_check: |
alias code-check=' alias code-check='
echo "Checking ~/Code directory for git changes." echo "Checking ~/Code directory for git changes."
@@ -953,7 +1000,7 @@
if [[ "$rcvr" == "main" ]]; then if [[ "$rcvr" == "main" ]]; then
echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***" echo "*** ERROR: Are you nuts, fool!? Not main! Do it manually! ***"
exit 1 return 1
fi fi
if [[ -z "$base" ]]; then if [[ -z "$base" ]]; then
@@ -963,7 +1010,7 @@
base="dev" base="dev"
else else
echo "* Unsure which branch to use for '$rcvr'. Please specify." echo "* Unsure which branch to use for '$rcvr'. Please specify."
exit 1 return 1
fi fi
echo "* Base was not specified, using '$base' for '$rcvr'." echo "* Base was not specified, using '$base' for '$rcvr'."
else else
@@ -1007,6 +1054,18 @@
alias reset-prod="load-branch prod main" alias reset-prod="load-branch prod main"
alias reset-stage="load-branch stage main" alias reset-stage="load-branch stage main"
alias reset-dev="load-branch dev main" alias reset-dev="load-branch dev main"
function check-code-branches {
for dir in ~/Code/*/; do
cd $dir
pwd
git ls-remote --heads
echo " "
cd ..
done
}
alias check-branches="check-code-branches"
alias check-branch="git ls-remote --heads"
alias branch-check="check-branch"
alias_reload_bash: | alias_reload_bash: |
alias reload-bash="source ~/.bashrc" alias reload-bash="source ~/.bashrc"
alias bash-reload="reload-bash" alias bash-reload="reload-bash"
@@ -1014,20 +1073,48 @@
alias reload-shell="reload-bash" alias reload-shell="reload-bash"
alias reload="reload-bash" alias reload="reload-bash"
alias_hugo_server: | alias_hugo_server: |
alias hugo-server-dev="hugo server -D --gc --ignoreCache --noHTTPCache --disableFastRender" alias hugo-server-dev="hugo server -D --gc" # --ignoreCache --noHTTPCache --disableFastRender"
alias hugo-server-stage="hugo server --gc --noHTTPCache --disableFastRender" alias hugo-server-stage="hugo server --gc" # --noHTTPCache --disableFastRender"
alias hugo-server-prod="hugo server --gc --minify" alias hugo-server-prod="hugo server --gc --minify"
alias hugo-server="hugo-server-dev" alias hugo-server="hugo-server-dev"
dwm_functions: | global_functions: |
if [[ -f "{{ global_bin }}/volume.function" ]]; then for global_function in "{{ global_bin }}/"*".function"; do
source "{{ global_bin }}/volume.function" if [[ -f "$global_function" ]]; then
. "$global_function"
fi fi
if [[ -f "{{ global_bin }}/battery.function" ]]; then done
source "{{ global_bin }}/battery.function" alias_flatpak_clean: |
alias flatpak-clean="flatpak uninstall --unused"
alias_commit: |
function commit_usage {
echo 'Usage: commit "This is a commit message"'
}
function commit {
if [[ -z "$1" ]]; then
echo "ERROR: Message must be provided."
commit_usage
return 1
fi fi
if [[ -f "{{ global_bin }}/storage.function" ]]; then if [[ "$1" == "-h"* || "$1" == "--h"* ]]; then
source "{{ global_bin }}/storage.function" commit_usage
fi fi
message="$1"
git add . &&
git commit -m "$message" &&
git push
status="$?"
return "$status"
}
function_loop: |
function loop {
cmd="$1"
while true; do
$cmd
done;
}
alias try="loop "
- name: General | Account Management | Users | Files | Common Variable - name: General | Account Management | Users | Files | Common Variable
set_fact: set_fact:
@@ -1107,7 +1194,11 @@
{{ function_load_branch }} {{ function_load_branch }}
{{ alias_reload_bash }} {{ alias_reload_bash }}
{{ alias_hugo_server }} {{ alias_hugo_server }}
{{ dwm_functions }} {{ global_functions }}
{{ alias_docker_other }}
{{ alias_flatpak_clean }}
{{ alias_commit }}
{{ function_loop }}
- name: General | Account Management | Users | Files | .bashrc - name: General | Account Management | Users | Files | .bashrc
blockinfile: blockinfile:
@@ -1177,3 +1268,17 @@
- .bashrc - .bashrc
- .zshrc - .zshrc
- .vimrc - .vimrc
- name: General | Account Management | Users | Files | Helper Functions (Reset)
shell: "rm -v {{ global_bin }}/*.function"
- name: General | Account Management | Users | Files | Helper Functions
copy:
src: "{{ item }}"
dest: "{{ global_bin }}"
owner: root
group: "{{ root_group }}"
mode: 0755
with_fileglob:
- "functions/*.function"

View File

@@ -82,6 +82,15 @@
when: ansible_distribution == "Ubuntu" when: ansible_distribution == "Ubuntu"
ignore_errors: yes ignore_errors: yes
- name: General | Software | Packages | Add Generic Kernel + Headers (Debian)
package:
name:
- linux-image-amd64
- linux-headers-amd64
state: present
when: ansible_distribution == "Debian"
ignore_errors: yes
- name: General | Software | Services | Install killall (Looking at you, Debian) - name: General | Software | Services | Install killall (Looking at you, Debian)
package: package:
name: psmisc name: psmisc

View File

@@ -36,7 +36,6 @@
flatpaks_generic: flatpaks_generic:
- { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" } - { app: "org.mozilla.firefox", name: "firefox-flatpak", extra: "" }
- { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" } - { app: "io.gitlab.librewolf-community", name: "librewolf", extra: "" }
- { app: "chat.simplex.simplex", name: "simplex", extra: "" }
- { app: "org.signal.Signal", name: "signal", extra: "" } - { app: "org.signal.Signal", name: "signal", extra: "" }
- { app: "im.riot.Riot", name: "element", extra: "" } - { app: "im.riot.Riot", name: "element", extra: "" }
- { app: "org.telegram.desktop", name: "telegram", extra: "" } - { app: "org.telegram.desktop", name: "telegram", extra: "" }
@@ -44,6 +43,7 @@
- { app: "org.libreoffice.LibreOffice", name: "office", extra: "" } - { app: "org.libreoffice.LibreOffice", name: "office", extra: "" }
- { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" } - { app: "com.transmissionbt.Transmission", name: "transmission", extra: "" }
- { app: "app.grayjay.Grayjay", name: "grayjay", extra: "" } - { app: "app.grayjay.Grayjay", name: "grayjay", extra: "" }
- { app: "com.github.xournalpp.xournalpp", name: "xournal", extra: "" }
flatpaks_coding: flatpaks_coding:
- { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" } - { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" }
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" } - { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
@@ -57,6 +57,7 @@
- { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" } - { app: "org.tenacityaudio.Tenacity", name: "tenacity", extra: "" }
- { app: "io.lmms.LMMS", name: "lmms", extra: "" } - { app: "io.lmms.LMMS", name: "lmms", extra: "" }
- { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" } - { app: "net.sourceforge.VMPK", name: "vmpk", extra: "" }
- { app: "org.musicbrainz.Picard", name: "picard", extra: "" }
flatpaks_gaming: flatpaks_gaming:
- { app: "com.valvesoftware.Steam", name: "steam", extra: "" } - { app: "com.valvesoftware.Steam", name: "steam", extra: "" }
- { app: "com.play0ad.zeroad", name: "zeroad", extra: "" } - { app: "com.play0ad.zeroad", name: "zeroad", extra: "" }
@@ -72,11 +73,12 @@
# 2022-11-20 No longer using any of these and they're taking up a lot of space. # # 2022-11-20 No longer using any of these and they're taking up a lot of space. #
- { app: "com.jetbrains.PyCharm-Community", name: "pycharm", extra: "" } - { app: "com.jetbrains.PyCharm-Community", name: "pycharm", extra: "" }
# End 2022-11-20 # # End 2022-11-20 #
- { app: "io.lbry.lbry-app", name: "lbry", extra: "dbus-launch" } # No longer supported, noticed 2023-09-01. - { app: "io.lbry.lbry-app", name: "lbry", extra: "dbus-launch" } # 2023-09-01, Noticed it is no longer supported.
- { app: "chat.delta.desktop", name: "deltachat", extra: "" } # No longer used, removed 2023-12-18. - { app: "chat.delta.desktop", name: "deltachat", extra: "" } # 2023-12-18, No longer used.
- { app: "org.gnome.Geary", name: "geary", extra: "" } # No longer used, removed 2024-12-15 - { app: "org.gnome.Geary", name: "geary", extra: "" } # 2024-12-15, No longer used.
- { app: "org.rncbc.qsynth", name: "qsynth", extra: "" } # 2024-12-15, Not worth the setup, use LMMS or VMPK. - { app: "org.rncbc.qsynth", name: "qsynth", extra: "" } # 2024-12-15, Not worth the setup, use LMMS or VMPK.
- { app: "org.godotengine.Godot", name: "godot", extra: "" } # 20250831 Stopped playing with this months / years ago. - { app: "org.godotengine.Godot", name: "godot", extra: "" } # 2025-08-31, Stopped playing with this months / years ago. Seemed cool but Flutter is working well for this purpose.
- { app: "chat.simplex.simplex", name: "simplex", extra: "" } # 2025-11-22, Takes a ton of space and does not work without interacting with phone.
# Generic # # Generic #

View File

@@ -40,6 +40,7 @@
- "{{ evolution }}*" - "{{ evolution }}*"
- gparted - gparted
- hugo - hugo
- wireless-tools
state: present state: present
- name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool) - name: Workstation | Linux | Software | Packages | GS Connect (KDE Connect, Android Tool)

View File

@@ -12,9 +12,6 @@
, 'org.gnome.Nautilus.desktop' , 'org.gnome.Nautilus.desktop'
, 'io.gitlab.librewolf-community.desktop', 'librewolf.desktop' , 'io.gitlab.librewolf-community.desktop', 'librewolf.desktop'
, 'org.mozilla.firefox.desktop', 'firefox.desktop' , 'org.mozilla.firefox.desktop', 'firefox.desktop'
, 'org.signal.Signal.desktop', 'signal-desktop.desktop'
, 'org.telegram.desktop.desktop'
, 'com.discordapp.Discord.desktop'
, 'com.vscodium.codium.desktop' , 'com.vscodium.codium.desktop'
, 'codium.desktop' , 'codium.desktop'
, 'org.shotcut.Shotcut.desktop' , 'org.shotcut.Shotcut.desktop'
@@ -24,6 +21,9 @@
, 'com.valvesoftware.Steam.desktop' , 'com.valvesoftware.Steam.desktop'
, 'net.lutris.Lutris.desktop' , 'net.lutris.Lutris.desktop'
, 'mullvad-vpn.desktop' , 'mullvad-vpn.desktop'
, 'org.signal.Signal.desktop', 'signal-desktop.desktop'
, 'org.telegram.desktop.desktop'
, 'com.discordapp.Discord.desktop'
]" ]"
dconf_terminal: gnome-terminal dconf_terminal: gnome-terminal
dconf_theme: Adwaita-dark dconf_theme: Adwaita-dark
@@ -274,6 +274,13 @@
dconf write /org/gnome/desktop/media-handling/autorun-never true && inc_dconf && dconf write /org/gnome/desktop/media-handling/autorun-never true && inc_dconf &&
## Gnome Terminal ##
# TBD: Do not start new tabs in previous tab's directory.
# The profile ID is likely unique and will need to be retrieved first.
#/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/preserve-working-directory
#'never'
## Success ## ## Success ##
sleep 0 || sleep 0 ||

View File

@@ -80,9 +80,9 @@
mode: 0644 mode: 0644
## Helper Functions for Status Bar ## ## Status Bar ##
- name: Workstation | Linux | Software | DWM | Status Bar Functions - name: Workstation | Linux | Software | DWM | Status Bar Function
copy: copy:
src: "{{ item }}" src: "{{ item }}"
dest: "{{ global_bin }}" dest: "{{ global_bin }}"