Compare commits

..

6 Commits

Author SHA1 Message Date
8a781d6b2a fix bb alias 2025-11-06 00:06:25 -06:00
c8a036edc2 all hardcoded paths in home man 2025-11-06 00:05:12 -06:00
f0a8d8f0fb remove more hard coded paths 2025-11-05 23:58:04 -06:00
303c759bb4 remove hard coded paths 2025-11-05 23:51:05 -06:00
c243c4393f adjust popup settings 2025-11-05 23:45:06 -06:00
de4822bc68 make dunst declaritive 2025-11-05 23:30:42 -06:00
10 changed files with 161 additions and 543 deletions

View File

@@ -1,203 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
# --- SUDO CHECK ---
if [ "$EUID" -ne 0 ]; then
echo "This script requires root privileges. Re-running with sudo..."
exec sudo "$0" "$@"
fi
# --- HANDLE OPTIONS ---
BORG_PASSPHRASE=""
SHOW_FOLDERS_ONLY=false
SHOW_FILES=false # Default to showing files and directories
while getopts "k:fp" opt; do
case "$opt" in
k)
BORG_PASSPHRASE=$(<"$OPTARG")
if [ -z "$BORG_PASSPHRASE" ]; then
echo "Error: The key file is empty."
exit 1
fi
echo "Using passphrase from key file: $OPTARG"
;;
f)
SHOW_FOLDERS_ONLY=true
echo "Only directories will be shown in fzf by default."
SHOW_FILES=false
;;
p)
SHOW_FILES=true
echo "Both files and directories will be shown in fzf."
;;
*)
echo "Usage: $0 [-k passphrase_file] [-f] [-p] <repo>"
exit 1
;;
esac
done
shift $((OPTIND - 1))
# --- FALLBACK TO /run/secrets/borg_passwd IF NO KEY FILE ---
if [ -z "$BORG_PASSPHRASE" ]; then
if [ $# -eq 0 ]; then
BORG_PASSPHRASE=$(<"/run/secrets/borg_passwd")
echo "Using passphrase from /run/secrets/borg_passwd"
else
# Prompt user for passphrase if neither -k nor /run/secrets/borg_passwd is available
read -s -p "Enter Borg repository passphrase: " BORG_PASSPHRASE
echo
fi
fi
export BORG_PASSPHRASE
# --- DEFAULT REPO ---
REPO="${1:-/holocron/archives/servers/snowbelle}"
# --- CHECK REQUIRED COMMANDS ---
for cmd in borg fzf find tree cp mkdir; do
command -v "$cmd" >/dev/null || { echo "Error: '$cmd' is required but not installed."; exit 1; }
done
# --- LIST ARCHIVES (sorted, newest last) ---
mapfile -t archives < <(borg list --format="{archive}{NL}" "$REPO" | sort -r)
if [ ${#archives[@]} -eq 0 ]; then
echo "No archives found in $REPO"
exit 1
fi
# --- FZF ARCHIVE SELECT ---
selected=$(printf '%s\n' "${archives[@]}" | fzf --prompt="Select archive: " --height=40% --border)
if [ -z "$selected" ]; then
echo "No archive selected."
exit 1
fi
echo "Selected archive: $selected"
# --- GENERATE A UNIQUE, SHORTER MOUNT POINT ---
MOUNT_POINT="/tmp/$(uuidgen | sha256sum | head -c 2)-restore-${selected}"
mkdir -p "$MOUNT_POINT"
# --- MOUNT ARCHIVE ---
echo "Mounting '$selected' to $MOUNT_POINT..."
borg mount "$REPO::$selected" "$MOUNT_POINT"
if [ ! -d "$MOUNT_POINT" ]; then
echo "Error: mount failed."
exit 1
fi
# --- LIST FILES AND DIRECTORIES ---
echo "Scanning files and directories..."
if command -v fd >/dev/null 2>&1; then
# List both files and directories with fd
if [ "$SHOW_FILES" = true ]; then
files=$(fd . "$MOUNT_POINT" | sort) # Show both files and directories
else
files=$(fd --type d . "$MOUNT_POINT" | sort) # Only directories
fi
else
# Fall back to find if fd is not available
if [ "$SHOW_FILES" = true ]; then
files=$(find "$MOUNT_POINT" | sort) # Show both files and directories
else
files=$(find "$MOUNT_POINT" -type d | sort) # Only directories
fi
fi
if [ -z "$files" ]; then
echo "No files or directories found in archive."
borg umount "$MOUNT_POINT"
rm -rf "$MOUNT_POINT"
exit 1
fi
# --- FZF FILE/DIRECTORY SELECTION ---
if [ "$SHOW_FILES" = true ]; then
# If showing files and directories, we pass everything to fzf
selected_items=$(printf '%s\n' "$files" | sed "s|$MOUNT_POINT/||" | tac | fzf \
--multi \
--height=50% \
--border \
--prompt="Select files or directories to restore: " \
--preview "tree -C -L 5 $MOUNT_POINT/$(dirname {})" \
--preview-window=right:50% \
--delimiter='/' \
--with-nth=1..)
else
# If only showing directories, pass directories to fzf
selected_items=$(printf '%s\n' "$files" | sed "s|$MOUNT_POINT/||" | tac | fzf \
--multi \
--height=50% \
--border \
--prompt="Select directories to restore: " \
--preview "tree -C -d -L 3 $MOUNT_POINT/$(dirname {})" \
--preview-window=right:50% \
--delimiter='/' \
--with-nth=1..)
fi
if [ -z "$selected_items" ]; then
echo "No items selected. Exiting."
borg umount "$MOUNT_POINT"
rm -rf "$MOUNT_POINT"
exit 0
fi
# --- SUMMARY OF SELECTED ITEMS ---
echo "Selected items:"
for item in $selected_items; do
echo " $item"
done
# --- OPTIONS MENU (concise) ---
# Default to option 1 if no input is given
echo "Select restore destination: 1) Restore to ./${selected}_restore 2) Restore to original dirs 3) Quit"
read -p "Enter your choice (1/2/3) [default: 1]: " choice
# Default to option 1 if user presses Enter without providing input
choice="${choice:-1}"
# --- SET RESTORE DESTINATION BASED ON USER CHOICE ---
case "$choice" in
1)
DEST="./${selected}_restore"
;;
2)
DEST="$MOUNT_POINT"
;;
3)
echo "Quitting. No items restored."
borg umount "$MOUNT_POINT"
rm -rf "$MOUNT_POINT"
exit 0
;;
*)
echo "Invalid choice. Exiting."
borg umount "$MOUNT_POINT"
rm -rf "$MOUNT_POINT"
exit 1
;;
esac
mkdir -p "$DEST"
# --- RESTORE SELECTED ITEMS (FILES OR DIRECTORIES) ---
echo "Restoring selected items..."
while IFS= read -r item; do
dest_path="$DEST/$item"
mkdir -p "$(dirname "$dest_path")"
if [ -d "$MOUNT_POINT/$item" ]; then
cp -r "$MOUNT_POINT/$item" "$dest_path"
else
cp -a "$MOUNT_POINT/$item" "$dest_path"
fi
echo "Restored: $item"
done <<< "$selected_items"
# --- CLEANUP ---
borg umount "$MOUNT_POINT"
rm -rf "$MOUNT_POINT"
echo "Restore complete."

View File

@@ -6,7 +6,7 @@
}: let
program = "lf";
cfg = config.dots.${program};
#sec = sops.secrets;
home_dir = config.home.homeDirectory;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
@@ -23,10 +23,10 @@ in {
# link configs
xdg.configFile."lf/lfrc" = {
source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/core/lf/lfrc";
source = config.lib.file.mkOutOfStoreSymlink "${home_dir}/.nix/users/blake/dots/core/lf/lfrc";
};
xdg.configFile."ctpv/config" = {
source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/core/lf/ctpv_config";
source = config.lib.file.mkOutOfStoreSymlink "${home_dir}/.nix/users/blake/dots/core/lf/ctpv_config";
};
};
}

View File

@@ -6,7 +6,7 @@
}: let
program = "ssh";
cfg = config.dots.${program};
#sec = sops.secrets;
home_dir = config.home.homeDirectory;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
@@ -19,33 +19,29 @@ in {
matchBlocks = {
"git.blakedheld.xyz" = {
user = "gitea";
identityFile = "~/.ssh/id_snowbelle";
identityFile = "${home_dir}/.ssh/id_snowbelle";
};
"git.snowbelle.lan" = {
user = "gitea";
identityFile = "~/.ssh/id_snowbelle";
identityFile = "${home_dir}/.ssh/id_snowbelle";
};
"bebe" = {
hostname = "10.10.0.1";
user = "root";
identityFile = "~/.ssh/id_snowbelle";
identityFile = "${home_dir}/.ssh/id_snowbelle";
};
};
};
# import sshkeys from keyring
#home.file.".ssh/id_snowbelle".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle;
#home.file.".ssh/id_snowbelle.pub".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle.pub;
# manage secrets with sops
sops.secrets = {
"id_snowbelle" = {
mode = "0600";
path = "/home/blake/.ssh/id_snowbelle";
path = "${home_dir}/.ssh/id_snowbelle";
};
"id_snowbelle.pub" = {
mode = "644";
path = "/home/blake/.ssh/id_snowbelle.pub";
path = "${home_dir}/.ssh/id_snowbelle.pub";
};
};
};

View File

@@ -6,7 +6,7 @@
}: let
program = "xdg";
cfg = config.dots.${program};
#sec = sops.secrets;
home_dir = config.home.homeDirectory;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
@@ -20,22 +20,22 @@ in {
then {}
else {
enable = true;
configHome = "/home/blake/.config";
cacheHome = "/home/blake/.cache";
dataHome = "/home/blake/.local/share";
stateHome = "/home/blake/.local/state";
configHome = "${home_dir}/.config";
cacheHome = "${home_dir}/.cache";
dataHome = "${home_dir}/.local/share";
stateHome = "${home_dir}/.local/state";
userDirs = {
enable = true;
# writes ~/.config/user-dirs.dirs
desktop = "/home/blake/desktop";
download = "/home/blake/downloads";
documents = "/home/blake/documents";
pictures = "/home/blake/pictures";
videos = "/home/blake/videos";
music = "/home/blake/music";
publicShare = "/home/blake/public";
templates = "/home/blake/templates";
desktop = "${home_dir}/desktop";
download = "${home_dir}/downloads";
documents = "${home_dir}/documents";
pictures = "${home_dir}/pictures";
videos = "${home_dir}/videos";
music = "${home_dir}/music";
publicShare = "${home_dir}/public";
templates = "${home_dir}/templates";
};
};

View File

@@ -6,6 +6,7 @@
}: let
program = "zsh";
cfg = config.dots.${program};
home_dir = config.home.homeDirectory;
#sec = sops.secrets;
in {
options.dots.${program} = {
@@ -41,12 +42,12 @@ in {
shellAliases = {
# --- zsh ---
cfz = "nvim $HOME/.config/zsh/.zshrc";
src = "source $HOME/.config/zsh/.zshrc";
cfz = "nvim ${home_dir}/.config/zsh/.zshrc";
src = "source ${home_dir}/.config/zsh/.zshrc";
# --- config editing ---
cfh = "nvim $HOME/.config/hypr/hyprland.conf";
cfl = "nvim $HOME/.config/lf/lfrc";
cfh = "nvim ${home_dir}/.config/hypr/hyprland.conf";
cfl = "nvim ${home_dir}/.config/lf/lfrc";
# --- navigation ---
ls = "ls --color=auto --group-directories-first";
@@ -58,8 +59,8 @@ in {
ds = "du -hs";
# --- shortcuts ---
vswap = "cd ~/.local/state/nvim/swap";
rswap = "rm ~/.local/state/nvim/swap/*";
vswap = "cd ${home_dir}/.local/state/nvim/swap";
rswap = "rm ${home_dir}/.local/state/nvim/swap/*";
v = "nvim";
sv = "sudo nvim";
vim = "nvim";
@@ -75,9 +76,9 @@ in {
egrep = "egrep --color=auto";
# --- scripts ---
rebuild = "sh ~/.nix/bin/rebuild.sh";
perms = "sudo sh ~/.nix/bin/perms.sh";
bb = "sudo sh ~/.nix/bin/lf_borg.sh";
rebuild = "sh ${home_dir}/.nix/bin/rebuild.sh";
perms = "sudo sh ${home_dir}/.nix/bin/perms.sh";
bb = "sudo sh ${home_dir}/.nix/bin/borg_lf.sh";
# --- git ---
status = "git status";
@@ -85,9 +86,9 @@ in {
commit = "git commit -am";
push = "git push";
pull = "git pull";
dotfiles = "/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME";
dtf = "/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME";
sec = "sops ~/.nix/secrets/secrets.yaml";
dotfiles = "/usr/bin/git --git-dir=${home_dir}/.dotfiles --work-tree=$HOME";
dtf = "/usr/bin/git --git-dir=${home_dir}/.dotfiles --work-tree=$HOME";
sec = "sops ${home_dir}/.nix/secrets/secrets.yaml";
# --- systemd ---
stat = "sudo systemctl status";
@@ -141,16 +142,6 @@ in {
"back-double-quoted-argument" = "fg=blue";
};
};
# zplug = {
# enable = true;
# zplugHome = "$XDG_STATE_HOME/zsh/zplug";
# plugins = [
# {name = "zsh-users/zsh-syntax-highlighting";}
# ];
# };
};
# rid the world of ~/.zshenv
#home.file.".zshenv".enable = false;
};
}

View File

@@ -6,7 +6,7 @@
}: let
program = "dunst";
cfg = config.dots.${program};
#sec = sops.secrets;
home_dir = config.home.homeDirectory;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
@@ -15,8 +15,119 @@ in {
config = lib.mkIf cfg.enable {
services.${program} = {
enable = true;
configFile = "/home/blake/.nix/users/blake/dots/dunst/dunstrc";
#settings = {};
settings = {
global = {
# --- display --- #
monitor = 0;
follow = "mouse";
# --- geometry --- #
width = "(0, 300)";
height = 300;
origin = "top-right";
offset = "20x15";
scale = 0;
# --- general --- #
sort = true;
idle_threshold = 150;
notification_limit = 0;
indicate_hidden = true;
mouse_left_click = "close_current";
mouse_middle_click = "do_action";
mouse_right_click = "close_all";
# --- look --- #
font = lib.mkDefault "UbuntuMonoNerdFont 13";
line_height = 0;
markup = "full";
alignment = "center";
vertical_alignment = "center";
ellipsize = "middle";
show_age_threshold = 60;
ignore_newline = false;
show_indicators = true;
corner_radius = 5;
corners = "all";
padding = 8;
horizontal_padding = 8;
text_icon_padding = 0;
frame_width = 3;
frame_color = lib.mkDefault "#aaaaaa";
separator_height = 2;
separator_color = lib.mkDefault "auto";
gap_size = 0;
stack_duplicates = true;
hide_duplicate_count = false;
format = "<b>%s</b>\n%b";
sticky_history = true;
history_length = 20;
# --- icons --- #
icon_corner_radius = 0;
icon_corners = "all";
enable_recursive_icon_lookup = true;
# icon_theme = [ "Adwaita" ];
icon_position = "left";
min_icon_size = 32;
max_icon_size = 128;
#icon_path = [];
# --- progress bar --- #
progress_bar = true;
progress_bar_height = 10;
progress_bar_frame_width = 1;
progress_bar_min_width = 150;
progress_bar_max_width = 300;
progress_bar_corner_radius = 0;
progress_bar_corners = "all";
# --- misc --- #
dmenu = "/usr/bin/tofi --prompt-text=\"dunst:\"";
browser = "/usr/bin/xdg-open";
always_run_script = true;
ignore_dbusclose = false;
force_xinerama = false;
# layer = "top";
force_xwayland = false;
};
urgency_low = {
background = lib.mkDefault "#2f1730";
foreground = lib.mkDefault "#888888";
frame_color = lib.mkDefault "#000000";
timeout = 7;
default_icon = "${home_dir}/.nix/users/blake/assets/icons/normal_64px.png";
};
urgency_normal = {
background = lib.mkDefault "#2f1730";
foreground = lib.mkDefault "#ffffff";
frame_color = lib.mkDefault "#000000";
timeout = 7;
override_pause_level = 30;
default_icon = "${home_dir}/.nix/users/blake/assets/icons/normal_64px.png";
};
urgency_critical = {
background = lib.mkDefault "#900000";
foreground = lib.mkDefault "#ffffff";
frame_color = lib.mkDefault "#ff0000";
timeout = 0;
override_pause_level = 60;
default_icon = "${home_dir}/.nix/users/blake/assets/icons/critical_128px.png";
};
};
};
};
}

View File

@@ -1,275 +0,0 @@
# See dunst(5) for all configuration options
[global]
# --- display --- #
monitor = 0 # Which monitor should the notifications be displayed on.
follow = mouse # mouse or keyboard or none
# --- geometry --- #
width = (0, 300) # dynamic 0 to 300
height = 300 # dynamic up to 300
origin = top-right # notif position
offset = 20x15
scale = 0
# --- general --- #
sort = yes
idle_threshold = 150
notification_limit = 0
indicate_hidden = yes # Show how many messages are currently hidden (because of notification_limit).
mouse_left_click = close_current
mouse_middle_click = do_action
mouse_right_click = close_all
# --- look --- #
font = UbuntuMonoNerdFont 13
line_height = 0
markup = full
alignment = center # left or right or center
vertical_alignment = center # top or center or bottom
ellipsize = middle # start or middle or end
show_age_threshold = 60 # seconds old to show (-1 to disable)
ignore_newline = no
show_indicators = yes # Display indicators for URLs (U) and actions (A).
corner_radius = 5
corners = all
padding = 8 # Padding between text and separator.
horizontal_padding = 8 # Horizontal padding.
text_icon_padding = 0 # Padding between text and icon.
frame_width = 3
frame_color = "#aaaaaa"
separator_height = 2 # Line to sperate notifications (0 to disable)
separator_color = auto
gap_size = 0
stack_duplicates = true
hide_duplicate_count = false
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
sticky_history = yes
history_length = 20
# --- icons --- #
icon_corner_radius = 0 # Corner radius for the icon image.
icon_corners = all # Define which corners to round when drawing the icon image. If icon_corner_radius is set to 0 this option will be ignored.
enable_recursive_icon_lookup = true
#icon_theme = Adwaita # can set multiple "one, two"
icon_position = left # left/right/top/off
min_icon_size = 32 # 0 to disable
max_icon_size = 128 # 0 to disable
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ # only when recursive lookup = false
# --- progress bar --- #
progress_bar = true # Turn on the progress bar. It appears when a progress hint is passed with for example dunstify -h int:value:12
progress_bar_height = 10 # Set the progress bar height. This includes the frame, so make sureit's at least twice as big as the frame width.
progress_bar_frame_width = 1 # Set the frame width of the progress bar
progress_bar_min_width = 150 # Set the minimum width for the progress bar
progress_bar_max_width = 300 # Set the maximum width for the progress bar
progress_bar_corner_radius = 0 # Corner radius for the progress bar. 0 disables rounded corners.
progress_bar_corners = all # Define which corners to round when drawing the progress bar. If progress_bar_corner_radius is set to 0 this option will be ignored.
# --- misc --- #
dmenu = /usr/bin/tofi --prompt-text="dunst:"
browser = /usr/bin/xdg-open
always_run_script = true
ignore_dbusclose = false # true forces notifs to follow timeout
force_xinerama = false
#layer = top # block notifs on fullscreen
force_xwayland = false
# --- notification types --- #
[urgency_low]
background = "#2f1730"
foreground = "#888888"
frame_color = "#000000"
timeout = 7.5
default_icon = ~/.nix/users/blake/assets/icons/normal_64px.png
[urgency_normal]
background = "#2f1730"
foreground = "#ffffff"
frame_color = "#000000"
timeout = 7.5
override_pause_level = 30
default_icon = ~/.nix/users/blake/assets/icons/normal_64px.png
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
override_pause_level = 60
default_icon = ~/.nix/users/blake/assets/icons/critical_128px.png
#[experimental]
# # Calculate the dpi to use on a per-monitor basis.
# # If this setting is enabled the Xft.dpi value will be ignored and instead
# # dunst will attempt to calculate an appropriate dpi value for each monitor
# # using the resolution and physical size. This might be useful in setups
# # where there are multiple screens with very different dpi values.
# per_monitor_dpi = false
# --- overrides --- #
[hyprshot]
appname = Hyprshot
action_name = "kitty lf ~/pictures/screenshots/"
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
# override_pause_level
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# You can also allow a notification to appear even when paused. Notification will appear whenever notification's override_pause_level >= dunst's paused level.
# This can be used to set partial pause modes, where more urgent notifications get through, but less urgent stay paused. To do that, you can override the following in the rules:
# override_pause_level = X
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View File

@@ -6,7 +6,7 @@
}: let
program = "hypr";
cfg = config.dots.${program};
#sec = sops.secrets;
home_dir = config.home.homeDirectory;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
@@ -26,8 +26,8 @@ in {
settings = {
# --- displays ---
source = [
"~/.config/hypr/monitors.conf"
"~/.config/hypr/workspaces.conf"
"${home_dir}/.config/hypr/monitors.conf"
"${home_dir}/.config/hypr/workspaces.conf"
];
# --- environment variables ---
@@ -129,7 +129,7 @@ in {
"$mainMod CONTROL, T, exec, cliphist wipe"
# screenshots
"$mainMod SHIFT, C, exec, hyprshot --mode region --output-folder ~/pictures/screenshots"
"$mainMod SHIFT, C, exec, hyprshot --mode region --output-folder ${home_dir}/pictures/screenshots"
# multimedia
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
@@ -218,8 +218,8 @@ in {
services.hyprpaper = {
enable = true;
settings = {
preload = lib.mkDefault ["~/.nix/users/blake/assets/wallpapers/antartica.png"];
wallpaper = lib.mkDefault [",~/.nix/users/blake/assets/wallpapers/antartica.png"];
preload = lib.mkDefault ["${home_dir}/.nix/users/blake/assets/wallpapers/antartica.png"];
wallpaper = lib.mkDefault [",${home_dir}/.nix/users/blake/assets/wallpapers/antartica.png"];
ipc = "off";
splash = false;
};
@@ -237,7 +237,7 @@ in {
background = lib.mkDefault [
{
monitor = "";
path = lib.mkDefault "~/.nix/users/blake/assets/wallpapers/antartica.png";
path = lib.mkDefault "${home_dir}/.nix/users/blake/assets/wallpapers/antartica.png";
blur_passes = 1;
color = lib.mkDefault "rgb(0047ab)";
}
@@ -280,7 +280,7 @@ in {
image = [
{
monitor = "";
path = "~/.nix/users/blake/assets/pfps/pikacig.jpg";
path = "${home_dir}/.nix/users/blake/assets/pfps/pikacig.jpg";
size = 350;
border_color = lib.mkDefault "rgb(0047ab)";
rounding = -1;
@@ -381,8 +381,5 @@ in {
# };
# };
#xdg.configFile."hypr/hyprland.conf" = {
# source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/hypr/hyprland.conf";
#};
};
}

View File

@@ -37,7 +37,7 @@ in {
applications = 12;
terminal = 12;
desktop = 10;
popups = 10;
popups = 14;
};
serif = {
package = pkgs.nerd-fonts.ubuntu;
@@ -60,7 +60,7 @@ in {
applications = 1.0;
terminal = 0.9;
desktop = 1.0;
popups = 0.9;
popups = 0.99;
};
targets = {

View File

@@ -45,6 +45,7 @@ in
sops = {
defaultSopsFile = ./secrets/secrets.yaml;
defaultSopsFormat = "yaml";
age.keyFile = "/home/blake/.config/sops/age/keys.txt";
#age.keyFile = "/home/blake/.config/sops/age/keys.txt";
age.keyFile = "${config.home.homeDirectory}/.config/sops/age/keys.txt";
};
}