Compare commits

...

67 Commits

Author SHA1 Message Date
me 5710f284ba Add automatic removal of metasploit if it is no longer true. 2026-07-26 18:35:20 -07:00
me b4e8bf6f15 Use mullvad-vpn, not going to create an alias for mullvad-gui after all. 2026-07-26 18:18:02 -07:00
me e0395dda04 Add symlinks for the Mullvad GUI. 2026-07-26 18:15:20 -07:00
me 625f4c899f Remove Mullvad from PATH. 2026-07-26 18:10:29 -07:00
me f324589c65 Add execution of the Mullvad GUI. 2026-07-26 17:58:42 -07:00
me 3fe18ef9dc Add path for the Mullvad GUI. 2026-07-26 17:58:19 -07:00
me 57f5473c2f Add more aliases for shutdown. 2026-07-26 17:48:07 -07:00
me e517a8c3e8 Change 6 to be other and 7 to be Torrents. 2026-07-26 17:34:03 -07:00
me 751cbbc055 Add a comment about the xev command. 2026-07-26 17:30:56 -07:00
me 5175b7ff0c Change WS6 to be for Torrents. 2026-07-26 17:25:15 -07:00
me 6d0b0f52f5 Add two additional ways to do it since ctrl+alt+l is not working on NovaCustom. The new 2 do. 2026-07-26 17:06:57 -07:00
me 203d8a1ef4 Trying to figure out why screen locking is no longer working. Add sudo to the shutdown call. 2026-07-26 17:04:18 -07:00
me c9370553fb Cannot add files to PATH, so add all the sbin locations. 2026-07-24 15:29:14 -07:00
me e3e9418a12 Add the proper shutdown command since dbus was not working and shutdown was added to sudoers. 2026-07-24 15:21:41 -07:00
me 398541fa54 Include shutdown and reboot paths for common users. 2026-07-24 15:20:38 -07:00
me e031be406e Include other possibilities for shutdown and reboot. 2026-07-24 15:20:18 -07:00
me 4c0639e862 Ansible actually prefers tildes. Fails with $HOME. 2026-07-24 15:10:07 -07:00
me 07047f140e Ensure keyboard settings are correct on all terminals. 2026-07-24 15:04:12 -07:00
me 1493d76352 Ensure keyboard settings are correct on all terminals. 2026-07-24 15:03:28 -07:00
me b0a7a03542 Change scripts to not use tilde, prefer $HOME. 2026-07-24 15:00:04 -07:00
me b8b7ca1851 Change another variable used in PATH to not have tilde. 2026-07-24 14:59:49 -07:00
me 184ec96395 Change all other ~'s to $HOME. Reserve tilde for interactive shells. 2026-07-24 14:54:13 -07:00
me 4adc2d2e7e Configure keyboard to always be International AltGr. 2026-07-24 14:52:03 -07:00
me fb4386b418 Ensure keyboard is set to AltGr when i3 is used. 2026-07-24 14:34:36 -07:00
me ed2b678228 Change a few instances of ~ to $HOME. 2026-07-24 14:32:49 -07:00
me 4ce049b3ea Allow sudo group to run shutdown commands. 2026-07-24 12:46:26 -07:00
me d48f6d1572 Add notes about laptop backlights. 2026-07-24 10:36:58 -07:00
me a0582c7483 Add a shutdown shortcut. 2026-07-24 07:33:24 -07:00
me 1917b087c9 Add note on where to look with other laptop. 2026-07-24 06:01:09 -07:00
me c2b32c6d3e Move workflows and begin adding more section headers. 2026-07-24 05:59:31 -07:00
me aa0522ee67 Add keys for changing keyboard brightness. Disable syms previously using semicolon. Refactor the volume and brightness commands a bit more. Add more meta workflows. 2026-07-24 05:54:05 -07:00
me 04d9498c72 Fix the brightness commands, switching quote types did not work. 2026-07-23 18:45:31 -07:00
me 481f8fa5d1 Now that volume executable exists the numbers are appearing. Use single quotes on the outside so that the subshell is not parsed too early. Also refactor the volume and brightness code to be easier to view and edit. 2026-07-23 17:50:44 -07:00
me a2edee0857 Add an XMPP client. 2026-07-23 14:50:00 -07:00
me a9352773a7 Create an executable script which calls the volume function. Hoping it works better with i3 than the function was. 2026-07-23 13:00:28 -07:00
me 3b1502f6c1 Set some workspace-specific flows. 2026-07-23 12:55:10 -07:00
me 4dba89dba2 Allow WiFi to stay on, otherwise TLP disables it at login, not at boot, which can be annoying if suspending often or logging between different DEs. 2026-07-23 12:34:28 -07:00
me 69bf1c25fb Add some fixes that may have been what got light to work. 2026-07-17 19:37:35 -07:00
me bf4b6951ac Ensure the new profile related files have the correct permissions. 2026-07-17 19:25:12 -07:00
me de29d33042 Automate creating the udev rules which allow light to work for the video group. 2026-07-17 19:04:30 -07:00
me 2de2fb1966 Don't allow the env files to fail. Fix which user the profile files are created for. 2026-07-17 18:39:38 -07:00
me 99966ea0c4 Add profile exports to RC files too, otherwise PATH was getting weird. 2026-07-17 18:35:13 -07:00
me 90d4a22431 Switch to using kitty for better color and text display. Meow! 2026-07-17 18:15:21 -07:00
me 28829018cd Add shortcut for coding. 2026-07-17 18:13:42 -07:00
me 62b59f4e8a Add variables for other mod keys. Use for lock screen. 2026-07-17 18:11:15 -07:00
me 9010a7dc7c Add locking with Ctrl+Alt+L. 2026-07-17 18:10:17 -07:00
me e8eb5c68a7 Add shortcuts for a few more programs. Change from hardcoded st to variable currently holding 'alacritty'. 2026-07-17 17:34:31 -07:00
me 0887a3bdf0 Add more packages to make i3 more pleasant. 2026-07-17 17:32:23 -07:00
me 3861f2fad4 Add alacritty as the main terminal. 2026-07-17 17:32:01 -07:00
me d8d5f001f2 Change volume to be back at 5% increments, 2 was too small, but is still great for brightness. 2026-07-17 16:52:56 -07:00
me 91996885e9 Also put the PATH in .xprofile and .xsessionrc so that lightdm, i3, and dmenu all get the values. 2026-07-17 16:52:29 -07:00
me a8d0e2c7bb Fix mod+period having the wrong symbol. 2026-07-17 14:52:53 -07:00
me ae20dec6f1 Change volume and brightness in smaller increments. 2026-07-17 14:49:28 -07:00
me 88717f745b Add a playbook but do not call it yet and comment its contents for now. 2026-07-16 20:07:59 -07:00
me 1972cd4b9e Make sure small and large vol and light changes do not stack notifications. 2026-07-16 19:21:43 -07:00
me fbc8e62872 Fix typo. 2026-07-16 19:18:53 -07:00
me dac6240b92 Add tmux. 2026-07-16 19:18:41 -07:00
me 3faa49c290 Add spacing between a few sections. 2026-07-16 19:03:41 -07:00
me d2356a5780 Add volume keys using personal volume wrapper. Message is not getting content though, unsure why. 2026-07-16 19:02:57 -07:00
me 862b36d537 Add notes on how light was made to work with a non-root user. 2026-07-16 19:02:08 -07:00
me e3f2d42017 Add i3 binds for changing brightness with light. 2026-07-16 18:02:49 -07:00
me 2b40012443 Ensure the light package is installed for i3. 2026-07-16 17:46:38 -07:00
me 70114784a5 Move path changes to .profile so that display managers see it. 2026-07-16 17:37:33 -07:00
me 3823aa438a i3 does not like coments at the end of lines! 2026-07-16 17:27:21 -07:00
me 2f3109d113 Enforce using st in i3! 2026-07-16 17:19:04 -07:00
me 7e891fac9d Improve readability of DWM workspaces. Modify the shortcuts to be what I was thinking they were (closer to i3). Also change to Super (Mod4) rather than Alt (Mod1). 2026-07-16 17:16:22 -07:00
me a94b8cdd72 Add rest of titles to i3 workspaces. 2026-07-16 17:14:00 -07:00
19 changed files with 396 additions and 100 deletions
+1
View File
@@ -13,6 +13,7 @@
neofetch: neofetch
lightdm: lightdm
sddm: sddm
tmux: tmux
- name: General | Facts | Package | Parrot OS Fixes
set_fact:
+9 -6
View File
@@ -20,7 +20,7 @@ static const char *colors[][3] = {
};
/* tagging */
static const char *tags[] = { "1:", "2:", "3:", "4:", "5:", "6:", "7:", "8:", "9:" };
static const char *tags[] = { "1 : ", "2 : ", "3 : ", "4 : ", "5 : ", "6 : ", "7 : ", "8 : ", "9 : " };
static const Rule rules[] = {
/* xprop(1):
@@ -46,7 +46,7 @@ static const Layout layouts[] = {
};
/* key definitions */
#define MODKEY Mod1Mask
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
@@ -69,13 +69,16 @@ static const char *raisevolcmd[] = {"amixer","-q","sset","Master","1%+",NULL};
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY, XK_d, spawn, {.v = dmenucmd } },
{ MODKEY, XK_b, spawn, {.v = dmenucmd } },
{ MODKEY, XK_space, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_Return, spawn, {.v = termcmd } },
{ MODKEY, XK_b, togglebar, {0} },
//{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
//{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY, XK_l, setmfact, {.f = +0.05} },
{ MODKEY, XK_Return, zoom, {0} },
@@ -84,8 +87,8 @@ static Key keys[] = {
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
//{ MODKEY, XK_space, setlayout, {0} },
//{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
+6 -6
View File
@@ -31,8 +31,8 @@ function volume-usage {
EOF
return $1
}
alias volume-help="volume-usage"
alias vol-h="volume-help"
#alias volume-help="volume-usage"
#alias vol-h="volume-help"
function volume {
@@ -135,9 +135,9 @@ function volume {
echo "$0 $1 $2"
return 7
}
alias vol="volume "
alias vol-="volume - "
alias vol+="volume + "
#alias vol="volume "
#alias vol-="volume - "
#alias vol+="volume + "
function volume-display {
if [[ "$1" == "-v" || "$1" == "--verbose" || "$1" == "verbose" ]]; then
@@ -146,7 +146,7 @@ function volume-display {
amixer sget Master | egrep -o '[0-9]{1,3}%' | head -n 1
fi
}
alias "vol-d"="volume-display"
#alias "vol-d"="volume-display"
## TBD/TODO ##
+2 -2
View File
@@ -182,8 +182,8 @@ $search "$location" | sort | while read media; do
if [[ -n "$delete" ]]; then
echo -n " DELETE: "
if [[ -d ~/TRASH ]]; then
mv -v "$media" ~/TRASH/
if [[ -d $HOME/TRASH ]]; then
mv -v "$media" $HOME/TRASH/
else
rm -v "$media"
fi
+2 -2
View File
@@ -215,8 +215,8 @@ $search "$location" | sort | while read image; do
if [[ -n "$delete" ]]; then
echo -n " DELETE: "
if [[ -d ~/TRASH ]]; then
mv -v "$image" ~/TRASH/
if [[ -d $HOME/TRASH ]]; then
mv -v "$image" $HOME/TRASH/
else
rm -v "$image"
fi
+4 -4
View File
@@ -225,8 +225,8 @@ $search_command "$input" | sort | while read file; do
if [[ -e "$newfile" || -e "$new_video_clean" ]]; then
if [[ "$force" == "Y" ]]; then
echo "FORCE: Removing '$newfile'."
if [[ -d ~/TRASH ]]; then
mv -v "$newfile" "$new_video_clean" ~/TRASH/ 2>/dev/null
if [[ -d $HOME/TRASH ]]; then
mv -v "$newfile" "$new_video_clean" $HOME/TRASH/ 2>/dev/null
else
rm -v "$newfile" "$new_video_clean" 2>/dev/null
fi
@@ -279,8 +279,8 @@ $search_command "$input" | sort | while read file; do
if [[ -n "$delete" ]]; then
echo -n "Original has been deleted: "
if [[ -d ~/TRASH ]]; then
mv -v "$file" ~/TRASH/
if [[ -d $HOME/TRASH ]]; then
mv -v "$file" $HOME/TRASH/
else
rm -v "$file"
fi
+1 -1
View File
@@ -7,7 +7,7 @@
DIR="$(dirname -- "${BASH_SOURCE[0]}")"
PROG="$(basename -- "${BASH_SOURCE[0]}")"
nixos_working_dir=~/nixos-config-deleteme
nixos_working_dir=$HOME/nixos-config-deleteme
nixos_working_exe=activate.sh
## Functions ##
+5
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
source /usr/local/bin/volume.function
volume $@
+170 -44
View File
@@ -9,7 +9,12 @@
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
# Use the `xev` command to see the name and code of a keyboard key.
set $mod Mod4
set $alt Mod1
set $ctrl Control
set $shift Shift
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
@@ -36,10 +41,10 @@ exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
@@ -50,6 +55,7 @@ tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal
#bindsym $mod+Return exec st
# kill focused window
#bindsym $mod+Shift+q kill
@@ -66,10 +72,10 @@ bindsym $mod+space exec --no-startup-id dmenu_run
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
#bindsym $mod+j focus left
#bindsym $mod+k focus down
#bindsym $mod+l focus up
#bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
@@ -78,10 +84,10 @@ bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
#bindsym $mod+Shift+j move left
#bindsym $mod+Shift+k move down
#bindsym $mod+Shift+l move up
#bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
@@ -115,18 +121,95 @@ bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
## Extra Program Shortcuts ##
# Theming.
bindsym $mod+t exec lxappearance
# Manage files.
bindsym $mod+m exec thunar
# Internet.
#bindsym $mod+i exec firefox
bindsym $mod+i exec firefox-flatpak
# Code.
bindsym $mod+c exec codium-flatpak
## Brightness ##
# Use the bracket keys to change the brightness.
# light requires sudo privileges unless video group and udev are configured.
bindsym $mod+bracketleft exec --no-startup-id "light -U 05 && notify-send 'Brightness - ' $(light -G)"
bindsym $mod+bracketright exec --no-startup-id "light -A 05 && notify-send 'Brightness + ' $(light -G)"
bindsym $shift+$mod+bracketleft exec --no-startup-id "light -U 20 && notify-send 'Brightness ---' $(light -G)"
bindsym $shift+$mod+bracketright exec --no-startup-id "light -A 20 && notify-send 'Brightness +++' $(light -G)"
# Also get the actual brightness keys to work!!
bindsym XF86MonBrightnessUp exec --no-startup-id "light -A 05 && notify-send 'Brightness + ' $(light -G)"
bindsym XF86MonBrightnessDown exec --no-startup-id "light -U 05 && notify-send 'Brightness - ' $(light -G)"
bindsym $shift+XF86MonBrightnessUp exec --no-startup-id "light -A 20 && notify-send 'Brightness +++' $(light -G)"
bindsym $shift+XF86MonBrightnessDown exec --no-startup-id "light -U 20 && notify-send 'Brightness ---' $(light -G)"
## Volume ##
# The volume function is from https://git.hyperling.com/me/env-ansible
# Use the comma and period keys to change volume.
bindsym $mod+comma exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -05 && notify-send "Volume - " $(volume)'
bindsym $mod+period exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +05 && notify-send "Volume + " $(volume)'
bindsym $shift+$mod+comma exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -25 && notify-send "Volume ---" $(volume)'
bindsym $shift+$mod+period exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +25 && notify-send "Volume +++" $(volume)'
# Actual volume keys.
bindsym XF86AudioMute exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume mute && notify-send "Volume Muted" $(volume)'
bindsym XF86AudioRaiseVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +05 && notify-send "Volume + " $(volume)'
bindsym XF86AudioLowerVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -05 && notify-send "Volume - " $(volume)'
bindsym $shift+XF86AudioRaiseVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume +25 && notify-send "Volume +++ " $(volume)'
bindsym $shift+XF86AudioLowerVolume exec --no-startup-id bash -c 'source /usr/local/bin/volume.function && volume -25 && notify-send "Volume --- " $(volume)'
## Keyboard Brightness ##
# Macbooks tend to use 'sysfs/leds/smc::kbd_backlight'
# NovaCustom laptop is 'sysfs/leds/system76_acpi::kbd_backlight'
# Some other laptops may be 'sysfs/class/leds/...', use ìght -L`to find out.
bindsym XF86KbdBrightnessUp exec "light -s sysfs/leds/smc::kbd_backlight -A 05 && notify-send 'Keyboard Brightness + ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym XF86KbdBrightnessDown exec "light -s sysfs/leds/smc::kbd_backlight -U 05 && notify-send 'Keyboard Brightness - ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $shift+XF86KbdBrightnessUp exec "light -s sysfs/leds/smc::kbd_backlight -A 20 && notify-send 'Keyboard Brightness +++' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $shift+XF86KbdBrightnessDown exec "light -s sysfs/leds/smc::kbd_backlight -U 20 && notify-send 'Keyboard Brightness ---' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $mod+apostrophe exec "light -s sysfs/leds/smc::kbd_backlight -A 05 && notify-send 'Keyboard Brightness + ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $mod+semicolon exec "light -s sysfs/leds/smc::kbd_backlight -U 05 && notify-send 'Keyboard Brightness - ' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $shift+$mod+apostrophe exec "light -s sysfs/leds/smc::kbd_backlight -A 20 && notify-send 'Keyboard Brightness +++' $(light -s sysfs/leds/smc::kbd_backlight -G)"
bindsym $shift+$mod+semicolon exec "light -s sysfs/leds/smc::kbd_backlight -U 20 && notify-send 'Keyboard Brightness ---' $(light -s sysfs/leds/smc::kbd_backlight -G)"
## Workspaces ##
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
# Command Line
set $ws1 "1 - CMD"
# Web Surfing
set $ws2 "2 - WEB"
# Programming
set $ws3 "3 - PRG"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# Flutter
set $ws4 "4 - FLT"
# Chats
set $ws5 "5 - CHT"
# Other
set $ws6 "6 - OTH"
# Torrents
set $ws7 "7 - TOR"
# Music
set $ws8 "8 - MUS"
# Videos
set $ws9 "9 - VID"
# VPNs
set $ws10 "10 - VPN"
# switch to workspace
bindsym $mod+1 workspace number $ws1
@@ -153,13 +236,32 @@ bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
## Keep certain programs in certain tabs. ##
# Use the `xprop` command to find the class of a program.
# (?i) makes the regex case insensitive.
assign [class="(?i)Navigator"] $ws2
assign [class="(?i).*Firefox.*"] $ws2
assign [class="(?i).*Brave.*"] $ws2
assign [class="(?i).*Codium.*"] $ws3
assign [class="(?i).*Code.*"] $ws4
assign [class="(?i).*Transmission.*"] $ws7
assign [class="(?i).*VPN.*"] $ws10
assign [class="(?i).*Mullvad.*"] $ws10
## Workspace Specific Workflows ##
bindsym $ctrl+$shift+1 workspace $ws1; exec i3-sensible-terminal;
bindsym $ctrl+$shift+2 workspace $ws2; exec firefox-flatpak;
bindsym $ctrl+$shift+3 workspace $ws3; exec codium-flatpak;
bindsym $ctrl+$shift+4 workspace $ws4; exec code-flatpak;
bindsym $ctrl+$shift+5 workspace $ws5; exec "session; dino"
## Reloads, Restarts, Exit ##
# reload the configuration file
bindsym $mod+Shift+c reload
@@ -170,32 +272,48 @@ bindsym $mod+Shift+r restart
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
bindsym $mod+Shift+q exit
# lock
bindsym $ctrl+$alt+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
bindsym $ctrl+$mod+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
bindsym $shift+$mod+l exec "i3lock -c 000000 -e -f && sleep 1 && xset dpms force off"
# shutdown entire system.
#bindsym $ctrl+$shift+q exec dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
bindsym $ctrl+$alt+q exec sudo shutdown -h now
bindsym $shift+$alt+q exec sudo shutdown -h now
bindsym $shift+$ctrl+q exec sudo shutdown -h now
## Resizing (Disabled) ##
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
#mode "resize" {
# # These bindings trigger as soon as you enter the resize mode
#
# # Pressing left will shrink the windows width.
# # Pressing right will grow the windows width.
# # Pressing up will shrink the windows height.
# # Pressing down will grow the windows height.
# bindsym j resize shrink width 10 px or 10 ppt
# bindsym k resize grow height 10 px or 10 ppt
# bindsym l resize shrink height 10 px or 10 ppt
# bindsym semicolon resize grow width 10 px or 10 ppt
#
# # same bindings, but for the arrow keys
# bindsym Left resize shrink width 10 px or 10 ppt
# bindsym Down resize grow height 10 px or 10 ppt
# bindsym Up resize shrink height 10 px or 10 ppt
# bindsym Right resize grow width 10 px or 10 ppt
#
# # back to normal: Enter or Escape or $mod+r
# bindsym Return mode "default"
# bindsym Escape mode "default"
# bindsym $mod+r mode "default"
#}
#
#bindsym $mod+r mode "resize"
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
## Taskbar ##
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
@@ -203,7 +321,15 @@ bar {
status_command i3status
}
## Startup Applications ##
exec st
exec mullvad-vpn
exec i3-sensible-terminal
#exec firefox-flatpak
exec transmission
exec light -O
exec light -N 0
exec setxkbmap -layout us -variant altgr-intl
+3
View File
@@ -1,2 +1,5 @@
%sudo ALL=(ALL) ALL
# Allow anyone in the sudo group to shutdown or reboot without a password.
%sudo ALL=(ALL) NOPASSWD: /sbin/shutdown, /usr/sbin/shutdown, /sbin/reboot, /usr/sbin/reboot
+10 -5
View File
@@ -91,6 +91,8 @@
# Gather again in case missing programs have now been installed.
- include_tasks: facts/general/gather.yml
- include_tasks: tasks/general/settings/keyboard.yml
- include_tasks: tasks/general/acct_mgmt/groups.yml
- include_tasks: tasks/general/acct_mgmt/users.yml
- include_tasks: tasks/general/acct_mgmt/sudo.yml
@@ -107,7 +109,6 @@
when: ansible_system == "FreeBSD"
- include_tasks: tasks/general/software/metasploit.yml
when: pentesting == true
when: provision == true
@@ -120,7 +121,8 @@
- include_tasks: facts/workstation/package.yml
# Set Up Desktop Environments #
## Desktop Environments ##
- include_tasks: tasks/workstation/freebsd/software/gpu.yml
when: ansible_system == "FreeBSD" and bsd_gpu == true
@@ -140,7 +142,8 @@
- include_tasks: tasks/workstation/linux/software/lxqt.yml
# Software Tasks #
## Software Tasks ##
- include_tasks: tasks/workstation/linux/software/packages.yml
when: ansible_system == "Linux"
@@ -162,7 +165,8 @@
- include_tasks: tasks/workstation/mac-os/software/brew.yml
when: ansible_system == "Darwin"
# Configuration Tasks #
## Configuration Tasks ##
- include_tasks: tasks/workstation/shared/settings/gnome.yml
when: not mobile
@@ -183,7 +187,8 @@
- include_tasks: tasks/workstation/shared/settings/templates.yml
# Final Tasks (SLOW) #
## Final Tasks (SLOW) ##
- include_tasks: tasks/workstation/linux/software/flutter.yml
when: ansible_system == "Linux"
+52 -21
View File
@@ -122,12 +122,19 @@
## Files ##
- name: General | Account Management | Users | Files | Profile Variables
set_fact:
export_path_additions: export PATH="$HOME/bin:"{{ global_bin }}":"{{ shared_rc_bin }}":$PATH"
export_path_sbin: export PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin"
#export_terminal: export TERMINAL="alacritty" # colors look weird.
export_terminal: export TERMINAL="kitty"
keyboard_settings: setxkbmap -layout us -variant altgr-intl
- name: General | Account Management | Users | Files | RC Variables
set_fact:
alias_cp: alias cp='cp -v'
alias_mv: alias mv='mv -v'
alias_rm: alias rm='echo "Use mv ~/TRASH/ instead!"'
export_path_additions: export PATH="~/bin:"{{ global_bin }}":"{{ shared_rc_bin }}":$PATH"
function_wttr: |
function weather() {
# 20210301 - Someone showed me an awesome weather API! Had to implement it!
@@ -275,7 +282,7 @@
alias init-video='
mkdir -v raw
mkdir -v exports
cp ~/Templates/*video* ./
cp $HOME/Templates/*video* ./
'
alias init-vid=init-video
alias init-program='
@@ -425,7 +432,7 @@
echo "Checking but not cleaning /var/mail..."
du -ha /var/mail | sort -h
if [[ $clean == "Y" ]]; then
clean-trashed "~/"
clean-trashed "$HOME/"
fi
return 0
}
@@ -623,7 +630,7 @@
alias code-sync='code-check'
alias_code_reset: |
alias code-reset='
ls -d ~/Code/* | while read project
ls -d $HOME/Code/* | while read project
do echo "*** `basename $project` ***"
cd $project
git stash
@@ -668,7 +675,7 @@
echo -e "\n*** Move old projects to TRASH ***"
unseed_dir="$HOME/TRASH/`date +%Y%m%d_%H%M%S`_UnseededCodeProjects"
mkdir -pv "$unseed_dir"
mv -v ~/Code/* "$unseed_dir"/ 2>/dev/null
mv -v $HOME/Code/* "$unseed_dir"/ 2>/dev/null
# Git repo information.
git_repo_ssh={{ git_repo_ssh }}
@@ -688,7 +695,7 @@
# Download of the project.
git clone ${git_repo_ssh_basename}${git_project} \
--branch $git_branch ~/Code/$dest_folder
--branch $git_branch $HOME/Code/$dest_folder
done
}
function_clean_filenames: |
@@ -747,15 +754,15 @@
function_clean_code: |
function clean-code {
echo -e "******* Android *******\n*** Build Caches ***"
find ~/Code/android-*/app -maxdepth 1 -type d -name "build" \
find $HOME/Code/android-*/app -maxdepth 1 -type d -name "build" \
-exec du -hs {} \; -exec rm -rf {} \;
echo -e "\n*** Gradle Caches ***"
find ~/Code/android-*/ -maxdepth 1 -type d -name ".gradle" \
find $HOME/Code/android-*/ -maxdepth 1 -type d -name ".gradle" \
-exec du -hs {} \; -exec rm -rf {} \;
echo -e "******* Flutter *******"
ls ~/Code | grep flutter | while read project; do
cd ~/Code/$project
ls $HOME/Code | grep flutter | while read project; do
cd $HOME/Code/$project
pwd
flutter clean
echo -e "\n"
@@ -763,7 +770,7 @@
cd
echo -e "******* PDFs *******"
find ~/Code/ebook-* -name "*.pdf" -exec du -h {} \; -delete | sort -h
find $HOME/Code/ebook-* -name "*.pdf" -exec du -h {} \; -delete | sort -h
echo -e "\n*** Done! ***"
}
@@ -868,7 +875,7 @@
rmdir -v tmp
else
echo "Failed!"
mv tmp ~/TRASH/"tmp_`now`"
mv tmp $HOME/TRASH/"tmp_`now`"
fi
}
function pull_prod_backups {
@@ -966,8 +973,8 @@
function_ebook_convert: |
# Regenerate all eBook projects at once.
function ebook-convert {
find ~/Code/ebook-* -name "*.pdf" -print -delete
find ~/Code/ebook-* -name convert.sh -print -exec bash "{}" \;
find $HOME/Code/ebook-* -name "*.pdf" -print -delete
find $HOME/Code/ebook-* -name convert.sh -print -exec bash "{}" \;
}
alias ebooks="ebook-convert"
alias convert="ebook-convert"
@@ -1037,7 +1044,7 @@
alias reset-stage="load-branch stage main"
alias reset-dev="load-branch dev main"
function check-code-branches {
for dir in ~/Code/*/; do
for dir in $HOME/Code/*/; do
cd $dir
pwd
git ls-remote --heads
@@ -1049,7 +1056,7 @@
alias check-branch="git ls-remote --heads"
alias branch-check="check-branch"
alias_reload_bash: |
alias reload-bash="source ~/.bashrc"
alias reload-bash="source $HOME/.bashrc"
alias bash-reload="reload-bash"
alias shell-reload="reload-bash"
alias reload-shell="reload-bash"
@@ -1097,8 +1104,8 @@
}
alias try="loop "
source_shared: |
if [ -f ~/.rc_shared ]; then
source ~/.rc_shared
if [ -f $HOME/.rc_shared ]; then
source $HOME/.rc_shared
fi
process_notify_log: |
if [[ -e {{ notify_log_file }} ]]; then
@@ -1113,6 +1120,11 @@
- name: General | Account Management | Users | Files | Common Variable
set_fact:
profile_common: |
{{ export_path_additions }}
{{ export_path_sbin }}
{{ export_terminal }}
{{ keyboard_settings}}
rc_common: |
# Fixes "command not found" when using aliases within functions.
shopt -s expand_aliases
@@ -1129,7 +1141,6 @@
export server="{{ server }}"
export domain="{{ domain }}"
{{ export_path_additions }}
{{ source_shared }}
{{ alias_cp }}
{{ alias_mv }}
@@ -1193,10 +1204,29 @@
{{ function_loop }}
{{ process_notify_log }}
- name: General | Account Management | Users | Files | .profile + .xsessionrc
blockinfile:
path: "{{ user_user.home }}/{{ item }}"
block: |
{{ profile_common }}
[[ $(whoami) != "root" ]] &&
echo "`date` - Ansible .profile loaded successfully!"
marker: '# {mark} MANAGED BY ANSIBLE | Aliases'
state: present
create: yes
backup: no
loop:
- ".profile"
- ".xprofile"
- ".xsessionrc"
when: user_user.home != ""
- name: General | Account Management | Users | Files | .bashrc
blockinfile:
path: "{{ item }}/.bashrc"
block: |
{{ profile_common }}
{{ rc_common }}
# Export all functions! #
@@ -1211,7 +1241,6 @@
loop:
- "{{ user_root.home }}"
- "{{ user_user.home }}"
ignore_errors: yes
when: user_root.home != "" and user_user.home != ""
- name: General | Account Management | Users | Files | .zshrc
@@ -1228,7 +1257,6 @@
loop:
- "{{ user_root.home }}"
- "{{ user_user.home }}"
ignore_errors: yes
when: user_root.home != "" and user_user.home != ""
- name: General | Account Management | Users | Files | Ownership
@@ -1239,6 +1267,9 @@
loop:
- .bashrc
- .zshrc
- .profile
- .xprofile
- .xsessionrc
- name: General | Account Management | Users | Files | Helper Functions (Reset)
+16
View File
@@ -0,0 +1,16 @@
---
# 20260716 - Hyperling
# Ensure the correct International AltGr keyboard setting is always chosen.
- name: General | Settings | Keyboard | Default Config
lineinfile:
path: "/etc/default/keyboard"
regexp: '{{ item.key }}'
line: '{{ item.value }}'
state: present
create: yes
backup: yes
loop:
#- { "key": '^[\#]?XKBMODEL', "value": 'XKBMODEL="pc105"'}
- { "key": '^[\#]?XKBLAYOUT', "value": 'XKBLAYOUT="us"'}
- { "key": '^[\#]?XKBVARIANT', "value": 'XKBVARIANT="altgr-intl"'}
+25 -5
View File
@@ -5,6 +5,7 @@
set_fact:
metasploit_installer: msfinstall
when: ansible_system in ("Linux", "Darwin")
and pentesting == true
- name: General | Software | Metasploit | Check Install Status
stat:
@@ -18,8 +19,9 @@
- "mv -fv /usr/share/keyrings/metasploit-framework.gpg /tmp/apt/metasploit-framework.gpg.old"
- "mv -fv /etc/apt/sources.list.d/metasploit-framework.list /tmp/apt/metasploit-framework.list.old"
- "mv -fv /etc/apt/preferences.d/pin-metasploit.pref /tmp/apt/pin-metasploit.pref.old"
when: ansible_system in ("Linux") and
not metasploit_status.stat.exists
when: ansible_system in ("Linux") and ansible_pkg_mgr == "apt"
and not metasploit_status.stat.exists
and pentesting == true
ignore_errors: true
- name: General | Software | Metasploit | Install
@@ -28,7 +30,25 @@
- "curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > {{ metasploit_installer }}"
- "chmod 755 {{ metasploit_installer }}"
- "mkdir -p {{ global_bin }}"
- "mv -fv ./msfinstall {{ global_bin }}/{{ metasploit_installer }}"
- "mv -fv ./{{ metasploit_installer }} {{ global_bin }}/{{ metasploit_installer }}"
- yes y | "{{ global_bin }}/{{ metasploit_installer }}"
when: ansible_system in ("Linux", "Darwin") and
not metasploit_status.stat.exists
when: ansible_system in ("Linux", "Darwin")
and not metasploit_status.stat.exists
and pentesting == true
- name: General | Software | Metasploit | Remove (Darwin)
shell: "{{ item }}"
loop:
- "/opt/metasploit-framework/bin/msfremove"
when: ansible_system in ("Darwin")
and not metasploit_status.stat.exists
and pentesting == false
- name: General | Software | Metasploit | Remove (APT)
shell: "{{ item }}"
loop:
- "apt purge metasploit-framework"
- "apt autoremove --purge"
when: ansible_system in ("Linux") and ansible_pkg_mgr == "apt"
and not metasploit_status.stat.exists
and pentesting == false
+1
View File
@@ -60,6 +60,7 @@
- "{{ nethogs }}"
- "{{ ntp_server }}"
- "{{ dig }}"
- "{{ tmux }}"
state: present
- name: General | Software | Packages | Install Software (DEV)
@@ -48,6 +48,7 @@
- { app: "com.brave.Browser", name: "brave", extra: "" }
- { app: "net.ankiweb.Anki", name: "anki", extra: "" }
- { app: "app.organicmaps.desktop", name: "organic-maps", extra: "" }
- { app: "im.dino.Dino", name: "dino", extra: "" }
flatpaks_coding:
- { app: "com.vscodium.codium", name: "codium-flatpak", extra: "" }
- { app: "com.google.AndroidStudio", name: "android-studio", extra: "" }
+78 -1
View File
@@ -7,9 +7,17 @@
- name: Workstation | Linux | Software | i3 | Facts | General [1/2]
set_fact:
i3_package: i3
i3_config: "settings/i3.config"
i3_config_dir: "{{ user_user.home }}/.config/i3"
i3_package: i3
i3_light: light
i3_files: thunar
i3_term01: alacritty
i3_term02: kitty
i3_theming: lxappearance
i3_theme01: greybird-gtk-theme
i3_theme02: arc-theme
i3_theme03: numix-gtk-theme
- name: Workstation | Linux | Software | i3 | Facts | General [1/2]
set_fact:
@@ -25,6 +33,14 @@
name:
- "{{ i3_package }}"
- "{{ lightdm }}"
- "{{ i3_light }}"
- "{{ i3_files }}"
- "{{ i3_term01 }}"
- "{{ i3_term02 }}"
- "{{ i3_theming }}"
- "{{ i3_theme01 }}"
- "{{ i3_theme02 }}"
- "{{ i3_theme03 }}"
state: present
update_cache: yes
@@ -43,3 +59,64 @@
owner: "{{ user }}"
group: "{{ user }}"
mode: '0664'
# TBD: Automate getting the brightness keys to work.
#
# User is already part of the video group. Just need to configure udev rules.
#
# Get the folder name from here: `ls /sys/class/backlight/`
#
# That is your <DEVICE> for the following lines, which go here: /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="<DEVICE>", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
#
# So, for example:
# [18:12:20 root@device ~]# cat /etc/udev/rules.d/backlight.rules
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
# ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
# [18:12:21 root@device ~]#
#
# It then required a reboot. Doing the commands below was not enough.
#
# # sudo udevadm control --reload-rules
# # sudo udevadm trigger
#
- name: Workstation | Linux | Software | i3 | Light | Check Backlights
ansible.builtin.find:
paths: /sys/class/backlight
file_type: any # Options: file, directory, any
patterns: "*" # Wildcard patterns (e.g., "*.log")
recurse: no # Set to 'yes' for subdirectories
register: i3_light_device_check
#- name: Display var _ DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_check }}"
- name: Workstation | Linux | Software | i3 | Light | Pull Backlight Name
set_fact:
i3_light_device_name: "{{ i3_light_device_check.files[0].path | basename }}"
#- name: Display var - DELETEME
# ansible.builtin.debug:
# msg: "{{ i3_light_device_name }}"
- name: Workstation | Linux | Software | i3 | Light | udev Rules | Create
ansible.builtin.copy:
dest: /etc/udev/rules.d/backlight.rules
content: |
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="{{ i3_light_device_name }}", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
owner: root
group: root
mode: '0644'
- name: Workstation | Linux | Software | i3 | Light | udev Rules | Reload
command: "{{ item }}"
loop:
- udevadm control --reload-rules
- udevadm trigger
#- name: FAIL - DELETEME
# meta: end_play
+1 -1
View File
@@ -64,7 +64,7 @@
create: yes
backup: yes
loop:
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_STARTUP', "value": 'DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wifi wwan"'}
- { "key": '^[\#]?DEVICES_TO_DISABLE_ON_STARTUP', "value": 'DEVICES_TO_DISABLE_ON_STARTUP="bluetooth nfc wwan"'}
# Ensure these stay commented, once the device is booted the user is in control. #
- { "key": '^[\#]?DEVICES_TO_ENABLE_ON_STARTUP', "value": '#DEVICES_TO_ENABLE_ON_STARTUP=""'}
- { "key": '^[\#]?DEVICES_TO_ENABLE_ON_AC', "value": '#DEVICES_TO_ENABLE_ON_AC=""'}
+9 -2
View File
@@ -2,7 +2,7 @@
# Install VPN client(s).
# https://mullvad.net/en/help/install-mullvad-app-linux
- name: Workstation | Software | VPN | Add Mullvad Repo [apt]
- name: Workstation | Software | VPN | Mullvad | Add Repo [apt]
shell: "{{ item }}"
loop:
- sudo curl -fsSLo /usr/share/keyrings/mullvad-keyring.asc https://repository.mullvad.net/deb/mullvad-keyring.asc
@@ -10,7 +10,7 @@
- apt update
when: ansible_pkg_mgr == "apt"
- name: Workstation | Software | VPN | Add Mullvad Repo [dnf]
- name: Workstation | Software | VPN | Mullvad | Add Repo [dnf]
shell: "{{ item }}"
loop:
- sudo dnf config-manager --add-repo https://repository.mullvad.net/rpm/stable/mullvad.repo
@@ -21,3 +21,10 @@
name:
- mullvad-vpn
state: present
- name: Workstation | Software | VPN | Mullvad | Symlink GUI
ansible.builtin.file:
src: "/opt/Mullvad VPN/mullvad-vpn"
dest: "{{ global_bin }}/mullvad-vpn"
state: link
force: true