Is animated profile picture possible?

Hi, before anything, sorry for my really bad English.
I just wanted to know if it is possible to use an animated avatar, like a gif, for an user picture ?
I'm not talking about animated wallpaper.
I didn't find any answer about that, and I'm new in Zorin and linux world so...
If someone know how to do that, in advance thank you !

I'm uncertain if it's feasible, but you could give it a try.

It doesn't seem to be possible. An animated GIF will load, but only one frame of it.

1 Like

Just found this:

It’s quite amusing, but it was designed for a website’s login form using JavaScript, HTML, and CSS.

1 Like

I need to read more carefully! If you had a separate server it could be possible:

"Linux Login Screen Web Form

To turn the Linux login screen into a web form, you’ll need to create a web-based interface that mimics the traditional Linux login process. Here’s a step-by-step approach:

  1. Choose a web framework: Select a suitable web framework for your project, such as Flask or Django for Python, or Node.js with Express.js. This will depend on your programming language proficiency and project requirements.
  2. Design the web form: Create an HTML form that resembles the traditional Linux login screen. Include fields for:
  • Username
  • Password
  • Optional: Domain or workstation selection (if your Linux system supports multiple users or workstations)
  1. Handle form submission: Write a backend script to process the form submission. This script will:
  • Validate the input data (e.g., username and password)
  • Authenticate the user using Linux’s authentication mechanisms (e.g., PAM, LDAP, or local password files)
  • If authentication succeeds, grant the user access to the system and redirect them to a welcome page or their desired destination
  • If authentication fails, display an error message and allow the user to retry
  1. Integrate with Linux authentication: To integrate with Linux’s authentication mechanisms, you’ll need to:
  • Use a library or API that provides access to Linux’s authentication systems (e.g., PAM or LDAP)
  • Configure your web application to use the same authentication backend as your Linux system
  1. Serve the web form: Host your web application on a server, and configure it to listen for incoming requests. You can use a web server like Apache or Nginx to serve your application.
  2. Configure Linux to redirect to the web form: Modify your Linux system’s boot process or login manager (e.g., systemd, Upstart, or GDM) to redirect users to your web-based login form instead of the traditional graphical login screen.

Some examples of how to achieve this:

  • Using Flask and PAM: You can use the flask-pam library to interact with PAM and authenticate users. Then, create a Flask app to serve the web form and handle form submissions.
  • Using Node.js and LDAP: You can use an LDAP library like ldapjs to interact with your LDAP directory and authenticate users. Then, create a Node.js app to serve the web form and handle form submissions.

Keep in mind that this is a high-level overview, and the specific implementation details will vary depending on your chosen technologies and Linux distribution.

Example Code Snippet (Flask and PAM)

from flask import Flask, request, redirect, url_for
from flask_pam import PAM

app = Flask(__name__)
pam = PAM()

@app.route('/login', methods=['POST'])
def login():
    username = request.form['username']
    password = request.form['password']
    if pam.authenticate(username, password):
        # Authentication succeeded, redirect to welcome page
        return redirect(url_for('welcome'))
    else:
        # Authentication failed, display error message
        return 'Invalid credentials'

if __name__ == '__main__':
    app.run()

This example demonstrates a basic Flask app that handles form submissions and authenticates users using PAM. You’ll need to modify and extend this code to fit your specific requirements."

It's actually what happening :confused:

Wow, that seem really complicated for a beginner :sweat_smile: but thank you for your answer, maybe i will test that when I will be better in that domain