import sys from PyQt5 import QtWidgets, QtGui, QtCore class DesktopPet(QtWidgets.QLabel): def __init__(self, gif_path): super().__init__() # Load animated GIF self.movie = QtGui.QMovie(gif_path, QtCore.QByteArray(), self) self.setMovie(self.movie) self.movie.start() # Remove window frame, stay on top self.setWindowFlags( QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.SubWindow ) # Transparent background self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True) # Resize to GIF size self.resize(self.movie.currentPixmap().size()) # Place bottom-right screen = QtWidgets.QApplication.primaryScreen().geometry() x = screen.width() - self.width() - 20 y = screen.height() - self.height() - 50 self.move(x, y) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) pet = DesktopPet(sys.argv[1]) pet.show() sys.exit(app.exec_())