23 Star 148 Fork 27

小桥流水 / ideawall

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
GPL-2.0

ideawall - 创意者桌面. 极致就是艺术.

##############################################

此项目已关闭. 服务端已停机. 项目代码供研读, 相互学习. (给您带来不便之处, 敬请谅解)

##############################################

下载地址:    Mac OSX     Windows 7+

为什么没事蛋疼写这么一个东西?

作为一个程序猿, 电脑桌面, 静态壁纸看久了没激情; 也用过很多动态壁纸软件, windows 下的雨滴桌面, 讲道理, 够强大, 但不够简洁明了. 火萤视频桌面, 越来越无厘头. 我特么只是想要一个动态桌面背景, 整那么多花里胡哨的. mac 下比较好用的就 iwall(收费). 讲真, 很强大, 几近完美. 但是, 明明可以有更棒的功能设计, 却没有. 并且, 它并没有 win 版.

所以, 我要做一个跨平台的, 完美的, 桌面层软件工具. 就算自己用, 也可以很 OK.

本项目有哪些值得学习的地方?

(大神请绕道)

  • better-sqlite. 如果你后端转前端或全栈. 此项目中, 有完整编写封装的 sql 简易构建语法糖. 并且, 分层是 MVC (model + view + controller + dao + service), 只要你会 js, 懂点 es6, 无痛学习. 我相信你看一眼app目录结构会 会心一笑.
  • electron-builder. 双 package.json结构, 完美打包设计. 不再有 electron 动不动打包 100M+ 的烦恼. 本项目目前打包 55M - 70M 左右. 其中, chromium 40M, sqlite 20M.
  • element-ui 和 iview-ui, 兼容集成. 且, 为静态安装方式.
  • electron 几近完整的 API 学习分享和体验.
  • log4js.
  • 客户端邮件发送(Tip: 仅主进程调用).
  • 压缩打包和解压.
  • 开机自启动.
  • 自动更新的设计策略.
  • 多 package.json 的跨平台开发方式. ...

技术选型

跨平台桌面软件, 并且要使用前端技术达到低成本高效益. 能满足条件的, 目前只有 electron, nw.js, 以及有道的 hex. hex 不说了, 不完善. nw.js 独有一套源码加密 API, 并且, 打包更小, 运行资源消耗更低. electron 胜在 API 丰富, 社区活跃. 但, 运行资源消耗稍高. 整合考虑, 还是决定用 electron, 资源消耗的问题, 只要不打开控制面板, 没有太大问题. 有搞头就尝试去优化它.

因为本人主要为后端开发, 所以, 并不是很习惯 vue 的组件化开发, 因此并没有使用 electron-vue 这玩意. 用的是裸 electron. 结构分层也是典型的后端开发分层模式.

技术原理

在桌面图标层之下, 壁纸层之上, 直接挂一个浏览器窗口. 里面是 HTML~ [支持多显示器]

版本说明

目前已编译分发 mac 版本, windows 版本(win7+), linux版本暂未考虑打包. 当前版本号已至 1.2.1 (详细版本日志, 请查看客户端内嵌社区贴)

技术债务

以下技术债务, 仅在用户量达到某一数量才会考虑开发. 说人话就是, 有时间要运营才会考虑去扩展开发. 目前功能, 足够程序猿拿去玩了.

  • 桌面商店: 暂时没有写, 这个, 没人用的话, 写了也白写. 主要功能是 HTML 发售平台.
  • 桌面源项目用户点评模块: 同上. 主要为增强用户粘性的产物.
  • 目前桌面层无法接收鼠标事件, 这个, 难搞哦~ 后期可能会处理, 为了安全性考虑, 也可能不会处理.
  • windows 端, 丑. 这个, 我也很无奈, windows 平台字体发虚, 原生 dialog 丑陋不堪. 后期考虑处理. 但几个朋友说还好, 可能 mac 用久了有点处女座吧.

极客用法

emmm... 自己写个 HTML, 打开 ideawall, 配置超桌, 右边高级配置, 桌面源选本地桌面源, 然后, 选择你的 HTML 文件. 最后, 超桌上右键, 为主屏幕启用. ojbk.

还有一种, 选超桌, 右边高级配置, 远程桌面源, 直接填写网址, 比如说, 必应, 然后, 你的桌面就是必应的每日一图了~ 简单粗暴~

开源声明

此项目为产品级, 非脚手架工具级项目, 采用 GPL 协议 , 禁止闭源商业发布, 仅供学习参考, 禁止 未经作者许可 擅自商业运营和各类证书申请, 违者必究.

预览截图

以下预览截图为 mac 1.2.1 版本截图情况, 详细差异自行斟酌.

整体预览 超桌预览 我的桌面 桌面商店 资源社区 社区帖子 偏好设置-常规设置 偏好设置-动画设置 反馈与支持

开发历程

点击查看详细内容 有一个很大的问题,在 mac 上, 壁纸层的窗口无法获取鼠标事件(快捷键事件无影响). 解决方案: 启动的同时, 额外创建一个窗体覆盖在整体之上, 设置为透明, 在这个窗体上, 控制需要传递的动作效果到壁纸层的域窗口.

那么, 如果想要作为壁纸的网页可操作, 这种网页需要进行定制. => 目前看来, 暂无更好的办法.(除了去调用原生系统API之外.) 并且, 操作层的域窗口要求比较严格, 以防止影响原始桌面的图标控制, 以及其他相关操作. 相对应的, 所带来的好处是, 可以完全操纵和自定义化桌面, 因为它们(壁纸层和操作层)始终是包裹在图标层的上下两侧的.

2019.06.12 任务
  • 我的桌面, 右侧表单配置 UI 设计. 做表单生成逻辑, 比较麻烦. ✔️
  • 反馈与支持, 功能设计. ✔️
  • 偏好设置, 基础 UI 设计. ✔️
  • 桌面商店, 给出屏蔽的提示. ✔️
2019.06.13 任务
  • 换个滚动条 => 简要处理了一下, 先救酱紫. ✔️
  • 桌面设置周期逻辑完善编写, 主要是本地数据库和表单的问题.
    • 首先思考一下, 需要的必备的本地数据库.
    • 然后, 编写 Model 层, 不要 Dao 层, 直接在 Model 层进行 [充血模型]
    • 最后对接.
    • 注意: 后期条件允许的情况下, 整改为使用 sqlite 数据库.
  • 用户桌面管理, 弄一张图放上面, 直接放 iframe, 性能低下. 写设置模块的时候一起弄.
  • 评论功能优化, 这个待定, 可能先不要. ✔️
  • 信息功能优化, 这个要. ✔️
  • 日志功能待定, 这个待定, 要的可能性不大. ✔️
2019.06.14 任务
  • 桌面配置表单继续完成, 先把最关键的写好, 然后再去搞事. ✔️
  • 桌面信息表单继续完成 ✔️
  • 设备桌面配置逻辑完成 ✔️
2019.06.16 任务
  • 桌面预览窗体编写 ✔️
  • Wall桌面源开始对接基础配置系统 ✔️
2019.06.17 任务
  • 修复 Dialog 的问题. => 放到渲染进程里去. ✔️
  • 设备信息查看窗体编写 ✔️
  • README信息查看窗体编写 ✔️
2019.06.18 任务
  • 桌面配置 - 高级配置 添加 json 编辑器 ✔️ 监听change 事件, 通过 ipc 指令回传发送即时更新即可. ✔️
  • 桌面配置 - 桌面源配置 ✔️
  • 桌面配置 - 媒体配置 逻辑对接完善 ✔️
  • Wall桌面源媒体资源的对接 ✔️
  • Wall桌面源高级配置 - 桌面源参数 对接 ️✔️
  • Wall桌面源高级配置 - 约定域参数 对接 ️✔️
  • 关于播放静音等功能开关的持久化位置, 从桌面表切换到设备表上. 不然不好维护. ✔️
  • 约定域参数的构建需要重新设计 ✔️
  • 视频桌面的切换空挡空白问题需要修复一下. ✔️
  • 设置更新的时候, 桌面的即时反馈问题.
  • 无边窗口拖拽问题. ✔️ 编码控制监听刷新就好.
2019.06.19 任务
  • nosql 换 sqlite, 再麻烦也要换. 不然数据层数据不稳定, 整个系统就不稳定. ✔️
2019.06.21 任务
  • 数据层重构. ✔️
  • 历史遗留问题处理解决, ✔️
  • 截屏快照动作放到主进程进行, 与控制面板生命周期同步, 截屏数据放到 appvar 变量中, 数据库合并 display 和 screen 类的字段属性. 一同存储. 暂时先不处理. ✔️
2019.06.22 任务
  • 媒体配置即时生效. ✔️
  • 高级配置给个按钮, 应用后生效. ✔️
  • 偏好设置表单完成 ✔️
  • 偏好设置逻辑完成 ✔️
  • 细节优化 ✔️
  • 打包, 暂时不打 asar. 公开源代码也没事. ✔️
  • 发布之前的一些细节问题处理优化.
    • 如果初次修改了媒体组, 桌面的初始化标记也处理掉. ✔️
    • 初始化的时候, 控制面板任务未启动, 桌面层读取数据库后会有一些报错项. ✔️
    • 托盘菜单的动作处理. ✔️
    • 托盘分享. ✔️
    • 关于 ideawall 窗口设计. ️✔️
    • 反馈界面的分享. 暂时不要.
    • 添加腾讯统计. ✔️
    • 控制面板右上角添加一个 小 loading 层. ✔️
    • 控制面板的 dialog 考虑添加 win 参数声明. ✔️
    • 获取 IP 的逻辑重新设计, 现在的这个搜狐网络请求会影响体验效果. ✔️
    • 媒体组本地文件添加有效性判定. ✔️ 还有瑕疵, 暂时先这样了~
    • 退出应用程序时候, 关闭托盘入口. ✔️
    • 添加网络状态监测功能. ✔️
    • 已存在的媒体文件不允许添加. ✔️
    • 偏好设置界面添加重启按钮, 检查更新按钮. ✔️
    • 偏好设置界面添加桌面动画设置项. ✔️ 离场动画在 wall 上, 入场动画在框架子集上.
    • 偏好设置界面添加快照时间间隔设置项. ✔️
    • 偏好设置界面添加启动是否打开控制面板设置项. ✔️
    • 偏好设置界面添加全局音量调节设置项.[考虑] ✔️
    • 偏好设置界面添加是否开启断网提示设置项. 暂时不要. ✔️
    • 偏好设置界面添加一个系统修复功能(删除数据库重建). ✔️
    • 全局隐藏功能, 隐藏重启之后, 发现是显示的问题修复. ✔️
    • 控制面板右上角的 同步loading层导致的 overflow-x 的问题需要解决一下. ✔️
    • 窗口 title 的问题统一处理. ✔️
    • 控制面板头部拖拽能优化尽优化一下. ✔️ 完美, 但损失了 mac 下的窗口边缘吸附效果.
    • 托盘菜单增加控制桌面暂停, 静音等动作. ✔️
    • over. 把自动更新弄好就发布.
2019.06.23 任务
  • 打包, 准备发布. ✔️
  • 托盘菜单增加控制桌面暂停, 静音等动作结果同步向控制面板. ✔️
  • 桌面转场动画异常问题修复. ✔️
  • wall 增加 api 开关改变的提示信息层. 暂时不处理.
  • 优化因网络异常导致的腾讯统计阻塞加载的问题. ✔️
  • 崩溃日志报告功能, 发送监测邮件. 只能建立服务器传送, 暂时不处理.
  • resolver 层在打包之后无法通过 node 指令调用的问题. 只能搞到主进程去处理执行. ✔️
  • 打包防篡改代码的问题. => 考虑一下 nw.js => 安全性可以, 但API 不够丰富, 不能提供满足该项目的特定解决方案. 重构工作量也是一个问题. => 放弃.
  • 解决打asar包的问题. ✔️
  • 缩减安装包大小. ✔️
  • 关闭控制台. ✔️
  • 自动更新功能. ✔️
  • 分发.
  • 加密思路: 后续版本补上. nodejs 暂时没有任何手段能进行加密. 1. 要到桌面商店下载获取和安装桌面, 这个的加密安全性处理, 是绝对没问题的. 2. 要考虑的是, 破解者, 直接把桌面包放到本地了. 3. 对于这种情况, 系统启动之后, 对比一下远程和本地的数据, 然后控制即可. 很麻烦. 4. 但是, 本地代码无法保证安全性... 5. 将此类型的敏感代码放到 secure 中, 混淆处理. 算了, 不加密了, 开源 ojbk.
2019.06.25 任务
  • Windows端调测打包。 ✔️
  • 解决配置通信问题. 下午.3 √
  • 解决引导问题. 晚上.1. ✔️
  • 解决windows下设备快照遗留问题. √
  • 解决windows下托盘菜单的上下文触发偶现导致应用崩溃的问题. 下午.1 √
  • 修复网络较差情况下, 腾讯统计造成的页面阻塞. √
  • 解决控制面板加载缓慢的问题 => 提前打开, 关闭实际隐藏, 停止快照即可. √
  • 控制面板平台兼容细节调整. √
  • 设备监控获取桌面映射配对的延迟问题处理。 √
  • 解决windows下手动修复功能的异常问题。(数据库被锁定)。 √
  • 买新域名, 备案, 修改代码中的域名信息. 下午.2 ✔️
  • 打包发布1.0.1版本. 晚上.2 ✔️
2019.06.27 - 2019.06.30 任务
  • 资源社区搭建 搭建完毕. ✔️
  • 遗留问题:
    • QQ 互联登录 / 微信互联登录 延后
    • electron 中无边窗口打开新窗也无边的问题处理. ✔️
    • 社区中部分链接修改为主动新窗打开, 比如说: 联系 QQ, 分享, 管理中心, QQ 互联等. ✔️
    • 屏蔽社区访问推广, 屏蔽分享功能. ✔️
    • 手动写一个 Dialog 模块. 因为 win 下的 dialog 太丑了. ✔️
    • Windows 端细节和性能优化. √ 先编译 mac 端.
      • windows下的更新问题, 弄完这个直接开始编译发布.
      • 打开新窗口和浏览器, 提醒我. 延后
      • 开始测试编译.
    • 双端同步编译打包发布 1.0.7 版本.
  • 桌面商店(简化版)构建.
    • 客户端控制栏按钮增加用户头像, 点击调起登录/ 延后 Ucenter 功能暂时不做!
    • ucenter 的问题处理. 延后
    • 客户端的登录入口问题处理. 延后
    • 登录入口与资源社区协调处理. 延后
    • 桌面商店黑箱逻辑设计. ✔️
  • 推广单页开发: -下载软件的单页面就好. ✔️
  • 帮助按钮链接向社区固定帖子. ✔️
  • 桌面相关的大量遗留问题和细节优化. ✔️
future 任务
  • 桌面商店开发
  • 伴生开放平台
  • 其余服务器连接各项细节处理
  • 插件模式设计, 实现雨滴的功能, 按需取用(其实就是在图标层上加一个透明层, 可以搞, 但是目前是没必要的).

还有一些废话~

此项目为另外一个私人开发了一年的项目迁移改造, 提交记录可能并不明朗. 不要在意这些细节.

最近, 准备找工作, 很忙, 可能不会提供更新. 有 bug 或心得和反馈, 请在客户端"反馈与支持"栏目提交, 或者在客户端内嵌社区中发帖.

The English version of README is not available for the time being because some services may not be accessible abroad.

GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.

简介

一款产品级跨平台动态桌面软件, 轻松将任意网页设置为桌面背景. 此外, 幻灯片, 视频,等常见动态桌面均手到擒来. 展开 收起
JavaScript 等 3 种语言
GPL-2.0
取消

发行版 (2)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/thinkneo/ideawall.git
git@gitee.com:thinkneo/ideawall.git
thinkneo
ideawall
ideawall
master

搜索帮助