init commit, ly, i3, polybar, neovim, alacritty, NixOS Flakes + Home-Manager
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./programs
|
||||
./desktop
|
||||
];
|
||||
|
||||
home.username = "jashton";
|
||||
home.homeDirectory = "/home/jashton";
|
||||
home.file.".zshrc".text = ''
|
||||
# Zsh is configured globally at the NixOS system level.
|
||||
# This file exists solely to prevent the zsh-newuser-install prompt.
|
||||
'';
|
||||
|
||||
home.sessionVariables = {
|
||||
WINIT_X11_SCALE_FACTOR = "1.0";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
claude-code
|
||||
mc
|
||||
discord
|
||||
asciinema
|
||||
intelli-shell
|
||||
aider-chat
|
||||
animdl
|
||||
jrnl
|
||||
freetube
|
||||
|
||||
(pkgs.writeShellScriptBin "lock-screen" ''
|
||||
# Color palette mapped to i3lock-color format (RRGGBBAA)
|
||||
BLANK="00000000" # Fully transparent
|
||||
BLACK="1e1f21ff" # Carbon Black
|
||||
GRAPE="4f3963ff" # Vintage Grape (Main Ring)
|
||||
VIOLET="2c2137ff" # Midnight Violet (Verifying Ring)
|
||||
LAVENDER1="8d739cff" # Vintage Lavender 1 (Text)
|
||||
LAVENDER2="7e6790ff" # Vintage Lavender 2 (Backspace Highlight)
|
||||
LAVENDER3="847397ff" # Vintage Lavender 3 (Keypress Highlight)
|
||||
|
||||
${pkgs.i3lock-color}/bin/i3lock-color \
|
||||
--image="${./desktop/assets/blurred-samuraii.jpg}" \
|
||||
--fill \
|
||||
-c "1E1F21" \
|
||||
\
|
||||
--insidever-color=$BLANK \
|
||||
--ringver-color=$VIOLET \
|
||||
\
|
||||
--insidewrong-color=$BLANK \
|
||||
--ringwrong-color=$GRAPE \
|
||||
\
|
||||
--inside-color=$BLANK \
|
||||
--ring-color=$GRAPE \
|
||||
--line-color=$BLANK \
|
||||
--separator-color=$BLANK \
|
||||
\
|
||||
--verif-color=$LAVENDER1 \
|
||||
--wrong-color=$LAVENDER1 \
|
||||
--time-color=$LAVENDER1 \
|
||||
--date-color=$LAVENDER1 \
|
||||
--layout-color=$LAVENDER1 \
|
||||
--keyhl-color=$LAVENDER3 \
|
||||
--bshl-color=$LAVENDER2 \
|
||||
\
|
||||
--clock \
|
||||
--indicator \
|
||||
--time-str="%I:%M %p" \
|
||||
--date-str="%a, %b %d" \
|
||||
--radius=120 \
|
||||
--ring-width=8
|
||||
'')
|
||||
|
||||
(pkgs.writeShellScriptBin "power-menu" ''
|
||||
# Define the menu options
|
||||
OPTIONS="1. ☕ Toggle Caffeine (Disable Auto-Sleep)\n2. 🔋 Force 100% Charge\n3. ♻️ Reset TLP Defaults"
|
||||
|
||||
# Pipe options into Rofi
|
||||
CHOICE=$(echo -e "$OPTIONS" | ${pkgs.rofi}/bin/rofi -dmenu -i -p "Power:")
|
||||
|
||||
# Execute commands based on the selection
|
||||
case "$CHOICE" in
|
||||
*"Caffeine"*)
|
||||
# Assuming you use xset for screen blanking. Adjust if using xautolock or swayidle.
|
||||
if xset q | grep -q "DPMS is Enabled"; then
|
||||
xset -dpms s off
|
||||
${pkgs.libnotify}/bin/notify-send "Power" "Caffeine ON (Sleep Disabled)"
|
||||
else
|
||||
xset +dpms s on
|
||||
${pkgs.libnotify}/bin/notify-send "Power" "Caffeine OFF (Normal Sleep)"
|
||||
fi
|
||||
;;
|
||||
*"100% Charge"*)
|
||||
sudo tlp fullcharge BAT0
|
||||
${pkgs.libnotify}/bin/notify-send "TLP" "Charging to 100% temporarily"
|
||||
;;
|
||||
*"Reset TLP Defaults"*)
|
||||
sudo tlp start
|
||||
${pkgs.libnotify}/bin/notify-send "TLP" "Default power profiles restored"
|
||||
;;
|
||||
esac
|
||||
'')
|
||||
|
||||
(pkgs.writeShellScriptBin "weather-cache" ''
|
||||
CACHE_FILE="$HOME/.cache/weather-cache.txt"
|
||||
# Create cache dir if it doesn't exist
|
||||
mkdir -p "$HOME/.cache"
|
||||
|
||||
# Try to fetch weather with a 3-second timeout
|
||||
if ${pkgs.curl}/bin/curl -s --connect-timeout 3 'https://wttr.in/Salt+Lake+City?format=1' > /tmp/weather.tmp; then
|
||||
# If successful, update the cache and print
|
||||
cat /tmp/weather.tmp > "$CACHE_FILE"
|
||||
cat "$CACHE_FILE"
|
||||
else
|
||||
# If network is down, read from cache and append an offline indicator
|
||||
if [ -f "$CACHE_FILE" ]; then
|
||||
echo "[$(cat "$CACHE_FILE")]"
|
||||
else
|
||||
echo "No Network"
|
||||
fi
|
||||
fi
|
||||
'')
|
||||
];
|
||||
|
||||
home.activation = {
|
||||
# 1. Create the persistent directories
|
||||
createWorkspaceDirs = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
$DRY_RUN_CMD mkdir -p $HOME/dev
|
||||
$DRY_RUN_CMD mkdir -p $HOME/downloads
|
||||
$DRY_RUN_CMD mkdir -p $HOME/life
|
||||
$DRY_RUN_CMD mkdir -p $HOME/media/pics
|
||||
$DRY_RUN_CMD mkdir -p $HOME/media/videos
|
||||
$DRY_RUN_CMD mkdir -p $HOME/school
|
||||
'';
|
||||
};
|
||||
|
||||
home.stateVersion = "25.11"; # DO NOT CHANGE
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user