ls, cd, mkdir, rm, touch, cat, mv, cpClone the repository
git clone https://github.com/yourusername/linux-web-os.git
cd linux-web-os
Install dependencies
npm install
Start the backend server
cd server
npm install
node server.js
The server will run on http://localhost:3001
Start the frontend development server
# In the root directory
npm run dev
The app will open at http://localhost:5173
npm run build
npm run preview
| Layer | Technology |
|---|---|
| Frontend | Svelte 4 + Vite |
| Backend | Express.js + Node.js |
| Storage | LocalStorage + JSON File |
| Styling | CSS3 with CSS Variables |
| Fonts | Fira Code, Nunito, Saira Condensed |
src/
āāā components/
ā āāā Desktop.svelte # Main desktop container
ā āāā Window.svelte # Window wrapper component
ā āāā Terminal.svelte # Terminal emulator
ā āāā FileManager.svelte # File browser
ā āāā Applications.svelte # App launcher
ā āāā AboutMe.svelte # Portfolio page
ā āāā BadApple.svelte # ASCII animation player
ā āāā Settings.svelte # Settings panel
ā āāā WallpaperPicker.svelte # Wallpaper selector
ā āāā Panel.svelte # Status bar
ā āāā rightclick/
ā āāā DesktopRightClick.svelte
ā āāā FolderRightClick.svelte
āāā lib/
ā āāā commands.js # Terminal commands
ā āāā settingsStore.js # Settings state
ā āāā storage.js # LocalStorage utilities
āāā styles/
ā āāā global.css # Theme variables
ā āāā desktop.css # Desktop styles
ā āāā terminal.css # Terminal styles
ā āāā ... # Component-specific styles
āāā routes/
āāā +page.svelte # Main entry point
server/
āāā server.js # Express API server
āāā filesystem.json # Virtual filesystem data
āāā package.json
ls # List files and directories
cd <directory> # Change directory
pwd # Print working directory
mkdir <name> # Create directory
touch <name> # Create file
rm <name> # Delete file/folder
cat <file> # Display file contents
mv <from> <to> # Move/rename file
cp <from> <to> # Copy file
terminal # Open terminal
filemanager # Open file manager
settings # Open settings
apps # Open applications menu
aboutme # Open portfolio
badapple # Open Bad Apple animation
wallpaper # Open wallpaper picker
help # Show all commands
clear # Clear terminal
history # Show command history
date # Show current date/time
whoami # Display current user
screenfetch # Display system info
Create a .env file in the root directory:
VITE_API_URL=http://localhost:3001
Edit server/server.js:
const PORT = 3001 // Change server port
Edit server/filesystem.json to customize the initial file structure:
{
"id": 0,
"name": "Computer",
"type": "folder",
"children": [...]
}
Open Settings ā Appearance ā Custom Color to create your own theme.
Customize in src/styles/global.css:
:root {
--bg: #0b0f15;
--surface: #0f1720;
--text: #e6eef6;
--accent: #63b3ff;
--cursor-default: url('/references/cursors/default_24.svg');
}
| Shortcut | Action |
|---|---|
Ctrl+Alt+T |
Open Terminal |
Ctrl+Alt+F |
Open File Manager |
Ctrl+Alt+A |
Open Applications |
Ctrl+Alt+S |
Open Settings |
Ctrl+Alt+W |
Open Wallpaper Picker |
Super/Win |
Open Applications |
Ctrl+L |
Clear Terminal |
ā/ā |
Navigate command history |
Esc |
Close menus/dialogs |
Shortcuts can be customized in Settings ā Terminal & Shortcuts
LINUX_WEB/
āāā src/ # Frontend source code
āāā server/ # Backend API server
āāā public/ # Static assets
ā āāā bad-apple-frames.json
ā āāā references/ # Icons, wallpapers, cursors
āāā outputimages/ # Screenshots
āāā z-checkpoints/ # Documentation
āāā package.json
āāā vite.config.js
āāā README.md
# Run linter
npm run lint
# Format code
npm run format
src/components/YourApp.svelteDesktop.svelte windows objectpublic/references/icons/Applications.svelteContributions are welcome! Please follow these steps:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Varshith H
ā If you like this project, please give it a star on GitHub! ā
Made with ā¤ļø and ā