Compare commits

..

3 commits

Author SHA1 Message Date
45cd242bf9
update lockfile 2025-11-09 17:51:14 +01:00
d84d25bf0c
make natpmp module thing work 2025-10-22 09:27:54 +02:00
c6df96cfea
make ssh port 2050 unit actually start automatically 2025-10-22 09:04:24 +02:00
10 changed files with 131 additions and 125 deletions

157
flake.lock generated
View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1746562888,
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
@ -21,16 +21,17 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
@ -141,11 +142,11 @@
]
},
"locked": {
"lastModified": 1756733629,
"narHash": "sha256-dwWGlDhcO5SMIvMSTB4mjQ5Pvo2vtxvpIknhVnSz2I8=",
"lastModified": 1762276996,
"narHash": "sha256-TtcPgPmp2f0FAnc+DMEw4ardEgv1SGNR3/WFGH0N19M=",
"owner": "nix-community",
"repo": "disko",
"rev": "a5c4f2ab72e3d1ab43e3e65aa421c6f2bd2e12a1",
"rev": "af087d076d3860760b3323f6b583f4d828c1ac17",
"type": "github"
},
"original": {
@ -162,11 +163,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1756872219,
"narHash": "sha256-KsX15cRMZzJlwkwgTf7JwnFqEaU80SekgHLu/3xcX10=",
"lastModified": 1762661016,
"narHash": "sha256-S19zwz43UI+DonRXqhWL0PHL5CdcZT0aq35pdMEAJLQ=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "5512d414aa6ccd07d5c7145a85ca9bd4608f845e",
"rev": "c1bf2c6f2ab60f2fb266d3f0becc058dc126def1",
"type": "gitlab"
},
"original": {
@ -179,11 +180,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1748383148,
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"lastModified": 1758112371,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"type": "github"
},
"original": {
@ -211,11 +212,11 @@
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github"
},
"original": {
@ -263,11 +264,11 @@
]
},
"locked": {
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"lastModified": 1762440070,
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"type": "github"
},
"original": {
@ -281,11 +282,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1754487366,
"narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
"lastModified": 1762440070,
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"type": "github"
},
"original": {
@ -364,11 +365,11 @@
]
},
"locked": {
"lastModified": 1751413152,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
@ -513,11 +514,11 @@
},
"hardware": {
"locked": {
"lastModified": 1756925795,
"narHash": "sha256-kUb5hehaikfUvoJDEc7ngiieX88TwWX/bBRX9Ar6Tac=",
"lastModified": 1762463231,
"narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "ba6fab29768007e9f2657014a6e134637100c57d",
"rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
"type": "github"
},
"original": {
@ -577,11 +578,11 @@
]
},
"locked": {
"lastModified": 1756903364,
"narHash": "sha256-vZh/YH2D7oDFek10r0TbGn3qJrqGv69sSP+oF8PFDqQ=",
"lastModified": 1762704774,
"narHash": "sha256-iodz4xQbULkHqetbPu5BCSWsVEzZiiNSv0/dzfH4XiE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6159629d05a0e92bb7fb7211e74106ae1d552401",
"rev": "be4a9233dd3f6104c9b0fdd3d56f953eb519a4c7",
"type": "github"
},
"original": {
@ -656,11 +657,11 @@
]
},
"locked": {
"lastModified": 1756692364,
"narHash": "sha256-EOJPoJfw8E+EVdGcKyVYntHnUovu6f/LhZNYWoaSdd0=",
"lastModified": 1762653178,
"narHash": "sha256-r2JatX28XYTeHygCNWws/3S1WKgDwISvY9vIJm42bSc=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "23deedafada335ffa29d4adccebbb491cf55e3f0",
"rev": "d9357208610b615c00907248955319d02a1a906a",
"type": "github"
},
"original": {
@ -676,11 +677,11 @@
]
},
"locked": {
"lastModified": 1756612744,
"narHash": "sha256-/glV6VAq8Va3ghIbmhET3S1dzkbZqicsk5h+FtvwiPE=",
"lastModified": 1762660502,
"narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "3fe768e1f058961095b4a0d7a2ba15dc9736bdc6",
"rev": "15c5451c63f4c612874a43846bfe3fa828b03eee",
"type": "github"
},
"original": {
@ -698,11 +699,11 @@
]
},
"locked": {
"lastModified": 1756864213,
"narHash": "sha256-eHgsQ9eoJZGnZLJtrYnCynEb5nYhysvMtFrPiTwjHA0=",
"lastModified": 1762653944,
"narHash": "sha256-zAgyqF6bPFGCe9WcZdskvxS3qmMPOh15TBF6yxbai78=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "da421c0fb247d3b1956b0cc68e73a27bcdcf77b5",
"rev": "8fa3e5e2763f7dfc7ab665609167a4e6796518f4",
"type": "github"
},
"original": {
@ -717,11 +718,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1755261305,
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
"lastModified": 1762251193,
"narHash": "sha256-CmSddz8e2kM+ITbYutluhKZyXXwI9Sg2lf7XXSvc8oY=",
"owner": "nix-community",
"repo": "nixos-wsl",
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
"rev": "e001844d4553aef268f97b32d3a825b6370eed91",
"type": "github"
},
"original": {
@ -732,11 +733,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"lastModified": 1761907660,
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
"type": "github"
},
"original": {
@ -748,11 +749,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
"type": "github"
},
"original": {
@ -778,11 +779,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1756787288,
"narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
"lastModified": 1762596750,
"narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
"rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e",
"type": "github"
},
"original": {
@ -804,11 +805,11 @@
]
},
"locked": {
"lastModified": 1751906969,
"narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=",
"lastModified": 1758998580,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"type": "github"
},
"original": {
@ -913,11 +914,11 @@
]
},
"locked": {
"lastModified": 1757239136,
"narHash": "sha256-3LPKuZ26NK+UrOnB/d34iM651D9lASep71i/uDWx8fs=",
"lastModified": 1762705707,
"narHash": "sha256-741N/dCDUmyhSHE3jlefkDKVGeNKmaLNRNnBm3+R4nY=",
"owner": "xunuwu",
"repo": "sobercookie",
"rev": "d6dcc68b71584725bbd074ca1d3f37000a6eb985",
"rev": "d67fbf33df1f5a37b630075301b66b4167cec10a",
"type": "github"
},
"original": {
@ -933,11 +934,11 @@
]
},
"locked": {
"lastModified": 1754988908,
"narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=",
"lastModified": 1762659808,
"narHash": "sha256-2Kv2mANf+FRisqhpfeZ8j9firBxb23ZvEXwdcunbpGI=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "3223c7a92724b5d804e9988c6b447a0d09017d48",
"rev": "524312bc62e3f34bd9231a2f66622663d3355133",
"type": "github"
},
"original": {
@ -967,11 +968,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1756811338,
"narHash": "sha256-fwgklhY9kJSTDMGuwHJUVBCuJDVvxxljjGOLhxC84ko=",
"lastModified": 1762264356,
"narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=",
"owner": "nix-community",
"repo": "stylix",
"rev": "989312ab49e6eb1d076f9d194d43f9f9c513087e",
"rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b",
"type": "github"
},
"original": {
@ -1091,11 +1092,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1750770351,
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
"lastModified": 1757716333,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"type": "github"
},
"original": {
@ -1107,11 +1108,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1751159871,
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
"lastModified": 1757811970,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"type": "github"
},
"original": {
@ -1123,11 +1124,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1751158968,
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
"lastModified": 1757811247,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"type": "github"
},
"original": {
@ -1178,11 +1179,11 @@
},
"vpn-confinement": {
"locked": {
"lastModified": 1749672087,
"narHash": "sha256-j8LG0s0QcvNkZZLcItl78lvTZemvsScir0dG3Ii4B1c=",
"lastModified": 1759956062,
"narHash": "sha256-NUZu0Rb0fwUjfdp51zMm0xM3lcK8Kw4c97LLog7+JjA=",
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"rev": "880b3bd2c864dce4f6afc79f6580ca699294c011",
"rev": "fabe7247b720b5eb4c3c053e24a2b3b70e64c52b",
"type": "github"
},
"original": {

View file

@ -7,9 +7,13 @@
git-credential-oauth
];
programs.delta = {
enable = true;
enableGitIntegration = true;
};
programs.git = {
enable = true;
delta.enable = true;
lfs.enable = true;
ignores = ["*~" ".direnv"];
@ -19,14 +23,15 @@
signByDefault = true;
};
extraConfig = {
settings = {
gpg.format = "ssh";
push.autoSetupRemote = true;
pull.rebase = true;
rebase.autostash = true;
user = {
name = "xunuwu";
email = "xunuwu@gmail.com";
};
};
userEmail = "xunuwu@gmail.com";
userName = "xunuwu";
};
}

View file

@ -3,8 +3,8 @@
enable = true;
settings = {
user = {
email = config.programs.git.userEmail;
name = config.programs.git.userName;
email = config.programs.git.settings.user.email;
name = config.programs.git.settings.user.name;
};
signing = {
behavior = "own";

View file

@ -4,6 +4,6 @@
haskell-language-server
cabal-install
hlint
haskellPackages.retrie
# haskellPackages.retrie
];
}

View file

@ -4,7 +4,7 @@
in {
programs.beets = {
enable = true;
package = pkgs.beets-unstable;
package = pkgs.beets;
settings = {
directory = "${musicDir}/beets";
library = "${beetsDir}/beets.db";

View file

@ -14,7 +14,6 @@
./profiles/wireguard.nix
./profiles/restic-server.nix
./profiles/autologin.nix
./profiles/ssh-public-port-2050.nix
inputs.impermanence.nixosModules.impermanence
inputs.stylix.nixosModules.stylix
@ -110,6 +109,16 @@
'')
];
own.natpmp-portforward = {
enable = true;
mappings = [
{
public = 2050;
local = 22;
}
];
};
nixpkgs.config = {
# rocmSupport = true;
allowUnfreePredicate = pkg:
@ -125,6 +134,11 @@
"android-studio-stable"
"krunker"
];
permittedInsecurePackages = [
"electron-36.9.5" # for feishin
];
android_sdk.accept_license = true;
};

View file

@ -1,16 +0,0 @@
{pkgs, ...}: {
systemd.services.ssh-port2050-natpmp = {
bindsTo = ["sshd.socket"];
after = ["sshd.socket"];
serviceConfig.Restart = "on-failure";
serviceConfig.ExecStart = pkgs.writeScript "ssh-port2050-natpmp" ''
#!${pkgs.bash}/bin/bash
while true
do
${pkgs.libnatpmp}/bin/natpmpc -a 2050 22 tcp 60
${pkgs.coreutils}/bin/sleep 30
done
'';
};
}

View file

@ -8,23 +8,25 @@
in {
options.own.natpmp-portforward = {
enable = lib.mkEnableOption "enable natpmp port forwarding service";
mappings = lib.types.listOf (lib.types.submodule {
options = {
public = lib.mkOption {
type = lib.types.port;
mappings = lib.mkOption {
type = lib.types.listOf (lib.types.submodule {
options = {
public = lib.mkOption {
type = lib.types.port;
};
local = lib.mkOption {
type = lib.types.port;
};
protocol = lib.mkOption {
default = "tcp";
type = lib.types.enum [
"tcp"
"udp"
];
};
};
private = lib.mkOption {
type = lib.types.port;
};
protocol = lib.mkOption {
default = "tcp";
type = lib.types.enum [
"tcp"
"udp"
];
};
};
});
});
};
};
config = lib.mkIf cfg.enable {
@ -35,10 +37,10 @@ in {
ExecStart = pkgs.writeScript "natpmp-portforward" ''
#!${pkgs.bash}/bin/bash
"${lib.concatMapStrings (x: ''
${pkgs.libnatpmp}/bin/natpmpc -a ${x.public} ${x.private} ${x.protocol} 60
${lib.concatMapStrings (x: ''
${pkgs.libnatpmp}/bin/natpmpc -a ${toString x.public} ${toString x.local} ${x.protocol} 180
'')
cfg.mappings}"
cfg.mappings}
'';
};
};

View file

@ -46,8 +46,8 @@ in
unzip
wayland
libGL
qt6.full
qt6.qtbase
qt6.qttools
stdenv.cc.cc.lib
glib
fontconfig

View file

@ -9,7 +9,7 @@
dejavu_fonts
font-awesome
noto-fonts
noto-fonts-emoji
noto-fonts-color-emoji
source-code-pro
noto-fonts-cjk-sans
iosevka