From b7f67c62234748e6575c9714e5eff5e5dadd9f3f Mon Sep 17 00:00:00 2001
From: Daniel Lundin <dln@arity.se>
Date: Fri, 2 May 2025 11:54:52 +0200
Subject: [PATCH] neovim: float colors

---
 flake.lock                                  | 52 ++++++++++-----------
 home/common/nvim/dieter/lua/dieter/init.lua | 30 ++++++------
 home/common/nvim/init.lua                   |  6 ++-
 3 files changed, 47 insertions(+), 41 deletions(-)

diff --git a/flake.lock b/flake.lock
index 7674623..d48527d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -148,11 +148,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745810134,
-        "narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=",
+        "lastModified": 1746169624,
+        "narHash": "sha256-oIAZDng5FYQXnmGJrK4WZX2tsQ1nmxHd9OrcySm/Jf4=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "be7cf1709b469a2a2c62169172a167d1fed3509f",
+        "rev": "1298a3418be1a875e9ae6643770b0939814cd441",
         "type": "github"
       },
       "original": {
@@ -172,11 +172,11 @@
         "treefmt-nix": "treefmt-nix"
       },
       "locked": {
-        "lastModified": 1745798752,
-        "narHash": "sha256-0jiImtQNvlDqf0eWqWFGugNjhazNmaXMi2fM7/B/cd8=",
+        "lastModified": 1746168726,
+        "narHash": "sha256-ZkgW3U37lTwzqUo2rfko+utld5ChnYWDunJ2hAcJOQo=",
         "owner": "nix-community",
         "repo": "neovim-nightly-overlay",
-        "rev": "31a7206bdf9e0c01db2165e20a6082690c60b9c9",
+        "rev": "d4e6959d82e9e9dc609dcbf7a29fd293fad9c912",
         "type": "github"
       },
       "original": {
@@ -188,11 +188,11 @@
     "neovim-src": {
       "flake": false,
       "locked": {
-        "lastModified": 1745795730,
-        "narHash": "sha256-7sPk1jScMqsTwXYYFKYILrE9xLk7CK+yCBqcK46HTv8=",
+        "lastModified": 1746141998,
+        "narHash": "sha256-CYxer9cRvlMySr76epuh5Ub3ryyDV94yVwDC1M/MPvw=",
         "owner": "neovim",
         "repo": "neovim",
-        "rev": "ce097c5091eab3550e1534fd111752577b5813ea",
+        "rev": "ce8b755a86c10496a81675c49b3bc9a42c79d80f",
         "type": "github"
       },
       "original": {
@@ -208,11 +208,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745725746,
+        "lastModified": 1746054057,
         "narHash": "sha256-iR+idGZJ191cY6NBXyVjh9QH8GVWTkvZw/w+1Igy45A=",
         "owner": "nix-community",
         "repo": "nix-index-database",
-        "rev": "187524713d0d9b2d2c6f688b81835114d4c2a7c6",
+        "rev": "13ba07d54c6ccc5af30a501df669bf3fe3dd4db8",
         "type": "github"
       },
       "original": {
@@ -223,11 +223,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1745377448,
-        "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
+        "lastModified": 1746061036,
+        "narHash": "sha256-OxYwCGJf9VJ2KnUO+w/hVJVTjOgscdDg/lPv8Eus07Y=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
+        "rev": "3afd19146cac33ed242fc0fc87481c67c758a59e",
         "type": "github"
       },
       "original": {
@@ -239,11 +239,11 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1745742390,
-        "narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=",
+        "lastModified": 1746055187,
+        "narHash": "sha256-3dqArYSMP9hM7Qpy5YWhnSjiqniSaT2uc5h2Po7tmg0=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "26245db0cb552047418cfcef9a25da91b222d6c7",
+        "rev": "3e362ce63e16b9572d8c2297c04f7c19ab6725a5",
         "type": "github"
       },
       "original": {
@@ -255,11 +255,11 @@
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1745377448,
-        "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
+        "lastModified": 1746123514,
+        "narHash": "sha256-UNO+MbVHLl4AkVWYqekk72/gqFNSLYNkBgto7h+7P3U=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
+        "rev": "b5dd9efc912ecabeafa4f082d31e19cb1c74266c",
         "type": "github"
       },
       "original": {
@@ -271,11 +271,11 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1745526057,
-        "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
+        "lastModified": 1746141548,
+        "narHash": "sha256-IgBWhX7A2oJmZFIrpRuMnw5RAufVnfvOgHWgIdds+hc=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
+        "rev": "f02fddb8acef29a8b32f10a335d44828d7825b78",
         "type": "github"
       },
       "original": {
@@ -303,11 +303,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1745780832,
-        "narHash": "sha256-jGzkZoJWx+nJnPe0Z2xQBUOqMKuR1slVFQrMjFTKgeM=",
+        "lastModified": 1745929750,
+        "narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
         "owner": "numtide",
         "repo": "treefmt-nix",
-        "rev": "b2b6c027d708fbf4b01c9c11f6e80f2800b5a624",
+        "rev": "82bf32e541b30080d94e46af13d46da0708609ea",
         "type": "github"
       },
       "original": {
diff --git a/home/common/nvim/dieter/lua/dieter/init.lua b/home/common/nvim/dieter/lua/dieter/init.lua
index 0f69917..6c5eebb 100644
--- a/home/common/nvim/dieter/lua/dieter/init.lua
+++ b/home/common/nvim/dieter/lua/dieter/init.lua
@@ -15,6 +15,8 @@ local colors = {
     highlight_intense = hsl(42, 100, 30),
 
     dialog_fg = hsl(230, 13, 10),
+    dialog_bg = hsl(50, 15, 95),
+    dialog_border = hsl(50, 25, 75),
 
     string = hsl(96, 50, 33),
     comment = hsl(360, 66, 40),
@@ -38,7 +40,7 @@ local colors = {
     change_quarter = hsl(224, 100, 85),
     delete = hsl(350, 100, 40),
 
-    selection = hsl(270, 75, 92),
+    selection = hsl(270, 45, 92),
 
     search_bg = hsl(43, 100, 8),
     search_fg = hsl(43, 100, 85),
@@ -67,6 +69,7 @@ local colors = {
     highlight_intense = hsl(58, 100, 60),
 
     dialog_fg = hsl(191, 15, 75),
+    dialog_bg = "NONE",
 
     string = hsl(90, 30, 60),
     comment = hsl(216, 30, 55),
@@ -111,7 +114,6 @@ local colors = {
 }
 
 local setupGroups = function(c)
-  c.dialog_bg = c.background
 
   return {
     Normal = { fg = c.foreground, bg = c.background },
@@ -166,10 +168,10 @@ local setupGroups = function(c)
     DiagnosticHint = { fg = c.diagnostic_hint, italic = true },
     DiagnosticInfo = { fg = c.diagnostic_info, italic = true },
     DiagnosticWarn = { fg = c.diagnostic_warn, italic = true },
-    DiagnosticFloatingError = { fg = c.diagnostic_error, bg = c.popup_error_bg },
-    DiagnosticFloatingHint = { fg = c.diagnostic_hint, bg = c.popup_hint_bg },
-    DiagnosticFloatingInfo = { fg = c.diagnostic_info, bg = c.popup_info_bg },
-    DiagnosticFloatingWarn = { fg = c.diagnostic_warning, bg = c.popup_warning_bg },
+    DiagnosticFloatingError = { fg = c.diagnostic_error, bg = c.dialog_bg },
+    DiagnosticFloatingHint = { fg = c.diagnostic_hint, bg = c.dialog_bg },
+    DiagnosticFloatingInfo = { fg = c.diagnostic_info, bg = c.dialog_bg },
+    DiagnosticFloatingWarn = { fg = c.diagnostic_warning, bg = c.dialog_bg },
     DiagnosticUnderlineError = { fg = c.foreground, undercurl = true, sp = c.diagnostic_error },
     DiagnosticUnderlineHint = { fg = c.foreground, undercurl = true, sp = c.diagnostic_hint },
     DiagnosticUnderlineInfo = { fg = c.foreground, undercurl = true, sp = c.diagnostic_info },
@@ -194,22 +196,22 @@ local setupGroups = function(c)
 
     EndOfBuffer = { fg = c.dimmed },
     WinSeparator = { bg = c.dialog_bg, fg = c.dialog_fg },
-    NormalFloat = { bg = c.background, fg = c.foreground },
-    FloatBorder = { fg = c.foreground },
-    FloatTitle = { fg = c.doc_fg, bold = true },
+    NormalFloat = { bg = c.dialog_bg, fg = c.foreground },
+    FloatBorder = { bg = c.dialog_bg, fg = c.dialog_border },
+    FloatTitle = { bg = c.dialog_bg, fg = c.dialog_border, bold = true },
 
     Title = { fg = c.foreground, bold = true },
 
     MiniPickNormal = { bg = c.dialog_bg, fg = c.dialog_fg },
-    MiniPickBorder = { link = "MiniPickNormal" },
+    MiniPickBorder = { bg = c.dialog_bg, fg = c.dialog_border },
     MiniPickBorderText = { link = "MiniPickBorder" },
     MiniPickMatchCurrent = { bg = c.dialog_bg, fg = c.dialog_fg, reverse = true },
 
-    MiniClueBorder = { link = "MiniPicBorder" },
-    MiniClueTitle = { bg = c.background, fg = c.foreground, bold = true },
+    MiniClueBorder = { link = "MiniPickBorder" },
+    MiniClueTitle = { bg = c.dialog_bg, fg = c.dialog_border, bold = true },
     MiniClueNextKey = { link = "MiniClueTitle" },
-    MiniClueDescGroup = { bg = c.background, fg = c.foreground, italic = true },
-    MiniClueDescSingle = { bg = c.background, fg = c.foreground },
+    MiniClueDescGroup = { bg = c.dialog_bg, fg = c.foreground, italic = true },
+    MiniClueDescSingle = { bg = c.dialog_bg, fg = c.foreground },
     MiniClueSeparator = { link = "MiniClueBorder" },
 
     MiniCursorWord = { underdotted = true, bold = true, sp = c.diagnostic_hint },
diff --git a/home/common/nvim/init.lua b/home/common/nvim/init.lua
index 2e21cbf..cd34947 100644
--- a/home/common/nvim/init.lua
+++ b/home/common/nvim/init.lua
@@ -93,7 +93,11 @@ vim.opt.grepformat = vim.opt.grepformat ^ { "%f:%l:%c:%m" }
 
 -- Diagnostics
 vim.diagnostic.config {
-  float = { border = "rounded" },
+  float = {
+    border = "rounded",
+    header = "",
+    source = "if_many",
+  },
   severity_sort = true,
   signs = {
     linehl = {