Taskbar #3

Merged
krauterbaquette merged 3 commits from taskbar into Dev 2025-07-28 08:17:47 +02:00
krauterbaquette commented 2025-07-27 01:54:37 +02:00 (Migrated from github.com)

This PR adds 3 new config options for the taskbar:

These changes are non-breaking and should actually increase the compatability of NixOS-95 with general setups

The most "controversial" change of this PR might be the introduction of pipe-operators. They are currently an experimental feature but greatly improve readability in this implementation, as they "stream-line" the transformation of config values to actual XML code.

nixos95.taskbar.homeIcon

Allows a user to change the home Icon in the left corner.

I think this is a "nice-to-have" option and I am currently using it in my setup to change the home Icon. It defaults to the old one and can be ignored.

nixos95.taskbar.battery-plugin.enable

Allows a user to disable the battery plugin.
I think most users want to see there battery status in the taskbar so I made it enabled by default, with an option to disable it (e.g. for desktop clients and because it wasn't enabled in the original configuration).

I still need to test the configuration for this plugin a bit. I think in the current state it matches the "vibe" of the DE best, but i don't know how easy it is to actually read the battery status.
It might help to additionally display the "bar" which changes colors based on the remaining battery percentage.

nixos95.taskbar.applications

This is the main compatability change for other setups. It allows users to specify which applications should be pinned in the taskbar. By default it will pin:

  1. file manager
  2. terminal
  3. browser

This option accepts a list of attr sets, which must apply the following schema:

{
          enable = bool;        [optional; default = true]
          name = string;        [application name shown on hover; optional]
          description = string; [text shown on hover; optional]
          icon = string | path; [icon shown in the task bar]
          terminal = bool;      [start the program inside a terminal; optional; default = false]
          [either pkg or exe must be defined]
          pkg = package;        [use mainProgramm of a nix package; e.g. pkgs.firefox]
          exe = string;         [provide a program name directly; e.g. firefox]
}

The icon can etiher be the name of an icon (string) or a path directly to an image to use (path).

This PR adds 3 new config options for the taskbar: > These changes are non-breaking and should actually increase the compatability of `NixOS-95` with general setups The most "controversial" change of this PR might be the introduction of [pipe-operators](https://nix.dev/manual/nix/2.26/language/operators#pipe-operators). They are currently an experimental feature but greatly improve readability in this implementation, as they "stream-line" the transformation of config values to actual XML code. ### `nixos95.taskbar.homeIcon` Allows a user to change the home Icon in the left corner. I think this is a "nice-to-have" option and I am currently using it in my setup to change the home Icon. It defaults to the old one and can be ignored. ### `nixos95.taskbar.battery-plugin.enable` Allows a user to **disable** the battery plugin. I think most users want to see there battery status in the taskbar so I made it enabled by default, with an option to disable it (e.g. for desktop clients and because it wasn't enabled in the original configuration). > I still need to test the configuration for this plugin a bit. I think in the current state it matches the "vibe" of the DE best, but i don't know how easy it is to actually read the battery status. > It might help to additionally display the "bar" which changes colors based on the remaining battery percentage. ### `nixos95.taskbar.applications` This is the main compatability change for other setups. It allows users to specify which applications should be pinned in the taskbar. By default it will pin: 1. file manager 2. terminal 3. browser This option accepts a list of attr sets, which must apply the following schema: ``` { enable = bool; [optional; default = true] name = string; [application name shown on hover; optional] description = string; [text shown on hover; optional] icon = string | path; [icon shown in the task bar] terminal = bool; [start the program inside a terminal; optional; default = false] [either pkg or exe must be defined] pkg = package; [use mainProgramm of a nix package; e.g. pkgs.firefox] exe = string; [provide a program name directly; e.g. firefox] } ``` > The icon can etiher be the name of an icon (string) or a path directly to an image to use (path).
Sign in to join this conversation.
No description provided.