Hyprland+Waybar: kann man Workspace "1" in "1: Firefox" umbenennen?

D.S.i.u.S.

Lt. Commander
Registriert
Feb. 2003
Beiträge
1.038
Moin
Ich spiele etwas mit Hyprland und Waybar rum und komme nicht weiter. Vielleicht weiß es jemand zufällig, ob man Workspace Nummern 0-9 in Namen umbenennen kann?

Ich hatte zuerst mit Sway WM mit --unsupported-gpu(Nvidia GPU) gespielt(gebastelt) und da bin ich weiter gekommen als mit Hyprland.
In Sway kann man Workspace z.B. in "1:Firefox" umbenennen. In Hyprland+Waybar bekomme ich trotz Hyprland Wiki und KI es nicht hin.
Ich muss noch zusätzlich Hyprland und Waybar conf in Nix übersetzen.
 
Irgendwas übersehe ich. Ich habe immer noch "1" statt "Firefox" in Waybar stehen. In Sway war es viel einfacher.
Ich habe zum Testen nicht viel für Waybar in hyprland-hm.nix stehen:
Bash:
 # Waybar
  programs.waybar = {
    enable = true; 
    style = ''
      /* Grundlegendes Styling für die gesamte Waybar */
      #waybar {
        background: #282828;     
        font-family: "Noto Sans", "JetBrainsMono Nerd Font Propo", monospace;
        font-size: 16px;
        color: #D5C4A1;
      }
      /* Hintergrundfarbe für die Module rechts anpassen */
      .modules-right > * {
        background: #282828;
        padding: 0px 10px;
        font-size: 16px;
      }
      #workspaces button {
        background-color: #282828;
        color: #D5C4A1;
        padding: 0 10px;
        margin: 0 2px;     
      }
      #workspaces button.active {
        background-color: #282828;
        color: #B8BB26;
      }
      /* Modul-Farben anpassen */
      #clock {
        background-color: #282828;
        color: #D5C4A1;
        padding: 0 10px;     
      }
      #network {
        background-color: #282828;
        color: #D5C4A1;
        padding: 0 10px;
      }
      #pulseaudio {
        background-color: #282828;
        color: #D5C4A1;
        padding: 0 10px;
      }
      /* Das "disconnected" Netzwerk-Symbol rot färben */
      #network.disconnected {
        color: #e06c75;
      }
    '';

    settings = {
      main = {
        layer = "top";
        position = "bottom";
        modules-left = [ "hyprland/workspaces" ];
        modules-right = [ "tray" "network" "pulseaudio" "clock" ];
      };
      "hyprland/workspaces" = {
        format = "{name}";
        names = {
          "1" = "Firefox";
          "2" = "Dateien";
          "3" = "3";
          "4" = "4";
          "5" = "5";
          "6" = "6";
          "7" = "7";
          "8" = "8";
          "9" = "9";
          "10" = "10";
        };
        persistent-workspaces = {
          "*" = 10;
        };
        };

      network = {
        interface = "enp12s0";
        format-ethernet = "{icon}";
        format-icons = [ "󰌙" "󰌘" ];
        format = "{icon}";
        format-linked = "󰌘 ";
        format-disconnected = "󰌙";
        tooltip-format-ethernet = "LAN verbunden ({ifname})";
        tooltip-format-disconnected = "Keine LAN-Verbindung";
      };
      pulseaudio = {
        format = "";
        format-muted = "󰝟";
        tooltip = false;
      };
    };
  };
Style(CSS) funktioniert, aber ich sehe keine Nerd Font Icons, obwohl die installiert sind.
 

Anhänge

  • screenshot_1754666683.png
    screenshot_1754666683.png
    628 KB · Aufrufe: 63
Also, in der hyprland.conf schreibst du für deine workspaces das (hab ich oberhalb der binds stehen):
Code:
workspace = 1, defaultName:A
workspace = 2, defaultName:B
workspace = 3, defaultName:C

In deiner waybar config.jsonc schreibst du folgendes:
JSON:
    // Modules configuration
    "hyprland/workspaces": {
        "disable-scroll": true,
        "all-outputs": true,
        "warp-on-scroll": false,
        "format": "{icon} {name}",
        "format-icons": {
            "urgent": "",
            "focused": "",
            "default": ""
        }
    },

Ergebnis:
2025-08-09-081206_hyprshot.png


von dem Nix-Kram habe ich zilch Ahnung ...

One more: Du siehst keine Icons, weil du keine anzeigst :D

format="{name}" bei dir vs "format": "{icon} {name}" bei mir
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: D.S.i.u.S.
@frabron Du bist mein Retter.
Die Lösung war so nah und einfach.
defaultName war der Schlüssel zum Erfolg. Hyprland verwendet defaultName, nicht name, um den Namen zu definieren, den Waybar erwartet.

Ich habe
"1, name:1:Firefox, monitor:DP-4, default:true"
statt

"1, defaultName:1:Firefox, monitor:DP-4, default:true"
gehabt.

Waybar config war richtig. Ich brauche keine Icons/Symbole in WorkspaceNamen.
Aber ich sehe keine Nerd Fonts Symbole für Network und pulseaudio. (Siehe Screenshot)
2025-08-09T12.png


NIX Lang und Hyprland Config Lang sind ähnlich

Screenshot_20250726-095032__01.jpg
 
Zuletzt bearbeitet:
Ist zwar Off-Topic, aber vielleicht hat jemand später dasselbe Problem.
Ich habe das Problem mit fehlenden Nerd Font Symbolen gelöst.
NixOS hat trotz Syntaxfehler neue Konfiguration nach rebuild erstellt und auch chatGPT oder Gemini hat den Syntaxfehler nicht gesehen.

Eine schließende geschweifte Klammer "}" von main war an falscher Stelle.
NGINX:
settings = {
      main = {
        layer = "top";
        position = "bottom";
      # modules-left = [ "tray" "network" "pulseaudio" "clock" ];
        modules-center = [ "hyprland/workspaces" "tray" "network" "pulseaudio" "clock" ];
      # modules-right = [ "tray" "network" "pulseaudio" "clock" ];
       
        # }; <-- stand HIER
       
      "hyprland/workspaces" = {
        format = "{name}";
        format-names = {
          blabla
        };
        };
      "network" = {
        blabla
      };
      "pulseaudio" = {              
      blabla      
      };
      "tray" = {
                blabla
              };
              }; # <--- musste HIER stehen
};
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: netzgestaltung und frabron
Ich bin auf etwas Neues gestoßen. Wenn ich "hyprland/workspaces" Konfiguration in Waybar conf deaktiviere, habe ich trotzdem alle meine umbenannten Workspaces.

Jetzt ist die Frage, wozu das ganze noch mal konfigurieren, wenn alles unter workspace in hyprland conf definiert wird? Ist es vielleicht wegen Symbolen/Icons?

Oder anders gesagt: Es spielt keine Rolle was unter "hyprland/workspaces" Waybar Einstellungen steht.

NGINX:
# Waybar
  programs.waybar = {
    enable = true;
    style = ''
      /* Grundlegendes Styling für die gesamte Waybar */
      #waybar {      
        background: #282C34;      
        font-family: "Fira Code", "Noto Sans", "Symbols Nerd Font", monospace;
        font-weight: 600;
        font-size: 16px;
        color: #D2E3FD;
      }    
      #workspaces button {
        background-color: #282C34;
        color: #D2E3FD;
        padding: 0 10px;              
      }
      #workspaces button.active {
        background-color: #282C34;
        color: #98C379;
      }
      /* Modul-Farben anpassen */
      #clock {
        background-color: #282C34;
        color: #D2E3FD;
        padding: 0 10px;
       }      
      #network {
        background-color: #282C34;
        color: #D2E3FD;
        padding: 0 10px;
      }
      #pulseaudio {
        background-color: #282C34;
        color: #D2E3FD;
        padding: 0 10px;
        font-size: 16px;
      }
      /* Das "disconnected" Netzwerk-Symbol rot färben */
      #network.disconnected {
        color: #e06c75;
      }
      /* "muted" 0% rot färben */
      #pulseaudio.muted {
          color: #e06C75;
      }
    '';
    settings = {
      main = {
        layer = "top";
        position = "bottom";
        height = 30;    
        modules-center = [ "hyprland/workspaces" "tray" "pulseaudio" "clock" "network" ];    
     
    #  "hyprland/workspaces" = {
    #   format = "{name}";
    #   format-names = {
    #     "1" = "1:Firefox";
    #      "2" = "2:Dateien";
    #      "3" = "3:Bilder";
    #      "4" = "4:NIX";
    #      "5" = "5";
    #      "6" = "6:Chat";
    #      "7" = "7:Bild-im-Bild";
    #      "8" = "8";
    #      "9" = "9";
    #      "10" = "10";
    #    };
    #    };

      "network" = {
        interface = "enp12s0";
        format-ethernet = "{icon}";
     #   format-icons = [ "" "󰌙" ];
        format = "{icon}";
        format-linked = "";
        format-disconnected = "󰌙";
        tooltip-format-ethernet = "LAN verbunden ({ifname})";
        tooltip-format-disconnected = "Keine LAN-Verbindung";
      };
      "pulseaudio" = {
        format = "{volume}%";              
      #  format = "{icon}";
      #  format-icons = [ "" "" ];        
        format-muted = "0%";      
        on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
        tooltip = false;
        scroll-step = 5;      
      };
      "tray" = {
                icon-size = 20;
                spacing = 10;
              };
     #  "clock" = {                                      
     #            interval = 2;
     #            tooltip = false;
     #            on-click = "${pkgs.gsimplecal}/bin/gsimplecal";
     #            };
     "clock" = {
           format = "{:%H:%M} ";                  
           tooltip-format = "<tt><big>{calendar}</big></tt>";                    
           calendar = {
              mode = "year";
               mode-mon-col = 3;
               weeks-pos = "left";
               on-scroll = 1;
               format = {
               months = "<span color='#ffead3'><b>{}</b></span>";
               days = "<span color='#ABB2BF'><b>{}</b></span>";
               weeks = "<span color='#98C379'><b>{}</b></span>";
               weekdays = "<span color='#ffcc66'><b>{}</b></span>";
               today = "<span color='#ff6699'><b><u>{}</u></b></span>";
                   };
                 };
                   
             actions = {
                 on-click-right = "mode";                        
                 on-scroll-up = "shift_up";
                 on-scroll-down = "shift_down";
                 on-click = "shift";
                           };
                         };            
              };
    };
};
NGINX:
  # Hyprland-Fenstermanager
 wayland.windowManager.hyprland = {
  enable = true;
  systemd.enable = true;
    systemd.variables = ["--all"];
      package = null;
      portalPackage = null;
      settings = {  
      debug = {
      disable_logs = false;
      };
      monitor = [
      "DP-4,1920x1080@144,0x0,1"
      "HDMI-A-2,1920x1080@60,0x-1080,1"
    ];
    env = [
      "XDG_SCREENSHOTS_DIR,$HOME/Bilder/Bildschirmfotos"
    ];

  ####################
    # KEYBINDINGSS #
  ####################

    "$mod" = "SUPER";

    bind = [
      "$mod, Return, exec, kitty"
      "$mod, D, exec, wofi --show drun"
      "CTRL, Q, killactive" # Fenster schließen mit Super+Q
      "$mod, P,exec, grim -g \"$(slurp)\" ~/Bilder/Bildschirmfotos/screenshot_$(date +%s).png"
      "$mod, ESCAPE, exec, wlogout"
      "$mod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy"
      "$mod, F, fullscreen, 0"
      "$mod SHIFT, F, fullscreen, 1"
      "$mod, B, exec, firefox"
      "$mod, N, exec, nemo"

       # screenshot
        # area
        ", Print, exec, ${"grimblast"} --notify copysave area"
        "$mod SHIFT, R, exec, ${"grimblast"} --notify copysave area"

        # current screen
        "CTRL, Print, exec, ${"grimblast"} --notify --cursor copysave output"
        "$mod SHIFT CTRL, R, exec, ${"grimblast"} --notify --cursor copysave output"

        # all screens
        "ALT, Print, exec, ${"grimblast"} --notify --cursor copysave screen"
        "$mod SHIFT ALT, R, exec, ${"grimblast"} --notify --cursor copysave screen"

        # Switch workspaces with $mod + [numpad 1-9]
        "$mod, KP_End, workspace, 1"
        "$mod, KP_Down, workspace, 2"
        "$mod, KP_Next, workspace, 3"
        "$mod, KP_Left, workspace, 4"
        "$mod, KP_Begin, workspace, 5"
        "$mod, KP_Right, workspace, 6"
        "$mod, KP_Home, workspace, 7"
        "$mod, KP_Up, workspace, 8"
        "$mod, KP_Prior, workspace, 9"

        # Move active window to a workspace with $mod + SHIFT + [0-9]
        "$mod ALT, KP_End, movetoworkspace, 1"
        "$mod ALT, KP_Down, movetoworkspace, 2"
        "$mod ALT, KP_Next, movetoworkspace, 3"
        "$mod ALT, KP_Left, movetoworkspace, 4"
        "$mod ALT, KP_Begin, movetoworkspace, 5"
        "$mod ALT, KP_Right, movetoworkspace, 6"
        "$mod ALT, KP_Home, movetoworkspace, 7"
        "$mod ALT, KP_Up, movetoworkspace, 8"
        "$mod ALT, KP_Prior, movetoworkspace, 9"

    ];
    # Mouse binding
    bindm = [
            "$mod, mouse:272, movewindow"
            "$mod, mouse:273, resizewindow"
          ];

  #################
    # AUTOSTART #
  #################

    exec-once = [
        "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
        "systemctl --user restart xdg-desktop-portal"
        "systemctl --user start hyprpolkitagent"      
        "wl-clip-persist --clipboard both &"
        "wl-paste --watch cliphist store &"
        "waybar"
        "firefox"
        "nemo"            
    ];
     workspace = [
        # Workspaces für den primären Monitor (DP-4)
        "1, defaultName:1:Firefox, monitor:DP-4, default:true"
        "2, defaultName:2:Dateien, monitor:DP-4, default:true"
        "3, defaultName:3:Bilder, monitor:DP-4"
        "4, defaultName:4:NIX,monitor:DP-4"
        "5, monitor:DP-4"
        # Workspaces für den sekundären Monitor (HDMI-A-2)
        "6, defaultName:6:Chat, monitor:HDMI-A-2"
        "7, defaultName:7:Bild-im-Bild, monitor:HDMI-A-2"
        "8, monitor:HDMI-A-2"
        "9, monitor:HDMI-A-2"
        "10, monitor:HDMI-A-2"
      ];

    windowrulev2 = [
      "workspace 1, class:^(firefox)$"
      "workspace 2, class:^(nemo)$"
      "workspace 3, class:^(eog)$"
      "workspace 4, class:^(VSCodium)$"
      "workspace 7, title:^(Bild-im-Bild)$"
    ];

    input = {
      kb_layout = "de";
    # Deaktiviert die Mausbeschleunigung
      accel_profile = "flat";
    # Die Mauszeigergeschwindigkeit: -1.0 bis 1.0
      sensitivity = 0.5;    
    };

    general = {
      gapse = 2;
      gaps_out = 0;
      border_size = 0;        
      layout = "dwindle";
    };  

    animations = {
      enabled = 0;
    };
  };
};
2025-08-13T14:50:09,444864169+02:00.png
 
Naja, ich schätze mal, es wird standardmäßig der Name des Workspaces aus Hyprland genommen, wenn nix weiter in deiner waybar config definiert ist. In der Standard-Konfig von waybar unter /etc/xdg/waybar/config.jsonc ist der Abschnitt zu den Workspaces ja auch auskommentiert ... von daher jetzt nicht sooo überaschend finde ich :)
 
  • Gefällt mir
Reaktionen: D.S.i.u.S.
Zurück
Oben