2024-05-18 15:03:55 +02:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
cfg = config.sway.theming;
|
2024-05-18 16:24:54 +02:00
|
|
|
|
|
|
|
# currently, there is some friction between sway and gtk:
|
|
|
|
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
|
|
|
configure-gtk = pkgs.writeShellScriptBin "configure-gtk" ''
|
|
|
|
gnome_schema=org.gnome.desktop.interface
|
|
|
|
gsettings set $gnome_schema gtk-theme 'Dracula'
|
|
|
|
'';
|
2024-05-18 15:03:55 +02:00
|
|
|
in {
|
|
|
|
options = {
|
|
|
|
sway.theming.enable = lib.mkEnableOption "theming for sway";
|
|
|
|
};
|
|
|
|
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
|
|
wayland.windowManager.sway.config = {
|
2024-05-18 16:24:54 +02:00
|
|
|
fonts = {
|
|
|
|
names = ["FiraCode Nerd Font"];
|
|
|
|
size = 11.0;
|
|
|
|
};
|
|
|
|
|
2024-05-18 15:03:55 +02:00
|
|
|
colors = {
|
|
|
|
background = "#00000000";
|
|
|
|
focused = {
|
|
|
|
border = "#00FFEE";
|
|
|
|
background = "#4477AA";
|
|
|
|
text = "#F0F0F0";
|
|
|
|
childBorder = "#00FFEE";
|
|
|
|
indicator = "#00AA88";
|
|
|
|
};
|
|
|
|
focusedInactive = {
|
|
|
|
border = "#626262";
|
|
|
|
background = "#444444";
|
|
|
|
text = "#F0F0F0";
|
|
|
|
childBorder = "#626262";
|
|
|
|
indicator = "#00AA88";
|
|
|
|
};
|
|
|
|
placeholder = {
|
|
|
|
border = "#313131";
|
|
|
|
background = "#222222";
|
|
|
|
text = "#F0F0F0";
|
|
|
|
childBorder = "#313131";
|
|
|
|
indicator = "#005544";
|
|
|
|
};
|
|
|
|
unfocused = {
|
|
|
|
border = "#313131";
|
|
|
|
background = "#222222";
|
|
|
|
text = "#F0F0F0";
|
|
|
|
childBorder = "#313131";
|
|
|
|
indicator = "#00AA88";
|
|
|
|
};
|
|
|
|
urgent = {
|
|
|
|
border = "#FF3131";
|
|
|
|
background = "#882222";
|
|
|
|
text = "#F0F0F0";
|
|
|
|
childBorder = "#FF3131";
|
|
|
|
indicator = "#00AA88";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
focus.mouseWarping = true;
|
|
|
|
|
|
|
|
gaps = {
|
|
|
|
inner = 5;
|
|
|
|
smartGaps = true;
|
|
|
|
smartBorders = "no_gaps";
|
|
|
|
};
|
|
|
|
window.titlebar = false;
|
2024-05-18 16:24:54 +02:00
|
|
|
|
|
|
|
startup = [
|
|
|
|
{command = "${configure-gtk}/bin/configure-gtk";}
|
|
|
|
];
|
2024-05-18 15:03:55 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
gtk = {
|
|
|
|
enable = true;
|
|
|
|
cursorTheme = {
|
|
|
|
package = pkgs.capitaine-cursors;
|
|
|
|
name = "capitaine-cursors-white";
|
|
|
|
size = 24;
|
|
|
|
};
|
|
|
|
iconTheme = {
|
|
|
|
package = pkgs.whitesur-icon-theme;
|
|
|
|
name = "WhiteSur-dark";
|
|
|
|
};
|
|
|
|
theme = {
|
|
|
|
package = pkgs.whitesur-gtk-theme;
|
|
|
|
name = "WhiteSur-Dark";
|
|
|
|
};
|
|
|
|
gtk3.extraConfig = {
|
|
|
|
gtk-dialogs-use-header = false;
|
|
|
|
gtk-cursor-theme-size = 0;
|
|
|
|
gtk-toolbar-style = "GTK_TOOLBAR_BOTH_HORIZ";
|
|
|
|
gtk-toolbar-icon-style = "GTK_ICON_SIZE_LARGE_TOOLBAR";
|
|
|
|
gtk-button-images = 0;
|
|
|
|
gtk-menu-images = 0;
|
|
|
|
gtk-enable-event-sounds = 0;
|
|
|
|
gtk-enable-input-feedback-sounds = 1;
|
|
|
|
gtk-xft-antialias = 1;
|
|
|
|
gtk-xft-hinting = 1;
|
|
|
|
gtk-xft-hintstyle = "hintslight";
|
|
|
|
gtk-xft-rgba = "none";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
home.pointerCursor = {
|
|
|
|
package = pkgs.capitaine-cursors;
|
|
|
|
name = "capitaine-cursors-white";
|
|
|
|
size = 24;
|
|
|
|
x11.enable = true;
|
|
|
|
x11.defaultCursor = "capitaine-cursors-white";
|
|
|
|
};
|
|
|
|
xsession.enable = true;
|
2024-05-18 16:24:54 +02:00
|
|
|
|
|
|
|
services.mako = {
|
|
|
|
backgroundColor = "#313131";
|
|
|
|
borderColor = "#00FFEE";
|
|
|
|
progressColor = "#338833";
|
|
|
|
textColor = "#e0e0e0";
|
|
|
|
extraConfig = ''
|
|
|
|
[urgency=low]
|
|
|
|
border-color=#008877
|
|
|
|
'';
|
|
|
|
};
|
2024-05-18 15:03:55 +02:00
|
|
|
};
|
|
|
|
}
|