Deploy landing page
Swadhin Biswas committed 6 months ago
f592e93
1 parent 209767d
commit f592e93
2 files changed
+827 -0
Showing 2 changed files+827-0
βΌ.nojekyll
+1-0
| @@ -0,0 +1 @@ | ||
1 | +# This file tells GitHub Pages not to use Jekyll | |
0 | 2 | |
βΌindex.html
+826-0
| @@ -0,0 +1,826 @@ | ||
1 | +<!doctype html> | |
2 | +<html lang="en"> | |
3 | + <head> | |
4 | + <meta charset="UTF-8" /> | |
5 | + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | |
6 | + <title>Linuxy - One-Click AppImage Manager for Linux</title> | |
7 | + <meta | |
8 | + name="description" | |
9 | + content="Linuxy is a modern AppImage manager with one-click installation, Firejail sandboxing, and automatic updates." | |
10 | + /> | |
11 | + <link | |
12 | + rel="icon" | |
13 | + href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>π§</text></svg>" | |
14 | + /> | |
15 | + <style> | |
16 | + * { | |
17 | + margin: 0; | |
18 | + padding: 0; | |
19 | + box-sizing: border-box; | |
20 | + } | |
21 | + :root { | |
22 | + --bg: #0a0a0a; | |
23 | + --card: #1a1a1a; | |
24 | + --text: #fff; | |
25 | + --text-muted: #a0a0a0; | |
26 | + --accent: #4caf50; | |
27 | + --accent-hover: #66bb6a; | |
28 | + --border: #2a2a2a; | |
29 | + } | |
30 | + body { | |
31 | + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |
32 | + background: var(--bg); | |
33 | + color: var(--text); | |
34 | + line-height: 1.6; | |
35 | + } | |
36 | + .container { | |
37 | + max-width: 1100px; | |
38 | + margin: 0 auto; | |
39 | + padding: 0 24px; | |
40 | + } | |
41 | + | |
42 | + /* Nav */ | |
43 | + nav { | |
44 | + padding: 20px 0; | |
45 | + border-bottom: 1px solid var(--border); | |
46 | + position: fixed; | |
47 | + top: 0; | |
48 | + left: 0; | |
49 | + right: 0; | |
50 | + background: rgba(10, 10, 10, 0.9); | |
51 | + backdrop-filter: blur(10px); | |
52 | + z-index: 100; | |
53 | + } | |
54 | + nav .container { | |
55 | + display: flex; | |
56 | + justify-content: space-between; | |
57 | + align-items: center; | |
58 | + } | |
59 | + .logo { | |
60 | + font-size: 1.5rem; | |
61 | + font-weight: 700; | |
62 | + display: flex; | |
63 | + align-items: center; | |
64 | + gap: 10px; | |
65 | + text-decoration: none; | |
66 | + color: var(--text); | |
67 | + } | |
68 | + .logo-icon { | |
69 | + width: 36px; | |
70 | + height: 36px; | |
71 | + background: linear-gradient(135deg, #4caf50, #81c784); | |
72 | + border-radius: 8px; | |
73 | + display: flex; | |
74 | + align-items: center; | |
75 | + justify-content: center; | |
76 | + font-size: 1.2rem; | |
77 | + } | |
78 | + .nav-links { | |
79 | + display: flex; | |
80 | + gap: 24px; | |
81 | + list-style: none; | |
82 | + } | |
83 | + .nav-links a { | |
84 | + color: var(--text-muted); | |
85 | + text-decoration: none; | |
86 | + transition: color 0.2s; | |
87 | + font-weight: 500; | |
88 | + } | |
89 | + .nav-links a:hover { | |
90 | + color: var(--text); | |
91 | + } | |
92 | + .btn { | |
93 | + display: inline-flex; | |
94 | + align-items: center; | |
95 | + gap: 8px; | |
96 | + padding: 10px 20px; | |
97 | + border-radius: 9999px; | |
98 | + font-weight: 600; | |
99 | + text-decoration: none; | |
100 | + border: none; | |
101 | + cursor: pointer; | |
102 | + transition: all 0.2s; | |
103 | + font-size: 0.95rem; | |
104 | + } | |
105 | + .btn-primary { | |
106 | + background: linear-gradient(135deg, #4caf50, #81c784); | |
107 | + color: #fff; | |
108 | + } | |
109 | + .btn-primary:hover { | |
110 | + transform: translateY(-2px); | |
111 | + box-shadow: 0 10px 30px rgba(76, 175, 80, 0.3); | |
112 | + } | |
113 | + .btn-secondary { | |
114 | + background: var(--card); | |
115 | + color: var(--text); | |
116 | + border: 1px solid var(--border); | |
117 | + } | |
118 | + .btn-secondary:hover { | |
119 | + background: #252525; | |
120 | + } | |
121 | + .btn-ghost { | |
122 | + background: transparent; | |
123 | + color: var(--text-muted); | |
124 | + } | |
125 | + .btn-ghost:hover { | |
126 | + color: var(--text); | |
127 | + } | |
128 | + | |
129 | + /* Hero */ | |
130 | + .hero { | |
131 | + padding: 160px 0 100px; | |
132 | + text-align: center; | |
133 | + background: radial-gradient(ellipse at top, rgba(76, 175, 80, 0.15) 0%, transparent 50%); | |
134 | + } | |
135 | + .hero h1 { | |
136 | + font-size: 4rem; | |
137 | + font-weight: 800; | |
138 | + margin-bottom: 24px; | |
139 | + background: linear-gradient(135deg, #fff 0%, #e0e0e0 50%, #4caf50 100%); | |
140 | + -webkit-background-clip: text; | |
141 | + -webkit-text-fill-color: transparent; | |
142 | + background-clip: text; | |
143 | + line-height: 1.1; | |
144 | + } | |
145 | + .hero h1 span { | |
146 | + background: linear-gradient(135deg, #4caf50, #81c784); | |
147 | + -webkit-background-clip: text; | |
148 | + -webkit-text-fill-color: transparent; | |
149 | + background-clip: text; | |
150 | + } | |
151 | + .hero p { | |
152 | + font-size: 1.35rem; | |
153 | + color: var(--text-muted); | |
154 | + max-width: 600px; | |
155 | + margin: 0 auto 40px; | |
156 | + } | |
157 | + .hero-buttons { | |
158 | + display: flex; | |
159 | + gap: 16px; | |
160 | + justify-content: center; | |
161 | + flex-wrap: wrap; | |
162 | + } | |
163 | + .hero-stats { | |
164 | + display: flex; | |
165 | + justify-content: center; | |
166 | + gap: 48px; | |
167 | + margin-top: 60px; | |
168 | + } | |
169 | + .stat { | |
170 | + text-align: center; | |
171 | + } | |
172 | + .stat-value { | |
173 | + font-size: 2rem; | |
174 | + font-weight: 700; | |
175 | + color: var(--accent); | |
176 | + } | |
177 | + .stat-label { | |
178 | + font-size: 0.9rem; | |
179 | + color: var(--text-muted); | |
180 | + } | |
181 | + | |
182 | + /* Features */ | |
183 | + .features { | |
184 | + padding: 100px 0; | |
185 | + } | |
186 | + .section-title { | |
187 | + text-align: center; | |
188 | + font-size: 2.5rem; | |
189 | + font-weight: 700; | |
190 | + margin-bottom: 16px; | |
191 | + } | |
192 | + .section-subtitle { | |
193 | + text-align: center; | |
194 | + color: var(--text-muted); | |
195 | + max-width: 500px; | |
196 | + margin: 0 auto 48px; | |
197 | + font-size: 1.1rem; | |
198 | + } | |
199 | + .features-grid { | |
200 | + display: grid; | |
201 | + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); | |
202 | + gap: 24px; | |
203 | + } | |
204 | + .feature-card { | |
205 | + background: var(--card); | |
206 | + padding: 32px; | |
207 | + border-radius: 16px; | |
208 | + border: 1px solid var(--border); | |
209 | + transition: all 0.3s; | |
210 | + position: relative; | |
211 | + overflow: hidden; | |
212 | + } | |
213 | + .feature-card::before { | |
214 | + content: ""; | |
215 | + position: absolute; | |
216 | + top: 0; | |
217 | + left: 0; | |
218 | + right: 0; | |
219 | + height: 3px; | |
220 | + background: linear-gradient(90deg, var(--accent), transparent); | |
221 | + opacity: 0; | |
222 | + transition: opacity 0.3s; | |
223 | + } | |
224 | + .feature-card:hover { | |
225 | + border-color: var(--accent); | |
226 | + transform: translateY(-8px); | |
227 | + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); | |
228 | + } | |
229 | + .feature-card:hover::before { | |
230 | + opacity: 1; | |
231 | + } | |
232 | + .feature-icon { | |
233 | + font-size: 2.5rem; | |
234 | + margin-bottom: 20px; | |
235 | + display: block; | |
236 | + } | |
237 | + .feature-card h3 { | |
238 | + font-size: 1.25rem; | |
239 | + margin-bottom: 12px; | |
240 | + } | |
241 | + .feature-card p { | |
242 | + color: var(--text-muted); | |
243 | + font-size: 1rem; | |
244 | + line-height: 1.7; | |
245 | + } | |
246 | + | |
247 | + /* How it works */ | |
248 | + .how-it-works { | |
249 | + padding: 100px 0; | |
250 | + background: linear-gradient(180deg, #0a0a0a 0%, #0f0f0f 100%); | |
251 | + } | |
252 | + .steps { | |
253 | + display: grid; | |
254 | + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
255 | + gap: 40px; | |
256 | + max-width: 900px; | |
257 | + margin: 0 auto; | |
258 | + } | |
259 | + .step { | |
260 | + text-align: center; | |
261 | + position: relative; | |
262 | + } | |
263 | + .step::after { | |
264 | + content: ""; | |
265 | + position: absolute; | |
266 | + top: 30px; | |
267 | + right: -20px; | |
268 | + width: 40px; | |
269 | + height: 2px; | |
270 | + background: var(--border); | |
271 | + display: none; | |
272 | + } | |
273 | + .step:last-child::after { | |
274 | + display: none; | |
275 | + } | |
276 | + .step-number { | |
277 | + width: 72px; | |
278 | + height: 72px; | |
279 | + background: var(--card); | |
280 | + border: 2px solid var(--accent); | |
281 | + border-radius: 50%; | |
282 | + display: flex; | |
283 | + align-items: center; | |
284 | + justify-content: center; | |
285 | + font-size: 1.75rem; | |
286 | + font-weight: 700; | |
287 | + color: var(--accent); | |
288 | + margin: 0 auto 24px; | |
289 | + transition: all 0.3s; | |
290 | + } | |
291 | + .step:hover .step-number { | |
292 | + background: var(--accent); | |
293 | + color: #fff; | |
294 | + transform: scale(1.1); | |
295 | + } | |
296 | + .step h3 { | |
297 | + font-size: 1.25rem; | |
298 | + margin-bottom: 12px; | |
299 | + } | |
300 | + .step p { | |
301 | + color: var(--text-muted); | |
302 | + font-size: 1rem; | |
303 | + } | |
304 | + | |
305 | + /* Install */ | |
306 | + .installation { | |
307 | + padding: 100px 0; | |
308 | + } | |
309 | + .install-grid { | |
310 | + display: grid; | |
311 | + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
312 | + gap: 24px; | |
313 | + } | |
314 | + .install-card { | |
315 | + background: var(--card); | |
316 | + padding: 32px; | |
317 | + border-radius: 16px; | |
318 | + border: 1px solid var(--border); | |
319 | + text-align: center; | |
320 | + transition: all 0.3s; | |
321 | + } | |
322 | + .install-card:hover { | |
323 | + border-color: var(--accent); | |
324 | + transform: translateY(-4px); | |
325 | + } | |
326 | + .install-icon { | |
327 | + font-size: 3rem; | |
328 | + margin-bottom: 16px; | |
329 | + display: block; | |
330 | + } | |
331 | + .install-card h3 { | |
332 | + font-size: 1.35rem; | |
333 | + margin-bottom: 8px; | |
334 | + } | |
335 | + .install-card > p { | |
336 | + color: var(--text-muted); | |
337 | + margin-bottom: 16px; | |
338 | + } | |
339 | + .install-command { | |
340 | + background: #0a0a0a; | |
341 | + padding: 16px; | |
342 | + border-radius: 8px; | |
343 | + font-family: "Fira Code", "Courier New", monospace; | |
344 | + font-size: 0.9rem; | |
345 | + color: var(--accent); | |
346 | + margin: 20px 0; | |
347 | + overflow-x: auto; | |
348 | + text-align: left; | |
349 | + } | |
350 | + .install-card .btn { | |
351 | + margin-top: 8px; | |
352 | + } | |
353 | + | |
354 | + /* CTA */ | |
355 | + .cta { | |
356 | + padding: 100px 0; | |
357 | + background: linear-gradient(180deg, #0f0f0f 0%, #0a0a0a 100%); | |
358 | + text-align: center; | |
359 | + } | |
360 | + .cta h2 { | |
361 | + font-size: 2.5rem; | |
362 | + font-weight: 700; | |
363 | + margin-bottom: 16px; | |
364 | + } | |
365 | + .cta p { | |
366 | + color: var(--text-muted); | |
367 | + font-size: 1.15rem; | |
368 | + margin-bottom: 32px; | |
369 | + max-width: 500px; | |
370 | + margin-left: auto; | |
371 | + margin-right: auto; | |
372 | + } | |
373 | + | |
374 | + /* FAQ */ | |
375 | + .faq { | |
376 | + padding: 100px 0; | |
377 | + background: #0f0f0f; | |
378 | + } | |
379 | + .faq-list { | |
380 | + max-width: 700px; | |
381 | + margin: 0 auto; | |
382 | + } | |
383 | + .faq-item { | |
384 | + background: var(--card); | |
385 | + border: 1px solid var(--border); | |
386 | + border-radius: 12px; | |
387 | + margin-bottom: 12px; | |
388 | + overflow: hidden; | |
389 | + transition: all 0.3s; | |
390 | + } | |
391 | + .faq-item:hover { | |
392 | + border-color: var(--accent); | |
393 | + } | |
394 | + .faq-question { | |
395 | + padding: 24px; | |
396 | + font-weight: 600; | |
397 | + cursor: pointer; | |
398 | + display: flex; | |
399 | + justify-content: space-between; | |
400 | + align-items: center; | |
401 | + font-size: 1.05rem; | |
402 | + } | |
403 | + .faq-question::after { | |
404 | + content: "+"; | |
405 | + font-size: 1.5rem; | |
406 | + color: var(--accent); | |
407 | + transition: transform 0.3s; | |
408 | + } | |
409 | + .faq-item.active .faq-question::after { | |
410 | + transform: rotate(45deg); | |
411 | + } | |
412 | + .faq-answer { | |
413 | + padding: 0 24px; | |
414 | + max-height: 0; | |
415 | + overflow: hidden; | |
416 | + color: var(--text-muted); | |
417 | + transition: all 0.3s; | |
418 | + line-height: 1.8; | |
419 | + } | |
420 | + .faq-item.active .faq-answer { | |
421 | + padding: 0 24px 24px; | |
422 | + max-height: 300px; | |
423 | + } | |
424 | + | |
425 | + /* Footer */ | |
426 | + footer { | |
427 | + padding: 60px 0; | |
428 | + border-top: 1px solid var(--border); | |
429 | + text-align: center; | |
430 | + color: var(--text-muted); | |
431 | + } | |
432 | + .footer-links { | |
433 | + display: flex; | |
434 | + justify-content: center; | |
435 | + gap: 32px; | |
436 | + margin-bottom: 24px; | |
437 | + list-style: none; | |
438 | + flex-wrap: wrap; | |
439 | + } | |
440 | + .footer-links a { | |
441 | + color: var(--text-muted); | |
442 | + text-decoration: none; | |
443 | + transition: color 0.2s; | |
444 | + } | |
445 | + .footer-links a:hover { | |
446 | + color: var(--accent); | |
447 | + } | |
448 | + .footer-logo { | |
449 | + font-size: 1.5rem; | |
450 | + font-weight: 700; | |
451 | + margin-bottom: 16px; | |
452 | + display: flex; | |
453 | + justify-content: center; | |
454 | + align-items: center; | |
455 | + gap: 8px; | |
456 | + } | |
457 | + .footer-logo span { | |
458 | + background: linear-gradient(135deg, #4caf50, #81c784); | |
459 | + -webkit-background-clip: text; | |
460 | + -webkit-text-fill-color: transparent; | |
461 | + } | |
462 | + | |
463 | + @media (max-width: 768px) { | |
464 | + .hero h1 { | |
465 | + font-size: 2.5rem; | |
466 | + } | |
467 | + .hero p { | |
468 | + font-size: 1.1rem; | |
469 | + } | |
470 | + .section-title { | |
471 | + font-size: 2rem; | |
472 | + } | |
473 | + .hero-stats { | |
474 | + flex-direction: column; | |
475 | + gap: 24px; | |
476 | + } | |
477 | + .nav-links { | |
478 | + display: none; | |
479 | + } | |
480 | + .steps { | |
481 | + grid-template-columns: 1fr; | |
482 | + } | |
483 | + .step::after { | |
484 | + display: none; | |
485 | + } | |
486 | + } | |
487 | + </style> | |
488 | + </head> | |
489 | + <body> | |
490 | + <nav> | |
491 | + <div class="container"> | |
492 | + <a href="#" class="logo" | |
493 | + ><div class="logo-icon">π§</div> | |
494 | + Linuxy</a | |
495 | + > | |
496 | + <ul class="nav-links"> | |
497 | + <li><a href="#features">Features</a></li> | |
498 | + <li><a href="#how-it-works">How It Works</a></li> | |
499 | + <li><a href="#installation">Install</a></li> | |
500 | + <li><a href="#faq">FAQ</a></li> | |
501 | + </ul> | |
502 | + <div style="display: flex; gap: 12px"> | |
503 | + <a href="#installation" class="btn btn-primary">Download</a> | |
504 | + <a href="https://github.com/swadhinbiswas/linuxy" class="btn btn-ghost">GitHub</a> | |
505 | + </div> | |
506 | + </div> | |
507 | + </nav> | |
508 | + | |
509 | + <section class="hero"> | |
510 | + <div class="container"> | |
511 | + <h1>The Ultimate<br /><span>AppImage Manager</span><br />for Linux</h1> | |
512 | + <p> | |
513 | + Install, organize, and sandbox your AppImages with a single click. Simple, secure, and | |
514 | + beautiful. | |
515 | + </p> | |
516 | + <div class="hero-buttons"> | |
517 | + <a href="#installation" class="btn btn-primary">β¬οΈ Download v1.0.0</a> | |
518 | + <a href="https://github.com/swadhinbiswas/linuxy" class="btn btn-secondary" | |
519 | + >β Star on GitHub</a | |
520 | + > | |
521 | + </div> | |
522 | + <div class="hero-stats"> | |
523 | + <div class="stat"> | |
524 | + <div class="stat-value">100%</div> | |
525 | + <div class="stat-label">Free & Open Source</div> | |
526 | + </div> | |
527 | + <div class="stat"> | |
528 | + <div class="stat-value">MIT</div> | |
529 | + <div class="stat-label">License</div> | |
530 | + </div> | |
531 | + <div class="stat"> | |
532 | + <div class="stat-value">Tauri</div> | |
533 | + <div class="stat-label">Powered by</div> | |
534 | + </div> | |
535 | + </div> | |
536 | + </div> | |
537 | + </section> | |
538 | + | |
539 | + <section class="features" id="features"> | |
540 | + <div class="container"> | |
541 | + <h2 class="section-title">Why Linuxy?</h2> | |
542 | + <p class="section-subtitle">Everything you need to manage AppImages on Linux</p> | |
543 | + <div class="features-grid"> | |
544 | + <div class="feature-card"> | |
545 | + <span class="feature-icon">π¦</span> | |
546 | + <h3>One-Click Installation</h3> | |
547 | + <p> | |
548 | + Drag and drop AppImage files to install them instantly. Automatic desktop entry | |
549 | + creation and icon extraction. | |
550 | + </p> | |
551 | + </div> | |
552 | + <div class="feature-card"> | |
553 | + <span class="feature-icon">π‘οΈ</span> | |
554 | + <h3>Firejail Sandboxing</h3> | |
555 | + <p> | |
556 | + Run apps in a secure sandbox with a single click. Toggle sandboxing per application | |
557 | + for extra security. | |
558 | + </p> | |
559 | + </div> | |
560 | + <div class="feature-card"> | |
561 | + <span class="feature-icon">π</span> | |
562 | + <h3>Automatic Updates</h3> | |
563 | + <p> | |
564 | + Built-in update checking keeps your AppImages up to date. Supports delta updates when | |
565 | + available. | |
566 | + </p> | |
567 | + </div> | |
568 | + <div class="feature-card"> | |
569 | + <span class="feature-icon">π¨</span> | |
570 | + <h3>Beautiful UI</h3> | |
571 | + <p> | |
572 | + Modern dark and light themes. Clean, responsive interface built with React and | |
573 | + Tailwind patterns. | |
574 | + </p> | |
575 | + </div> | |
576 | + <div class="feature-card"> | |
577 | + <span class="feature-icon">π</span> | |
578 | + <h3>Storage Management</h3> | |
579 | + <p> | |
580 | + Monitor disk usage, see installation dates, and manage all your AppImages from one | |
581 | + place. | |
582 | + </p> | |
583 | + </div> | |
584 | + <div class="feature-card"> | |
585 | + <span class="feature-icon">π</span> | |
586 | + <h3>App Discovery</h3> | |
587 | + <p>Browse and discover new AppImages directly from the integrated app catalog.</p> | |
588 | + </div> | |
589 | + </div> | |
590 | + </div> | |
591 | + </section> | |
592 | + | |
593 | + <section class="how-it-works" id="how-it-works"> | |
594 | + <div class="container"> | |
595 | + <h2 class="section-title">How It Works</h2> | |
596 | + <p class="section-subtitle">Get started in three simple steps</p> | |
597 | + <div class="steps"> | |
598 | + <div class="step"> | |
599 | + <div class="step-number">1</div> | |
600 | + <h3>Install Linuxy</h3> | |
601 | + <p> | |
602 | + Download from releases or build from source. Supports DEB, AppImage, RPM, and AUR. | |
603 | + </p> | |
604 | + </div> | |
605 | + <div class="step"> | |
606 | + <div class="step-number">2</div> | |
607 | + <h3>Add AppImages</h3> | |
608 | + <p>Drag & drop files or discover apps from the built-in store. It's that simple.</p> | |
609 | + </div> | |
610 | + <div class="step"> | |
611 | + <div class="step-number">3</div> | |
612 | + <h3>Launch & Enjoy</h3> | |
613 | + <p>One-click launch, optional sandboxing, automatic updates. Done!</p> | |
614 | + </div> | |
615 | + </div> | |
616 | + </div> | |
617 | + </section> | |
618 | + | |
619 | + <section class="installation" id="installation"> | |
620 | + <div class="container"> | |
621 | + <h2 class="section-title">Install Linuxy</h2> | |
622 | + <p class="section-subtitle">Choose your preferred installation method</p> | |
623 | + <div class="install-grid"> | |
624 | + <div class="install-card"> | |
625 | + <span class="install-icon">π¦</span> | |
626 | + <h3>DEB Package</h3> | |
627 | + <p>Debian / Ubuntu / Mint</p> | |
628 | + <div class="install-command">sudo apt install ./linuxy_1.0.0_amd64.deb</div> | |
629 | + <a href="https://github.com/swadhinbiswas/linuxy/releases" class="btn btn-primary" | |
630 | + >Download DEB</a | |
631 | + > | |
632 | + </div> | |
633 | + <div class="install-card"> | |
634 | + <span class="install-icon">π’</span> | |
635 | + <h3>AppImage</h3> | |
636 | + <p>Any Linux Distribution</p> | |
637 | + <div class="install-command"> | |
638 | + chmod +x linuxy_1.0.0_amd64.AppImage<br />./linuxy_1.0.0_amd64.AppImage | |
639 | + </div> | |
640 | + <a href="https://github.com/swadhinbiswas/linuxy/releases" class="btn btn-secondary" | |
641 | + >Download AppImage</a | |
642 | + > | |
643 | + </div> | |
644 | + <div class="install-card"> | |
645 | + <span class="install-icon">π΄</span> | |
646 | + <h3>RPM Package</h3> | |
647 | + <p>Fedora / RHEL / openSUSE</p> | |
648 | + <div class="install-command">sudo dnf install ./linuxy-1.0.0-1.x86_64.rpm</div> | |
649 | + <a href="https://github.com/swadhinbiswas/linuxy/releases" class="btn btn-secondary" | |
650 | + >Download RPM</a | |
651 | + > | |
652 | + </div> | |
653 | + <div class="install-card"> | |
654 | + <span class="install-icon" style="font-weight: bold">AUR</span> | |
655 | + <h3>AUR Package</h3> | |
656 | + <p>Arch Linux</p> | |
657 | + <div class="install-command">yay -S linuxy</div> | |
658 | + <a href="https://aur.archlinux.org/packages/linuxy" class="btn btn-secondary" | |
659 | + >View AUR</a | |
660 | + > | |
661 | + </div> | |
662 | + <div class="install-card"> | |
663 | + <span class="install-icon">π</span> | |
664 | + <h3>Build from Source</h3> | |
665 | + <p>All Distributions</p> | |
666 | + <div class="install-command"> | |
667 | + git clone https://github.com/swadhinbiswas/linuxy<br />cd linuxy && npm install && npm | |
668 | + run tauri build | |
669 | + </div> | |
670 | + <a href="https://github.com/swadhinbiswas/linuxy" class="btn btn-secondary" | |
671 | + >View Source</a | |
672 | + > | |
673 | + </div> | |
674 | + <div class="install-card"> | |
675 | + <span class="install-icon">π±</span> | |
676 | + <h3>Development</h3> | |
677 | + <p>Run from Source</p> | |
678 | + <div class="install-command"> | |
679 | + git clone https://github.com/swadhinbiswas/linuxy<br />cd linuxy && npm install && npm | |
680 | + run tauri dev | |
681 | + </div> | |
682 | + <a href="https://github.com/swadhinbiswas/linuxy" class="btn btn-secondary" | |
683 | + >Contribute</a | |
684 | + > | |
685 | + </div> | |
686 | + </div> | |
687 | + </div> | |
688 | + </section> | |
689 | + | |
690 | + <section class="cta"> | |
691 | + <div class="container"> | |
692 | + <h2>Ready to Try Linuxy?</h2> | |
693 | + <p>Join thousands of Linux users who manage their AppImages with Linuxy.</p> | |
694 | + <a | |
695 | + href="#installation" | |
696 | + class="btn btn-primary" | |
697 | + style="padding: 16px 32px; font-size: 1.1rem" | |
698 | + >Get Started Now β</a | |
699 | + > | |
700 | + </div> | |
701 | + </section> | |
702 | + | |
703 | + <section class="faq" id="faq"> | |
704 | + <div class="container"> | |
705 | + <h2 class="section-title">Frequently Asked Questions</h2> | |
706 | + <div class="faq-list"> | |
707 | + <div class="faq-item"> | |
708 | + <div class="faq-question">What is an AppImage?</div> | |
709 | + <div class="faq-answer"> | |
710 | + <p> | |
711 | + AppImage is a universal package format for Linux. It's a single executable file | |
712 | + containing an application and all its dependencies, allowing you to run software | |
713 | + without installation or root access. | |
714 | + </p> | |
715 | + </div> | |
716 | + </div> | |
717 | + <div class="faq-item"> | |
718 | + <div class="faq-question">Do I need Firejail?</div> | |
719 | + <div class="faq-answer"> | |
720 | + <p> | |
721 | + Firejail is optional but highly recommended. Linuxy works perfectly without it, but | |
722 | + Firejail adds an essential security layer by sandboxing your AppImages. Install | |
723 | + with: <code>sudo apt install firejail</code> | |
724 | + </p> | |
725 | + </div> | |
726 | + </div> | |
727 | + <div class="faq-item"> | |
728 | + <div class="faq-question">Where are AppImages stored?</div> | |
729 | + <div class="faq-answer"> | |
730 | + <p> | |
731 | + Linuxy stores AppImages in <code>~/.local/appimages/</code> and creates desktop | |
732 | + entries in <code>~/.local/share/applications/</code> for easy access from your | |
733 | + application menu. | |
734 | + </p> | |
735 | + </div> | |
736 | + </div> | |
737 | + <div class="faq-item"> | |
738 | + <div class="faq-question">Is Linuxy free?</div> | |
739 | + <div class="faq-answer"> | |
740 | + <p> | |
741 | + Yes! Linuxy is 100% free and open source under the MIT license. There are no premium | |
742 | + features or payments. | |
743 | + </p> | |
744 | + </div> | |
745 | + </div> | |
746 | + <div class="faq-item"> | |
747 | + <div class="faq-question">What distributions are supported?</div> | |
748 | + <div class="faq-answer"> | |
749 | + <p> | |
750 | + Linuxy runs on any Linux distribution! We provide DEB packages for Debian/Ubuntu, | |
751 | + RPM for Fedora, AppImage for universal use, and AUR for Arch Linux users. | |
752 | + </p> | |
753 | + </div> | |
754 | + </div> | |
755 | + <div class="faq-item"> | |
756 | + <div class="faq-question">How do I report bugs?</div> | |
757 | + <div class="faq-answer"> | |
758 | + <p> | |
759 | + Please open an issue on our | |
760 | + <a | |
761 | + href="https://github.com/swadhinbiswas/linuxy/issues" | |
762 | + style="color: var(--accent)" | |
763 | + >GitHub Issues page</a | |
764 | + >. We welcome bug reports, feature requests, and contributions! | |
765 | + </p> | |
766 | + </div> | |
767 | + </div> | |
768 | + </div> | |
769 | + </div> | |
770 | + </section> | |
771 | + | |
772 | + <footer> | |
773 | + <div class="container"> | |
774 | + <div class="footer-logo">π§ <span>Linuxy</span></div> | |
775 | + <ul class="footer-links"> | |
776 | + <li><a href="https://github.com/swadhinbiswas/linuxy">GitHub</a></li> | |
777 | + <li><a href="https://github.com/swadhinbiswas/linuxy/releases">Releases</a></li> | |
778 | + <li><a href="https://github.com/swadhinbiswas/linuxy/issues">Issues</a></li> | |
779 | + <li> | |
780 | + <a href="https://github.com/swadhinbiswas/linuxy/blob/main/README.md">Documentation</a> | |
781 | + </li> | |
782 | + <li> | |
783 | + <a href="https://github.com/swadhinbiswas/linuxy/blob/main/CONTRIBUTING.md" | |
784 | + >Contribute</a | |
785 | + > | |
786 | + </li> | |
787 | + </ul> | |
788 | + <p>Β© 2024 Linuxy. Open source under MIT License.</p> | |
789 | + <p style="margin-top: 12px; font-size: 0.9rem"> | |
790 | + Made with β€οΈ and π¦ for the Linux community | |
791 | + </p> | |
792 | + </div> | |
793 | + </footer> | |
794 | + | |
795 | + <script> | |
796 | + // FAQ toggle | |
797 | + document.querySelectorAll(".faq-question").forEach((q) => { | |
798 | + q.addEventListener("click", () => { | |
799 | + const item = q.parentElement; | |
800 | + const wasActive = item.classList.contains("active"); | |
801 | + document.querySelectorAll(".faq-item").forEach((i) => i.classList.remove("active")); | |
802 | + if (!wasActive) item.classList.add("active"); | |
803 | + }); | |
804 | + }); | |
805 | + | |
806 | + // Smooth scroll | |
807 | + document.querySelectorAll('a[href^="#"]').forEach((a) => { | |
808 | + a.addEventListener("click", (e) => { | |
809 | + e.preventDefault(); | |
810 | + const target = document.querySelector(a.getAttribute("href")); | |
811 | + if (target) target.scrollIntoView({ behavior: "smooth", block: "start" }); | |
812 | + }); | |
813 | + }); | |
814 | + | |
815 | + // Nav background on scroll | |
816 | + window.addEventListener("scroll", () => { | |
817 | + const nav = document.querySelector("nav"); | |
818 | + if (window.scrollY > 50) { | |
819 | + nav.style.background = "rgba(10,10,10,0.95)"; | |
820 | + } else { | |
821 | + nav.style.background = "rgba(10,10,10,0.9)"; | |
822 | + } | |
823 | + }); | |
824 | + </script> | |
825 | + </body> | |
826 | +</html> | |
0 | 827 | |