Rename fluorescence -> alucard
Since it's dracula inspired 'n all...
This commit is contained in:
		
							parent
							
								
									74a8b35b88
								
							
						
					
					
						commit
						c50a51f987
					
				
							
								
								
									
										14
									
								
								modules/themes/alucard/README.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/themes/alucard/README.org
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| #+TITLE:  Alucard | ||||
| #+AUTHOR: Henrik Lissner | ||||
| #+DATE:   October 1, 2019 | ||||
| 
 | ||||
| A regal dracula-inspired theme for piles of miserable secrets. | ||||
| 
 | ||||
| * Wallpaper | ||||
|  | ||||
| 
 | ||||
| * Screenshots | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB | 
							
								
								
									
										99
									
								
								modules/themes/alucard/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								modules/themes/alucard/default.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,99 @@ | |||
| # modules/themes/alucard/default.nix --- a regal dracula-inspired theme | ||||
| 
 | ||||
| { options, config, lib, pkgs, ... }: | ||||
| 
 | ||||
| with lib; | ||||
| with lib.my; | ||||
| let cfg = config.modules.theme; | ||||
| in { | ||||
|   config = mkIf (cfg.active == "alucard") (mkMerge [ | ||||
|     # Desktop-agnostic configuration | ||||
|     { | ||||
|       modules = { | ||||
|         theme = { | ||||
|           wallpaper = mkDefault ./config/wallpaper.png; | ||||
|           gtk = { | ||||
|             theme = "Dracula"; | ||||
|             iconTheme = "Paper"; | ||||
|             cursorTheme = "Paper"; | ||||
|           }; | ||||
|         }; | ||||
| 
 | ||||
|         shell.zsh.rcFiles  = [ ./config/zsh/prompt.zsh ]; | ||||
|         shell.tmux.rcFiles = [ ./config/tmux.conf ]; | ||||
|         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 | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
|     } | ||||
| 
 | ||||
|     # Desktop (X11) theming | ||||
|     (mkIf config.services.xserver.enable { | ||||
|       user.packages = with pkgs; [ | ||||
|         unstable.dracula-theme | ||||
|         paper-icon-theme # for rofi | ||||
|       ]; | ||||
|       fonts.fonts = [ pkgs.jetbrains-mono ]; | ||||
| 
 | ||||
|       # Compositor | ||||
|       services.picom = { | ||||
|         fade = true; | ||||
|         fadeDelta = 1; | ||||
|         fadeSteps = [ 0.01 0.012 ]; | ||||
|         shadow = true; | ||||
|         shadowOffsets = [ (-10) (-10) ]; | ||||
|         shadowOpacity = 0.22; | ||||
|         # activeOpacity = "1.00"; | ||||
|         # inactiveOpacity = "0.92"; | ||||
|         settings = { | ||||
|           shadow-radius = 12; | ||||
|           # blur-background = true; | ||||
|           # blur-background-frame = true; | ||||
|           # blur-background-fixed = true; | ||||
|           blur-kern = "7x7box"; | ||||
|           blur-strength = 320; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       # Login screen theme | ||||
|       services.xserver.displayManager.lightdm.greeters.mini.extraConfig = '' | ||||
|         text-color = "#ff79c6" | ||||
|         password-background-color = "#1E2029" | ||||
|         window-color = "#181a23" | ||||
|         border-color = "#181a23" | ||||
|       ''; | ||||
| 
 | ||||
|       # Other dotfiles | ||||
|       home.configFile = mkMerge [ | ||||
|         { | ||||
|           # Sourced from sessionCommands in modules/themes/default.nix | ||||
|           "xtheme/90-theme".source = ./config/Xresources; | ||||
|         } | ||||
|         (mkIf m.desktop.bspwm.enable { | ||||
|           "bspwm/rc.d/polybar".source = ./config/polybar/run.sh; | ||||
|           "bspwm/rc.d/theme".source = ./config/bspwmrc; | ||||
|         }) | ||||
|         (mkIf m.desktop.apps.rofi.enable { | ||||
|           "rofi/theme" = { source = ./config/rofi; recursive = true; }; | ||||
|         }) | ||||
|         (mkIf (m.desktop.bspwm.enable || m.desktop.stumpwm.enable) { | ||||
|           "polybar" = { source = ./config/polybar; recursive = true; }; | ||||
|           "dunst/dunstrc".source = ./config/dunstrc; | ||||
|         }) | ||||
|         (mkIf m.desktop.media.graphics.vector.enable { | ||||
|           "inkscape/templates/default.svg".source = ./config/inkscape/default-template.svg; | ||||
|         }) | ||||
|       ]; | ||||
|     }) | ||||
|   ]); | ||||
| } | ||||
|  | @ -2,14 +2,123 @@ | |||
| # intertwined with others, and are solely responsible for aesthetics. Disabling | ||||
| # a theme module should never leave a system non-functional. | ||||
| 
 | ||||
| { config, lib, ... }: | ||||
| { options, config, lib, pkgs, ... }: | ||||
| 
 | ||||
| with lib; | ||||
| with lib.my; | ||||
| let cfg = config.modules.themes; | ||||
| let cfg = config.modules.theme; | ||||
| in { | ||||
|   assertions = [{ | ||||
|     assertion = countAttrs (_: x: x.enable) cfg < 2; | ||||
|     message = "Can't have more than one theme enabled at a time"; | ||||
|   }]; | ||||
|   options.modules.theme = with types; { | ||||
|     active = mkOption { | ||||
|       type = nullOr str; | ||||
|       default = null; | ||||
|       apply = v: let theme = builtins.getEnv "THEME"; in | ||||
|                  if theme != "" then theme else v; | ||||
|       description = '' | ||||
|         Name of the theme to enable. Can be overridden by the THEME environment | ||||
|         variable. Themes can also be hot-swapped with 'hey theme $THEME'. | ||||
|       ''; | ||||
|     }; | ||||
| 
 | ||||
|     wallpaper = mkOpt (either path null) null; | ||||
| 
 | ||||
|     loginWallpaper = mkOpt (either path null) | ||||
|       (if cfg.wallpaper != null | ||||
|        then toFilteredImage cfg.wallpaper "-gaussian-blur 0x2 -modulate 70 -level 5%" | ||||
|        else null); | ||||
| 
 | ||||
|     gtk = { | ||||
|       theme = mkOpt str ""; | ||||
|       iconTheme = mkOpt str ""; | ||||
|       cursorTheme = mkOpt str ""; | ||||
|     }; | ||||
| 
 | ||||
|     onReload = mkOpt (attrsOf lines) {}; | ||||
|   }; | ||||
| 
 | ||||
|   config = mkIf (cfg.active != null) (mkMerge [ | ||||
|     # Read xresources files in ~/.config/xtheme/* to allow modular | ||||
|     # configuration of Xresources. | ||||
|     (let xrdb = ''xrdb -merge "$XDG_CONFIG_HOME"/xtheme/*''; | ||||
|      in { | ||||
|        services.xserver.displayManager.sessionCommands = xrdb; | ||||
|        modules.theme.onReload.xtheme = xrdb; | ||||
|      }) | ||||
| 
 | ||||
|     { | ||||
|       home.configFile = { | ||||
|         # GTK | ||||
|         "gtk-3.0/settings.ini".text = '' | ||||
|           [Settings] | ||||
|           ${optionalString (cfg.gtk.theme != "") | ||||
|             ''gtk-theme-name="${cfg.gtk.theme}"''} | ||||
|           ${optionalString (cfg.gtk.iconTheme != "") | ||||
|             ''gtk-icon-theme-name="${cfg.gtk.iconTheme}"''} | ||||
|           ${optionalString (cfg.gtk.cursorTheme != "") | ||||
|             ''gtk-cursor-theme-name="${cfg.gtk.cursorTheme}"''} | ||||
|           gtk-fallback-icon-theme=gnome | ||||
|           gtk-application-prefer-dark-theme=true | ||||
|           gtk-xft-hinting=1 | ||||
|           gtk-xft-hintstyle=hintfull | ||||
|           gtk-xft-rgba=none | ||||
|         ''; | ||||
|         # GTK2 global theme (widget and icon theme) | ||||
|         "gtk-2.0/gtkrc".text = '' | ||||
|           ${optionalString (cfg.gtk.theme != "") | ||||
|             ''gtk-theme-name="${cfg.gtk.theme}"''} | ||||
|           ${optionalString (cfg.gtk.iconTheme != "") | ||||
|             ''gtk-icon-theme-name="${cfg.gtk.iconTheme}"''} | ||||
|           gtk-font-name="Sans 10" | ||||
|         ''; | ||||
|         # QT4/5 global theme | ||||
|         "Trolltech.conf".text = '' | ||||
|           [Qt] | ||||
|           ${optionalString (cfg.gtk.theme != "") | ||||
|             ''style="${cfg.gtk.theme}"''} | ||||
|         ''; | ||||
|       }; | ||||
|     } | ||||
| 
 | ||||
|     (mkIf (cfg.wallpaper != null) | ||||
|       (let wCfg = config.services.xserver.desktopManager.wallpaper; | ||||
|            command = '' | ||||
|              if [ -e "$XDG_DATA_HOME/wallpaper" ]; then | ||||
|                ${pkgs.feh}/bin/feh --bg-${wCfg.mode} \ | ||||
|                  ${optionalString wCfg.combineScreens "--no-xinerama"} \ | ||||
|                  --no-fehbg \ | ||||
|                  $XDG_DATA_HOME/wallpaper | ||||
|              fi | ||||
|           ''; | ||||
|        in { | ||||
|          # Set the wallpaper ourselves so we don't need .background-image and/or | ||||
|          # .fehbg polluting $HOME | ||||
|          services.xserver.displayManager.sessionCommands = command; | ||||
|          modules.theme.onReload.wallpaper = command; | ||||
| 
 | ||||
|          home.dataFile = mkIf (cfg.wallpaper != null) { | ||||
|            "wallpaper".source = cfg.wallpaper; | ||||
|          }; | ||||
|        })) | ||||
| 
 | ||||
|     (mkIf (cfg.loginWallpaper != null) { | ||||
|       services.xserver.displayManager.lightdm.background = cfg.loginWallpaper; | ||||
|     }) | ||||
| 
 | ||||
|     (mkIf (cfg.onReload != {}) { | ||||
|       user.packages = [ | ||||
|         (pkgs.writeScriptBin "reloadTheme" '' | ||||
|           #!${stdenv.shell} | ||||
|           echo "Reloading current theme: ${cfg.active}" | ||||
|           ${concatStrings "\n" | ||||
|             (mapAttrsToList (name: script: '' | ||||
|               echo "[${name}]" | ||||
|               ${script} | ||||
|             '') cfg.onReload)} | ||||
|         '') | ||||
|       ]; | ||||
|       system.userActivationScripts.reloadTheme = '' | ||||
|         [ -z "$NORELOAD" ] && reloadTheme | ||||
|       ''; | ||||
|     }) | ||||
|   ]); | ||||
| } | ||||
|  |  | |||
|  | @ -1,14 +0,0 @@ | |||
| #+TITLE:  Fluorescence | ||||
| #+AUTHOR: Henrik Lissner | ||||
| #+DATE:   October 1, 2019 | ||||
| 
 | ||||
| A regal dracula-inspired theme. | ||||
| 
 | ||||
| * Wallpaper | ||||
|  | ||||
| 
 | ||||
| * Screenshots | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | @ -1,130 +0,0 @@ | |||
| # modules/themes/fluorescence/default.nix --- a regal dracula-inspired theme | ||||
| 
 | ||||
| { options, config, lib, pkgs, ... }: | ||||
| 
 | ||||
| with lib; | ||||
| with lib.my; | ||||
| let m   = config.modules; | ||||
|     cfg = m.themes.fluorescence; | ||||
| in { | ||||
|   options.modules.themes.fluorescence = with types; { | ||||
|     enable = mkBoolOpt false; | ||||
|     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 [ | ||||
|     # Desktop-agnostic configuration | ||||
|     { | ||||
|       home.configFile = mkIf m.shell.tmux.enable { | ||||
|         "tmux/theme".source = ./config/tmux.conf; | ||||
|       }; | ||||
|       modules.shell.zsh.rcFiles = [ ./config/zsh/prompt.zsh ]; | ||||
|     } | ||||
| 
 | ||||
|     # Desktop (X11) theming | ||||
|     (mkIf config.services.xserver.enable { | ||||
|       user.packages = with pkgs; [ | ||||
|         unstable.dracula-theme | ||||
|         paper-icon-theme # for rofi | ||||
|       ]; | ||||
|       fonts.fonts = [ pkgs.jetbrains-mono ]; | ||||
| 
 | ||||
|       # Compositor | ||||
|       services.picom = { | ||||
|         fade = true; | ||||
|         fadeDelta = 1; | ||||
|         fadeSteps = [ 0.01 0.012 ]; | ||||
|         shadow = true; | ||||
|         shadowOffsets = [ (-10) (-10) ]; | ||||
|         shadowOpacity = 0.22; | ||||
|         # activeOpacity = "1.00"; | ||||
|         # inactiveOpacity = "0.92"; | ||||
|         settings = { | ||||
|           shadow-radius = 12; | ||||
|           # blur-background = true; | ||||
|           # blur-background-frame = true; | ||||
|           # blur-background-fixed = true; | ||||
|           blur-kern = "7x7box"; | ||||
|           blur-strength = 320; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       services.xserver.displayManager.lightdm = mkMerge [ | ||||
|         # Login screen theme | ||||
|         { | ||||
|           greeters.mini.extraConfig = '' | ||||
|             text-color = "#ff79c6" | ||||
|             password-background-color = "#1E2029" | ||||
|             window-color = "#181a23" | ||||
|             border-color = "#181a23" | ||||
|           ''; | ||||
|         } | ||||
| 
 | ||||
|         (mkIf (cfg.loginWallpaper != null) { | ||||
|           background = cfg.loginWallpaper; | ||||
|         }) | ||||
|       ]; | ||||
|       home.dataFile = mkIf (cfg.wallpaper != null) { | ||||
|         "wallpaper".source = cfg.wallpaper; | ||||
|       }; | ||||
| 
 | ||||
|       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 = '' | ||||
|             [Settings] | ||||
|             gtk-theme-name=Dracula | ||||
|             gtk-icon-theme-name=Paper | ||||
|             gtk-fallback-icon-theme=gnome | ||||
|             gtk-application-prefer-dark-theme=true | ||||
|             gtk-cursor-theme-name=Paper | ||||
|             gtk-xft-hinting=1 | ||||
|             gtk-xft-hintstyle=hintfull | ||||
|             gtk-xft-rgba=none | ||||
|           ''; | ||||
|           # GTK2 global theme (widget and icon theme) | ||||
|           "gtk-2.0/gtkrc".text = '' | ||||
|             gtk-theme-name="Dracula" | ||||
|             gtk-icon-theme-name="Paper-Mono-Dark" | ||||
|             gtk-font-name="Sans 10" | ||||
|           ''; | ||||
|           # QT4/5 global theme | ||||
|           "Trolltech.conf".text = "[Qt]\nstyle=Dracula"; | ||||
|         } | ||||
|         (mkIf m.desktop.bspwm.enable { | ||||
|           "bspwm/rc.d/polybar".source = ./config/polybar/run.sh; | ||||
|           "bspwm/rc.d/theme".source = ./config/bspwmrc; | ||||
|         }) | ||||
|         (mkIf m.desktop.apps.rofi.enable { | ||||
|           "rofi/theme" = { source = ./config/rofi; recursive = true; }; | ||||
|         }) | ||||
|         (mkIf (m.desktop.bspwm.enable || m.desktop.stumpwm.enable) { | ||||
|           "polybar" = { source = ./config/polybar; recursive = true; }; | ||||
|           "dunst/dunstrc".source = ./config/dunstrc; | ||||
|         }) | ||||
|         (mkIf m.desktop.media.graphics.vector.enable { | ||||
|           "inkscape/templates/default.svg".source = ./config/inkscape/default-template.svg; | ||||
|         }) | ||||
|       ]; | ||||
|     }) | ||||
|   ]); | ||||
| } | ||||
		Loading…
	
		Reference in a new issue