Dynamic theme setting
This commit is contained in:
parent
56544fe947
commit
94d9bae95b
|
@ -6,6 +6,13 @@
|
|||
x11_screens = [ "HDMI-1-0" "eDP1" ];
|
||||
maxVideoHeight = 1440;
|
||||
numlock = true;
|
||||
phasesBrightness = {
|
||||
enable = true;
|
||||
backlight = "intel_backlight";
|
||||
jour = 40000;
|
||||
crepuscule = 10000;
|
||||
nuit = 1;
|
||||
};
|
||||
};
|
||||
dev = {
|
||||
docker = true;
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# FIXME
|
||||
|
||||
if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 10000 | sudo tee /sys/class/backlight/intel_backlight/brightness
|
||||
elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 3000 | sudo tee /sys/class/backlight/edp-backlight/brightness
|
||||
fi
|
||||
automatrop -e base16_scheme=solarized-dark --tags color
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# FIXME
|
||||
|
||||
if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 40000 | sudo tee /sys/class/backlight/intel_backlight/brightness
|
||||
elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 3500 | sudo tee /sys/class/backlight/edp-backlight/brightness
|
||||
fi
|
||||
automatrop -e base16_scheme=solarized-light --tags color
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# FIXME
|
||||
|
||||
if [ "$(cat /etc/hostname)" = "curacao.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 1 | sudo tee /sys/class/backlight/intel_backlight/brightness
|
||||
elif [ "$(cat /etc/hostname)" = "pindakaas.geoffrey.frogeye.fr" ]
|
||||
then
|
||||
echo 700 | sudo tee /sys/class/backlight/edp-backlight/brightness
|
||||
fi
|
||||
automatrop -e base16_scheme=solarized-dark --tags color
|
37
hm/style.nix
37
hm/style.nix
|
@ -1,14 +1,21 @@
|
|||
{ pkgs, config, fetchFromGitHub, ... }:
|
||||
{ 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 = {
|
||||
# FIXME Changeable at runtime
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
|
||||
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";
|
||||
|
@ -30,10 +37,32 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
# 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;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,13 @@
|
|||
description = "Maximum video height in pixel the machine can reasonably watch";
|
||||
default = 1080;
|
||||
};
|
||||
phasesBrightness = {
|
||||
enable = lib.mkEnableOption "Set a specific brightness for the screen when running phases commands";
|
||||
backlight = lib.mkOption { type = lib.types.str; description = "Name of the backlight device"; };
|
||||
jour = lib.mkOption { type = lib.types.int; description = "brightness value for phase: jour"; };
|
||||
crepuscule = lib.mkOption { type = lib.types.int; description = "brightness value for phase: crepuscule"; };
|
||||
nuit = lib.mkOption { type = lib.types.int; description = "brightness value for phase: nuit"; };
|
||||
};
|
||||
};
|
||||
dev = {
|
||||
ansible = lib.mkEnableOption "Ansible dev stuff";
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
services.printing.enable = true;
|
||||
|
||||
# Enable passwordless sudo
|
||||
# TODO execWheelOnly? sudo-rs?
|
||||
security.sudo.extraRules = [{
|
||||
groups = [ "wheel" ];
|
||||
commands = [{
|
||||
|
|
|
@ -5,6 +5,13 @@
|
|||
xorg = true;
|
||||
x11_screens = [ "DP-1" "eDP-1" ];
|
||||
maxVideoHeight = 720;
|
||||
phasesBrightness = {
|
||||
enable = true;
|
||||
backlight = "edp-backlight";
|
||||
jour = 3500;
|
||||
crepuscule = 3000;
|
||||
nuit = 700;
|
||||
};
|
||||
};
|
||||
frogeye.dev.docker = true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue