diff --git a/Droidnix/README.html b/Droidnix/README.html index 6a642ddab..ca1ccbf23 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,117 +204,121 @@

Table of Contents

-
-

Shortcuts

-
+
+

Shortcuts

+

Introduction The Assets Folder @@ -330,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: @@ -362,9 +366,9 @@ The Droidnix repository is organized into two main parts:

-
-

Root Level

-
+
+

Root Level

+
  • flake.nix is the entry point and imports:
      @@ -375,16 +379,16 @@ 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.

-
-

First Setup

-
+
+

First Setup

+
  1. Clone this repository.
  2. Run the setup script: ./setup_droid.
  3. @@ -414,9 +418,9 @@ The .assets/ folder contains all static files, such as configs, scr This section contains the Org blocks for tangling Nix code into the generated folders.

-
-

flake.nix

-
+
+

flake.nix

+

The Nix flake definition for Droidnix.

@@ -485,9 +489,9 @@ The Nix flake definition for Droidnix.
-
-

generated/hosts/traveldroid/host.nix

-
+
+

generated/hosts/traveldroid/host.nix

+
{ lib, config, pkgs, flakeRoot, import-tree, home-manager, ... }:
 
@@ -545,9 +549,9 @@ in
 
-
-

generated/hosts/traveldroid/hardware-configuration.nix

-
+
+

generated/hosts/traveldroid/hardware-configuration.nix

+
  1. Boot into NixOS Live ISO or your installed system.
  2. Open a terminal.
  3. @@ -605,9 +609,9 @@ in
-
-

generated/hosts/traveldroid/boot.nix

-
+
+

generated/hosts/traveldroid/boot.nix

+
{ config, pkgs, lib, flakeRoot, ... }:
 
@@ -656,17 +660,17 @@ in
 
-
-

Following are the imported modules

+
+

Following are the imported modules

-
-

generated/traveldroid/modules/apps

-
+
+

generated/traveldroid/modules/apps

+
-
-

generated/modules/traveldroid/apps/2_b_installed.nix

-
+
+

generated/modules/traveldroid/apps/2_b_installed.nix

+

This installs a list of apps

@@ -774,9 +778,9 @@ in {
-
-

generated/assets/2_b_installed.conf

-
+
+

generated/assets/2_b_installed.conf

+

This is a list of additional apps to install

@@ -829,9 +833,9 @@ com.todoist.Todoist
-
-

generated/modules/traveldroid/apps/flameshot.nix

-
+
+

generated/modules/traveldroid/apps/flameshot.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

@@ -870,9 +874,9 @@ in
-
-

generated/modules/traveldroid/apps/kitty.nix

-
+
+

generated/modules/traveldroid/apps/kitty.nix

+

This file sets up Kitty terminal

@@ -930,9 +934,9 @@ in
-
-

generated/modules/traveldroid/apps/starship.nix

-
+
+

generated/modules/traveldroid/apps/starship.nix

+

This file sets up starship prompt

@@ -971,9 +975,9 @@ in
-
-

.config/starship.toml

-
+
+

.config/starship.toml

+

These are config files for .config

@@ -1262,9 +1266,9 @@ crust = "#181926"
-
-

generated/modules/traveldroid/apps/thunar.nix

-
+
+

generated/modules/traveldroid/apps/thunar.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

@@ -1305,9 +1309,9 @@ in
-
-

generated/modules/traveldroid/apps/wofi.nix

-
+
+

generated/modules/traveldroid/apps/wofi.nix

+

This is the install for Wofi, the launcher

@@ -1340,9 +1344,9 @@ in
-
-

.config/wofi/config

-
+
+

.config/wofi/config

+

These are config files for .config/wofi

@@ -1389,9 +1393,9 @@ prompt = >
-
-

.config/wofi/style.css

-
+
+

.config/wofi/style.css

+

These are config files for .config/wofi

@@ -1480,9 +1484,9 @@ These are config files for .config/wofi
-
-

generated/modules/traveldroid/apps/zenbrowser.nix

-
+
+

generated/modules/traveldroid/apps/zenbrowser.nix

+

This installs zen browser

@@ -1502,9 +1506,9 @@ in
-
-

generated/modules/traveldroid/apps/zsh.nix

-
+
+

generated/modules/traveldroid/apps/zsh.nix

+

This sets up the zsh in the terminal

@@ -1567,9 +1571,9 @@ in
-
-

=generated/.config/zsh/.zshrc

-
+
+

=generated/.config/zsh/.zshrc

+

This sets up the zsh in the terminal

@@ -1590,9 +1594,9 @@ fi
-
-

generated/modules/traveldroid/apps/emacs/emacs.nix

-
+
+

generated/modules/traveldroid/apps/emacs/emacs.nix

+

This installs emacs

@@ -1688,9 +1692,9 @@ in
-
-

generated/.config/emacs/early-init.el

-
+
+

generated/.config/emacs/early-init.el

+

This contaions emacs

@@ -1791,9 +1795,9 @@ package-archive-priorities '(("gnu" . 99)
-
-

generated/.config/emacs/init.el

-
+
+

generated/.config/emacs/init.el

+

This contaions emacs

@@ -2204,13 +2208,13 @@ the top of the file."
-
-

generated/modules/traveldroid/desktop

-
+
+

generated/modules/traveldroid/desktop

+
-
-

generated/modules/traveldroid/desktop/fonts.nix

-
+
+

generated/modules/traveldroid/desktop/fonts.nix

+

This file installs and configures fonts

@@ -2228,9 +2232,9 @@ This file installs and configures fonts
-
-

generated/modules/traveldroid/desktop/gtk.nix

-
+
+

generated/modules/traveldroid/desktop/gtk.nix

+

Setting up GTK

@@ -2256,9 +2260,9 @@ in
-
-

generated/modules/traveldroid/desktop/hyprland.nix

-
+
+

generated/modules/traveldroid/desktop/hyprland.nix

+

Setting up Hyprland

@@ -2305,9 +2309,9 @@ in
-
-

.config/hypr/animations.conf

-
+
+

.config/hypr/animations.conf

+

These are config files for .config/hypr

@@ -2328,9 +2332,9 @@ animations {
-
-

.config/hypr/behaviour.conf

-
+
+

.config/hypr/behaviour.conf

+

These are config files for .config/hypr

@@ -2344,9 +2348,9 @@ These are config files for .config/hypr
-
-

.config/hypr/bindings.conf

-
+
+

.config/hypr/bindings.conf

+

These are config files for .config/hypr

@@ -2509,9 +2513,9 @@ bind = $mainMod, W, exec, zen
-
-

.config/hypr/exec-once.conf

-
+
+

.config/hypr/exec-once.conf

+

These are config files for .config/hypr

@@ -2527,9 +2531,9 @@ exec-once = sh ~/Wallpapers/scripts/wallpaper.sh &
-
-

.config/hypr/hypridle.conf

-
+
+

.config/hypr/hypridle.conf

+

These are config files for .config/hypr

@@ -2554,9 +2558,9 @@ listener {
-
-

.config/hypr/hyprland.conf

-
+
+

.config/hypr/hyprland.conf

+

These are config files for .config/hypr

@@ -2603,9 +2607,9 @@ misc {
-
-

.config/hypr/hyprlock.conf

-
+
+

.config/hypr/hyprlock.conf

+

These are config files for .config/hypr

@@ -2646,9 +2650,9 @@ label {
-
-

.config/hypr/layer-rules.conf

-
+
+

.config/hypr/layer-rules.conf

+

These are config files for .config/hypr

@@ -2663,9 +2667,9 @@ layerrule = blur on, ignore_alpha 1, match:namespace swaync-notification-window
-
-

.config/hypr/layout.conf

-
+
+

.config/hypr/layout.conf

+

These are config files for .config/hypr

@@ -2675,9 +2679,9 @@ These are config files for .config/hypr
-
-

.config/hypr/monitor-rules.conf

-
+
+

.config/hypr/monitor-rules.conf

+

These are config files for .config/hypr

@@ -2688,9 +2692,9 @@ monitor=DP-1,3840x1080@144,1920x0,1
-
-

.config/hypr/scripts/layout-selector.sh

-
+
+

.config/hypr/scripts/layout-selector.sh

+

These are config files for .config/hypr/scripts

@@ -2733,9 +2737,9 @@ hyprctl dispatch oSD "Layout: $LAYOUT_NAME" 2000
-
-

.config/hypr/theming.css

-
+
+

.config/hypr/theming.css

+

These are config files for .config/hypr

@@ -2784,9 +2788,9 @@ decoration {
-
-

.config/hypr/window-rules.conf

-
+
+

.config/hypr/window-rules.conf

+

These are config files for .config/hypr

@@ -2824,9 +2828,9 @@ windowrule {
-
-

.config/hypr/workspace-rules.conf

-
+
+

.config/hypr/workspace-rules.conf

+

These are config files for .config/hypr

@@ -2852,9 +2856,9 @@ workspace = 10
-
-

generated/modules/traveldroid/desktop/wallpaper.nix

-
+
+

generated/modules/traveldroid/desktop/wallpaper.nix

+

Setting up wallpaper engine + wallpaper gui

@@ -2953,9 +2957,9 @@ in
-
-

generated/modules/traveldroid/desktop/stylix.nix

-
+
+

generated/modules/traveldroid/desktop/stylix.nix

+
{ lib, config, pkgs, flakeRoot, stylix, ... }:
 
@@ -3042,9 +3046,9 @@ in
 
-
-

.config/stylix/stylix.conf

-
+
+

.config/stylix/stylix.conf

+

These are config files for .config/stylix

@@ -3081,9 +3085,9 @@ icons = {
-
-

.config/stylix/palette.json

-
+
+

.config/stylix/palette.json

+

These are config files for .config/stylix

@@ -3113,9 +3117,9 @@ These are config files for .config/stylix
-
-

.config/stylix/palette.html

-
+
+

.config/stylix/palette.html

+

These are config files for .config/stylix

@@ -3193,9 +3197,9 @@ These are config files for .config/stylix
-
-

generated/modules/traveldroid/desktop/waybar.nix

-
+
+

generated/modules/traveldroid/desktop/waybar.nix

+

This file installs and configures waybar

@@ -3261,9 +3265,9 @@ in
-
-

.config/waybar/config

-
+
+

.config/waybar/config

+

These are config files for waybar

@@ -3272,8 +3276,6 @@ These are config files for waybar "layer": "top", "height": 34, - //"modules-left": ["hyprland/window"], - "modules-center": [ "custom/workspaces_content" ], @@ -3283,15 +3285,10 @@ These are config files for waybar "pulseaudio", "network", "custom/bluetooth", - /* - "cpu", - "memory", - "temperature", - */ "battery", "tray", - "clock", - ], + "clock" + ], "custom/workspaces_content": { "exec": "~/.config/waybar/scripts/hyprscroll-overflow.sh", @@ -3302,56 +3299,28 @@ These are config files for waybar "tooltip": true }, - /* - "custom/notifications": { - "tooltip": false, - "return-type": "json", - "exec-if": "which swaync-client", - "exec": "swaync-client -swb", - "format": "{icon}", - "format-icons": { - "notification": "", - "none": "", - "dnd-notification": "󰂠", - "dnd-none": "󰪓", - }, - "on-click": "swaync-client -t", - "on-click-right": "swaync-client -d", - "on-click-middle": "swaync-client -dn", - }, -*/ - "idle_inhibitor": { "tooltip": true, "format": "{icon}", "format-icons": { "activated": "  ", - "deactivated": " 󰒲 ", - }, - "tooltip-format-activated": "Staying awake", - "tooltip-format-deactivated": "Might sleep....", + "deactivated": " 󰒲 " + } }, "pulseaudio": { "format": "{volume}% {icon}", - "format-bluetooth": "{volume}% {icon}", "format-muted": "", "format-icons": { - "headphones": "", - "headset": "", - "phone": "", - "portable": "", - "default": ["", ""], + "default": ["", ""] }, - "on-click": "pavucontrol", + "on-click": "pavucontrol" }, "network": { "format-wifi": " ({bandwidthDownBits})", "format-ethernet": " ({bandwidthDownBits})", "format-disconnected": "Disconnected ⚠", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}", "on-click": "nm-connection-editor" }, @@ -3363,252 +3332,157 @@ These are config files for waybar "format": "{}" }, - "cpu": { - "format": "{usage}%  ", - "tooltip": false, - }, - - "memory": { - "format": "{percentage}%  ", - }, - - "temperature": { - "format": "{temperatureC}°C ", - "tooltip": false, - }, - "tray": { "spacing": 10, - "icon-size": 14, + "icon-size": 14 }, "clock": { "format": "{:%a, %d %b %Y - %H:%M}", - "tooltip": false, - "on-click": "flatpak run eu.betterbird.Betterbird -calendar", + "tooltip": false }, "battery": { "bat": "BAT0", - "states": { - "good": 95, - "warning": 30, - "critical": 15, - }, "format": "{capacity}% {icon}", "format-charging": "{capacity}% 󰂄", - "format-plugged": "{capacity}%  ", - "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "], - }, + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "] + } }
-
-

.config/waybar/style.css

-
+
+

.config/waybar/style.css

+

This file contains all css for waybar +#+BEGINSRC css :tangle generated/.config/waybar/config :noweb yes :mkdirp yes :eval never +* — Hyprland palette — * +@define-color base rgba(30, 30, 46, 1.0); +@define-color inactive rgba(89, 89, 89, 0.667); +@define-color blue rgba(51, 204, 255, 0.933); +@define-color green rgba(0, 255, 153, 0.933); +@define-color text rgba(255, 255, 255, 1.0); +@define-color surface1 rgba(255, 255, 255, 0.08); +@define-color subtext1 rgba(255, 255, 255, 0.35); +@define-color red rgba(255, 0, 0, 0.90); +@define-color overlay1 rgba(255, 255, 255, 0.35); +@define-color yellow rgba(255, 215, 0, 0.95);

-
-
/* --- Hyprland palette (ported) --- */
-@define-color base     rgba(30, 30, 46, 1.0); /* 1e1e2eff */
-@define-color inactive rgba(89, 89, 89, 0.667); /* 595959aa */
-@define-color blue     rgba(51, 204, 255, 0.933); /* 33ccffee */
-@define-color green    rgba(0, 255, 153, 0.933); /* 00ff99ee */
 
-/* extra colors you referenced but didn’t define */
-@define-color text     rgba(255, 255, 255, 1.0);
-@define-color surface1 rgba(255, 255, 255, 0.08);
-@define-color subtext1 rgba(255, 255, 255, 0.35);
-@define-color red      rgba(255, 0, 0, 0.90);
-@define-color overlay1 rgba(255, 255, 255, 0.35);
-@define-color yellow   rgba(255, 215, 0, 0.95);
-
-    * {
-    font-family:
-        Aporetic Sans Mono,
-        FiraCode Nerd Font,
-        Iosevka Nerd Font,
-        Roboto,
-        Helvetica,
-        Arial,
-        sans-serif;
+

+* — Base font — * +

+
+
+
+
+

{

+
+

+ font-family: Aporetic Sans Mono, Iosevka Nerd Font, Roboto, Helvetica, Arial, sans-serif; font-size: 13px; } +

+

window#waybar { - background-color: transparent; + background: transparent; color: @text; - transition-property: background-color; - border-bottom: 0px solid rgba(0, 0, 0, 0); - transition-duration: 0.5s; + transition: background-color 0.5s; } +

-#custom-workspaces_content { - padding: 0px 1px; +

+* — Workspaces buttons — * +#workspaces button { + padding: 0 1px; min-width: 80px; - background-color: transparent; + background: transparent; color: @text; border: 2px solid @inactive; border-radius: 10px; } +

-#custom-workspaces_content.active { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; +

+#workspaces button:hover { + background-color: @surface1; +} +

+ +

+#workspaces button.active { font-weight: bold; border: 1px solid transparent; background: - linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15)) padding-box, + linear-gradient(rgba(255,255,255,0.15), rgba(255,255,255,0.15)) padding-box, linear-gradient(45deg, @blue, @green) border-box; } +

-#custom-notifications.empty { - color: @overlay1; -} - -#custom-notifications.unread { - color: @yellow; -} - -#workspaces button:hover { - background-color: @surface1; - color: @text; -} - -#custom-bluetooth { - display: inline-block; - width: 4ch; /* width in character units */ - text-align: center; - overflow: visible; /* width in character units */ - white-space: nowrap; -} - -#clock, -#idle_inhibitor, -#battery, -#cpu, -#memory, -#temperature, -#network, -#pulseaudio, -#tray { - margin: 0 5px; - padding: 0 2px; -} - -#idle_inhibitor.activated { - background-color: @green; -} - -#battery.charging { - color: @green; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: black; - } -} - -#battery.warning:not(.charging) { - color: white; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#window, -#workspaces { - margin: 0 4px; -} - -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#network.disconnected { - background-color: @red; -} - -#temperature.critical { - background-color: @red; -} - -/* ========================================================= - * Notifications - * ========================================================= */ -#custom-notifications { - margin: 0 4px; - padding: 0 4px; - min-width: 0; -} - -#custom-notifications.empty { - color: @overlay1; -} -#custom-notifications.unread { - color: @yellow; -} - -/* ========================================================= - * Hyprscroll overflow indicator (custom/workspaces_content) - * States: .ok, .overflow, .error - * ========================================================= */ - -/* Default (no overflow): subtle pill, still hoverable for tooltip */ -#custom-workspaces_content.ok { - padding: 0px 1px; +

+* — Custom Hyprscroll indicator — * +#custom-workspacescontent { + padding: 0 1px; min-width: 80px; + background: transparent; + color: @text; + border: 2px solid @inactive; + border-radius: 10px; +} +

+ +

+* Default (no overflow) * +#custom-workspacescontent.ok { color: @subtext1; - border-radius: 10px; - - /* subtle outline so you know it's there */ - border: 1px solid rgba(255, 255, 255, 0.12); - background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255,255,255,0.12); + background: rgba(255,255,255,0.03); } +

-/* Make it feel interactive (hover) */ -#custom-workspaces_content.ok:hover { +

+#custom-workspacescontent.ok:hover { color: @text; background-color: @surface1; - border: 1px solid rgba(255, 255, 255, 0.18); + border: 1px solid rgba(255,255,255,0.18); } +

-/* Overflow state: you already have this; keep it. - Optional: add hover tweak so it "pops" a bit. */ -#custom-workspaces_content.overflow:hover { +

+* Overflow state * +#custom-workspacescontent.overflow { + font-weight: bold; + border: 1px dashed transparent; background: - linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1)) - padding-box, + linear-gradient(rgba(255,255,255,0.05), rgba(255,255,255,0.05)) padding-box, linear-gradient(45deg, @blue, @green) border-box; } +

-/* Error state: clear but not screaming */ -#custom-workspaces_content.error { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; - - border: 1px solid rgba(255, 0, 0, 0.55); - background: rgba(255, 0, 0, 0.15); - font-weight: bold; +

+#custom-workspacescontent.overflow:hover { + background: + linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1)) padding-box, + linear-gradient(45deg, @blue, @green) border-box; } +

-/* Optional: if you keep .hidden in the script for any reason */ -#custom-workspaces_content.hidden { +

+* Error state * +#custom-workspacescontent.error { + font-weight: bold; + border: 1px solid rgba(255,0,0,0.55); + background: rgba(255,0,0,0.15); +} +

+ +

+* Hidden state * +#custom-workspacescontent.hidden { padding: 0; margin: 0; min-width: 0; @@ -3616,20 +3490,66 @@ window#waybar { background: transparent; opacity: 0; } +

+

+* — Right modules spacing — * +#clock, +#idleinhibitor, +#battery, +#network, +#pulseaudio, +#tray { + margin: 0 5px; + padding: 0 2px; +} +

+

+* States * +#idleinhibitor.activated { + background-color: @green; +} +

+ +

+#battery.charging { + color: @green; +} +

+ +

+#network.disconnected { + background-color: @red; +} +

+ +

+* Blinking for low battery * +@keyframes blink { + to { background-color: #fff; color: black; } +} +

+ +

+#battery.warning:not(.charging) { + color: white; + animation: blink 0.5s linear infinite alternate; +} +

+ +

+* Generic custom modules * [id^="custom-"] { padding: 0 4px; - overflow: visible; text-align: center; } - +#+ENDSRC +

-
-
-
-

.config/waybar/scripts/bluetooth-status.sh

-
+
+

.config/waybar/scripts/bluetooth-status.sh

+

These are config files for waybar

@@ -3655,9 +3575,9 @@ printf '{"text": "%s", "tooltip": "%s"}\n' "$icon" "$tooltip"
-
-

.config/waybar/scripts/hyprscroll-overflow.sh

-
+
+

.config/waybar/scripts/hyprscroll-overflow.sh

+

These are config files for waybar

@@ -3681,9 +3601,9 @@ fi
-
-

.config/waybar/scripts/hyprscroll-menu.sh

-
+
+

.config/waybar/scripts/hyprscroll-menu.sh

+

These are config files for waybar

@@ -3700,9 +3620,9 @@ hyprctl dispatch focuswindow address:$addr
-
-

.config/waypaper/config.ini

-
+
+

.config/waypaper/config.ini

+

These are config files for waypaper

@@ -3739,9 +3659,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
-
-

generated/modules/traveldroid/desktop/wayland.nix

-
+
+

generated/modules/traveldroid/desktop/wayland.nix

+
{ lib, config, pkgs, ... }:
 
@@ -3771,9 +3691,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
 
-
-

generated/modules/traveldroid/desktop/xdg.nix

-
+
+

generated/modules/traveldroid/desktop/xdg.nix

+

This sets the XDG implementation

@@ -3827,13 +3747,13 @@ in
-
-

generated/modules/traveldroid/system

-
+
+

generated/modules/traveldroid/system

+
-
-

generated/modules/traveldroid/system/audio.nix

-
+
+

generated/modules/traveldroid/system/audio.nix

+
{ lib, config, pkgs, ... }:
 
@@ -3851,9 +3771,9 @@ in
 
-
-

generated/modules/traveldroid/system/bluetooth.nix

-
+
+

generated/modules/traveldroid/system/bluetooth.nix

+
{ lib, config, pkgs, home-manager, ... }:
 
@@ -3874,9 +3794,9 @@ in
 
-
-

generated/modules/traveldroid/system/dbus.nix

-
+
+

generated/modules/traveldroid/system/dbus.nix

+

This sets the dbus implementation

@@ -3903,9 +3823,9 @@ This sets the dbus implementation
-
-

generated/modules/traveldroid/system/login-tuigreet.nix

-
+
+

generated/modules/traveldroid/system/login-tuigreet.nix

+

This sets up tuigreeter which is not fancy but imo fits the aesthetic I am aiming for

@@ -3959,9 +3879,9 @@ in
-
-

generated/modules/traveldroid/system/networking.nix

-
+
+

generated/modules/traveldroid/system/networking.nix

+

This sets the networking.

@@ -4024,9 +3944,9 @@ This sets the networking.
-
-

generated/modules/traveldroid/system/nix.nix

-
+
+

generated/modules/traveldroid/system/nix.nix

+
{ lib, config, ... }:
 
@@ -4042,9 +3962,9 @@ This sets the networking.
 
-
-

generated/modules/traveldroid/system/printing.nix

-
+
+

generated/modules/traveldroid/system/printing.nix

+

This sets the dbus implementation

@@ -4069,13 +3989,13 @@ This sets the dbus implementation
-
-

generated/users

-
+
+

generated/users

+
-
-

generated/users/henrov.nix

-
+
+

generated/users/henrov.nix

+

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

@@ -4133,9 +4053,9 @@ in

These are all the prepared config files

-
-

.config/waybar/style.css

-
+
+

.config/waybar/style.css

+

These are config files for .config/waybar

@@ -4369,9 +4289,9 @@ window#waybar {
-
-

.config/waypaper/config.ini

-
+
+

.config/waypaper/config.ini

+

These are config files for .config/waypaper

@@ -4408,9 +4328,9 @@ keybindings = ~/.config/waypaper/keybindings.ini
-
-

.config/zed/settings.json

-
+
+

.config/zed/settings.json

+

These are config files for .config/zed

@@ -4450,7 +4370,7 @@ These are config files for .config/zed

Author: Henro Veijer

-

Created: 2026-04-02 do 21:22

+

Created: 2026-04-02 do 21:27

Validate

diff --git a/Droidnix/README.org b/Droidnix/README.org index 5a45e97ff..79f46bea7 100644 --- a/Droidnix/README.org +++ b/Droidnix/README.org @@ -2661,8 +2661,6 @@ These are config files for waybar "layer": "top", "height": 34, - //"modules-left": ["hyprland/window"], - "modules-center": [ "custom/workspaces_content" ], @@ -2672,15 +2670,10 @@ These are config files for waybar "pulseaudio", "network", "custom/bluetooth", - /* - "cpu", - "memory", - "temperature", - */ "battery", "tray", - "clock", - ], + "clock" + ], "custom/workspaces_content": { "exec": "~/.config/waybar/scripts/hyprscroll-overflow.sh", @@ -2691,56 +2684,28 @@ These are config files for waybar "tooltip": true }, - /* - "custom/notifications": { - "tooltip": false, - "return-type": "json", - "exec-if": "which swaync-client", - "exec": "swaync-client -swb", - "format": "{icon}", - "format-icons": { - "notification": "", - "none": "", - "dnd-notification": "󰂠", - "dnd-none": "󰪓", - }, - "on-click": "swaync-client -t", - "on-click-right": "swaync-client -d", - "on-click-middle": "swaync-client -dn", - }, -*/ - "idle_inhibitor": { "tooltip": true, "format": "{icon}", "format-icons": { "activated": "  ", - "deactivated": " 󰒲 ", - }, - "tooltip-format-activated": "Staying awake", - "tooltip-format-deactivated": "Might sleep....", + "deactivated": " 󰒲 " + } }, "pulseaudio": { "format": "{volume}% {icon}", - "format-bluetooth": "{volume}% {icon}", "format-muted": "", "format-icons": { - "headphones": "", - "headset": "", - "phone": "", - "portable": "", - "default": ["", ""], + "default": ["", ""] }, - "on-click": "pavucontrol", + "on-click": "pavucontrol" }, "network": { "format-wifi": " ({bandwidthDownBits})", "format-ethernet": " ({bandwidthDownBits})", "format-disconnected": "Disconnected ⚠", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}", "on-click": "nm-connection-editor" }, @@ -2752,245 +2717,120 @@ These are config files for waybar "format": "{}" }, - "cpu": { - "format": "{usage}%  ", - "tooltip": false, - }, - - "memory": { - "format": "{percentage}%  ", - }, - - "temperature": { - "format": "{temperatureC}°C ", - "tooltip": false, - }, - "tray": { "spacing": 10, - "icon-size": 14, + "icon-size": 14 }, "clock": { "format": "{:%a, %d %b %Y - %H:%M}", - "tooltip": false, - "on-click": "flatpak run eu.betterbird.Betterbird -calendar", + "tooltip": false }, "battery": { "bat": "BAT0", - "states": { - "good": 95, - "warning": 30, - "critical": 15, - }, "format": "{capacity}% {icon}", "format-charging": "{capacity}% 󰂄", - "format-plugged": "{capacity}%  ", - "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "], - }, + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "] + } } #+END_SRC ** =.config/waybar/style.css= This file contains all css for waybar #+BEGIN_SRC css :tangle generated/.config/waybar/config :noweb yes :mkdirp yes :eval never -/* --- Hyprland palette (ported) --- */ -@define-color base rgba(30, 30, 46, 1.0); /* 1e1e2eff */ -@define-color inactive rgba(89, 89, 89, 0.667); /* 595959aa */ -@define-color blue rgba(51, 204, 255, 0.933); /* 33ccffee */ -@define-color green rgba(0, 255, 153, 0.933); /* 00ff99ee */ +/* --- Hyprland palette --- */ +@define-color base rgba(30, 30, 46, 1.0); +@define-color inactive rgba(89, 89, 89, 0.667); +@define-color blue rgba(51, 204, 255, 0.933); +@define-color green rgba(0, 255, 153, 0.933); +@define-color text rgba(255, 255, 255, 1.0); +@define-color surface1 rgba(255, 255, 255, 0.08); +@define-color subtext1 rgba(255, 255, 255, 0.35); +@define-color red rgba(255, 0, 0, 0.90); +@define-color overlay1 rgba(255, 255, 255, 0.35); +@define-color yellow rgba(255, 215, 0, 0.95); -/* extra colors you referenced but didn’t define */ -@define-color text rgba(255, 255, 255, 1.0); -@define-color surface1 rgba(255, 255, 255, 0.08); -@define-color subtext1 rgba(255, 255, 255, 0.35); -@define-color red rgba(255, 0, 0, 0.90); -@define-color overlay1 rgba(255, 255, 255, 0.35); -@define-color yellow rgba(255, 215, 0, 0.95); - - * { - font-family: - Aporetic Sans Mono, - FiraCode Nerd Font, - Iosevka Nerd Font, - Roboto, - Helvetica, - Arial, - sans-serif; +/* --- Base font --- */ +* { + font-family: Aporetic Sans Mono, Iosevka Nerd Font, Roboto, Helvetica, Arial, sans-serif; font-size: 13px; } window#waybar { - background-color: transparent; + background: transparent; color: @text; - transition-property: background-color; - border-bottom: 0px solid rgba(0, 0, 0, 0); - transition-duration: 0.5s; + transition: background-color 0.5s; } -#custom-workspaces_content { - padding: 0px 1px; +/* --- Workspaces buttons --- */ +#workspaces button { + padding: 0 1px; min-width: 80px; - background-color: transparent; + background: transparent; color: @text; border: 2px solid @inactive; border-radius: 10px; } -#custom-workspaces_content.active { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; +#workspaces button:hover { + background-color: @surface1; +} + +#workspaces button.active { font-weight: bold; border: 1px solid transparent; background: - linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15)) padding-box, + linear-gradient(rgba(255,255,255,0.15), rgba(255,255,255,0.15)) padding-box, linear-gradient(45deg, @blue, @green) border-box; } -#custom-notifications.empty { - color: @overlay1; -} - -#custom-notifications.unread { - color: @yellow; -} - -#workspaces button:hover { - background-color: @surface1; - color: @text; -} - -#custom-bluetooth { - display: inline-block; - width: 4ch; /* width in character units */ - text-align: center; - overflow: visible; /* width in character units */ - white-space: nowrap; -} - -#clock, -#idle_inhibitor, -#battery, -#cpu, -#memory, -#temperature, -#network, -#pulseaudio, -#tray { - margin: 0 5px; - padding: 0 2px; -} - -#idle_inhibitor.activated { - background-color: @green; -} - -#battery.charging { - color: @green; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: black; - } -} - -#battery.warning:not(.charging) { - color: white; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#window, -#workspaces { - margin: 0 4px; -} - -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#network.disconnected { - background-color: @red; -} - -#temperature.critical { - background-color: @red; -} - -/* ========================================================= - * Notifications - * ========================================================= */ -#custom-notifications { - margin: 0 4px; - padding: 0 4px; - min-width: 0; -} - -#custom-notifications.empty { - color: @overlay1; -} -#custom-notifications.unread { - color: @yellow; -} - -/* ========================================================= - * Hyprscroll overflow indicator (custom/workspaces_content) - * States: .ok, .overflow, .error - * ========================================================= */ - -/* Default (no overflow): subtle pill, still hoverable for tooltip */ -#custom-workspaces_content.ok { - padding: 0px 1px; +/* --- Custom Hyprscroll indicator --- */ +#custom-workspaces_content { + padding: 0 1px; min-width: 80px; - color: @subtext1; + background: transparent; + color: @text; + border: 2px solid @inactive; border-radius: 10px; - - /* subtle outline so you know it's there */ - border: 1px solid rgba(255, 255, 255, 0.12); - background: rgba(255, 255, 255, 0.03); } -/* Make it feel interactive (hover) */ +/* Default (no overflow) */ +#custom-workspaces_content.ok { + color: @subtext1; + border: 1px solid rgba(255,255,255,0.12); + background: rgba(255,255,255,0.03); +} + #custom-workspaces_content.ok:hover { color: @text; background-color: @surface1; - border: 1px solid rgba(255, 255, 255, 0.18); + border: 1px solid rgba(255,255,255,0.18); } -/* Overflow state: you already have this; keep it. - Optional: add hover tweak so it "pops" a bit. */ -#custom-workspaces_content.overflow:hover { +/* Overflow state */ +#custom-workspaces_content.overflow { + font-weight: bold; + border: 1px dashed transparent; background: - linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1)) - padding-box, + linear-gradient(rgba(255,255,255,0.05), rgba(255,255,255,0.05)) padding-box, linear-gradient(45deg, @blue, @green) border-box; } -/* Error state: clear but not screaming */ -#custom-workspaces_content.error { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; - - border: 1px solid rgba(255, 0, 0, 0.55); - background: rgba(255, 0, 0, 0.15); - font-weight: bold; +#custom-workspaces_content.overflow:hover { + background: + linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1)) padding-box, + linear-gradient(45deg, @blue, @green) border-box; } -/* Optional: if you keep .hidden in the script for any reason */ +/* Error state */ +#custom-workspaces_content.error { + font-weight: bold; + border: 1px solid rgba(255,0,0,0.55); + background: rgba(255,0,0,0.15); +} + +/* Hidden state */ #custom-workspaces_content.hidden { padding: 0; margin: 0; @@ -3000,10 +2840,43 @@ window#waybar { opacity: 0; } +/* --- Right modules spacing --- */ +#clock, +#idle_inhibitor, +#battery, +#network, +#pulseaudio, +#tray { + margin: 0 5px; + padding: 0 2px; +} +/* States */ +#idle_inhibitor.activated { + background-color: @green; +} + +#battery.charging { + color: @green; +} + +#network.disconnected { + background-color: @red; +} + +/* Blinking for low battery */ +@keyframes blink { + to { background-color: #fff; color: black; } +} + +#battery.warning:not(.charging) { + color: white; + animation: blink 0.5s linear infinite alternate; +} + +/* Generic custom modules */ [id^="custom-"] { padding: 0 4px; - overflow: visible; text-align: center; } #+END_SRC diff --git a/Droidnix/generated/.config/waybar/config b/Droidnix/generated/.config/waybar/config index 7acca528d..302d93717 100644 --- a/Droidnix/generated/.config/waybar/config +++ b/Droidnix/generated/.config/waybar/config @@ -2,8 +2,6 @@ "layer": "top", "height": 34, - //"modules-left": ["hyprland/window"], - "modules-center": [ "custom/workspaces_content" ], @@ -13,15 +11,10 @@ "pulseaudio", "network", "custom/bluetooth", - /* - "cpu", - "memory", - "temperature", - */ "battery", "tray", - "clock", - ], + "clock" + ], "custom/workspaces_content": { "exec": "~/.config/waybar/scripts/hyprscroll-overflow.sh", @@ -32,56 +25,28 @@ "tooltip": true }, - /* - "custom/notifications": { - "tooltip": false, - "return-type": "json", - "exec-if": "which swaync-client", - "exec": "swaync-client -swb", - "format": "{icon}", - "format-icons": { - "notification": "", - "none": "", - "dnd-notification": "󰂠", - "dnd-none": "󰪓", - }, - "on-click": "swaync-client -t", - "on-click-right": "swaync-client -d", - "on-click-middle": "swaync-client -dn", - }, -*/ - "idle_inhibitor": { "tooltip": true, "format": "{icon}", "format-icons": { "activated": "  ", - "deactivated": " 󰒲 ", - }, - "tooltip-format-activated": "Staying awake", - "tooltip-format-deactivated": "Might sleep....", + "deactivated": " 󰒲 " + } }, "pulseaudio": { "format": "{volume}% {icon}", - "format-bluetooth": "{volume}% {icon}", "format-muted": "", "format-icons": { - "headphones": "", - "headset": "", - "phone": "", - "portable": "", - "default": ["", ""], + "default": ["", ""] }, - "on-click": "pavucontrol", + "on-click": "pavucontrol" }, "network": { "format-wifi": " ({bandwidthDownBits})", "format-ethernet": " ({bandwidthDownBits})", "format-disconnected": "Disconnected ⚠", - "tooltip-format-wifi": "{essid} ({signalStrength}%)", - "tooltip-format-ethernet": "{ifname}: {ipaddr}/{cidr}", "on-click": "nm-connection-editor" }, @@ -93,253 +58,20 @@ "format": "{}" }, - "cpu": { - "format": "{usage}%  ", - "tooltip": false, - }, - - "memory": { - "format": "{percentage}%  ", - }, - - "temperature": { - "format": "{temperatureC}°C ", - "tooltip": false, - }, - "tray": { "spacing": 10, - "icon-size": 14, + "icon-size": 14 }, "clock": { "format": "{:%a, %d %b %Y - %H:%M}", - "tooltip": false, - "on-click": "flatpak run eu.betterbird.Betterbird -calendar", + "tooltip": false }, "battery": { "bat": "BAT0", - "states": { - "good": 95, - "warning": 30, - "critical": 15, - }, "format": "{capacity}% {icon}", "format-charging": "{capacity}% 󰂄", - "format-plugged": "{capacity}%  ", - "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "], - }, -} - -/* --- Hyprland palette (ported) --- */ -@define-color base rgba(30, 30, 46, 1.0); /* 1e1e2eff */ -@define-color inactive rgba(89, 89, 89, 0.667); /* 595959aa */ -@define-color blue rgba(51, 204, 255, 0.933); /* 33ccffee */ -@define-color green rgba(0, 255, 153, 0.933); /* 00ff99ee */ - -/* extra colors you referenced but didn’t define */ -@define-color text rgba(255, 255, 255, 1.0); -@define-color surface1 rgba(255, 255, 255, 0.08); -@define-color subtext1 rgba(255, 255, 255, 0.35); -@define-color red rgba(255, 0, 0, 0.90); -@define-color overlay1 rgba(255, 255, 255, 0.35); -@define-color yellow rgba(255, 215, 0, 0.95); - - * { - font-family: - Aporetic Sans Mono, - FiraCode Nerd Font, - Iosevka Nerd Font, - Roboto, - Helvetica, - Arial, - sans-serif; - font-size: 13px; -} - -window#waybar { - background-color: transparent; - color: @text; - transition-property: background-color; - border-bottom: 0px solid rgba(0, 0, 0, 0); - transition-duration: 0.5s; -} - -#custom-workspaces_content { - padding: 0px 1px; - min-width: 80px; - background-color: transparent; - color: @text; - border: 2px solid @inactive; - border-radius: 10px; -} - -#custom-workspaces_content.active { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; - font-weight: bold; - border: 1px solid transparent; - background: - linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15)) padding-box, - linear-gradient(45deg, @blue, @green) border-box; -} - -#custom-notifications.empty { - color: @overlay1; -} - -#custom-notifications.unread { - color: @yellow; -} - -#workspaces button:hover { - background-color: @surface1; - color: @text; -} - -#custom-bluetooth { - display: inline-block; - width: 4ch; /* width in character units */ - text-align: center; - overflow: visible; /* width in character units */ - white-space: nowrap; -} - -#clock, -#idle_inhibitor, -#battery, -#cpu, -#memory, -#temperature, -#network, -#pulseaudio, -#tray { - margin: 0 5px; - padding: 0 2px; -} - -#idle_inhibitor.activated { - background-color: @green; -} - -#battery.charging { - color: @green; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: black; - } -} - -#battery.warning:not(.charging) { - color: white; - animation-name: blink; - animation-duration: 0.5s; - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; -} - -#window, -#workspaces { - margin: 0 4px; -} - -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#network.disconnected { - background-color: @red; -} - -#temperature.critical { - background-color: @red; -} - -/* ========================================================= - * Notifications - * ========================================================= */ -#custom-notifications { - margin: 0 4px; - padding: 0 4px; - min-width: 0; -} - -#custom-notifications.empty { - color: @overlay1; -} -#custom-notifications.unread { - color: @yellow; -} - -/* ========================================================= - * Hyprscroll overflow indicator (custom/workspaces_content) - * States: .ok, .overflow, .error - * ========================================================= */ - -/* Default (no overflow): subtle pill, still hoverable for tooltip */ -#custom-workspaces_content.ok { - padding: 0px 1px; - min-width: 80px; - color: @subtext1; - border-radius: 10px; - - /* subtle outline so you know it's there */ - border: 1px solid rgba(255, 255, 255, 0.12); - background: rgba(255, 255, 255, 0.03); -} - -/* Make it feel interactive (hover) */ -#custom-workspaces_content.ok:hover { - color: @text; - background-color: @surface1; - border: 1px solid rgba(255, 255, 255, 0.18); -} - -/* Overflow state: you already have this; keep it. - Optional: add hover tweak so it "pops" a bit. */ -#custom-workspaces_content.overflow:hover { - background: - linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1)) - padding-box, - linear-gradient(45deg, @blue, @green) border-box; -} - -/* Error state: clear but not screaming */ -#custom-workspaces_content.error { - padding: 0px 1px; - min-width: 80px; - color: @text; - border-radius: 10px; - - border: 1px solid rgba(255, 0, 0, 0.55); - background: rgba(255, 0, 0, 0.15); - font-weight: bold; -} - -/* Optional: if you keep .hidden in the script for any reason */ -#custom-workspaces_content.hidden { - padding: 0; - margin: 0; - min-width: 0; - border: 0; - background: transparent; - opacity: 0; -} - - -[id^="custom-"] { - padding: 0 4px; - overflow: visible; - text-align: center; + "format-icons": ["󰁺", "󰁼", "󰁾", "󰂀", "󱈏 "] + } }