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
1
+# This file tells GitHub Pages not to use Jekyll
0
2
β–Όindex.html
+826-0
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