Compare commits
4 commits
3773beab41
...
239802be49
Author | SHA1 | Date | |
---|---|---|---|
|
239802be49 | ||
|
bfe92e0ed9 | ||
|
ed834c5013 | ||
|
1b56af47cb |
42
flake.lock
42
flake.lock
|
@ -209,11 +209,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737038063,
|
"lastModified": 1738148035,
|
||||||
"narHash": "sha256-rMEuiK69MDhjz1JgbaeQ9mBDXMJ2/P8vmOYRbFndXsk=",
|
"narHash": "sha256-KYOATYEwaKysL3HdHdS5kbQMXvzS4iPJzJrML+3TKAo=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "bf0abfde48f469c256f2b0f481c6281ff04a5db2",
|
"rev": "18d0a984cc2bc82cf61df19523a34ad463aa7f54",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -481,11 +481,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737861961,
|
"lastModified": 1738466368,
|
||||||
"narHash": "sha256-LIRtMvAwLGb8pBoamzgEF67oKlNPz4LuXiRPVZf+TpE=",
|
"narHash": "sha256-PZhUjtvQZOH3PO0EYdTpQvcqkgkq1NkP2A6w9SPHYsk=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "79b7b8eae3243fc5aa9aad34ba6b9bbb2266f523",
|
"rev": "46a8f5fc9552b776bfc5c5c96ea3bede33f68f52",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -504,11 +504,11 @@
|
||||||
"nixpkgs-24_11": "nixpkgs-24_11"
|
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737201600,
|
"lastModified": 1737736848,
|
||||||
"narHash": "sha256-JBh5+g8oQteQdQqbO07dGHBRQo/NGI61JPlTjdfQ1pk=",
|
"narHash": "sha256-VrUfCXBXYV+YmQ2OvVTeML9EnmaPRtH+POrNIcJp6yo=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "ade37b2765032f83d2d4bd50b6204a40a4c05eb4",
|
"rev": "6b425d13f5a9d73cb63973d3609acacef4d1e261",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -551,11 +551,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737885589,
|
"lastModified": 1738680400,
|
||||||
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
|
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
|
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -612,11 +612,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737885640,
|
"lastModified": 1738574474,
|
||||||
"narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=",
|
"narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4e96537f163fad24ed9eb317798a79afc85b51b7",
|
"rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -922,11 +922,11 @@
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737483750,
|
"lastModified": 1738680491,
|
||||||
"narHash": "sha256-5An1wq5U8sNycOBBg3nsDDgpwBmR9liOpDGlhliA6Xo=",
|
"narHash": "sha256-8X7tR3kFGkE7WEF5EXVkt4apgaN85oHZdoTGutCFs6I=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "f2cc121df15418d028a59c9737d38e3a90fbaf8f",
|
"rev": "64dbb922d51a42c0ced6a7668ca008dded61c483",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -937,11 +937,11 @@
|
||||||
},
|
},
|
||||||
"vpsadminos": {
|
"vpsadminos": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737943400,
|
"lastModified": 1738687007,
|
||||||
"narHash": "sha256-2BqPlxdK4vvZYtYL+wVhch+U9/ZJrue5/t+VJsWqc+8=",
|
"narHash": "sha256-cCFjJCknS2eVxCo6A1H+cffq0+7m0s18wE//bQDS28g=",
|
||||||
"owner": "vpsfreecz",
|
"owner": "vpsfreecz",
|
||||||
"repo": "vpsadminos",
|
"repo": "vpsadminos",
|
||||||
"rev": "bced91cd0b47d61e648d1c254351206a3395c08a",
|
"rev": "c9040809be5e730ff5488ec0c9ecc9cd46c75df8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
||||||
set -xe
|
set -xe
|
||||||
|
@ -17,6 +17,17 @@ in
|
||||||
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
|
"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.enable32Bit = true;
|
||||||
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
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
|
in
|
||||||
with final;
|
with final;
|
||||||
createScripts {
|
createScripts {
|
||||||
|
amd-fan-control = [ bash ];
|
||||||
br = [ ];
|
br = [ ];
|
||||||
bmenu = [
|
bmenu = [
|
||||||
bemenu
|
bemenu
|
||||||
|
|
25
switch
25
switch
|
@ -1,12 +1,25 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
nix fmt
|
nix fmt
|
||||||
|
|
||||||
git --no-pager diff
|
git --no-pager diff
|
||||||
|
|
||||||
nixos-rebuild \
|
run() {
|
||||||
switch \
|
nixos-rebuild \
|
||||||
--use-remote-sudo \
|
switch \
|
||||||
--print-build-logs \
|
--use-remote-sudo \
|
||||||
--flake .# \
|
--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
|
usbutils
|
||||||
# dracula-theme # gtk theme
|
# dracula-theme # gtk theme
|
||||||
adwaita-icon-theme # default gnome cursors
|
adwaita-icon-theme # default gnome cursors
|
||||||
|
|
||||||
|
nix-output-monitor
|
||||||
];
|
];
|
||||||
|
|
||||||
services.geoclue2.enable = true;
|
services.geoclue2.enable = true;
|
||||||
|
|
Loading…
Reference in a new issue