Settings: Dotfiles file-browser workspace
- New Settings → Dotfiles section: a mini-workspace rooted at home/{firstName}
reusing FileTree + the Monaco CodeEditor
- Drag-and-drop files/folders (FileSystem entries API) or upload a folder
(webkitdirectory) / files; edit in-place; new file; delete
- Files stored relative to HOME via the encrypted userDotfiles API
- Repo & setup panel (public repo URL + ref + setup script path) writing
userEnvironment; secrets nudge toward the Secrets feature
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
'use server';
|
||||
|
||||
import { DotfilesManager } from '@/components/settings/dotfiles/dotfiles-manager';
|
||||
|
||||
const SettingsDotfilesPage = () => {
|
||||
return (
|
||||
<section className='space-y-4'>
|
||||
<div>
|
||||
<h2 className='text-xl font-semibold'>Dotfiles</h2>
|
||||
<p className='text-muted-foreground mt-1 text-sm'>
|
||||
Your personal shell, editor, and tool config — applied to the
|
||||
workspace terminal in every thread. Files are placed relative to your
|
||||
home directory (e.g. <code>.bashrc</code>,{' '}
|
||||
<code>.config/nvim/init.lua</code>).
|
||||
</p>
|
||||
</div>
|
||||
<DotfilesManager />
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default SettingsDotfilesPage;
|
||||
@@ -3,7 +3,7 @@
|
||||
import type { ReactNode } from 'react';
|
||||
import Link from 'next/link';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { Brain, Github, ServerCog, Shield, User } from 'lucide-react';
|
||||
import { Brain, FileCog, Github, ServerCog, Shield, User } from 'lucide-react';
|
||||
|
||||
import { cn } from '@spoon/ui';
|
||||
|
||||
@@ -11,6 +11,7 @@ const settingsItems = [
|
||||
{ href: '/settings/profile', label: 'Profile', icon: User },
|
||||
{ href: '/settings/integrations', label: 'Integrations', icon: Github },
|
||||
{ href: '/settings/ai-providers', label: 'AI providers', icon: Brain },
|
||||
{ href: '/settings/dotfiles', label: 'Dotfiles', icon: FileCog },
|
||||
{ href: '/settings/worker', label: 'Worker', icon: ServerCog },
|
||||
{ href: '/settings/security', label: 'Security', icon: Shield },
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user