this post was submitted on 05 Dec 2023
34 points (97.2% liked)

Linux

8827 readers
437 users here now

A community for everything relating to the GNU/Linux operating system (except the memes!)

Also, check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

https://github.com/FriederHannenheim/cthulock Hey everybody. I'm releasing my new screen locker for Wayland which you can easily customize using the Slint language. Feel free to ask me any questions in the comments.___

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Illecors@lemmy.cafe 3 points 2 years ago (1 children)

Would you mind providing any more details on what exactly one can customise? Might give this a shot tomorrow.

[โ€“] Katzenmann@programming.dev 6 points 2 years ago

Yeah sure. Well slint is a whole ui library and so you can customize basically anything. You could add extra text, move the clock and the password prompt wherever you want. You could even remove the password prompt and replace it by something else. Here's the config of the screenshot above:

import { LineEdit , TextEdit} from "std-widgets.slint";
export component HelloWorld {
    in property clock_text;
    in property checking_password;
    in-out property password <=> password.text;
    callback submit <=> password.accepted;
    forward-focus: password;
    states [
        checking when checking-password : {
            password.enabled: false;
        }
    ]

    Image {
        width: parent.width;
        height: parent.height;
        source: @image-url("wallpaper.png");
        HorizontalLayout {
            VerticalLayout {
                alignment: end;
                spacing: 10px;
                padding: 40px;
                width: 350px;
                Text {
                    text: clock_text;
                    horizontal-alignment: center;
                    font-size: 60pt;
                    color: white;
                }
                password := LineEdit {
                    enabled: true;
                    horizontal-alignment: left;
                    input-type: InputType.password;
                    placeholder-text: "password...";
                }
            }
        }
    }
}