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:
parent
e4ec3df115
commit
fb7b45f98d
|
@ -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.
|
||||
|
||||
## Screenshot (Laptop)
|
||||
## Screenshot (`toki-fire`)
|
||||
|
||||
![screenshot](/assets/screenshot.png)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ config, lib, ... }:
|
||||
lib.mkIf (config.platform == "laptop") {
|
||||
lib.mkIf (config.machine == "fire") {
|
||||
services.upower = {
|
||||
enable = true;
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
{ config, pkgs, lib, username, fullname, ... }:
|
||||
let
|
||||
inherit (config) platform;
|
||||
isMobile = platform == "mobile";
|
||||
inherit (config) machine;
|
||||
isMobile = machine == "air";
|
||||
|
||||
hashedPassword =
|
||||
if platform == "desktop" then
|
||||
"$6$HYibiGhDN.JgLtw6$cecU7NjfumTUJSkFNFQG4uVgdd3tTPLGxK0zHAwYn3un/V43IUlyVBNKoRMLCQk65RckbD/.AjsLFVFKUUHVA/"
|
||||
else if platform == "laptop" then
|
||||
"$6$y3eb1phxFWnParRT$w1LNfxJ2ByHoiBa5ywh4STGuIK/r4Tnyxx2Xe/nlovrE6LuuLAVdKRFAroUTtUI/d2BNGI9ErjZ2z2Dl7w/t00"
|
||||
else # if platform == "mobile"
|
||||
"$6$vmmMT7pEY1W0Bj9R$Kb6nuwdg/KzCrGcUPkEo2jJ6a2NJRikiOeN8/I8ObU1K6rVYvgYqPVgPg9NkLaUScdh1PWcabuvaHCFLMw14A0";
|
||||
if machine == "earth" then
|
||||
"$y$j9T$rpQs/Fnsxh4DNw4qDSvTu.$nzA1EskOnWrYM.Iba7q73O.QPEn3DFWrX2.KY8mKza."
|
||||
else if machine == "fire" then
|
||||
"$y$j9T$EXc0TFu9LQhQ9YGrOkb7u0$LpwNG0XpUIVSltLqUw7CAOLSsI2rZr1RTBnJai5dkM7"
|
||||
else # if machine == "air"
|
||||
"$y$j9T$zF34p.W/HFKrWde5Rb1nq/$1Q5IN9IT.IQ6SLg8InUZM5L27.jQV.cRtNENnUPp0ZC";
|
||||
in
|
||||
{
|
||||
nix.package = pkgs.nixFlakes;
|
||||
|
@ -24,7 +24,7 @@ in
|
|||
boot.loader.systemd-boot.enable = !isMobile;
|
||||
boot.loader.efi.canTouchEfiVariables = !isMobile;
|
||||
|
||||
networking.hostName = "kiana-${platform}";
|
||||
networking.hostName = "toki-${machine}";
|
||||
networking.wireless.enable = false;
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ let
|
|||
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; [
|
||||
tokyo-night-sddm # Theme
|
||||
qtbase
|
||||
|
|
68
flake.nix
68
flake.nix
|
@ -31,52 +31,51 @@ outputs = { self,
|
|||
moduleArgs = { inherit username fullname email; } // inputs;
|
||||
|
||||
mkConfig =
|
||||
{ platform,
|
||||
{ machine,
|
||||
system ? "x86_64-linux",
|
||||
configModules ? [ ./config ],
|
||||
configExtraModules ? [],
|
||||
homeModules ? [ ./home-manager ],
|
||||
homeExtraModules ? []
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules =
|
||||
configModules ++
|
||||
configExtraModules ++
|
||||
[
|
||||
./platform.nix
|
||||
{ _module.args = moduleArgs;
|
||||
inherit platform; }
|
||||
./hardware-configuration/${platform}.nix
|
||||
{
|
||||
"toki-${machine}" = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules =
|
||||
configModules ++
|
||||
configExtraModules ++
|
||||
[
|
||||
./machine.nix
|
||||
{ _module.args = moduleArgs;
|
||||
inherit machine; }
|
||||
./hardware-configuration/${machine}.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = moduleArgs;
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = moduleArgs;
|
||||
|
||||
home-manager.sharedModules = [ ./platform.nix { inherit platform; } ];
|
||||
home-manager.users.${username} = {
|
||||
imports = homeModules ++ homeExtraModules;
|
||||
};
|
||||
}
|
||||
];
|
||||
home-manager.sharedModules = [ ./machine.nix { inherit machine; } ];
|
||||
home-manager.users.${username} = {
|
||||
imports = homeModules ++ homeExtraModules;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
in {
|
||||
nixosConfigurations = {
|
||||
"${username}-desktop" = mkConfig {
|
||||
platform = "desktop";
|
||||
};
|
||||
|
||||
"${username}-laptop" = mkConfig {
|
||||
platform = "laptop";
|
||||
nixosConfigurations =
|
||||
mkConfig {
|
||||
machine = "earth";
|
||||
} //
|
||||
mkConfig {
|
||||
machine = "fire";
|
||||
configExtraModules = [
|
||||
nixos-hardware.nixosModules.microsoft-surface-pro-intel
|
||||
];
|
||||
};
|
||||
|
||||
"${username}-mobile" = mkConfig {
|
||||
platform = "mobile";
|
||||
} //
|
||||
mkConfig {
|
||||
machine = "air";
|
||||
system = "aarch64-linux";
|
||||
configExtraModules = [
|
||||
./mobile/config.nix
|
||||
|
@ -89,6 +88,5 @@ outputs = { self,
|
|||
./mobile/home-manager.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -249,7 +249,7 @@
|
|||
|
||||
;; Bar Layout
|
||||
|
||||
(defwidget laptop_bar_left_edge []
|
||||
(defwidget fire_bar_left_edge []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
|
@ -257,17 +257,17 @@
|
|||
(bar_window :class-limit 60
|
||||
:title-limit 50)))
|
||||
|
||||
(defwidget laptop_bar_left_wing []
|
||||
(defwidget fire_bar_left_wing []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
:hexpand true
|
||||
(bar_time :width 175)))
|
||||
|
||||
(defwidget laptop_bar_center []
|
||||
(defwidget fire_bar_center []
|
||||
(bar_workspaces))
|
||||
|
||||
(defwidget laptop_bar_right_wing []
|
||||
(defwidget fire_bar_right_wing []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:hexpand true
|
||||
|
@ -275,7 +275,7 @@
|
|||
:artist-limit 30
|
||||
:title-limit 25)))
|
||||
|
||||
(defwidget laptop_bar_right_edge []
|
||||
(defwidget fire_bar_right_edge []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
|
@ -292,22 +292,22 @@
|
|||
(bar_sep)
|
||||
(bar_idleinhibit)))
|
||||
|
||||
(defwidget laptop_bar_layout []
|
||||
(defwidget fire_bar_layout []
|
||||
(centerbox :class "bar"
|
||||
:orientation "h"
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:hexpand true
|
||||
(laptop_bar_left_edge)
|
||||
(laptop_bar_left_wing))
|
||||
(laptop_bar_center)
|
||||
(fire_bar_left_edge)
|
||||
(fire_bar_left_wing))
|
||||
(fire_bar_center)
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
(laptop_bar_right_wing)
|
||||
(laptop_bar_right_edge))))
|
||||
(fire_bar_right_wing)
|
||||
(fire_bar_right_edge))))
|
||||
|
||||
|
||||
(defwidget desktop_bar_left_edge []
|
||||
(defwidget earth_bar_left_edge []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
|
@ -315,17 +315,17 @@
|
|||
(bar_window :class-limit 90
|
||||
:title-limit 80)))
|
||||
|
||||
(defwidget desktop_bar_left_wing []
|
||||
(defwidget earth_bar_left_wing []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
:hexpand true
|
||||
(bar_time :width 175)))
|
||||
|
||||
(defwidget desktop_bar_center []
|
||||
(defwidget earth_bar_center []
|
||||
(bar_workspaces))
|
||||
|
||||
(defwidget desktop_bar_right_wing []
|
||||
(defwidget earth_bar_right_wing []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:hexpand true
|
||||
|
@ -333,7 +333,7 @@
|
|||
:artist-limit 30
|
||||
:title-limit 25)))
|
||||
|
||||
(defwidget desktop_bar_right_edge []
|
||||
(defwidget earth_bar_right_edge []
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
|
@ -348,22 +348,22 @@
|
|||
(bar_sep)
|
||||
(bar_idleinhibit)))
|
||||
|
||||
(defwidget desktop_bar_layout []
|
||||
(defwidget earth_bar_layout []
|
||||
(centerbox :class "bar"
|
||||
:orientation "h"
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
:hexpand true
|
||||
(desktop_bar_left_edge)
|
||||
(desktop_bar_left_wing))
|
||||
(desktop_bar_center)
|
||||
(earth_bar_left_edge)
|
||||
(earth_bar_left_wing))
|
||||
(earth_bar_center)
|
||||
(box :orientation "h"
|
||||
:space-evenly false
|
||||
(desktop_bar_right_wing)
|
||||
(desktop_bar_right_edge))))
|
||||
(earth_bar_right_wing)
|
||||
(earth_bar_right_edge))))
|
||||
|
||||
|
||||
(defwindow laptop_bar
|
||||
(defwindow fire_bar
|
||||
:monitor 0
|
||||
:geometry (geometry :width "100%"
|
||||
:height "3%"
|
||||
|
@ -372,9 +372,9 @@
|
|||
:stacking "fg"
|
||||
:exclusive true
|
||||
:focusable false
|
||||
(laptop_bar_layout))
|
||||
(fire_bar_layout))
|
||||
|
||||
(defwindow desktop_bar
|
||||
(defwindow earth_bar
|
||||
:monitor 0
|
||||
:geometry (geometry :width "100%"
|
||||
:height "3%"
|
||||
|
@ -383,4 +383,4 @@
|
|||
:stacking "fg"
|
||||
:exclusive true
|
||||
:focusable false
|
||||
(desktop_bar_layout))
|
||||
(earth_bar_layout))
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
modules-center = [ "hyprland/window" ];
|
||||
|
||||
modules-right =
|
||||
if config.platform == "laptop" then
|
||||
if config.machine == "fire" then
|
||||
[ "battery" "pulseaudio" "backlight" "network" "clock" "idle_inhibitor" ]
|
||||
else
|
||||
[ "pulseaudio" "network" "clock" "idle_inhibitor" ];
|
||||
|
@ -217,7 +217,7 @@
|
|||
#pulseaudio {
|
||||
background-color: @altblend;
|
||||
${
|
||||
if config.platform == "laptop" then
|
||||
if config.machine == "fire" then
|
||||
''
|
||||
margin: 3px 0px 3px 2px;
|
||||
padding-right: 5px;
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
|
||||
# WLuma
|
||||
|
||||
# systemd.user.services.wluma = lib.mkIf (config.platform == "laptop") {
|
||||
# systemd.user.services.wluma = lib.mkIf (config.machine== "fire") {
|
||||
# Install.WantedBy = [ "graphical-session.target" ];
|
||||
|
||||
# Unit = {
|
||||
|
|
7
machine.nix
Normal file
7
machine.nix
Normal 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" ];
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options.platform = lib.mkOption {
|
||||
description = "The platform to configure for";
|
||||
type = lib.types.str;
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue