feat(pumo): add config for phone pumo

This commit is contained in:
2026-04-30 13:51:05 +02:00
parent 5514d347c7
commit 800d0adeea
10 changed files with 141 additions and 15 deletions

17
flake.lock generated
View File

@@ -411,6 +411,22 @@
"url": "https://labs.phundrak.com/phundrak/jj-cz" "url": "https://labs.phundrak.com/phundrak/jj-cz"
} }
}, },
"mobile-nixos": {
"flake": false,
"locked": {
"lastModified": 1772289954,
"narHash": "sha256-iDdtwk/dFb6AsXMtcOpZixxXl6C1HNUPe6cglxxHO7M=",
"owner": "mobile-nixos",
"repo": "mobile-nixos",
"rev": "1a9e0af79dc7b5e29ed772f1a8a76fcbd9d45fdf",
"type": "github"
},
"original": {
"owner": "mobile-nixos",
"repo": "mobile-nixos",
"type": "github"
}
},
"nix": { "nix": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@@ -593,6 +609,7 @@
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"home-manager": "home-manager", "home-manager": "home-manager",
"jj-cz": "jj-cz", "jj-cz": "jj-cz",
"mobile-nixos": "mobile-nixos",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"opencode": "opencode", "opencode": "opencode",

View File

@@ -30,6 +30,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
mobile-nixos = {
url = "github:mobile-nixos/mobile-nixos";
flake = false; # It is not as a flake
};
opencode = { opencode = {
url = "github:anomalyco/opencode/v1.3.15"; url = "github:anomalyco/opencode/v1.3.15";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -86,6 +91,7 @@
nixpkgs, nixpkgs,
flake-utils, flake-utils,
home-manager, home-manager,
mobile-nixos,
srvos, srvos,
... ...
} @ inputs: } @ inputs:
@@ -177,6 +183,14 @@
./hosts/naromk3/configuration.nix ./hosts/naromk3/configuration.nix
]; ];
}; };
pumo = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
inherit specialArgs;
modules = withSystemModules [
(import "${mobile-nixos}/lib/configuration.nix" {device = "oneplus-enchilada";})
./hosts/pumo
];
};
tilo = nixpkgs.lib.nixosSystem { tilo = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
modules = withSystemModules ./hosts/tilo/configuration.nix; modules = withSystemModules ./hosts/tilo/configuration.nix;

91
hosts/pumo/default.nix Normal file
View File

@@ -0,0 +1,91 @@
# Minimal configuration for OnePlus 6 (enchilada) NixOS Mobile
# Focus on essentials: SSH, wireless, and basic tools
{
pkgs,
inputs,
...
}: {
imports = [
inputs.sops-nix.nixosModules.sops
../../system
];
nixpkgs.config.permittedInsecurePackages = ["olm-3.2.16"];
mySystem = {
desktop = {
hyprland.enable = true;
niri.enable = true;
waydroid.enable = true;
xserver = {
enable = true;
de = "gnome";
};
};
dev.docker = {
enable = true;
podman.enable = true;
autoprune.enable = true;
};
hardware = {
bluetooth.enable = true;
sound = {
enable = true;
usePulseaudio = true;
};
};
i18n.input.enable = true;
misc = {
keymap = "fr-bepo";
mobile = true;
};
networking = {
hostname = "pumo";
id = "93595b88";
};
packages = {
appimage.enable = true;
flatpak.enable = true;
nix.nix-ld.enable = true;
};
services = {
languagetool.enable = true;
printing.enable = true;
ssh.enable = true;
};
users = {
root.disablePassword = true;
phundrak = {
enable = true;
trusted = true;
extraGroups = ["feedbackd"];
};
};
};
programs = {
dconf.enable = true;
calls.enable = true;
zsh.enable = true;
};
hardware.sensor.iio.enable = true;
# Minimal essential packages
environment.systemPackages = with pkgs; [
chatty # IM and SMS
epiphany
nixd
git
vim
emacs
wget
curl
jujutsu
firefox
kitty
];
system.stateVersion = "25.11";
}

View File

@@ -54,7 +54,7 @@ in {
}; };
}; };
config.boot = { config.boot = mkIf (! config.mySystem.misc.mobile) {
initrd.kernelModules = lib.lists.singleton ( initrd.kernelModules = lib.lists.singleton (
if config.mySystem.hardware.amdgpu.enable if config.mySystem.hardware.amdgpu.enable
then "amdgpu" then "amdgpu"

View File

@@ -30,6 +30,7 @@ in {
example = "fr-bepo"; example = "fr-bepo";
description = "Keymap to use in the TTY console"; description = "Keymap to use in the TTY console";
}; };
mobile = mkEnableOption "Enable if using Mobile NixOS";
}; };
config = { config = {

View File

@@ -30,6 +30,7 @@ in {
games.enable = false; games.enable = false;
gnome-remote-desktop.enable = true; gnome-remote-desktop.enable = true;
gnome-online-accounts.enable = true; gnome-online-accounts.enable = true;
gnome-keyring.enable = true;
sushi.enable = true; sushi.enable = true;
}; };

View File

@@ -8,7 +8,8 @@ with lib; let
cfg = config.mySystem.hardware.sound; cfg = config.mySystem.hardware.sound;
in { in {
options.mySystem.hardware.sound = { options.mySystem.hardware.sound = {
enable = mkEnableOption "Whether to enable sounds with Pipewire"; enable = mkEnableOption "Whether to enable sounds";
usePulseaudio = mkEnableOption "Activate sound support with pulseaudio";
scarlett.enable = mkEnableOption "Activate support for Scarlett sound card"; scarlett.enable = mkEnableOption "Activate support for Scarlett sound card";
alsa = mkOption { alsa = mkOption {
type = types.bool; type = types.bool;
@@ -32,13 +33,14 @@ in {
config = { config = {
environment.systemPackages = mkIf cfg.scarlett.enable [pkgs.alsa-scarlett-gui]; environment.systemPackages = mkIf cfg.scarlett.enable [pkgs.alsa-scarlett-gui];
services.pipewire = mkIf cfg.enable { services = {
enable = true; pipewire.enable = mkForce (cfg.enable && ! cfg.usePulseaudio);
alsa = mkIf cfg.alsa { pipewire.alsa = {
enable = mkDefault true; enable = mkDefault true;
support32Bit = mkDefault true; support32Bit = mkDefault true;
}; };
jack.enable = mkDefault cfg.jack; pipewire.jack.enable = cfg.jack;
pulseaudio.enable = cfg.usePulseaudio;
}; };
programs.noisetorch = mkIf cfg.enable { programs.noisetorch = mkIf cfg.enable {
inherit (cfg) enable; inherit (cfg) enable;

View File

@@ -1,5 +1,4 @@
{ {
pkgs,
lib, lib,
config, config,
... ...
@@ -11,12 +10,7 @@ in {
enable = mkEnableOption "Enable Flatpak support"; enable = mkEnableOption "Enable Flatpak support";
builder.enable = mkEnableOption "Enable Flatpak builder"; builder.enable = mkEnableOption "Enable Flatpak builder";
}; };
config = { config.services.flatpak = mkIf cfg.enable {
services.flatpak = mkIf cfg.enable { inherit (cfg) enable;
inherit (cfg) enable;
};
environment.systemPackages = mkIf cfg.builder.enable [
pkgs.flatpak-buildR
];
}; };
} }

View File

@@ -10,13 +10,18 @@ in {
options.mySystem.users.phundrak = { options.mySystem.users.phundrak = {
enable = mkEnableOption "Enables user phundrak"; enable = mkEnableOption "Enables user phundrak";
trusted = mkEnableOption "Mark the user as trusted by Nix"; trusted = mkEnableOption "Mark the user as trusted by Nix";
extraGroups = mkOption {
type = types.listOf types.str;
default = [];
example = ["feedbackd"];
};
}; };
config = { config = {
users.users.phundrak = mkIf cfg.enable { users.users.phundrak = mkIf cfg.enable {
isNormalUser = true; isNormalUser = true;
description = "Lucien Cartier-Tilet"; description = "Lucien Cartier-Tilet";
extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman" "plugdev" "games" "audio" "input"]; extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman" "plugdev" "games" "audio" "input"] ++ cfg.extraGroups;
shell = pkgs.zsh; shell = pkgs.zsh;
openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ../../users/phundrak/keys; openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ../../users/phundrak/keys;
}; };

View File

@@ -41,6 +41,7 @@ in {
# Misc # Misc
# gplates # gplates
qgis qgis
kicad
handy handy
libnotify libnotify
nextcloud-client nextcloud-client