diff --git a/CHANGELOG.md b/CHANGELOG.md
index de66a52bf256afb98c58ab6e6b3483872c63eb51..30bb81e3ba2fdfd9d2ac8b31d2b7148c3cb937c8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,7 +10,7 @@ If a change only affects particular applications, they are listed in parentheses
 
 ## Unreleased
 
-Nothing at the moment.
+- feat: Add adwaita-dark theme (thanks @topjor)
 
 ## 3.1.0 (2024-04-10)
 
diff --git a/buffyboard/screenshots/README.md b/buffyboard/screenshots/README.md
index 290c78d4d9be6425ced4c948e46ef5f67c5c8b62..82538245c9fe13aaa99f67a0e02ac62a06767538 100644
--- a/buffyboard/screenshots/README.md
+++ b/buffyboard/screenshots/README.md
@@ -1,5 +1,17 @@
 # Buffyboard themes
 
+## adwaita-dark
+
+<img src="adwaita-dark-480x800.png" alt="480x800" height="300"/>
+<img src="adwaita-dark-800x480.png" alt="800x480" height="300"/>
+<img src="adwaita-dark-540x960.png" alt="540x960" height="300"/>
+<img src="adwaita-dark-960x540.png" alt="960x540" height="300"/>
+<img src="adwaita-dark-768x1024.png" alt="768x1024" height="300"/>
+<img src="adwaita-dark-1024x768.png" alt="1024x768" height="300"/>
+<img src="adwaita-dark-1280x800.png" alt="1280x800" height="300"/>
+<img src="adwaita-dark-1440x720.png" alt="1440x720" height="300"/>
+<img src="adwaita-dark-1920x1080.png" alt="1920x1080" height="300"/>
+
 ## breezy-dark
 
 <img src="breezy-dark-480x800.png" alt="480x800" height="300"/>
diff --git a/buffyboard/screenshots/adwaita-dark-1024x768.png b/buffyboard/screenshots/adwaita-dark-1024x768.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d8519d44b17b7b4bc62006dde9132b60fbdd4bd
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-1024x768.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-1280x800.png b/buffyboard/screenshots/adwaita-dark-1280x800.png
new file mode 100644
index 0000000000000000000000000000000000000000..dac89ec58a0c6dd9fe58612358a0c3e84b9ce5fd
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-1280x800.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-1440x720.png b/buffyboard/screenshots/adwaita-dark-1440x720.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c120daec54b581e71648d20f07ecaa010619388
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-1440x720.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-1920x1080.png b/buffyboard/screenshots/adwaita-dark-1920x1080.png
new file mode 100644
index 0000000000000000000000000000000000000000..993b78996a11c98ef25ec425ed583148b8818587
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-1920x1080.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-480x800.png b/buffyboard/screenshots/adwaita-dark-480x800.png
new file mode 100644
index 0000000000000000000000000000000000000000..e18005739afc7a41fe1c3591c286bf8f255fc028
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-480x800.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-540x960.png b/buffyboard/screenshots/adwaita-dark-540x960.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0edad17d16777a0ae1cb04899a20d08a170433e
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-540x960.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-768x1024.png b/buffyboard/screenshots/adwaita-dark-768x1024.png
new file mode 100644
index 0000000000000000000000000000000000000000..402f79254d16e3c5cdb117db986de5139da7c3e7
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-768x1024.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-800x480.png b/buffyboard/screenshots/adwaita-dark-800x480.png
new file mode 100644
index 0000000000000000000000000000000000000000..f69adf4c85d19f829ce0b41087d80d2b2decbc50
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-800x480.png differ
diff --git a/buffyboard/screenshots/adwaita-dark-960x540.png b/buffyboard/screenshots/adwaita-dark-960x540.png
new file mode 100644
index 0000000000000000000000000000000000000000..17ad6473fa114a57ccfe7d36b9b598dd208084eb
Binary files /dev/null and b/buffyboard/screenshots/adwaita-dark-960x540.png differ
diff --git a/shared/themes.c b/shared/themes.c
index e9ab2cb4ddf15836469e6c2c9d31dd0756f0e867..e201a95d859d77dc65dfcf67876782ae19726af7 100644
--- a/shared/themes.c
+++ b/shared/themes.c
@@ -632,16 +632,170 @@ static const bbx_theme pmos_dark = {
     }
 };
 
+static const bbx_theme adwaita_dark = {
+    .name = "adwaita-dark",
+    .window = {
+        .bg_color = 0x151515
+    },
+    .header = {
+        .bg_color = 0x242424,
+        .border_width = 0,
+        .border_color = 0x242424,
+        .pad = 10,
+        .gap = 10
+    },
+    .keyboard = {
+        .bg_color = 0x242424,
+        .border_width = 2,
+        .border_color = 0x242424,
+        .pad = 20,
+        .gap = 10,
+        .keys = {
+            .border_width = 1,
+            .corner_radius = 5,
+            .key_char = {
+                .normal = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x464448,
+                    .border_color = 0x464448
+                },
+                .pressed = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x747077,
+                    .border_color = 0x747077
+                }
+            },
+            .key_non_char = {
+                .normal = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x3A3A3A,
+                    .border_color = 0x3A3A3A
+                },
+                .pressed = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x666666,
+                    .border_color = 0x666666
+                }
+            },
+            .key_mod_act = {
+                .normal = {
+                    .fg_color = 0x1E1E1E,
+                    .bg_color = 0x747077,
+                    .border_color = 0x747077
+                },
+                .pressed = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x464448,
+                    .border_color = 0x464448
+                }
+            },
+            .key_mod_inact = {
+                .normal = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x3A3A3A,
+                    .border_color = 0x3A3A3A
+                },
+                .pressed = {
+                    .fg_color = 0xDEDDDA,
+                    .bg_color = 0x3A3A3A,
+                    .border_color = 0x3A3A3A
+                }
+            }
+        }
+    },
+    .button = {
+        .border_width = 1,
+        .corner_radius = 5,
+        .pad = 8,
+        .normal = {
+            .fg_color = 0xDEDDDA,
+            .bg_color = 0x3A3A3A,
+            .border_color = 0x3A3A3A
+        },
+        .pressed = {
+            .fg_color = 0xDEDDDA,
+            .bg_color = 0x666666,
+            .border_color = 0x666666
+        }
+    },
+    .textarea = {
+        .fg_color = 0xDEDDDA,
+        .bg_color = 0x282828,
+        .border_width = 1,
+        .border_color = 0x1C71D8,
+        .corner_radius = 10,
+        .pad = 8,
+        .placeholder_color = 0x1C71D8,
+        .cursor = {
+            .width = 2,
+            .color = 0xDEDDDA,
+            .period = 700
+        }
+    },
+    .dropdown = {
+        .button = {
+            .border_width = 1,
+            .corner_radius = 5,
+            .pad = 8,
+            .normal = {
+                .fg_color = 0xDEDDDA,
+                .bg_color = 0x3A3A3A,
+                .border_color = 0x3A3A3A
+            },
+            .pressed = {
+                .fg_color = 0xDEDDDA,
+                .bg_color = 0x666666,
+                .border_color = 0x666666
+            }
+        },
+        .list = {
+            .fg_color = 0xDEDDDA,
+            .bg_color = 0x383838,
+            .selection_fg_color = 0xDEDDDA,
+            .selection_bg_color = 0x5E5E5E,
+            .border_width = 1,
+            .border_color = 0x383838,
+            .corner_radius = 5,
+            .pad = 8
+        }
+    },
+    .label = {
+        .fg_color = 0xDEDDDA,
+    },
+    .msgbox = {
+        .fg_color = 0xDEDDDA,
+        .bg_color = 0x383838,
+        .border_width = 1,
+        .border_color = 0x383838,
+        .corner_radius = 7,
+        .pad = 20,
+        .gap = 20,
+        .dimming = {
+            .color = 0x151515,
+            .opacity = 225
+        }
+    },
+    .bar = {
+        .border_width = 1,
+        .border_color = 0x1C71D8,
+        .corner_radius = 5,
+        .indicator = {
+            .bg_color = 0x1C71D8
+        }
+    }
+};
+
 /**
  * Public interface
  */
 
-const int bbx_themes_num_themes = 4;
+const int bbx_themes_num_themes = 5;
 const bbx_theme *bbx_themes_themes[] = {
     &breezy_light,
     &breezy_dark,
     &pmos_light,
-    &pmos_dark
+    &pmos_dark,
+    &adwaita_dark,
 };
 
 bbx_themes_theme_id_t bbx_themes_find_theme_with_name(const char *name) {
diff --git a/shared/themes.h b/shared/themes.h
index 5d592cfd5ed42807a069890d1e9be06ef27894da..454a5b1063b046a837a7fe38dbb84f22b5e2afbf 100644
--- a/shared/themes.h
+++ b/shared/themes.h
@@ -15,7 +15,8 @@ typedef enum {
     BBX_THEMES_THEME_BREEZY_LIGHT = 0,
     BBX_THEMES_THEME_BREEZY_DARK = 1,
     BBX_THEMES_THEME_PMOS_LIGHT = 2,
-    BBX_THEMES_THEME_PMOS_DARK = 3
+    BBX_THEMES_THEME_PMOS_DARK = 3,
+    BBX_THEMES_THEME_ADWAITA_DARK = 4,
 } bbx_themes_theme_id_t;
 
 /* Themes */
diff --git a/unl0kr/screenshots/README.md b/unl0kr/screenshots/README.md
index 5953b1dbf082c073be5e54e7367dbbf9af57c0dd..dc28401064c0ca013a6c71620d78123cd1030bec 100644
--- a/unl0kr/screenshots/README.md
+++ b/unl0kr/screenshots/README.md
@@ -1,5 +1,17 @@
 # Unl0kr themes
 
+## adwaita-dark
+
+<img src="adwaita-dark-480x800.png" alt="480x800" height="300"/>
+<img src="adwaita-dark-800x480.png" alt="800x480" height="300"/>
+<img src="adwaita-dark-540x960.png" alt="540x960" height="300"/>
+<img src="adwaita-dark-960x540.png" alt="960x540" height="300"/>
+<img src="adwaita-dark-768x1024.png" alt="768x1024" height="300"/>
+<img src="adwaita-dark-1024x768.png" alt="1024x768" height="300"/>
+<img src="adwaita-dark-1280x800.png" alt="1280x800" height="300"/>
+<img src="adwaita-dark-1440x720.png" alt="1440x720" height="300"/>
+<img src="adwaita-dark-1920x1080.png" alt="1920x1080" height="300"/>
+
 ## breezy-dark
 
 <img src="breezy-dark-480x800.png" alt="480x800" height="300"/>
diff --git a/unl0kr/screenshots/adwaita-dark-1024x768.png b/unl0kr/screenshots/adwaita-dark-1024x768.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb73b09b02eeb74231c16dac356d76f45fb7793f
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-1024x768.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-1280x800.png b/unl0kr/screenshots/adwaita-dark-1280x800.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6a544f259b0400b474e8d7b185130ce346521ea
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-1280x800.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-1440x720.png b/unl0kr/screenshots/adwaita-dark-1440x720.png
new file mode 100644
index 0000000000000000000000000000000000000000..6f943617e2108993d7fd74d853bde55d932a08f8
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-1440x720.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-1920x1080.png b/unl0kr/screenshots/adwaita-dark-1920x1080.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e20ab8d5b54e27fa443a067c7f39711f2d8b9d0
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-1920x1080.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-480x800.png b/unl0kr/screenshots/adwaita-dark-480x800.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc682b421bc98a02b4f7b18a30c0b7e835e12fbb
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-480x800.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-540x960.png b/unl0kr/screenshots/adwaita-dark-540x960.png
new file mode 100644
index 0000000000000000000000000000000000000000..a750dd02f43584b9037f7d4a0381f0798f34e7bf
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-540x960.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-768x1024.png b/unl0kr/screenshots/adwaita-dark-768x1024.png
new file mode 100644
index 0000000000000000000000000000000000000000..7dcddeee61b0c21129be8b5b24241d91d0333a6f
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-768x1024.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-800x480.png b/unl0kr/screenshots/adwaita-dark-800x480.png
new file mode 100644
index 0000000000000000000000000000000000000000..e608dc3676953c3cb01762324edc18ac22dbc0dc
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-800x480.png differ
diff --git a/unl0kr/screenshots/adwaita-dark-960x540.png b/unl0kr/screenshots/adwaita-dark-960x540.png
new file mode 100644
index 0000000000000000000000000000000000000000..48260894dea26d707cc06c6d3ac69075c7568160
Binary files /dev/null and b/unl0kr/screenshots/adwaita-dark-960x540.png differ