Compare commits
5 Commits
feature/on
...
dd283fdffe
| Author | SHA1 | Date | |
|---|---|---|---|
|
dd283fdffe
|
|||
|
138724434d
|
|||
|
8d50b65f60
|
|||
|
4fdaae79a0
|
|||
|
f42f4d2aba
|
6
.envrc
6
.envrc
@@ -1,7 +1,11 @@
|
|||||||
# -*- mode: sh; -*-
|
# -*- mode: sh; -*-
|
||||||
|
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
|
||||||
|
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
|
||||||
|
fi
|
||||||
|
|
||||||
watch_file flake.nix
|
watch_file flake.nix
|
||||||
watch_file flake.lock
|
watch_file flake.lock
|
||||||
if ! use flake . --no-pure-eval
|
if ! use flake . --no-pure-eval
|
||||||
then
|
then
|
||||||
echo "dev shell could not be built. The environment was not loaded. Make the necessary changes to flake.nix and hit enter to try again." >&2
|
echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2
|
||||||
fi
|
fi
|
||||||
|
|||||||
921
flake.lock
generated
921
flake.lock
generated
File diff suppressed because it is too large
Load Diff
78
flake.nix
78
flake.nix
@@ -3,7 +3,11 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
|
devenv = {
|
||||||
|
url = "github:cachix/devenv";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
@@ -30,16 +34,6 @@
|
|||||||
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 = {
|
|
||||||
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";
|
||||||
@@ -68,15 +62,14 @@
|
|||||||
|
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"marpa-local:XoO+dFN4PeauF52pYuy3Vh4Sdtl2qIdxu5aUasWKv6Q="
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
|
||||||
];
|
];
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
"http://marpa:5000?priority=5"
|
"https://nix-community.cachix.org?priority=10"
|
||||||
"https://phundrak.cachix.org?priority=10"
|
"https://devenv.cachix.org?priority=20"
|
||||||
"https://nix-community.cachix.org?priority=20"
|
"https://phundrak.cachix.org?priority=30"
|
||||||
"https://cache.nixos.org?priority=40"
|
"https://cache.nixos.org?priority=40"
|
||||||
];
|
];
|
||||||
extra-experimental-features = [
|
extra-experimental-features = [
|
||||||
@@ -89,27 +82,42 @@
|
|||||||
outputs = {
|
outputs = {
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
flake-utils,
|
|
||||||
home-manager,
|
home-manager,
|
||||||
mobile-nixos,
|
devenv,
|
||||||
srvos,
|
srvos,
|
||||||
...
|
...
|
||||||
} @ inputs:
|
} @ inputs: let
|
||||||
flake-utils.lib.eachDefaultSystem (
|
|
||||||
system: let
|
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
|
system = "x86_64-linux";
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
in {
|
in {
|
||||||
formatter = pkgs.alejandra;
|
formatter.${system} = pkgs.alejandra;
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
buildInputs = [
|
packages.${system} = {
|
||||||
pkgs.nh
|
devenv-up = self.devShells.${system}.default.config.procfileScript;
|
||||||
pkgs.jujutsu
|
devenv-test = self.devShells.${system}.default.config.test;
|
||||||
pkgs.git
|
};
|
||||||
|
|
||||||
|
devShells.${system}.default = devenv.lib.mkShell {
|
||||||
|
inherit inputs pkgs;
|
||||||
|
modules = [
|
||||||
|
(
|
||||||
|
{pkgs, ...}: {
|
||||||
|
packages = [pkgs.nh];
|
||||||
|
git-hooks.hooks = {
|
||||||
|
alejandra.enable = true;
|
||||||
|
commitizen.enable = true;
|
||||||
|
detect-private-keys.enable = true;
|
||||||
|
end-of-file-fixer.enable = true;
|
||||||
|
deadnix.enable = true;
|
||||||
|
ripsecrets.enable = true;
|
||||||
|
statix.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = {
|
|
||||||
homeConfigurations = let
|
homeConfigurations = let
|
||||||
extraSpecialArgs = {inherit inputs outputs system;};
|
extraSpecialArgs = {inherit inputs outputs system;};
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
@@ -134,7 +142,7 @@
|
|||||||
};
|
};
|
||||||
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@gampo" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
inherit extraSpecialArgs pkgs;
|
||||||
modules = withUserModules ./users/phundrak/host/gampo.nix;
|
modules = withUserModules ./users/phundrak/host/marpa.nix;
|
||||||
};
|
};
|
||||||
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit extraSpecialArgs pkgs;
|
inherit extraSpecialArgs pkgs;
|
||||||
@@ -172,7 +180,7 @@
|
|||||||
};
|
};
|
||||||
marpa = nixpkgs.lib.nixosSystem {
|
marpa = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
modules = withSystemModules ./hosts/marpa;
|
modules = withSystemModules ./hosts/marpa/configuration.nix;
|
||||||
};
|
};
|
||||||
NaroMk3 = nixpkgs.lib.nixosSystem {
|
NaroMk3 = nixpkgs.lib.nixosSystem {
|
||||||
inherit specialArgs;
|
inherit specialArgs;
|
||||||
@@ -183,14 +191,6 @@
|
|||||||
./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;
|
||||||
@@ -198,5 +198,3 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,14 +12,14 @@
|
|||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"elcafe/traefik/env".restartUnits = ["traefik.service"];
|
"elcafe/traefik/env".restartUnits = ["traefik.service"];
|
||||||
"elcafe/traefik/dynamic".restartUnits = ["traefik.service"];
|
"elcafe/traefik/dynamic".restartUnits = ["traefik.service"];
|
||||||
# "elcafe/copyparty/passwords/creug" = {
|
"elcafe/copyparty/passwords/creug" = {
|
||||||
# restartUnits = ["copyparty.service"];
|
restartUnits = ["copyparty.service"];
|
||||||
# owner = "creug";
|
owner = "creug";
|
||||||
# };
|
};
|
||||||
# "elcafe/copyparty/passwords/phundrak" = {
|
"elcafe/copyparty/passwords/phundrak" = {
|
||||||
# restartUnits = ["copyparty.service"];
|
restartUnits = ["copyparty.service"];
|
||||||
# owner = "phundrak";
|
owner = "phundrak";
|
||||||
# };
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mySystem = {
|
mySystem = {
|
||||||
@@ -73,12 +73,12 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.copyparty = import ./copyparty.nix {
|
services.copyparty = import ./copyparty.nix {
|
||||||
# passwordFiles = {
|
passwordFiles = {
|
||||||
# creug = config.sops.secrets."elcafe/copyparty/passwords/creug".path;
|
creug = config.sops.secrets."elcafe/copyparty/passwords/creug".path;
|
||||||
# phundrak = config.sops.secrets."elcafe/copyparty/passwords/phundrak".path;
|
phundrak = config.sops.secrets."elcafe/copyparty/passwords/phundrak".path;
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
|
|||||||
@@ -41,7 +41,6 @@
|
|||||||
};
|
};
|
||||||
sound.enable = true;
|
sound.enable = true;
|
||||||
};
|
};
|
||||||
i18n.input.enable = true;
|
|
||||||
misc.keymap = "fr-bepo";
|
misc.keymap = "fr-bepo";
|
||||||
networking = {
|
networking = {
|
||||||
hostname = "gampo";
|
hostname = "gampo";
|
||||||
|
|||||||
@@ -86,7 +86,6 @@
|
|||||||
scarlett.enable = true;
|
scarlett.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
i18n.input.enable = true;
|
|
||||||
misc.keymap = "fr-bepo";
|
misc.keymap = "fr-bepo";
|
||||||
networking = {
|
networking = {
|
||||||
hostname = "marpa";
|
hostname = "marpa";
|
||||||
@@ -107,10 +106,6 @@
|
|||||||
programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
services = {
|
services = {
|
||||||
fwupd.enable = true;
|
fwupd.enable = true;
|
||||||
harmonia = {
|
|
||||||
enable = true;
|
|
||||||
signKeyPaths = [config.sops.secrets."marpa/nix-cache-priv-key".path];
|
|
||||||
};
|
|
||||||
languagetool.enable = true;
|
languagetool.enable = true;
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
ssh.enable = true;
|
ssh.enable = true;
|
||||||
@@ -128,14 +123,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets = {
|
sops.secrets.extraHosts = {
|
||||||
"marpa/nix-cache-priv-key" = {};
|
|
||||||
extraHosts = {
|
|
||||||
inherit (config.users.users.root) group;
|
inherit (config.users.users.root) group;
|
||||||
owner = config.users.users.phundrak.name;
|
owner = config.users.users.phundrak.name;
|
||||||
mode = "0440";
|
mode = "0440";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
services.udev.extraHwdb = ''
|
services.udev.extraHwdb = ''
|
||||||
mouse:usb:047d:80a6:*
|
mouse:usb:047d:80a6:*
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
# 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";
|
|
||||||
}
|
|
||||||
@@ -6,8 +6,6 @@ elcafe:
|
|||||||
traefik:
|
traefik:
|
||||||
env: ENC[AES256_GCM,data:HUdWGYoEPp2v8dnDuVsl7YmPxuBfHmXzGrvKWeiqPlmAwMqVZrZ1j8on/7QKvYDJoTJ40XY2qNynSA==,iv:Vgc/fZERnNp7hSMeRd9EgB3IenKAFTAhwC0bk8CX4DE=,tag:SdfhOST/o29Lt1zRdXXRyQ==,type:str]
|
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]
|
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]
|
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:
|
mopidy:
|
||||||
spotify: ENC[AES256_GCM,data:6i9BzQmlndnROuT1H2zgN/3I6hBiFf14BlcS+XL2PbTiiEQZe2yE3tnZo3KXU9S5CjS3MwxsVdytKOFMQt2s1bVjcibBhJzoKEQByaapdzn1mK3kQLdJfhPf4Hf9YZV9Dlc60ngS7ESLZakdFVlj4rlbV5XReLhK,iv:fYd78r4U0kTyq1TZjBVXkjdNiOQ29gLJ53kwTXsi8W0=,tag:oWaeOuzdHWS4joZAdeA2pg==,type:str]
|
spotify: ENC[AES256_GCM,data:6i9BzQmlndnROuT1H2zgN/3I6hBiFf14BlcS+XL2PbTiiEQZe2yE3tnZo3KXU9S5CjS3MwxsVdytKOFMQt2s1bVjcibBhJzoKEQByaapdzn1mK3kQLdJfhPf4Hf9YZV9Dlc60ngS7ESLZakdFVlj4rlbV5XReLhK,iv:fYd78r4U0kTyq1TZjBVXkjdNiOQ29gLJ53kwTXsi8W0=,tag:oWaeOuzdHWS4joZAdeA2pg==,type:str]
|
||||||
@@ -107,7 +105,7 @@ sops:
|
|||||||
dUpXZis2N2VyN0ZFbjlPRXdwRFQ1aHMKm1Mk6MPKxFmwdATCYUANRSY5rHKgmQer
|
dUpXZis2N2VyN0ZFbjlPRXdwRFQ1aHMKm1Mk6MPKxFmwdATCYUANRSY5rHKgmQer
|
||||||
LBlqqWKt1JiIUAYtazQeQ6KYxmjVlQPY7AZw2t+EhBEPrqbTL3vOiw==
|
LBlqqWKt1JiIUAYtazQeQ6KYxmjVlQPY7AZw2t+EhBEPrqbTL3vOiw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2026-05-01T13:20:34Z"
|
lastmodified: "2026-03-07T17:19:05Z"
|
||||||
mac: ENC[AES256_GCM,data:OueL0eHYmFKWfSyCZxburRJ2FS1xkowx7ha/Zv7r++26D85GSHDeIL9HdfByI5a1OhH90rH3WLxZrJgT3FiwBw27HhhHtS7Fs6MBFvTuPmSA7ZtMeGMWBRVjwbGAWN17BZAhJzMlZHq2nPX0xXIKT0HuTLVRPLuVCSlvDzMXsTE=,iv:+JN4Vzs8o8PJAam/uKBbUXt3ArxC88D6xR7rMeeGglg=,tag:S+OtbxLhVKFnqBZtyKDGyA==,type:str]
|
mac: ENC[AES256_GCM,data:hT4mPKLcIuAFmllJBYFXL5sGyMn95mYEv+eGVA+KQYm629YKSncgvn5g8elau/8HXR1O/bwQlkGmGr8VPeR/0KRb6TPCA4MrCwox38fy3ZLx2e0movVi/xIgKXIo5wYUq4Qm/pSo715limxGChxUxKtdEK/lmMkSnxyGmlkQtwM=,iv:XoOfhdK/CK6shUXhH4h14gtyqZqcqmTV6/R2jkynFr8=,tag:q3V0xcWQxjFi2drk5fLJoQ==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.12.2
|
version: 3.11.0
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config.boot = mkIf (! config.mySystem.misc.mobile) {
|
config.boot = {
|
||||||
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"
|
||||||
@@ -73,7 +73,10 @@ in {
|
|||||||
};
|
};
|
||||||
supportedFilesystems = mkIf cfg.zfs.enable ["zfs"];
|
supportedFilesystems = mkIf cfg.zfs.enable ["zfs"];
|
||||||
zfs.extraPools = mkIf cfg.zfs.enable cfg.zfs.pools;
|
zfs.extraPools = mkIf cfg.zfs.enable cfg.zfs.pools;
|
||||||
kernelPackages = cfg.kernel.package;
|
kernelPackages =
|
||||||
|
if cfg.kernel.hardened
|
||||||
|
then pkgs.linuxPackages_hardened
|
||||||
|
else cfg.kernel.package;
|
||||||
kernelModules =
|
kernelModules =
|
||||||
cfg.kernel.modules
|
cfg.kernel.modules
|
||||||
++ ["kvm-${cfg.kernel.cpuVendor}"]
|
++ ["kvm-${cfg.kernel.cpuVendor}"]
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ 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 = {
|
||||||
@@ -48,16 +47,16 @@ in {
|
|||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
substituters = [
|
substituters = [
|
||||||
"http://marpa:5000?priority=5"
|
"https://nix-community.cachix.org?priority=10"
|
||||||
"https://phundrak.cachix.org?priority=10"
|
"https://devenv.cachix.org?priority=20"
|
||||||
"https://nix-community.cachix.org?priority=20"
|
"https://phundrak.cachix.org?priority=30"
|
||||||
"https://cache.nixos.org?priority=40"
|
"https://cache.nixos.org?priority=40"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
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="
|
"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;
|
http-connections = 128;
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ 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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,7 @@ 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";
|
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
||||||
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;
|
||||||
@@ -33,14 +32,13 @@ in {
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = mkIf cfg.scarlett.enable [pkgs.alsa-scarlett-gui];
|
environment.systemPackages = mkIf cfg.scarlett.enable [pkgs.alsa-scarlett-gui];
|
||||||
services = {
|
services.pipewire = mkIf cfg.enable {
|
||||||
pipewire.enable = mkForce (cfg.enable && ! cfg.usePulseaudio);
|
enable = true;
|
||||||
pipewire.alsa = {
|
alsa = mkIf cfg.alsa {
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
support32Bit = mkDefault true;
|
support32Bit = mkDefault true;
|
||||||
};
|
};
|
||||||
pipewire.jack.enable = cfg.jack;
|
jack.enable = mkDefault cfg.jack;
|
||||||
pulseaudio.enable = cfg.usePulseaudio;
|
|
||||||
};
|
};
|
||||||
programs.noisetorch = mkIf cfg.enable {
|
programs.noisetorch = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./input.nix
|
|
||||||
./locale.nix
|
./locale.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
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
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
@@ -10,7 +11,12 @@ in {
|
|||||||
enable = mkEnableOption "Enable Flatpak support";
|
enable = mkEnableOption "Enable Flatpak support";
|
||||||
builder.enable = mkEnableOption "Enable Flatpak builder";
|
builder.enable = mkEnableOption "Enable Flatpak builder";
|
||||||
};
|
};
|
||||||
config.services.flatpak = mkIf cfg.enable {
|
config = {
|
||||||
|
services.flatpak = mkIf cfg.enable {
|
||||||
inherit (cfg) enable;
|
inherit (cfg) enable;
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = mkIf cfg.builder.enable [
|
||||||
|
pkgs.flatpak-buildR
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
./calibre.nix
|
./calibre.nix
|
||||||
./endlessh.nix
|
./endlessh.nix
|
||||||
./fwupd.nix
|
./fwupd.nix
|
||||||
./harmonia.nix
|
|
||||||
./jellyfin.nix
|
./jellyfin.nix
|
||||||
./languagetool.nix
|
./languagetool.nix
|
||||||
./plex.nix
|
./plex.nix
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
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}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -10,18 +10,13 @@ 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"] ++ cfg.extraGroups;
|
extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman" "plugdev" "games" "audio" "input"];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ../../users/phundrak/keys;
|
openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ../../users/phundrak/keys;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,16 +34,7 @@ in {
|
|||||||
creug.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
|
creug.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
|
||||||
|
|
||||||
dev.vcs = {
|
dev.vcs = {
|
||||||
name = "Creug";
|
jj.enable = false;
|
||||||
email = "gregory.foulachon@gmail.com";
|
|
||||||
editor = "${pkgs.nano}/bin/nano";
|
|
||||||
jj = {
|
|
||||||
enable = true;
|
|
||||||
cz = {
|
|
||||||
enable = true;
|
|
||||||
alias = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
publicKey = cfg.sshKey;
|
publicKey = cfg.sshKey;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ in {
|
|||||||
imports = [
|
imports = [
|
||||||
./caelestia.nix
|
./caelestia.nix
|
||||||
./eww.nix
|
./eww.nix
|
||||||
./firefox.nix
|
|
||||||
./hyprland.nix
|
./hyprland.nix
|
||||||
./kdeconnect.nix
|
./kdeconnect.nix
|
||||||
./kitty.nix
|
./kitty.nix
|
||||||
@@ -19,7 +18,6 @@ in {
|
|||||||
./swaync.nix
|
./swaync.nix
|
||||||
./theme.nix
|
./theme.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
./wl-kbptr.nix
|
|
||||||
./wlr-which-key.nix
|
./wlr-which-key.nix
|
||||||
./wlsunset.nix
|
./wlsunset.nix
|
||||||
];
|
];
|
||||||
@@ -27,7 +25,6 @@ in {
|
|||||||
options.home.desktop.fullDesktop = mkEnableOption "Enable options for graphical environments";
|
options.home.desktop.fullDesktop = mkEnableOption "Enable options for graphical environments";
|
||||||
config.home.desktop = {
|
config.home.desktop = {
|
||||||
eww.enable = mkDefault cfg.fullDesktop;
|
eww.enable = mkDefault cfg.fullDesktop;
|
||||||
firefox.enable = mkDefault cfg.fullDesktop;
|
|
||||||
hyprland.enable = mkDefault cfg.fullDesktop;
|
hyprland.enable = mkDefault cfg.fullDesktop;
|
||||||
kdeconnect.enable = mkDefault cfg.fullDesktop;
|
kdeconnect.enable = mkDefault cfg.fullDesktop;
|
||||||
kitty.enable = mkDefault cfg.fullDesktop;
|
kitty.enable = mkDefault cfg.fullDesktop;
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.home.desktop.firefox;
|
|
||||||
inherit (pkgs.stdenv.hostPlatform) system;
|
|
||||||
zen = inputs.zen-browser.packages.${system}.default;
|
|
||||||
settingsToLines = settings:
|
|
||||||
concatStringsSep "\n" (mapAttrsToList (name: value: "set ${name} ${toString value}") settings);
|
|
||||||
in {
|
|
||||||
options.home.desktop.firefox = {
|
|
||||||
enable = mkEnableOption "enable Firefox";
|
|
||||||
useZen = mkEnableOption "use Zen instead of Firefox";
|
|
||||||
tridactyl = {
|
|
||||||
enable = mkEnableOption "enable Tridactyl";
|
|
||||||
preConfig = mkOption {
|
|
||||||
description = "Lines to add to the beginning of tridactylrc";
|
|
||||||
type = types.lines;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
config = mkOption {
|
|
||||||
type = with types;
|
|
||||||
attrsOf (oneOf [
|
|
||||||
int
|
|
||||||
str
|
|
||||||
bool
|
|
||||||
]);
|
|
||||||
description = "Tridactyl settings (converted to 'set key value' lines)";
|
|
||||||
default = {};
|
|
||||||
example = {
|
|
||||||
smoothscroll = true;
|
|
||||||
history = 1000;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfig = mkOption {
|
|
||||||
description = "Extra lines to add to tridactylrc (for bindings, autocmds, etc)";
|
|
||||||
type = types.lines;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.firefox = {
|
|
||||||
inherit (cfg) enable;
|
|
||||||
package =
|
|
||||||
if cfg.useZen
|
|
||||||
then zen
|
|
||||||
else pkgs.firefox;
|
|
||||||
nativeMessagingHosts = lists.optional cfg.tridactyl.enable pkgs.tridactyl-native;
|
|
||||||
};
|
|
||||||
xdg.configFile."tridactyl/tridactylrc" = mkIf cfg.tridactyl.enable {
|
|
||||||
text = concatStringsSep "\n" (filter (s: s != "") [
|
|
||||||
cfg.tridactyl.preConfig
|
|
||||||
(settingsToLines (cfg.tridactyl.config
|
|
||||||
// {
|
|
||||||
browser =
|
|
||||||
if cfg.useZen
|
|
||||||
then "zen"
|
|
||||||
else "firefox";
|
|
||||||
}))
|
|
||||||
cfg.tridactyl.extraConfig
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -50,13 +50,10 @@ in {
|
|||||||
systemd.enable = false;
|
systemd.enable = false;
|
||||||
importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"];
|
importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"];
|
||||||
settings = {
|
settings = {
|
||||||
env = [
|
|
||||||
"XMODIFIERS,@im=fcitx"
|
|
||||||
"XCURSOR_SIZE,12"
|
|
||||||
];
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "fr,us";
|
kb_layout = "fr,us";
|
||||||
kb_variant = "bepo_afnor,";
|
kb_variant = "bepo_afnor,";
|
||||||
|
# kb_options = "caps:ctrl_modifier";
|
||||||
numlock_by_default = true;
|
numlock_by_default = true;
|
||||||
follow_mouse = 1;
|
follow_mouse = 1;
|
||||||
touchpad.natural_scroll = false;
|
touchpad.natural_scroll = false;
|
||||||
@@ -109,8 +106,6 @@ in {
|
|||||||
"pactl load-module module-switch-on-connect"
|
"pactl load-module module-switch-on-connect"
|
||||||
"${pkgs.mpc}/bin/mpc stop"
|
"${pkgs.mpc}/bin/mpc stop"
|
||||||
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"
|
"${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";
|
++ lib.lists.optional (! caelestiaEnabled) "${pkgs.networkmanagerapplet}/bin/nm-applet";
|
||||||
};
|
};
|
||||||
@@ -175,6 +170,8 @@ in {
|
|||||||
bind = SUPER_SHIFT, minus, movetoworkspace, 8
|
bind = SUPER_SHIFT, minus, movetoworkspace, 8
|
||||||
bind = SUPER_SHIFT, slash, movetoworkspace, 9
|
bind = SUPER_SHIFT, slash, movetoworkspace, 9
|
||||||
bind = SUPER_SHIFT, asterisk, movetoworkspace, 10
|
bind = SUPER_SHIFT, asterisk, movetoworkspace, 10
|
||||||
|
|
||||||
|
env = XCURSOR_SIZE,12
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ in {
|
|||||||
package = pkgs.nordic;
|
package = pkgs.nordic;
|
||||||
name = "Nordic";
|
name = "Nordic";
|
||||||
};
|
};
|
||||||
gtk4.theme = config.gtk.theme;
|
|
||||||
};
|
};
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
configDir = config.xdg.configHome;
|
|
||||||
cfg = config.home.desktop.wl-kbptr;
|
|
||||||
iniFormat = pkgs.formats.ini {};
|
|
||||||
in {
|
|
||||||
options.home.desktop.wl-kbptr = {
|
|
||||||
enable = mkEnableOption "enable wl-kbptr";
|
|
||||||
config = mkOption {
|
|
||||||
inherit (iniFormat) type;
|
|
||||||
default = {};
|
|
||||||
description = ''
|
|
||||||
Options to add to the {file}`config` file. See
|
|
||||||
<https://github.com/moverest/wl-kbptr/blob/main/config.example>
|
|
||||||
for options.
|
|
||||||
'';
|
|
||||||
example = {
|
|
||||||
general = {
|
|
||||||
home_row_keys = "abcd";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
home = {
|
|
||||||
packages = [pkgs.wl-kbptr];
|
|
||||||
file."${configDir}/wl-kbptr/config" = mkIf (cfg.config != {}) {
|
|
||||||
source = iniFormat.generate "wl-kbptr-config" cfg.config;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -6,23 +6,16 @@
|
|||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.dev.ai.claude;
|
cfg = config.home.dev.ai.claude;
|
||||||
jsonFormat = pkgs.formats.json {};
|
|
||||||
in {
|
in {
|
||||||
options.home.dev.ai.claude = {
|
options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages";
|
||||||
enable = mkEnableOption "Enables Claude-related packages";
|
|
||||||
mcpServers = mkOption {
|
|
||||||
inherit (jsonFormat) type;
|
|
||||||
default = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = let
|
home.packages = let
|
||||||
claude-jj = pkgs.writeShellScriptBin "claude-jj" ''
|
claude-jj = pkgs.writeShellScriptBin "claude-jj" ''
|
||||||
${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents.' "$@"
|
${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents. See CLAUDE.md.' "$@"
|
||||||
'';
|
'';
|
||||||
in [claude-jj pkgs.sox];
|
in [claude-jj];
|
||||||
programs.claude-code = {
|
programs.claude-code = {
|
||||||
inherit (cfg) enable mcpServers;
|
inherit (cfg) enable;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,42 +2,22 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.dev.ai;
|
cfg = config.home.dev.ai;
|
||||||
jsonFormat = pkgs.formats.json {};
|
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./claude.nix
|
./claude.nix
|
||||||
./ollama.nix
|
./ollama.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options.home.dev.ai = {
|
options.home.dev.ai.enable = mkEnableOption "Enables AI features";
|
||||||
enable = mkEnableOption "Enables AI features";
|
config.home = mkIf cfg.enable {
|
||||||
mcpServers = mkOption {
|
|
||||||
inherit (jsonFormat) type;
|
|
||||||
default = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = {
|
|
||||||
home = mkIf cfg.enable {
|
|
||||||
dev.ai = {
|
dev.ai = {
|
||||||
claude = {
|
claude.enable = mkDefault cfg.enable;
|
||||||
enable = mkDefault cfg.enable;
|
|
||||||
mcpServers = mkDefault cfg.mcpServers;
|
|
||||||
};
|
|
||||||
ollama.enable = mkDefault cfg.enable;
|
ollama.enable = mkDefault cfg.enable;
|
||||||
};
|
};
|
||||||
packages = let
|
packages = [pkgs.lmstudio];
|
||||||
inherit (pkgs.stdenv.hostPlatform) system;
|
|
||||||
inherit (inputs.opencode.packages.${system}) opencode;
|
|
||||||
in [pkgs.lmstudio opencode];
|
|
||||||
};
|
|
||||||
programs.mcp = mkIf (cfg.mcpServers != {}) {
|
|
||||||
enable = true;
|
|
||||||
servers = cfg.mcpServers;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,14 +127,6 @@ in {
|
|||||||
|
|
||||||
"dist/"
|
"dist/"
|
||||||
];
|
];
|
||||||
signing = {
|
|
||||||
format =
|
|
||||||
if cfg.publicKeyFile != null
|
|
||||||
then "ssh"
|
|
||||||
else "openpgp";
|
|
||||||
key = cfg.publicKeyFile;
|
|
||||||
signByDefault = true;
|
|
||||||
};
|
|
||||||
settings = {
|
settings = {
|
||||||
user = {
|
user = {
|
||||||
inherit (cfg) name email;
|
inherit (cfg) name email;
|
||||||
@@ -159,6 +151,8 @@ in {
|
|||||||
renames = "copy";
|
renames = "copy";
|
||||||
interHunkContext = 10;
|
interHunkContext = 10;
|
||||||
};
|
};
|
||||||
|
commit.gpgsign = cfg.publicKeyFile != null;
|
||||||
|
gpg.format = "ssh";
|
||||||
gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers";
|
gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers";
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
@@ -174,6 +168,7 @@ in {
|
|||||||
updateRefs = true;
|
updateRefs = true;
|
||||||
};
|
};
|
||||||
help.autocorrect = "prompt";
|
help.autocorrect = "prompt";
|
||||||
|
user.signingkey = mkIf (cfg.publicKeyFile != null) cfg.publicKeyFile;
|
||||||
web.browser = mkIf (cfg.browser != null) cfg.browser;
|
web.browser = mkIf (cfg.browser != null) cfg.browser;
|
||||||
sendemail = mkIf cfg.sendmail.enable {
|
sendemail = mkIf cfg.sendmail.enable {
|
||||||
smtpserver = cfg.sendmail.server;
|
smtpserver = cfg.sendmail.server;
|
||||||
|
|||||||
@@ -7,6 +7,33 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.home.shell.zellij;
|
cfg = config.home.shell.zellij;
|
||||||
isEmpty = list: list == [];
|
isEmpty = list: list == [];
|
||||||
|
plugin = {
|
||||||
|
options = {
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "filepicket";
|
||||||
|
};
|
||||||
|
location = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
example = "zellij:strider";
|
||||||
|
description = ''
|
||||||
|
When null, defaults to zellij:`name`
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
config = mkOption {
|
||||||
|
type = types.nullOr types.attrs;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pluginToLines = plugin: let
|
||||||
|
location =
|
||||||
|
if plugin ? location
|
||||||
|
then plugin.location
|
||||||
|
else "location=\"${plugin.name}\"";
|
||||||
|
in ''
|
||||||
|
${plugin.name} ${location}
|
||||||
|
'';
|
||||||
keybind = {
|
keybind = {
|
||||||
options = {
|
options = {
|
||||||
bind = mkOption {
|
bind = mkOption {
|
||||||
@@ -99,17 +126,15 @@ with lib; let
|
|||||||
keybinds = values;
|
keybinds = values;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
options.home.shell.zellij = let
|
options.home.shell.zellij = {
|
||||||
jsonFormat = pkgs.formats.yaml {};
|
|
||||||
in {
|
|
||||||
enable = mkEnableOption "Enable Zellij";
|
enable = mkEnableOption "Enable Zellij";
|
||||||
clearDefaultKeybinds = mkEnableOption "Clear default keybinds";
|
clearDefaultKeybinds = mkEnableOption "Clear default keybinds";
|
||||||
settings = mkOption {
|
settings = mkOption {
|
||||||
inherit (jsonFormat) type;
|
type = (pkgs.formats.yaml {}).type;
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
layouts = mkOption {
|
layouts = mkOption {
|
||||||
inherit (jsonFormat) type;
|
type = (pkgs.formats.yaml {}).type;
|
||||||
default = {};
|
default = {};
|
||||||
};
|
};
|
||||||
extraSettings = mkOption {
|
extraSettings = mkOption {
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -65,91 +65,10 @@
|
|||||||
};
|
};
|
||||||
desktop = {
|
desktop = {
|
||||||
caelestia.enable = true;
|
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 = {
|
spotify = {
|
||||||
enable = true;
|
enable = true;
|
||||||
spicetify.enable = true;
|
spicetify.enable = true;
|
||||||
};
|
};
|
||||||
wl-kbptr = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
general = {
|
|
||||||
# first eight chars to select areas, last three chars
|
|
||||||
# for left, right, middle click
|
|
||||||
home_row_keys = "auiectsrtsr";
|
|
||||||
modes = "tile,bisect";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
dev = {
|
dev = {
|
||||||
ai.claude.enable = true;
|
ai.claude.enable = true;
|
||||||
@@ -157,9 +76,7 @@
|
|||||||
vcs.jj.signing.enable = true;
|
vcs.jj.signing.enable = true;
|
||||||
};
|
};
|
||||||
fullDesktop = true;
|
fullDesktop = true;
|
||||||
file = {
|
file."${config.home.homeDirectory}/.ssh/allowed_signers" = {
|
||||||
".XCompose".source = ./XCompose;
|
|
||||||
"${config.home.homeDirectory}/.ssh/allowed_signers" = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
text = lib.strings.join "\n" (
|
text = lib.strings.join "\n" (
|
||||||
map (file: let
|
map (file: let
|
||||||
@@ -171,7 +88,6 @@
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
manual = {
|
manual = {
|
||||||
html.enable = true;
|
html.enable = true;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ with lib; let
|
|||||||
handy = pkgs.callPackage ../../packages/handy.nix {};
|
handy = pkgs.callPackage ../../packages/handy.nix {};
|
||||||
inkdrop = pkgs.callPackage ../../packages/inkdrop.nix {};
|
inkdrop = pkgs.callPackage ../../packages/inkdrop.nix {};
|
||||||
pumo-system-info = inputs.pumo-system-info.packages.${system}.default;
|
pumo-system-info = inputs.pumo-system-info.packages.${system}.default;
|
||||||
|
zen = inputs.zen-browser.packages.${system}.default;
|
||||||
in {
|
in {
|
||||||
programs.bun.enable = true;
|
programs.bun.enable = true;
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
@@ -32,16 +33,17 @@ in {
|
|||||||
audacity
|
audacity
|
||||||
plexamp
|
plexamp
|
||||||
plex-desktop
|
plex-desktop
|
||||||
|
spicetify-cli
|
||||||
pavucontrol # Volume control
|
pavucontrol # Volume control
|
||||||
|
|
||||||
# Social
|
# Social
|
||||||
vesktop # Discord alternative that works well with wayland
|
vesktop # Discord alternative that works well with wayland
|
||||||
|
element-desktop
|
||||||
signal-desktop
|
signal-desktop
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
|
bitwarden-desktop
|
||||||
# gplates
|
# gplates
|
||||||
qgis
|
|
||||||
kicad
|
|
||||||
handy
|
handy
|
||||||
libnotify
|
libnotify
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
@@ -50,6 +52,7 @@ in {
|
|||||||
scrcpy
|
scrcpy
|
||||||
syncthing
|
syncthing
|
||||||
watchmate
|
watchmate
|
||||||
|
zen
|
||||||
|
|
||||||
# Games
|
# Games
|
||||||
atlauncher
|
atlauncher
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
config.home.desktop.wlr-which-key.settings = {
|
config.home.desktop.wlr-which-key.settings = {
|
||||||
@@ -28,8 +27,7 @@
|
|||||||
logout = import ./logout.nix {inherit pkgs;};
|
logout = import ./logout.nix {inherit pkgs;};
|
||||||
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
ytplay = import ../../modules/cli/scripts/ytplay.nix {inherit pkgs;};
|
||||||
plock = import ../../modules/cli/scripts/plock.nix {inherit pkgs;};
|
plock = import ../../modules/cli/scripts/plock.nix {inherit pkgs;};
|
||||||
in
|
in [
|
||||||
[
|
|
||||||
{
|
{
|
||||||
key = "a";
|
key = "a";
|
||||||
desc = "Apps";
|
desc = "Apps";
|
||||||
@@ -240,11 +238,6 @@
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
]
|
];
|
||||||
++ lib.lists.optional config.home.desktop.wl-kbptr.enable {
|
|
||||||
key = "m";
|
|
||||||
desc = "Mouse Warp";
|
|
||||||
cmd = "wl-kbptr";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user