Theme:
Asus Duo Doer for Debian
Meuon 2025-12-15 5758
Crude. First Python "App" Ever. Works.
Controls an Asus DUO (loving this Laptop).
 #!/usr/bin/env python3
import subprocess
import tkinter as tk
from tkinter import ttk
# main window
root = tk.Tk()

def trackpadon():
print('Trackpad ON')
subprocess.run(["xinput","-enable","ASUS Zenbook Duo Keyboard Touchpad"])
subprocess.run(["xinput","-enable","Primax Electronics Ltd. ASUS Zenbook Duo Keyboard Touchpad"])

def trackpadoff():
print('Trackpad OFF')
subprocess.run(["xinput","-disable","ASUS Zenbook Duo Keyboard Touchpad"])
subprocess.run(["xinput","-disable","Primax Electronics Ltd. ASUS Zenbook Duo Keyboard Touchpad"])

def screenone():
print('SCREEN ONE')
subprocess.run(["xrandr","--output","eDP-1","--auto"])
subprocess.run(["xrandr","--output", "eDP-2","--off"])
subprocess.run(["xrandr","--output", "HDMI-1","--off"])

def screentwo():
print('SCREEN TWO')
subprocess.run(["xrandr","--output","eDP-2","--auto", "--below", "eDP-1"])

def screenthree():
print('SCREEN THREE')
subprocess.run(["xrandr","--output","eDP-1","--auto"])
subprocess.run(["xrandr","--output","eDP-2","--auto", "--below", "eDP-1"])
subprocess.run(["xrandr","--output","HDMI-1","--auto", "--above", "eDP-1"])

def screenhdmionly():
print('HDMI ONly')
subprocess.run(["xrandr","--output", "eDP-2","--off"])
subprocess.run(["xrandr","--output", "eDP-1","--off"])
subprocess.run(["xrandr","--output","HDMI-1","--auto"])

def screenhdmione():
print('HDMI and Top One')
subprocess.run(["xrandr","--output", "eDP-2","--off"])
subprocess.run(["xrandr","--output", "eDP-1","--auto"])
subprocess.run(["xrandr","--output","HDMI-1","--auto"])

root.geometry('300x500')
root.resizable(False, False)
root.title('ASUS Doer')

# exit button
screen_trackpadon = ttk.Button(
root,
text='Trackpad ON',
command=lambda: trackpadon()
)
screen_trackpadoff = ttk.Button(
root,
text='Trackpad OFF',
command=lambda: trackpadoff()
)

screen_one = ttk.Button(
root,
text='ONE screens',
command=lambda: screenone()
)

screen_two = ttk.Button(
root,
text='TWO screens',
command=lambda: screentwo()
)

screen_three = ttk.Button(
root,
text='THREE screens',
command=lambda: screenthree()
)

screen_hdmionly = ttk.Button(
root,
text='HDMI Only',
command=lambda: screenhdmionly()
)

screen_hdmione = ttk.Button(
root,
text='HDMI and One',
command=lambda: screenhdmione()
)


# exit button
exit_button = ttk.Button(
root,
text='Exit',
command=lambda: root.quit()
)

screen_trackpadon.pack(
ipadx=5,
ipady=5,
expand=True
)
screen_trackpadoff.pack(
ipadx=5,
ipady=5,
expand=True
)
screen_one.pack(
ipadx=5,
ipady=5,
expand=True
)
screen_two.pack(
ipadx=5,
ipady=5,
expand=True
)
screen_three.pack(
ipadx=5,
ipady=5,
expand=True
)

screen_hdmione.pack(
ipadx=5,
ipady=5,
expand=True
)

screen_hdmionly.pack(
ipadx=5,
ipady=5,
expand=True
)

exit_button.pack(
ipadx=5,
ipady=5,
expand=True
)
root.mainloop()