Desktop application for Windows/macOS users to rotate through custom, preset, and searched-for collections of backgrounds with scheduling and additional settings

Overview

Background Revolution (In Development, Alpha Release)

What?

This will be an application for users to customize their windows backgrounds by uploading their custom collections, choosing from our preset ones, or even by searching on the spot by keyword. Then, the user can modify which ones are currently in their "rotation" so that it will automatically be changed for them by a set interval of their choosing.

How?

Either download the executable/zip file from one of our releases or run the most recent code from your own machine like so:

  • Make sure you have Python 3.8+ installed and added to PATH
  • Clone the repo on a computer running either Windows 10 or MacOS
  • Open your terminal in the directory that the repo is in
  • Install the required Python modules by running the requirements.txt file as such: pip install -r requirements.txt (doing this in a virtual environment is recommended), bare in mind that some modules aren't supposed to be installed on your machine (due to OS differences) so let the errors be
  • Run the file using python main.py or another method of your choosing

Why?

This is meant as a personal open-source project that won't ever be commercialized. Despite there already being an application very similar to ours, Wallpaper Engine on Steam, ours will bring a unique scheduling method, search by way of web scraping a Google Images API rather than community posts, and our collections system is different. We're not even looking at that application for any sort of inspiration, seeing as we had the idea before realizing its existence.

Comments
  • Steps for Development

    Steps for Development

    Part 1:

    • [x] Have a button on GUI to open file explorer and select an image for the background.
    • [x] try to open image, return an error message if unsupported file type inside image box. (not needed since configured file types already)
    • [x] Display image on GUI to review the image and submit.
    • [x] Change the user's background to the selected image upon hitting the submit button.
    • [ ] Could add options like this for how the image appears (fill = default, could also add resizing with whitespace on sides, could recommend tile for smaller images which would lose out on quality upon resizing to fill screen) image

    Part 2:

    • [ ] Uploading a custom collection of backgrounds, being able to upload multiple at a time
    • [ ] Being able to configure which images are in a current rotation and the period for which it is present in the cycle.
    • [ ] Schedule pictures for the next x amount of time to rotate through, until let's say 9 months is done with 36 cars images, 1 for every week.
    • [ ] Get time from user's computer or have a server running, probably the latter.
    • [ ] maybe get time from reputable online clock, then have it be checked on computer startup.

    Part 3:

    • [ ] Webscrape images for custom searches by users themselves through google images (google images API).
    • [ ] Can also choose custom collections or some preset options (that we've picked).
    • [ ] Can choose which preset collections of ours to show by putting them in a checkbox grid type thing.
    enhancement 
    opened by Daggerpov 3
  • Bump pillow from 8.3.1 to 8.3.2

    Bump pillow from 8.3.1 to 8.3.2

    Bumps pillow from 8.3.1 to 8.3.2.

    Release notes

    Sourced from pillow's releases.

    8.3.2

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.2.html

    Security

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    Python 3.10 wheels

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    Fixed regressions

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    Changelog

    Sourced from pillow's changelog.

    8.3.2 (2021-09-02)

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    Commits
    • 8013f13 8.3.2 version bump
    • 23c7ca8 Update CHANGES.rst
    • 8450366 Update release notes
    • a0afe89 Update test case
    • 9e08eb8 Raise ValueError if color specifier is too long
    • bd5cf7d FLI tests for Oss-fuzz crash.
    • 94a0cf1 Fix 6-byte OOB read in FliDecode
    • cece64f Add 8.3.2 (2021-09-02) [CI skip]
    • e422386 Add release notes for Pillow 8.3.2
    • 08dcbb8 Pillow 8.3.2 supports Python 3.10 [ci skip]
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Upgrade CodeSee workflow to version 2

    Upgrade CodeSee workflow to version 2

    CodeSee is a code visibility platform.

    This change updates the CodeSee workflow file to the latest version for security, maintenance, and support improvements (see changelog below).

    That workflow file:

    • runs CodeSee's code analysis on every PR push and merge
    • uploads that analysis to CodeSee.
    • It does not transmit your code.

    The code analysis is used to generate maps and insights about this codebase.

    CodeSee workflow changelog:

    • Improved security: Updates permission to be read-only.
    • Improved future maintenance: Replaces the body of the workflow with a single github action: codesee-action. This makes it significantly easier for CodeSee to introduce future improvements and fixes without requiring another PR like this.
    • Improved Python support: The action now properly supports Python 3.11, and will continue to support new Python versions as they are released.
    opened by codesee-maps[bot] 1
  • Elements of Screens

    Elements of Screens

    General:

    • [x] figuring out how to save settings and don't show again on the main screen to a file or something to store locally for users
    • [ ] adjusting size of application rather than user's screen size as an option, but keep user full screen as default
    • [x] fix dual monitor slight overlap

    Main:

    • [x] if clause for don't show again, moving to browse preset and upload custom to fill horizontally || adding explanation and shortening upload custom and browse preset
    • [x] adding search magnifying button and placeholder text for filling in the search
    • [ ] enabling Ctrl/Cmd+Backspace to delete word in Search PlaceholderEntry

    Settings:

    • [x] theme selection
    • [ ] choosing collections directory rather than next to the program
    • [ ] the info with repo link
    • [ ] putting authors
    • [ ] adding license
    • [ ] suggest to authors placeholder text to scroll as you type

    Custom:

    • [x] return to main menu button
    • [x] adding trashcan for deleting uploads from the grid
    • [x] adding save to button
    • [x] toggle select all button
    • [x] dynamic grid for image uploads
    • [x] extending grid fully horizontally
    • [x] fit buttons in action_frame
    • [x] add whitespace between the 3 buttons in between the top two and on top of the bottom one
    • [x] fit images to their grid spot
    • [ ] pop up an alert with don't show again setting (similar to one in the main menu) explaining how to select multiple images (with control/cmd + click)
    • [ ] help button for how to select multiple images from the grid, (ctrl+click on first, then ctrl+click on last and highlights everything in between or maybe just right click highlight like usual)
    • [ ] check for duplicate files with pop up asking if a user is okay with a file already being in the grid

    Save To Screen:

    • [ ] make scroll bar proportional to how many collections there are to save to
    • [ ] make scrolling possible with mouse scroll wheel

    Preset:

    • [x] return to main menu
    • [ ] title for preset collections
    • [ ] name | date added (oldest/newest) | popularity (drop-down)
    • [ ] copy to button
    • [ ] preview button leading to preview screen
    • [ ] preset listings
    • [ ] scroll on right side (works with scroll wheel or mouse hold)

    Preview Screen for Preset:

    • [ ] title with preset collection name filled in
    • [ ] copy to (same as in preset)
    • [ ] back to browse presets
    • [ ] display image with next/prev buttons on either side
    • [ ] display index as caption

    Search:

    • [x] return to main menu button
    • [ ] show search results from main menu placeholder entry

    Manage:

    • [x] return to main menu button
    • [ ] should be about the same as what comes from the save to button in the custom/preset collection pages, just without something to save. this should be made first then custom/preset save to pages will be easy since we'll just have to add the feature of saving the selected images to a certain collection

    Schedule:

    • [ ] placeholder for time (in the drawing)
    enhancement 
    opened by Daggerpov 0
  • Random Ideas

    Random Ideas

    • database for storing preset collections then importing them upon app launch rather than having to re-hardcode those collections
      • could just supply the collection images, name
      • maybe we could make an online form to fill out, then be approved to add preset collections and credit the author
    question 
    opened by Daggerpov 1
  • Fixes

    Fixes

    • [x] Resize Preview of the image to fit into the lower_frame with its original aspect ratio, this means possibly having whitespace(blank, or in our case the green background) to fill the edges so that the image doesn't get stretched or compressed. https://stackoverflow.com/questions/4066202/resizing-pictures-in-pil-in-tkinter/32803004
    • [x] Add text in the lower_frame for before the image preview shows up saying "This is where your image preview will be" or something to indicate what that space is for (I can do this)
    • [x] When an image is edited, the background doesn't change even though the preview of a said image has been. (Mac)
    • [ ] Need to modularize the code out of just one .py file
    • [x] fix multiple image uploads in custom screen
    bug enhancement 
    opened by Daggerpov 0
Releases(v1.0.0-alpha)
Owner
Daniel Agapov
🎓 LDHSS Class of '22 | LDH Code Club Leader | @ldhssrobotics Member | 📚 Prospective Computer Science Student
Daniel Agapov
A Python Tkinter based Inventory managment System

Inventory Management System Using Python Tkinter Introduction Inventory managemrnt system is an open source platform for manage business. It has a com

Amit Kumar Datta 2 Oct 14, 2021
WhirlEdit, an excellent {code} editor

HELP! If you're experienced, I want you to make an executable for your platform (windows/mac/linux) and help me.. For more info get in touch at whirlp

whmsft 10 Aug 18, 2022
Function-Plotter - GUI Application to plot math Functions

Function Plotter GUI Application to plot a user given function How to run instal

1 May 05, 2022
The quick and easy way to add versatile graphical interfaces with networking capabilities to your Python programs.

The quick and easy way to add versatile graphical interfaces with networking capabilities to your Python programs. Give instant access to your application to whoever you want on the Internet, without

Claude SIMON 215 Dec 28, 2022
Advanced GUI Discord Account Nuker that is easy to use, with many features.

AccountNukeV3 Showcase Youtube: Features: Remove all friends Block all friends Leave all servers Mass create servers Close all dms Mass dm Fuck Settin

Lodi#0001 24 May 22, 2022
Py3editor - A text editor written in Python and Tkinter

Py3Editor My text editor written in Python and Tkinter! Contains a basic set of

JaydenDev 1 Mar 05, 2022
HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities.

HDLG is a modern cross-platform GUI for hdl-dump with Batch installation capabilities. Looking for Artwork This project is looking for an Icon an

8 Dec 03, 2022
Tukaan is the new framework that aims to replace Tkinter

Tukaan is the new, pythonic and colorful (like a keel-billed toucan) framework that aims to replace Tkinter. It has everything (on my computer, not at GitHub) that you need to develop cross-platform

Tukaan 101 Jan 08, 2023
Simple GUI python app to show a stocks graph performance. Made with Matplotlib and Tiingo.

stock-graph-python Simple GUI python app to show a stocks graph performance. Made with Matplotlib and Tiingo. Tiingo API Key You will need to add your

Toby 12 May 14, 2022
Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp .

ZolaCabs Advanced Zola Cabs integrated with tkinter Graphical User Interface (GUI) made for ZOHO Corp. Logs username : zoho password : zoho [ Deve

Mastermind 9 Nov 18, 2021
Software com funçoes de A a Z feito no Python

Introdução Iniciante em programação Python, decidi criar um programa com diversas ferramentas de A a Z. Funções Ferramenta de Gerenciamento e Manutenç

João Pedro 1 Jan 26, 2022
GUI Python Auto text bot.

Bagel Text Bot Auto text bot. Written in Python. Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what

Toby 3 May 14, 2022
A simple todo GUI applicaiton

simple_todo_gui A simple todo GUI applicaiton To create an .exe file, run 'Python setup.py build' after installing PyQt5 and cx_Freeze with pip. Then

Dhammike Piyumal 2 Nov 11, 2021
Delphi's FireMonkey framework as a Python module for Windows, MacOS, Linux, and Android GUI development.

DelphiFMX4Python Delphi's FireMonkey framework as a Python module for Windows, MacOS, Linux, and Android GUI development. About: The delphifmx library

Embarcadero Technologies 191 Jan 09, 2023
Bank-Project - A bank ATM simulator recreated in python

Bank-Project A bank ATM simulator recreated in python. NOTE: this repo is a translation of Rasphy2009/Proyecto-Banco Requirements (.py only) 🐍 Python

Rasphy 2 Jan 02, 2022
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

283 Nov 30, 2022
This is a GUI based text and image messenger. Other functionalities will be added soon.

Pigeon-Messenger (Requires Python and Kivy) Pigeon is a GUI based text and image messenger using Kivy and Python. Currently the layout is built. Funct

4 Jan 21, 2022
Create highly interactive web pages purely in Python

A package for building highly interactive user interfaces in pure Python inspired by ReactJS.

701 Jan 03, 2023
PyQt QGraphicsView with selection box. User can move vertical border of the box horizontally.

pyqt-horizontal-selection-square-graphics-view PyQt QGraphicsView with selection box. User can move vertical border of the box horizontally. Requireme

Jung Gyu Yoon 3 Nov 07, 2022
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

Bimba Shrestha 283 Nov 30, 2022