sábado, 13 de abril de 2024

icewm-remember-settings

GUI para gestionar tamaño y posición de cualquier ventana en icewm (escrito en bash, aparece en la versión 23 de antix. es compatible con versiones anteriores de antix). 



Un script de Bash diseñado para interactuar con la configuración de ventanas del gestor de ventanas IceWM. Este script permite a los usuarios guardar y restaurar configuraciones específicas de ventanas, como la geometría, el espacio de trabajo y la capa de una ventana. Además, ofrece funcionalidades para seleccionar y listar ventanas abiertas, y para mostrar una ventana de ayuda. Un análisis de las diferentes secciones y funcionalidades del script:

1. **Variables Iniciales y Configuración de Localización**:
   - Define dónde IceWM buscará los archivos de idioma.
   - Define algunas variables para controlar la interacción con la ventana, como el foco inicial y si se deben listar o seleccionar ventanas.

2. **Procesamiento de Argumentos**:
   - El script procesa argumentos de línea de comandos para ajustar las variables `select` y `list` que controlan si el script actúa en modo selección o listado.

3. **Localización del Archivo de Configuración (`winoptions`)**:
   - Intenta localizar el archivo `winoptions` en diferentes directorios configurados a través de variables de entorno o rutas comunes, para determinar dónde guardar las configuraciones de las ventanas.

4. **Funciones Definidas**:
   - `select_window`: Restablece el script para seleccionar una ventana cuando se lo invoque.
   - `save_changes`: Guarda o elimina configuraciones de una ventana basadas en la información temporal almacenada y luego elimina el archivo temporal.
   - `help_dialog`: Muestra una ventana de diálogo de ayuda utilizando `yad`, una herramienta para crear cuadros de diálogo GTK.
   - `list_dialog`: Lista todas las ventanas abiertas permitiendo al usuario seleccionar una para configurar.
   - `main_dialog`: Es la función principal que interactúa con el usuario para obtener configuraciones de ventana, mostrar y manipular datos, y llamar a `save_changes` si es necesario.

5. **Ciclo Principal de Ejecución**:
   - El script entra en un bucle controlado por la variable `loop`.
   - Dentro del bucle, dependiendo de las variables `select` y `list`, llama a las funciones `main_dialog` o `list_dialog` para procesar o interactuar con las ventanas.
   - El script puede terminar o continuar basado en interacciones del usuario y si se seleccionó alguna opción de listado o selección de ventanas.

6. **Limpieza Final**:
   - Limpia y elimina las funciones y variables de ayuda para evitar que se ejecuten o muestren de nuevo.

### Aspectos Notables y Consideraciones:

- **Flexibilidad y Personalización**: El script ofrece varias formas de interactuar con la configuración de ventanas de IceWM, lo que lo hace útil para usuarios que desean tener un control más fino sobre el comportamiento de su entorno de escritorio.
 

- **Dependencia de Herramientas Externas**: Dependencias como `yad`, `wmctrl`, e `icesh` son cruciales para la funcionalidad del script. Asegúrate de que estas herramientas estén instaladas en el sistema donde se ejecuta el script.
 

- **Manejo de Archivos Temporales**: El script hace un uso extenso de archivos temporales para manejar la configuración y los datos de las ventanas, lo cual es práctico pero requiere asegurarse de que se limpian adecuadamente para evitar residuos o fugas de información.
 

- **Robustez**: El script verifica la existencia de directorios y archivos antes de proceder, lo cual es una buena práctica para evitar errores de ejecución.

En resumen, el script es una herramienta avanzada para gestionar configuraciones específicas de ventanas en IceWM, diseñada para ser utilizada por usuarios que quieran optimizar su experiencia de usuario en entornos Linux con IceWM.


 
#!/bin/bash
# -*- mode:sh -*-
#
# This program is based on BobC's, PPC's and icewm team's effort.
#

# localization
TEXTDOMAINDIR=/usr/share/locale
TEXTDOMAIN=icewm-remember-settings

#initial values
focus="-f"
select=0
list=0
loop=1

# check for extra options
while [[ $# -ge 1 ]]
do
    case $1 in
        (-s) select=1 ;;
        (-l) list=1 ;;
    esac
    shift
done

# locate winoptions
if [[ -d $ICEWM_PRIVCFG ]]
then
	winoptions=$ICEWM_PRIVCFG/winoptions
elif [[ -d $XDG_CONFIG_HOME && -d $XDG_CONFIG_HOME/icewm ]]
then
	winoptions=$XDG_CONFIG_HOME/icewm/winoptions
elif [[ -d $HOME/.config/icewm ]]
then
	winoptions=$HOME/.config/icewm/winoptions
elif [[ -d $HOME/.icewm ]]
then
	winoptions=$HOME/.icewm/winoptions
else
	echo "$0: Cannot find your icewm config directory" >&2
	exit 1
fi

#function to call again this program, but having the user click on the specific window
select_window(){
	echo "selecting window"
	# remove temporary file
	rm -f -- "$temp"
	#give select option
	select=1
	focus=
	loop=1
}

#function to add/remove changes
save_changes(){
	# delete all previous data for the program
	#delete geometry
	sed -i -e "/$cls_geo/d" "$winoptions"
	#delete layer
	sed -i -e "/$cls_lay/d" "$winoptions"
	#delete workspace
	sed -i -e "/$cls_wsp/d" "$winoptions"
	
	# add new selected information for the program, reading the temp file
    while IFS= read -r line
	do
		# geometry
		if [[ "$line" == "geometry" ]]
		then
			# add new
			echo "$new_geo" >> "$winoptions"
		fi
		# layer
		if [[ "$line" == "layer" ]]
		then
			# add new
			echo "$new_lay" >> "$winoptions"
		fi
		# workspace
		if [[ "$line" == "workspace" ]]
		then
			# add new
			echo "$new_wsp" >> "$winoptions"
		fi
	done < "$temp"
	
	# remove temporary file
	rm -f -- "$temp"
	
	# let icewm reload the winoptions
	icesh winoptions
	
	#stop select option
	select=0
	
	#if list not selected, stop loop
	if [[ list -eq 0 ]]; then
	loop=0
	fi
}

#launches help window
help_dialog()
{
	yad --image="gtk-dialog-info" --height=250 --width=400 --scroll \
	--title=$"HELP" --class="IceWM-remember-settings" --name="help" --borders=10 --center \
	--form --field=$"Save the size and position, workspace \
and layer of a window using the IceWM-remember-settings app.":LBL '' \
	--field=$"Next time you launch the program, it will remember the \
window properties last saved.":LBL '' \
	--field=$"You can also delete this information unticking all options.":LBL '' \
	--field=$"Use the Select other option to select a different \
window/program to configure.":LBL '' --separator="" --button=gtk-quit:0 --buttons-layout=center
}

#launches list dialog
list_dialog(){
	#List names of all currently open windows (we may have to exclude Conky from the list) - Original version over at: https://pastebin.com/13em3H11
	wmctrl -l|awk '{$3=""; $2=""; $1=""; print $0}' > /tmp/windowlist.txt
	#Window to be exluded from the list:
	#exclude_from_window_list="Conky (dhc"
	grep -v "Conky (" /tmp/windowlist.txt > /tmp/windowlist2.txt; mv /tmp/windowlist2.txt /tmp/windowlist.txt
	# Use Yad to select window to "Remeber":
	selection=$(yad --class="IceWM-remember-settings" --name="list" --title=$"Add/Remove IceWM Window Defaults" \
--width=550 --height=400 --borders=20 --text=$"Select a program. Store it's window properties." \
--text-align=center --center --separator=" " --list  --column=$"What window configuration you want antiX to remember/forget?" \
--button=gtk-ok:0 --button=gtk-quit:1 < /tmp/windowlist.txt)
	#make the window the user selected the active one:
	wmctrl -R $selection
	# if nothing was selected simply exit
	[ -z "$selection" ] && loop=0 && echo "nothing was selected" && exit
}

main_dialog(){
	
	#restart data
	geo=
	x=
	y=
	left=
	top=
	class=
	layer=
	work=
	appname=
	appclass=
	
	# create temporary file
	temp=$(mktemp)
	
	# obtain window settings
	icesh $focus getGeometry getLayer getWorkspace \
		prop WM_CLASS prop _NET_FRAME_EXTENTS >"$temp"

	# file must have something
	if [[ ! -s $temp ]]
	then
		exit 1
	fi

	# remove punctuation
	sed -i -e 's|[+,]| |g' "$temp"

	# read values from file
	while read a b c d e f g h
	do
		if [[ $a =~ ^0x ]]
		then
			if [[ $b =~ ^WM_CLASS ]]
			then
				class=$d
			elif [[ $b =~ ^_NET_FRAME_EXTENTS ]]
			then
				left=$d
				top=$f
			elif [[ $b =~ ^[0-9]+$ || $b -eq -1 || $c = '"All"' ]]
			then
				work=$b
			elif [[ $b =~ ^[A-Z][a-z] ]]
			then
				layer=$b
			fi
		elif [[ $a =~ ^[0-9] ]]
		then
			geo=$a
			x=$b
			y=$c
		fi
	done <"$temp"
	
	# remove temporary file
	rm -f -- "$temp"
	
	#get more values:
	appclass=${class%.*} #delete last dot
	appname=${appclass%.*} #get window name
	appclass=${appclass#*.} #get window class
	appgeo="${geo}+${x}+${y}"

	# correct geometry
	let x-=$left
	let y-=$top

	cls_geo="${class}.geometry"
	new_geo="${cls_geo}: ${geo}+${x}+${y}"

	cls_lay="${class}.layer"
	new_lay="${cls_lay}: ${layer}"

	cls_wsp="${class}.workspace"
	new_wsp="${cls_wsp}: ${work}"
	
	#recreate temp file for yad script
	temp=$(mktemp)

	# main yad dialog
	yad --title=$"Add/Remove IceWM Window Defaults" --class="IceWM-remember-settings" --name="IceWM-remember-settings" \
		--text=$"Entries shown below are for the $appclass ($appname) window.\n\n\
All options marked will be saved, all unmarked will be deleted.\n\n \
Note: Workspace number shown is the window's current workspace. \n \
	Don't worry that it appears too low.\n\n" \
		--center --borders=20 --checklist --list --separator="" \
		--column=$"Select" --column="Entry" --column=$"Type" --column=$"Value" \
	true "geometry" $"Geometry" "$appgeo" \
	true "layer" $"Layer" "$layer" true $"workspace" "Workspace" "$work" >"$temp" \
		--hide-column=2 --print-column=2 --height=320 \
		--button=gtk-help:"bash -c help_dialog" --button=$"Select other":2 --button=gtk-ok:0 --button=gtk-quit:1 	
	
	##SELECTION MADE##
	exval=$?
		case $exval in
			0) save_changes;;
			2) select_window;;
			1) loop=0 ;;
			252) loop=0 ;;
		esac
	
	# remove temporary file
	rm -f -- "$temp"
}

###SCRIPT STARTS HERE###

#ready help window
export -f help_dialog
select_window
	
while [[ $loop -eq 1 ]]; do
    if [[ $select -eq 1 ]]
	then
		focus=
		main_dialog
	elif [[ $list -eq 1 ]]
	then
		focus="-f"
		list_dialog
		main_dialog
	else
		loop=0
		focus="-f"
		main_dialog
	fi
done

#clean extra yad windows
unset help_dialog


viernes, 19 de enero de 2024

miércoles, 17 de enero de 2024

antiX-net - Construcción desde cero

Construcción desde cero 🏗️


 
Luego de inciar desde la ISO de antix-net:


  
antix-net 

(1) partición gpt - /dev/sda - 20G

device		Size	Type
------------------------------------------------------
/dev/sda1	100M	BIOS boot	
/dev/sda2	14G	Linux root (x86-64)
/dev/sda3	5G	Linux home
/dev/sda4	922M	Linux swap

(2) Instalar seatd - Seat Daemon es parte del entorno gráfico SDDM. SDDM, al ser un gestor de inicio de sesión más completo, podría tener una huella de memoria ligeramente mayor en comparación con SLiM. (Y)

(3) No intalar elogind/dbus-x11 (N)

(4) NO seguir instalando paquetes desde cli-aptiX. (N)

(5) Continuar (Y)

(6) Instalar GRUB en MBR (legacy - Master Boot Record)  (1)

(7) Computer name (default is 'antix1') (enter)

(8) set up localisation ? (y)

Seleccionar los mirror mas cercanos
[*] es_UY.UTF-8 UTF-8

(9) set up keyboard ? (y)
seleccionar Generic 105-key PC

(10) set up console layout? (n)

(11) set up system timezone ? (n)

(12) Is remastered/snapshot ? (n)

(13) Type in your default user name: antixnet

-------------------------------------------------
Si desea intalar la variante con icewm ir a (24)
-------------------------------------------------

Interfaz gráfica

(14) sudo apt install neofetch
(15) sudo apt install xorg
(16) sudo apt install lightdm (gestor de inicio de sesión  - display manager) 

Entorno gráfico

(17) sudo apt install lxde (entorno de escritorio)
(18) sudo apt install pulseaudio
(19) sudo apt install htop

-------------------------------------------------
Linux swap (/dev/sda4 -	922M)

(20) sudo mkswap /dev/sda4
     sudo swapon /dev/sda4

     Agregar la partición /dev/sda4 a /etc/fstab para que este disponible al inicio.     

---------------------------------------------------
(21) sudo apt install firefox-esr

free office:  descargar desde firefox free office

(22) sudo apt install libcurl4
(23) sudo dpkg -i softmaker-freeoffice-2021_1068-01_amd64.deb


reboot


---------------------------------------------------
Variante con icewm (entorno de esritorio)

(24) apt purge lightdm elogind lxde xorg (si se intalo previamente)

(25) apt install xorg seatd consolekit slimski icewm desktop-defaults-icewm-antix icewm-themes-antix neofetch arandr roxterm-common roxterm-gtk2 terminator lxappearance zzzfm sudo screenshot-antix antix-goodies volumeicon-alsa-legacy alsamixer-equalizer-antix network-manager-gnome leafpad xarchiver gnome-themes-extra gnome-accessibility-themes obsidian-icon-theme papirus-icon-theme 

(26) $ cp -r /etc/skel/.icewm ~/

antiX se envía con una versión más nueva del paquete IceWM que la que Debian normalmente tendrá en los repositorios y, por lo general, lo mantendrá actualizado con versiones aún más nuevas directamente del desarrollador.

---------------------------------------------------
Recontruir menu antiX
desktop-menu --write-out-global

Mi archivo ~/.icewm/keys

  
########################################################################
#Sample icewm keys for antiX.
########################################################################
key "Super+p" pcmanfm
key "Super+l" leafpad
key "Super+h" x-terminal-emulator" -e htop


Mi archivo ~/.icewm/toolbar

  
# This is a default toolbar definition file for IceWM
#
# Place your personal variant in $HOME/.icewm directory.

### Commonly used applications
prog "skippy-xd" /usr/share/icons/papirus-antix/48x48/actions/dialog-rows-and-columns.png skippy-xd
prog "antiX Updater" /usr/share/icons/papirus-antix/48x48/categories/software-sources.png /usr/local/bin/yad-updater
#prog "Software Installer" /usr/share/icons/papirus-antix/48x48/apps/packageinstaller.png su-to-root -X -c packageinstaller
prog "Unplug Removable Device" /usr/share/icons/papirus-antix/48x48/devices/drive-removable-media-usb.png unplugdrive.sh
prog "Terminal" /usr/share/icons/papirus-antix/48x48/apps/terminal.png x-terminal-emulator
prog "Terminator" /usr/share/icons/papirus-antix/48x48/apps/terminator.png terminator 
prog "htop" /usr/share/icons/papirus-antix/48x48/apps/htop.png x-terminal-emulator -e htop 
prog "File Manager" /usr/share/icons/papirus-antix/48x48/apps/file-manager.png pcmanfm
prog "Web Browser" /usr/share/icons/papirus-antix/48x48/apps/web-browser.png desktop-defaults-run -b

#prog "IceWM Toolbar Icon Manager" /usr/share/icons/papirus-antix/48x48/categories/icewm_editor.png /usr/local/bin/icewm-toolbar-icon-manager
#prog "IceWM Manager" "/usr/share/icons/papirus-antix/48x48/categories/icewmcc.png" /usr/local/bin/icewm-manager-gui


Mi archivo ~/.icewm/startup

  
#!/bin/bash
#Check localization of Zzz File Manager:r:
if [ ! -f ~/.config/zzzfm/zzzfm_already_localized ]; then zzzfmlocalize ; fi
pcmanfm --desktop &
volumeicon &
nm-applet &
clipit &
~/.screenlayout/default.sh &


Rio Gallegos - La empresa SSServicios cambia mi plan de 25mb x uno de 50mb (nuevamente) sin mi consentimiento.

Rio Gallegos La empresa SSServicios cambia mi plan de 25mb x uno de 50mb (nuevamente) sin mi consentimiento.

Quiero hacer público un reclamo contra la empresa SSServicios, mi proveedor de Internet en la ciudad de Río Gallegos. 

Mi preocupación es por la reciente modificación unilateral de mi plan de Internet por parte de SSServicios de 25 Mbps a 50 Mbps, sin previo aviso ni consentimiento.

Soy cliente de la empresa. No tengo ninguna queja contra el servicio  (propiamente dicho) que me brindan; pero desde hace un tiempo se están tomando “atribuciones” sin avisarle a los clientes para pasarlos a segmentos superiores a los contratados originalmente.

Usufructué el servicio para un ancho de banda de 25Mbps durante todos estos años sin problemas.

Con anterioridad, la empresa SSServicios intentó pasarme a un segmento de 35Mbps sin mi consentimiento, y lo que le da mayor gravedad es que cuando me doy cuenta del hecho, y hago el test de velocidad a mi router, constato que en realidad me estaban dando solo  25Mbps. Cuando hago los reclamos correspondientes por las atribuciones que se estaban tomando,  aludieron “mejoras”, voy al portal de ellos y constato que el segmento de 25Mbps seguía vigente, hago el reclamo y retrotrajeron la situación nuevamente al segmento de 25Mbps que era el que yo quería con las “disculpas” del caso.

Ahora, nuevamente y sin avisarle a nadie, han pasado a TODOS los cliente que estábamos en el segmento de 25Mbps a uno de 50Mbps (eliminaron directamente el segmento de 25Mbps) 

Me dicen que la diferencia en la factura es mínima. Pero no estoy conforme con esa explicación, y mas en el contexto inflacionario en el que estamos donde esa diferencia “mínima” en el transcurso del año puede ser sustancial para nosotros los consumidores.




Quiero expresar mi descontento, esperando la reversión del cambio no autorizado. 
Estoy considerando otras opciones debido a la insatisfacción con todo esto y la falta de transparencia. 


Trabaje en el área de informática y se de lo que estoy hablando.

Para que se hagan una idea, plataformas como Netflix recomiendan, como mínimo, una velocidad de 3 Mb/s o superior para Alta definición (HD) 720p. Si queremos Alta definición completa (FHD 1080p, la plataforma aconseja un ancho de banda de 5 Mb/s o superior y 15 Mb/s o superior si es en Ultra alta definición (UHD) 4K.  

Con lo que holgadamente  cubría con “mis  25Mbps”.



Consultando un poco pude ver que en Rio Gallegos hay otras empresas que están ofreciendo el servicio de fibra óptica: 

 La empresa griip está ofreciendo desde los segmentos de 20Mbps hasta los 100Mbps. 

 Estas serian las zonas de cobertura para la ciudad de Rio Gallegos que brinda Pueden hacer sus consultas desde siguiente portal: https://griip.com.ar/



Dejo esta tabla comparativa sobre velocidades para usuarios domiciliarios de Internet:

El ancho de banda necesario para el uso de Internet en una residencia domiciliaria normal puede variar según las necesidades y actividades en línea de los residentes. Aquí hay algunas pautas generales:

  1. Navegación básica y correos electrónicos:

    1. Para actividades como navegar por sitios web y enviar correos electrónicos, un plan con velocidades de descarga de 5 a 25 megabits por segundo (Mbps) debería ser suficiente.
  2. Transmisión de video en alta definición (HD):

    1. Si planeas ver videos en alta definición en plataformas como Netflix, YouTube, etc., se recomienda un ancho de banda de al menos 5 a 10 Mbps por dispositivo. Si hay múltiples dispositivos que pueden estar transmitiendo simultáneamente, necesitarás un mayor ancho de banda.
  3. Juegos en línea:

    1. Los juegos en línea suelen requerir un ancho de banda más bajo en comparación con la transmisión de video. Una conexión de 5 a 20 Mbps debería ser suficiente para juegos en línea sin problemas.
  4. Teletrabajo y videoconferencias:

    1. Para videollamadas y teletrabajo, se recomienda un ancho de banda de al menos 1.5 a 5 Mbps para una buena calidad de transmisión. Si varias personas en la casa están participando en videoconferencias simultáneamente, necesitarás más ancho de banda.
  5. Descargas y carga de archivos grandes:

    1. Si realizas descargas o cargas frecuentes de archivos grandes, necesitarás una velocidad de carga más rápida. Los planes de Internet con velocidades de carga de 5 a 25 Mbps pueden ser adecuados.

viernes, 12 de enero de 2024

Guada Lascano - Entrevista por LU14 Radio Provincia de Santa Cruz - Enero 2024

Guada Lascano - Entrevista por LU14 Radio Provincia de Santa Cruz - Enero 2024.

Guada Lascano (cantante) - Sus inicios con la música - Sus estudio profesionales- Sus trabajos actuales

(intro base cover "You Should see me in a crown" (Billie Eilish) REMIX by Guada Lascano ft DJ Kalima (es un trabajo en conjunto que hizo Guada Lascano & DJ Kalima)

Guada Lascano - instagram: @guada.lascano Guada Lascano - TikTok: guada_lascano DJ Kalima - instagram: @djkalima DJ Kalima - Spotify: Kalima