phardwick / netware-screensaver-linux Goto Github PK
View Code? Open in Web Editor NEWThis project forked from jeffmerkey/netware-screensaver-linux
Ncurses Implementation of the Netware SMP Worm Screensaver on Linux
License: Other
This project forked from jeffmerkey/netware-screensaver-linux
Ncurses Implementation of the Netware SMP Worm Screensaver on Linux
License: Other
Copyright(c) Jeff V. Merkey 1997-2019. All rights reserved. Some portions adapted from xscreensaver loadsnake program and is portions Copyright (c) 2007-2011 Cosimo Streppone <[email protected]> Licensed under the Lesser GNU Public License (LGPL) v2.1. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appears in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. NetWare SMP style worm screesnsaver for Linux using ncurses USAGE: netware-worms [cpus|speedup] i.e. worm cpus=<num=8 to 256> speedup=<divisor=1|2|3|4> examples: netware-worms cpus=8; start worm screensaver with 8 worm threads netware-worms speedup=4 run worm screensaver at 4X speed This screensaver is built as both a dynamic shared object (*.so) and static archive (*.a) library module which allows other user space programs and consoles to invoke this screen saver as well as tmux, screen, and other BASH type programs setups. This screensaver uses ncurses and is text based which is identical to the Novell Netware SMP multi processor screensaver which displayed a color coded worm for each processor running. As each processor load increases on a particular processor, the longer the worm becomes and the faster it moves across the screen corresponding to that particular processor. As the overall system load average across the system increases, the base clock rate for all the worms increases slightly to indicate load average is increasing. BUILD You must have the ncurses-devel packages installed in order to make ncurses apps on your system. you can try "yum install ncurses*" to get all of the ncurses packages for RedHat and CentOS systems. This version was developed on a Red Hat 7 / CentOS 7 system. to make, type: # make -f Makefile <enter> the build process should display: g++ -g -c -O3 -fPIC -Wall libnetware-screensaver.c ar r libnetware-screensaver.a libnetware-screensaver.o ar: creating libnetware-screensaver.a ld -shared -lc -o libnetware-screensaver.so libnetware-screensaver.o g++ -g -O3 netware-worms.c -Wall -o netware-worms -lncursesw -lpthread libnetware-screensaver.a to perform a clean build: # make -f Makefile clean <enter> should display: rm -rf *.o libnetware-screensaver.a libnetware-screensaver.so netware-worms INSTALLING/UNINSTALLING To install: # make -f Makefile install <enter> should display: install -m 0755 netware-worms /usr/bin install -m 644 libnetware-screensaver.so /usr/lib install -m 644 libnetware-screensaver.a /usr/lib install -m 644 netware-worms.h /usr/include ldconfig ldconfig To uninstall: # make -f Makefile uninstall <enter> should display: rm -vf /usr/bin/netware-worms removed ‘/usr/bin/netware-worms’ rm -vf /usr/lib/libnetware-screensaver.so removed ‘/usr/lib/libnetware-screensaver.so’ rm -vf /usr/lib/libnetware-screensaver.a removed ‘/usr/lib/libnetware-screensaver.a’ rm -vf /usr/include/netware-worms.h removed ‘/usr/include/netware-worms.h’ ldconfig ldconfig RUNNING you can execute the program directly as: # ./netware-worms <enter> you can also add arguments to force number of cpus and a speedup divisor # ./netware-worms cpus=8 speedup=4 <enter> INSTALLING SCREENSAVER IN THE BASH SHELL To install the screensaver as a bash program which auto activates, use the program called "screen" coupled with Bash. The "screen" program has support for adding and invoking terminal based screensavers under Bash. You can install the program on CentOS and RHEL with yum by typing "yum install screen" if the program is not installed by default. You will need to create a .screenrc file in the user home directory (i.e. ~/.screenrc) which contains the following commands: Sample ~/.screenrc ------------------ blankerprg netware-worms idle 60 blanker Please note the idle command which specifies how many seconds to delay before invoking the screensaver (in this example it is 60 seconds) You also need to modify the ~/.bash_profile default bash configuation file to invoke screen by default after login. Add the following command to the ~/.bash_profile config file: Sample ~/.bash_profile ---------------------- # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH /bin/screen <------------ add this line to the default .bash_profile config file. After you have configured these two files, logout and log back into the system for whichever account you have enabled and the screensaver will auto-activate after 60 seconds of idle time. The only disadvantage to using this method to enable a terminal based screensaver is you will need to type the "exit" command twice in order to logout of the session. USING LIBRARIES You can also call the screensaver as a library function "netware_screensaver(cpus, speedup)" from another application with your own timer setup, just be sure to link to the "-lnetware-screensaver" .so library in your linker statements or link to the static library "libnetware-screensaver.a"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.