Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Solución al error: Unable to negotiate with port 22: no matching host key type found. Their offer: ssh-rsa

Hoy al actualizar un repositorio de git con git pull me saltó el error: Unable to negotiate with <IP> port 22: no matching host key type found. Their offer: ssh-rsa.

Desde hace años, mantengo la traducción al español de la web emailselfdefense, donde enseñan la manera de cifrar el correo electrónico para mantener la privacidad.

Resulta que se habían realizado algunas actualizaciones en el texto de la versión inglesa y quise dejarlos reflejarlos en la versión española.

Como el desarrollo de la página y de las versiones se realiza bajo git, me dispuse a descargar los cambios recientes subidos en la rama principal mediante git pull.

Al ejecutar el comando, me saltó un error:

Unable to negotiate with 209.51.188.160 port 22: no matching host key
type found. Their offer: ssh-rsa

Me decía que quizás no tenía permisos o que no existía el repositorio remoto. Bueno, pensé, ya he tocado algo que no debía y lo he roto todo. Así que pregunté en la lista de correo y con un enlace de aquí y otro de allá conseguí solucionarlo. ¿Quieres ver cómo?

En la lista de correo de coordinación que tenemos me pasaron un enlace a un hilo en GitHub. Se planteaba una solución a un tema similar. Pero a mí no me terminó de funcionar.

Finalmente con un enlace de aquí y de allá y después de muchas pruebas, conseguí hacerlo volver a funcionar.

Para ello edité el archivo ~/.ssh/config y añadí estas líneas al archivo:

host vcs.fsf.org
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

En mi caso en host he puesto ese dominio porque es a donde apunta la IP del error que me daba. En tu caso deberás cambiarlo por el dominio que te de el error.

Las siguientes líneas, indican que se habilite un tipo de cifrado con el que todavía todo funcionaba antes de que se hiciera una actualización en openssh a la versión 8.8.

En mi caso funcionó, desconozco si es una atrocidad o un agujero de seguridad añadir esas líneas en mi archivo, para conseguir acceder a ese repositorio git remoto.

Quizás en una actualización futura todo esto se solucione. Hasta entonces aquí dejo esto por si me sirve para mi yo del futuro o si a tí también te ha sucedido.

Imagen: Markus Freak
a silhouette of a person's head and shoulders, used as a default avatar

Lanzada una nueva versión de Falkon, ahora con lector de pdf

Me congratula compartir con todos vosotros que ha sido lanzada una nueva versión de Falkon, un navegador de la Comunidad KDE que nació con fuerza, que perdió algo de brío pero que vuelve con la esperanza de ser una alternativa seria a los navegadores web libres y no libres.

¿Qué es Falkon?

Para los que no lo conozcan, Falkon es un navegador web de KDE que utiliza el motor de renderizado QtWebEngine. Hace un tiempo era conocido como QupZilla, un nombre poco agraciado, pero cambió por una denominación más amigable para los usuarios.

Lanzada una nueva versión de Falkon

Su objetivo es ser un navegador web ligero disponible en las principales plataformas, y aunque este proyecto se inició originalmente sólo con fines educativos ha ido creciendo hasta convertirse en un navegador rico en características.

Falkon tiene todas las funciones estándar que se esperan de un navegador web: marcadores, historial (ambos también en la barra lateral) y pestañas. Además, tiene activado por defecto el bloqueo de anuncios con un plugin AdBlock incorporado.

Lanzada una nueva versión de Falkon, ahora con lector de pdf

Tras un tiempo de silencio en el que parecía que el proyecto se había quedado estancado, el pasado 31 de enero, su equipo de desarrollo lanzó la versión 3.2 de este navegador:

Entre sus principales novedades destacan las siguientes:

  • Añadido soporte para captura de pantalla (Qt 5.13.2+)
  • Opción de visor interno basado en PDFium (Qt 5.13+)
  • CookieManager: Añadir soporte para seleccionar más de una cookie a la vez.
  • Corregir la ordenación de las listas blancas y negras de cookies.
  • Speeddial: decodificar los datos de initialScript como Utf8.
  • Establecimiento la pestaña actual como padre para la pestaña duplicada.
  • Añadido soporte para separar pestañas a través del menú contextual
  • Mejoras en la Administrador de marcadores: No permitir la creación de marcadores sin padre.
  • Eliminado el relleno de la barra de marcadores.
  • Añadido elemento de menú contextual a la barra de marcadores para crear una carpeta.
  • Preferencias: Añadidos enlaces a la tienda KDE para instalar temas/extensiones.
  • Soporte de Ocs: Añadir soporte inicial para la descarga de temas/extensiones.
  • Añadido filtro a la página de extensiones de las preferencias.
  • Administrador de la barra lateral: Borrar la barra lateral activa al cerrarla.
  • Añadido el enfoque de la barra de búsqueda en la barra lateral del historial y la barra lateral de favoritos.
  • Barra de herramientas de búsqueda: Eliminado el mensaje de advertencia de que no se han encontrado resultados.
  • SearchBar: mostrar el número de coincidencias encontradas en la búsqueda de la página.
  • Añadida la pausa/reanudación de las descargas.
  • Aviso al usuario cuando se desactiva KWallet.

Como vemos, una larga lista que se extiende si echáis un vistazo al anuncio oficial.

a silhouette of a person's head and shoulders, used as a default avatar

ncdu をテストしてみました(packagesの説明文書を訳しつつ、使えるものを探してみました)

今回は ncdu を紹介します。

ncdu は curces を使用した、ディスク使用量を表示するツールです。その名の通り、du の curces 版です。起動すると、カレントディレクトリの各サブディレクトリやファイルの大きさや使用量を表示します。

注目するディレクトリは、カーソルキーまたは jk キー(vi と同じ)で移動でき、ENTERキーで、そのディレクトリに入ることができます。また、名前順、日付順、項目の数順(おそらく、サブディレクトリ中の項目数)、mtime順に整列し直すこともできます。項目数については、c キーを入力することで表示することもできます。画面の左端には、そのディレクトリの状況(空白とか、読み取れないとか)が表示される場合があります。
起動時にディレクトリを指定することで、任意のディレクトリの状況を表示できます。また、? キーを押すとヘルプ画面が表示されます。

ヘルプにも書いてあるとおり、ncdu から直接ファイルを削除することもできます。ディレクトリを渡りながら、不要なファイルを削除するという作業が効率的に行えます。

du を使って一つずつ調べていくよりも、ncdu を使った方がはるかに効率的に作業ができるので、不要なファイルの掃除をする際には便利に使えそうです。常備しても良さそうです。

a silhouette of a person's head and shoulders, used as a default avatar

Pre-commit auf openSUSE Leap 15.4

Beim Upgrade von openSUSE Leap 15.3 auf openSUSE Leap 15.4 ergibt sich bei pre-commit ein interessantes Problem. Auf älteren Versionen von Leap konnte das Paket aus dem Entwicklungsprojekt devel:languages:python installiert werden. Dort findet sich aber keine Version für Leap 15.4. Eine solche findet sich jetzt in meinem Projekt home:theMarix:py36 und lässt sich von dort einfach installieren:

zypper addrepo https://download.opensuse.org/repositories/home:theMarix:py36/15.4/home:theMarix:py36.repo
zypper refresh
zypper install python3-pre-commit

Das Problem entsteht, weil pre-commit es bisher nicht in die Distribution geschafft hat. Das ist normalerweise kein Problem, weil die Pakete in den Entwicklungsprojekten auch für alle aktuellen Versionen von Leap gebaut werden. Speziell bei Leap 15.4 ist hier aber etwas interessantes passiert. pre-commit hat in Version 2.17.0 verständlicherweise die Unterstützung für Python 3.6 fallengelassen. Allerdings setzt Leap 15.4 aus Kompatibilitätsgründen noch auf diese Version von Python. Da jetzt aber das Upgrade auf 2.17.0 in devel:languages:python passierte bevor Leap 15.4 angelegt wurde, wurde die letzte mit Python 3.6 lauffähige Version 2.16.0 nie für Leap 15.4 gebaut. Anders für Leap 15.3, für das genau diese Version bis zuletzt noch installierbar war.

Im Projekt home:theMarix:py36 befindet sich jetzt einfach ein Link auf die letzte Revision des Pakets in devel:languages:python die noch mit Python 3.6 kompatibel war. So gibt es jetzt zwar leider keine aktuelle Version von pre-commit für Leap 15.4, aber immerhin eine ohne Verrenkungen nutzbare, die mit dem Update auf 15.5 wird sich dass dann ganz von alleine wieder auf das aktuelle Paket wechseln wird. Und auch wenn das jetzt wahnsinnig aufwendig klingt, der Zeitaufwand das Paket anzulegen war geringer als der diesen Artikel zu schreiben.

the avatar of Network Users Institute

Vous avez un vieux coucou de 2008 ?

Firefox ESR en action sur un ASUS PC701 en 32-Bit! Ce billet fait suite à notre article : https://nui.fr/installer-linux-sur-des-vieux-coucous-en-32-bit/ Pour des PCs hors normes, tels que les ASUS Eee PC701, des coucous avec des petites cartes SD (4 GO) comme Disque Dur, CPU : Intel Celeron M 900MHz (1) @ 630MHz, Mémoire : 1GO, datant de …

Vous avez un vieux coucou de 2008 ?Read More »

The post Vous avez un vieux coucou de 2008 ? appeared first on Cybersécurité, Linux et Open Source à leur plus haut niveau | Network Users Institute | Rouen - Normandie.

the avatar of Robert Riemann

Mastodon Setup with Docker and nginx-proxy

I have been working on a setup with Mastodon that is easy to repeat and share. A setup with very few steps. Please consider that this setup is not enough for a production environment. It requires additional security measures. Please put your recommendations in the comments! :grinning:

Our starting point is the docker-compose.yml shipped with the Mastodon code. Why is it not enough? It assumes you setup up proxy with HTTPS endpoints yourself. So let’s integrate this as well in Docker.

Consider also the compact setup with the Caddy webserver.

Setup

Few remarks to start with:

  • my testing system: Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-97-generic x86_64)
  • install first some software with apt install docker docker.io jq git
  • create an unprivileged user account, e.g. mastodon

    adduser --disabled-login mastodon
    adduser mastodon docker
    adduser mastodon sudo # optional, remove later
    su mastodon # switch to that user
    
  • my docker compose: Docker Compose version v2.2.3 (based on go)

    install docker compose in 3 lines:

    mkdir -p ~/.docker/cli-plugins
    curl -sSL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
    chmod +x ~/.docker/cli-plugins/docker-compose
    
  • my testing domain (for this example): social.host

  • my dot-env file .env for docker compose:

    LETS_ENCRYPT_EMAIL=admin-mail@social.host
    MASTODON_DOMAIN=social.host
    
  • I have commented out build: ., because I prefer to rely on the official images from Docker Hub.

  • With little effort, I enable as well full-text search with elasticsearch.

  • The support of VIRTUAL_PATH is brand-new in nginx-proxy. It is not yet in the main branch, so that we rely on nginxproxy/nginx-proxy:dev-alpine.

  • The Mastodon code also ships an nginx configuration. However, nginx-proxy creates much of it as well, so that I currently believe no further configuration is required here. However, nginx-proxy allows to add custom elements to the generated configuration.

  • The setup places all databases and uploaded files in the folder mastodon
# file: 'docker-compose.yml'
version: "3.7"

services:
  nginx-proxy:
    image: nginxproxy/nginx-proxy:dev-alpine
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ./nginx/vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - ./nginx/certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./nginx/logs:/var/log/nginx
    networks:
      - external_network
      - internal_network

  acme-companion:
    image: nginxproxy/acme-companion
    container_name: nginx-proxy-acme
    volumes_from:
      - nginx-proxy
    volumes:
      - ./nginx/certs:/etc/nginx/certs:rw
      - ./nginx/acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      DEFAULT_EMAIL: "${LETS_ENCRYPT_EMAIL}"
    networks:
      - external_network

  db:
    restart: always
    image: postgres:14-alpine
    shm_size: 256mb
    networks:
      - internal_network
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "postgres"]
    volumes:
      - .mastodon//postgres14:/var/lib/postgresql/data
    environment:
      POSTGRES_HOST_AUTH_METHOD: trust

  redis:
    restart: always
    image: redis:6-alpine
    networks:
      - internal_network
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
    volumes:
      - ./mastodon/redis:/data

  # elasticsearch
  es:
    restart: always
    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "cluster.name=es-mastodon"
      - "discovery.type=single-node"
      - "bootstrap.memory_lock=true"
    networks:
      - internal_network
    healthcheck:
      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
    volumes:
      - ./mastodon/elasticsearch:/usr/share/elasticsearch/data
    ulimits:
      memlock:
        soft: -1
        hard: -1

  web:
    # build: .
    image: tootsuite/mastodon:v3.4.6
    restart: always
    env_file: mastodon.env.production
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
    networks:
      - external_network
      - internal_network
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"]
    ports:
      - "127.0.0.1:3000:3000"
    depends_on:
      - db
      - redis
      - es
    volumes:
      - ./mastodon/public/system:/mastodon/public/system
    environment:
      VIRTUAL_HOST: "${MASTODON_DOMAIN}"
      VIRTUAL_PATH: "/"
      VIRTUAL_PORT: 3000
      LETSENCRYPT_HOST: "${MASTODON_DOMAIN}"
      ES_HOST: mastodon-elastic
      ES_ENABLED: true

  streaming:
    # build: .
    image: tootsuite/mastodon:v3.4.6
    restart: always
    env_file: mastodon.env.production
    command: node ./streaming
    networks:
      - external_network
      - internal_network
    healthcheck:
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"]
    ports:
      - "127.0.0.1:4000:4000"
    depends_on:
      - db
      - redis
    environment:
      VIRTUAL_HOST: "${MASTODON_DOMAIN}"
      VIRTUAL_PATH: "/api/v1/streaming"
      VIRTUAL_PORT: 4000

  sidekiq:
    # build: .
    image: tootsuite/mastodon:v3.4.6
    restart: always
    env_file: mastodon.env.production
    command: bundle exec sidekiq
    depends_on:
      - db
      - redis
    networks:
      # - external_network
      - internal_network
    volumes:
      - ./mastodon/public/system:/mastodon/public/system

volumes:
  html:

networks:
  external_network:
  internal_network:
    internal: true

With this file in place, create a few more folders and launch the setup of the instance. If the instance has been setup before, a database setup may be enough.

# mastodon
touch mastodon.env.production
sudo chown 991:991 mastodon.env.production
mkdir -p mastodon/public
sudo chown -R 991:991 mastodon/public
mkdir -p mastodon/elasticsearch
sudo chmod g+rwx mastodon/elasticsearch
sudo chgrp 0 mastodon/elasticsearch

# first time: setup mastodon
# https://github.com/mastodon/mastodon/issues/16353 (on RUBYOPT)
docker compose run --rm -v $(pwd)/mastodon.env.production:/opt/mastodon/.env.production -e RUBYOPT=-W0 web bundle exec rake mastodon:setup

# subsequent times: skip generation of config and only setup database
docker compose run --rm -v $(pwd)/mastodon.env.production:/opt/mastodon/.env.production web bundle exec rake db:setup

# launch mastodon
docker compose run -d

# look into the logs, -f for live logs
docker compose logs -f

Mastodon Twitter Crossposter

To setup the Mastodon Twitter Poster for crossposting, add the following services to the docker-compose.yml

crossposter-db:
  restart: always
  image: postgres:14-alpine
  container_name: "crossposter-db"
  healthcheck:
    test: pg_isready -U postgres
  environment:    
    POSTGRES_HOST_AUTH_METHOD: trust
  volumes:
    - ./crossposter/postgres:/var/lib/postgresql/data
  networks:
    - internal_network

crossposter-redis:
  restart: always
  image: redis:6.0-alpine
  container_name: "crossposter-redis"
  healthcheck:
    test: redis-cli ping
  volumes:
    - ./crossposter/redis:/data
  networks:
    - internal_network

crossposter-web:
  restart: always
  build: https://github.com/renatolond/mastodon-twitter-poster.git#main
  image: mastodon-twitter-poster
  container_name: "crossposter-web"
  env_file: crossposter.env.production
  environment:
    ALLOWED_DOMAIN: "${MASTODON_DOMAIN}"
    DB_HOST: crossposter-db
    REDIS_URL: "redis://crossposter-redis"
  networks:
    - internal_network
    - external_network
  expose:
    - "3000"
  depends_on:
    - crossposter-db

crossposter-sidekiq:
  restart: always
  build: https://github.com/renatolond/mastodon-twitter-poster.git#main
  image: mastodon-twitter-poster
  container_name: "crossposter-sidekiq"
  env_file: crossposter.env.production
  environment:
    ALLOWED_DOMAIN: "${MASTODON_DOMAIN}"
    REDIS_URL: "redis://crossposter-redis"
    DB_HOST: crossposter-db
  command: bundle exec sidekiq -c 5 -q default
  healthcheck:
    test: ps aux | grep '[s]idekiq\ 6' || false
  networks:
    # - external_network
    - internal_network
  depends_on:
    - crossposter-db
    - crossposter-redis

The crossposter requires a database setup before the containers can be launched:

docker-compose run --rm crossposter-web bundle exec rake db:setup

References

a silhouette of a person's head and shoulders, used as a default avatar

Cursores estilo Doom para tu PC

Aunque el confinamiento ya no es la tónica general, seguimos estando muchas horas pendientes de nuestro ordenador, por lo que no es mala idea personalizarlo hasta que es visualmente perfecto para su gusto. Evidentemente, los cursores son parte de esa personalización y hoy toca hablar de un tema como los cursores estilo Doom para tu PC, un pack que seguro que le trae buenos y divertidos recuerdos a más de un usuario.

Cursores estilo Doom para tu PC

Nacidos de la mano y de la mente de darkeye90 nos llega Doom, un tema muy especial porque convierte nuestros cursores en los clásicos del juego de disparos en primera persona que tanto me ha divertido a lo largo de muchos años.

Realizado con Gimp e Inkscape, el tema de cursores Doom está repleto de espadas rojas y puñales, aunque solo con el tamaño de 32×32, asín que no viene mal ver el puntero ampliado en la imagen inferior.

Cursores estilo Doom para tu PC

Y como siempre digo, si os gusta este conjunto de cursores Coffee Cup podéis “pagarlo” de muchas formas en la página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.

Más información: KDE Store

Cómo cambiar el tema de los cursores en Plasma

Al igual que con los iconos hay varias formas de cambiar el tema de cursores en Plasma, pero la más fácil es:

  • Abrir las Preferencias del Sistema
  • Ir a la sección Tema de Cursor
  • En esta ventana pinchar en “Obtener nuevos temas”
  • Buscar Doom, seleccionar el estilo y dar a instalar.
  • Seleccionar el tema y aplicar.

Si tenéis dificultad, simplemente se debe descargar y extraer el tema en «/usr/share/icons» o «~/.icons».

Rápido, sencillo y efectivo, como la mayoría de cosas en en el escritorio Plasma de la Comunidad KDE.

a silhouette of a person's head and shoulders, used as a default avatar

Cómo insertar con el editor Kate la fecha y hora en un documento

Vamos a ver cómo editando con el editor Kate de KDE un documento podemos insertar la fecha y hora con un atajo de teclado usando las herramientas externas

Photo by Pixabay on Pexels.com

En el canal de Telegram de la comunidad de KDE España que es cañas y bravas, el usuario Javierinsitu planteó una pregunta:

Estoy utilizando Kate y necesito ir insertando en ciertos archivos un ‘timestamp’ con la fecha y la hora actual en cierto formato.
¿Existe alguna manera de hacerlo en Kate?

Kate es un gran editor y suponía que con la cantidad de funcionalidades que tiene, podría hacer eso, pero ¿cómo? La pregunta me pareció interesante, así que he estado haciendo pruebas e investigando un poco.

Y lo he conseguido. Te cuento cómo puedes hacerlo tu también.

Primero deberemos tener activados las herramientas externas en Kate. Ve a Preferencias → Configurar Kate y Complementos, selecciona la opción Herramientas externas.

Después en el menú Preferencias → Configurar Kate. Y en la lista de configuraciones de la izquierda, seleccionamos Herramientas externas. Pinchamos en la parte inferior sobre Añadir Herramienta.

En la ventana de configuración escribimos:

  • En nombre, un nombre que nosotros queramos para identificar nuestra herramienta, por ejemplo fecha.
  • En ejecutable, la orden que queremos que ejecute, pondremos date
  • En Salida, seleccionamos la opción insertar en la posición del cursor.

Aceptamos los cambios. Ahora vamos a asignarle un atajo de teclado en Kate. Para ello vamos a Preferencias → Configurar los accesos rápidos de teclado.

Buscamos nuestra recién creada herramienta llamada fecha (o el nombre que le hayas puesto). Y le adjudicamos un atajo de teclado, en mi caso Ctrl+F1 que no está asignado a ninguna otra acción.

Aceptamos los cambios y hemos terminado. Ahora mientras editamos un archivo en Kate, podemos pulsar sobre nuestro atajo de teclado y se nos añadirá la fecha ejecutando el comando date.

Si queremos date con otro formato, volvemos a el menú Preferencias → Configurar Kate y en Herramientas externas, seleccionamos nuestra herramienta fecha y hacemos doble clic.

Y en el apartado de Argumentos podemos añadir algo como:

+"Hoy es %A, %d de %B de %Y %nEsta es la semana %V y han pasado %j días de este año %nSon las %R %:z %Z"

Para que nos inserte algo como esto en nuestro fichero en la línea actual, mientras lo editamos con Kate.

Hoy es sábado, 05 de febrero de 2022 
Esta es la semana 05 y han pasado 036 días de este año 
Son las 19:02 +01:00 CET

Por supuesto lo podemos adaptar a nuestras necesidades. Espero que le sirva de ayuda a Javierinsitu y a alguien más si alguna vez necesita algo como esto. ¿A ti te sirvió? Dímelo en los comentarios…

a silhouette of a person's head and shoulders, used as a default avatar

Más contribuciones a Season of KDE 2022

Un año más se está celebrando una nueva edición de un programa cuyo objetivo es incorporar nuevos estudiantes al gran proyecto mundial que es KDE.  En otras palabras, me complace presentar las más contribuciones a Season of KDE 2022, que complementa la de la semana pasada, que a lo largo de su más de una década de existencia se ha consolidado como una alternativa bastante fiable a otros programas como Google Summer of Code o Google Code In que consiguen incorporar sabia nueva al proyecto.

Más contribuciones a Season of KDE 2022

Uno de los objetivos del proyecto KDE es involucrar al mayor número de personas en él y para ello organiza todo tipo de acciones: eventos como Akademy, encuentros como los Sprints, blogs colaborativos como KDE Planet, participación en proyectos para estudiantes como el Google Code In o Google Summer of Code, y, por supuesto, mejorar el código de sus múltiples proyectos con sus programas de incubación.

Más contribuciones a Season of KDE 2022

No contento con esto, una vez al año organiza Season of KDE, es decir, su programa para involucrar a nuevos estudiantes en KDE. Una especie de Google Summer of Code pero para colaborar directamente en KDE y con la posibilidad de desarrollar proyectos no vinculados necesariamente con la programación, es decir, proyectos de promoción, documentación, diseño, etc.

Este año, en el Dot de KDE se ha redactado un artículo escrito por Johnny Jazeix, donde nos explica nueve de estos proyectos que se han iniciado el pasado mes de diciembre.

Para dar visibilidad al proyecto creo que es positivo darlos a conocerlos en el blog en pequeñas contribuciones. La semana ya hablé de tres de ellas… esta semana toca 3 más. De esta forma tenemos a:

  • Suhaas Joshi trabajará en la gestión de permisos para las aplicaciones Flatpak en Discover. El objetivo es permitir a los usuarios ver los permisos requeridos por un flatpak antes de la instalación y también permitir a los usuarios activar o desactivar estos permisos. Suhaas tendrá como mentores a Timothée Ravier y Aleix Pol González.
  • Samarth Raj añadirá una nueva actividad para ayudar a entender la diferencia entre hacer clic con el botón izquierdo y el derecho del ratón en GCompris. La actividad mostrará dos tipos de animales que quieren ir a casa. Al hacer clic con el botón izquierdo se moverá un tipo, mientras que al hacer clic con el botón derecho se moverá el otro. Para saber más sobre esta actividad, haga clic aquí. Samarth será asesorado por Harsh Kumar y Emmanuel Charruau.
  • Srirupa añadirá soporte para una función de Elipse en Perspectiva en Krita. El objetivo es crear una herramienta que pueda ajustar las cuatro esquinas de una malla con una elipse en su interior. Esto permitirá a los usuarios dibujar una elipse en perspectiva con facilidad. Srirupa tendrá como mentora a Halla Rempt.

En próximas entradas más proyectos de este Season of KDE 2022.

a silhouette of a person's head and shoulders, used as a default avatar

packagesの説明文書を訳しつつ、使えるものを探してみました(ranger)

今回は ranger を紹介します。

ranger は、コンソール上で動作するファイラーです。日本語化はされていませんが、要所要所で動的にヘルプが出てくるため、それほど困ることはありません。コンソール上で動作するファイラーには mc が有名ですが、mc とは違い、標準で1つのディレクトリに注目するタイプです。
起動すると、このような画面が表示されます。

画面は、三つのペインからなり、左二つがディレクトリ、一番右が注目しているファイルの内容を表示します。テキストファイルであればほとんどのものが表示できます。UTF-8でエンコードされていれば、日本語も表示できます。また、バイナリファイルでも、一部の形式では、ファイルの情報を表示します。
真ん中のペインが今注目しているディレクトリです。ファイルやディレクトリの選択にはカーソルキーのほか、vi と同じ hjkl のキーが使えます。但し、vi のキー配置は、QWERTY 配列に特化しているので、 DVORAK 配列で使うとかなり使いにくいです。

また、複数の画面を管理出来ます。この機能は、タブ機能を使います。”g”の次に”n”を入力することで、タブが有効になり、複数のディレクトリ表示ができるようになります。TAB キーで画面を切り換えることもできますし、”~”キーで左右に表示させることもできます。たとえば、片方のディレクトリからもう片方のディレクトリにファイルをコピーする際には、スペースキーで対象のファイルやディレクトリを選択した後、vi 風のコマンド yy でコピーして、pp でペーストします。

ranger にはこのほかにも、ファイルの整列や検索、パーミッションの設定、シェルの実行など多数の機能があります。色々試してみても面白いと思います。