GithubHelp home page GithubHelp logo

hunghvu / dynamic-wallpaper Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 6.84 MB

A program allows users to automatically change wallpaper based on user's provided time throughout a day.

Home Page: https://hunghvu.github.io/dynamic-wallpaper/

License: GNU General Public License v2.0

Java 100.00%
dynamic-wallpaper wallpaper desktop-wallpaper window window-10 wallpapers wallpaper-engine wallpaper-changer desktop-background

dynamic-wallpaper's Introduction

GitHub All Releases

Description

  • A small program, written in Java, allows users to automatically change their desktop wallpaper at a specific time in the day.
  • Users can either choose their picture folder or choosing an option to get an image from Internet, then the program will randomly choose one image and set it as wallpaper.
  • Initially, I'm learning on how Java interacts and modifies the OS, and coincidentally, my sister asked whether I know any kind of program that randomly changes wallpaper. Well, I don't know, so I decided to create one myself and here it is.
  • This is only a personal/student (out-of-class) project that I do in my spare time. It is a DIY way for me to practice the concept that I've learned about, well, and it's FUN! Feel free to take a look over the code. I hope it can be helpful for you!

Latest version

Features

  • As of version 1.0.1.2:
    • The timestamp is based on 24-hour military time.
    • Randomly choose a picture in a designated folder and set it as wallpaper at a designated time stamp. For example, change the wall paper at 08:00 and 19:00.
    • Randomly choose a picture from the Internet and set it as wallpaper at a designated time stamp. For example, change the wall paper at 08:00 and 19:00. This feature requires an Internet connection.

Basic guide (old version)

The GUI and functionality may change in a later version of the program, however, the use should work in a relatively same way. User Guide

Demo

  • The GUI and functionality may change in a later version of the program, however, the use should work in a relatively same way.
  • The images are taken from Lorem Picsum.

Dynamic Wallpaper GUI demo

Dynamic Wallpaper GUI demo

Supported platforms

  • This program has been tested only on Windows 10, it should run properly on this platform.

Execution process

  • For zip file:
    • Download the archive/zip file here.
    • Extract the archive/zip file.
    • Go inside the extracted folder, run DynamicWallpaper.exe (done).
  • For jar file:
    • Download DynamicWallpaper.jar file
    • If Java 11 or any later version is properly installed, the jar file can be executed directly using double click (done).

Component sources

  • The project and executable files uses/packages JNA open library. I don't own nor be a contributor to the library. All rights reserved to their respective owners/contributors/creators.
  • The project uses and redistributes the latest Open JDK version, 14.0.2, as of 2020/07/14. I don't own nor be a contributor to the Open JDK. All rights reserved to its respective owners/contributors/creators.
  • The project uses images from and make API call(s) to Lorem Picsum. I don't own nor be a contributor to the API, or the images. All righgts reserved to their respective owners/contributors/creators.
  • I draw the icon for this program myself using Microsoft Paint. Just a simple icon contains the letters "D" and "W"! Then, I convert it to .ico file using ICO CONVERTER.

Note

About Lorem Picsum:

  • From version 1.0.1.1 and later on, this program will have API call(s) to Lorem Picsum to support new feature(s). This is also my attempt to work with RESTful API because I'm learning about that concept. Although this project is mainly used to support my self-learning process, I'm not entirely sure if publishing code (or executable file) with an API call to Lorem Picsum on GitHub is permitted. As I couldn't find a way to contact to Lorem Picsum staffs to ask about this matter, I want to experess my concern here.
  • If anyone believes the mentioned action(s) isn't accepted, please notify me via my email so I can fix the problem. I'd like to have a discussion about this too as I'm actually curious about how API call is shown in an open source project/codebase.
  • I also asked a question about this matter on Open Source Stack Exchange too. I appreciate if you can go there and give your view on this matter.

What I have struggled and learned about in this project

Major. These are new to me, so it's really nice to learn about them.

  • June - July (2020):
    • The way to package .jar and runnable .jar, and how it performs based on my code (E.g: images must be inside a package to be exported to runnable jar, etc).
    • How to convert .jar to .exe using Launch4j by Grzegorz Kowal.
    • How to install and use external library (JNA).
    • How Java interact and modifies the OS.
    • How to use GitHub (push, pull, backup, comment, etc).
    • How to use VisualVM by Jiri Sedlacek, and Tomas Hurka to observe heap usage of VM.
  • September (2020):
    • (Basic) concept of RESTful APIs.
    • How to interact with RESTful APIs.
    • (Basic) networking in Java.
    • Using GitHub tools, pull request function.

Minor. I already learned these concepts before, and this project help me improve my knowledge on them. Still, there is a long way to go.

  • June - July (2020):
    • Garbage collection in Java (to fix memory leak issue).
    • Static concept in Java.
    • GUI design (properties of components, layouts, etc).
    • Concurrency, thread design.
    • Way to use checkstyle, PMD, surpress warning.
  • September (2020):
    • Concept and application of refactoring.

License

This project is licensed under GNU GPL-2.0-or-later.
Copyright (C) 2020 Hung Huu Vu

dynamic-wallpaper's People

Contributors

hunghvu avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.