tfrere HF Staff commited on
Commit
a540fdf
·
1 Parent(s): 9475bfa

feat(download): add Linux beta support

Browse files

- Change Linux from "coming soon" to "beta" status
- Enable download button for Linux users (.deb package)
- Add beta warning with links to GitHub issues and Discord
- Update InstallModal to allow Linux users to install apps
- Update GettingStarted page to reflect Linux beta availability

src/components/InstallModal.jsx CHANGED
@@ -16,7 +16,6 @@ import VerifiedIcon from '@mui/icons-material/Verified';
16
  import DownloadIcon from '@mui/icons-material/Download';
17
  import OpenInNewIcon from '@mui/icons-material/OpenInNew';
18
  import ComputerIcon from '@mui/icons-material/Computer';
19
- import BlockIcon from '@mui/icons-material/Block';
20
 
21
  function InstallModal({ open, onClose, app }) {
22
  // Detect Linux users
@@ -196,59 +195,8 @@ function InstallModal({ open, onClose, app }) {
196
 
197
  {/* Desktop App Requirement Block */}
198
  <Box sx={{ p: 3 }}>
199
- {isLinux ? (
200
- // Linux: Not supported message
201
- <Box
202
- sx={{
203
- display: 'flex',
204
- alignItems: 'flex-start',
205
- gap: 2,
206
- p: 2.5,
207
- borderRadius: '14px',
208
- bgcolor: 'rgba(0, 0, 0, 0.03)',
209
- border: '1px solid rgba(0, 0, 0, 0.08)',
210
- }}
211
- >
212
- <Box
213
- sx={{
214
- width: 44,
215
- height: 44,
216
- borderRadius: '12px',
217
- bgcolor: 'rgba(0, 0, 0, 0.05)',
218
- display: 'flex',
219
- alignItems: 'center',
220
- justifyContent: 'center',
221
- flexShrink: 0,
222
- }}
223
- >
224
- <BlockIcon sx={{ fontSize: 24, color: '#999' }} />
225
- </Box>
226
- <Box sx={{ flex: 1 }}>
227
- <Typography
228
- sx={{
229
- fontSize: 14,
230
- fontWeight: 700,
231
- color: '#1a1a1a',
232
- mb: 0.75,
233
- }}
234
- >
235
- Linux not supported yet
236
- </Typography>
237
- <Typography
238
- sx={{
239
- fontSize: 13,
240
- color: '#666',
241
- lineHeight: 1.6,
242
- }}
243
- >
244
- The desktop app is currently available for <strong>macOS</strong> and <strong>Windows</strong> only.
245
- Linux support is coming soon!
246
- </Typography>
247
- </Box>
248
- </Box>
249
- ) : (
250
- // macOS/Windows: Normal install flow
251
- <Box
252
  sx={{
253
  display: 'flex',
254
  alignItems: 'flex-start',
@@ -319,6 +267,37 @@ function InstallModal({ open, onClose, app }) {
319
  </Link>
320
  </Box>
321
  </Box>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
  )}
323
  </Box>
324
 
@@ -331,7 +310,7 @@ function InstallModal({ open, onClose, app }) {
331
  rel="noopener noreferrer"
332
  variant="outlined"
333
  sx={{
334
- flex: isLinux ? 1 : 1,
335
  py: 1.5,
336
  borderRadius: '12px',
337
  borderColor: '#ddd',
@@ -348,29 +327,27 @@ function InstallModal({ open, onClose, app }) {
348
  <OpenInNewIcon sx={{ fontSize: 16 }} />
349
  </Button>
350
 
351
- {!isLinux && (
352
- <Button
353
- variant="contained"
354
- onClick={handleInstall}
355
- startIcon={<DownloadIcon sx={{ fontSize: 20 }} />}
356
- sx={{
357
- flex: 1.5,
358
- py: 1.5,
359
- borderRadius: '12px',
360
- bgcolor: '#FF9500',
361
- fontWeight: 600,
362
- fontSize: 14,
363
- textTransform: 'none',
364
- boxShadow: 'none',
365
- '&:hover': {
366
- bgcolor: '#e68600',
367
- boxShadow: '0 4px 12px rgba(255, 149, 0, 0.35)',
368
- },
369
- }}
370
- >
371
- Install
372
- </Button>
373
- )}
374
  </Box>
375
  </DialogContent>
376
  </Dialog>
 
16
  import DownloadIcon from '@mui/icons-material/Download';
17
  import OpenInNewIcon from '@mui/icons-material/OpenInNew';
18
  import ComputerIcon from '@mui/icons-material/Computer';
 
19
 
20
  function InstallModal({ open, onClose, app }) {
21
  // Detect Linux users
 
195
 
196
  {/* Desktop App Requirement Block */}
197
  <Box sx={{ p: 3 }}>
198
+ {/* All platforms: Normal install flow */}
199
+ <Box
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  sx={{
201
  display: 'flex',
202
  alignItems: 'flex-start',
 
267
  </Link>
268
  </Box>
269
  </Box>
270
+
271
+ {/* Linux Beta Notice */}
272
+ {isLinux && (
273
+ <Box
274
+ sx={{
275
+ mt: 2,
276
+ p: 1.5,
277
+ borderRadius: '10px',
278
+ bgcolor: 'rgba(59, 130, 246, 0.08)',
279
+ border: '1px solid rgba(59, 130, 246, 0.2)',
280
+ }}
281
+ >
282
+ <Typography
283
+ sx={{
284
+ fontSize: 12,
285
+ color: '#3b82f6',
286
+ fontWeight: 500,
287
+ textAlign: 'center',
288
+ '& a': {
289
+ color: '#3b82f6',
290
+ textDecoration: 'underline',
291
+ fontWeight: 600,
292
+ },
293
+ }}
294
+ >
295
+ Linux support is currently in Beta — please report any issues on{' '}
296
+ <a href="https://github.com/pollen-robotics/reachy-mini-desktop-app/issues" target="_blank" rel="noopener noreferrer">GitHub</a>
297
+ {' '}or{' '}
298
+ <a href="https://discord.gg/HDrGY9eJHt" target="_blank" rel="noopener noreferrer">Discord</a>.
299
+ </Typography>
300
+ </Box>
301
  )}
302
  </Box>
303
 
 
310
  rel="noopener noreferrer"
311
  variant="outlined"
312
  sx={{
313
+ flex: 1,
314
  py: 1.5,
315
  borderRadius: '12px',
316
  borderColor: '#ddd',
 
327
  <OpenInNewIcon sx={{ fontSize: 16 }} />
328
  </Button>
329
 
330
+ <Button
331
+ variant="contained"
332
+ onClick={handleInstall}
333
+ startIcon={<DownloadIcon sx={{ fontSize: 20 }} />}
334
+ sx={{
335
+ flex: 1.5,
336
+ py: 1.5,
337
+ borderRadius: '12px',
338
+ bgcolor: '#FF9500',
339
+ fontWeight: 600,
340
+ fontSize: 14,
341
+ textTransform: 'none',
342
+ boxShadow: 'none',
343
+ '&:hover': {
344
+ bgcolor: '#e68600',
345
+ boxShadow: '0 4px 12px rgba(255, 149, 0, 0.35)',
346
+ },
347
+ }}
348
+ >
349
+ Install
350
+ </Button>
 
 
351
  </Box>
352
  </DialogContent>
353
  </Dialog>
src/pages/Download.jsx CHANGED
@@ -219,8 +219,8 @@ function getDownloadUrlForPlatform(release, platform) {
219
  // Platform Card component
220
  function PlatformCard({ platformKey, url, isActive, onClick }) {
221
  const platform = PLATFORMS[platformKey];
222
- const isComingSoon = platformKey.includes('darwin-x86_64') || platformKey.includes('linux');
223
- const isBeta = platformKey.includes('windows');
224
 
225
  return (
226
  <Card
@@ -556,8 +556,8 @@ export default function Download() {
556
  </Typography>
557
  </Stack>
558
 
559
- {/* Primary download button - different for Windows/macOS Apple Silicon vs macOS Intel/Linux */}
560
- {detectedPlatform?.startsWith('windows') || detectedPlatform === 'darwin-aarch64' ? (
561
  <>
562
  <Button
563
  variant="contained"
@@ -593,8 +593,8 @@ export default function Download() {
593
  {currentPlatform?.subtitle} • {currentPlatform?.format?.replace('.', '').toUpperCase()} package
594
  </Typography>
595
 
596
- {/* Windows Beta Warning */}
597
- {detectedPlatform?.startsWith('windows') && (
598
  <Box
599
  sx={{
600
  mt: 3,
@@ -613,14 +613,17 @@ export default function Download() {
613
  fontWeight: 500,
614
  }}
615
  >
616
- ⚠️ Windows version is currently in Beta — installation requires <strong style={{ color: 'rgba(255,255,255,0.9)' }}>administrator privileges</strong>.
 
 
 
617
  </Typography>
618
  </Box>
619
  )}
620
  </>
621
  ) : (
622
  <>
623
- {/* macOS Intel/Linux - Coming soon message */}
624
  <Box
625
  sx={{
626
  px: 5,
@@ -654,7 +657,7 @@ export default function Download() {
654
  }}
655
  >
656
  We're working hard to bring Reachy Mini Control to {currentPlatform?.name}.
657
- In the meantime, macOS (Apple Silicon) is fully supported and Windows is in beta!
658
  </Typography>
659
 
660
  {/* Alternative for Linux/advanced users - Python SDK */}
@@ -762,8 +765,8 @@ export default function Download() {
762
  ))}
763
  </Grid>
764
 
765
- {/* Platform support notice - show on Windows and macOS Apple Silicon */}
766
- {(detectedPlatform?.startsWith('windows') || detectedPlatform === 'darwin-aarch64') && (
767
  <Box
768
  sx={{
769
  mt: 3,
@@ -778,7 +781,7 @@ export default function Download() {
778
  variant="body2"
779
  sx={{ color: 'rgba(255,255,255,0.5)' }}
780
  >
781
- 🚧 macOS Intel & Linux support coming soon
782
  </Typography>
783
  </Box>
784
  )}
 
219
  // Platform Card component
220
  function PlatformCard({ platformKey, url, isActive, onClick }) {
221
  const platform = PLATFORMS[platformKey];
222
+ const isComingSoon = platformKey.includes('darwin-x86_64');
223
+ const isBeta = platformKey.includes('windows') || platformKey.includes('linux');
224
 
225
  return (
226
  <Card
 
556
  </Typography>
557
  </Stack>
558
 
559
+ {/* Primary download button - different for Windows/macOS Apple Silicon/Linux vs macOS Intel */}
560
+ {detectedPlatform?.startsWith('windows') || detectedPlatform === 'darwin-aarch64' || detectedPlatform?.includes('linux') ? (
561
  <>
562
  <Button
563
  variant="contained"
 
593
  {currentPlatform?.subtitle} • {currentPlatform?.format?.replace('.', '').toUpperCase()} package
594
  </Typography>
595
 
596
+ {/* Beta Warning for Windows and Linux */}
597
+ {(detectedPlatform?.startsWith('windows') || detectedPlatform?.includes('linux')) && (
598
  <Box
599
  sx={{
600
  mt: 3,
 
613
  fontWeight: 500,
614
  }}
615
  >
616
+ {detectedPlatform?.startsWith('windows')
617
+ ? <>⚠️ Windows version is currently in Beta — installation requires <strong style={{ color: 'rgba(255,255,255,0.9)' }}>administrator privileges</strong>.</>
618
+ : <>⚠️ Linux version is currently in Beta — please report any issues on <a href="https://github.com/pollen-robotics/reachy-mini-desktop-app/issues" target="_blank" rel="noopener noreferrer" style={{ color: '#3b82f6', textDecoration: 'underline' }}>GitHub</a> or <a href="https://discord.gg/HDrGY9eJHt" target="_blank" rel="noopener noreferrer" style={{ color: '#3b82f6', textDecoration: 'underline' }}>Discord</a>.</>
619
+ }
620
  </Typography>
621
  </Box>
622
  )}
623
  </>
624
  ) : (
625
  <>
626
+ {/* macOS Intel - Coming soon message */}
627
  <Box
628
  sx={{
629
  px: 5,
 
657
  }}
658
  >
659
  We're working hard to bring Reachy Mini Control to {currentPlatform?.name}.
660
+ In the meantime, macOS (Apple Silicon) is fully supported, and Windows & Linux are in beta!
661
  </Typography>
662
 
663
  {/* Alternative for Linux/advanced users - Python SDK */}
 
765
  ))}
766
  </Grid>
767
 
768
+ {/* Platform support notice - show on Windows, macOS Apple Silicon, and Linux */}
769
+ {(detectedPlatform?.startsWith('windows') || detectedPlatform === 'darwin-aarch64' || detectedPlatform?.includes('linux')) && (
770
  <Box
771
  sx={{
772
  mt: 3,
 
781
  variant="body2"
782
  sx={{ color: 'rgba(255,255,255,0.5)' }}
783
  >
784
+ 🚧 macOS Intel support coming soon
785
  </Typography>
786
  </Box>
787
  )}
src/pages/GettingStarted.jsx CHANGED
@@ -326,7 +326,7 @@ export default function GettingStarted() {
326
  The desktop app includes everything you need to control your Lite version.
327
  </Typography>
328
  <Typography variant="caption" sx={{ display: 'block', mb: 2, color: 'warning.main' }}>
329
- Desktop App currently available for Windows only. macOS & Linux coming soon!
330
  </Typography>
331
  <Button
332
  variant="contained"
@@ -334,7 +334,7 @@ export default function GettingStarted() {
334
  to="/download"
335
  startIcon={<DownloadIcon/>}
336
  >
337
- Download Windows APP
338
  </Button>
339
 
340
  <Button
@@ -343,7 +343,7 @@ export default function GettingStarted() {
343
  target="_blank"
344
  startIcon={<OpenInNewIcon/>}
345
  >
346
- macOS/Linux Installation
347
  </Button>
348
 
349
  </StepContent>
 
326
  The desktop app includes everything you need to control your Lite version.
327
  </Typography>
328
  <Typography variant="caption" sx={{ display: 'block', mb: 2, color: 'warning.main' }}>
329
+ Desktop App available for macOS (Apple Silicon), Windows & Linux (beta). macOS Intel coming soon!
330
  </Typography>
331
  <Button
332
  variant="contained"
 
334
  to="/download"
335
  startIcon={<DownloadIcon/>}
336
  >
337
+ Download Desktop App
338
  </Button>
339
 
340
  <Button
 
343
  target="_blank"
344
  startIcon={<OpenInNewIcon/>}
345
  >
346
+ Alternative: Python SDK
347
  </Button>
348
 
349
  </StepContent>