Compare commits
12 Commits
3bc4e3dd15
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
808e2ce408
|
|||
|
673b32c33b
|
|||
|
d27f63a0f7
|
|||
|
90f6102481
|
|||
|
e44acd9b06
|
|||
|
177ce475a9
|
|||
|
1411f6c47e
|
|||
|
d1bee6c14d
|
|||
|
5514d347c7
|
|||
|
06519d555b
|
|||
|
ce94f09dd4
|
|||
|
171d635b72
|
133
flake.lock
generated
133
flake.lock
generated
@@ -72,11 +72,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772764582,
|
||||
"narHash": "sha256-hSwjmpXHFqzSXrndVekA0IheKrbC7wi0IbfZTYwlmXw=",
|
||||
"lastModified": 1778125502,
|
||||
"narHash": "sha256-QAAO9RCR6byVJi50l8RMVJWzrsNYbXonfR6tqU93vIQ=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"rev": "4bcd42f482d038b98145b0b03388244b68b7d35d",
|
||||
"rev": "7b8a4281aa8b2b12745de531cce0c65d87aea2e5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -94,11 +94,11 @@
|
||||
"quickshell": "quickshell"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775660122,
|
||||
"narHash": "sha256-qMKB06TE0MY1anDQKBrzZEpktNPyvMxQQzTEEwWAA6I=",
|
||||
"lastModified": 1778381004,
|
||||
"narHash": "sha256-JwIlrajiY74obxyTMu/Ym6wOEQaCjpHwfziPK+E5u3Q=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"rev": "aa2b08dd45963dc9558de94dbff5e1615e347d02",
|
||||
"rev": "2ca4ad4a434e91e73504debd5225e66dc5ebb2b6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -115,11 +115,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775334496,
|
||||
"narHash": "sha256-dUopEMj5KhH1vnv43o29kMsayp0Ki+9EfIn4UAE9sAU=",
|
||||
"lastModified": 1778198574,
|
||||
"narHash": "sha256-XzgYoibIH6diZoZ2GzoGeyV2xdXAwBtXdAze+Qu2kR0=",
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"rev": "ede692925edfc6fca7a52f483414d543e9303237",
|
||||
"rev": "139ef1851e5d698521a5c2078c56f951d6e54d00",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -374,11 +374,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775683737,
|
||||
"narHash": "sha256-oBYyowo6yfgb95Z78s3uTnAd9KkpJpwzjJbfnpLaM2Y=",
|
||||
"lastModified": 1778609305,
|
||||
"narHash": "sha256-muTc+WME6k3sfTr/Pvmw8hrK7zXrbl961TEF9wPeAnk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "7ba4ee4228ed36123c7cb75d50524b43514ef992",
|
||||
"rev": "5878fdadfe2cfe1b3383b38d66117f7b80696b68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -398,15 +398,16 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775400071,
|
||||
"narHash": "sha256-uFoqOUB1wbqqDKRdHNEYdgyRQECYWhJBq4Oxjm3Dx9M=",
|
||||
"ref": "refs/heads/develop",
|
||||
"rev": "3da214ae4c14f57dc5f6ecd480330936f00e1a4f",
|
||||
"revCount": 35,
|
||||
"lastModified": 1777830987,
|
||||
"narHash": "sha256-fPsv7qZHb9EO04IoQ6cGAj+6/y1pSMEFWmvLCULOEuM=",
|
||||
"ref": "develop",
|
||||
"rev": "bd6892d91e1a04f9b092b22831a977f08a36cbe0",
|
||||
"revCount": 40,
|
||||
"type": "git",
|
||||
"url": "https://labs.phundrak.com/phundrak/jj-cz"
|
||||
},
|
||||
"original": {
|
||||
"ref": "develop",
|
||||
"type": "git",
|
||||
"url": "https://labs.phundrak.com/phundrak/jj-cz"
|
||||
}
|
||||
@@ -464,11 +465,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775365369,
|
||||
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=",
|
||||
"lastModified": 1778393439,
|
||||
"narHash": "sha256-mOtQxUjtKaPHLeoLOY/YEDctmud1X9KwJr4kE1MJ3Wc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3",
|
||||
"rev": "01466c414c7357ae2ce32be4a272a7c69e94ab5f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -508,11 +509,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1775423009,
|
||||
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
|
||||
"lastModified": 1778443072,
|
||||
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
|
||||
"rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -522,25 +523,19 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"opencode": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"nixpkgsStable": {
|
||||
"locked": {
|
||||
"lastModified": 1775336060,
|
||||
"narHash": "sha256-KkjMN2xA8jGBnj96UtzffvOeYJJZM05/5T36nSdpZkE=",
|
||||
"owner": "anomalyco",
|
||||
"repo": "opencode",
|
||||
"rev": "930e94a3ea098b9d56fcb6d08b545256d2546a82",
|
||||
"lastModified": 1778430510,
|
||||
"narHash": "sha256-Ti+ZBvW6yrWWAg2szExVTwCd4qOJ3KlVr1tFHfyfi8Q=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8fd9daa3db09ced9700431c5b7ad0e8ba199b575",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "anomalyco",
|
||||
"ref": "v1.3.15",
|
||||
"repo": "opencode",
|
||||
"type": "github"
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"pumo-system-info": {
|
||||
@@ -573,11 +568,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772925576,
|
||||
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
|
||||
"lastModified": 1778222427,
|
||||
"narHash": "sha256-6GFiP611nEJvtm+m03sMyfaVIJ9QOCi//hS+PPKyyPA=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
|
||||
"revCount": 750,
|
||||
"rev": "d1760ed1f31c02a95b37a9bf4084129c829ebe7f",
|
||||
"revCount": 817,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
@@ -586,6 +581,33 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"caelestia-shell": "caelestia-shell",
|
||||
@@ -595,8 +617,9 @@
|
||||
"jj-cz": "jj-cz",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"opencode": "opencode",
|
||||
"nixpkgsStable": "nixpkgsStable",
|
||||
"pumo-system-info": "pumo-system-info",
|
||||
"rockchip": "rockchip",
|
||||
"sops-nix": "sops-nix",
|
||||
"spicetify": "spicetify",
|
||||
"srvos": "srvos",
|
||||
@@ -669,11 +692,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775682595,
|
||||
"narHash": "sha256-0E9PohY/VuESLq0LR4doaH7hTag513sDDW5n5qmHd1Q=",
|
||||
"lastModified": 1777944972,
|
||||
"narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "d2e8438d5886e92bc5e7c40c035ab6cae0c41f76",
|
||||
"rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -690,11 +713,11 @@
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775421933,
|
||||
"narHash": "sha256-JkEbzFDFTsUlVtHEzA8Y4r3O9LInhb96eOCbtGjGnbM=",
|
||||
"lastModified": 1778540809,
|
||||
"narHash": "sha256-FNXls2QZTcxY0Dem3QtSewnr8vUKMDsTw9m8pLOnhTc=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "ec8d73085fdf807d55765335dc8126e14e7b2096",
|
||||
"rev": "83939d7df4c0f1b8ee88cabde112223280a48554",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -710,11 +733,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775701952,
|
||||
"narHash": "sha256-xj9u8fz2hTTTELMorqox0hPWrmAvGRnQUEnlj+vCjFo=",
|
||||
"lastModified": 1778468351,
|
||||
"narHash": "sha256-A5ZdpWN5d+OmKln2EPPeMmPJaBwbugO9dEhyp3pn/X8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "srvos",
|
||||
"rev": "f56f1053ae9f878501d3a8ae1961c73d1d7abce3",
|
||||
"rev": "23122d21dfbe00e072ce515e21af18882bc88fd7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -813,11 +836,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775710180,
|
||||
"narHash": "sha256-sCokvdNvl8zIzsnjgG0TN5h3RUI7GJyWW9ErfmEj0rM=",
|
||||
"lastModified": 1778303188,
|
||||
"narHash": "sha256-zXFSvK80qpI91B7DU9QSExAtafSrz6vzormh2kUi6kQ=",
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "2c138beb648d1cbbfae76695a8230ee04e4db25a",
|
||||
"rev": "9346c84657a9cab472bc4ee5a2d65d42a72d5346",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
38
flake.nix
38
flake.nix
@@ -2,6 +2,7 @@
|
||||
description = "Home Manager configuration of phundrak";
|
||||
|
||||
inputs = {
|
||||
nixpkgsStable.url = "nixpkgs/nixos-25.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
@@ -26,12 +27,7 @@
|
||||
};
|
||||
|
||||
jj-cz = {
|
||||
url = "git+https://labs.phundrak.com/phundrak/jj-cz";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
opencode = {
|
||||
url = "github:anomalyco/opencode/v1.3.15";
|
||||
url = "git+https://labs.phundrak.com/phundrak/jj-cz?ref=develop";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@@ -40,6 +36,13 @@
|
||||
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 = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -63,14 +66,15 @@
|
||||
|
||||
nixConfig = {
|
||||
extra-trusted-public-keys = [
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
"marpa-local:XoO+dFN4PeauF52pYuy3Vh4Sdtl2qIdxu5aUasWKv6Q="
|
||||
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
];
|
||||
extra-substituters = [
|
||||
"https://nix-community.cachix.org?priority=10"
|
||||
"https://devenv.cachix.org?priority=20"
|
||||
"https://phundrak.cachix.org?priority=30"
|
||||
"http://marpa:5000?priority=5"
|
||||
"https://phundrak.cachix.org?priority=10"
|
||||
"https://nix-community.cachix.org?priority=20"
|
||||
"https://cache.nixos.org?priority=40"
|
||||
];
|
||||
extra-experimental-features = [
|
||||
@@ -85,6 +89,7 @@
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
home-manager,
|
||||
rockchip,
|
||||
srvos,
|
||||
...
|
||||
} @ inputs:
|
||||
@@ -127,7 +132,7 @@
|
||||
};
|
||||
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit extraSpecialArgs pkgs;
|
||||
modules = withUserModules ./users/phundrak/host/marpa.nix;
|
||||
modules = withUserModules ./users/phundrak/host/gampo.nix;
|
||||
};
|
||||
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit extraSpecialArgs pkgs;
|
||||
@@ -137,6 +142,10 @@
|
||||
inherit extraSpecialArgs pkgs;
|
||||
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 {
|
||||
inherit extraSpecialArgs pkgs;
|
||||
modules = withUserModules ./users/phundrak/host/tilo.nix;
|
||||
@@ -150,6 +159,10 @@
|
||||
inputs.copyparty.nixosModules.default
|
||||
];
|
||||
withSystemModules = modules: nixpkgs.lib.lists.flatten (defaultSystemModules ++ [modules]);
|
||||
pinetabConfig = import ./utils/pinetab.nix {
|
||||
inherit nixpkgs rockchip specialArgs;
|
||||
additionalModules = defaultSystemModules;
|
||||
};
|
||||
in {
|
||||
alys = nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
@@ -165,7 +178,7 @@
|
||||
};
|
||||
marpa = nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = withSystemModules ./hosts/marpa/configuration.nix;
|
||||
modules = withSystemModules ./hosts/marpa;
|
||||
};
|
||||
NaroMk3 = nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
@@ -176,6 +189,7 @@
|
||||
./hosts/naromk3/configuration.nix
|
||||
];
|
||||
};
|
||||
pinetab2 = pinetabConfig "x86_64-linux" ./hosts/pinetab2/gnome.nix;
|
||||
tilo = nixpkgs.lib.nixosSystem {
|
||||
inherit specialArgs;
|
||||
modules = withSystemModules ./hosts/tilo/configuration.nix;
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
};
|
||||
sound.enable = true;
|
||||
};
|
||||
i18n.input.enable = true;
|
||||
misc.keymap = "fr-bepo";
|
||||
networking = {
|
||||
hostname = "gampo";
|
||||
|
||||
@@ -86,6 +86,7 @@
|
||||
scarlett.enable = true;
|
||||
};
|
||||
};
|
||||
i18n.input.enable = true;
|
||||
misc.keymap = "fr-bepo";
|
||||
networking = {
|
||||
hostname = "marpa";
|
||||
@@ -106,6 +107,10 @@
|
||||
programs.steam.enable = true;
|
||||
services = {
|
||||
fwupd.enable = true;
|
||||
harmonia = {
|
||||
enable = true;
|
||||
signKeyPaths = [config.sops.secrets."marpa/nix-cache-priv-key".path];
|
||||
};
|
||||
languagetool.enable = true;
|
||||
printing.enable = true;
|
||||
ssh.enable = true;
|
||||
@@ -123,11 +128,14 @@
|
||||
};
|
||||
};
|
||||
|
||||
sops.secrets.extraHosts = {
|
||||
sops.secrets = {
|
||||
"marpa/nix-cache-priv-key" = {};
|
||||
extraHosts = {
|
||||
inherit (config.users.users.root) group;
|
||||
owner = config.users.users.phundrak.name;
|
||||
mode = "0440";
|
||||
};
|
||||
};
|
||||
|
||||
services.udev.extraHwdb = ''
|
||||
mouse:usb:047d:80a6:*
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -6,6 +6,8 @@ elcafe:
|
||||
traefik:
|
||||
env: ENC[AES256_GCM,data:HUdWGYoEPp2v8dnDuVsl7YmPxuBfHmXzGrvKWeiqPlmAwMqVZrZ1j8on/7QKvYDJoTJ40XY2qNynSA==,iv:Vgc/fZERnNp7hSMeRd9EgB3IenKAFTAhwC0bk8CX4DE=,tag:SdfhOST/o29Lt1zRdXXRyQ==,type:str]
|
||||
dynamic: ENC[AES256_GCM,data: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,iv:3G3geSZRziwGiKcUMVNZ7j5s/4YA6Uk7wCSb4aFNSMo=,tag:FxARskR9+wdV7/xCKP8UdA==,type:str]
|
||||
marpa:
|
||||
nix-cache-priv-key: ENC[AES256_GCM,data:H5VsN0nOogvgxWHXHF66BbzJe17zelZCG6mU4vmVJqBoi7a5cQxzU7WnV4k1EOpMJPDj6floVmrsG4DM86FthxcTwixCNDINmaemwAXQnUkgWXFKYY7Ovzten81UVKrtkN4n1S8=,iv:pxnHD5YqyTeNZnxyEJeXAUixZEz8Uq9b2HFZZBsMOzk=,tag:xI+4tFG+Q4Z5IVxlATayJA==,type:str]
|
||||
extraHosts: ENC[AES256_GCM,data:4lp7w0snYle7vGVLJq3zlTxoC8eVpaSreW3P8Aq+O6oRJoWo3IASpwi7zSx6nxmLo5LGPeupVXfy3xOkG9d5QFNU2uU6vXKvOnnm6wrpS+UcYp/4U/z+R3rFnFsI5PsCgmlL1bSUFCFkXlrLDIyoW50Q/DLXDS8QaUYAtto1DcRUXc9j8RnunYF38HFlAOD/Xa4DY048pvZu8TMsmLQjM5txZnZBq4+P8aBjY3SF+K9cqZ+SgQkU+gdGo0/S/N5OUZJ3ATJ6mglPl/Nplw/Dh9HvC7jEMJZKrVzWiYquTOn0/IytqOCS2SkhsmVMRqf06hpvhlz6sFXzkDfxKMIRTULEkjZDkZ7QioSbLeqmQePSg7xs28SvToiVKSpg0PxeH5LvJE73hgX3ATUXA2BmRvqQuqBwLaDU6TPm8xkYe7qbabaN5oFtXCI/XydZTao5Glqw/BZQRTise/qGgn3Bfl/ieMYQOqCMEdHzR0Beipur6spliGFC4YnwL3Nh4CO6qOB/j61a7rqY6nLyo54jWtjvHX42pTuGWhvhGH1z4NRZqcKks+KCMB4PcCXgul1hrb04wLXYVu7R/7QqOACp4SZBUFZCj+izcsnB1sKdKliL87VBUkwOSF+1JUCY,iv:5A3jCWLkooCkuOMiybbeQ9+TRA7CoiW3qbzmJLVarSc=,tag:qLsGhrFHs65Vesj4Ot4I/g==,type:str]
|
||||
mopidy:
|
||||
spotify: ENC[AES256_GCM,data:6i9BzQmlndnROuT1H2zgN/3I6hBiFf14BlcS+XL2PbTiiEQZe2yE3tnZo3KXU9S5CjS3MwxsVdytKOFMQt2s1bVjcibBhJzoKEQByaapdzn1mK3kQLdJfhPf4Hf9YZV9Dlc60ngS7ESLZakdFVlj4rlbV5XReLhK,iv:fYd78r4U0kTyq1TZjBVXkjdNiOQ29gLJ53kwTXsi8W0=,tag:oWaeOuzdHWS4joZAdeA2pg==,type:str]
|
||||
@@ -105,7 +107,7 @@ sops:
|
||||
dUpXZis2N2VyN0ZFbjlPRXdwRFQ1aHMKm1Mk6MPKxFmwdATCYUANRSY5rHKgmQer
|
||||
LBlqqWKt1JiIUAYtazQeQ6KYxmjVlQPY7AZw2t+EhBEPrqbTL3vOiw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-03-07T17:19:05Z"
|
||||
mac: ENC[AES256_GCM,data:hT4mPKLcIuAFmllJBYFXL5sGyMn95mYEv+eGVA+KQYm629YKSncgvn5g8elau/8HXR1O/bwQlkGmGr8VPeR/0KRb6TPCA4MrCwox38fy3ZLx2e0movVi/xIgKXIo5wYUq4Qm/pSo715limxGChxUxKtdEK/lmMkSnxyGmlkQtwM=,iv:XoOfhdK/CK6shUXhH4h14gtyqZqcqmTV6/R2jkynFr8=,tag:q3V0xcWQxjFi2drk5fLJoQ==,type:str]
|
||||
lastmodified: "2026-05-01T13:20:34Z"
|
||||
mac: ENC[AES256_GCM,data:OueL0eHYmFKWfSyCZxburRJ2FS1xkowx7ha/Zv7r++26D85GSHDeIL9HdfByI5a1OhH90rH3WLxZrJgT3FiwBw27HhhHtS7Fs6MBFvTuPmSA7ZtMeGMWBRVjwbGAWN17BZAhJzMlZHq2nPX0xXIKT0HuTLVRPLuVCSlvDzMXsTE=,iv:+JN4Vzs8o8PJAam/uKBbUXt3ArxC88D6xR7rMeeGglg=,tag:S+OtbxLhVKFnqBZtyKDGyA==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
version: 3.12.2
|
||||
|
||||
@@ -1,68 +1,15 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.mySystem.misc;
|
||||
in {
|
||||
imports = [
|
||||
./boot
|
||||
./desktop
|
||||
./dev
|
||||
./hardware
|
||||
./i18n
|
||||
./misc.nix
|
||||
./network
|
||||
./packages
|
||||
./security
|
||||
./services
|
||||
./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 = [
|
||||
"https://nix-community.cachix.org?priority=10"
|
||||
"https://devenv.cachix.org?priority=20"
|
||||
"https://phundrak.cachix.org?priority=30"
|
||||
"https://cache.nixos.org?priority=40"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
||||
];
|
||||
http-connections = 128;
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -9,7 +9,10 @@ with lib; let
|
||||
in {
|
||||
options.mySystem.desktop.waydroid.enable = mkEnableOption "Enables Waydroid";
|
||||
config = mkIf cfg.enable {
|
||||
virtualisation.waydroid.enable = cfg.enable;
|
||||
virtualisation.waydroid = {
|
||||
enable = cfg.enable;
|
||||
package = pkgs.waydroid-nftables;
|
||||
};
|
||||
environment.systemPackages = [pkgs.waydroid-helper];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
./amdgpu.nix
|
||||
./bluetooth.nix
|
||||
./fingerprint.nix
|
||||
./sound.nix
|
||||
./input
|
||||
./pinetab2.nix
|
||||
./sound.nix
|
||||
];
|
||||
|
||||
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,7 +32,8 @@ in {
|
||||
|
||||
config = {
|
||||
environment.systemPackages = mkIf cfg.scarlett.enable [pkgs.alsa-scarlett-gui];
|
||||
services.pipewire = mkIf cfg.enable {
|
||||
services = {
|
||||
pipewire = mkIf cfg.enable {
|
||||
enable = true;
|
||||
alsa = mkIf cfg.alsa {
|
||||
enable = mkDefault true;
|
||||
@@ -40,6 +41,8 @@ in {
|
||||
};
|
||||
jack.enable = mkDefault cfg.jack;
|
||||
};
|
||||
pulseaudio.enable = false;
|
||||
};
|
||||
programs.noisetorch = mkIf cfg.enable {
|
||||
inherit (cfg) enable;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
imports = [
|
||||
./input.nix
|
||||
./locale.nix
|
||||
];
|
||||
}
|
||||
|
||||
25
system/i18n/input.nix
Normal file
25
system/i18n/input.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.mySystem.i18n.input;
|
||||
in {
|
||||
options.mySystem.i18n.input.enable = mkEnableOption "Enable i18n input with fcitx5";
|
||||
|
||||
config.i18n.inputMethod = mkIf cfg.enable {
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
fcitx5-gtk
|
||||
fcitx5-mozc-ut # Japanese input support
|
||||
fcitx5-nord
|
||||
fcitx5-table-other # X-SAMPA to IPA support
|
||||
qt6Packages.fcitx5-chinese-addons # allow to load table addons
|
||||
qt6Packages.fcitx5-configtool
|
||||
qt6Packages.fcitx5-with-addons
|
||||
];
|
||||
};
|
||||
}
|
||||
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;
|
||||
};
|
||||
};
|
||||
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 = {
|
||||
hostName = cfg.hostname; # Define your hostname.
|
||||
hostId = cfg.id;
|
||||
networkmanager.enable = true;
|
||||
networkmanager = {
|
||||
enable = true;
|
||||
wifi.powersave = ! cfg.wifi.disablePowersave;
|
||||
};
|
||||
inherit (cfg) hostFiles domain;
|
||||
firewall = {
|
||||
enable = true;
|
||||
|
||||
@@ -27,7 +27,7 @@ in {
|
||||
trusted-users = mkOption {
|
||||
type = types.listOf types.str;
|
||||
example = ["alice" "bob"];
|
||||
default = [];
|
||||
default = ["@wheel" "root"];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
imports = [
|
||||
./sops.nix
|
||||
];
|
||||
security.rtkit.enable = true;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
./calibre.nix
|
||||
./endlessh.nix
|
||||
./fwupd.nix
|
||||
./harmonia.nix
|
||||
./jellyfin.nix
|
||||
./languagetool.nix
|
||||
./plex.nix
|
||||
|
||||
36
system/services/harmonia.nix
Normal file
36
system/services/harmonia.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.mySystem.services.harmonia;
|
||||
in {
|
||||
options.mySystem.services.harmonia = {
|
||||
enable = mkEnableOption "Harmonia Nix binary cache server";
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 5000;
|
||||
description = "Port to listen on";
|
||||
};
|
||||
priority = mkOption {
|
||||
type = types.ints.between 0 100;
|
||||
default = 50;
|
||||
description = "Cache priority (lower = higher priority, 0-100)";
|
||||
};
|
||||
signKeyPaths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
description = "Paths to the signing keys to use for signing the cache.";
|
||||
};
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
services.harmonia.cache = {
|
||||
enable = true;
|
||||
inherit (cfg) signKeyPaths;
|
||||
settings = {
|
||||
inherit (cfg) priority;
|
||||
bind = "[::]:${toString cfg.port}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
23
users/modules/cli/scripts/launcher.nix
Normal file
23
users/modules/cli/scripts/launcher.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{pkgs, ...}:
|
||||
pkgs.writeShellScriptBin "app-launcher" ''
|
||||
LOG_FILE="$HOME/.local/share/app-launcher.log"
|
||||
|
||||
logger() {
|
||||
local level="$1"
|
||||
local message="$2"
|
||||
local timestamp
|
||||
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
|
||||
printf "[%s] [%-7s] %s\n" "$timestamp" "''${level^^}" "$message" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
CAELESTIA_ACTIVE=$(systemctl --user is-active caelestia.service)
|
||||
logger debug "Caelestia activity: $CAELESTIA_ACTIVE"
|
||||
|
||||
if systemctl --user is-active caelestia.service | grep 'active' &> /dev/null ; then
|
||||
logger info "Using Caelestia app launcher"
|
||||
caelestia shell drawers toggle launcher || \
|
||||
logger error "failed to launch Caelestia app launcher"
|
||||
exit 0
|
||||
fi
|
||||
rofi -show drun
|
||||
''
|
||||
@@ -31,6 +31,6 @@ in {
|
||||
dev.fullDesktop = mkDefault cfg.fullDesktop;
|
||||
media.fullDesktop = mkDefault cfg.fullDesktop;
|
||||
security.fullDesktop = mkDefault cfg.fullDesktop;
|
||||
services.fullDesktop = mkDefault cfg.fullDesktop;
|
||||
myServices.fullDesktop = mkDefault cfg.fullDesktop;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -13,9 +13,7 @@ in {
|
||||
systemd = {
|
||||
enable = true;
|
||||
target = "graphical-session.target";
|
||||
environment = [
|
||||
"QT3_QPA_PLATFORMTHEME=gtk3"
|
||||
];
|
||||
environment = ["QT3_QPA_PLATFORMTHEME=gtk3"];
|
||||
};
|
||||
settings = {
|
||||
paths.wallpaperDir = "~/Pictures/Wallpapers/nord";
|
||||
@@ -27,9 +25,10 @@ in {
|
||||
explorer = ["${pkgs.nemo-with-extensions}/bin/nemo"];
|
||||
};
|
||||
idle = {
|
||||
inhibitWhenAudio = true;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 300;
|
||||
timeout = 3600;
|
||||
idleAction = "lock";
|
||||
}
|
||||
];
|
||||
|
||||
@@ -45,6 +45,7 @@ in {
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.sessionVariables.MOZ_ENABLE_WAYLAND = "1";
|
||||
programs.firefox = {
|
||||
inherit (cfg) enable;
|
||||
package =
|
||||
@@ -52,6 +53,7 @@ in {
|
||||
then zen
|
||||
else pkgs.firefox;
|
||||
nativeMessagingHosts = lists.optional cfg.tridactyl.enable pkgs.tridactyl-native;
|
||||
configPath = ".mozilla/firefox";
|
||||
};
|
||||
xdg.configFile."tridactyl/tridactylrc" = mkIf cfg.tridactyl.enable {
|
||||
text = concatStringsSep "\n" (filter (s: s != "") [
|
||||
|
||||
@@ -50,10 +50,13 @@ in {
|
||||
systemd.enable = false;
|
||||
importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"];
|
||||
settings = {
|
||||
env = [
|
||||
"XMODIFIERS,@im=fcitx"
|
||||
"XCURSOR_SIZE,12"
|
||||
];
|
||||
input = {
|
||||
kb_layout = "fr,us";
|
||||
kb_variant = "bepo_afnor,";
|
||||
# kb_options = "caps:ctrl_modifier";
|
||||
numlock_by_default = true;
|
||||
follow_mouse = 1;
|
||||
touchpad.natural_scroll = false;
|
||||
@@ -106,6 +109,8 @@ in {
|
||||
"pactl load-module module-switch-on-connect"
|
||||
"${pkgs.mpc}/bin/mpc stop"
|
||||
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
||||
"${pkgs.mozc}/lib/mozc/mozc_server"
|
||||
"${pkgs.fcitx5}/bin/fcitx5 -d"
|
||||
]
|
||||
++ lib.lists.optional (! caelestiaEnabled) "${pkgs.networkmanagerapplet}/bin/nm-applet";
|
||||
};
|
||||
@@ -170,8 +175,6 @@ in {
|
||||
bind = SUPER_SHIFT, minus, movetoworkspace, 8
|
||||
bind = SUPER_SHIFT, slash, movetoworkspace, 9
|
||||
bind = SUPER_SHIFT, asterisk, movetoworkspace, 10
|
||||
|
||||
env = XCURSOR_SIZE,12
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -30,10 +30,7 @@ in {
|
||||
};
|
||||
ollama.enable = mkDefault cfg.enable;
|
||||
};
|
||||
packages = let
|
||||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
inherit (inputs.opencode.packages.${system}) opencode;
|
||||
in [pkgs.lmstudio opencode];
|
||||
packages = [pkgs.lmstudio pkgs.opencode];
|
||||
};
|
||||
programs.mcp = mkIf (cfg.mcpServers != {}) {
|
||||
enable = true;
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.services.blanket;
|
||||
cfg = config.home.myServices.blanket;
|
||||
in {
|
||||
options.home.services.blanket.enable = mkEnableOption "Enable blanket";
|
||||
options.home.myServices.blanket.enable = mkEnableOption "Enable blanket";
|
||||
config.services.blanket.enable = cfg.enable;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.services;
|
||||
cfg = config.home.myServices;
|
||||
in {
|
||||
imports = [
|
||||
./blanket.nix
|
||||
@@ -12,8 +12,12 @@ in {
|
||||
./mpris-proxy.nix
|
||||
./playerctld.nix
|
||||
];
|
||||
options.home.services.fullDesktop = mkEnableOption "Enable all modules";
|
||||
config.home.services = {
|
||||
options.home.myServices.fullDesktop = mkOption {
|
||||
description = "Enable all modules";
|
||||
type = types.bool;
|
||||
default = config.home.fullDesktop;
|
||||
};
|
||||
config.home.myServices = {
|
||||
blanket.enable = mkDefault cfg.fullDesktop;
|
||||
mbsync.enable = mkDefault cfg.fullDesktop;
|
||||
mpris-proxy.enable = mkDefault cfg.fullDesktop;
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.services.mbsync;
|
||||
cfg = config.home.myServices.mbsync;
|
||||
in {
|
||||
options.home.services.mbsync = {
|
||||
options.home.myServices.mbsync = {
|
||||
enable = mkEnableOption "Enables mbsync";
|
||||
service.enable = mkOption {
|
||||
type = types.bool;
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.services.mpris-proxy;
|
||||
cfg = config.home.myServices.mpris-proxy;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.services.playerctld;
|
||||
cfg = config.home.myServices.playerctld;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -6,8 +6,42 @@
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.home.shell.tmux;
|
||||
keyType = types.submodule {
|
||||
options = {
|
||||
key = mkOption {
|
||||
type = types.str;
|
||||
example = "C-b";
|
||||
};
|
||||
action = mkOption {
|
||||
type = types.str;
|
||||
example = "resize-pane -Z";
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
options.home.shell.tmux.enable = mkEnableOption "Enable tmux";
|
||||
options.home.shell.tmux = with types; {
|
||||
enable = mkEnableOption "Enable tmux";
|
||||
bind = mkOption {
|
||||
type = attrsOf (listOf keyType);
|
||||
default = {};
|
||||
example = {
|
||||
"prefix" = [
|
||||
{
|
||||
key = "C-r";
|
||||
action = "resize-pane -R";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
unbind = mkOption {
|
||||
type = listOf (either str (attrsOf (listOf str)));
|
||||
default = [];
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
config.programs.tmux = mkIf cfg.enable {
|
||||
inherit (cfg) enable;
|
||||
baseIndex = 1;
|
||||
@@ -25,71 +59,23 @@ in {
|
||||
sensible
|
||||
yank
|
||||
];
|
||||
extraConfig = ''
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
extraConfig = let
|
||||
generateBinds = concatLines (
|
||||
mapAttrsToList (table: keys: concatMapStrings (key: "bind -T ${table} ${key.key} ${key.action}\n") keys) cfg.bind
|
||||
);
|
||||
generateUnbind =
|
||||
concatMapStrings (
|
||||
entry:
|
||||
if builtins.isString entry
|
||||
then "unbind ${entry}\n"
|
||||
else concatStrings (mapAttrsToList (table: keys: concatMapStrings (key: "unbind -T ${table} ${key}\n") keys) entry)
|
||||
)
|
||||
cfg.unbind;
|
||||
in ''
|
||||
${cfg.extraConfig}
|
||||
|
||||
unbind C-b
|
||||
|
||||
bind-key -T prefix « select-window -p
|
||||
bind-key -T prefix » select-window -n
|
||||
bind-key -T prefix Tab switch-client -T windows
|
||||
bind-key -T prefix w switch-client -T pane
|
||||
bind-key -T prefix y switch-client -T copy-mode
|
||||
|
||||
bind-key -T pane / split-window -h -c "#{pane-current_path}"
|
||||
bind-key -T pane - split-window -v -c "#{pane-current_path}"
|
||||
bind-key -T pane c select-pane -L
|
||||
bind-key -T pane t select-pane -D
|
||||
bind-key -T pane s select-pane -U
|
||||
bind-key -T pane r select-pane -R
|
||||
bind-key -T pane f resize-pane -Z
|
||||
bind-key -T pane . switch-client -T pane-resize
|
||||
|
||||
bind-key -T pane-resize c resize-pane -L 5\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize t resize-pane -D 5\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize s resize-pane -U 5\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize r resize-pane -R 5\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize C resize-pane -L\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize T resize-pane -D\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize S resize-pane -U\; switch-client -T pane-resize
|
||||
bind-key -T pane-resize R resize-pane -R\; switch-client -T pane-resize
|
||||
|
||||
bind-key -T windows c new-window
|
||||
bind-key -T windows n next-window
|
||||
bind-key -T windows p previous-window
|
||||
|
||||
bind-key -T windows \" select-window -t :=1
|
||||
bind-key -T windows « select-window -t :=2
|
||||
bind-key -T windows » select-window -t :=3
|
||||
bind-key -T windows ( select-window -t :=4
|
||||
bind-key -T windows ) select-window -t :=5
|
||||
bind-key -T windows @ select-window -t :=6
|
||||
bind-key -T windows + select-window -t :=7
|
||||
bind-key -T windows - select-window -t :=8
|
||||
bind-key -T windows / select-window -t :=9
|
||||
bind-key -T windows * select-window -t :=10
|
||||
|
||||
unbind -T copy-mode-vi H
|
||||
unbind -T copy-mode-vi J
|
||||
unbind -T copy-mode-vi K
|
||||
unbind -T copy-mode-vi L
|
||||
unbind -T copy-mode-vi h
|
||||
unbind -T copy-mode-vi j
|
||||
unbind -T copy-mode-vi k
|
||||
unbind -T copy-mode-vi l
|
||||
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel
|
||||
bind-key -T copy-mode-vi C send-keys -X top-line
|
||||
bind-key -T copy-mode-vi J send-keys -X jump-to-backward
|
||||
bind-key -T copy-mode-vi S send-keys -X scroll-up
|
||||
bind-key -T copy-mode-vi R send-keys -X bottom-line
|
||||
bind-key -T copy-mode-vi T send-keys -X scroll-down
|
||||
bind-key -T copy-mode-vi c send-keys -X cursor-left
|
||||
bind-key -T copy-mode-vi t send-keys -X cursor-down
|
||||
bind-key -T copy-mode-vi s send-keys -X cursor-up
|
||||
bind-key -T copy-mode-vi r send-keys -X cursor-right
|
||||
${generateUnbind}
|
||||
${generateBinds}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
1673
users/phundrak/XCompose
Normal file
1673
users/phundrak/XCompose
Normal file
File diff suppressed because it is too large
Load Diff
77
users/phundrak/firefox.nix
Normal file
77
users/phundrak/firefox.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
config.home.desktop.firefox = {
|
||||
enable = true;
|
||||
useZen = true;
|
||||
tridactyl = {
|
||||
enable = true;
|
||||
preConfig = "sanitise tridactyllocal tridactylsync";
|
||||
config = {
|
||||
editorcmd = "emacsclient -c";
|
||||
keyboardlayoutbase = "bepo";
|
||||
keyboardlayoutforce = "true";
|
||||
hintchars = "auiectsr";
|
||||
smothscroll = "true";
|
||||
};
|
||||
extraConfig = ''
|
||||
unbind h
|
||||
unbind j
|
||||
unbind k
|
||||
unbind l
|
||||
unbind c
|
||||
unbind t
|
||||
unbind s
|
||||
unbind r
|
||||
unbind H
|
||||
unbind J
|
||||
unbind K
|
||||
unbind L
|
||||
unbind C
|
||||
unbind T
|
||||
unbind S
|
||||
unbind R
|
||||
|
||||
" === Bépo layout — scrolling (ctsr = hjkl) ===
|
||||
bind c scrollpx -300 0
|
||||
bind t scrollline 5
|
||||
bind s scrollline -5
|
||||
bind r scrollpx 300 0
|
||||
|
||||
" Half/full page scroll (replacing C-f/C-b/C-d/C-u)
|
||||
bind <C-t> scrollpage 0.5
|
||||
bind <C-s> scrollpage -0.5
|
||||
|
||||
" === History navigation (C/R = H/L) ===
|
||||
bind C back
|
||||
bind R forward
|
||||
|
||||
" === Tab navigation ===
|
||||
bind T tabnext
|
||||
bind S tabprev
|
||||
|
||||
" === Displaced commands ===
|
||||
" reload was on r → move to h (bépo's 'replace' position)
|
||||
bind h reload
|
||||
bind H reloadhard
|
||||
|
||||
" tabopen was on t → move to j (bépo's 'find char to' position)
|
||||
bind j fillcmdline tabopen
|
||||
|
||||
unbind ^http(s?)://youtube\.com f
|
||||
unbind ^http(s?)://youtube\.com t
|
||||
unbind ^http(s?)://youtube\.com l
|
||||
unbind ^http(s?)://youtube\.com j
|
||||
unbind ^http(s?)://twitch\.tv f
|
||||
|
||||
bind n findnext
|
||||
bind N findnext -f
|
||||
bind p findnext --reverse
|
||||
bind P findnext -f --reverse
|
||||
|
||||
bind < urlincrement -1
|
||||
bind > urlincrement 1
|
||||
bind ypv js tri.native.run(`mpv --ytdl-format="[height >=? 480]" --ontop --fs "''${document.location.href}"`)
|
||||
bind ypm hint -JF e => tri.native.run(`mpv --ytdl-format="[height >=? 480]" --ontop --fs "''${e.href}"`)
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,6 +8,8 @@
|
||||
./light-home.nix
|
||||
./packages.nix
|
||||
./email.nix
|
||||
./firefox.nix
|
||||
./tmux.nix
|
||||
./wlr-which-key
|
||||
../modules
|
||||
];
|
||||
@@ -65,76 +67,6 @@
|
||||
};
|
||||
desktop = {
|
||||
caelestia.enable = true;
|
||||
firefox = {
|
||||
enable = true;
|
||||
useZen = true;
|
||||
tridactyl = {
|
||||
enable = true;
|
||||
preConfig = "sanitise tridactyllocal tridactylsync";
|
||||
config = {
|
||||
editorcmd = "emacsclient -c";
|
||||
keyboardlayoutbase = "bepo";
|
||||
keyboardlayoutforce = "true";
|
||||
hintchars = "auiectsr";
|
||||
smothscroll = "true";
|
||||
};
|
||||
extraConfig = ''
|
||||
unbind h
|
||||
unbind j
|
||||
unbind k
|
||||
unbind l
|
||||
unbind c
|
||||
unbind t
|
||||
unbind s
|
||||
unbind r
|
||||
unbind H
|
||||
unbind J
|
||||
unbind K
|
||||
unbind L
|
||||
unbind C
|
||||
unbind T
|
||||
unbind S
|
||||
unbind R
|
||||
|
||||
" === Bépo layout — scrolling (ctsr = hjkl) ===
|
||||
bind c scrollpx -300 0
|
||||
bind t scrollline 5
|
||||
bind s scrollline -5
|
||||
bind r scrollpx 300 0
|
||||
|
||||
" Half/full page scroll (replacing C-f/C-b/C-d/C-u)
|
||||
bind <C-t> scrollpage 0.5
|
||||
bind <C-s> scrollpage -0.5
|
||||
|
||||
" === History navigation (C/R = H/L) ===
|
||||
bind C back
|
||||
bind R forward
|
||||
|
||||
" === Tab navigation ===
|
||||
bind T tabnext
|
||||
bind S tabprev
|
||||
|
||||
" === Displaced commands ===
|
||||
" reload was on r → move to h (bépo's 'replace' position)
|
||||
bind h reload
|
||||
bind H reloadhard
|
||||
|
||||
" tabopen was on t → move to j (bépo's 'find char to' position)
|
||||
bind j fillcmdline tabopen
|
||||
|
||||
unbind ^http(s?)://youtube\.com f
|
||||
unbind ^http(s?)://youtube\.com t
|
||||
unbind ^http(s?)://youtube\.com l
|
||||
unbind ^http(s?)://youtube\.com j
|
||||
unbind ^http(s?)://twitch\.tv f
|
||||
|
||||
bind < urlincrement -1
|
||||
bind > urlincrement 1
|
||||
bind ypv js tri.native.run(`mpv --ytdl-format="[height >=? 480]" --ontop --fs "''${document.location.href}"`)
|
||||
bind ypm hint -JF e => tri.native.run(`mpv --ytdl-format="[height >=? 480]" --ontop --fs "''${e.href}"`)
|
||||
'';
|
||||
};
|
||||
};
|
||||
spotify = {
|
||||
enable = true;
|
||||
spicetify.enable = true;
|
||||
@@ -157,7 +89,9 @@
|
||||
vcs.jj.signing.enable = true;
|
||||
};
|
||||
fullDesktop = true;
|
||||
file."${config.home.homeDirectory}/.ssh/allowed_signers" = {
|
||||
file = {
|
||||
".XCompose".source = ./XCompose;
|
||||
"${config.home.homeDirectory}/.ssh/allowed_signers" = {
|
||||
enable = true;
|
||||
text = lib.strings.join "\n" (
|
||||
map (file: let
|
||||
@@ -169,6 +103,7 @@
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
manual = {
|
||||
html.enable = true;
|
||||
|
||||
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" = {};
|
||||
age = {
|
||||
# automatically import user SSH keys as age keys
|
||||
sshKeyPaths = [
|
||||
"${config.home.homeDirectory}/.ssh/id_ed25519"
|
||||
];
|
||||
sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
|
||||
# this will use an age key that is expected to already be in the filesystem
|
||||
keyFile = "${config.home.homeDirectory}/.local/sops-nix/key.txt";
|
||||
# generate a new key if the key specified above does not exist
|
||||
|
||||
@@ -32,17 +32,16 @@ in {
|
||||
audacity
|
||||
plexamp
|
||||
plex-desktop
|
||||
spicetify-cli
|
||||
pavucontrol # Volume control
|
||||
|
||||
# Social
|
||||
vesktop # Discord alternative that works well with wayland
|
||||
element-desktop
|
||||
signal-desktop
|
||||
|
||||
# Misc
|
||||
bitwarden-desktop
|
||||
# gplates
|
||||
kicad-small
|
||||
qgis
|
||||
handy
|
||||
libnotify
|
||||
nextcloud-client
|
||||
|
||||
210
users/phundrak/tmux.nix
Normal file
210
users/phundrak/tmux.nix
Normal file
@@ -0,0 +1,210 @@
|
||||
{
|
||||
home.shell.tmux = {
|
||||
enable = true;
|
||||
extraConfig = "set-option -sa terminal-overrides \",xterm*:Tc\"";
|
||||
unbind = [
|
||||
"C-b"
|
||||
{"copy-mode-vi" = ["H" "J" "K" "L" "h" "j" "k" "l"];}
|
||||
];
|
||||
bind = {
|
||||
prefix = [
|
||||
{
|
||||
key = "«";
|
||||
action = "select-window -p";
|
||||
}
|
||||
{
|
||||
key = "»";
|
||||
action = "select-window -n";
|
||||
}
|
||||
{
|
||||
key = "Tab";
|
||||
action = "switch-client -T windows";
|
||||
}
|
||||
{
|
||||
key = "w";
|
||||
action = "switch-client -T pane";
|
||||
}
|
||||
{
|
||||
key = "y";
|
||||
action = "switch-client -T copy-mode";
|
||||
}
|
||||
];
|
||||
pane = [
|
||||
{
|
||||
key = "/";
|
||||
action = "split-window -h -c \"#{pane-current_path}\"";
|
||||
}
|
||||
{
|
||||
key = "-";
|
||||
action = "split-window -v -c \"#{pane-current_path}\"";
|
||||
}
|
||||
{
|
||||
key = "c";
|
||||
action = "select-pane -L";
|
||||
}
|
||||
{
|
||||
key = "t";
|
||||
action = "select-pane -D";
|
||||
}
|
||||
{
|
||||
key = "s";
|
||||
action = "select-pane -U";
|
||||
}
|
||||
{
|
||||
key = "r";
|
||||
action = "select-pane -R";
|
||||
}
|
||||
{
|
||||
key = "f";
|
||||
action = "resize-pane -Z";
|
||||
}
|
||||
{
|
||||
key = ".";
|
||||
action = "switch-client -T pane-resize";
|
||||
}
|
||||
];
|
||||
"pane-resize" = [
|
||||
{
|
||||
key = "c";
|
||||
action = "resize-pane -L 5\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "t";
|
||||
action = "resize-pane -D 5\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "s";
|
||||
action = "resize-pane -U 5\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "r";
|
||||
action = "resize-pane -R 5\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "C";
|
||||
action = "resize-pane -L\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "T";
|
||||
action = "resize-pane -D\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "S";
|
||||
action = "resize-pane -U\\; switch-client -T pane-resize";
|
||||
}
|
||||
{
|
||||
key = "R";
|
||||
action = "resize-pane -R\\; switch-client -T pane-resize";
|
||||
}
|
||||
];
|
||||
windows = [
|
||||
{
|
||||
key = "c";
|
||||
action = "new-window";
|
||||
}
|
||||
{
|
||||
key = "n";
|
||||
action = "next-window";
|
||||
}
|
||||
{
|
||||
key = "p";
|
||||
action = "previous-window";
|
||||
}
|
||||
{
|
||||
key = "r";
|
||||
action = "command-prompt \"rename-window '%%'\"";
|
||||
}
|
||||
{
|
||||
key = "\\\"";
|
||||
action = "select-window -t :=1";
|
||||
}
|
||||
{
|
||||
key = "«";
|
||||
action = "select-window -t :=2";
|
||||
}
|
||||
{
|
||||
key = "»";
|
||||
action = "select-window -t :=3";
|
||||
}
|
||||
{
|
||||
key = "(";
|
||||
action = "select-window -t :=4";
|
||||
}
|
||||
{
|
||||
key = ")";
|
||||
action = "select-window -t :=5";
|
||||
}
|
||||
{
|
||||
key = "@";
|
||||
action = "select-window -t :=6";
|
||||
}
|
||||
{
|
||||
key = "+";
|
||||
action = "select-window -t :=7";
|
||||
}
|
||||
{
|
||||
key = "-";
|
||||
action = "select-window -t :=8";
|
||||
}
|
||||
{
|
||||
key = "/";
|
||||
action = "select-window -t :=9";
|
||||
}
|
||||
{
|
||||
key = "*";
|
||||
action = "select-window -t :=10";
|
||||
}
|
||||
];
|
||||
"copy-mode-vi" = [
|
||||
{
|
||||
key = "v";
|
||||
action = "send-keys -X begin-selection";
|
||||
}
|
||||
{
|
||||
key = "C-v";
|
||||
action = "send-keys -X rectangle-toggle";
|
||||
}
|
||||
{
|
||||
key = "y";
|
||||
action = "send-keys -X copy-selection-and-cancel";
|
||||
}
|
||||
{
|
||||
key = "C";
|
||||
action = "send-keys -X top-line";
|
||||
}
|
||||
{
|
||||
key = "J";
|
||||
action = "send-keys -X jump-to-backward";
|
||||
}
|
||||
{
|
||||
key = "S";
|
||||
action = "send-keys -X scroll-up";
|
||||
}
|
||||
{
|
||||
key = "R";
|
||||
action = "send-keys -X bottom-line";
|
||||
}
|
||||
{
|
||||
key = "T";
|
||||
action = "send-keys -X scroll-down";
|
||||
}
|
||||
{
|
||||
key = "c";
|
||||
action = "send-keys -X cursor-left";
|
||||
}
|
||||
{
|
||||
key = "t";
|
||||
action = "send-keys -X cursor-down";
|
||||
}
|
||||
{
|
||||
key = "s";
|
||||
action = "send-keys -X cursor-up";
|
||||
}
|
||||
{
|
||||
key = "r";
|
||||
action = "send-keys -X cursor-right";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -26,8 +26,9 @@
|
||||
focus-urgent = import ./focus-urgent.nix {inherit pkgs;};
|
||||
fullscreen = import ./fullscreen.nix {inherit pkgs;};
|
||||
logout = import ./logout.nix {inherit pkgs;};
|
||||
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
||||
app-launcher = import ../../modules/cli/scripts/launcher.nix {inherit pkgs;};
|
||||
plock = import ../../modules/cli/scripts/plock.nix {inherit pkgs;};
|
||||
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
||||
in
|
||||
[
|
||||
{
|
||||
@@ -96,7 +97,7 @@
|
||||
{
|
||||
key = "r";
|
||||
desc = "App Menu";
|
||||
cmd = "rofi -show drun";
|
||||
cmd = "${app-launcher}/bin/app-launcher";
|
||||
}
|
||||
{
|
||||
key = "s";
|
||||
|
||||
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