added secrets
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{ config, lib, ... }:
|
||||
{ config, ... }:
|
||||
|
||||
{
|
||||
powerManagement = {
|
||||
cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
enable = true;
|
||||
cpuFreqGovernor = "ondemand";
|
||||
};
|
||||
}
|
||||
|
@@ -2,8 +2,8 @@
|
||||
|
||||
{
|
||||
systemd.services.nbfc = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
description = "Notebook Fancontrol";
|
||||
wantedBy = lib.mkForce [];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
Restart = "on-failure";
|
||||
@@ -15,12 +15,24 @@
|
||||
services = {
|
||||
tor.enable = true;
|
||||
logmein-hamachi.enable = true;
|
||||
mysql = {
|
||||
enable = true;
|
||||
package = pkgs.mysql;
|
||||
dataDir = "/var/db";
|
||||
};
|
||||
sshd.enable = true;
|
||||
|
||||
/* vault = {
|
||||
enable = true;
|
||||
storageBackend = "mysql";
|
||||
storagePath = "/var/db";
|
||||
};*/
|
||||
};
|
||||
systemd.services = {
|
||||
tor.wantedBy = lib.mkForce [];
|
||||
logmein-hamachi.wantedBy = lib.mkForce [];
|
||||
sshd.wantedBy = lib.mkForce [];
|
||||
mysql.wantedBy = lib.mkForce [];
|
||||
#vault.wantedBy = lib.mkForce [];
|
||||
};
|
||||
# services.picom = {
|
||||
# enable = true;
|
||||
# fade = true;
|
||||
# shadow = true;
|
||||
# activeOpacity = 0.96;
|
||||
# inactiveOpacity = 0.86;
|
||||
# };
|
||||
}
|
||||
|
@@ -23,7 +23,7 @@
|
||||
};
|
||||
grub = {
|
||||
enable = true;
|
||||
useOSProber = true;
|
||||
# useOSProber = true;
|
||||
efiSupport = true;
|
||||
device = "nodev";
|
||||
splashImage = "/etc/cirno.png"; #hehe
|
||||
|
@@ -11,7 +11,7 @@
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/4c02ddf5-d00e-4d84-856f-c327ae44d047";
|
||||
fsType = "btrfs";
|
||||
options = ["compress=zstd"];
|
||||
options = ["compress=zstd:9"];
|
||||
};
|
||||
|
||||
fileSystems."/boot/efi" =
|
||||
|
@@ -5,7 +5,6 @@
|
||||
xclip
|
||||
xorg.xkbcomp
|
||||
xorg.xmodmap
|
||||
ffmpeg
|
||||
p7zip
|
||||
git
|
||||
glxinfo
|
||||
@@ -32,11 +31,22 @@
|
||||
st
|
||||
kbd
|
||||
];
|
||||
programs.steam.enable = true;
|
||||
programs = {
|
||||
steam.enable = true;
|
||||
gnupg = {
|
||||
agent = {
|
||||
enableSSHSupport = true;
|
||||
enable = true;
|
||||
pinentryFlavor = "curses";
|
||||
};
|
||||
};
|
||||
fish.enable = true;
|
||||
dconf.enable = true;
|
||||
};
|
||||
nix = {
|
||||
package = pkgs.nixUnstable;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
experimental-features = nix-command ca-references flakes
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
{lib, config, ... }:
|
||||
{lib, config, agenix, ... }:
|
||||
{
|
||||
imports = [
|
||||
./Stuff/sound.nix
|
||||
@@ -10,8 +10,8 @@
|
||||
time.timeZone = "Asia/Kolkata";
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
QT_QPA_PLATFORMTHEME = "gtk3";
|
||||
QT_X11_NO_MITSHM="1";
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
};
|
||||
security={
|
||||
@@ -32,11 +32,5 @@
|
||||
dates = "20:15";
|
||||
};
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
programs = {
|
||||
fish.enable = true;
|
||||
dconf.enable = true;
|
||||
};
|
||||
nixpkgs.config.allowBroken = true;
|
||||
nix.extraOptions = ''experimental-features = nix-command flakes ca-references'';
|
||||
|
||||
}
|
||||
|
32
acha.yaml
Normal file
32
acha.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
foo: ENC[AES256_GCM,data:5Ge7eUo=,iv:82RHHUmwHmsQrEI8S/x3oKhnyT1gjJMXaqCn5OAIF1Q=,tag:Q8WCeIDClSmpB2StSKUOew==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age: []
|
||||
lastmodified: "2021-05-05T02:12:06Z"
|
||||
mac: ENC[AES256_GCM,data:GdNfM/AG4uqCmDRrzL6mYPHPtCIgKCqG6fo3nH4cZZdV2iTf6atiKk9aflvF+lLMoRVq5RYltWk3YJ8FHCXraHbKzitohhlhkmzxt8h4pPVE/Mx45jXw8sEVugBmsV/asl0B5Z8hYnJsQnP3WSt3wYE6/YMBk0k60vFcQpL78xQ=,iv:Z4oPby5K9WnPnLL6YdVLb+Bg2KP/9cNni13E2xxerdU=,tag:WQBG1PMX9eKilIGQdyp1Zg==,type:str]
|
||||
pgp:
|
||||
- created_at: "2021-05-05T00:23:41Z"
|
||||
enc: |
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMA+X3NrYq0li6AQ/6A5ovfQh6INTo/12GCDGdHKIfb4QO48LEjChvVhxhZUzk
|
||||
l7hW5Ihgmt/42Eswu35/BCzfvfLWqzfGuMFcnE6kJIBzY0zgN+H/c2UR6wYoplNp
|
||||
+jDxMxArbNzD49nrJu25entaH1ShZgs96sC1EQ0HT0CLHLqWfWnujnKsZEZUA6NU
|
||||
WyWmqlun5VFtLrvGpJdqO+hyHn7F/W0hPO91uhIxlE+mhIvKmDo9ldUzi4LWe2VQ
|
||||
jVcK3Uwoju/L8Z7TAOmUPp/r/JEMjK7QrMKngZ1Jath/wC6BljaabUohfjo8U/dZ
|
||||
2BK7j94aIs18m5j6XThHhK8IQ8Tw1DQU6z3g4xRINeYIUeQS5qPWoR4xw26H7LUs
|
||||
LzdLGD7RRIFqsOOTlnmgANPZJb68SD+xUBJLOmSGKjxJRnW4SMC2dIMV8a/5axzh
|
||||
kePqXZMK3284BFe3HqPo9kZK0WYA++ARl9lbQxHRgxA4xGb9ACB1SqIQltGmcpuM
|
||||
qRHnZyMPqwRrZ6fglBtunbmEbrUVzJd5Ly+0bAew3wLKcGoQc/zytcdN6YxtyvmY
|
||||
6ftjh+78kMDA4bsn4saxerxhTeW2n5JBWd5ysT2pEXYPDwHObnmTSat0PDUyneAF
|
||||
kN0LiR8ZzV+UIbMjvfj14N2H0j2LhjHcMyNV9iM48TJW7gTiiHECAt/0KFtMnvTS
|
||||
XgGhRTCmpAsU9dIcZAAp94qSBQ/axteLK/71bYz13AyMRGllpu4AneYre/vVmWtk
|
||||
kb3KYTgjOwPYxwEABjgqIcl6J3NuVvEKts48nTrXMJlB5A6zIYIJHH5Btdpwi38=
|
||||
=CF20
|
||||
-----END PGP MESSAGE-----
|
||||
fp: 53EC089EF230E47A83BA8F8195949BD4B853F559
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.7.1
|
67
flake.lock
generated
67
flake.lock
generated
@@ -1,5 +1,39 @@
|
||||
{
|
||||
"nodes": {
|
||||
"agenix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1620307122,
|
||||
"narHash": "sha256-YLS8foCbVXJiUPoz3NpfAwysxCMsKNIpWK0fetfPNI0=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "c12ac8b6f336e1029f6d45c8ca0f2a3f95fbeb6b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1600209923,
|
||||
"narHash": "sha256-zoOWauTliFEjI++esk6Jzk7QO5EKpddWXQm9yQK24iM=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "3cd06d3c1df6879c9e41cb2c33113df10566c760",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -21,6 +55,20 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1599148892,
|
||||
"narHash": "sha256-V76c6DlI0ZZffvbBpxGlpVSpXxZ14QpFHwAvEEujIsY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7ff50a7f7b9a701228f870813fe58f01950f870b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1619464443,
|
||||
"narHash": "sha256-R7WAb8EnkIJxxaF6GTHUPytjonhB4Zm0iatyWoW169A=",
|
||||
@@ -36,10 +84,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"locked": {
|
||||
"lastModified": 1619994493,
|
||||
"narHash": "sha256-cYKOTkRp1J0DIrJ6MNBH4dAmpQGaf2shppxKuI0eIac=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "72fd1387746e2d2806e1ec172886c149c3f46180",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nur": "nur",
|
||||
"stable": "stable"
|
||||
}
|
||||
},
|
||||
|
44
flake.nix
44
flake.nix
@@ -1,15 +1,24 @@
|
||||
{
|
||||
|
||||
inputs = {
|
||||
stable.url = "github:nixos/nixpkgs/nixos-20.09";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
stable.url = github:nixos/nixpkgs/nixos-20.09;
|
||||
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
url = github:nix-community/home-manager;
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nur = {
|
||||
url = github:nix-community/NUR;
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
agenix.url = github:ryantm/agenix;
|
||||
};
|
||||
outputs = inputs@{self, nixpkgs, stable, home-manager,... }:
|
||||
|
||||
outputs = {self, nixpkgs, stable, home-manager, nur, agenix, ... }:
|
||||
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
ov = (builtins.attrValues self.overlays) ++ [ nur.overlay ];
|
||||
in
|
||||
{
|
||||
overlays = {
|
||||
@@ -20,35 +29,28 @@
|
||||
hm-configs = {
|
||||
natto = home-manager.lib.homeManagerConfiguration {
|
||||
configuration = { pkgs, lib, ... }: {
|
||||
imports = [ ./home/natto.nix ];
|
||||
nixpkgs = {
|
||||
overlays = builtins.attrValues self.overlays;
|
||||
};
|
||||
imports = [
|
||||
./home/natto.nix
|
||||
];
|
||||
nixpkgs.overlays = ov;
|
||||
};
|
||||
system = "${system}";
|
||||
homeDirectory = "/home/natto";
|
||||
username = "natto";
|
||||
};
|
||||
|
||||
root = home-manager.lib.homeManagerConfiguration {
|
||||
configuration = { pkgs, lib, ... }: {
|
||||
imports = [ ./home/root.nix ];
|
||||
nixpkgs = {
|
||||
overlays = builtins.attrValues self.overlays;
|
||||
};
|
||||
};
|
||||
system = "${system}";
|
||||
homeDirectory = "/root";
|
||||
username = "root";
|
||||
};
|
||||
};
|
||||
|
||||
nixosConfigurations.Satori = nixpkgs.lib.nixosSystem {
|
||||
system = "${system}";
|
||||
modules = [
|
||||
./Satori/configuration.nix
|
||||
{ nixpkgs.overlays = builtins.attrValues self.overlays; }
|
||||
agenix.nixosModules.age
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
nixpkgs.overlays = ov;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
@@ -12,7 +12,7 @@ if [ ${conf,,} == "n" ]; then
|
||||
echo "If this is not you, then log into your profile first!"
|
||||
exit 1
|
||||
else
|
||||
$elev nix build .\#hm-configs.$USER.activationPackage -o hm-result
|
||||
$elev nix build .\#hm-configs.$USER.activationPackage -o hm-result --impure
|
||||
./hm-result/activate
|
||||
$elev unlink hm-result
|
||||
fi
|
||||
|
4
home/config/dwm/autostart.sh
Executable file
4
home/config/dwm/autostart.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
picom --experimental-backends &
|
||||
~/.dwm/bruhstatus.sh &
|
||||
feh --bg-scale ~/Downloads/stallman.jpg
|
47
home/config/dwm/bruhstatus.sh
Executable file
47
home/config/dwm/bruhstatus.sh
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env bash
|
||||
prevtotload=0
|
||||
previdleload=0
|
||||
#tt=$(date +"%s")
|
||||
#bgfile=$(ls ~/Wallpapers/** | shuf -n 1)
|
||||
#for N in {99..1}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
#feh --bg-scale $bgfile
|
||||
while true; do
|
||||
cputemp=$(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))
|
||||
gputemp=$(nvidia-smi | head -n 10 | tail -n 1 |awk '{print $3}'| cut -c 1-2)
|
||||
totmem=$(cat /proc/meminfo | awk '/MemTotal:/ {print $2}')
|
||||
echo $totmem
|
||||
availmem=$(cat /proc/meminfo | awk '/MemAvailable:/ {print $2}')
|
||||
echo $availmem
|
||||
totload=$(cat /proc/stat | awk '/cpu/'|head -n 1|awk '{print $2+$3+$4+$5+$6+$7+$8}')
|
||||
echo $totload
|
||||
idleload=$(cat /proc/stat | awk '/cpu/'|head -n 1|awk '{print $5}')
|
||||
echo $idleload
|
||||
totloadchange=$(($totload-$prevtotload))
|
||||
idleloadchange=$(($idleload-$previdleload))
|
||||
xsetroot -name\
|
||||
"CPU [$(printf %0.2f $(echo "($totloadchange-$idleloadchange)*100/$totloadchange" | bc -l))%]\
|
||||
MEM [$(printf %0.2f $(echo \($totmem - $availmem\)/1024/1024|bc -l))/\
|
||||
$(printf %0.2f $(echo $totmem/1024/1024 | bc -l))]\
|
||||
TEMP [$cputemp°C|$gputemp°C]\
|
||||
BAT$($(cat /sys/class/power_supply/BAT1/status | grep -q Discharging) && echo " " || echo "")\
|
||||
[$(cat /sys/class/power_supply/BAT1/capacity)%]\
|
||||
VOL [$(pamixer --get-volume)]\
|
||||
[$(date +"%a, %b %d") | $(date +"%H:%M:%S")]"
|
||||
prevtotload=$totload
|
||||
previdleload=$idleload
|
||||
# if [ $(echo $tt+44 | bc -l) -lt $(date +"%s") ]
|
||||
# then
|
||||
#for N in {1..99}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
# bgfile=$(ls ~/Wallpapers/** | shuf -n 1)
|
||||
#for N in {99..1}; do
|
||||
# magick convert $bgfile -fill black -colorize $N% jpg:- | feh --bg-scale -
|
||||
#done
|
||||
# feh --bg-scale $bgfile
|
||||
# tt=$(date +"%s")
|
||||
#fi
|
||||
sleep 15
|
||||
done
|
@@ -1,15 +0,0 @@
|
||||
{config, ...}:
|
||||
let
|
||||
home = config.home.homeDirectory;
|
||||
in {
|
||||
home = {
|
||||
file.ncmpcpp = {
|
||||
source = ../config/ncmpcpp/config;
|
||||
target = "${home}/.config/ncmpcpp/config";
|
||||
};
|
||||
file.mpd = {
|
||||
source = ../config/mpd/mpd.conf;
|
||||
target = "${home}/.config/mpd/mpd.conf";
|
||||
};
|
||||
};
|
||||
}
|
@@ -1,20 +1,41 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
home = config.home.homeDirectory;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./modules/programs.nix
|
||||
./modules/xsession.nix
|
||||
./modules/files.nix
|
||||
./modules/services.nix
|
||||
./modules/gtk.nix
|
||||
./stuff/programs.nix
|
||||
./stuff/xsession.nix
|
||||
./stuff/secret.nix
|
||||
./stuff/services.nix
|
||||
./stuff/gtk.nix
|
||||
];
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
age = {
|
||||
sshKeyPaths = [ "${home}/.ssh/id_ed25519" ];
|
||||
secrets = {
|
||||
fish_variables = {
|
||||
file = ./secrets/fish_variables.age;
|
||||
path = "${home}/.config/fish/fish_variables";
|
||||
};
|
||||
mpdasrc = {
|
||||
file = ./secrets/mpdasrc.age;
|
||||
path = "${home}/.config/mpdasrc";
|
||||
};
|
||||
};
|
||||
};
|
||||
home = {
|
||||
packages = with pkgs; [
|
||||
ffmpeg
|
||||
sox
|
||||
rage
|
||||
curl
|
||||
pamixer
|
||||
mpdas
|
||||
mpd
|
||||
dunst
|
||||
@@ -31,8 +52,30 @@
|
||||
tor-browser-bundle-bin
|
||||
mpc_cli
|
||||
flameshot
|
||||
hexchat
|
||||
luajit
|
||||
mpv
|
||||
jmtpfs
|
||||
youtube-dl
|
||||
];
|
||||
|
||||
file = {
|
||||
ncmpcpp = {
|
||||
source = ./config/ncmpcpp/config;
|
||||
target = "${home}/.config/ncmpcpp/config";
|
||||
};
|
||||
mpd = {
|
||||
source = ./config/mpd/mpd.conf;
|
||||
target = "${home}/.config/mpd/mpd.conf";
|
||||
};
|
||||
dwm-autostart = {
|
||||
source = ./config/dwm/autostart.sh;
|
||||
target = "${home}/.dwm/autostart.sh";
|
||||
};
|
||||
dwm-status = {
|
||||
source = ./config/dwm/bruhstatus.sh;
|
||||
target = "${home}/.dwm/bruhstatus.sh";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -1,7 +0,0 @@
|
||||
{config, ...}:
|
||||
{
|
||||
imports = [
|
||||
./modules/programs/nvim.nix
|
||||
./modules/gtk.nix
|
||||
];
|
||||
}
|
BIN
home/secrets/fish_variables.age
Normal file
BIN
home/secrets/fish_variables.age
Normal file
Binary file not shown.
BIN
home/secrets/mpdasrc.age
Normal file
BIN
home/secrets/mpdasrc.age
Normal file
Binary file not shown.
93
home/stuff/secret.nix
Normal file
93
home/stuff/secret.nix
Normal file
@@ -0,0 +1,93 @@
|
||||
/* Module by @ryantm in github:ryantm/agenix
|
||||
Modified by @natto1784 for 'personal' home-manager config */
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.age;
|
||||
ageBin = "${pkgs.rage}/bin/rage";
|
||||
users = config.users.users;
|
||||
home_ = config.home.homeDirectory;
|
||||
username_ = config.home.username;
|
||||
identities = builtins.concatStringsSep " " (map (path: "-i ${path}") cfg.sshKeyPaths);
|
||||
installSecret = secretType: ''
|
||||
echo "decrypting ${secretType.file} to ${secretType.path}..."
|
||||
TMP_FILE="${secretType.path}.tmp"
|
||||
mkdir -p $(dirname ${secretType.path})
|
||||
(umask 0400; ${ageBin} --decrypt ${identities} -o "$TMP_FILE" "${secretType.file}")
|
||||
chmod ${secretType.mode} "$TMP_FILE"
|
||||
chown ${secretType.owner} "$TMP_FILE"
|
||||
mv -f "$TMP_FILE" '${secretType.path}'
|
||||
'';
|
||||
|
||||
secretType = types.submodule ({ config, ... }: {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = config._module.args.name;
|
||||
description = ''
|
||||
Name of the file used in /run/secrets
|
||||
'';
|
||||
};
|
||||
file = mkOption {
|
||||
type = types.path;
|
||||
description = ''
|
||||
Age file the secret is loaded from.
|
||||
'';
|
||||
};
|
||||
path = mkOption {
|
||||
type = types.str;
|
||||
default = "${home_}/.secrets/${config.name}";
|
||||
description = ''
|
||||
Path where the decrypted secret is installed.
|
||||
'';
|
||||
};
|
||||
mode = mkOption {
|
||||
type = types.str;
|
||||
default = "0400";
|
||||
description = ''
|
||||
Permissions mode of the in octal.
|
||||
'';
|
||||
};
|
||||
owner = mkOption {
|
||||
type = types.str;
|
||||
default = "${username_}";
|
||||
description = ''
|
||||
User of the file.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
in {
|
||||
|
||||
options.age = {
|
||||
secrets = mkOption {
|
||||
type = types.attrsOf secretType;
|
||||
default = {};
|
||||
description = ''
|
||||
Attrset of secrets.
|
||||
'';
|
||||
};
|
||||
|
||||
sshKeyPaths = mkOption {
|
||||
type = types.listOf types.path;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Path to SSH keys to be used as identities in age decryption.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = mkIf (cfg.secrets != {}) {
|
||||
assertions = [{
|
||||
assertion = cfg.sshKeyPaths != [];
|
||||
message = "age.sshKeyPaths must be set.";
|
||||
}];
|
||||
home.activation = {
|
||||
decryptSecrets = lib.hm.dag.entryBefore [ "writeBoundary" ] (concatStrings (map installSecret (builtins.attrValues cfg.secrets)));
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -1,16 +1,18 @@
|
||||
{lib,stdenv,fetchFromGitHub}:
|
||||
{lib, stdenv, fetchFromGitHub, rage, curl, sox, ffmpeg}:
|
||||
stdenv.mkDerivation rec{
|
||||
name = "customscripts";
|
||||
src = fetchFromGitHub {
|
||||
src = ./src;
|
||||
/* src = fetchFromGitHub {
|
||||
owner = "idcretard";
|
||||
repo = "custom-scripts";
|
||||
rev = "a996a52831316cc2c282904352654bd20c82f7bd";
|
||||
sha256 = "sha256-nw21YmcmQMF8NADnuHOc7eF2Yaj/r/1mYBn77fYK7s8=";
|
||||
};
|
||||
};*/
|
||||
buildInputs = [ rage curl sox ffmpeg ];
|
||||
unpackPhase = ":";
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -r $src/* $out/bin
|
||||
for x in $out/bin/*;do chmod +x "$x";done
|
||||
for x in $out/bin/*; do chmod +x "$x"; done
|
||||
'';
|
||||
}
|
||||
|
12
overlays/customscripts/src/agecrypt
Normal file
12
overlays/customscripts/src/agecrypt
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
if [ $# -eq 0 ]; then echo "bruh"; exit 1; fi
|
||||
FILE=$1
|
||||
if [ $# -eq 2 ]; then
|
||||
TARGET="$2.age"
|
||||
elif [ $# -eq 1 ]; then
|
||||
TARGET="$FILE.age"
|
||||
else
|
||||
echo "bruh"
|
||||
exit 1
|
||||
fi
|
||||
rage -o "$TARGET" -r "$(cat ~/.ssh/*.pub)" "$1"
|
2
overlays/customscripts/src/batspec
Normal file
2
overlays/customscripts/src/batspec
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
mkdir spectrals; cd spectrals; for x in ../*$1;do sox "$x" -n spectrogram -o "$(echo $(ffprobe -loglevel error -show_entries format_tags=track -of default=noprint_wrappers=1:nokey=1 "$x") - $(ffprobe -loglevel error -show_entries format_tags=TITLE -of default=noprint_wrappers=1:nokey=1 "$x")).png"; done
|
14
overlays/customscripts/src/batspecup
Normal file
14
overlays/customscripts/src/batspecup
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
mkdir spectrals
|
||||
cd spectrals
|
||||
for x in ../*$1
|
||||
do
|
||||
spec="$(echo $(ffprobe -loglevel error -show_entries format_tags=track -of default=noprint_wrappers=1:nokey=1 "$x") - $(ffprobe -loglevel error -show_entries format_tags=TITLE -of default=noprint_wrappers=1:nokey=1 "$x"))"
|
||||
sox "$x" -n spectrogram -o "$spec.png" -t "$spec"
|
||||
resp=$(curl -F file-upload=@"$spec.png" -F "api_key=$PTPIMGAPI" https://ptpimg.me/upload.php 2>/dev/null)
|
||||
echo "$spec"
|
||||
echo [img]https://ptpimg.me/$(echo $resp | jq -r .[0].code).$(echo $resp | jq -r .[0].ext)[/img]
|
||||
rm "$spec.png"
|
||||
done
|
||||
cd ..
|
||||
rm -r spectrals
|
15
overlays/customscripts/src/battrans
Normal file
15
overlays/customscripts/src/battrans
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
IFS=$'\n'
|
||||
for i in $(ls *$3)
|
||||
do
|
||||
if [ $1 = "320" ]; then
|
||||
ffmpeg -i "$i" -codec:a libmp3lame -b:a 320k -map_metadata 0 -id3v2_version 3 "$2/${i%.$3}".mp3
|
||||
elif [ $1 = "v0" ]; then
|
||||
ffmpeg -i "$i" -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 "$2/${i%.$3}".mp3
|
||||
elif [ $1 = "alactoflac" ]; then
|
||||
ffmpeg -i "$i" -codec:a flac -map_metadata 0 -id3v2_version 3 "$2/${i%.$3}".flac
|
||||
else
|
||||
sox "$i" -G -b 16 "$2/${i%.$3}".flac rate -v -L 48000 dither
|
||||
fi
|
||||
echo $i
|
||||
done
|
9
overlays/customscripts/src/compmusic
Normal file
9
overlays/customscripts/src/compmusic
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
if [ $1 == "flac" ]; then
|
||||
for x in *.flac; do
|
||||
flac "$x" --compression-level-8 -o "bruh.$x"
|
||||
mv "bruh.$x" "$x"
|
||||
done
|
||||
else
|
||||
echo "bruh"
|
||||
fi
|
32
overlays/customscripts/src/compress
Normal file
32
overlays/customscripts/src/compress
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
target_video_size_KB="$2"
|
||||
origin_duration_s=$(ffprobe -v error -show_streams -select_streams a "$1" | grep -Po "(?<=^duration\=)\d*\.\d*")
|
||||
echo $origin_duration_s
|
||||
origin_audio_bitrate_kbit_s=$(ffprobe -v error -pretty -show_streams -select_streams a "$1" | grep -Po "(?<=^bit_rate\=)\d*\.\d*")
|
||||
target_audio_bitrate_kbit_s=$origin_audio_bitrate_kbit_s
|
||||
target_video_bitrate_kbit_s=$(\
|
||||
awk \
|
||||
-v size="$target_video_size_KB" \
|
||||
-v duration="$origin_duration_s" \
|
||||
-v audio_rate="$target_audio_bitrate_kbit_s" \
|
||||
'BEGIN { print ( ( size * 8.0 ) / ( 1.048576 * duration ) - audio_rate ) }')
|
||||
|
||||
ffmpeg \
|
||||
-y \
|
||||
-i "$1" \
|
||||
-c:v libx264 \
|
||||
-b:v "$target_video_bitrate_kbit_s"k \
|
||||
-pass 1 \
|
||||
-an \
|
||||
-f mp4 \
|
||||
/dev/null \
|
||||
&& \
|
||||
ffmpeg \
|
||||
-i "$1" \
|
||||
-c:v libx264 \
|
||||
-b:v "$target_video_bitrate_kbit_s"k \
|
||||
-pass 2 \
|
||||
-c:a aac \
|
||||
-b:a "$target_audio_bitrate_kbit_s"k \
|
||||
"$3"
|
13
overlays/customscripts/src/fan
Normal file
13
overlays/customscripts/src/fan
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
#Script to control fans via nbfc in /opt/nbfc
|
||||
if [[ $1 = "a" ]]; then
|
||||
mono /opt/nbfc/nbfc.exe set -f 0 -a
|
||||
else
|
||||
mono /opt/nbfc/nbfc.exe set -f 0 -s $1
|
||||
fi
|
||||
|
||||
if [[ $2 = "a" ]]; then
|
||||
mono /opt/nbfc/nbfc.exe set -f 1 -a
|
||||
else
|
||||
mono /opt/nbfc/nbfc.exe set -f 1 -s $2
|
||||
fi
|
4
overlays/customscripts/src/killmpd
Normal file
4
overlays/customscripts/src/killmpd
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
killall mpd
|
||||
killall mpd_discord_richpresence
|
||||
killall mpdas
|
3
overlays/customscripts/src/listalbum
Normal file
3
overlays/customscripts/src/listalbum
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
for x in *$1;do echo $(ffprobe -loglevel error -show_entries format_tags=track -of default=noprint_wrappers=1:nokey=1 "$x") - $(ffprobe -loglevel error -show_entries format_tags=TITLE -of default=noprint_wrappers=1:nokey=1 "$x"); done
|
||||
|
4
overlays/customscripts/src/mpdp
Normal file
4
overlays/customscripts/src/mpdp
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
mpd
|
||||
mpdas &
|
||||
mpd_discord_richpresence &
|
5
overlays/customscripts/src/x0
Normal file
5
overlays/customscripts/src/x0
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
for x in $@; do
|
||||
curl -F "file=@\"$x\"" https://x0.at/
|
||||
echo " "
|
||||
done
|
7
overlays/customscripts/src/ytmp3
Normal file
7
overlays/customscripts/src/ytmp3
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
youtube-dl -f bestaudio -o "ytmp3.%(title)s.%(ext)s" "$1"
|
||||
file=$(echo ytmp3.*.*)
|
||||
newfile=$(echo $file | cut -c 7-)
|
||||
mv "$file" "$newfile"
|
||||
ffmpeg -i "$newfile" -c:a mp3 "${newfile%.*}.mp3"
|
||||
rm "$newfile"
|
@@ -14,8 +14,8 @@ final: prev: {
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "natto1784";
|
||||
repo = "dwm";
|
||||
rev = "cd69bb00b0ecd941cdb5d048df029f3b762eea8c";
|
||||
sha256 = "sha256-dZyF7GnVJZzzAy8DO2pqCoIj7t1vZLdfhHm1cJKXah0=";
|
||||
rev = "a3896f13d20218ce07a7b646459cd5ce6ed2f27d";
|
||||
sha256 = "sha256-iyUFeZwqZ6veMs+3lBcpBLENN4r27QlkARfAL3OJvks=";
|
||||
};
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@ final: prev: {
|
||||
repo = "st";
|
||||
rev = "0cd1e394e6d07c5f605ae23070c40de9690bafb1";
|
||||
sha256 = "sha256-EY5Amz16Drc4i0uEAYTPEHcGex0s3pzHDqfDp4Z5OGY=";
|
||||
};
|
||||
};
|
||||
});
|
||||
|
||||
kbd = prev.kbd.overrideAttrs (oldAttrs: rec{
|
||||
|
32
secrets.yaml
Normal file
32
secrets.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
example_key: ENC[AES256_GCM,data:1FONzVdIfjcmHYE2wg==,iv:v5Vf/m230AytwDuT2U/iO1nwkdQ6zj4/3tj4UO0mt94=,tag:4Ph1p/10wdAvbcnLc9G2fg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age: []
|
||||
lastmodified: "2021-05-04T00:06:47Z"
|
||||
mac: ENC[AES256_GCM,data:S32eOd33KuPOM4oqpo8zp33G2S1vNlkXJspxPjh6kYMCvTh6Cy4xpwwzwSambYnrq1SIugh5AS29AwADvxgevZV1PJjrdgcrsTLxREfUWYX9eyNs/fAtTLr0/+8Pc5IOcBp/djEYU/HNaYQRhp2GzZIBrIhkup6Lm4tw1RK7oOs=,iv:zG4iIzyXPO5Z9VIARX3c/Jhb5AqG3MP57EiMBYN7aCQ=,tag:kp3MJctxlZpFeYrfphrOWQ==,type:str]
|
||||
pgp:
|
||||
- created_at: "2021-05-04T00:06:40Z"
|
||||
enc: |
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hQIMA+X3NrYq0li6AQ/7BNMXqv7xQfdo8sprrLDOX+ugFzjEaxwg+x9ogmMPZpo5
|
||||
V5BOBu1t4v2N8jookuqzezowGJ7AD+fPnkbgzKUqnQf155v4LyIeq+oa0kEZCM5l
|
||||
PTZsIRAvwl2j6boK9AfS30PMG9BEvE5qEkNH1xk2O3j6JABuM7mKa+Y+imE1hMXr
|
||||
5kF0z/Lqi4QeRD/4VzAEQJgkw9Mu4pfKkw+TVAPvuZbBoOA4FpfCwm/ZySUPua63
|
||||
fjLRjrh+lwbwAgkhjWaKeTTxXXqcZCjE56NyMMcjm7uzinn+UjRPz+K9fZymQcQW
|
||||
856UCJsF481c+avhhZ74y8zonWUEzw+2lSArtn2n1nOdgWAHY9FtLODfMhqy/T2h
|
||||
dvTOB8REPSeSw0bqj6DKsO+udAHG9NTpx+UuWI+mMkszSRaGxBk0Chl0OlbtLem5
|
||||
ZBCkzor2Wa7eEmKiWCsF7zl18scwbwp4zxjiwrB9bUxw0Wf5hMTw1etBUnLh8Vb5
|
||||
Z6FwDpNu0R3yLbj7GCx0BCGmRtfe+8nnciCIyWXdLufv8Qlxf8v6z2GwpehjTUrG
|
||||
Temu/j0w8Eisgzs4sHJKHlUGtmp/qxCbU/apGBLvIf7d4BlkN7FXMlYdO2jhvUUo
|
||||
dfAg4oWFunfKlAnkhYVimDy8q0HudDPMjtiDvBMkS8hhHAxkXAidwLdVm2vxzQTS
|
||||
XgH9hHaopVZBJwfJrDyquXO7P2m7C94qapmNUagzRhhU6U8RagoOiIjwVd84M5Fw
|
||||
g/N3LE1wwCjpi9LE7m/pcXyYeuM9uVSVTFhC7toLSYkNbiUQd333VCk2dr3QSmA=
|
||||
=8Tzt
|
||||
-----END PGP MESSAGE-----
|
||||
fp: 53EC089EF230E47A83BA8F8195949BD4B853F559
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.7.1
|
Reference in New Issue
Block a user