I need help
This commit is contained in:
parent
c113949cb0
commit
3d62eaafd7
12 changed files with 205 additions and 120 deletions
151
flake.lock
151
flake.lock
|
@ -19,6 +19,36 @@
|
|||
"url": "ssh://gitea@git.lyte.dev/lytedev/api.lyte.dev.git"
|
||||
}
|
||||
},
|
||||
"crane": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": [
|
||||
"helix",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"helix",
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": [
|
||||
"helix",
|
||||
"rust-overlay"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1688772518,
|
||||
"narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=",
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ipetkov",
|
||||
"repo": "crane",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"disko": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
|
@ -38,6 +68,22 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1673956053,
|
||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
|
@ -57,6 +103,24 @@
|
|||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"locked": {
|
||||
"lastModified": 1644229661,
|
||||
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
||||
|
@ -71,6 +135,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"helix": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696295907,
|
||||
"narHash": "sha256-GFeo5NpbFQjVeu2lv/B/pfZY/+SIt0KRHjh26s0bXAY=",
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "75c0a5ceb32d8a503915a93ccc1b64c8ad1cba8b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "helix-editor",
|
||||
"repo": "helix",
|
||||
"rev": "75c0a5ceb32d8a503915a93ccc1b64c8ad1cba8b",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
@ -140,6 +226,22 @@
|
|||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1690272529,
|
||||
"narHash": "sha256-MakzcKXEdv/I4qJUtq/k/eG+rVmyOZLnYNC2w1mB59Y=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ef99fa5c5ed624460217c31ac4271cfb5cb2502c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1696275311,
|
||||
"narHash": "sha256-Z8aJvoUyMv/+0G7iqYIqecxRDFbz05RK2e3/irbWq9M=",
|
||||
|
@ -154,7 +256,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1694760568,
|
||||
"narHash": "sha256-3G07BiXrp2YQKxdcdms22MUx6spc6A++MSePtatCYuI=",
|
||||
|
@ -174,15 +276,41 @@
|
|||
"inputs": {
|
||||
"api-lyte-dev": "api-lyte-dev",
|
||||
"disko": "disko",
|
||||
"helix": "helix",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"sops-nix": "sops-nix",
|
||||
"utils": "utils"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"helix",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"helix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1690424156,
|
||||
"narHash": "sha256-Bpml+L280tHTQpwpC5/BJbU4HSvEzMvW8IZ4gAXimhE=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "f335a0213504c7e6481c359dc1009be9cf34432c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
|
@ -214,9 +342,24 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2"
|
||||
"flake-utils": "flake-utils_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1696272629,
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
|
||||
disko.url = "github:nix-community/disko/master";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
helix.url = "github:helix-editor/helix/75c0a5ceb32d8a503915a93ccc1b64c8ad1cba8b";
|
||||
# TODO: hyprland.url = "github:hyprwm/Hyprland";
|
||||
};
|
||||
|
||||
|
|
27
home.nix
27
home.nix
|
@ -1,28 +1,25 @@
|
|||
inputs:
|
||||
{
|
||||
daniel =
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import inputs.nixpkgs { inherit system; };
|
||||
mkHome = system: modules:
|
||||
let
|
||||
overlay = final: prev: {
|
||||
helix = prev.helix // inputs.helix.packages.${system}.helix;
|
||||
};
|
||||
pkgs = import inputs.nixpkgs { inherit system; overlays = [ overlay ]; };
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
modules = [ ] ++ modules;
|
||||
};
|
||||
in
|
||||
{
|
||||
daniel = mkHome "x86_64-linux" [
|
||||
./home/user.nix
|
||||
./home/linux.nix
|
||||
];
|
||||
};
|
||||
|
||||
daniel-work =
|
||||
let
|
||||
system = "aarch64-darwin";
|
||||
pkgs = import inputs.nixpkgs { inherit system; };
|
||||
in
|
||||
inputs.home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
daniel-work = mkHome "aarch64-darwin" [
|
||||
./home/user.nix
|
||||
./home/work.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,9 +29,6 @@ in
|
|||
# kubectl, aws
|
||||
pkgs.rtx
|
||||
|
||||
# text editor
|
||||
pkgs.helix
|
||||
|
||||
# I need gawk for my fish prompt
|
||||
pkgs.gawk
|
||||
|
||||
|
@ -159,6 +156,7 @@ in
|
|||
|
||||
helix = {
|
||||
enable = true;
|
||||
package = pkgs.helix;
|
||||
languages = {
|
||||
language-server = {
|
||||
lexical = {
|
||||
|
|
|
@ -137,5 +137,14 @@
|
|||
driSupport = true;
|
||||
};
|
||||
};
|
||||
|
||||
boot.binfmt.registrations.appimage = {
|
||||
wrapInterpreterInShell = false;
|
||||
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||
recognitionType = "magic";
|
||||
offset = 0;
|
||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||
};
|
||||
}
|
||||
|
||||
|
|
20
nixos.nix
20
nixos.nix
|
@ -25,18 +25,18 @@ in
|
|||
{
|
||||
# TODO: disko-fy rascal and beefcake?
|
||||
|
||||
# beefcake = nixosSystem "x86_64-linux" [
|
||||
# ./nixos/beefcake.nix
|
||||
# inputs.api-lyte-dev.nixosModules.x86_64-linux.api-lyte-dev
|
||||
# ];
|
||||
beefcake = nixosSystem "x86_64-linux" [
|
||||
./nixos/beefcake.nix
|
||||
inputs.api-lyte-dev.nixosModules.x86_64-linux.api-lyte-dev
|
||||
];
|
||||
|
||||
# rascal = nixosSystem "x86_64-linux" [ ./nixos/rascal.nix ];
|
||||
rascal = nixosSystem "x86_64-linux" [ ./nixos/rascal.nix ];
|
||||
|
||||
# musicbox = nixosSystem "x86_64-linux" (disko
|
||||
# {
|
||||
# scheme = "unencrypted";
|
||||
# disks = [ "/dev/sda" ];
|
||||
# } ++ [ ./nixos/musicbox.nix ]);
|
||||
musicbox = nixosSystem "x86_64-linux" (disko
|
||||
{
|
||||
scheme = "unencrypted";
|
||||
disks = [ "/dev/sda" ];
|
||||
} ++ [ ./nixos/musicbox.nix ]);
|
||||
|
||||
thinker = nixosSystem "x86_64-linux" (disko
|
||||
{
|
||||
|
|
|
@ -16,6 +16,7 @@ in
|
|||
systemPackages = with pkgs; [
|
||||
age
|
||||
bat
|
||||
bc
|
||||
bind
|
||||
bottom
|
||||
btrfs-progs
|
||||
|
@ -49,6 +50,7 @@ in
|
|||
sops
|
||||
smartmontools
|
||||
sqlite
|
||||
sysstat
|
||||
unzip
|
||||
watchexec
|
||||
wget
|
||||
|
@ -150,13 +152,16 @@ in
|
|||
trusted-users = [ "root" "daniel" ];
|
||||
experimental-features = lib.mkDefault [ "nix-command" "flakes" ];
|
||||
substituters = [
|
||||
"https://nix.h.lyte.dev"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://helix.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nix.h.lyte.dev"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"h.lyte.dev:HeVWtne31ZG8iMf+c15VY3/Mky/4ufXlfTpT8+4Xbs0="
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"h.lyte.dev:HeVWtne31ZG8iMf+c15VY3/Mky/4ufXlfTpT8+4Xbs0="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ modulesPath, lib, ... }: {
|
||||
{ modulesPath, lib, pkgs, ... }: {
|
||||
imports =
|
||||
[
|
||||
../modules/amd.nix
|
||||
|
@ -22,6 +22,13 @@
|
|||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
services.printing.enable = true;
|
||||
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
radeontop
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: helper for taking a data structure and building bash args?
|
|
@ -1,8 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: check for oathtool
|
||||
|
||||
key="$1"; shift
|
||||
args=("$@")
|
||||
|
||||
oathtool --totp=sha1 -b "$key" "${args[@]}"
|
|
@ -1,56 +0,0 @@
|
|||
#!/usr/bin/env fish
|
||||
|
||||
# deps: fish, zstd, gpg, ssh
|
||||
|
||||
set -q HOST || set HOST (head -n 1 /etc/hostname | tr -d '\n')
|
||||
|
||||
# use the backup-host in the ~/.ssh/config as the default backup remote host
|
||||
set -q BACKUP_REMOTE_HOST || set BACKUP_REMOTE_HOST backup-host
|
||||
|
||||
# use a user-specific dir by default to backup to
|
||||
set -q BACKUP_REMOTE_DIR || set BACKUP_REMOTE_DIR "/storage/"(whoami)"/backups/$HOST"
|
||||
|
||||
set BACKUP_FILE_EXT .tar.zstd.gpg
|
||||
|
||||
set target $argv[1]
|
||||
if test $target = '--list-backup-files'
|
||||
ssh $BACKUP_REMOTE_HOST "command ls -1 $BACKUP_REMOTE_DIR"
|
||||
exit 0
|
||||
else if test (count $argv) -lt 1
|
||||
echo "No remote backup filename provided (use --list-backup-files to show)"
|
||||
exit 1
|
||||
end
|
||||
|
||||
ssh $BACKUP_REMOTE_HOST "echo 1" &>/dev/null || begin
|
||||
echo "Cannot ssh to $BACKUP_REMOTE_HOST"
|
||||
exit 6
|
||||
end
|
||||
|
||||
ssh $BACKUP_REMOTE_HOST "test -d $BACKUP_REMOTE_DIR/$target" || begin
|
||||
echo "Remote directory $BACKUP_REMOTE_DIR/$target does not exist on $BACKUP_REMOTE_HOST (use --list-backup-files to show)"
|
||||
exit 5
|
||||
end
|
||||
|
||||
# TODO: autocomplete?
|
||||
# TODO: checksum?
|
||||
# TODO: progress indicator?
|
||||
|
||||
set local_dir (echo $target | awk -F. '{print $1}')
|
||||
mkdir $local_dir || begin
|
||||
echo "Local unbackup directory '$local_dir' exists"
|
||||
exit 2
|
||||
end
|
||||
|
||||
pushd $local_dir >/dev/null
|
||||
|
||||
ssh $BACKUP_REMOTE_HOST "cat $BACKUP_REMOTE_DIR/$target" |
|
||||
gpg --decrypt 2>/dev/null |
|
||||
zstd --ultra -T2 -22 -dc |
|
||||
tar -xf - || begin
|
||||
echo "Failed to stream backup"
|
||||
exit 4
|
||||
end
|
||||
|
||||
popd >/dev/null
|
||||
|
||||
echo "Restored to $local_dir"
|
|
@ -1,8 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TODO: get the proper monitor!
|
||||
BAR_MONITOR="$(polybar --list-monitors | tail -n 1 | sed -n 's/^\s*\(.*\):.*$/\1/p')"
|
||||
bspc config -m "${BAR_MONITOR}" bottom_padding "0"
|
||||
bspc config -m "${BAR_MONITOR}" top_padding "0"
|
||||
killall -q polybar
|
||||
while pgrep -x polybar >/dev/null; do sleep 1; done
|
Loading…
Reference in a new issue