Skip to content

Conversation

@FinnPL
Copy link
Owner

@FinnPL FinnPL commented Dec 1, 2025

No description provided.

Adapted end-4/dots-hyprland quickshell config for NixOS with Stylix theming.

Features:
- Quickshell bar with weather (Aachen), clock, system tray, workspaces
- Overview/app launcher (ALT+SPACE)
- Sidebar with calendar, quick toggles, sliders
- Notification popups and OSD
- Session screen for logout/shutdown
- Material Design 3 colors generated from Stylix base16 theme

Removed:
- Waffle (Windows-like UI alternative)
- Cheatsheet, on-screen keyboard, wallpaper selector
- AI/Gemini features, anime/booru references
- Color generation scripts (using Stylix instead)

Based on: https://github.com/end-4/dots-hyprland
Original author: end-4 (https://github.com/end-4)
Copilot AI review requested due to automatic review settings December 1, 2025 22:29
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a comprehensive Quickshell configuration system with extensive QML-based UI components, utility functions, and application logic for a desktop shell environment.

Key Changes:

  • Implements a complete widget library with Material Design 3 components (buttons, toggles, navigation, dialogs, etc.)
  • Adds configuration management with JSON-based persistence and file watching
  • Provides utility functions for color manipulation, string processing, file operations, and date handling
  • Includes specialized components for notifications, media controls, system monitoring, and quick settings

Reviewed changes

Copilot reviewed 129 out of 582 changed files in this pull request and generated no comments.

Show a summary per file
File Description
StyledComboBox.qml Material 3 styled dropdown with icon support and animations
StyledBlurEffect.qml Blur effect component using MultiEffect
SineCookie.qml Animated sine wave shape with rotation capabilities
SelectionGroupButton.qml Toggleable button for grouped selections
SelectionDialog.qml Modal dialog for item selection with radio buttons
SecondaryTabButton.qml Tab button with ripple effect animation
SecondaryTabBar.qml Tab bar with animated indicator and wheel navigation
ScrollEdgeFade.qml Gradient fade effect for scrollable content edges
RoundCorner.qml Customizable rounded corner shape component
RippleButtonWithIcon.qml Button combining Material icon with text content
RippleButton.qml Material Design ripple effect button
Revealer.qml GTK-style revealer for animated content visibility
PopupToolTip.qml Tooltip with anchor positioning support
PointingHandLinkHover.qml Mouse area for link hover cursor changes
PointingHandInteraction.qml Mouse area for pointer cursor without event capture
PagePlaceholder.qml Empty state component with icon and description
OptionalMaterialSymbol.qml Conditionally rendered Material icon
NotificationListView.qml List view for notification groups
NotificationItem.qml Individual notification display with actions and drag-to-dismiss
NotificationGroupExpandButton.qml Button to expand/collapse notification groups
NotificationGroup.qml Grouped notifications from the same app
NotificationAppIcon.qml Icon component for notification app identity
NotificationActionButton.qml Action button within notifications
NoticeBox.qml Information box with icon and optional actions
NavigationRailTabArray.qml Container for navigation rail tabs with animated indicator
NavigationRailExpandButton.qml Toggle button for expanding navigation rail
NavigationRailButton.qml Individual navigation rail tab item
NavigationRail.qml Vertical navigation container
MenuButton.qml Menu item button component
MaterialTextField.qml Material 3 text input field
MaterialTextArea.qml Material 3 multi-line text area
MaterialSymbol.qml Material Symbols font icon renderer
MaterialShapeWrappedMaterialSymbol.qml Material icon wrapped in shaped container
MaterialShape.qml Renders various Material Design shapes
MaterialLoadingIndicator.qml Animated loading indicator with shape morphing
MaterialCookie.qml Cookie-shaped polygon component
LightDarkPreferenceButton.qml Theme selector with preview
KeyboardKey.qml Keyboard key visual representation
IconToolbarButton.qml Toolbar button with icon only
IconAndTextToolbarButton.qml Toolbar button with icon and text
GroupButton.qml Button for group layouts with bounce effect
Graph.qml Simple line graph canvas component
FocusedScrollMouseArea.qml Mouse area with scroll tracking
FlowButtonGroup.qml Flow layout container for buttons
FloatingActionButton.qml Material 3 FAB implementation
Favicon.qml Website favicon loader and renderer
FadeLoader.qml Loader with fade transition
DragManager.qml Mouse area for drag gesture handling
DirectoryIcon.qml Icon for directory entries based on type
DialogListItem.qml List item for dialogs
DialogButton.qml Material 3 dialog action button
CustomIcon.qml Custom icon loader with colorization
ContentSubsectionLabel.qml Label for content subsections
ContentSubsection.qml Content subsection container with title
ContentSection.qml Major content section with icon and title
ContentPage.qml Scrollable page container for content
ConfigSwitch.qml Configuration toggle with icon and label
ConfigSpinBox.qml Configuration number input with icon
ConfigSelectionArray.qml Array of selection buttons for configuration
ConfigRow.qml Row layout for configuration items
ClippedProgressBar.qml Progress bar with text clipping effect
ClippedFilledCircularProgress.qml Circular progress with text clipping
CliphistImage.qml Image renderer for clipboard history
CircularProgress.qml Material 3 circular progress indicator
Circle.qml Simple circle shape component
CalendarView.qml Calendar view with scrolling and date selection
ButtonGroup.qml Container for grouped buttons with animation
AddressBreadcrumb.qml Breadcrumb navigation for file paths
AddressBar.qml Address bar with breadcrumb and text input modes
ImageDownloaderProcess.qml Process for downloading and identifying images
ScreenSnipToggle.qml Quick toggle for screen capture
QuickToggleModel.qml Data model for quick toggle items
PowerProfilesToggle.qml Toggle for power profile selection
OnScreenKeyboardToggle.qml Toggle for virtual keyboard
NotificationToggle.qml Toggle for notification silence
NightLightToggle.qml Toggle for night light feature
NetworkToggle.qml Toggle for network connectivity
MusicRecognitionToggle.qml Toggle for music identification
MicToggle.qml Toggle for microphone mute
IdleInhibitorToggle.qml Toggle for idle inhibition
GameModeToggle.qml Toggle for game mode optimizations
EasyEffectsToggle.qml Toggle for audio effects
DarkModeToggle.qml Toggle for dark mode theme
ColorPickerToggle.qml Action for color picker tool
CloudflareWarpToggle.qml Toggle for Cloudflare WARP VPN
BluetoothToggle.qml Toggle for Bluetooth connectivity
AudioToggle.qml Toggle for audio output mute
AntiFlashbangToggle.qml Toggle for anti-flashbang feature
FolderListModelWithHistory.qml Folder list with navigation history
AnimatedTabIndexPair.qml Model for animated tab transitions
AdaptedMaterialScheme.qml Material color scheme adaptation
levendist.js Levenshtein distance computation for fuzzy matching
fuzzysort.js Fuzzy search library
StringUtils.qml String manipulation utilities
Session.qml Session management functions (lock, logout, poweroff, etc.)
ObjectUtils.qml Object conversion and manipulation utilities
NotificationUtils.qml Notification helper functions
Levendist.qml Wrapper for levenshtein distance JS library
Fuzzy.qml Wrapper for fuzzy sort JS library
FileUtils.qml File path manipulation utilities
DateUtils.qml Date calculation utilities
ColorUtils.qml Color manipulation functions
Persistent.qml Persistent state management with JSON file storage
Images.qml Image format and thumbnail utilities
Icons.qml Icon mapping utilities
Directories.qml XDG directory paths and shell-specific paths
Config.qml Configuration management with file watching and JSON persistence
killDialog.qml Dialog for killing conflicting programs
fluent/README.md Attribution for Fluent design icons
.qmlformat.ini QML formatter configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -0,0 +1,222 @@
#!/usr/bin/env -S\_/bin/sh\_-c\_"source\_\$(eval\_echo\_\$ILLOGICAL_IMPULSE_VIRTUAL_ENV)/bin/activate&&exec\_python\_-E\_"\$0"\_"\$@""

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fix broken shebang in Hyprland keybind parser

The new Hyprland keybind parser won’t start because the shebang is mangled (#!/usr/bin/env -S\_/bin/sh\_-c\_...)—env cannot parse the backslash/underscore-littered arguments, so the script is not executable by the Process blocks in HyprlandKeybinds.qml. With the command failing before Python even starts, keybind JSON never loads and any UI that relies on it will be empty. The shebang should be a valid env -S /bin/sh -c ... invocation without the escaped underscores.

Useful? React with 👍 / 👎.

@FinnPL FinnPL merged commit bb07d3d into main Dec 1, 2025
3 of 6 checks passed
@FinnPL FinnPL deleted the quickshell branch December 1, 2025 23:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants