mirror of
https://github.com/buckley310/nixos-config.git
synced 2024-12-21 19:24:15 +00:00
Compare commits
No commits in common. "0be59680b4e84546d3039824a7eeb69163559f84" and "e014507cd4845e7d7bee916b9f29ece7c740ce27" have entirely different histories.
0be59680b4
...
e014507cd4
8 changed files with 23 additions and 61 deletions
12
flake.lock
12
flake.lock
|
@ -2,11 +2,11 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"impermanence": {
|
"impermanence": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717932370,
|
"lastModified": 1708968331,
|
||||||
"narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=",
|
"narHash": "sha256-VUXLaPusCBvwM3zhGbRIJVeYluh2uWuqtj4WirQ1L9Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "impermanence",
|
"repo": "impermanence",
|
||||||
"rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f",
|
"rev": "a33ef102a02ce77d3e39c25197664b7a636f9c30",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -17,11 +17,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718160348,
|
"lastModified": 1716948383,
|
||||||
"narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=",
|
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "57d6973abba7ea108bac64ae7629e7431e0199b6",
|
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
20
flake.nix
20
flake.nix
|
@ -14,20 +14,6 @@
|
||||||
|
|
||||||
forAllSystems = lib.genAttrs [ "x86_64-linux" ];
|
forAllSystems = lib.genAttrs [ "x86_64-linux" ];
|
||||||
|
|
||||||
pins = {
|
|
||||||
nix.registry.nixpkgs.to = {
|
|
||||||
inherit (nixpkgs) rev;
|
|
||||||
owner = "NixOS";
|
|
||||||
repo = "nixpkgs";
|
|
||||||
type = "github";
|
|
||||||
};
|
|
||||||
nix.registry.bck.to = {
|
|
||||||
owner = "buckley310";
|
|
||||||
repo = "nixos-config";
|
|
||||||
type = "github";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
formatter = forAllSystems (system:
|
formatter = forAllSystems (system:
|
||||||
|
@ -47,9 +33,13 @@
|
||||||
|
|
||||||
nixosModules =
|
nixosModules =
|
||||||
{
|
{
|
||||||
inherit pins;
|
|
||||||
inherit (impermanence.nixosModules) impermanence;
|
inherit (impermanence.nixosModules) impermanence;
|
||||||
pkgs.nixpkgs.overlays = [ (_: mypkgs) ];
|
pkgs.nixpkgs.overlays = [ (_: mypkgs) ];
|
||||||
|
pins.nix.registry.bck.to = {
|
||||||
|
owner = "buckley310";
|
||||||
|
repo = "nixos-config";
|
||||||
|
type = "github";
|
||||||
|
};
|
||||||
} //
|
} //
|
||||||
self.lib.dirToAttrs ./modules import;
|
self.lib.dirToAttrs ./modules import;
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@
|
||||||
|
|
||||||
(writeShellScriptBin "dirt" "while sleep 1; do grep '^Dirty:' /proc/meminfo ; done")
|
(writeShellScriptBin "dirt" "while sleep 1; do grep '^Dirty:' /proc/meminfo ; done")
|
||||||
|
|
||||||
|
(writeShellScriptBin "nr" "exec nix repl \"$(nix eval nixpkgs#path)\"")
|
||||||
|
|
||||||
(lib.hiPrio (writeShellScriptBin "iftop" ''
|
(lib.hiPrio (writeShellScriptBin "iftop" ''
|
||||||
exec ${iftop}/bin/iftop -P -m100M "$@"
|
exec ${iftop}/bin/iftop -P -m100M "$@"
|
||||||
''))
|
''))
|
||||||
|
@ -125,7 +127,6 @@
|
||||||
set -g history-limit 10000
|
set -g history-limit 10000
|
||||||
set -g pane-base-index 1
|
set -g pane-base-index 1
|
||||||
set -g renumber-windows on
|
set -g renumber-windows on
|
||||||
set -g set-titles on
|
|
||||||
set -sa terminal-overrides ",*256color:Tc"
|
set -sa terminal-overrides ",*256color:Tc"
|
||||||
# escape-time reduces the time where the escape key acts as an alt key
|
# escape-time reduces the time where the escape key acts as an alt key
|
||||||
set -s escape-time 1
|
set -s escape-time 1
|
||||||
|
@ -162,6 +163,5 @@
|
||||||
alias day='date "+%Y-%m-%d"'
|
alias day='date "+%Y-%m-%d"'
|
||||||
alias grep='grep --color=auto'
|
alias grep='grep --color=auto'
|
||||||
alias tmp='cd "$(mktemp -d)"'
|
alias tmp='cd "$(mktemp -d)"'
|
||||||
alias nixpkgs='nix repl --file flake:nixpkgs'
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,8 +30,6 @@ let
|
||||||
"-jobs $(jobs -pr | wc -l)"
|
"-jobs $(jobs -pr | wc -l)"
|
||||||
];
|
];
|
||||||
|
|
||||||
termtitle = ''\[\e]0;\u@\h: \w\a\]'';
|
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
@ -50,7 +48,7 @@ in
|
||||||
local remote=y
|
local remote=y
|
||||||
[ "$XDG_SESSION_TYPE" = "x11" ] && unset remote
|
[ "$XDG_SESSION_TYPE" = "x11" ] && unset remote
|
||||||
[ "$XDG_SESSION_TYPE" = "wayland" ] && unset remote
|
[ "$XDG_SESSION_TYPE" = "wayland" ] && unset remote
|
||||||
PS1="${termtitle}$(powerline-go ${toString args})"
|
PS1="$(powerline-go ${toString args})"
|
||||||
}
|
}
|
||||||
[ "$TERM" = "linux" ] || PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
|
[ "$TERM" = "linux" ] || PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -18,6 +18,9 @@ with lib;
|
||||||
systemd.services.docker.path = [
|
systemd.services.docker.path = [
|
||||||
pkgs.openssh
|
pkgs.openssh
|
||||||
];
|
];
|
||||||
|
programs.bash.interactiveShellInit = ''
|
||||||
|
((UID)) && alias docker="sudo --preserve-env=SSH_AUTH_SOCK docker"
|
||||||
|
'';
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableOnBoot = false;
|
enableOnBoot = false;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"audio"
|
"audio"
|
||||||
"dialout"
|
"dialout"
|
||||||
"docker"
|
|
||||||
"input"
|
"input"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"video"
|
"video"
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.sconfig.swapspace;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.sconfig.swapspace = {
|
|
||||||
enable = lib.mkEnableOption "swapspace";
|
|
||||||
swapPath = lib.mkOption { type = lib.types.path; };
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
systemd.tmpfiles.rules = [ "d ${cfg.swapPath} 0700 root root" ];
|
|
||||||
systemd.services.swapspace = {
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Restart = "always";
|
|
||||||
ExecStart = "${pkgs.swapspace}/bin/swapspace --swappath='${cfg.swapPath}'";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -27,24 +27,16 @@ def get_deployment():
|
||||||
def expand(ln):
|
def expand(ln):
|
||||||
hosts = set()
|
hosts = set()
|
||||||
for item in ln.split(","):
|
for item in ln.split(","):
|
||||||
if item[0] == "-":
|
|
||||||
item = item[1:]
|
|
||||||
action = hosts.difference_update
|
|
||||||
else:
|
|
||||||
action = hosts.update
|
|
||||||
|
|
||||||
if item == "all":
|
if item == "all":
|
||||||
action(depl)
|
hosts.update(depl)
|
||||||
elif item in tags:
|
elif item in tags:
|
||||||
action(name for name in depl if item in depl[name]["tags"])
|
hosts.update(name for name in depl if item in depl[name]["tags"])
|
||||||
else:
|
else:
|
||||||
action([item])
|
hosts.add(item)
|
||||||
|
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
for c in host:
|
for c in host:
|
||||||
if not c in (ascii_letters + digits + "-"):
|
if not c in (ascii_letters + digits + "-"):
|
||||||
raise RuntimeError(f"Invalid hostname: {host}")
|
raise RuntimeError(f"Invalid hostname: {host}")
|
||||||
|
|
||||||
return sorted(hosts)
|
return sorted(hosts)
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,8 +84,6 @@ def check(hosts):
|
||||||
print("#" * 64)
|
print("#" * 64)
|
||||||
|
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
print(host.rjust(hostwidth + 1), end=" ", flush=True)
|
|
||||||
|
|
||||||
current_sys, cur_kernel, boot_kernel = (
|
current_sys, cur_kernel, boot_kernel = (
|
||||||
run(
|
run(
|
||||||
[
|
[
|
||||||
|
@ -115,6 +105,8 @@ def check(hosts):
|
||||||
reboot_needed = cur_kernel != boot_kernel
|
reboot_needed = cur_kernel != boot_kernel
|
||||||
update_needed = current_sys != new_sys[host]
|
update_needed = current_sys != new_sys[host]
|
||||||
|
|
||||||
|
print(host.rjust(hostwidth + 1), end=" ")
|
||||||
|
|
||||||
if not (reboot_needed or update_needed):
|
if not (reboot_needed or update_needed):
|
||||||
print(icon_good, "[OK]")
|
print(icon_good, "[OK]")
|
||||||
continue
|
continue
|
||||||
|
@ -150,9 +142,9 @@ def push(hosts):
|
||||||
def rexec(hosts, cmd):
|
def rexec(hosts, cmd):
|
||||||
hostwidth = max(map(len, hosts))
|
hostwidth = max(map(len, hosts))
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
print(host.rjust(hostwidth), end=" ", flush=True)
|
|
||||||
r = run(["ssh", host, "--"] + cmd, stdout=PIPE, stderr=STDOUT)
|
r = run(["ssh", host, "--"] + cmd, stdout=PIPE, stderr=STDOUT)
|
||||||
lines = r.stdout.decode("utf8").strip("\n").splitlines()
|
lines = r.stdout.decode("utf8").strip("\n").splitlines()
|
||||||
|
print(host.rjust(hostwidth), end=" ")
|
||||||
print(icon_bad if r.returncode else icon_good, end=" ")
|
print(icon_bad if r.returncode else icon_good, end=" ")
|
||||||
if len(lines) == 1:
|
if len(lines) == 1:
|
||||||
print(lines[0])
|
print(lines[0])
|
||||||
|
|
Loading…
Reference in a new issue