nixos: initial bitmap font support
This commit is contained in:
parent
3cb560dfe1
commit
3f11846977
10 changed files with 118 additions and 22 deletions
|
|
@ -18,7 +18,7 @@
|
|||
};
|
||||
workstation = {
|
||||
environment = "hyprland";
|
||||
theme = "minimal";
|
||||
theme = "hozen";
|
||||
profiles = ["creative" "virtualization" "gaming" "media" "communication" "productivity"];
|
||||
default = {
|
||||
browser = "firefox";
|
||||
|
|
|
|||
|
|
@ -51,9 +51,9 @@ in {
|
|||
elixir.symbol = " ";
|
||||
elm.symbol = " ";
|
||||
gcloud.symbol = " ";
|
||||
git_branch.symbol = " ";
|
||||
git_branch.symbol = "";
|
||||
golang.symbol = " ";
|
||||
hg_branch.symbol = " ";
|
||||
hg_branch.symbol = "";
|
||||
java.symbol = " ";
|
||||
julia.symbol = " ";
|
||||
memory_usage.symbol = " ";
|
||||
|
|
|
|||
|
|
@ -13,5 +13,7 @@ in {
|
|||
pkgs.noto-fonts
|
||||
pkgs.noto-fonts-cjk-sans
|
||||
pkgs.noto-fonts-emoji
|
||||
(pkgs.nerdfonts.override
|
||||
{fonts = ["NerdFontsSymbolsOnly"];})
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,13 +23,13 @@ in {
|
|||
settings.mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
height = 30;
|
||||
height = 32;
|
||||
width = monitorWidth;
|
||||
exclusive = true;
|
||||
margin-top = 10;
|
||||
margin-bottom = -12;
|
||||
|
||||
modules-left = ["clock" "battery" "hyprland/workspaces"];
|
||||
modules-left = ["custom/logo" "clock" "battery" "hyprland/workspaces"];
|
||||
modules-center = [];
|
||||
modules-right = ["custom/hyprrecord" "tray"];
|
||||
|
||||
|
|
@ -82,6 +82,11 @@ in {
|
|||
on-click = "exec hyprrecord -a --waybar screen copysave video";
|
||||
signal = 12;
|
||||
};
|
||||
"custom/logo" = {
|
||||
format = " ";
|
||||
tooltop = "false";
|
||||
on-click = "exec notify-send 'hello!'";
|
||||
};
|
||||
};
|
||||
style =
|
||||
/*
|
||||
|
|
@ -89,8 +94,8 @@ in {
|
|||
*/
|
||||
''
|
||||
* {
|
||||
font-family: "${fonts.monospace.family}";
|
||||
font-size: 19px;
|
||||
font-family: "${fonts.monospace.family}:style=Medium";
|
||||
font-size: ${toString fonts.monospace.size}px;
|
||||
border: solid #${color.border.base};
|
||||
}
|
||||
|
||||
|
|
@ -153,6 +158,13 @@ in {
|
|||
color: #${color.orange.base};
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
background-image: url('/home/ooks/Media/Pictures/my-art/pixel-art/info-icon.svg');
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 24px;
|
||||
}
|
||||
|
||||
#custom-hyprrecord {
|
||||
color: #${color.red.base};
|
||||
padding-right: 20px;
|
||||
|
|
|
|||
|
|
@ -1,22 +1,24 @@
|
|||
{
|
||||
osConfig,
|
||||
hozen,
|
||||
inputs',
|
||||
...
|
||||
}: let
|
||||
inherit (osConfig.ooknet.appearance) cursor;
|
||||
inherit (hozen) color;
|
||||
in {
|
||||
wayland.windowManager.hyprland = {
|
||||
plugins = [inputs'.hyprland-plugins.packages.borders-plus-plus];
|
||||
settings = {
|
||||
# cursor = {
|
||||
# inactive_timeout = 4;
|
||||
# };
|
||||
general = {
|
||||
border_size = 2;
|
||||
"col.inactive_border" = "rgb(${color.neutrals."700"})";
|
||||
"col.active_border" = "rgb(${color.neutrals."650"})";
|
||||
gaps_in = 10;
|
||||
gaps_out = 10;
|
||||
border_size = 2;
|
||||
"col.active_border" = "0xff${color.border.active}";
|
||||
"col.inactive_border" = "0xff${color.border.inactive}";
|
||||
};
|
||||
|
||||
exec-once = [
|
||||
|
|
@ -35,12 +37,23 @@ in {
|
|||
ignore_opacity = true;
|
||||
};
|
||||
shadow = {
|
||||
range = 12;
|
||||
offset = "3 3";
|
||||
color = "0x44000000";
|
||||
color_inactive = "0x66000000";
|
||||
enabled = true;
|
||||
range = 2;
|
||||
sharp = true;
|
||||
offset = "2 2";
|
||||
color = "0xff${color.neutrals."850"}";
|
||||
color_inactive = "0xff${color.neutrals."850"}";
|
||||
};
|
||||
};
|
||||
"plugin:borders-plus-plus" = {
|
||||
enabled = true;
|
||||
add_borders = 1;
|
||||
"col.border_1" = "rgb(${color.neutrals."600"})";
|
||||
|
||||
border_size_1 = 2;
|
||||
border_size_2 = 2;
|
||||
natural_rounding = false;
|
||||
};
|
||||
animations = {
|
||||
enabled = false;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@
|
|||
inherit (lib) mkMerge mkIf;
|
||||
inherit (osConfig.ooknet.workstation) default;
|
||||
cfg = osConfig.ooknet.workstation.programs.foot;
|
||||
fontOptions = let
|
||||
size = if fonts.monospace.bitmap then "pixelsize" else "size";
|
||||
family = if fonts.monospace.bitmap then "${fonts.monospace.family}:style=Medium" else "${fonts.monospace.family}";
|
||||
in "${family}:${size}${toString fonts.monospace.size}";
|
||||
in {
|
||||
config = mkMerge [
|
||||
(mkIf (cfg.enable || default.terminal == "foot") {
|
||||
|
|
@ -18,12 +22,12 @@ in {
|
|||
settings = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
font = "${fonts.monospace.family}:pixelsize=18:antialias=true";
|
||||
font-bold = "${fonts.monospace.family}:style=Bold:pixelsize=18:antialias=true";
|
||||
font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:antialias=true";
|
||||
font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixelsize=18:antialias=true";
|
||||
dpi-aware = "yes";
|
||||
letter-spacing = "-1px";
|
||||
font = "${fonts.monospace.family}:style=Medium:pixelsize=${toString fonts.monospace.size}",${fonts.monospace.fallback.family};
|
||||
font-bold = "${fonts.monospace.family}:style=Medium:pixelsize=${toString fonts.monospace.size}";
|
||||
font-italic = "${fonts.monospace.family}:style=Medium:pixelsize=${toString fonts.monospace.size}";
|
||||
font-bold-italic = "${fonts.monospace.family}:style=Medium:pixelsize=${toString fonts.monospace.size}";
|
||||
dpi-aware = "no";
|
||||
letter-spacing = "0";
|
||||
bold-text-in-bright = "palette-based";
|
||||
resize-delay-ms = "80";
|
||||
pad = "9x9 center";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{lib, ...}: let
|
||||
inherit (lib) mkOption;
|
||||
inherit (lib.types) str package path int;
|
||||
inherit (lib.types) str package path int bool;
|
||||
|
||||
mkFontOption = {
|
||||
family = mkOption {
|
||||
|
|
@ -11,6 +11,28 @@
|
|||
type = package;
|
||||
default = null;
|
||||
};
|
||||
size = mkOption {
|
||||
type = int;
|
||||
default = 18;
|
||||
};
|
||||
bitmap = mkOption {
|
||||
type = bool;
|
||||
default = false;
|
||||
};
|
||||
fallback = {
|
||||
family = mkOption {
|
||||
type = str;
|
||||
default = "";
|
||||
};
|
||||
package = mkOption {
|
||||
type = package;
|
||||
default = null;
|
||||
};
|
||||
size = mkOption {
|
||||
type = int;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
# imports = [./palettes];
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
in {
|
||||
options.ooknet.workstation = {
|
||||
theme = mkOption {
|
||||
type = nullOr (enum ["minimal"]);
|
||||
type = nullOr (enum ["minimal" "hozen"]);
|
||||
default = null;
|
||||
};
|
||||
profiles = mkOption {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
imports = [
|
||||
./minimal.nix
|
||||
./hozen.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
42
modules/nixos/workstation/themes/hozen.nix
Normal file
42
modules/nixos/workstation/themes/hozen.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
hozen,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
inherit (config.ooknet.workstation) theme;
|
||||
generatedWallpaper = import ./generated-wallpaper.nix {inherit hozen config pkgs;} {};
|
||||
in {
|
||||
config = mkIf (theme == "hozen") {
|
||||
ooknet.appearance = {
|
||||
fonts = {
|
||||
monospace = {
|
||||
family = "CozetteHiDpi";
|
||||
package = pkgs.cozette;
|
||||
size = 22;
|
||||
fallback = {
|
||||
family = "JetBrainsMono Nerd Font";
|
||||
package = pkgs.nerfonts.override {fonts = ["JetBrainsMono"];};
|
||||
size = 18;
|
||||
};
|
||||
};
|
||||
regular = {
|
||||
family = "Fira Sans";
|
||||
package = pkgs.fira;
|
||||
};
|
||||
};
|
||||
|
||||
cursor = {
|
||||
name = "Bibata-Modern-Ice";
|
||||
package = pkgs.bibata-cursors;
|
||||
size = 22;
|
||||
};
|
||||
|
||||
wallpaper = {
|
||||
path = "${generatedWallpaper}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue