[fix] fmt: change formatter to nixfmt-rfc-style
Alejandra has ads and splits files into too many new lines.
This commit is contained in:
parent
711c1aa81d
commit
91284a73ca
28 changed files with 800 additions and 742 deletions
381
flake.nix
381
flake.nix
|
@ -63,206 +63,207 @@
|
|||
};
|
||||
|
||||
# Flake outputs that other flakes can use
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
unstable,
|
||||
stylix,
|
||||
home-manager,
|
||||
nixos-hardware,
|
||||
jpassmenu,
|
||||
audiomenu,
|
||||
nixvim,
|
||||
lix-module,
|
||||
...
|
||||
}: let
|
||||
inherit (nixpkgs) lib;
|
||||
# Helpers for producing system-specific outputs
|
||||
supportedSystems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forEachSupportedSystem = f:
|
||||
nixpkgs.lib.genAttrs supportedSystems (
|
||||
system:
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
unstable,
|
||||
stylix,
|
||||
home-manager,
|
||||
nixos-hardware,
|
||||
jpassmenu,
|
||||
audiomenu,
|
||||
nixvim,
|
||||
lix-module,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (nixpkgs) lib;
|
||||
# Helpers for producing system-specific outputs
|
||||
supportedSystems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forEachSupportedSystem =
|
||||
f:
|
||||
nixpkgs.lib.genAttrs supportedSystems (
|
||||
system:
|
||||
f {
|
||||
inherit system;
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
}
|
||||
);
|
||||
overlays = builtins.attrValues self.overlays;
|
||||
in {
|
||||
checks = forEachSupportedSystem (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
}: let
|
||||
src = builtins.path {
|
||||
path = ./.;
|
||||
name = "configuration.nix";
|
||||
};
|
||||
runCmdInSrc = name: cmd:
|
||||
pkgs.runCommandNoCC name {} ''
|
||||
cd ${src}
|
||||
${cmd}
|
||||
mkdir $out
|
||||
'';
|
||||
in {
|
||||
nvim = nixvim.lib.${system}.check.mkTestDerivationFromNixvimModule {
|
||||
pkgs = import nixpkgs {inherit system overlays;};
|
||||
module = ./nvim/standalone.nix;
|
||||
};
|
||||
fmt = runCmdInSrc "fmt-src" "${lib.getExe self.formatter.${system}} --check .";
|
||||
lint = runCmdInSrc "lint-src" "${lib.getExe pkgs.statix} check .";
|
||||
typos = runCmdInSrc "typos-src" "${lib.getExe pkgs.typos} .";
|
||||
}
|
||||
);
|
||||
|
||||
packages = forEachSupportedSystem (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
}: {
|
||||
inherit
|
||||
(import ./docs {inherit pkgs lib;})
|
||||
docs
|
||||
nixos-markdown
|
||||
nvim-markdown
|
||||
home-markdown
|
||||
;
|
||||
# Nvim standalone module
|
||||
nvim = nixvim.legacyPackages.${system}.makeNixvimWithModule {
|
||||
pkgs = import nixpkgs {inherit system overlays;};
|
||||
module = ./nvim/standalone.nix;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# Provide necessary overlays
|
||||
overlays = {
|
||||
nixvim = nixvim.overlays.default;
|
||||
jpassmenu = jpassmenu.overlays.default;
|
||||
audiomenu = audiomenu.overlays.default;
|
||||
unstable = final: prev: let
|
||||
unstablePkgs = unstable.legacyPackages.${prev.system};
|
||||
in {
|
||||
# Get unstable packages
|
||||
unstable = unstablePkgs;
|
||||
# Update vim plugins with the versions from unstable
|
||||
vimPlugins = prev.vimPlugins // unstablePkgs.vimPlugins;
|
||||
# Get specific packages from unstable
|
||||
inherit
|
||||
(unstablePkgs)
|
||||
gitoxide
|
||||
jujutsu
|
||||
wezterm
|
||||
neovim-unwrapped
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
# Nix files formatter (run `nix fmt`)
|
||||
formatter = forEachSupportedSystem ({pkgs, ...}: pkgs.alejandra);
|
||||
|
||||
# Example vm configuration
|
||||
nixosConfigurations.vm = let
|
||||
system = "x86_64-linux";
|
||||
config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["steam-original"];
|
||||
pkgs = import nixpkgs {inherit system overlays config;};
|
||||
);
|
||||
overlays = builtins.attrValues self.overlays;
|
||||
in
|
||||
lib.nixosSystem {
|
||||
inherit system pkgs;
|
||||
modules = [
|
||||
self.nixosModules.vm # import vm module
|
||||
{
|
||||
checks = forEachSupportedSystem (
|
||||
{ pkgs, system }:
|
||||
let
|
||||
src = builtins.path {
|
||||
path = ./.;
|
||||
name = "configuration.nix";
|
||||
};
|
||||
runCmdInSrc =
|
||||
name: cmd:
|
||||
pkgs.runCommandNoCC name { } ''
|
||||
cd ${src}
|
||||
${cmd}
|
||||
mkdir $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
nvim = nixvim.lib.${system}.check.mkTestDerivationFromNixvimModule {
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
module = ./nvim/standalone.nix;
|
||||
};
|
||||
fmt = runCmdInSrc "fmt-src" "${lib.getExe self.formatter.${system}} --check .";
|
||||
lint = runCmdInSrc "lint-src" "${lib.getExe pkgs.statix} check .";
|
||||
typos = runCmdInSrc "typos-src" "${lib.getExe pkgs.typos} .";
|
||||
}
|
||||
);
|
||||
|
||||
packages = forEachSupportedSystem (
|
||||
{ pkgs, system }:
|
||||
{
|
||||
inherit (import ./docs { inherit pkgs lib; })
|
||||
docs
|
||||
nixos-markdown
|
||||
nvim-markdown
|
||||
home-markdown
|
||||
;
|
||||
# Nvim standalone module
|
||||
nvim = nixvim.legacyPackages.${system}.makeNixvimWithModule {
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
module = ./nvim/standalone.nix;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
# Provide necessary overlays
|
||||
overlays = {
|
||||
nixvim = nixvim.overlays.default;
|
||||
jpassmenu = jpassmenu.overlays.default;
|
||||
audiomenu = audiomenu.overlays.default;
|
||||
unstable =
|
||||
final: prev:
|
||||
let
|
||||
unstablePkgs = unstable.legacyPackages.${prev.system};
|
||||
in
|
||||
{
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
users.users.jdoe = {
|
||||
password = "example";
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"video"
|
||||
"networkmanager"
|
||||
];
|
||||
};
|
||||
home-manager.users.jdoe = {
|
||||
home = {
|
||||
username = "jdoe";
|
||||
homeDirectory = "/home/jdoe";
|
||||
# Get unstable packages
|
||||
unstable = unstablePkgs;
|
||||
# Update vim plugins with the versions from unstable
|
||||
vimPlugins = prev.vimPlugins // unstablePkgs.vimPlugins;
|
||||
# Get specific packages from unstable
|
||||
inherit (unstablePkgs)
|
||||
gitoxide
|
||||
jujutsu
|
||||
wezterm
|
||||
neovim-unwrapped
|
||||
;
|
||||
};
|
||||
};
|
||||
|
||||
# Nix files formatter (run `nix fmt`)
|
||||
formatter = forEachSupportedSystem ({ pkgs, ... }: pkgs.nixfmt-rfc-style);
|
||||
|
||||
# Example vm configuration
|
||||
nixosConfigurations.vm =
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam-original" ];
|
||||
pkgs = import nixpkgs { inherit system overlays config; };
|
||||
in
|
||||
lib.nixosSystem {
|
||||
inherit system pkgs;
|
||||
modules = [
|
||||
self.nixosModules.vm # import vm module
|
||||
{
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
users.users.jdoe = {
|
||||
password = "example";
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"video"
|
||||
"networkmanager"
|
||||
];
|
||||
};
|
||||
jhome = {
|
||||
home-manager.users.jdoe = {
|
||||
home = {
|
||||
username = "jdoe";
|
||||
homeDirectory = "/home/jdoe";
|
||||
};
|
||||
jhome = {
|
||||
enable = true;
|
||||
gui.enable = true;
|
||||
dev.rust.enable = true;
|
||||
};
|
||||
};
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
jconfig = {
|
||||
enable = true;
|
||||
gui.enable = true;
|
||||
dev.rust.enable = true;
|
||||
};
|
||||
};
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
jconfig = {
|
||||
enable = true;
|
||||
gui.enable = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
nixosModules = let
|
||||
nvim-config.imports = [
|
||||
nixvim.homeManagerModules.nixvim
|
||||
./nvim
|
||||
];
|
||||
homeManagerModuleSandalone = import ./home {inherit nvim-config stylix;};
|
||||
homeManagerModuleNixOS = import ./home {inherit nvim-config;};
|
||||
nixosModule = {
|
||||
imports =
|
||||
[
|
||||
(import ./system {inherit stylix;})
|
||||
home-manager.nixosModules.home-manager
|
||||
]
|
||||
++ nixpkgs.lib.optional (lix-module != null) lix-module.nixosModules.default;
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
sharedModules = [homeManagerModuleNixOS];
|
||||
};
|
||||
# Pin nixpkgs
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
};
|
||||
|
||||
machines = [
|
||||
"capricorn"
|
||||
"gemini"
|
||||
"libra"
|
||||
"vm"
|
||||
];
|
||||
mkMachine = hostname: {
|
||||
imports = [
|
||||
nixosModule
|
||||
(import (./machines + "/${hostname}") {inherit nixos-hardware;})
|
||||
];
|
||||
home-manager.sharedModules = [{jhome.hostName = hostname;}];
|
||||
};
|
||||
machineModules = lib.genAttrs machines mkMachine;
|
||||
in
|
||||
{
|
||||
default = nixosModule;
|
||||
inherit nixosModule homeManagerModuleNixOS homeManagerModuleSandalone;
|
||||
}
|
||||
// machineModules;
|
||||
|
||||
devShells = forEachSupportedSystem (
|
||||
{
|
||||
pkgs,
|
||||
system,
|
||||
}: {
|
||||
default = pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.just
|
||||
self.packages.${system}.nvim
|
||||
}
|
||||
];
|
||||
QEMU_OPTS_WL = "--enable-kvm -smp 4 -device virtio-gpu-rutabaga,gfxstream-vulkan=on,cross-domain=on,hostmem=2G,wsi=headless";
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
nixosModules =
|
||||
let
|
||||
nvim-config.imports = [
|
||||
nixvim.homeManagerModules.nixvim
|
||||
./nvim
|
||||
];
|
||||
homeManagerModuleSandalone = import ./home { inherit nvim-config stylix; };
|
||||
homeManagerModuleNixOS = import ./home { inherit nvim-config; };
|
||||
nixosModule = {
|
||||
imports = [
|
||||
(import ./system { inherit stylix; })
|
||||
home-manager.nixosModules.home-manager
|
||||
] ++ nixpkgs.lib.optional (lix-module != null) lix-module.nixosModules.default;
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
sharedModules = [ homeManagerModuleNixOS ];
|
||||
};
|
||||
# Pin nixpkgs
|
||||
nix.registry.nixpkgs.flake = nixpkgs;
|
||||
};
|
||||
|
||||
machines = [
|
||||
"capricorn"
|
||||
"gemini"
|
||||
"libra"
|
||||
"vm"
|
||||
];
|
||||
mkMachine = hostname: {
|
||||
imports = [
|
||||
nixosModule
|
||||
(import (./machines + "/${hostname}") { inherit nixos-hardware; })
|
||||
];
|
||||
home-manager.sharedModules = [ { jhome.hostName = hostname; } ];
|
||||
};
|
||||
machineModules = lib.genAttrs machines mkMachine;
|
||||
in
|
||||
{
|
||||
default = nixosModule;
|
||||
inherit nixosModule homeManagerModuleNixOS homeManagerModuleSandalone;
|
||||
}
|
||||
// machineModules;
|
||||
|
||||
devShells = forEachSupportedSystem (
|
||||
{ pkgs, system }:
|
||||
{
|
||||
default = pkgs.mkShell {
|
||||
buildInputs = [
|
||||
pkgs.just
|
||||
self.packages.${system}.nvim
|
||||
];
|
||||
QEMU_OPTS_WL = "--enable-kvm -smp 4 -device virtio-gpu-rutabaga,gfxstream-vulkan=on,cross-domain=on,hostmem=2G,wsi=headless";
|
||||
};
|
||||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue