Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/AhmedSaadi0/NibrasShell/llms.txt

Use this file to discover all available pages before exploring further.

The file ~/.nibrasshell.json is NibrasShell’s primary user configuration store. Every preference — from your name and location to AI provider keys and workspace icons — lives here as a flat JSON object. You rarely need to edit this file by hand; the Settings App and the install script write it for you. But understanding its structure helps when you want to tweak defaults or script your own setup.

Complete example

The block below shows a representative ~/.nibrasshell.json with all supported keys and their default values.
~/.nibrasshell.json
{
  "username": "Ahmed",
  "subtitle": "Linux enthusiast",
  "profilePicture": "/home/ahmed/.face",

  "city": "sanaa",
  "country": "yemen",
  "weatherLocation": "sanaa",
  "firstDayOfWeek": 6,
  "usePrayerTimes": true,

  "networkMonitor": "wlp0s20f3",
  "networkInterval": 400,

  "aiProvider": "gemini",
  "aiApiKey": "YOUR_KEY_HERE",
  "weatherAiApiKey": "",
  "musicAiApiKey": "",
  "systemAiApiKey": "",
  "weatherAiModel": "gemini-flash-lite-latest",
  "musicAiModel": "gemini-flash-lite-latest",
  "systemAiModel": "gemini-flash-lite-latest",
  "aiPreferredLanguage": "English",
  "weatherPersona": "...",
  "musicPersona": "...",

  "enableHighCpuAlert": true,
  "enableHighRamAlert": true,
  "enableHighTempAlert": true,
  "cpuHighLoadThreshold": 85,
  "ramHighLoadThreshold": 85,
  "tempHighThreshold": 85,
  "playCpuAlarmSound": true,
  "playRamAlarmSound": true,
  "playTempAlarmSound": true,
  "resourceAlertCooldownMs": 60000,

  "menuStyle": "docked_moving_bar",
  "useBottomLauncher": false,
  "bottomLauncherWidth": 800,
  "topBarActiveWindowMinWidth": 200,
  "topBarActiveWindowMaxWidth": 400,
  "dynamicWorkspaces": false,
  "activeWorkspacesIcons": ["󰋜", "󰿣", "󰂔", "󰉋", "󱙋", "󰭹", "󱍙", "󰺵", "󱋡", "󰙨"],
  "inActiveWorkspacesIcons": ["", "󰿤", "󰂕", "󰉖", "󱙌", "󰻞", "󱍚", "󰺶", "󱋢", "󰤑"]
}
NibrasShell watches this file at runtime. Changes made by the Settings App take effect immediately without restarting the shell.

Settings reference

These keys control the identity displayed in the shell’s dashboard and profile areas.
KeyTypeDefaultDescription
usernamestring"Username"Your display name shown in the dashboard.
subtitlestring""A short tagline or role shown beneath your name.
profilePicturestring""Absolute path to your profile image (e.g. /home/you/.face).
These keys tell NibrasShell where you are so it can fetch accurate weather data and optionally show Islamic prayer times.
KeyTypeDefaultDescription
citystring"sanaa"Your city name, used for prayer time calculations.
countrystring"yemen"Your country, used together with city.
weatherLocationstring"sanaa"Location string passed to the weather API (can differ from city).
firstDayOfWeeknumber6First day of the calendar week: 0 = Sunday, 1 = Monday … 6 = Saturday.
usePrayerTimesbooleantrueShow Islamic prayer times in the clock and dashboard. Set to false to hide them.
These keys configure which network interface NibrasShell monitors and how often it polls for traffic data.
KeyTypeDefaultDescription
networkMonitorstring"wlp0s20f3"The network interface name to monitor (e.g. eth0, enp3s0). Run ip link to find yours.
networkIntervalnumber400Polling interval in milliseconds. Lower values give smoother graphs but use more CPU.
NibrasShell supports multiple AI providers and lets you assign separate API keys and models to each feature area (weather, music, system monitoring). A single aiApiKey is used as a fallback when a feature-specific key is not set.
KeyTypeDefaultDescription
aiProviderstring"gemini"AI backend to use. Choices: "gemini", "openai", "deepseek", "openrouter", "ollama", "local".
aiApiKeystring""Primary API key, used when no feature-specific key is set.
weatherAiApiKeystring""Override key for the weather assistant. Falls back to aiApiKey if empty.
musicAiApiKeystring""Override key for the music assistant. Falls back to aiApiKey if empty.
systemAiApiKeystring""Override key for the system monitoring assistant. Falls back to aiApiKey if empty.
weatherAiModelstring"gemini-flash-lite-latest"Model used for weather summaries.
musicAiModelstring"gemini-flash-lite-latest"Model used for music commentary.
systemAiModelstring"gemini-flash-lite-latest"Model used for system health analysis.
aiPreferredLanguagestring"English"Language for AI responses (e.g. "Arabic", "French").
weatherPersonastring(long default)System prompt persona for the weather assistant.
musicPersonastring(long default)System prompt persona for the music assistant.
You can customize weatherPersona and musicPersona to change the tone and style of AI responses. The Settings App → AI section provides a text editor for each persona.
These keys control when NibrasShell raises alerts for high CPU, RAM, or temperature usage.
KeyTypeDefaultDescription
enableHighCpuAlertbooleantrueEnable visual alert when CPU usage exceeds the threshold.
enableHighRamAlertbooleantrueEnable visual alert when RAM usage exceeds the threshold.
enableHighTempAlertbooleantrueEnable visual alert when CPU temperature exceeds the threshold.
cpuHighLoadThresholdnumber85CPU usage percentage (0–100) that triggers the alert.
ramHighLoadThresholdnumber85RAM usage percentage (0–100) that triggers the alert.
tempHighThresholdnumber85CPU temperature in °C that triggers the alert.
playCpuAlarmSoundbooleantruePlay an audible alarm on CPU threshold breach.
playRamAlarmSoundbooleantruePlay an audible alarm on RAM threshold breach.
playTempAlarmSoundbooleantruePlay an audible alarm on temperature threshold breach.
resourceAlertCooldownMsnumber60000Minimum time in milliseconds between repeated alerts for the same resource.
These keys control the shell’s overall layout, the top bar behavior, and workspace icon sets.
KeyTypeDefaultDescription
menuStylestring"docked_moving_bar"Left menu layout. Options: "floating", "docked_fixed_bar", "docked_moving_bar".
useBottomLauncherbooleanfalseUse the bottom app launcher instead of the side launcher.
bottomLauncherWidthnumber800Width of the bottom launcher in pixels (only applies when useBottomLauncher is true).
topBarActiveWindowMinWidthnumber200Minimum width in pixels of the active window title in the top bar.
topBarActiveWindowMaxWidthnumber400Maximum width in pixels of the active window title in the top bar.
dynamicWorkspacesbooleanfalseShow only workspaces that have open windows instead of all ten.
activeWorkspacesIconsarray(Nerd Font icons)Array of 10 icon strings for active (focused) workspaces.
inActiveWorkspacesIconsarray(Nerd Font icons)Array of 10 icon strings for inactive workspaces.
Workspace icon arrays must contain exactly 10 elements — one per workspace slot. Use any Nerd Font glyph or Unicode character.

Build docs developers (and LLMs) love