diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc
index cf547b7..c4e06fa 100755
--- a/.config/bspwm/bspwmrc
+++ b/.config/bspwm/bspwmrc
@@ -1,5 +1,14 @@
#! /bin/bash
+# Qt apps follow qt6ct, which reads ~/.config/qt6ct/colors/dc.conf
+export QT_QPA_PLATFORMTHEME=qt6ct
+
+# GTK4 ignores gtk-application-prefer-dark-theme and did not pick up the
+# portal's prefer-dark either, which left labels dark-on-dark. Forcing the
+# dark variant here covers GTK3 and GTK4 both; ~/.config/gtk-{3,4}.0/gtk.css
+# recolours it on top.
+export GTK_THEME=Adwaita:dark
+
# Start sxhkd if it's not already running
pgrep -x sxhkd >/dev/null || sxhkd -c ~/.config/bspwm/sxhkdrc &
@@ -14,7 +23,7 @@ export XDG_CURRENT_DESKTOP="bspwm"
sh -c 'function shenv() { export "$1=$2"; }; source ~/.env;'
# Workspaces Configuration
-bspc monitor DisplayPort-1 -d 1 2 3 4 5 6 7 8
+bspc monitor DisplayPort-0 -d 1 2 3 4 5 6 7 8
# Enable window focus follow mouse pointer
bspc config focus_follows_pointer true
@@ -29,7 +38,10 @@ if [[ -n $monitor && -n $resolution && -n $refresh_rate ]]; then
fi
# Set the border colors for focused and normal windows
-bspc config focused_border_color "#727d53"
+bspc config focused_border_color "#92b9ea"
+bspc config normal_border_color "#201b30"
+bspc config active_border_color "#3d3752"
+bspc config presel_feedback_color "#b483c0"
bspc config border_width 2
bspc config borderless_monocle true
@@ -65,7 +77,10 @@ bspc rule -a 'gamescope' desktop=11
bspc rule -a 'legcord' desktop=10
# Resources and Utilities
-dbus-update-activation-environment --systemd XDG_CURRENT_DESKTOP
+# DISPLAY/XAUTHORITY must reach systemd-user + D-Bus or graphical portal backends
+# (xdg-desktop-portal-gtk, used by browser file pickers) fail with "cannot open display".
+systemctl --user import-environment DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP
+dbus-update-activation-environment --systemd DISPLAY XAUTHORITY XDG_CURRENT_DESKTOP
xrdb merge $HOME/.Xresources
xsettingsd &
dunst &
@@ -74,6 +89,17 @@ sh $HOME/.config/polybar/launch.sh
sh $HOME/.config/scripts/polkitkdeauth.sh
sh $HOME/.config/scripts/set-wallpaper.sh
+# Clipboard history daemon (super + v)
+command -v greenclip >/dev/null 2>&1 && { pgrep -f 'greenclip daemon' >/dev/null || greenclip daemon & }
+
+# Particle field on the wallpaper layer (run `particles` any time to toggle)
+if command -v particles >/dev/null 2>&1; then
+ particles --start &
+elif [ -x "$HOME/.local/bin/particles" ]; then
+ "$HOME/.local/bin/particles" --start &
+fi
+
+
# Clipboard sync
if command -v clipnotify >/dev/null 2>&1 && command -v xclip >/dev/null 2>&1 && command -v cliphist >/dev/null 2>&1; then
(
diff --git a/.config/bspwm/current_wallpaper b/.config/bspwm/current_wallpaper
deleted file mode 100644
index b139ca4..0000000
--- a/.config/bspwm/current_wallpaper
+++ /dev/null
@@ -1 +0,0 @@
-/home/sarthak/.config/bspwm/wallpaper/wallpaper.jpg
diff --git a/.config/bspwm/picom.conf b/.config/bspwm/picom.conf
index ddf6268..ccec51f 100644
--- a/.config/bspwm/picom.conf
+++ b/.config/bspwm/picom.conf
@@ -46,3 +46,16 @@ shadow = false;
detect-client-opacity = true;
use-damage = true;
log-level = "warn";
+
+# --- rounded corners ---
+corner-radius = 12;
+round-borders = 1;
+rounded-corners-exclude = [
+ # the particles layer is a full-screen desktop window; clipping it would
+ # notch the corners of the field
+ "window_type = 'desktop'",
+ # polybar rounds its own background
+ "window_type = 'dock'",
+ # never round a fullscreen game
+ "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'",
+];
diff --git a/.config/bspwm/sxhkdrc b/.config/bspwm/sxhkdrc
index ca9a8b3..a469ffd 100755
--- a/.config/bspwm/sxhkdrc
+++ b/.config/bspwm/sxhkdrc
@@ -3,7 +3,7 @@ super + {Return,v,w,x,b,period}
{st, \
sh ~/.config/scripts/rofi-menus/clipboard-manager.sh, \
rofi -show drun, \
- sh ~/.config/scripts/rofi-menus/powermenu.sh, \
+ sh ~/.config/scripts/control-center.sh, \
sh ~/.config/scripts/toggle-bar.sh, \
sh ~/.config/scripts/rofi-menus/rofimoji.sh}
@@ -11,10 +11,6 @@ super + {Return,v,w,x,b,period}
super + alt + p
flameshot gui
-# DC-multivpn
-alt + shift + v
- ~/.config/scripts/dc-multivpn/dc-multivpn.sh
-
# Media control (volume)
XF86Audio{RaiseVolume,LowerVolume,Mute}
sh ~/.config/scripts/volume.sh --device output --action {increase,decrease,toggle}
diff --git a/.config/bspwm/wallpaper/wallpaper.jpg b/.config/bspwm/wallpaper/wallpaper.jpg
index 2e940f5..72bdc62 100644
Binary files a/.config/bspwm/wallpaper/wallpaper.jpg and b/.config/bspwm/wallpaper/wallpaper.jpg differ
diff --git a/.config/bspwm/wallpaper/wallpaper1.jpg b/.config/bspwm/wallpaper/wallpaper1.jpg
deleted file mode 100644
index e7c5059..0000000
Binary files a/.config/bspwm/wallpaper/wallpaper1.jpg and /dev/null differ
diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf
new file mode 100644
index 0000000..a2d85a1
--- /dev/null
+++ b/.config/btop/btop.conf
@@ -0,0 +1,286 @@
+#? Config file for btop v.1.4.7
+
+#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
+#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
+color_theme = "sakura-line"
+
+#* If the theme set background should be shown, set to False if you want terminal background transparency.
+theme_background = false
+
+#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
+truecolor = true
+
+#* Set to true to force tty mode regardless if a real tty has been detected or not.
+#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
+force_tty = false
+
+#* Option to disable presets. Either the default preset, custom presets, or all presets.
+#* "Off" All presets are enabled.
+#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
+disable_presets = "Off"
+
+#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
+#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
+#* Use whitespace " " as separator between different presets.
+#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
+presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
+
+#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
+#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
+vim_keys = false
+
+#* Disable all mouse events.
+disable_mouse = false
+
+#* Rounded corners on boxes, is ignored if TTY mode is ON.
+rounded_corners = true
+
+#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
+terminal_sync = true
+
+#* Default symbols to use for graph creation, "braille", "block" or "tty".
+#* "braille" offers the highest resolution but might not be included in all fonts.
+#* "block" has half the resolution of braille but uses more common characters.
+#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
+#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
+graph_symbol = "braille"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_cpu = "default"
+
+# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
+graph_symbol_gpu = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_mem = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_net = "default"
+
+# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
+graph_symbol_proc = "default"
+
+#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
+shown_boxes = "cpu mem net proc"
+
+#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
+update_ms = 1000
+
+#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
+#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
+proc_sorting = "cpu lazy"
+
+#* Reverse sorting order, True or False.
+proc_reversed = false
+
+#* Show processes as a tree.
+proc_tree = false
+
+#* Use the cpu graph colors in the process list.
+proc_colors = true
+
+#* Use a darkening gradient in the process list.
+proc_gradient = true
+
+#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
+proc_per_core = false
+
+#* Show process memory as bytes instead of percent.
+proc_mem_bytes = true
+
+#* Show cpu graph for each process.
+proc_cpu_graphs = true
+
+#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
+proc_info_smaps = false
+
+#* Show proc box on left side of screen instead of right.
+proc_left = false
+
+#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
+proc_filter_kernel = false
+
+#* Should the process list follow the selected process when detailed view is open.
+proc_follow_detailed = true
+
+#* In tree-view, always accumulate child process resources in the parent process.
+proc_aggregate = false
+
+#* Should cpu and memory usage display be preserved for dead processes when paused.
+keep_dead_proc_usage = false
+
+#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_upper = "total"
+
+#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
+#* Select from a list of detected attributes from the options menu.
+cpu_graph_lower = "Auto"
+
+#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
+show_gpu_info = "Auto"
+
+#* Toggles if the lower CPU graph should be inverted.
+cpu_invert_lower = true
+
+#* Set to True to completely disable the lower CPU graph.
+cpu_single_graph = false
+
+#* Show cpu box at bottom of screen instead of top.
+cpu_bottom = false
+
+#* Shows the system uptime in the CPU box.
+show_uptime = true
+
+#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
+show_cpu_watts = true
+
+#* Show cpu temperature.
+check_temp = true
+
+#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
+cpu_sensor = "Auto"
+
+#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
+show_coretemp = true
+
+#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
+#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
+#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
+#* Example: "4:0 5:1 6:3"
+cpu_core_map = ""
+
+#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
+temp_scale = "celsius"
+
+#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
+base_10_sizes = false
+
+#* Show CPU frequency.
+show_cpu_freq = true
+
+#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average".
+freq_mode = "first"
+
+#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
+#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
+clock_format = "%H:%M"
+
+#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
+background_update = true
+
+#* Custom cpu model name, empty string to disable.
+custom_cpu_name = ""
+
+#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
+#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
+disks_filter = ""
+
+#* Show graphs instead of meters for memory values.
+mem_graphs = true
+
+#* Show mem box below net box instead of above.
+mem_below_net = false
+
+#* Count ZFS ARC in cached and available memory.
+zfs_arc_cached = true
+
+#* If swap memory should be shown in memory box.
+show_swap = true
+
+#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
+swap_disk = true
+
+#* If mem box should be split to also show disks info.
+show_disks = true
+
+#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
+only_physical = true
+
+#* Read disks list from /etc/fstab. This also disables only_physical.
+use_fstab = true
+
+#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
+zfs_hide_datasets = false
+
+#* Set to true to show available disk space for privileged users.
+disk_free_priv = false
+
+#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
+show_io_stat = true
+
+#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
+io_mode = false
+
+#* Set to True to show combined read/write io graphs in io mode.
+io_graph_combined = false
+
+#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
+#* Example: "/mnt/media:100 /:20 /boot:1".
+io_graph_speeds = ""
+
+#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
+swap_upload_download = false
+
+#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
+net_download = 100
+
+net_upload = 100
+
+#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
+net_auto = true
+
+#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
+net_sync = true
+
+#* Starts with the Network Interface specified here.
+net_iface = ""
+
+#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
+base_10_bitrate = "Auto"
+
+#* Show battery stats in top right if battery is present.
+show_battery = true
+
+#* Which battery to use if multiple are present. "Auto" for auto detection.
+selected_battery = "Auto"
+
+#* Show power stats of battery next to charge indicator.
+show_battery_watts = true
+
+#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
+#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
+log_level = "WARNING"
+
+#* Automatically save current settings to config file on exit.
+save_config_on_exit = true
+
+#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
+nvml_measure_pcie_speeds = true
+
+#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
+rsmi_measure_pcie_speeds = true
+
+#* Horizontally mirror the GPU graph.
+gpu_mirror_graph = true
+
+#* Set which GPU vendors to show. Available values are "nvidia amd intel apple"
+shown_gpus = "nvidia amd intel apple"
+
+#* Custom gpu0 model name, empty string to disable.
+custom_gpu_name0 = ""
+
+#* Custom gpu1 model name, empty string to disable.
+custom_gpu_name1 = ""
+
+#* Custom gpu2 model name, empty string to disable.
+custom_gpu_name2 = ""
+
+#* Custom gpu3 model name, empty string to disable.
+custom_gpu_name3 = ""
+
+#* Custom gpu4 model name, empty string to disable.
+custom_gpu_name4 = ""
+
+#* Custom gpu5 model name, empty string to disable.
+custom_gpu_name5 = ""
diff --git a/.config/btop/themes/sakura-line.theme b/.config/btop/themes/sakura-line.theme
new file mode 100644
index 0000000..3e4c89b
--- /dev/null
+++ b/.config/btop/themes/sakura-line.theme
@@ -0,0 +1,53 @@
+# btop - Sakura Line, sampled from bspwm/wallpaper/wallpaper.jpg
+theme[main_bg]=""
+theme[main_fg]="#e9eefb"
+theme[title]="#e9eefb"
+theme[hi_fg]="#92b9ea"
+theme[selected_bg]="#2e2842"
+theme[selected_fg]="#92b9ea"
+theme[inactive_fg]="#7f7796"
+theme[graph_text]="#c9d1e2"
+theme[meter_bg]="#201b30"
+theme[proc_misc]="#8ab6c4"
+
+theme[cpu_box]="#3d3752"
+theme[mem_box]="#3d3752"
+theme[net_box]="#3d3752"
+theme[proc_box]="#3d3752"
+theme[div_line]="#3d3752"
+
+theme[temp_start]="#8fae74"
+theme[temp_mid]="#d8a87c"
+theme[temp_end]="#cf6a80"
+
+theme[cpu_start]="#7c9ede"
+theme[cpu_mid]="#92b9ea"
+theme[cpu_end]="#d0a4d8"
+
+theme[free_start]="#4a5a6e"
+theme[free_mid]="#7fa3ad"
+theme[free_end]="#a3c0cb"
+
+theme[cached_start]="#6f8fc4"
+theme[cached_mid]="#92b9ea"
+theme[cached_end]="#aecdf5"
+
+theme[available_start]="#8a6a52"
+theme[available_mid]="#d8a87c"
+theme[available_end]="#e9c79b"
+
+theme[used_start]="#7a4256"
+theme[used_mid]="#cf6a80"
+theme[used_end]="#e0798f"
+
+theme[download_start]="#5f6f9e"
+theme[download_mid]="#7c9ede"
+theme[download_end]="#92b9ea"
+
+theme[upload_start]="#7a4a7e"
+theme[upload_mid]="#b483c0"
+theme[upload_end]="#d0a4d8"
+
+theme[process_start]="#8fae74"
+theme[process_mid]="#a8c68d"
+theme[process_end]="#e9c79b"
diff --git a/.config/cava/config b/.config/cava/config
new file mode 100644
index 0000000..07345a6
--- /dev/null
+++ b/.config/cava/config
@@ -0,0 +1,32 @@
+# cava - Sakura Line
+# background = default keeps the terminal's transparency showing through.
+
+[general]
+framerate = 60
+autosens = 1
+overshoot = 20
+bar_width = 2
+bar_spacing = 1
+
+[input]
+method = pulse
+source = auto
+
+[output]
+method = ncurses
+channels = stereo
+mono_option = average
+
+[smoothing]
+noise_reduction = 45
+
+[color]
+background = default
+gradient = 1
+gradient_count = 6
+gradient_color_1 = '#7c9ede'
+gradient_color_2 = '#92b9ea'
+gradient_color_3 = '#a3c0cb'
+gradient_color_4 = '#d0a4d8'
+gradient_color_5 = '#e0798f'
+gradient_color_6 = '#e9c79b'
diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc
index 445049e..583fe51 100755
--- a/.config/dunst/dunstrc
+++ b/.config/dunst/dunstrc
@@ -1,63 +1,111 @@
+# Sakura Line - dunst
+# Palette sampled from ~/.config/bspwm/wallpaper/wallpaper.jpg
+
[global]
-monitor = 0
-follow = mouse
-shrink = no
-padding = 12
-horizontal_padding = 12
+ monitor = 0
+ follow = mouse
-width = 350
-height = (0, 150)
-offset = 12x45
-origin = top-right
+ # sits just under the polybar (bar is 28px tall at a 0.5% y-offset)
+ origin = top-right
+ offset = 14x46
+ width = (300, 420)
+ height = (0, 320)
+ notification_limit = 6
+ gap_size = 8
-frame_width = 2
-separator_height = 1
-frame_color = "#8b9151"
-separator_color = frame
+ progress_bar = true
+ progress_bar_height = 8
+ progress_bar_frame_width = 0
+ progress_bar_min_width = 160
+ progress_bar_max_width = 400
+ progress_bar_corner_radius = 4
-sort = no
-font = JetBrainsMono Nerd Font 10
-markup = full
-format = "[%a]\n%s\n%b"
-alignment = left
-show_age_threshold = 60
-word_wrap = yes
-ignore_newline = no
-stack_duplicates = true
-hide_duplicate_count = no
-show_indicators = yes
+ indicate_hidden = yes
+ padding = 14
+ horizontal_padding = 16
+ text_icon_padding = 14
+ frame_width = 2
+ corner_radius = 14
+ separator_height = 8
+ separator_color = auto
-icon_position = off
-max_icon_size = 0
-sticky_history = no
-history_length = 6
-title = Dunst
-class = Dunst
-corner_radius = 0
+ sort = urgency_descending
+ idle_threshold = 120
-mouse_left_click = close_current
-mouse_middle_click = do_action
-mouse_right_click = close_all
+ font = JetBrainsMono Nerd Font 10
+ line_height = 4
+ markup = full
+ format = "%s\n%b"
+ alignment = left
+ vertical_alignment = center
+ show_age_threshold = 60
+ ellipsize = middle
+ word_wrap = yes
+ ignore_newline = no
+ stack_duplicates = true
+ hide_duplicate_count = false
+ show_indicators = no
-[ignore_flameshot_warning]
-body = "grim's screenshot component is implemented based on wlroots, it may not be used in GNOME or similar desktop environments"
-format = ""
+ # icons: app icons resolve through the icon theme, and images sent with
+ # the notification (album art, screenshots) are shown as-is
+ enable_recursive_icon_lookup = true
+ icon_theme = "Papirus-Dark, Adwaita, hicolor"
+ icon_position = left
+ min_icon_size = 32
+ max_icon_size = 64
+
+ sticky_history = yes
+ history_length = 30
+
+ title = Dunst
+ class = Dunst
+
+ mouse_left_click = do_action, close_current
+ mouse_middle_click = close_all
+ mouse_right_click = close_current
[urgency_low]
-background = "#141414"
-foreground = "#8b9151"
-frame_color = "#8b9151"
-timeout = 5
+ background = "#0f0d17e6"
+ foreground = "#a9a2bd"
+ frame_color = "#2e2842"
+ highlight = "#7f7796"
+ timeout = 4
[urgency_normal]
-default_icon = dialog-information
-background = "#141414"
-foreground = "#feffd3"
-frame_color = "#8b9151"
-timeout = 5
+ background = "#0f0d17e6"
+ foreground = "#e9eefb"
+ frame_color = "#3d3752"
+ highlight = "#92b9ea"
+ default_icon = dialog-information
+ timeout = 6
[urgency_critical]
-background = "#141414"
-foreground = "#dd7c4c"
-frame_color = "#dd7c4c"
-timeout = 0
+ background = "#1a0f18e6"
+ foreground = "#ffe9ee"
+ frame_color = "#cf6a80"
+ highlight = "#cf6a80"
+ default_icon = dialog-error
+ timeout = 0
+
+# Don't cover a fullscreen game; critical still gets through.
+[fullscreen_delay]
+ fullscreen = delay
+
+[fullscreen_critical]
+ msg_urgency = critical
+ fullscreen = show
+
+# Transient OSDs (volume, brightness) replace each other and need no icon frame
+[osd]
+ appname = "osd"
+ format = "%s"
+ icon_position = off
+ frame_color = "#92b9ea"
+ highlight = "#92b9ea"
+ timeout = 2
+ history_ignore = yes
+
+[flameshot_noise]
+ body = "grim's screenshot component is implemented based on wlroots, it may not be used in GNOME or similar desktop environments"
+ skip_display = true
+ history_ignore = yes
diff --git a/.config/gtk-3.0/bookmarks b/.config/gtk-3.0/bookmarks
deleted file mode 100755
index 4a00da9..0000000
--- a/.config/gtk-3.0/bookmarks
+++ /dev/null
@@ -1,10 +0,0 @@
-file:///drives drives
-file:///home/carrie/Documents Documents
-file:///home/carrie/Music Music
-file:///drives/rei/Library Library
-file:///home/carrie/Downloads Downloads
-file:///home/carrie/Pictures Pictures
-file:///home/carrie/iphone iphone
-file:///home/carrie/Videos Videos
-file:///run/media/carrie/disk/vnds/novels novels
-file:///drives/rei/Library/Toby%20Fox/DELTARUNE%20Chapter%203+4%20OST DELTARUNE Chapter 3+4 OST
diff --git a/.config/gtk-3.0/gtk.css b/.config/gtk-3.0/gtk.css
new file mode 100644
index 0000000..6f163a7
--- /dev/null
+++ b/.config/gtk-3.0/gtk.css
@@ -0,0 +1,144 @@
+/* Sakura Line - sampled from bspwm/wallpaper/wallpaper.jpg */
+
+@define-color sakura_bg #16121f;
+@define-color sakura_base #100d18;
+@define-color sakura_surface #221c33;
+@define-color sakura_overlay #2a2440;
+@define-color sakura_sel #2e2842;
+@define-color sakura_fg #e9eefb;
+@define-color sakura_dim #7f7796;
+@define-color sakura_border #3d3752;
+@define-color sakura_accent #92b9ea;
+@define-color sakura_red #cf6a80;
+@define-color sakura_green #8fae74;
+@define-color sakura_yellow #d8a87c;
+
+/* GTK3 / Adwaita named colours */
+@define-color theme_bg_color @sakura_bg;
+@define-color theme_fg_color @sakura_fg;
+@define-color theme_base_color @sakura_base;
+@define-color theme_text_color @sakura_fg;
+@define-color theme_selected_bg_color @sakura_accent;
+@define-color theme_selected_fg_color #0f0d17;
+@define-color theme_unfocused_bg_color @sakura_bg;
+@define-color theme_unfocused_fg_color @sakura_fg;
+@define-color theme_unfocused_base_color @sakura_base;
+@define-color theme_unfocused_text_color @sakura_fg;
+@define-color theme_unfocused_selected_bg_color @sakura_sel;
+@define-color theme_unfocused_selected_fg_color @sakura_fg;
+@define-color insensitive_bg_color @sakura_bg;
+@define-color insensitive_fg_color @sakura_dim;
+@define-color insensitive_base_color @sakura_base;
+@define-color borders @sakura_border;
+@define-color unfocused_borders @sakura_border;
+@define-color wm_bg @sakura_surface;
+@define-color wm_border @sakura_border;
+@define-color wm_title @sakura_fg;
+@define-color wm_unfocused_title @sakura_dim;
+@define-color success_color @sakura_green;
+@define-color warning_color @sakura_yellow;
+@define-color error_color @sakura_red;
+@define-color link_color @sakura_accent;
+@define-color visited_link_color #b483c0;
+@define-color content_view_bg @sakura_base;
+
+/* libadwaita / GTK4 named colours */
+@define-color window_bg_color @sakura_bg;
+@define-color window_fg_color @sakura_fg;
+@define-color view_bg_color @sakura_base;
+@define-color view_fg_color @sakura_fg;
+@define-color headerbar_bg_color @sakura_surface;
+@define-color headerbar_fg_color @sakura_fg;
+@define-color headerbar_border_color @sakura_border;
+@define-color headerbar_backdrop_color @sakura_bg;
+@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
+@define-color sidebar_bg_color @sakura_surface;
+@define-color sidebar_fg_color @sakura_fg;
+@define-color sidebar_backdrop_color @sakura_bg;
+@define-color sidebar_border_color @sakura_border;
+@define-color sidebar_shade_color rgba(0, 0, 0, 0.36);
+@define-color secondary_sidebar_bg_color @sakura_bg;
+@define-color secondary_sidebar_fg_color @sakura_fg;
+@define-color card_bg_color @sakura_surface;
+@define-color card_fg_color @sakura_fg;
+@define-color card_shade_color rgba(0, 0, 0, 0.36);
+@define-color dialog_bg_color @sakura_surface;
+@define-color dialog_fg_color @sakura_fg;
+@define-color popover_bg_color @sakura_overlay;
+@define-color popover_fg_color @sakura_fg;
+@define-color popover_shade_color rgba(0, 0, 0, 0.36);
+@define-color thumbnail_bg_color @sakura_surface;
+@define-color thumbnail_fg_color @sakura_fg;
+@define-color shade_color rgba(0, 0, 0, 0.36);
+@define-color scrollbar_outline_color @sakura_border;
+@define-color accent_bg_color @sakura_accent;
+@define-color accent_fg_color #0f0d17;
+@define-color accent_color @sakura_accent;
+@define-color destructive_bg_color @sakura_red;
+@define-color destructive_fg_color #0f0d17;
+@define-color destructive_color @sakura_red;
+@define-color success_bg_color @sakura_green;
+@define-color success_fg_color #0f0d17;
+@define-color warning_bg_color @sakura_yellow;
+@define-color warning_fg_color #0f0d17;
+@define-color error_bg_color @sakura_red;
+@define-color error_fg_color #0f0d17;
+
+/* Adwaita hardcodes a fair amount, so pin the big surfaces directly. */
+window, .background, dialog, popover, popover.background,
+headerbar, .titlebar, .sidebar, placessidebar, notebook > header {
+ background-color: @sakura_bg;
+ color: @sakura_fg;
+}
+headerbar, .titlebar, .sidebar, placessidebar,
+.sidebar-pane, notebook > header, toolbar, actionbar > revealer > box {
+ background-color: @sakura_surface;
+ border-color: @sakura_border;
+}
+popover > contents, popover > arrow, menu, .menu, .context-menu {
+ background-color: @sakura_overlay;
+ color: @sakura_fg;
+}
+treeview.view, textview, textview text, iconview, .view, list, list row, columnview {
+ background-color: @sakura_base;
+ color: @sakura_fg;
+}
+treeview.view:selected, .view:selected, list row:selected,
+menuitem:hover, .menu menuitem:hover, row:selected {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+entry, spinbutton, searchbar entry, .entry {
+ background-color: @sakura_base;
+ color: @sakura_fg;
+ border-color: @sakura_border;
+}
+entry:focus, .entry:focus { border-color: @sakura_accent; }
+button {
+ background-image: none;
+ background-color: @sakura_surface;
+ color: @sakura_fg;
+ border-color: @sakura_border;
+}
+button:hover { background-color: @sakura_overlay; }
+button:active, button:checked {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+scrollbar, scrollbar slider { background-color: transparent; }
+scrollbar slider { background-color: @sakura_border; }
+scrollbar slider:hover { background-color: @sakura_dim; }
+tooltip, tooltip.background {
+ background-color: @sakura_overlay;
+ color: @sakura_fg;
+}
+progressbar progress, levelbar block.filled { background-color: @sakura_accent; }
+switch:checked, check:checked, radio:checked {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+selection, ::selection {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+separator { background-color: @sakura_border; }
diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini
index 9c20ed5..426ad57 100755
--- a/.config/gtk-3.0/settings.ini
+++ b/.config/gtk-3.0/settings.ini
@@ -1,6 +1,6 @@
[Settings]
gtk-theme-name=Adwaita
-gtk-icon-theme-name=Gruvbox-Plus-Dark
+gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Noto Sans Light 10
gtk-cursor-theme-name=Bibata-Modern-Classic
gtk-cursor-theme-size=20
diff --git a/.config/gtk-4.0/gtk.css b/.config/gtk-4.0/gtk.css
new file mode 100644
index 0000000..6f163a7
--- /dev/null
+++ b/.config/gtk-4.0/gtk.css
@@ -0,0 +1,144 @@
+/* Sakura Line - sampled from bspwm/wallpaper/wallpaper.jpg */
+
+@define-color sakura_bg #16121f;
+@define-color sakura_base #100d18;
+@define-color sakura_surface #221c33;
+@define-color sakura_overlay #2a2440;
+@define-color sakura_sel #2e2842;
+@define-color sakura_fg #e9eefb;
+@define-color sakura_dim #7f7796;
+@define-color sakura_border #3d3752;
+@define-color sakura_accent #92b9ea;
+@define-color sakura_red #cf6a80;
+@define-color sakura_green #8fae74;
+@define-color sakura_yellow #d8a87c;
+
+/* GTK3 / Adwaita named colours */
+@define-color theme_bg_color @sakura_bg;
+@define-color theme_fg_color @sakura_fg;
+@define-color theme_base_color @sakura_base;
+@define-color theme_text_color @sakura_fg;
+@define-color theme_selected_bg_color @sakura_accent;
+@define-color theme_selected_fg_color #0f0d17;
+@define-color theme_unfocused_bg_color @sakura_bg;
+@define-color theme_unfocused_fg_color @sakura_fg;
+@define-color theme_unfocused_base_color @sakura_base;
+@define-color theme_unfocused_text_color @sakura_fg;
+@define-color theme_unfocused_selected_bg_color @sakura_sel;
+@define-color theme_unfocused_selected_fg_color @sakura_fg;
+@define-color insensitive_bg_color @sakura_bg;
+@define-color insensitive_fg_color @sakura_dim;
+@define-color insensitive_base_color @sakura_base;
+@define-color borders @sakura_border;
+@define-color unfocused_borders @sakura_border;
+@define-color wm_bg @sakura_surface;
+@define-color wm_border @sakura_border;
+@define-color wm_title @sakura_fg;
+@define-color wm_unfocused_title @sakura_dim;
+@define-color success_color @sakura_green;
+@define-color warning_color @sakura_yellow;
+@define-color error_color @sakura_red;
+@define-color link_color @sakura_accent;
+@define-color visited_link_color #b483c0;
+@define-color content_view_bg @sakura_base;
+
+/* libadwaita / GTK4 named colours */
+@define-color window_bg_color @sakura_bg;
+@define-color window_fg_color @sakura_fg;
+@define-color view_bg_color @sakura_base;
+@define-color view_fg_color @sakura_fg;
+@define-color headerbar_bg_color @sakura_surface;
+@define-color headerbar_fg_color @sakura_fg;
+@define-color headerbar_border_color @sakura_border;
+@define-color headerbar_backdrop_color @sakura_bg;
+@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
+@define-color sidebar_bg_color @sakura_surface;
+@define-color sidebar_fg_color @sakura_fg;
+@define-color sidebar_backdrop_color @sakura_bg;
+@define-color sidebar_border_color @sakura_border;
+@define-color sidebar_shade_color rgba(0, 0, 0, 0.36);
+@define-color secondary_sidebar_bg_color @sakura_bg;
+@define-color secondary_sidebar_fg_color @sakura_fg;
+@define-color card_bg_color @sakura_surface;
+@define-color card_fg_color @sakura_fg;
+@define-color card_shade_color rgba(0, 0, 0, 0.36);
+@define-color dialog_bg_color @sakura_surface;
+@define-color dialog_fg_color @sakura_fg;
+@define-color popover_bg_color @sakura_overlay;
+@define-color popover_fg_color @sakura_fg;
+@define-color popover_shade_color rgba(0, 0, 0, 0.36);
+@define-color thumbnail_bg_color @sakura_surface;
+@define-color thumbnail_fg_color @sakura_fg;
+@define-color shade_color rgba(0, 0, 0, 0.36);
+@define-color scrollbar_outline_color @sakura_border;
+@define-color accent_bg_color @sakura_accent;
+@define-color accent_fg_color #0f0d17;
+@define-color accent_color @sakura_accent;
+@define-color destructive_bg_color @sakura_red;
+@define-color destructive_fg_color #0f0d17;
+@define-color destructive_color @sakura_red;
+@define-color success_bg_color @sakura_green;
+@define-color success_fg_color #0f0d17;
+@define-color warning_bg_color @sakura_yellow;
+@define-color warning_fg_color #0f0d17;
+@define-color error_bg_color @sakura_red;
+@define-color error_fg_color #0f0d17;
+
+/* Adwaita hardcodes a fair amount, so pin the big surfaces directly. */
+window, .background, dialog, popover, popover.background,
+headerbar, .titlebar, .sidebar, placessidebar, notebook > header {
+ background-color: @sakura_bg;
+ color: @sakura_fg;
+}
+headerbar, .titlebar, .sidebar, placessidebar,
+.sidebar-pane, notebook > header, toolbar, actionbar > revealer > box {
+ background-color: @sakura_surface;
+ border-color: @sakura_border;
+}
+popover > contents, popover > arrow, menu, .menu, .context-menu {
+ background-color: @sakura_overlay;
+ color: @sakura_fg;
+}
+treeview.view, textview, textview text, iconview, .view, list, list row, columnview {
+ background-color: @sakura_base;
+ color: @sakura_fg;
+}
+treeview.view:selected, .view:selected, list row:selected,
+menuitem:hover, .menu menuitem:hover, row:selected {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+entry, spinbutton, searchbar entry, .entry {
+ background-color: @sakura_base;
+ color: @sakura_fg;
+ border-color: @sakura_border;
+}
+entry:focus, .entry:focus { border-color: @sakura_accent; }
+button {
+ background-image: none;
+ background-color: @sakura_surface;
+ color: @sakura_fg;
+ border-color: @sakura_border;
+}
+button:hover { background-color: @sakura_overlay; }
+button:active, button:checked {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+scrollbar, scrollbar slider { background-color: transparent; }
+scrollbar slider { background-color: @sakura_border; }
+scrollbar slider:hover { background-color: @sakura_dim; }
+tooltip, tooltip.background {
+ background-color: @sakura_overlay;
+ color: @sakura_fg;
+}
+progressbar progress, levelbar block.filled { background-color: @sakura_accent; }
+switch:checked, check:checked, radio:checked {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+selection, ::selection {
+ background-color: @sakura_accent;
+ color: #0f0d17;
+}
+separator { background-color: @sakura_border; }
diff --git a/.config/gtk-4.0/settings.ini b/.config/gtk-4.0/settings.ini
index 60fae30..1726b78 100755
--- a/.config/gtk-4.0/settings.ini
+++ b/.config/gtk-4.0/settings.ini
@@ -1,5 +1,5 @@
-gtk-theme-name=dc
-gtk-icon-theme-name=Gruvbox-Plus-Dark
+gtk-theme-name=Adwaita
+gtk-icon-theme-name=Papirus-Dark
gtk-font-name=JetBrainsMono Nerd Font 12
gtk-cursor-theme-name=Bibata-Modern-Classic
gtk-cursor-theme-size=20
diff --git a/.config/nvim/colors/dc.lua b/.config/nvim/colors/dc.lua
index b45b677..3f85855 100644
--- a/.config/nvim/colors/dc.lua
+++ b/.config/nvim/colors/dc.lua
@@ -1,32 +1,32 @@
local colors = {
- bg = "#141414",
- fg = "#feffd3",
- cursor = "#ffffff",
- selection_bg = "#303030",
- selection_fg = "#141414",
+ bg = "#0f0d17",
+ fg = "#e9eefb",
+ cursor = "#92b9ea",
+ selection_bg = "#2e2842",
+ selection_fg = "#0f0d17",
- black = "#141414",
- black_bright = "#262626",
+ black = "#0f0d17",
+ black_bright = "#201b30",
- red = "#c06c43",
- red_bright = "#dd7c4c",
+ red = "#cf6a80",
+ red_bright = "#e0798f",
- green = "#afb979",
- green_bright = "#cbd88c",
+ green = "#8fae74",
+ green_bright = "#a8c68d",
- yellow = "#c2a86c",
- yellow_bright = "#e1c47d",
+ yellow = "#d8a87c",
+ yellow_bright = "#e9c79b",
- blue = "#444649",
- blue_bright = "#5a5d61",
+ blue = "#454063",
+ blue_bright = "#6b6486",
- magenta = "#b4be7b",
- magenta_bright = "#d0db8e",
+ magenta = "#b483c0",
+ magenta_bright = "#d0a4d8",
- cyan = "#778284",
- cyan_bright = "#8a989a",
+ cyan = "#8ab6c4",
+ cyan_bright = "#a3c0cb",
- white = "#feffd3",
+ white = "#e9eefb",
}
vim.cmd("highlight clear")
diff --git a/.config/nvim/lua/config/highlights.lua b/.config/nvim/lua/config/highlights.lua
index 81b6088..af4f771 100644
--- a/.config/nvim/lua/config/highlights.lua
+++ b/.config/nvim/lua/config/highlights.lua
@@ -1,8 +1,8 @@
-- Force LazyVim UI elements to use Carrie's green 🐾🌿
-local green = "#afb979"
-local green_bright = "#cbd88c"
-local bg = "#141414"
+local green = "#8fae74"
+local green_bright = "#a8c68d"
+local bg = "#0f0d17"
local function hi(group, opts)
vim.api.nvim_set_hl(0, group, opts)
@@ -29,7 +29,7 @@ hi("CmpNormal", { bg = bg })
-- ✅ Telescope menus (if you use it)
hi("TelescopeBorder", { fg = green })
hi("TelescopePromptBorder", { fg = green })
-hi("TelescopeSelection", { bg = "#303030" })
+hi("TelescopeSelection", { bg = "#2e2842" })
hi("TelescopePromptPrefix", { fg = green_bright })
-- ✅ Floating menus in general
diff --git a/.config/particles.conf b/.config/particles.conf
new file mode 100644
index 0000000..bc7c218
--- /dev/null
+++ b/.config/particles.conf
@@ -0,0 +1,28 @@
+# particles - wallpaper layer
+# Tuned for bspwm/wallpaper/wallpaper.jpg: a bright, busy image, so the field
+# is white and fairly opaque. Preview any change without touching the desktop:
+# particles --snapshot /tmp/p.png --snapshot-bg ~/.config/bspwm/wallpaper/wallpaper.png
+# Reload a running instance after editing: pkill -HUP particles
+
+density = 55
+radius = 2.4
+glow = 4.0
+opacity = 1.0
+color = ffffff
+
+link-distance = 140
+link-width = 1.6
+link-opacity = 0.85
+link-color = ffffff
+
+speed = 24
+edges = bounce
+
+cursor = grab,repel
+cursor-distance = 180
+cursor-strength = 1.0
+cursor-response = 9
+
+fps = 60
+keep-below = true
+pause-when-covered = true
diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini
index 0e56a97..2856bc4 100755
--- a/.config/polybar/config.ini
+++ b/.config/polybar/config.ini
@@ -1,31 +1,34 @@
[colors]
-bg = #141414
-border = #444649
-text = #feffd3
-dim = #778284
-accent = #afb979
-red = #c06c43
-green = #afb979
-yellow = #c2a86c
-blue = #444649
-magenta = #b4be7b
-cyan = #778284
+bg = #0f0d17
+; true ARGB (AARRGGBB): 75% background, text stays fully opaque
+bg-trans = #bf0f0d17
+border = #3d3752
+text = #e9eefb
+dim = #7f7796
+accent = #92b9ea
+red = #cf6a80
+green = #8fae74
+yellow = #d8a87c
+blue = #7c9ede
+magenta = #b483c0
+cyan = #8ab6c4
[bar/top]
wm-restack = bspwm
monitor = ${env:MONITOR:}
width = 99%
height = 28
+radius = 10
bottom = false
offset-x = 0.5%
offset-y = 0.5%
fixed-center = true
-background = ${colors.bg}
+background = ${colors.bg-trans}
foreground = ${colors.text}
border-size = 2
-border-color = ${colors.border}
+border-color = #993d3752
padding = 1
module-margin = 0
@@ -33,7 +36,7 @@ module-margin = 0
modules-left = bspwm
# modules-center = media-window-toggle
modules-center = xwindow
-modules-right = cpu sep ram sep gpu sep volume sep time
+modules-right = cpu sep ram sep gpu sep volume sep time sep control
font-0 = JetBrainsMono Nerd Font:style=Bold:pixelsize=10;2
font-1 = JetBrainsMono Nerd Font:style=Bold:pixelsize=12;2
@@ -98,43 +101,43 @@ interval = 1
format =