mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-12 15:42:39 +02:00
feat: format via 'ls **/*.nix | each { |it| nixfmt $it.name }'
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
boot.loader.systemd-boot = {
|
||||
# we use Git for version control, so we don't need to keep too many generations.
|
||||
configurationLimit = lib.mkDefault 10;
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{mylib, ...}: {
|
||||
{ mylib, ... }:
|
||||
{
|
||||
imports = mylib.scanPaths ./.;
|
||||
}
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
# to install chrome, you need to enable unfree packages
|
||||
nixpkgs.config.allowUnfree = lib.mkForce true;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{myvars, ...}: {
|
||||
{ myvars, ... }:
|
||||
{
|
||||
####################################################################
|
||||
#
|
||||
# NixOS's Configuration for Remote Building / Distributed Building
|
||||
@@ -13,57 +14,59 @@
|
||||
# set local's max-job to 0 to force remote building(disable local building)
|
||||
# nix.settings.max-jobs = 0;
|
||||
nix.distributedBuilds = true;
|
||||
nix.buildMachines = let
|
||||
sshUser = myvars.username;
|
||||
# ssh key's path on local machine
|
||||
sshKey = "/etc/agenix/ssh-key-romantic";
|
||||
systems = [
|
||||
# native arch
|
||||
"x86_64-linux"
|
||||
nix.buildMachines =
|
||||
let
|
||||
sshUser = myvars.username;
|
||||
# ssh key's path on local machine
|
||||
sshKey = "/etc/agenix/ssh-key-romantic";
|
||||
systems = [
|
||||
# native arch
|
||||
"x86_64-linux"
|
||||
|
||||
# emulated arch using binfmt_misc and qemu-user
|
||||
"aarch64-linux"
|
||||
"riscv64-linux"
|
||||
# emulated arch using binfmt_misc and qemu-user
|
||||
"aarch64-linux"
|
||||
"riscv64-linux"
|
||||
];
|
||||
# all available system features are poorly documentd here:
|
||||
# https://github.com/NixOS/nix/blob/e503ead/src/libstore/globals.hh#L673-L687
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"kvm"
|
||||
];
|
||||
in
|
||||
[
|
||||
# Nix seems always try to build on the machine remotely
|
||||
# to make use of the local machine's high-performance CPU, do not set remote builder's maxJobs too high.
|
||||
# {
|
||||
# # some of my remote builders are running NixOS
|
||||
# # and has the same sshUser, sshKey, systems, etc.
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
#
|
||||
# # the hostName should be:
|
||||
# # 1. a hostname that can be resolved by DNS
|
||||
# # 2. the ip address of the remote builder
|
||||
# # 3. a host alias defined globally in /etc/ssh/ssh_config
|
||||
# hostName = "aquamarine";
|
||||
# # remote builder's max-job
|
||||
# maxJobs = 3;
|
||||
# # speedFactor's a signed integer
|
||||
# # https://github.com/ryan4yin/nix-config/issues/70
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
# {
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
# hostName = "ruby";
|
||||
# maxJobs = 2;
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
# {
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
# hostName = "kana";
|
||||
# maxJobs = 2;
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
];
|
||||
# all available system features are poorly documentd here:
|
||||
# https://github.com/NixOS/nix/blob/e503ead/src/libstore/globals.hh#L673-L687
|
||||
supportedFeatures = [
|
||||
"benchmark"
|
||||
"big-parallel"
|
||||
"kvm"
|
||||
];
|
||||
in [
|
||||
# Nix seems always try to build on the machine remotely
|
||||
# to make use of the local machine's high-performance CPU, do not set remote builder's maxJobs too high.
|
||||
# {
|
||||
# # some of my remote builders are running NixOS
|
||||
# # and has the same sshUser, sshKey, systems, etc.
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
#
|
||||
# # the hostName should be:
|
||||
# # 1. a hostname that can be resolved by DNS
|
||||
# # 2. the ip address of the remote builder
|
||||
# # 3. a host alias defined globally in /etc/ssh/ssh_config
|
||||
# hostName = "aquamarine";
|
||||
# # remote builder's max-job
|
||||
# maxJobs = 3;
|
||||
# # speedFactor's a signed integer
|
||||
# # https://github.com/ryan4yin/nix-config/issues/70
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
# {
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
# hostName = "ruby";
|
||||
# maxJobs = 2;
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
# {
|
||||
# inherit sshUser sshKey systems supportedFeatures;
|
||||
# hostName = "kana";
|
||||
# maxJobs = 2;
|
||||
# speedFactor = 1;
|
||||
# }
|
||||
];
|
||||
# optional, useful when the builder has a faster internet connection than yours
|
||||
nix.extraOptions = ''
|
||||
builders-use-substitutes = true
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = lib.mkDefault false;
|
||||
# Enable the OpenSSH daemon.
|
||||
|
||||
@@ -2,21 +2,22 @@
|
||||
myvars,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
# Don't allow mutation of users outside the config.
|
||||
users.mutableUsers = false;
|
||||
|
||||
users.groups = {
|
||||
"${myvars.username}" = {};
|
||||
podman = {};
|
||||
wireshark = {};
|
||||
"${myvars.username}" = { };
|
||||
podman = { };
|
||||
wireshark = { };
|
||||
# for android platform tools's udev rules
|
||||
adbusers = {};
|
||||
dialout = {};
|
||||
adbusers = { };
|
||||
dialout = { };
|
||||
# for openocd (embedded system development)
|
||||
plugdev = {};
|
||||
plugdev = { };
|
||||
# misc
|
||||
uinput = {};
|
||||
uinput = { };
|
||||
};
|
||||
|
||||
users.users."${myvars.username}" = {
|
||||
|
||||
@@ -5,9 +5,11 @@
|
||||
myvars,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
with lib;
|
||||
let
|
||||
cfgWayland = config.modules.desktop.wayland;
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./base
|
||||
../base
|
||||
@@ -45,7 +47,7 @@ in {
|
||||
};
|
||||
|
||||
# fix https://github.com/ryan4yin/nix-config/issues/10
|
||||
security.pam.services.hyprlock = {};
|
||||
security.pam.services.hyprlock = { };
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{mylib, ...}: {
|
||||
{ mylib, ... }:
|
||||
{
|
||||
imports = mylib.scanPaths ./.;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# FHS environment, flatpak, appImage, etc.
|
||||
environment.systemPackages = [
|
||||
# create a fhs environment by command `fhs`, so we can run non-nixos packages in nixos!
|
||||
@@ -6,14 +7,16 @@
|
||||
let
|
||||
base = pkgs.appimageTools.defaultFhsEnvArgs;
|
||||
in
|
||||
pkgs.buildFHSEnv (base
|
||||
// {
|
||||
name = "fhs";
|
||||
targetPkgs = pkgs: (base.targetPkgs pkgs) ++ [pkgs.pkg-config];
|
||||
profile = "export FHS=1";
|
||||
runScript = "bash";
|
||||
extraOutputsToInstall = ["dev"];
|
||||
})
|
||||
pkgs.buildFHSEnv (
|
||||
base
|
||||
// {
|
||||
name = "fhs";
|
||||
targetPkgs = pkgs: (base.targetPkgs pkgs) ++ [ pkgs.pkg-config ];
|
||||
profile = "export FHS=1";
|
||||
runScript = "bash";
|
||||
extraOutputsToInstall = [ "dev" ];
|
||||
}
|
||||
)
|
||||
)
|
||||
];
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# all fonts are linked to /nix/var/nix/profiles/system/sw/share/X11/fonts
|
||||
fonts = {
|
||||
# use fonts specified by user rather than default ones
|
||||
@@ -37,7 +38,7 @@
|
||||
# 西文
|
||||
"JetBrainsMono Nerd Font"
|
||||
];
|
||||
emoji = ["Noto Color Emoji"];
|
||||
emoji = [ "Noto Color Emoji" ];
|
||||
};
|
||||
antialias = true; # 抗锯齿
|
||||
hinting.enable = false; # 禁止字体微调 - 高分辨率下没这必要
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
boot.loader.timeout = lib.mkForce 10; # wait for x seconds to select the boot entry
|
||||
|
||||
# add user's shell into /etc/shells
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
#============================= Audio(PipeWire) =======================
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
pkgs,
|
||||
mylib,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = mylib.scanPaths ./.;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
# =============================================================
|
||||
{
|
||||
# make the tailscale command usable to users
|
||||
environment.systemPackages = [pkgs.tailscale];
|
||||
environment.systemPackages = [ pkgs.tailscale ];
|
||||
|
||||
# enable the tailscale service
|
||||
services.tailscale = {
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
pkgs,
|
||||
# nur-ataraxiasjel,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
###################################################################################
|
||||
#
|
||||
# Virtualisation - Libvirt(QEMU/KVM) / Docker / LXD / WayDroid
|
||||
@@ -20,7 +21,7 @@
|
||||
# boot.kernelModules = ["kvm-intel"];
|
||||
# boot.extraModprobeConfig = "options kvm_intel nested=1"; # for intel cpu
|
||||
|
||||
boot.kernelModules = ["vfio-pci"];
|
||||
boot.kernelModules = [ "vfio-pci" ];
|
||||
|
||||
services.flatpak.enable = true;
|
||||
|
||||
@@ -36,7 +37,7 @@
|
||||
autoPrune = {
|
||||
enable = true;
|
||||
dates = "weekly";
|
||||
flags = ["--all"];
|
||||
flags = [ "--all" ];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
xdg.terminal-exec = {
|
||||
enable = true;
|
||||
package = pkgs.xdg-terminal-exec-mkhl;
|
||||
settings = let
|
||||
my_terminal_desktop = [
|
||||
# NOTE: We have add these packages at user level
|
||||
"Alacritty.desktop"
|
||||
"kitty.desktop"
|
||||
"foot.desktop"
|
||||
"com.mitchellh.ghostty.desktop"
|
||||
];
|
||||
in {
|
||||
GNOME =
|
||||
my_terminal_desktop
|
||||
++ [
|
||||
settings =
|
||||
let
|
||||
my_terminal_desktop = [
|
||||
# NOTE: We have add these packages at user level
|
||||
"Alacritty.desktop"
|
||||
"kitty.desktop"
|
||||
"foot.desktop"
|
||||
"com.mitchellh.ghostty.desktop"
|
||||
];
|
||||
in
|
||||
{
|
||||
GNOME = my_terminal_desktop ++ [
|
||||
"com.raggesilver.BlackBox.desktop"
|
||||
"org.gnome.Terminal.desktop"
|
||||
];
|
||||
niri = my_terminal_desktop;
|
||||
default = my_terminal_desktop;
|
||||
};
|
||||
niri = my_terminal_desktop;
|
||||
default = my_terminal_desktop;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
config = {
|
||||
# disable backups in the VM
|
||||
services.btrbk.instances = lib.mkForce {};
|
||||
services.btrbk.instances = lib.mkForce { };
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
@@ -29,7 +29,7 @@
|
||||
};
|
||||
|
||||
boot.growPartition = true;
|
||||
boot.kernelParams = ["console=ttyS0"];
|
||||
boot.kernelParams = [ "console=ttyS0" ];
|
||||
boot.loader.grub.device = "/dev/vda";
|
||||
|
||||
services.qemuGuest.enable = true; # qemu-guest-agent
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
../base/btrbk.nix
|
||||
../base/core.nix
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
# =========================================================================
|
||||
# Base NixOS Configuration
|
||||
# =========================================================================
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{lib, ...}: {
|
||||
{ lib, ... }:
|
||||
{
|
||||
imports = [
|
||||
../base
|
||||
../../base
|
||||
|
||||
Reference in New Issue
Block a user