@@ -118,6 +118,12 @@ const MiniTerminal = ({ theme, setTheme }) => {
118118 { cmd : 'history' , desc : 'View command log' } ,
119119 { cmd : 'htop' , desc : 'Process monitor' } ,
120120 { cmd : 'clear' , desc : 'Clear display' } ,
121+ { cmd : 'sudo' , desc : 'Run with the security privileges' } ,
122+ { cmd : 'date' , desc : 'Display current date and time' } ,
123+ { cmd : 'motd' , desc : 'Display Message Of The Day' } ,
124+ { cmd : 'ping' , desc : 'Check terminal responsiveness' } ,
125+ { cmd : 'os' , desc : 'Display operating system info' } ,
126+ { cmd : 'neofetch' , desc : 'Display system information with ASCII art' } ,
121127 ] ;
122128 commands . forEach ( c => {
123129 newHistory . push ( { type : 'output' , content : (
@@ -264,6 +270,53 @@ const MiniTerminal = ({ theme, setTheme }) => {
264270 newHistory . push ( { type : 'output' , text : `Access Granted...` , className : THEMES [ theme ] . textDim } ) ;
265271 unlockAchievement ( 'su-done' ) ;
266272 break ;
273+ case 'bsod' :
274+ newHistory . push ( { type : 'output' , text : 'FEZ.OS cannot be crashed. Sorry, not sorry.' , className : `${ THEMES [ theme ] . text } font-bold` } ) ;
275+ break ;
276+ case 'date' :
277+ newHistory . push ( { type : 'output' , text : new Date ( ) . toLocaleString ( ) , className : THEMES [ theme ] . text } ) ;
278+ break ;
279+ case 'motd' :
280+ newHistory . push ( { type : 'output' , text : 'WELCOME, OPERATOR. SYSTEM STATUS: OPTIMAL. ACCESS GRANTED.' , className : `${ THEMES [ theme ] . accent } ` } ) ;
281+ break ;
282+ case 'ping' :
283+ newHistory . push ( { type : 'output' , text : 'pong' , className : THEMES [ theme ] . text } ) ;
284+ break ;
285+ case 'os' :
286+ newHistory . push ( { type : 'output' , text : 'OPERATING SYSTEM INFORMATION:' , className : `${ THEMES [ theme ] . accent } font-bold mt-2` } ) ;
287+ newHistory . push ( { type : 'output' , text : ` OS Name: FEZ.OS Galactic Edition` , className : THEMES [ theme ] . textDim } ) ;
288+ newHistory . push ( { type : 'output' , text : ` Architecture: x64` , className : THEMES [ theme ] . textDim } ) ;
289+ newHistory . push ( { type : 'output' , text : ` Kernel Version: 3.5.0-2077-generic-cigdem-edition` , className : THEMES [ theme ] . textDim } ) ;
290+ newHistory . push ( { type : 'output' , text : ` Build Date: ${ new Date ( ) . toISOString ( ) . slice ( 0 , 10 ) } ` , className : THEMES [ theme ] . textDim } ) ;
291+ newHistory . push ( { type : 'output' , text : ` Hostname: FEZ-GH_PAGES_SERVER-ALPHA-01` , className : THEMES [ theme ] . textDim } ) ;
292+ newHistory . push ( { type : 'output' , text : ` GUI: FEZ.OS React Shell` , className : THEMES [ theme ] . textDim } ) ;
293+ break ;
294+ case 'neofetch' :
295+ const uptimeSeconds = Math . floor ( Math . random ( ) * ( 24 * 3600 * 7 ) ) + 3600 ; // Up to 7 days + 1 hour
296+ const days = Math . floor ( uptimeSeconds / ( 3600 * 24 ) ) ;
297+ const hours = Math . floor ( ( uptimeSeconds % ( 3600 * 24 ) ) / 3600 ) ;
298+ const minutes = Math . floor ( ( uptimeSeconds % 3600 ) / 60 ) ;
299+
300+ const neofetchOutput = [
301+ `\n` ,
302+ ` _.-^-._ ${ THEMES [ theme ] . accent } FEZ.OS${ THEMES [ theme ] . textDim } ` ,
303+ ` /_______\\ ------------------` ,
304+ ` | .-. | Host: FEZ-GH_PAGES_SERVER-ALPHA-01` ,
305+ ` | '-' | OS: FEZ.OS Galactic Edition` ,
306+ ` \`---------' Kernel: 3.5.0-2077-generic-cigdem-edition` ,
307+ ` Uptime: ${ days } days, ${ hours } hours, ${ minutes } minutes` ,
308+ ` Shell: fesh` ,
309+ ` Resolution: 1920x1080` ,
310+ ` Terminal: FEZ.OS React Shell` ,
311+ ` CPU: iMDtel Coreyzhen XX-1000Z (8) @ 5.00GHz` ,
312+ ` GPU: Generic PnP Graphics Card 90960` ,
313+ ` Memory: 8GB / 32GB` ,
314+ `\n`
315+ ] ;
316+ neofetchOutput . forEach ( line => {
317+ newHistory . push ( { type : 'output' , text : line , className : THEMES [ theme ] . text } ) ;
318+ } ) ;
319+ break ;
267320 default :
268321 newHistory . push ( { type : 'error' , text : `Command not found: ${ trimmed } ` , className : 'text-red-500 font-bold' } ) ;
269322 }
@@ -301,7 +354,7 @@ const MiniTerminal = ({ theme, setTheme }) => {
301354 onClick = { ( ) => document . getElementById ( 'terminal-input' ) ?. focus ( ) } >
302355 < div className = "flex-grow overflow-y-auto custom-scrollbar" >
303356 { history . map ( ( line , i ) => (
304- < div key = { i } className = { line . className || ( line . type === 'input' ? `${ THEMES [ theme ] . text } mt-1` : THEMES [ theme ] . textDim ) } >
357+ < div key = { i } className = { `whitespace-pre ${ line . className || ( line . type === 'input' ? `${ THEMES [ theme ] . text } mt-1` : THEMES [ theme ] . textDim ) } ` } >
305358 { line . type === 'input' ? '> ' : '' }
306359 { line . content || line . text }
307360 </ div >
0 commit comments