Compare commits
4 commits
3773beab41
...
239802be49
Author | SHA1 | Date | |
---|---|---|---|
|
239802be49 | ||
|
bfe92e0ed9 | ||
|
ed834c5013 | ||
|
1b56af47cb |
42
flake.lock
42
flake.lock
|
@ -209,11 +209,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737038063,
|
||||
"narHash": "sha256-rMEuiK69MDhjz1JgbaeQ9mBDXMJ2/P8vmOYRbFndXsk=",
|
||||
"lastModified": 1738148035,
|
||||
"narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "bf0abfde48f469c256f2b0f481c6281ff04a5db2",
|
||||
"rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -481,11 +481,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737861961,
|
||||
"narHash": "sha256-LIRtMvAwLGb8pBoamzgEF67oKlNPz4LuXiRPVZf+TpE=",
|
||||
"lastModified": 1738466368,
|
||||
"narHash": "sha256-PZhUjtvQZOH3PO0EYdTpQvcqkgkq1NkP2A6w9SPHYsk=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "79b7b8eae3243fc5aa9aad34ba6b9bbb2266f523",
|
||||
"rev": "46a8f5fc9552b776bfc5c5c96ea3bede33f68f52",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -504,11 +504,11 @@
|
|||
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737201600,
|
||||
"narHash": "sha256-JBh5+g8oQteQdQqbO07dGHBRQo/NGI61JPlTjdfQ1pk=",
|
||||
"lastModified": 1737736848,
|
||||
"narHash": "sha256-VrUfCXBXYV+YmQ2OvVTeML9EnmaPRtH+POrNIcJp6yo=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "ade37b2765032f83d2d4bd50b6204a40a4c05eb4",
|
||||
"rev": "6b425d13f5a9d73cb63973d3609acacef4d1e261",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
|
@ -551,11 +551,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1737885589,
|
||||
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
|
||||
"lastModified": 1738680400,
|
||||
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
|
||||
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -612,11 +612,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1737885640,
|
||||
"narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=",
|
||||
"lastModified": 1738574474,
|
||||
"narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4e96537f163fad24ed9eb317798a79afc85b51b7",
|
||||
"rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -922,11 +922,11 @@
|
|||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737483750,
|
||||
"narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
|
||||
"lastModified": 1738680491,
|
||||
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
|
||||
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -937,11 +937,11 @@
|
|||
},
|
||||
"vpsadminos": {
|
||||
"locked": {
|
||||
"lastModified": 1737943400,
|
||||
"narHash": "sha256-2BqPlxdK4vvZYtYL+wVhch+U9/ZJrue5/t+VJsWqc+8=",
|
||||
"lastModified": 1738687007,
|
||||
"narHash": "sha256-cCFjJCknS2eVxCo6A1H+cffq0+7m0s18wE//bQDS28g=",
|
||||
"owner": "vpsfreecz",
|
||||
"repo": "vpsadminos",
|
||||
"rev": "bced91cd0b47d61e648d1c254351206a3395c08a",
|
||||
"rev": "c9040809be5e730ff5488ec0c9ecc9cd46c75df8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
||||
set -xe
|
||||
|
@ -17,6 +17,17 @@ in
|
|||
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
|
||||
];
|
||||
|
||||
systemd.services.amd-fan-control = {
|
||||
script = ''
|
||||
${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 85
|
||||
'';
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
hardware.graphics.enable32Bit = true;
|
||||
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
|
|
61
scripts/amd-fan-control
Executable file
61
scripts/amd-fan-control
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
DEVICE="$1" # eg: /sys/class/drm/card1/device
|
||||
HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
|
||||
|
||||
exit() {
|
||||
echo "Setting controll to auto" >&2
|
||||
echo 2 > "$HWMON/pwm1_enable"
|
||||
}
|
||||
|
||||
trap exit EXIT INT
|
||||
|
||||
bail() {
|
||||
echo "Error: $@" >&2
|
||||
echo "Exiting..." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ! [ -d "$HWMON" ]; then
|
||||
bail "Invalid HWMON"
|
||||
fi
|
||||
|
||||
TEMP_INPUT="$HWMON/temp2_input"
|
||||
|
||||
if ! [ -f $TEMP_INPUT ]; then
|
||||
bail "Invalid TEMP_INPUT"
|
||||
fi
|
||||
|
||||
TEMP_MIN="$2"
|
||||
TEMP_MAX="$3"
|
||||
|
||||
if [ -z "$TEMP_MIN" ];then
|
||||
bail "No minimum temperature provided"
|
||||
fi
|
||||
|
||||
if [ -z "$TEMP_MAX" ];then
|
||||
bail "No maximum temperature provided"
|
||||
fi
|
||||
|
||||
PWM_MIN=0
|
||||
PWM_MAX=255
|
||||
|
||||
echo "Running..." >&2
|
||||
while true; do
|
||||
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
|
||||
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
|
||||
# Remap from a number between 60_000..90_000 to 0..255
|
||||
PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
|
||||
|
||||
if [ "$PWM" -gt $PWM_MAX ]; then
|
||||
PWM=$PWM_MAX
|
||||
elif [ "$PWM" -lt $PWM_MIN ]; then
|
||||
PWM=$PWM_MIN
|
||||
fi
|
||||
|
||||
echo 1 > "$HWMON/pwm1_enable"
|
||||
echo "$PWM" > "$HWMON/pwm1"
|
||||
sleep .1s
|
||||
done
|
|
@ -23,6 +23,7 @@
|
|||
in
|
||||
with final;
|
||||
createScripts {
|
||||
amd-fan-control = [ bash ];
|
||||
br = [ ];
|
||||
bmenu = [
|
||||
bemenu
|
||||
|
|
25
switch
25
switch
|
@ -1,12 +1,25 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
nix fmt
|
||||
|
||||
git --no-pager diff
|
||||
|
||||
nixos-rebuild \
|
||||
switch \
|
||||
--use-remote-sudo \
|
||||
--print-build-logs \
|
||||
--flake .# \
|
||||
"$@"
|
||||
run() {
|
||||
nixos-rebuild \
|
||||
switch \
|
||||
--use-remote-sudo \
|
||||
--print-build-logs \
|
||||
--flake .# \
|
||||
"$@"
|
||||
}
|
||||
|
||||
if which nom >/dev/null; then
|
||||
run --verbose \
|
||||
--log-format internal-json \
|
||||
"$@" \
|
||||
|& nom --json
|
||||
else
|
||||
run "$@"
|
||||
fi
|
||||
|
|
|
@ -44,6 +44,8 @@
|
|||
usbutils
|
||||
# dracula-theme # gtk theme
|
||||
adwaita-icon-theme # default gnome cursors
|
||||
|
||||
nix-output-monitor
|
||||
];
|
||||
|
||||
services.geoclue2.enable = true;
|
||||
|
|
Loading…
Reference in a new issue