├── .gitignore ├── .github ├── kernel │ ├── linux-t2 │ ├── linux-t2-lts │ ├── linux-t2-xanmod │ ├── linux-t2-xanmod-lts │ └── copyright ├── FUNDING.yml ├── dependabot.yml ├── patches │ ├── 0001-Add-install-target-to-systemd-service.patch │ └── 0002-Use-older-version-of-cairo.patch ├── workflows │ ├── sign.yml │ ├── firmware.yml │ ├── t2fanrd.yml │ ├── delete.yml │ ├── discord.yml │ ├── linux-t2.yml │ ├── linux-t2-lts.yml │ ├── linux-t2-xanmod.yml │ ├── linux-t2-xanmod-lts.yml │ ├── tiny-dfr.yml │ └── tiny-dfr-adv.yml └── scripts │ └── touchbar ├── Packages.gz ├── apfs-dkms_0.3.9-1_all.deb ├── apple-bce_0.2.2_amd64.deb ├── apple-bce_0.2.3_amd64.deb ├── apple-bce_0.2.4_amd64.deb ├── apple-bce_0.2.5_amd64.deb ├── apple-bce_0.2.7_amd64.deb ├── apple-bce_0.2.8_amd64.deb ├── applesmc-t2_0.1_amd64.deb ├── bcm5974-t2_0.1_amd64.deb ├── t2fanrd_0.1.0-2_amd64.deb ├── apfs-dkms_0.3.10-1_all.deb ├── apfs-dkms_0.3.10-2_all.deb ├── apfs-dkms_0.3.11-1_all.deb ├── apfs-dkms_0.3.11-2_all.deb ├── apfs-dkms_0.3.12-1_all.deb ├── apfs-dkms_0.3.12-2_all.deb ├── apfs-dkms_0.3.12-3_all.deb ├── apfs-dkms_0.3.12-4_all.deb ├── apfs-dkms_0.3.12-5_all.deb ├── apfs-dkms_0.3.12-6_all.deb ├── apfs-dkms_0.3.13-1_all.deb ├── apfs-dkms_0.3.13-2_all.deb ├── apfs-dkms_0.3.13-3_all.deb ├── apfs-dkms_0.3.14-1_all.deb ├── apfs-dkms_0.3.14-2_all.deb ├── apfs-dkms_0.3.15-1_all.deb ├── apfs-dkms_0.3.15-2_all.deb ├── apfs-dkms_0.3.16-1_all.deb ├── apfs-dkms_0.3.16-2_all.deb ├── apfs-dkms_0.3.17-1_all.deb ├── applesmc-t2_0.1.1_amd64.deb ├── applesmc-t2_0.1.2_amd64.deb ├── applesmc-t2_0.1.3_amd64.deb ├── bcm5974-t2_0.1.1_amd64.deb ├── bcm5974-t2_0.1.2_amd64.deb ├── t2.list ├── apple-touchbar_0.1-2_amd64.deb ├── apple-t2-audio-config_0.4_amd64.deb ├── apple-firmware-script_1.4-2_amd64.deb ├── apple-t2-audio-config_0.4.2_amd64.deb ├── t2-apple-audio-dsp-mic_0.1.0_amd64.deb ├── t2-apple-audio-dsp-mic_0.2.0_amd64.deb ├── t2-apple-audio-dsp-mic_0.2.1_amd64.deb ├── t2-apple-audio-dsp-mic_0.3.0_amd64.deb ├── t2-apple-audio-dsp-mic_0.3.1_amd64.deb ├── t2-apple-audio-dsp-mic_0.4.0-1_amd64.deb ├── t2-apple-audio-dsp-speakers161_0.1.0_amd64.deb ├── t2-apple-audio-dsp-speakers161_0.1.2_amd64.deb ├── t2-apple-audio-dsp-speakers161_0.1.3_amd64.deb ├── t2-apple-audio-dsp-speakers161_0.1.4_amd64.deb ├── t2-apple-audio-dsp-speakers161_0.2.0-1_amd64.deb ├── Release.gpg ├── Release ├── InRelease ├── KEY.gpg ├── README.md └── Packages /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_STORE 2 | -------------------------------------------------------------------------------- /.github/kernel/linux-t2: -------------------------------------------------------------------------------- 1 | VERSION=6.18.1 2 | REL=1 3 | -------------------------------------------------------------------------------- /.github/kernel/linux-t2-lts: -------------------------------------------------------------------------------- 1 | VERSION=6.12.62 2 | REL=1 3 | -------------------------------------------------------------------------------- /.github/kernel/linux-t2-xanmod: -------------------------------------------------------------------------------- 1 | VERSION=6.18.1 2 | REL=xanmod1 3 | -------------------------------------------------------------------------------- /.github/kernel/linux-t2-xanmod-lts: -------------------------------------------------------------------------------- 1 | VERSION=6.12.62 2 | REL=xanmod1 3 | -------------------------------------------------------------------------------- /Packages.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/Packages.gz -------------------------------------------------------------------------------- /apfs-dkms_0.3.9-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.9-1_all.deb -------------------------------------------------------------------------------- /apple-bce_0.2.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.2_amd64.deb -------------------------------------------------------------------------------- /apple-bce_0.2.3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.3_amd64.deb -------------------------------------------------------------------------------- /apple-bce_0.2.4_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.4_amd64.deb -------------------------------------------------------------------------------- /apple-bce_0.2.5_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.5_amd64.deb -------------------------------------------------------------------------------- /apple-bce_0.2.7_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.7_amd64.deb -------------------------------------------------------------------------------- /apple-bce_0.2.8_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-bce_0.2.8_amd64.deb -------------------------------------------------------------------------------- /applesmc-t2_0.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/applesmc-t2_0.1_amd64.deb -------------------------------------------------------------------------------- /bcm5974-t2_0.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/bcm5974-t2_0.1_amd64.deb -------------------------------------------------------------------------------- /t2fanrd_0.1.0-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2fanrd_0.1.0-2_amd64.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.10-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.10-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.10-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.10-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.11-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.11-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.11-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.11-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-3_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-3_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-4_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-4_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-5_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-5_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.12-6_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.12-6_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.13-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.13-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.13-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.13-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.13-3_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.13-3_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.14-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.14-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.14-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.14-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.15-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.15-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.15-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.15-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.16-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.16-1_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.16-2_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.16-2_all.deb -------------------------------------------------------------------------------- /apfs-dkms_0.3.17-1_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apfs-dkms_0.3.17-1_all.deb -------------------------------------------------------------------------------- /applesmc-t2_0.1.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/applesmc-t2_0.1.1_amd64.deb -------------------------------------------------------------------------------- /applesmc-t2_0.1.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/applesmc-t2_0.1.2_amd64.deb -------------------------------------------------------------------------------- /applesmc-t2_0.1.3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/applesmc-t2_0.1.3_amd64.deb -------------------------------------------------------------------------------- /bcm5974-t2_0.1.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/bcm5974-t2_0.1.1_amd64.deb -------------------------------------------------------------------------------- /bcm5974-t2_0.1.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/bcm5974-t2_0.1.2_amd64.deb -------------------------------------------------------------------------------- /t2.list: -------------------------------------------------------------------------------- 1 | deb [signed-by=/etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg] https://adityagarg8.github.io/t2-ubuntu-repo ./ 2 | -------------------------------------------------------------------------------- /apple-touchbar_0.1-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-touchbar_0.1-2_amd64.deb -------------------------------------------------------------------------------- /apple-t2-audio-config_0.4_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-t2-audio-config_0.4_amd64.deb -------------------------------------------------------------------------------- /apple-firmware-script_1.4-2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-firmware-script_1.4-2_amd64.deb -------------------------------------------------------------------------------- /apple-t2-audio-config_0.4.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/apple-t2-audio-config_0.4.2_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.1.0_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.1.0_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.2.0_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.2.0_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.2.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.2.1_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.3.0_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.3.0_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.3.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.3.1_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-mic_0.4.0-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-mic_0.4.0-1_amd64.deb -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [AdityaGarg8] 4 | custom: ['https://www.buymeacoffee.com/gargadityav'] 5 | -------------------------------------------------------------------------------- /t2-apple-audio-dsp-speakers161_0.1.0_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-speakers161_0.1.0_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-speakers161_0.1.2_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-speakers161_0.1.2_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-speakers161_0.1.3_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-speakers161_0.1.3_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-speakers161_0.1.4_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-speakers161_0.1.4_amd64.deb -------------------------------------------------------------------------------- /t2-apple-audio-dsp-speakers161_0.2.0-1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdityaGarg8/t2-ubuntu-repo/HEAD/t2-apple-audio-dsp-speakers161_0.2.0-1_amd64.deb -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | -------------------------------------------------------------------------------- /.github/patches/0001-Add-install-target-to-systemd-service.patch: -------------------------------------------------------------------------------- 1 | From 533dc08d72060777c8bb4edb54fa71e427843d54 Mon Sep 17 00:00:00 2001 2 | From: Aditya Garg <85610623+AdityaGarg8@users.noreply.github.com> 3 | Date: Thu, 25 Jul 2024 11:37:06 +0530 4 | Subject: [PATCH 1/2] Add install target to systemd service 5 | 6 | --- 7 | etc/systemd/system/tiny-dfr.service | 3 +++ 8 | 1 file changed, 3 insertions(+) 9 | 10 | diff --git a/etc/systemd/system/tiny-dfr.service b/etc/systemd/system/tiny-dfr.service 11 | index 1a1ae3b..c09fbaf 100644 12 | --- a/etc/systemd/system/tiny-dfr.service 13 | +++ b/etc/systemd/system/tiny-dfr.service 14 | @@ -6,3 +6,6 @@ BindsTo=dev-tiny_dfr_display.device dev-tiny_dfr_backlight.device dev-tiny_dfr_d 15 | [Service] 16 | ExecStart=/usr/bin/tiny-dfr 17 | Restart=always 18 | + 19 | +[Install] 20 | +WantedBy=multi-user.target 21 | -- 22 | 2.32.7 23 | 24 | -------------------------------------------------------------------------------- /Release.gpg: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP SIGNATURE----- 2 | 3 | iQJKBAABCgA0FiEEn5hzpWanPifP8ClP4uSWEUrNv9QFAmlA84QWHGdhcmdhZGl0 4 | eWEwOEBsaXZlLmNvbQAKCRDi5JYRSs2/1DxNEACLpA9/qwgZho08dEBPaT5fWRzJ 5 | 80YBRvQR3Y8Th2yW9nQjN0w+mpgebbtT2OTPde4271gU1GjdWw6/mDpPEHE0fH58 6 | +um/DNrbYBAICvh8the35RAXK/Ci5CoswrIYUYkKFoa01HEvHuK2cWX35dJIK2wr 7 | EF55MK/TVeDfp7u+9QYS5mPBVbOvbevHNIEnHVb9dgXHxxVWSXPIiiJsIus/3l12 8 | n4vAYlg/Tkx/3OpGz3KZjhZ6LpnvcU6831udbdvzOp6LvfEEnG07RR4qxc53MRe6 9 | Um2bJzNDjwALv+uVyETo1CNdcGgQTkKY8UGZcQ0SeSErzqZFOCGAS0I5PTllq6nw 10 | oj8eDEgVlgfW3igHOcMv9mRXydVY4yPl0RRPjMwzC++edN5wtvC5uRriEZzhcbpb 11 | yb0JWT4Emb0rnq+chQYJc11gAehd/wWaGm16Mv4/GqusZOiWwH+zHZq0h4j3bXEy 12 | +F3Q9OtyvNjzN5lkBts9wp/zaOaowWXQNjNXJH949rlcsuVy8z5XjIppHRxH+OPu 13 | MhUdVmSxP1gAipsod8BsNX2mhoIxygqQxYS+eWRkw55mx2QrslT6vAz8yQYGWBPg 14 | YGP4WLrl5gS2QrTSnhB9jt0qoMZoVfiXlxZ40hCY5eb9j/qzyFD3xOASaKqeOxTd 15 | zMhVpRXRoA25d24k1A== 16 | =TW4a 17 | -----END PGP SIGNATURE----- 18 | -------------------------------------------------------------------------------- /.github/patches/0002-Use-older-version-of-cairo.patch: -------------------------------------------------------------------------------- 1 | From 5490718f72e537ee32fb8fba04bc7abd92a8d6a5 Mon Sep 17 00:00:00 2001 2 | From: Aditya Garg <85610623+AdityaGarg8@users.noreply.github.com> 3 | Date: Thu, 25 Jul 2024 11:38:00 +0530 4 | Subject: [PATCH 2/2] Use older version of cairo 5 | 6 | --- 7 | Cargo.toml | 4 ++-- 8 | 1 file changed, 2 insertions(+), 2 deletions(-) 9 | 10 | diff --git a/Cargo.toml b/Cargo.toml 11 | index d52daf6..eacadec 100644 12 | --- a/Cargo.toml 13 | +++ b/Cargo.toml 14 | @@ -10,8 +10,8 @@ repository = "https://github.com/WhatAmISupposedToPutHere/tiny-dfr" 15 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 16 | 17 | [dependencies] 18 | -cairo-rs = { version = "0.18", default-features = false, features = ["freetype"] } 19 | -librsvg = "2.57" 20 | +cairo-rs = { version = "0.17", default-features = false, features = ["freetype"] } 21 | +librsvg = { git = "https://github.com/AdityaGarg8/librsvg.git", rev = "9edf39877e09c72b02ee0b32f0064a8e24fba8da", version = "2.56.4" } 22 | drm = "0.11.1" 23 | anyhow = "1" 24 | input = "0.8" 25 | -- 26 | 2.32.7 27 | 28 | -------------------------------------------------------------------------------- /.github/kernel/copyright: -------------------------------------------------------------------------------- 1 | This is the Debian GNU/Linux prepackaged version of the Linux kernel. 2 | Linux was written by Linus Torvalds 3 | and others. 4 | 5 | This package has additional patches to support Apple T2 Macs. 6 | 7 | This package is maintained by Aditya Garg 8 | 9 | Linux is copyrighted by Linus Torvalds and others. 10 | 11 | This program is free software; you can redistribute it and/or modify 12 | it under the terms of the GNU General Public License as published by 13 | the Free Software Foundation; version 2 dated June, 1991. 14 | 15 | This program is distributed in the hope that it will be useful, 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | GNU General Public License for more details. 19 | 20 | You should have received a copy of the GNU General Public License 21 | along with this program; if not, write to the Free Software 22 | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 23 | 02110-1301, USA. 24 | 25 | On Debian GNU/Linux systems, the complete text of the GNU General 26 | Public License can be found in `/usr/share/common-licenses/GPL'. 27 | -------------------------------------------------------------------------------- /Release: -------------------------------------------------------------------------------- 1 | Date: Tue, 16 Dec 2025 05:52:04 +0000 2 | MD5Sum: 3 | dc6ec812eac51f3957ec8168c3d2119d 20224 Packages 4 | 552985e91cdb3f29aed90da92497c0b4 5771 Packages.gz 5 | aa1a96c1459d45d375a81e821613807f 38 Release 6 | SHA1: 7 | 382f7b9bb50fbbcd56558c94f757780f09cd8aa9 20224 Packages 8 | 0cfcd99bf7f5c7c232bae2d18959ea9eeb28527f 5771 Packages.gz 9 | 231c548ffaf60ca8603944ffb1188b64b9264e6a 38 Release 10 | SHA256: 11 | 52af22171ea5d4475b4021377758c40b2d935b615bd1c26d5975a7379a60bb2c 20224 Packages 12 | 3b50045d9ee8aecb68e00e73d4188d4be25f395499ffe440739a349af446c42f 5771 Packages.gz 13 | ce681fd91fbac0c5844192a71cfa68a1cba715077bacad015b8e3dcf76ec1de9 38 Release 14 | SHA512: 15 | dbd862b7af7636217f9e11b3d546d8948603fb4f7fd8ae5e26c349eacaee9f2d6cdb6fd4ec19f878f2e7f77a582e298031a863827887d3887cd7ee8a04bd6d5f 20224 Packages 16 | ad893c704744e5742ed6239db75e6b267e45c549aafd857fa1562157bae18f544806ea50d84402bba5d856266d88d551ce8534d82265b0a1705b81a6cc14cfd6 5771 Packages.gz 17 | dd7e706807b4cdb8373b405d99a4881606319044f5131aa16f3e9d8854d814f8249e5b8934c2be58712511849314d24925e9741ab580051002b92f97ca3f0922 38 Release 18 | -------------------------------------------------------------------------------- /.github/workflows/sign.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Sign Packages 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Sign-Package: 9 | runs-on: ubuntu-latest 10 | steps: 11 | 12 | - name: 'Checkout Repo' 13 | uses: actions/checkout@v4 14 | with: 15 | persist-credentials: false 16 | fetch-depth: 0 17 | - name: Configure GPG Key 18 | run: | 19 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 20 | env: 21 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 22 | - name: Sign the packages 23 | run: | 24 | cd ${{ github.workspace }} 25 | dpkg-scanpackages --multiversion . > Packages 26 | gzip -k -f Packages 27 | # Release, Release.gpg & InRelease 28 | apt-ftparchive release . > Release 29 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg 30 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease 31 | cd ${{ github.workspace }} 32 | git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" 33 | git config --local user.name "github-actions[bot]" 34 | git commit -m "CI: Sign packages" -a 35 | env: 36 | GPG_SIGNING_EMAIL: ${{ secrets.GPG_SIGNING_EMAIL }} 37 | - name: Push changes to the repo 38 | uses: ad-m/github-push-action@master 39 | with: 40 | github_token: ${{ secrets.GITHUB_TOKEN }} 41 | branch: ${{ github.ref }} 42 | -------------------------------------------------------------------------------- /InRelease: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP SIGNED MESSAGE----- 2 | Hash: SHA512 3 | 4 | Date: Tue, 16 Dec 2025 05:52:04 +0000 5 | MD5Sum: 6 | dc6ec812eac51f3957ec8168c3d2119d 20224 Packages 7 | 552985e91cdb3f29aed90da92497c0b4 5771 Packages.gz 8 | aa1a96c1459d45d375a81e821613807f 38 Release 9 | SHA1: 10 | 382f7b9bb50fbbcd56558c94f757780f09cd8aa9 20224 Packages 11 | 0cfcd99bf7f5c7c232bae2d18959ea9eeb28527f 5771 Packages.gz 12 | 231c548ffaf60ca8603944ffb1188b64b9264e6a 38 Release 13 | SHA256: 14 | 52af22171ea5d4475b4021377758c40b2d935b615bd1c26d5975a7379a60bb2c 20224 Packages 15 | 3b50045d9ee8aecb68e00e73d4188d4be25f395499ffe440739a349af446c42f 5771 Packages.gz 16 | ce681fd91fbac0c5844192a71cfa68a1cba715077bacad015b8e3dcf76ec1de9 38 Release 17 | SHA512: 18 | dbd862b7af7636217f9e11b3d546d8948603fb4f7fd8ae5e26c349eacaee9f2d6cdb6fd4ec19f878f2e7f77a582e298031a863827887d3887cd7ee8a04bd6d5f 20224 Packages 19 | ad893c704744e5742ed6239db75e6b267e45c549aafd857fa1562157bae18f544806ea50d84402bba5d856266d88d551ce8534d82265b0a1705b81a6cc14cfd6 5771 Packages.gz 20 | dd7e706807b4cdb8373b405d99a4881606319044f5131aa16f3e9d8854d814f8249e5b8934c2be58712511849314d24925e9741ab580051002b92f97ca3f0922 38 Release 21 | -----BEGIN PGP SIGNATURE----- 22 | 23 | iQJKBAEBCgA0FiEEn5hzpWanPifP8ClP4uSWEUrNv9QFAmlA84QWHGdhcmdhZGl0 24 | eWEwOEBsaXZlLmNvbQAKCRDi5JYRSs2/1BcID/0bdwtQCd/icXV6XqX9bIrMCUgZ 25 | KEFkasrZZ4es0qTrsXXt++Ulj09H2USQQv313DseSRWrAphJVG4POwYGq8O9DQGU 26 | 5MD5QphQJOeAOBCw9SKQ0FiJvLeDszz+5jSU7l0b8tlbL4JTUzrZ/buvCQjzQgVG 27 | cUBLyNgAMXJxrtL975FxDdDLXs++ojEDZVC35bwzxp41Y6jP4vXO2yk757sdy1T6 28 | QWhSBQEcwUi7dmrfyGo1GUI3BOaf04cOTEpBBGEhw40NlZZVj+UzWTpNv48TKP0g 29 | mdRhEgYYlQ5L1CWNIzzQL4NdpG2aPEtfbwgXRz5Va/m35UT2wHgPRX7zrBmPk4at 30 | rHKW5U3sOs+ZyzLWi9tBHiuYqj2x2ZgFmKEkV7yesDM+YclK+cTIzJv3nLMMOjMg 31 | rSoH9s8+Mw4xNPIYE1PFWBCw7f3YjEh/wsbea0lk8z74Ca/jB/coXDk1PYRgneO4 32 | TeFs6kSFIa/kT3sCqRCwNxI9EM0b6Sqnv+K2+m2pMRq/sT8y4ksckuR4Is5HEpNS 33 | Nmck2AdsYC4vN2x/2jTvE7E0/4UnjT6s7obD40jWqphkfkX0PnmNAExxGMiY63d0 34 | bpLPBsg8AdVkrNJhka7Q4lidP25uC5ssE9ZdacbWiEtsl51SOv2LHwadofVysXlM 35 | 0qLMSRLcL6uGCnzbuQ== 36 | =T+a+ 37 | -----END PGP SIGNATURE----- 38 | -------------------------------------------------------------------------------- /.github/workflows/firmware.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Create apple-firmware-script package 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Publish: 9 | runs-on: ubuntu-22.04 10 | steps: 11 | 12 | - name: 'Checkout Repo' 13 | uses: actions/checkout@v4 14 | with: 15 | persist-credentials: false 16 | fetch-depth: 0 17 | - name: Configure GPG Key 18 | run: | 19 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 20 | env: 21 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 22 | 23 | - name: Get the source code 24 | id: publish 25 | run: | 26 | LINK=https://wiki.t2linux.org/tools/firmware.sh 27 | VERSION=1.4-2 28 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" 29 | git config --global user.name "github-actions[bot]" 30 | mkdir -p fw/DEBIAN 31 | mkdir -p fw/usr/bin 32 | cd ${{ github.workspace }}/fw/usr/bin 33 | curl -o get-apple-firmware ${LINK} 34 | sudo chmod a+x get-apple-firmware 35 | cd ${{ github.workspace }}/fw/DEBIAN 36 | 37 | echo "Package: apple-firmware-script" > control 38 | echo "Version: ${VERSION}" >> control 39 | echo "Maintainer: Aditya Garg" >> control 40 | echo "Architecture: amd64" >> control 41 | echo "Description: Script to get Wi-Fi and Bluetooth firmware from macOS" >> control 42 | echo "Depends: python3" >> control 43 | 44 | cd ${{ github.workspace }} 45 | dpkg-deb --build --root-owner-group -Zgzip fw 46 | 47 | # Packages & Packages.gz 48 | rm -v ./apple-firmware-script*.deb || true 49 | dpkg-name ./fw.deb 50 | dpkg-scanpackages --multiversion . > Packages 51 | gzip -k -f Packages 52 | # Release, Release.gpg & InRelease 53 | apt-ftparchive release . > Release 54 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg 55 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease 56 | rm -r ./fw 57 | git add . 58 | git commit -m "Update apple-firmware-script to ${VERSION}" 59 | env: 60 | GPG_SIGNING_EMAIL: ${{ secrets.GPG_SIGNING_EMAIL }} 61 | - name: Push changes to the repo 62 | uses: ad-m/github-push-action@master 63 | with: 64 | github_token: ${{ secrets.GITHUB_TOKEN }} 65 | branch: ${{ github.ref }} 66 | -------------------------------------------------------------------------------- /KEY.gpg: -------------------------------------------------------------------------------- 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- 2 | 3 | mQINBGMwZZsBEAC24DoQZUnS8CcLq8BO0zz5C5KEV+buQdd8CI4fACtMgeerOd3+ 4 | d2ScDMOx/xUlg3pY0832ReRQVT8nmr3hczHxKfulwMkCTQfqjUsx0TdMxEI5Ncpf 5 | gBxAhd944iBuvJGjrjDhPcYmrA+2YYhEkbnBh3JvsnfZ+dttqQ/L+rntinbpxHjy 6 | sc12RXc/636wiwRAs4PoS/lM4Y9UcmMgyNUVx2Ko8El+YBGArG3IoA/LbHQsfQkX 7 | aenmHBtHZhxh6aNbf7o3pikrEsctYigguDKuz50rFUXYS6OnKxF0kV51JD7xIaB7 8 | FIQ6io4qRqxs//9uHuvsFaxa352NSxSXXzb+2gJ6iE2z9QoNLOBbL16vO4cqZfcm 9 | UHUu7ptcferKwx+wZNc7pgyGYncxBF54+RKO89pW2jMn7BCbe/XHzK3GTigY5ljW 10 | NjCjIZC4/fNsdFrTlSUmFyTexWe03810jzkKm8u3oReAeLiLtPeI2DtYtMmAQ1tP 11 | 8WxXdUBUcEq82eV9WASK52OBkTkegLEEfrnfKQPmoa5AwrJT4IcJKePoDaelSOmG 12 | 123p/iuSdnYt1Vsrs9sOkvgZthPbwWhO6+q1LRH9kxRf4LYwigkcVMWO17dTincU 13 | jZyspfY2lcKWWk/zMTP1vzO5oAGtz+j4QTwtNk3Qj/4Tdsbi7Y6ubDD9WQARAQAB 14 | tCNBZGl0eWEgR2FyZyA8Z2FyZ2FkaXR5YTA4QGxpdmUuY29tPokCTgQTAQoAOBYh 15 | BJ+Yc6Vmpz4nz/ApT+LklhFKzb/UBQJjMGWbAhsDBQsJCAcCBhUKCQgLAgQWAgMB 16 | Ah4BAheAAAoJEOLklhFKzb/UApYQALQUmZOVehSN3u6dDsoIsI5dGuvV0qPeP/iS 17 | dQ/G9ZS30KcMxtQcz4xQWkCLE+Aq6QWzctJid8Azbv7JwKS2o/NchvuynOT3bY7q 18 | wiK1QrYGc4XmJ9MCj2tWG3xBf9ZOtXV5J2Cpto/zd0KFNuBrX7Vb6DZDo6X9LNl2 19 | J3SuJ4tQOSIqaYJjLdmbHFaS3JHnQ8nEmMateZbxnc32KMXOMHweNha/mKAqor4R 20 | 1bEff/T64SVpEWCAdK74kUNxS1QKNhKwsQo8peVammeXGXVj+iXcOsn2IyYscmiA 21 | n2oRfOR+cJhDwjnpCyL8+py8jPu1Vv62IpOFPsu1o6nii7sph8GBSHK2DvEJ7Fb3 22 | SjDbm0ok7RApFPqkOx51HVHzFrq97fnmXDp5QHLiPZKbCflI2u/icOo0v3A9PJCd 23 | 87KSRF95P5KAhRmn8c9u7RPC1LLj8mzN10qw/gkQOfBfXm+sexDsAEwJ981a7O// 24 | mgrx0Cxl4jOaCPL6w8T/SMHmkJCd6m1tm2FuQpeyAgzAJDCvUcboYoF/ok+soi5A 25 | vHlstviKkWbC6dzObsvAb667Ag0wNxthkM0Toe5dbvUCeI0UJz/tNkDa87xno9Wm 26 | szCE0RwLf/OhVwxlwWU3Qb7lCtPZ4CBCr1tCiAZMLJ9Y+IU1w1TTQhZ2l57UNFBT 27 | PsVBTd1HuQINBGMwZZsBEADNEyCz9DH3nW/+EZtGNgJgy1mNXmSkEsC50YbX5CHR 28 | CCR0aBSplVBQ6TKdDp27FhR5TKpW9b4n6LQIjMSTsWYATTnU8MgC2tEp8XkJ/Dmg 29 | iuVCfYiSSFYuTavCFn5ecZNx4XPs9F2hEjEZMMbvY1DOPj8uSKx3yJtsZk5C613Z 30 | 01HfDGkaO9aguLophkmaHCuoAjMpmJQd8UNrC/5gSm3/YG8GAsXlF39IY/H0L/UT 31 | 6Kj+ip6/Xtvy0t/HqQIpPyaLxb77uddWpkI4miwC0rXKI5q7CWOqC3xlrTglRrQR 32 | KZSdWs5oRYYQvnaEtKaUkWGTI418lZFrYIZmKiOOjuZ4ac4AERvV+goVNcZpBiCp 33 | IS6J/Uj/9TqmMGb2tdWLczokT5+4RXyQ0R6sFlZdUYiq5FAUSuLmEkO3QTRKfvWE 34 | 1j9lGAWT6ZOhE9fImHoPJWM4Ge1ZTYn2LBfIQLeeZmRAzCtOvukOSMksy6wBNIIs 35 | ad1Rab2JX4ioolKXgIElBxwp8dupjdZ8AJrvUTX5HRN2Fyzk/XvnzJFojNrBHF1x 36 | W3ObMQmWLKXBhmQF+uoQZgGAIvspVsJlQJRsMkwf0vfJr7XhvNiMdqI1EuOfTRFv 37 | MeyrpUdUTFZMIl3kV5CAG61tp2cqN1BUS9M/3QrU3xZ+cOZoWcQJa7oRXA/9wEkz 38 | fwARAQABiQI2BBgBCgAgFiEEn5hzpWanPifP8ClP4uSWEUrNv9QFAmMwZZsCGwwA 39 | CgkQ4uSWEUrNv9Rr5w/+IDhVKSog6ZKU6ZR89gOVH3YSHNkiyO1pVhdwKhLTYEG7 40 | xi2mRM7ukybrQzHf7HotOAX+HFrE8Bk1/h5qRnuK/aQPM+BGkulzQkdS1/AUh07x 41 | gQ5CrxOCgNvYD47/7ounGw1/QU6if4c5VUIzkQjji15oAvS0uJqZPB8x2ak7rlh6 42 | OnYzvJYJmCqPm04+PaynV6Isftex6gW9KzU/BhPMIbr7iMlKnYFdezHxx5Vv86al 43 | kMugG/M5U1BNsv+jbeVmLEY+jw/FLohBegSp/qLqz4HVth8ROgfaDzmGHowkuWdc 44 | TaZMYHRKDwjDSGeAITt7TyuU9xLHJivyLIh6B1E4A18yPU0/Fv3cQ1fipu4hO263 45 | CmzeHEbCgYoAfZejqL9GfjqSfRgkgrS8Uex7fid8yMne8PEcSApYExhKCNs4D0zv 46 | H6QAL+rQ550x/RyCbceQK8UQ+VYuGyM+2+ZH0xsWLmnOVZHLYCYffITgJRzGKUYm 47 | XY5ndOGlRqW5RDS9m9gO1TZj4X0AN+3Z0SvPYY88zhpMBcyaNkT1W/TyPLbGy/V0 48 | nIK4XoKBmA+aUlRibkZeW315lIY5h59J5o1STBy+u0m6+gxfEpQW4vSPUAxRrE5Z 49 | 1cXdmtKFLkYj2IDYw1uxn7yQqKbiKKyG4R2/bWAUw9o92iSxzmfDMUFbfuYbjdU= 50 | =cNRf 51 | -----END PGP PUBLIC KEY BLOCK----- 52 | -------------------------------------------------------------------------------- /.github/workflows/t2fanrd.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Create t2fanrd package 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Publish: 9 | runs-on: ubuntu-22.04 10 | steps: 11 | 12 | - name: 'Checkout Repo' 13 | uses: actions/checkout@v4 14 | with: 15 | persist-credentials: false 16 | fetch-depth: 0 17 | - name: Configure GPG Key 18 | run: | 19 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 20 | env: 21 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 22 | 23 | - name: Get the source code 24 | id: publish 25 | run: | 26 | REPO=https://github.com/GnomedDev/T2FanRD.git 27 | COMMIT_HASH=85027878e4d7fa0170fea1213d6f8dd972d60e83 28 | VERSION=0.1.0-2 29 | #curl -s --compressed "https://adityagarg8.github.io/t2-ubuntu-repo/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg >/dev/null 30 | #sudo curl -s --compressed -o /etc/apt/sources.list.d/t2.list "https://adityagarg8.github.io/t2-ubuntu-repo/t2.list" 31 | sudo apt update -y 32 | #sudo apt upgrade -y 33 | sudo apt-get install -y cargo 34 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" 35 | git config --global user.name "github-actions[bot]" 36 | git clone ${REPO} 37 | cd T2FanRD 38 | git checkout ${COMMIT_HASH} 39 | cargo b --release 40 | mkdir deb 41 | cd deb 42 | mkdir usr 43 | cd usr 44 | mkdir bin 45 | cd .. 46 | cd .. 47 | mkdir -p ./etc/systemd/system 48 | wget https://raw.githubusercontent.com/t2linux/fedora/main/t2fanrd/t2fanrd.service 49 | cp ./t2fanrd.service ./etc/systemd/system/t2fanrd.service 50 | cp -r ./etc ./deb 51 | cp ./target/release/t2fanrd ./deb/usr/bin 52 | chmod a+x ./deb/usr/bin/t2fanrd 53 | cd deb 54 | mkdir DEBIAN 55 | cd DEBIAN 56 | 57 | echo "Package: t2fanrd" > control 58 | echo "Version: ${VERSION}" >> control 59 | echo "Maintainer: Aditya Garg" >> control 60 | echo "Architecture: amd64" >> control 61 | echo "Description: Fan Daemon for T2 Macs" >> control 62 | echo "Depends: systemd" >> control 63 | 64 | echo "chmod a+x /etc/systemd/system/t2fanrd.service" > postinst 65 | echo "chmod a+x /usr/bin/t2fanrd" >> postinst 66 | echo "systemctl enable --now t2fanrd.service" >> postinst 67 | 68 | echo "systemctl disable --now t2fanrd.service" > prerm 69 | 70 | chmod 755 ./postinst 71 | chmod 755 ./prerm 72 | 73 | cd ${{ github.workspace }}/T2FanRD 74 | dpkg-deb --build --root-owner-group -Zgzip deb 75 | 76 | mv ./deb.deb ${{ github.workspace }} 77 | cd ${{ github.workspace }} 78 | # Packages & Packages.gz 79 | rm ./t2fanrd*.deb || true 80 | dpkg-name ./deb.deb 81 | dpkg-scanpackages --multiversion . > Packages 82 | gzip -k -f Packages 83 | # Release, Release.gpg & InRelease 84 | apt-ftparchive release . > Release 85 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg 86 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease 87 | cd ${{ github.workspace }} 88 | rm -r ./T2FanRD 89 | git add . 90 | git commit -m "Update t2fanrd to ${VERSION}" 91 | env: 92 | GPG_SIGNING_EMAIL: ${{ secrets.GPG_SIGNING_EMAIL }} 93 | - name: Push changes to the repo 94 | uses: ad-m/github-push-action@master 95 | with: 96 | github_token: ${{ secrets.GITHUB_TOKEN }} 97 | branch: ${{ github.ref }} 98 | -------------------------------------------------------------------------------- /.github/workflows/delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Remove all releases 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Cleanup: 9 | runs-on: ubuntu-latest 10 | steps: 11 | 12 | - name: 'Checkout Repo' 13 | uses: actions/checkout@v4 14 | with: 15 | persist-credentials: false 16 | fetch-depth: 0 17 | 18 | - uses: larryjoelane/delete-release-action@v1.0.24 19 | with: 20 | release-name: 'jammy' 21 | token: ${{ secrets.GITHUB_TOKEN }} 22 | 23 | - name: Release 24 | uses: softprops/action-gh-release@v2 25 | with: 26 | files: | 27 | ${{ github.workspace }}/KEY.gpg 28 | tag_name: jammy 29 | body: Apt repo for Ubuntu 22.04 Jammy Jellyfish 30 | draft: false 31 | env: 32 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 33 | 34 | - uses: larryjoelane/delete-release-action@v1.0.24 35 | with: 36 | release-name: 'noble' 37 | token: ${{ secrets.GITHUB_TOKEN }} 38 | 39 | - name: Release 40 | uses: softprops/action-gh-release@v2 41 | with: 42 | files: | 43 | ${{ github.workspace }}/KEY.gpg 44 | tag_name: noble 45 | body: Apt repo for Ubuntu 24.04 Noble Numbat 46 | draft: false 47 | env: 48 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 49 | 50 | - uses: larryjoelane/delete-release-action@v1.0.24 51 | with: 52 | release-name: 'plucky' 53 | token: ${{ secrets.GITHUB_TOKEN }} 54 | 55 | - name: Release 56 | uses: softprops/action-gh-release@v2 57 | with: 58 | files: | 59 | ${{ github.workspace }}/KEY.gpg 60 | tag_name: plucky 61 | body: Apt repo for Ubuntu 25.04 Plucky Puffin 62 | draft: false 63 | env: 64 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 65 | 66 | - uses: larryjoelane/delete-release-action@v1.0.24 67 | with: 68 | release-name: 'questing' 69 | token: ${{ secrets.GITHUB_TOKEN }} 70 | 71 | - name: Release 72 | uses: softprops/action-gh-release@v2 73 | with: 74 | files: | 75 | ${{ github.workspace }}/KEY.gpg 76 | tag_name: questing 77 | body: Apt repo for Ubuntu 25.10 Questing Quokka 78 | draft: false 79 | env: 80 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 81 | 82 | - uses: larryjoelane/delete-release-action@v1.0.24 83 | with: 84 | release-name: 'bookworm' 85 | token: ${{ secrets.GITHUB_TOKEN }} 86 | 87 | - name: Release 88 | uses: softprops/action-gh-release@v2 89 | with: 90 | files: | 91 | ${{ github.workspace }}/KEY.gpg 92 | tag_name: bookworm 93 | body: Apt repo for Debian 12 Bookworm 94 | draft: false 95 | env: 96 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 97 | 98 | - uses: larryjoelane/delete-release-action@v1.0.24 99 | with: 100 | release-name: 'trixie' 101 | token: ${{ secrets.GITHUB_TOKEN }} 102 | 103 | - name: Release 104 | uses: softprops/action-gh-release@v2 105 | with: 106 | files: | 107 | ${{ github.workspace }}/KEY.gpg 108 | tag_name: trixie 109 | body: Apt repo for Debian 13 Trixie 110 | draft: false 111 | env: 112 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 113 | 114 | - uses: larryjoelane/delete-release-action@v1.0.24 115 | with: 116 | release-name: 'testing' 117 | token: ${{ secrets.GITHUB_TOKEN }} 118 | 119 | - name: Release 120 | uses: softprops/action-gh-release@v2 121 | with: 122 | files: | 123 | ${{ github.workspace }}/KEY.gpg 124 | tag_name: testing 125 | body: Apt repo for Debian Testing 126 | draft: false 127 | env: 128 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 129 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # APT repository for T2 Macs 2 | 3 | This GitHub repository has various apt repos, that can roughly be classified into 2 types: 4 | 5 | 1. A **common apt repo** having packages for **Debian** and **Ubuntu**. 6 | 2. **Release specific repo** for **Debian** and **Ubuntu** 7 | 8 | ## Adding the Common apt repo 9 | 10 | You have to add the **common apt repo** irrespective of whether you are using Debian or Ubuntu. Run the following to add this repo: 11 | 12 | ```bash 13 | curl -s --compressed "https://adityagarg8.github.io/t2-ubuntu-repo/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg >/dev/null 14 | sudo curl -s --compressed -o /etc/apt/sources.list.d/t2.list "https://adityagarg8.github.io/t2-ubuntu-repo/t2.list" 15 | sudo apt update 16 | ``` 17 | 18 | ## Adding the Release specific apt repo 19 | 20 | Now after you have added the common apt repo, you additionally have to add a **release specific repo** for kernel updates and `tiny-dfr`. Follow the steps below: 21 | 22 | 1. Identify your release codename. It is: 23 | 24 | a) `jammy` for **Ubuntu 22.04** 25 | 26 | b) `noble` for **Ubuntu 24.04** 27 | 28 | c) `plucky` for **Ubuntu 25.04** 29 | 30 | d) `questing` for **Ubuntu 25.10** 31 | 32 | e) `bookworm` for **Debian 12** 33 | 34 | f) `trixie` for **Debian 13** 35 | 36 | g) `testing` for **Debian testing** 37 | 38 | 3. Run the following (taking `noble` as the example, just replace it with your release codename in the first line): 39 | 40 | ```bash 41 | CODENAME=noble 42 | echo "deb [signed-by=/etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg] https://github.com/AdityaGarg8/t2-ubuntu-repo/releases/download/${CODENAME} ./" | sudo tee -a /etc/apt/sources.list.d/t2.list 43 | sudo apt update 44 | ``` 45 | 46 | **Note: You will have to add the release specific apt repo again whenever you upgrade Ubuntu/Debian to a newer release.** 47 | 48 | You should be then be able to install and update the following packages with `apt`. 49 | 50 | **WARNING** :- **apple-bce**, **apple-touchbar**, **applesmc-t2**, **apfs-dkms** and **bcm5974-t2** packages should NOT be installed if installing the `linux-t2` or `linux-t2-lts` package, as t2 kernels have these drivers built in. 51 | 52 | - **apple-bce**: Exposes Keyboard, Camera, Touchbar, etc as USB devices. Also does audio. (DO NOT USE IF INSTALLING `linux-t2`, `linux-t2-lts`, `linux-t2-xanmod` or `linux-t2-xanmod-lts`) 53 | - **apple-touchbar**: Driver for touchbar and keyboard backlight on T2 Macs. (DO NOT USE IF INSTALLING `linux-t2`, `linux-t2-lts`, `linux-t2-xanmod` or `linux-t2-xanmod-lts`) 54 | - **applesmc-t2**: Driver for the System Management Controller on T2 Macs. (DO NOT USE IF INSTALLING `linux-t2`, `linux-t2-lts`, `linux-t2-xanmod` or `linux-t2-xanmod-lts`) 55 | - **apple-t2-audio-config**: Audio config files for the audio device apple-bce has. 56 | - **apple-firmware-script**: Debian package for the [script](https://wiki.t2linux.org/tools/firmware.sh) to get Wi-Fi and Bluetooth firmware from macOS. Run using `get-wifi-firmware`. 57 | - **apfs-dkms**: Debian package for the [linux-apfs-rw](https://github.com/linux-apfs/linux-apfs-rw) driver. (DO NOT USE IF INSTALLING `linux-t2`, `linux-t2-lts`, `linux-t2-xanmod` or `linux-t2-xanmod-lts`) 58 | - **bcm5974-t2**: Driver for trackpad gestures. (DO NOT USE IF INSTALLING `linux-t2` or `linux-t2-lts`) 59 | - **linux-t2**: Kernel package for Mainline kernels. 60 | - **linux-t2-lts**: Kernel package for LTS kernels. 61 | - **linux-t2-xanmod**: Kernel package for Mainline [Xanmod](https://xanmod.org/) kernels. 62 | - **linux-t2-xanmod-lts**: Kernel package for LTS [Xanmod](https://xanmod.org/) kernels. 63 | - **t2fanrd**: Daemon to control fan speed on T2 Macs. For configuration instructions, refer to [this page](https://github.com/GnomedDev/T2FanRD). 64 | - **t2-apple-audio-dsp-mic**: Mic configuration files for T2 Macs. 65 | - **t2-apple-audio-dsp-speakers161**: Pipewire filterchain configuration files for Macbook Pro 16 inch, 2019 66 | - **tiny-dfr**: Function row daemon for touchbar on Macs 67 | 68 | ## Donate 69 | 70 | If you've really loved the work I've done so far for T2 Macs, and wanna help me out financially, you can donate me (AdityaGarg8) by following the instructions given [here](https://wiki.t2linux.org/contribute/#support-our-maintainers). 71 | -------------------------------------------------------------------------------- /.github/workflows/discord.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Discord 3 | 4 | on: 5 | schedule: 6 | - cron: "0 */6 * * *" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | Release_Discord: 11 | strategy: 12 | matrix: 13 | target: 14 | - image: ubuntu 15 | tag: "22.04" 16 | name: jammy 17 | - image: ubuntu 18 | tag: "24.04" 19 | name: noble 20 | - image: ubuntu 21 | tag: "25.04" 22 | name: plucky 23 | - image: ubuntu 24 | tag: "25.10" 25 | name: questing 26 | - image: debian 27 | tag: "12" 28 | name: bookworm 29 | - image: debian 30 | tag: "trixie" 31 | name: trixie 32 | - image: debian 33 | tag: testing 34 | name: testing 35 | runs-on: ubuntu-latest 36 | steps: 37 | - name: "Checkout Repo" 38 | uses: actions/checkout@v4 39 | with: 40 | persist-credentials: false 41 | fetch-depth: 0 42 | - name: Configure GPG Key 43 | run: | 44 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 45 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 46 | env: 47 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 48 | 49 | - name: Download Discord 50 | id: publish 51 | run: | 52 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 53 | docker pull ${DOCKER_IMAGE} 54 | docker run \ 55 | -e GH_TOKEN=${{ secrets.GITHUB_TOKEN }} \ 56 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 57 | -t \ 58 | -v "$(pwd)":/repo \ 59 | ${DOCKER_IMAGE} \ 60 | /bin/bash -c 'apt-get update && \ 61 | DEBIAN_FRONTEND=noninteractive apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" wget git gpg apt-utils dpkg-dev python3 python3-pip python3-requests && \ 62 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 63 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 64 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 65 | && apt-get update \ 66 | && apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" gh && \ 67 | cat /repo/key | gpg --import && \ 68 | echo "import requests" > download_discord.py && \ 69 | echo "" >> download_discord.py && \ 70 | echo "url = \"https://discord.com/api/download?platform=linux&format=deb\"" >> download_discord.py && \ 71 | echo "file_name = \"discord.deb\"" >> download_discord.py && \ 72 | echo "" >> download_discord.py && \ 73 | echo "response = requests.get(url)" >> download_discord.py && \ 74 | echo "" >> download_discord.py && \ 75 | echo "if response.status_code == 200:" >> download_discord.py && \ 76 | echo " with open(file_name, \"wb\") as file:" >> download_discord.py && \ 77 | echo " file.write(response.content)" >> download_discord.py && \ 78 | echo " print(\"File downloaded successfully.\")" >> download_discord.py && \ 79 | echo "else:" >> download_discord.py && \ 80 | echo " print(\"Failed to download file. Status code:\", response.status_code)" >> download_discord.py && \ 81 | python3 ./download_discord.py && \ 82 | 83 | mv ./discord.deb /repo && \ 84 | cd repo && \ 85 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 86 | mv ./discord.deb ./${{ matrix.target.name }} && \ 87 | cd ${{ matrix.target.name }} && \ 88 | dpkg-name ./discord.deb && \ 89 | dpkg-scanpackages --multiversion . > Packages && \ 90 | gzip -k -f Packages && \ 91 | apt-ftparchive release . > Release && \ 92 | gpg --default-key "${{ secrets.GPG_SIGNING_EMAIL }}" -abs -o - Release > Release.gpg && \ 93 | gpg --default-key "${{ secrets.GPG_SIGNING_EMAIL }}" --clearsign -o - Release > InRelease' 94 | 95 | cd ${{ matrix.target.name }} 96 | if [[ $(ls | grep discord.deb) == discord.deb ]] 97 | then 98 | echo "publish=no" >> $GITHUB_ENV 99 | fi 100 | 101 | - name: Release 102 | if: env.publish != 'no' 103 | run: | 104 | gh release upload ${{ matrix.target.name }} ${{ github.workspace }}/${{ matrix.target.name }}/* --clobber -R AdityaGarg8/t2-ubuntu-repo 105 | env: 106 | GH_TOKEN: ${{ secrets.PAT }} 107 | -------------------------------------------------------------------------------- /.github/workflows/linux-t2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Release Kernel - Mainline 3 | 4 | on: 5 | push: 6 | paths: 7 | - ".github/kernel/linux-t2" 8 | workflow_dispatch: 9 | 10 | jobs: 11 | Release-Mainline-Kernel: 12 | strategy: 13 | matrix: 14 | target: 15 | - image: ubuntu 16 | tag: "22.04" 17 | name: jammy 18 | - image: ubuntu 19 | tag: "24.04" 20 | name: noble 21 | - image: ubuntu 22 | tag: "25.04" 23 | name: plucky 24 | - image: ubuntu 25 | tag: "25.10" 26 | name: questing 27 | - image: debian 28 | tag: "12" 29 | name: bookworm 30 | - image: debian 31 | tag: "trixie" 32 | name: trixie 33 | - image: debian 34 | tag: testing 35 | name: testing 36 | runs-on: ubuntu-latest 37 | steps: 38 | - name: "Checkout Repo" 39 | uses: actions/checkout@v4 40 | with: 41 | persist-credentials: false 42 | fetch-depth: 0 43 | - name: Configure GPG Key 44 | run: | 45 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 46 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 47 | env: 48 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 49 | 50 | - name: Release kernel 51 | id: publish 52 | run: | 53 | VERSION=$(cat ${{ github.workspace }}/.github/kernel/linux-t2 | grep "VERSION" | cut -d "=" -f 2) 54 | REL=$(cat ${{ github.workspace }}/.github/kernel/linux-t2 | grep "REL" | cut -d "=" -f 2) 55 | if [[ (${#VERSION} = 3) || (${#VERSION} = 4) ]] 56 | then 57 | KVER=${VERSION}.0 58 | else 59 | KVER=${VERSION} 60 | fi 61 | 62 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 63 | docker pull ${DOCKER_IMAGE} 64 | docker run \ 65 | -e GH_TOKEN=${{ secrets.PAT }} \ 66 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 67 | -e VERSION=${VERSION} \ 68 | -e KVER=${KVER} \ 69 | -e REL=${REL} \ 70 | -t \ 71 | -v "$(pwd)":/repo \ 72 | ${DOCKER_IMAGE} \ 73 | /bin/bash -c 'apt-get update && \ 74 | apt-get install -y wget git gpg apt-utils dpkg-dev lsb-release base-files && \ 75 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 76 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 77 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 78 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 79 | && apt update \ 80 | && apt install gh -y && \ 81 | cat /repo/key | gpg --import && \ 82 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 83 | git config --global user.name "github-actions[bot]" && \ 84 | mkdir deb && \ 85 | cd deb && \ 86 | mkdir usr && \ 87 | cd usr && \ 88 | mkdir share && \ 89 | cd share && \ 90 | mkdir doc && \ 91 | cd doc && \ 92 | mkdir linux-t2 && \ 93 | cp /repo/.github/kernel/copyright ./linux-t2 && \ 94 | cd .. && \ 95 | cd .. && \ 96 | cd .. && \ 97 | mkdir DEBIAN && \ 98 | cd DEBIAN && \ 99 | 100 | echo "Package: linux-t2" > control && \ 101 | echo "Version: ${KVER}-${REL}-${CODENAME}" >> control && \ 102 | echo "Maintainer: Aditya Garg" >> control && \ 103 | echo "Architecture: amd64" >> control && \ 104 | echo "Description: Kernel to support T2 Macs" >> control && \ 105 | echo "Depends: linux-headers-${KVER}-${REL}-t2-${CODENAME} (= ${KVER}-${REL}), linux-image-${KVER}-${REL}-t2-${CODENAME} (= ${KVER}-${REL})" >> control && \ 106 | echo "Conflicts: linux-t2-lts, linux-t2-xanmod, linux-t2-xanmod-lts" >> control && \ 107 | echo "Replaces: linux-t2-lts, linux-t2-xanmod, linux-t2-xanmod-lts" >> control && \ 108 | 109 | cd .. && \ 110 | cd .. && \ 111 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 112 | 113 | mv ./deb.deb /repo && \ 114 | cd /repo && \ 115 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 116 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-headers-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb && \ 117 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-image-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb && \ 118 | mv ./deb.deb ./${{ matrix.target.name }} && \ 119 | mv linux-headers-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 120 | mv linux-image-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 121 | cd ${{ matrix.target.name }} && \ 122 | dpkg-name ./deb.deb && rm ./deb.deb \ 123 | 124 | dpkg-scanpackages --multiversion . > Packages && \ 125 | gzip -k -f Packages && \ 126 | 127 | apt-ftparchive release . > Release && \ 128 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 129 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease && \ 130 | gh release upload ${{ matrix.target.name }} ./* --clobber -R AdityaGarg8/t2-ubuntu-repo' 131 | 132 | cd ${{ github.workspace }} 133 | rm key 134 | -------------------------------------------------------------------------------- /.github/workflows/linux-t2-lts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Release Kernel - LTS 3 | 4 | on: 5 | push: 6 | paths: 7 | - ".github/kernel/linux-t2-lts" 8 | workflow_dispatch: 9 | 10 | jobs: 11 | Release-LTS-Kernel: 12 | strategy: 13 | matrix: 14 | target: 15 | - image: ubuntu 16 | tag: "22.04" 17 | name: jammy 18 | - image: ubuntu 19 | tag: "24.04" 20 | name: noble 21 | - image: ubuntu 22 | tag: "25.04" 23 | name: plucky 24 | - image: ubuntu 25 | tag: "25.10" 26 | name: questing 27 | - image: debian 28 | tag: "12" 29 | name: bookworm 30 | - image: debian 31 | tag: "trixie" 32 | name: trixie 33 | - image: debian 34 | tag: testing 35 | name: testing 36 | runs-on: ubuntu-latest 37 | steps: 38 | - name: "Checkout Repo" 39 | uses: actions/checkout@v4 40 | with: 41 | persist-credentials: false 42 | fetch-depth: 0 43 | - name: Configure GPG Key 44 | run: | 45 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 46 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 47 | env: 48 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 49 | 50 | - name: Release kernel 51 | id: publish 52 | run: | 53 | VERSION=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-lts | grep "VERSION" | cut -d "=" -f 2) 54 | REL=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-lts | grep "REL" | cut -d "=" -f 2) 55 | if [[ (${#VERSION} = 3) || (${#VERSION} = 4) ]] 56 | then 57 | KVER=${VERSION}.0 58 | else 59 | KVER=${VERSION} 60 | fi 61 | 62 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 63 | docker pull ${DOCKER_IMAGE} 64 | docker run \ 65 | -e GH_TOKEN=${{ secrets.PAT }} \ 66 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 67 | -e VERSION=${VERSION} \ 68 | -e KVER=${KVER} \ 69 | -e REL=${REL} \ 70 | -t \ 71 | -v "$(pwd)":/repo \ 72 | ${DOCKER_IMAGE} \ 73 | /bin/bash -c 'apt-get update && \ 74 | apt-get install -y wget git gpg apt-utils dpkg-dev lsb-release base-files && \ 75 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 76 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 77 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 78 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 79 | && apt update \ 80 | && apt install gh -y && \ 81 | cat /repo/key | gpg --import && \ 82 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 83 | git config --global user.name "github-actions[bot]" && \ 84 | mkdir deb && \ 85 | cd deb && \ 86 | mkdir usr && \ 87 | cd usr && \ 88 | mkdir share && \ 89 | cd share && \ 90 | mkdir doc && \ 91 | cd doc && \ 92 | mkdir linux-t2-lts && \ 93 | cp /repo/.github/kernel/copyright ./linux-t2-lts && \ 94 | cd .. && \ 95 | cd .. && \ 96 | cd .. && \ 97 | mkdir DEBIAN && \ 98 | cd DEBIAN && \ 99 | 100 | echo "Package: linux-t2-lts" > control && \ 101 | echo "Version: ${KVER}-${REL}-${CODENAME}" >> control && \ 102 | echo "Maintainer: Aditya Garg" >> control && \ 103 | echo "Architecture: amd64" >> control && \ 104 | echo "Description: Kernel to support T2 Macs" >> control && \ 105 | echo "Depends: linux-headers-${KVER}-${REL}-t2-${CODENAME} (= ${KVER}-${REL}), linux-image-${KVER}-${REL}-t2-${CODENAME} (= ${KVER}-${REL})" >> control && \ 106 | echo "Conflicts: linux-t2-lts, linux-t2-xanmod, linux-t2-xanmod-lts" >> control && \ 107 | echo "Replaces: linux-t2-lts, linux-t2-xanmod, linux-t2-xanmod-lts" >> control && \ 108 | 109 | cd .. && \ 110 | cd .. && \ 111 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 112 | 113 | mv ./deb.deb /repo && \ 114 | cd /repo && \ 115 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 116 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-headers-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb && \ 117 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-image-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb && \ 118 | mv ./deb.deb ./${{ matrix.target.name }} && \ 119 | mv linux-headers-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 120 | mv linux-image-${KVER}-${REL}-t2-${CODENAME}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 121 | cd ${{ matrix.target.name }} && \ 122 | dpkg-name ./deb.deb && rm ./deb.deb \ 123 | 124 | dpkg-scanpackages --multiversion . > Packages && \ 125 | gzip -k -f Packages && \ 126 | 127 | apt-ftparchive release . > Release && \ 128 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 129 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease && \ 130 | gh release upload ${{ matrix.target.name }} ./* --clobber -R AdityaGarg8/t2-ubuntu-repo' 131 | 132 | cd ${{ github.workspace }} 133 | rm key 134 | -------------------------------------------------------------------------------- /.github/workflows/linux-t2-xanmod.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Release Kernel - Mainline Xanmod 3 | 4 | on: 5 | push: 6 | paths: 7 | - ".github/kernel/linux-t2-xanmod" 8 | workflow_dispatch: 9 | 10 | jobs: 11 | Release-Mainline-Xanmod-Kernel: 12 | strategy: 13 | matrix: 14 | target: 15 | - image: ubuntu 16 | tag: "22.04" 17 | name: jammy 18 | - image: ubuntu 19 | tag: "24.04" 20 | name: noble 21 | - image: ubuntu 22 | tag: "25.04" 23 | name: plucky 24 | - image: ubuntu 25 | tag: "25.10" 26 | name: questing 27 | - image: debian 28 | tag: "12" 29 | name: bookworm 30 | - image: debian 31 | tag: "trixie" 32 | name: trixie 33 | - image: debian 34 | tag: testing 35 | name: testing 36 | runs-on: ubuntu-latest 37 | steps: 38 | - name: "Checkout Repo" 39 | uses: actions/checkout@v4 40 | with: 41 | persist-credentials: false 42 | fetch-depth: 0 43 | - name: Configure GPG Key 44 | run: | 45 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 46 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 47 | env: 48 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 49 | 50 | - name: Release kernel 51 | id: publish 52 | run: | 53 | VERSION=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-xanmod | grep "VERSION" | cut -d "=" -f 2) 54 | REL=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-xanmod | grep "REL" | cut -d "=" -f 2) 55 | if [[ (${#VERSION} = 3) || (${#VERSION} = 4) ]] 56 | then 57 | KVER=${VERSION}.0 58 | else 59 | KVER=${VERSION} 60 | fi 61 | 62 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 63 | docker pull ${DOCKER_IMAGE} 64 | docker run \ 65 | -e GH_TOKEN=${{ secrets.PAT }} \ 66 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 67 | -e VERSION=${VERSION} \ 68 | -e KVER=${KVER} \ 69 | -e REL=${REL} \ 70 | -t \ 71 | -v "$(pwd)":/repo \ 72 | ${DOCKER_IMAGE} \ 73 | /bin/bash -c 'apt-get update && \ 74 | apt-get install -y wget git gpg apt-utils dpkg-dev lsb-release base-files && \ 75 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 76 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 77 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 78 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 79 | && apt update \ 80 | && apt install gh -y && \ 81 | cat /repo/key | gpg --import && \ 82 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 83 | git config --global user.name "github-actions[bot]" && \ 84 | mkdir deb && \ 85 | cd deb && \ 86 | mkdir usr && \ 87 | cd usr && \ 88 | mkdir share && \ 89 | cd share && \ 90 | mkdir doc && \ 91 | cd doc && \ 92 | mkdir linux-t2-xanmod && \ 93 | cp /repo/.github/kernel/copyright ./linux-t2-xanmod && \ 94 | cd .. && \ 95 | cd .. && \ 96 | cd .. && \ 97 | mkdir DEBIAN && \ 98 | cd DEBIAN && \ 99 | 100 | echo "Package: linux-t2-xanmod" > control && \ 101 | echo "Version: ${KVER}-${REL}-${CODENAME}" >> control && \ 102 | echo "Maintainer: Aditya Garg" >> control && \ 103 | echo "Architecture: amd64" >> control && \ 104 | echo "Description: Kernel to support T2 Macs" >> control && \ 105 | echo "Depends: linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL} (= ${KVER}-${REL}), linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL} (= ${KVER}-${REL})" >> control && \ 106 | echo "Conflicts: linux-t2-lts, linux-t2, linux-t2-xanmod-lts" >> control && \ 107 | echo "Replaces: linux-t2-lts, linux-t2, linux-t2-xanmod-lts" >> control && \ 108 | 109 | cd .. && \ 110 | cd .. && \ 111 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 112 | 113 | mv ./deb.deb /repo && \ 114 | cd /repo && \ 115 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 116 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb && \ 117 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb && \ 118 | mv ./deb.deb ./${{ matrix.target.name }} && \ 119 | mv linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 120 | mv linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 121 | cd ${{ matrix.target.name }} && \ 122 | dpkg-name ./deb.deb && rm ./deb.deb \ 123 | 124 | dpkg-scanpackages --multiversion . > Packages && \ 125 | gzip -k -f Packages && \ 126 | 127 | apt-ftparchive release . > Release && \ 128 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 129 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease && \ 130 | gh release upload ${{ matrix.target.name }} ./* --clobber -R AdityaGarg8/t2-ubuntu-repo' 131 | 132 | cd ${{ github.workspace }} 133 | rm key 134 | -------------------------------------------------------------------------------- /.github/workflows/linux-t2-xanmod-lts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Release Kernel - LTS Xanmod 3 | 4 | on: 5 | push: 6 | paths: 7 | - ".github/kernel/linux-t2-xanmod-lts" 8 | workflow_dispatch: 9 | 10 | jobs: 11 | Release-Mainline-Xanmod-LTS-Kernel: 12 | strategy: 13 | matrix: 14 | target: 15 | - image: ubuntu 16 | tag: "22.04" 17 | name: jammy 18 | - image: ubuntu 19 | tag: "24.04" 20 | name: noble 21 | - image: ubuntu 22 | tag: "25.04" 23 | name: plucky 24 | - image: ubuntu 25 | tag: "25.10" 26 | name: questing 27 | - image: debian 28 | tag: "12" 29 | name: bookworm 30 | - image: debian 31 | tag: "trixie" 32 | name: trixie 33 | - image: debian 34 | tag: testing 35 | name: testing 36 | runs-on: ubuntu-latest 37 | steps: 38 | - name: "Checkout Repo" 39 | uses: actions/checkout@v4 40 | with: 41 | persist-credentials: false 42 | fetch-depth: 0 43 | - name: Configure GPG Key 44 | run: | 45 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 46 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 47 | env: 48 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 49 | 50 | - name: Release kernel 51 | id: publish 52 | run: | 53 | VERSION=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-xanmod-lts | grep "VERSION" | cut -d "=" -f 2) 54 | REL=$(cat ${{ github.workspace }}/.github/kernel/linux-t2-xanmod-lts | grep "REL" | cut -d "=" -f 2) 55 | if [[ (${#VERSION} = 3) || (${#VERSION} = 4) ]] 56 | then 57 | KVER=${VERSION}.0 58 | else 59 | KVER=${VERSION} 60 | fi 61 | 62 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 63 | docker pull ${DOCKER_IMAGE} 64 | docker run \ 65 | -e GH_TOKEN=${{ secrets.PAT }} \ 66 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 67 | -e VERSION=${VERSION} \ 68 | -e KVER=${KVER} \ 69 | -e REL=${REL} \ 70 | -t \ 71 | -v "$(pwd)":/repo \ 72 | ${DOCKER_IMAGE} \ 73 | /bin/bash -c 'apt-get update && \ 74 | apt-get install -y wget git gpg apt-utils dpkg-dev lsb-release base-files && \ 75 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 76 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 77 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 78 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 79 | && apt update \ 80 | && apt install gh -y && \ 81 | cat /repo/key | gpg --import && \ 82 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 83 | git config --global user.name "github-actions[bot]" && \ 84 | mkdir deb && \ 85 | cd deb && \ 86 | mkdir usr && \ 87 | cd usr && \ 88 | mkdir share && \ 89 | cd share && \ 90 | mkdir doc && \ 91 | cd doc && \ 92 | mkdir linux-t2-xanmod-lts && \ 93 | cp /repo/.github/kernel/copyright ./linux-t2-xanmod-lts && \ 94 | cd .. && \ 95 | cd .. && \ 96 | cd .. && \ 97 | mkdir DEBIAN && \ 98 | cd DEBIAN && \ 99 | 100 | echo "Package: linux-t2-xanmod-lts" > control && \ 101 | echo "Version: ${KVER}-${REL}-${CODENAME}" >> control && \ 102 | echo "Maintainer: Aditya Garg" >> control && \ 103 | echo "Architecture: amd64" >> control && \ 104 | echo "Description: Kernel to support T2 Macs" >> control && \ 105 | echo "Depends: linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL} (= ${KVER}-${REL}), linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL} (= ${KVER}-${REL})" >> control && \ 106 | echo "Conflicts: linux-t2-lts, linux-t2, linux-t2-xanmod" >> control && \ 107 | echo "Replaces: linux-t2-lts, linux-t2, linux-t2-xanmod" >> control && \ 108 | 109 | cd .. && \ 110 | cd .. && \ 111 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 112 | 113 | mv ./deb.deb /repo && \ 114 | cd /repo && \ 115 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 116 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb && \ 117 | wget https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/releases/download/v${VERSION}-${REL}/linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb && \ 118 | mv ./deb.deb ./${{ matrix.target.name }} && \ 119 | mv linux-headers-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 120 | mv linux-image-${KVER}-x64v3-t2-${CODENAME}-${REL}_${KVER}-${REL}_amd64.deb ./${{ matrix.target.name }} && \ 121 | cd ${{ matrix.target.name }} && \ 122 | dpkg-name ./deb.deb && rm ./deb.deb \ 123 | 124 | dpkg-scanpackages --multiversion . > Packages && \ 125 | gzip -k -f Packages && \ 126 | 127 | apt-ftparchive release . > Release && \ 128 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 129 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease && \ 130 | gh release upload ${{ matrix.target.name }} ./* --clobber -R AdityaGarg8/t2-ubuntu-repo' 131 | 132 | cd ${{ github.workspace }} 133 | rm key 134 | -------------------------------------------------------------------------------- /.github/workflows/tiny-dfr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Create tiny-dfr package 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Publish: 9 | strategy: 10 | matrix: 11 | target: 12 | - image: ubuntu 13 | tag: "24.04" 14 | name: noble 15 | - image: ubuntu 16 | tag: "25.04" 17 | name: plucky 18 | - image: ubuntu 19 | tag: "25.10" 20 | name: questing 21 | - image: debian 22 | tag: "trixie" 23 | name: trixie 24 | - image: debian 25 | tag: testing 26 | name: testing 27 | runs-on: ubuntu-latest 28 | steps: 29 | - name: "Checkout Repo" 30 | uses: actions/checkout@v4 31 | with: 32 | persist-credentials: false 33 | fetch-depth: 0 34 | - name: Configure GPG Key 35 | run: | 36 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 37 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 38 | env: 39 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 40 | 41 | - name: Get the source code 42 | id: publish 43 | run: | 44 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 45 | docker pull ${DOCKER_IMAGE} 46 | docker run \ 47 | -e GH_TOKEN=${{ secrets.PAT }} \ 48 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 49 | -t \ 50 | -v "$(pwd)":/repo \ 51 | ${DOCKER_IMAGE} \ 52 | /bin/bash -c 'apt-get update && \ 53 | DEBIAN_FRONTEND=noninteractive apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" gir1.2-coglpango-1.0 gir1.2-pango-1.0 libcogl-pango-dev libghc-gi-pango-dev wget libxml2-dev \ 54 | libghc-pango-dev libpango1.0-dev libudev-dev libinput-dev curl git librsvg2-dev gpg apt-utils lsb-release base-files libfreetype6 libfreetype6-dev libfontconfig1-dev libglib2.0-dev && \ 55 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 56 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 57 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 58 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 59 | && curl -s --compressed "https://adityagarg8.github.io/t2-ubuntu-repo/KEY.gpg" | gpg --dearmor | tee /etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg >/dev/null \ 60 | && curl -s --compressed -o /etc/apt/sources.list.d/t2.list "https://adityagarg8.github.io/t2-ubuntu-repo/t2.list" \ 61 | && apt-get update \ 62 | && apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" gh && \ 63 | curl https://sh.rustup.rs -sSf | sh -s -- -y && \ 64 | REPO=https://github.com/AsahiLinux/tiny-dfr.git && \ 65 | COMMIT_HASH=a04f1abf4179d0e3c2ddf5c9b1a442b923680ef9 && \ 66 | VERSION=0.3.6-2 && \ 67 | cat /repo/key | gpg --import && \ 68 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 69 | git config --global user.name "github-actions[bot]" && \ 70 | git clone ${REPO} && \ 71 | cd tiny-dfr && \ 72 | git checkout ${COMMIT_HASH} && \ 73 | $HOME/.cargo/bin/cargo b --release && \ 74 | mkdir deb && \ 75 | cd deb && \ 76 | mkdir usr && \ 77 | cd usr && \ 78 | mkdir bin && \ 79 | mkdir src && \ 80 | cd .. && \ 81 | cd .. && \ 82 | cp -r ./etc ./deb && \ 83 | cp -r ./share ./deb/usr && \ 84 | cp ./target/release/tiny-dfr ./deb/usr/bin && \ 85 | chmod a+x ./deb/usr/bin/tiny-dfr && \ 86 | cd deb && \ 87 | mkdir DEBIAN && \ 88 | cd DEBIAN && \ 89 | 90 | echo "Package: tiny-dfr" > control && \ 91 | echo "Version: ${VERSION}-${CODENAME}" >> control && \ 92 | echo "Maintainer: Aditya Garg" >> control && \ 93 | echo "Architecture: amd64" >> control && \ 94 | echo "Description: Function row daemon for touchbar on Macs" >> control && \ 95 | echo "Depends: systemd" >> control && \ 96 | 97 | echo "systemctl start tiny-dfr.service" > postinst && \ 98 | echo "echo -e \"\\nYou may have to restart your Mac in case of a new installation\"" >> postinst && \ 99 | 100 | echo "systemctl stop tiny-dfr.service" >> prerm && \ 101 | 102 | chmod 755 ./postinst && \ 103 | chmod 755 ./prerm && \ 104 | 105 | cd .. && \ 106 | cd .. && \ 107 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 108 | 109 | mv ./deb.deb /repo && \ 110 | cd /repo && \ 111 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 112 | mv ./deb.deb ./${{ matrix.target.name }} && cd ${{ matrix.target.name }} && \ 113 | 114 | dpkg-name ./deb.deb && \ 115 | dpkg-scanpackages --multiversion . > Packages && \ 116 | gzip -k -f Packages && \ 117 | 118 | apt-ftparchive release . > Release && \ 119 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 120 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease' 121 | 122 | cd ${{ github.workspace }} 123 | rm key 124 | 125 | cd ${{ matrix.target.name }} 126 | if [[ $(ls | grep deb.deb) == deb.deb ]] 127 | then 128 | echo "publish=no" >> $GITHUB_ENV 129 | fi 130 | - name: Release 131 | if: env.publish != 'no' 132 | run: | 133 | gh release upload ${{ matrix.target.name }} ${{ github.workspace }}/${{ matrix.target.name }}/* --clobber -R AdityaGarg8/t2-ubuntu-repo 134 | env: 135 | GH_TOKEN: ${{ secrets.PAT }} 136 | -------------------------------------------------------------------------------- /.github/workflows/tiny-dfr-adv.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Create tiny-dfr-adv package 3 | 4 | on: 5 | workflow_dispatch: 6 | 7 | jobs: 8 | Publish: 9 | strategy: 10 | matrix: 11 | target: 12 | - image: ubuntu 13 | tag: "22.04" 14 | name: jammy 15 | - image: ubuntu 16 | tag: "24.04" 17 | name: noble 18 | excluded_patches: "&& rm 0002*" 19 | - image: ubuntu 20 | tag: "25.04" 21 | name: plucky 22 | excluded_patches: "&& rm 0002*" 23 | - image: ubuntu 24 | tag: "25.10" 25 | name: questing 26 | excluded_patches: "&& rm 0002*" 27 | - image: debian 28 | tag: "12" 29 | name: bookworm 30 | - image: debian 31 | tag: "trixie" 32 | name: trixie 33 | excluded_patches: "&& rm 0002*" 34 | - image: debian 35 | tag: testing 36 | name: testing 37 | excluded_patches: "&& rm 0002*" 38 | runs-on: ubuntu-latest 39 | steps: 40 | - name: "Checkout Repo" 41 | uses: actions/checkout@v4 42 | with: 43 | persist-credentials: false 44 | fetch-depth: 0 45 | - name: Configure GPG Key 46 | run: | 47 | echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import 48 | echo -n "$GPG_SIGNING_KEY" | base64 -di > key 49 | env: 50 | GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }} 51 | 52 | - name: Get the source code 53 | id: publish 54 | run: | 55 | DOCKER_IMAGE=${{ matrix.target.image }}:${{ matrix.target.tag }} 56 | docker pull ${DOCKER_IMAGE} 57 | docker run \ 58 | -e GH_TOKEN=${{ secrets.PAT }} \ 59 | -e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \ 60 | -t \ 61 | -v "$(pwd)":/repo \ 62 | ${DOCKER_IMAGE} \ 63 | /bin/bash -c 'apt-get update && \ 64 | DEBIAN_FRONTEND=noninteractive apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" gir1.2-coglpango-1.0 gir1.2-pango-1.0 libcogl-pango-dev libghc-gi-pango-dev wget libxml2-dev \ 65 | libghc-pango-dev libpango1.0-dev libudev-dev libinput-dev curl git librsvg2-dev gpg apt-utils lsb-release base-files && \ 66 | CODENAME=$(lsb_release -c | cut -d ":" -f 2 | xargs) && \ 67 | mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ 68 | && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ 69 | && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ 70 | && curl -s --compressed "https://adityagarg8.github.io/t2-ubuntu-repo/KEY.gpg" | gpg --dearmor | tee /etc/apt/trusted.gpg.d/t2-ubuntu-repo.gpg >/dev/null \ 71 | && curl -s --compressed -o /etc/apt/sources.list.d/t2.list "https://adityagarg8.github.io/t2-ubuntu-repo/t2.list" \ 72 | && apt-get update \ 73 | && apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" gh && \ 74 | curl https://sh.rustup.rs -sSf | sh -s -- -y && \ 75 | REPO=https://github.com/AdityaGarg8/tiny-dfr.git && \ 76 | COMMIT_HASH=1369f66177d435b0ab3915825b82004afa17ec93 && \ 77 | VERSION=0.3.1-1 && \ 78 | cat /repo/key | gpg --import && \ 79 | git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" && \ 80 | git config --global user.name "github-actions[bot]" && \ 81 | git clone ${REPO} && \ 82 | cd tiny-dfr && \ 83 | git checkout ${COMMIT_HASH} && \ 84 | cp /repo/.github/patches/*.patch ./ ${{ matrix.target.excluded_patches }} && \ 85 | git am ./*.patch && \ 86 | $HOME/.cargo/bin/cargo b --release && \ 87 | mkdir deb && \ 88 | cd deb && \ 89 | mkdir usr && \ 90 | cd usr && \ 91 | mkdir bin && \ 92 | mkdir src && \ 93 | cd .. && \ 94 | cd .. && \ 95 | mkdir -p ./etc/tiny-dfr && \ 96 | cp ./share/tiny-dfr/config.toml ./etc/tiny-dfr/config.toml && \ 97 | cp -r ./etc ./deb && \ 98 | cp -r ./share ./deb/usr && \ 99 | cp ./target/release/tiny-dfr ./deb/usr/bin && \ 100 | cp /repo/.github/scripts/touchbar ./deb/usr/bin && \ 101 | chmod a+x ./deb/usr/bin/tiny-dfr && \ 102 | chmod a+x ./deb/usr/bin/touchbar && \ 103 | cd deb && \ 104 | mkdir DEBIAN && \ 105 | cd DEBIAN && \ 106 | 107 | echo "Package: tiny-dfr-adv" > control && \ 108 | echo "Version: ${VERSION}-${CODENAME}" >> control && \ 109 | echo "Maintainer: Aditya Garg" >> control && \ 110 | echo "Architecture: amd64" >> control && \ 111 | echo "Description: Function row daemon for touchbar on Macs" >> control && \ 112 | echo "Depends: systemd" >> control && \ 113 | 114 | echo "if [ -f /etc/tiny-dfr/config.toml ]" > preinst && \ 115 | echo "then" >> preinst && \ 116 | echo "cp /etc/tiny-dfr/config.toml /etc/tiny-dfr/config.toml.orj" >> preinst && \ 117 | echo "fi" >> preinst && \ 118 | 119 | echo "if [ -f /etc/tiny-dfr/config.toml.orj ]" > postinst && \ 120 | echo "then" >> postinst && \ 121 | echo "touchbar --restore" >> postinst && \ 122 | echo "fi" >> postinst && \ 123 | echo "systemctl enable --now tiny-dfr.service" >> postinst && \ 124 | echo "echo -e \"\\nYou may have to restart your Mac in case of a new installation\"" >> postinst && \ 125 | 126 | echo "systemctl disable --now tiny-dfr.service" >> prerm && \ 127 | 128 | chmod 755 ./preinst && \ 129 | chmod 755 ./postinst && \ 130 | chmod 755 ./prerm && \ 131 | 132 | cd .. && \ 133 | cd .. && \ 134 | dpkg-deb --build --root-owner-group -Zgzip deb && \ 135 | 136 | mv ./deb.deb /repo && \ 137 | cd /repo && \ 138 | gh release download ${{ matrix.target.name }} -D ${{ matrix.target.name }} -R AdityaGarg8/t2-ubuntu-repo && \ 139 | mv ./deb.deb ./${{ matrix.target.name }} && cd ${{ matrix.target.name }} && \ 140 | 141 | dpkg-name ./deb.deb && \ 142 | dpkg-scanpackages --multiversion . > Packages && \ 143 | gzip -k -f Packages && \ 144 | 145 | apt-ftparchive release . > Release && \ 146 | gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \ 147 | gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease' 148 | 149 | cd ${{ github.workspace }} 150 | rm key 151 | 152 | cd ${{ matrix.target.name }} 153 | if [[ $(ls | grep deb.deb) == deb.deb ]] 154 | then 155 | echo "publish=no" >> $GITHUB_ENV 156 | fi 157 | - name: Release 158 | if: env.publish != 'no' 159 | run: | 160 | gh release upload ${{ matrix.target.name }} ${{ github.workspace }}/${{ matrix.target.name }}/* --clobber -R AdityaGarg8/t2-ubuntu-repo 161 | env: 162 | GH_TOKEN: ${{ secrets.PAT }} 163 | -------------------------------------------------------------------------------- /Packages: -------------------------------------------------------------------------------- 1 | Package: apfs-dkms 2 | Version: 0.3.10-1 3 | Architecture: all 4 | Maintainer: Aditya Garg 5 | Depends: dkms 6 | Filename: ./apfs-dkms_0.3.10-1_all.deb 7 | Size: 163930 8 | MD5sum: 3207c62061fc9c7fc87777e8a43c1c0d 9 | SHA1: 8348b4d8b83955b5208260ae89ae9b369dc30a3f 10 | SHA256: 3d21d5ca40e986029930a80e3635b6e8355aef77ef2c8dc47a508754b4ef6539 11 | Description: Apple File System driver for Linux 12 | 13 | Package: apfs-dkms 14 | Version: 0.3.10-2 15 | Architecture: all 16 | Maintainer: Aditya Garg 17 | Depends: dkms 18 | Filename: ./apfs-dkms_0.3.10-2_all.deb 19 | Size: 163978 20 | MD5sum: d0860b9fb4f76821b3fef60992196419 21 | SHA1: 16f06b06f9f6bbf710c31165378230f491a7918c 22 | SHA256: 6d61c7e3cdb442acc974b3e04f48c3c0eee141817ab70536d44dce2c729ff7af 23 | Description: Apple File System driver for Linux 24 | 25 | Package: apfs-dkms 26 | Version: 0.3.11-1 27 | Architecture: all 28 | Maintainer: Aditya Garg 29 | Depends: dkms 30 | Filename: ./apfs-dkms_0.3.11-1_all.deb 31 | Size: 165568 32 | MD5sum: e02bbde88ce33a6fe4d07b99c5c52d83 33 | SHA1: d59e23737db0ebdf9184ef0cc2a8531f0c3775a8 34 | SHA256: bce20613aae6c96c7aa7b479e05d066006ad180c9c1be01ea551702fda39d3cd 35 | Description: Apple File System driver for Linux 36 | 37 | Package: apfs-dkms 38 | Version: 0.3.11-2 39 | Architecture: all 40 | Maintainer: Aditya Garg 41 | Depends: dkms 42 | Filename: ./apfs-dkms_0.3.11-2_all.deb 43 | Size: 165568 44 | MD5sum: 23e4658f34cbfd0dba6f9dba52bc4e07 45 | SHA1: 4522ec9e23fb1e7d8df810cfe68ca0822abb70c1 46 | SHA256: 38d5aff9cd4a7136d799c0fe56f612ff265ef65e9a8f6220a28065937344379e 47 | Description: Apple File System driver for Linux 48 | 49 | Package: apfs-dkms 50 | Version: 0.3.12-1 51 | Architecture: all 52 | Maintainer: Aditya Garg 53 | Depends: dkms 54 | Filename: ./apfs-dkms_0.3.12-1_all.deb 55 | Size: 166268 56 | MD5sum: f77394f77237f487e5034f6242cbb90d 57 | SHA1: 557736c6be25fb1e77a5673c87756c295c98cb49 58 | SHA256: 7c77bec3e21d1cbda83715321f7c77dc6d8e2fdc8ed4bcde180501160a1b571c 59 | Description: Apple File System driver for Linux 60 | 61 | Package: apfs-dkms 62 | Version: 0.3.12-2 63 | Architecture: all 64 | Maintainer: Aditya Garg 65 | Depends: dkms 66 | Filename: ./apfs-dkms_0.3.12-2_all.deb 67 | Size: 166326 68 | MD5sum: b275c77878c6ad2603fb8a3ebc0f469f 69 | SHA1: 893b6f20499f8fa78760d6392336e3ff0baaf47c 70 | SHA256: 4996fbd135382725a7c6d5c76f30452a1bb0e1b90077059a3b8d66a128cb97ac 71 | Description: Apple File System driver for Linux 72 | 73 | Package: apfs-dkms 74 | Version: 0.3.12-3 75 | Architecture: all 76 | Maintainer: Aditya Garg 77 | Depends: dkms 78 | Filename: ./apfs-dkms_0.3.12-3_all.deb 79 | Size: 164510 80 | MD5sum: 306fbe29b2e95cd3889329d833fd230b 81 | SHA1: 5a16b112bb4762f432d31e7bf88542f1b406e99a 82 | SHA256: f3e75eec217e21ca41e5fc34462ba0f90e629a5e44b470e665e0aefefe0c2788 83 | Description: Apple File System driver for Linux 84 | 85 | Package: apfs-dkms 86 | Version: 0.3.12-4 87 | Architecture: all 88 | Maintainer: Aditya Garg 89 | Depends: dkms 90 | Filename: ./apfs-dkms_0.3.12-4_all.deb 91 | Size: 166088 92 | MD5sum: ceb399a4d2186ea09694b091eec1d3f1 93 | SHA1: a295601b3fdf595456fd6ea8bd66967c2f0c4bac 94 | SHA256: 45bddc05249fb7f2db58ba1bebf77f087e190b1bcc4e8763957ebb293bb9050f 95 | Description: Apple File System driver for Linux 96 | 97 | Package: apfs-dkms 98 | Version: 0.3.12-5 99 | Architecture: all 100 | Maintainer: Aditya Garg 101 | Depends: dkms 102 | Filename: ./apfs-dkms_0.3.12-5_all.deb 103 | Size: 166278 104 | MD5sum: aa8d0c35810179903f48b74a54e49466 105 | SHA1: 33b3b8b27d30a2122f0d4c35f89c405f7e06151b 106 | SHA256: 70d4c588d399e2f2ca53bad9c3c88cc0cc7058c2025d314a01267bac103b5940 107 | Description: Apple File System driver for Linux 108 | 109 | Package: apfs-dkms 110 | Version: 0.3.12-6 111 | Architecture: all 112 | Maintainer: Aditya Garg 113 | Depends: dkms 114 | Filename: ./apfs-dkms_0.3.12-6_all.deb 115 | Size: 166316 116 | MD5sum: 8bb54ea6b17b208dc45dab81d1f8b268 117 | SHA1: b31e4c92f021565ef623d9e470a5951895f27696 118 | SHA256: d84647659397cb3277e2e66d04e432e562f15f6a679d2ac3a13f06a54d718f64 119 | Description: Apple File System driver for Linux 120 | 121 | Package: apfs-dkms 122 | Version: 0.3.13-1 123 | Architecture: all 124 | Maintainer: Aditya Garg 125 | Depends: dkms 126 | Filename: ./apfs-dkms_0.3.13-1_all.deb 127 | Size: 166214 128 | MD5sum: e6c80d26fa2e53844842ac59d503935f 129 | SHA1: 90f695791c9b072b5d0b2ba7940d7197126cd00b 130 | SHA256: b5bd5bd8762def9f8f012500a352e62c2da8d3614aea3482767d611f32d504a4 131 | Description: Apple File System driver for Linux 132 | 133 | Package: apfs-dkms 134 | Version: 0.3.13-2 135 | Architecture: all 136 | Maintainer: Aditya Garg 137 | Depends: dkms 138 | Filename: ./apfs-dkms_0.3.13-2_all.deb 139 | Size: 148760 140 | MD5sum: 3c81c2cef2fb6e100d258179c04dd7bb 141 | SHA1: 632d8846c11b9663b6ed1e7f5597ef57db89637e 142 | SHA256: 619f4fa113fbdd24fcb52a2363ebe306a34433c1480b5f7a243526d7743aa5c4 143 | Description: Apple File System driver for Linux 144 | 145 | Package: apfs-dkms 146 | Version: 0.3.13-3 147 | Architecture: all 148 | Maintainer: Aditya Garg 149 | Depends: dkms 150 | Filename: ./apfs-dkms_0.3.13-3_all.deb 151 | Size: 148786 152 | MD5sum: dfe91bbf3f34db4e31b9c6fdc28ea829 153 | SHA1: 53d71fb99f41998b1d70129dea77b0f97bb930b4 154 | SHA256: 07ce31d783931408c3806213435a177b3e511a5419959e356f04f85bff06b7ea 155 | Description: Apple File System driver for Linux 156 | 157 | Package: apfs-dkms 158 | Version: 0.3.14-1 159 | Architecture: all 160 | Maintainer: Aditya Garg 161 | Depends: dkms 162 | Filename: ./apfs-dkms_0.3.14-1_all.deb 163 | Size: 148764 164 | MD5sum: c6bd47f9e63aa3b7f906f3fab32bda43 165 | SHA1: e780578e68ea2d1c6f85242eac6eecade8250b3d 166 | SHA256: d7e7bf6ecde10aef81f10950922b72af87f93be7c8f174a66fb8be39b69c21b7 167 | Description: Apple File System driver for Linux 168 | 169 | Package: apfs-dkms 170 | Version: 0.3.14-2 171 | Architecture: all 172 | Maintainer: Aditya Garg 173 | Depends: dkms 174 | Filename: ./apfs-dkms_0.3.14-2_all.deb 175 | Size: 148710 176 | MD5sum: 845e69818d74e541e4583e1c52950662 177 | SHA1: aac6934edb0d746f1d195cce71148ded902cc1f8 178 | SHA256: e981a8ee23bb3a795648e5786d69f45ebbd1e58151a64607c2b214da3cd3eae0 179 | Description: Apple File System driver for Linux 180 | 181 | Package: apfs-dkms 182 | Version: 0.3.15-1 183 | Architecture: all 184 | Maintainer: Aditya Garg 185 | Depends: dkms 186 | Filename: ./apfs-dkms_0.3.15-1_all.deb 187 | Size: 148700 188 | MD5sum: 8fdc6e1616a31f9f1101020fb65016e2 189 | SHA1: ee64e7c8ec255fa189a0e7f6603ab731c2d12d18 190 | SHA256: 642101e5e321feaa01c1f0dde1901633159e84098d97ebb624ab393acbe6f5a8 191 | Description: Apple File System driver for Linux 192 | 193 | Package: apfs-dkms 194 | Version: 0.3.15-2 195 | Architecture: all 196 | Maintainer: Aditya Garg 197 | Depends: dkms 198 | Filename: ./apfs-dkms_0.3.15-2_all.deb 199 | Size: 148866 200 | MD5sum: f7d7cbc21856e26aed962435a4385809 201 | SHA1: 1aa1759c717d5cf45dcc193f70166e1fee0da4d8 202 | SHA256: 3af2d7dfe05ba9c35dde5793d7557b76bd2e2bc425f030af652b180934f99cfc 203 | Description: Apple File System driver for Linux 204 | 205 | Package: apfs-dkms 206 | Version: 0.3.16-1 207 | Architecture: all 208 | Maintainer: Aditya Garg 209 | Depends: dkms 210 | Filename: ./apfs-dkms_0.3.16-1_all.deb 211 | Size: 148862 212 | MD5sum: 409716db80c1bfa0eba8930ba120f3ad 213 | SHA1: 9132318f32a06b5d7db0c3ffc659beef716c0397 214 | SHA256: 70e41ab8b25639ae312f860fdb2e5639e888b3c5c5d5cdf530bea6a1c6261337 215 | Description: Apple File System driver for Linux 216 | 217 | Package: apfs-dkms 218 | Version: 0.3.16-2 219 | Architecture: all 220 | Maintainer: Aditya Garg 221 | Depends: dkms 222 | Filename: ./apfs-dkms_0.3.16-2_all.deb 223 | Size: 148842 224 | MD5sum: ff1bdbf6d73c2cfbf11899d9b5df8c31 225 | SHA1: f891bdf7587081d74632fdd86ce4d2c0a24bd5b4 226 | SHA256: 727211829cbdc249dd3e7a6e8eb2913915b6fda62614a949d7598f3c14ce53a5 227 | Description: Apple File System driver for Linux 228 | 229 | Package: apfs-dkms 230 | Version: 0.3.17-1 231 | Architecture: all 232 | Maintainer: Aditya Garg 233 | Depends: dkms 234 | Filename: ./apfs-dkms_0.3.17-1_all.deb 235 | Size: 148858 236 | MD5sum: e00975277eede60d385a8dbb779f6e12 237 | SHA1: 400d29b1e49d555194063c00ce44849a2b6ab2f8 238 | SHA256: 91a90dfa149e479a2281954f84e27386a43ac60d296b219aff2398d735577ef2 239 | Description: Apple File System driver for Linux 240 | 241 | Package: apfs-dkms 242 | Version: 0.3.9-1 243 | Architecture: all 244 | Maintainer: Aditya Garg 245 | Depends: dkms 246 | Filename: ./apfs-dkms_0.3.9-1_all.deb 247 | Size: 163600 248 | MD5sum: 2645e936b919845e6f43da97e8db15de 249 | SHA1: f11b124bb05ff459550801fee9ae7c0271fdca6d 250 | SHA256: a103b7feabb0ee872b681144729e3b65d522ae40f2095de2da464c3213e7874b 251 | Description: Apple File System driver for Linux 252 | 253 | Package: apple-bce 254 | Version: 0.2.2 255 | Architecture: amd64 256 | Maintainer: Aditya Garg 257 | Depends: dkms 258 | Filename: ./apple-bce_0.2.2_amd64.deb 259 | Size: 36938 260 | MD5sum: 333519f771a53accd7d5e2fbbbd78afb 261 | SHA1: 95964df7f094ce4c295e79de7d1ba653bef5e496 262 | SHA256: 1592ba2fb035944ae5bfa815bce13ab5cbd7f25c6339012d07ee31bbd1b62d03 263 | Description: Apple BCE driver for Linux 264 | 265 | Package: apple-bce 266 | Version: 0.2.3 267 | Architecture: amd64 268 | Maintainer: Aditya Garg 269 | Depends: dkms 270 | Filename: ./apple-bce_0.2.3_amd64.deb 271 | Size: 36994 272 | MD5sum: 210a761daa0be9ef3dc0e57d5a634f95 273 | SHA1: d47ea2e4406c7e2213242b293248441b8a871b88 274 | SHA256: 9cba06175e12d7c7f05aae1f2d1219cd85bbc49cff2d6746b19a6caa8758f8ae 275 | Description: Apple BCE driver for Linux 276 | 277 | Package: apple-bce 278 | Version: 0.2.4 279 | Architecture: amd64 280 | Maintainer: Aditya Garg 281 | Depends: dkms 282 | Filename: ./apple-bce_0.2.4_amd64.deb 283 | Size: 36744 284 | MD5sum: 6419a97f61f05b5a7ff9300b6e68d2db 285 | SHA1: 6f7ad48bbc9f02423054b43004e02cf0528bc055 286 | SHA256: 870c08a8c691e0b9e3bdf85648e8286d012ecacb68072e5fd40ea44e48f2a3cb 287 | Description: Apple BCE driver for Linux 288 | 289 | Package: apple-bce 290 | Version: 0.2.5 291 | Architecture: amd64 292 | Maintainer: Aditya Garg 293 | Depends: dkms 294 | Filename: ./apple-bce_0.2.5_amd64.deb 295 | Size: 36792 296 | MD5sum: 9cf29928eddb0ed6d2a44fd5a5730322 297 | SHA1: d4271e86f8a3a3ad7cea56f8addfb9a033e37d55 298 | SHA256: 48dc41d42ec74919778dc90cdc4700f2c274902fcf5db95f4adf92319f4f8405 299 | Description: Apple BCE driver for Linux 300 | 301 | Package: apple-bce 302 | Version: 0.2.7 303 | Architecture: amd64 304 | Maintainer: Aditya Garg 305 | Depends: dkms 306 | Filename: ./apple-bce_0.2.7_amd64.deb 307 | Size: 36872 308 | MD5sum: 60aded866311ac9efc699241be3e3d1c 309 | SHA1: 3c8cdb7e07cb7a28e0b1ad707229a4435438a23c 310 | SHA256: cde3e142b70240ff7e6f2480413686a854815cee5f1773837bc204dbd9071883 311 | Description: Apple BCE driver for Linux 312 | 313 | Package: apple-bce 314 | Version: 0.2.8 315 | Architecture: amd64 316 | Maintainer: Aditya Garg 317 | Depends: dkms 318 | Filename: ./apple-bce_0.2.8_amd64.deb 319 | Size: 37052 320 | MD5sum: f28f1050889683bf9adce21faa8e3de3 321 | SHA1: d228f4b1c8129269713aa3dd3023471fef903afb 322 | SHA256: a0f520b8a905ffca36f967a799a3239ba08b4cef0706670fd65bff4c78ffd309 323 | Description: Apple BCE driver for Linux 324 | 325 | Package: apple-firmware-script 326 | Version: 1.4-2 327 | Architecture: amd64 328 | Maintainer: Aditya Garg 329 | Depends: python3 330 | Filename: ./apple-firmware-script_1.4-2_amd64.deb 331 | Size: 10638 332 | MD5sum: 9e7d98584f03c165da52dccf3f9bd944 333 | SHA1: a054beda32bd2efd05bd6e78b5b9dc980b8b793e 334 | SHA256: 98d4410f7a3547a8ef209f01b8ff5370c8340754a6f18f754f61daec5ba4cd7c 335 | Description: Script to get Wi-Fi and Bluetooth firmware from macOS 336 | 337 | Package: apple-t2-audio-config 338 | Version: 0.4 339 | Architecture: amd64 340 | Maintainer: Aditya Garg 341 | Filename: ./apple-t2-audio-config_0.4_amd64.deb 342 | Size: 1612 343 | MD5sum: 79199f13bb8b7954bb9ab314b24d8040 344 | SHA1: a4b6fafccd1c2066fb60b3b978d51cd1ee6428f6 345 | SHA256: c15827474a656cab4f7f11034e7b0c532e101c97bc86e92f603e4c5e9a91fbb5 346 | Description: Audio configuration files for T2 Macs 347 | 348 | Package: apple-t2-audio-config 349 | Version: 0.4.2 350 | Architecture: amd64 351 | Maintainer: Aditya Garg 352 | Filename: ./apple-t2-audio-config_0.4.2_amd64.deb 353 | Size: 1832 354 | MD5sum: 0e46d5395d83b4b8a3a7b1fac554f18c 355 | SHA1: 9e73433af8784aca1a66fa3dccc67cc96d0430cd 356 | SHA256: 862bdda00f9015a48dd3f554ef0f43ff6ce878422eb541f87f827c3de7f24e6f 357 | Description: Audio configuration files for T2 Macs 358 | 359 | Package: apple-touchbar 360 | Version: 0.1-2 361 | Architecture: amd64 362 | Maintainer: Aditya Garg 363 | Depends: dkms 364 | Filename: ./apple-touchbar_0.1-2_amd64.deb 365 | Size: 34616 366 | MD5sum: aa9b29fe7b6902a1e2885c619924df47 367 | SHA1: 414227d39fea6d104914fc9d4c6fc7f27ffdbc2b 368 | SHA256: 883b82aa0045b2eb3f533a7725cbf6b08f446d8a67d1f83e79d75798f9e8c69c 369 | Description: Apple Touch Bar driver for Linux 370 | 371 | Package: applesmc-t2 372 | Version: 0.1 373 | Architecture: amd64 374 | Maintainer: Aditya Garg 375 | Depends: dkms 376 | Filename: ./applesmc-t2_0.1_amd64.deb 377 | Size: 18960 378 | MD5sum: 266170d2fe707765e996438d884efeca 379 | SHA1: e3e9acfcddd71d2b7c19eca87b062931a1c9cdd5 380 | SHA256: 0de3f3fa7cb2544670498f58e54951bab87fc2a84f422970f6742ab4f9645b82 381 | Description: Apple System Management Controller driver for T2 Macs 382 | 383 | Package: applesmc-t2 384 | Version: 0.1.1 385 | Architecture: amd64 386 | Maintainer: Aditya Garg 387 | Depends: dkms 388 | Filename: ./applesmc-t2_0.1.1_amd64.deb 389 | Size: 18970 390 | MD5sum: f23376b34a224a3de81edd5d7688481e 391 | SHA1: 0b4545eee9bb216dba9842ac1cd6a2e5af66eb31 392 | SHA256: 6529c413760ef596246293be59b8dc0c31820eb29545ac2df379d95dd9847360 393 | Description: Apple System Management Controller driver for T2 Macs 394 | 395 | Package: applesmc-t2 396 | Version: 0.1.2 397 | Architecture: amd64 398 | Maintainer: Aditya Garg 399 | Depends: dkms 400 | Filename: ./applesmc-t2_0.1.2_amd64.deb 401 | Size: 19010 402 | MD5sum: dcff4df0154e41c9fa55e15cae3fc9c3 403 | SHA1: c99288bd665df648cf6683719c5a852dc958821a 404 | SHA256: d01112a1bf0f0996ecb43ff647ce8defeb78735173354c06457aba2c8193369a 405 | Description: Apple System Management Controller driver for T2 Macs 406 | 407 | Package: applesmc-t2 408 | Version: 0.1.3 409 | Architecture: amd64 410 | Maintainer: Aditya Garg 411 | Depends: dkms 412 | Filename: ./applesmc-t2_0.1.3_amd64.deb 413 | Size: 19044 414 | MD5sum: b076fad7ccf956f488146f36800321c2 415 | SHA1: 9617f263a4e969ed23e4be3c299ed6b11f5ec906 416 | SHA256: ca5062f008f42c189343021f6adc5bf0dc779c4b667ea046a3a17949c71114dd 417 | Description: Apple System Management Controller driver for T2 Macs 418 | 419 | Package: bcm5974-t2 420 | Version: 0.1 421 | Architecture: amd64 422 | Maintainer: Aditya Garg 423 | Depends: dkms 424 | Filename: ./bcm5974-t2_0.1_amd64.deb 425 | Size: 15712 426 | MD5sum: 43fdd89ef758e8204a8e7acd731cb9ab 427 | SHA1: f2f307f3dfddbd869a67c52803a32ef115f9ecb9 428 | SHA256: 2da1d56c61866c3429772a446cdf82d19e0970d0d63283f149e15f38c7ff81ab 429 | Description: Apple USB BCM5974 multitouch driver for T2 Macs 430 | 431 | Package: bcm5974-t2 432 | Version: 0.1.1 433 | Architecture: amd64 434 | Maintainer: Aditya Garg 435 | Depends: dkms 436 | Filename: ./bcm5974-t2_0.1.1_amd64.deb 437 | Size: 15718 438 | MD5sum: f1bbf5ad9c274bd038e16e8bcae86563 439 | SHA1: 33d5b9c19f4d143c131615c2dea8d6776d85e7e2 440 | SHA256: 7f477fcc49f9457f1e585a97a843422ccf6e1f99722277cf8cf1be8ff2204173 441 | Description: Apple USB BCM5974 multitouch driver for T2 Macs 442 | 443 | Package: bcm5974-t2 444 | Version: 0.1.2 445 | Architecture: amd64 446 | Maintainer: Aditya Garg 447 | Depends: dkms 448 | Filename: ./bcm5974-t2_0.1.2_amd64.deb 449 | Size: 14938 450 | MD5sum: 2636ead7d7272520da49a27f43a35bc4 451 | SHA1: b8dab7190aa02b356972bcabf74af0d53798401c 452 | SHA256: 264c6cc2420184b274ef6c6cb87aba903bd03d9dec9dec8daa675cb1116bf42a 453 | Description: Apple USB BCM5974 multitouch driver for T2 Macs 454 | 455 | Package: t2-apple-audio-dsp-mic 456 | Version: 0.1.0 457 | Architecture: amd64 458 | Maintainer: lemmyg@gmail.com 459 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins 460 | Filename: ./t2-apple-audio-dsp-mic_0.1.0_amd64.deb 461 | Size: 1640 462 | MD5sum: 3816efbc6589bd2c05ad6ecdd8f89a5a 463 | SHA1: 676b0d8b66f002f55932a755971926f2fade4478 464 | SHA256: 28cab2c73b1d44b3ea1d05980a8ba1d970c650737133049c3c7cf73640129e80 465 | Section: sound 466 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 467 | Description: Pipewire filterchain config for Macbook Pro 16 2019 468 | 469 | Package: t2-apple-audio-dsp-mic 470 | Version: 0.2.0 471 | Architecture: amd64 472 | Maintainer: lemmyg@gmail.com 473 | Depends: pipewire, pipewire-pulse, wireplumber, swh-plugins 474 | Filename: ./t2-apple-audio-dsp-mic_0.2.0_amd64.deb 475 | Size: 2068 476 | MD5sum: d771fe962f3a749c42eaad1c22327606 477 | SHA1: f8174e71eca11b70739f109c7d91e3f30c80dc0f 478 | SHA256: d9d69c9cea1ff02673e81a2a916064634f8f9dd5adf69d193255211663d17eda 479 | Section: sound 480 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 481 | Description: Pipewire filterchain config for Macbook Pro 16 2019 482 | 483 | Package: t2-apple-audio-dsp-mic 484 | Version: 0.2.1 485 | Architecture: amd64 486 | Maintainer: lemmyg@gmail.com 487 | Depends: pipewire, pipewire-pulse, wireplumber, swh-plugins, apple-t2-audio-config 488 | Filename: ./t2-apple-audio-dsp-mic_0.2.1_amd64.deb 489 | Size: 2078 490 | MD5sum: dc929ec701a7721e8cfaa94245618ae4 491 | SHA1: 82a6f8be4181815c326f1ed7c9bc2b258ac4683b 492 | SHA256: dcbfedad2f012160f0978d1a56384dc92f55d31090391dfe9aa48c0a925fba47 493 | Section: sound 494 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 495 | Description: Pipewire filterchain config for Macbook Pro 16 2019 496 | 497 | Package: t2-apple-audio-dsp-mic 498 | Version: 0.3.0 499 | Architecture: amd64 500 | Maintainer: lemmyg@gmail.com 501 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins 502 | Filename: ./t2-apple-audio-dsp-mic_0.3.0_amd64.deb 503 | Size: 1736 504 | MD5sum: a60be06401a23e365a03bd850555b5fe 505 | SHA1: 03734e66bdc783196d5dd07d4821d62f5125e6cb 506 | SHA256: ae0ca99ab818a72b43bcf7c45b7d99833220d109e387d443675da492487b837f 507 | Section: sound 508 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 509 | Description: Pipewire filterchain config for Macbook Pro 16 2019 510 | 511 | Package: t2-apple-audio-dsp-mic 512 | Version: 0.3.1 513 | Architecture: amd64 514 | Maintainer: lemmyg@gmail.com 515 | Depends: pipewire, pipewire-pulse, wireplumber, swh-plugins, apple-t2-audio-config 516 | Filename: ./t2-apple-audio-dsp-mic_0.3.1_amd64.deb 517 | Size: 2210 518 | MD5sum: 710637d81af9f868223556c9a598fe5e 519 | SHA1: 9015b22e416422a0c79e5c8cf2fa7379c43cf7d7 520 | SHA256: 65151220eed80588a04943d4629e74859af37e744647bec4283b03ac5c1a9918 521 | Section: sound 522 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 523 | Description: Pipewire filterchain config for Macbook Pro 16 2019 524 | 525 | Package: t2-apple-audio-dsp-mic 526 | Version: 0.4.0-1 527 | Architecture: amd64 528 | Maintainer: lemmyg@gmail.com 529 | Depends: pipewire, pipewire-pulse, wireplumber, swh-plugins, apple-t2-audio-config 530 | Filename: ./t2-apple-audio-dsp-mic_0.4.0-1_amd64.deb 531 | Size: 1920 532 | MD5sum: 4cc5aee8789ba3acf9723c30d09c758c 533 | SHA1: f8563e1f9cfc7629eed6072ad6381eb41a9360b8 534 | SHA256: 1acdff095e8ec95fd6956283618f8ffa075f09fc5c36767ccefd7867ee8a8c4c 535 | Section: sound 536 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 537 | Description: Pipewire filterchain config for Macbook Pro 16 2019 538 | 539 | Package: t2-apple-audio-dsp-speakers161 540 | Version: 0.1.0 541 | Architecture: amd64 542 | Maintainer: lemmyg@gmail.com 543 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins 544 | Filename: ./t2-apple-audio-dsp-speakers161_0.1.0_amd64.deb 545 | Size: 243816 546 | MD5sum: 2b297db16e00cbe180d8ea73c1e7f64b 547 | SHA1: 46a3df2dbadb52ac6106c8c878f5b014d5c4c30b 548 | SHA256: ee5687a64af68b29367fceca4bc01bc3ea02d7ce4295d96873c9c112fe46e87b 549 | Section: sound 550 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 551 | Description: Pipewire filterchain config for Macbook Pro 16 2019 552 | 553 | Package: t2-apple-audio-dsp-speakers161 554 | Version: 0.1.2 555 | Architecture: amd64 556 | Maintainer: lemmyg@gmail.com 557 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins 558 | Filename: ./t2-apple-audio-dsp-speakers161_0.1.2_amd64.deb 559 | Size: 244168 560 | MD5sum: 462b0a4f659df07344c2a5c53b489a95 561 | SHA1: c9160fd39ae1c5a108f7ac6ecaf22fe09b1102c2 562 | SHA256: 985645698f64b47ffadf1851eb558a9367fd499ef44125b43df8a9cc63a7f145 563 | Section: sound 564 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 565 | Description: Pipewire filterchain config for Macbook Pro 16 2019 566 | 567 | Package: t2-apple-audio-dsp-speakers161 568 | Version: 0.1.3 569 | Architecture: amd64 570 | Maintainer: lemmyg@gmail.com 571 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins, apple-t2-audio-config 572 | Filename: ./t2-apple-audio-dsp-speakers161_0.1.3_amd64.deb 573 | Size: 244176 574 | MD5sum: 628f55c7d74652572e9ad961c88b5682 575 | SHA1: 288e50fe35cf9ee8c603f71e6c1844818c42f547 576 | SHA256: 229d9c1bd18077f574064a73297cbb8d6cd0ef84feddb935a5e4d738adeae40d 577 | Section: sound 578 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 579 | Description: Pipewire filterchain config for Macbook Pro 16 2019 580 | 581 | Package: t2-apple-audio-dsp-speakers161 582 | Version: 0.1.4 583 | Architecture: amd64 584 | Maintainer: lemmyg@gmail.com 585 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins, apple-t2-audio-config 586 | Filename: ./t2-apple-audio-dsp-speakers161_0.1.4_amd64.deb 587 | Size: 244180 588 | MD5sum: f09f97051eabdb03966774835a54f58c 589 | SHA1: facbe22069a36ce132f1736013b61669ef7a687e 590 | SHA256: ad219a5d301899a9bd120538b89518bd679bd94f117986b9e88fc8fab7ec608f 591 | Section: sound 592 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 593 | Description: Pipewire filterchain config for Macbook Pro 16 2019 594 | 595 | Package: t2-apple-audio-dsp-speakers161 596 | Version: 0.2.0-1 597 | Architecture: amd64 598 | Maintainer: lemmyg@gmail.com 599 | Depends: pipewire, pipewire-pulse, wireplumber, lsp-plugins, calf-plugins, swh-plugins, apple-t2-audio-config 600 | Filename: ./t2-apple-audio-dsp-speakers161_0.2.0-1_amd64.deb 601 | Size: 945246 602 | MD5sum: b4bf01f622b430947c11cebff26ed081 603 | SHA1: 25bd2dbf765f6fb716564c607b3865fefb5b2cef 604 | SHA256: 4448335c17abad039a278567064ff08bc03c6d47390815aab2a9ef3a31660baf 605 | Section: sound 606 | Homepage: https://github.com/lemmyg/t2-apple-audio-dsp/tree/speakers_161 607 | Description: Pipewire filterchain config for Macbook Pro 16 2019 608 | 609 | Package: t2fanrd 610 | Version: 0.1.0-2 611 | Architecture: amd64 612 | Maintainer: Aditya Garg 613 | Depends: systemd 614 | Filename: ./t2fanrd_0.1.0-2_amd64.deb 615 | Size: 246464 616 | MD5sum: edb1d508005fd431709eb7ef7b0d58ea 617 | SHA1: 5d065afc89001f22630bbddfdc9e82f3b1b08ae6 618 | SHA256: d2716b280d299330207e3ec88eeb3971abe53cda653073caef7e9068dfc48eb5 619 | Description: Fan Daemon for T2 Macs 620 | 621 | -------------------------------------------------------------------------------- /.github/scripts/touchbar: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # MIT License 4 | # 5 | # Copyright (c) 2023-24 Aditya Garg 6 | # 7 | # Permission is hereby granted, free of charge, to any person obtaining a copy 8 | # of this software and associated documentation files (the "Software"), to deal 9 | # in the Software without restriction, including without limitation the rights 10 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | # copies of the Software, and to permit persons to whom the Software is 12 | # furnished to do so, subject to the following conditions: 13 | # 14 | # The above copyright notice and this permission notice shall be included in all 15 | # copies or substantial portions of the Software. 16 | # 17 | # THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS 20 | # OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR 22 | # IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | create_config () { 25 | if [ ! -f /etc/tiny-dfr/config.toml ] 26 | then 27 | mkdir -p /etc/tiny-dfr 28 | cp /usr/share/tiny-dfr/config.toml /etc/tiny-dfr/config.toml 29 | fi 30 | } 31 | 32 | case "$1" in 33 | 34 | (--mode) 35 | create_config 36 | 37 | cat < Keyboard > Keyboard Shortcuts > Custom Shortcuts). 282 | 283 | You can be asked for Name, Command and Shortcut key when adding the shortcut. 284 | 285 | Name field can be any name you wish to assign to that shortcut. 286 | 287 | In the Command field, paste the command for your application from the list of apps displayed above. 288 | Note: If the command of your app has a % in the end (Eg: gnome-text-editor %U), remove that (Eg after removing: gnome-text-editor) 289 | 290 | For the Shortcut key, tap on the key on the touchbar you wish to assign. 291 | 292 | EOF 293 | read -p "After you have performed this setting, press Enter to continue..." 294 | 295 | cat <a', 'LaunchB']" 355 | ;; 356 | 357 | (--display) 358 | create_config 359 | 360 | cat </etc/tiny-dfr/config.toml 534 | # tiny-dfr config template. Do not edit this file directly, instead 535 | # copy it to /etc/tiny-dfr/config.toml and edit that copy. 536 | # The daemon will merge those two files, giving preference to the one in /etc 537 | 538 | # F{number} keys are shown when Fn is not pressed by default. 539 | # Set this to true if you want the media keys to be shown without Fn pressed 540 | MediaLayerDefault = false 541 | 542 | # Set this to true if you want to show app shortcuts, date and time and other 543 | # extended features in the Media layer. 544 | SpecialExtendedMode = false 545 | 546 | # Set this to false if you want to hide the button outline, 547 | # leaving only the text/logo 548 | ShowButtonOutlines = true 549 | 550 | # Set this to true to slowly shift the entire screen contents. 551 | # In theory this helps with screen longevity, but macos does not bother doing it 552 | # Disabling ShowButtonOutlines will make this effect less noticeable to the eye 553 | EnablePixelShift = false 554 | 555 | # Set this to choose the font renderer. 556 | # You can choose between "cairo" and "freetype" 557 | FontRenderer = "freetype" 558 | 559 | # Cairo font renderer settings: 560 | 561 | # Set FontStyle to the name of the font to be used for cairo as a renderer 562 | # Set Bold/Italic to true to enable this formatting 563 | FontStyle = "sans-serif" 564 | Bold = true 565 | Italic = false 566 | 567 | # FreeType font renderer settings: 568 | 569 | # Set this to the fontconfig pattern to be used to pick a font for text labels 570 | # Some examples are: 571 | # "" - default regular sans-serif font 572 | # ":bold" - default bold sans-serif font 573 | # For full reference on accepted values see the fontconfig user guide, 574 | # section "Font Names" 575 | # https://www.freedesktop.org/software/fontconfig/fontconfig-user.html 576 | FontTemplate = ":bold" 577 | 578 | # Set this to the icon theme you want to use for Media controls. 579 | # Theme can be from "/usr/share/tiny-dfr/icons", "/etc/tiny-dfr/icons" or "/usr/share/icons" 580 | MediaIconTheme = "tiny-dfr-icons" 581 | 582 | # Set this to the icon theme you want to use for App icons. 583 | # Theme can be from "/usr/share/tiny-dfr/icons", "/etc/tiny-dfr/icons" or "/usr/share/icons" 584 | AppIconTheme = "hicolor" 585 | 586 | # Set this to false if you want the brightness of the touchbar 587 | # to be set to a static value instead of following the primary 588 | # screen's brightness 589 | AdaptiveBrightness = true 590 | 591 | # With adaptive brightness disabled this is used as the brightness 592 | # in the active state 593 | # With it enabled, this is the maximum point on the brightness curve 594 | # Accepted values are 0-255 595 | ActiveBrightness = 128 596 | 597 | # This key defines the contents of the primary layer 598 | # (the one with F{number} keys) 599 | # You can change the individual buttons, add, or remove them 600 | # Any number of keys that is greater than 0 is allowed 601 | # however rendering will start to break around 24 keys 602 | EOF 603 | 604 | check_for_entry () { 605 | local $1 606 | cat /etc/tiny-dfr/config.toml.orj | grep -w $1 | grep -v "#" 607 | } 608 | 609 | for entry in "MediaLayerDefault" "SpecialExtendedMode" "ShowButtonOutlines" "EnablePixelShift" "FontRenderer" "FontStyle" "Bold" "Italic" "FontTemplate" "MediaIconTheme" "AppIconTheme" "AdaptiveBrightness" "ActiveBrightness" 610 | do 611 | checked_entry=$(check_for_entry $entry) 612 | if [[ ${checked_entry} = "" ]] 613 | then 614 | true 615 | else 616 | sed -i "s/${entry}.*/${checked_entry}/g" /etc/tiny-dfr/config.toml || true 617 | fi 618 | done 619 | 620 | layers () { 621 | local $1 622 | start_tag="$1 = [" 623 | end_tag="]" 624 | 625 | found_section=false 626 | 627 | while IFS= read -r line; do 628 | if [[ $line == *"$start_tag"* ]]; then 629 | found_section=true 630 | echo "$line" 631 | elif $found_section; then 632 | echo "$line" 633 | if [[ $line == *"$end_tag"* ]]; then 634 | break 635 | fi 636 | fi 637 | done < "/etc/tiny-dfr/config.toml.orj" 638 | } 639 | 640 | for layer in "PrimaryLayerKeys" "MediaLayerKeys" "AppLayerKeys1" "AppLayerKeys2" "AppLayerKeys3" 641 | do 642 | checked_layer=$(layers $layer) 643 | if [[ ${checked_layer} = "" ]] 644 | then 645 | case ${layer} in 646 | 647 | (PrimaryLayerKeys) 648 | cat <>/etc/tiny-dfr/config.toml 649 | PrimaryLayerKeys = [ 650 | # Action defines the key code to send when the button is pressed 651 | # Text defines the button label 652 | # Icon specifies the icon to be used for the button. 653 | # Stretch specifies how many button spaces the button should take up 654 | # and defaults to 1 655 | # Icons can either be svgs or pngs, with svgs being preferred 656 | # For best results with pngs, they should be 48x48 657 | # Do not include the extension in the icon name. 658 | # Icons are looked up in /etc/tiny-dfr first and then in /usr/share/tiny-dfr 659 | # If you add a custom Path of icon, then that shall be used instead of icon name. 660 | # eg: Path = "/usr/share/pixmaps/discord.png" will use only the icon present 661 | # at this location 662 | # Mode = app will use AppIconTheme, Media will use MediaIconTheme for icons, 663 | # unless Path is specified. 664 | # You can also add Background = true or Background = false to show or 665 | # hide the button outline for individual buttons. By default, apps do not 666 | # have background while media and other keys have it. 667 | # Only one of Text or Icon is allowed, 668 | # if both are present, the behavior is undefined. 669 | # For the list of supported key codes see 670 | # https://docs.rs/input-linux/latest/input_linux/enum.Key.html 671 | # Note that the escape key is not specified here, as it is added 672 | # automatically on Macs without a physical one 673 | { Text = "F1", Action = "F1" }, 674 | { Text = "F2", Action = "F2" }, 675 | { Text = "F3", Action = "F3" }, 676 | { Text = "F4", Action = "F4" }, 677 | { Text = "F5", Action = "F5" }, 678 | { Text = "F6", Action = "F6" }, 679 | { Text = "F7", Action = "F7" }, 680 | { Text = "F8", Action = "F8" }, 681 | { Text = "F9", Action = "F9" }, 682 | { Text = "F10", Action = "F10" }, 683 | { Text = "F11", Action = "F11" }, 684 | { Text = "F12", Action = "F12" } 685 | # Example with Stretch: 686 | # # because most buttons have stretch 2, they behave as if they all had 1: 687 | # { Text = "F1", Action = "F1", Stretch = 2 }, 688 | # { Text = "F2", Action = "F2", Stretch = 2 }, 689 | # # these two buttons are half the size of the other buttons: 690 | # { Text = "F3", Action = "F3", Stretch = 1 }, 691 | # { Text = "F4", Action = "F4", Stretch = 1 }, 692 | # { Text = "F5", Action = "F5", Stretch = 2 }, 693 | # { Text = "F6", Action = "F6", Stretch = 2 }, 694 | # { Text = "F7", Action = "F7", Stretch = 2 }, 695 | # # these two buttons are one and a half the size of the other buttons: 696 | # { Text = "F8", Action = "F8", Stretch = 3 }, 697 | # { Text = "F9", Action = "F9", Stretch = 3 }, 698 | # { Text = "F10", Action = "F10", Stretch = 2 }, 699 | # { Text = "F11", Action = "F11", Stretch = 2 }, 700 | # { Text = "F12", Action = "F12", Stretch = 2 } 701 | ] 702 | EOF 703 | ;; 704 | 705 | (MediaLayerKeys) 706 | cat <>/etc/tiny-dfr/config.toml 707 | 708 | # This key defines the contents of the media key layer 709 | MediaLayerKeys = [ 710 | { Icon = "display-brightness-low-symbolic", Action = "BrightnessDown", Mode = "Media"}, 711 | { Icon = "display-brightness-high-symbolic", Action = "BrightnessUp", Mode = "Media"}, 712 | { Icon = "microphone-disabled-symbolic", Action = "MicMute", Mode = "Media"}, 713 | { Icon = "system-search-symbolic", Action = "Search", Mode = "Media"}, 714 | { Icon = "keyboard-brightness-low-symbolic", Action = "IllumDown", Mode = "Media"}, 715 | { Icon = "keyboard-brightness-high-symbolic", Action = "IllumUp", Mode = "Media"}, 716 | { Icon = "media-seek-backward-symbolic", Action = "PreviousSong", Mode = "Media"}, 717 | { Icon = "media-playback-start-symbolic", Action = "PlayPause", Mode = "Media"}, 718 | { Icon = "media-seek-forward-symbolic", Action = "NextSong", Mode = "Media"}, 719 | { Icon = "audio-volume-muted-symbolic", Action = "Mute", Mode = "Media"}, 720 | { Icon = "audio-volume-low-symbolic", Action = "VolumeDown", Mode = "Media"}, 721 | { Icon = "audio-volume-high-symbolic", Action = "VolumeUp", Mode = "Media"} 722 | ] 723 | EOF 724 | ;; 725 | 726 | (AppLayerKeys1) 727 | cat <>/etc/tiny-dfr/config.toml 728 | 729 | # This key defines the contents of the main app key layer 730 | # Macro1 key switches to AppLayerKeys1 731 | # Macro2 key switches to AppLayerKeys2 732 | # Macro3 key switches to AppLayerKeys3 733 | AppLayerKeys1 = [ 734 | { Icon = "app1", Action = "Prog1", Mode = "App"}, 735 | { Icon = "app2", Action = "Prog2", Mode = "App"}, 736 | { Icon = "app3", Action = "Prog3", Mode = "App"}, 737 | { Icon = "app4", Action = "Prog4", Mode = "App"}, 738 | { Icon = "go-next-symbolic", Action = "Macro2", Mode = "Media"}, 739 | { Action = "Time", Mode = "Time", Format = "12hr", Locale = "en_US", Stretch = 3}, 740 | { Icon = "audio-volume-low-symbolic", Action = "VolumeDown", Mode = "Media"}, 741 | { Icon = "audio-volume-high-symbolic", Action = "VolumeUp", Mode = "Media"}, 742 | { Icon = "media-playback-start-symbolic", Action = "PlayPause", Mode = "Media"}, 743 | { Icon = "system-search-symbolic", Action = "Search", Mode = "Media"}, 744 | { Icon = "go-next-symbolic", Action = "Macro3", Mode = "Media"} 745 | ] 746 | EOF 747 | ;; 748 | 749 | (AppLayerKeys2) 750 | cat <>/etc/tiny-dfr/config.toml 751 | 752 | # This key defines the contents of the app key layer showing additional apps 753 | AppLayerKeys2 = [ 754 | { Icon = "go-previous-symbolic", Action = "Macro1", Mode = "Media"}, 755 | { Icon = "web-browser-symbolic", Action = "WWW", Mode = "Media", Background = false}, 756 | { Icon = "accessories-calculator-symbolic", Action = "Calc", Mode = "Media", Background = false}, 757 | { Icon = "system-file-manager-symbolic", Action = "File", Mode = "Media", Background = false}, 758 | { Icon = "view-app-grid-symbolic", Action = "AllApplications", Mode = "Media", Background = false}, 759 | { Action = "Time", Mode = "Time", Format = "12hr", Locale = "en_US", Stretch = 3}, 760 | { Icon = "audio-volume-low-symbolic", Action = "VolumeDown", Mode = "Media"}, 761 | { Icon = "audio-volume-high-symbolic", Action = "VolumeUp", Mode = "Media"}, 762 | { Icon = "media-playback-start-symbolic", Action = "PlayPause", Mode = "Media"}, 763 | { Icon = "system-search-symbolic", Action = "Search", Mode = "Media"}, 764 | { Icon = "go-next-symbolic", Action = "Macro3", Mode = "Media"} 765 | ] 766 | EOF 767 | ;; 768 | 769 | (AppLayerKeys3) 770 | cat <>/etc/tiny-dfr/config.toml 771 | 772 | # This key defines the contents of the app key layer showing all media icons 773 | AppLayerKeys3 = [ 774 | { Icon = "go-previous-symbolic", Action = "Macro1", Mode = "Media"}, 775 | { Icon = "display-brightness-low-symbolic", Action = "BrightnessDown", Mode = "Media"}, 776 | { Icon = "display-brightness-high-symbolic", Action = "BrightnessUp", Mode = "Media"}, 777 | { Icon = "microphone-disabled-symbolic", Action = "MicMute", Mode = "Media"}, 778 | { Icon = "keyboard-brightness-low-symbolic", Action = "IllumDown", Mode = "Media"}, 779 | { Icon = "keyboard-brightness-high-symbolic", Action = "IllumUp", Mode = "Media"}, 780 | { Icon = "media-seek-backward-symbolic", Action = "PreviousSong", Mode = "Media"}, 781 | { Icon = "media-playback-start-symbolic", Action = "PlayPause", Mode = "Media"}, 782 | { Icon = "media-seek-forward-symbolic", Action = "NextSong", Mode = "Media"}, 783 | { Icon = "audio-volume-muted-symbolic", Action = "Mute", Mode = "Media"}, 784 | { Icon = "audio-volume-low-symbolic", Action = "VolumeDown", Mode = "Media"}, 785 | { Icon = "audio-volume-high-symbolic", Action = "VolumeUp", Mode = "Media"} 786 | ] 787 | EOF 788 | ;; 789 | esac 790 | 791 | else 792 | echo -e "\n${checked_layer}" >> /etc/tiny-dfr/config.toml 793 | fi 794 | done 795 | 796 | cat <