add dunst

This commit is contained in:
2025-11-01 21:37:45 -05:00
parent 0b6e0b7577
commit 8b2dd3829a
10 changed files with 281 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -7,6 +7,7 @@
imports = [
./librewolf
./kitty
./dunst
./waybar
./hypr
./tofi

View File

@@ -9,7 +9,10 @@
#sec = sops.secrets;
in {
config = lib.mkIf cfg.enable {
programs.${program} = {
services.${program} = {
enable = true;
configFile = "/home/blake/.nix/users/blake/dots/dunst/dunstrc";
#settings = {};
};
};
}

View File

@@ -0,0 +1,275 @@
# 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

@@ -16,6 +16,7 @@
kitty.enable = true;
librewolf.enable = true;
waybar.enable = true;
dunst.enable = true;
hypr.enable = true;
tofi.enable = true;
nvf.enable = true;