Skip to content

crawraps/widgets-collection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crawraps' Widgets Collection

A customizable collection of widgets built with the quickshell environment.

cwc-example-config.mp4

Table of Contents

Installation

Manual Installation

  1. Dependencies:
    Install the core dependency - quickshell

    Some widgets may require additional dependencies for extra features. Read the widget overview before using them.

  2. Clone the Repository:

    $ git clone https://github.com/crawraps/widgets-collection $HOME/.config/quickshell/cwc

    If $XDG_CONFIG_HOME is not defined, use $HOME/.config instead.

Usage

  1. Select the widgets you want to use by editing the shell.qml file. Example:
// shell.qml

...

ShellRoot {
  Dock {} // dock widget with the default configuration
}

Each widget creates an instance for each monitor by default. You can configure this behavior—read the configuration section for details.

  1. Start the shell by typing $ quickshell -c cwc or $ quickshell -dc cwc to run as a daemon.
  2. *Optional* Add the command above to system startup. For example, in Hyprland, add exec-once=quickshell -dc cwc to your hyprland.conf.
  3. *Optional* Create an alias for better usability. For example, in zsh, add alias -- cwc='quickshell -c cwc' to your .zshrc.

Configuration

You can configure widgets and their appearance by modifying .json files. Every config file supports hot-reload.

Appearance Configuration

Global appearance (colors, fonts, spacing, etc.) is managed via appearance.json in your config directory (e.g., $HOME/.config/quickshell/cwc/appearance.json):

{
  "colors": {
    "primary": "#007acc",
    "background": "#20242b"
  },
  "font": {
    "family": { "regular": "Fira Sans" },
    "size": { "xm": 10 }
  },
  "spacing": { "small": 8 },
  "rounding": { "small": 4, "medium": 8 },
  "animation": { "duration": { "normal": 200, "sequential": 50 } },
  "opacity": 0.85
}

Widgets Configuration

Each widget can have several widget-specific .json configuration files, each located in the widgets/[widget-name]/configs/ directory.

When selecting a widget to use, you can provide several common options:

// shell.qml

...

  Dock {
    name: "power-menu"
    screenIds: [0]
    screens: [Quickshell.screens.reduce((acc, screen) => screen.x > acc.x ? screen : acc, { x: -Infinity })]
  }
  • name: Name of a .json configuration file. Default value is "default". In this example, it would be widgets/dock/configs/power-menu.json.
  • screenIds: List of screen IDs where the widget should be displayed. Default: every screen.
  • screens: List of screens where the widget should be displayed. When this option is present, the screenIds option will be ignored. Use this for more precise configuration: in the example above, the widget will be displayed on the rightmost screen.

Widgets

Dock

Showcase
applications-dock-example.mp4
power-menu-dock-example.mp4

Each dock can be configured with a JSON file (e.g., configs/applications.json):

{
  "position": "bottom",
  "orientation": "horizontal",
  "margins": {
    "right": 200
  },
  "items": [
    "Zen",
    "Obsidian",
    "Thunderbird"
  ],
  "iconSize": 48,
  "alwaysVisible": false,
  "showIconsBackground": true,
  "showTooltips": true,
  "falloff": 3,
  "scaleFactor": 0.3,
  "damp": 1
}
  • position: "top", "bottom", "left", "right" - where to position the dock
  • orientation: "horizontal" or "vertical" - how to orient the dock
  • margins: { "bottom": number, "top": number, "right": number, "left": number } - spacing from screen edges. By default, the dock will be centered on the specified position edge
  • items: List of .desktop file app names to show; if not defined, all desktop applications will be listed
  • iconSize: Size of an icon in pixels
  • alwaysVisible: If false, the dock expands/collapses on hover
  • showIconsBackground: Whether to show background for icons
  • showTooltips: Whether to display tooltips
  • falloff: Number of items to be affected by hover animation
  • scaleFactor: Controls item's hover scaling animation strength
  • damp: Controls nearby items' hover scaling animation strength

Contributing

If you have new ideas, concepts or implementations, consider contributing to this collection.

There are no guidelines yet, so I would appreciate following the existing architecture with examples of existing widgets.

Future Plans

Here's a list of widgets I want to create:

  • dock
  • launcher
  • translator/dictionary
  • weather display
  • emoji picker
  • mpris
  • system info display
  • feature-rich calendar

About

Collection of pretty desktop widgets

Topics

Resources

License

Stars

Watchers

Forks

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy