feat!: change machine hostnames

Instead of merely naming my systems "laptop", "desktop", etc. (boring),
I now have them named after Aristotelian elements (cool).

This also gives me an excuse to refactor my flake file.
This commit is contained in:
Kiana Sheibani 2024-10-15 03:25:56 -04:00
parent e4ec3df115
commit fb7b45f98d
Signed by: toki
GPG key ID: 6CB106C25E86A9F7
13 changed files with 81 additions and 83 deletions

View file

@ -2,7 +2,7 @@
This is my repository for my NixOS configurations for each of my devices, most of which share the majority of their code. This is my repository for my NixOS configurations for each of my devices, most of which share the majority of their code.
## Screenshot (Laptop) ## Screenshot (`toki-fire`)
![screenshot](/assets/screenshot.png) ![screenshot](/assets/screenshot.png)

View file

@ -1,5 +1,5 @@
{ config, lib, ... }: { config, lib, ... }:
lib.mkIf (config.platform == "laptop") { lib.mkIf (config.machine == "fire") {
services.upower = { services.upower = {
enable = true; enable = true;

View file

@ -1,15 +1,15 @@
{ config, pkgs, lib, username, fullname, ... }: { config, pkgs, lib, username, fullname, ... }:
let let
inherit (config) platform; inherit (config) machine;
isMobile = platform == "mobile"; isMobile = machine == "air";
hashedPassword = hashedPassword =
if platform == "desktop" then if machine == "earth" then
"$6$HYibiGhDN.JgLtw6$cecU7NjfumTUJSkFNFQG4uVgdd3tTPLGxK0zHAwYn3un/V43IUlyVBNKoRMLCQk65RckbD/.AjsLFVFKUUHVA/" "$y$j9T$rpQs/Fnsxh4DNw4qDSvTu.$nzA1EskOnWrYM.Iba7q73O.QPEn3DFWrX2.KY8mKza."
else if platform == "laptop" then else if machine == "fire" then
"$6$y3eb1phxFWnParRT$w1LNfxJ2ByHoiBa5ywh4STGuIK/r4Tnyxx2Xe/nlovrE6LuuLAVdKRFAroUTtUI/d2BNGI9ErjZ2z2Dl7w/t00" "$y$j9T$EXc0TFu9LQhQ9YGrOkb7u0$LpwNG0XpUIVSltLqUw7CAOLSsI2rZr1RTBnJai5dkM7"
else # if platform == "mobile" else # if machine == "air"
"$6$vmmMT7pEY1W0Bj9R$Kb6nuwdg/KzCrGcUPkEo2jJ6a2NJRikiOeN8/I8ObU1K6rVYvgYqPVgPg9NkLaUScdh1PWcabuvaHCFLMw14A0"; "$y$j9T$zF34p.W/HFKrWde5Rb1nq/$1Q5IN9IT.IQ6SLg8InUZM5L27.jQV.cRtNENnUPp0ZC";
in in
{ {
nix.package = pkgs.nixFlakes; nix.package = pkgs.nixFlakes;
@ -24,7 +24,7 @@ in
boot.loader.systemd-boot.enable = !isMobile; boot.loader.systemd-boot.enable = !isMobile;
boot.loader.efi.canTouchEfiVariables = !isMobile; boot.loader.efi.canTouchEfiVariables = !isMobile;
networking.hostName = "kiana-${platform}"; networking.hostName = "toki-${machine}";
networking.wireless.enable = false; networking.wireless.enable = false;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;

View file

@ -10,7 +10,7 @@ let
mv * $out/share/sddm/themes/tokyo-night-sddm mv * $out/share/sddm/themes/tokyo-night-sddm
''; '';
}; };
in lib.mkIf (config.platform != "mobile") { in lib.mkIf (config.machine != "air") {
environment.systemPackages = with pkgs.libsForQt5; [ environment.systemPackages = with pkgs.libsForQt5; [
tokyo-night-sddm # Theme tokyo-night-sddm # Theme
qtbase qtbase

View file

@ -31,52 +31,51 @@ outputs = { self,
moduleArgs = { inherit username fullname email; } // inputs; moduleArgs = { inherit username fullname email; } // inputs;
mkConfig = mkConfig =
{ platform, { machine,
system ? "x86_64-linux", system ? "x86_64-linux",
configModules ? [ ./config ], configModules ? [ ./config ],
configExtraModules ? [], configExtraModules ? [],
homeModules ? [ ./home-manager ], homeModules ? [ ./home-manager ],
homeExtraModules ? [] homeExtraModules ? []
}: }:
nixpkgs.lib.nixosSystem { {
"toki-${machine}" = nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = modules =
configModules ++ configModules ++
configExtraModules ++ configExtraModules ++
[ [
./platform.nix ./machine.nix
{ _module.args = moduleArgs; { _module.args = moduleArgs;
inherit platform; } inherit machine; }
./hardware-configuration/${platform}.nix ./hardware-configuration/${machine}.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = moduleArgs; home-manager.extraSpecialArgs = moduleArgs;
home-manager.sharedModules = [ ./platform.nix { inherit platform; } ]; home-manager.sharedModules = [ ./machine.nix { inherit machine; } ];
home-manager.users.${username} = { home-manager.users.${username} = {
imports = homeModules ++ homeExtraModules; imports = homeModules ++ homeExtraModules;
}; };
} }
]; ];
}; };
in {
nixosConfigurations = {
"${username}-desktop" = mkConfig {
platform = "desktop";
}; };
in {
"${username}-laptop" = mkConfig { nixosConfigurations =
platform = "laptop"; mkConfig {
machine = "earth";
} //
mkConfig {
machine = "fire";
configExtraModules = [ configExtraModules = [
nixos-hardware.nixosModules.microsoft-surface-pro-intel nixos-hardware.nixosModules.microsoft-surface-pro-intel
]; ];
}; } //
mkConfig {
"${username}-mobile" = mkConfig { machine = "air";
platform = "mobile";
system = "aarch64-linux"; system = "aarch64-linux";
configExtraModules = [ configExtraModules = [
./mobile/config.nix ./mobile/config.nix
@ -90,5 +89,4 @@ outputs = { self,
]; ];
}; };
}; };
};
} }

View file

@ -249,7 +249,7 @@
;; Bar Layout ;; Bar Layout
(defwidget laptop_bar_left_edge [] (defwidget fire_bar_left_edge []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "start" :halign "start"
@ -257,17 +257,17 @@
(bar_window :class-limit 60 (bar_window :class-limit 60
:title-limit 50))) :title-limit 50)))
(defwidget laptop_bar_left_wing [] (defwidget fire_bar_left_wing []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "end" :halign "end"
:hexpand true :hexpand true
(bar_time :width 175))) (bar_time :width 175)))
(defwidget laptop_bar_center [] (defwidget fire_bar_center []
(bar_workspaces)) (bar_workspaces))
(defwidget laptop_bar_right_wing [] (defwidget fire_bar_right_wing []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:hexpand true :hexpand true
@ -275,7 +275,7 @@
:artist-limit 30 :artist-limit 30
:title-limit 25))) :title-limit 25)))
(defwidget laptop_bar_right_edge [] (defwidget fire_bar_right_edge []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "end" :halign "end"
@ -292,22 +292,22 @@
(bar_sep) (bar_sep)
(bar_idleinhibit))) (bar_idleinhibit)))
(defwidget laptop_bar_layout [] (defwidget fire_bar_layout []
(centerbox :class "bar" (centerbox :class "bar"
:orientation "h" :orientation "h"
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:hexpand true :hexpand true
(laptop_bar_left_edge) (fire_bar_left_edge)
(laptop_bar_left_wing)) (fire_bar_left_wing))
(laptop_bar_center) (fire_bar_center)
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
(laptop_bar_right_wing) (fire_bar_right_wing)
(laptop_bar_right_edge)))) (fire_bar_right_edge))))
(defwidget desktop_bar_left_edge [] (defwidget earth_bar_left_edge []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "start" :halign "start"
@ -315,17 +315,17 @@
(bar_window :class-limit 90 (bar_window :class-limit 90
:title-limit 80))) :title-limit 80)))
(defwidget desktop_bar_left_wing [] (defwidget earth_bar_left_wing []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "end" :halign "end"
:hexpand true :hexpand true
(bar_time :width 175))) (bar_time :width 175)))
(defwidget desktop_bar_center [] (defwidget earth_bar_center []
(bar_workspaces)) (bar_workspaces))
(defwidget desktop_bar_right_wing [] (defwidget earth_bar_right_wing []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:hexpand true :hexpand true
@ -333,7 +333,7 @@
:artist-limit 30 :artist-limit 30
:title-limit 25))) :title-limit 25)))
(defwidget desktop_bar_right_edge [] (defwidget earth_bar_right_edge []
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:halign "end" :halign "end"
@ -348,22 +348,22 @@
(bar_sep) (bar_sep)
(bar_idleinhibit))) (bar_idleinhibit)))
(defwidget desktop_bar_layout [] (defwidget earth_bar_layout []
(centerbox :class "bar" (centerbox :class "bar"
:orientation "h" :orientation "h"
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
:hexpand true :hexpand true
(desktop_bar_left_edge) (earth_bar_left_edge)
(desktop_bar_left_wing)) (earth_bar_left_wing))
(desktop_bar_center) (earth_bar_center)
(box :orientation "h" (box :orientation "h"
:space-evenly false :space-evenly false
(desktop_bar_right_wing) (earth_bar_right_wing)
(desktop_bar_right_edge)))) (earth_bar_right_edge))))
(defwindow laptop_bar (defwindow fire_bar
:monitor 0 :monitor 0
:geometry (geometry :width "100%" :geometry (geometry :width "100%"
:height "3%" :height "3%"
@ -372,9 +372,9 @@
:stacking "fg" :stacking "fg"
:exclusive true :exclusive true
:focusable false :focusable false
(laptop_bar_layout)) (fire_bar_layout))
(defwindow desktop_bar (defwindow earth_bar
:monitor 0 :monitor 0
:geometry (geometry :width "100%" :geometry (geometry :width "100%"
:height "3%" :height "3%"
@ -383,4 +383,4 @@
:stacking "fg" :stacking "fg"
:exclusive true :exclusive true
:focusable false :focusable false
(desktop_bar_layout)) (earth_bar_layout))

View file

@ -15,7 +15,7 @@
modules-center = [ "hyprland/window" ]; modules-center = [ "hyprland/window" ];
modules-right = modules-right =
if config.platform == "laptop" then if config.machine == "fire" then
[ "battery" "pulseaudio" "backlight" "network" "clock" "idle_inhibitor" ] [ "battery" "pulseaudio" "backlight" "network" "clock" "idle_inhibitor" ]
else else
[ "pulseaudio" "network" "clock" "idle_inhibitor" ]; [ "pulseaudio" "network" "clock" "idle_inhibitor" ];
@ -217,7 +217,7 @@
#pulseaudio { #pulseaudio {
background-color: @altblend; background-color: @altblend;
${ ${
if config.platform == "laptop" then if config.machine == "fire" then
'' ''
margin: 3px 0px 3px 2px; margin: 3px 0px 3px 2px;
padding-right: 5px; padding-right: 5px;

View file

@ -143,7 +143,7 @@
# WLuma # WLuma
# systemd.user.services.wluma = lib.mkIf (config.platform == "laptop") { # systemd.user.services.wluma = lib.mkIf (config.machine== "fire") {
# Install.WantedBy = [ "graphical-session.target" ]; # Install.WantedBy = [ "graphical-session.target" ];
# Unit = { # Unit = {

7
machine.nix Normal file
View file

@ -0,0 +1,7 @@
{ lib, ... }:
{
options.machine = lib.mkOption {
description = "The machine hostname to configure for";
type = lib.types.enum [ "earth" "fire" "air" "water" ];
};
}

View file

@ -1,7 +0,0 @@
{ lib, ... }:
{
options.platform = lib.mkOption {
description = "The platform to configure for";
type = lib.types.str;
};
}