{ pkgs, config, lib, ... }: let # Currently last commit in https://github.com/danth/stylix/pull/194 stylix = builtins.fetchTarball "https://github.com/willemml/stylix/archive/2ed2b0086b41d582aca26e083c19c0e47c8991e3.tar.gz"; polarityFile = "${config.xdg.stateHome}/theme_polarity"; polarity = if builtins.pathExists polarityFile then lib.strings.fileContents polarityFile else "light"; phases = [ { command = "jour"; polarity = "light"; } { command = "crepuscule"; polarity = "dark"; } { command = "nuit"; polarity = "dark"; } ]; cfg = config.frogeye.desktop.phasesBrightness; in { imports = [ (import stylix).homeManagerModules.stylix ]; stylix = { base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-${polarity}.yaml"; image = builtins.fetchurl { url = "https://get.wallhere.com/photo/sunlight-abstract-minimalism-green-simple-circle-light-leaf-wave-material-line-wing-computer-wallpaper-font-close-up-macro-photography-124350.png"; sha256 = "sha256:1zfq3f3v34i45mi72pkfqphm8kbhczsg260xjfl6dbydy91d7y93"; }; # The background is set on some occasions, autorandr + feh do the rest fonts = { monospace = { package = pkgs.nerdfonts.override { fonts = [ "DejaVuSansMono" ]; # Choose from https://github.com/NixOS/nixpkgs/blob/6ba3207643fd27ffa25a172911e3d6825814d155/pkgs/data/fonts/nerdfonts/shas.nix }; name = "DejaVuSansM Nerd Font"; }; }; targets = { i3.enable = false; # I prefer my own styles tmux.enable = false; # Using another theme }; }; # Setting a custom base16 theme via nixvim: # - Is required so nixvim works # - For the rest only works on dark polarity, use the colorscheme otherwise... shrug programs.nixvim.colorschemes.base16.colorscheme = "solarized-${polarity}"; # Fix https://nix-community.github.io/home-manager/index.html#_why_do_i_get_an_error_message_about_literal_ca_desrt_dconf_literal_or_literal_dconf_service_literal # home.packages = [ pkgs.dconf ]; dconf.enable = false; # Otherwise standalone home-manager complains it can't find /etc/dbus-1/session.conf on Arch. # Symlinking it to /usr/share/dbus-1/session.conf goes further but not much. # TODO Use xbacklight instead (pindakaas doesn't seem to support it OOTB) home.packages = map (phase: (pkgs.writeShellApplication { name = "${phase.command}"; text = (lib.optionalString cfg.enable '' echo ${builtins.toString (builtins.getAttr phase.command cfg)} | sudo tee /sys/class/backlight/${cfg.backlight}/brightness '') + '' echo ${phase.polarity} > ${polarityFile} if command -v home-manager then home-manager switch else sudo nixos-rebuild switch fi ''; }) ) phases; }