/tuxedo-control-center

A tool to help you control performance, energy, fan and comfort settings on TUXEDO laptops.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

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

  1. 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
    
  2. Clone & install libraries

    git clone https://github.com/tuxedocomputers/tuxedo-control-center
    
    cd tuxedo-control-center
    
    npm install
    

    Note: Do not continue with npm audit fix. Known to cause various issues.

  3. Install service file that points to development build path (or use installed service from packaged version)

    Manual instructions:

    1. Copy tccd.service and tccd-sleep.service (from src/dist-data) to /etc/systemd/system/
    2. Edit the tccd.service (exec start/stop) to point to <dev path>/dist/tuxedo-control-center/data/service/tccd.
    3. Copy com.tuxedocomputers.tccd.conf to /usr/share/dbus-1/system.d/
    4. Start service systemctl start tccd. (And enable for autostart systemctl enable tccd tccd-sleep)

NPM scripts

npm run <script-name>

Script name Description
build Build all apps service/electron/angular
start Normal start of electron app after build
start-watch Start GUI with automatic reload on changes to angular directory
test-common Test common files (jasmine)
gen-lang Generate base for translation (ng-app/assets/locale/lang.xlf)
pack-prod -- all | deb | rpm Build and package for chosen target(s)
inc-version-patch Patch version increase (updates package.json files)
inc-version-minor Minor version increase (updates package.json files)
inc-version-major Major version increase (updates package.json files)

Debugging

Debugging of electron main and render process is configured for vscode in .vscode/launch.json

Screenshots

English

Systemmonitor

Dark Theme

Tools

Profiles

Profile Settings

About

German

Systemmonitor

Dark Theme

Tools

Profile

Profil Einstellungen