glance: init (#827)
Link: https://github.com/danth/stylix/pull/827 Co-authored-by: NAHO <90870942+trueNAHO@users.noreply.github.com> Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
This commit is contained in:
parent
87791e0665
commit
b3ef236d22
2 changed files with 130 additions and 0 deletions
46
modules/glance/hm.nix
Normal file
46
modules/glance/hm.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
options.stylix.targets.glance.enable =
|
||||
config.lib.stylix.mkEnableTarget "Glance" true;
|
||||
|
||||
config =
|
||||
lib.mkIf (config.stylix.enable && config.stylix.targets.glance.enable)
|
||||
{
|
||||
services.glance.settings.theme =
|
||||
let
|
||||
rgb-to-hsl =
|
||||
color:
|
||||
let
|
||||
r = ((lib.toInt config.lib.stylix.colors."${color}-rgb-r") * 100) / 255;
|
||||
g = ((lib.toInt config.lib.stylix.colors."${color}-rgb-g") * 100) / 255;
|
||||
b = ((lib.toInt config.lib.stylix.colors."${color}-rgb-b") * 100) / 255;
|
||||
max = lib.max r (lib.max g b);
|
||||
min = lib.min r (lib.min g b);
|
||||
delta = max - min;
|
||||
h =
|
||||
if delta == 0 then
|
||||
0
|
||||
else if max == r then
|
||||
60 * (lib.mod ((g - b) / delta) 6)
|
||||
else if max == g then
|
||||
60 * (((b - r) / delta) + 2)
|
||||
else if max == b then
|
||||
60 * (((r - g) / delta) + 4)
|
||||
else
|
||||
0;
|
||||
l = (max + min) / 2;
|
||||
s =
|
||||
if delta == 0 then 0 else delta / (100 - lib.max (2 * l - 100) (100 - (2 * l)));
|
||||
in
|
||||
"${builtins.toString h} ${builtins.toString s} ${builtins.toString l}";
|
||||
in
|
||||
{
|
||||
light = config.stylix.polarity == "light";
|
||||
contrast-multiplier = 1.0;
|
||||
background-color = rgb-to-hsl "base00";
|
||||
primary-color = rgb-to-hsl "base05";
|
||||
positive-color = rgb-to-hsl "base01";
|
||||
negative-color = rgb-to-hsl "base04";
|
||||
};
|
||||
};
|
||||
}
|
||||
84
modules/glance/testbed.nix
Normal file
84
modules/glance/testbed.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ lib, pkgs, ... }:
|
||||
let
|
||||
host = "127.0.0.1";
|
||||
|
||||
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
|
||||
extraPolicies.OverrideFirstRunPage = "http://${host}:${builtins.toString port}";
|
||||
};
|
||||
|
||||
port = 1234;
|
||||
in
|
||||
{
|
||||
stylix.testbed.application = {
|
||||
enable = true;
|
||||
name = "firefox";
|
||||
inherit package;
|
||||
};
|
||||
|
||||
home-manager.sharedModules = lib.singleton {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
inherit package;
|
||||
};
|
||||
|
||||
services.glance = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
pages = lib.singleton {
|
||||
columns = [
|
||||
{
|
||||
size = "small";
|
||||
|
||||
widgets = lib.singleton {
|
||||
hide-location = false;
|
||||
hour-format = "24h";
|
||||
location = "Tokyo, Japan";
|
||||
show-area-name = true;
|
||||
type = "weather";
|
||||
units = "metric";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
size = "full";
|
||||
|
||||
widgets = [
|
||||
{
|
||||
autofocus = true;
|
||||
search-engine = "https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+{QUERY}";
|
||||
type = "search";
|
||||
}
|
||||
|
||||
{
|
||||
type = "group";
|
||||
|
||||
widgets = lib.singleton {
|
||||
collapse-after = 15;
|
||||
|
||||
feeds = lib.singleton {
|
||||
title = "LessWrong";
|
||||
url = "https://www.lesswrong.com/feed.xml?view=curated-rss";
|
||||
};
|
||||
|
||||
style = "vertical-list";
|
||||
type = "rss";
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{
|
||||
size = "small";
|
||||
widgets = [ { type = "calendar"; } ];
|
||||
}
|
||||
];
|
||||
|
||||
name = "Home";
|
||||
};
|
||||
|
||||
server = { inherit host port; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue