Skip to content

Instantly share code, notes, and snippets.

@xopr
Created December 20, 2021 08:46
Show Gist options
  • Save xopr/3ce5e54dd158876c520dd6e9776d9d04 to your computer and use it in GitHub Desktop.
Save xopr/3ce5e54dd158876c520dd6e9776d9d04 to your computer and use it in GitHub Desktop.
Set display brightness using a slider that works on touch
#!/usr/bin/env python3
# Mostly stolen from https://www.youtube.com/watch?v=ZA_PxLuofV4 / https://learndataanalysis.org/control-lcd-number-widget-with-a-slider-pyqt5-tutorial/
import sys
from PyQt5.QtWidgets import (QApplication, QWidget, QSlider, QHBoxLayout, QDesktopWidget)
from PyQt5.QtCore import Qt
from gi.repository import Gio
from gi.repository import GLib
settings = Gio.Settings('org.mate.power-manager')
b = 0
class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
self.resize(50, 50)
self.setWindowTitle('Brightness control')
screen = QApplication.primaryScreen()
availableGeometry = screen.geometry()
self.setGeometry(availableGeometry.right() - 50, availableGeometry.top(), 50, availableGeometry.height())
self.setFixedSize(50, availableGeometry.height() )
sliderB = QSlider(Qt.Vertical)
sliderB.setMaximum(100)
sliderB.setMinimum(0)
sliderB.valueChanged.connect(self.updateB)
#mouseReleaseEvent = self.slider.mouseReleaseEven
sliderB.mouseReleaseEvent = self.quit
style = """
QSlider {
width: 50px;
}
QSlider::groove:vertical {
background: #ccc;
position: absolute;
left: 0;
right: 0;
top: 0;
}
QSlider::handle:vertical {
height: 50px;
width: 50px;
background: #666;
margin: 0 -0px;
}
/*
QSlider::add-page:vertical {
background: #ccc;
}
QSlider::sub-page:vertical {
background: white;
}
*/
"""
sliderB.setStyleSheet(style)
layout = QHBoxLayout()
layout.addWidget(sliderB)
sliderB.setValue( int( settings.get_double('brightness-ac' ) ) )
self.setLayout(layout)
def updateB(self, event):
print( "B:" + str( event ) )
#onAC_Power=comands.getstatus("on_ac_power") == 0
settings.set_double('brightness-ac', event )
def quit(self, event):
print( "done" )
sys.exit(0)
#sys.exit(app.exec_())
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment