Linux下屏保程序

http://www.openswc.com/forum.php?mod=viewthread&tid=560

利用一些便捷的小软件把自己的数码相片做成绚烂多彩的屏保,放在自己的电脑上该是多么惬意的一件事啊!虽然Linux下制作屏幕保护的软件比较少,但是我们可以利用Linux本身的特点,亲手制作一个有Linux特色的屏幕保护程序。

XScreenSaver概述
目前,大多数的Linux发行版中,X-Window的屏幕保护程序都是由XScreenSaver提供的。XScreenSaver类似一个容器,可以容纳任何可以在根窗口绘图的X-Window程序,作为具体的屏幕保护程序。现在的XScreenSaver聚集了很多漂亮的屏保程序,比如像各种曲线、3D动画等。


利用GLSlideShow制作屏保
XScreenSaver有一个GLSlideShow的模块,专门用来动态浏览目录下的图片,设置也很简单,只是它需要用到OpenGL图形库。
GLSlideShow设置如下:
1.确认安装GLSlideShow 打开XScreenSaver配置管理器(从选单中选择或直接在控制台下键入“xscreensaver-demo”),确认已安装了GLSlideShow。
2. 设置图片所在目录进入“高级”选项页,选择“Choose Random Image”选项,并设置图片的目录。


xscreensaver 是多数Linux和Unix操作系统上标准的屏幕保护,运行在X11上。


项目主页:http://www.jwz.org/xscreensaver/


如何安装?


首先,移除gnome-screensaver


sudo apt-get remove gnome-screensaver


安装 xscreensaver


打开终端,使用命令:


sudo apt-get install xscreensaver


然后启动 xscreensaver 后台进程即可:


xscreensaver -nosplash


这样,可在“系统–首选项”里面进行相关配置了。


我们还需要设置“开机启动”:“系统–首选项–设为开机启动”,点击添加,命令为xscreensaver -nosplash ,名字自己定义即可。


最后,为了确保所有的屏保都可以使用,需添加:


sudo apt-get install unicode-screensaver xscreensaver-gl-extra rss-glx xscreensaver-data-extra
XScreenSaver是一个执行在X Window系统下的屏幕保护程序,它还能帮你锁定屏幕(分为:立即锁定、在比较长的空闲时间之后锁定、在需要的时候锁定),以防止他人未经许可就使用你的电脑。
  一、下载及安装
  该软件可以在作者的网站http//www.jwz.org/xscreensaver/中下载,最新版本xscreensaver-3.25.tar.gz的大小为1.23MB。
  XScreenSaver包括两部分内容,一部分是用以检测设备的空闲时间以及执行锁定系统任务的程序,它负责锁定、校验密码等相关操作;另一部分是许多由该程序启动的动人图形。
  程序在Linux下的安装方式和其他常见软件一样:
  tar zxf xscreensaver-3.25.tar.gz
  cd xscreensaver-3.25/
  ./configure
  make
  make install
  二、启动XScreenSaver
  现在,你已经可以领略一下XScreenSaver的风采了。除了让双手远离鼠标及键盘几分钟来启动程序之外,你也可以在driver目录中找到如下几个即时启动程序的命令:
  xscreensaver &
  xscreensaver-demo
  xscreensaver-command -demo
  xscreensaver-demo
  用于前台控制的xscreensaver-demo程序将在屏幕上弹出一个对话框,让你可以对XScreenSaver的设置及图形模式进行实验。作为一个对在后台执行的屏幕保护程序进行参数设置的绘图前端程序,它的主要功能有两个,一是作为编辑/.xscreensaver文件的工具,一是作为演示各种屏幕保护程序进程将要执行的图形模式的工具。
  其主窗口包括一个文件菜单及两个标签页,第一页用于编辑演示列表,第二页用于编辑各种屏幕保护程序的参数。相关功能介绍如下:
  1.菜单命令
  Blank Screen Now:激活后台的屏幕保护程序进程,然后随机地进行演示。
  Lock Screen Now:和Blank Screen Now类似,但是屏幕将同时被锁定(甚至在程序并没有设定锁定时间的时候),此后需要键入相应密码才可以继续使用。
  Kill Daemon:如果在该屏幕上执行了xscreensaver进程,kill它。
  Restart Daemon:如果在该屏幕上执行了该xscreensaver进程,kill它。然后再次执行它。
  2.Graphics Demos标签
  左边是各种显示模式名单的列表,右边则是让你编辑它们的状态的地方。
  Demo List:双击左边的列表,将让你测试指定的演示。屏幕变成黑色以后,该程序将以满屏幕模式执行。再次点击鼠标,将停止该演示,恢复原有屏幕。
  Arrow Buttons:在列表下面是一对上下箭头。点击向下的箭头将选择列表中的下一项,然后以满屏幕模式执行它。向上箭头则相反。这是用于测试所有的显示模式的快捷方式。
  Program Description:在顶端的是程序的摘要说明。在下面可以编辑程序的相关文本内容,以便xscreensaver进行调用。
  Enabled:用于控制XScreenSaver是否完全使用该显示模式。这时所有的模式都是可用的,但是你可以选择一个自动执行。
  Visual:能够在进程演示所需要的多种X视觉类型中进行选择,以实现一些特别的效果。
  Demo:该按钮以满屏幕模式执行演示,以便你可以测试它,点击鼠标可以解除测试。
  3.Screensaver Options标签
  在这里你可以改变用于XScreenSaver进程的各项设置,该标签相当于它的子程序。
  Saver Timeout:当用户空闲达到指定时间以后,xscreensaver进程将被激活。
  Cycle Timeout:当屏幕保护程序执行达到指定时间以后,将退出当前执行的图形演示,开始一个新的绘图程序。如果指定的时间为0,则图形演示不会被改变,该屏幕保护程序将仅展示一个绘图程序。
  Verbose:是否输出多种调试信息。
  Install Colormap:在屏幕保护程序激活时,是否安装自己的色谱,以便程序可以使用尽可能多的颜色。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下,可以使用C语言编程实现stat函数的功能。 stat函数用于获取文件的属性信息,包括文件类型、文件大小、创建时间、最后修改时间等。它的定义如下: ```c #include <sys/stat.h> int stat(const char *path, struct stat *buf); ``` 其中,path是要获取属性信息的文件路径,buf是用于存储属性信息的结构体指针。 在调用stat函数之前,需要先定义一个结构体,用于存储属性信息。结构体的定义如下: ```c struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t st_mode; /* protection */ nlink_t st_nlink; /* number of hard links */ uid_t st_uid; /* user ID of owner */ gid_t st_gid; /* group ID of owner */ dev_t st_rdev; /* device ID (if special file) */ off_t st_size; /* total size, in bytes */ blksize_t st_blksize; /* blocksize for file system I/O */ blkcnt_t st_blocks; /* number of 512B blocks allocated */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last modification */ time_t st_ctime; /* time of last status change */ }; ``` 其中,各个字段的含义如下: - st_dev:文件所在设备的ID。 - st_ino:文件的inode号。 - st_mode:文件的保护模式。 - st_nlink:文件的硬链接数。 - st_uid:文件所有者的用户ID。 - st_gid:文件所有者的组ID。 - st_rdev:如果文件是特殊文件,这里是设备ID。 - st_size:文件大小。 - st_blksize:文件系统I/O的块大小。 - st_blocks:512字节块的数量。 - st_atime:最后访问时间。 - st_mtime:最后修改时间。 - st_ctime:最后状态改变时间。 下面是一个示例程序,用于获取文件的属性信息并输出到屏幕上: ```c #include <stdio.h> #include <sys/stat.h> int main() { struct stat buf; int ret = stat("test.txt", &buf); if (ret == -1) { perror("stat"); return -1; } printf("File type: "); switch (buf.st_mode & S_IFMT) { case S_IFBLK: printf("block device\n"); break; case S_IFCHR: printf("character device\n"); break; case S_IFDIR: printf("directory\n"); break; case S_IFIFO: printf("FIFO/pipe\n"); break; case S_IFLNK: printf("symlink\n"); break; case S_IFREG: printf("regular file\n"); break; case S_IFSOCK: printf("socket\n"); break; default: printf("unknown?\n"); break; } printf("File size: %ld bytes\n", buf.st_size); printf("Number of blocks: %ld\n", buf.st_blocks); printf("Last status change time: %s", ctime(&buf.st_ctime)); printf("Last file access time: %s", ctime(&buf.st_atime)); printf("Last file modification time: %s", ctime(&buf.st_mtime)); return 0; } ``` 在这个示例程序中,我们使用了stat函数获取了test.txt文件的属性信息,并将这些信息输出到屏幕上。请注意,我们使用了ctime函数将时间戳转换为可读的时间格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值