This commit is contained in:
Peder Bergebakken Sundt 2024-02-18 22:14:40 +01:00
parent 1c8b22e443
commit 99c6bc4b6f
9 changed files with 64 additions and 24 deletions

View File

@ -59,8 +59,8 @@
# System fonts
# Nice to have when X-forwading on headless machines
fonts.fontDir.enable = true; # creates /run/current-system/sw/share/X11/fonts
fonts.enableDefaultFonts = true; # dejavu, freefont, gyre, liberation, unifont, noto-fonts-emoji
fonts.fonts = with pkgs; [
fonts.enableDefaultPackages = true; # dejavu, freefont, gyre, liberation, unifont, noto-fonts-emoji
fonts.packages = with pkgs; [
noto-fonts # includes Cousine
noto-fonts-cjk
noto-fonts-emoji

View File

@ -23,6 +23,10 @@
home-manager-2305.url = "github:nix-community/home-manager/release-23.05";
home-manager-2305.inputs.nixpkgs.follows = "nixpkgs-2305";
# https://github.com/nix-community/nix-index-database
nix-index-database.url = "github:Mic92/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs-2311"; # only used for .packages
# https://github.com/NixOS/nixos-hardware
nixos-hardware.url = "github:NixOS/nixos-hardware";
@ -151,6 +155,7 @@
(ifExists "${self}/hosts/${hostname}")
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModule
#inputs.nix-index-database.nixosModules.nix-index
] ++ modules ++ extra-modules;
#++ inputs.flake-programs-sqlite.nixosModules.programs-sqlite; # TODO: make work
@ -167,6 +172,7 @@
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
];
# still needed even if using networkd
@ -212,8 +218,8 @@
in {
inherit system; # TODO: cross system
fqdn = cfg.networking.fqdn;
allowedTCPPorts = cfg.networking.firewall.allowedTCPPorts;
allowedUDPPorts = cfg.networking.firewall.allowedUDPPorts;
allowedTCPPorts = cfg.networking.firewall.allowedTCPPorts or [];
allowedUDPPorts = cfg.networking.firewall.allowedUDPPorts or [];
bootloader = if cfg.boot.loader.grub.enable then "grub"
else if cfg.boot.loader.systemd-boot.enable then "systemd-boot"
else null;
@ -266,6 +272,7 @@
nixosModules = mkHosts (mkModule []);
nixosConfigurations = mkHosts (mkConfig []);
nixosReports = mkHosts (mkReport []);
nixosHostnames = builtins.attrNames self.nixosReports; # faster to eval
packages = forAllSystems ({ inputs, pkgs, lib, flakes, ... }: let
mk-nspawn-deployer = hostname: # TODO: nspawn-tarball.nix populates /etc/nixos with junk
@ -296,6 +303,7 @@
home.homeDirectory = home;
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
];
}];
extraSpecialArgs = {

View File

@ -6,8 +6,14 @@
@set-remote:
tomlq <.remote.toml '.hosts | to_entries[] | "remote-set \(.key+1) # -> \(.value.host)" | @sh "\(.)"' -r | xargs gum choose | sh
report:
nix eval .#nixosReports --json | yq . --yaml-output
eval hostname=`just _a-host`:
nix eval .#nixosConfigurations.{{hostname}}.config.system.build.toplevel.outPath
report hostname=`just _a-host`:
nix eval .#nixosReports.{{hostname}} --json | yq . --yaml-output | bat --language yaml --style plain --paging never
reports:
nix eval .#nixosReports --json | yq . --yaml-output | bat --language yaml --style plain --paging never
update:
git reset flake.lock
@ -32,3 +38,6 @@ boot:
@list-remotes:
echo Current remote: $(remote-host)
tomlq <.remote.toml '.hosts | to_entries[] | "remote-set \(.key+1) # -> \(.value.host)"' -r
@_a-host:
nix eval .#nixosHostnames --json 2>/dev/null | jq '.[]' -r | gum filter --height 10 --placeholder "Pick a host..."

View File

@ -21,7 +21,7 @@
};
aggregatedFonts = pkgs.buildEnv {
name = "system-fonts";
paths = config.fonts.fonts;
paths = config.fonts.packages;
pathsToLink = [ "/share/fonts" ];
};
in {

View File

@ -9,6 +9,7 @@
(pkgs.lutris.override {
extraPkgs = pkgs: [
pkgs.wineWowPackages.staging
pkgs.winetricks
pkgs.pixman
pkgs.libjpeg
pkgs.gnome.zenity

View File

@ -137,9 +137,6 @@
denix = "sed -E 's@/nix/store/[^ /]+@@g'";
};
# TODO: auto-update db
programs.nix-index.enable = true;
xdg.enable = true;
#TODO: xdg.desktopEntries

View File

@ -13,14 +13,15 @@
# TODO: implement programs.bat.enableAliases
programs.bat = {
enable = true;
themes.railscast = builtins.readFile (pkgs.fetchFromGitHub {
#config.style = "plain";
config.theme = "railscast";
themes.railscast.file = "railscast-textmate.tmtheme";
themes.railscast.src = pkgs.fetchFromGitHub {
owner = "jeromedalbert";
repo = "sublime-text-railscasttextmate-theme";
rev = "0a4861f35e72f9ad4cc1cac42730ea563be2ffd3";
rev = "0a4861f35e72f9ad4cc1cac42730ea563be2ffd3"; # 11 years old
hash = "sha256-1Ml5vqP9r6oCfLhaNGPQJXS8e7utxQQycIm3Hk9wE3w=";
} + "/railscast-textmate.tmtheme");
config.theme = "railscast";
#config.style = "plain";
};
config.map-syntax = [
"poetry.toml:toml"
"flake.lock:json"

View File

@ -1,12 +1,14 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
git
gh
#git
#gh
hub
colordiff
];
programs.gh.enable = true;
#programs.git.gitui.enable = true;
programs.git.enable = true;
programs.git.delta.enable = true;

View File

@ -32,19 +32,29 @@
imports = [ ../modules/jump.nix ];
programs.jump.enableBash = true; # TODO: upstream?
programs.nix-index.enable = true;
programs.nix-index-database.comma.enable = true; # via nix-index-database flake
#programs.command-not-found.enable = false; # mutex with nix-index
programs.fzf.enable = true; # TODO: does this conflict with system-wide setup?
programs.exa.enable = true;
programs.exa.enableAliases = true;
programs.eza.enable = true;
programs.eza.enableAliases = true;
programs.zoxide.enable = true;
programs.zoxide.options = [ "--cmd cd --cmd dc" ];
programs.carapace.enable = true;
# i can't type
home.shellAliases.sl = "exa";
home.shellAliases.dc = "cd";
home.shellAliases.sl = "eza";
#home.shellAliases.dc = "cd";
programs.direnv.enable = true;
#programs.direnv.nix-direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
programs.tealdeer.enable = true;
programs.tealdeer.settings.updates.auto_update = true;
# just use ncdu lol
@ -60,12 +70,23 @@
home.shellAliases.watch = "watch -c "; # parse colors
home.shellAliases.xargs = "xargs ";
# Be conservative with files
# --preserver-root is for GNU versions
# do not delete / or prompt if deleting more than 3 files at a time
home.shellAliases.rm = "rm -i --preserve-root";
home.shellAliases.mv = "mv -i";
home.shellAliases.cp = "cp -i";
# Preventing changing perms on /
home.shellAliases.chown = "chown --preserve-root";
home.shellAliases.chmod = "chmod --preserve-root";
home.shellAliases.chgrp = "chgrp --preserve-root";
home.packages = with pkgs; [
rsync
bind.dnsutils # dig
dogdns # dog
vimv
git
curl
wget
@ -90,9 +111,10 @@
gum
sysz
du-dust # du alternative
duf # df alternative
ncdu # Disk usage analyzer with an ncurses interface
xplr # tui file explorer
aha unstable.colorized-logs
aha (pkgs.colorized-logs or unstable.colorized-logs)
];
}