From a7c150d089f3a7664a47b88c6a8c250cedf87cc3 Mon Sep 17 00:00:00 2001 From: "info@data-pro.nu" Date: Wed, 11 Mar 2026 14:53:53 +0100 Subject: [PATCH] working on wofi --- Droidnix/README.html | 742 +++++++++--------- Droidnix/README.org | 74 +- .../hyprland/conf/{ => hypr}/animations.conf | 0 .../hyprland/conf/{ => hypr}/behaviour.conf | 0 .../hyprland/conf/{ => hypr}/bindings.conf | 0 .../hyprland/conf/{ => hypr}/exec-once.conf | 0 .../hyprland/conf/{ => hypr}/hypridle.conf | 0 .../hyprland/conf/{ => hypr}/hyprland.conf | 0 .../hyprland/conf/{ => hypr}/hyprlock.conf | 0 .../hyprland/conf/{ => hypr}/layer-rules.conf | 0 .../hyprland/conf/{ => hypr}/layout.conf | 0 .../conf/{ => hypr}/monitor-rules.conf | 0 .../hyprland/conf/{ => hypr}/variables.conf | 0 .../conf/{ => hypr}/window-rules.conf | 0 .../conf/{ => hypr}/workspace-rules.conf | 0 .../assets/hyprland/conf/wofi/theming.css | 69 ++ Droidnix/assets/hyprland/conf/wofi/wofi.conf | 37 + .../generated/hyprland/task_launcher/wofi.nix | 58 +- .../applications/terminal_shell/starship.nix | 1 - 19 files changed, 543 insertions(+), 438 deletions(-) rename Droidnix/assets/hyprland/conf/{ => hypr}/animations.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/behaviour.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/bindings.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/exec-once.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/hypridle.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/hyprland.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/hyprlock.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/layer-rules.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/layout.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/monitor-rules.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/variables.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/window-rules.conf (100%) rename Droidnix/assets/hyprland/conf/{ => hypr}/workspace-rules.conf (100%) create mode 100644 Droidnix/assets/hyprland/conf/wofi/theming.css create mode 100644 Droidnix/assets/hyprland/conf/wofi/wofi.conf diff --git a/Droidnix/README.html b/Droidnix/README.html index e3e9e8011..fa1ca194c 100644 --- a/Droidnix/README.html +++ b/Droidnix/README.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Droidnix: A Dendritic NixOS + Home Manager Configuration NixOS Configuration Structure @@ -204,121 +204,121 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -334,26 +334,26 @@

Introduction   intro

-
-

What is Droidnix

-
+
+

What is Droidnix

+

Droidnix is a modular, declarative NixOS + Home Manager configuration system. It allows users to choose between Hyprland and Mangowc as their window manager, with shared and WM-specific configurations managed via Emacs Org and Nix Flakes. The project is designed for reproducibility, maintainability, and cross-machine compatibility.

-
-

Installed components:

-
+
+

Installed components:

+
    -
  • Core
  • -
  • Hyprland
  • -
  • Mangowc
  • +
  • Core
  • +
  • Hyprland
  • +
  • Mangowc
-
-

Goals, project Structure, import hierarchy

-
+
+

Goals, project Structure, import hierarchy

+

This project uses a modular NixOS configuration with Hyprland and MangoWC support, designed for literate programming and cross-device reusability. The Droidnix repository is organized into two main parts: @@ -366,9 +366,9 @@ The Droidnix repository is organized into two main parts:

-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -380,23 +380,23 @@ The Droidnix repository is organized into two main parts:
-
-

Generated Structure

-
+
+

Generated Structure

+

The generated/ directory contains all generated configurations, divided into three main groups: system, hyprland, and mangowc.

-
-

System (generated/system/)

-
+
+

System (generated/system/)

+

This directory contains system-wide configurations that are independent of the window manager.

-
-

Applications (applications/)

-
+
+

Applications (applications/)

+
  • file_management/: Configurations for file managers and storage solutions.
  • gaming/: Settings for gaming-related software.
  • @@ -406,9 +406,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

Development (development/)

-
+
+

Development (development/)

+
  • databases/: Settings for local databases.
  • devops_ci_cd/: Configurations for DevOps tools.
  • @@ -418,9 +418,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

System Management (system_management/)

-
+
+

System Management (system_management/)

+
  • backups/: Settings for backup software.
  • bluetooth/: Configurations for Bluetooth devices and services.
  • @@ -439,9 +439,9 @@ This directory contains system-wide configurations that are independent of the w
-
-

Hyprland (generated/hyprland/)

-
+
+

Hyprland (generated/hyprland/)

+

This directory contains configurations specific to Hyprland.

@@ -458,9 +458,9 @@ This directory contains configurations specific to Hyprland.
-
-

MangoWC (generated/mangowc/)

-
+
+

MangoWC (generated/mangowc/)

+

This directory contains configurations specific to MangoWC.

@@ -494,7 +494,7 @@ This directory contains configurations specific to MangoWC.
  • Scalability: Easy to add new machines or configurations.
  • -
    +
     .
     ├── assets
     │   ├── system
    @@ -676,9 +676,9 @@ This directory contains configurations specific to MangoWC.
     
    -
    -

    First Setup

    -
    +
    +

    First Setup

    +
    1. Clone this repository.
    2. Run the setup script: ./setup_droidnix.sh.
    3. @@ -700,9 +700,9 @@ This directory contains configurations specific to MangoWC. The .assets/ folder contains all static files, such as configs, scripts, and themes. These files are not generated and can be edited directly.

    -
    -

    .assets/system/

    -
    +
    +

    .assets/system/

    +

    This folder contains files shared across both window managers, such as wallpapers, shell configs, and system scripts.

    @@ -713,9 +713,9 @@ This folder contains files shared across both window managers, such as wallpaper
    -
    -

    .assets/hyprland/

    -
    +
    +

    .assets/hyprland/

    +

    Hyprland-specific assets, including configs, themes, and scripts.

    @@ -727,9 +727,9 @@ Hyprland-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/mangowc/

    -
    +
    +

    .assets/mangowc/

    +

    Mangowc-specific assets, including configs, themes, and scripts.

    @@ -741,9 +741,9 @@ Mangowc-specific assets, including configs, themes, and scripts.
    -
    -

    .assets/machines/

    -
    +
    +

    .assets/machines/

    +

    Machine-specific NixOS configurations (e.g., configuration.nix for maindroid and traveldroid).

    @@ -761,9 +761,9 @@ Machine-specific NixOS configurations (e.g., configuration.nix for This section contains the Org blocks for tangling Nix code into the generated folders.

    -
    -

    flake.nix

    -
    +
    +

    flake.nix

    +

    The Nix flake definition for Droidnix.

    @@ -848,13 +848,13 @@ The Nix flake definition for Droidnix.
    -
    -

    First the nix-files that flake really needs and that do not fit wel in the hierarchical structure

    -
    +
    +

    First the nix-files that flake really needs and that do not fit wel in the hierarchical structure

    +
    -
    -

    assets/flake/users/henrov.nix

    -
    +
    +

    assets/flake/users/henrov.nix

    +

    This is the default user, just search and replace henrov another name if you want to change

    @@ -870,9 +870,9 @@ This is the default user, just search and replace henrov another name if you wan
    -
    -

    assets/flake/terminal_shell/devshell.nix

    -
    +
    +

    assets/flake/terminal_shell/devshell.nix

    +

    This code defines a Nix shell environment (also called a "devShell") that you can enter using the nix develop command. When you enter this shell, Nix will provide the tools and dependencies listed in buildInputs.

    @@ -888,9 +888,9 @@ mkShell {
    -
    -

    assets/flake/machines/traveldroid/top.nix

    -
    +
    +

    assets/flake/machines/traveldroid/top.nix

    +

    This code defines the machine to build. Just search and replace traveldroid to provision another machine.

    @@ -932,9 +932,9 @@ This code defines the machine to build. Just search and replace traveldroid to p
    -
    -

    assets/flake/machines/traveldroid/boot.nix

    -
    +
    +

    assets/flake/machines/traveldroid/boot.nix

    +

    This file has most of the settings the control how the computer boots up.

    @@ -969,13 +969,13 @@ This file has most of the settings the control how the computer boots up.
    -
    -

    Now we reach the top of the hierarchy which will call all other imports

    -
    +
    +

    Now we reach the top of the hierarchy which will call all other imports

    +
    -
    -

    generated/top.nix

    -
    +
    +

    generated/top.nix

    +

    The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.

    @@ -992,9 +992,9 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha
    -
    -

    generated/hyprland/top.nix

    -
    +
    +

    generated/hyprland/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1017,9 +1017,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/hyprland.nix

    -
    +
    +

    generated/hyprland/hyprland.nix

    +

    The ./generated/top.nix file acts as an anchor or entry point for the entire chain of imports in the pyramid structure.

    @@ -1070,9 +1070,9 @@ in
    -
    -

    generated/mangowc/top.nix

    -
    +
    +

    generated/mangowc/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1095,9 +1095,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/top.nix

    -
    +
    +

    generated/system/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1116,9 +1116,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/top.nix

    -
    +
    +

    generated/system/applications/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1141,9 +1141,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/packages.nix

    -
    +
    +

    generated/system/applications/packages.nix

    +

    This will import all packages listed in ./assets/system/apps/packlages.conf

    @@ -1196,9 +1196,9 @@ in
    -
    -

    generated/system/applications/flatpaks.nix

    -
    +
    +

    generated/system/applications/flatpaks.nix

    +

    This will import all packages listed in ./assets/system/apps/flatpaks.conf

    @@ -1319,9 +1319,9 @@ in
    -
    -

    generated/system/core/top.nix

    -
    +
    +

    generated/system/core/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1339,9 +1339,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/core/login-tuigreeter.nix

    -
    +
    +

    generated/system/core/login-tuigreeter.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1364,9 +1364,9 @@ settings = {
    -
    -

    generated/system/core/wayland.nix

    -
    +
    +

    generated/system/core/wayland.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1410,9 +1410,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/top.nix

    -
    +
    +

    generated/system/development/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1432,9 +1432,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/top.nix

    -
    +
    +

    generated/system/system_management/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1462,9 +1462,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/animations_effects/top.nix

    -
    +
    +

    generated/hyprland/animations_effects/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1480,9 +1480,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/decorations/top.nix

    -
    +
    +

    generated/hyprland/decorations/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1498,9 +1498,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/keyboard_binds/top.nix

    -
    +
    +

    generated/hyprland/keyboard_binds/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1529,9 +1529,9 @@ in
    -
    -

    generated/hyprland/notifications/top.nix

    -
    +
    +

    generated/hyprland/notifications/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1547,9 +1547,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/statusbar_tray/top.nix

    -
    +
    +

    generated/hyprland/statusbar_tray/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1565,9 +1565,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/task_launcher/top.nix

    -
    +
    +

    generated/hyprland/task_launcher/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1583,56 +1583,52 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/task_launcher/wofi.nix

    -
    +
    +

    generated/hyprland/task_launcher/wofi.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    -
    { config, pkgs, lib, user, flakeRoot, ... }:
    -let
    -  xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome;
    -in
    +
    { lib, config, pkgs, flakeRoot, ... }:
    +
     {
    -  # NixOS: Install Wofi system-wide (optional)
    -  environment.systemPackages = with pkgs; [ wofi ];
    +  # Install Wofi and its dependencies
    +  environment.systemPackages = with pkgs; [
    +    wofi
    +  ];
     
    -  # Home Manager: User-specific Wofi config
    -  home-manager.users.${user.username} = {
    -    # Install Wofi for the user
    -    home.packages = with pkgs; [ wofi ];
    +  # Home Manager configuration for Wofi
    +  home-manager.users.henrov = {
    +    # Ensure the config and theme directories exist
    +    home.file = {
    +      ".config/wofi".source = "${flakeRoot}/.assets/hyprland/conf/wofi";
    +      ".config/wofi/config".text = lib.readFile "${flakeRoot}/.assets/hyprland/conf/wofi/wofi.conf";
    +      ".config/wofi/style.css".source = "${flakeRoot}/.assets/hyprland/conf/wofi/theming.css";
    +    };
     
    -    # Wofi configuration
    -    xdg.configFile."wofi/config".text = ''
    -      dark
    -      width=500
    -      height=800
    -      lines=10
    -      columns=1
    -      cache_dir=${xdgDataHome}/wofi
    -      allow_images=true
    -      allow_markup=true
    -      show_drun=true
    -    '';
    -    /*
    -    # Catppuccin Mocha theme for Wofi
    -    xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub {
    -      owner = "catppuccin";
    -      repo = "wofi";
    -      rev = "d4c8c0a6b57e2e97a0d7b87e186322e933a8d9e0"; # Example commit hash (replace with a valid one)
    -      sha256 = "sha256-0Rn9CKPm0v3rXlx7nyXD3QJ5Xq3XZvBwgqXzWmOyZkA="; # Replace with the correct hash
    -    } + "/mocha.css"; # Correct file name
    -    */
    +    # Environment variables for Wofi
    +    home.sessionVariables = {
    +      WOFI_CONFIG = "$HOME/.config/wofi/config";
    +      WOFI_STYLE = "$HOME/.config/wofi/style.css";
    +    };
    +  };
    +
    +  # Systemd service to ensure Wofi is available (optional)
    +  systemd.user.services.wofi = {
    +    description = "Wofi Application Launcher";
    +    wantedBy = [ "default.target" ];
    +    serviceConfig.Type = "oneshot";
    +    serviceConfig.ExecStart = "${pkgs.wofi}/bin/wofi --show drun";
       };
     }
     
    -
    -

    generated/hyprland/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/hyprland/task_window_workspace_switcher/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1648,9 +1644,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/hyprland/window_rules/top.nix

    -
    +
    +

    generated/hyprland/window_rules/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1666,9 +1662,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/animations_effects/top.nix

    -
    +
    +

    generated/mangowc/animations_effects/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1684,9 +1680,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/decorations/top.nix

    -
    +
    +

    generated/mangowc/decorations/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1702,9 +1698,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/keyboard_binds/top.nix

    -
    +
    +

    generated/mangowc/keyboard_binds/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1737,9 +1733,9 @@ in
    -
    -

    generated/mangowc/notifications/top.nix

    -
    +
    +

    generated/mangowc/notifications/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1755,9 +1751,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/statusbar_tray/top.nix

    -
    +
    +

    generated/mangowc/statusbar_tray/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1773,9 +1769,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/task_launcher/top.nix

    -
    +
    +

    generated/mangowc/task_launcher/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1791,9 +1787,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/task_launcher/wofi.nix

    -
    +
    +

    generated/mangowc/task_launcher/wofi.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1806,9 +1802,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/task_window_workspace_switcher/top.nix

    -
    +
    +

    generated/mangowc/task_window_workspace_switcher/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1824,9 +1820,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/mangowc/window_rules/top.nix

    -
    +
    +

    generated/mangowc/window_rules/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1842,9 +1838,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/accessibility/top.nix

    -
    +
    +

    generated/system/applications/accessibility/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1860,9 +1856,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/file_management/top.nix

    -
    +
    +

    generated/system/applications/file_management/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1878,9 +1874,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/gaming/top.nix

    -
    +
    +

    generated/system/applications/gaming/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1896,9 +1892,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/media_playback_editing/top.nix

    -
    +
    +

    generated/system/applications/media_playback_editing/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1914,9 +1910,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/office_productivity/top.nix

    -
    +
    +

    generated/system/applications/office_productivity/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1932,9 +1928,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/terminal_shell/top.nix

    -
    +
    +

    generated/system/applications/terminal_shell/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -1952,9 +1948,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/applications/terminal_shell/kitty.nix

    -
    +
    +

    generated/system/applications/terminal_shell/kitty.nix

    +

    This file sets up Kitty terminal

    @@ -1982,30 +1978,36 @@ in
    -
    -

    generated/system/applications/terminal_shell/starship.nix

    -
    +
    +

    generated/system/applications/terminal_shell/starship.nix

    +

    This file sets up starship prompt

    -
    { lib, config, pkgs, ... }:
    -
    +
    {
    +  lib,
    +  config,
    +  pkgs,
    +  flakeRoot,
    +  ...
    +}:
    +let
    +  starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml");
    +in
     {
       programs.starship = {
         enable = true;
    -    # Load your custom starship.toml directly
    -    settings = builtins.readFile ./assets/system/conf/starship.toml;
    +    settings = starshipConfig;
       };
     }
    -
     
    -
    -

    generated/system/applications/terminal_shell/zsh.nix

    -
    +
    +

    generated/system/applications/terminal_shell/zsh.nix

    +

    This sets up the zsh terminal

    @@ -2110,9 +2112,9 @@ This sets up the zsh terminal
    -
    -

    generated/system/development/databases/top.nix

    -
    +
    +

    generated/system/development/databases/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2128,9 +2130,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/devops_ci_cd/top.nix

    -
    +
    +

    generated/system/development/devops_ci_cd/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2146,9 +2148,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/programming_languages/top.nix

    -
    +
    +

    generated/system/development/programming_languages/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2164,9 +2166,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/virtualization/top.nix

    -
    +
    +

    generated/system/development/virtualization/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2182,9 +2184,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/development/web_development/top.nix

    -
    +
    +

    generated/system/development/web_development/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2200,9 +2202,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/audio/top.nix

    -
    +
    +

    generated/system/system_management/audio/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2218,9 +2220,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/backups/top.nix

    -
    +
    +

    generated/system/system_management/backups/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2236,9 +2238,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/bluetooth/top.nix

    -
    +
    +

    generated/system/system_management/bluetooth/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2254,9 +2256,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/disk_management/top.nix

    -
    +
    +

    generated/system/system_management/disk_management/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2272,9 +2274,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/hardware_sensors/top.nix

    -
    +
    +

    generated/system/system_management/hardware_sensors/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2290,9 +2292,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/logging_monitoring/top.nix

    -
    +
    +

    generated/system/system_management/logging_monitoring/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2308,9 +2310,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/login_manager/top.nix

    -
    +
    +

    generated/system/system_management/login_manager/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2326,9 +2328,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/monitor_setup/top.nix

    -
    +
    +

    generated/system/system_management/monitor_setup/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2344,9 +2346,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/networking/top.nix

    -
    +
    +

    generated/system/system_management/networking/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2362,9 +2364,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/power_management/top.nix

    -
    +
    +

    generated/system/system_management/power_management/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2380,9 +2382,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/printers_scanners/top.nix

    -
    +
    +

    generated/system/system_management/printers_scanners/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2398,9 +2400,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/security/top.nix

    -
    +
    +

    generated/system/system_management/security/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2416,9 +2418,9 @@ This is top file of this level which contains just an import statement for all r
    -
    -

    generated/system/system_management/system_updates/top.nix

    -
    +
    +

    generated/system/system_management/system_updates/top.nix

    +

    This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder

    @@ -2438,7 +2440,7 @@ This is top file of this level which contains just an import statement for all r

    Author: Henro Veijer

    -

    Created: 2026-03-11 wo 14:39

    +

    Created: 2026-03-11 wo 14:53

    Validate

    diff --git a/Droidnix/README.org b/Droidnix/README.org index 13a84734c..bbc0f9ddc 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -1015,40 +1015,36 @@ This is top file of this level which contains just an import statement for all r ** =generated/hyprland/task_launcher/wofi.nix= This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder #+BEGIN_SRC nix :tangle generated/hyprland/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html -{ config, pkgs, lib, user, flakeRoot, ... }: -let - xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome; -in +{ lib, config, pkgs, flakeRoot, ... }: + { - # NixOS: Install Wofi system-wide (optional) - environment.systemPackages = with pkgs; [ wofi ]; + # Install Wofi and its dependencies + environment.systemPackages = with pkgs; [ + wofi + ]; - # Home Manager: User-specific Wofi config - home-manager.users.${user.username} = { - # Install Wofi for the user - home.packages = with pkgs; [ wofi ]; + # Home Manager configuration for Wofi + home-manager.users.henrov = { + # Ensure the config and theme directories exist + home.file = { + ".config/wofi".source = "${flakeRoot}/.assets/hyprland/conf/wofi"; + ".config/wofi/config".text = lib.readFile "${flakeRoot}/.assets/hyprland/conf/wofi/wofi.conf"; + ".config/wofi/style.css".source = "${flakeRoot}/.assets/hyprland/conf/wofi/theming.css"; + }; - # Wofi configuration - xdg.configFile."wofi/config".text = '' - dark - width=500 - height=800 - lines=10 - columns=1 - cache_dir=${xdgDataHome}/wofi - allow_images=true - allow_markup=true - show_drun=true - ''; - /* - # Catppuccin Mocha theme for Wofi - xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "wofi"; - rev = "d4c8c0a6b57e2e97a0d7b87e186322e933a8d9e0"; # Example commit hash (replace with a valid one) - sha256 = "sha256-0Rn9CKPm0v3rXlx7nyXD3QJ5Xq3XZvBwgqXzWmOyZkA="; # Replace with the correct hash - } + "/mocha.css"; # Correct file name - */ + # Environment variables for Wofi + home.sessionVariables = { + WOFI_CONFIG = "$HOME/.config/wofi/config"; + WOFI_STYLE = "$HOME/.config/wofi/style.css"; + }; + }; + + # Systemd service to ensure Wofi is available (optional) + systemd.user.services.wofi = { + description = "Wofi Application Launcher"; + wantedBy = [ "default.target" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.ExecStart = "${pkgs.wofi}/bin/wofi --show drun"; }; } #+END_SRC @@ -1302,16 +1298,22 @@ in ** =generated/system/applications/terminal_shell/starship.nix= This file sets up starship prompt #+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/starship.nix :noweb tangle :mkdirp yes :eval never-html -{ lib, config, pkgs, ... }: - +{ + lib, + config, + pkgs, + flakeRoot, + ... +}: +let + starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml"); +in { programs.starship = { enable = true; - # Load your custom starship.toml directly - settings = builtins.readFile ./assets/system/conf/starship.toml; + settings = starshipConfig; }; } - #+END_SRC ** =generated/system/applications/terminal_shell/zsh.nix= diff --git a/Droidnix/assets/hyprland/conf/animations.conf b/Droidnix/assets/hyprland/conf/hypr/animations.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/animations.conf rename to Droidnix/assets/hyprland/conf/hypr/animations.conf diff --git a/Droidnix/assets/hyprland/conf/behaviour.conf b/Droidnix/assets/hyprland/conf/hypr/behaviour.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/behaviour.conf rename to Droidnix/assets/hyprland/conf/hypr/behaviour.conf diff --git a/Droidnix/assets/hyprland/conf/bindings.conf b/Droidnix/assets/hyprland/conf/hypr/bindings.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/bindings.conf rename to Droidnix/assets/hyprland/conf/hypr/bindings.conf diff --git a/Droidnix/assets/hyprland/conf/exec-once.conf b/Droidnix/assets/hyprland/conf/hypr/exec-once.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/exec-once.conf rename to Droidnix/assets/hyprland/conf/hypr/exec-once.conf diff --git a/Droidnix/assets/hyprland/conf/hypridle.conf b/Droidnix/assets/hyprland/conf/hypr/hypridle.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/hypridle.conf rename to Droidnix/assets/hyprland/conf/hypr/hypridle.conf diff --git a/Droidnix/assets/hyprland/conf/hyprland.conf b/Droidnix/assets/hyprland/conf/hypr/hyprland.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/hyprland.conf rename to Droidnix/assets/hyprland/conf/hypr/hyprland.conf diff --git a/Droidnix/assets/hyprland/conf/hyprlock.conf b/Droidnix/assets/hyprland/conf/hypr/hyprlock.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/hyprlock.conf rename to Droidnix/assets/hyprland/conf/hypr/hyprlock.conf diff --git a/Droidnix/assets/hyprland/conf/layer-rules.conf b/Droidnix/assets/hyprland/conf/hypr/layer-rules.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/layer-rules.conf rename to Droidnix/assets/hyprland/conf/hypr/layer-rules.conf diff --git a/Droidnix/assets/hyprland/conf/layout.conf b/Droidnix/assets/hyprland/conf/hypr/layout.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/layout.conf rename to Droidnix/assets/hyprland/conf/hypr/layout.conf diff --git a/Droidnix/assets/hyprland/conf/monitor-rules.conf b/Droidnix/assets/hyprland/conf/hypr/monitor-rules.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/monitor-rules.conf rename to Droidnix/assets/hyprland/conf/hypr/monitor-rules.conf diff --git a/Droidnix/assets/hyprland/conf/variables.conf b/Droidnix/assets/hyprland/conf/hypr/variables.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/variables.conf rename to Droidnix/assets/hyprland/conf/hypr/variables.conf diff --git a/Droidnix/assets/hyprland/conf/window-rules.conf b/Droidnix/assets/hyprland/conf/hypr/window-rules.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/window-rules.conf rename to Droidnix/assets/hyprland/conf/hypr/window-rules.conf diff --git a/Droidnix/assets/hyprland/conf/workspace-rules.conf b/Droidnix/assets/hyprland/conf/hypr/workspace-rules.conf similarity index 100% rename from Droidnix/assets/hyprland/conf/workspace-rules.conf rename to Droidnix/assets/hyprland/conf/hypr/workspace-rules.conf diff --git a/Droidnix/assets/hyprland/conf/wofi/theming.css b/Droidnix/assets/hyprland/conf/wofi/theming.css new file mode 100644 index 000000000..cda68be1d --- /dev/null +++ b/Droidnix/assets/hyprland/conf/wofi/theming.css @@ -0,0 +1,69 @@ +/* Catppuccin Mocha theme for Wofi */ + +@define-color base #1E1E2E; +@define-color surface0 #313244; +@define-color surface1 #45475A; +@define-color surface2 #585B70; +@define-color text #CDD6F4; +@define-color lavender #B4BEFE; +@define-color blue #89B4FA; +@define-color sapphire #74C7EC; +@define-color teal #94E2D5; +@define-color green #A6E3A1; +@define-color yellow #F9E2AF; +@define-color peach #FAB387; +@define-color maroon #EBA0AC; +@define-color red #F38BA8; +@define-color mauve #CBA6F7; +@define-color pink #F5C2E7; +@define-color flamingo #F2CDCD; +@define-color rosewater #F5E0DC; + +* { + background-color: @base; + color: @text; + font-family: "JetBrainsMono Nerd Font", monospace; + font-size: 12pt; +} + +#main { + border: 1px solid @surface0; + border-radius: 10px; + padding: 20px; +} + +#input { + background-color: @surface0; + color: @text; + border: 1px solid @surface1; + border-radius: 5px; + padding: 5px 10px; + margin-bottom: 10px; +} + +#entry { + background-color: @surface0; + color: @text; + border-radius: 5px; + padding: 5px 10px; +} + +#entry:focus { + background-color: @surface1; + color: @lavender; +} + +#entry:selected { + background-color: @surface2; + color: @text; +} + +#scrollbar { + background-color: @surface0; + border-radius: 5px; +} + +#scrollbar.handle { + background-color: @blue; + border-radius: 5px; +} diff --git a/Droidnix/assets/hyprland/conf/wofi/wofi.conf b/Droidnix/assets/hyprland/conf/wofi/wofi.conf new file mode 100644 index 000000000..dba76b37e --- /dev/null +++ b/Droidnix/assets/hyprland/conf/wofi/wofi.conf @@ -0,0 +1,37 @@ +[global] +allow_images = true +allow_markup = true +show_drun = true:apps,false:others +show_run = true +show_files = false +show_windowed = false +show_dmenu = false +show_ssh = false +show_power = false + +width = 800 +height = 600 +x = center +y = center + +lines = 10 +columns = 1 +sort_order = last-used +sort_method = fuzzy +allow_scrolling = true +scroll_wrap = true +scroll_step = 10 +cycle = true +hide_scroll = false +hide_search = false +show_labels = true +label_search = true +label_run = Run +label_files = Files +label_windowed = Windows +label_drun = Applications +label_dmenu = Commands +label_ssh = SSH +label_power = Power + +prompt = > diff --git a/Droidnix/generated/hyprland/task_launcher/wofi.nix b/Droidnix/generated/hyprland/task_launcher/wofi.nix index 84e91cf79..c7b0b9302 100644 --- a/Droidnix/generated/hyprland/task_launcher/wofi.nix +++ b/Droidnix/generated/hyprland/task_launcher/wofi.nix @@ -1,36 +1,32 @@ -{ config, pkgs, lib, user, flakeRoot, ... }: -let - xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome; -in +{ lib, config, pkgs, flakeRoot, ... }: + { - # NixOS: Install Wofi system-wide (optional) - environment.systemPackages = with pkgs; [ wofi ]; + # Install Wofi and its dependencies + environment.systemPackages = with pkgs; [ + wofi + ]; - # Home Manager: User-specific Wofi config - home-manager.users.${user.username} = { - # Install Wofi for the user - home.packages = with pkgs; [ wofi ]; + # Home Manager configuration for Wofi + home-manager.users.henrov = { + # Ensure the config and theme directories exist + home.file = { + ".config/wofi".source = "${flakeRoot}/.assets/hyprland/conf/wofi"; + ".config/wofi/config".text = lib.readFile "${flakeRoot}/.assets/hyprland/conf/wofi/wofi.conf"; + ".config/wofi/style.css".source = "${flakeRoot}/.assets/hyprland/conf/wofi/theming.css"; + }; - # Wofi configuration - xdg.configFile."wofi/config".text = '' - dark - width=500 - height=800 - lines=10 - columns=1 - cache_dir=${xdgDataHome}/wofi - allow_images=true - allow_markup=true - show_drun=true - ''; - /* - # Catppuccin Mocha theme for Wofi - xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub { - owner = "catppuccin"; - repo = "wofi"; - rev = "d4c8c0a6b57e2e97a0d7b87e186322e933a8d9e0"; # Example commit hash (replace with a valid one) - sha256 = "sha256-0Rn9CKPm0v3rXlx7nyXD3QJ5Xq3XZvBwgqXzWmOyZkA="; # Replace with the correct hash - } + "/mocha.css"; # Correct file name - */ + # Environment variables for Wofi + home.sessionVariables = { + WOFI_CONFIG = "$HOME/.config/wofi/config"; + WOFI_STYLE = "$HOME/.config/wofi/style.css"; + }; + }; + + # Systemd service to ensure Wofi is available (optional) + systemd.user.services.wofi = { + description = "Wofi Application Launcher"; + wantedBy = [ "default.target" ]; + serviceConfig.Type = "oneshot"; + serviceConfig.ExecStart = "${pkgs.wofi}/bin/wofi --show drun"; }; } diff --git a/Droidnix/generated/system/applications/terminal_shell/starship.nix b/Droidnix/generated/system/applications/terminal_shell/starship.nix index 46f352453..06f1e5725 100644 --- a/Droidnix/generated/system/applications/terminal_shell/starship.nix +++ b/Droidnix/generated/system/applications/terminal_shell/starship.nix @@ -5,7 +5,6 @@ flakeRoot, ... }: - let starshipConfig = lib.importTOML (flakeRoot + "/assets/system/conf/starship.toml"); in