#!/usr/bin/python3
#-*- coding: UTF-8 -*-
# ver 0.3

import pyautogui
import subprocess
import signal
import os
import gi

gi.require_version('Gtk', '3.0')
from gi.repository import Gtk


class ButtonWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Очистка памяти")
        self.set_border_width(20)
        hbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=25)
        self.add(hbox)

        button = Gtk.Button.new_with_mnemonic("Oчистка буфера обмена")
        button.connect("clicked", self.on_click_me_clicked1)
        hbox.pack_start(button, True, True, 0)

        button = Gtk.Button.new_with_mnemonic("Очистка памяти подкачки")
        button.connect("clicked", self.on_click_me_clicked2)
        hbox.pack_start(button, True, True, 0)

        button = Gtk.Button.new_with_mnemonic("Очистка кеша страниц памяти")
        button.connect("clicked", self.on_click_me_clicked3)
        hbox.pack_start(button, True, True, 0)

        button = Gtk.Button.new_with_mnemonic("Чистим корзины пользователей")
        button.connect("clicked", self.on_click_me_clicked4)
        hbox.pack_start(button, True, True, 0)

    def on_click_me_clicked1(self, button1):
        subprocess.run("xsel -csb", shell=True,);
        pyautogui.alert('Oчистка буфера обмена, Выполнена!')

    def on_click_me_clicked2(self, button2):
        subprocess.run("beesu -c 'swapoff -a && swapon -a'", shell=True)
        pyautogui.alert('Oчистка памяти подкачки, Выполнена!')

    def on_click_me_clicked3(self, button3):
        subprocess.run("beesu -c 'sync; echo 3 >/proc/sys/vm/drop_caches'", shell=True);
        pyautogui.alert('Oчистка кеша, Выполнена!')

    def on_click_me_clicked4(self, button4):
        subprocess.run("rm -rf /home/*/.local/share/Trash/*/**", shell=True)
        pyautogui.alert('Oчистка корзины пользователя, Выполнена!')



win = ButtonWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
