// Linux commands void keyboard_Mode0() { if (key) { switch (key) { case KEYBOARD_KEY1: Consumer.write(MEDIA_VOLUME_MUTE); break; case KEYBOARD_KEY2: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("firefox"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY2, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY3: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("spotify"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY3, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY4: Consumer.write(MEDIA_PLAY_PAUSE); break; case KEYBOARD_KEY5: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.println("keepassxc"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_ENTER); pixels.setPixelColor(KEYBOARD_KEY5, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY6: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("kicad"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY6, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY7: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("inkscape"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY7, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY8: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("freecad"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY8, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEY9: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("nautilus"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEY9, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEYA: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("terminal"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEYA, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEYB: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("lightburn"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEYB, pixels.Color( 0, 127, 0)); break; case KEYBOARD_KEYC: Keyboard.press(KEY_LEFT_GUI); delay(SYSTEM_KEY_WAIT); Keyboard.release(KEY_LEFT_GUI); delay(SYSTEM_GUI_WAIT); Keyboard.print("prusaslicer"); delay(SYSTEM_GUI_WAIT); Keyboard.press(KEY_RETURN); pixels.setPixelColor(KEYBOARD_KEYC, pixels.Color( 0, 127, 0)); break; } pixels.show(); delay(SYSTEM_KEY_WAIT); Keyboard.releaseAll(); colorUpdate = 1; } } void colors_Mode0() { if (colorUpdate == 1) { pixels.setPixelColor(KEYBOARD_KEY0, pixels.Color( 0, 0, 0)); // off pixels.setPixelColor(KEYBOARD_KEY1, pixels.Color( 0, 0, 0)); // off pixels.setPixelColor(KEYBOARD_KEY2, pixels.Color( 127, 31, 0)); // orange pixels.setPixelColor(KEYBOARD_KEY3, pixels.Color( 0, 63, 0)); // green pixels.setPixelColor(KEYBOARD_KEY4, pixels.Color( 0, 0, 0)); // off pixels.setPixelColor(KEYBOARD_KEY5, pixels.Color( 0, 127, 0)); // green pixels.setPixelColor(KEYBOARD_KEY6, pixels.Color( 127, 63, 0)); // yellow pixels.setPixelColor(KEYBOARD_KEY7, pixels.Color( 15, 15, 15)); // gray pixels.setPixelColor(KEYBOARD_KEY8, pixels.Color( 31, 31, 127)); // blue pixels.setPixelColor(KEYBOARD_KEY9, pixels.Color( 31, 63, 31)); // gray pixels.setPixelColor(KEYBOARD_KEYA, pixels.Color( 7, 7, 7)); // gray pixels.setPixelColor(KEYBOARD_KEYB, pixels.Color( 127, 0, 0)); // red pixels.setPixelColor(KEYBOARD_KEYC, pixels.Color( 127, 31, 0)); // orange pixels.show(); colorUpdate = 0; } } void encoderA_Mode0(){ long newPos = RotaryEncoderA.read()/ROTARY_SENSITIVITY; if (newPos != positionEncoderA && newPos < positionEncoderA) { positionEncoderA = newPos; Consumer.write(MEDIA_VOLUME_UP); } if (newPos != positionEncoderA && newPos > positionEncoderA) { positionEncoderA = newPos; Consumer.write(MEDIA_VOLUME_DOWN); } } void encoderB_Mode1(){ long newPos = RotaryEncoderB.read()/ROTARY_SENSITIVITY; if (newPos != positionEncoderB && newPos < positionEncoderB) { positionEncoderB = newPos; Consumer.write(MEDIA_NEXT); } if (newPos != positionEncoderB && newPos > positionEncoderB) { positionEncoderB = newPos; Consumer.write(MEDIA_PREVIOUS); } } void display_Mode0() { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= 3000) { // if the elasped time greater than 3 seconds previousMillis = currentMillis; // save the last time you checked the interval switch (updateLCD_flag) { case 0: lcd.clear(); lcd.setCursor(0, 0); lcd.print("1: empty"); lcd.setCursor(0, 1); lcd.print("2: Terminal"); lcd.setCursor(0, 2); lcd.print("3: Firefox"); lcd.setCursor(0, 3); lcd.print("4: alt+F4"); updateLCD_flag = 1; break; case 1: lcd.clear(); lcd.setCursor(0, 0); lcd.print("5: empty"); lcd.setCursor(0, 1); lcd.print("6: KiCAD"); lcd.setCursor(0, 2); lcd.print("7: Inkscape"); lcd.setCursor(0, 3); lcd.print("8: FreeCAD"); updateLCD_flag = 2; break; case 2: lcd.clear(); lcd.setCursor(0, 0); lcd.print(" 9: empty"); lcd.setCursor(0, 1); lcd.print("SYSTEM_KEY_WAIT: empty"); lcd.setCursor(0, 2); lcd.print("11: LightBurn"); lcd.setCursor(0, 3); lcd.print("12: PrusaSlicer"); updateLCD_flag = 0; break; } } }