From 385e82bab858cccdacd6c64d8c3a38dc53e458b5 Mon Sep 17 00:00:00 2001 From: Siarhei Siniak Date: Mon, 31 Mar 2025 17:02:43 +0300 Subject: [PATCH] [+] add dotfiles for platform macbook air 2018 --- Makefile | 9 ++ .../system/online.fxreader.pr34.udev@.service | 6 ++ .../etc/udev/rules.d/40-leds.rules | 13 +++ .../usr/local/bin/online-fxreader-pr34-udev | 91 +++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 platform_dotfiles/macbook_air_2018/etc/systemd/system/online.fxreader.pr34.udev@.service create mode 100644 platform_dotfiles/macbook_air_2018/etc/udev/rules.d/40-leds.rules create mode 100755 platform_dotfiles/macbook_air_2018/usr/local/bin/online-fxreader-pr34-udev diff --git a/Makefile b/Makefile index 7e78b5e..ce2b9ba 100644 --- a/Makefile +++ b/Makefile @@ -82,6 +82,15 @@ dotfiles_put: done #commands install -f -p dotfiles -s dotfiles/ -t ~/.config/ +PLATFORM ?= macbook_air_2012 + +dotfiles_put_platform: + @echo to be installed + find platform_dotfiles/$(PLATFORM); + sudo cp -rp -T platform_dotfiles/$(PLATFORM)/ / + sudo udevadm control --reload + sudo systemctl daemon-reload + dotfiles_fetch: commands install -f -p ~ -s ~/.config/katerc -t dotfiles commands install -f -p ~ -s ~/.mime.types -t dotfiles diff --git a/platform_dotfiles/macbook_air_2018/etc/systemd/system/online.fxreader.pr34.udev@.service b/platform_dotfiles/macbook_air_2018/etc/systemd/system/online.fxreader.pr34.udev@.service new file mode 100644 index 0000000..2f71f97 --- /dev/null +++ b/platform_dotfiles/macbook_air_2018/etc/systemd/system/online.fxreader.pr34.udev@.service @@ -0,0 +1,6 @@ +[Unit] +Description=udev scripts + +[Service] +Type=simple +ExecStart=/usr/local/bin/online-fxreader-pr34-udev --device=%I diff --git a/platform_dotfiles/macbook_air_2018/etc/udev/rules.d/40-leds.rules b/platform_dotfiles/macbook_air_2018/etc/udev/rules.d/40-leds.rules new file mode 100644 index 0000000..d436a5a --- /dev/null +++ b/platform_dotfiles/macbook_air_2018/etc/udev/rules.d/40-leds.rules @@ -0,0 +1,13 @@ +ACTION=="add|change", SUBSYSTEM=="leds", DEVPATH=="/devices/pci0000:00/0000:00:1b.0/hdaudioC0D0/leds/hda::mute", RUN{program}+="/usr/bin/chmod 666 /sys$devpath/brightness" +ACTION=="add|change", SUBSYSTEM=="leds", DEVPATH=="/devices/platform/applesmc.768/leds/smc::kbd_backlight", RUN{program}+="/usr/bin/chmod 666 /sys$devpath/brightness" +# udevadm info --attribute-walk --path=/sys/devices/platform/applesmc.768/ +# udevadm trigger --action=add --verbose --parent-match /devices/platform/applesmc.768/ +#ACTION=="add|change", KERNEL=="applesmc.768", SUBSYSTEM=="platform", DRIVER=="applesmc", RUN{program}+="ls -allh /sys$devpath/", OPTIONS="log_level=debug" +#ACTION=="add|change", KERNEL=="applesmc.768", SUBSYSTEM=="platform", DRIVER=="applesmc", RUN{program}+="/usr/bin/ls -allh /sys$devpath/", OPTIONS="log_level=debug" +#ACTION=="add|change", KERNEL=="applesmc.768", SUBSYSTEM=="platform", DRIVER=="applesmc", TAG+="systemd", ENV{SYSTEMD_WANTS}="online.fxreader.pr34.udev@$devnode.service", OPTIONS="log_level=debug" +ACTION=="add|change", KERNEL=="cpu0", SUBSYSTEM=="cpu", TAG+="systemd", ENV{SYSTEMD_WANTS}="online.fxreader.pr34.udev@$devnode.service", OPTIONS="log_level=debug" +#KERNEL=="applesmc.768", SUBSYSTEM=="platform", DRIVER=="applesmc", MODE="0660", TAG+="uaccess", OPTIONS="log_level=debug", OPTIONS+="watch" +ACTION=="add|change", DEVPATH=="/class/backlight/intel_backlight", RUN{program}+="/usr/bin/chmod 666 /sys$devpath/brightness" +#ACTION=="add|change", DEVPATH=="/devices/system/cpu/", RUN{program}+="/usr/bin/chmod 666 /sys$devpath/cpufreq/scaling_governor" +ACTION=="add|change", KERNEL=="cpu[0-9]", SUBSYSTEM=="cpu", TAG+="systemd", ENV{SYSTEMD_WANTS}="online.fxreader.pr34.udev@$devnode.service", OPTIONS="log_level=debug" + diff --git a/platform_dotfiles/macbook_air_2018/usr/local/bin/online-fxreader-pr34-udev b/platform_dotfiles/macbook_air_2018/usr/local/bin/online-fxreader-pr34-udev new file mode 100755 index 0000000..683f311 --- /dev/null +++ b/platform_dotfiles/macbook_air_2018/usr/local/bin/online-fxreader-pr34-udev @@ -0,0 +1,91 @@ +#!/usr/bin/python3 + +# vi: filetype=python + +import re +import sys +import os +import subprocess +import argparse +import logging + +from typing import (Any,) + +logger = logging.getLogger(__name__) + + +def run() -> None: + logging.basicConfig(level=logging.INFO) + + parser = argparse.ArgumentParser() + parser.add_argument( + '--device', + ) + + options = parser.parse_args() + + DEVICES : dict[str, Any] = dict( + applesmc=dict( + devpath='sys/devices/platform/applesmc.768', + node='/sys/devices/platform/applesmc.768/fan1_manual', + cmd=r''' + chown root:fan /sys/devices/platform/applesmc.768/fan1_* + chmod g+w /sys/devices/platform/applesmc.768/fan1_* + ''', + ), + intel_pstate=dict( + devpath='sys/devices/system/cpu/cpu0', + node='/sys/devices/system/cpu/intel_pstate/no_turbo', + cmd=r''' + chown root:fan /sys/devices/system/cpu/intel_pstate/no_turbo + chmod g+w /sys/devices/system/cpu/intel_pstate/no_turbo + ''', + ), + governor=dict( + devpath=r'sys/devices/system/cpu/cpu(\d+)', + node=r'/sys/devices/system/cpu/cpufreq/policy{0}/scaling_governor', + cmd=r''' + chown root:fan /sys/devices/system/cpu/cpufreq/policy{0}/scaling_governor + chmod g+w /sys/devices/system/cpu/cpufreq/policy{0}/scaling_governor + ''', + ), + ) + + processed : int = 0 + + logger.info(dict(device=options.device)) + + for k, v in DEVICES.items(): + devpath = re.compile(v['devpath']) + + devpath_m = devpath.match(options.device) + + if devpath_m is None: + continue + + node_2 = v['node'].format(*devpath_m.groups()) + + # logger.info(dict(devpath_m=devpath_m, node=node_2)) + + if not os.path.exists(node_2): + continue + + cmd_2 = v['cmd'].format(*devpath_m.groups()) + + subprocess.check_call(cmd_2, shell=True) + + logger.info(dict( + devpath_m=devpath_m, + node_2=node_2, + cmd_2=cmd_2, + msg='processed', + label=k, + )) + + processed += 1 + + if processed == 0: + raise NotImplementedError + +if __name__ == '__main__': + run()