diff --git a/app/gui/oven_control/manualcookwindow.cpp b/app/gui/oven_control/manualcookwindow.cpp
index fd1832a..0fa862d 100644
--- a/app/gui/oven_control/manualcookwindow.cpp
+++ b/app/gui/oven_control/manualcookwindow.cpp
@@ -158,6 +158,11 @@ ManualCookWindow::ManualCookWindow(QWidget *parent, Define::Mode mode) :
     connect(oven, SIGNAL(changed(Oven*)), this, SLOT(onOvenUpdated(Oven*)));
     oven->setDefault(mode);
 
+    ui->infoTextLabel->setAttribute(Qt::WA_TransparentForMouseEvents);
+    ui->infoTextLabel->hide();
+    showInfoTextTimer.setInterval(1500);
+    showInfoTextTimer.setSingleShot(true);
+
     connect(&updateViewTimer, SIGNAL(timeout()), SLOT(updateView()));
     updateViewTimer.start(100);
 
@@ -447,10 +452,27 @@ QPushButton:checked\
     }
 
     bool damper = oven->damper();
-    ui->damperButton->setChecked(damper);
+    if (damper != ui->damperButton->isChecked())
+    {
+        ui->damperButton->setChecked(damper);
+
+        if (damper)
+            showInfoText("ON");
+        else
+            showInfoText("OFF");
+    }
 
     bool humidification = oven->humidification();
-    ui->humidificationButton->setChecked(humidification);
+    if (humidification != ui->humidificationButton->isChecked())
+    {
+        ui->humidificationButton->setChecked(humidification);
+        qDebug() << "humidification" << humidification;
+
+        if (humidification)
+            showInfoText("ON");
+        else
+            showInfoText("OFF");
+    }
 
     QString fanStyleSheet("\
 QPushButton { background-image: url(%1); }\
@@ -496,7 +518,15 @@ QPushButton:focus { background-image: url(%2); }");
         }
     }
 
-    ui->repeatButton->setChecked(repeat);
+    if (repeat != ui->repeatButton->isChecked())
+    {
+        ui->repeatButton->setChecked(repeat);
+
+        if (repeat)
+            showInfoText("ON");
+        else
+            showInfoText("OFF");
+    }
 
     if (cookDone)
     {
@@ -512,6 +542,24 @@ QPushButton:focus { background-image: url(%2); }");
         else
             ui->upperStack->setCurrentIndex(0); // Clock
     }
+
+    int remainingTime = showInfoTextTimer.remainingTime();
+    if (remainingTime > 500)
+    {
+        ui->infoTextLabel->setStyleSheet("color: rgb(255, 255, 255);");
+        ui->infoTextLabel->show();
+    }
+    else if (remainingTime > 0)
+    {
+        ui->infoTextLabel->setStyleSheet(
+                QString("color: rgba(255, 255, 255, %1);")
+                        .arg(qBound(0, remainingTime * 255 / 500, 255)));
+        ui->infoTextLabel->show();
+    }
+    else
+    {
+        ui->infoTextLabel->hide();
+    }
 }
 
 void ManualCookWindow::showCurrentHumidity()
@@ -538,6 +586,12 @@ void ManualCookWindow::hideCurrentTemp()
     updateView();
 }
 
+void ManualCookWindow::showInfoText(QString text)
+{
+    ui->infoTextLabel->setText(text);
+    showInfoTextTimer.start();
+}
+
 void ManualCookWindow::onOvenUpdated(Oven *oven)
 {
     updateView();
@@ -981,6 +1035,8 @@ void ManualCookWindow::on_fanButton_clicked()
         fan = oven->minFan();
 
     oven->setFan(fan);
+
+    showInfoText(QString("%1").arg(fan));
 }
 
 void ManualCookWindow::on_preheatButton_clicked()
@@ -998,17 +1054,29 @@ void ManualCookWindow::on_preheatButton_clicked()
 void ManualCookWindow::on_damperButton_clicked()
 {
     if (oven->damper())
+    {
         oven->closeDamper();
+        showInfoText("OFF");
+    }
     else
+    {
         oven->openDamper();
+        showInfoText("ON");
+    }
 }
 
 void ManualCookWindow::on_humidificationButton_clicked()
 {
     if (oven->humidification())
+    {
         oven->stopHumidification();
+        showInfoText("OFF");
+    }
     else
+    {
         oven->startHumidification(5);
+        showInfoText("ON");
+    }
 }
 
 void ManualCookWindow::on_repeatButton_clicked()
@@ -1016,11 +1084,13 @@ void ManualCookWindow::on_repeatButton_clicked()
     if (repeat)
     {
         repeat = false;
+        showInfoText("OFF");
         updateView();
     }
     else
     {
         repeat = true;
+        showInfoText("ON");
         updateView();
 
         repeatSetting.mode = oven->mode();
diff --git a/app/gui/oven_control/manualcookwindow.h b/app/gui/oven_control/manualcookwindow.h
index da33588..6a15bed 100644
--- a/app/gui/oven_control/manualcookwindow.h
+++ b/app/gui/oven_control/manualcookwindow.h
@@ -41,6 +41,7 @@ private slots:
     void hideCurrentHumidity();
     void showCurrentTemp();
     void hideCurrentTemp();
+    void showInfoText(QString text);
 
     void onOvenUpdated(Oven *oven);
 
@@ -107,6 +108,7 @@ private:
 
     QTimer showCurrentHumidityTimer;
     QTimer showCurrentTempTimer;
+    QTimer showInfoTextTimer;
 
     int humidity;
     int temp;
diff --git a/app/gui/oven_control/manualcookwindow.ui b/app/gui/oven_control/manualcookwindow.ui
index 3ed2504..f7c5d36 100644
--- a/app/gui/oven_control/manualcookwindow.ui
+++ b/app/gui/oven_control/manualcookwindow.ui
@@ -1300,6 +1300,32 @@ QPushButton:checked:focus
      <string notr="true">background-image: url(:/images/line/manual_button.png);</string>
     </property>
    </widget>
+   <widget class="QLabel" name="infoTextLabel">
+    <property name="geometry">
+     <rect>
+      <x>0</x>
+      <y>720</y>
+      <width>900</width>
+      <height>600</height>
+     </rect>
+    </property>
+    <property name="font">
+     <font>
+      <pointsize>48</pointsize>
+      <weight>75</weight>
+      <bold>true</bold>
+     </font>
+    </property>
+    <property name="styleSheet">
+     <string notr="true">color: rgba(255, 255, 255, 255);</string>
+    </property>
+    <property name="text">
+     <string>ON</string>
+    </property>
+    <property name="alignment">
+     <set>Qt::AlignCenter</set>
+    </property>
+   </widget>
    <zorder>sysLine_8</zorder>
    <zorder>sysLine_7</zorder>
    <zorder>sysLine_9</zorder>
@@ -1334,6 +1360,7 @@ QPushButton:checked:focus
    <zorder>humiditySlider</zorder>
    <zorder>timeSlider</zorder>
    <zorder>interTempSlider</zorder>
+   <zorder>infoTextLabel</zorder>
   </widget>
  </widget>
  <customwidgets>