from libqtile import widget
from .theme import colors
#import battery
#from .seting import owm
#from settings import owm`


import subprocess
from libqtile.widget import base
from libqtile import widget

#import net
#import batterya
#import arcobattery
import os
import re
import socket
import subprocess
from libqtile import qtile
from libqtile.config import Click, Drag, Group, KeyChord, Key, Match, Screen
#from libqtile.command import lazy
from libqtile import layout, bar, widget, hook
from libqtile.lazy import lazy
from libqtile.utils import guess_terminal




#------------------------------
# Get the icons at https://www.nerdfonts.com/cheat-sheet (you need a Nerd Font)

def base(fg='text', bg='dark'): 
    return {
        'foreground': colors[fg],
        'background': colors[bg],
        #        'foregeound_alert': color[af],
#	'background':["#000000.00"]
    }


def separator():
    return widget.Sep(**base(), linewidth=0, padding=10)


def icon(fg='rojo', bg='dark', fontsize=16, text="?"):
    return widget.TextBox(
        **base(fg, bg),
        fontsize=fontsize,
        text=text,
        padding=1
    )


def powerline(fg="azul", bg="dark"):
    return widget.TextBox(
        **base(fg, bg),
        text="", # Icon: nf-oct-triangle_left
        fontsize=42,
        padding=-3
    )


def workspaces(): 
    return [
        separator(),
        widget.GroupBox(
            **base(fg='azul'),
            font='UbuntuMono Nerd Font',
            fontsize=19,
            margin_y=3,
            margin_x=0,
            padding_y=8,
            padding_x=5,
            borderwidth=1,
            active=colors['active'],
            inactive=colors['inactive'],
            rounded=True,
            highlight_method='block',
            urgent_alert_method='block',
            urgent_border=colors['urgent'],
            this_current_screen_border=colors['focus'],
            this_screen_border=colors['grey'],
            other_current_screen_border=colors['dark'],
            other_screen_border=colors['dark'],
            disable_drag=True
        ),
        separator(),
        widget.WindowName(**base(fg='focus'), fontsize=18, padding=5,font='iosevka regular'),
        separator(),
    ]


def workspaces_b():
    return [
        separator(),
        separator(),
        widget.WindowName(**base(fg='azul'), padding=5,
        font='iosevka regular',
        fontsize=20,
        ),
        separator(),
    ]

primary_widgets = [
    *workspaces(),

    separator(),
    powerline('temp5','dark'),

    widget.Wttr(**base(bg='temp5',fg='blanco'),
    lang='es',
    location={
	'Reus': 'Reus',
#	'41.15883703110864, 1.1074393937575309': 'Reus',
#        '64.127146,-21.873472': 'Reykjavik',
#        '~Vostok Station': 'Nice place',
	},
	format='%m %M',
	units='m',
	update_interval=30,
	fontsize=16, font='iosevka regular',
    ),

    powerline('temp4','temp5'),
    widget.Wttr(**base(bg='temp4',fg='blanco'),
	lang='es',
	location={'Reus':'Reus', },
	format='%w %c  ',
	units='m',
	update_interval=30,
	fontsize=16, font='iosevka regular',
	),

	powerline('salmon','temp4'),
	widget.Wttr(**base(bg='salmon',fg='blanco'),
	lang='es',
	location={'Reus':'Reus',},
	format='T: %t Rf: %f  ',
	units='m',
	update_interval=15,
	fontsize=16, font='iosevka regular',
	),

    powerline('temp2','salmon'),
    widget.Wttr(**base(bg='temp2',fg='blanco'),
        lang='es',
	location={'Reus':'Reus', },
	format=' %P  ',
	units='m',
	update_interval=30,
	fontsize=16, font='iosevka regular',
    ),
    powerline('temp1','temp2'),
    widget.Wttr(**base(bg='temp1',fg='blanco'),
        lang='es',
	location={'Reus':'Reus', },
	format=' H: %h  ',
	units='m',
	update_interval=30,
	fontsize=16, font='iosevka regular',
	),

# hay que dublicar el codigo de weather

    powerline('oceano', 'temp1'),
    widget.CurrentLayoutIcon(**base(bg='oceano',fg='blanco'), scale=0.65),
    powerline('rosa', 'oceano'),
    icon(bg="rosa",fg="blanco", fontsize=17, text=' '), # Icon: nf-mdi-calendar_clock
    widget.Clock(**base(bg='rosa',fg='blanco'), format='%d/%m-%H:%M:%S ', fontsize=16, font='iosevka regular'),
    powerline('dark', 'rosa'),

#    widget.Battery(**base(bg='rojo', fg='verde'),
#                  padding = 5,
#                  ),



#    widget.Battery(**base(bg='rojo', fg='blanco'),),

#                widget.BatteryIcon(**battery_icon_settings),

#    widget.NetworkStatus(**base(bg='oceano',fg='blanco'), scale=0.65),
#widget.BatteryIcon(**base(bg='rojo', fg='verde'),
#                    battery=0 + 1 ,
#                    update_interval=10,
#                    charge_char='^',
#                    discharge_char='...', 
#                    unknown_char='',
#                    #font=fonts[1],
#                    #fontsize=24,
#                    low_foreground='blanco',
#                    format="{percent:2.0%} {char}",
#                    low_percentage=0.2,
#                    notify_below=20,
#                    ),
#                    #                    update_interval=10,

                









]

secondary_widgets = [
	*workspaces_b(),

	

	separator(),

	powerline('dark', 'dark'),
#	icon(bg='dark',fg='dark'),
	widget.Wallpaper(
	directory="/home/neykto/Escritorio/neykto/imagines/Wallpapers-master/",
	ranndom_selection="true",
	update_interval=1,
        background=colors['dark'],
        foreground=colors['dark'],

),

	powerline('rojo', 'dark'),
	icon(bg='rojo', fg='blanco', text=' '),
        widget.GenPollText(
	func= lambda: subprocess.check_output("/home/neykto/.config/showTarget.sh").decode("utf-8"),
	scale=0.65, padding=5,font='iosevka regular',
        fontsize=18,margin_y=3,margin_x=0,padding_y=8,padding_x=5,
	background=colors['rojo'],
	update_interval=5,


        ),

	powerline('oceano', 'rojo'),
	icon(bg='oceano', fg='blanco', text=''),
        widget.GenPollText(
	func= lambda: subprocess.check_output("/home/neykto/.config/showipOut.sh").decode("utf-8"),
	scale=0.65, padding=5,font='iosevka regular',
        fontsize=18,margin_y=3,margin_x=0,padding_y=8,padding_x=5,
	background=colors['oceano'],
        update_interval=15,

        ),




powerline('lila', 'oceano'),
	icon(bg="lila", fg="blanco", text=""), # Icon: nf-fa-download  --UPDATES SYS
	widget.GenPollText(
	func= lambda: subprocess.check_output("/home/neykto/.config/showip.sh").decode("utf-8"),
	font='iosevka regular',
	fontsize=18,
	scale=10.65,
	padding=5,
	background=colors['lila'],
	colour_have_updates=colors['blanco'],
	colour_no_updates=colors['azul'],
	no_update_string='0',
#		display_format='{updates}',
	update_interval=15,
#		custom_command='checkupdates',
	),




        powerline('verde', 'lila'),
#	icon(bg='lila',fg='blanco', text='W'),
        widget.Net(**base(bg='verde', fg='blanco'), format='{down:<5}{up:<5}',
	scale=0.65, padding=5,font='iosevka regular',
                fontsize=18,margin_y=3,margin_x=0,padding_y=8,padding_x=5,
#text='curl wttr.in/Reus',

        ),

	powerline('temp2', 'verde'),
	widget.CPU(**base(bg='temp2', fg='blanco'), 
	format='CPU {load_percent:>4.2f}%',
	scale=0.65, padding=5,font='iosevka regular',
	fontsize=18,margin_y=3,margin_x=0,padding_y=8,padding_x=5,

	),


	powerline('rojo', 'temp2'),
	widget.Memory(**base(bg='rojo', fg='blanco'), 
		# format='{MemUsed: .0f}{mm}/{MemTotal: .0f}{mm}/{MemPercent: .0f}% /{Buffers: .0f}{mm}' ,
		format=' {MemUsed:.0f}{mm}/{MemPercent:.0f}% /{Buffers: .0f}{mm}' ,
		font='iosevka regular',
		fontsize=18,margin_y=1,margin_x=0,padding_y=8,padding_x=5
	),






powerline('temp5', 'rojo'),
	icon(bg="temp5", fg="blanco", fontsize='20',text=' '),
        widget.DF(**base(bg='temp5', fg='blanco'), 
		scale=0.65, padding=5,font='iosevka regular',
                fontsize=18,margin_y=3,margin_x=0,padding_y=8,padding_x=5,
	warn_space=10,
#	format='{p} ({uf} {f} {s} {m})|{r:0.1f}%',
	format='{r:0.1f}%',
	partition='/',
	visible_on_warn=False,
	update_interval=10,
        ),


	powerline('naranja', 'temp5'),
	icon(bg="naranja", fg="blanco", text=' '), # Icon: nf-fa-download  --UPDATES SYS
	widget.CheckUpdates(
		font='iosevka regular',
		fontsize=18,
		scale=10.65,
		padding=5,
		background=colors['naranja'],
		colour_have_updates=colors['blanco'],
		colour_no_updates=colors['temp5'],
		no_update_string='0',
		display_format='{updates}',
		update_interval=180,
		custom_command='checkupdates',
	),





]






widget_defaults = {
    'font': 'UbuntuMono Nerd Font Bold',
    'fontsize': 14,
    'padding': 1,
}
extension_defaults = widget_defaults.copy()

