feat: rebuild master from the live desktop, and add the KDE configuration

master still carried the 2021 tree. Task 6 does a checkout over $HOME, so nine
of those files would have overwritten the current configuration rather than
updated it - i3, sway, dunst, nvim, vim and tmux, all diverged by years. The
plan had no step for this; the design warned about it and then nothing
implemented the warning.

The nine are now taken from the live machine verbatim, and the 31 files with no
counterpart there are dropped. Everything remains on archive/2021-i3-sway.
README.md and .scripts/install.sh are kept despite having no live counterpart:
the first documents the repository and the second is what ls.shron.de/dotconf
serves, so deleting it would break that link.

Verified byte-identical to the live files afterwards, which is the point - a
checkout on this machine must change nothing.

KDE has been in daily use for a while with nothing backing it up. Eighteen rc
files and the nine autostart entries are added: window rules and shortcuts,
notification behaviour, the lock screen, and the panel layout in
plasma-org.kde.plasma.desktop-appletsrc. That last one is rewritten by
plasmashell whenever anything moves, so it will produce churn - kept anyway,
since a lost panel layout is the most tedious thing here to rebuild by hand.

.config/kdeconnect/ is excluded rather than added. It holds the device
certificate and its private key, and is pairing state rather than
configuration - the only place under .config that carries a secret.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
thomas.kopp
2026-08-07 15:53:50 +02:00
co-authored by Claude Opus 5
parent ce560c315d
commit d215dfefc5
68 changed files with 3574 additions and 1889 deletions
+82 -239
View File
@@ -1,257 +1,100 @@
[global]
font = Iosevka Term 14
### Monitor ###
# HDMI-A-1 (TV) = Monitor 3 (via xrandr --listmonitors)
monitor = 3
follow = none
# Allow a small subset of html markup:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
# If markup is not allowed, those tags will be stripped out of the
# message.
markup = yes
plain_text = no
### Geometry ###
width = (0, 480)
height = (0, 300)
origin = top-right
offset = (10, 10)
scale = 0
notification_limit = 0
# 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
# Markup is allowed
format = "<b>%s</b>\n%b"
### Borders & Spacing ###
padding = 14
horizontal_padding = 18
text_icon_padding = 12
frame_width = 2
frame_color = "#d79921"
gap_size = 8
separator_height = 2
separator_color = frame
corner_radius = 6
# Sort messages by urgency.
sort = no
### Progress Bar ###
progress_bar = true
progress_bar_height = 8
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 400
progress_bar_corner_radius = 4
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
### Text ###
font = monospace 13
line_height = 3
markup = full
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
# Gruvbox: farbige Überschrift + gedimmter Body
format = <span size="17000" weight="bold" foreground="#d79921">%s</span>\n<span foreground="#a89984">%b</span>
# The frequency with wich text that is longer than the notification
# window allows bounces back and forth.
# This option conflicts with "word_wrap".
# Set to 0 to disable.
bounce_freq = 0
alignment = left
vertical_alignment = center
word_wrap = yes
ellipsize = middle
ignore_newline = no
show_age_threshold = 120
relative_timestamps = true
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = -1
### Icons ###
enable_recursive_icon_lookup = true
icon_theme = "Gruvbox, Adwaita, gnome"
icon_position = left
min_icon_size = 0
max_icon_size = 48
icon_corner_radius = 4
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
### History ###
sticky_history = yes
history_length = 50
# Ignore newlines '\n' in notifications.
ignore_newline = no
### Misc ###
dmenu = /usr/bin/rofi -dmenu -p "Dunst"
browser = /usr/bin/firefox
always_run_script = true
title = Dunst
class = Dunst
force_xwayland = false
force_xinerama = false
layer = overlay
# Hide duplicate's count and stack them
stack_duplicates = yes
hide_duplicates_count = yes
### Mouse ###
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectevly.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
#geometry = "250x50-40+40"
geometry = "300x50-15+49"
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing windowmanager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0.5
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 0
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a windowmanager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern windowmanagers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = none
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 15
# Display indicators for URLs (U) and actions (A).
show_indicators = no
# The height of a single line. If the height is smaller than the
# font height, it will get raised to the font height.
# This adds empty space above and under the text.
line_height = 3
# Draw a line of "separatpr_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 6
# Horizontal padding.
horizontal_padding = 6
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Align icons left/right/off
icon_position = off
max_icon_size = 80
# Paths to default icons.
icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/
frame_width = 3
frame_color = "#EBDBB2"
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1".
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
frame_color = "#458588"
foreground = "#83A598"
background = "#282828"
#background = "#2B313C"
timeout = 4
background = "#282828"
foreground = "#a89984"
frame_color = "#504945"
format = <span size="17000" weight="bold" foreground="#928374">%s</span>\n<span foreground="#7c6f64">%b</span>
timeout = 15
default_icon = dialog-information
[urgency_normal]
frame_color = "#928374"
foreground = "#EBDBB2"
background = "#282828"
#background = "#2B313C"
timeout = 6
background = "#282828"
foreground = "#ebdbb2"
frame_color = "#d79921"
format = <span size="17000" weight="bold" foreground="#d79921">%s</span>\n<span foreground="#a89984">%b</span>
timeout = 0
default_icon = dialog-information
[urgency_critical]
frame_color = "#CC241D"
foreground = "#FB4934"
background = "#282828"
#background = "#2B313C"
timeout = 8
# 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", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# 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: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[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
#
# vim: ft=cfg
background = "#1d2021"
foreground = "#ebdbb2"
frame_color = "#cc241d"
format = <span size="17000" weight="bold" foreground="#fb4934">%s</span>\n<span foreground="#ebdbb2">%b</span>
timeout = 0
default_icon = dialog-warning