feat(hosts): add PineTab2 config
This commit is contained in:
130
flake.lock
generated
130
flake.lock
generated
@@ -72,11 +72,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772764582,
|
"lastModified": 1778125502,
|
||||||
"narHash": "sha256-hSwjmpXHFqzSXrndVekA0IheKrbC7wi0IbfZTYwlmXw=",
|
"narHash": "sha256-QAAO9RCR6byVJi50l8RMVJWzrsNYbXonfR6tqU93vIQ=",
|
||||||
"owner": "caelestia-dots",
|
"owner": "caelestia-dots",
|
||||||
"repo": "cli",
|
"repo": "cli",
|
||||||
"rev": "4bcd42f482d038b98145b0b03388244b68b7d35d",
|
"rev": "7b8a4281aa8b2b12745de531cce0c65d87aea2e5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -94,11 +94,11 @@
|
|||||||
"quickshell": "quickshell"
|
"quickshell": "quickshell"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775660122,
|
"lastModified": 1778381004,
|
||||||
"narHash": "sha256-qMKB06TE0MY1anDQKBrzZEpktNPyvMxQQzTEEwWAA6I=",
|
"narHash": "sha256-JwIlrajiY74obxyTMu/Ym6wOEQaCjpHwfziPK+E5u3Q=",
|
||||||
"owner": "caelestia-dots",
|
"owner": "caelestia-dots",
|
||||||
"repo": "shell",
|
"repo": "shell",
|
||||||
"rev": "aa2b08dd45963dc9558de94dbff5e1615e347d02",
|
"rev": "2ca4ad4a434e91e73504debd5225e66dc5ebb2b6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -115,11 +115,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775334496,
|
"lastModified": 1778198574,
|
||||||
"narHash": "sha256-dUopEMj5KhH1vnv43o29kMsayp0Ki+9EfIn4UAE9sAU=",
|
"narHash": "sha256-XzgYoibIH6diZoZ2GzoGeyV2xdXAwBtXdAze+Qu2kR0=",
|
||||||
"owner": "9001",
|
"owner": "9001",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "ede692925edfc6fca7a52f483414d543e9303237",
|
"rev": "139ef1851e5d698521a5c2078c56f951d6e54d00",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -374,11 +374,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775683737,
|
"lastModified": 1778609305,
|
||||||
"narHash": "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=",
|
"narHash": "sha256-muTc+WME6k3sfTr/Pvmw8hrK7zXrbl961TEF9wPeAnk=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7ba4ee4228ed36123c7cb75d50524b43514ef992",
|
"rev": "5878fdadfe2cfe1b3383b38d66117f7b80696b68",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -398,11 +398,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1776813492,
|
"lastModified": 1777830987,
|
||||||
"narHash": "sha256-gydjnWdoZm++hK0B1vpXerwKJQdCeUcxrbBr9iEUTTA=",
|
"narHash": "sha256-fPsv7qZHb9EO04IoQ6cGAj+6/y1pSMEFWmvLCULOEuM=",
|
||||||
"ref": "develop",
|
"ref": "develop",
|
||||||
"rev": "9a6b94276b68263ad5b2ffebb64354b3bb4cc92a",
|
"rev": "bd6892d91e1a04f9b092b22831a977f08a36cbe0",
|
||||||
"revCount": 38,
|
"revCount": 40,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://labs.phundrak.com/phundrak/jj-cz"
|
"url": "https://labs.phundrak.com/phundrak/jj-cz"
|
||||||
},
|
},
|
||||||
@@ -465,11 +465,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775365369,
|
"lastModified": 1778393439,
|
||||||
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=",
|
"narHash": "sha256-mOtQxUjtKaPHLeoLOY/YEDctmud1X9KwJr4kE1MJ3Wc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3",
|
"rev": "01466c414c7357ae2ce32be4a272a7c69e94ab5f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -509,11 +509,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775423009,
|
"lastModified": 1778443072,
|
||||||
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
|
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
|
"rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -523,25 +523,19 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"opencode": {
|
"nixpkgsStable": {
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775336060,
|
"lastModified": 1778430510,
|
||||||
"narHash": "sha256-KkjMN2xA8jGBnj96UtzffvOeYJJZM05/5T36nSdpZkE=",
|
"narHash": "sha256-Ti+ZBvW6yrWWAg2szExVTwCd4qOJ3KlVr1tFHfyfi8Q=",
|
||||||
"owner": "anomalyco",
|
"owner": "NixOS",
|
||||||
"repo": "opencode",
|
"repo": "nixpkgs",
|
||||||
"rev": "930e94a3ea098b9d56fcb6d08b545256d2546a82",
|
"rev": "8fd9daa3db09ced9700431c5b7ad0e8ba199b575",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "anomalyco",
|
"id": "nixpkgs",
|
||||||
"ref": "v1.3.15",
|
"ref": "nixos-25.11",
|
||||||
"repo": "opencode",
|
"type": "indirect"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pumo-system-info": {
|
"pumo-system-info": {
|
||||||
@@ -574,11 +568,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772925576,
|
"lastModified": 1778222427,
|
||||||
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
|
"narHash": "sha256-6GFiP611nEJvtm+m03sMyfaVIJ9QOCi//hS+PPKyyPA=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
|
"rev": "d1760ed1f31c02a95b37a9bf4084129c829ebe7f",
|
||||||
"revCount": 750,
|
"revCount": 817,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
},
|
},
|
||||||
@@ -587,6 +581,33 @@
|
|||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rockchip": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgsStable": [
|
||||||
|
"nixpkgsStable"
|
||||||
|
],
|
||||||
|
"nixpkgsUnstable": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"utils": [
|
||||||
|
"flake-utils"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778273074,
|
||||||
|
"narHash": "sha256-gPbn0KjsgS2cJa/ENSMtjN0h8dIEy+2N6g8tw9915pM=",
|
||||||
|
"owner": "raboof",
|
||||||
|
"repo": "nixos-rockchip",
|
||||||
|
"rev": "2aab433a41cc9ba862ae73012acdd2eec3547667",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "raboof",
|
||||||
|
"ref": "pinetab-linux-7.0",
|
||||||
|
"repo": "nixos-rockchip",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"caelestia-shell": "caelestia-shell",
|
"caelestia-shell": "caelestia-shell",
|
||||||
@@ -596,8 +617,9 @@
|
|||||||
"jj-cz": "jj-cz",
|
"jj-cz": "jj-cz",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"opencode": "opencode",
|
"nixpkgsStable": "nixpkgsStable",
|
||||||
"pumo-system-info": "pumo-system-info",
|
"pumo-system-info": "pumo-system-info",
|
||||||
|
"rockchip": "rockchip",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"spicetify": "spicetify",
|
"spicetify": "spicetify",
|
||||||
"srvos": "srvos",
|
"srvos": "srvos",
|
||||||
@@ -670,11 +692,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775682595,
|
"lastModified": 1777944972,
|
||||||
"narHash": "sha256-0E9PohY/VuESLq0LR4doaH7hTag513sDDW5n5qmHd1Q=",
|
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "d2e8438d5886e92bc5e7c40c035ab6cae0c41f76",
|
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -691,11 +713,11 @@
|
|||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775421933,
|
"lastModified": 1778540809,
|
||||||
"narHash": "sha256-JkEbzFDFTsUlVtHEzA8Y4r3O9LInhb96eOCbtGjGnbM=",
|
"narHash": "sha256-FNXls2QZTcxY0Dem3QtSewnr8vUKMDsTw9m8pLOnhTc=",
|
||||||
"owner": "Gerg-L",
|
"owner": "Gerg-L",
|
||||||
"repo": "spicetify-nix",
|
"repo": "spicetify-nix",
|
||||||
"rev": "ec8d73085fdf807d55765335dc8126e14e7b2096",
|
"rev": "83939d7df4c0f1b8ee88cabde112223280a48554",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -711,11 +733,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775701952,
|
"lastModified": 1778468351,
|
||||||
"narHash": "sha256-xj9u8fz2hTTTELMorqox0hPWrmAvGRnQUEnlj+vCjFo=",
|
"narHash": "sha256-A5ZdpWN5d+OmKln2EPPeMmPJaBwbugO9dEhyp3pn/X8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "srvos",
|
"repo": "srvos",
|
||||||
"rev": "f56f1053ae9f878501d3a8ae1961c73d1d7abce3",
|
"rev": "23122d21dfbe00e072ce515e21af18882bc88fd7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -814,11 +836,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1775710180,
|
"lastModified": 1778303188,
|
||||||
"narHash": "sha256-sCokvdNvl8zIzsnjgG0TN5h3RUI7GJyWW9ErfmEj0rM=",
|
"narHash": "sha256-zXFSvK80qpI91B7DU9QSExAtafSrz6vzormh2kUi6kQ=",
|
||||||
"owner": "youwen5",
|
"owner": "youwen5",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "2c138beb648d1cbbfae76695a8230ee04e4db25a",
|
"rev": "9346c84657a9cab472bc4ee5a2d65d42a72d5346",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
23
flake.nix
23
flake.nix
@@ -2,6 +2,7 @@
|
|||||||
description = "Home Manager configuration of phundrak";
|
description = "Home Manager configuration of phundrak";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
nixpkgsStable.url = "nixpkgs/nixos-25.11";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
@@ -30,16 +31,18 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
opencode = {
|
|
||||||
url = "github:anomalyco/opencode/v1.3.15";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
pumo-system-info = {
|
pumo-system-info = {
|
||||||
url = "git+https://labs.phundrak.com/phundrak/pumo-system-info";
|
url = "git+https://labs.phundrak.com/phundrak/pumo-system-info";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rockchip = {
|
||||||
|
url = "github:raboof/nixos-rockchip/pinetab-linux-7.0";
|
||||||
|
inputs.utils.follows = "flake-utils";
|
||||||
|
inputs.nixpkgsStable.follows = "nixpkgsStable";
|
||||||
|
inputs.nixpkgsUnstable.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -86,6 +89,7 @@
|
|||||||
nixpkgs,
|
nixpkgs,
|
||||||
flake-utils,
|
flake-utils,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
rockchip,
|
||||||
srvos,
|
srvos,
|
||||||
...
|
...
|
||||||
} @ inputs:
|
} @ inputs:
|
||||||
@@ -138,6 +142,10 @@
|
|||||||
inherit extraSpecialArgs pkgs;
|
inherit extraSpecialArgs pkgs;
|
||||||
modules = withUserModules ./users/phundrak/host/naromk3.nix;
|
modules = withUserModules ./users/phundrak/host/naromk3.nix;
|
||||||
};
|
};
|
||||||
|
"phundrak@pinetab2" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit extraSpecialArgs pkgs;
|
||||||
|
modules = withUserModules ./users/phundrak/host/pinetab2.nix;
|
||||||
|
};
|
||||||
"phundrak@tilo" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@tilo" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
inherit extraSpecialArgs pkgs;
|
||||||
modules = withUserModules ./users/phundrak/host/tilo.nix;
|
modules = withUserModules ./users/phundrak/host/tilo.nix;
|
||||||
@@ -151,6 +159,10 @@
|
|||||||
inputs.copyparty.nixosModules.default
|
inputs.copyparty.nixosModules.default
|
||||||
];
|
];
|
||||||
withSystemModules = modules: nixpkgs.lib.lists.flatten (defaultSystemModules ++ [modules]);
|
withSystemModules = modules: nixpkgs.lib.lists.flatten (defaultSystemModules ++ [modules]);
|
||||||
|
pinetabConfig = import ./utils/pinetab.nix {
|
||||||
|
inherit nixpkgs rockchip specialArgs;
|
||||||
|
additionalModules = defaultSystemModules;
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
alys = nixpkgs.lib.nixosSystem {
|
alys = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
@@ -177,6 +189,7 @@
|
|||||||
./hosts/naromk3/configuration.nix
|
./hosts/naromk3/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
pinetab2 = pinetabConfig "x86_64-linux" ./hosts/pinetab2/gnome.nix;
|
||||||
tilo = nixpkgs.lib.nixosSystem {
|
tilo = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
modules = withSystemModules ./hosts/tilo/configuration.nix;
|
modules = withSystemModules ./hosts/tilo/configuration.nix;
|
||||||
|
|||||||
75
hosts/pinetab2/default.nix
Normal file
75
hosts/pinetab2/default.nix
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
../../system/desktop
|
||||||
|
../../system/dev
|
||||||
|
../../system/hardware
|
||||||
|
../../system/i18n
|
||||||
|
../../system/misc.nix
|
||||||
|
../../system/network
|
||||||
|
../../system/packages
|
||||||
|
../../system/security
|
||||||
|
../../system/services
|
||||||
|
../../system/users
|
||||||
|
];
|
||||||
|
|
||||||
|
system.stateVersion = "25.11";
|
||||||
|
# documentation.nixos.enable = false;
|
||||||
|
# nix.settings.trusted-users = ["root" "@wheel"];
|
||||||
|
|
||||||
|
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;
|
||||||
|
input.opentablet.enable = true;
|
||||||
|
sound.enable = true;
|
||||||
|
};
|
||||||
|
i18n.input.enable = true;
|
||||||
|
misc.keymap = "fr-bepo";
|
||||||
|
networking = {
|
||||||
|
hostname = "pinetab2";
|
||||||
|
id = "99a11b15";
|
||||||
|
wifi.disablePowersave = true;
|
||||||
|
};
|
||||||
|
packages = {
|
||||||
|
appimage.enable = true;
|
||||||
|
flatpak.enable = true;
|
||||||
|
nix = {
|
||||||
|
gc.automatic = true;
|
||||||
|
nix-ld.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.ssh.enable = true;
|
||||||
|
users = {
|
||||||
|
root.disablePassword = true;
|
||||||
|
phundrak = {
|
||||||
|
enable = true;
|
||||||
|
trusted = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops.secrets.extraHosts = {
|
||||||
|
inherit (config.users.users.root) group;
|
||||||
|
owner = config.users.users.phundrak.name;
|
||||||
|
mode = "0440";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
37
hosts/pinetab2/gnome.nix
Normal file
37
hosts/pinetab2/gnome.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# https://github.com/systemd/systemd/pull/35304#issuecomment-3855146191
|
||||||
|
# gnome autorotate expects 'normal' is the _display panel_ normal, but
|
||||||
|
# mutter autoconfiguration rotates by 90deg.
|
||||||
|
# compensating with gdctl for now, though it would be better to 'properly'
|
||||||
|
# fix this.
|
||||||
|
services.udev = {
|
||||||
|
extraHwdb = ''
|
||||||
|
sensor:modalias:*sc7a20:*
|
||||||
|
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 0, 1; 0, 1, 0
|
||||||
|
'';
|
||||||
|
extraRules = ''
|
||||||
|
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1018", ATTRS{idProduct}=="1006", ENV{SYSTEMD_WANTS}+="landscape.service", TAG+="systemd"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
systemd.services.landscape = {
|
||||||
|
script = ''
|
||||||
|
${pkgs.mutter}/bin/gdctl set --logical-monitor --primary --monitor=DSI-1 --transform normal
|
||||||
|
'';
|
||||||
|
serviceConfig.User = "phundrak";
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
environment = {
|
||||||
|
"DBUS_SESSION_BUS_ADDRESS" = "unix:path=/run/user/${toString config.users.users."phundrak".uid}/bus";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnomeExtensions.arc-menu
|
||||||
|
gnomeExtensions.dash-to-dock
|
||||||
|
gnomeExtensions.dash-to-panel
|
||||||
|
gnomeExtensions.gjs-osk
|
||||||
|
gnomeExtensions.one-window-wonderland
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,68 +1,15 @@
|
|||||||
{
|
{
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.mySystem.misc;
|
|
||||||
in {
|
|
||||||
imports = [
|
imports = [
|
||||||
./boot
|
./boot
|
||||||
./desktop
|
./desktop
|
||||||
./dev
|
./dev
|
||||||
./hardware
|
./hardware
|
||||||
./i18n
|
./i18n
|
||||||
|
./misc.nix
|
||||||
./network
|
./network
|
||||||
./packages
|
./packages
|
||||||
./security
|
./security
|
||||||
./services
|
./services
|
||||||
./users
|
./users
|
||||||
];
|
];
|
||||||
|
|
||||||
options.mySystem.misc = {
|
|
||||||
timezone = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "Europe/Paris";
|
|
||||||
};
|
|
||||||
keymap = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "fr";
|
|
||||||
example = "fr-bepo";
|
|
||||||
description = "Keymap to use in the TTY console";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
boot.tmp.cleanOnBoot = true;
|
|
||||||
console.keyMap = cfg.keymap;
|
|
||||||
time.timeZone = cfg.timezone;
|
|
||||||
environment.pathsToLink = [
|
|
||||||
"/share/bash-completion"
|
|
||||||
"/share/zsh"
|
|
||||||
];
|
|
||||||
services = {
|
|
||||||
orca.enable = false;
|
|
||||||
envfs.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"http://marpa:5000?priority=5"
|
|
||||||
"https://phundrak.cachix.org?priority=10"
|
|
||||||
"https://nix-community.cachix.org?priority=20"
|
|
||||||
"https://cache.nixos.org?priority=40"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"marpa-local:XoO+dFN4PeauF52pYuy3Vh4Sdtl2qIdxu5aUasWKv6Q="
|
|
||||||
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
||||||
];
|
|
||||||
http-connections = 128;
|
|
||||||
experimental-features = [
|
|
||||||
"nix-command"
|
|
||||||
"flakes"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
./amdgpu.nix
|
./amdgpu.nix
|
||||||
./bluetooth.nix
|
./bluetooth.nix
|
||||||
./fingerprint.nix
|
./fingerprint.nix
|
||||||
./sound.nix
|
|
||||||
./input
|
./input
|
||||||
|
./pinetab2.nix
|
||||||
|
./sound.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
hardware.enableAllFirmware = lib.mkDefault true;
|
hardware.enableAllFirmware = lib.mkDefault true;
|
||||||
|
|||||||
18
system/hardware/pinetab2.nix
Normal file
18
system/hardware/pinetab2.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.mySystem.hardware.pinetab2;
|
||||||
|
in {
|
||||||
|
options.mySystem.hardware.pinetab2.enable = mkEnableOption "Activate support for the PineTab2";
|
||||||
|
config = {
|
||||||
|
boot.kernelParams = ["console=tty0" "console=ttyS2,1500000n8" "rootwait" "root=LABEL=NIXOS_SD" "rw"];
|
||||||
|
hardware.sensor.iio.enable = true;
|
||||||
|
services.avahi = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -32,13 +32,16 @@ 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 = mkIf cfg.enable {
|
||||||
alsa = mkIf cfg.alsa {
|
enable = true;
|
||||||
enable = mkDefault true;
|
alsa = mkIf cfg.alsa {
|
||||||
support32Bit = mkDefault true;
|
enable = mkDefault true;
|
||||||
|
support32Bit = mkDefault true;
|
||||||
|
};
|
||||||
|
jack.enable = mkDefault cfg.jack;
|
||||||
};
|
};
|
||||||
jack.enable = mkDefault cfg.jack;
|
pulseaudio.enable = false;
|
||||||
};
|
};
|
||||||
programs.noisetorch = mkIf cfg.enable {
|
programs.noisetorch = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
|
|||||||
55
system/misc.nix
Normal file
55
system/misc.nix
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.mySystem.misc;
|
||||||
|
in {
|
||||||
|
options.mySystem.misc = {
|
||||||
|
timezone = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Europe/Paris";
|
||||||
|
};
|
||||||
|
keymap = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "fr";
|
||||||
|
example = "fr-bepo";
|
||||||
|
description = "Keymap to use in the TTY console";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
boot.tmp.cleanOnBoot = true;
|
||||||
|
console.keyMap = cfg.keymap;
|
||||||
|
time.timeZone = cfg.timezone;
|
||||||
|
environment.pathsToLink = [
|
||||||
|
"/share/bash-completion"
|
||||||
|
"/share/zsh"
|
||||||
|
];
|
||||||
|
services = {
|
||||||
|
orca.enable = false;
|
||||||
|
envfs.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [
|
||||||
|
"http://marpa:5000?priority=5"
|
||||||
|
"https://phundrak.cachix.org?priority=10"
|
||||||
|
"https://nix-community.cachix.org?priority=20"
|
||||||
|
"https://cache.nixos.org?priority=40"
|
||||||
|
];
|
||||||
|
trusted-public-keys = [
|
||||||
|
"marpa-local:XoO+dFN4PeauF52pYuy3Vh4Sdtl2qIdxu5aUasWKv6Q="
|
||||||
|
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
];
|
||||||
|
http-connections = 128;
|
||||||
|
experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -51,12 +51,20 @@ in {
|
|||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
wifi.disablePowersave = mkEnableOption ''
|
||||||
|
Disables powersave for Wifi.
|
||||||
|
|
||||||
|
Used mainly for the PineTab2, as leaving WiFi powersave with the bes2600 can cause stability issues.
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
config.networking = {
|
config.networking = {
|
||||||
hostName = cfg.hostname; # Define your hostname.
|
hostName = cfg.hostname; # Define your hostname.
|
||||||
hostId = cfg.id;
|
hostId = cfg.id;
|
||||||
networkmanager.enable = true;
|
networkmanager = {
|
||||||
|
enable = true;
|
||||||
|
wifi.powersave = ! cfg.wifi.disablePowersave;
|
||||||
|
};
|
||||||
inherit (cfg) hostFiles domain;
|
inherit (cfg) hostFiles domain;
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ in {
|
|||||||
trusted-users = mkOption {
|
trusted-users = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
example = ["alice" "bob"];
|
example = ["alice" "bob"];
|
||||||
default = [];
|
default = ["@wheel" "root"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,5 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./sops.nix
|
./sops.nix
|
||||||
];
|
];
|
||||||
|
security.rtkit.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,6 @@ in {
|
|||||||
dev.fullDesktop = mkDefault cfg.fullDesktop;
|
dev.fullDesktop = mkDefault cfg.fullDesktop;
|
||||||
media.fullDesktop = mkDefault cfg.fullDesktop;
|
media.fullDesktop = mkDefault cfg.fullDesktop;
|
||||||
security.fullDesktop = mkDefault cfg.fullDesktop;
|
security.fullDesktop = mkDefault cfg.fullDesktop;
|
||||||
services.fullDesktop = mkDefault cfg.fullDesktop;
|
myServices.fullDesktop = mkDefault cfg.fullDesktop;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
home.sessionVariables.MOZ_ENABLE_WAYLAND = "1";
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
package =
|
package =
|
||||||
@@ -52,6 +53,7 @@ in {
|
|||||||
then zen
|
then zen
|
||||||
else pkgs.firefox;
|
else pkgs.firefox;
|
||||||
nativeMessagingHosts = lists.optional cfg.tridactyl.enable pkgs.tridactyl-native;
|
nativeMessagingHosts = lists.optional cfg.tridactyl.enable pkgs.tridactyl-native;
|
||||||
|
configPath = ".mozilla/firefox";
|
||||||
};
|
};
|
||||||
xdg.configFile."tridactyl/tridactylrc" = mkIf cfg.tridactyl.enable {
|
xdg.configFile."tridactyl/tridactylrc" = mkIf cfg.tridactyl.enable {
|
||||||
text = concatStringsSep "\n" (filter (s: s != "") [
|
text = concatStringsSep "\n" (filter (s: s != "") [
|
||||||
|
|||||||
@@ -30,10 +30,7 @@ in {
|
|||||||
};
|
};
|
||||||
ollama.enable = mkDefault cfg.enable;
|
ollama.enable = mkDefault cfg.enable;
|
||||||
};
|
};
|
||||||
packages = let
|
packages = [pkgs.lmstudio pkgs.opencode];
|
||||||
inherit (pkgs.stdenv.hostPlatform) system;
|
|
||||||
inherit (inputs.opencode.packages.${system}) opencode;
|
|
||||||
in [pkgs.lmstudio opencode];
|
|
||||||
};
|
};
|
||||||
programs.mcp = mkIf (cfg.mcpServers != {}) {
|
programs.mcp = mkIf (cfg.mcpServers != {}) {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.services.blanket;
|
cfg = config.home.myServices.blanket;
|
||||||
in {
|
in {
|
||||||
options.home.services.blanket.enable = mkEnableOption "Enable blanket";
|
options.home.myServices.blanket.enable = mkEnableOption "Enable blanket";
|
||||||
config.services.blanket.enable = cfg.enable;
|
config.services.blanket.enable = cfg.enable;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.services;
|
cfg = config.home.myServices;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./blanket.nix
|
./blanket.nix
|
||||||
@@ -12,8 +12,12 @@ in {
|
|||||||
./mpris-proxy.nix
|
./mpris-proxy.nix
|
||||||
./playerctld.nix
|
./playerctld.nix
|
||||||
];
|
];
|
||||||
options.home.services.fullDesktop = mkEnableOption "Enable all modules";
|
options.home.myServices.fullDesktop = mkOption {
|
||||||
config.home.services = {
|
description = "Enable all modules";
|
||||||
|
type = types.bool;
|
||||||
|
default = config.home.fullDesktop;
|
||||||
|
};
|
||||||
|
config.home.myServices = {
|
||||||
blanket.enable = mkDefault cfg.fullDesktop;
|
blanket.enable = mkDefault cfg.fullDesktop;
|
||||||
mbsync.enable = mkDefault cfg.fullDesktop;
|
mbsync.enable = mkDefault cfg.fullDesktop;
|
||||||
mpris-proxy.enable = mkDefault cfg.fullDesktop;
|
mpris-proxy.enable = mkDefault cfg.fullDesktop;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.services.mbsync;
|
cfg = config.home.myServices.mbsync;
|
||||||
in {
|
in {
|
||||||
options.home.services.mbsync = {
|
options.home.myServices.mbsync = {
|
||||||
enable = mkEnableOption "Enables mbsync";
|
enable = mkEnableOption "Enables mbsync";
|
||||||
service.enable = mkOption {
|
service.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.services.mpris-proxy;
|
cfg = config.home.myServices.mpris-proxy;
|
||||||
in {
|
in {
|
||||||
options.home.services.mpris-proxy.enable = mkEnableOption "Enable MPRIS forwarding towards bluetooth and MIDI";
|
options.home.myServices.mpris-proxy.enable = mkEnableOption "Enable MPRIS forwarding towards bluetooth and MIDI";
|
||||||
config.services.mpris-proxy.enable = cfg.enable;
|
config.services.mpris-proxy.enable = cfg.enable;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.services.playerctld;
|
cfg = config.home.myServices.playerctld;
|
||||||
in {
|
in {
|
||||||
options.home.services.playerctld.enable = mkEnableOption "Enable playerctld daemon";
|
options.home.myServices.playerctld.enable = mkEnableOption "Enable playerctld daemon";
|
||||||
config.services.playerctld.enable = cfg.enable;
|
config.services.playerctld.enable = cfg.enable;
|
||||||
}
|
}
|
||||||
|
|||||||
9
users/phundrak/host/pinetab2.nix
Normal file
9
users/phundrak/host/pinetab2.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{config, ...}: {
|
||||||
|
imports = [../home.nix];
|
||||||
|
home = {
|
||||||
|
cli.nh.flake = "${config.home.homeDirectory}/.dotfiles";
|
||||||
|
desktop.hyprland.host = "gampo";
|
||||||
|
phundrak.sshKey.content = builtins.readFile ../keys/id_pinetab2.pub;
|
||||||
|
};
|
||||||
|
programs.caelestia.settings.bar.persistent = false;
|
||||||
|
}
|
||||||
1
users/phundrak/keys/id_pinetab2.pub
Normal file
1
users/phundrak/keys/id_pinetab2.pub
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJCMgI5WDOKVUe6rUrOG4VS+hoUUVrAb1UhOECawUkrv Lucien Cartier-Tilet <lucien@phundrak.com>
|
||||||
@@ -32,9 +32,7 @@ in {
|
|||||||
secrets."ssh/hosts" = {};
|
secrets."ssh/hosts" = {};
|
||||||
age = {
|
age = {
|
||||||
# automatically import user SSH keys as age keys
|
# automatically import user SSH keys as age keys
|
||||||
sshKeyPaths = [
|
sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
|
||||||
"${config.home.homeDirectory}/.ssh/id_ed25519"
|
|
||||||
];
|
|
||||||
# this will use an age key that is expected to already be in the filesystem
|
# this will use an age key that is expected to already be in the filesystem
|
||||||
keyFile = "${config.home.homeDirectory}/.local/sops-nix/key.txt";
|
keyFile = "${config.home.homeDirectory}/.local/sops-nix/key.txt";
|
||||||
# generate a new key if the key specified above does not exist
|
# generate a new key if the key specified above does not exist
|
||||||
|
|||||||
27
utils/pinetab.nix
Normal file
27
utils/pinetab.nix
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
nixpkgs,
|
||||||
|
rockchip,
|
||||||
|
additionalModules,
|
||||||
|
specialArgs,
|
||||||
|
...
|
||||||
|
}: buildPlatform: variant:
|
||||||
|
nixpkgs.lib.nixosSystem {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
inherit specialArgs;
|
||||||
|
modules = [
|
||||||
|
rockchip.nixosModules.sdImageRockchip
|
||||||
|
rockchip.nixosModules.dtOverlayPCIeFix
|
||||||
|
rockchip.nixosModules.noZFS
|
||||||
|
../hosts/pinetab2
|
||||||
|
variant
|
||||||
|
{
|
||||||
|
rockchip.uBoot = rockchip.packages.${buildPlatform}.uBootPineTab2;
|
||||||
|
boot.kernelPackages = rockchip.legacyPackages.${buildPlatform}.kernel_linux_7_0_pinetab_unstable;
|
||||||
|
hardware.firmware = [rockchip.packages.aarch64-linux.bes2600];
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
|
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
|
"bes2600-firmware"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
] ++ additionalModules;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user