OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
HASH      3f1184697726
DATE      2024-12-08
SUBJECT   nixos: initial bitmap font support
FILES     10 CHANGED
HASH      3f1184697726
DATE      2024-12-08
SUBJECT   nixos: initial bitmap font support
FILES     10 CHANGED
 

diff --git a/hosts/ooksdesk/default.nix b/hosts/ooksdesk/default.nix
index ccb862e..b3f3359 100644
--- a/hosts/ooksdesk/default.nix
+++ b/hosts/ooksdesk/default.nix
@@ -18,7 +18,7 @@
     };
     workstation = {
       environment = "hyprland";
-      theme = "minimal";
+      theme = "hozen";
       profiles = ["creative" "virtualization" "gaming" "media" "communication" "p
roductivity"];
       default = {
         browser = "firefox";

diff --git a/hosts/ooksdesk/default.nix b/ho
sts/ooksdesk/default.nix
index ccb862e..b3f3359 100644
--- a/hosts/ooksdesk/default.nix
+++ b/hosts/ooksdesk/default.nix
@@ -18,7 +18,7 @@
     };
     workstation = {
       environment = "hyprland";
-      theme = "minimal";
+      theme = "hozen";
       profiles = ["creative" "virtualizatio
n" "gaming" "media" "communication" "product
ivity"];
       default = {
         browser = "firefox";
 

diff --git a/modules/home/console/tools/starship.nix b/modules/home/console/tools/
starship.nix
index deb4449..95cd762 100644
--- a/modules/home/console/tools/starship.nix
+++ b/modules/home/console/tools/starship.nix
@@ -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 = "? ";

diff --git a/modules/home/console/tools/star
ship.nix b/modules/home/console/tools/starsh
ip.nix
index deb4449..95cd762 100644
--- a/modules/home/console/tools/starship.ni
x
+++ b/modules/home/console/tools/starship.ni
x
@@ -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 = "? ";
 

diff --git a/modules/home/workstation/appearance/fonts.nix b/modules/home/workstat
ion/appearance/fonts.nix
index 2354d11..1a42574 100644
--- a/modules/home/workstation/appearance/fonts.nix
+++ b/modules/home/workstation/appearance/fonts.nix
@@ -13,5 +13,7 @@ in {
     pkgs.noto-fonts
     pkgs.noto-fonts-cjk-sans
     pkgs.noto-fonts-emoji
+    (pkgs.nerdfonts.override
+      {fonts = ["NerdFontsSymbolsOnly"];})
   ];
 }

diff --git a/modules/home/workstation/appear
ance/fonts.nix b/modules/home/workstation/ap
pearance/fonts.nix
index 2354d11..1a42574 100644
--- a/modules/home/workstation/appearance/fo
nts.nix
+++ b/modules/home/workstation/appearance/fo
nts.nix
@@ -13,5 +13,7 @@ in {
     pkgs.noto-fonts
     pkgs.noto-fonts-cjk-sans
     pkgs.noto-fonts-emoji
+    (pkgs.nerdfonts.override
+      {fonts = ["NerdFontsSymbolsOnly"];})
   ];
 }
 

diff --git a/modules/home/workstation/hyprland/components/waybar.nix b/modules/hom
e/workstation/hyprland/components/waybar.nix
index 89ac6b0..16c44b7 100644
--- a/modules/home/workstation/hyprland/components/waybar.nix
+++ b/modules/home/workstation/hyprland/components/waybar.nix
@@ -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/inf
o-icon.svg');
+            background-position: center;
+            background-repeat: no-repeat;
+            background-size: 24px;
+          }
+
           #custom-hyprrecord {
             color: #${color.red.base};
             padding-right: 20px;

diff --git a/modules/home/workstation/hyprla
nd/components/waybar.nix b/modules/home/work
station/hyprland/components/waybar.nix
index 89ac6b0..16c44b7 100644
--- a/modules/home/workstation/hyprland/comp
onents/waybar.nix
+++ b/modules/home/workstation/hyprland/comp
onents/waybar.nix
@@ -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" "cloc
k" "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 'hel
lo!'";
+        };
       };
       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.mon
ospace.size}px;
             border: solid #${color.border.b
ase};
           }
 
@@ -153,6 +158,13 @@ in {
             color: #${color.orange.base};
           }
 
+          #custom-logo {
+            background-image: url('/home/oo
ks/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;
 

diff --git a/modules/home/workstation/hyprland/settings/appearance.nix b/modules/h
ome/workstation/hyprland/settings/appearance.nix
index 2f06c55..2b15154 100644
--- a/modules/home/workstation/hyprland/settings/appearance.nix
+++ b/modules/home/workstation/hyprland/settings/appearance.nix
@@ -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;
       };

diff --git a/modules/home/workstation/hyprla
nd/settings/appearance.nix b/modules/home/wo
rkstation/hyprland/settings/appearance.nix
index 2f06c55..2b15154 100644
--- a/modules/home/workstation/hyprland/sett
ings/appearance.nix
+++ b/modules/home/workstation/hyprland/sett
ings/appearance.nix
@@ -1,22 +1,24 @@
 {
   osConfig,
   hozen,
+  inputs',
   ...
 }: let
   inherit (osConfig.ooknet.appearance) curs
or;
   inherit (hozen) color;
 in {
   wayland.windowManager.hyprland = {
+    plugins = [inputs'.hyprland-plugins.pac
kages.borders-plus-plus];
     settings = {
       # cursor = {
       #   inactive_timeout = 4;
       # };
       general = {
+        border_size = 2;
+        "col.inactive_border" = "rgb(${colo
r.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${colo
r.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."85
0"}";
+          color_inactive = "0xff${color.neu
trals."850"}";
         };
       };
+      "plugin:borders-plus-plus" = {
+        enabled = true;
+        add_borders = 1;
+        "col.border_1" = "rgb(${color.neutr
als."600"})";
+
+        border_size_1 = 2;
+        border_size_2 = 2;
+        natural_rounding = false;
+      };
       animations = {
         enabled = false;
       };
 

diff --git a/modules/home/workstation/terminal/foot.nix b/modules/home/workstation
/terminal/foot.nix
index 2c481cf..3a6f95b 100644
--- a/modules/home/workstation/terminal/foot.nix
+++ b/modules/home/workstation/terminal/foot.nix
@@ -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=Medi
um" 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:antial
ias=true";
-            font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:an
tialias=true";
-            font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixel
size=18:antialias=true";
-            dpi-aware = "yes";
-            letter-spacing = "-1px";
+            font = "${fonts.monospace.family}:style=Medium:pixelsize=${toString f
onts.monospace.size}",${fonts.monospace.fallback.family};
+            font-bold = "${fonts.monospace.family}:style=Medium:pixelsize=${toStr
ing fonts.monospace.size}";
+            font-italic = "${fonts.monospace.family}:style=Medium:pixelsize=${toS
tring 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";

diff --git a/modules/home/workstation/termin
al/foot.nix b/modules/home/workstation/termi
nal/foot.nix
index 2c481cf..3a6f95b 100644
--- a/modules/home/workstation/terminal/foot
.nix
+++ b/modules/home/workstation/terminal/foot
.nix
@@ -9,6 +9,10 @@
   inherit (lib) mkMerge mkIf;
   inherit (osConfig.ooknet.workstation) def
ault;
   cfg = osConfig.ooknet.workstation.program
s.foot;
+  fontOptions = let
+    size = if fonts.monospace.bitmap then "
pixelsize" else "size";
+    family = if fonts.monospace.bitmap then
 "${fonts.monospace.family}:style=Medium" el
se "${fonts.monospace.family}";
+  in "${family}:${size}${toString fonts.mon
ospace.size}";
 in {
   config = mkMerge [
     (mkIf (cfg.enable || default.terminal =
= "foot") {
@@ -18,12 +22,12 @@ in {
         settings = {
           main = {
             term = "xterm-256color";
-            font = "${fonts.monospace.famil
y}:pixelsize=18:antialias=true";
-            font-bold = "${fonts.monospace.
family}:style=Bold:pixelsize=18:antialias=tr
ue";
-            font-italic = "${fonts.monospac
e.family}:style=Italic:pixelsize=18:antialia
s=true";
-            font-bold-italic = "${fonts.mon
ospace.family}:style=Bold Italic:pixelsize=1
8:antialias=true";
-            dpi-aware = "yes";
-            letter-spacing = "-1px";
+            font = "${fonts.monospace.famil
y}:style=Medium:pixelsize=${toString fonts.m
onospace.size}",${fonts.monospace.fallback.f
amily};
+            font-bold = "${fonts.monospace.
family}:style=Medium:pixelsize=${toString fo
nts.monospace.size}";
+            font-italic = "${fonts.monospac
e.family}:style=Medium:pixelsize=${toString 
fonts.monospace.size}";
+            font-bold-italic = "${fonts.mon
ospace.family}:style=Medium:pixelsize=${toSt
ring fonts.monospace.size}";
+            dpi-aware = "no";
+            letter-spacing = "0";
             bold-text-in-bright = "palette-
based";
             resize-delay-ms = "80";
             pad = "9x9 center";
 

diff --git a/modules/nixos/appearance/options.nix b/modules/nixos/appearance/optio
ns.nix
index da0de81..aea78c4 100644
--- a/modules/nixos/appearance/options.nix
+++ b/modules/nixos/appearance/options.nix
@@ -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];

diff --git a/modules/nixos/appearance/option
s.nix b/modules/nixos/appearance/options.nix
index da0de81..aea78c4 100644
--- a/modules/nixos/appearance/options.nix
+++ b/modules/nixos/appearance/options.nix
@@ -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];
 

diff --git a/modules/nixos/workstation/options.nix b/modules/nixos/workstation/opt
ions.nix
index f4e72a4..7f1ff9b 100644
--- a/modules/nixos/workstation/options.nix
+++ b/modules/nixos/workstation/options.nix
@@ -4,7 +4,7 @@
 in {
   options.ooknet.workstation = {
     theme = mkOption {
-      type = nullOr (enum ["minimal"]);
+      type = nullOr (enum ["minimal" "hozen"]);
       default = null;
     };
     profiles = mkOption {

diff --git a/modules/nixos/workstation/optio
ns.nix b/modules/nixos/workstation/options.n
ix
index f4e72a4..7f1ff9b 100644
--- a/modules/nixos/workstation/options.nix
+++ b/modules/nixos/workstation/options.nix
@@ -4,7 +4,7 @@
 in {
   options.ooknet.workstation = {
     theme = mkOption {
-      type = nullOr (enum ["minimal"]);
+      type = nullOr (enum ["minimal" "hozen
"]);
       default = null;
     };
     profiles = mkOption {
 

diff --git a/modules/nixos/workstation/themes/default.nix b/modules/nixos/workstat
ion/themes/default.nix
index a153a13..269af8e 100644
--- a/modules/nixos/workstation/themes/default.nix
+++ b/modules/nixos/workstation/themes/default.nix
@@ -1,5 +1,6 @@
 {
   imports = [
     ./minimal.nix
+    ./hozen.nix
   ];
 }

diff --git a/modules/nixos/workstation/theme
s/default.nix b/modules/nixos/workstation/th
emes/default.nix
index a153a13..269af8e 100644
--- a/modules/nixos/workstation/themes/defau
lt.nix
+++ b/modules/nixos/workstation/themes/defau
lt.nix
@@ -1,5 +1,6 @@
 {
   imports = [
     ./minimal.nix
+    ./hozen.nix
   ];
 }
 

diff --git a/modules/nixos/workstation/themes/hozen.nix b/modules/nixos/workstatio
n/themes/hozen.nix
new file mode 100644
index 0000000..83f8d12
--- /dev/null
+++ b/modules/nixos/workstation/themes/hozen.nix
@@ -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 pkg
s;} {};
+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}";
+      };
+    };
+  };
+}

diff --git a/modules/nixos/workstation/theme
s/hozen.nix b/modules/nixos/workstation/them
es/hozen.nix
new file mode 100644
index 0000000..83f8d12
--- /dev/null
+++ b/modules/nixos/workstation/themes/hozen
.nix
@@ -0,0 +1,42 @@
+{
+  config,
+  lib,
+  pkgs,
+  hozen,
+  ...
+}: let
+  inherit (lib) mkIf;
+  inherit (config.ooknet.workstation) theme
;
+  generatedWallpaper = import ./generated-w
allpaper.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 Fo
nt";
+            package = pkgs.nerfonts.overrid
e {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}";
+      };
+    };
+  };
+}
 
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET