История изменений
Исправление CrX, (текущая версия) :
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Nirvana Launcher v0.2 by saahriktu
# 2025 (c) under GNU GPLv3
import sys
import subprocess
from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from PyQt6.QtCore import Qt
# Вместо этого ты можешь из отдельного файла грузить. Ну или прям так можно, меньше кавычек и двоеточий
CONFIG_TEXT = """A /usr/lib64/LibreOffice-still/program/scalc
B brave
C qtcreator
D dia
E emacs
F firefox
G gambas3
I qbittorrent
K konversation
L lazarus
M qmmp-1
P psi-plus
Q qalculate-gtk
S skypeforlinux
T telegram-desktop
U thunderbird
W /usr/lib64/LibreOffice-still/program/swriter
Y yandex-browser-stable
1 gimp
2 inkscape
3 librecad
0 terminology"""
class NirvanaLauncher(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.config = {}
# Вот тут вместо хардкода выше грузишь из файла, но пока
for line in CONFIG_TEXT.split('\n'):
keyname, command = line.split(" ", 1)
keycode = ord(keyname)
self.config[keycode] = command
def initUI(self):
self.setWindowTitle("Nirvana Launcher")
self.setGeometry(100, 100, 300, 100)
layout = QVBoxLayout()
label = QLabel("Nirvana Launcher", self)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout.addWidget(label)
self.setLayout(layout)
self.show()
def keyPressEvent(self, event):
keycode = event.key()
if keycode in self.config:
self.launch_application(self.config[keycode])
def launch_application(self, app_name):
try:
subprocess.Popen(app_name)
QApplication.quit()
except Exception as e:
print(f"Error launching {app_name}: {e}")
if __name__ == "__main__":
app = QApplication(sys.argv)
launcher = NirvanaLauncher()
sys.exit(app.exec())
Исправление CrX, :
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Nirvana Launcher v0.2 by saahriktu
# 2025 (c) under GNU GPLv3
import sys
import subprocess
from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from PyQt6.QtCore import Qt
# Вместо этого ты можешь из отдельного файла грузить. Ну или прям так можно, меньше кавычек и двоеточий
CONFIG_TEXT = """A /usr/lib64/LibreOffice-still/program/scalc
B brave
C qtcreator
D dia
E emacs
F firefox
G gambas3
I qbittorrent
K konversation
L lazarus
M qmmp-1
P psi-plus
Q qalculate-gtk
S skypeforlinux
T telegram-desktop
U thunderbird
W /usr/lib64/LibreOffice-still/program/swriter
Y yandex-browser-stable
1 gimp
2 inkscape
3 librecad
0 terminology"""
class NirvanaLauncher(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.config = {}
# Вот тут вместо хардкода грузишь из файла, но пока
for line in CONFIG_TEXT.split('\n'):
keyname, command = line.split(" ", 1)
keycode = ord(keyname)
self.config[keycode] = command
def initUI(self):
self.setWindowTitle("Nirvana Launcher")
self.setGeometry(100, 100, 300, 100)
layout = QVBoxLayout()
label = QLabel("Nirvana Launcher", self)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout.addWidget(label)
self.setLayout(layout)
self.show()
def keyPressEvent(self, event):
keycode = event.key()
if keycode in self.config:
self.launch_application(self.config[keycode])
def launch_application(self, app_name):
try:
subprocess.Popen(app_name)
QApplication.quit()
except Exception as e:
print(f"Error launching {app_name}: {e}")
if __name__ == "__main__":
app = QApplication(sys.argv)
launcher = NirvanaLauncher()
sys.exit(app.exec())
Исправление CrX, :
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Nirvana Launcher v0.2 by saahriktu
# 2025 (c) under GNU GPLv3
import sys
import subprocess
from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
from PyQt6.QtCore import Qt
# Вместо этого ты можешь из отдельного файла грузить. Ну или прям так можно, меньше кавычек и двоеточий
CONFIG_TEXT = """A /usr/lib64/LibreOffice-still/program/scalc
B brave
C qtcreator
D dia
E emacs
F firefox
G gambas3
I qbittorrent
K konversation
L lazarus
M qmmp-1
P psi-plus
Q qalculate-gtk
S skypeforlinux
T telegram-desktop
U thunderbird
W /usr/lib64/LibreOffice-still/program/swriter
Y yandex-browser-stable
1 gimp
2 inkscape
3 librecad
0 terminology"""
class NirvanaLauncher(QWidget):
def __init__(self):
super().__init__()
self.initUI()
self.config = {}
# Вот тут вместо хардкода грузишь из файла, но пока
for line in CONFIG_TEXT.split('\n'):
keyname, command = line.split(" ", 1)
keycode = ord(keyname)
self.config[keycode] = command
def load_config():
def initUI(self):
self.setWindowTitle("Nirvana Launcher")
self.setGeometry(100, 100, 300, 100)
layout = QVBoxLayout()
label = QLabel("Nirvana Launcher", self)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout.addWidget(label)
self.setLayout(layout)
self.show()
def keyPressEvent(self, event):
keycode = event.key()
if keycode in self.config:
self.launch_application(self.config[keycode])
def launch_application(self, app_name):
try:
subprocess.Popen(app_name)
QApplication.quit()
except Exception as e:
print(f"Error launching {app_name}: {e}")
if __name__ == "__main__":
app = QApplication(sys.argv)
launcher = NirvanaLauncher()
sys.exit(app.exec())
Исходная версия CrX, :
#!/usr/bin/python3
-- coding: utf-8 --
Nirvana Launcher v0.2 by saahriktu
2025 (c) under GNU GPLv3
import sys import subprocess from PyQt6.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget from PyQt6.QtCore import Qt
Вместо этого ты можешь из отдельного файла грузить. Ну или прям так можно, меньше кавычек и двоеточий
CONFIG_TEXT = «««A /usr/lib64/LibreOffice-still/program/scalc B brave C qtcreator D dia E emacs F firefox G gambas3 I qbittorrent K konversation L lazarus M qmmp-1 P psi-plus Q qalculate-gtk S skypeforlinux T telegram-desktop U thunderbird W /usr/lib64/LibreOffice-still/program/swriter Y yandex-browser-stable 1 gimp 2 inkscape 3 librecad 0 terminology»»»
class NirvanaLauncher(QWidget): def init(self): super().init()
self.initUI()
self.config = {}
# Вот тут вместо хардкода грузишь из файла, но пока
for line in CONFIG_TEXT.split('\n'):
keyname, command = line.split(" ", 1)
keycode = ord(keyname)
self.config[keycode] = command
def load_config():
def initUI(self):
self.setWindowTitle("Nirvana Launcher")
self.setGeometry(100, 100, 300, 100)
layout = QVBoxLayout()
label = QLabel("Nirvana Launcher", self)
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout.addWidget(label)
self.setLayout(layout)
self.show()
def keyPressEvent(self, event):
keycode = event.key()
if keycode in self.config:
self.launch_application(self.config[keycode])
def launch_application(self, app_name):
try:
subprocess.Popen(app_name)
QApplication.quit()
except Exception as e:
print(f"Error launching {app_name}: {e}")
if name == «main»: app = QApplication(sys.argv) launcher = NirvanaLauncher() sys.exit(app.exec())