#!/usr/bin/python3
 
import tkinter 
import keyboard

top = tkinter.Tk()

x=0
y=0

color=[
    '#181818',
    '#1F1F1F'
]

x1=0
y1=0

x2=0
y2=0

size=[ 400, 200 ]

have_border = True

# 设置窗口大小
top.geometry('400x200')

# 设置窗口标题
top.title('Boringmj')

# 窗口设置为顶层窗口
top.attributes('-topmost', True)

# 设置窗口背景为黑色
top.configure(bg='#181818')

# 设置无边框
top.overrideredirect(True)

# 设置窗口可以拉伸
top.resizable(True, True)

# 鼠标可以拖动窗口(先获取到鼠标的位置,然后再获取到窗口的位置,然后计算出鼠标移动的距离,然后再将窗口移动到鼠标移动的距离)
def move(event):
    global x, y, size
    new_x = (event.x - x) + top.winfo_x()
    new_y = (event.y - y) + top.winfo_y()
    s = str(size[0]) + 'x' + str(size[1]) + '+' + str(new_x) + '+' + str(new_y)
    top.geometry(s)
def button_1(event):
    global x, y
    x = event.x
    y = event.y
top.bind("<B1-Motion>", move)
top.bind("<Button-1>", button_1)

# 右键点击就切换背景颜色
def change_bg(event):
    global color
    top.configure(bg=color[0])
    color.reverse()
top.bind("<Button-3>", change_bg)

# 监听键盘按下“*”键,按下时记录当前窗口的位置
def on_triggered_add():
    global x1, y1
    x1 = top.winfo_x()
    y1 = top.winfo_y()
    print(x1, y1)
keyboard.add_hotkey('*', on_triggered_add)

# 监听键盘按下“/”键,按下时切换窗口的位置
def on_triggered_sub():
    global x2, y2, x1, y1, size
    x2 = top.winfo_x()
    y2 = top.winfo_y()
    print(x2, y2)
    top.geometry(str(size[0]) + 'x' + str(size[1]) + '+' + str(x1) + '+' + str(y1))
    x1 = x2
    y1 = y2
keyboard.add_hotkey('/', on_triggered_sub)

# 监听键盘按下“+”键,按下时窗口放大
def on_triggered_up():
    global size
    size[0] += 10
    size[1] += 10
    top.geometry(str(size[0]) + 'x' + str(size[1]))
keyboard.add_hotkey('+', on_triggered_up)

# 监听键盘按下“-”键,按下时窗口缩小
def on_triggered_down():
    global size
    size[0] -= 10
    size[1] -= 10
    top.geometry(str(size[0]) + 'x' + str(size[1]))
keyboard.add_hotkey('-', on_triggered_down)

# 监听窗口大小变化
def on_window_resize(event):
    global size
    new_width = event.width
    new_height = event.height
    size[0] = new_width
    size[1] = new_height
    print("窗口大小变化为：{}x{}".format(new_width, new_height))
top.bind("<Configure>", on_window_resize)

# 监听键盘按下“*”键,按下时切换无边框于有边框
def on_triggered_border():
    global have_border
    have_border = not have_border
    top.overrideredirect(have_border)
keyboard.add_hotkey('*', on_triggered_border)

# 进入消息循环
top.mainloop()