Refactor modules/themes/fluorescence
Extract functionality, remove redundant wallpaper logic, and simplify wallpaper options.
This commit is contained in:
parent
93b1a4bfed
commit
b7c00a985c
|
@ -9,13 +9,9 @@ let m = config.modules;
|
|||
in {
|
||||
options.modules.themes.fluorescence = with types; {
|
||||
enable = mkBoolOpt false;
|
||||
wallpaper = {
|
||||
path = mkOpt path ./config/wallpaper.png;
|
||||
filter = {
|
||||
enable = mkBoolOpt true;
|
||||
options = mkOpt str "-gaussian-blur 0x2 -modulate 70 -level 5%";
|
||||
};
|
||||
};
|
||||
wallpaper = mkOpt (either path null) ./config/wallpaper.png;
|
||||
loginWallpaper = mkOpt (either path null)
|
||||
(toFilteredImage cfg.wallpaper "-gaussian-blur 0x2 -modulate 70 -level 5%");
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
|
@ -27,30 +23,12 @@ in {
|
|||
modules.shell.zsh.rcFiles = [ ./config/zsh/prompt.zsh ];
|
||||
}
|
||||
|
||||
# Use a blurred+dimmed version of my wallpaper for the login screen
|
||||
(mkIf (pathExists cfg.wallpaper.path) {
|
||||
services.xserver.displayManager.lightdm.background =
|
||||
if cfg.wallpaper.filter.enable
|
||||
then cfg.wallpaper.path
|
||||
else (let options = cfg.wallpaper.filter.options;
|
||||
wallpaperPath = cfg.wallpaper.path;
|
||||
filteredPath = "wallpaper.filtered.png";
|
||||
filteredWallpaper =
|
||||
pkgs.runCommand "filterWallpaper"
|
||||
{ buildInputs = [ pkgs.imagemagick ]; } ''
|
||||
mkdir "$out"
|
||||
convert ${options} ${wallpaperPath} $out/${filteredPath}
|
||||
'';
|
||||
in "${filteredWallpaper}/${filteredPath}");
|
||||
})
|
||||
|
||||
# Desktop (X11) theming
|
||||
(mkIf config.services.xserver.enable {
|
||||
user.packages = with pkgs; [
|
||||
unstable.ant-dracula-theme
|
||||
paper-icon-theme # for rofi
|
||||
];
|
||||
|
||||
fonts.fonts = [ pkgs.jetbrains-mono ];
|
||||
|
||||
# Compositor
|
||||
|
@ -84,49 +62,32 @@ in {
|
|||
'';
|
||||
}
|
||||
|
||||
# Use a blurred+dimmed version of my wallpaper for the login screen
|
||||
(mkIf (pathExists cfg.wallpaper.path) {
|
||||
background =
|
||||
if cfg.wallpaper.filter.enable
|
||||
then cfg.wallpaper.path
|
||||
else (let options = cfg.wallpaper.filter.options;
|
||||
wallpaperPath = cfg.wallpaper.path;
|
||||
filteredPath = "wallpaper.filtered.png";
|
||||
filteredWallpaper =
|
||||
pkgs.runCommand "filterWallpaper"
|
||||
{ buildInputs = [ pkgs.imagemagick ]; } ''
|
||||
mkdir "$out"
|
||||
convert ${options} ${wallpaperPath} $out/${filteredPath}
|
||||
'';
|
||||
in "${filteredWallpaper}/${filteredPath}");
|
||||
|
||||
(mkIf (cfg.loginWallpaper != null) {
|
||||
background = cfg.loginWallpaper;
|
||||
})
|
||||
];
|
||||
|
||||
modules.desktop.browsers = {
|
||||
firefox.userChrome =
|
||||
readFile ./config/firefox/userChrome.css;
|
||||
qutebrowser.userStyles =
|
||||
with pkgs;
|
||||
let compiledStyles =
|
||||
runCommand "compileUserStyles"
|
||||
{ buildInputs = [ sass ]; } ''
|
||||
mkdir "$out"
|
||||
for file in "${./config/userstyles/qutebrowser}"/*.scss; do
|
||||
scss --sourcemap=none \
|
||||
--no-cache \
|
||||
--style compressed \
|
||||
--default-encoding utf-8 \
|
||||
"$file" \
|
||||
>>"$out/userstyles.css"
|
||||
done
|
||||
'';
|
||||
in readFile "${compiledStyles}/userstyles.css";
|
||||
home.dataFile = mkIf (cfg.wallpaper != null) {
|
||||
"wallpaper".source = cfg.wallpaper;
|
||||
};
|
||||
|
||||
home = {
|
||||
configFile = mkMerge [
|
||||
modules.desktop.browsers = {
|
||||
firefox.userChrome = concatMapStringsSep "\n" readFile [
|
||||
./config/firefox/userChrome.css
|
||||
];
|
||||
qutebrowser.userStyles = concatMapStringsSep "\n" toCSSFile [
|
||||
./config/qutebrowser/github.scss
|
||||
./config/qutebrowser/monospace-textareas.scss
|
||||
./config/qutebrowser/quora.scss
|
||||
./config/qutebrowser/stackoverflow.scss
|
||||
./config/qutebrowser/xkcd.scss
|
||||
./config/qutebrowser/youtube.scss
|
||||
];
|
||||
};
|
||||
|
||||
home.configFile = mkMerge [
|
||||
{
|
||||
# This is sourced in the displayManager (see
|
||||
# modules/desktop/default.nix) to modularize my Xresources config.
|
||||
"xtheme/90-theme".source = ./config/Xresources;
|
||||
# GTK
|
||||
"gtk-3.0/settings.ini".text = ''
|
||||
|
@ -147,10 +108,7 @@ in {
|
|||
gtk-font-name="Sans 10"
|
||||
'';
|
||||
# QT4/5 global theme
|
||||
"Trolltech.conf".text = ''
|
||||
[Qt]
|
||||
style=Ant-Dracula
|
||||
'';
|
||||
"Trolltech.conf".text = "[Qt]\nstyle=Ant-Dracula";
|
||||
}
|
||||
(mkIf m.desktop.bspwm.enable {
|
||||
"bspwm/rc.d/polybar".source = ./config/polybar/run.sh;
|
||||
|
@ -167,11 +125,6 @@ in {
|
|||
"inkscape/templates/default.svg".source = ./config/inkscape/default-template.svg;
|
||||
})
|
||||
];
|
||||
|
||||
dataFile = mkIf (pathExists cfg.wallpaper.path) {
|
||||
"wallpaper".source = cfg.wallpaper.path;
|
||||
};
|
||||
};
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue