tuxedo-control-center
Tools
TypeScript
TUXEDO Control Center
The TUXEDO Control Center (short: TCC) gives TUXEDO laptop users full control over their hardware like CPU cores, fan speed and more.
To get a more detailed description of features, plans and the ideas behind please check our press release (english | german) and info pages (english | german).
Using it
There are pre-build packages for Ubuntu 16.04/18.04/20.04 as well as openSUSE Leap 15.x and Tumbleweed available at our repositories. For details please have a look over here.
Note: TCC depends on the tuxedo-io
module from the tuxedo-keyboard
package for some core functionality like fan control.
Project structure
tuxedo-control-center
| README.md
|--src
| |--ng-app Angular GUI (aka electron renderer)
| |--e-app Electron main
| |--service-app Daemon part (Node 12)
| |--common Common shared sources
| | |--classes
| | |--models
| |--dist-data Data needed for packaging
|--build-src Source used for building
Development setup
-
Install git, gcc, g++, make, nodejs, npm and libudev-dev
Ex (deb):curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y git gcc g++ make nodejs libudev-dev
-
Clone & install libraries
git clone https://github.com/tuxedocomputers/tuxedo-control-center
cd tuxedo-control-center
npm install
<p> <strong>Note:</strong> Do <strong>not</strong> continue with <code>npm audit fix</code>. Known to cause various issues. </li> <li> Install service file that points to development build path (or use installed service from packaged version)<br /> Manual instructions:</p> <ol dir="auto"> <li> Copy <code>tccd.service</code> and <code>tccd-sleep.service</code> (from src/dist-data) to <code>/etc/systemd/system/</code> </li> <li> Edit the <code>tccd.service</code> (exec start/stop) to point to <code><dev path>/dist/tuxedo-control-center/data/service/tccd</code>. </li> <li> Copy <code>com.tuxedocomputers.tccd.conf</code> to <code>/usr/share/dbus-1/system.d/</code> </li> <li> Start service <code>systemctl start tccd</code>. (And enable for autostart <code>systemctl enable tccd tccd-sleep</code>) </li> </ol> </li></ol> <h3 dir="auto"> <a rel="nofollow noopener" target="_blank" id="user-content-npm-scripts" class="anchor" aria-hidden="true" href="#npm-scripts"></a>NPM scripts </h3> <p> <code>npm run <script-name></code> </p> <p> Script name<br /> Description </p> <p> build<br /> Build all apps service/electron/angular </p> <p> start<br /> Normal start of electron app after build </p> <p> start-watch<br /> Start GUI with automatic reload on changes to angular directory </p> <p> test-common<br /> Test common files (jasmine) </p> <p> gen-lang<br /> Generate base for translation (<code>ng-app/assets/locale/lang.xlf</code>) </p> <p> pack-prod — all | deb | rpm<br /> Build and package for chosen target(s) </p> <p> inc-version-patch<br /> Patch version increase (updates package.json files) </p> <p> inc-version-minor<br /> Minor version increase (updates package.json files) </p> <p> inc-version-major<br /> Major version increase (updates package.json files) </p> <h3 dir="auto"> <a rel="nofollow noopener" target="_blank" id="user-content-debugging" class="anchor" aria-hidden="true" href="#debugging"></a>Debugging </h3> <p> Debugging of electron main and render process is configured for vscode in .vscode/launch.json </p> <h2 dir="auto"> <a rel="nofollow noopener" target="_blank" id="user-content-screenshots" class="anchor" aria-hidden="true" href="#screenshots"></a>Screenshots </h2> <h3 dir="auto"> <a rel="nofollow noopener" target="_blank" id="user-content-english" class="anchor" aria-hidden="true" href="#english"></a>English </h3> <h3 dir="auto"> <a rel="nofollow noopener" target="_blank" id="user-content-german" class="anchor" aria-hidden="true" href="#german"></a>German </h3>