Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
5bb7d01
Add live wallpaper creator app
mentatbot[bot] Feb 3, 2025
f96b88e
Update FFmpeg implementation
mentatbot[bot] Feb 3, 2025
c990575
Fix FFmpeg initialization and CORS issues
mentatbot[bot] Feb 4, 2025
c264ff1
Fix asset loading and paths
mentatbot[bot] Feb 4, 2025
80dcef1
Improve FFmpeg initialization and error handling
mentatbot[bot] Feb 4, 2025
4ea0ee0
Add browser compatibility checks and warnings
mentatbot[bot] Feb 4, 2025
3aa5554
Add progress tracking and improve user experience
mentatbot[bot] Feb 4, 2025
bca11bd
Add keyboard shortcuts and improve accessibility
mentatbot[bot] Feb 4, 2025
89f685f
Add help documentation and keyboard shortcut guide
mentatbot[bot] Feb 4, 2025
b009ebf
Add README with documentation and setup instructions
mentatbot[bot] Feb 4, 2025
c8ceb67
Add overlay system with documentation
mentatbot[bot] Feb 4, 2025
fa8504e
Add animated SVG previews for overlays
mentatbot[bot] Feb 5, 2025
adcbb7e
Add welcome dialog and improve user experience
mentatbot[bot] Feb 5, 2025
1adf4cd
Fix asset loading and deployment paths
mentatbot[bot] Feb 5, 2025
fe7affa
Add error boundary and improve error handling
mentatbot[bot] Feb 5, 2025
fa33eb0
Add custom error types and improved error handling
mentatbot[bot] Feb 5, 2025
a557000
Enhance browser compatibility checking and warnings
mentatbot[bot] Feb 5, 2025
84c2344
Enhance browser detection and version checking
mentatbot[bot] Feb 5, 2025
61c82d4
Add system requirements to welcome dialog
mentatbot[bot] Feb 5, 2025
5dbe7b5
Add performance tips to welcome dialog
mentatbot[bot] Feb 5, 2025
14001de
Add keyboard shortcuts to welcome dialog
mentatbot[bot] Feb 5, 2025
f381e74
Improve accessibility and keyboard shortcut presentation
mentatbot[bot] Feb 5, 2025
8276e96
Improve focus management and keyboard navigation
mentatbot[bot] Feb 5, 2025
d6301dc
Add loading state and visual feedback to welcome dialog
mentatbot[bot] Feb 5, 2025
170da8f
Add error handling to browser compatibility check
mentatbot[bot] Feb 5, 2025
9f858f2
Add retry functionality to browser compatibility check
mentatbot[bot] Feb 5, 2025
50a7c25
Add progress tracking for browser compatibility checks
mentatbot[bot] Feb 5, 2025
88acd45
Improve accessibility of progress tracking
mentatbot[bot] Feb 5, 2025
a1b671a
Improve keyboard navigation and retry button accessibility
mentatbot[bot] Feb 5, 2025
4d573f5
Improve dialog focus management
mentatbot[bot] Feb 5, 2025
2d302dd
Add focus trap to dialog
mentatbot[bot] Feb 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions live-wallpaper-creator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
91 changes: 91 additions & 0 deletions live-wallpaper-creator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Live Wallpaper Creator

A web-based tool for creating animated wallpapers with customizable overlays. Built with React and FFmpeg.

## Features

- 🖼️ Upload and manipulate background images
- 🎞️ Export as GIF or MP4
- ⌨️ Keyboard shortcuts for common actions
- 📊 Progress tracking for exports
- 🎨 Modern dark theme UI
- ♿ Accessibility features

## Keyboard Shortcuts

- `Ctrl/⌘ + O`: Open file picker
- `Ctrl/⌘ + S`: Save as GIF
- `Ctrl/⌘ + Shift + S`: Save as MP4
- `?`: Toggle help dialog

## Browser Requirements

- Modern browser (Chrome, Firefox, or Edge)
- HTTPS connection (required for SharedArrayBuffer)
- WebAssembly support

## Development

### Prerequisites

- Node.js 16+
- npm or yarn

### Setup

1. Clone the repository
2. Install dependencies:
```bash
npm install
```
3. Start development server:
```bash
npm run dev
```

### Building

```bash
npm run build
```

The built files will be in the `dist` directory.

## Technical Details

- Built with:
- React
- Material-UI
- FFmpeg.wasm
- Vite

- Features:
- Client-side video processing
- Drag and drop interface
- Progress tracking
- Accessibility support
- Keyboard shortcuts

## Browser Support

The app requires:
- SharedArrayBuffer support
- WebAssembly support
- Secure context (HTTPS)

For best results, use:
- Chrome (latest)
- Firefox (latest)
- Edge (latest)

## Contributing

1. Fork the repository
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request

## License

MIT License
38 changes: 38 additions & 0 deletions live-wallpaper-creator/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import js from '@eslint/js'
import globals from 'globals'
import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'

export default [
{ ignores: ['dist'] },
{
files: ['**/*.{js,jsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
settings: { react: { version: '18.3' } },
plugins: {
react,
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...js.configs.recommended.rules,
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
...reactHooks.configs.recommended.rules,
'react/jsx-no-target-blank': 'off',
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
},
]
14 changes: 14 additions & 0 deletions live-wallpaper-creator/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin" />
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp" />
<title>Live Wallpaper Creator</title>
<script type="module" src="./src/main.jsx"></script>
</head>
<body>
<div id="root"></div>
</body>
</html>
36 changes: 36 additions & 0 deletions live-wallpaper-creator/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"name": "live-wallpaper-creator",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@ffmpeg/core": "^0.12.6",
"@ffmpeg/ffmpeg": "^0.12.7",
"@ffmpeg/util": "^0.12.1",
"@mui/icons-material": "^6.4.2",
"@mui/material": "^6.4.2",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-draggable": "^4.4.6"
},
"devDependencies": {
"@eslint/js": "^9.17.0",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.17.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.4.16",
"globals": "^15.14.0",
"vite": "^6.0.5"
}
}
36 changes: 36 additions & 0 deletions live-wallpaper-creator/public/overlays/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Overlay Assets

This directory contains overlay assets for the Live Wallpaper Creator.

## Structure

```
overlays/
├── sparkles/ # Sparkle and glitter effects
├── effects/ # General visual effects
├── nature/ # Nature-themed animations
└── animals/ # Animal animations
```

## Adding New Overlays

1. Add your GIF/APNG file to the appropriate category directory
2. Update overlays.json with the new overlay information:

```json
{
"category": [
{
"name": "Display Name",
"file": "filename.gif",
"description": "Brief description"
}
]
}
```

## Requirements

- Files should be transparent GIF or APNG format
- Keep file sizes reasonable (< 1MB recommended)
- Use appropriate category or create new one if needed
34 changes: 34 additions & 0 deletions live-wallpaper-creator/public/overlays/overlays.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"sparkles": [
{
"name": "Sparkle Effect",
"file": "sparkle.gif",
"preview": "previews/sparkle.svg",
"description": "Add sparkle effects to your wallpaper"
}
],
"effects": [
{
"name": "Glow Effect",
"file": "glow.gif",
"preview": "previews/glow.svg",
"description": "Add a glowing effect"
}
],
"nature": [
{
"name": "Falling Leaves",
"file": "leaves.gif",
"preview": "previews/leaf.svg",
"description": "Animated falling leaves effect"
}
],
"animals": [
{
"name": "Butterfly",
"file": "butterfly.gif",
"preview": "previews/butterfly.svg",
"description": "Animated butterfly overlay"
}
]
}
13 changes: 13 additions & 0 deletions live-wallpaper-creator/public/overlays/previews/butterfly.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions live-wallpaper-creator/public/overlays/previews/glow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions live-wallpaper-creator/public/overlays/previews/leaf.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions live-wallpaper-creator/public/overlays/previews/sparkle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions live-wallpaper-creator/public/vite.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions live-wallpaper-creator/src/App.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#root {
height: 100vh;
width: 100vw;
overflow: hidden;
}

.canvas-container {
position: relative;
flex-grow: 1;
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.2);
border-radius: 8px;
margin: 16px;
}

.overlay-element {
position: absolute;
cursor: move;
user-select: none;
}

.overlay-element img {
width: 100%;
height: 100%;
pointer-events: none;
}

.drag-handle {
position: absolute;
width: 10px;
height: 10px;
background-color: #90caf9;
border-radius: 50%;
cursor: pointer;
}

.drag-handle.top-left { top: -5px; left: -5px; }
.drag-handle.top-right { top: -5px; right: -5px; }
.drag-handle.bottom-left { bottom: -5px; left: -5px; }
.drag-handle.bottom-right { bottom: -5px; right: -5px; }

.overlay-controls {
position: absolute;
top: 8px;
right: 8px;
display: flex;
gap: 4px;
background-color: rgba(0, 0, 0, 0.5);
padding: 4px;
border-radius: 4px;
}
Loading
Loading