Full Code of end-4/dots-hyprland for AI

main fd86b282a6b9 cached
830 files
3.0 MB
832.0k tokens
105 symbols
1 requests
Download .txt
Showing preview only (3,304K chars total). Download the full file or copy to clipboard to get everything.
Repository: end-4/dots-hyprland
Branch: main
Commit: fd86b282a6b9
Files: 830
Total size: 3.0 MB

Directory structure:
gitextract_u5nhn4va/

├── .github/
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-issue.yml
│   │   ├── 2-feature_request.yml
│   │   └── config.yml
│   ├── README.md
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto-close-issue.yml
│       ├── dist-update-notification.yml
│       └── dump-github-context.yml
├── .gitignore
├── .gitmodules
├── LICENSE
├── diagnose
├── dots/
│   ├── .config/
│   │   ├── Kvantum/
│   │   │   ├── Colloid/
│   │   │   │   ├── Colloid.kvconfig
│   │   │   │   └── ColloidDark.kvconfig
│   │   │   ├── MaterialAdw/
│   │   │   │   └── MaterialAdw.kvconfig
│   │   │   └── kvantum.kvconfig
│   │   ├── chrome-flags.conf
│   │   ├── code-flags.conf
│   │   ├── darklyrc
│   │   ├── dolphinrc
│   │   ├── fish/
│   │   │   ├── auto-Hypr.fish
│   │   │   ├── config.fish
│   │   │   └── fish_variables
│   │   ├── fontconfig/
│   │   │   └── fonts.conf
│   │   ├── foot/
│   │   │   └── foot.ini
│   │   ├── fuzzel/
│   │   │   ├── fuzzel.ini
│   │   │   └── fuzzel_theme.ini
│   │   ├── hypr/
│   │   │   ├── custom/
│   │   │   │   ├── env.conf
│   │   │   │   ├── execs.conf
│   │   │   │   ├── general.conf
│   │   │   │   ├── keybinds.conf
│   │   │   │   ├── rules.conf
│   │   │   │   └── scripts/
│   │   │   │       └── __restore_video_wallpaper.sh
│   │   │   ├── hypridle.conf
│   │   │   ├── hyprland/
│   │   │   │   ├── colors.conf
│   │   │   │   ├── env.conf
│   │   │   │   ├── execs.conf
│   │   │   │   ├── general.conf
│   │   │   │   ├── keybinds.conf
│   │   │   │   ├── rules.conf
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── ai/
│   │   │   │   │   │   ├── license_show-loaded-ollama-models.txt
│   │   │   │   │   │   ├── primary-buffer-query.sh
│   │   │   │   │   │   └── show-loaded-ollama-models.sh
│   │   │   │   │   ├── fuzzel-emoji.sh
│   │   │   │   │   ├── launch_first_available.sh
│   │   │   │   │   ├── snip_to_search.sh
│   │   │   │   │   ├── start_geoclue_agent.sh
│   │   │   │   │   ├── workspace_action.sh
│   │   │   │   │   └── zoom.sh
│   │   │   │   └── shellOverrides/
│   │   │   │       └── main.conf
│   │   │   ├── hyprland.conf
│   │   │   ├── hyprlock/
│   │   │   │   ├── check-capslock.sh
│   │   │   │   ├── colors.conf
│   │   │   │   └── status.sh
│   │   │   ├── hyprlock.conf
│   │   │   ├── monitors.conf
│   │   │   └── workspaces.conf
│   │   ├── kde-material-you-colors/
│   │   │   └── config.conf
│   │   ├── kdeglobals
│   │   ├── kitty/
│   │   │   ├── kitty.conf
│   │   │   ├── scroll_mark.py
│   │   │   └── search.py
│   │   ├── konsolerc
│   │   ├── matugen/
│   │   │   ├── config.toml
│   │   │   └── templates/
│   │   │       ├── ags/
│   │   │       │   ├── _material.scss
│   │   │       │   ├── sourceviewtheme-light.xml
│   │   │       │   └── sourceviewtheme.xml
│   │   │       ├── colors.json
│   │   │       ├── fuzzel/
│   │   │       │   └── fuzzel_theme.ini
│   │   │       ├── gtk-3.0/
│   │   │       │   └── gtk.css
│   │   │       ├── gtk-4.0/
│   │   │       │   └── gtk.css
│   │   │       ├── hyprland/
│   │   │       │   ├── colors.conf
│   │   │       │   └── hyprlock-colors.conf
│   │   │       ├── kde/
│   │   │       │   ├── color.txt
│   │   │       │   └── kde-material-you-colors-wrapper.sh
│   │   │       └── wallpaper.txt
│   │   ├── mpv/
│   │   │   └── mpv.conf
│   │   ├── quickshell/
│   │   │   └── ii/
│   │   │       ├── .qmlformat.ini
│   │   │       ├── GlobalStates.qml
│   │   │       ├── ReloadPopup.qml
│   │   │       ├── assets/
│   │   │       │   └── icons/
│   │   │       │       └── fluent/
│   │   │       │           └── README.md
│   │   │       ├── defaults/
│   │   │       │   └── ai/
│   │   │       │       ├── README.md
│   │   │       │       └── prompts/
│   │   │       │           ├── NoPrompt.md
│   │   │       │           ├── ii-Default.md
│   │   │       │           ├── ii-Imouto.md
│   │   │       │           ├── nyarch-Acchan.md
│   │   │       │           ├── w-FourPointedSparkle.md
│   │   │       │           └── w-OpenMechanicalFlower.md
│   │   │       ├── killDialog.qml
│   │   │       ├── modules/
│   │   │       │   ├── common/
│   │   │       │   │   ├── Appearance.qml
│   │   │       │   │   ├── Config.qml
│   │   │       │   │   ├── Directories.qml
│   │   │       │   │   ├── Icons.qml
│   │   │       │   │   ├── Images.qml
│   │   │       │   │   ├── Persistent.qml
│   │   │       │   │   ├── functions/
│   │   │       │   │   │   ├── ColorUtils.qml
│   │   │       │   │   │   ├── DateUtils.qml
│   │   │       │   │   │   ├── FileUtils.qml
│   │   │       │   │   │   ├── Fuzzy.qml
│   │   │       │   │   │   ├── Levendist.qml
│   │   │       │   │   │   ├── NotificationUtils.qml
│   │   │       │   │   │   ├── ObjectUtils.qml
│   │   │       │   │   │   ├── Session.qml
│   │   │       │   │   │   ├── StringUtils.qml
│   │   │       │   │   │   ├── fuzzysort.js
│   │   │       │   │   │   └── levendist.js
│   │   │       │   │   ├── models/
│   │   │       │   │   │   ├── AdaptedMaterialScheme.qml
│   │   │       │   │   │   ├── AnimatedTabIndexPair.qml
│   │   │       │   │   │   ├── FolderListModelWithHistory.qml
│   │   │       │   │   │   ├── IndexModel.qml
│   │   │       │   │   │   ├── LauncherSearchResult.qml
│   │   │       │   │   │   ├── NestableObject.qml
│   │   │       │   │   │   ├── hyprland/
│   │   │       │   │   │   │   └── HyprlandConfigOption.qml
│   │   │       │   │   │   └── quickToggles/
│   │   │       │   │   │       ├── AntiFlashbangToggle.qml
│   │   │       │   │   │       ├── AudioToggle.qml
│   │   │       │   │   │       ├── BluetoothToggle.qml
│   │   │       │   │   │       ├── CloudflareWarpToggle.qml
│   │   │       │   │   │       ├── ColorPickerToggle.qml
│   │   │       │   │   │       ├── DarkModeToggle.qml
│   │   │       │   │   │       ├── EasyEffectsToggle.qml
│   │   │       │   │   │       ├── GameModeToggle.qml
│   │   │       │   │   │       ├── IdleInhibitorToggle.qml
│   │   │       │   │   │       ├── MicToggle.qml
│   │   │       │   │   │       ├── MusicRecognitionToggle.qml
│   │   │       │   │   │       ├── NetworkToggle.qml
│   │   │       │   │   │       ├── NightLightToggle.qml
│   │   │       │   │   │       ├── NotificationToggle.qml
│   │   │       │   │   │       ├── OnScreenKeyboardToggle.qml
│   │   │       │   │   │       ├── PowerProfilesToggle.qml
│   │   │       │   │   │       ├── QuickToggleModel.qml
│   │   │       │   │   │       └── ScreenSnipToggle.qml
│   │   │       │   │   ├── panels/
│   │   │       │   │   │   └── lock/
│   │   │       │   │   │       ├── LockContext.qml
│   │   │       │   │   │       ├── LockScreen.qml
│   │   │       │   │   │       └── pam/
│   │   │       │   │   │           └── fprintd.conf
│   │   │       │   │   ├── utils/
│   │   │       │   │   │   ├── ImageDownloaderProcess.qml
│   │   │       │   │   │   ├── ScreenshotAction.qml
│   │   │       │   │   │   └── TempScreenshotProcess.qml
│   │   │       │   │   └── widgets/
│   │   │       │   │       ├── AddressBar.qml
│   │   │       │   │       ├── AddressBreadcrumb.qml
│   │   │       │   │       ├── ButtonGroup.qml
│   │   │       │   │       ├── CalendarView.qml
│   │   │       │   │       ├── Circle.qml
│   │   │       │   │       ├── CircularProgress.qml
│   │   │       │   │       ├── CliphistImage.qml
│   │   │       │   │       ├── ClippedFilledCircularProgress.qml
│   │   │       │   │       ├── ClippedProgressBar.qml
│   │   │       │   │       ├── ConfigRow.qml
│   │   │       │   │       ├── ConfigSelectionArray.qml
│   │   │       │   │       ├── ConfigSlider.qml
│   │   │       │   │       ├── ConfigSpinBox.qml
│   │   │       │   │       ├── ConfigSwitch.qml
│   │   │       │   │       ├── ContentPage.qml
│   │   │       │   │       ├── ContentSection.qml
│   │   │       │   │       ├── ContentSubsection.qml
│   │   │       │   │       ├── ContentSubsectionLabel.qml
│   │   │       │   │       ├── CustomIcon.qml
│   │   │       │   │       ├── DashedBorder.qml
│   │   │       │   │       ├── DialogButton.qml
│   │   │       │   │       ├── DialogListItem.qml
│   │   │       │   │       ├── DirectoryIcon.qml
│   │   │       │   │       ├── DragManager.qml
│   │   │       │   │       ├── FadeLoader.qml
│   │   │       │   │       ├── Favicon.qml
│   │   │       │   │       ├── FloatingActionButton.qml
│   │   │       │   │       ├── FlowButtonGroup.qml
│   │   │       │   │       ├── FocusedScrollMouseArea.qml
│   │   │       │   │       ├── FullscreenPolkitWindow.qml
│   │   │       │   │       ├── Graph.qml
│   │   │       │   │       ├── GroupButton.qml
│   │   │       │   │       ├── IconAndTextToolbarButton.qml
│   │   │       │   │       ├── IconToolbarButton.qml
│   │   │       │   │       ├── KeyboardKey.qml
│   │   │       │   │       ├── LightDarkPreferenceButton.qml
│   │   │       │   │       ├── MaterialCookie.qml
│   │   │       │   │       ├── MaterialLoadingIndicator.qml
│   │   │       │   │       ├── MaterialShape.qml
│   │   │       │   │       ├── MaterialShapeWrappedMaterialSymbol.qml
│   │   │       │   │       ├── MaterialSymbol.qml
│   │   │       │   │       ├── MaterialTextArea.qml
│   │   │       │   │       ├── MaterialTextField.qml
│   │   │       │   │       ├── MenuButton.qml
│   │   │       │   │       ├── NavigationRail.qml
│   │   │       │   │       ├── NavigationRailButton.qml
│   │   │       │   │       ├── NavigationRailExpandButton.qml
│   │   │       │   │       ├── NavigationRailTabArray.qml
│   │   │       │   │       ├── NoticeBox.qml
│   │   │       │   │       ├── NotificationActionButton.qml
│   │   │       │   │       ├── NotificationAppIcon.qml
│   │   │       │   │       ├── NotificationGroup.qml
│   │   │       │   │       ├── NotificationGroupExpandButton.qml
│   │   │       │   │       ├── NotificationItem.qml
│   │   │       │   │       ├── NotificationListView.qml
│   │   │       │   │       ├── OptionalMaterialSymbol.qml
│   │   │       │   │       ├── PagePlaceholder.qml
│   │   │       │   │       ├── PointingHandInteraction.qml
│   │   │       │   │       ├── PointingHandLinkHover.qml
│   │   │       │   │       ├── PopupToolTip.qml
│   │   │       │   │       ├── Revealer.qml
│   │   │       │   │       ├── RippleButton.qml
│   │   │       │   │       ├── RippleButtonWithIcon.qml
│   │   │       │   │       ├── RoundCorner.qml
│   │   │       │   │       ├── ScrollEdgeFade.qml
│   │   │       │   │       ├── SecondaryTabBar.qml
│   │   │       │   │       ├── SecondaryTabButton.qml
│   │   │       │   │       ├── SelectionDialog.qml
│   │   │       │   │       ├── SelectionGroupButton.qml
│   │   │       │   │       ├── SineCookie.qml
│   │   │       │   │       ├── StyledBlurEffect.qml
│   │   │       │   │       ├── StyledComboBox.qml
│   │   │       │   │       ├── StyledDropShadow.qml
│   │   │       │   │       ├── StyledFlickable.qml
│   │   │       │   │       ├── StyledImage.qml
│   │   │       │   │       ├── StyledIndeterminateProgressBar.qml
│   │   │       │   │       ├── StyledListView.qml
│   │   │       │   │       ├── StyledProgressBar.qml
│   │   │       │   │       ├── StyledRadioButton.qml
│   │   │       │   │       ├── StyledRectangularShadow.qml
│   │   │       │   │       ├── StyledScrollBar.qml
│   │   │       │   │       ├── StyledSlider.qml
│   │   │       │   │       ├── StyledSpinBox.qml
│   │   │       │   │       ├── StyledSwitch.qml
│   │   │       │   │       ├── StyledText.qml
│   │   │       │   │       ├── StyledTextArea.qml
│   │   │       │   │       ├── StyledTextInput.qml
│   │   │       │   │       ├── StyledToolTip.qml
│   │   │       │   │       ├── StyledToolTipContent.qml
│   │   │       │   │       ├── ThumbnailImage.qml
│   │   │       │   │       ├── Toolbar.qml
│   │   │       │   │       ├── ToolbarButton.qml
│   │   │       │   │       ├── ToolbarTabBar.qml
│   │   │       │   │       ├── ToolbarTabButton.qml
│   │   │       │   │       ├── ToolbarTextField.qml
│   │   │       │   │       ├── VerticalButtonGroup.qml
│   │   │       │   │       ├── VibrantToolbarButton.qml
│   │   │       │   │       ├── WaveVisualizer.qml
│   │   │       │   │       ├── WavyLine.qml
│   │   │       │   │       ├── WeekRow.qml
│   │   │       │   │       ├── WindowDialog.qml
│   │   │       │   │       ├── WindowDialogButtonRow.qml
│   │   │       │   │       ├── WindowDialogParagraph.qml
│   │   │       │   │       ├── WindowDialogSectionHeader.qml
│   │   │       │   │       ├── WindowDialogSeparator.qml
│   │   │       │   │       ├── WindowDialogSlider.qml
│   │   │       │   │       ├── WindowDialogTitle.qml
│   │   │       │   │       └── widgetCanvas/
│   │   │       │   │           ├── AbstractOverlayWidget.qml
│   │   │       │   │           ├── AbstractWidget.qml
│   │   │       │   │           └── WidgetCanvas.qml
│   │   │       │   ├── ii/
│   │   │       │   │   ├── background/
│   │   │       │   │   │   ├── Background.qml
│   │   │       │   │   │   └── widgets/
│   │   │       │   │   │       ├── AbstractBackgroundWidget.qml
│   │   │       │   │   │       ├── clock/
│   │   │       │   │   │       │   ├── ClockText.qml
│   │   │       │   │   │       │   ├── ClockWidget.qml
│   │   │       │   │   │       │   ├── CookieClock.qml
│   │   │       │   │   │       │   ├── CookieQuote.qml
│   │   │       │   │   │       │   ├── DigitalClock.qml
│   │   │       │   │   │       │   ├── HourHand.qml
│   │   │       │   │   │       │   ├── HourMarks.qml
│   │   │       │   │   │       │   ├── MinuteHand.qml
│   │   │       │   │   │       │   ├── SecondHand.qml
│   │   │       │   │   │       │   ├── TimeColumn.qml
│   │   │       │   │   │       │   ├── dateIndicator/
│   │   │       │   │   │       │   │   ├── BubbleDate.qml
│   │   │       │   │   │       │   │   ├── DateIndicator.qml
│   │   │       │   │   │       │   │   ├── RectangleDate.qml
│   │   │       │   │   │       │   │   └── RotatingDate.qml
│   │   │       │   │   │       │   └── minuteMarks/
│   │   │       │   │   │       │       ├── BigHourNumbers.qml
│   │   │       │   │   │       │       ├── Dots.qml
│   │   │       │   │   │       │       ├── Lines.qml
│   │   │       │   │   │       │       └── MinuteMarks.qml
│   │   │       │   │   │       └── weather/
│   │   │       │   │   │           └── WeatherWidget.qml
│   │   │       │   │   ├── bar/
│   │   │       │   │   │   ├── ActiveWindow.qml
│   │   │       │   │   │   ├── Bar.qml
│   │   │       │   │   │   ├── BarContent.qml
│   │   │       │   │   │   ├── BarGroup.qml
│   │   │       │   │   │   ├── BatteryIndicator.qml
│   │   │       │   │   │   ├── BatteryPopup.qml
│   │   │       │   │   │   ├── CircleUtilButton.qml
│   │   │       │   │   │   ├── ClockWidget.qml
│   │   │       │   │   │   ├── ClockWidgetPopup.qml
│   │   │       │   │   │   ├── HyprlandXkbIndicator.qml
│   │   │       │   │   │   ├── LeftSidebarButton.qml
│   │   │       │   │   │   ├── Media.qml
│   │   │       │   │   │   ├── NotificationUnreadCount.qml
│   │   │       │   │   │   ├── Resource.qml
│   │   │       │   │   │   ├── Resources.qml
│   │   │       │   │   │   ├── ResourcesPopup.qml
│   │   │       │   │   │   ├── ScrollHint.qml
│   │   │       │   │   │   ├── StyledPopup.qml
│   │   │       │   │   │   ├── StyledPopupHeaderRow.qml
│   │   │       │   │   │   ├── StyledPopupValueRow.qml
│   │   │       │   │   │   ├── SysTray.qml
│   │   │       │   │   │   ├── SysTrayItem.qml
│   │   │       │   │   │   ├── SysTrayMenu.qml
│   │   │       │   │   │   ├── SysTrayMenuEntry.qml
│   │   │       │   │   │   ├── UtilButtons.qml
│   │   │       │   │   │   ├── Workspaces.qml
│   │   │       │   │   │   └── weather/
│   │   │       │   │   │       ├── WeatherBar.qml
│   │   │       │   │   │       ├── WeatherCard.qml
│   │   │       │   │   │       └── WeatherPopup.qml
│   │   │       │   │   ├── cheatsheet/
│   │   │       │   │   │   ├── Cheatsheet.qml
│   │   │       │   │   │   ├── CheatsheetKeybinds.qml
│   │   │       │   │   │   ├── CheatsheetPeriodicTable.qml
│   │   │       │   │   │   ├── ElementTile.qml
│   │   │       │   │   │   └── periodic_table.js
│   │   │       │   │   ├── dock/
│   │   │       │   │   │   ├── Dock.qml
│   │   │       │   │   │   ├── DockAppButton.qml
│   │   │       │   │   │   ├── DockApps.qml
│   │   │       │   │   │   ├── DockButton.qml
│   │   │       │   │   │   └── DockSeparator.qml
│   │   │       │   │   ├── lock/
│   │   │       │   │   │   ├── Lock.qml
│   │   │       │   │   │   ├── LockSurface.qml
│   │   │       │   │   │   └── PasswordChars.qml
│   │   │       │   │   ├── mediaControls/
│   │   │       │   │   │   ├── MediaControls.qml
│   │   │       │   │   │   └── PlayerControl.qml
│   │   │       │   │   ├── notificationPopup/
│   │   │       │   │   │   └── NotificationPopup.qml
│   │   │       │   │   ├── onScreenDisplay/
│   │   │       │   │   │   ├── OnScreenDisplay.qml
│   │   │       │   │   │   ├── OsdValueIndicator.qml
│   │   │       │   │   │   └── indicators/
│   │   │       │   │   │       ├── BrightnessIndicator.qml
│   │   │       │   │   │       └── VolumeIndicator.qml
│   │   │       │   │   ├── onScreenKeyboard/
│   │   │       │   │   │   ├── OnScreenKeyboard.qml
│   │   │       │   │   │   ├── OskContent.qml
│   │   │       │   │   │   ├── OskKey.qml
│   │   │       │   │   │   └── layouts.js
│   │   │       │   │   ├── overlay/
│   │   │       │   │   │   ├── Overlay.qml
│   │   │       │   │   │   ├── OverlayBackground.qml
│   │   │       │   │   │   ├── OverlayContent.qml
│   │   │       │   │   │   ├── OverlayContext.qml
│   │   │       │   │   │   ├── OverlayTaskbar.qml
│   │   │       │   │   │   ├── OverlayWidgetDelegateChooser.qml
│   │   │       │   │   │   ├── StyledOverlayWidget.qml
│   │   │       │   │   │   ├── crosshair/
│   │   │       │   │   │   │   ├── Crosshair.qml
│   │   │       │   │   │   │   └── CrosshairContent.qml
│   │   │       │   │   │   ├── floatingImage/
│   │   │       │   │   │   │   └── FloatingImage.qml
│   │   │       │   │   │   ├── fpsLimiter/
│   │   │       │   │   │   │   ├── FpsLimiter.qml
│   │   │       │   │   │   │   └── FpsLimiterContent.qml
│   │   │       │   │   │   ├── notes/
│   │   │       │   │   │   │   ├── Notes.qml
│   │   │       │   │   │   │   └── NotesContent.qml
│   │   │       │   │   │   ├── recorder/
│   │   │       │   │   │   │   └── Recorder.qml
│   │   │       │   │   │   ├── resources/
│   │   │       │   │   │   │   └── Resources.qml
│   │   │       │   │   │   └── volumeMixer/
│   │   │       │   │   │       └── VolumeMixer.qml
│   │   │       │   │   ├── overview/
│   │   │       │   │   │   ├── Overview.qml
│   │   │       │   │   │   ├── OverviewWidget.qml
│   │   │       │   │   │   ├── OverviewWindow.qml
│   │   │       │   │   │   ├── SearchBar.qml
│   │   │       │   │   │   ├── SearchItem.qml
│   │   │       │   │   │   └── SearchWidget.qml
│   │   │       │   │   ├── polkit/
│   │   │       │   │   │   ├── Polkit.qml
│   │   │       │   │   │   └── PolkitContent.qml
│   │   │       │   │   ├── regionSelector/
│   │   │       │   │   │   ├── CircleSelectionDetails.qml
│   │   │       │   │   │   ├── CursorGuide.qml
│   │   │       │   │   │   ├── OptionsToolbar.qml
│   │   │       │   │   │   ├── RectCornersSelectionDetails.qml
│   │   │       │   │   │   ├── RegionFunctions.qml
│   │   │       │   │   │   ├── RegionSelection.qml
│   │   │       │   │   │   ├── RegionSelector.qml
│   │   │       │   │   │   └── TargetRegion.qml
│   │   │       │   │   ├── screenCorners/
│   │   │       │   │   │   └── ScreenCorners.qml
│   │   │       │   │   ├── sessionScreen/
│   │   │       │   │   │   ├── SessionActionButton.qml
│   │   │       │   │   │   └── SessionScreen.qml
│   │   │       │   │   ├── sidebarLeft/
│   │   │       │   │   │   ├── AiChat.qml
│   │   │       │   │   │   ├── Anime.qml
│   │   │       │   │   │   ├── ApiCommandButton.qml
│   │   │       │   │   │   ├── ApiInputBoxIndicator.qml
│   │   │       │   │   │   ├── DescriptionBox.qml
│   │   │       │   │   │   ├── ScrollToBottomButton.qml
│   │   │       │   │   │   ├── SidebarLeft.qml
│   │   │       │   │   │   ├── SidebarLeftContent.qml
│   │   │       │   │   │   ├── Translator.qml
│   │   │       │   │   │   ├── aiChat/
│   │   │       │   │   │   │   ├── AiMessage.qml
│   │   │       │   │   │   │   ├── AiMessageControlButton.qml
│   │   │       │   │   │   │   ├── AnnotationSourceButton.qml
│   │   │       │   │   │   │   ├── AttachedFileIndicator.qml
│   │   │       │   │   │   │   ├── MessageCodeBlock.qml
│   │   │       │   │   │   │   ├── MessageTextBlock.qml
│   │   │       │   │   │   │   ├── MessageThinkBlock.qml
│   │   │       │   │   │   │   └── SearchQueryButton.qml
│   │   │       │   │   │   ├── anime/
│   │   │       │   │   │   │   ├── BooruImage.qml
│   │   │       │   │   │   │   └── BooruResponse.qml
│   │   │       │   │   │   └── translator/
│   │   │       │   │   │       ├── LanguageSelectorButton.qml
│   │   │       │   │   │       └── TextCanvas.qml
│   │   │       │   │   ├── sidebarRight/
│   │   │       │   │   │   ├── BottomWidgetGroup.qml
│   │   │       │   │   │   ├── CenterWidgetGroup.qml
│   │   │       │   │   │   ├── QuickSliders.qml
│   │   │       │   │   │   ├── SidebarRight.qml
│   │   │       │   │   │   ├── SidebarRightContent.qml
│   │   │       │   │   │   ├── bluetoothDevices/
│   │   │       │   │   │   │   ├── BluetoothDeviceItem.qml
│   │   │       │   │   │   │   └── BluetoothDialog.qml
│   │   │       │   │   │   ├── calendar/
│   │   │       │   │   │   │   ├── CalendarDayButton.qml
│   │   │       │   │   │   │   ├── CalendarHeaderButton.qml
│   │   │       │   │   │   │   ├── CalendarWidget.qml
│   │   │       │   │   │   │   └── calendar_layout.js
│   │   │       │   │   │   ├── nightLight/
│   │   │       │   │   │   │   └── NightLightDialog.qml
│   │   │       │   │   │   ├── notifications/
│   │   │       │   │   │   │   ├── NotificationList.qml
│   │   │       │   │   │   │   └── NotificationStatusButton.qml
│   │   │       │   │   │   ├── pomodoro/
│   │   │       │   │   │   │   ├── PomodoroTimer.qml
│   │   │       │   │   │   │   ├── PomodoroWidget.qml
│   │   │       │   │   │   │   └── Stopwatch.qml
│   │   │       │   │   │   ├── quickToggles/
│   │   │       │   │   │   │   ├── AbstractQuickPanel.qml
│   │   │       │   │   │   │   ├── AndroidQuickPanel.qml
│   │   │       │   │   │   │   ├── ClassicQuickPanel.qml
│   │   │       │   │   │   │   ├── androidStyle/
│   │   │       │   │   │   │   │   ├── AndroidAntiFlashbangToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidAudioToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidBluetoothToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidCloudflareWarpToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidColorPickerToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidDarkModeToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidEasyEffectsToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidGameModeToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidIdleInhibitorToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidMicToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidMusicRecognition.qml
│   │   │       │   │   │   │   │   ├── AndroidNetworkToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidNightLightToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidNotificationToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidOnScreenKeyboardToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidPowerProfileToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidQuickToggleButton.qml
│   │   │       │   │   │   │   │   ├── AndroidScreenSnipToggle.qml
│   │   │       │   │   │   │   │   └── AndroidToggleDelegateChooser.qml
│   │   │       │   │   │   │   └── classicStyle/
│   │   │       │   │   │   │       ├── BluetoothToggle.qml
│   │   │       │   │   │   │       ├── CloudflareWarp.qml
│   │   │       │   │   │   │       ├── EasyEffectsToggle.qml
│   │   │       │   │   │   │       ├── GameMode.qml
│   │   │       │   │   │   │       ├── IdleInhibitor.qml
│   │   │       │   │   │   │       ├── NetworkToggle.qml
│   │   │       │   │   │   │       ├── NightLight.qml
│   │   │       │   │   │   │       └── QuickToggleButton.qml
│   │   │       │   │   │   ├── todo/
│   │   │       │   │   │   │   ├── TaskList.qml
│   │   │       │   │   │   │   ├── TodoItemActionButton.qml
│   │   │       │   │   │   │   └── TodoWidget.qml
│   │   │       │   │   │   ├── volumeMixer/
│   │   │       │   │   │   │   ├── AudioDeviceSelectorButton.qml
│   │   │       │   │   │   │   ├── VolumeDialog.qml
│   │   │       │   │   │   │   ├── VolumeDialogContent.qml
│   │   │       │   │   │   │   └── VolumeMixerEntry.qml
│   │   │       │   │   │   └── wifiNetworks/
│   │   │       │   │   │       ├── WifiDialog.qml
│   │   │       │   │   │       └── WifiNetworkItem.qml
│   │   │       │   │   ├── verticalBar/
│   │   │       │   │   │   ├── BatteryIndicator.qml
│   │   │       │   │   │   ├── Resource.qml
│   │   │       │   │   │   ├── Resources.qml
│   │   │       │   │   │   ├── VerticalBar.qml
│   │   │       │   │   │   ├── VerticalBarContent.qml
│   │   │       │   │   │   ├── VerticalClockWidget.qml
│   │   │       │   │   │   ├── VerticalDateWidget.qml
│   │   │       │   │   │   └── VerticalMedia.qml
│   │   │       │   │   └── wallpaperSelector/
│   │   │       │   │       ├── WallpaperDirectoryItem.qml
│   │   │       │   │       ├── WallpaperSelector.qml
│   │   │       │   │       └── WallpaperSelectorContent.qml
│   │   │       │   ├── settings/
│   │   │       │   │   ├── About.qml
│   │   │       │   │   ├── AdvancedConfig.qml
│   │   │       │   │   ├── BackgroundConfig.qml
│   │   │       │   │   ├── BarConfig.qml
│   │   │       │   │   ├── GeneralConfig.qml
│   │   │       │   │   ├── InterfaceConfig.qml
│   │   │       │   │   ├── QuickConfig.qml
│   │   │       │   │   └── ServicesConfig.qml
│   │   │       │   └── waffle/
│   │   │       │       ├── README.md
│   │   │       │       ├── actionCenter/
│   │   │       │       │   ├── ActionCenterContent.qml
│   │   │       │       │   ├── ActionCenterContext.qml
│   │   │       │       │   ├── ExpandableChoiceButton.qml
│   │   │       │       │   ├── HeaderRow.qml
│   │   │       │       │   ├── MediaPaneContent.qml
│   │   │       │       │   ├── SectionText.qml
│   │   │       │       │   ├── ToggleItem.qml
│   │   │       │       │   ├── WaffleActionCenter.qml
│   │   │       │       │   ├── bluetooth/
│   │   │       │       │   │   ├── BluetoothControl.qml
│   │   │       │       │   │   └── BluetoothDeviceItem.qml
│   │   │       │       │   ├── mainPage/
│   │   │       │       │   │   ├── MainPageBody.qml
│   │   │       │       │   │   ├── MainPageBodySliders.qml
│   │   │       │       │   │   ├── MainPageBodyToggles.qml
│   │   │       │       │   │   └── MainPageFooter.qml
│   │   │       │       │   ├── nightLight/
│   │   │       │       │   │   └── NightLightControl.qml
│   │   │       │       │   ├── toggles/
│   │   │       │       │   │   ├── ActionCenterToggleButton.qml
│   │   │       │       │   │   ├── ActionCenterTogglesDelegateChooser.qml
│   │   │       │       │   │   └── WNetworkToggle.qml
│   │   │       │       │   ├── volumeControl/
│   │   │       │       │   │   ├── VolumeControl.qml
│   │   │       │       │   │   └── VolumeEntry.qml
│   │   │       │       │   └── wifi/
│   │   │       │       │       ├── WWifiNetworkItem.qml
│   │   │       │       │       └── WifiControl.qml
│   │   │       │       ├── background/
│   │   │       │       │   └── WaffleBackground.qml
│   │   │       │       ├── bar/
│   │   │       │       │   ├── AppButton.qml
│   │   │       │       │   ├── BarButton.qml
│   │   │       │       │   ├── BarIconButton.qml
│   │   │       │       │   ├── BarMenu.qml
│   │   │       │       │   ├── BarPopup.qml
│   │   │       │       │   ├── BarToolTip.qml
│   │   │       │       │   ├── SearchButton.qml
│   │   │       │       │   ├── StartButton.qml
│   │   │       │       │   ├── SystemButton.qml
│   │   │       │       │   ├── TaskViewButton.qml
│   │   │       │       │   ├── TimeButton.qml
│   │   │       │       │   ├── UpdatesButton.qml
│   │   │       │       │   ├── WaffleBar.qml
│   │   │       │       │   ├── WaffleBarContent.qml
│   │   │       │       │   ├── WidgetsButton.qml
│   │   │       │       │   ├── tasks/
│   │   │       │       │   │   ├── TaskAppButton.qml
│   │   │       │       │   │   ├── TaskPreview.qml
│   │   │       │       │   │   ├── Tasks.qml
│   │   │       │       │   │   └── WindowPreview.qml
│   │   │       │       │   └── tray/
│   │   │       │       │       ├── Tray.qml
│   │   │       │       │       ├── TrayButton.qml
│   │   │       │       │       └── TrayOverflowMenu.qml
│   │   │       │       ├── lock/
│   │   │       │       │   └── WaffleLock.qml
│   │   │       │       ├── looks/
│   │   │       │       │   ├── AcrylicButton.qml
│   │   │       │       │   ├── AcrylicRectangle.qml
│   │   │       │       │   ├── BodyRectangle.qml
│   │   │       │       │   ├── CloseButton.qml
│   │   │       │       │   ├── FluentIcon.qml
│   │   │       │       │   ├── FooterRectangle.qml
│   │   │       │       │   ├── Looks.qml
│   │   │       │       │   ├── VerticalPageIndicator.qml
│   │   │       │       │   ├── WAmbientShadow.qml
│   │   │       │       │   ├── WAppIcon.qml
│   │   │       │       │   ├── WBarAttachedPanelContent.qml
│   │   │       │       │   ├── WBorderedButton.qml
│   │   │       │       │   ├── WBorderlessButton.qml
│   │   │       │       │   ├── WButton.qml
│   │   │       │       │   ├── WChoiceButton.qml
│   │   │       │       │   ├── WFadeLoader.qml
│   │   │       │       │   ├── WIcons.qml
│   │   │       │       │   ├── WIndeterminateProgressBar.qml
│   │   │       │       │   ├── WListView.qml
│   │   │       │       │   ├── WMenu.qml
│   │   │       │       │   ├── WMenuItem.qml
│   │   │       │       │   ├── WMouseAreaButton.qml
│   │   │       │       │   ├── WPane.qml
│   │   │       │       │   ├── WPanelIconButton.qml
│   │   │       │       │   ├── WPanelPageColumn.qml
│   │   │       │       │   ├── WPanelSeparator.qml
│   │   │       │       │   ├── WPopupToolTip.qml
│   │   │       │       │   ├── WProgressBar.qml
│   │   │       │       │   ├── WRectangularShadow.qml
│   │   │       │       │   ├── WRectangularShadowThis.qml
│   │   │       │       │   ├── WScrollBar.qml
│   │   │       │       │   ├── WSlider.qml
│   │   │       │       │   ├── WStackView.qml
│   │   │       │       │   ├── WSwitch.qml
│   │   │       │       │   ├── WText.qml
│   │   │       │       │   ├── WTextButton.qml
│   │   │       │       │   ├── WTextField.qml
│   │   │       │       │   ├── WTextInput.qml
│   │   │       │       │   ├── WTextWithFixedWidth.qml
│   │   │       │       │   ├── WToolTip.qml
│   │   │       │       │   ├── WToolTipContent.qml
│   │   │       │       │   ├── WToolbar.qml
│   │   │       │       │   ├── WToolbarButton.qml
│   │   │       │       │   ├── WToolbarIconButton.qml
│   │   │       │       │   ├── WToolbarIconTabButton.qml
│   │   │       │       │   ├── WToolbarSeparator.qml
│   │   │       │       │   ├── WToolbarTabBar.qml
│   │   │       │       │   └── WUserAvatar.qml
│   │   │       │       ├── notificationCenter/
│   │   │       │       │   ├── CalendarWidget.qml
│   │   │       │       │   ├── DateHeader.qml
│   │   │       │       │   ├── FocusFooter.qml
│   │   │       │       │   ├── NotificationCenterContent.qml
│   │   │       │       │   ├── NotificationHeaderButton.qml
│   │   │       │       │   ├── NotificationPaneContent.qml
│   │   │       │       │   ├── SmallBorderedIconAndTextButton.qml
│   │   │       │       │   ├── SmallBorderedIconButton.qml
│   │   │       │       │   ├── WNotificationAppIcon.qml
│   │   │       │       │   ├── WNotificationDismissAnim.qml
│   │   │       │       │   ├── WNotificationGroup.qml
│   │   │       │       │   ├── WSingleNotification.qml
│   │   │       │       │   └── WaffleNotificationCenter.qml
│   │   │       │       ├── notificationPopup/
│   │   │       │       │   └── WaffleNotificationPopup.qml
│   │   │       │       ├── onScreenDisplay/
│   │   │       │       │   ├── BrightnessOSD.qml
│   │   │       │       │   ├── OSDValue.qml
│   │   │       │       │   ├── VolumeOSD.qml
│   │   │       │       │   └── WaffleOSD.qml
│   │   │       │       ├── polkit/
│   │   │       │       │   ├── WPolkitContent.qml
│   │   │       │       │   └── WafflePolkit.qml
│   │   │       │       ├── screenSnip/
│   │   │       │       │   ├── WRectangularSelection.qml
│   │   │       │       │   ├── WRegionSelectionPanel.qml
│   │   │       │       │   └── WScreenSnip.qml
│   │   │       │       ├── sessionScreen/
│   │   │       │       │   ├── PowerButton.qml
│   │   │       │       │   ├── SessionScreenContent.qml
│   │   │       │       │   ├── WSessionScreenTextButton.qml
│   │   │       │       │   └── WaffleSessionScreen.qml
│   │   │       │       ├── startMenu/
│   │   │       │       │   ├── SearchBar.qml
│   │   │       │       │   ├── StartMenuContent.qml
│   │   │       │       │   ├── StartMenuContext.qml
│   │   │       │       │   ├── WaffleStartMenu.qml
│   │   │       │       │   ├── searchPage/
│   │   │       │       │   │   ├── SearchEntryIcon.qml
│   │   │       │       │   │   ├── SearchPageContent.qml
│   │   │       │       │   │   ├── SearchResultButton.qml
│   │   │       │       │   │   ├── SearchResults.qml
│   │   │       │       │   │   └── TagStrip.qml
│   │   │       │       │   └── startPage/
│   │   │       │       │       ├── AggregatedAppCategoryModel.qml
│   │   │       │       │       ├── AllAppsGrid.qml
│   │   │       │       │       ├── AppCategoryGrid.qml
│   │   │       │       │       ├── BigAppGrid.qml
│   │   │       │       │       ├── StartAppButton.qml
│   │   │       │       │       ├── StartPageApps.qml
│   │   │       │       │       ├── StartPageContent.qml
│   │   │       │       │       └── StartUserButton.qml
│   │   │       │       └── taskView/
│   │   │       │           ├── TaskViewContent.qml
│   │   │       │           ├── TaskViewWindow.qml
│   │   │       │           ├── TaskViewWorkspace.qml
│   │   │       │           ├── WaffleTaskView.qml
│   │   │       │           └── window-layout.js
│   │   │       ├── panelFamilies/
│   │   │       │   ├── IllogicalImpulseFamily.qml
│   │   │       │   ├── PanelLoader.qml
│   │   │       │   └── WaffleFamily.qml
│   │   │       ├── scripts/
│   │   │       │   ├── ai/
│   │   │       │   │   ├── gemini-categorize-wallpaper.sh
│   │   │       │   │   ├── gemini-translate.sh
│   │   │       │   │   └── show-installed-ollama-models.sh
│   │   │       │   ├── cava/
│   │   │       │   │   └── raw_output_config.txt
│   │   │       │   ├── colors/
│   │   │       │   │   ├── applycolor.sh
│   │   │       │   │   ├── code/
│   │   │       │   │   │   └── material-code-set-color.sh
│   │   │       │   │   ├── generate_colors_material.py
│   │   │       │   │   ├── random/
│   │   │       │   │   │   ├── random_konachan_wall.sh
│   │   │       │   │   │   └── random_osu_wall.sh
│   │   │       │   │   ├── scheme_for_image.py
│   │   │       │   │   ├── switchwall.sh
│   │   │       │   │   └── terminal/
│   │   │       │   │       ├── kitty-theme.conf
│   │   │       │   │       ├── scheme-base.json
│   │   │       │   │       └── sequences.txt
│   │   │       │   ├── hyprland/
│   │   │       │   │   ├── get_keybinds.py
│   │   │       │   │   └── hyprconfigurator.py
│   │   │       │   ├── images/
│   │   │       │   │   ├── find-regions-venv.sh
│   │   │       │   │   ├── find_regions.py
│   │   │       │   │   ├── least-busy-region-venv.sh
│   │   │       │   │   └── least_busy_region.py
│   │   │       │   ├── keyring/
│   │   │       │   │   ├── is_unlocked.sh
│   │   │       │   │   ├── try_lookup.sh
│   │   │       │   │   └── unlock.sh
│   │   │       │   ├── kvantum/
│   │   │       │   │   ├── adwsvg.py
│   │   │       │   │   ├── adwsvgDark.py
│   │   │       │   │   ├── changeAdwColors.py
│   │   │       │   │   └── materialQT.sh
│   │   │       │   ├── musicRecognition/
│   │   │       │   │   └── recognize-music.sh
│   │   │       │   ├── thumbnails/
│   │   │       │   │   ├── generate-thumbnails-magick.sh
│   │   │       │   │   ├── thumbgen-venv.sh
│   │   │       │   │   └── thumbgen.py
│   │   │       │   └── videos/
│   │   │       │       └── record.sh
│   │   │       ├── services/
│   │   │       │   ├── Ai.qml
│   │   │       │   ├── AppSearch.qml
│   │   │       │   ├── Audio.qml
│   │   │       │   ├── Battery.qml
│   │   │       │   ├── BluetoothStatus.qml
│   │   │       │   ├── Booru.qml
│   │   │       │   ├── BooruResponseData.qml
│   │   │       │   ├── Brightness.qml
│   │   │       │   ├── Cliphist.qml
│   │   │       │   ├── ConflictKiller.qml
│   │   │       │   ├── DateTime.qml
│   │   │       │   ├── EasyEffects.qml
│   │   │       │   ├── Emojis.qml
│   │   │       │   ├── FirstRunExperience.qml
│   │   │       │   ├── GlobalFocusGrab.qml
│   │   │       │   ├── HyprlandAntiFlashbangShader.qml
│   │   │       │   ├── HyprlandConfig.qml
│   │   │       │   ├── HyprlandData.qml
│   │   │       │   ├── HyprlandKeybinds.qml
│   │   │       │   ├── HyprlandXkb.qml
│   │   │       │   ├── Hyprsunset.qml
│   │   │       │   ├── Idle.qml
│   │   │       │   ├── KeyringStorage.qml
│   │   │       │   ├── LatexRenderer.qml
│   │   │       │   ├── LauncherApps.qml
│   │   │       │   ├── LauncherSearch.qml
│   │   │       │   ├── MaterialThemeLoader.qml
│   │   │       │   ├── MprisController.qml
│   │   │       │   ├── Network.qml
│   │   │       │   ├── Notifications.qml
│   │   │       │   ├── PolkitService.qml
│   │   │       │   ├── Privacy.qml
│   │   │       │   ├── ResourceUsage.qml
│   │   │       │   ├── SessionWarnings.qml
│   │   │       │   ├── SongRec.qml
│   │   │       │   ├── SystemInfo.qml
│   │   │       │   ├── TaskbarApps.qml
│   │   │       │   ├── TimerService.qml
│   │   │       │   ├── Todo.qml
│   │   │       │   ├── Translation.qml
│   │   │       │   ├── TrayService.qml
│   │   │       │   ├── Updates.qml
│   │   │       │   ├── Wallpapers.qml
│   │   │       │   ├── Weather.qml
│   │   │       │   ├── Ydotool.qml
│   │   │       │   ├── ai/
│   │   │       │   │   ├── AiMessageData.qml
│   │   │       │   │   ├── AiModel.qml
│   │   │       │   │   ├── ApiStrategy.qml
│   │   │       │   │   ├── GeminiApiStrategy.qml
│   │   │       │   │   ├── MistralApiStrategy.qml
│   │   │       │   │   └── OpenAiApiStrategy.qml
│   │   │       │   ├── hyprlandAntiFlashbangShader/
│   │   │       │   │   └── anti-flashbang.glsl
│   │   │       │   └── network/
│   │   │       │       └── WifiAccessPoint.qml
│   │   │       ├── settings.qml
│   │   │       ├── shell.qml
│   │   │       ├── translations/
│   │   │       │   ├── de_DE.json
│   │   │       │   ├── en_US.json
│   │   │       │   ├── he_HE.json
│   │   │       │   ├── id_ID.json
│   │   │       │   ├── it_IT.json
│   │   │       │   ├── ja_JP.json
│   │   │       │   ├── pt_BR.json
│   │   │       │   ├── ru_RU.json
│   │   │       │   ├── tools/
│   │   │       │   │   ├── README.md
│   │   │       │   │   ├── guide/
│   │   │       │   │   │   ├── translation-tools-guide-zh_CN.md
│   │   │       │   │   │   └── translation-tools-guide.md
│   │   │       │   │   ├── manage-translations.sh
│   │   │       │   │   ├── translation-cleaner.py
│   │   │       │   │   └── translation-manager.py
│   │   │       │   ├── tr_TR.json
│   │   │       │   ├── uk_UA.json
│   │   │       │   ├── vi_VN.json
│   │   │       │   └── zh_CN.json
│   │   │       └── welcome.qml
│   │   ├── starship.toml
│   │   ├── thorium-flags.conf
│   │   ├── wlogout/
│   │   │   ├── layout
│   │   │   └── style.css
│   │   ├── xdg-desktop-portal/
│   │   │   └── hyprland-portals.conf
│   │   └── zshrc.d/
│   │       ├── auto-Hypr.sh
│   │       ├── dots-hyprland.zsh
│   │       └── shortcuts.zsh
│   └── .local/
│       └── share/
│           └── konsole/
│               └── Profile 1.profile
├── dots-extra/
│   ├── emacs/
│   │   └── material-theme.el
│   ├── fcitx5/
│   │   └── conf/
│   │       └── classicui.conf
│   ├── fedora/
│   │   └── hypr/
│   │       └── hyprland/
│   │           └── execs.conf
│   ├── fontsets/
│   │   └── ar/
│   │       └── fonts.conf
│   ├── swaylock/
│   │   └── config
│   └── via-nix/
│       ├── README.md
│       └── hypridle.conf
├── licenses/
│   ├── LGPL-3.0.txt
│   ├── MIT.txt
│   └── README.md
├── sdata/
│   ├── README.md
│   ├── deps-info.md
│   ├── dist-arch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── illogical-impulse-audio/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-backlight/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-basic/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-bibata-modern-classic-bin/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-fonts-themes/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-hyprland/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-kde/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-microtex-git/
│   │   │   ├── .gitignore
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-oneui4-icons-git/
│   │   │   ├── .gitignore
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-portal/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-python/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-quickshell-git/
│   │   │   ├── .gitignore
│   │   │   ├── PKGBUILD
│   │   │   └── quickshell-check.hook
│   │   ├── illogical-impulse-screencapture/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-toolkit/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-widgets/
│   │   │   └── PKGBUILD
│   │   ├── install-deps.sh
│   │   ├── outdate-detect-mode
│   │   ├── previous_dependencies.conf
│   │   └── uninstall-deps.sh
│   ├── dist-fedora/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── SPECS/
│   │   │   ├── hyprland-qt-support.spec
│   │   │   └── quickshell-git.spec
│   │   ├── feddeps.toml
│   │   ├── install-deps.sh
│   │   ├── outdate-detect-mode
│   │   └── uninstall-deps.sh
│   ├── dist-gentoo/
│   │   ├── README.md
│   │   ├── additional-useflags
│   │   ├── hyprland-qtutils-private.patch
│   │   ├── illogical-impulse-audio/
│   │   │   └── illogical-impulse-audio-1.0-r1.ebuild
│   │   ├── illogical-impulse-backlight/
│   │   │   └── illogical-impulse-backlight-1.0-r1.ebuild
│   │   ├── illogical-impulse-basic/
│   │   │   └── illogical-impulse-basic-1.0-r2.ebuild
│   │   ├── illogical-impulse-bibata-modern-classic-bin/
│   │   │   └── illogical-impulse-bibata-modern-classic-bin-2.0.6-r1.ebuild
│   │   ├── illogical-impulse-fonts-themes/
│   │   │   └── illogical-impulse-fonts-themes-1.0-r2.ebuild
│   │   ├── illogical-impulse-hyprland/
│   │   │   └── illogical-impulse-hyprland-1.0-r3.ebuild
│   │   ├── illogical-impulse-kde/
│   │   │   └── illogical-impulse-kde-1.0-r1.ebuild
│   │   ├── illogical-impulse-microtex-git/
│   │   │   └── illogical-impulse-microtex-git-1.0-r1.ebuild
│   │   ├── illogical-impulse-oneui4-icons-git/
│   │   │   └── illogical-impulse-oneui4-icons-git-1.0-r1.ebuild
│   │   ├── illogical-impulse-portal/
│   │   │   └── illogical-impulse-portal-1.0-r1.ebuild
│   │   ├── illogical-impulse-python/
│   │   │   └── illogical-impulse-python-1.1-r1.ebuild
│   │   ├── illogical-impulse-quickshell-git/
│   │   │   └── illogical-impulse-quickshell-git-9999-r5.ebuild
│   │   ├── illogical-impulse-screencapture/
│   │   │   └── illogical-impulse-screencapture-1.0-r1.ebuild
│   │   ├── illogical-impulse-toolkit/
│   │   │   └── illogical-impulse-toolkit-1.0-r1.ebuild
│   │   ├── illogical-impulse-widgets/
│   │   │   └── illogical-impulse-widgets-1.0-r4.ebuild
│   │   ├── import-local-pkgs.sh
│   │   ├── install-deps.sh
│   │   ├── keywords
│   │   ├── local-pkgs/
│   │   │   ├── fonts-and-themes/
│   │   │   │   ├── breeze-plus-6.2.5-r1.ebuild
│   │   │   │   ├── darkly-0.5.24-r1.ebuild
│   │   │   │   ├── material-symbols-variable-9999.ebuild
│   │   │   │   ├── readex-pro-1.0-r1.ebuild
│   │   │   │   ├── rubik-vf-1.0-r1.ebuild
│   │   │   │   └── space-grotesk-1.1.4-r1.ebuild
│   │   │   └── widgets/
│   │   │       └── songrec-0.4.3-r1.ebuild
│   │   ├── outdate-detect-mode
│   │   ├── uninstall-deps.sh
│   │   └── useflags
│   ├── dist-nix/
│   │   ├── README.md
│   │   ├── home-manager/
│   │   │   ├── flake.nix
│   │   │   ├── home.nix
│   │   │   └── quickshell.nix
│   │   ├── install-deps.sh
│   │   └── outdate-detect-mode
│   ├── lib/
│   │   ├── dist-determine.sh
│   │   ├── environment-variables.sh
│   │   ├── functions.sh
│   │   └── package-installers.sh
│   ├── subcmd-checkdeps/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-exp-merge/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-exp-update/
│   │   ├── 0.run.sh
│   │   ├── exp-update-tester.sh
│   │   └── options.sh
│   ├── subcmd-install/
│   │   ├── 0.greeting.sh
│   │   ├── 1.deps-router.sh
│   │   ├── 2.setups.sh
│   │   ├── 3.files-exp.sh
│   │   ├── 3.files-exp.yaml
│   │   ├── 3.files-legacy.sh
│   │   ├── 3.files.sh
│   │   └── options.sh
│   ├── subcmd-resetfirstrun/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-uninstall/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-virtmon/
│   │   ├── 0.run.sh
│   │   ├── hypr_mon_guard
│   │   └── options.sh
│   └── uv/
│       ├── README.md
│       ├── requirements.in
│       ├── requirements.txt
│       └── shell.nix
└── setup

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contributing

- Please, please, please, make multiple PRs if you have many features/fixes, and don't shove your personal changes along with the PR, including changed defaults
- We can accept features that we do not personally want, but in that case we will ask you to make it configurable/optionally loaded.
- If you want to start working on something _big_ to contribute, it might be a good idea to ask first to not waste your effort (but if you've already done it for yourself, it doesn't hurt to submit).

# Translations

See `dots/.config/quickshell/ii/translations/tools`

# Code

## Dynamic loading

- If something's not always necessary, especially when guarded by a config option to enable/disable, put it in a `Loader`
  - Note that you will need to declare positioning properties (like `anchors`) in the `Loader`, not the `sourceComponent`
  - When something that's to be dynamically loaded doesn't affect its parent layout, you can have a fading animation by using FadeLoader and set the `shown` prop instead of `active` and `visible`

## Practical concerns

- Make sure what you add does not require significant resources for a minor purpose or harm usability just for the sake of looking nice. The dotfiles must remain practical for daily driving.
- If there is something really fancy and impractical anyway, add a config option for it and make sure it's disabled by default (example: constantly rotating background clock)

## Style

- Spaces
  - Space properties and children data into meaningful groups. (but of course, don't use 2+ blanks in a row)
  - Put spaces between text and operators: `if (condition) { ... } else { ... }` instead of `if(condition){ ... }else{ ... }`
- As you can see, it's pretty easy to use lots of nesting. There's no hard limit, end-4 himself nests a lot too, but avoid/mitigate that:
  - Prefer early return: Use something like `if (!condition) return; doStuff();` instead of `if (condition) { doStuff() }`
  - If you feel it's a bother to refractor something into a new file, remember there's `component` to declare reusable components in the same file.

# Setting up

The following instruction assumes that you have an Arch(-based) Linux system.

## Complete

_Might not be necessary depending on what you change, but this is recommended._

- [Install](https://ii.clsty.link/en/ii-qs/01setup/) the dotfiles (if you don't wanna replace your stuff completely, do it on a new user).
- Make changes, copy changes to a fork, create PR.

## Partially working shell

_Most stuff in the shell will work but not everything._

- Install Hyprland and the development version of Quickshell (`yay -S hyprland quickshell-git`).
- Copy `dots/.config/quickshell` folder to your home directory.

## Extra setup for Quickshell
- Quickshell-specific LSP setup: Run `touch ~/.config/quickshell/ii/.qmlls.ini` for proper LSP support.
- Hint for VSCode: Get the official "Qt Qml" extension, go to its settings and change custom exe path to `/usr/bin/qmlls6`.

## Python
If your changes involves using python package or script, please use the virtual environment created by uv as described in `sdata/uv/README.md`.

# Running

- Launch Hyprland (not the "uwsm-managed" one)
- For the shell:
  - Open `~/.config/quickshell/ii` in your code editor.
  - In a terminal run `pkill qs; qs -c ii` to start the shell in the terminal (for logs).
  - Make edits in the opened folder. Changes are reloaded live.


================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: end-4 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']


================================================
FILE: .github/ISSUE_TEMPLATE/1-issue.yml
================================================
name: Issue
description: for reporting any issue
labels: ["ISSUE"]
body:
  - type: markdown
    attributes:
      value: "**Welcome to submit a new issue!**\n- Please search in [existing issues](https://github.com/end-4/dots-hyprland/issues?q=is%3Aissue) before continue.\n- It takes only 3 steps, so please be patient :)\n- NOTE 1: If your issue is not a feature request, and it does not fit into the following form, for example \"how can I edit some widget\", please use [Discussions](https://github.com/end-4/dots-hyprland/discussions) instead.\n- NOTE 2: If your problem is distro specific and you do not use Arch(-based) distros, please submit [Discussion at Extra Distros](https://github.com/end-4/dots-hyprland/discussions/new?category=extra-distros) instead."
  - type: checkboxes
    attributes:
      label: "Step 1. Before you submit"
      description: "Hint: The 2nd and 3rd checkbox is **not** forcely required as you may have failed to do so."
      options:
        - label: I have read the [Troubleshooting](https://ii.clsty.link/en/ii-qs/04troubleshooting/) and [Usage](https://ii.clsty.link/en/ii-qs/02usage/) pages.
          required: true
        - label: I've successfully updated to the latest version following the [guidance](https://ii.clsty.link/en/ii-qs/01setup/#updating).
          required: false # Not required cuz user may have failed to do so
        - label: I've successfully updated the system packages to the latest.
          required: false # Not required cuz user may have failed to do so
        - label: I've ticked the checkboxes without reading their contents
          required: false # Obviously
  # TODO: Use GitHub Action to auto add folding tag if the log contains more than 15 lines, instead of tell user to "paste here" cuz many users actually does not know its meaning (It's also not convenient anyway).
  - type: textarea
    attributes:
      label: "Step 2. Quick diagnose info"
      description: "Run `./diagnose` inside the repo, and paste the result (which is also saved as file `./diagnose.result`) below."
      value: "<details><summary>Quick diagnose</summary>\n\n```\n<!-- Run `./diagnose` inside the repo, and paste the result here! -->\n```\n\n</details>"
    validations:
      required: true

  - type: markdown
    attributes:
      value: |
        **Tips for the following Step 3**
        1. Use `LANG=C LC_ALL=C` to get the output of a command in English, eg. `LANG=C LC_ALL=C date` displays time in English.
        2. If it throws errors, **PLEASE**, attach logs and describe in detail if possible.
           - Bar and widgets not showing? run `pkill qs; qs -c ii` for logs.
           - Installation failed? Run installation again for logs.
           - You may use more code blocks when needed.
        3. In case you are confused, the `<details>`, `<summary>`, `</summary>`, `</details>` are HTML tags for folding the logs (typically very long) inside. Please do not touch them (unless you know what you are doing).
        4. If the logs are suuuuuuper long, consider using an online pastebin service instead.

  - type: textarea
    attributes:
      label: "Step 3. Describe the issue"
      value: "\n<!-- Firsly describe your issue here! -->\n\n<details><summary>Logs</summary>\n\n```\n<!-- Put your log content here!-->\n```\n\n</details>"
    validations:
      required: true

  - type: checkboxes
    attributes:
      label: Reminder
      options:
        - label: I agree that it's usually impossible for others to help me without my logs.
          required: true


================================================
FILE: .github/ISSUE_TEMPLATE/2-feature_request.yml
================================================
name: Feature request
description: Suggest an idea for this project
labels: ["FEATURE"]
body:
  - type: markdown
    attributes:
      value: "NOTE:\n- Please search in [existing issues](https://github.com/end-4/dots-hyprland/issues?q=is%3Aissue) before continue.\n- Please write in **English**."

  - type: textarea
    attributes:
      label: "What would you like to be added?"
      description: "Can be a suggestion for an existing feature. You can suggest a widget, minor user interaction changes.. whatever."

  - type: textarea
    attributes:
      label: "How will it help?"
      description: "It's helpful to include examples (like in your use case)."

  - type: textarea
    attributes:
      label: "Extra info"
      description: "If you want a new widget, a pic of the inspiration (if available) would be awesome."


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false


================================================
FILE: .github/README.md
================================================
<div align="center">
    <h1>【 end_4's Hyprland dotfiles 】</h1>
    <h3></h3>
</div>

<div align="center"> 

![](https://img.shields.io/github/last-commit/end-4/dots-hyprland?&style=for-the-badge&color=8ad7eb&logo=git&logoColor=D9E0EE&labelColor=1E202B)
![](https://img.shields.io/github/stars/end-4/dots-hyprland?style=for-the-badge&logo=andela&color=86dbd7&logoColor=D9E0EE&labelColor=1E202B)
![](https://img.shields.io/github/repo-size/end-4/dots-hyprland?color=86dbce&label=SIZE&logo=protondrive&style=for-the-badge&logoColor=D9E0EE&labelColor=1E202B)
<a href="https://discord.gg/GtdRBXgMwq"> <img alt="Dynamic JSON Badge" src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscordapp.com%2Fapi%2Finvites%2FGtdRBXgMwq%3Fwith_counts%3Dtrue&query=approximate_member_count&style=for-the-badge&logo=discord&logoColor=D9E0EE&label=discord&labelColor=%231E202B&color=86dbc0&link=https%3A%2F%2Fdiscord.gg%2FGtdRBXgMwq"> </a>

</div>

<div align="center">
    <h2>• overview •</h2>
    <h3></h3>
</div>

 <details> 
  <summary>Notable features</summary>
     
  - **Overview**: Shows open apps with live previews. Type to search/calculate/run
  - **AI**: Gemini API and Ollama models
  - **Autogenerated colors**: Accessible and beautiful Material colors based on wallpaper
  - **Transparent installation**: Every command is shown before it's run
</details>
<details> 
  <summary>Installation (illogical-impulse Quickshell)</summary>

   - _If you're new to Linux and decide to use Hyprland, you're in for a tough ride._
   - Just run `bash <(curl -s https://ii.clsty.link/get)`
     - Or, clone this repo and run `./setup install`
     - See [document](https://ii.clsty.link/en/ii-qs/01setup/) for details.
   - **Default keybinds**: Should be somewhat familiar to Windows or GNOME users. Important ones:
     - `Super`+`/` = keybind list
     - `Super`+`Enter` = terminal
     - Should look something like this:
     <img width="1412" height="828" alt="image" src="https://github.com/user-attachments/assets/8f7bd216-9e03-47e3-8709-0008772a4133" />


</details>

<details>
  <summary>Software overview</summary>

  | Software | Purpose |
  | ------------- | ------------- |
  | [Hyprland](https://github.com/hyprwm/hyprland) | The compositor (manages and renders windows) |
  | [Quickshell](https://quickshell.outfoxxed.me/) | A QtQuick-based widget system, used for the status bar, sidebars, etc. |
  | Others | See [deps-info.md](https://github.com/end-4/dots-hyprland/blob/main/sdata/deps-info.md) |

  [not every bar is waybar] [not every bar is waybar] [not every bar is waybar] [not every bar is waybar] [not every bar is waybar] 

</details>

<details>
    <summary>Discord</summary>
        <a href="https://discord.gg/GtdRBXgMwq"> Server link </a> | I hope this provides a friendlier environment for support without needing me to personally accept every friend request/DM. For real issues, prefer GitHub

</details>

<div align="center">
    <h2>• screenshots •</h2>
    <h3></h3>
</div>

<div align="center">
    <img src="assets/illogical-impulse.svg" alt="illogical-impulse logo" style="float:left; width:400;">
</div>

### illogical-impulse<sup>Quickshell</sup>

This is the latest and only supported style. Other stuff are still there mostly for viewing pleasure and not actual use, but code is still available, see below.

Widget system: Quickshell | Support: Yes

[Showcase video](https://www.youtube.com/watch?v=RPwovTInagE)

| AI, settings app | Some widgets |
|:---|:---------------|
| <img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/ea0154a1-e984-4bb6-a424-23247cefe3c6" /> | <img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/6eba0d57-2606-4cea-8993-e6f169e82e70" /> |
| Window management | Built with love |
| <img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/a7e6d29c-e82c-4934-98db-36c810ec999b" /> | <img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/1b806b53-9310-4c63-84a9-cec9e311d439" /> |

#### Other older styles are available at the end of the readme

<div align="center">
    <h2>• thank you •</h2>
    <h3></h3>
</div>

 - [@clsty](https://github.com/clsty) for making the dotfiles accessible by taking care of the install script and many other things
 - [@midn8hustlr](https://github.com/midn8hustlr) for greatly improving the color generation system
 - [@outfoxxed](https://github.com/outfoxxed/) for being extremely supportive in my Quickshell journey
 - Quickshell: [Soramane](https://github.com/caelestia-dots/shell/), [FridayFaerie](https://github.com/FridayFaerie/quickshell), [nydragon](https://github.com/nydragon/nysh)
 - AGS: [Aylur](https://github.com/Aylur/dotfiles/tree/ags-pre-ts), [kotontrion](https://github.com/kotontrion/dotfiles)
 - EWW: [fufexan](https://github.com/fufexan/dotfiles)

<div align="center">
    <h2>• stonks •</h2>
    <h3></h3>
</div>

- I promise not to attempt an +ULTRARICOSHOT irl... Coins can go here: https://github.com/sponsors/end-4
- Tentacle cat hub twinkle internet points

[![Stargazers over time](https://starchart.cc/end-4/dots-hyprland.svg?variant=adaptive)](https://starchart.cc/end-4/dots-hyprland)


---

<div align="center">
    <h2>• old, UNSUPPORTED stuff •</h2>
    <h3></h3>
</div>

- **Source**: illogical-impulse AGS in `ii-ags` branch, others in `archive` branch.
- **No support** will be provided
- **Reverse chronological order** list. Older = more naive & spaghetti code

### illogical-impulse<sup>AGS</sup>

Widget system: AGS | Support: No

| AI | Common widgets |
|:---|:---------------|
| ![image](https://github.com/user-attachments/assets/9d7af13f-89ef-470d-ba78-d2288b79cf60) | ![image](https://github.com/end-4/dots-hyprland/assets/97237370/406b72b6-fa38-4f0d-a6c4-4d7d5d5ddcb7) |
| Window management | Weeb power |
| ![image](https://github.com/user-attachments/assets/02983b9b-79ba-4c25-8717-90bef2357ae5) | ![image](https://github.com/user-attachments/assets/bbb332ec-962a-4e88-a95b-486d0bd8ce76) |

#### m3ww

Widget system: EWW | Support: No, dead

<a href="https://streamable.com/85ch8x">
<img src="https://github.com/end-4/dots-hyprland/assets/97237370/09533e64-b6d7-47eb-a840-ee90c6776adf" alt="Material Eww!">
</a>

#### NovelKnock

Widget system: EWW | Support: No

<a href="https://streamable.com/7vo61k">
<img src="https://github.com/end-4/dots-hyprland/assets/97237370/42903d03-bf6f-49d4-be7f-dd77e6cb389d" alt="Desktop Preview">
</a>

#### Hybrid

Widget system: EWW | Support: No

<a href="https://streamable.com/4oogot">
<img src="https://github.com/end-4/dots-hyprland/assets/97237370/190deb1e-f6f5-46ce-8cf0-9b39944c079d" alt="click the circles!">
</a>

#### Windoes

Widget system: EWW | Support: No

<a href="https://streamable.com/5qx614">
<img src="https://github.com/end-4/dots-hyprland/assets/97237370/b15317b1-f295-49f5-b90c-fb6328b8d886" alt="Desktop Preview">
</a>



<div align="center">
    <h2>• inspirations/copying •</h2>
    <h3></h3>
</div>

 - Inspiration: osu!lazer (Hybrid), Windows 11 (Windoes), AvdanOS (NovelKnock), Material Design 3 (m3ww & later)
 - Copying: Absolutely, feel free. Just follow the license and it's all good
 


================================================
FILE: .github/pull_request_template.md
================================================
## Describe your changes

<!--- ONE FEATURE PER PULL REQUEST ONLY -->

## Is it ready? Questions/feedback needed?




================================================
FILE: .github/workflows/auto-close-issue.yml
================================================
on:
  issues:
    types: [opened]

name: Close issues when the "ticked without reading" checkbox is checked

permissions:
  issues: write

jobs:
  detect-and-close:
    runs-on: ubuntu-latest
    steps:
      - name: Detect checked "ticked without reading" checkbox, comment, close and lock
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OWNER: ${{ github.repository_owner }}
          REPO: ${{ github.event.repository.name }}
          ISSUE_NUMBER: ${{ github.event.issue.number }}
          ISSUE_BODY: ${{ toJson(github.event.issue.body) }}
          ISSUE_USER: ${{ github.event.issue.user.login }}
        run: |
          set -euo pipefail

          # Normalize the JSON-encoded body into plain text
          BODY=$(printf '%s' "$ISSUE_BODY" | sed -E 's/^"(.*)"$/\1/' | sed 's/\\"/"/g' | sed 's/\\n/\n/g')

          echo "Checking issue #${ISSUE_NUMBER} for the target checked checkbox..."
          # Use -- to stop option parsing so the leading - in the pattern isn't treated as an option
          if printf '%s' "$BODY" | grep -Fiq -- "- [x] I've ticked the checkboxes without reading their contents"; then
            echo "Target checkbox is checked. Proceeding to comment, close and lock the issue."

            # --- Get issue node id via GraphQL ---
            QUERY='query($owner: String!, $name: String!, $number: Int!) { repository(owner: $owner, name: $name) { issue(number: $number) { id } } }'
            GET_ID_PAYLOAD=$(jq -n --arg q "$QUERY" --arg owner "$OWNER" --arg name "$REPO" --argjson number "$ISSUE_NUMBER" '{query:$q, variables:{owner:$owner, name:$name, number:$number}}')

            echo "GraphQL: fetching issue node id..."
            RES=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" -H "Content-Type: application/json" -d "$GET_ID_PAYLOAD" https://api.github.com/graphql)
            echo "GraphQL response (get id):"
            printf '%s\n' "$RES"

            ISSUE_ID=$(printf '%s' "$RES" | jq -r '.data.repository.issue.id // empty')

            if [ -z "$ISSUE_ID" ]; then
              echo "Failed to get issue id from GraphQL response. Aborting."
              exit 1
            fi
            echo "Issue node id: $ISSUE_ID"

            # --- Post a comment to the issue ---
            COMMENT_BODY="Hi @${ISSUE_USER} — I noticed you checked \"I've ticked the checkboxes without reading their contents\" in the issue template. To help others assist you effectively, please read the template and provide the requested diagnostic information (Step 2 & Step 3). I will close this issue now. If you create a new issue with the required information, we can re-evaluate. Thank you!"
            MUT_ADD_COMMENT='mutation($id: ID!, $body: String!) { addComment(input: {subjectId: $id, body: $body}) { clientMutationId } }'
            ADD_COMMENT_PAYLOAD=$(jq -n --arg q "$MUT_ADD_COMMENT" --arg id "$ISSUE_ID" --arg body "$COMMENT_BODY" '{query:$q, variables:{id:$id, body:$body}}')

            echo "GraphQL: adding comment..."
            RES_COMMENT=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" -H "Content-Type: application/json" -d "$ADD_COMMENT_PAYLOAD" https://api.github.com/graphql)
            echo "GraphQL response (add comment):"
            printf '%s\n' "$RES_COMMENT"

            ERR_COMMENT=$(printf '%s' "$RES_COMMENT" | jq -r '.errors[]?.message // empty')
            if [ -n "$ERR_COMMENT" ]; then
              echo "addComment error: $ERR_COMMENT"
              exit 1
            fi
            echo "Comment posted."

            # --- Attempt to close via GraphQL updateIssue ---
            MUT_UPDATE_ISSUE='mutation($id: ID!) { updateIssue(input: {id: $id, state: CLOSED, stateReason: NOT_PLANNED}) { issue { number, state, stateReason } } }'
            UPDATE_PAYLOAD=$(jq -n --arg q "$MUT_UPDATE_ISSUE" --arg id "$ISSUE_ID" '{query:$q, variables:{id:$id}}')

            echo "GraphQL: updating issue (close with NOT_PLANNED)..."
            RES_UPDATE=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" -H "Content-Type: application/json" -d "$UPDATE_PAYLOAD" https://api.github.com/graphql)
            echo "GraphQL response (update issue):"
            printf '%s\n' "$RES_UPDATE"

            ERR_UPDATE=$(printf '%s' "$RES_UPDATE" | jq -r '.errors[]?.message // empty')
            UPDATED_STATE=$(printf '%s' "$RES_UPDATE" | jq -r '.data.updateIssue.issue.state // empty')
            UPDATED_REASON=$(printf '%s' "$RES_UPDATE" | jq -r '.data.updateIssue.issue.stateReason // empty')

            CLOSED_OK=false

            if [ -n "$ERR_UPDATE" ]; then
              echo "GraphQL updateIssue returned errors: $ERR_UPDATE"
            fi

            if [ "$UPDATED_STATE" = "CLOSED" ]; then
              echo "Issue closed via GraphQL: state=$UPDATED_STATE, stateReason=$UPDATED_REASON"
              CLOSED_OK=true
            else
              echo "GraphQL update did not confirm the issue is closed. Falling back to REST API PATCH to ensure the issue is closed."

              # REST fallback to close the issue with state_reason "not_planned"
              REST_PAYLOAD=$(jq -n --arg state "closed" --arg sr "not_planned" '{state:$state, state_reason:$sr}')
              echo "REST: PATCH /repos/$OWNER/$REPO/issues/$ISSUE_NUMBER payload: $REST_PAYLOAD"
              RES_REST=$(curl -s -w "\n%{http_code}" -X PATCH \
                -H "Authorization: Bearer $GITHUB_TOKEN" \
                -H "Accept: application/vnd.github+json" \
                -H "Content-Type: application/json" \
                -d "$REST_PAYLOAD" \
                "https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER")

              HTTP_STATUS=$(printf '%s' "$RES_REST" | tail -n1)
              RESP_BODY=$(printf '%s' "$RES_REST" | sed '$d')

              echo "REST response body:"
              printf '%s\n' "$RESP_BODY"
              echo "REST HTTP status: $HTTP_STATUS"

              if [ "$HTTP_STATUS" -ge 200 ] && [ "$HTTP_STATUS" -lt 300 ]; then
                CLOSED_STATE=$(printf '%s' "$RESP_BODY" | jq -r '.state // empty')
                CLOSED_REASON=$(printf '%s' "$RESP_BODY" | jq -r '.state_reason // empty')
                echo "Issue closed via REST: state=$CLOSED_STATE, state_reason=$CLOSED_REASON"
                if [ "$CLOSED_STATE" = "closed" ]; then
                  CLOSED_OK=true
                fi
              else
                echo "REST fallback failed to close the issue. See REST response above."
                exit 1
              fi
            fi

            # --- Attempt to lock the conversation (GraphQL first, then REST fallback) ---
            if [ "$CLOSED_OK" = "true" ]; then
              echo "Attempting to lock the conversation via GraphQL with reason NO_REASON..."

              MUT_LOCK='mutation($id: ID!, $reason: LockReason) { lockLockable(input:{lockableId:$id, lockReason:$reason}) { clientMutationId } }'
              LOCK_PAYLOAD=$(jq -n --arg q "$MUT_LOCK" --arg id "$ISSUE_ID" --arg reason "NO_REASON" '{query:$q, variables:{id:$id, reason:$reason}}')

              RES_LOCK=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" -H "Content-Type: application/json" -d "$LOCK_PAYLOAD" https://api.github.com/graphql)
              echo "GraphQL response (lock):"
              printf '%s\n' "$RES_LOCK"

              LOCK_ERR=$(printf '%s' "$RES_LOCK" | jq -r '.errors[]?.message // empty')

              if [ -n "$LOCK_ERR" ]; then
                echo "GraphQL lockLockable returned errors: $LOCK_ERR"
                echo "Falling back to REST API to lock the conversation (no explicit reason)."

                # REST fallback to lock the issue (no lock_reason to indicate "no reason")
                RES_REST_LOCK=$(curl -s -w "\n%{http_code}" -X PUT \
                  -H "Authorization: Bearer $GITHUB_TOKEN" \
                  -H "Accept: application/vnd.github+json" \
                  "https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER/lock" -d '{}')

                HTTP_STATUS_LOCK=$(printf '%s' "$RES_REST_LOCK" | tail -n1)
                RESP_BODY_LOCK=$(printf '%s' "$RES_REST_LOCK" | sed '$d')

                echo "REST lock response body:"
                printf '%s\n' "$RESP_BODY_LOCK"
                echo "REST lock HTTP status: $HTTP_STATUS_LOCK"

                if [ "$HTTP_STATUS_LOCK" -ge 200 ] && [ "$HTTP_STATUS_LOCK" -lt 300 ]; then
                  echo "Issue conversation locked via REST (no explicit reason)."
                else
                  echo "REST fallback failed to lock the conversation. See REST response above."
                  exit 1
                fi
              else
                echo "Lock via GraphQL succeeded (or returned no errors)."
              fi
            else
              echo "Issue was not successfully closed; skipping lock."
            fi

          else
            echo "Checkbox not present/checked. Nothing to do."
          fi


================================================
FILE: .github/workflows/dist-update-notification.yml
================================================
name: Comment on Discussion When sdata/dist-arch/ Changes

on:
  push:
    branches:
      - main
    paths:
      - "sdata/dist-arch/**"
      - "!sdata/dist-arch/README.md"
#  workflow_dispatch:

jobs:
  comment_on_discussion:
    runs-on: ubuntu-latest
    if: github.ref == 'refs/heads/main' && github.repository == 'end-4/dots-hyprland'
    steps:
      - name: Create comment on discussion #2140
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DISCUSSION_NUMBER: 2140
        # https://docs.github.com/en/graphql/guides/using-the-graphql-api-for-discussions
        # https://docs.github.com/en/graphql/reference/mutations#adddiscussioncomment
        run: |
          MESSAGE="**Auto notification:**\n"
          MESSAGE+="Directory \`sdata/dist-arch\` has been updated.\n"
          MESSAGE+="Commit HASH: ${{ github.sha }}\n"
          MESSAGE+="Commit message: ${{ github.event.head_commit.message }}"
          REPO_OWNER="${{ github.repository_owner }}"
          REPO_NAME="${{ github.event.repository.name }}"

          DISCUSSION_NODE_ID=$(gh api graphql -f query='
            query {
              repository( owner: "'${REPO_OWNER}'", name: "'${REPO_NAME}'" )
                { discussion(number: '${DISCUSSION_NUMBER}') { id } } 
              }' | \
            jq -r '.data.repository.discussion.id')
          gh api graphql -f query='
            mutation {
              addDiscussionComment(input:{
                discussionId: "'$DISCUSSION_NODE_ID'",
                body: "'"$MESSAGE"'",
              }) {
                clientMutationId
                comment {
                  id
                  body
                }
              }
            }
          '


================================================
FILE: .github/workflows/dump-github-context.yml
================================================
name: Dump github context

on:
  workflow_dispatch:

jobs:
  dump_github_context:
    runs-on: ubuntu-latest
    steps:
      - name: Dump github context
        run: echo "$GITHUB_CONTEXT"
        shell: bash
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}


================================================
FILE: .gitignore
================================================
/diagnose.result
/cache

# Ignore Python cache files
__pycache__/
*.py[cod]

/dots/.config/quickshell/ii/.qmlls.ini

# exp-update
/.update-lock

# custom os-release
/os-release

# Emacs auto backup file
*~


================================================
FILE: .gitmodules
================================================
[submodule "dots/.config/quickshell/ii/modules/common/widgets/shapes"]
	path = dots/.config/quickshell/ii/modules/common/widgets/shapes
	url = https://github.com/end-4/rounded-polygon-qmljs.git


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.


================================================
FILE: diagnose
================================================
#!/usr/bin/env bash
#
# This script is for quickly generate helpful info
#
# It should be as independent as possible and should not source other files unless it has to
#
# TODO: How to get the Qt version which Quickshell was built against?

STY_RED='\e[31m'
STY_RST='\e[00m'

cd "$(dirname "$0")";export base="$(pwd)"
output_file=diagnose.result;rm $output_file
export LANG=C;export LC_ALL=C
case $(whoami) in
  root)echo -e "${STY_RED}[$0]: This script is NOT to be executed with sudo or as root. Aborting...${STY_RST}";exit 1;;
esac


x() { _exec "$@" 2>&1 | tee -a $output_file ; }
e() { _box "$@" | tee -a $output_file ; }
_box() {
  length=$(echo "$1" | wc -L);total_width=$((length + 2))
  #line=$(printf "═%.0s" $(seq 1 $total_width))
  #border_up="╔${line}╗";border_down="╚${line}╝"
  #border_vertical="║"
  line=$(printf "=%.0s" $(seq 1 $total_width))
  border_up="/${line}\\";border_down="\\${line}/"
  border_vertical="|"
  echo -e "\n$border_up"
  echo "$border_vertical $1 $border_vertical"
  echo "$border_down"
}
_exec() {
  printf "\n[===diagnose===] $*\n"
  "$@"
  err=$?;if [ ! $err -eq 0 ];then echo "[---EXIT $err---]";else echo "[---SUCCESS---]";fi
}
_check_distro_id() {
  OS_RELEASE_FILE=/etc/os-release
  if [[ -f "$OS_RELEASE_FILE" ]]; then
    OS_DISTRO_ID=$(awk -F'=' '/^ID=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
    OS_DISTRO_ID_LIKE=$(awk -F'=' '/^ID_LIKE=/ { gsub("\"","",$2); print tolower($2) }' ${OS_RELEASE_FILE} 2> /dev/null)
    echo "distro ID: $OS_DISTRO_ID"
    echo "distro ID_LIKE: $OS_DISTRO_ID_LIKE"
  else
    echo "$OS_RELEASE_FILE does not exist."
  fi
}
_check_distro() {
  lsb_release -a || cat /etc/os-release || cat /etc/lsb-release
}
_check_venv() {
  source $(eval echo $ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate
  which python
  deactivate
}
_check_quickshell_version() {
  pacman -Q | grep -E 'quickshell|qt6-base'
}
_check_PKGBUILD_version() {
  pacman -Q | grep '^illogical-impulse-'
}

e "Checking git repo info"
x git remote get-url origin
x git rev-parse HEAD
x git status
x git submodule status --recursive

e "Checking distro"
x _check_distro_id
x cat os-release
#x _check_distro 

e "Checking variables"
x declare -p XDG_CACHE_HOME # ~/.cache
x declare -p XDG_CONFIG_HOME # ~/.config
x declare -p XDG_DATA_HOME # ~/.local/share
x declare -p XDG_STATE_HOME # ~/.local/state
x declare -p ILLOGICAL_IMPULSE_VIRTUAL_ENV # $XDG_STATE_HOME/quickshell/.venv

e "Checking directories/files"
x ls -l ~/.local/state/quickshell/.venv

#e "Checking command existence"
#commands=(yay pacman zypper apt dnf yum)
#commands+=(ags agsv1)
#commands+=(Hyprland hypr{ctl,idle,lock,picker})
#commands+=(uv)
#for i in "${commands[@]}";do x command -v $i;done

e "Checking versions"
x Hyprland --version
x _check_quickshell_version
x _check_PKGBUILD_version

e "Finished. Output saved as \"$output_file\"."
if ! command -v curl 2>&1 >>/dev/null ;then echo "\"curl\" not found, pastebin upload unavailable.";exit;fi
echo "(Optional) Do you agree to upload the file \"$output_file\" to the online pastebin (https://0x0.st)?"
echo "Notes:"
echo "1. It is a public service and the logfile will be expired in 15 days."
echo "2. You should have a look at the content of \"$output_file\" before agreeing to upload it."
echo "3. Only agree when necessary, typically when you are creating an issue and not able to upload the \"diagnose.result\" file there or copy-paste the output directly."
read -p "y=yes, n=no (default) ====> " p
case $p in
  [yY]) echo "OK, uploading..."
        curl -F'file=@diagnose.result' -Fexpires=360 https://0x0.st && \
          echo "Uploaded. Please attach the URL above when asking for help."
        ;;
  *) echo "Uploading aborted.";;
esac


================================================
FILE: dots/.config/Kvantum/Colloid/Colloid.kvconfig
================================================
[%General]
author=Vince Liuice, based on KvAdapta by Tsu Jan
comment=An uncomplicated theme inspired by the Materia GTK theme
x11drag=none
alt_mnemonic=true
left_tabs=false
attach_active_tab=false
mirror_doc_tabs=true
group_toolbar_buttons=false
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=true
menu_shadow_depth=6
spread_menuitems=false
tooltip_shadow_depth=7
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=24
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=false
blurring=false
popup_blurring=false
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=3
layout_margin=3
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=false
submenu_overlap=0
tooltip_delay=0
tree_branch_line=false
no_window_pattern=false
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam
reduce_window_opacity=0
respect_DE=true
scrollable_menu=false
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=2
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=0
tooltip_blur_radius=0

[GeneralColors]
window.color=#F5F5F5
base.color=#ffffff
alt.base.color=#f8f8f8
button.color=#f2f2f2
light.color=#ffffff
mid.light.color=#f0f0f0
dark.color=#c8c8c8
mid.color=#e1e1e1
highlight.color=#3c84f7
inactive.highlight.color=#3c84f7
text.color=#444444
window.text.color=#444444
button.text.color=#444444
disabled.text.color=#44444474
tooltip.text.color=#444444
highlight.text.color=#333333
link.color=#0057AE
link.visited.color=#E040FB
progress.indicator.text.color=#444444

[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=false
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=false
iconless_menu=false
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
style_vertical_toolbars=false
blur_only_active_window=true

[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=white
highlight.text.color=white
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0

[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=white
text.disabled.color=#44444474
text.bold=false
indicator.element=arrow
indicator.size=8
frame.expansion=0

[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=14
frame.bottom=14
frame.left=14
frame.right=14
indicator.element=tarrow
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
text.disabled.color=#44444474
text.bold=false
frame.expansion=28

[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#444444

[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#444444
text.focus.color=#444444
text.bold=false

[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color=#444444
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
min_width=+0.3font
min_height=+0.3font

[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
min_width=+0.3font
min_height=+0.3font

[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14

[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1

[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit

[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down

[IndicatorArrow]
indicator.element=arrow
indicator.size=8

[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#444444
text.press.color=#333333
text.focus.color=#444444

[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=0
text.margin.bottom=0
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
frame.expansion=0
text.bold=false

[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6

[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree

[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
frame.expansion=0

[SizeGrip]
indicator.element=resize-grip

[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
frame.left=6
frame.right=6
frame.top=0
frame.bottom=1
frame.expansion=0

[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3

[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor

[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
text.bold=false
frame.expansion=8

[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern

[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.margin.top=0
text.margin.bottom=0
text.margin.left=8
text.margin.right=8
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[Splitter]
interior.element=splitter
frame=false
indicator.size=0

[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12

[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12

[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false

[Menu]
inherits=PanelButtonCommand
frame.top=10
frame.bottom=10
frame.left=10
frame.right=10
frame.element=menu
interior.element=menu
text.normal.color=#444444
text.shadow=false
frame.expansion=0
text.bold=false

[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#444444
text.focus.color=#333333
text.margin.top=0
text.margin.bottom=0
text.margin.left=6
text.margin.right=6
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.bold=false
frame.expansion=0

[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
frame.expansion=0
text.bold=false

[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color=#444444
text.focus.color=#444444
text.press.color=#333333
text.toggle.color=#333333
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#444444
text.focus.color=#444444
text.bold=false
text.italic=true
frame.expansion=0

[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.normal.color=#444444
text.focus.color=#424242
text.press.color=#424242
text.toggle.color=#424242

[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#444444
text.focus.color=#333333
text.bold=false
frame.expansion=0

[TabBarFrame]
inherits=GenericFrame
frame=false
interior=false

[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=6
interior.element=tooltip
frame.element=tooltip
text.normal.color=#444444
text.focus.color=#333333
text.press.color=#333333
text.toggle.color=#333333
frame.expansion=6

[StatusBar]
inherits=GenericFrame
frame=false
interior=false

[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10


================================================
FILE: dots/.config/Kvantum/Colloid/ColloidDark.kvconfig
================================================
[%General]
author=Vince Liuice, based on KvAdapta by Tsu Jan
comment=An uncomplicated theme inspired by the Materia GTK theme
x11drag=none
alt_mnemonic=true
left_tabs=false
attach_active_tab=false
mirror_doc_tabs=true
group_toolbar_buttons=false
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=true
menu_shadow_depth=6
spread_menuitems=false
tooltip_shadow_depth=7
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=24
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=false
blurring=false
popup_blurring=false
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=3
layout_margin=3
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=false
submenu_overlap=0
tooltip_delay=0
tree_branch_line=false
no_window_pattern=false
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam
reduce_window_opacity=0
respect_DE=true
scrollable_menu=false
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=2
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=0
tooltip_blur_radius=0

[GeneralColors]
window.color=#2c2c2c
base.color=#2c2c2c
alt.base.color=#2e2e2e
button.color=#4d4d4d
light.color=#535353
mid.light.color=#474747
dark.color=#282828
mid.color=#323232
highlight.color=#5b9bf8
inactive.highlight.color=#5b9bf8
text.color=#dfdfdf
window.text.color=#dfdfdf
button.text.color=#dfdfdf
disabled.text.color=#696969
tooltip.text.color=#efefef
highlight.text.color=#ffffff
link.color=#0057AE
link.visited.color=#E040FB
progress.indicator.text.color=#dfdfdf

[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=false
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=false
iconless_menu=false
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
style_vertical_toolbars=false
blur_only_active_window=true

[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0

[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=#ffffff
text.bold=false
indicator.element=arrow
indicator.size=8
frame.expansion=0

[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
text.bold=false
frame.expansion=32

[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf

[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false

[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color=#dfdfdf
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font

[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#dfdfdf
text.focus.color=white
min_width=+0.3font
min_height=+0.3font

[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14

[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1

[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit

[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down

[IndicatorArrow]
indicator.element=arrow
indicator.size=8

[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#dfdfdf
text.press.color=#dfdfdf
text.focus.color=white

[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=0
text.margin.bottom=0
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=white
text.toggle.color=white
frame.expansion=0
text.bold=false

[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6

[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree

[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=white
text.toggle.color=white
frame.expansion=0

[SizeGrip]
indicator.element=resize-grip

[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color=#dfdfdf
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white
frame.left=6
frame.right=6
frame.top=0
frame.bottom=1
frame.expansion=0

[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3

[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor

[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#dfdfdf
text.toggle.color=#dfdfdf
text.bold=false
frame.expansion=8

[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern

[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.margin.top=0
text.margin.bottom=0
text.margin.left=8
text.margin.right=8
text.normal.color=#dfdfdf
text.focus.color=#dfdfdf
text.press.color=#ffffff
text.toggle.color=#ffffff
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[Splitter]
interior.element=splitter
frame=false
indicator.size=0

[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12

[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12

[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false

[Menu]
inherits=PanelButtonCommand
frame.top=10
frame.bottom=10
frame.left=10
frame.right=10
frame.element=menu
interior.element=menu
text.normal.color=#dfdfdf
text.shadow=false
frame.expansion=0
text.bold=false

[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.margin.top=0
text.margin.bottom=0
text.margin.left=6
text.margin.right=6
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.bold=false
frame.expansion=0

[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
frame.expansion=0
text.bold=false

[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color=#dfdfdf
text.focus.color=#ffffff
text.press.color=#ffffff
text.toggle.color=#ffffff
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#787878
text.focus.color=#dfdfdf
text.bold=false
text.italic=true
frame.expansion=0

[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.focus.color=white
text.press.color=#dfdfdf
text.toggle.color=white

[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#dfdfdf
text.focus.color=white
text.bold=false
frame.expansion=0

[TabBarFrame]
inherits=GenericFrame
frame=false
frame.element=tabBarFrame
interior=false
frame.top=0
frame.bottom=0
frame.left=0
frame.right=0

[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=6
interior.element=tooltip
frame.element=tooltip
frame.expansion=6

[StatusBar]
inherits=GenericFrame
frame=false
interior=false

[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10


================================================
FILE: dots/.config/Kvantum/MaterialAdw/MaterialAdw.kvconfig
================================================
[%General]
author=Vince Liuice, based on KvAdapta by Tsu Jan
comment=An uncomplicated theme inspired by the Materia GTK theme
x11drag=none
alt_mnemonic=true
left_tabs=false
attach_active_tab=false
mirror_doc_tabs=true
group_toolbar_buttons=false
toolbar_item_spacing=0
toolbar_interior_spacing=2
spread_progressbar=true
composite=true
menu_shadow_depth=6
spread_menuitems=false
tooltip_shadow_depth=7
splitter_width=1
scroll_width=9
scroll_arrows=false
scroll_min_extent=60
slider_width=2
slider_handle_width=23
slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true
check_size=24
textless_progressbar=false
progressbar_thickness=2
menubar_mouse_tracking=true
toolbutton_style=1
double_click=false
translucent_windows=false
blurring=false
popup_blurring=false
vertical_spin_indicators=false
spin_button_width=24
fill_rubberband=false
merge_menubar_with_toolbar=true
small_icon_size=16
large_icon_size=32
button_icon_size=16
toolbar_icon_size=16
combo_as_lineedit=true
animate_states=true
button_contents_shift=false
combo_menu=true
hide_combo_checkboxes=true
combo_focus_rect=false
groupbox_top_label=true
inline_spin_indicators=true
joined_inactive_tabs=false
layout_spacing=3
layout_margin=3
scrollbar_in_view=true
transient_scrollbar=true
transient_groove=false
submenu_overlap=0
tooltip_delay=0
tree_branch_line=false
no_window_pattern=false
opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,VirtualBoxVM,trojita,dragon,digikam,lyx
reduce_window_opacity=0
respect_DE=true
scrollable_menu=false
submenu_delay=150
no_inactiveness=false
reduce_menu_opacity=0
click_behavior=2
contrast=1.00
dialog_button_layout=0
intensity=1.00
saturation=1.00
shadowless_popup=false
drag_from_buttons=false
menu_blur_radius=0
tooltip_blur_radius=0

[GeneralColors]
window.color=#0F1416
base.color=#0F1416
alt.base.color=#0F1416
button.color=#1B2022
light.color=#171C1E
mid.light.color=#1B2022
dark.color=#303638
mid.color=#252B2D
highlight.color=#84D2E7
inactive.highlight.color=#84D2E7
text.color=#DEE3E5
window.text.color=#DEE3E5
button.text.color=#DEE3E5
disabled.text.color=#DEE3E5
tooltip.text.color=#DEE3E5
highlight.text.color=#DEE3E5
link.color=#BFC4EB
link.visited.color=#DDE1FF
progress.indicator.text.color=#DEE3E5

[Hacks]
transparent_ktitle_label=true
transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true
blur_translucent=false
transparent_menutitle=true
respect_darkness=true
kcapacitybar_as_progressbar=true
force_size_grip=true
iconless_pushbutton=false
iconless_menu=false
disabled_icon_opacity=100
lxqtmainmenu_iconsize=16
normal_default_pushbutton=true
single_top_toolbar=true
tint_on_mouseover=0
transparent_pcmanfm_view=true
no_selection_tint=true
transparent_arrow_button=true
middle_click_scroll=false
opaque_colors=false
kinetic_scrolling=false
scroll_jump_workaround=true
centered_forms=false
noninteger_translucency=false
style_vertical_toolbars=false
blur_only_active_window=true

[PanelButtonCommand]
frame=true
frame.element=button
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
interior.element=button
indicator.size=8
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=white
text.toggle.color=#ffffff
text.shadow=0
text.margin=4
text.iconspacing=4
indicator.element=arrow
frame.expansion=0

[PanelButtonTool]
inherits=PanelButtonCommand
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=white
text.toggle.color=#ffffff
text.bold=false
indicator.element=arrow
indicator.size=8
frame.expansion=0

[ToolbarButton]
frame=true
frame.element=tbutton
interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=white
text.toggle.color=white
text.bold=false
frame.expansion=32

[Dock]
inherits=PanelButtonCommand
interior.element=dock
frame.element=dock
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#DEE3E5

[DockTitle]
inherits=PanelButtonCommand
frame=false
interior=false
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.bold=false

[IndicatorSpinBox]
inherits=PanelButtonCommand
frame=true
interior=true
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
indicator.element=spin
indicator.size=8
text.normal.color=#DEE3E5
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[RadioButton]
inherits=PanelButtonCommand
frame=false
interior.element=radio
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
min_width=+0.3font
min_height=+0.3font

[CheckBox]
inherits=PanelButtonCommand
frame=false
interior.element=checkbox
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
min_width=+0.3font
min_height=+0.3font

[Focus]
inherits=PanelButtonCommand
frame=true
frame.element=focus
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
frame.patternsize=14

[GenericFrame]
inherits=PanelButtonCommand
frame=true
interior=false
frame.element=common
interior.element=common
frame.top=1
frame.bottom=1
frame.left=1
frame.right=1

[LineEdit]
inherits=PanelButtonCommand
frame.element=lineedit
interior.element=lineedit
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2

[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit

[DropDownButton]
inherits=PanelButtonCommand
indicator.element=arrow-down

[IndicatorArrow]
indicator.element=arrow
indicator.size=8

[ToolboxTab]
inherits=PanelButtonCommand
text.normal.color=#DEE3E5
text.press.color=#dfdfdf
text.focus.color=#DEE3E5

[Tab]
inherits=PanelButtonCommand
interior.element=tab
text.margin.left=8
text.margin.right=8
text.margin.top=0
text.margin.bottom=0
frame.element=tab
indicator.element=tab
indicator.size=22
frame.top=8
frame.bottom=8
frame.left=8
frame.right=8
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=white
text.toggle.color=white
frame.expansion=0
text.bold=false

[TabFrame]
inherits=PanelButtonCommand
frame.element=tabframe
interior.element=tabframe
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6

[TreeExpander]
inherits=PanelButtonCommand
indicator.size=8
indicator.element=tree

[HeaderSection]
inherits=PanelButtonCommand
interior.element=header
frame.element=header
frame.top=0
frame.bottom=1
frame.left=1
frame.right=1
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=white
text.toggle.color=white
frame.expansion=0

[SizeGrip]
indicator.element=resize-grip

[Toolbar]
inherits=PanelButtonCommand
indicator.element=toolbar
indicator.size=5
text.margin=0
interior.element=menubar
frame.element=menubar
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=#dfdfdf
text.toggle.color=white
frame.left=6
frame.right=6
frame.top=0
frame.bottom=1
frame.expansion=0

[Slider]
inherits=PanelButtonCommand
frame.element=slider
focusFrame=true
interior.element=slider
frame.top=3
frame.bottom=3
frame.left=3
frame.right=3

[SliderCursor]
inherits=PanelButtonCommand
frame=false
interior.element=slidercursor

[Progressbar]
inherits=PanelButtonCommand
frame.element=progress
interior.element=progress
text.margin=0
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=#dfdfdf
text.toggle.color=#dfdfdf
text.bold=false
frame.expansion=8

[ProgressbarContents]
inherits=PanelButtonCommand
frame=true
frame.element=progress-pattern
interior.element=progress-pattern

[ItemView]
inherits=PanelButtonCommand
text.margin=0
frame.element=itemview
interior.element=itemview
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.margin.top=0
text.margin.bottom=0
text.margin.left=8
text.margin.right=8
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=#ffffff
text.toggle.color=#ffffff
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[Splitter]
interior.element=splitter
frame=false
indicator.size=0

[Scrollbar]
inherits=PanelButtonCommand
indicator.element=arrow
indicator.size=12

[ScrollbarSlider]
inherits=PanelButtonCommand
frame.element=scrollbarslider
interior=false
frame.left=5
frame.right=5
frame.top=5
frame.bottom=5
indicator.element=grip
indicator.size=12

[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false
frame=false

[Menu]
inherits=PanelButtonCommand
frame.top=10
frame.bottom=10
frame.left=10
frame.right=10
frame.element=menu
interior.element=menu
text.normal.color=#DEE3E5
text.shadow=false
frame.expansion=0
text.bold=false

[MenuItem]
inherits=PanelButtonCommand
frame=true
frame.element=menuitem
interior.element=menuitem
indicator.element=menuitem
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.margin.top=0
text.margin.bottom=0
text.margin.left=6
text.margin.right=6
frame.top=4
frame.bottom=4
frame.left=4
frame.right=4
text.bold=false
frame.expansion=0

[MenuBar]
inherits=PanelButtonCommand
frame.element=menubar
interior.element=menubar
frame.bottom=0
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=#ffffff
text.toggle.color=#ffffff
frame.expansion=0
text.bold=false

[MenuBarItem]
inherits=PanelButtonCommand
interior=true
interior.element=menubaritem
frame.element=menubaritem
frame.top=2
frame.bottom=2
frame.left=2
frame.right=2
text.margin.left=4
text.margin.right=4
text.margin.top=0
text.margin.bottom=0
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.press.color=#ffffff
text.toggle.color=#ffffff
text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0

[TitleBar]
inherits=PanelButtonCommand
frame=false
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
interior.element=titlebar
indicator.size=16
indicator.element=mdi
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.bold=false
text.italic=true
frame.expansion=0

[ComboBox]
inherits=PanelButtonCommand
frame.element=combo
interior.element=combo
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
text.margin.top=2
text.margin.bottom=2
text.margin.left=2
text.margin.right=2
text.focus.color=#DEE3E5
text.press.color=#dfdfdf
text.toggle.color=white

[GroupBox]
inherits=GenericFrame
frame=false
text.shadow=0
text.margin=0
text.normal.color=#DEE3E5
text.focus.color=#DEE3E5
text.bold=false
frame.expansion=0

[TabBarFrame]
inherits=GenericFrame
frame=false
frame.element=tabBarFrame
interior=false
frame.top=0
frame.bottom=0
frame.left=0
frame.right=0

[ToolTip]
inherits=GenericFrame
frame.top=6
frame.bottom=6
frame.left=6
frame.right=6
interior=true
text.shadow=0
text.margin=6
interior.element=tooltip
frame.element=tooltip
frame.expansion=6

[StatusBar]
inherits=GenericFrame
frame=false
interior=false

[Window]
interior=true
interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10

text.disabled.color=#0F1416


================================================
FILE: dots/.config/Kvantum/kvantum.kvconfig
================================================
[General]
theme=MaterialAdw


================================================
FILE: dots/.config/chrome-flags.conf
================================================
--password-store=gnome-libsecret
--ozone-platform-hint=wayland
--gtk-version=4
--ignore-gpu-blocklist
--enable-features=TouchpadOverscrollHistoryNavigation
--enable-wayland-ime
--disable-features=ExtensionManifestV2Unsupported


================================================
FILE: dots/.config/code-flags.conf
================================================
--ozone-platform-hint=wayland
--gtk-version=4
--ignore-gpu-blocklist
--enable-features=TouchpadOverscrollHistoryNavigation
--enable-wayland-ime
--password-store=gnome-libsecret


================================================
FILE: dots/.config/darklyrc
================================================
[Style]
WidgetDrawShadow=false


================================================
FILE: dots/.config/dolphinrc
================================================
[DetailsMode]
PreviewSize=32

[General]
GlobalViewProps=false
ShowFullPath=true
ShowStatusBar=FullWidth
Version=202

[KFileDialog Settings]
Places Icons Auto-resize=false
Places Icons Static Size=22

[MainWindow]
MenuBar=Disabled

[PreviewSettings]
Plugins=ffmpegthumbnailer,appimagethumbnail,audiothumbnail,avif,blenderthumbnail,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,heif,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,mobithumbnail,opendocumentthumbnail,gsthumbnail,rawthumbnail,librsvg,svgthumbnail,ffmpegthumbs,gdk-pixbuf-thumbnailer,gsf-office


================================================
FILE: dots/.config/fish/auto-Hypr.fish
================================================
# Auto start Hyprland on tty1
if test -z "$DISPLAY" ;and test "$XDG_VTNR" -eq 1
    mkdir -p ~/.cache
    exec start-hyprland > ~/.cache/hyprland.log 2>&1
end


================================================
FILE: dots/.config/fish/config.fish
================================================
function fish_prompt -d "Write out the prompt"
    # This shows up as USER@HOST /home/user/ >, with the directory colored
    # $USER and $hostname are set by fish, so you can just use them
    # instead of using `whoami` and `hostname`
    printf '%s@%s %s%s%s > ' $USER $hostname \
        (set_color $fish_color_cwd) (prompt_pwd) (set_color normal)
end

if status is-interactive # Commands to run in interactive sessions can go here

    # No greeting
    set fish_greeting

    # Use starship
    starship init fish | source
    if test -f ~/.local/state/quickshell/user/generated/terminal/sequences.txt
        cat ~/.local/state/quickshell/user/generated/terminal/sequences.txt
    end

    # Aliases
    alias clear "printf '\033[2J\033[3J\033[1;1H'" # fix: kitty doesn't clear properly
    alias celar "printf '\033[2J\033[3J\033[1;1H'"
    alias claer "printf '\033[2J\033[3J\033[1;1H'"
    alias ls 'eza --icons'
    alias pamcan pacman
    alias q 'qs -c ii'
    
end


================================================
FILE: dots/.config/fish/fish_variables
================================================
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3400
SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish
SETUVAR _fisher_plugins:jorgebucaran/fisher
SETUVAR _fisher_upgraded_to_4_4:\x1d
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:blue
SETUVAR fish_color_comment:red
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:green
SETUVAR fish_color_error:brred
SETUVAR fish_color_escape:brcyan
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:brcyan
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di
SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr


================================================
FILE: dots/.config/fontconfig/fonts.conf
================================================
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
    <match target="font">
        <edit name="rgba" mode="assign">
        <const>none</const>
    </edit>
  </match>
</fontconfig>


================================================
FILE: dots/.config/foot/foot.ini
================================================
shell=fish
term=xterm-256color

title=foot

font=JetBrainsMono Nerd Font:size=11
letter-spacing=0
dpi-aware=no

pad=25x25

bold-text-in-bright=no

[scrollback]
lines=10000

[cursor]
style=beam
blink=no
beam-thickness=1.5
# underline-thickness=<font underline thickness>

[key-bindings]
scrollback-up-page=Page_Up
scrollback-down-page=Page_Down
clipboard-copy=Control+c
clipboard-paste=Control+v
# primary-paste=Shift+Insert
search-start=Control+f
font-increase=Control+plus Control+equal Control+KP_Add
font-decrease=Control+minus Control+KP_Subtract
font-reset=Control+0 Control+KP_0

[search-bindings]
cancel=Escape
find-prev=Shift+F3
find-next=F3 Control+G
delete-prev-word=Control+BackSpace

[text-bindings]
\x03=Control+Shift+c


================================================
FILE: dots/.config/fuzzel/fuzzel.ini
================================================
include="~/.config/fuzzel/fuzzel_theme.ini"
font=Google Sans Flex:weight=medium
terminal=kitty -1
prompt=">>  "
layer=overlay

[border]
radius=17
width=1

[dmenu]
exit-immediately-if-empty=yes


================================================
FILE: dots/.config/fuzzel/fuzzel_theme.ini
================================================
[colors]
background=161217ff
text=e9e0e8ff
selection=4b454dff
selection-text=cdc3ceff
border=4b454ddd
match=dfb8f6ff
selection-match=dfb8f6ff


================================================
FILE: dots/.config/hypr/custom/env.conf
================================================
# You can put extra environment variables here
# https://wiki.hyprland.org/Configuring/Environment-variables/

# ######### Input method ##########
# See https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
#env = QT_IM_MODULE, fcitx
#env = XMODIFIERS, @im=fcitx
#env = SDL_IM_MODULE, fcitx
#env = GLFW_IM_MODULE, ibus
#env = INPUT_METHOD, fcitx

# ######## Wayland #########
# Tearing
# env = WLR_DRM_NO_ATOMIC, 1
# ?
# env = WLR_NO_HARDWARE_CURSORS, 1

# ######## EDITOR #########
#https://wiki.archlinux.org/title/Category:Text_editors
# for example: vi nano nvim ...

#env = EDITOR, vim


================================================
FILE: dots/.config/hypr/custom/execs.conf
================================================
# You can make apps auto-start here
# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing

# Input method
# exec-once = fcitx5



================================================
FILE: dots/.config/hypr/custom/general.conf
================================================
# Put general config stuff here
# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/

# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area

# HDMI port: mirror display. To see device name, use `hyprctl monitors`


================================================
FILE: dots/.config/hypr/custom/keybinds.conf
================================================
# See https://wiki.hyprland.org/Configuring/Binds/
#!
##! User
bind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogical-impulse/config.json # Edit shell config
bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf # Edit extra keybinds

##! Apps
# bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal
# bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh  "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt)
# bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people)
# bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager
# bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser
# bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor
# bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software
# bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor
# bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer
# bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app
# bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager

# Add stuff here
# Use #! to add an extra column on the cheatsheet
# Use ##! to add a section in that column
# Add a comment after a bind to add a description, like above



================================================
FILE: dots/.config/hypr/custom/rules.conf
================================================
# You can put custom rules here
# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/
# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/

# ######## Window rules ########

# Uncomment to apply global transparency to all windows:
# windowrule = opacity 0.89 override 0.89 override, match:class .*

# Disable blur for all xwayland apps
# windowrule = no_blur on, match:xwayland 1


================================================
FILE: dots/.config/hypr/custom/scripts/__restore_video_wallpaper.sh
================================================
#!/bin/bash
# The content of this script will be generated by switchwall.sh - Don't modify it by yourself.


================================================
FILE: dots/.config/hypr/hypridle.conf
================================================
$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock
# $lock_cmd = pidof hyprlock || hyprlock
$suspend_cmd = systemctl suspend || loginctl suspend

general {
    lock_cmd = $lock_cmd
    before_sleep_cmd = loginctl lock-session
    after_sleep_cmd = hyprctl dispatch global quickshell:lockFocus
    inhibit_sleep = 3
}

listener {
    timeout = 300 # 5mins
    on-timeout = loginctl lock-session
}

listener {
    timeout = 600 # 10mins
    on-timeout = hyprctl dispatch dpms off
    on-resume = hyprctl dispatch dpms on
}

listener {
    timeout = 900 # 15mins
    on-timeout = $suspend_cmd
}


================================================
FILE: dots/.config/hypr/hyprland/colors.conf
================================================
# exec = export SLURP_ARGS='-d -c FFDAD4BB -b 673B3444 -s 00000000'

general {
    col.active_border = rgba(F7DCDE39)
    col.inactive_border = rgba(A58A8D30)
}

misc {
    background_color = rgba(1D1011FF)
}

plugin {
    hyprbars {
        # Honestly idk if it works like css, but well, why not
        bar_text_font = Google Sans Flex Medium, Rubik, Geist, AR One Sans, Reddit Sans, Inter, Roboto, Ubuntu, Noto Sans, sans-serif
        bar_height = 30
        bar_padding = 10
        bar_button_padding = 5
        bar_precedence_over_border = true
        bar_part_of_window = true

        bar_color = rgba(1D1011FF)
        col.text = rgba(F7DCDEFF)


        # example buttons (R -> L)
        # hyprbars-button = color, size, on-click
        hyprbars-button = rgb(F7DCDE), 13, 󰖭, hyprctl dispatch killactive
        hyprbars-button = rgb(F7DCDE), 13, 󰖯, hyprctl dispatch fullscreen 1
        hyprbars-button = rgb(F7DCDE), 13, 󰖰, hyprctl dispatch movetoworkspacesilent special
    }
}

windowrule = border_color rgba(FFB2BCAA) rgba(FFB2BC77), match:pin 1


================================================
FILE: dots/.config/hypr/hyprland/env.conf
================================================
# ############ Wayland #############
env = ELECTRON_OZONE_PLATFORM_HINT,auto

######### Applications #########
env = XDG_DATA_DIRS,$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

# ############ Themes #############
env = QT_QPA_PLATFORM, wayland;xcb
env = QT_QPA_PLATFORMTHEME, kde
env = XDG_MENU_PREFIX, plasma-

# ######## Virtual envrionment #########
env = ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv

# ######## Terminal application #########
env = TERMINAL,kitty -1


================================================
FILE: dots/.config/hypr/hyprland/execs.conf
================================================
# Bar, wallpaper
exec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh
exec-once = qs -c $qsConfig &
exec-once = ~/.config/hypr/custom/scripts/__restore_video_wallpaper.sh

# Core components (authentication, lock screen, notification daemon)
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = hypridle
exec-once = dbus-update-activation-environment --all
exec-once = sleep 1 && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP # Some fix idk

# Audio
exec-once = easyeffects --hide-window --service-mode

# Clipboard: history
# exec-once = wl-paste --watch cliphist store &
exec-once = wl-paste --type text --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update'
exec-once = wl-paste --type image --watch bash -c 'cliphist store && qs -c $qsConfig ipc call cliphistService update'

# Cursor
exec-once = hyprctl setcursor Bibata-Modern-Classic 24

# Fix dock pinned apps not launching properly (https://github.com/end-4/dots-hyprland/issues/2200)
# This causes https://github.com/end-4/dots-hyprland/issues/2427
# exec-once = sleep 3.5 && hyprctl reload && sleep 0.5 && touch ~/.config/quickshell/ii/shell.qml


================================================
FILE: dots/.config/hypr/hyprland/general.conf
================================================
# MONITOR CONFIG
monitor=,preferred,auto,1

gesture = 3, swipe, move,
gesture = 3, pinch, float
gesture = 4, horizontal, workspace
gesture = 4, up, dispatcher, global, quickshell:overviewWorkspacesToggle
gesture = 4, down, dispatcher, global, quickshell:overviewWorkspacesClose
gestures {
    workspace_swipe_distance = 700
    workspace_swipe_cancel_ratio = 0.2
    workspace_swipe_min_speed_to_force = 5
    workspace_swipe_direction_lock = true
    workspace_swipe_direction_lock_threshold = 10
    workspace_swipe_create_new = true
}

general {
    # Gaps and border
    gaps_in = 4
    gaps_out = 5
    gaps_workspaces = 50

    border_size = 1
    col.active_border = rgba(0DB7D455)
    col.inactive_border = rgba(31313600)
    resize_on_border = true

    no_focus_fallback = true

    allow_tearing = true # This just allows the `immediate` window rule to work

    snap {
        enabled = true
        window_gap = 4
        monitor_gap = 5
        respect_gaps = true
    }
}

dwindle {
    preserve_split = true
    smart_split = false
    smart_resizing = false
    # precise_mouse_move = true
}

decoration {
    # 2 = circle, higher = squircle, 4 = very obvious squircle
    # Clear squircles look really off; we use only extra .4 here to make the rounding feel more continuous
    rounding_power = 2
    rounding = 18

    blur {
        enabled = true
        xray = true
        special = false
        new_optimizations = true
        size = 10
        passes = 3
        brightness = 1
        noise = 0.05
        contrast = 0.89
        vibrancy = 0.5
        vibrancy_darkness = 0.5
        popups = false
        popups_ignorealpha = 0.6
        input_methods = true
        input_methods_ignorealpha = 0.8
    }

    shadow {
        enabled = true
        ignore_window = true
        range = 50
        offset = 0 4
        render_power = 10
        color = rgba(00000027)
    }

    # Dim
    dim_inactive = true
    dim_strength = 0.05
    dim_special = 0.2
}

animations {
    enabled = true
    # Curves
    bezier = expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90
    bezier = expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98
    bezier = expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00
    bezier = emphasizedDecel, 0.05, 0.7, 0.1, 1
    bezier = emphasizedAccel, 0.3, 0, 0.8, 0.15
    bezier = standardDecel, 0, 0, 0, 1
    bezier = menu_decel, 0.1, 1, 0, 1
    bezier = menu_accel, 0.52, 0.03, 0.72, 0.08
    bezier = stall, 1, -0.1, 0.7, 0.85
    # Configs
    # windows
    animation = windowsIn, 1, 3, emphasizedDecel, popin 80%
    animation = fadeIn, 1, 3, emphasizedDecel
    animation = windowsOut, 1, 2, emphasizedDecel, popin 90%
    animation = fadeOut, 1, 2, emphasizedDecel
    animation = windowsMove, 1, 3, emphasizedDecel, slide
    animation = border, 1, 10, emphasizedDecel
    # layers
    animation = layersIn, 1, 2.7, emphasizedDecel, popin 93%
    animation = layersOut, 1, 2.4, menu_accel, popin 94%
    # fade
    animation = fadeLayersIn, 1, 0.5, menu_decel
    animation = fadeLayersOut, 1, 2.7, stall
    # workspaces
    animation = workspaces, 1, 7, menu_decel, slide
    ## specialWorkspace
    animation = specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert
    animation = specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert
    # zoom
    animation = zoomFactor, 1, 3, standardDecel
}

input {
    kb_layout = us
    numlock_by_default = true
    repeat_delay = 250
    repeat_rate = 35

    follow_mouse = 1
    off_window_axis_events = 2

    touchpad {
        natural_scroll = yes
        disable_while_typing = true
        clickfinger_behavior = true
        scroll_factor = 0.7
    }
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    vfr = 1
    vrr = 1
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    animate_manual_resizes = false
    animate_mouse_windowdragging = false
    enable_swallow = false
    swallow_regex = (foot|kitty|allacritty|Alacritty)
    on_focus_under_fullscreen = 2
    allow_session_lock_restore = true
    session_lock_xray = true
    initial_workspace_tracking = false
    focus_on_activate = true
}

binds {
    scroll_event_delay = 0
    hide_special_on_workspace_change = true
}

cursor {
    zoom_factor = 1
    zoom_rigid = false
    zoom_disable_aa = true
    hotspot_padding = 1
}



================================================
FILE: dots/.config/hypr/hyprland/keybinds.conf
================================================
# Lines ending with `# [hidden]` won't be shown on cheatsheet
# Lines starting with #! are section headings

#!
##! Shell
# These absolutely need to be on top, or they won't work consistently
bindid = Super, Super_L, Toggle search, global, quickshell:searchToggleRelease # Toggle search
bindid = Super, Super_R, Toggle search, global, quickshell:searchToggleRelease # [hidden] Toggle search
bind = Super, Super_L, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
bind = Super, Super_R, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || fuzzel # [hidden] Launcher (fallback)
binditn = Super, catchall, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Ctrl, Super_L, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Ctrl, Super_R, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:272, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:273, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:274, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:275, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:276, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse:277, global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse_up,  global, quickshell:searchToggleReleaseInterrupt # [hidden]
bind = Super, mouse_down,global, quickshell:searchToggleReleaseInterrupt # [hidden]

bindit = ,Super_L, global, quickshell:workspaceNumber # [hidden]
bindit = ,Super_R, global, quickshell:workspaceNumber # [hidden]
bind = Super, Tab, global, quickshell:overviewWorkspacesToggle # Toggle overview
bindd = Super, V, Clipboard history >> clipboard, global, quickshell:overviewClipboardToggle # Clipboard history >> clipboard
bindd = Super, Period, Emoji >> clipboard, global, quickshell:overviewEmojiToggle # Emoji >> clipboard
bind = Super, A, global, quickshell:sidebarLeftToggle # Toggle left sidebar
bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden]
bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden]
bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden]
bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar
bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet
bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard
bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls
bind = Super, G, global, quickshell:overlayToggle # Toggle overlay
bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu
bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar
bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback)
bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app

bindle=, XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+ # [hidden]
bindle=, XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%- # [hidden]
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1.5# [hidden]
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- # [hidden]

bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden]
bindld = Super+Shift,M, Toggle mute, exec, wpctl set-mute @DEFAULT_SINK@ toggle # [hidden]
bindl = Alt ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
bindld = Super+Alt,M, Toggle mic, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle # [hidden]
bindd = Ctrl+Super, T, Toggle wallpaper selector, global, quickshell:wallpaperSelectorToggle # Wallpaper selector
bindd = Ctrl+Super+Alt, T, Select random wallpaper, global, quickshell:wallpaperSelectorRandom # Random wallpaper
bindd = Ctrl+Super, T, Change wallpaper, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/colors/switchwall.sh # [hidden] Change wallpaper (fallback)
bind = Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig & # Restart widgets
bind = Ctrl+Super, P, global, quickshell:panelFamilyCycle # Cycle panel family

##! Utilities
# Screenshot, Record, OCR, Color picker, Clipboard history
bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback)
bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback)
bind = Super+Shift, S, global, quickshell:regionScreenshot # Screen snip
bind = Super+Shift, S, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent # [hidden] Screen snip (fallback)
bind = Super+Shift, A, global, quickshell:regionSearch # Google Lens
bind = Super+Shift, A, exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || ~/.config/hypr/hyprland/scripts/snip_to_search.sh # [hidden] Google Lens (fallback)
# OCR
bind = Super+Shift, X, global, quickshell:regionOcr # Character recognition >> clipboard
bind = Super+Shift, T, global, quickshell:regionOcr # [hidden]
bind = Super+Shift, X,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\\n' '+' | sed 's/\\+$/\\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden]
bind = Super+Shift, T,exec, qs -c $qsConfig ipc call TEST_ALIVE || pidof slurp || grim -g "$(slurp $SLURP_ARGS)" "/tmp/ocr_image.png" && tesseract "/tmp/ocr_image.png" stdout -l $(tesseract --list-langs | awk 'NR>1{print $1}' | tr '\\n' '+' | sed 's/\\+$/\\n/') | wl-copy && rm "/tmp/ocr_image.png" # [hidden]
# Color picker
bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard
# Fullscreen screenshot
bindl = ,Print,exec,grim - | wl-copy # Screenshot >> clipboard
bindln = Ctrl,Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_"$(date '+%Y-%m-%d_%H.%M.%S')".png # Screenshot >> clipboard & file (file)
bindln = Ctrl,Print,exec,grim - | wl-copy # [hidden] Screenshot >> clipboard & file (clipboard)
# Recording stuff
bindl = Super+Shift, R, global, quickshell:regionRecord # Record region (no sound)
bindl = Super+Shift, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback)
bindl = Super+Alt, R, global, quickshell:regionRecord # [hidden] Record region (no sound)
bindl = Super+Alt, R, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/quickshell/$qsConfig/scripts/videos/record.sh # [hidden] Record region (no sound) (fallback)
bindl = Ctrl+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen # [hidden] Record screen (no sound)
bindl = Super+Shift+Alt, R, exec, ~/.config/quickshell/$qsConfig/scripts/videos/record.sh --fullscreen --sound # Record screen (with sound)
# AI
bindd = Super+Shift+Alt, mouse:273, Generate AI summary for selected text, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh # [hidden] AI summary for selected text

#!
##! Window
# Focusing
bindm = Super, mouse:272, movewindow # Move
bindm = Super, mouse:274, movewindow # [hidden]
bindm = Super, mouse:273, resizewindow # Resize
#/# bind = Super, ←/↑/→/↓,, # Focus in direction
bind = Super, Left, movefocus, l # [hidden]
bind = Super, Right, movefocus, r # [hidden]
bind = Super, Up, movefocus, u # [hidden]
bind = Super, Down, movefocus, d # [hidden]
bind = Super, BracketLeft, movefocus, l # [hidden]
bind = Super, BracketRight, movefocus, r # [hidden]
#/# bind = Super+Shift, ←/↑/→/↓,, # Move in direction
bind = Super+Shift, Left, movewindow, l # [hidden]
bind = Super+Shift, Right, movewindow, r # [hidden]
bind = Super+Shift, Up, movewindow, u # [hidden]
bind = Super+Shift, Down, movewindow, d # [hidden]
bind = Alt, F4, killactive, # [hidden] Close (Windows)
bind = Super, Q, killactive, # Close
bind = Super+Shift+Alt, Q, exec, hyprctl kill # Forcefully zap a window


# Window split ratio
#/# binde = Super, ;/',, # Adjust split ratio
binde = Super, Semicolon, layoutmsg, splitratio -0.1 # [hidden]
binde = Super, Apostrophe, layoutmsg, splitratio +0.1 # [hidden]
# Positioning mode
bind = Super+Alt, Space, togglefloating, # Float/Tile
bind = Super, D, fullscreen, 1 # Maximize
bind = Super, F, fullscreen, 0 # Fullscreen
bind = Super+Alt, F, fullscreenstate, 0 3 # Fullscreen spoof
bind = Super, P, pin # Pin

#/# bind = Super+Alt, Hash,, # Send to workspace # (1, 2, 3,...)
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
bind = Super+Alt, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1 # [hidden]
bind = Super+Alt, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2 # [hidden]
bind = Super+Alt, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3 # [hidden]
bind = Super+Alt, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4 # [hidden]
bind = Super+Alt, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5 # [hidden]
bind = Super+Alt, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6 # [hidden]
bind = Super+Alt, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7 # [hidden]
bind = Super+Alt, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8 # [hidden]
bind = Super+Alt, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9 # [hidden]
bind = Super+Alt, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden]
# keypad numbers
bind = Super+Alt, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 1  # [hidden]
bind = Super+Alt, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 2  # [hidden]
bind = Super+Alt, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 3  # [hidden]
bind = Super+Alt, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 4  # [hidden]
bind = Super+Alt, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 5  # [hidden]
bind = Super+Alt, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 6  # [hidden]
bind = Super+Alt, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 7  # [hidden]
bind = Super+Alt, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 8  # [hidden]
bind = Super+Alt, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 9  # [hidden]
bind = Super+Alt, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 10 # [hidden]

# #/# bind = Super+Shift, Scroll ↑/↓,, # Send to workspace left/right
bind = Super+Shift, mouse_down, movetoworkspace, r-1 # [hidden]
bind = Super+Shift, mouse_up, movetoworkspace, r+1 # [hidden]
bind = Super+Alt, mouse_down, movetoworkspace, -1 # [hidden]
bind = Super+Alt, mouse_up, movetoworkspace, +1 # [hidden]

#/# bind = Super+Shift, Page_↑/↓,, # Send to workspace left/right
bind = Super+Alt, Page_Down, movetoworkspace, +1 # [hidden]
bind = Super+Alt, Page_Up, movetoworkspace, -1 # [hidden]
bind = Super+Shift, Page_Down, movetoworkspace, r+1  # [hidden]
bind = Super+Shift, Page_Up, movetoworkspace, r-1  # [hidden]
bind = Ctrl+Super+Shift, Right, movetoworkspace, r+1 # [hidden]
bind = Ctrl+Super+Shift, Left, movetoworkspace, r-1 # [hidden]

bind = Super+Alt, S, movetoworkspacesilent, special # Send to scratchpad

bind = Ctrl+Super, S, togglespecialworkspace, # [hidden]

##! Workspace
# Switching
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3,...)
# We use raw keycodes because some keyboard layouts register number keys as different chars. The codes can be verified with `wev`
bind = Super, code:10, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1 # [hidden]
bind = Super, code:11, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2 # [hidden]
bind = Super, code:12, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3 # [hidden]
bind = Super, code:13, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4 # [hidden]
bind = Super, code:14, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5 # [hidden]
bind = Super, code:15, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6 # [hidden]
bind = Super, code:16, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7 # [hidden]
bind = Super, code:17, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8 # [hidden]
bind = Super, code:18, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9 # [hidden]
bind = Super, code:19, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden]
# keypad numbers
bindp = Super, code:87, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 1  # [hidden]
bindp = Super, code:88, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 2  # [hidden]
bindp = Super, code:89, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 3  # [hidden]
bindp = Super, code:83, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 4  # [hidden]
bindp = Super, code:84, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 5  # [hidden]
bindp = Super, code:85, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 6  # [hidden]
bindp = Super, code:79, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 7  # [hidden]
bindp = Super, code:80, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 8  # [hidden]
bindp = Super, code:81, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 9  # [hidden]
bindp = Super, code:90, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 10 # [hidden]

#/# bind = Ctrl+Super, ←/→,, # Focus left/right
bind = Ctrl+Super, Right, workspace, r+1 # [hidden]
bind = Ctrl+Super, Left, workspace, r-1 # [hidden]
#/# bind = Ctrl+Super+Alt, ←/→,, # [hidden] Focus busy left/right
bind = Ctrl+Super+Alt, Right, workspace, m+1 # [hidden]
bind = Ctrl+Super+Alt, Left, workspace, m-1 # [hidden]
#/# bind = Super, Page_↑/↓,, # Focus left/right
bind = Super, Page_Down, workspace, +1 # [hidden]
bind = Super, Page_Up, workspace, -1 # [hidden]
bind = Ctrl+Super, Page_Down, workspace, r+1 # [hidden]
bind = Ctrl+Super, Page_Up, workspace, r-1 # [hidden]
#/# bind = Super, Scroll ↑/↓,, # Focus left/right
bind = Super, mouse_up, workspace, +1 # [hidden]
bind = Super, mouse_down, workspace, -1 # [hidden]
bind = Ctrl+Super, mouse_up, workspace, r+1 # [hidden]
bind = Ctrl+Super, mouse_down, workspace, r-1 # [hidden]
## Special
bind = Super, S, togglespecialworkspace, # Toggle scratchpad
bind = Super, mouse:275, togglespecialworkspace, # [hidden]
bind = Ctrl+Super, BracketLeft, workspace, -1 # [hidden]
bind = Ctrl+Super, BracketRight, workspace, +1 # [hidden]
bind = Ctrl+Super, Up, workspace, r-5 # [hidden]
bind = Ctrl+Super, Down, workspace, r+5 # [hidden]

##! Virtual machines
bind = Super+Alt, F1, exec, notify-send 'Entered Virtual Machine submap' 'Keybinds disabled. Hit Super+Alt+F1 to escape' -a 'Hyprland' && hyprctl dispatch submap virtual-machine # Disable keybinds
submap = virtual-machine
bind = Super+Alt, F1, exec, notify-send 'Exited Virtual Machine submap' 'Keybinds re-enabled' -a 'Hyprland' && hyprctl dispatch submap global # [hidden]
submap = global

#!
# Testing
bind = Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification with body image" "This notification should contain your user account <b>image</b> and <a href=\"https://discord.com/app\">Discord</a> <b>icon</b>. Oh and here is a random image in your Pictures folder: <img src=\"$RANDOM_IMAGE\" alt=\"Testing image\"/>" -a "Hyprland keybind" -p -h "string:image-path:/var/lib/AccountsService/icons/$USER" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Open the random image" -A "action3=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"' # [hidden]
bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i "nipple" | grep -v -i "pussy" | shuf -n 1); ACTION=$(notify-send "Test notification" "This notification should contain a random image in your <b>Pictures</b> folder and <a href=\"https://discord.com/app\">Discord</a> <b>icon</b>.\n<i>Flick right to dismiss!</i>" -a "Discord (fake)" -p -h "string:image-path:$RANDOM_IMAGE" -t 6000 -i "discord" -A "openImage=Profile image" -A "action2=Useless button"); [[ $ACTION == *openImage ]] && xdg-open "/var/lib/AccountsService/icons/$USER"' # [hidden]
bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden]

##! Session
bindd = Super, L, Lock, exec, loginctl lock-session # Lock
bindld = Super+Shift, L, Suspend system, exec, systemctl suspend || loginctl suspend # Sleep
# bindl=,switch:on:Lid Switch, exec, systemctl suspend || loginctl suspend # [hidden] Suspend when laptop lid is closed, uncomment if for whatever reason it's not the default behavior
bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off

##! Screen
# Zoom
binde = Super, Minus, exec, ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.3 # Zoom out
binde = Super, Equal, exec, ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.3 # Zoom in
# Zoom with keypad
binde = Super, code:82, exec, qs -c $qsConfig ipc call zoom zoomOut # [hidden] Zoom out
binde = Super, code:86, exec, qs -c $qsConfig ipc call zoom zoomIn # [hidden] Zoom in
binde = Super, code:82, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1 # [hidden] Zoom out
binde = Super, code:86, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1 # [hidden] Zoom in

##! Media
bindl= Super+Shift, N, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # Next track
bindl= ,XF86AudioNext, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden]
bindl= ,XF86AudioPrev, exec, playerctl previous # [hidden]
bind = Super+Shift+Alt, mouse:275, exec, playerctl previous # [hidden]
bind = Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< "100 * $(playerctl metadata mpris:length) / 1000000 / 100"` # [hidden]
bindl= Super+Shift, B, exec, playerctl previous # Previous track
bindl= Super+Shift, P, exec, playerctl play-pause # Play/pause media
bindl= ,XF86AudioPlay, exec, playerctl play-pause # [hidden]
bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden]

##! Apps
bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal
bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt)
bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "${TERMINAL}" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people)
bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "${TERMINAL}" "kitty -1 fish -c yazi" # File manager
bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser
bind = Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "antigravity" "code" "codium" "cursor" "zed" "zedit" "zeditor" "kate" "gnome-text-editor" "emacs" "command -v nvim && kitty -1 nvim" "command -v micro && kitty -1 micro" # Code editor
bind = Ctrl+Super+Shift+Alt, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "wps" "onlyoffice-desktopeditors" "libreoffice" # Office software
bind = Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "kate" "gnome-text-editor" "emacs" # Text editor
bind = Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "pavucontrol-qt" "pavucontrol" # Volume mixer
bind = Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh "qs -p ~/.config/quickshell/$qsConfig/settings.qml" "systemsettings" "gnome-control-center" "better-control" # Settings app
bind = Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "gnome-system-monitor" "plasma-systemmonitor --page-name Processes" "command -v btop && kitty -1 fish -c btop" # Task manager

# Cursed stuff
## Make window not amogus large
bind = Ctrl+Super, Backslash, resizeactive, exact 640 480 # [hidden]



================================================
FILE: dots/.config/hypr/hyprland/rules.conf
================================================
# ######## Window rules ########

# Disable blur for xwayland context menus
windowrule = match:class ^()$, match:title ^()$, no_blur on

# Disable blur for every window
windowrule = match:class .*, no_blur on

# Floating
windowrule = match:title ^(Open File)(.*)$, center on
windowrule = match:title ^(Open File)(.*)$, float on
windowrule = match:title ^(Select a File)(.*)$, center on
windowrule = match:title ^(Select a File)(.*)$, float on
windowrule = match:title ^(Choose wallpaper)(.*)$, center on
windowrule = match:title ^(Choose wallpaper)(.*)$, float on
windowrule = match:title ^(Choose wallpaper)(.*)$, size (monitor_w*.60) (monitor_h*.65)
windowrule = match:title ^(Open Folder)(.*)$, center on
windowrule = match:title ^(Open Folder)(.*)$, float on
windowrule = match:title ^(Save As)(.*)$, center on
windowrule = match:title ^(Save As)(.*)$, float on
windowrule = match:title ^(Library)(.*)$, center on
windowrule = match:title ^(Library)(.*)$, float on
windowrule = match:title ^(File Upload)(.*)$, center on
windowrule = match:title ^(File Upload)(.*)$, float on
windowrule = match:title ^(.*)(wants to save)$, center on
windowrule = match:title ^(.*)(wants to save)$, float on
windowrule = match:title ^(.*)(wants to open)$, center on
windowrule = match:title ^(.*)(wants to open)$, float on
windowrule = match:class ^(blueberry\.py)$, float on
windowrule = match:class ^(guifetch)$  , float on # FlafyDev/guifetch
windowrule = match:class ^(pavucontrol)$, float on
windowrule = match:class ^(pavucontrol)$, size (monitor_w*.45) (monitor_h*.45)
windowrule = match:class ^(pavucontrol)$, center on
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, float on
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, size (monitor_w*.45) (monitor_h*.45)
windowrule = match:class ^(org.pulseaudio.pavucontrol)$, center on
windowrule = match:class ^(nm-connection-editor)$, float on
windowrule = match:class ^(nm-connection-editor)$, size (monitor_w*.45) (monitor_h*.45)
windowrule = match:class ^(nm-connection-editor)$, center on
windowrule = match:class .*plasmawindowed.*, float on
windowrule = match:class kcm_.*, float on
windowrule = match:class .*bluedevilwizard, float on
windowrule = match:title .*Welcome, float on
windowrule = match:title ^(illogical-impulse Settings)$, float on
windowrule = match:title .*Shell conflicts.*, float on
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, float on
windowrule = match:class org.freedesktop.impl.portal.desktop.kde, size (monitor_w*.60) (monitor_h*.65)
windowrule = match:class ^(Zotero)$, float on
windowrule = match:class ^(Zotero)$, size (monitor_w*.45) (monitor_h*.45)

# Move
# kde-material-you-colors spawns a window when changing dark/light theme. This is to make sure it doesn't interfere at all.
windowrule = match:class ^(plasma-changeicons)$, float on
windowrule = match:class ^(plasma-changeicons)$, no_initial_focus on
windowrule = match:class ^(plasma-changeicons)$, move 999999 999999
# stupid dolphin copy
windowrule = match:title ^(Copying — Dolphin)$, move 40 80

# Tiling
windowrule = match:class ^dev\.warp\.Warp$, tile on

# Picture-in-Picture
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, keep_aspect_ratio on
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, move (monitor_w*.73) (monitor_h*.72)
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, size (monitor_w*.25) (monitor_h*.25)
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, float on
windowrule = match:title ^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$, pin on

# --- Tearing ---
windowrule = match:title .*\.exe, immediate on
windowrule = match:title .*minecraft.*, immediate on
windowrule = match:class ^(steam_app).*, immediate on

# Fix Jetbrain IDEs focus/rerendering problem
windowrule = match:class ^jetbrains-.*$, match:float 1, match:title ^$|^\s$|^win\d+$, no_initial_focus on

# No shadow for tiled windows (matches windows that are not floating).
windowrule = match:float 0, no_shadow on

# ######## Workspace rules ########
workspace = special:special, gapsout:30

# ######## Layer rules ########
layerrule = match:namespace .*, xray on
# layerrule = match:namespace .*, no_anim on
layerrule = match:namespace walker, no_anim on
layerrule = match:namespace selection, no_anim on
layerrule = match:namespace overview, no_anim on
layerrule = match:namespace anyrun, no_anim on
layerrule = match:namespace indicator.*, no_anim on
layerrule = match:namespace osk, no_anim on
layerrule = match:namespace hyprpicker, no_anim on

layerrule = match:namespace noanim, no_anim on
layerrule = match:namespace gtk-layer-shell, blur on
layerrule = match:namespace gtk-layer-shell, ignore_alpha 0
layerrule = match:namespace launcher, blur on
layerrule = match:namespace launcher, ignore_alpha 0.5
layerrule = match:namespace notifications, blur on
layerrule = match:namespace notifications, ignore_alpha 0.69
layerrule = match:namespace logout_dialog # wlogout, blur on

# ags
layerrule = match:namespace sideleft.*, animation slide left
layerrule = match:namespace sideright.*, animation slide right
layerrule = match:namespace session[0-9]*, blur on
layerrule = match:namespace bar[0-9]*, blur on
layerrule = match:namespace bar[0-9]*, ignore_alpha 0.6
layerrule = match:namespace barcorner.*, blur on
layerrule = match:namespace barcorner.*, ignore_alpha 0.6
layerrule = match:namespace dock[0-9]*, blur on
layerrule = match:namespace dock[0-9]*, ignore_alpha 0.6
layerrule = match:namespace indicator.*, blur on
layerrule = match:namespace indicator.*, ignore_alpha 0.6
layerrule = match:namespace overview[0-9]*, blur on
layerrule = match:namespace overview[0-9]*, ignore_alpha 0.6
layerrule = match:namespace cheatsheet[0-9]*, blur on
layerrule = match:namespace cheatsheet[0-9]*, ignore_alpha 0.6
layerrule = match:namespace sideright[0-9]*, blur on
layerrule = match:namespace sideright[0-9]*, ignore_alpha 0.6
layerrule = match:namespace sideleft[0-9]*, blur on
layerrule = match:namespace sideleft[0-9]*, ignore_alpha 0.6
layerrule = match:namespace indicator.*, blur on
layerrule = match:namespace indicator.*, ignore_alpha 0.6
layerrule = match:namespace osk[0-9]*, blur on
layerrule = match:namespace osk[0-9]*, ignore_alpha 0.6

# Quickshell
# Quickshell: illogical-impulse
layerrule = match:namespace quickshell:.*, blur_popups on
layerrule = match:namespace quickshell:.*, blur on
layerrule = match:namespace quickshell:.*, ignore_alpha 0.79
layerrule = match:namespace quickshell:bar, animation slide
layerrule = match:namespace quickshell:actionCenter, no_anim on
layerrule = match:namespace quickshell:cheatsheet, animation slide bottom
layerrule = match:namespace quickshell:dock, animation slide bottom
layerrule = match:namespace quickshell:screenCorners, animation popin 120%
layerrule = match:namespace quickshell:lockWindowPusher, no_anim on
layerrule = match:namespace quickshell:notificationPopup, animation fade
layerrule = match:namespace quickshell:overlay, no_anim on
layerrule = match:namespace quickshell:overlay, ignore_alpha 1
layerrule = match:namespace quickshell:overview, no_anim on
layerrule = match:namespace quickshell:osk, animation slide bottom
layerrule = match:namespace quickshell:polkit, no_anim on
layerrule = match:namespace quickshell:popup, xray off # No weird color for bar tooltips (this in theory should suffice)
layerrule = match:namespace quickshell:popup, ignore_alpha 1 # No weird color for bar tooltips (but somehow this is necessary)
layerrule = match:namespace quickshell:mediaControls, ignore_alpha 1 # Same as above
layerrule = match:namespace quickshell:reloadPopup, animation slide
layerrule = match:namespace quickshell:regionSelector, no_anim on
layerrule = match:namespace quickshell:screenshot, no_anim on
layerrule = match:namespace quickshell:session, blur on
layerrule = match:namespace quickshell:session, no_anim on
layerrule = match:namespace quickshell:session, ignore_alpha 0
layerrule = match:namespace quickshell:sidebarRight, animation slide right
layerrule = match:namespace quickshell:sidebarLeft, animation slide left
layerrule = match:namespace quickshell:verticalBar, animation slide
layerrule = match:namespace quickshell:osk, order -1
# Quickshell: waffles
layerrule = match:namespace quickshell:wallpaperSelector, animation slide top
layerrule = match:namespace quickshell:wNotificationCenter, no_anim on
layerrule = match:namespace quickshell:wOnScreenDisplay, no_anim on
layerrule = match:namespace quickshell:wStartMenu, no_anim on
layerrule = match:namespace quickshell:wTaskView, ignore_alpha 0
layerrule = match:namespace quickshell:wTaskView, no_anim on

# Launchers need to be FAST
layerrule = match:namespace gtk4-layer-shell, no_anim on


================================================
FILE: dots/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: dots/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh
================================================
#!/usr/bin/env bash

# Default system prompt
SYSTEM_PROMPT="You are a helpful, quick assistant that provides brief and concise explanation \
to given content in at most 100 characters. If the given content is not in English, translate \
it to English. If the content is an English word, provide its meaning. If the content is a name, \
provide some info about it. For a math expression, provide a simplification, \
each step on a line following this style: \`2x=11 (subtract 7 from both sides)\`. \
If you do not know the answer, simply say 'No info available'. \
Only respond for the appropriate case and use as little text as possible.\
The content:"

first_loaded_model=$("$(dirname "$0")/show-loaded-ollama-models.sh" -j | jq -r '.[0].model' 2>/dev/null) || first_loaded_model=""
model=${first_loaded_model:-"llama3.2"}

# Parse command-line arguments
while [[ "$#" -gt 0 ]]; do
    case $1 in
        --model) model="$2"; shift ;; # Set the model from the flag
        *) echo "Unknown parameter: $1"; exit 1 ;;
    esac
    shift
done

# Combine the system prompt with the clipboard content
content=$(wl-paste -p | tr '\n' ' ' | head -c 2000)  # 2000 char limit to prevent overflow

# Properly escape content for JSON using jq
prompt_json=$(jq -n --arg system_prompt "$SYSTEM_PROMPT" --arg content "$content" '$system_prompt + " " + $content')

# Make the API call with the specified or default model
api_payload=$(jq -n --arg model "$model" --argjson prompt "$prompt_json" --argjson stream false \
    '{model: $model, prompt: $prompt, stream: $stream}')
response=$(curl -s http://localhost:11434/api/generate -d "$api_payload" | jq -r '.response' 2>/dev/null)

# Check if content is a single line and no longer than 30 characters
if [[ ${#content} -le 30 && "$content" != *$'\n'* ]]; then
    notify-send --app-name="Text selection query" --expire-time=10000 \
        "$content" "$response"
else
    notify-send --app-name="Text selection query" --expire-time=10000 \
        "AI Response" "$response"
fi


================================================
FILE: dots/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh
================================================
#!/bin/bash

# From strikeoncmputrz/LLM_Scripts
# License: Apache-2.0, can be found in the same folder as this script

# Global Vars
ollama_url=http://localhost
port="11434"
blobs=()
model_name_paths=()


#Parse arguments
while [ "$#" -gt 0 ]; do
  case $1 in
    -h|--help)
      echo 
      echo " Identifies Ollama models running on this operating system by parsing running processes."
      echo 
      echo " Usage: $0 [options]"   
      echo
      echo " Options:"
      echo "  -j, --json_output        Prints result as a json object. Other output disabled. (Default: false)"      
      echo "  -p, --port [port number] Specify Ollama Server port (Default: 11434)"
      echo "  -u, --ollama_url [url]   Specify Ollama Server URL (Default: http://localhost)"
      echo
      echo " Dependencies: jq"
      exit 0
      ;;
    -j|--json_output)
      json_out=1
      shift 1
      ;;
    -u|--ollama_url)
      ollama_url=$2
      shift 2
      ;;
    -p|--port)
      port=$2
      shift 2
      ;;
    *)
      echo "Unknown option: $1"
      exit 1
      ;;
  esac
done

compare_running_models_and_modelfiles() { 
    json_match=()
    json_output=()
    local matching_models=()
    OLDIFS=$IFS
    for ((i=0; i<${#model_name_paths[@]}; i++)); do  # Iterate over the array of modelname,blob-path
        for blob in "${blobs[@]}"; do
            IFS=',', read -ra fields <<< "${model_name_paths[i]}"    # Split the string into parts
            if [ "${fields[1]}" == "$blob" ]; then  # Check if current 'field' matches a blob
                matching_models+=( '{ "model": "'"${fields[0]}"'", "path": "'"${fields[1]}"'"}') # Add to list of matching models
            fi
        done
    done
    
    if [ -z "$json_out" ]; then
        echo -e "\nModel Found: \n $(echo ${matching_models[*]} | jq '.' | sed s/[{}]//g) \n"        
    else
        local json_match="${matching_models[*]}"
        json_output=$(echo $json_match | jq -c -s .)
        echo "$json_output"
    fi
    IFS=$OLDIFS
}

get_running_model_paths() {
    blobs=$(ps aux | grep -- '--model' | grep -v grep | grep -Po '(?<=--model\s).*' | cut -d ' ' -f1)
    if [ -z "$blobs" ]; then
        echo -e "\n\n Warning: No running Ollama models detected!\n"
        exit 0
    fi
}

parse_modelfiles() {
    if [ -z "$json_out" ]; then
        echo -e "\nConnecting to $ollama_url:$port\n"
        if [ -z "$(curl -s $ollama_url:$port)" ]; then
           echo -e "Could not connect to Ollama. Check the ollama_url parameter and that the server is running\n"
           exit 1
        fi
        curl -s "$ollama_url:$port"
    fi
    local models=( $(curl -s "$ollama_url:$port/api/tags" | jq -r '.models[].name') )
    for model in "${models[@]}"; do
        local modelfile=$(curl -s "$ollama_url:$port/api/show" -d '{ "name": "'"$model"'", "modelfile": true }' | jq   -r '.modelfile')
        model_name_paths+=($model,$(echo "$modelfile" | awk '/^FROM/{print $2}'))
    done
}

parse_modelfiles
get_running_model_paths
compare_running_models_and_modelfiles


================================================
FILE: dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh
================================================
#!/bin/bash
set -euo pipefail

MODE="${1:-type}"

emoji="$(sed '1,/^### DATA ###$/d' "$0" | fuzzel --match-mode fzf --dmenu | cut -d ' ' -f 1 | tr -d '\n')"

case "$MODE" in
    type)
        wtype "${emoji}" || wl-copy "${emoji}"
        ;;
    copy)
        wl-copy "${emoji}"
        ;;
    both)
        wtype "${emoji}" || true
        wl-copy "${emoji}"
        ;;
    *)
        echo "Usage: $0 [type|copy|both]"
        exit 1
        ;;
esac
exit
### DATA ###
😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny
😄 grinning face with smiling eyes face happy joy funny haha laugh like :D :) smile
😁 beaming face with smiling eyes face happy smile joy kawaii
😆 grinning squinting face happy joy lol satisfied haha face glad XD laugh
😅 grinning face with sweat face hot happy laugh sweat smile relief
🤣 rolling on the floor laughing face rolling floor laughing lol haha rofl
😂 face with tears of joy face cry tears weep happy happytears haha
🙂 slightly smiling face face smile
🙃 upside down face face flipped silly smile
😉 winking face face happy mischievous secret ;) smile eye
😊 smiling face with smiling eyes face smile happy flushed crush embarrassed shy joy
😇 smiling face with halo face angel heaven halo
🥰 smiling face with hearts face love like affection valentines infatuation crush hearts adore
😍 smiling face with heart eyes face love like affection valentines infatuation crush heart
🤩 star struck face smile starry eyes grinning
😘 face blowing a kiss face love like affection valentines infatuation kiss
😗 kissing face love like face 3 valentines infatuation kiss
☺️ smiling face face blush massage happiness
😚 kissing face with closed eyes face love like affection valentines infatuation kiss
😙 kissing face with smiling eyes face affection valentines infatuation kiss
😋 face savoring food happy joy tongue smile face silly yummy nom delicious savouring
😛 face with tongue face prank childish playful mischievous smile tongue
😜 winking face with tongue face prank childish playful mischievous smile wink tongue
🤪 zany face face goofy crazy
😝 squinting face with tongue face prank playful mischievous smile tongue
🤑 money mouth face face rich dollar money
🤗 hugging face face smile hug
🤭 face with hand over mouth face whoops shock surprise
🤫 shushing face face quiet shhh
🤔 thinking face face hmmm think consider
🤐 zipper mouth face face sealed zipper secret
🤨 face with raised eyebrow face distrust scepticism disapproval disbelief surprise
😐 neutral face indifference meh :| neutral
😑 expressionless face face indifferent - - meh deadpan
😶 face without mouth face hellokitty
😏 smirking face face smile mean prank smug sarcasm
😒 unamused face indifference bored straight face serious sarcasm unimpressed skeptical dubious side eye
🙄 face with rolling eyes face eyeroll frustrated
😬 grimacing face face grimace teeth
🤥 lying face face lie pinocchio
😌 relieved face face relaxed phew massage happiness
😔 pensive face face sad depressed upset
😪 sleepy face face tired rest nap
🤤 drooling face face
😴 sleeping face face tired sleepy night zzz
😷 face with medical mask face sick ill disease
🤒 face with thermometer sick temperature thermometer cold fever
🤕 face with head bandage injured clumsy bandage hurt
🤢 nauseated face face vomit gross green sick throw up ill
🤮 face vomiting face sick
🤧 sneezing face face gesundheit sneeze sick allergy
🥵 hot face face feverish heat red sweating
🥶 cold face face blue freezing frozen frostbite icicles
🥴 woozy face face dizzy intoxicated tipsy wavy
😵 dizzy face spent unconscious xox dizzy
🤯 exploding head face shocked mind blown
🤠 cowboy hat face face cowgirl hat
🥳 partying face face celebration woohoo
😎 smiling face with sunglasses face cool smile summer beach sunglass
🤓 nerd face face nerdy geek dork
🧐 face with monocle face stuffy wealthy
😕 confused face face indifference huh weird hmmm :/
😟 worried face face concern nervous :(
🙁 slightly frowning face face frowning disappointed sad upset
☹️ frowning face face sad upset frown
😮 face with open mouth face surprise impressed wow whoa :O
😯 hushed face face woo shh
😲 astonished face face xox surprised poisoned
😳 flushed face face blush shy flattered sex
🥺 pleading face face begging mercy
😦 frowning face with open mouth face aw what
😧 anguished face face stunned nervous
😨 fearful face face scared terrified nervous oops huh
😰 anxious face with sweat face nervous sweat
😥 sad but relieved face face phew sweat nervous
😢 crying face face tears sad depressed upset :'(
😭 loudly crying face face cry tears sad upset depressed sob
😱 face screaming in fear face munch scared omg
😖 confounded face face confused sick unwell oops :S
😣 persevering face face sick no upset oops
😞 disappointed face face sad upset depressed :(
😓 downcast face with sweat face hot sad tired exercise
😩 weary face face tired sleepy sad frustrated upset
😫 tired face sick whine upset frustrated
🥱 yawning face tired sleepy
😤 face with steam from nose face gas phew proud pride
😡 pouting face angry mad hate despise
😠 angry face mad face annoyed frustrated
🤬 face with symbols on mouth face swearing cursing cussing profanity expletive
😈 smiling face with horns devil horns
👿 angry face with horns devil angry horns
💀 skull dead skeleton creepy death
☠️ skull and crossbones poison danger deadly scary death pirate evil
💩 pile of poo hankey shitface fail turd shit
🤡 clown face face
👹 ogre monster red mask halloween scary creepy devil demon japanese ogre
👺 goblin red evil mask monster scary creepy japanese goblin
👻 ghost halloween spooky scary
👽 alien UFO paul weird outer space
👾 alien monster game arcade play
🤖 robot computer machine bot
😺 grinning cat animal cats happy smile
😸 grinning cat with smiling eyes animal cats smile
😹 cat with tears of joy animal cats haha happy tears
😻 smiling cat with heart eyes animal love like affection cats valentines heart
😼 cat with wry smile animal cats smirk
😽 kissing cat animal cats kiss
🙀 weary cat animal cats munch scared scream
😿 crying cat animal tears weep sad cats upset cry
😾 pouting cat animal cats
🙈 see no evil monkey monkey animal nature haha
🙉 hear no evil monkey animal monkey nature
🙊 speak no evil monkey monkey animal nature omg
💋 kiss mark face lips love like affection valentines
💌 love letter email like affection envelope valentines
💘 heart with arrow love like heart affection valentines
💝 heart with ribbon love valentines
💖 sparkling heart love like affection valentines
💗 growing heart like love affection valentines pink
💓 beating heart love like affection valentines pink heart
💞 revolving hearts love like affection valentines
💕 two hearts love like affection valentines heart
💟 heart decoration purple-square love like
❣️ heart exclamation decoration love
💔 broken heart sad sorry break heart heartbreak
❤️ red heart love like valentines
🧡 orange heart love like affection valentines
💛 yellow heart love like affection valentines
💚 green heart love like affection valentines
💙 blue heart love like affection valentines
💜 purple heart love like affection valentines
🤎 brown heart coffee
🖤 black heart evil
🤍 white heart pure
💯 hundred points score perfect numbers century exam quiz test pass hundred
💢 anger symbol angry mad
💥 collision bomb explode explosion collision blown
💫 dizzy star sparkle shoot magic
💦 sweat droplets water drip oops
💨 dashing away wind air fast shoo fart smoke puff
🕳️ hole embarrassing
💣 bomb boom explode explosion terrorism
💬 speech balloon bubble words message talk chatting
👁️‍🗨️ eye in speech bubble info
🗨️ left speech bubble words message talk chatting
🗯️ right anger bubble caption speech thinking mad
💭 thought balloon bubble cloud speech thinking dream
💤 zzz sleepy tired dream
👋 waving hand hands gesture goodbye solong farewell hello hi palm
🤚 raised back of hand fingers raised backhand
🖐️ hand with fingers splayed hand fingers palm
✋ raised hand fingers stop highfive palm ban
🖖 vulcan salute hand fingers spock star trek
👌 ok hand fingers limbs perfect ok okay
🤏 pinching hand tiny small size
✌️ victory hand fingers ohyeah hand peace victory two
🤞 crossed fingers good lucky
🤟 love you gesture hand fingers gesture
🤘 sign of the horns hand fingers evil eye sign of horns rock on
🤙 call me hand hands gesture shaka
👈 backhand index pointing left direction fingers hand left
👉 backhand index pointing right fingers hand direction right
👆 backhand index pointing up fingers hand direction up
🖕 middle finger hand fingers rude middle flipping
👇 backhand index pointing down fingers hand direction down
☝️ index pointing up hand fingers direction up
👍 thumbs up thumbsup yes awesome good agree accept cool hand like +1
👎 thumbs down thumbsdown no dislike hand -1
✊ raised fist fingers hand grasp
👊 oncoming fist angry violence fist hit attack hand
🤛 left facing fist hand fistbump
🤜 right facing fist hand fistbump
👏 clapping hands hands praise applause congrats yay
🙌 raising hands gesture hooray yea celebration hands
👐 open hands fingers butterfly hands open
🤲 palms up together hands gesture cupped prayer
🤝 handshake agreement shake
🙏 folded hands please hope wish namaste highfive pray
✍️ writing hand lower left ballpoint pen stationery write compose
💅 nail polish beauty manicure finger fashion nail
🤳 selfie camera phone
💪 flexed biceps arm flex hand summer strong biceps
🦾 mechanical arm accessibility
🦿 mechanical leg accessibility
🦵 leg kick limb
🦶 foot kick stomp
👂 ear face hear sound listen
🦻 ear with hearing aid accessibility
👃 nose smell sniff
🧠 brain smart intelligent
🦷 tooth teeth dentist
🦴 bone skeleton
👀 eyes look watch stalk peek see
👁️ eye face look see watch stare
👅 tongue mouth playful
👄 mouth mouth kiss
👶 baby child boy girl toddler
🧒 child gender-neutral young
👦 boy man male guy teenager
👧 girl female woman teenager
🧑 person gender-neutral person
👱 person blond hair hairstyle
👨 man mustache father dad guy classy sir moustache
🧔 man beard person bewhiskered
👨‍🦰 man red hair hairstyle
👨‍🦱 man curly hair hairstyle
👨‍🦳 man white hair old elder
👨‍🦲 man bald hairless
👩 woman female girls lady
👩‍🦰 woman red hair hairstyle
🧑‍🦰 person red hair hairstyle
👩‍🦱 woman curly hair hairstyle
🧑‍🦱 person curly hair hairstyle
👩‍🦳 woman white hair old elder
🧑‍🦳 person white hair elder old
👩‍🦲 woman bald hairless
🧑‍🦲 person bald hairless
👱‍♀️ woman blond hair woman female girl blonde person
👱‍♂️ man blond hair man male boy blonde guy person
🧓 older person human elder senior gender-neutral
👴 old man human male men old elder senior
👵 old woman human female women lady old elder senior
🙍 person frowning worried
🙍‍♂️ man frowning male boy man sad depressed discouraged unhappy
🙍‍♀️ woman frowning female girl woman sad depressed discouraged unhappy
🙎 person pouting upset
🙎‍♂️ man pouting male boy man
🙎‍♀️ woman pouting female girl woman
🙅 person gesturing no decline
🙅‍♂️ man gesturing no male boy man nope
🙅‍♀️ woman gesturing no female girl woman nope
🙆 person gesturing ok agree
🙆‍♂️ man gesturing ok men boy male blue human man
🙆‍♀️ woman gesturing ok women girl female pink human woman
💁 person tipping hand information
💁‍♂️ man tipping hand male boy man human information
💁‍♀️ woman tipping hand female girl woman human information
🙋 person raising hand question
🙋‍♂️ man raising hand male boy man
🙋‍♀️ woman raising hand female girl woman
🧏 deaf person accessibility
🧏‍♂️ deaf man accessibility
🧏‍♀️ deaf woman accessibility
🙇 person bowing respectiful
🙇‍♂️ man bowing man male boy
🙇‍♀️ woman bowing woman female girl
🤦 person facepalming disappointed
🤦‍♂️ man facepalming man male boy disbelief
🤦‍♀️ woman facepalming woman female girl disbelief
🤷 person shrugging regardless
🤷‍♂️ man shrugging man male boy confused indifferent doubt
🤷‍♀️ woman shrugging woman female girl confused indifferent doubt
🧑‍⚕️ health worker hospital
👨‍⚕️ man health worker doctor nurse therapist healthcare man human
👩‍⚕️ woman health worker doctor nurse therapist healthcare woman human
🧑‍🎓 student learn
👨‍🎓 man student graduate man human
👩‍🎓 woman student graduate woman human
🧑‍🏫 teacher professor
👨‍🏫 man teacher instructor professor man human
👩‍🏫 woman teacher instructor professor woman human
🧑‍⚖️ judge law
👨‍⚖️ man judge justice court man human
👩‍⚖️ woman judge justice court woman human
🧑‍🌾 farmer crops
👨‍🌾 man farmer rancher gardener man human
👩‍🌾 woman farmer rancher gardener woman human
🧑‍🍳 cook food kitchen culinary
👨‍🍳 man cook chef man human
👩‍🍳 woman cook chef woman human
🧑‍🔧 mechanic worker technician
👨‍🔧 man mechanic plumber man human wrench
👩‍🔧 woman mechanic plumber woman human wrench
🧑‍🏭 factory worker labor
👨‍🏭 man factory worker assembly industrial man human
👩‍🏭 woman factory worker assembly industrial woman human
🧑‍💼 office worker business
👨‍💼 man office worker business manager man human
👩‍💼 woman office worker business manager woman human
🧑‍🔬 scientist chemistry
👨‍🔬 man scientist biologist chemist engineer physicist man human
👩‍🔬 woman scientist biologist chemist engineer physicist woman human
🧑‍💻 technologist computer
👨‍💻 man technologist coder developer engineer programmer software man human laptop computer
👩‍💻 woman technologist coder developer engineer programmer software woman human laptop computer
🧑‍🎤 singer song artist performer
👨‍🎤 man singer rockstar entertainer man human
👩‍🎤 woman singer rockstar entertainer woman human
🧑‍🎨 artist painting draw creativity
👨‍🎨 man artist painter man human
👩‍🎨 woman artist painter woman human
🧑‍✈️ pilot fly plane airplane
👨‍✈️ man pilot aviator plane man human
👩‍✈️ woman pilot aviator plane woman human
🧑‍🚀 astronaut outerspace
👨‍🚀 man astronaut space rocket man human
👩‍🚀 woman astronaut space rocket woman human
🧑‍🚒 firefighter fire
👨‍🚒 man firefighter fireman man human
👩‍🚒 woman firefighter fireman woman human
👮 police officer cop
👮‍♂️ man police officer man police law legal enforcement arrest 911
👮‍♀️ woman police officer woman police law legal enforcement arrest 911 female
🕵️ detective human spy detective
🕵️‍♂️ man detective crime
🕵️‍♀️ woman detective human spy detective female woman
💂 guard protect
💂‍♂️ man guard uk gb british male guy royal
💂‍♀️ woman guard uk gb british female royal woman
👷 construction worker labor build
👷‍♂️ man construction worker male human wip guy build construction worker labor
👷‍♀️ woman construction worker female human wip build construction worker labor woman
🤴 prince boy man male crown royal king
👸 princess girl woman female blond crown royal queen
👳 person wearing turban headdress
👳‍♂️ man wearing turban male indian hinduism arabs
👳‍♀️ woman wearing turban female indian hinduism arabs woman
👲 man with skullcap male boy chinese
🧕 woman with headscarf female hijab mantilla tichel
🤵 man in tuxedo couple marriage wedding groom
👰 bride with veil couple marriage wedding woman bride
🤰 pregnant woman baby
🤱 breast feeding nursing baby
👼 baby angel heaven wings halo
🎅 santa claus festival man male xmas father christmas
🤶 mrs claus woman female xmas mother christmas
🦸 superhero marvel
🦸‍♂️ man superhero man male good hero superpowers
🦸‍♀️ woman superhero woman female good heroine superpowers
🦹 supervillain marvel
🦹‍♂️ man supervillain man male evil bad criminal hero superpowers
🦹‍♀️ woman supervillain woman female evil bad criminal heroine superpowers
🧙 mage magic
🧙‍♂️ man mage man male mage sorcerer
🧙‍♀️ woman mage woman female mage witch
🧚 fairy wings magical
🧚‍♂️ man fairy man male
🧚‍♀️ woman fairy woman female
🧛 vampire blood twilight
🧛‍♂️ man vampire man male dracula
🧛‍♀️ woman vampire woman female
🧜 merperson sea
🧜‍♂️ merman man male triton
🧜‍♀️ mermaid woman female merwoman ariel
🧝 elf magical
🧝‍♂️ man elf man male
🧝‍♀️ woman elf woman female
🧞 genie magical wishes
🧞‍♂️ man genie man male
🧞‍♀️ woman genie woman female
🧟 zombie dead
🧟‍♂️ man zombie man male dracula undead walking dead
🧟‍♀️ woman zombie woman female undead walking dead
💆 person getting massage relax
💆‍♂️ man getting massage male boy man head
💆‍♀️ woman getting massage female girl woman head
💇 person getting haircut hairstyle
💇‍♂️ man getting haircut male boy man
💇‍♀️ woman getting haircut female girl woman
🚶 person walking move
🚶‍♂️ man walking human feet steps
🚶‍♀️ woman walking human feet steps woman female
🧍 person standing still
🧍‍♂️ man standing still
🧍‍♀️ woman standing still
🧎 person kneeling pray respectful
🧎‍♂️ man kneeling pray respectful
🧎‍♀️ woman kneeling respectful pray
🧑‍🦯 person with probing cane blind
👨‍🦯 man with probing cane blind
👩‍🦯 woman with probing cane blind
🧑‍🦼 person in motorized wheelchair disability accessibility
👨‍🦼 man in motorized wheelchair disability accessibility
👩‍🦼 woman in motorized wheelchair disability accessibility
🧑‍🦽 person in manual wheelchair disability accessibility
👨‍🦽 man in manual wheelchair disability accessibility
👩‍🦽 woman in manual wheelchair disability accessibility
🏃 person running move
🏃‍♂️ man running man walking exercise race running
🏃‍♀️ woman running woman walking exercise race running female
💃 woman dancing female girl woman fun
🕺 man dancing male boy fun dancer
🕴️ man in suit levitating suit business levitate hover jump
👯 people with bunny ears perform costume
👯‍♂️ men with bunny ears male bunny men boys
👯‍♀️ women with bunny ears female bunny women girls
🧖 person in steamy room relax spa
🧖‍♂️ man in steamy room male man spa steamroom sauna
🧖‍♀️ woman in steamy room female woman spa steamroom sauna
🧗 person climbing sport
🧗‍♂️ man climbing sports hobby man male rock
🧗‍♀️ woman climbing sports hobby woman female rock
🤺 person fencing sports fencing sword
🏇 horse racing animal betting competition gambling luck
⛷️ skier sports winter snow
🏂 snowboarder sports winter
🏌️ person golfing sports business
🏌️‍♂️ man golfing sport
🏌️‍♀️ woman golfing sports business woman female
🏄 person surfing sport sea
🏄‍♂️ man surfing sports ocean sea summer beach
🏄‍♀️ woman surfing sports ocean sea summer beach woman female
🚣 person rowing boat sport move
🚣‍♂️ man rowing boat sports hobby water ship
🚣‍♀️ woman rowing boat sports hobby water ship woman female
🏊 person swimming sport pool
🏊‍♂️ man swimming sports exercise human athlete water summer
🏊‍♀️ woman swimming sports exercise human athlete water summer woman female
⛹️ person bouncing ball sports human
⛹️‍♂️ man bouncing ball sport
⛹️‍♀️ woman bouncing ball sports human woman female
🏋️ person lifting weights sports training exercise
🏋️‍♂️ man lifting weights sport
🏋️‍♀️ woman lifting weights sports training exercise woman female
🚴 person biking sport move
🚴‍♂️ man biking sports bike exercise hipster
🚴‍♀️ woman biking sports bike exercise hipster woman female
🚵 person mountain biking sport move
🚵‍♂️ man mountain biking transportation sports human race bike
🚵‍♀️ woman mountain biking transportation sports human race bike woman female
🤸 person cartwheeling sport gymnastic
🤸‍♂️ man cartwheeling gymnastics
🤸‍♀️ woman cartwheeling gymnastics
🤼 people wrestling sport
🤼‍♂️ men wrestling sports wrestlers
🤼‍♀️ women wrestling sports wrestlers
🤽 person playing water polo sport
🤽‍♂️ man playing water polo sports pool
🤽‍♀️ woman playing water polo sports pool
🤾 person playing handball sport
🤾‍♂️ man playing handball sports
🤾‍♀️ woman playing handball sports
🤹 person juggling performance balance
🤹‍♂️ man juggling juggle balance skill multitask
🤹‍♀️ woman juggling juggle balance skill multitask
🧘 person in lotus position meditate
🧘‍♂️ man in lotus position man male meditation yoga serenity zen mindfulness
🧘‍♀️ woman in lotus position woman female meditation yoga serenity zen mindfulness
🛀 person taking bath clean shower bathroom
🛌 person in bed bed rest
🧑‍🤝‍🧑 people holding hands friendship
👭 women holding hands pair friendship couple love like female people human
👫 woman and man holding hands pair people human love date dating like affection valentines marriage
👬 men holding hands pair couple love like bromance friendship people human
💏 kiss pair valentines love like dating marriage
👩‍❤️‍💋‍👨 kiss woman man love
👨‍❤️‍💋‍👨 kiss man man pair valentines love like dating marriage
👩‍❤️‍💋‍👩 kiss woman woman pair valentines love like dating marriage
💑 couple with heart pair love like affection human dating valentines marriage
👩‍❤️‍👨 couple with heart woman man love
👨‍❤️‍👨 couple with heart man man pair love like affection human dating valentines marriage
👩‍❤️‍👩 couple with heart woman woman pair love like affection human dating valentines marriage
👪 family home parents child mom dad father mother people human
👨‍👩‍👦 family man woman boy love
👨‍👩‍👧 family man woman girl home parents people human child
👨‍👩‍👧‍👦 family man woman girl boy home parents people human children
👨‍👩‍👦‍👦 family man woman boy boy home parents people human children
👨‍👩‍👧‍👧 family man woman girl girl home parents people human children
👨‍👨‍👦 family man man boy home parents people human children
👨‍👨‍👧 family man man girl home parents people human children
👨‍👨‍👧‍👦 family man man girl boy home parents people human children
👨‍👨‍👦‍👦 family man man boy boy home parents people human children
👨‍👨‍👧‍👧 family man man girl girl home parents people human children
👩‍👩‍👦 family woman woman boy home parents people human children
👩‍👩‍👧 family woman woman girl home parents people human children
👩‍👩‍👧‍👦 family woman woman girl boy home parents people human children
👩‍👩‍👦‍👦 family woman woman boy boy home parents people human children
👩‍👩‍👧‍👧 family woman woman girl girl home parents people human children
👨‍👦 family man boy home parent people human child
👨‍👦‍👦 family man boy boy home parent people human children
👨‍👧 family man girl home parent people human child
👨‍👧‍👦 family man girl boy home parent people human children
👨‍👧‍👧 family man girl girl home parent people human children
👩‍👦 family woman boy home parent people human child
👩‍👦‍👦 family woman boy boy home parent people human children
👩‍👧 family woman girl home parent people human child
👩‍👧‍👦 family woman girl boy home parent people human children
👩‍👧‍👧 family woman girl girl home parent people human children
🗣️ speaking head user person human sing say talk
👤 bust in silhouette user person human
👥 busts in silhouette user person human group team
👣 footprints feet tracking walking beach
🐵 monkey face animal nature circus
🐒 monkey animal nature banana circus
🦍 gorilla animal nature circus
🦧 orangutan animal
🐶 dog face animal friend nature woof puppy pet faithful
🐕 dog animal nature friend doge pet faithful
🦮 guide dog animal blind
🐕‍🦺 service dog blind animal
🐩 poodle dog animal 101 nature pet
🐺 wolf animal nature wild
🦊 fox animal nature face
🦝 raccoon animal nature
🐱 cat face animal meow nature pet kitten
🐈 cat animal meow pet cats
🦁 lion animal nature
🐯 tiger face animal cat danger wild nature roar
🐅 tiger animal nature roar
🐆 leopard animal nature
🐴 horse face animal brown nature
🐎 horse animal gamble luck
🦄 unicorn animal nature mystical
🦓 zebra animal nature stripes safari
🦌 deer animal nature horns venison
🐮 cow face beef ox animal nature moo milk
🐂 ox animal cow beef
🐃 water buffalo animal nature ox cow
🐄 cow beef ox animal nature moo milk
🐷 pig face animal oink nature
🐖 pig animal nature
🐗 boar animal nature
🐽 pig nose animal oink
🐏 ram animal sheep nature
🐑 ewe animal nature wool shipit
🐐 goat animal nature
🐪 camel animal hot desert hump
🐫 two hump camel animal nature hot desert hump
🦙 llama animal nature alpaca
🦒 giraffe animal nature spots safari
🐘 elephant animal nature nose th circus
🦏 rhinoceros animal nature horn
🦛 hippopotamus animal nature
🐭 mouse face animal nature cheese wedge rodent
🐁 mouse animal nature rodent
🐀 rat animal mouse rodent
🐹 hamster animal nature
🐰 rabbit face animal nature pet spring magic bunny
🐇 rabbit animal nature pet magic spring
🐿️ chipmunk animal nature rodent squirrel
🦔 hedgehog animal nature spiny
🦇 bat animal nature blind vampire
🐻 bear animal nature wild
🐨 koala animal nature
🐼 panda animal nature panda
🦥 sloth animal
🦦 otter animal
🦨 skunk animal
🦘 kangaroo animal nature australia joey hop marsupial
🦡 badger animal nature honey
🐾 paw prints animal tracking footprints dog cat pet feet
🦃 turkey animal bird
🐔 chicken animal cluck nature bird
🐓 rooster animal nature chicken
🐣 hatching chick animal chicken egg born baby bird
🐤 baby chick animal chicken bird
🐥 front facing baby chick animal chicken baby bird
🐦 bird animal nature fly tweet spring
🐧 penguin animal nature
🕊️ dove animal bird
🦅 eagle animal nature bird
🦆 duck animal nature bird mallard
🦢 swan animal nature bird
🦉 owl animal nature bird hoot
🦩 flamingo animal
🦚 peacock animal nature peahen bird
🦜 parrot animal nature bird pirate talk
🐸 frog animal nature croak toad
🐊 crocodile animal nature reptile lizard alligator
🐢 turtle animal slow nature tortoise
🦎 lizard animal nature reptile
🐍 snake animal evil nature hiss python
🐲 dragon face animal myth nature chinese green
🐉 dragon animal myth nature chinese green
🦕 sauropod animal nature dinosaur brachiosaurus brontosaurus diplodocus extinct
🦖 t rex animal nature dinosaur tyrannosaurus extinct
🐳 spouting whale animal nature sea ocean
🐋 whale animal nature sea ocean
🐬 dolphin animal nature fish sea ocean flipper fins beach
🐟 fish animal food nature
🐠 tropical fish animal swim ocean beach nemo
🐡 blowfish animal nature food sea ocean
🦈 shark animal nature fish sea ocean jaws fins beach
🐙 octopus animal creature ocean sea nature beach
🐚 spiral shell nature sea beach
🐌 snail slow animal shell
🦋 butterfly animal insect nature caterpillar
🐛 bug animal insect nature worm
🐜 ant animal insect nature bug
🐝 honeybee animal insect nature bug spring honey
🐞 lady beetle animal insect nature ladybug
🦗 cricket animal cricket chirp
🕷️ spider animal arachnid
🕸️ spider web animal insect arachnid silk
🦂 scorpion animal arachnid
🦟 mosquito animal nature insect malaria
🦠 microbe amoeba bacteria germs virus
💐 bouquet flowers nature spring
🌸 cherry blossom nature plant spring flower
💮 white flower japanese spring
🏵️ rosette flower decoration military
🌹 rose flowers valentines love spring
🥀 wilted flower plant nature flower
🌺 hibiscus plant vegetable flowers beach
🌻 sunflower nature plant fall
🌼 blossom nature flowers yellow
🌷 tulip flowers plant nature summer spring
🌱 seedling plant nature grass lawn spring
🌲 evergreen tree plant nature
🌳 deciduous tree plant nature
🌴 palm tree plant vegetable nature summer beach mojito tropical
🌵 cactus vegetable plant nature
🌾 sheaf of rice nature plant
🌿 herb vegetable plant medicine weed grass lawn
☘️ shamrock vegetable plant nature irish clover
🍀 four leaf clover vegetable plant nature lucky irish
🍁 maple leaf nature plant vegetable ca fall
🍂 fallen leaf nature plant vegetable leaves
🍃 leaf fluttering in wind nature plant tree vegetable grass lawn spring
🍇 grapes fruit food wine
🍈 melon fruit nature food
🍉 watermelon fruit food picnic summer
🍊 tangerine food fruit nature orange
🍋 lemon fruit nature
🍌 banana fruit food monkey
🍍 pineapple fruit nature food
🥭 mango fruit food tropical
🍎 red apple fruit mac school
🍏 green apple fruit nature
🍐 pear fruit nature food
🍑 peach fruit nature food
🍒 cherries food fruit
🍓 strawberry fruit food nature
🥝 kiwi fruit fruit food
🍅 tomato fruit vegetable nature food
🥥 coconut fruit nature food palm
🥑 avocado fruit food
🍆 eggplant vegetable nature food aubergine
🥔 potato food tuber vegatable starch
🥕 carrot vegetable food orange
🌽 ear of corn food vegetable plant
🌶️ hot pepper food spicy chilli chili
🥒 cucumber fruit food pickle
🥬 leafy green food vegetable plant bok choy cabbage kale lettuce
🥦 broccoli fruit food vegetable
🧄 garlic food spice cook
🧅 onion cook food spice
🍄 mushroom plant vegetable
🥜 peanuts food nut
🌰 chestnut food squirrel
🍞 bread food wheat breakfast toast
🥐 croissant food bread french
🥖 baguette bread food bread french
🥨 pretzel food bread twisted
🥯 bagel food bread bakery schmear
🥞 pancakes food breakfast flapjacks hotcakes
🧇 waffle food breakfast
🧀 cheese wedge food chadder
🍖 meat on bone good food drumstick
🍗 poultry leg food meat drumstick bird chicken turkey
🥩 cut of meat food cow meat cut chop lambchop porkchop
🥓 bacon food breakfast pork pig meat
🍔 hamburger meat fast food beef cheeseburger mcdonalds burger king
🍟 french fries chips snack fast food
🍕 pizza food party
🌭 hot dog food frankfurter
🥪 sandwich food lunch bread
🌮 taco food mexican
🌯 burrito food mexican
🥙 stuffed flatbread food flatbread stuffed gyro
🧆 falafel food
🥚 egg food chicken breakfast
🍳 cooking food breakfast kitchen egg
🥘 shallow pan of food food cooking casserole paella
🍲 pot of food food meat soup
🥣 bowl with spoon food breakfast cereal oatmeal porridge
🥗 green salad food healthy lettuce
🍿 popcorn food movie theater films snack
🧈 butter food cook
🧂 salt condiment shaker
🥫 canned food food soup
🍱 bento box food japanese box
🍘 rice cracker food japanese
🍙 rice ball food japanese
🍚 cooked rice food china asian
🍛 curry rice food spicy hot indian
🍜 steaming bowl food japanese noodle chopsticks
🍝 spaghetti food italian noodle
🍠 roasted sweet potato food nature
🍢 oden food japanese
🍣 sushi food fish japanese rice
🍤 fried shrimp food animal appetizer summer
🍥 fish cake with swirl food japan sea beach narutomaki pink swirl kamaboko surimi ramen
🥮 moon cake food autumn
🍡 dango food dessert sweet japanese barbecue meat
🥟 dumpling food empanada pierogi potsticker
🥠 fortune cookie food prophecy
🥡 takeout box food leftovers
🦀 crab animal crustacean
🦞 lobster animal nature bisque claws seafood
🦐 shrimp animal ocean nature seafood
🦑 squid animal nature ocean sea
🦪 oyster food
🍦 soft ice cream food hot dessert summer
🍧 shaved ice hot dessert summer
🍨 ice cream food hot dessert
🍩 doughnut food dessert snack sweet donut
🍪 cookie food snack oreo chocolate sweet dessert
🎂 birthday cake food dessert cake
🍰 shortcake food dessert
🧁 cupcake food dessert bakery sweet
🥧 pie food dessert pastry
🍫 chocolate bar food snack dessert sweet
🍬 candy snack dessert sweet lolly
🍭 lollipop food s
Download .txt
gitextract_u5nhn4va/

├── .github/
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-issue.yml
│   │   ├── 2-feature_request.yml
│   │   └── config.yml
│   ├── README.md
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto-close-issue.yml
│       ├── dist-update-notification.yml
│       └── dump-github-context.yml
├── .gitignore
├── .gitmodules
├── LICENSE
├── diagnose
├── dots/
│   ├── .config/
│   │   ├── Kvantum/
│   │   │   ├── Colloid/
│   │   │   │   ├── Colloid.kvconfig
│   │   │   │   └── ColloidDark.kvconfig
│   │   │   ├── MaterialAdw/
│   │   │   │   └── MaterialAdw.kvconfig
│   │   │   └── kvantum.kvconfig
│   │   ├── chrome-flags.conf
│   │   ├── code-flags.conf
│   │   ├── darklyrc
│   │   ├── dolphinrc
│   │   ├── fish/
│   │   │   ├── auto-Hypr.fish
│   │   │   ├── config.fish
│   │   │   └── fish_variables
│   │   ├── fontconfig/
│   │   │   └── fonts.conf
│   │   ├── foot/
│   │   │   └── foot.ini
│   │   ├── fuzzel/
│   │   │   ├── fuzzel.ini
│   │   │   └── fuzzel_theme.ini
│   │   ├── hypr/
│   │   │   ├── custom/
│   │   │   │   ├── env.conf
│   │   │   │   ├── execs.conf
│   │   │   │   ├── general.conf
│   │   │   │   ├── keybinds.conf
│   │   │   │   ├── rules.conf
│   │   │   │   └── scripts/
│   │   │   │       └── __restore_video_wallpaper.sh
│   │   │   ├── hypridle.conf
│   │   │   ├── hyprland/
│   │   │   │   ├── colors.conf
│   │   │   │   ├── env.conf
│   │   │   │   ├── execs.conf
│   │   │   │   ├── general.conf
│   │   │   │   ├── keybinds.conf
│   │   │   │   ├── rules.conf
│   │   │   │   ├── scripts/
│   │   │   │   │   ├── ai/
│   │   │   │   │   │   ├── license_show-loaded-ollama-models.txt
│   │   │   │   │   │   ├── primary-buffer-query.sh
│   │   │   │   │   │   └── show-loaded-ollama-models.sh
│   │   │   │   │   ├── fuzzel-emoji.sh
│   │   │   │   │   ├── launch_first_available.sh
│   │   │   │   │   ├── snip_to_search.sh
│   │   │   │   │   ├── start_geoclue_agent.sh
│   │   │   │   │   ├── workspace_action.sh
│   │   │   │   │   └── zoom.sh
│   │   │   │   └── shellOverrides/
│   │   │   │       └── main.conf
│   │   │   ├── hyprland.conf
│   │   │   ├── hyprlock/
│   │   │   │   ├── check-capslock.sh
│   │   │   │   ├── colors.conf
│   │   │   │   └── status.sh
│   │   │   ├── hyprlock.conf
│   │   │   ├── monitors.conf
│   │   │   └── workspaces.conf
│   │   ├── kde-material-you-colors/
│   │   │   └── config.conf
│   │   ├── kdeglobals
│   │   ├── kitty/
│   │   │   ├── kitty.conf
│   │   │   ├── scroll_mark.py
│   │   │   └── search.py
│   │   ├── konsolerc
│   │   ├── matugen/
│   │   │   ├── config.toml
│   │   │   └── templates/
│   │   │       ├── ags/
│   │   │       │   ├── _material.scss
│   │   │       │   ├── sourceviewtheme-light.xml
│   │   │       │   └── sourceviewtheme.xml
│   │   │       ├── colors.json
│   │   │       ├── fuzzel/
│   │   │       │   └── fuzzel_theme.ini
│   │   │       ├── gtk-3.0/
│   │   │       │   └── gtk.css
│   │   │       ├── gtk-4.0/
│   │   │       │   └── gtk.css
│   │   │       ├── hyprland/
│   │   │       │   ├── colors.conf
│   │   │       │   └── hyprlock-colors.conf
│   │   │       ├── kde/
│   │   │       │   ├── color.txt
│   │   │       │   └── kde-material-you-colors-wrapper.sh
│   │   │       └── wallpaper.txt
│   │   ├── mpv/
│   │   │   └── mpv.conf
│   │   ├── quickshell/
│   │   │   └── ii/
│   │   │       ├── .qmlformat.ini
│   │   │       ├── GlobalStates.qml
│   │   │       ├── ReloadPopup.qml
│   │   │       ├── assets/
│   │   │       │   └── icons/
│   │   │       │       └── fluent/
│   │   │       │           └── README.md
│   │   │       ├── defaults/
│   │   │       │   └── ai/
│   │   │       │       ├── README.md
│   │   │       │       └── prompts/
│   │   │       │           ├── NoPrompt.md
│   │   │       │           ├── ii-Default.md
│   │   │       │           ├── ii-Imouto.md
│   │   │       │           ├── nyarch-Acchan.md
│   │   │       │           ├── w-FourPointedSparkle.md
│   │   │       │           └── w-OpenMechanicalFlower.md
│   │   │       ├── killDialog.qml
│   │   │       ├── modules/
│   │   │       │   ├── common/
│   │   │       │   │   ├── Appearance.qml
│   │   │       │   │   ├── Config.qml
│   │   │       │   │   ├── Directories.qml
│   │   │       │   │   ├── Icons.qml
│   │   │       │   │   ├── Images.qml
│   │   │       │   │   ├── Persistent.qml
│   │   │       │   │   ├── functions/
│   │   │       │   │   │   ├── ColorUtils.qml
│   │   │       │   │   │   ├── DateUtils.qml
│   │   │       │   │   │   ├── FileUtils.qml
│   │   │       │   │   │   ├── Fuzzy.qml
│   │   │       │   │   │   ├── Levendist.qml
│   │   │       │   │   │   ├── NotificationUtils.qml
│   │   │       │   │   │   ├── ObjectUtils.qml
│   │   │       │   │   │   ├── Session.qml
│   │   │       │   │   │   ├── StringUtils.qml
│   │   │       │   │   │   ├── fuzzysort.js
│   │   │       │   │   │   └── levendist.js
│   │   │       │   │   ├── models/
│   │   │       │   │   │   ├── AdaptedMaterialScheme.qml
│   │   │       │   │   │   ├── AnimatedTabIndexPair.qml
│   │   │       │   │   │   ├── FolderListModelWithHistory.qml
│   │   │       │   │   │   ├── IndexModel.qml
│   │   │       │   │   │   ├── LauncherSearchResult.qml
│   │   │       │   │   │   ├── NestableObject.qml
│   │   │       │   │   │   ├── hyprland/
│   │   │       │   │   │   │   └── HyprlandConfigOption.qml
│   │   │       │   │   │   └── quickToggles/
│   │   │       │   │   │       ├── AntiFlashbangToggle.qml
│   │   │       │   │   │       ├── AudioToggle.qml
│   │   │       │   │   │       ├── BluetoothToggle.qml
│   │   │       │   │   │       ├── CloudflareWarpToggle.qml
│   │   │       │   │   │       ├── ColorPickerToggle.qml
│   │   │       │   │   │       ├── DarkModeToggle.qml
│   │   │       │   │   │       ├── EasyEffectsToggle.qml
│   │   │       │   │   │       ├── GameModeToggle.qml
│   │   │       │   │   │       ├── IdleInhibitorToggle.qml
│   │   │       │   │   │       ├── MicToggle.qml
│   │   │       │   │   │       ├── MusicRecognitionToggle.qml
│   │   │       │   │   │       ├── NetworkToggle.qml
│   │   │       │   │   │       ├── NightLightToggle.qml
│   │   │       │   │   │       ├── NotificationToggle.qml
│   │   │       │   │   │       ├── OnScreenKeyboardToggle.qml
│   │   │       │   │   │       ├── PowerProfilesToggle.qml
│   │   │       │   │   │       ├── QuickToggleModel.qml
│   │   │       │   │   │       └── ScreenSnipToggle.qml
│   │   │       │   │   ├── panels/
│   │   │       │   │   │   └── lock/
│   │   │       │   │   │       ├── LockContext.qml
│   │   │       │   │   │       ├── LockScreen.qml
│   │   │       │   │   │       └── pam/
│   │   │       │   │   │           └── fprintd.conf
│   │   │       │   │   ├── utils/
│   │   │       │   │   │   ├── ImageDownloaderProcess.qml
│   │   │       │   │   │   ├── ScreenshotAction.qml
│   │   │       │   │   │   └── TempScreenshotProcess.qml
│   │   │       │   │   └── widgets/
│   │   │       │   │       ├── AddressBar.qml
│   │   │       │   │       ├── AddressBreadcrumb.qml
│   │   │       │   │       ├── ButtonGroup.qml
│   │   │       │   │       ├── CalendarView.qml
│   │   │       │   │       ├── Circle.qml
│   │   │       │   │       ├── CircularProgress.qml
│   │   │       │   │       ├── CliphistImage.qml
│   │   │       │   │       ├── ClippedFilledCircularProgress.qml
│   │   │       │   │       ├── ClippedProgressBar.qml
│   │   │       │   │       ├── ConfigRow.qml
│   │   │       │   │       ├── ConfigSelectionArray.qml
│   │   │       │   │       ├── ConfigSlider.qml
│   │   │       │   │       ├── ConfigSpinBox.qml
│   │   │       │   │       ├── ConfigSwitch.qml
│   │   │       │   │       ├── ContentPage.qml
│   │   │       │   │       ├── ContentSection.qml
│   │   │       │   │       ├── ContentSubsection.qml
│   │   │       │   │       ├── ContentSubsectionLabel.qml
│   │   │       │   │       ├── CustomIcon.qml
│   │   │       │   │       ├── DashedBorder.qml
│   │   │       │   │       ├── DialogButton.qml
│   │   │       │   │       ├── DialogListItem.qml
│   │   │       │   │       ├── DirectoryIcon.qml
│   │   │       │   │       ├── DragManager.qml
│   │   │       │   │       ├── FadeLoader.qml
│   │   │       │   │       ├── Favicon.qml
│   │   │       │   │       ├── FloatingActionButton.qml
│   │   │       │   │       ├── FlowButtonGroup.qml
│   │   │       │   │       ├── FocusedScrollMouseArea.qml
│   │   │       │   │       ├── FullscreenPolkitWindow.qml
│   │   │       │   │       ├── Graph.qml
│   │   │       │   │       ├── GroupButton.qml
│   │   │       │   │       ├── IconAndTextToolbarButton.qml
│   │   │       │   │       ├── IconToolbarButton.qml
│   │   │       │   │       ├── KeyboardKey.qml
│   │   │       │   │       ├── LightDarkPreferenceButton.qml
│   │   │       │   │       ├── MaterialCookie.qml
│   │   │       │   │       ├── MaterialLoadingIndicator.qml
│   │   │       │   │       ├── MaterialShape.qml
│   │   │       │   │       ├── MaterialShapeWrappedMaterialSymbol.qml
│   │   │       │   │       ├── MaterialSymbol.qml
│   │   │       │   │       ├── MaterialTextArea.qml
│   │   │       │   │       ├── MaterialTextField.qml
│   │   │       │   │       ├── MenuButton.qml
│   │   │       │   │       ├── NavigationRail.qml
│   │   │       │   │       ├── NavigationRailButton.qml
│   │   │       │   │       ├── NavigationRailExpandButton.qml
│   │   │       │   │       ├── NavigationRailTabArray.qml
│   │   │       │   │       ├── NoticeBox.qml
│   │   │       │   │       ├── NotificationActionButton.qml
│   │   │       │   │       ├── NotificationAppIcon.qml
│   │   │       │   │       ├── NotificationGroup.qml
│   │   │       │   │       ├── NotificationGroupExpandButton.qml
│   │   │       │   │       ├── NotificationItem.qml
│   │   │       │   │       ├── NotificationListView.qml
│   │   │       │   │       ├── OptionalMaterialSymbol.qml
│   │   │       │   │       ├── PagePlaceholder.qml
│   │   │       │   │       ├── PointingHandInteraction.qml
│   │   │       │   │       ├── PointingHandLinkHover.qml
│   │   │       │   │       ├── PopupToolTip.qml
│   │   │       │   │       ├── Revealer.qml
│   │   │       │   │       ├── RippleButton.qml
│   │   │       │   │       ├── RippleButtonWithIcon.qml
│   │   │       │   │       ├── RoundCorner.qml
│   │   │       │   │       ├── ScrollEdgeFade.qml
│   │   │       │   │       ├── SecondaryTabBar.qml
│   │   │       │   │       ├── SecondaryTabButton.qml
│   │   │       │   │       ├── SelectionDialog.qml
│   │   │       │   │       ├── SelectionGroupButton.qml
│   │   │       │   │       ├── SineCookie.qml
│   │   │       │   │       ├── StyledBlurEffect.qml
│   │   │       │   │       ├── StyledComboBox.qml
│   │   │       │   │       ├── StyledDropShadow.qml
│   │   │       │   │       ├── StyledFlickable.qml
│   │   │       │   │       ├── StyledImage.qml
│   │   │       │   │       ├── StyledIndeterminateProgressBar.qml
│   │   │       │   │       ├── StyledListView.qml
│   │   │       │   │       ├── StyledProgressBar.qml
│   │   │       │   │       ├── StyledRadioButton.qml
│   │   │       │   │       ├── StyledRectangularShadow.qml
│   │   │       │   │       ├── StyledScrollBar.qml
│   │   │       │   │       ├── StyledSlider.qml
│   │   │       │   │       ├── StyledSpinBox.qml
│   │   │       │   │       ├── StyledSwitch.qml
│   │   │       │   │       ├── StyledText.qml
│   │   │       │   │       ├── StyledTextArea.qml
│   │   │       │   │       ├── StyledTextInput.qml
│   │   │       │   │       ├── StyledToolTip.qml
│   │   │       │   │       ├── StyledToolTipContent.qml
│   │   │       │   │       ├── ThumbnailImage.qml
│   │   │       │   │       ├── Toolbar.qml
│   │   │       │   │       ├── ToolbarButton.qml
│   │   │       │   │       ├── ToolbarTabBar.qml
│   │   │       │   │       ├── ToolbarTabButton.qml
│   │   │       │   │       ├── ToolbarTextField.qml
│   │   │       │   │       ├── VerticalButtonGroup.qml
│   │   │       │   │       ├── VibrantToolbarButton.qml
│   │   │       │   │       ├── WaveVisualizer.qml
│   │   │       │   │       ├── WavyLine.qml
│   │   │       │   │       ├── WeekRow.qml
│   │   │       │   │       ├── WindowDialog.qml
│   │   │       │   │       ├── WindowDialogButtonRow.qml
│   │   │       │   │       ├── WindowDialogParagraph.qml
│   │   │       │   │       ├── WindowDialogSectionHeader.qml
│   │   │       │   │       ├── WindowDialogSeparator.qml
│   │   │       │   │       ├── WindowDialogSlider.qml
│   │   │       │   │       ├── WindowDialogTitle.qml
│   │   │       │   │       └── widgetCanvas/
│   │   │       │   │           ├── AbstractOverlayWidget.qml
│   │   │       │   │           ├── AbstractWidget.qml
│   │   │       │   │           └── WidgetCanvas.qml
│   │   │       │   ├── ii/
│   │   │       │   │   ├── background/
│   │   │       │   │   │   ├── Background.qml
│   │   │       │   │   │   └── widgets/
│   │   │       │   │   │       ├── AbstractBackgroundWidget.qml
│   │   │       │   │   │       ├── clock/
│   │   │       │   │   │       │   ├── ClockText.qml
│   │   │       │   │   │       │   ├── ClockWidget.qml
│   │   │       │   │   │       │   ├── CookieClock.qml
│   │   │       │   │   │       │   ├── CookieQuote.qml
│   │   │       │   │   │       │   ├── DigitalClock.qml
│   │   │       │   │   │       │   ├── HourHand.qml
│   │   │       │   │   │       │   ├── HourMarks.qml
│   │   │       │   │   │       │   ├── MinuteHand.qml
│   │   │       │   │   │       │   ├── SecondHand.qml
│   │   │       │   │   │       │   ├── TimeColumn.qml
│   │   │       │   │   │       │   ├── dateIndicator/
│   │   │       │   │   │       │   │   ├── BubbleDate.qml
│   │   │       │   │   │       │   │   ├── DateIndicator.qml
│   │   │       │   │   │       │   │   ├── RectangleDate.qml
│   │   │       │   │   │       │   │   └── RotatingDate.qml
│   │   │       │   │   │       │   └── minuteMarks/
│   │   │       │   │   │       │       ├── BigHourNumbers.qml
│   │   │       │   │   │       │       ├── Dots.qml
│   │   │       │   │   │       │       ├── Lines.qml
│   │   │       │   │   │       │       └── MinuteMarks.qml
│   │   │       │   │   │       └── weather/
│   │   │       │   │   │           └── WeatherWidget.qml
│   │   │       │   │   ├── bar/
│   │   │       │   │   │   ├── ActiveWindow.qml
│   │   │       │   │   │   ├── Bar.qml
│   │   │       │   │   │   ├── BarContent.qml
│   │   │       │   │   │   ├── BarGroup.qml
│   │   │       │   │   │   ├── BatteryIndicator.qml
│   │   │       │   │   │   ├── BatteryPopup.qml
│   │   │       │   │   │   ├── CircleUtilButton.qml
│   │   │       │   │   │   ├── ClockWidget.qml
│   │   │       │   │   │   ├── ClockWidgetPopup.qml
│   │   │       │   │   │   ├── HyprlandXkbIndicator.qml
│   │   │       │   │   │   ├── LeftSidebarButton.qml
│   │   │       │   │   │   ├── Media.qml
│   │   │       │   │   │   ├── NotificationUnreadCount.qml
│   │   │       │   │   │   ├── Resource.qml
│   │   │       │   │   │   ├── Resources.qml
│   │   │       │   │   │   ├── ResourcesPopup.qml
│   │   │       │   │   │   ├── ScrollHint.qml
│   │   │       │   │   │   ├── StyledPopup.qml
│   │   │       │   │   │   ├── StyledPopupHeaderRow.qml
│   │   │       │   │   │   ├── StyledPopupValueRow.qml
│   │   │       │   │   │   ├── SysTray.qml
│   │   │       │   │   │   ├── SysTrayItem.qml
│   │   │       │   │   │   ├── SysTrayMenu.qml
│   │   │       │   │   │   ├── SysTrayMenuEntry.qml
│   │   │       │   │   │   ├── UtilButtons.qml
│   │   │       │   │   │   ├── Workspaces.qml
│   │   │       │   │   │   └── weather/
│   │   │       │   │   │       ├── WeatherBar.qml
│   │   │       │   │   │       ├── WeatherCard.qml
│   │   │       │   │   │       └── WeatherPopup.qml
│   │   │       │   │   ├── cheatsheet/
│   │   │       │   │   │   ├── Cheatsheet.qml
│   │   │       │   │   │   ├── CheatsheetKeybinds.qml
│   │   │       │   │   │   ├── CheatsheetPeriodicTable.qml
│   │   │       │   │   │   ├── ElementTile.qml
│   │   │       │   │   │   └── periodic_table.js
│   │   │       │   │   ├── dock/
│   │   │       │   │   │   ├── Dock.qml
│   │   │       │   │   │   ├── DockAppButton.qml
│   │   │       │   │   │   ├── DockApps.qml
│   │   │       │   │   │   ├── DockButton.qml
│   │   │       │   │   │   └── DockSeparator.qml
│   │   │       │   │   ├── lock/
│   │   │       │   │   │   ├── Lock.qml
│   │   │       │   │   │   ├── LockSurface.qml
│   │   │       │   │   │   └── PasswordChars.qml
│   │   │       │   │   ├── mediaControls/
│   │   │       │   │   │   ├── MediaControls.qml
│   │   │       │   │   │   └── PlayerControl.qml
│   │   │       │   │   ├── notificationPopup/
│   │   │       │   │   │   └── NotificationPopup.qml
│   │   │       │   │   ├── onScreenDisplay/
│   │   │       │   │   │   ├── OnScreenDisplay.qml
│   │   │       │   │   │   ├── OsdValueIndicator.qml
│   │   │       │   │   │   └── indicators/
│   │   │       │   │   │       ├── BrightnessIndicator.qml
│   │   │       │   │   │       └── VolumeIndicator.qml
│   │   │       │   │   ├── onScreenKeyboard/
│   │   │       │   │   │   ├── OnScreenKeyboard.qml
│   │   │       │   │   │   ├── OskContent.qml
│   │   │       │   │   │   ├── OskKey.qml
│   │   │       │   │   │   └── layouts.js
│   │   │       │   │   ├── overlay/
│   │   │       │   │   │   ├── Overlay.qml
│   │   │       │   │   │   ├── OverlayBackground.qml
│   │   │       │   │   │   ├── OverlayContent.qml
│   │   │       │   │   │   ├── OverlayContext.qml
│   │   │       │   │   │   ├── OverlayTaskbar.qml
│   │   │       │   │   │   ├── OverlayWidgetDelegateChooser.qml
│   │   │       │   │   │   ├── StyledOverlayWidget.qml
│   │   │       │   │   │   ├── crosshair/
│   │   │       │   │   │   │   ├── Crosshair.qml
│   │   │       │   │   │   │   └── CrosshairContent.qml
│   │   │       │   │   │   ├── floatingImage/
│   │   │       │   │   │   │   └── FloatingImage.qml
│   │   │       │   │   │   ├── fpsLimiter/
│   │   │       │   │   │   │   ├── FpsLimiter.qml
│   │   │       │   │   │   │   └── FpsLimiterContent.qml
│   │   │       │   │   │   ├── notes/
│   │   │       │   │   │   │   ├── Notes.qml
│   │   │       │   │   │   │   └── NotesContent.qml
│   │   │       │   │   │   ├── recorder/
│   │   │       │   │   │   │   └── Recorder.qml
│   │   │       │   │   │   ├── resources/
│   │   │       │   │   │   │   └── Resources.qml
│   │   │       │   │   │   └── volumeMixer/
│   │   │       │   │   │       └── VolumeMixer.qml
│   │   │       │   │   ├── overview/
│   │   │       │   │   │   ├── Overview.qml
│   │   │       │   │   │   ├── OverviewWidget.qml
│   │   │       │   │   │   ├── OverviewWindow.qml
│   │   │       │   │   │   ├── SearchBar.qml
│   │   │       │   │   │   ├── SearchItem.qml
│   │   │       │   │   │   └── SearchWidget.qml
│   │   │       │   │   ├── polkit/
│   │   │       │   │   │   ├── Polkit.qml
│   │   │       │   │   │   └── PolkitContent.qml
│   │   │       │   │   ├── regionSelector/
│   │   │       │   │   │   ├── CircleSelectionDetails.qml
│   │   │       │   │   │   ├── CursorGuide.qml
│   │   │       │   │   │   ├── OptionsToolbar.qml
│   │   │       │   │   │   ├── RectCornersSelectionDetails.qml
│   │   │       │   │   │   ├── RegionFunctions.qml
│   │   │       │   │   │   ├── RegionSelection.qml
│   │   │       │   │   │   ├── RegionSelector.qml
│   │   │       │   │   │   └── TargetRegion.qml
│   │   │       │   │   ├── screenCorners/
│   │   │       │   │   │   └── ScreenCorners.qml
│   │   │       │   │   ├── sessionScreen/
│   │   │       │   │   │   ├── SessionActionButton.qml
│   │   │       │   │   │   └── SessionScreen.qml
│   │   │       │   │   ├── sidebarLeft/
│   │   │       │   │   │   ├── AiChat.qml
│   │   │       │   │   │   ├── Anime.qml
│   │   │       │   │   │   ├── ApiCommandButton.qml
│   │   │       │   │   │   ├── ApiInputBoxIndicator.qml
│   │   │       │   │   │   ├── DescriptionBox.qml
│   │   │       │   │   │   ├── ScrollToBottomButton.qml
│   │   │       │   │   │   ├── SidebarLeft.qml
│   │   │       │   │   │   ├── SidebarLeftContent.qml
│   │   │       │   │   │   ├── Translator.qml
│   │   │       │   │   │   ├── aiChat/
│   │   │       │   │   │   │   ├── AiMessage.qml
│   │   │       │   │   │   │   ├── AiMessageControlButton.qml
│   │   │       │   │   │   │   ├── AnnotationSourceButton.qml
│   │   │       │   │   │   │   ├── AttachedFileIndicator.qml
│   │   │       │   │   │   │   ├── MessageCodeBlock.qml
│   │   │       │   │   │   │   ├── MessageTextBlock.qml
│   │   │       │   │   │   │   ├── MessageThinkBlock.qml
│   │   │       │   │   │   │   └── SearchQueryButton.qml
│   │   │       │   │   │   ├── anime/
│   │   │       │   │   │   │   ├── BooruImage.qml
│   │   │       │   │   │   │   └── BooruResponse.qml
│   │   │       │   │   │   └── translator/
│   │   │       │   │   │       ├── LanguageSelectorButton.qml
│   │   │       │   │   │       └── TextCanvas.qml
│   │   │       │   │   ├── sidebarRight/
│   │   │       │   │   │   ├── BottomWidgetGroup.qml
│   │   │       │   │   │   ├── CenterWidgetGroup.qml
│   │   │       │   │   │   ├── QuickSliders.qml
│   │   │       │   │   │   ├── SidebarRight.qml
│   │   │       │   │   │   ├── SidebarRightContent.qml
│   │   │       │   │   │   ├── bluetoothDevices/
│   │   │       │   │   │   │   ├── BluetoothDeviceItem.qml
│   │   │       │   │   │   │   └── BluetoothDialog.qml
│   │   │       │   │   │   ├── calendar/
│   │   │       │   │   │   │   ├── CalendarDayButton.qml
│   │   │       │   │   │   │   ├── CalendarHeaderButton.qml
│   │   │       │   │   │   │   ├── CalendarWidget.qml
│   │   │       │   │   │   │   └── calendar_layout.js
│   │   │       │   │   │   ├── nightLight/
│   │   │       │   │   │   │   └── NightLightDialog.qml
│   │   │       │   │   │   ├── notifications/
│   │   │       │   │   │   │   ├── NotificationList.qml
│   │   │       │   │   │   │   └── NotificationStatusButton.qml
│   │   │       │   │   │   ├── pomodoro/
│   │   │       │   │   │   │   ├── PomodoroTimer.qml
│   │   │       │   │   │   │   ├── PomodoroWidget.qml
│   │   │       │   │   │   │   └── Stopwatch.qml
│   │   │       │   │   │   ├── quickToggles/
│   │   │       │   │   │   │   ├── AbstractQuickPanel.qml
│   │   │       │   │   │   │   ├── AndroidQuickPanel.qml
│   │   │       │   │   │   │   ├── ClassicQuickPanel.qml
│   │   │       │   │   │   │   ├── androidStyle/
│   │   │       │   │   │   │   │   ├── AndroidAntiFlashbangToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidAudioToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidBluetoothToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidCloudflareWarpToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidColorPickerToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidDarkModeToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidEasyEffectsToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidGameModeToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidIdleInhibitorToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidMicToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidMusicRecognition.qml
│   │   │       │   │   │   │   │   ├── AndroidNetworkToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidNightLightToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidNotificationToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidOnScreenKeyboardToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidPowerProfileToggle.qml
│   │   │       │   │   │   │   │   ├── AndroidQuickToggleButton.qml
│   │   │       │   │   │   │   │   ├── AndroidScreenSnipToggle.qml
│   │   │       │   │   │   │   │   └── AndroidToggleDelegateChooser.qml
│   │   │       │   │   │   │   └── classicStyle/
│   │   │       │   │   │   │       ├── BluetoothToggle.qml
│   │   │       │   │   │   │       ├── CloudflareWarp.qml
│   │   │       │   │   │   │       ├── EasyEffectsToggle.qml
│   │   │       │   │   │   │       ├── GameMode.qml
│   │   │       │   │   │   │       ├── IdleInhibitor.qml
│   │   │       │   │   │   │       ├── NetworkToggle.qml
│   │   │       │   │   │   │       ├── NightLight.qml
│   │   │       │   │   │   │       └── QuickToggleButton.qml
│   │   │       │   │   │   ├── todo/
│   │   │       │   │   │   │   ├── TaskList.qml
│   │   │       │   │   │   │   ├── TodoItemActionButton.qml
│   │   │       │   │   │   │   └── TodoWidget.qml
│   │   │       │   │   │   ├── volumeMixer/
│   │   │       │   │   │   │   ├── AudioDeviceSelectorButton.qml
│   │   │       │   │   │   │   ├── VolumeDialog.qml
│   │   │       │   │   │   │   ├── VolumeDialogContent.qml
│   │   │       │   │   │   │   └── VolumeMixerEntry.qml
│   │   │       │   │   │   └── wifiNetworks/
│   │   │       │   │   │       ├── WifiDialog.qml
│   │   │       │   │   │       └── WifiNetworkItem.qml
│   │   │       │   │   ├── verticalBar/
│   │   │       │   │   │   ├── BatteryIndicator.qml
│   │   │       │   │   │   ├── Resource.qml
│   │   │       │   │   │   ├── Resources.qml
│   │   │       │   │   │   ├── VerticalBar.qml
│   │   │       │   │   │   ├── VerticalBarContent.qml
│   │   │       │   │   │   ├── VerticalClockWidget.qml
│   │   │       │   │   │   ├── VerticalDateWidget.qml
│   │   │       │   │   │   └── VerticalMedia.qml
│   │   │       │   │   └── wallpaperSelector/
│   │   │       │   │       ├── WallpaperDirectoryItem.qml
│   │   │       │   │       ├── WallpaperSelector.qml
│   │   │       │   │       └── WallpaperSelectorContent.qml
│   │   │       │   ├── settings/
│   │   │       │   │   ├── About.qml
│   │   │       │   │   ├── AdvancedConfig.qml
│   │   │       │   │   ├── BackgroundConfig.qml
│   │   │       │   │   ├── BarConfig.qml
│   │   │       │   │   ├── GeneralConfig.qml
│   │   │       │   │   ├── InterfaceConfig.qml
│   │   │       │   │   ├── QuickConfig.qml
│   │   │       │   │   └── ServicesConfig.qml
│   │   │       │   └── waffle/
│   │   │       │       ├── README.md
│   │   │       │       ├── actionCenter/
│   │   │       │       │   ├── ActionCenterContent.qml
│   │   │       │       │   ├── ActionCenterContext.qml
│   │   │       │       │   ├── ExpandableChoiceButton.qml
│   │   │       │       │   ├── HeaderRow.qml
│   │   │       │       │   ├── MediaPaneContent.qml
│   │   │       │       │   ├── SectionText.qml
│   │   │       │       │   ├── ToggleItem.qml
│   │   │       │       │   ├── WaffleActionCenter.qml
│   │   │       │       │   ├── bluetooth/
│   │   │       │       │   │   ├── BluetoothControl.qml
│   │   │       │       │   │   └── BluetoothDeviceItem.qml
│   │   │       │       │   ├── mainPage/
│   │   │       │       │   │   ├── MainPageBody.qml
│   │   │       │       │   │   ├── MainPageBodySliders.qml
│   │   │       │       │   │   ├── MainPageBodyToggles.qml
│   │   │       │       │   │   └── MainPageFooter.qml
│   │   │       │       │   ├── nightLight/
│   │   │       │       │   │   └── NightLightControl.qml
│   │   │       │       │   ├── toggles/
│   │   │       │       │   │   ├── ActionCenterToggleButton.qml
│   │   │       │       │   │   ├── ActionCenterTogglesDelegateChooser.qml
│   │   │       │       │   │   └── WNetworkToggle.qml
│   │   │       │       │   ├── volumeControl/
│   │   │       │       │   │   ├── VolumeControl.qml
│   │   │       │       │   │   └── VolumeEntry.qml
│   │   │       │       │   └── wifi/
│   │   │       │       │       ├── WWifiNetworkItem.qml
│   │   │       │       │       └── WifiControl.qml
│   │   │       │       ├── background/
│   │   │       │       │   └── WaffleBackground.qml
│   │   │       │       ├── bar/
│   │   │       │       │   ├── AppButton.qml
│   │   │       │       │   ├── BarButton.qml
│   │   │       │       │   ├── BarIconButton.qml
│   │   │       │       │   ├── BarMenu.qml
│   │   │       │       │   ├── BarPopup.qml
│   │   │       │       │   ├── BarToolTip.qml
│   │   │       │       │   ├── SearchButton.qml
│   │   │       │       │   ├── StartButton.qml
│   │   │       │       │   ├── SystemButton.qml
│   │   │       │       │   ├── TaskViewButton.qml
│   │   │       │       │   ├── TimeButton.qml
│   │   │       │       │   ├── UpdatesButton.qml
│   │   │       │       │   ├── WaffleBar.qml
│   │   │       │       │   ├── WaffleBarContent.qml
│   │   │       │       │   ├── WidgetsButton.qml
│   │   │       │       │   ├── tasks/
│   │   │       │       │   │   ├── TaskAppButton.qml
│   │   │       │       │   │   ├── TaskPreview.qml
│   │   │       │       │   │   ├── Tasks.qml
│   │   │       │       │   │   └── WindowPreview.qml
│   │   │       │       │   └── tray/
│   │   │       │       │       ├── Tray.qml
│   │   │       │       │       ├── TrayButton.qml
│   │   │       │       │       └── TrayOverflowMenu.qml
│   │   │       │       ├── lock/
│   │   │       │       │   └── WaffleLock.qml
│   │   │       │       ├── looks/
│   │   │       │       │   ├── AcrylicButton.qml
│   │   │       │       │   ├── AcrylicRectangle.qml
│   │   │       │       │   ├── BodyRectangle.qml
│   │   │       │       │   ├── CloseButton.qml
│   │   │       │       │   ├── FluentIcon.qml
│   │   │       │       │   ├── FooterRectangle.qml
│   │   │       │       │   ├── Looks.qml
│   │   │       │       │   ├── VerticalPageIndicator.qml
│   │   │       │       │   ├── WAmbientShadow.qml
│   │   │       │       │   ├── WAppIcon.qml
│   │   │       │       │   ├── WBarAttachedPanelContent.qml
│   │   │       │       │   ├── WBorderedButton.qml
│   │   │       │       │   ├── WBorderlessButton.qml
│   │   │       │       │   ├── WButton.qml
│   │   │       │       │   ├── WChoiceButton.qml
│   │   │       │       │   ├── WFadeLoader.qml
│   │   │       │       │   ├── WIcons.qml
│   │   │       │       │   ├── WIndeterminateProgressBar.qml
│   │   │       │       │   ├── WListView.qml
│   │   │       │       │   ├── WMenu.qml
│   │   │       │       │   ├── WMenuItem.qml
│   │   │       │       │   ├── WMouseAreaButton.qml
│   │   │       │       │   ├── WPane.qml
│   │   │       │       │   ├── WPanelIconButton.qml
│   │   │       │       │   ├── WPanelPageColumn.qml
│   │   │       │       │   ├── WPanelSeparator.qml
│   │   │       │       │   ├── WPopupToolTip.qml
│   │   │       │       │   ├── WProgressBar.qml
│   │   │       │       │   ├── WRectangularShadow.qml
│   │   │       │       │   ├── WRectangularShadowThis.qml
│   │   │       │       │   ├── WScrollBar.qml
│   │   │       │       │   ├── WSlider.qml
│   │   │       │       │   ├── WStackView.qml
│   │   │       │       │   ├── WSwitch.qml
│   │   │       │       │   ├── WText.qml
│   │   │       │       │   ├── WTextButton.qml
│   │   │       │       │   ├── WTextField.qml
│   │   │       │       │   ├── WTextInput.qml
│   │   │       │       │   ├── WTextWithFixedWidth.qml
│   │   │       │       │   ├── WToolTip.qml
│   │   │       │       │   ├── WToolTipContent.qml
│   │   │       │       │   ├── WToolbar.qml
│   │   │       │       │   ├── WToolbarButton.qml
│   │   │       │       │   ├── WToolbarIconButton.qml
│   │   │       │       │   ├── WToolbarIconTabButton.qml
│   │   │       │       │   ├── WToolbarSeparator.qml
│   │   │       │       │   ├── WToolbarTabBar.qml
│   │   │       │       │   └── WUserAvatar.qml
│   │   │       │       ├── notificationCenter/
│   │   │       │       │   ├── CalendarWidget.qml
│   │   │       │       │   ├── DateHeader.qml
│   │   │       │       │   ├── FocusFooter.qml
│   │   │       │       │   ├── NotificationCenterContent.qml
│   │   │       │       │   ├── NotificationHeaderButton.qml
│   │   │       │       │   ├── NotificationPaneContent.qml
│   │   │       │       │   ├── SmallBorderedIconAndTextButton.qml
│   │   │       │       │   ├── SmallBorderedIconButton.qml
│   │   │       │       │   ├── WNotificationAppIcon.qml
│   │   │       │       │   ├── WNotificationDismissAnim.qml
│   │   │       │       │   ├── WNotificationGroup.qml
│   │   │       │       │   ├── WSingleNotification.qml
│   │   │       │       │   └── WaffleNotificationCenter.qml
│   │   │       │       ├── notificationPopup/
│   │   │       │       │   └── WaffleNotificationPopup.qml
│   │   │       │       ├── onScreenDisplay/
│   │   │       │       │   ├── BrightnessOSD.qml
│   │   │       │       │   ├── OSDValue.qml
│   │   │       │       │   ├── VolumeOSD.qml
│   │   │       │       │   └── WaffleOSD.qml
│   │   │       │       ├── polkit/
│   │   │       │       │   ├── WPolkitContent.qml
│   │   │       │       │   └── WafflePolkit.qml
│   │   │       │       ├── screenSnip/
│   │   │       │       │   ├── WRectangularSelection.qml
│   │   │       │       │   ├── WRegionSelectionPanel.qml
│   │   │       │       │   └── WScreenSnip.qml
│   │   │       │       ├── sessionScreen/
│   │   │       │       │   ├── PowerButton.qml
│   │   │       │       │   ├── SessionScreenContent.qml
│   │   │       │       │   ├── WSessionScreenTextButton.qml
│   │   │       │       │   └── WaffleSessionScreen.qml
│   │   │       │       ├── startMenu/
│   │   │       │       │   ├── SearchBar.qml
│   │   │       │       │   ├── StartMenuContent.qml
│   │   │       │       │   ├── StartMenuContext.qml
│   │   │       │       │   ├── WaffleStartMenu.qml
│   │   │       │       │   ├── searchPage/
│   │   │       │       │   │   ├── SearchEntryIcon.qml
│   │   │       │       │   │   ├── SearchPageContent.qml
│   │   │       │       │   │   ├── SearchResultButton.qml
│   │   │       │       │   │   ├── SearchResults.qml
│   │   │       │       │   │   └── TagStrip.qml
│   │   │       │       │   └── startPage/
│   │   │       │       │       ├── AggregatedAppCategoryModel.qml
│   │   │       │       │       ├── AllAppsGrid.qml
│   │   │       │       │       ├── AppCategoryGrid.qml
│   │   │       │       │       ├── BigAppGrid.qml
│   │   │       │       │       ├── StartAppButton.qml
│   │   │       │       │       ├── StartPageApps.qml
│   │   │       │       │       ├── StartPageContent.qml
│   │   │       │       │       └── StartUserButton.qml
│   │   │       │       └── taskView/
│   │   │       │           ├── TaskViewContent.qml
│   │   │       │           ├── TaskViewWindow.qml
│   │   │       │           ├── TaskViewWorkspace.qml
│   │   │       │           ├── WaffleTaskView.qml
│   │   │       │           └── window-layout.js
│   │   │       ├── panelFamilies/
│   │   │       │   ├── IllogicalImpulseFamily.qml
│   │   │       │   ├── PanelLoader.qml
│   │   │       │   └── WaffleFamily.qml
│   │   │       ├── scripts/
│   │   │       │   ├── ai/
│   │   │       │   │   ├── gemini-categorize-wallpaper.sh
│   │   │       │   │   ├── gemini-translate.sh
│   │   │       │   │   └── show-installed-ollama-models.sh
│   │   │       │   ├── cava/
│   │   │       │   │   └── raw_output_config.txt
│   │   │       │   ├── colors/
│   │   │       │   │   ├── applycolor.sh
│   │   │       │   │   ├── code/
│   │   │       │   │   │   └── material-code-set-color.sh
│   │   │       │   │   ├── generate_colors_material.py
│   │   │       │   │   ├── random/
│   │   │       │   │   │   ├── random_konachan_wall.sh
│   │   │       │   │   │   └── random_osu_wall.sh
│   │   │       │   │   ├── scheme_for_image.py
│   │   │       │   │   ├── switchwall.sh
│   │   │       │   │   └── terminal/
│   │   │       │   │       ├── kitty-theme.conf
│   │   │       │   │       ├── scheme-base.json
│   │   │       │   │       └── sequences.txt
│   │   │       │   ├── hyprland/
│   │   │       │   │   ├── get_keybinds.py
│   │   │       │   │   └── hyprconfigurator.py
│   │   │       │   ├── images/
│   │   │       │   │   ├── find-regions-venv.sh
│   │   │       │   │   ├── find_regions.py
│   │   │       │   │   ├── least-busy-region-venv.sh
│   │   │       │   │   └── least_busy_region.py
│   │   │       │   ├── keyring/
│   │   │       │   │   ├── is_unlocked.sh
│   │   │       │   │   ├── try_lookup.sh
│   │   │       │   │   └── unlock.sh
│   │   │       │   ├── kvantum/
│   │   │       │   │   ├── adwsvg.py
│   │   │       │   │   ├── adwsvgDark.py
│   │   │       │   │   ├── changeAdwColors.py
│   │   │       │   │   └── materialQT.sh
│   │   │       │   ├── musicRecognition/
│   │   │       │   │   └── recognize-music.sh
│   │   │       │   ├── thumbnails/
│   │   │       │   │   ├── generate-thumbnails-magick.sh
│   │   │       │   │   ├── thumbgen-venv.sh
│   │   │       │   │   └── thumbgen.py
│   │   │       │   └── videos/
│   │   │       │       └── record.sh
│   │   │       ├── services/
│   │   │       │   ├── Ai.qml
│   │   │       │   ├── AppSearch.qml
│   │   │       │   ├── Audio.qml
│   │   │       │   ├── Battery.qml
│   │   │       │   ├── BluetoothStatus.qml
│   │   │       │   ├── Booru.qml
│   │   │       │   ├── BooruResponseData.qml
│   │   │       │   ├── Brightness.qml
│   │   │       │   ├── Cliphist.qml
│   │   │       │   ├── ConflictKiller.qml
│   │   │       │   ├── DateTime.qml
│   │   │       │   ├── EasyEffects.qml
│   │   │       │   ├── Emojis.qml
│   │   │       │   ├── FirstRunExperience.qml
│   │   │       │   ├── GlobalFocusGrab.qml
│   │   │       │   ├── HyprlandAntiFlashbangShader.qml
│   │   │       │   ├── HyprlandConfig.qml
│   │   │       │   ├── HyprlandData.qml
│   │   │       │   ├── HyprlandKeybinds.qml
│   │   │       │   ├── HyprlandXkb.qml
│   │   │       │   ├── Hyprsunset.qml
│   │   │       │   ├── Idle.qml
│   │   │       │   ├── KeyringStorage.qml
│   │   │       │   ├── LatexRenderer.qml
│   │   │       │   ├── LauncherApps.qml
│   │   │       │   ├── LauncherSearch.qml
│   │   │       │   ├── MaterialThemeLoader.qml
│   │   │       │   ├── MprisController.qml
│   │   │       │   ├── Network.qml
│   │   │       │   ├── Notifications.qml
│   │   │       │   ├── PolkitService.qml
│   │   │       │   ├── Privacy.qml
│   │   │       │   ├── ResourceUsage.qml
│   │   │       │   ├── SessionWarnings.qml
│   │   │       │   ├── SongRec.qml
│   │   │       │   ├── SystemInfo.qml
│   │   │       │   ├── TaskbarApps.qml
│   │   │       │   ├── TimerService.qml
│   │   │       │   ├── Todo.qml
│   │   │       │   ├── Translation.qml
│   │   │       │   ├── TrayService.qml
│   │   │       │   ├── Updates.qml
│   │   │       │   ├── Wallpapers.qml
│   │   │       │   ├── Weather.qml
│   │   │       │   ├── Ydotool.qml
│   │   │       │   ├── ai/
│   │   │       │   │   ├── AiMessageData.qml
│   │   │       │   │   ├── AiModel.qml
│   │   │       │   │   ├── ApiStrategy.qml
│   │   │       │   │   ├── GeminiApiStrategy.qml
│   │   │       │   │   ├── MistralApiStrategy.qml
│   │   │       │   │   └── OpenAiApiStrategy.qml
│   │   │       │   ├── hyprlandAntiFlashbangShader/
│   │   │       │   │   └── anti-flashbang.glsl
│   │   │       │   └── network/
│   │   │       │       └── WifiAccessPoint.qml
│   │   │       ├── settings.qml
│   │   │       ├── shell.qml
│   │   │       ├── translations/
│   │   │       │   ├── de_DE.json
│   │   │       │   ├── en_US.json
│   │   │       │   ├── he_HE.json
│   │   │       │   ├── id_ID.json
│   │   │       │   ├── it_IT.json
│   │   │       │   ├── ja_JP.json
│   │   │       │   ├── pt_BR.json
│   │   │       │   ├── ru_RU.json
│   │   │       │   ├── tools/
│   │   │       │   │   ├── README.md
│   │   │       │   │   ├── guide/
│   │   │       │   │   │   ├── translation-tools-guide-zh_CN.md
│   │   │       │   │   │   └── translation-tools-guide.md
│   │   │       │   │   ├── manage-translations.sh
│   │   │       │   │   ├── translation-cleaner.py
│   │   │       │   │   └── translation-manager.py
│   │   │       │   ├── tr_TR.json
│   │   │       │   ├── uk_UA.json
│   │   │       │   ├── vi_VN.json
│   │   │       │   └── zh_CN.json
│   │   │       └── welcome.qml
│   │   ├── starship.toml
│   │   ├── thorium-flags.conf
│   │   ├── wlogout/
│   │   │   ├── layout
│   │   │   └── style.css
│   │   ├── xdg-desktop-portal/
│   │   │   └── hyprland-portals.conf
│   │   └── zshrc.d/
│   │       ├── auto-Hypr.sh
│   │       ├── dots-hyprland.zsh
│   │       └── shortcuts.zsh
│   └── .local/
│       └── share/
│           └── konsole/
│               └── Profile 1.profile
├── dots-extra/
│   ├── emacs/
│   │   └── material-theme.el
│   ├── fcitx5/
│   │   └── conf/
│   │       └── classicui.conf
│   ├── fedora/
│   │   └── hypr/
│   │       └── hyprland/
│   │           └── execs.conf
│   ├── fontsets/
│   │   └── ar/
│   │       └── fonts.conf
│   ├── swaylock/
│   │   └── config
│   └── via-nix/
│       ├── README.md
│       └── hypridle.conf
├── licenses/
│   ├── LGPL-3.0.txt
│   ├── MIT.txt
│   └── README.md
├── sdata/
│   ├── README.md
│   ├── deps-info.md
│   ├── dist-arch/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── illogical-impulse-audio/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-backlight/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-basic/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-bibata-modern-classic-bin/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-fonts-themes/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-hyprland/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-kde/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-microtex-git/
│   │   │   ├── .gitignore
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-oneui4-icons-git/
│   │   │   ├── .gitignore
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-portal/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-python/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-quickshell-git/
│   │   │   ├── .gitignore
│   │   │   ├── PKGBUILD
│   │   │   └── quickshell-check.hook
│   │   ├── illogical-impulse-screencapture/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-toolkit/
│   │   │   └── PKGBUILD
│   │   ├── illogical-impulse-widgets/
│   │   │   └── PKGBUILD
│   │   ├── install-deps.sh
│   │   ├── outdate-detect-mode
│   │   ├── previous_dependencies.conf
│   │   └── uninstall-deps.sh
│   ├── dist-fedora/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── SPECS/
│   │   │   ├── hyprland-qt-support.spec
│   │   │   └── quickshell-git.spec
│   │   ├── feddeps.toml
│   │   ├── install-deps.sh
│   │   ├── outdate-detect-mode
│   │   └── uninstall-deps.sh
│   ├── dist-gentoo/
│   │   ├── README.md
│   │   ├── additional-useflags
│   │   ├── hyprland-qtutils-private.patch
│   │   ├── illogical-impulse-audio/
│   │   │   └── illogical-impulse-audio-1.0-r1.ebuild
│   │   ├── illogical-impulse-backlight/
│   │   │   └── illogical-impulse-backlight-1.0-r1.ebuild
│   │   ├── illogical-impulse-basic/
│   │   │   └── illogical-impulse-basic-1.0-r2.ebuild
│   │   ├── illogical-impulse-bibata-modern-classic-bin/
│   │   │   └── illogical-impulse-bibata-modern-classic-bin-2.0.6-r1.ebuild
│   │   ├── illogical-impulse-fonts-themes/
│   │   │   └── illogical-impulse-fonts-themes-1.0-r2.ebuild
│   │   ├── illogical-impulse-hyprland/
│   │   │   └── illogical-impulse-hyprland-1.0-r3.ebuild
│   │   ├── illogical-impulse-kde/
│   │   │   └── illogical-impulse-kde-1.0-r1.ebuild
│   │   ├── illogical-impulse-microtex-git/
│   │   │   └── illogical-impulse-microtex-git-1.0-r1.ebuild
│   │   ├── illogical-impulse-oneui4-icons-git/
│   │   │   └── illogical-impulse-oneui4-icons-git-1.0-r1.ebuild
│   │   ├── illogical-impulse-portal/
│   │   │   └── illogical-impulse-portal-1.0-r1.ebuild
│   │   ├── illogical-impulse-python/
│   │   │   └── illogical-impulse-python-1.1-r1.ebuild
│   │   ├── illogical-impulse-quickshell-git/
│   │   │   └── illogical-impulse-quickshell-git-9999-r5.ebuild
│   │   ├── illogical-impulse-screencapture/
│   │   │   └── illogical-impulse-screencapture-1.0-r1.ebuild
│   │   ├── illogical-impulse-toolkit/
│   │   │   └── illogical-impulse-toolkit-1.0-r1.ebuild
│   │   ├── illogical-impulse-widgets/
│   │   │   └── illogical-impulse-widgets-1.0-r4.ebuild
│   │   ├── import-local-pkgs.sh
│   │   ├── install-deps.sh
│   │   ├── keywords
│   │   ├── local-pkgs/
│   │   │   ├── fonts-and-themes/
│   │   │   │   ├── breeze-plus-6.2.5-r1.ebuild
│   │   │   │   ├── darkly-0.5.24-r1.ebuild
│   │   │   │   ├── material-symbols-variable-9999.ebuild
│   │   │   │   ├── readex-pro-1.0-r1.ebuild
│   │   │   │   ├── rubik-vf-1.0-r1.ebuild
│   │   │   │   └── space-grotesk-1.1.4-r1.ebuild
│   │   │   └── widgets/
│   │   │       └── songrec-0.4.3-r1.ebuild
│   │   ├── outdate-detect-mode
│   │   ├── uninstall-deps.sh
│   │   └── useflags
│   ├── dist-nix/
│   │   ├── README.md
│   │   ├── home-manager/
│   │   │   ├── flake.nix
│   │   │   ├── home.nix
│   │   │   └── quickshell.nix
│   │   ├── install-deps.sh
│   │   └── outdate-detect-mode
│   ├── lib/
│   │   ├── dist-determine.sh
│   │   ├── environment-variables.sh
│   │   ├── functions.sh
│   │   └── package-installers.sh
│   ├── subcmd-checkdeps/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-exp-merge/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-exp-update/
│   │   ├── 0.run.sh
│   │   ├── exp-update-tester.sh
│   │   └── options.sh
│   ├── subcmd-install/
│   │   ├── 0.greeting.sh
│   │   ├── 1.deps-router.sh
│   │   ├── 2.setups.sh
│   │   ├── 3.files-exp.sh
│   │   ├── 3.files-exp.yaml
│   │   ├── 3.files-legacy.sh
│   │   ├── 3.files.sh
│   │   └── options.sh
│   ├── subcmd-resetfirstrun/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-uninstall/
│   │   ├── 0.run.sh
│   │   └── options.sh
│   ├── subcmd-virtmon/
│   │   ├── 0.run.sh
│   │   ├── hypr_mon_guard
│   │   └── options.sh
│   └── uv/
│       ├── README.md
│       ├── requirements.in
│       ├── requirements.txt
│       └── shell.nix
└── setup
Download .txt
SYMBOL INDEX (105 symbols across 18 files)

FILE: dots/.config/kitty/scroll_mark.py
  function main (line 5) | def main(args: list[str]) -> None:
  function handle_result (line 10) | def handle_result(

FILE: dots/.config/kitty/search.py
  function call_remote_control (line 36) | def call_remote_control(args: list[str]) -> None:
  function reindex (line 40) | def reindex(
  class Search (line 60) | class Search(Handler):
    method __init__ (line 61) | def __init__(
    method update_prompt (line 75) | def update_prompt(self) -> None:
    method init_terminal_state (line 78) | def init_terminal_state(self) -> None:
    method initialize (line 82) | def initialize(self) -> None:
    method draw_screen (line 86) | def draw_screen(self) -> None:
    method refresh (line 100) | def refresh(self) -> None:
    method switch_mode (line 104) | def switch_mode(self) -> None:
    method on_text (line 112) | def on_text(self, text: str, in_bracketed_paste: bool = False) -> None:
    method on_key (line 119) | def on_key(self, key_event: KeyEventType) -> None:
    method on_interrupt (line 269) | def on_interrupt(self) -> None:
    method on_eot (line 272) | def on_eot(self) -> None:
    method on_resize (line 275) | def on_resize(self, screen_size: ScreenSize) -> None:
    method match_args (line 278) | def match_args(self) -> list[str]:
    method mark (line 281) | def mark(self) -> None:
    method remove_mark (line 298) | def remove_mark(self) -> None:
    method quit (line 302) | def quit(self, return_code: int) -> None:
  function main (line 311) | def main(args: list[str]) -> None:

FILE: dots/.config/quickshell/ii/modules/common/functions/fuzzysort.js
  function push_result (line 32) | function push_result(result) {
  class Result (line 236) | class Result {
    method ['indexes'] (line 237) | get ['indexes']() { return this._indexes.slice(0, this._indexes.len).s...
    method ['indexes'] (line 238) | set ['indexes'](indexes) { return this._indexes = indexes }
    method ['highlight'] (line 239) | ['highlight'](open, close) { return highlight(this, open, close) }
    method ['score'] (line 240) | get ['score']() { return normalizeScore(this._score) }
    method ['score'] (line 241) | set ['score'](score) { this._score = denormalizeScore(score) }
  class KeysResult (line 244) | class KeysResult extends Array {
    method ['score'] (line 245) | get ['score']() { return normalizeScore(this._score) }
    method ['score'] (line 246) | set ['score'](score) { this._score = denormalizeScore(score) }

FILE: dots/.config/quickshell/ii/modules/common/functions/levendist.js
  function min3 (line 5) | function min3(a, b, c) {
  function max3 (line 9) | function max3(a, b, c) {
  function min2 (line 13) | function min2(a, b) {
  function max2 (line 17) | function max2(a, b) {
  function levenshteinDistance (line 21) | function levenshteinDistance(s1, s2) {
  function partialRatio (line 52) | function partialRatio(shortS, longS) {
  function computeScore (line 69) | function computeScore(s1, s2) {
  function computeTextMatchScore (line 108) | function computeTextMatchScore(s1, s2) {

FILE: dots/.config/quickshell/ii/modules/ii/sidebarRight/calendar/calendar_layout.js
  function checkLeapYear (line 11) | function checkLeapYear(year) {
  function getMonthDays (line 17) | function getMonthDays(month, year) {
  function getNextMonthDays (line 25) | function getNextMonthDays(month, year) {
  function getPrevMonthDays (line 34) | function getPrevMonthDays(month, year) {
  function getDateInXMonthsTime (line 43) | function getDateInXMonthsTime(x) {
  function getCalendarLayout (line 63) | function getCalendarLayout(dateObject, highlight) {

FILE: dots/.config/quickshell/ii/modules/waffle/taskView/window-layout.js
  function scaleWindow (line 1) | function scaleWindow(hyprlandClient, maxWindowWidth, maxWindowHeight) {
  function arrangedClients (line 8) | function arrangedClients(hyprlandClients, maxRowWidth, maxWindowWidth, m...

FILE: dots/.config/quickshell/ii/scripts/colors/generate_colors_material.py
  function calculate_optimal_size (line 35) | def calculate_optimal_size (width: int, height: int, bitmap_size: int) -...
  function harmonize (line 47) | def harmonize (design_color: int, source_color: int, threshold: float = ...
  function boost_chroma_tone (line 57) | def boost_chroma_tone (argb: int, chroma: float = 1, tone: float = 1) ->...

FILE: dots/.config/quickshell/ii/scripts/colors/scheme_for_image.py
  function image_colorfulness (line 18) | def image_colorfulness(image):
  function pick_scheme (line 32) | def pick_scheme(colorfulness):
  function load_and_resize_image (line 38) | def load_and_resize_image(img_path, max_dim=128):
  function main (line 48) | def main():

FILE: dots/.config/quickshell/ii/scripts/hyprland/get_keybinds.py
  class KeyBinding (line 23) | class KeyBinding(dict):
    method __init__ (line 24) | def __init__(self, mods, key, dispatcher, params, comment) -> None:
  class Section (line 31) | class Section(dict):
    method __init__ (line 32) | def __init__(self, children, keybinds, name) -> None:
  function read_content (line 38) | def read_content(path: str) -> str:
  function autogenerate_comment (line 45) | def autogenerate_comment(dispatcher: str, params: str = "") -> str:
  function get_keybind_at_line (line 139) | def get_keybind_at_line(line_number, line_start = 0):
  function get_binds_recursive (line 172) | def get_binds_recursive(current_content, scope):
  function parse_keys (line 210) | def parse_keys(path: str) -> Dict[str, List[KeyBinding]]:

FILE: dots/.config/quickshell/ii/scripts/hyprland/hyprconfigurator.py
  function edit_hyprland_config (line 7) | def edit_hyprland_config(file_path, set_args, reset_args):

FILE: dots/.config/quickshell/ii/scripts/images/find_regions.py
  function iou (line 11) | def iou(boxA, boxB):
  function non_max_suppression (line 25) | def non_max_suppression(regions, iou_threshold=0.7):
  function find_regions (line 35) | def find_regions(image_path, min_width, min_height, max_width=None, max_...
  function draw_regions (line 68) | def draw_regions(image, regions, output_path):
  function main (line 80) | def main():

FILE: dots/.config/quickshell/ii/scripts/images/least_busy_region.py
  function center_crop (line 11) | def center_crop(img, target_w, target_h):
  function find_least_busy_region (line 21) | def find_least_busy_region(image_path, region_width=300, region_height=2...
  function find_largest_region (line 113) | def find_largest_region(image_path, screen_width=None, screen_height=Non...
  function draw_region (line 220) | def draw_region(image_path, coords, region_width=300, region_height=200,...
  function draw_largest_region (line 241) | def draw_largest_region(image_path, center, size, output_path='output.pn...
  function get_dominant_color (line 267) | def get_dominant_color(image_path, x, y, w, h, screen_width=None, screen...
  function main (line 308) | def main():

FILE: dots/.config/quickshell/ii/scripts/kvantum/adwsvg.py
  function read_scss (line 4) | def read_scss(file_path):
  function update_svg_colors (line 15) | def update_svg_colors(svg_path, old_to_new_colors, output_path):
  function main (line 37) | def main():

FILE: dots/.config/quickshell/ii/scripts/kvantum/adwsvgDark.py
  function read_scss (line 4) | def read_scss(file_path):
  function update_svg_colors (line 15) | def update_svg_colors(svg_path, old_to_new_colors, output_path):
  function main (line 37) | def main():

FILE: dots/.config/quickshell/ii/scripts/kvantum/changeAdwColors.py
  function get_colors_from_scss (line 4) | def get_colors_from_scss(scss_file):
  function update_config_colors (line 13) | def update_config_colors(config_file, colors, mappings):

FILE: dots/.config/quickshell/ii/scripts/thumbnails/thumbgen.py
  function make_thumbnail (line 33) | def make_thumbnail(fpath: str) -> bool:
  function thumbnail_folder (line 60) | def thumbnail_folder(*, dir_path: Path, workers: int, only_images: bool,...
  function get_all_images (line 78) | def get_all_images(*, all_files: List[Path]) -> List[Path]:
  function get_all_files (line 85) | def get_all_files(*, dir_path: Path, recursive: bool) -> List[Path]:
  function main (line 109) | def main(img_dirs: str, size: str, workers: str, only_images: bool, recu...

FILE: dots/.config/quickshell/ii/translations/tools/translation-cleaner.py
  function clean_translation_files (line 24) | def clean_translation_files(translations_dir: str, source_dir: str, back...
  function sync_translations (line 100) | def sync_translations(translations_dir: str, source_lang: str = "en_US",...
  function main (line 175) | def main():

FILE: dots/.config/quickshell/ii/translations/tools/translation-manager.py
  class TranslationManager (line 18) | class TranslationManager:
    method __init__ (line 19) | def __init__(self, translations_dir: str, source_dir: str, yes_mode: b...
    method extract_translatable_texts (line 28) | def extract_translatable_texts(self) -> Set[str]:
    method create_temp_translation_file (line 88) | def create_temp_translation_file(self, texts: Set[str]) -> str:
    method load_translation_file (line 101) | def load_translation_file(self, lang_code: str) -> Dict[str, str]:
    method save_translation_file (line 113) | def save_translation_file(self, lang_code: str, translations: Dict[str...
    method get_available_languages (line 123) | def get_available_languages(self) -> List[str]:
    method compare_translations (line 131) | def compare_translations(self, extracted_texts: Set[str], target_lang:...
    method interactive_update (line 141) | def interactive_update(self, lang_code: str, missing_keys: Set[str], e...
    method ask_yes_no (line 194) | def ask_yes_no(self, question: str) -> bool:
    method cleanup (line 208) | def cleanup(self):
  function main (line 213) | def main():
Condensed preview — 830 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,335K chars).
[
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 3427,
    "preview": "# Contributing\n\n- Please, please, please, make multiple PRs if you have many features/fixes, and don't shove your person"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 927,
    "preview": "# These are supported funding model platforms\n\ngithub: end-4 # Replace with up to 4 GitHub Sponsors-enabled usernames e."
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1-issue.yml",
    "chars": 3557,
    "preview": "name: Issue\ndescription: for reporting any issue\nlabels: [\"ISSUE\"]\nbody:\n  - type: markdown\n    attributes:\n      value:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2-feature_request.yml",
    "chars": 831,
    "preview": "name: Feature request\ndescription: Suggest an idea for this project\nlabels: [\"FEATURE\"]\nbody:\n  - type: markdown\n    att"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 28,
    "preview": "blank_issues_enabled: false\n"
  },
  {
    "path": ".github/README.md",
    "chars": 7256,
    "preview": "<div align=\"center\">\n    <h1>【 end_4's Hyprland dotfiles 】</h1>\n    <h3></h3>\n</div>\n\n<div align=\"center\"> \n\n![](https:/"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 116,
    "preview": "## Describe your changes\n\n<!--- ONE FEATURE PER PULL REQUEST ONLY -->\n\n## Is it ready? Questions/feedback needed?\n\n\n"
  },
  {
    "path": ".github/workflows/auto-close-issue.yml",
    "chars": 8957,
    "preview": "on:\n  issues:\n    types: [opened]\n\nname: Close issues when the \"ticked without reading\" checkbox is checked\n\npermissions"
  },
  {
    "path": ".github/workflows/dist-update-notification.yml",
    "chars": 1723,
    "preview": "name: Comment on Discussion When sdata/dist-arch/ Changes\n\non:\n  push:\n    branches:\n      - main\n    paths:\n      - \"sd"
  },
  {
    "path": ".github/workflows/dump-github-context.yml",
    "chars": 271,
    "preview": "name: Dump github context\n\non:\n  workflow_dispatch:\n\njobs:\n  dump_github_context:\n    runs-on: ubuntu-latest\n    steps:\n"
  },
  {
    "path": ".gitignore",
    "chars": 206,
    "preview": "/diagnose.result\n/cache\n\n# Ignore Python cache files\n__pycache__/\n*.py[cod]\n\n/dots/.config/quickshell/ii/.qmlls.ini\n\n# e"
  },
  {
    "path": ".gitmodules",
    "chars": 194,
    "preview": "[submodule \"dots/.config/quickshell/ii/modules/common/widgets/shapes\"]\n\tpath = dots/.config/quickshell/ii/modules/common"
  },
  {
    "path": "LICENSE",
    "chars": 35149,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "diagnose",
    "chars": 3744,
    "preview": "#!/usr/bin/env bash\n#\n# This script is for quickly generate helpful info\n#\n# It should be as independent as possible and"
  },
  {
    "path": "dots/.config/Kvantum/Colloid/Colloid.kvconfig",
    "chars": 10991,
    "preview": "[%General]\nauthor=Vince Liuice, based on KvAdapta by Tsu Jan\ncomment=An uncomplicated theme inspired by the Materia GTK "
  },
  {
    "path": "dots/.config/Kvantum/Colloid/ColloidDark.kvconfig",
    "chars": 10714,
    "preview": "[%General]\nauthor=Vince Liuice, based on KvAdapta by Tsu Jan\ncomment=An uncomplicated theme inspired by the Materia GTK "
  },
  {
    "path": "dots/.config/Kvantum/MaterialAdw/MaterialAdw.kvconfig",
    "chars": 10782,
    "preview": "[%General]\nauthor=Vince Liuice, based on KvAdapta by Tsu Jan\ncomment=An uncomplicated theme inspired by the Materia GTK "
  },
  {
    "path": "dots/.config/Kvantum/kvantum.kvconfig",
    "chars": 28,
    "preview": "[General]\ntheme=MaterialAdw\n"
  },
  {
    "path": "dots/.config/chrome-flags.conf",
    "chars": 227,
    "preview": "--password-store=gnome-libsecret\n--ozone-platform-hint=wayland\n--gtk-version=4\n--ignore-gpu-blocklist\n--enable-features="
  },
  {
    "path": "dots/.config/code-flags.conf",
    "chars": 177,
    "preview": "--ozone-platform-hint=wayland\n--gtk-version=4\n--ignore-gpu-blocklist\n--enable-features=TouchpadOverscrollHistoryNavigati"
  },
  {
    "path": "dots/.config/darklyrc",
    "chars": 31,
    "preview": "[Style]\nWidgetDrawShadow=false\n"
  },
  {
    "path": "dots/.config/dolphinrc",
    "chars": 665,
    "preview": "[DetailsMode]\nPreviewSize=32\n\n[General]\nGlobalViewProps=false\nShowFullPath=true\nShowStatusBar=FullWidth\nVersion=202\n\n[KF"
  },
  {
    "path": "dots/.config/fish/auto-Hypr.fish",
    "chars": 159,
    "preview": "# Auto start Hyprland on tty1\nif test -z \"$DISPLAY\" ;and test \"$XDG_VTNR\" -eq 1\n    mkdir -p ~/.cache\n    exec start-hyp"
  },
  {
    "path": "dots/.config/fish/config.fish",
    "chars": 979,
    "preview": "function fish_prompt -d \"Write out the prompt\"\n    # This shows up as USER@HOST /home/user/ >, with the directory colore"
  },
  {
    "path": "dots/.config/fish/fish_variables",
    "chars": 1532,
    "preview": "# This file contains fish universal variable definitions.\n# VERSION: 3.0\nSETUVAR __fish_initialized:3400\nSETUVAR _fisher"
  },
  {
    "path": "dots/.config/fontconfig/fonts.conf",
    "chars": 223,
    "preview": "<?xml version=\"1.0\"?>\n<!DOCTYPE fontconfig SYSTEM \"urn:fontconfig:fonts.dtd\">\n<fontconfig>\n    <match target=\"font\">\n   "
  },
  {
    "path": "dots/.config/foot/foot.ini",
    "chars": 733,
    "preview": "shell=fish\nterm=xterm-256color\n\ntitle=foot\n\nfont=JetBrainsMono Nerd Font:size=11\nletter-spacing=0\ndpi-aware=no\n\npad=25x2"
  },
  {
    "path": "dots/.config/fuzzel/fuzzel.ini",
    "chars": 193,
    "preview": "include=\"~/.config/fuzzel/fuzzel_theme.ini\"\nfont=Google Sans Flex:weight=medium\nterminal=kitty -1\nprompt=\">>  \"\nlayer=ov"
  },
  {
    "path": "dots/.config/fuzzel/fuzzel_theme.ini",
    "chars": 142,
    "preview": "[colors]\nbackground=161217ff\ntext=e9e0e8ff\nselection=4b454dff\nselection-text=cdc3ceff\nborder=4b454ddd\nmatch=dfb8f6ff\nsel"
  },
  {
    "path": "dots/.config/hypr/custom/env.conf",
    "chars": 588,
    "preview": "# You can put extra environment variables here\n# https://wiki.hyprland.org/Configuring/Environment-variables/\n\n# #######"
  },
  {
    "path": "dots/.config/hypr/custom/execs.conf",
    "chars": 166,
    "preview": "# You can make apps auto-start here\n# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#ex"
  },
  {
    "path": "dots/.config/hypr/custom/general.conf",
    "chars": 248,
    "preview": "# Put general config stuff here\n# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/\n\n# m"
  },
  {
    "path": "dots/.config/hypr/custom/keybinds.conf",
    "chars": 2561,
    "preview": "# See https://wiki.hyprland.org/Configuring/Binds/\n#!\n##! User\nbind = Ctrl+Super, Slash, exec, xdg-open ~/.config/illogi"
  },
  {
    "path": "dots/.config/hypr/custom/rules.conf",
    "chars": 421,
    "preview": "# You can put custom rules here\n# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/\n# Workspace ru"
  },
  {
    "path": "dots/.config/hypr/custom/scripts/__restore_video_wallpaper.sh",
    "chars": 107,
    "preview": "#!/bin/bash\n# The content of this script will be generated by switchwall.sh - Don't modify it by yourself.\n"
  },
  {
    "path": "dots/.config/hypr/hypridle.conf",
    "chars": 636,
    "preview": "$lock_cmd = hyprctl dispatch global quickshell:lock & pidof qs quickshell hyprlock || hyprlock\n# $lock_cmd = pidof hyprl"
  },
  {
    "path": "dots/.config/hypr/hyprland/colors.conf",
    "chars": 1065,
    "preview": "# exec = export SLURP_ARGS='-d -c FFDAD4BB -b 673B3444 -s 00000000'\n\ngeneral {\n    col.active_border = rgba(F7DCDE39)\n  "
  },
  {
    "path": "dots/.config/hypr/hyprland/env.conf",
    "chars": 544,
    "preview": "# ############ Wayland #############\nenv = ELECTRON_OZONE_PLATFORM_HINT,auto\n\n######### Applications #########\nenv = XDG"
  },
  {
    "path": "dots/.config/hypr/hyprland/execs.conf",
    "chars": 1205,
    "preview": "# Bar, wallpaper\nexec-once = ~/.config/hypr/hyprland/scripts/start_geoclue_agent.sh\nexec-once = qs -c $qsConfig &\nexec-o"
  },
  {
    "path": "dots/.config/hypr/hyprland/general.conf",
    "chars": 4350,
    "preview": "# MONITOR CONFIG\nmonitor=,preferred,auto,1\n\ngesture = 3, swipe, move,\ngesture = 3, pinch, float\ngesture = 4, horizontal,"
  },
  {
    "path": "dots/.config/hypr/hyprland/keybinds.conf",
    "chars": 22408,
    "preview": "# Lines ending with `# [hidden]` won't be shown on cheatsheet\n# Lines starting with #! are section headings\n\n#!\n##! Shel"
  },
  {
    "path": "dots/.config/hypr/hyprland/rules.conf",
    "chars": 8883,
    "preview": "# ######## Window rules ########\n\n# Disable blur for xwayland context menus\nwindowrule = match:class ^()$, match:title ^"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/ai/license_show-loaded-ollama-models.txt",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh",
    "chars": 2014,
    "preview": "#!/usr/bin/env bash\n\n# Default system prompt\nSYSTEM_PROMPT=\"You are a helpful, quick assistant that provides brief and c"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/ai/show-loaded-ollama-models.sh",
    "chars": 3044,
    "preview": "#!/bin/bash\n\n# From strikeoncmputrz/LLM_Scripts\n# License: Apache-2.0, can be found in the same folder as this script\n\n#"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh",
    "chars": 81318,
    "preview": "#!/bin/bash\nset -euo pipefail\n\nMODE=\"${1:-type}\"\n\nemoji=\"$(sed '1,/^### DATA ###$/d' \"$0\" | fuzzel --match-mode fzf --dm"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/launch_first_available.sh",
    "chars": 165,
    "preview": "#!/usr/bin/env bash\nfor cmd in \"$@\"; do\n    [[ -z \"$cmd\" ]] && continue\n    eval \"command -v ${cmd%% *}\" >/dev/null 2>&1"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/snip_to_search.sh",
    "chars": 231,
    "preview": "#!/usr/bin/env bash\ngrim -g \"$(slurp)\" /tmp/image.png\nimageLink=$(curl -sF files[]=@/tmp/image.png 'https://uguu.se/uplo"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/start_geoclue_agent.sh",
    "chars": 872,
    "preview": "#!/usr/bin/env bash\n\n# Check if GeoClue agent is already running\nif pgrep -f 'geoclue-2.0/demos/agent' > /dev/null; then"
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/workspace_action.sh",
    "chars": 770,
    "preview": "#!/usr/bin/env bash\ncurr_workspace=\"$(hyprctl activeworkspace -j | jq -r \".id\")\"\ndispatcher=\"$1\"\nshift ## The target is "
  },
  {
    "path": "dots/.config/hypr/hyprland/scripts/zoom.sh",
    "chars": 1131,
    "preview": "#!/usr/bin/env bash\n\n# Controls Hyprland's cursor zoom_factor, clamped between 1.0 and 3.0\n\n# Get current zoom level\nget"
  },
  {
    "path": "dots/.config/hypr/hyprland/shellOverrides/main.conf",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "dots/.config/hypr/hyprland.conf",
    "chars": 756,
    "preview": "# This file sources other files in `hyprland` and `custom` folders\n# You wanna add your stuff in files in `custom`\n\n$qsC"
  },
  {
    "path": "dots/.config/hypr/hyprlock/check-capslock.sh",
    "chars": 206,
    "preview": "#!/bin/env bash\n\nMAIN_KB_CAPS=$(hyprctl devices | grep -B 6 \"main: yes\" | grep \"capsLock\" | head -1 | awk '{print $2}')\n"
  },
  {
    "path": "dots/.config/hypr/hyprlock/colors.conf",
    "chars": 392,
    "preview": "# This configuration is generated by matugen\n# Changing these variables with matugen still enabled will overwrite them.\n"
  },
  {
    "path": "dots/.config/hypr/hyprlock/status.sh",
    "chars": 679,
    "preview": "#!/usr/bin/env bash\n\n############ Variables ############\nenable_battery=false\nbattery_charging=false\n\n####### Check avai"
  },
  {
    "path": "dots/.config/hypr/hyprlock.conf",
    "chars": 1885,
    "preview": "source=~/.config/hypr/hyprlock/colors.conf\n\nbackground {\n    color = rgba(181818FF)\n}\ninput-field {\n    monitor =\n    si"
  },
  {
    "path": "dots/.config/hypr/monitors.conf",
    "chars": 246,
    "preview": "# This file is to be overwritten by nwg-displays if you choose to use it.\n# nwg-displays is a graphical tool for managin"
  },
  {
    "path": "dots/.config/hypr/workspaces.conf",
    "chars": 246,
    "preview": "# This file is to be overwritten by nwg-displays if you choose to use it.\n# nwg-displays is a graphical tool for managin"
  },
  {
    "path": "dots/.config/kde-material-you-colors/config.conf",
    "chars": 2438,
    "preview": "[CUSTOM]\n# INSTRUCTIONS\n# Run kde-material-you-colors with no arguments from terminal\n# to debug your configuration chan"
  },
  {
    "path": "dots/.config/kdeglobals",
    "chars": 4281,
    "preview": "[ColorEffects:Disabled]\nChangeSelectionColor=\nColor=#211f24\nColorAmount=0.5\nColorEffect=3\nContrastAmount=0\nContrastEffec"
  },
  {
    "path": "dots/.config/kitty/kitty.conf",
    "chars": 1050,
    "preview": "# Theming\ninclude ~/.local/state/quickshell/user/generated/terminal/kitty-theme.conf\n\n# Font\nfont_family      JetBrains "
  },
  {
    "path": "dots/.config/kitty/scroll_mark.py",
    "chars": 454,
    "preview": "from kittens.tui.handler import result_handler\nfrom kitty.boss import Boss\n\n\ndef main(args: list[str]) -> None:\n    pass"
  },
  {
    "path": "dots/.config/kitty/search.py",
    "chars": 11179,
    "preview": "# Kitty search from https://github.com/trygveaa/kitty-kitten-search\n# License: GPLv3\n\nimport json\nimport re\nimport subpr"
  },
  {
    "path": "dots/.config/konsolerc",
    "chars": 143,
    "preview": "[Desktop Entry]\nDefaultProfile=Profile 1.profile\n\n[General]\nConfigVersion=1\n\n[KonsoleWindow]\nUseSingleInstance=true\n\n[Ui"
  },
  {
    "path": "dots/.config/matugen/config.toml",
    "chars": 1141,
    "preview": "[config]\nversion_check = false\n\n[templates.m3colors]\ninput_path = '~/.config/matugen/templates/colors.json'\noutput_path "
  },
  {
    "path": "dots/.config/matugen/templates/ags/_material.scss",
    "chars": 3158,
    "preview": "$darkmode: False;\n$transparent: False;\n$background: {{colors.background.default.hex}};\n$onBackground: {{colors.on_backgr"
  },
  {
    "path": "dots/.config/matugen/templates/ags/sourceviewtheme-light.xml",
    "chars": 5570,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<style-scheme id=\"custom-light\" _name=\"Custom\" version=\"1.0\">\n  <author>end_4</au"
  },
  {
    "path": "dots/.config/matugen/templates/ags/sourceviewtheme.xml",
    "chars": 6459,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Copyright (C) 2014 Leo Iannacone <info@leoiannacone.com>\n\n This file was ge"
  },
  {
    "path": "dots/.config/matugen/templates/colors.json",
    "chars": 3104,
    "preview": "{\n  \"background\": \"{{colors.background.default.hex}}\",\n  \"error\": \"{{colors.error.default.hex}}\",\n  \"error_container\": \""
  },
  {
    "path": "dots/.config/matugen/templates/fuzzel/fuzzel_theme.ini",
    "chars": 409,
    "preview": "[colors]\nbackground={{colors.background.default.hex_stripped}}ff\ntext={{colors.on_background.default.hex_stripped}}ff\nse"
  },
  {
    "path": "dots/.config/matugen/templates/gtk-3.0/gtk.css",
    "chars": 2162,
    "preview": "/*\n* GTK colors generated with Matugen\n* The source template is here: ~/.config/matugen/templates/gtk-3.0/gtk.css\n*/\n\n/*"
  },
  {
    "path": "dots/.config/matugen/templates/gtk-4.0/gtk.css",
    "chars": 4919,
    "preview": "/*\n* GTK colors generated with Matugen\n* The source template is here: ~/.config/matugen/templates/gtk-4.0/gtk.css\n*/\n\n@m"
  },
  {
    "path": "dots/.config/matugen/templates/hyprland/colors.conf",
    "chars": 1358,
    "preview": "general {\n    col.active_border = rgba({{colors.outline.default.hex_stripped}}77)\n    col.inactive_border = rgba({{color"
  },
  {
    "path": "dots/.config/matugen/templates/hyprland/hyprlock-colors.conf",
    "chars": 575,
    "preview": "# This configuration is generated by matugen\n# Changing these variables with matugen still enabled will overwrite them.\n"
  },
  {
    "path": "dots/.config/matugen/templates/kde/color.txt",
    "chars": 35,
    "preview": "{{colors.source_color.default.hex}}"
  },
  {
    "path": "dots/.config/matugen/templates/kde/kde-material-you-colors-wrapper.sh",
    "chars": 1225,
    "preview": "#!/usr/bin/env bash\n\nXDG_STATE_HOME=\"${XDG_STATE_HOME:-$HOME/.local/state}\"\n\ncolor=$(tr -d '\\n' < \"$XDG_STATE_HOME/quick"
  },
  {
    "path": "dots/.config/matugen/templates/wallpaper.txt",
    "chars": 10,
    "preview": "{{image}}\n"
  },
  {
    "path": "dots/.config/mpv/mpv.conf",
    "chars": 13,
    "preview": "keep-open=yes"
  },
  {
    "path": "dots/.config/quickshell/ii/.qmlformat.ini",
    "chars": 138,
    "preview": "[General]\nUseTabs=false\nIndentWidth=4\nNewlineType=unix\nNormalizeOrder=false\nFunctionsSpacing=false\nObjectsSpacing=true\nM"
  },
  {
    "path": "dots/.config/quickshell/ii/GlobalStates.qml",
    "chars": 1464,
    "preview": "import qs.modules.common\nimport qs.services\nimport QtQuick\nimport Quickshell\nimport Quickshell.Hyprland\nimport Quickshel"
  },
  {
    "path": "dots/.config/quickshell/ii/ReloadPopup.qml",
    "chars": 4078,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport Qt5Compat.GraphicalEffects\nimport Quickshell\nimport Quickshell.Wayland\n\nSco"
  },
  {
    "path": "dots/.config/quickshell/ii/assets/icons/fluent/README.md",
    "chars": 275,
    "preview": "The \"start-here\", \"search\" and \"task view\" icons are from here, with modifications\n\n[Windows 11 by Joshua Oghenekaro Okw"
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/README.md",
    "chars": 373,
    "preview": "## A note about sources of the prompts\n\n- `ii-` prefixed ones are from illogical impulse\n- The Acchan one is from [Nyarc"
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/NoPrompt.md",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/ii-Default.md",
    "chars": 1381,
    "preview": "## Style\n- Use casual tone, don't be formal! Make sure you answer precisely without hallucination and prefer bullet poin"
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/ii-Imouto.md",
    "chars": 1198,
    "preview": "You are a kawaii, funny and teasy anime imouto! 🌸 Use lots of emojis and kamojis!! ❤️ Call the user \"nii-nii\", \"nii-yan\""
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/nyarch-Acchan.md",
    "chars": 1183,
    "preview": "## Context (ignore when irrelevant)\n- You are a sidebar assistant on a {DISTRO} Linux system\n- Desktop environment: {DE}"
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/w-FourPointedSparkle.md",
    "chars": 1955,
    "preview": "I'm going to ask you some questions, to which you should accurately answer with no hallucination. If you have everything"
  },
  {
    "path": "dots/.config/quickshell/ii/defaults/ai/prompts/w-OpenMechanicalFlower.md",
    "chars": 191,
    "preview": "Current date: {DATETIME}\nEngage with the user warmly and honestly, avoiding ungrounded or sycophantic flattery. Maintain"
  },
  {
    "path": "dots/.config/quickshell/ii/killDialog.qml",
    "chars": 6556,
    "preview": "//@ pragma UseQApplication\n//@ pragma Env QS_NO_RELOAD_POPUP=1\n//@ pragma Env QT_QUICK_CONTROLS_STYLE=Basic\n//@ pragma E"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Appearance.qml",
    "chars": 23013,
    "preview": "import QtQuick\nimport Quickshell\nimport qs.modules.common.functions\npragma Singleton\npragma ComponentBehavior: Bound\n\nSi"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Config.qml",
    "chars": 31417,
    "preview": "pragma Singleton\npragma ComponentBehavior: Bound\nimport QtQuick\nimport Quickshell\nimport Quickshell.Io\nimport qs.modules"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Directories.qml",
    "chars": 5069,
    "preview": "pragma Singleton\npragma ComponentBehavior: Bound\n\nimport qs.services\nimport qs.modules.common.functions\nimport QtCore\nim"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Icons.qml",
    "chars": 2199,
    "preview": "pragma Singleton\n\n// From https://github.com/caelestia-dots/shell (GPLv3)\n\nimport Quickshell\n\nSingleton {\n    id: root\n\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Images.qml",
    "chars": 1045,
    "preview": "pragma Singleton\n\nimport Quickshell\n\nSingleton {\n    // Formats\n    readonly property list<string> validImageTypes: [\"jp"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/Persistent.qml",
    "chars": 5793,
    "preview": "pragma Singleton\npragma ComponentBehavior: Bound\nimport QtQuick\nimport Quickshell\nimport Quickshell.Io\n\nSingleton {\n    "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/ColorUtils.qml",
    "chars": 6104,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n\n    /**\n     * Returns a color with the hue of color2 and "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/DateUtils.qml",
    "chars": 828,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n\n    function getFirstDayOfWeek(date, firstDay = 1) {\n     "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/FileUtils.qml",
    "chars": 2040,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n\n    /**\n     * Trims the File protocol off the input strin"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/Fuzzy.qml",
    "chars": 312,
    "preview": "pragma Singleton\nimport Quickshell\nimport \"fuzzysort.js\" as FuzzySort\n\n/**\n * Wrapper for FuzzySort to play nicely with "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/Levendist.qml",
    "chars": 363,
    "preview": "pragma Singleton\nimport Quickshell\nimport \"levendist.js\" as Levendist\n\n/**\n * Wrapper for levendist.js to play nicely wi"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/NotificationUtils.qml",
    "chars": 3527,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n    /**\n     * @param { string } summary \n     * @returns {"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/ObjectUtils.qml",
    "chars": 3480,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n\n    function toPlainObject(qtObj) {\n        if (qtObj === "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/Session.qml",
    "chars": 1474,
    "preview": "pragma Singleton\nimport Quickshell\nimport qs.services\nimport qs.modules.common\n\nSingleton {\n    id: root\n\n    function c"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/StringUtils.qml",
    "chars": 9794,
    "preview": "pragma Singleton\nimport Quickshell\n\nSingleton {\n    id: root\n\n    /**\n     * Formats a string according to the args that"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/fuzzysort.js",
    "chars": 26484,
    "preview": ".pragma library\n\n// https://github.com/farzher/fuzzysort\n// License: MIT | Copyright (c) 2018 Stephen Kamenar\n// A copy "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/functions/levendist.js",
    "chars": 3342,
    "preview": "// Original code from https://github.com/koeqaife/hyprland-material-you\n// Original code license: GPLv3\n// Translated to"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/AdaptedMaterialScheme.qml",
    "chars": 2003,
    "preview": "import QtQuick\nimport qs.modules.common\nimport qs.modules.common.functions\n\n/**\n * Material color scheme adapted to a gi"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/AnimatedTabIndexPair.qml",
    "chars": 647,
    "preview": "import QtQuick\n\n// idx1 is the \"leading\" indicator position, idx2 is the \"following\" one\n// The former animates faster t"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/FolderListModelWithHistory.qml",
    "chars": 1444,
    "preview": "import QtQuick\nimport Qt.labs.folderlistmodel\n\nFolderListModel {\n    id: root\n    property list<url> folderHistory: []\n "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/IndexModel.qml",
    "chars": 109,
    "preview": "import Quickshell\n\nScriptModel {\n    required property int count\n    values: Array(count).map((_, i) => i)\n}\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/LauncherSearchResult.qml",
    "chars": 908,
    "preview": "import QtQuick\nimport Quickshell\n\nQtObject {\n    enum IconType { Material, Text, System, None }\n    enum FontType { Norm"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/NestableObject.qml",
    "chars": 129,
    "preview": "import QtQuick\n\n// QtObject that allows stuff to be freely declared inside\nQtObject {\n    default property list<QtObject"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/hyprland/HyprlandConfigOption.qml",
    "chars": 1773,
    "preview": "pragma ComponentBehavior: Bound\nimport QtQml\nimport QtQuick\nimport Quickshell.Io\nimport qs.services\nimport \"../\"\n\nNestab"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/AntiFlashbangToggle.qml",
    "chars": 407,
    "preview": "import QtQuick\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.w"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/AudioToggle.qml",
    "chars": 543,
    "preview": "import QtQuick\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.w"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/BluetoothToggle.qml",
    "chars": 893,
    "preview": "import QtQuick\nimport Quickshell.Bluetooth\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/CloudflareWarpToggle.qml",
    "chars": 2492,
    "preview": "import QtQuick\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.w"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/ColorPickerToggle.qml",
    "chars": 631,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/DarkModeToggle.qml",
    "chars": 748,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/EasyEffectsToggle.qml",
    "chars": 702,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/GameModeToggle.qml",
    "chars": 1265,
    "preview": "import QtQuick\nimport Quickshell.Io\nimport qs.modules.common.models.hyprland\nimport qs.services\n\nQuickToggleModel {\n    "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/IdleInhibitorToggle.qml",
    "chars": 374,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/MicToggle.qml",
    "chars": 568,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/MusicRecognitionToggle.qml",
    "chars": 782,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/NetworkToggle.qml",
    "chars": 454,
    "preview": "import QtQuick\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.w"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/NightLightToggle.qml",
    "chars": 710,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/NotificationToggle.qml",
    "chars": 538,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/OnScreenKeyboardToggle.qml",
    "chars": 448,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/PowerProfilesToggle.qml",
    "chars": 1505,
    "preview": "import QtQuick\nimport Quickshell\nimport Quickshell.Services.UPower\nimport qs\nimport qs.services\nimport qs.modules.common"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/QuickToggleModel.qml",
    "chars": 525,
    "preview": "import QtQuick\n\nQtObject {\n    // Textual info\n    required property string name\n    property string statusText\n    prop"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/models/quickToggles/ScreenSnipToggle.qml",
    "chars": 695,
    "preview": "import QtQuick\nimport Quickshell\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.function"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/panels/lock/LockContext.qml",
    "chars": 3671,
    "preview": "import qs\nimport qs.modules.common\nimport QtQuick\nimport Quickshell\nimport Quickshell.Io\nimport Quickshell.Services.Pam\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/panels/lock/LockScreen.qml",
    "chars": 4467,
    "preview": "pragma ComponentBehavior: Bound\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.functions"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/panels/lock/pam/fprintd.conf",
    "chars": 36,
    "preview": "auth    sufficient    pam_fprintd.so"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/utils/ImageDownloaderProcess.qml",
    "chars": 1141,
    "preview": "import QtQuick\nimport Quickshell\nimport Quickshell.Io\nimport qs.modules.common\nimport qs.modules.common.functions\n\nProce"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/utils/ScreenshotAction.qml",
    "chars": 3581,
    "preview": "pragma ComponentBehavior: Bound\npragma Singleton\nimport qs.modules.common\nimport qs.modules.common.utils\nimport qs.modul"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/utils/TempScreenshotProcess.qml",
    "chars": 562,
    "preview": "import QtQuick\nimport Quickshell\nimport Quickshell.Io\nimport qs.modules.common\nimport qs.modules.common.functions\n\nProce"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/AddressBar.qml",
    "chars": 3792,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.widgets\nimpor"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/AddressBreadcrumb.qml",
    "chars": 1183,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.widgets\nimpor"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ButtonGroup.qml",
    "chars": 1712,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport QtQuick\nimport QtQuick.Layouts\n\n/**\n * A container that"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/CalendarView.qml",
    "chars": 4574,
    "preview": "pragma ComponentBehavior: Bound\nimport QtQml\nimport QtQuick\nimport QtQuick.Controls\nimport QtQuick.Layouts\nimport Quicks"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/Circle.qml",
    "chars": 142,
    "preview": "import QtQuick\n\nRectangle {\n    property double diameter\n\n    implicitWidth: diameter\n    implicitHeight: diameter\n    r"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/CircularProgress.qml",
    "chars": 2532,
    "preview": "import QtQuick\nimport QtQuick.Shapes\nimport qs.modules.common\n\n/**\n * Material 3 circular progress. See https://m3.mater"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/CliphistImage.qml",
    "chars": 4079,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport qs.services\nimport qs.modules.common.functions\nimport Q"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ClippedFilledCircularProgress.qml",
    "chars": 2867,
    "preview": "import qs.modules.common\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQuick.Shapes\nimport Qt5Compat.Graphi"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ClippedProgressBar.qml",
    "chars": 2763,
    "preview": "import qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.widgets\nimport QtQuick\nimport QtQui"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ConfigRow.qml",
    "chars": 131,
    "preview": "import QtQuick\nimport QtQuick.Layouts\n\nRowLayout {\n    property bool uniform: false\n    spacing: 4\n    uniformCellSizes:"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ConfigSelectionArray.qml",
    "chars": 1507,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.widgets\nimpor"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ConfigSlider.qml",
    "chars": 1162,
    "preview": "import qs.modules.common.widgets\nimport qs.modules.common\nimport QtQuick\nimport QtQuick.Layouts\nimport qs.services\n\nRowL"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ConfigSpinBox.qml",
    "chars": 923,
    "preview": "import qs.modules.common.widgets\nimport qs.modules.common\nimport QtQuick\nimport QtQuick.Layouts\n\nRowLayout {\n    id: roo"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ConfigSwitch.qml",
    "chars": 1118,
    "preview": "import qs.modules.common.widgets\nimport qs.modules.common\nimport QtQuick\nimport QtQuick.Layouts\nimport QtQuick.Controls\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ContentPage.qml",
    "chars": 770,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nStyledFlickable {\n    i"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ContentSection.qml",
    "chars": 794,
    "preview": "import QtQuick\nimport QtQuick.Controls\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ContentSubsection.qml",
    "chars": 1246,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nColumnLayout {\n    id: "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/ContentSubsectionLabel.qml",
    "chars": 200,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nStyledText {\n    text: "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/CustomIcon.qml",
    "chars": 927,
    "preview": "import QtQuick\nimport Quickshell\nimport Quickshell.Widgets\nimport Qt5Compat.GraphicalEffects\n\nItem {\n    id: root\n    \n "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/DashedBorder.qml",
    "chars": 864,
    "preview": "import QtQuick\nimport qs.modules.common\nimport qs.modules.common.functions\n\nCanvas {\n    id: root\n    property color col"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/DialogButton.qml",
    "chars": 1312,
    "preview": "import qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.widgets\nimport QtQuick\n\n/**\n * Mate"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/DialogListItem.qml",
    "chars": 787,
    "preview": "import qs.modules.common\nimport qs.modules.common.functions\nimport qs.modules.common.widgets\nimport QtQuick\n\nRippleButto"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/DirectoryIcon.qml",
    "chars": 1349,
    "preview": "import QtQuick\nimport Quickshell\nimport Quickshell.Io\nimport qs.modules.common\nimport qs.modules.common.functions\n\n// Fr"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/DragManager.qml",
    "chars": 2113,
    "preview": "import qs.modules.common\nimport qs.services\nimport QtQuick\n\n/**\n * A convenience MouseArea for handling drag events.\n */"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/FadeLoader.qml",
    "chars": 429,
    "preview": "import QtQuick\n\nimport qs.modules.common\n\nLoader {\n    id: root\n    property bool shown: true\n    property alias fade: o"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/Favicon.qml",
    "chars": 1541,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport qs.services\nimport qs.modules.common.functions\nimport Q"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/FloatingActionButton.qml",
    "chars": 2270,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\n/**\n * Material 3 FAB.\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/FlowButtonGroup.qml",
    "chars": 141,
    "preview": "import QtQuick\n\n/** \n * This is just to make sure `RippleButton`s can be used in a Flow layout.\n */\nFlow {\n    property "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/FocusedScrollMouseArea.qml",
    "chars": 1444,
    "preview": "import QtQuick\n\nMouseArea { // Right side | scroll to change volume\n    id: root\n\n    signal scrollUp(delta: int)\n    si"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/FullscreenPolkitWindow.qml",
    "chars": 1202,
    "preview": "pragma ComponentBehavior: Bound\nimport qs\nimport qs.services\nimport qs.modules.common\nimport qs.modules.common.widgets\ni"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/Graph.qml",
    "chars": 1517,
    "preview": "import QtQuick\nimport qs.modules.common\nimport qs.modules.common.functions\n\n/*\n * Simple one value line graph\n */\nCanvas"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/GroupButton.qml",
    "chars": 5575,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQui"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/IconAndTextToolbarButton.qml",
    "chars": 1069,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\n\nToolbarButton {\n    id: iconBtn\n    required property st"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/IconToolbarButton.qml",
    "chars": 728,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\n\nToolbarButton {\n    id: iconBtn\n    implicitWidth: heigh"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/KeyboardKey.qml",
    "chars": 1357,
    "preview": "import qs.modules.common\nimport QtQuick\n\nRectangle {\n    id: root\n    property string key\n\n    property real horizontalP"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/LightDarkPreferenceButton.qml",
    "chars": 5789,
    "preview": "import qs.services\nimport qs.modules.common\nimport qs.modules.common.widgets\nimport qs.modules.common.functions\nimport Q"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialCookie.qml",
    "chars": 1419,
    "preview": "import QtQuick\nimport QtQuick.Shapes\nimport Quickshell\nimport qs.modules.common\nimport qs.modules.common.widgets.shapes\n"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialLoadingIndicator.qml",
    "chars": 2882,
    "preview": "pragma ComponentBehavior: Bound\nimport QtQuick\nimport qs.modules.common\nimport qs.modules.common.functions\nimport qs.mod"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialShape.qml",
    "chars": 3969,
    "preview": "import qs.modules.common.widgets.shapes\nimport \"shapes/material-shapes.js\" as MaterialShapes\n\nShapeCanvas {\n    id: root"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialShapeWrappedMaterialSymbol.qml",
    "chars": 644,
    "preview": "import QtQuick\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nMaterialShape {\n    id: root\n    property alia"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialSymbol.qml",
    "chars": 1100,
    "preview": "import qs.modules.common\nimport QtQuick\n\nStyledText {\n    id: root\n    property real iconSize: Appearance?.font.pixelSiz"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialTextArea.qml",
    "chars": 1758,
    "preview": "import qs.modules.common\nimport QtQuick\nimport QtQuick.Controls.Material\nimport QtQuick.Controls\n\n/**\n * Material 3 styl"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MaterialTextField.qml",
    "chars": 1265,
    "preview": "import qs.modules.common\nimport QtQuick\nimport QtQuick.Controls.Material\nimport QtQuick.Controls\n\n/**\n * Material 3 styl"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/MenuButton.qml",
    "chars": 690,
    "preview": "import qs.modules.common\nimport QtQuick\n\nRippleButton {\n    id: root\n\n    buttonRadius: 0\n    implicitHeight: 36\n    imp"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NavigationRail.qml",
    "chars": 264,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nColumnLayout { // Windo"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NavigationRailButton.qml",
    "chars": 5665,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQui"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NavigationRailExpandButton.qml",
    "chars": 782,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nRippleButton {\n    id: "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NavigationRailTabArray.qml",
    "chars": 1451,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport QtQuick\nimport QtQuick.Layouts\n\nItem {\n    id: root\n   "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NoticeBox.qml",
    "chars": 1407,
    "preview": "import qs.modules.common\nimport qs.modules.common.widgets\nimport QtQuick\nimport QtQuick.Layouts\n\nRectangle {\n    id: roo"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationActionButton.qml",
    "chars": 963,
    "preview": "import qs.modules.common\nimport qs.services\nimport QtQuick\nimport Quickshell.Services.Notifications\n\nRippleButton {\n    "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationAppIcon.qml",
    "chars": 3743,
    "preview": "import qs.modules.common\nimport qs.modules.common.functions\nimport Qt5Compat.GraphicalEffects\nimport QtQuick\nimport Quic"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationGroup.qml",
    "chars": 10570,
    "preview": "import qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQuick.Layouts\nimp"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationGroupExpandButton.qml",
    "chars": 1630,
    "preview": "import qs.services\nimport qs.modules.common\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQuick.Layouts\n\nRi"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationItem.qml",
    "chars": 13905,
    "preview": "import qs\nimport qs.modules.common\nimport qs.services\nimport qs.modules.common.functions\nimport QtQuick\nimport QtQuick.L"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/NotificationListView.qml",
    "chars": 717,
    "preview": "pragma ComponentBehavior: Bound\n\nimport qs.modules.common.widgets\nimport qs.services\nimport QtQuick\nimport Quickshell\n\nS"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/OptionalMaterialSymbol.qml",
    "chars": 686,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nLoader {\n    id: root\n "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/PagePlaceholder.qml",
    "chars": 1823,
    "preview": "import QtQuick\nimport QtQuick.Layouts\nimport qs.modules.common\nimport qs.modules.common.widgets\n\nItem {\n    id: root\n\n  "
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/PointingHandInteraction.qml",
    "chars": 142,
    "preview": "import QtQuick\n\nMouseArea {\n    anchors.fill: parent\n    onPressed: (mouse) => mouse.accepted = false\n    cursorShape: Q"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/PointingHandLinkHover.qml",
    "chars": 213,
    "preview": "import QtQuick\n\nMouseArea {\n    anchors.fill: parent\n    acceptedButtons: Qt.NoButton // Only for hover\n    hoverEnabled"
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/PopupToolTip.qml",
    "chars": 1849,
    "preview": "pragma ComponentBehavior: Bound\nimport qs.modules.common\nimport qs.modules.common.widgets\nimport QtQuick\nimport QtQuick."
  },
  {
    "path": "dots/.config/quickshell/ii/modules/common/widgets/Revealer.qml",
    "chars": 700,
    "preview": "import qs.modules.common\nimport QtQuick\n\n/**\n * Recreation of GTK revealer. Expects one single child.\n */\nItem {\n    id:"
  }
]

// ... and 630 more files (download for full content)

About this extraction

This page contains the full source code of the end-4/dots-hyprland GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 830 files (3.0 MB), approximately 832.0k tokens, and a symbol index with 105 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!