diff --git a/.gitignore b/.gitignore index e94764d..69a4085 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ configstore jgit + +yasb diff --git a/firefox/userChrome.css b/firefox/userChrome.css index 8fc8e28..a08c1f6 100644 --- a/firefox/userChrome.css +++ b/firefox/userChrome.css @@ -1,24 +1,167 @@ + @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); +/* Background image new tab page */ +* { + font-family: "Ubuntu Nerd Font"; + --animation-speed: 0.2s; + --button-corner-rounding: 30px; + --urlbar-container-height: 40px !important; + --urlbar-min-height: 30px !important; + --urlbar-height: 30px !important; + --urlbar-toolbar-height: 38px !important; + --moz-hidden-unscrollable: scroll !important; + --toolbarbutton-border-radius: 8px !important; + --tabs-border-color: transparent; +} + +:root { + --window: -moz-Dialog !important; + --secondary: color-mix(in srgb, currentColor 5%, -moz-Dialog) !important; + --uc-border-radius: 0px; + --uc-status-panel-spacing: 0px; + --uc-page-action-margin: 7px; +} + +/* animation and effect */ +#nav-bar:not([customizing]) { + visibility: visible; + margin-top: -40px; + transition-delay: 0.1s; + filter: alpha(opacity=0); + opacity: 0; + transition: visibility, ease 0.1s, margin-top, ease 0.1s, opacity, ease 0.1s, + rotate, ease 0.1s !important; +} + +#nav-bar:hover, +#nav-bar:focus-within, +#urlbar[focused='true'], +#identity-box[open='true'], +#titlebar:hover + #nav-bar:not([customizing]), +#toolbar-menubar:not([inactive='true']) ~ #nav-bar:not([customizing]) +{ + visibility: visible; + margin-top: 0px; + filter: alpha(opacity=100); + opacity: 100; +} + +#PersonalToolbar{ + margin-top: 0px!important; +} + +#nav-bar .toolbarbutton-1[open='true'] { + visibility: visible; + opacity: 100; +} +#PersonalToolbar .toolbarbutton-1[open='true'] { + visibility: visible; + opacity: 100; +} + +:root:not([customizing]) :hover > .tabbrowser-tab:not(:hover) { + transition: blur, ease 0.1s !important; +} + +:root:not([customizing]) :not(:hover) > .tabbrowser-tab { + transition: blur, ease 0.1s !important; +} + +#tabbrowser-tabs .tab-label-container[customizing] { + color: transparent; + transition: ease 0.1s; + transition-delay: 0.2s; +} + +/* Removes annoying buttons and spaces */ +.titlebar-spacer[type="pre-tabs"], .titlebar-spacer[type="post-tabs"]{display: none !important} +#tabbrowser-tabs{border-inline-start-width: 0!important} + +/* Makes some buttons nicer */ +#PanelUI-menu-button, #unified-extensions-button, #reload-button, #stop-button {padding: 2px !important} +#reload-button, #stop-button{margin: 1px !important;} -#navigator-toolbox { font-family: "FiraMono Nerd Font" !important } +/* X-button */ +:root { + --show-tab-close-button: none; + --show-tab-close-button-hover: -moz-inline-block; +} +.tabbrowser-tab:not([pinned]) .tab-close-button { display: var(--show-tab-close-button) !important; } +.tabbrowser-tab:not([pinned]):hover .tab-close-button { display: var(--show-tab-close-button-hover) !important } + +/* tabbar */ + +/* Hide the secondary Tab Label + * e.g. playing indicator (the text, not the icon) */ +.tab-secondary-label { display: none !important; } + +:root { + --toolbarbutton-border-radius: 0 !important; + --tab-border-radius: 0 !important; + --tab-block-margin: 0 !important; +} + +.tabbrowser-tab:is([visuallyselected='true'], [multiselected]) + > .tab-stack + > .tab-background { + box-shadow: none !important; +} + +.tab-background { + border-right: 0px solid rgba(0, 0, 0, 0) !important; + margin-left: -1px !important; +} + +.tabbrowser-tab[last-visible-tab='true'] { + padding-inline-end: 0 !important; +} + +#tabs-newtab-button { + padding-left: 0 !important; +} + +/* multi tab selection */ +#tabbrowser-tabs:not([noshadowfortests]) .tabbrowser-tab:is([multiselected]) + > .tab-stack + > .tab-background:-moz-lwtheme { outline-color: var(--toolbarseparator-color) !important; } + +/* remove gap after pinned tabs */ +#tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs]) + > #tabbrowser-arrowscrollbox + > .tabbrowser-tab:nth-child(1 of :not([pinned], [hidden])) { margin-inline-start: 0 !important; } + +/* Removes annoying border */ +#navigator-toolbox{border:none !important;} + +/* Removes the annoying rainbow thing from the hamburger */ +#appMenu-fxa-separator{border-image:none !important;} #PlacesToolbarItems { - justify-content: safe center !important; + justify-content: center !important; } -#urlbar-engine-one-off-item-bookmarks { - fill: #ebebec !important; +#alltabs-button { + display: none !important; } #star-button[starred] { - fill: #ebebec !important; + fill: #c0caf5 !important; } -.tab-background[selected]{ background: #001427 !important;} +.tab-background[selected]{ background: #1a1b26 !important;} .bookmark-item{ - font-size: 14px !important; - padding: 8px !important; + color: white; + font-size: 13px !important; + margin-left: 5px !important; + margin-right: 5px !important; + padding: 4px !important; +} +.bookmark-item:hover { + color: white!important; + background-color: rgba(192, 202, 245,0.3)!important; /* pale gray */ } -/* Background image new tab page */ + + + diff --git a/firefox/userContent.css b/firefox/userContent.css index ddc477e..61829a4 100644 --- a/firefox/userContent.css +++ b/firefox/userContent.css @@ -1,15 +1,58 @@ +* { + font-family: "Ubuntu Nerd Font"; +} @-moz-document url(about:home), url(about:newtab), url(about:privatebrowsing){ - body { - z-index: -1 ; - position: fixed ; - top: 0 ; - left: 0 ; - background: no-repeat url(black_stones_b_w.jpg) center ; - background-color: rgba(0, 0, 0, 0.5); - background-blend-mode:luminosity; - background-size: cover ; - width: 100vw ; - height: 100vh ; + +/* Newtab */ +.search-inner-wrapper { + display: none !important; +} + +.icon.icon-settings { + display: none !important; +} + +.outer-wrapper .search-wrapper { + padding: 0px !important; +} + +.logo-and-wordmark { + display: none !important; +} +body{ + background-color: #15161e!important; +} + +} + +@-moz-document url-prefix(about:) { + + /* Removes the scrollbar on some places */ + body, + html { + overflow-y: auto; + } + + /* Devtools */ + @-moz-document url-prefix(about:devtools) { + #toolbox-container { + margin-top: 10px !important; + } + + .devtools-tabbar { + background: transparent !important; + } + + .devtools-tab-line { + border-radius: 0 0 5px 5px; + } + + .customize-animate-enter-done, + .customize-menu, + .top-site-outer:hover, + button { + background-color: transparent !important; + } } -} \ No newline at end of file +} diff --git a/komorebi/applications.yaml b/komorebi/applications.yaml new file mode 100644 index 0000000..be5fc6f --- /dev/null +++ b/komorebi/applications.yaml @@ -0,0 +1,1415 @@ +- name: Guitar Rig 7 + identifier: + kind: Exe + id: Guitar Rig 7.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Guitar Rig 7.exe + matching_strategy: Equals +- name: 1Password + identifier: + kind: Exe + id: 1Password.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: 1Password.exe + matching_strategy: Equals +- name: Ableton Live + identifier: + kind: Class + id: Ableton Live Window Class + matching_strategy: Legacy + float_identifiers: + - kind: Class + id: AbletonVstPlugClass + matching_strategy: Legacy + - kind: Class + id: Vst3PlugWindow + matching_strategy: Legacy +- name: Adobe Creative Cloud + identifier: + kind: Class + id: CreativeCloudDesktopWindowClass + matching_strategy: Legacy + options: + - tray_and_multi_window +- name: Adobe Photoshop + identifier: + kind: Class + id: Photoshop + matching_strategy: Legacy +- name: Adobe Premiere Pro + identifier: + kind: Class + id: Premiere Pro + matching_strategy: Legacy + float_identifiers: + - kind: Class + id: DroverLord - Window Class + matching_strategy: Equals +- name: Affinity Photo 2 + identifier: + kind: Title + id: Affinity Photo 2 + matching_strategy: Legacy + options: + - force + float_identifiers: + - kind: Exe + id: Photo.exe + matching_strategy: Equals +- name: Akiflow + identifier: + kind: Exe + id: Akiflow.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Android Studio + identifier: + kind: Exe + id: studio64.exe + matching_strategy: Equals + options: + - object_name_change +- name: Anki + identifier: + kind: Exe + id: anki.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ArmCord + identifier: + kind: Exe + id: ArmCord.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: AutoHotkey + identifier: + kind: Exe + id: AutoHotkeyU64.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Title + id: Window Spy + matching_strategy: StartsWith + - kind: Exe + id: AutoHotkeyUX.exe + matching_strategy: Equals +- name: Beeper + identifier: + kind: Exe + id: Beeper.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Bitwarden + identifier: + kind: Exe + id: Bitwarden.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Blitz + identifier: + kind: Exe + id: Blitz.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Bloxstrap + identifier: + kind: Exe + id: Bloxstrap.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Bloxstrap.exe + matching_strategy: Equals +- name: Brave Browser + identifier: + kind: Exe + id: brave.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: CLion + identifier: + kind: Exe + id: clion64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals +- name: Calculator + identifier: + kind: Title + id: Calculator + matching_strategy: Equals + float_identifiers: + - kind: Title + id: Calculator + matching_strategy: Equals +- name: Citrix Receiver + identifier: + kind: Exe + id: SelfService.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: SelfService.exe + matching_strategy: Equals +- name: Clash Verge + identifier: + kind: Exe + id: Clash Verge.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Clementine + identifier: + kind: Exe + id: clementine.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: CopyQ + identifier: + kind: Exe + id: copyq.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Credential Manager UI Host + identifier: + kind: Exe + id: CredentialUIBroker.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: CredentialUIBroker.exe + matching_strategy: Equals +- name: Cron + identifier: + kind: Exe + id: Cron.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: DS4Windows + identifier: + kind: Exe + id: DS4Windows.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Delphi applications + identifier: + kind: Class + id: TApplication + matching_strategy: Legacy + float_identifiers: + - kind: Class + id: TApplication + matching_strategy: Legacy + - kind: Class + id: TWizardForm + matching_strategy: Legacy +- name: Discord + identifier: + kind: Exe + id: Discord.exe + matching_strategy: Equals + options: + - tray_and_multi_window + - layered +- name: Discord Bot Client + identifier: + kind: Exe + id: DiscordBotClient.exe + matching_strategy: Equals +- name: DiscordCanary + identifier: + kind: Exe + id: DiscordCanary.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: DiscordDevelopment + identifier: + kind: Exe + id: DiscordDevelopment.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: DiscordPTB + identifier: + kind: Exe + id: DiscordPTB.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Docker Desktop + identifier: + kind: Exe + id: Docker Desktop.exe + matching_strategy: Equals +- name: Dropbox + identifier: + kind: Exe + id: Dropbox.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Dropbox.exe + matching_strategy: Equals +- name: EA Desktop Client + identifier: + kind: Exe + id: EADesktop.exe + matching_strategy: Equals +- name: Eagle + identifier: + kind: Exe + id: Eagle.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ElectronMail + identifier: + kind: Exe + id: ElectronMail.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Element + identifier: + kind: Exe + id: Element.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Elephicon + identifier: + kind: Exe + id: Elephicon.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Elephicon.exe + matching_strategy: Equals +- name: ElevenClock + identifier: + kind: Exe + id: ElevenClock.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Elgato Camera Hub + identifier: + kind: Exe + id: Camera Hub.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Camera Hub.exe + matching_strategy: Equals +- name: Elgato Control Center + identifier: + kind: Exe + id: ControlCenter.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: ControlCenter.exe + matching_strategy: Equals +- name: Elgato Wave Link + identifier: + kind: Exe + id: WaveLink.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: WaveLink.exe + matching_strategy: Equals +- name: Epic Games Launcher + identifier: + kind: Exe + id: EpicGamesLauncher.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Everything + identifier: + kind: Class + id: EVERYTHING + matching_strategy: Legacy + options: + - tray_and_multi_window +- name: Everything1.5a + identifier: + kind: Class + id: EVERYTHING_(1.5a) + matching_strategy: Legacy + options: + - force + - tray_and_multi_window +- name: FFMetrics + identifier: + kind: Exe + id: FFMetrics.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Figma + identifier: + kind: Exe + id: Figma.exe + matching_strategy: Equals +- name: Files + identifier: + kind: Exe + id: Files.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Flow Launcher + identifier: + kind: Exe + id: Flow.Launcher.exe + matching_strategy: Equals +- name: GOG Galaxy + identifier: + kind: Exe + id: GalaxyClient.exe + matching_strategy: Equals + options: + - force + - tray_and_multi_window + float_identifiers: + - kind: Class + id: Chrome_RenderWidgetHostHWND + matching_strategy: Legacy +- name: GitHub Credential Manager + identifier: + kind: Exe + id: git-credential-manager.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: git-credential-manager.exe + matching_strategy: Equals +- name: GitHub Desktop + identifier: + kind: Exe + id: GitHubDesktop.exe + matching_strategy: Equals +- name: GoPro Webcam + identifier: + kind: Class + id: GoPro Webcam + matching_strategy: Legacy + options: + - tray_and_multi_window +- name: Godot Manager + identifier: + kind: Exe + id: GodotManager.exe + matching_strategy: Equals + options: + - force + - object_name_change +- name: Golden Dict + identifier: + kind: Exe + id: GoldenDict.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Google Chrome + identifier: + kind: Exe + id: chrome.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Google Drive + identifier: + kind: Exe + id: GoogleDriveFS.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: GoogleDriveFS.exe + matching_strategy: Equals +- name: Honeyview + identifier: + kind: Class + id: HoneyviewClassX + matching_strategy: Legacy +- name: Houdoku + identifier: + kind: Exe + id: Houdoku.exe + matching_strategy: Equals +- name: IntelliJ IDEA + identifier: + kind: Exe + id: idea64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals +- name: Itch.io + identifier: + kind: Exe + id: itch.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: KOOK + identifier: + kind: Exe + id: KOOK.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Keyviz + identifier: + kind: Exe + id: keyviz.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: keyviz.exe + matching_strategy: Equals +- name: Kleopatra + identifier: + kind: Exe + id: kleopatra.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Kotatogram + identifier: + kind: Exe + id: Kotatogram.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: LocalSend + identifier: + kind: Exe + id: localsend_app.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Logi Bolt + identifier: + kind: Exe + id: LogiBolt.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: LogiBolt.exe + matching_strategy: Equals +- name: LogiTune + identifier: + kind: Exe + id: LogiTune.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: LogiTune.exe + matching_strategy: Equals +- name: Logitech G HUB + identifier: + kind: Exe + id: lghub.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Logitech Options + identifier: + kind: Exe + id: LogiOptionsUI.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: LogiOptionsUI.exe + matching_strategy: Equals +- name: Mailspring + identifier: + kind: Exe + id: mailspring.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ManicTime + identifier: + kind: Exe + id: ManicTimeClient.exe + matching_strategy: Equals + options: + - force + - object_name_change + - tray_and_multi_window +- name: ManyCam + identifier: + kind: Exe + id: ManyCam.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Mattermost + identifier: + kind: Exe + id: Mattermost.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Mica For Everyone + identifier: + kind: Exe + id: MicaForEveryone.exe + matching_strategy: Equals +- name: Microsoft Active Accessibility + identifier: + kind: Class + id: '' + matching_strategy: Legacy + float_identifiers: + - kind: Class + id: '#32770' + matching_strategy: Legacy +- name: Microsoft Excel + identifier: + kind: Exe + id: EXCEL.EXE + matching_strategy: Equals + options: + - layered + float_identifiers: + - kind: Class + id: _WwB + matching_strategy: Legacy +- name: Microsoft Outlook + identifier: + kind: Exe + id: OUTLOOK.EXE + matching_strategy: Equals + options: + - layered + - tray_and_multi_window + float_identifiers: + - kind: Class + id: _WwB + matching_strategy: Legacy +- name: Microsoft PC Manager + identifier: + kind: Exe + id: MSPCManager.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: MSPCManager.exe + matching_strategy: Equals +- name: Microsoft PowerPoint + identifier: + kind: Exe + id: POWERPNT.EXE + matching_strategy: Equals + options: + - layered + float_identifiers: + - kind: Class + id: _WwB + matching_strategy: Legacy +- name: Microsoft SQL Server Management Studio + identifier: + kind: Exe + id: Ssms.exe + matching_strategy: Equals +- name: Microsoft Teams + identifier: + kind: Class + id: TeamsWebView + matching_strategy: Legacy + options: + - tray_and_multi_window +- name: Microsoft Teams classic + identifier: + kind: Exe + id: Teams.exe + matching_strategy: Equals + float_identifiers: + - kind: Title + id: Microsoft Teams Notification + matching_strategy: Legacy + - kind: Title + id: Microsoft Teams Call + matching_strategy: Legacy +- name: Microsoft Word + identifier: + kind: Exe + id: WINWORD.EXE + matching_strategy: Equals + options: + - layered + float_identifiers: + - kind: Class + id: _WwB + matching_strategy: Legacy +- name: Modern Flyouts + identifier: + kind: Exe + id: ModernFlyoutsHost.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Morgen + identifier: + kind: Exe + id: Morgen.exe + matching_strategy: Equals +- name: Mozilla Firefox + identifier: + kind: Exe + id: firefox.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: MozillaTaskbarPreviewClass + matching_strategy: Legacy +- name: MuseScore + identifier: + kind: Exe + id: MuseScore.exe + matching_strategy: Equals +- name: NVIDIA GeForce Experience + identifier: + kind: Exe + id: NVIDIA GeForce Experience.exe + matching_strategy: Equals +- name: NZXT CAM + identifier: + kind: Exe + id: NZXT CAM.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: NetEase Cloud Music + identifier: + kind: Exe + id: cloudmusic.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: NiceHash Miner + identifier: + kind: Exe + id: nhm_app.exe + matching_strategy: Equals + options: + - force +- name: NohBoard + identifier: + kind: Exe + id: NohBoard.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: NohBoard.exe + matching_strategy: Equals +- name: Notion Enhanced + identifier: + kind: Exe + id: Notion Enhanced.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: OBS Studio (32-bit) + identifier: + kind: Exe + id: obs32.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: OBS Studio (64-bit) + identifier: + kind: Exe + id: obs64.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ONLYOFFICE Editors + identifier: + kind: Class + id: DocEditorsWindowClass + matching_strategy: Legacy + options: + - tray_and_multi_window +- name: Obsidian + identifier: + kind: Exe + id: Obsidian.exe + matching_strategy: Equals +- name: OneDrive + identifier: + kind: Exe + id: OneDrive.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: OneDriveReactNativeWin32WindowClass + matching_strategy: Legacy +- name: OneQuick + identifier: + kind: Exe + id: OneQuick.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: OpenRGB + identifier: + kind: Exe + id: OpenRGB.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Paradox Launcher + identifier: + kind: Exe + id: Paradox Launcher.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Paradox Launcher.exe + matching_strategy: Equals +- name: Passware Kit Forensic + identifier: + kind: Exe + id: PasswareKitForensic.exe + matching_strategy: Equals +- name: Playnite + identifier: + kind: Exe + id: Playnite.DesktopApp.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: Playnite.FullscreenApp.exe + matching_strategy: Equals +- name: Plexamp + identifier: + kind: Exe + id: Plexamp.exe + matching_strategy: Equals +- name: Postman + identifier: + kind: Exe + id: Postman.exe + matching_strategy: Equals +- name: PowerToys + identifier: + kind: Exe + id: PowerToys.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: PowerToys.ColorPickerUI.exe + matching_strategy: Equals + - kind: Exe + id: PowerToys.CropAndLock.exe + matching_strategy: Equals + - kind: Exe + id: PowerToys.ImageResizer.exe + matching_strategy: Equals + - kind: Exe + id: PowerToys.Peek.UI.exe + matching_strategy: Equals + - kind: Exe + id: PowerToys.PowerLauncher.exe + matching_strategy: Equals + - kind: Exe + id: PowerToys.PowerAccent.exe + matching_strategy: Equals +- name: Process Hacker + identifier: + kind: Exe + id: ProcessHacker.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: ProcessHacker.exe + matching_strategy: Equals +- name: ProtonDrive + identifier: + kind: Exe + id: ProtonDrive.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ProtonVPN + identifier: + kind: Exe + id: ProtonVPN.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: PyCharm + identifier: + kind: Exe + id: pycharm64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals +- name: QQ + identifier: + kind: Exe + id: QQ.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Title + id: 图片查看器 + matching_strategy: Legacy + - kind: Title + id: 群聊的聊天记录 + matching_strategy: Legacy + - kind: Title + id: 语音通话 + matching_strategy: Legacy +- name: QtScrcpy + identifier: + kind: Exe + id: QtScrcpy.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: QuickLook + identifier: + kind: Exe + id: QuickLook.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: QuickLook.exe + matching_strategy: Equals +- name: RepoZ + identifier: + kind: Exe + id: RepoZ.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: RepoZ.exe + matching_strategy: Equals +- name: Rider + identifier: + kind: Exe + id: rider64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals + - kind: Title + id: PopupMessageWindow + matching_strategy: Legacy +- name: Roblox FPS Unlocker + identifier: + kind: Exe + id: rbxfpsunlocker.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: RoundedTB + identifier: + kind: Exe + id: RoundedTB.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: RoundedTB.exe + matching_strategy: Equals +- name: RoundedTB + identifier: + kind: Exe + id: RoundedTB.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: RustRover + identifier: + kind: Exe + id: rustrover64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals +- name: Sandboxie Plus + identifier: + kind: Exe + id: SandMan.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: ShareX + identifier: + kind: Exe + id: ShareX.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Sideloadly + identifier: + kind: Exe + id: sideloadly.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: sideloadly.exe + matching_strategy: Equals +- name: Signal + identifier: + kind: Exe + id: Signal.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: SiriKali + identifier: + kind: Exe + id: sirikali.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Slack + identifier: + kind: Exe + id: Slack.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Class + id: Chrome_RenderWidgetHostHWND + matching_strategy: Legacy +- name: Slack + identifier: + kind: Exe + id: slack.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Class + id: Chrome_RenderWidgetHostHWND + matching_strategy: Legacy +- name: Smart Install Maker + identifier: + kind: Exe + id: SIM.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: obj_App + matching_strategy: Legacy + - kind: Class + id: obj_Form + matching_strategy: Legacy +- name: SnippingTool + identifier: + kind: Exe + id: SnippingTool.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: SnippingTool.exe + matching_strategy: Equals +- name: SoulseekQt + identifier: + kind: Exe + id: SoulseekQt.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Spotify + identifier: + kind: Exe + id: Spotify.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Steam + identifier: + kind: Class + id: vguiPopupWindow + matching_strategy: Legacy +- name: Steam Beta + identifier: + kind: Class + id: SDL_app + matching_strategy: Legacy + options: + - tray_and_multi_window + float_identifiers: + - kind: Title + id: notificationtoasts_ + matching_strategy: Legacy +- name: Stremio + identifier: + kind: Exe + id: stremio.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: System Informer + identifier: + kind: Exe + id: SystemInformer.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: SystemInformer.exe + matching_strategy: Equals +- name: SystemSettings + identifier: + kind: Exe + id: SystemSettings.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: Shell_Dialog + matching_strategy: Legacy +- name: Task Manager + identifier: + kind: Exe + id: Taskmgr.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: TaskManagerWindow + matching_strategy: Legacy +- name: Telegram + identifier: + kind: Exe + id: Telegram.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: TickTick + identifier: + kind: Exe + id: TickTick.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Total Commander + identifier: + kind: Exe + id: TotalCMD64.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: TDLG2FILEACTIONMIN + matching_strategy: Equals +- name: TouchCursor + identifier: + kind: Exe + id: tcconfig.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: tcconfig.exe + matching_strategy: Equals +- name: TranslucentTB + identifier: + kind: Exe + id: TranslucentTB.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: TranslucentTB.exe + matching_strategy: Equals +- name: TranslucentTB + identifier: + kind: Exe + id: TranslucentTB.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Unity Hub + identifier: + kind: Exe + id: Unity Hub.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Unreal Editor + identifier: + kind: Exe + id: UnrealEditor.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: VMware Horizon Client + identifier: + kind: Exe + id: vmware-view.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: VRCX + identifier: + kind: Exe + id: VRCX.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Visual Studio + identifier: + kind: Exe + id: devenv.exe + matching_strategy: Equals + options: + - object_name_change +- name: Visual Studio Code + identifier: + kind: Exe + id: Code.exe + matching_strategy: Equals +- name: Visual Studio Code - Insiders + identifier: + kind: Exe + id: Code - Insiders.exe + matching_strategy: Equals +- name: Voice.ai + identifier: + kind: Exe + id: VoiceAI.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: WebStorm + identifier: + kind: Exe + id: webstorm64.exe + matching_strategy: Equals + options: + - object_name_change + - tray_and_multi_window + float_identifiers: + - kind: Class + id: SunAwtDialog + matching_strategy: Equals +- name: WebTorrent Desktop + identifier: + kind: Exe + id: WebTorrent.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: WinZip (32-bit) + identifier: + kind: Exe + id: winzip32.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: winzip32.exe + matching_strategy: Equals +- name: WinZip (64-bit) + identifier: + kind: Exe + id: winzip64.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: winzip64.exe + matching_strategy: Equals +- name: Windows Console (conhost.exe) + identifier: + kind: Class + id: ConsoleWindowClass + matching_strategy: Equals + options: + - force +- name: Windows Explorer + identifier: + kind: Exe + id: explorer.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: OperationStatusWindow + matching_strategy: Legacy + - kind: Title + id: Control Panel + matching_strategy: Legacy +- name: Windows Installer + identifier: + kind: Exe + id: msiexec.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: msiexec.exe + matching_strategy: Equals +- name: Windows Subsystem for Android + identifier: + kind: Exe + id: WsaClient.exe + matching_strategy: Equals + float_identifiers: + - kind: Class + id: android(splash) + matching_strategy: Legacy +- name: Windows Update Standalone Installer + identifier: + kind: Exe + id: wusa.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: wusa.exe + matching_strategy: Equals +- name: WingetUI + identifier: + kind: Exe + id: WingetUI.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: WingetUI + identifier: + kind: Exe + id: wingetui.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Wox + identifier: + kind: Exe + id: Wox.exe + matching_strategy: Equals + float_identifiers: + - kind: Title + id: Hotkey sink + matching_strategy: Legacy +- name: XAMPP Control Panel + identifier: + kind: Exe + id: xampp-control.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: Zoom + identifier: + kind: Exe + id: Zoom.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: Zoom.exe + matching_strategy: Equals +- name: mpv + identifier: + kind: Class + id: mpv + matching_strategy: Legacy + options: + - object_name_change +- name: mpv.net + identifier: + kind: Exe + id: mpvnet.exe + matching_strategy: Equals + options: + - object_name_change +- name: paint.net + identifier: + kind: Exe + id: paintdotnet.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: paintdotnet.exe + matching_strategy: Equals +- name: pinentry + identifier: + kind: Exe + id: pinentry.exe + matching_strategy: Equals + float_identifiers: + - kind: Exe + id: pinentry.exe + matching_strategy: Equals +- name: qBittorrent + identifier: + kind: Exe + id: qbittorrent.exe + matching_strategy: Equals + options: + - tray_and_multi_window +- name: todoist + identifier: + kind: Exe + id: Todoist.exe + matching_strategy: Equals +- name: ueli + identifier: + kind: Exe + id: ueli.exe + matching_strategy: Equals + options: + - tray_and_multi_window + float_identifiers: + - kind: Exe + id: ueli.exe + matching_strategy: Equals diff --git a/komorebi/komorebi.ahk b/komorebi/komorebi.ahk new file mode 100644 index 0000000..6721b77 --- /dev/null +++ b/komorebi/komorebi.ahk @@ -0,0 +1,71 @@ +#SingleInstance Force + +; Block the Windows key default behavior when pressed alone +SetCapsLockState("AlwaysOff") + +; Load library +#Include komorebic.lib.ahk + + +; Focus windows +CapsLock & h::CycleFocus("previous") +CapsLock & j::Focus("down") +CapsLock & k::Focus("up") +CapsLock & l::CycleFocus("next") + +; Move windows +CapsLock & Left::Move("left") +CapsLock & Down::Move("down") +CapsLock & Up::Move("up") +CapsLock & Right::Move("right") +CapsLock & Enter::Promote() + +; Resize +CapsLock & u::ResizeAxis("horizontal", "increase") +CapsLock & p::ResizeAxis("horizontal", "decrease") +CapsLock & o::ResizeAxis("vertical", "increase") +CapsLock & i::ResizeAxis("vertical", "decrease") + +; Manipulate windows +CapsLock & f::ToggleFloat() +CapsLock & z::ToggleMonocle() + +; Stack windows +!Left::Stack("left") +!Right::Stack("right") +!Up::Stack("up") +!Down::Stack("down") +CapsLock & q::Unstack() +CapsLock & n::CycleStack("previous") +CapsLock & m::CycleStack("next") + +; Window manager options +CapsLock & r::Retile() +CapsLock & t::TogglePause() + +; Layouts +CapsLock & x::FlipLayout("horizontal") +CapsLock & y::FlipLayout("vertical") + +; Workspaces +CapsLock & 1::FocusWorkspace(0) +CapsLock & 2::FocusWorkspace(1) +CapsLock & 3::FocusWorkspace(2) +CapsLock & 4::FocusWorkspace(3) +CapsLock & 5::FocusWorkspace(4) + +; Move windows across workspaces +#1::MoveToWorkspace(0) +#2::MoveToWorkspace(1) +#3::MoveToWorkspace(2) +#4::MoveToWorkspace(3) +#5::MoveToWorkspace(4) + +;Start/Stop +CapsLock & s::Stop() + +;Close +CapsLock & c::Close() + +;Minimize +CapsLock & w::Minimize() diff --git a/komorebi/komorebi.json b/komorebi/komorebi.json new file mode 100644 index 0000000..3f89705 --- /dev/null +++ b/komorebi/komorebi.json @@ -0,0 +1,60 @@ +{ + "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.25/schema.json", + "app_specific_configuration_path": "$Env:KOMOREBI_CONFIG_HOME/applications.yaml", + "window_hiding_behaviour": "Cloak", + "window_container_behaviour": "Create", + "cross_monitor_move_behaviour": "Insert", + "default_workspace_padding": 2, + "default_container_padding": 2, + "border_width": 2, + "border_offset": -1, + "active_window_border": true, + "active_window_border_colours": { + "single": "#a9b1d6", + "stack": "#f7768e", + "monocle": "#7aa2f7" + }, + "stackbar": { + "height": 25, + "mode": "OnStack", + "tabs": { + "width": 200, + "focused_text": "#f7768e", + "unfocused_text": "#c0caf5", + "background": "#1a1b26" + } + }, + "manage_rules":[ + { + "kind": "Title", + "id":"- Discord", + "matching_strategy": "EndsWith" + } + ], + "monitors": [ + { + "workspaces": [ + { + "name": "I", + "layout": "BSP" + }, + { + "name": "II", + "layout": "BSP" + }, + { + "name": "III", + "layout": "BSP" + }, + { + "name": "IV", + "layout": "BSP" + }, + { + "name": "V", + "layout": "BSP" + }, + ] + } + ] +} diff --git a/komorebi/komorebic.lib.ahk b/komorebi/komorebic.lib.ahk new file mode 100644 index 0000000..e1e279b --- /dev/null +++ b/komorebi/komorebic.lib.ahk @@ -0,0 +1,457 @@ +; Generated by komorebic.exe + +Start(ffm, await_configuration, tcp_port) { + RunWait("komorebic.exe start " ffm " --await-configuration " await_configuration " --tcp-port " tcp_port, , "Hide") +} + +Stop() { + RunWait("komorebic.exe stop", , "Hide") +} + +State() { + RunWait("komorebic.exe state", , "Hide") +} + +Query(state_query) { + RunWait("komorebic.exe query " state_query, , "Hide") +} + +Subscribe(named_pipe) { + RunWait("komorebic.exe subscribe " named_pipe, , "Hide") +} + +Unsubscribe(named_pipe) { + RunWait("komorebic.exe unsubscribe " named_pipe, , "Hide") +} + +Log() { + RunWait("komorebic.exe log", , "Hide") +} + +QuickSaveResize() { + RunWait("komorebic.exe quick-save-resize", , "Hide") +} + +QuickLoadResize() { + RunWait("komorebic.exe quick-load-resize", , "Hide") +} + +SaveResize(path) { + RunWait("komorebic.exe save-resize " path, , "Hide") +} + +LoadResize(path) { + RunWait("komorebic.exe load-resize " path, , "Hide") +} + +Focus(operation_direction) { + RunWait("komorebic.exe focus " operation_direction, , "Hide") +} + +Move(operation_direction) { + RunWait("komorebic.exe move " operation_direction, , "Hide") +} + +Minimize() { + RunWait("komorebic.exe minimize", , "Hide") +} + +Close() { + RunWait("komorebic.exe close", , "Hide") +} + +ForceFocus() { + RunWait("komorebic.exe force-focus", , "Hide") +} + +CycleFocus(cycle_direction) { + RunWait("komorebic.exe cycle-focus " cycle_direction, , "Hide") +} + +CycleMove(cycle_direction) { + RunWait("komorebic.exe cycle-move " cycle_direction, , "Hide") +} + +Stack(operation_direction) { + RunWait("komorebic.exe stack " operation_direction, , "Hide") +} + +Resize(edge, sizing) { + RunWait("komorebic.exe resize " edge " " sizing, , "Hide") +} + +ResizeAxis(axis, sizing) { + RunWait("komorebic.exe resize-axis " axis " " sizing, , "Hide") +} + +Unstack() { + RunWait("komorebic.exe unstack", , "Hide") +} + +CycleStack(cycle_direction) { + RunWait("komorebic.exe cycle-stack " cycle_direction, , "Hide") +} + +MoveToMonitor(target) { + RunWait("komorebic.exe move-to-monitor " target, , "Hide") +} + +CycleMoveToMonitor(cycle_direction) { + RunWait("komorebic.exe cycle-move-to-monitor " cycle_direction, , "Hide") +} + +MoveToWorkspace(target) { + RunWait("komorebic.exe move-to-workspace " target, , "Hide") +} + +MoveToNamedWorkspace(workspace) { + RunWait("komorebic.exe move-to-named-workspace " workspace, , "Hide") +} + +CycleMoveToWorkspace(cycle_direction) { + RunWait("komorebic.exe cycle-move-to-workspace " cycle_direction, , "Hide") +} + +SendToMonitor(target) { + RunWait("komorebic.exe send-to-monitor " target, , "Hide") +} + +CycleSendToMonitor(cycle_direction) { + RunWait("komorebic.exe cycle-send-to-monitor " cycle_direction, , "Hide") +} + +SendToWorkspace(target) { + RunWait("komorebic.exe send-to-workspace " target, , "Hide") +} + +SendToNamedWorkspace(workspace) { + RunWait("komorebic.exe send-to-named-workspace " workspace, , "Hide") +} + +CycleSendToWorkspace(cycle_direction) { + RunWait("komorebic.exe cycle-send-to-workspace " cycle_direction, , "Hide") +} + +SendToMonitorWorkspace(target_monitor, target_workspace) { + RunWait("komorebic.exe send-to-monitor-workspace " target_monitor " " target_workspace, , "Hide") +} + +FocusMonitor(target) { + RunWait("komorebic.exe focus-monitor " target, , "Hide") +} + +FocusWorkspace(target) { + RunWait("komorebic.exe focus-workspace " target, , "Hide") +} + +FocusMonitorWorkspace(target_monitor, target_workspace) { + RunWait("komorebic.exe focus-monitor-workspace " target_monitor " " target_workspace, , "Hide") +} + +FocusNamedWorkspace(workspace) { + RunWait("komorebic.exe focus-named-workspace " workspace, , "Hide") +} + +CycleMonitor(cycle_direction) { + RunWait("komorebic.exe cycle-monitor " cycle_direction, , "Hide") +} + +CycleWorkspace(cycle_direction) { + RunWait("komorebic.exe cycle-workspace " cycle_direction, , "Hide") +} + +MoveWorkspaceToMonitor(target) { + RunWait("komorebic.exe move-workspace-to-monitor " target, , "Hide") +} + +NewWorkspace() { + RunWait("komorebic.exe new-workspace", , "Hide") +} + +ResizeDelta(pixels) { + RunWait("komorebic.exe resize-delta " pixels, , "Hide") +} + +InvisibleBorders(left, top, right, bottom) { + RunWait("komorebic.exe invisible-borders " left " " top " " right " " bottom, , "Hide") +} + +GlobalWorkAreaOffset(left, top, right, bottom) { + RunWait("komorebic.exe global-work-area-offset " left " " top " " right " " bottom, , "Hide") +} + +MonitorWorkAreaOffset(monitor, left, top, right, bottom) { + RunWait("komorebic.exe monitor-work-area-offset " monitor " " left " " top " " right " " bottom, , "Hide") +} + +AdjustContainerPadding(sizing, adjustment) { + RunWait("komorebic.exe adjust-container-padding " sizing " " adjustment, , "Hide") +} + +AdjustWorkspacePadding(sizing, adjustment) { + RunWait("komorebic.exe adjust-workspace-padding " sizing " " adjustment, , "Hide") +} + +ChangeLayout(default_layout) { + RunWait("komorebic.exe change-layout " default_layout, , "Hide") +} + +CycleLayout(operation_direction) { + RunWait("komorebic.exe cycle-layout " operation_direction, , "Hide") +} + +LoadCustomLayout(path) { + RunWait("komorebic.exe load-custom-layout " path, , "Hide") +} + +FlipLayout(axis) { + RunWait("komorebic.exe flip-layout " axis, , "Hide") +} + +Promote() { + RunWait("komorebic.exe promote", , "Hide") +} + +PromoteFocus() { + RunWait("komorebic.exe promote-focus", , "Hide") +} + +Retile() { + RunWait("komorebic.exe retile", , "Hide") +} + +MonitorIndexPreference(index_preference, left, top, right, bottom) { + RunWait("komorebic.exe monitor-index-preference " index_preference " " left " " top " " right " " bottom, , "Hide") +} + +EnsureWorkspaces(monitor, workspace_count) { + RunWait("komorebic.exe ensure-workspaces " monitor " " workspace_count, , "Hide") +} + +EnsureNamedWorkspaces(monitor, names) { + RunWait("komorebic.exe ensure-named-workspaces " monitor " " names, , "Hide") +} + +ContainerPadding(monitor, workspace, size) { + RunWait("komorebic.exe container-padding " monitor " " workspace " " size, , "Hide") +} + +NamedWorkspaceContainerPadding(workspace, size) { + RunWait("komorebic.exe named-workspace-container-padding " workspace " " size, , "Hide") +} + +WorkspacePadding(monitor, workspace, size) { + RunWait("komorebic.exe workspace-padding " monitor " " workspace " " size, , "Hide") +} + +NamedWorkspacePadding(workspace, size) { + RunWait("komorebic.exe named-workspace-padding " workspace " " size, , "Hide") +} + +WorkspaceLayout(monitor, workspace, value) { + RunWait("komorebic.exe workspace-layout " monitor " " workspace " " value, , "Hide") +} + +NamedWorkspaceLayout(workspace, value) { + RunWait("komorebic.exe named-workspace-layout " workspace " " value, , "Hide") +} + +WorkspaceCustomLayout(monitor, workspace, path) { + RunWait("komorebic.exe workspace-custom-layout " monitor " " workspace " " path, , "Hide") +} + +NamedWorkspaceCustomLayout(workspace, path) { + RunWait("komorebic.exe named-workspace-custom-layout " workspace " " path, , "Hide") +} + +WorkspaceLayoutRule(monitor, workspace, at_container_count, layout) { + RunWait("komorebic.exe workspace-layout-rule " monitor " " workspace " " at_container_count " " layout, , "Hide") +} + +NamedWorkspaceLayoutRule(workspace, at_container_count, layout) { + RunWait("komorebic.exe named-workspace-layout-rule " workspace " " at_container_count " " layout, , "Hide") +} + +WorkspaceCustomLayoutRule(monitor, workspace, at_container_count, path) { + RunWait("komorebic.exe workspace-custom-layout-rule " monitor " " workspace " " at_container_count " " path, , "Hide") +} + +NamedWorkspaceCustomLayoutRule(workspace, at_container_count, path) { + RunWait("komorebic.exe named-workspace-custom-layout-rule " workspace " " at_container_count " " path, , "Hide") +} + +ClearWorkspaceLayoutRules(monitor, workspace) { + RunWait("komorebic.exe clear-workspace-layout-rules " monitor " " workspace, , "Hide") +} + +ClearNamedWorkspaceLayoutRules(workspace) { + RunWait("komorebic.exe clear-named-workspace-layout-rules " workspace, , "Hide") +} + +WorkspaceTiling(monitor, workspace, value) { + RunWait("komorebic.exe workspace-tiling " monitor " " workspace " " value, , "Hide") +} + +NamedWorkspaceTiling(workspace, value) { + RunWait("komorebic.exe named-workspace-tiling " workspace " " value, , "Hide") +} + +WorkspaceName(monitor, workspace, value) { + RunWait("komorebic.exe workspace-name " monitor " " workspace " " value, , "Hide") +} + +ToggleWindowContainerBehaviour() { + RunWait("komorebic.exe toggle-window-container-behaviour", , "Hide") +} + +TogglePause() { + RunWait("komorebic.exe toggle-pause", , "Hide") +} + +ToggleTiling() { + RunWait("komorebic.exe toggle-tiling", , "Hide") +} + +ToggleFloat() { + RunWait("komorebic.exe toggle-float", , "Hide") +} + +ToggleMonocle() { + RunWait("komorebic.exe toggle-monocle", , "Hide") +} + +ToggleMaximize() { + RunWait("komorebic.exe toggle-maximize", , "Hide") +} + +RestoreWindows() { + RunWait("komorebic.exe restore-windows", , "Hide") +} + +Manage() { + RunWait("komorebic.exe manage", , "Hide") +} + +Unmanage() { + RunWait("komorebic.exe unmanage", , "Hide") +} + +ReloadConfiguration() { + RunWait("komorebic.exe reload-configuration", , "Hide") +} + +WatchConfiguration(boolean_state) { + RunWait("komorebic.exe watch-configuration " boolean_state, , "Hide") +} + +CompleteConfiguration() { + RunWait("komorebic.exe complete-configuration", , "Hide") +} + +AltFocusHack(boolean_state) { + RunWait("komorebic.exe alt-focus-hack " boolean_state, , "Hide") +} + +WindowHidingBehaviour(hiding_behaviour) { + RunWait("komorebic.exe window-hiding-behaviour " hiding_behaviour, , "Hide") +} + +CrossMonitorMoveBehaviour(move_behaviour) { + RunWait("komorebic.exe cross-monitor-move-behaviour " move_behaviour, , "Hide") +} + +ToggleCrossMonitorMoveBehaviour() { + RunWait("komorebic.exe toggle-cross-monitor-move-behaviour", , "Hide") +} + +UnmanagedWindowOperationBehaviour(operation_behaviour) { + RunWait("komorebic.exe unmanaged-window-operation-behaviour " operation_behaviour, , "Hide") +} + +FloatRule(identifier, id) { + RunWait("komorebic.exe float-rule " identifier " `"" id "`"", , "Hide") +} + +ManageRule(identifier, id) { + RunWait("komorebic.exe manage-rule " identifier " `"" id "`"", , "Hide") +} + +WorkspaceRule(identifier, id, monitor, workspace) { + RunWait("komorebic.exe workspace-rule " identifier " `"" id "`" " monitor " " workspace, , "Hide") +} + +NamedWorkspaceRule(identifier, id, workspace) { + RunWait("komorebic.exe named-workspace-rule " identifier " `"" id "`" " workspace, , "Hide") +} + +IdentifyObjectNameChangeApplication(identifier, id) { + RunWait("komorebic.exe identify-object-name-change-application " identifier " `"" id "`"", , "Hide") +} + +IdentifyTrayApplication(identifier, id) { + RunWait("komorebic.exe identify-tray-application " identifier " `"" id "`"", , "Hide") +} + +IdentifyLayeredApplication(identifier, id) { + RunWait("komorebic.exe identify-layered-application " identifier " `"" id "`"", , "Hide") +} + +IdentifyBorderOverflowApplication(identifier, id) { + RunWait("komorebic.exe identify-border-overflow-application " identifier " `"" id "`"", , "Hide") +} + +ActiveWindowBorder(boolean_state) { + RunWait("komorebic.exe active-window-border " boolean_state, , "Hide") +} + +ActiveWindowBorderColour(r, g, b, window_kind) { + RunWait("komorebic.exe active-window-border-colour " r " " g " " b " --window-kind " window_kind, , "Hide") +} + +ActiveWindowBorderWidth(width) { + RunWait("komorebic.exe active-window-border-width " width, , "Hide") +} + +ActiveWindowBorderOffset(offset) { + RunWait("komorebic.exe active-window-border-offset " offset, , "Hide") +} + +FocusFollowsMouse(boolean_state, implementation) { + RunWait("komorebic.exe focus-follows-mouse " boolean_state " --implementation " implementation, , "Hide") +} + +ToggleFocusFollowsMouse(implementation) { + RunWait("komorebic.exe toggle-focus-follows-mouse --implementation " implementation, , "Hide") +} + +MouseFollowsFocus(boolean_state) { + RunWait("komorebic.exe mouse-follows-focus " boolean_state, , "Hide") +} + +ToggleMouseFollowsFocus() { + RunWait("komorebic.exe toggle-mouse-follows-focus", , "Hide") +} + +AhkLibrary() { + RunWait("komorebic.exe ahk-library", , "Hide") +} + +AhkAppSpecificConfiguration(path, override_path) { + RunWait("komorebic.exe ahk-app-specific-configuration " path " " override_path, , "Hide") +} + +PwshAppSpecificConfiguration(path, override_path) { + RunWait("komorebic.exe pwsh-app-specific-configuration " path " " override_path, , "Hide") +} + +FormatAppSpecificConfiguration(path) { + RunWait("komorebic.exe format-app-specific-configuration " path, , "Hide") +} + +NotificationSchema() { + RunWait("komorebic.exe notification-schema", , "Hide") +} + +SocketSchema() { + RunWait("komorebic.exe socket-schema", , "Hide") +} diff --git a/neofetch/config.conf b/neofetch/config.conf new file mode 100644 index 0000000..c6f042f --- /dev/null +++ b/neofetch/config.conf @@ -0,0 +1,864 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + #info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + #info "Resolution" resolution + #info "DE" de + #info "WM" wm + #info "WM Theme" wm_theme + #info "Theme" theme + #info "Icons" icons + info "Terminal" term + #info "Terminal Font" term_font + info "CPU" cpu + info "CPU Usage" cpu_usage + #info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "Disk" disk + # info "Battery" battery + #info "Font" font + #info "Song" song + #[[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="on" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="off" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="on" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="off" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="on" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="C" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="spotify" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="chafa" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="/mnt/c/Users/Joey/wallpapers/purple_eyes.jpg" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="16%" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 309f52a..767d680 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -1,28 +1,28 @@ { - "LuaSnip": { "branch": "master", "commit": "b152822e1a4bafb6bdf11a16cc26525cbd95ee00" }, - "catppuccin": { "branch": "main", "commit": "6af91673ceccbd6e073b66c439e7fce239f72d24" }, + "LuaSnip": { "branch": "master", "commit": "de1a287c9cb525ae52bc846e8f6207e5ef1da5ac" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "friendly-snippets": { "branch": "main", "commit": "fa36367422da5a38560892e3db6d090a635d9d41" }, - "lazy.nvim": { "branch": "main", "commit": "d3974346b6cef2116c8e7b08423256a834cb7cbc" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "273fdde8ac5e51f3a223ba70980e52bbc09d9f6f" }, + "friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" }, + "lazy.nvim": { "branch": "main", "commit": "0de782a6b0ffba599dbd332a4019d852564bf28c" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" }, "mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" }, - "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, - "none-ls.nvim": { "branch": "main", "commit": "f5632db2491fbe02b54f1a321a98548a8ba2bd15" }, - "nvim-autopairs": { "branch": "master", "commit": "4f41e5940bc0443fdbe5f995e2a596847215cd2a" }, - "nvim-cmp": { "branch": "main", "commit": "8f3c541407e691af6163e2447f3af1bd6e17f9a3" }, - "nvim-lspconfig": { "branch": "master", "commit": "aa5f4f4ee10b2688fb37fa46215672441d5cd5d9" }, - "nvim-treesitter": { "branch": "master", "commit": "4e21361e15b1d4147830c5fe571556eb1b14e6f9" }, - "nvim-treesitter-context": { "branch": "master", "commit": "2650e6431f7daba5d9c2c64134fa5eb2312eb3d7" }, - "nvim-web-devicons": { "branch": "master", "commit": "475fbcfcb6ee7c35aa33a6b6207ebd4032791d87" }, - "oil.nvim": { "branch": "master", "commit": "bcfc0a2e01def5019aa14fac2fc6de20dedb6d3d" }, - "plenary.nvim": { "branch": "master", "commit": "08e301982b9a057110ede7a735dd1b5285eb341f" }, + "mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" }, + "none-ls.nvim": { "branch": "main", "commit": "37671797d6e5f9bd0ee3ab965ab2e6de251e1930" }, + "nvim-autopairs": { "branch": "master", "commit": "b0b79e42a28f09719a7da9534c3731fa37319d9b" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, + "nvim-lspconfig": { "branch": "master", "commit": "6d2ae9fdc3111a6e8fd5db2467aca11737195a30" }, + "nvim-treesitter": { "branch": "master", "commit": "ccfa76d4cb53224cb0ecefb12f79ecdbbf1fd62d" }, + "nvim-treesitter-context": { "branch": "master", "commit": "55e29081e73d2e4b2d62fb4dc3eebe21bf66a1e2" }, + "nvim-web-devicons": { "branch": "master", "commit": "e37bb1feee9e7320c76050a55443fa843b4b6f83" }, + "oil.nvim": { "branch": "master", "commit": "06a19f77f1a1da37b675635e6f9c5b5d50bcaacd" }, + "plenary.nvim": { "branch": "master", "commit": "b5c8de02a44ffeabff678090edd6a132ff8ab77d" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, + "tokyonight": { "branch": "main", "commit": "7fc18e82575f5b482b758b6dddfe97b606819a20" }, "undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" }, - "vim-fugitive": { "branch": "master", "commit": "ce882460cf3db12e99f8bf579cbf99e331f6dd4f" } + "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" } } \ No newline at end of file diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua index 44ae49f..5c6e8a5 100644 --- a/nvim/lua/options.lua +++ b/nvim/lua/options.lua @@ -71,6 +71,6 @@ vim.opt.virtualedit = "block" vim.opt.title = true vim.opt.titlelen = 0 vim.opt.titlestring = 'nvim: %{expand("%:t")}' -vim.opt.titleold = 'zsh: ' .. vim.fn.fnamemodify(vim.fn.getcwd(), ":t") +vim.opt.titleold = 'zsh' vim.opt.guicursor = "n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175" diff --git a/nvim/lua/plugin_config/colorscheme.lua b/nvim/lua/plugin_config/colorscheme.lua index aff94f7..c0019ff 100644 --- a/nvim/lua/plugin_config/colorscheme.lua +++ b/nvim/lua/plugin_config/colorscheme.lua @@ -1,22 +1,22 @@ return { - { - "catppuccin/nvim", + { + "folke/tokyonight.nvim", - name = "catppuccin", - priority = 1000, - config = function() - require("catppuccin").setup({ - flavour = "mocha", - transparent_background = true, - custom_highlights = function(colors) - return { - Comment = { fg = "#55c3b7" }, - LineNr = { fg = "#D69898" }, - } - end, - }) + name = "tokyonight", + lazy = false, + priority = 1000, + config = function() + require("tokyonight").setup({ + style = "night", + light_style = "day", + transparent = true, + terminal_colors = true, + hide_inactive_statusline = false, + dim_inactive = true, + lualine_bold = true, + }) - vim.cmd.colorscheme("catppuccin") - end, - }, + vim.cmd.colorscheme("tokyonight") + end, + }, } diff --git a/scripts/komorebi.ps1 b/scripts/komorebi.ps1 new file mode 100644 index 0000000..5a92072 --- /dev/null +++ b/scripts/komorebi.ps1 @@ -0,0 +1 @@ +komorebic start --ahk \ No newline at end of file diff --git a/scripts/powershell_profile.txt b/scripts/powershell_profile.txt new file mode 100644 index 0000000..aa35408 --- /dev/null +++ b/scripts/powershell_profile.txt @@ -0,0 +1,2 @@ +$Env:KOMOREBI_CONFIG_HOME = 'C:\Users\Joey\.config\komorebi' +$Env:KOMOREBI_AHK_EXE = 'C:\Program Files\AutoHotkey\UX\AutoHotKeyUX.exe' diff --git a/scripts/startup.bat b/scripts/startup.bat new file mode 100644 index 0000000..bf82a97 --- /dev/null +++ b/scripts/startup.bat @@ -0,0 +1,4 @@ +@echo off +powershell.exe -WindowStyle Hidden -File "C:\Users\Joey\.config\scripts\komorebi.ps1" +powershell.exe -WindowStyle Hidden -File "C:\Users\Joey\.config\scripts\taskbar.ps1" +python C:\Users\Joey\.config\yasb\src\main.py diff --git a/scripts/taskbar.ps1 b/scripts/taskbar.ps1 new file mode 100644 index 0000000..bb1c02f --- /dev/null +++ b/scripts/taskbar.ps1 @@ -0,0 +1 @@ +nircmd.exe win trans class Shell_TrayWnd 256 diff --git a/wallpapers/ai.jpg b/wallpapers/ai.jpg deleted file mode 100644 index 531ac38..0000000 Binary files a/wallpapers/ai.jpg and /dev/null differ diff --git a/wallpapers/ken.jpg b/wallpapers/ken.jpg deleted file mode 100644 index 52c9243..0000000 Binary files a/wallpapers/ken.jpg and /dev/null differ diff --git a/wallpapers/power1.jpg b/wallpapers/power1.jpg deleted file mode 100644 index c4a9fba..0000000 Binary files a/wallpapers/power1.jpg and /dev/null differ diff --git a/wallpapers/scenary.jpg b/wallpapers/scenary.jpg deleted file mode 100644 index 8aa58c8..0000000 Binary files a/wallpapers/scenary.jpg and /dev/null differ diff --git a/wallpapers/zoro1.jpg b/wallpapers/zoro1.jpg deleted file mode 100644 index d203b4c..0000000 Binary files a/wallpapers/zoro1.jpg and /dev/null differ diff --git a/wezterm/appearance.lua b/wezterm/appearance.lua index 768a7ef..a14b6ef 100644 --- a/wezterm/appearance.lua +++ b/wezterm/appearance.lua @@ -2,24 +2,21 @@ local wezterm = require("wezterm") local module = {} function module.apply_to_config(config) - local bg_color = "#11111B" - --Color Scheme - local MEOW = wezterm.color.get_builtin_schemes()["Catppuccin Mocha"] - MEOW.background = bg_color - config.color_schemes = { - ["Meow"] = MEOW, - } - config.color_scheme = "Meow" + -- --Color Scheme + -- config.color_scheme = "Catppuccin Mocha" + config.color_scheme = "tokyonight_night" config.window_decorations = "RESIZE" config.window_close_confirmation = "AlwaysPrompt" config.tab_max_width = 50 config.scrollback_lines = 3000 - config.front_end ='WebGpu' + config.front_end = "OpenGL" + config.window_background_opacity = 0.5 -- Font - config.font = wezterm.font("MesloLGS NF") + config.font = wezterm.font("Hack Nerd Font Mono", {weight = 'DemiBold'}) + config.font_size = 13 config.use_fancy_tab_bar = false config.default_cursor_style = "BlinkingBlock" @@ -30,32 +27,33 @@ function module.apply_to_config(config) config.force_reverse_video_cursor = true config.colors = { tab_bar = { - background = "rgba(0,0,0,0)", + background = "rgba(26, 27, 38, 0.5)", active_tab = { - bg_color = "#1e1e2e", - fg_color = "#b4befe", + bg_color = "#16161e", + fg_color = "#7aa2f7", intensity = "Bold", underline = "None", italic = true, strikethrough = false, }, inactive_tab = { - bg_color = "#1e1e2e", - fg_color = "#cba6f7", + bg_color = "#16161e", + fg_color = "#545c7e", italic = true, }, inactive_tab_hover = { - bg_color = "#313244", - fg_color = "#b4befe", + bg_color = "#292e42", + fg_color = "#7aa2f7", italic = true, }, new_tab = { - bg_color = "#1e1e2e", - fg_color = "#cba6f7", + bg_color = "#16161e", + fg_color = "#7aa2f7", + intensity = "Bold", }, new_tab_hover = { - bg_color = "#313244", - fg_color = "#b4befe", + bg_color = "#292e42", + fg_color = "#7aa2f7", }, }, } @@ -65,28 +63,28 @@ function module.apply_to_config(config) local time = wezterm.strftime("%a %b %-d %I:%M %p") window:set_right_status(wezterm.format({ - { Background = { Color = "rgba(0,0,0,0)" } }, - { Foreground = { Color = "#1e1e2e" } }, + { Background = { Color = "rgba(26, 27, 38, 0.5)" } }, + { Foreground = { Color = "#15161e" } }, { Text = "" }, - { Background = { Color = "#1e1e2e" } }, - { Foreground = { Color = "#cba6f7" } }, + { Background = { Color = "#15161e" } }, + { Foreground = { Color = "#7aa2f7" } }, { Text = " " .. wezterm.nerdfonts.custom_folder_open }, { Text = " ~" }, { Text = cwd .. " " }, - { Foreground = { Color = "#313244" } }, + { Foreground = { Color = "#414868" } }, { Text = "" }, - { Background = { Color = "#313244" } }, - { Foreground = { Color = "#f2cdcd" } }, + { Background = { Color = "#414868" } }, + { Foreground = { Color = "#bb9af7" } }, { Text = " " .. wezterm.nerdfonts.fa_calendar .. " " .. time .. " " }, })) end) wezterm.on("toggle-background", function(window, pane) local overrides = window:get_config_overrides() or {} - if not overrides.background then - overrides.background = { nil } + if not overrides.window_background_opacity then + overrides.window_background_opacity = 1.0 else - overrides.background = nil + overrides.window_background_opacity = nil end window:set_config_overrides(overrides) end) diff --git a/wezterm/wallpaper.lua b/wezterm/wallpaper.lua index 6146ed3..6fcd4be 100644 --- a/wezterm/wallpaper.lua +++ b/wezterm/wallpaper.lua @@ -1,43 +1,43 @@ -local wezterm = require("wezterm") -local module = {} - -function module.apply_to_config(config) - local function get_random_entry(tbl) - local keys = {} - for key, _ in ipairs(tbl) do - table.insert(keys, key) - end - local randomKey = keys[math.random(1, #keys)] - return tbl[randomKey] - end - - local function get_wallpaper(dir) - local wallpapers = {} - local dimmer = { brightness = 0.05 } - for _, v in ipairs(wezterm.glob(dir)) do - table.insert(wallpapers, v) - end - local wallpaper = get_random_entry(wallpapers) - return { - - source = { - File = { - path = wallpaper, - }, - }, - attachment = "Fixed", - repeat_x = "NoRepeat", - repeat_y = "NoRepeat", - hsb = dimmer, - vertical_align = "Middle", - horizontal_align = "Center", - } - end - - local wallpaper_dir = wezterm.home_dir .. "/.config/wallpapers/*" - config.background = { - get_wallpaper(wallpaper_dir), - } -end - -return module +--local wezterm = require("wezterm") +--local module = {} +-- +--function module.apply_to_config(config) +-- local function get_random_entry(tbl) +-- local keys = {} +-- for key, _ in ipairs(tbl) do +-- table.insert(keys, key) +-- end +-- local randomKey = keys[math.random(1, #keys)] +-- return tbl[randomKey] +-- end +-- +-- local function get_wallpaper(dir) +-- local wallpapers = {} +-- local dimmer = { brightness = 0.05 } +-- for _, v in ipairs(wezterm.glob(dir)) do +-- table.insert(wallpapers, v) +-- end +-- local wallpaper = get_random_entry(wallpapers) +-- return { +-- +-- source = { +-- File = { +-- path = wallpaper, +-- }, +-- }, +-- attachment = "Fixed", +-- repeat_x = "NoRepeat", +-- repeat_y = "NoRepeat", +-- hsb = dimmer, +-- vertical_align = "Middle", +-- horizontal_align = "Center", +-- } +-- end +-- +-- local wallpaper_dir = wezterm.home_dir .. "/.config/wallpapers/*" +-- config.background = { +-- get_wallpaper(wallpaper_dir), +-- } +--end +-- +--return module diff --git a/wezterm/wezterm.lua b/wezterm/wezterm.lua index c5f453c..9989998 100644 --- a/wezterm/wezterm.lua +++ b/wezterm/wezterm.lua @@ -6,9 +6,8 @@ local mux = wezterm.mux local config = {} appearance.apply_to_config(config) -wallpaper.apply_to_config(config) +--wallpaper.apply_to_config(config) keys.apply_to_config(config) -config.disable_default_key_bindings = true wezterm.on("gui-startup", function(cmd) local tab, pane, window = mux.spawn_window(cmd or {}) window:gui_window():maximize() diff --git a/yasb_files/config.yaml b/yasb_files/config.yaml new file mode 100644 index 0000000..ba739ce --- /dev/null +++ b/yasb_files/config.yaml @@ -0,0 +1,507 @@ +# Configuration for Yasb (Yet Another Status Bar) +# Author: @denBot +# Last updated: 21/08/2023 + +# General Bar Configuration Notes: +# - All bars must be defined in within the `bars` section +# - Each bar configuration should be defined using a name, e.g. 'yasb-bar', 'my-awesome-bar', etc. +# - Default bar options can be found at: https://github.com/denBot/yasb/blob/main/src/core/validation/bar.py#L1-L10 + +# General Widget Configuration Notes: +# - ALL configured widgets must be defined in within the `widgets` section of this config file +# - Each widget configuration should be allocated a unique name, e.g. 'my-widget', 'my-custom-clock', etc. +# > This makes it easier for you to keep track of your configured widgets and add them to your bar(s) +# - Each widget should specify a widget `type` - this points to the python class of the widget you are configuring +# > For example: type: "yasb.clock.ClockWidget" +# - Each widget supports mouse event callback functionality (left, middle, right click). +# > The callbacks "do_nothing" and "exec" can be used across any widget which allows them. +# > "exec" allows you to run programs from the command-line, where each argument is separated by a space +# > "do_nothing" allows you to override default mouse events to do nothing +# > "toggle_label" *some widgets* allow you to toggle between two label formats +# - Example callbacks: +# on_left: "exec wt.exe" -- run the windows terminal when the widget is left-clicked +# on_middle: "do_nothing" -- overrides default widget middle-click behaviour to do nothing +# on_right: "exec cmd /c Taskmg" -- open the task manager when the widget is right-clicked + +# bars: +# ^ a list of your bar configurations +# yasb-bar: +# ^ the name of your bar +# enabled: true +# ^ Specify if the bar configuration should be loaded by yasb +# screens: ['*'] +# ^ A list of screen names which the bar should be displayed on +# Accepts: a list of screen names +# Example: [ "\\.\DISPLAY1", "eDP-1", "HDMI-1" ] +# Wildcard '*' is used to show the bar on all screens +# class_name: 'yab-bar' +# ^ The CSS class name used to style the bar and all of its children (widgets). +# alignment: +# ^ alignment options are configured here +# position: 'top' or 'bottom' +# ^ The vertical positioning of the bar on the screen +# center: false +# ^ Specify if the bar should be horizontally centered on the screen. +# window_flags: +# ^ special window flags can be enabled here +# always_on_top: false +# ^ Forces all windows of lower window levels underneath the bar (even in full-screen). +# windows_app_bar: false +# ^ Exclusively reserve the desktop workspace area behind the bar, just like the Windows Taskbar. +# dimensions: +# ^ the dimensions of the bar can be set here +# width: "100%" +# ^ The width of the bar (in percentage or pixels). Accepts: string (percentage) or positive integer (pixels) # height: 30 +# ^ The height of the bar (in pixels). Accepts: positive integer (pixels e.g. 20) +# offset: +# x: 0 +# ^ The x-axis positioning offset of the bar. Accepts: integer +# y: 0 +# ^ The y-axis positioning offset of the bar. Accepts: integer +# widgets: +# left: [] +# ^ A list of widget names to be placed on the left side of the bar. Accepts: list of strings (widget names / types) +# center: [] +# ^ A list of widget names to be placed at the center of the bar. Accepts: list of strings (widget names / types) +# right: [] +# ^ A list of widget names to be placed on the right side of the bar. Accepts: list of strings (widget names / types) + +watch_stylesheet: true +watch_config: true + +bars: + sexy_bar: + enabled: true + screens: ["*"] + class_name: "yasb-bar" + alignment: + position: "top" + center: false + blur_effect: + enabled: false + acrylic: false + dark: false + window_flags: + always_on_top: false + windows_app_bar: true + dimensions: + width: "100%" + height: 37 + padding: + top: 0 + left: 0 + bottom: 0 + right: 0 + widgets: + left: ["komorebi_workspaces", "komorebi_active_layout"] + center: ["active_window"] + right: ["explorer_button", "wifi", "cpu", "memory", "weather", "clock"] + +# widgets: +# my-clock-widget: +# type: "yasb.clock.ClockWidget" +# options: +# label: "{%H:%M:%S}" +# ^ The label format of the widget. Accepts: string with datetime format enclosed between curly brackets +# ^ Label format options: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes +# label_alt: "{%d-%m-%y %H:%M:%S}" +# ^ The alternate label format of the widget. Accepts: string with datetime format enclosed between curly brackets +# update_interval: 1000 +# ^ The interval at which the widget will update itself. Accepts: positive integer (number of milliseconds) +# timezones: [] +# ^ A list of timezones to switch between. Accepts: list of strings (e.g. Europe/London, America/New_York) +# ^ Options: https://timezonedb.com/time-zones ('Time Zone' strings) +# callbacks: +# on_left: "toggle_label" - toggles between the clock and alternate clock labels +# on_middle: "do_nothing" +# on_right: "next_timezone" - cycles the next timezone to be shown by the clock + +# memory-widget: +# type: "yasb.memory.MemoryWidget" +# options: +# label: "\uf538 {virtual_mem_free}/{virtual_mem_total}" +# ^ The format label for the widget. Accepts: string containing any of the below format options: +# {virtual_mem_free} : The amount of free virtual memory +# {virtual_mem_percent} : The percentage of free virtual memory +# {virtual_mem_total} : The amount of total virtual memory +# {virtual_mem_avail} : The amount of total available virtual memory +# {swap_mem_free} : The amount of free swap memory +# {swap_mem_percent} : The percentage of free swal memory +# {swap_mem_total} : The amount of total swap memory +# label_alt: "\uf538 VIRT: {virtual_mem_percent}% SWAP: {swap_mem_percent}%" +# ^ The alternate format label for the widget. Accepts: string containing any of the above format options +# update_interval: 1000 +# ^ The interval at which the widget will update itself. Accepts: positive integer (number of milliseconds) +# memory_thresholds: All options accept a positive integer between 0 and 100 +# low: 25 +# ^ The percentage at which the .status-low CSS class is applied. Accepts integer from 0 to 100 +# medium: 50 +# ^ The percentage at which the .status-medium CSS class is applied. Accepts integer from 0 to 100 +# high: 90 +# ^ The percentage at which the .status-high CSS class is applied. Accepts integer from 0 to 100 +# callbacks: +# on_left: "toggle_label" - toggles between the clock and alternate clock labels +# on_middle: "do_nothing" +# on_right:" "do_nothing" + +# battery-widget: +# type: "yasb.battery.BatteryWidget" +# options: +# label: "{icon}" +# ^ The format label for the widget. Accepts: string containing any of the below format options +# {percent} : The current battery percentage +# {time_remaining} : The estimated battery duration remaining +# {is_charging} : The boolean charging status +# {icon} : The battery status icon +# label_alt: "{percent}% | remaining: {time_remaining}" +# ^ The alternate format label for the widget. Accepts: string +# update_interval: 1000 +# ^ The interval at which the widget will update itself. Accepts: positive integer +# charging_options: +# icon_format: "{charging_icon} {icon}" +# ^ The charging icon position relative to the battery icon. Accepts string containing {charging_icon} and {icon} +# blink_charging_icon: True +# ^ Specify if the charging icon should blink at each update interval period +# status_thresholds: +# critical: 10 +# ^ The percentage at which the .status-critical CSS class is applied Accepts: integer from 0 to 100 +# low: 25 +# ^ The max percentage at which the .status-low CSS class is applied Accepts: integer from 0 to 100 +# medium: 75 +# ^ The max percentage at which the .status-medium CSS class is applied Accepts: integer from 0 to 100 +# high: 95 +# ^ The max percentage at which the .status-high CSS class is applied Accepts: integer from 0 to 100 +# full: 100 +# ^ The max percentage at which the .status-full CSS class is applied. Accepts: integer from 0 to 100 +# status_icons: +# icon_charging: "\uf0e7" +# ^ The icon shown when the battery is charging. Accepts: string +# icon_critical: "\uf244" +# ^ The icon shown when critical battery status threshold is reached +# icon_low: "\uf243" +# ^ The icon shown when low battery status threshold is reached +# icon_medium: "\uf242" +# ^ The icon shown when medium status threshold is reached +# icon_high: "\uf241" +# ^ The icon shown when high status threshold is reached +# icon_full: "\uf240" +# ^ The icon shown when full status threshold is reached +# callbacks: +# on_left: "toggle_label" - toggles between the clock and alternate clock labels +# on_middle: "do_nothing" +# on_right: "do_nothing" + +# cpu-widget: +# type: "yasb.cpu.CpuWidget" +# options: +# label: "{info[histograms][cpu_percent]}" +# ^ The format label for the widget. Accepts: string containing any of the below format options +# {info[cores][physical]} - The total number of physical cores available to the system +# {info[cores][total]} - The total number of cores available to the system +# {info[freq][min]} - The minimum possible frequency of the CPU +# {info[freq][max]} - The maximum possible frequency of the CPU +# {info[freq][current]} - The current frequency of the CPU +# {info[stats][context_switches]} - The number of context switches performed since boot +# {info[stats][interrupts] - The number of interrupts performed since boot +# {info[stats][soft_interrupts] - The number of soft interrupts performed since boot +# {info[stats][sys_calls] - The number of system calls performed since boot +# {info[histograms][cpu_freq] - A unicode histogram representation of the lat N CPU frequency readings +# {info[histograms][cpu_percent] - A unicode histogram representation of the last N CPU percent readings +# {info[histograms][cores] - A unicode histogram representation of the percentage of all system CPU cores +# label_alt: "{percent}% | remaining: {time_remaining}" +# ^ The alternate format label for the widget. Accepts: string +# update_interval: 1000 +# ^ The interval at which the CPU widget will update. Accepts: positive integer +# histogram_icons: +# ^ The unicode characters used to represent CPU the frequency/percentage histogram data. Accepts: list of 9 unicode strings. +# ^ Note: the below unicode characters require the following graph bars font: https://github.com/and3rson/graph-bars-font +# - ' ' # 0% +# - '\u2581' # 10% +# - '\u2582' # 20% +# - '\u2583' # 30% +# - '\u2584' # 40% +# - '\u2585' # 50% +# - '\u2586' # 60% +# - '\u2587' # 70% +# - '\u2588' # 80%+ +# histogram_num_columns: 10 +# ^ The number of columns displayed for each generated histogram. Accepts: positive integer between 0 and 128. +# callbacks: +# on_left: "toggle_label" - toggles between the cpu and alternate cpu labels +# on_middle: "do_nothing" +# on_right: "do_nothing" + +# active-window-widget: +# type: "yasb.active_window.ActiveWindowWidget" +# options: +# label: "{win[title]}" +# ^ The format label for the widget. Accepts: string containing any of the below {win} format options +# win[hwnd] - the hwnd of the active window +# win[event] - the event which focused the active window +# win[title] - the active window title +# win[class_name] - the active window class_name +# win[monitor_hwnd] - the hwnd of the monitor displaying the application +# win[monitor_info][rect][x,y,width,height] - the dimensions of the screen +# win[monitor_info][rect_work_area][x,y,width,height] - the dimensions of the screen work area +# win[monitor_info][flags] - the flags assocaited with the screen +# win[monitor_info][device] - the device name of the screen +# win[process][name] - the name of the active window process +# win[process][pid] - the process id of the parent process +# win[process][ppid] - the parent process id +# win[process][cpu_num] - the number of CPUs being used +# win[process][cpu_percent] - the window cpu usage in percent +# win[process][mem_percent] - the window memory usage in percent +# win[process][num_threads] - the windows number of threads in use +# win[process][username] - the username of the user executing the window process +# win[process][status] - the status of the process +# label_alt: "[class_name='{win[class_name]}' exe='{win[process][name]}' hwnd={win[hwnd]}]" +# ^ The format label for the widget. Accepts: string containing any of the above {win} format options +# label_no_window: "" +# ^ The label shown when no window is active. Accepts: string +# max_length: None +# ^ The max length of the active window label. Accepts: positive integer or None +# max_length_ellipsis: "..." +# ^ The ellipsis string used when truncating the window label if it exceeds the max length. Accepts: string +# monitor_exclusive: true +# ^ Specifies if the active window title should be shown on all bars, or exclusively for the bars on the active window screen +# ignore_window: +# class: [] +# ^ A list of class_names the widget should ignore. Accepts: list of strings +# process: [] +# ^ A list of process names the widget should ignore. Accepts: list of strings +# titles: +# ^ A list of titles the widget should ignore. Accepts: list of strings +# callbacks: +# on_left: "toggle_label" - toggles between the clock and alternate clock labels +# on_middle: "do_nothing" +# on_right: "do_nothing" + +# komorebi_workspaces: +# type: "komorebi.workspaces.WorkspacesWidget" +# options: +# label_offline: "Komorebi Offline" +# ^ The message shown when YASB cannot connect with the komorebi window manager. Accepts: string +# label_workspace_btn: "{index}" +# ^ The label format for all workspace buttons. Accepts: string. +# Format options: {name}, {index}, {monitor_index} +# label_default_name: "{index}" +# ^ The default name value used if no workspace name is set via Komorebi. Accepts: string +# Format options: {index}, {monitor_index} +# label_zero_index: false +# ^ Specifies if the workspace and monitor index values should be zero-indexed. Accepts: boolean +# hide_empty_workspaces: False +# ^ Specifies if empty workspaces should be shown in the list of komorebi workspaces. Accepts: boolean + +# komorebi_active_layout: +# type: "komorebi.active_layout.ActiveLayoutWidget" +# options: +# hide_if_offline: false +# ^ Specifies if the active layout label should be shown when komorebi is offline +# label: "{icon}" +# ^ The label shown when an active layout change is detected. Accepts: string containing format options {icon} and {layout_name} +# layout_icons: +# bsp: "[\\]" +# columns: "[||]" +# rows: "[---]" +# vertical_stack: "[]=" +# horizontal_stack: "H/=" +# ultrawide_vertical_stack: "[|]=" +# monocle: "[M]" +# maximised: "[X]" +# floating: "><>" +# paused: "|P|" +# callbacks +# ^ callback options include: +# "next_layout" - Cycles the next layout for the active workspace +# "prev_layout" - Cycles the previous layout for the active workspace +# "flip_layout" - Flips layout of active workspace. Works for BSP tiling mode only +# "toggle_tiling" - Toggles tiling of all windows for the active workspace +# "toggle_float" - Toggles floating of active window for current workspace +# "toggle_monocle" - Toggles monocle mode for active window for current workspace +# "toggle_maximise" - Toggles maximising active window for current workspace +# "toggle_pause" - Toggles pausing komorebi on/off for all workspaces +# on_left: "next_layout" +# on_middle: "toggle_monocle" +# on_right: "prev_layfree +# custom-weather-widget-example: +# type: "yasb.clock.CustomWidget" +# options: +# label: "Temperature: {data[current][temp]}°" +# ^ The format label for the custom widget. Accepts: string containing {data} format options. Required field. +# If the command executed returns a JSON structure, +# the JSON object can be used within the format label using the python dictionary string formatting syntax. +# - data = "curl.exe wttr.in/..." +# - data = {"current_condition": [{"temp_C":16, "humidity":71}], ...} +# label_alt: "Temperature: {data[current_condition][0][temp_C]}%" +# ^ The alternate format label for the clock. Accepts: string containing {data} format options. Required field. +# label_max_length: None +# ^ The maximum length of the label. Accepts: positive integer +# class_name: 'my-weather-widget' +# ^ The CSS class name of the custom widget. Accepts: string. Required field. +# icon: +# position: "left" +# ^ The position of the icon relative to the widget label. Accepts: string 'left' or 'right' +# label: None +# ^ The contents of the icon. Accepts: string e.g. a unicode character / emoji. Required field. +# exec_options: +# run_cmd: "curl.exe api.openweathermap.org/data/2.5/weather?q=Glasgow&units=metric&appid={YOUR_API_KEY_HERE}" +# ^ The command to be executed by the custom widget's timer event. Accepts: string of command-line arguments. +# run_once: False +# ^ Specifies that the custom widget's timer event only run once on start-up. Accepts: boolean +# run_interval: 30000 +# ^ The duration in which the custom widget's timer event will fire. Accepts: positive integer (milliseconds) +# run_format: "json" +# ^ The format of the data written to stdout by the command-line program. Accepts: strings 'string' or 'json' +# callbacks: +# on_left: "toggle_label" - toggles between the clock and alternate clock labels +# on_middle: "do_nothing" +# on_right: "do_nothing" + +widgets: + active_window: + type: "yasb.active_window.ActiveWindowWidget" + options: + label: "{win[title]}" + label_alt: "[class_name='{win[class_name]}' exe='{win[process][name]}' hwnd={win[hwnd]}]" + label_no_window: "" + max_length: 48 + max_length_ellipsis: "..." + monitor_exclusive: false + + battery: + type: "yasb.battery.BatteryWidget" + options: + time_remaining_natural: true + + clock: + type: "yasb.clock.ClockWidget" + options: + label: "{%I:%M:%S %p %Z}" + label_alt: "{%m-%d-%y / %A / %I:%M:%S %p %Z}" + timezones: ['US/Eastern'] + callbacks: + on_middle: "exec explorer.exe shell:Appsfolder\\Microsoft.WindowsAlarms_8wekyb3d8bbwe!App" + on_right: "next_timezone" + + cpu: + type: "yasb.cpu.CpuWidget" + options: + label: "{info[histograms][cpu_percent]}" + label_alt: "CPU: {info[percent][total]}% | freq: {info[freq][current]:.2f} Mhz" + update_interval: 500 + histogram_icons: + - '\u2581' # 0% + - '\u2581' # 10% + - '\u2582' # 20% + - '\u2583' # 30% + - '\u2584' # 40% + - '\u2585' # 50% + - '\u2586' # 60% + - '\u2587' # 70% + - '\u2588' # 80%+ + histogram_num_columns: 10 + + memory: + type: "yasb.memory.MemoryWidget" + options: + label: "\udb80\udf5b {virtual_mem_free}" + label_alt: "\udb80\udf5b {virtual_mem_percent}%" + update_interval: 5000 + callbacks: + on_right: "exec cmd /c Taskmgr" + + komorebi_workspaces: + type: "komorebi.workspaces.WorkspaceWidget" + options: + label_offline: "Komorebi Offline :(" + label_workspace_btn: "{index}" + label_default_name: "{index}" + label_zero_index: false + hide_empty_workspaces: false + + komorebi_active_layout: + type: "komorebi.active_layout.ActiveLayoutWidget" + options: + hide_if_offline: false + label: "{icon}" + layout_icons: + bsp: "[BSP]" + columns: "[||]" + rows: "[---]" + vertical_stack: "[V]=" + horizontal_stack: "[H]=" + ultrawide_vertical_stack: "||=" + monocle: "[M]" + maximised: "[Z]" + floating: "[F]" + paused: "[P]" + callbacks: + on_left: "next_layout" + on_middle: "toggle_monocle" + on_right: "prev_layout" + + wifi: + type: "yasb.wifi.WifiWidget" + options: + label: "{wifi_icon}" + label_alt: "{wifi_icon} {wifi_name}" + update_interval: 5000 + wifi_icons: + - "\udb82\udd2e" # 0% strength (no wifi) + - "\udb82\udd1f" # 1-25% strength + - "\udb82\udd22" # 26-50% strength + - "\udb82\udd25" # 51-75% strength + - "\udb82\udd28" # 76-100% strength. Alternate theming: \uf1eb + callbacks: + on_middle: "do_nothing" + on_right: "exec cmd.exe /c start explorer.exe ms-availablenetworks:" + + traffic: + type: "yasb.traffic.TrafficWidget" + options: + label: "\ueb01 \ueab4 {download_speed} | \ueab7 {upload_speed}" + label_alt: "\ueb01 \ueab4 {upload_speed} | \ueab7 {download_speed}" + update_interval: 1000 # Update interval should be a multiple of 1000 + callbacks: + on_right: "exec cmd /c Taskmgr" + + # Some custom widgets + + explorer_button: + type: "yasb.custom.CustomWidget" + options: + label: "\uf07c" + label_alt: "Files" + class_name: "explorer-widget" + exec_options: + run_once: true + callbacks: + on_left: "exec explorer.exe" + on_right: "toggle_label" + + ip_info: + type: "yasb.custom.CustomWidget" + options: + label: "\uf3c5 {data[city]}, {data[region]}" + label_alt: "\uf3c5 {data[ip]} [{data[country]}]" + class_name: "ip-info-widget" + exec_options: + run_cmd: "curl.exe https://ipinfo.io" + run_interval: 120000 # every 5 minutes + return_format: "json" + callbacks: + on_left: "toggle_label" + on_middle: "exec cmd /c ncpa.cpl" # open network settings + on_right: "exec cmd /c start https://ipinfo.io/{data[ip]} " # open ipinfo in browser + + weather: + type: "yasb.custom.CustomWidget" + options: + label: "\uf0c2 {data[current_condition][0][temp_F]}\u00b0f" + label_alt: "\uf0c2 {data[current_condition][0][weatherDesc][0][value]}" + class_name: "weather-widget" + exec_options: + run_cmd: "curl.exe wttr.in/Philadelphia?format=j1" + # run every hour + run_interval: 1800000 + return_format: "json" diff --git a/yasb_files/settings.py b/yasb_files/settings.py new file mode 100644 index 0000000..97ba19a --- /dev/null +++ b/yasb_files/settings.py @@ -0,0 +1,15 @@ +# Application Settings +APP_NAME = "Yasb" +APP_NAME_FULL = "Yet Another Status Bar" +APP_BAR_TITLE = "YasbBar" +FAVICON_PATH = "assets/favicon/" +GITHUB_URL = "https://github.com/denBot/yasb" + +# Development Settings +DEBUG = True + +# Configuration Settings +DEFAULT_CONFIG_DIRECTORY = ".config/yasb/src" +DEFAULT_STYLES_FILENAME = "styles.css" +DEFAULT_CONFIG_FILENAME = "config.yaml" +DEFAULT_LOG_FILENAME = "yasb.log" diff --git a/yasb_files/styles.css b/yasb_files/styles.css new file mode 100644 index 0000000..ee5e0c5 --- /dev/null +++ b/yasb_files/styles.css @@ -0,0 +1,170 @@ +* { + /* Bar measurement icons: https://github.com/and3rson/graph-bars-font */ + /* Icon set: https://fontawesome.com/v5.15/how-to-use/on-the-desktop/setup/getting-started */ + font-family: "Ubuntu Nerd Font"; + font-size: 15px; + color: #c0caf5; +} + +.bar { + background: rgba(22, 22, 30, 0.5); + border: 1px solid #283457; + padding: 0 5px; +} + +.container-right .widget { + margin: 2px; + border-radius: 8px; +} + +.container-right .widget * { + color: #c0caf5; +} + +.komorebi-workspaces { + margin-left: 0; +} + +.ws-btn { + padding: 5px; + background: rgba(26, 27, 38, 0.4); + border: 1px solid rgba(169, 177, 214, 0.4); + margin: 2px 2px; + font-size: 14px; + border-radius: 3px; +} + +.ws-btn:hover { + color: #f7768e; + background: rgba(180, 190, 254, 0.4); + font-weight: bold; +} + +.ws-btn.populated { + border-color: rgba(158, 206, 106, 0.6); + color: #c0caf5; +} + +.ws-btn.active { + background: rgba(122, 162, 247, 0.5); + color: #c0caf5; +} + +.weather-widget { + padding: 2px 6px; + font-size: 14px; + background: #1e1e2e; +} + +.weather-widget .icon { + font-size: 13px; +} +.weather-widget:hover { + background: rgba(169, 177, 214, 0.7); +} + +.explorer-widget{ + background: rgba(122, 162, 247, 0.5); + padding: 6px; + padding-left: 8px; +} +.explorer-widget:hover { + background: rgba(169, 177, 214, 0.7); +} + +.cpu-widget .label, +.wifi-widget .label, +.memory-widget .label, +.traffic-widget .label, +.battery-widget .label { + padding: 3px; + font-size: 14px; + border-radius: 8px; +} + +.traffic-widget .label { + background: #b3d3d9; +} + +.wifi-widget .label { + background: rgba(122, 162, 247, 0.5); + font-size: 16px; +} +.wifi-widget .label:hover { + background: rgba(169, 177, 214, 0.7); + font-size: 16px; +} + +.cpu-widget .label { + font-family: "Bars"; + background: #1e1e2e; +} +.cpu-widget .label:hover { + background:rgba(169, 177, 214, 0.7) +} + +.battery-widget .label.status-critical { + background: #fb4934; +} + +.battery-widget .label.status-low { + background: #fe8019; +} + +.battery-widget .label.status-medium { + background: #fabd2f; +} + +.battery-widget .label.status-high { + background: #b8bb26; +} + +.battery-widget .label.status-full { + background: #8ec07c; +} + +.battery-widget .label.status-charging { + background: #8ec07c; +} + +.battery-widget, +.memory-widget { + margin: 0; +} + +.memory-widget .label.status-low { + background: rgba(158, 206, 106, 0.7); +} + +.memory-widget .label.status-low:hover { + background: rgba(169, 177, 214, 0.7); +} + +.memory-widget .label.status-medium { + background: #1e1e2e; +} + +.memory-widget .label.status-medium:hover { + background: rgba(169, 177, 214, 0.7); +} + +.memory-widget .label.status-high { + background: rgba(247, 118, 142, 0.7); +} + +.memory-widget .label.status-high:hover { + background: rgba(169, 177, 214, 0.7); +} + +.active-window-widget .label { + padding: 0px 7px 0px 7px; + color: #c0caf5; + background: #1a1b26; + border-radius: 5px; + margin: 2px; +} + +.komorebi-active-layout .label { + color: #c0caf5; + margin: 0px 2px 2px 8px; +} diff --git a/zsh/.p10k.zsh b/zsh/.p10k.zsh new file mode 100644 index 0000000..9a263a8 --- /dev/null +++ b/zsh/.p10k.zsh @@ -0,0 +1,1712 @@ +# Generated by Powerlevel10k configuration wizard on 2024-05-21 at 13:55 EDT. +# Based on romkatv/powerlevel10k/config/p10k-lean.zsh, checksum 52020. +# Wizard options: nerdfont-v3 + powerline, small icons, unicode, lean, 1 line, sparse, +# few icons, concise, instant_prompt=verbose. +# Type `p10k configure` to generate another config. +# +# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate +# your own config based on it. +# +# Tip: Looking for a nice color? Here's a one-liner to print colormap. +# +# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done + +# Temporarily change options. +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. This allows you to apply configuration changes without + # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return + + # The list of segments shown on the left. Fill it with the most important segments. + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + # os_icon # os identifier + dir # current directory + vcs # git status + prompt_char # prompt symbol + ) + + # The list of segments shown on the right. Fill it with less important segments. + # Right prompt on the last prompt line (where you are typing your commands) gets + # automatically hidden when the input line reaches it. Right prompt above the + # last prompt line gets hidden if it would overlap with left prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + status # exit code of the last command + command_execution_time # duration of the last command + background_jobs # presence of background jobs + direnv # direnv status (https://direnv.net/) + asdf # asdf version manager (https://github.com/asdf-vm/asdf) + virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) + anaconda # conda environment (https://conda.io/) + pyenv # python environment (https://github.com/pyenv/pyenv) + goenv # go environment (https://github.com/syndbg/goenv) + nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) + nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) + nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) + # node_version # node.js version + # go_version # go version (https://golang.org) + # rust_version # rustc version (https://www.rust-lang.org) + # dotnet_version # .NET version (https://dotnet.microsoft.com) + # php_version # php version (https://www.php.net/) + # laravel_version # laravel php framework version (https://laravel.com/) + # java_version # java version (https://www.java.com/) + # package # name@version from package.json (https://docs.npmjs.com/files/package.json) + rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) + rvm # ruby version from rvm (https://rvm.io) + fvm # flutter version management (https://github.com/leoafarias/fvm) + luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) + jenv # java version from jenv (https://github.com/jenv/jenv) + plenv # perl version from plenv (https://github.com/tokuhirom/plenv) + perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) + phpenv # php version from phpenv (https://github.com/phpenv/phpenv) + scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) + haskell_stack # haskell version from stack (https://haskellstack.org/) + kubecontext # current kubernetes context (https://kubernetes.io/) + terraform # terraform workspace (https://www.terraform.io) + # terraform_version # terraform version (https://www.terraform.io) + aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) + aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) + azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) + gcloud # google cloud cli account and project (https://cloud.google.com/) + google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) + toolbox # toolbox name (https://github.com/containers/toolbox) + context # user@hostname + nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) + ranger # ranger shell (https://github.com/ranger/ranger) + yazi # yazi shell (https://github.com/sxyazi/yazi) + nnn # nnn shell (https://github.com/jarun/nnn) + lf # lf shell (https://github.com/gokcehan/lf) + xplr # xplr shell (https://github.com/sayanarijit/xplr) + vim_shell # vim shell indicator (:sh) + midnight_commander # midnight commander shell (https://midnight-commander.org/) + nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) + chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) + # vpn_ip # virtual private network indicator + # load # CPU load + # disk_usage # disk usage + # ram # free RAM + # swap # used swap + todo # todo items (https://github.com/todotxt/todo.txt-cli) + timewarrior # timewarrior tracking status (https://timewarrior.net/) + taskwarrior # taskwarrior task count (https://taskwarrior.org/) + per_directory_history # Oh My Zsh per-directory-history local/global indicator + # cpu_arch # CPU architecture + # time # current time + # ip # ip address and bandwidth usage for a specified network interface + # public_ip # public IP address + # proxy # system-wide http/https/ftp proxy + # battery # internal battery + # wifi # wifi speed + # example # example user-defined segment (see prompt_example function below) + ) + + # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. + typeset -g POWERLEVEL9K_MODE=nerdfont-v3 + # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid + # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. + typeset -g POWERLEVEL9K_ICON_PADDING=none + + # Basic style options that define the overall look of your prompt. You probably don't want to + # change them. + typeset -g POWERLEVEL9K_BACKGROUND= # transparent background + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol + + # When set to true, icons appear before content on both sides of the prompt. When set + # to false, icons go after content. If empty or not set, icons go before content in the left + # prompt and after content in the right prompt. + # + # You can also override it for a specific segment: + # + # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false + # + # Or for a specific segment in specific state: + # + # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false + typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true + + # Add an empty line before each prompt. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true + + # Connect left prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= + # Connect right prompt lines with these symbols. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= + + # The left end of left prompt. + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= + # The right end of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL= + + # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll + # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and + # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below. + typeset -g POWERLEVEL9K_SHOW_RULER=false + typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·' + typeset -g POWERLEVEL9K_RULER_FOREGROUND=242 + + # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─' + # to make it easier to see the alignment between left and right prompt and to separate prompt + # from command output. It serves the same purpose as ruler (see above) without increasing + # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false + # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact + # prompt. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' + if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then + # The color of the filler. + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 + # Add a space between the end of left prompt and the filler. + typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' ' + # Add a space between the filler and the start of right prompt. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' ' + # Start filler from the edge of the screen if there are no left segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' + # End filler on the edge of the screen if there are no right segments on the first line. + typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' + fi + + #################################[ os_icon: os identifier ]################################## + # OS identifier color. + typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND= + # Custom icon. + # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' + + ################################[ prompt_char: prompt symbol ]################################ + # Green prompt symbol if the last command succeeded. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1 + # Red prompt symbol if the last command failed. + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 + # Default prompt symbol. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + # Prompt symbol in command vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + # Prompt symbol in visual vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' + # Prompt symbol in overwrite vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true + # No line terminator if prompt_char is the last segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + # No line introducer if prompt_char is the first segment. + typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= + + ##################################[ dir: current directory ]################################## + # Default current directory color. + typeset -g POWERLEVEL9K_DIR_FOREGROUND=31 + # If directory is too long, shorten some of its segments to the shortest possible unique + # prefix. The shortened directory can be tab-completed to the original. + typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique + # Replace removed segment suffixes with this symbol. + typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= + # Color of the shortened directory segments. + typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103 + # Color of the anchor directory segments. Anchor segments are never shortened. The first + # segment is always an anchor. + typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39 + # Display anchor directory segments in bold. + typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true + # Don't shorten directories that contain any of these files. They are anchors. + local anchor_files=( + .bzr + .citc + .git + .hg + .node-version + .python-version + .go-version + .ruby-version + .lua-version + .java-version + .perl-version + .php-version + .tool-versions + .shorten_folder_marker + .svn + .terraform + CVS + Cargo.toml + composer.json + go.mod + package.json + stack.yaml + ) + typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" + # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains + # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is + # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) + # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers + # and other directories don't. + # + # Optionally, "first" and "last" can be followed by ":" where is an integer. + # This moves the truncation point to the right (positive offset) or to the left (negative offset) + # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" + # respectively. + typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false + # Don't shorten this many last directory segments. They are anchors. + typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 + # Shorten directory if it's longer than this even if there is space for it. The value can + # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, + # directory will be shortened only when prompt doesn't fit or when other parameters demand it + # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). + # If set to `0`, directory will always be shortened to its minimum length. + typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this + # many columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 + # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least + # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. + typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 + # If set to true, embed a hyperlink into the directory. Useful for quickly + # opening a directory in the file manager simply by clicking the link. + # Can also be handy when the directory is shortened, as it allows you to see + # the full directory that was used in previous commands. + typeset -g POWERLEVEL9K_DIR_HYPERLINK=false + + # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON + # and POWERLEVEL9K_DIR_CLASSES below. + typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 + + # The default icon shown next to non-writable and non-existent directories when + # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. + # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' + + # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different + # directories. It must be an array with 3 * N elements. Each triplet consists of: + # + # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with + # extended_glob option enabled. + # 2. Directory class for the purpose of styling. + # 3. An empty string. + # + # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. + # + # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories + # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_DIR_CLASSES=( + # '~/work(|/*)' WORK '' + # '~(|/*)' HOME '' + # '*' DEFAULT '') + # + # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one + # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or + # WORK_NON_EXISTENT. + # + # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an + # option to define custom colors and icons for different directory classes. + # + # # Styling for WORK. + # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31 + # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103 + # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39 + # + # # Styling for WORK_NOT_WRITABLE. + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=31 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=103 + # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=39 + # + # # Styling for WORK_NON_EXISTENT. + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=31 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=103 + # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=39 + # + # If a styling parameter isn't explicitly defined for some class, it falls back to the classless + # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls + # back to POWERLEVEL9K_DIR_FOREGROUND. + # + typeset -g POWERLEVEL9K_DIR_CLASSES=() + + # Custom prefix. + # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin ' + + #####################################[ vcs: git status ]###################################### + # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON= + + # Untracked files icon. It's really a question mark, your font isn't broken. + # Change the value of this parameter to show a different icon. + typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' + + # Formatter for Git status. + # + # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. + # + # You can edit the function to customize how Git status looks. + # + # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: + # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. + function my_git_formatter() { + emulate -L zsh + + if [[ -n $P9K_CONTENT ]]; then + # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from + # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. + typeset -g my_git_format=$P9K_CONTENT + return + fi + + if (( $1 )); then + # Styling for up-to-date Git status. + local meta='%f' # default foreground + local clean='%76F' # green foreground + local modified='%178F' # yellow foreground + local untracked='%39F' # blue foreground + local conflicted='%196F' # red foreground + else + # Styling for incomplete and stale Git status. + local meta='%244F' # grey foreground + local clean='%244F' # grey foreground + local modified='%244F' # grey foreground + local untracked='%244F' # grey foreground + local conflicted='%244F' # grey foreground + fi + + local res + + if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then + local branch=${(V)VCS_STATUS_LOCAL_BRANCH} + # If local branch name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show local branch name in full without truncation, delete the next line. + (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line + res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" + fi + + if [[ -n $VCS_STATUS_TAG + # Show tag only if not on a branch. + # Tip: To always show tag, delete the next line. + && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line + ]]; then + local tag=${(V)VCS_STATUS_TAG} + # If tag name is at most 32 characters long, show it in full. + # Otherwise show the first 12 … the last 12. + # Tip: To always show tag name in full without truncation, delete the next line. + (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line + res+="${meta}#${clean}${tag//\%/%%}" + fi + + # Display the current Git commit if there is no branch and no tag. + # Tip: To always display the current Git commit, delete the next line. + [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line + res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" + + # Show tracking branch name if it differs from local branch. + if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then + res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" + fi + + # Display "wip" if the latest commit's summary contains "wip" or "WIP". + if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then + res+=" ${modified}wip" + fi + + if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then + # ⇣42 if behind the remote. + (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" + # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. + (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " + (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" + elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then + # Tip: Uncomment the next line to display '=' if up to date with the remote. + # res+=" ${clean}=" + fi + + # ⇠42 if behind the push remote. + (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" + (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " + # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. + (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" + # *42 if have stashes. + (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" + # 'merge' if the repo is in an unusual state. + [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" + # ~42 if have merge conflicts. + (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" + # +42 if have staged changes. + (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" + # !42 if have unstaged changes. + (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" + # ?42 if have untracked files. It's really a question mark, your font isn't broken. + # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. + # Remove the next line if you don't want to see untracked files at all. + (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" + # "─" if the number of unstaged files is unknown. This can happen due to + # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower + # than the number of files in the Git index, or due to bash.showDirtyState being set to false + # in the repository config. The number of staged and untracked files may also be unknown + # in this case. + (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" + + typeset -g my_git_format=$res + } + functions -M my_git_formatter 2>/dev/null + + # Don't count the number of unstaged, untracked and conflicted files in Git repositories with + # more than this many files in the index. Negative value means infinity. + # + # If you are working in Git repositories with tens of millions of files and seeing performance + # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output + # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's + # config: `git config bash.showDirtyState false`. + typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 + + # Don't show Git status in prompt for repositories whose workdir matches this pattern. + # For example, if set to '~', the Git repository at $HOME/.git will be ignored. + # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. + typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' + + # Disable the default Git status formatting. + typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true + # Install our own Git status formatter. + typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}' + typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' + # Enable counters for staged, unstaged, etc. + typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 + + # Icon color. + typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76 + typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244 + # Custom icon. + typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION= + # Custom prefix. + # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon ' + + # Show status of repositories of these types. You can add svn and/or hg if you are + # using them. If you do, your prompt may become slow even when your current directory + # isn't in an svn or hg repository. + typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) + + # These settings are used for repositories other than Git or when gitstatusd fails and + # Powerlevel10k has to fall back to using vcs_info. + typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76 + typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76 + typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178 + + ##########################[ status: exit code of the last command ]########################### + # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and + # style them independently from the regular OK and ERROR state. + typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true + + # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as + # it will signify success by turning green. + typeset -g POWERLEVEL9K_STATUS_OK=false + typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70 + typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' + + # Status when some part of a pipe command fails but the overall exit status is zero. It may look + # like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70 + typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' + + # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as + # it will signify error by turning red. + typeset -g POWERLEVEL9K_STATUS_ERROR=false + typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160 + typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' + + # Status when the last command was terminated by a signal. + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160 + # Use terse signal names: "INT" instead of "SIGINT(2)". + typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false + typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' + + # Status when some part of a pipe command fails and the overall exit status is also non-zero. + # It may look like this: 1|0. + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160 + typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' + + ###################[ command_execution_time: duration of the last command ]################### + # Show duration of the last command if takes at least this many seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 + # Show this many fractional digits. Zero means round to seconds. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 + # Execution time color. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101 + # Duration format: 1d 2h 3m 4s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' + # Custom icon. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION= + # Custom prefix. + # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook ' + + #######################[ background_jobs: presence of background jobs ]####################### + # Don't show the number of background jobs. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false + # Background jobs color. + typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70 + # Custom icon. + # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ direnv: direnv status (https://direnv.net/) ]######################## + # Direnv color. + typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178 + # Custom icon. + # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### + # Default asdf color. Only used to display tools for which there is no color override (see below). + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND. + typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66 + + # There are four parameters that can be used to hide asdf tools. Each parameter describes + # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at + # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to + # hide a tool, it gets shown. + # + # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and + # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: + # + # asdf local python 3.8.1 + # asdf global python 3.8.1 + # + # After running both commands the current python version is 3.8.1 and its source is "local" as + # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, + # it'll hide python version in this case because 3.8.1 is the same as the global version. + # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't + # contain "local". + + # Hide tool versions that don't come from one of these sources. + # + # Available sources: + # + # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" + # - local `asdf current` says "set by /some/not/home/directory/file" + # - global `asdf current` says "set by /home/username/file" + # + # Note: If this parameter is set to (shell local global), it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. + typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) + + # If set to false, hide tool versions that are the same as global. + # + # Note: The name of this parameter doesn't reflect its meaning at all. + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. + typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false + + # If set to false, hide tool versions that are equal to "system". + # + # Note: If this parameter is set to true, it won't hide tools. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. + typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true + + # If set to non-empty value, hide tools unless there is a file matching the specified file pattern + # in the current directory, or its parent directory, or its grandparent directory, and so on. + # + # Note: If this parameter is set to empty value, it won't hide tools. + # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. + # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. + # + # Example: Hide nodejs version when there is no package.json and no *.js files in the current + # directory, in `..`, in `../..` and so on. + # + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' + typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= + + # Ruby version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168 + # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Python version from asdf. + typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37 + # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Go version from asdf. + typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=37 + # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Node.js version from asdf. + typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70 + # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Rust version from asdf. + typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37 + # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' + + # .NET Core version from asdf. + typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134 + # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_DOTNET_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Flutter version from asdf. + typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38 + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Lua version from asdf. + typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32 + # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Java version from asdf. + typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32 + # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Perl version from asdf. + typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67 + # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Erlang version from asdf. + typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125 + # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Elixir version from asdf. + typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129 + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Postgres version from asdf. + typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31 + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' + + # PHP version from asdf. + typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=99 + # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Haskell version from asdf. + typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=172 + # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' + + # Julia version from asdf. + typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=70 + # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' + + ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### + # NordVPN connection indicator color. + typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39 + # Hide NordVPN connection indicator when not connected. + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= + typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= + # Custom icon. + # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## + # Ranger shell color. + typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178 + # Custom icon. + # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]##################### + # Yazi shell color. + typeset -g POWERLEVEL9K_YAZI_FOREGROUND=178 + # Custom icon. + # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### + # Nnn shell color. + typeset -g POWERLEVEL9K_NNN_FOREGROUND=72 + # Custom icon. + # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### + # lf shell color. + typeset -g POWERLEVEL9K_LF_FOREGROUND=72 + # Custom icon. + # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## + # xplr shell color. + typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72 + # Custom icon. + # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########################[ vim_shell: vim shell indicator (:sh) ]########################### + # Vim shell indicator color. + typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34 + # Custom icon. + # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### + # Midnight Commander shell color. + typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=178 + # Custom icon. + # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## + # Nix shell color. + typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74 + + # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. + # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false + + # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. + # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## + # chezmoi shell color. + typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=33 + # Custom icon. + # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ disk_usage: disk usage ]################################## + # Colors for different levels of disk usage. + typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35 + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=220 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=160 + # Thresholds for different levels of disk usage (percentage points). + typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 + typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 + # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. + typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false + # Custom icon. + # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ ram: free RAM ]####################################### + # RAM color. + typeset -g POWERLEVEL9K_RAM_FOREGROUND=66 + # Custom icon. + # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################################[ swap: used swap ]###################################### + # Swap color. + typeset -g POWERLEVEL9K_SWAP_FOREGROUND=96 + # Custom icon. + # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######################################[ load: CPU load ]###################################### + # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. + typeset -g POWERLEVEL9K_LOAD_WHICH=5 + # Load color when load is under 50%. + typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66 + # Load color when load is between 50% and 70%. + typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178 + # Load color when load is over 70%. + typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166 + # Custom icon. + # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ + # Todo color. + typeset -g POWERLEVEL9K_TODO_FOREGROUND=110 + # Hide todo when the total number of tasks is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true + # Hide todo when the number of tasks after filtering is zero. + typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false + + # Todo format. The following parameters are available within the expansion. + # + # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. + # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. + # + # These variables correspond to the last line of the output of `todo.sh -p ls`: + # + # TODO: 24 of 42 tasks shown + # + # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. + # + # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ + # Timewarrior color. + typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=110 + # If the tracked task is longer than 24 characters, truncate and append "…". + # Tip: To always display tasks without truncation, delete the following parameter. + # Tip: To hide task names and display just the icon when time tracking is enabled, set the + # value of the following parameter to "". + typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' + + # Custom icon. + # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## + # Taskwarrior color. + typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=74 + + # Taskwarrior segment format. The following parameters are available within the expansion. + # + # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. + # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. + # + # Zero values are represented as empty parameters. + # + # The default format: + # + # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' + # + # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' + + # Custom icon. + # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### + # Color when using local/global history. + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=135 + typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=130 + + # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' + + # Custom icon. + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ cpu_arch: CPU architecture ]################################ + # CPU architecture color. + typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172 + + # Hide the segment when on a specific CPU architecture. + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= + # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##################################[ context: user@hostname ]################################## + # Context color when running with privileges. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178 + # Context color in SSH without privileges. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180 + # Default context color (no privileges, no SSH). + typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180 + + # Context format when running with privileges: bold user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m' + # Context format when in SSH without privileges: user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' + # Default context format (no privileges, no SSH): user@hostname. + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' + + # Don't show context unless running with privileges or in SSH. + # Tip: Remove the next line to always show context. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= + + # Custom icon. + # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith ' + + ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### + # Python virtual environment color. + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37 + # Don't show Python version next to the virtual environment name. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + # If set to "false", won't show virtualenv if pyenv is already shown. + # If set to "if-different", won't show virtualenv if it's the same as pyenv. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false + # Separate environment name from Python version only with a space. + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ anaconda: conda environment (https://conda.io/) ]###################### + # Anaconda environment color. + typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37 + + # Anaconda segment format. The following parameters are available within the expansion. + # + # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. + # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. + # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). + # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). + # + # CONDA_PROMPT_MODIFIER can be configured with the following command: + # + # conda config --set env_prompt '({default_env}) ' + # + # The last argument is a Python format string that can use the following variables: + # + # - prefix The same as CONDA_PREFIX. + # - default_env The same as CONDA_DEFAULT_ENV. + # - name The last segment of CONDA_PREFIX. + # - stacked_env Comma-separated list of names in the environment stack. The first element is + # always the same as default_env. + # + # Note: '({default_env}) ' is the default value of env_prompt. + # + # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER + # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former + # is empty. + typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' + + # Custom icon. + # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ + # Pyenv color. + typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37 + # Hide python version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) + # If set to false, hide python version if it's the same as global: + # $(pyenv version-name) == $(pyenv global). + typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide python version if it's equal to "system". + typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true + + # Pyenv segment format. The following parameters are available within the expansion. + # + # - P9K_CONTENT Current pyenv environment (pyenv version-name). + # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). + # + # The default format has the following logic: + # + # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or + # starts with "$P9K_PYENV_PYTHON_VERSION/". + # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". + typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' + + # Custom icon. + # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ + # Goenv color. + typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37 + # Hide go version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) + # If set to false, hide go version if it's the same as global: + # $(goenv version-name) == $(goenv global). + typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide go version if it's equal to "system". + typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## + # Nodenv color. + typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70 + # Hide node version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) + # If set to false, hide node version if it's the same as global: + # $(nodenv version-name) == $(nodenv global). + typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### + # Nvm color. + typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 + # If set to false, hide node version if it's the same as default: + # $(nvm version current) == $(nvm version default). + typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false + # If set to false, hide node version if it's equal to "system". + typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ + # Nodeenv color. + typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70 + # Don't show Node version next to the environment name. + typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false + # Separate environment name from Node version only with a space. + typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= + # Custom icon. + # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##############################[ node_version: node.js version ]############################### + # Node version color. + typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70 + # Show node version only when in a directory tree containing package.json. + typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ go_version: go version (https://golang.org) ]######################## + # Go version color. + typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37 + # Show go version only when in a go project subdirectory. + typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## + # Rust version color. + typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37 + # Show rust version only when in a rust project subdirectory. + typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ + # .NET version color. + typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134 + # Show .NET version only when in a .NET project subdirectory. + typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #####################[ php_version: php version (https://www.php.net/) ]###################### + # PHP version color. + typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=99 + # Show PHP version only when in a PHP project subdirectory. + typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### + # Laravel version color. + typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=161 + # Custom icon. + # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ####################[ java_version: java version (https://www.java.com/) ]#################### + # Java version color. + typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=32 + # Show java version only when in a java project subdirectory. + typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true + # Show brief version. + typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false + # Custom icon. + # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### + # Package color. + typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=117 + # Package format. The following parameters are available within the expansion. + # + # - P9K_PACKAGE_NAME The value of `name` field in package.json. + # - P9K_PACKAGE_VERSION The value of `version` field in package.json. + # + # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' + # Custom icon. + # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## + # Rbenv color. + typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168 + # Hide ruby version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) + # If set to false, hide ruby version if it's the same as global: + # $(rbenv version-name) == $(rbenv global). + typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide ruby version if it's equal to "system". + typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## + # Rvm color. + typeset -g POWERLEVEL9K_RVM_FOREGROUND=168 + # Don't show @gemset at the end. + typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false + # Don't show ruby- at the front. + typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ + # Fvm color. + typeset -g POWERLEVEL9K_FVM_FOREGROUND=38 + # Custom icon. + # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### + # Lua color. + typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=32 + # Hide lua version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) + # If set to false, hide lua version if it's the same as global: + # $(luaenv version-name) == $(luaenv global). + typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide lua version if it's equal to "system". + typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ + # Java color. + typeset -g POWERLEVEL9K_JENV_FOREGROUND=32 + # Hide java version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) + # If set to false, hide java version if it's the same as global: + # $(jenv version-name) == $(jenv global). + typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide java version if it's equal to "system". + typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ + # Perl color. + typeset -g POWERLEVEL9K_PLENV_FOREGROUND=67 + # Hide perl version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) + # If set to false, hide perl version if it's the same as global: + # $(plenv version-name) == $(plenv global). + typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide perl version if it's equal to "system". + typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ + # Perlbrew color. + typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 + # Show perlbrew version only when in a perl project subdirectory. + typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true + # Don't show "perl-" at the front. + typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false + # Custom icon. + # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ + # PHP color. + typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99 + # Hide php version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) + # If set to false, hide php version if it's the same as global: + # $(phpenv version-name) == $(phpenv global). + typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide php version if it's equal to "system". + typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### + # Scala color. + typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=160 + # Hide scala version if it doesn't come from one of these sources. + typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) + # If set to false, hide scala version if it's the same as global: + # $(scalaenv version-name) == $(scalaenv global). + typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false + # If set to false, hide scala version if it's equal to "system". + typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true + # Custom icon. + # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### + # Haskell color. + typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=172 + # Hide haskell version if it doesn't come from one of these sources. + # + # shell: version is set by STACK_YAML + # local: version is set by stack.yaml up the directory tree + # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) + typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) + # If set to false, hide haskell version if it's the same as in the implicit global project. + typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true + # Custom icon. + # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# + # Show kubecontext only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show kubecontext. + typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' + + # Kubernetes context classes for the purpose of using different colors, icons and expansions with + # different contexts. + # + # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current kubernetes context gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current kubernetes context is "deathray-testing/default", its class is TEST + # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134 + # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext + # segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # Within the expansion the following parameters are always available: + # + # - P9K_CONTENT The content that would've been displayed if there was no content + # expansion defined. + # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the + # output of `kubectl config get-contexts`. + # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE + # in the output of `kubectl config get-contexts`. If there is no + # namespace, the parameter is set to "default". + # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the + # output of `kubectl config get-contexts`. + # + # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), + # the following extra parameters are available: + # + # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. + # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. + # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. + # + # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, + # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=gke + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + # + # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": + # + # - P9K_KUBECONTEXT_CLOUD_NAME=eks + # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 + # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 + # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 + typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= + # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' + # Append the current context's namespace if it's not "default". + POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' + + # Custom prefix. + # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat ' + + ################[ terraform: terraform workspace (https://www.terraform.io) ]################# + # Don't show terraform workspace if it's literally "default". + typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false + # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current terraform workspace gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current terraform workspace is "project_test", its class is TEST because "project_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=38 + # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #############[ terraform_version: terraform version (https://www.terraform.io) ]############## + # Terraform version color. + typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=38 + # Custom icon. + # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# + # Show aws only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show aws. + typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt' + + # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current AWS profile gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' DEFAULT) + # + # If your current AWS profile is "company_test", its class is TEST + # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AWS_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208 + # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # AWS segment format. The following parameters are available within the expansion. + # + # - P9K_AWS_PROFILE The name of the current AWS profile. + # - P9K_AWS_REGION The region associated with the current AWS profile. + typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' + + #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# + # AWS Elastic Beanstalk environment color. + typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70 + # Custom icon. + # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## + # Show azure only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show azure. + typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' + + # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element + # in each pair defines a pattern against which the current azure account name gets matched. + # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) + # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, + # you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The + # first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD + # '*test*' TEST + # '*' OTHER) + # + # If your current azure account is "company_test", its class is TEST because "company_test" + # doesn't match the pattern '*prod*' but does match '*test*'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' + typeset -g POWERLEVEL9K_AZURE_CLASSES=( + # '*prod*' PROD # These values are examples that are unlikely + # '*test*' TEST # to match your needs. Customize them as needed. + '*' OTHER) + + # Azure account name color. + typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32 + # Custom icon. + # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### + # Show gcloud only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show gcloud. + typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' + # Google cloud color. + typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32 + + # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or + # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative + # enough. You can use the following parameters in the expansions. Each of them corresponds to the + # output of `gcloud` tool. + # + # Parameter | Source + # -------------------------|-------------------------------------------------------------------- + # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' + # P9K_GCLOUD_ACCOUNT | gcloud config get-value account + # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project + # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. + # + # Obtaining project name requires sending a request to Google servers. This can take a long time + # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud + # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets + # set and gcloud prompt segment transitions to state COMPLETE. + # + # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL + # and COMPLETE. You can also hide gcloud in state PARTIAL by setting + # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and + # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. + typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' + typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' + + # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name + # this often. Negative value disables periodic polling. In this mode project name is retrieved + # only when the current configuration, account or project id changes. + typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 + + # Custom icon. + # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# + # Show google_app_cred only when the command you are typing invokes one of these tools. + # Tip: Remove the next line to always show google_app_cred. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' + + # Google application credentials classes for the purpose of using different colors, icons and + # expansions with different credentials. + # + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first + # element in each pair defines a pattern against which the current kubernetes context gets + # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion + # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION + # parameters, you'll see this value in your prompt. The second element of each pair in + # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. + # The first match wins. + # + # For example, given these settings: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD + # '*:*test*:*' TEST + # '*' DEFAULT) + # + # If your current Google application credentials is "service_account deathray-testing x@y.com", + # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. + # + # You can define different colors, icons and content expansions for different classes: + # + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( + # '*:*prod*:*' PROD # These values are examples that are unlikely + # '*:*test*:*' TEST # to match your needs. Customize them as needed. + '*' DEFAULT) + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=32 + # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by + # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: + # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. + # + # You can use the following parameters in the expansion. Each of them corresponds to one of the + # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. + # + # Parameter | JSON key file field + # ---------------------------------+--------------- + # P9K_GOOGLE_APP_CRED_TYPE | type + # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id + # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email + # + # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' + + ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### + # Toolbox color. + typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=178 + # Don't display the name of the toolbox if it matches fedora-toolbox-*. + typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' + # Custom icon. + # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' + # Custom prefix. + # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%fin ' + + ###############################[ public_ip: public IP address ]############################### + # Public IP color. + typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94 + # Custom icon. + # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ########################[ vpn_ip: virtual private network indicator ]######################### + # VPN IP color. + typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81 + # When on VPN, show just an icon without the IP address. + # Tip: To display the private IP address when on VPN, remove the next line. + typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= + # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN + # to see the name of the interface. + typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' + # If set to true, show one segment per matching network interface. If set to false, show only + # one segment corresponding to the first matching network interface. + # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. + typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false + # Custom icon. + # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### + # IP color. + typeset -g POWERLEVEL9K_IP_FOREGROUND=38 + # The following parameters are accessible within the expansion: + # + # Parameter | Meaning + # ----------------------+------------------------------------------- + # P9K_IP_IP | IP address + # P9K_IP_INTERFACE | network interface + # P9K_IP_RX_BYTES | total number of bytes received + # P9K_IP_TX_BYTES | total number of bytes sent + # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt + # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt + # P9K_IP_RX_RATE | receive rate (since last prompt) + # P9K_IP_TX_RATE | send rate (since last prompt) + typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='$P9K_IP_IP${P9K_IP_RX_RATE:+ %70F⇣$P9K_IP_RX_RATE}${P9K_IP_TX_RATE:+ %215F⇡$P9K_IP_TX_RATE}' + # Show information for the first network interface whose name matches this regular expression. + # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. + typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' + # Custom icon. + # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' + + #########################[ proxy: system-wide http/https/ftp proxy ]########################## + # Proxy color. + typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68 + # Custom icon. + # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' + + ################################[ battery: internal battery ]################################# + # Show battery in red when it's below this level and not connected to power supply. + typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 + typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160 + # Show battery in green when it's charging or fully charged. + typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70 + # Show battery in yellow when it's discharging. + typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178 + # Battery pictograms going from low to high level of charge. + typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079' + # Don't show the remaining time to charge/discharge. + typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false + + #####################################[ wifi: wifi speed ]##################################### + # WiFi color. + typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68 + # Custom icon. + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). + # + # # Wifi colors and icons for different signal strength levels (low to high). + # typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values + # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values + # + # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' + # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' + # + # The following parameters are accessible within the expansions: + # + # Parameter | Meaning + # ----------------------+--------------- + # P9K_WIFI_SSID | service set identifier, a.k.a. network name + # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown + # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second + # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 + # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 + # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) + + ####################################[ time: current time ]#################################### + # Current time color. + typeset -g POWERLEVEL9K_TIME_FOREGROUND=66 + # Format for the current time: 09:51:02. See `man 3 strftime`. + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + # If set to true, time will update when you hit enter. This way prompts for the past + # commands will contain the start times of their commands as opposed to the default + # behavior where they contain the end times of their preceding commands. + typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false + # Custom icon. + typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION= + # Custom prefix. + # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' + + # Example of a user-defined prompt segment. Function prompt_example will be called on every + # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or + # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. + # + # Type `p10k help segment` for documentation and a more sophisticated example. + function prompt_example() { + p10k segment -f 208 -i '⭐' -t 'hello, %n' + } + + # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job + # is to generate the prompt segment for display in instant prompt. See + # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. + # + # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function + # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k + # will replay these calls without actually calling instant_prompt_*. It is imperative that + # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this + # rule is not observed, the content of instant prompt will be incorrect. + # + # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If + # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. + function instant_prompt_example() { + # Since prompt_example always makes the same `p10k segment` calls, we can call it from + # instant_prompt_example. This will give us the same `example` prompt segment in the instant + # and regular prompts. + prompt_example + } + + # User-defined prompt segments can be customized the same way as built-in segments. + # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208 + # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' + + # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt + # when accepting a command line. Supported values: + # + # - off: Don't change prompt when accepting a command line. + # - always: Trim down prompt when accepting a command line. + # - same-dir: Trim down prompt when accepting a command line unless this is the first command + # typed after changing current working directory. + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off + + # Instant prompt mode. + # + # - off: Disable instant prompt. Choose this if you've tried instant prompt and found + # it incompatible with your zsh configuration files. + # - quiet: Enable instant prompt and don't print warnings when detecting console output + # during zsh initialization. Choose this if you've read and understood + # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. + # - verbose: Enable instant prompt and print a warning when detecting console output during + # zsh initialization. Choose this if you've never tried instant prompt, haven't + # seen the warning, or if you are unsure what this all means. + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. + # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload + # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you + # really need it. + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # If p10k is already loaded, reload configuration. + # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. + (( ! $+functions[p10k] )) || p10k reload +} + +# Tell `p10k configure` which file it should overwrite. +typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} + +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/zsh/.zshrc b/zsh/.zshrc index 1031067..74f1969 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,4 +1,6 @@ source $HOME/.profile + +neofetch # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. @@ -79,4 +81,3 @@ export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion -