{"id":17527048,"url":"https://github.com/nicciniamh/ssaver","last_synced_at":"2026-04-11T01:33:32.801Z","repository":{"id":208696625,"uuid":"722280828","full_name":"nicciniamh/ssaver","owner":"nicciniamh","description":"a \"screensaver/locker\" for Terminals using zsh","archived":false,"fork":false,"pushed_at":"2023-11-24T03:13:01.000Z","size":197,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-01-26T01:47:37.668Z","etag":null,"topics":["command-line-tool","linux","macos","python","terminal","unix","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicciniamh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-11-22T20:06:12.000Z","updated_at":"2023-11-22T22:11:38.000Z","dependencies_parsed_at":"2023-12-19T01:52:54.188Z","dependency_job_id":"ce0f1388-483c-49ff-92d1-e5cb46e3dd5c","html_url":"https://github.com/nicciniamh/ssaver","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"32bed4136554c3a7589fd66a04c9727bc3a675c7"},"previous_names":["nicciniamh/ssaver"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicciniamh%2Fssaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicciniamh%2Fssaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicciniamh%2Fssaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicciniamh%2Fssaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicciniamh","download_url":"https://codeload.github.com/nicciniamh/ssaver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244844536,"owners_count":20519793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-tool","linux","macos","python","terminal","unix","zsh"],"created_at":"2024-10-20T15:03:01.049Z","updated_at":"2026-04-11T01:33:27.760Z","avatar_url":"https://github.com/nicciniamh.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# Ssaver - a \"screensaver/locker\" for Terminals using zsh\n\n![](iTerm2_Screenshot.png)\n\nssaver is a pair of utilities. One is a script meant to be sourced into zsh. The other is a python curses\nprogram that does the actual screensaver. \n\n## screensaver.zsh\nThis script creates a screensaver function that is used like a shell command that allows changing of the \noptions used. \n\n### Logo \nThe screensaver logo, centered on the screen by default, is two lines of user@hostname and the current time. \n\n### Screensaver commands\nScreenaver commands are invoked with ```screensaver \u003ccmd\u003e \u003cargs\u003e```.\n\n|Command|Description                                      |Parameters                |\n|----------|----------------------------------------------|--------------------------|\n| activate | activates the screen saver                   | noine                    |\n| blank    | Displays screensaver settings                | none                     |\n| on       | Enables the screensaver with default timeout | none                     |\n| off      | Disables the screensaver                     | none                     |\n| save     | Saves current options to ~/.ssaver.rc        | none                     |\n| set      | Sets options  (see below)                    | colors,lock,random, time |\n\n#### Set commands\n\nSet commands are invoked with ```set \u003ccmd\u003e \u003cargs\u003e```. Each time a set command is used the \nscreensaver options are saved to ```~/.ssaver.rc```.\n\n|Command |Description                                          |Parameters                |\n|--------|-----------------------------------------------------|--------------------------|\n|colors  |Turns on or off random coloring of the logo.         |on, off                   |\n|fullhost|Turns on or off full hostname in logo.               |on, off                   |\n| lock   |Turns on or off screen locking when saver activated. |on, off                   |\n|random  |Turns on or off random placement of logo             |on, off                   |\n| time   |Sets the number of idle seconds for acitvation       | *seconds*                |\n\n\n### Screenlock\nThe screenlock pythong program assumes that USER is set to the logged in user name. The screensaver.sh script marks this variable as read-only. When locking is enabled, the screenlock program uses PAM to check the password entered and unlocks the screen if authenticated with PAM. \n\nScreen lock arguments:\n\n| Argument     | Description                                |\n|--------------|--------------------------------------------|\n| -h, --help   | Show help message and exit.                |\n| -c, --colors | Use random colors on display.              |\n| -n, --nolock | Disable requiring a password to deactivate.|\n| -r, --random | Use random placement of logo.              |\n| -l, --long   | Use long (full) histname                   |\n\nscreenlock can be invoked directly, but, it's really meant to be called by the shell when TMOUT idle seconds expire. All the options of screenlock can be set by the screensaver command using the above command set.\n\n## Installation\n\nI have tested this code on Debian Bookworm, Pi OS Buster, Ubuntu Server 18.04 and macOS Ventura.\n\n### Prerequisites \n* zsh\n* python 3.9+\n* the following python modules: curses, pam, random\n\n1. copy screenlock to somehwere on your path\n2. copy  screensaver.zsh to a convenient place\n3. add ```source path-to/screensaver.zsh```\n4. run ```exec zsh```\n\n\n## License\nThis program has no license. Use it, copy it, call it yours if you feel a great need. No warranty is expressed or implied. If it breaks something, you own all the pieces. Please see [LICENSE](LICENSE) for details. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicciniamh%2Fssaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicciniamh%2Fssaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicciniamh%2Fssaver/lists"}