[NixOS] Mein Wechsel von Hyprland zu MangoWC – Ein Logbuch

D.S.i.u.S.

Lt. Commander
Registriert
Feb. 2003
Beiträge
1.045
Ich habe gestern(20.12.25) Hyprland durch Mango Wayland compositor unter NixOS ersetzt und möchte meine Erfahrungen nach und nach bis Polishing mit euch teilen.

Warum der Wechsel? Ich wollte etwas Neues und Schlankes ausprobieren. Mango hat viele Layouts und Tags neben Workspaces System. Ich werde auch versuchen, eine einfache Quickshell Leiste als Ersatz für Waybar zu basteln.
tile
scroller (PaperWM-like)
monocle (Fullscreen focused)
grid
deck
center_tile
vertical_tile
right_tile
vertical_scroller
vertical_grid
vertical_deck
tgmix (Tile grid mix)

Checkliste, die ich bis Polishing abarbeiten muss
[x] Grundinstallation (NixOS-Modul)
[x] App Launcher (fuzzel)
[ ] Monitor-Konfiguration
[ ] Tastenbelegungen (Keybindings)
[ ] Tastatur und Maus
[x] Tastaturlayout
[ ] XDG Desktop Portals
[x] Fonts
[x] Polkit-Integration
[ ] Environment Variables
[x] Wallpaper-Manager
[ ] Workspace oder Tag Rules
[x] Autostart
[ ] Idle-Management
[ ] Clipboard-Manager
[ ] Statusleiste
[x] Notification Daemon
[ ] Volume Control
[x] Animations
[x] Overview Settings

Vorbereitung:
Aliases für alle Shells in configuration.nix. Aliases machen alles einfacher. Kann man auch in tty nutzen. Ein Beispiel: nrs ist kürzer als sudo nixos-rebuild switch --flake /etc/nixos#pc. Ich nutze ein mal in der Woche nfu && nrs && shutdown

Bash:
# Aliases für alle Shells
 environment.shellAliases = {
 nfu = "sudo sh -c 'cd /etc/nixos && nix flake update'";
 nrs = "sudo nixos-rebuild switch --flake /etc/nixos#pc";
 nco = "sudo nano /etc/nixos/configuration.nix";
};
1. Hyprland deaktivieren (oder auskommentieren)
In configuration.nix programs.hyprland.enable = true; durch programs.mangowc.enable = true; ersetzen.
Command in services.greetd von hyprland auf mango ändern.
Bash:
 services.greetd = {
    enable = true;
    settings = {
      default_session = {
        # command = "${pkgs.tuigreet}/bin/tuigreet --cmd ${pkgs.hyprland}/bin/Hyprland --remember";
        command = "${pkgs.tuigreet}/bin/tuigreet --cmd mango --remember";
        user = "greeter";
          };
    };
  };
# security.pam.services.hyprland.enableGnomeKeyring = true;
in configuration.nix auskommentiert

2. mango.nix Home Manager Datei erstellen und flake anpassen:
sudo nano /etc/nixos/mango.nix
Ich habe etwas von Hyprland übernohmen und muss nicht komplett von null anfangen.
Bash:
# /etc/nixos/flake.nix
{
  description = "NixOS configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    mango = {
      url = "github:DreamMaoMao/mango";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, chaotic, home-manager, mango, ... }: {
    nixosConfigurations = {
      pc = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./configuration.nix
          chaotic.nixosModules.default
          mango.nixosModules.mango
          home-manager.nixosModules.home-manager {
        home-manager.useGlobalPkgs = true;
        home-manager.useUserPackages = true;
        home-manager.users.rebellz = {
          imports = [
            ./mango.nix
            mango.hmModules.mango
         ];
            };
          }
        ];
      };
    };
  };
}
Bash:
{ config, pkgs, lib, ... }:
{
home.stateVersion = "24.05";

# VSCodium - Save as root Erweiterung
   programs.vscode.profiles.default.extensions = [
          pkgs.vscode-extensions.yy0931.save-as-root-in-remote-ssh
        ];
# Fastfetch
 programs.fastfetch = {
   enable = true;                     
    settings = {                       
     modules = [
          "title"
          "separator"
          "os"
          "host"
          "kernel"
          "uptime"
          "packages"
          "shell"
          "terminal"
          "cpu"
          "gpu"
          "memory"
        #  "local_ip"
          "disk"
          "break"
          "colors"
          ];
          };
          };                                              

   services.cliphist = {
          enable = true;
        };

# MPV media Player
  programs.mpv = {
    enable = true;
    package = pkgs.mpv;
    config = {
      vo = "gpu";
      hwdec = "auto";
      loop-file = "inf"; # Loop für Videos
    };
# MPV Scripts
    scripts = [
      pkgs.mpvScripts.thumbfast # High-performance on-the-fly thumbnailer for mpv
      pkgs.mpvScripts.uosc
    ];
  };

# GTK Cursors
  home.pointerCursor = {
   package = pkgs.bibata-cursors;
    name = "Bibata-Modern-Ice";
    size = 14;
 };
 
# GTK Icons + Theme
  gtk = {
    enable = true;
    theme = {
      name = "Orchis-Light";
      package = pkgs.orchis-theme;
    };
    iconTheme = {
      name = "Tela";
      package = pkgs.tela-icon-theme;
    };
  };

# Desktop Ordner in Home ausblenden
  xdg.userDirs = {
    enable = true;
    createDirectories = false;
    desktop = "$HOME";
    };

# Micro - Terminal-based editor
  programs.micro = {
    enable = true;
  };

# Terminal
 programs.kitty = {
   enable = true;
    themeFile = "atelier-cave-dark";
    settings = {
        font_family = "Fira Code";
        font_size = 12;
        enable_audio_bell = false;
        scrollback_lines = 10000;
        confirm_os_window_close = 0;
    };
    };
# Wayland-Umgebungsvariablen
  home.sessionVariables = {
     # Session / Desktop Info
  XDG_CURRENT_DESKTOP = "mango"; # Helps some apps recognize the DE
  XDG_SESSION_DESKTOP = "mango"; # Indicates Wayland session
  XDG_SESSION_TYPE = "wayland"; # Indicates Wayland session

  # Wayland Fixes
  QT_QPA_PLATFORM = "wayland"; # For Qt apps
  MOZ_ENABLE_WAYLAND = "1";
  NIXOS_OZONE_WL = "1"; # Electron (Discord, VSCode, Slack …)
  GDK_BACKEND = "wayland"; # For GTK apps

  # Nvidia spezifisch
  WLR_NO_HARDWARE_CURSORS = "1";
  LIBVA_DRIVER_NAME = "nvidia";
  GBM_BACKEND = "nvidia-drm";
  WLR_RENDERER = "vulkan";
  __GLX_VENDOR_LIBRARY_NAME = "nvidia";
  __GL_VRR_ALLOWED = "1";
  };

wayland.windowManager.mango = {
  enable = true;
 
  # MangoWC will die Config als Textblock ('' ... '')
  settings = ''
    # Monitore
    output,DP-1,mode,1920x1080@144,pos,0,0
    output,HDMI-A-1,mode,1920x1080@60,pos,0,-1080

    # Tastatur & Maus
    input,*,accel_profile,flat
    input,*,pointer_speed,0.5
    xkb_rules_layout=de,de

   # Binds
    bind=SUPER,Return,spawn,kitty
    bind=SUPER,Q,killclient,
    bind=SUPER,D,spawn,${pkgs.fuzzel}/bin/fuzzel
    bind=SUPER,B,spawn,firefox
    bind=SUPER,Escape,spawn,${pkgs.wleave}/bin/wleave
    bind=SUPER,code:104,spawn,codium

    animations=0
    layer_animations=0

    exec = ~/.config/mango/autostart.sh
 
    # Clipboard (Fuzzel als Menü)
    bind=SUPER,V,spawn,sh -c "${pkgs.cliphist}/bin/cliphist list | ${pkgs.fuzzel}/bin/fuzzel --dmenu | ${pkgs.cliphist}/bin/cliphist decode | ${pkgs.wl-clipboard}/bin/wl-copy"
  '';

  # Dinge, die beim Start geladen werden sollen
  autostart_sh = ''
    ${pkgs.firefox}/bin/firefox &

    # SwayNC (Benachrichtigungs-Zentrum)
    ${pkgs.swaynotificationcenter}/bin/swaync &
 
    # wallpaper
    ${pkgs.swaybg}/bin/swaybg -i /home/rebellz/Bilder/Wallpaper/wallpaper.png &
 
    # Polkit (Damit VSCodium speichern kann)
    ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 &

    ${pkgs.wl-clipboard}/bin/wl-paste --watch cliphist store &

  '';
};

# Quickshell Aktivierung
programs.quickshell = {
  enable = true;
  systemd.enable = true;
};
# Quickshell Config
xdg.configFile."quickshell/shell.qml".text = ''
import QtQuick
import Quickshell
import Quickshell.Wayland

ShellRoot {
    PanelWindow {
      anchors {
        bottom: true
        left: true
        right: true
      }
      height: 30
      color: "#282C34
      exclusionMode: ExclusionMode.Exclusive // Reserviert Platz für Fenster

      Text {
        anchors.centerIn: parent
        text: "I use NixOS btw"
        color: "#D2E3FD"
        font.pixelSize: 14
      }
    }
  }
'';

}
Bash:
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
{
 imports =
 [ # Include the results of the hardware scan.
 ./hardware-configuration.nix
 ./syncthing.nix
 # ./nvidia-open-latest.nix
 ./thelounge.nix
 ./nvidia-open-beta.nix
 # ./nvidia-nvk.nix
 ];
 # Kernel
 boot.kernelPackages = pkgs.linuxPackages_cachyos-gcc;
 # Bootloader.
 boot.loader.systemd-boot.enable = true;
 boot.loader.efi.canTouchEfiVariables = true;
 # Begrenzung der Rollback-Einträge
 boot.loader.systemd-boot.configurationLimit = 10;
 networking.hostName = "nixos"; # Define your hostname.
 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
 # Configure network proxy if necessary
 # networking.proxy.default = "http://user:password@proxy:port/";
 # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Disable NetworkManager, use systemd-networkd + resolved
networking.networkmanager.enable = false;
networking.useDHCP = false;
systemd.network.enable = true;
services.resolved.enable = true;
systemd.network.networks."10-enp15s0" = {
 matchConfig.Name = "enp15s0";
 networkConfig = {
 Address = "192.168.178.52/22"; # feste IPv4 mit Subnetz
 Gateway = "192.168.178.1"; # FritzBox
 DNS = [ "94.242.2.3" "2620:fe::fe" ]; # Bevorzugte DNS (v4 + v6)
 };
};
 # Set your time zone.
 time.timeZone = "Europe/Berlin";
 # Select internationalisation properties.
 i18n.defaultLocale = "de_DE.UTF-8";
 i18n.extraLocaleSettings = {
 LC_ADDRESS = "de_DE.UTF-8";
 LC_IDENTIFICATION = "de_DE.UTF-8";
 LC_MEASUREMENT = "de_DE.UTF-8";
 LC_MONETARY = "de_DE.UTF-8";
 LC_NAME = "de_DE.UTF-8";
 LC_NUMERIC = "de_DE.UTF-8";
 LC_PAPER = "de_DE.UTF-8";
 LC_TELEPHONE = "de_DE.UTF-8";
 LC_TIME = "de_DE.UTF-8";
 };
 # Enable OpenGL über NixOS-Option
 hardware.graphics = {
 enable = true;
 enable32Bit = true;
 };
 # Enable the X11 windowing system.
 services.xserver.enable = true;
 # Enable the Plasma 6
# services.displayManager.sddm.enable = true;
# services.displayManager.sddm.wayland.enable = true;
# services.desktopManager.plasma6.enable = false;
 services.greetd = {
 enable = true;
 settings = {
 default_session = {
 # command = "${pkgs.tuigreet}/bin/tuigreet --cmd ${pkgs.hyprland}/bin/Hyprland --remember";
 command = "${pkgs.tuigreet}/bin/tuigreet --cmd mango --remember";
 user = "greeter";
 };
 };
 };
 programs.mango.enable = true;
 # Aktiviere Hyprland mit seiner eigenen XWayland-Option
 # programs.hyprland = {
 # enable = true;
 # withUWSM = true;
 # xwayland.enable = true; # für legacy X11 Apps wie Firefox, Thunderbird etc.
 # };
 # Configure keymap in X11
 services.xserver.xkb.layout = "de";
 services.xserver.xkb.variant = "";
 # Configure console keymap
 console.keyMap = "de";
 # Enable CUPS to print documents & Brother Drucker Treiber
 services.printing.enable = true;
 services.printing.drivers = [
 pkgs.brlaser
 ];
 # Enable sound with pipewire.
 services.pulseaudio.enable = false;
 security.rtkit.enable = true;
 services.pipewire = {
 enable = true;
 alsa.enable = true;
 alsa.support32Bit = true;
 pulse.enable = true;
 # If you want to use JACK applications, uncomment this
 jack.enable = true;
 # use the example session manager (no others are packaged yet so this is enabled by default,
 # no need to redefine it in your config for now)
 #media-session.enable = true;
 };
 # Define a user account. Don't forget to set a password with ‘passwd’.
 users.users.rebellz = {
 isNormalUser = true;
 description = "rebellz";
 extraGroups = [ "wheel" ];
 };
 services.udisks2.enable = true;
 # Steam
 programs.steam.enable = true;
 # Garbage Collection
 nix.gc = {
 automatic = true;
 dates = "weekly";
 options = "--delete-older-than 7d";
 };
 nix.settings.auto-optimise-store = true;
 # Firefox.
 programs.firefox = {
 enable = true;
 languagePacks = [ "de" ];
 nativeMessagingHosts.packages = [ pkgs.firefoxpwa ];
 preferences = {
 "intl.locale.requested" = "de";
 "widget.use-xdg-desktop-portal.file-picker" = 1; # KDE file picker
 "browser.tabs.loadBookmarksInTabs" = true; # Lesezeichen in neuem Tab öffnen
 "full-screen-api.warning.delay" = -1; # Vollbildmodus Meldung deaktivieren Teil 1/2
 "full-screen-api.warning.timeout" = 0; # Vollbildmodus Meldung deaktivieren Teil 2/2
 "ui.tooltip.delay_ms" = 5000;
 "dom.private-attribution.submission.enabled" = false; # "datenschutzfreundliche" Werbe-Messungen
 "browser.cache.disk.enable" = false; # Cache abschalten
 "extensions.pocket.enabled" = false; # Pocket deaktivieren
 "dom.event.clipboardevents.enabled" = false; # Zwischenablage nicht überwachen
 "privacy.donottrackheader.enabled" = true; # Do Not Track aktivieren
 };
};
 # Thunderbird
 programs.thunderbird.enable = true;
 # OBS-Studio
 programs.obs-studio.enable = true;
 # Allow unfree packages
 nixpkgs.config.allowUnfree = true;
 nix.settings.experimental-features = [ "nix-command" "flakes" ];
 # List packages installed in system profile. To search, run:
 # $ nix search wget
 environment.systemPackages = with pkgs; [
 # The Nano editor is also installed by default.
 brave
 dconf
 eog
 ffmpeg-full
 ffmpegthumbnailer
 foot
 fuzzel
 gimp
 git
 grim
 grimblast
 gnome-calculator
 hyprpicker
 inkscape
 joplin-desktop
 keepassxc
 kitty-themes
 librecad
 libreoffice-fresh
 # lutris
 mangohud
 mission-center
 nautilus
 # onlyoffice-bin
 # opensnitch-ui
 pam_u2f
 pavucontrol
 polkit_gnome
 screen
 shotcut
 slurp
 swaybg # Wallpaper Setup
 swaynotificationcenter # Notification Daemon
 tuigreet
 unzip
 wl-clipboard
 wleave
 vivaldi
 vlc
 vscodium
 yt-dlp_git
 zim
 ];
 fonts.packages = with pkgs; [
 nerd-fonts.symbols-only
 nerd-fonts.jetbrains-mono
 noto-fonts
 noto-fonts-cjk-sans
 noto-fonts-color-emoji
 fira-code
 ];
 services.udev.packages = [ pkgs.yubikey-personalization ];
 security.pam.services = {
 sudo.u2fAuth = true;
 };
 # Some programs need SUID wrappers, can be configured further or are
 # started in user sessions.
 # programs.mtr.enable = true;
 # programs.gnupg.agent = {
 # enable = true;
 # enableSSHSupport = true;
 # };
 # List services that you want to enable:
 # Enable the OpenSSH daemon.
 # services.openssh.enable = true;
 # Open ports in the firewall.
 # networking.firewall.allowedTCPPorts = [ ... ];
 # networking.firewall.allowedUDPPorts = [ ... ];
 # Or disable the firewall altogether.
 # networking.firewall.enable = false;
 # OpenSnitch (Application Firewall; opensnitch-ui in environment.systemPackages)
 # services.opensnitch.enable = true;
 # services.passSecretService.enable = true;
 # KDE Connect
 programs.kdeconnect.enable = true;
 # Aliases für alle Shells
 environment.shellAliases = {
 nfu = "sudo sh -c 'cd /etc/nixos && nix flake update'";
 nrs = "sudo nixos-rebuild switch --flake /etc/nixos#pc";
 nco = "sudo micro /etc/nixos/configuration.nix";
};
 security.polkit.enable = true;
 services.gnome.gnome-keyring.enable = true;
 services.gvfs.enable = true;
 # security.pam.services.hyprland.enableGnomeKeyring = true;
 security.pam.services.login.enableGnomeKeyring = true;
 services.dbus.enable = true;
 programs.dconf.enable = true;
 # Daemon for power management
 # services.upower.enable = false;
 system.stateVersion = "24.05"; # Don't change it bro
}

Man soll die Datei mango.nix NICHT in configuration.nix unter imports einbinden!
mango.nix ist eine Home Manager Datei und nicht Teil von configuration.nix, die ausgelagert wird(wie z.B. thelounge.nix oder nvidia-open-latest.nix)

Erstes Booten nach der Vorbereitung
Erstes Einloggen war nicht möglich. Ich musste zuerst zu tty wechseln, um in configuration.nix unter greetd die command Zeile von mangowc auf mango zu ändern.
Strg + Alt + F2 --> Username Passwort --> sudo nano /etc/nixos/configuration.nix
Zweiter Versuch um auf Desktop zu kommen
Bin auf dem Desktop mit grauem Wallpaper und Mauscursor gelandet. Es gibt keine Tastenkürzel. SUPER + RETURN(kitty) und SUPER + D(fuzzel) funktionieren nicht.
PC mit Powertaste ausgemacht und dann eingeschaltet. Wieder zu tty gewechselt, um binds zu ändern
Dritter Versuch
Aller guten Dinge sind drei. Aufm Desktop sehe ich immer noch grauen Hintergrund und Mauszeiger, aber wenigstens kann ich jetzt kitty(Terminal) und fuzzel(App Launcher) öffnen.

Probleme, die ich als Erstes nach der Grundinstallation beheben soll:
Mango hat scroller layout von Anfang an (entweder anpassen oder ändern)
polkit funktioniert nicht (Speichern in codium ist nicht möglich) Lösung
Tastaturlayout ist auf englisch
Monitore sind gespiegelt
SUPER + Escape für wlogout funktioniert nicht Lösung
Animationen sind nicht deaktiviert
Clipboard(SUPER + V) funktioniert nicht
Screenshots erstellen funktioniert nicht
Aktive Fenster haben eine Umrandung in Orange
Youtube - Vollbild verlassen mit Klick unten rechts verschiebt Focus auf das Fenster rechts neben Browser, weil Mauszeiger in scroller layout nach dem Verlassen von Vollbild nicht mehr im Browserfenster ist, sondern im Fenster daneben. Vollbild verlassen mit Taste F funktioniert normal.

Was ich nach der Grundinstallation schon behoben habe:
  • Tastaturlayout auf DE umgestellt. Einfach unter settings in mango.nix die Zeile xkb_rules_layout=de,de hinzufügen.
  • Animationen deaktiviert. animations=0 und layer_animations=0
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Deinorius, Poink, Alexander2 und eine weitere Person
D.S.i.u.S. schrieb:
Wayland compositor
Ist aber auch maximal ungünstig ausgewählt der Name, war das womöglich absicht?

Die 1. April Version heißt dann Mango Orkus Edition :D

Aber jetzt mal ernsthaft. Ich habe erst neulich von dem Scroller Layout gehört, das ist schon relativ neu oder? Finde ich auf jeden Fall interessant das Konzept.
 
Scroller-Layout wie in Niri? Das gibt es eigentlich schon viel länger. Z. B. PaperWM gibt schon seit Jahren.

Und vor zwei Jahren habe ich auch mal Karousel für KDE ausprobiert. Die Umsetzung hat da leider aufgrund von Einschränkungen in kWin so seine Tücken, weswegen ich das nicht weiter verwendet habe. Angeblich sind die KDE-Entwickler dabei, die Tiling-Window-Fähigkeiten von kWin zu verbessern. Ich finde den Artikel jetzt aber leider nicht mehr.

@D.S.i.u.S.
Ich wünsche dir viel Erfolg! 😃
 
  • Gefällt mir
Reaktionen: Deinorius und Alexander2
@Alexander2
Wenn ich mich nicht täusche, hieß MangoWC vorher MaoMao.
Im Internet habe ich drei verschiedene Beispiele für flake gefunden. Die flake von "tony btw" soll man nicht verwenden. Bei mir war kein Rebuild damit möglich, weil in seiner flake überall mangowc statt mango steht.
Github Link ist https://github.com/DreamMaoMao/mangowc/
Es gibt auch MangoWC Webseite https://mangowc.vercel.app/docs

Ich werde jetzt Wiki von Github Seite verwenden, um mögliche Fehler auszuschließen.

Ist etwas durcheinander mit Namensgebung.
Mal ist es mango, Mal ist es MangoWC.
Deswegen hatte ich auch mangowc in greetd stehen gehabt und deshalb war erstes Einloggen nicht möglich. Muss ich überprüfen, ob Option programs.mangowc.enable = true; in configuration.nix richtig ist, weil wieder mit wc im Namen.
 
Zuletzt bearbeitet:
Update 22.12.2025
Autostart_sh

Die Sache mit autostart_sh in mango.nix war eine schwere Geburt. Ich habe auf MangoWC Github Webseite in hm-modules.nix Folgendes gefunden:
autostart_sh = mkOption {
description = "WARRNING: This is a shell script, but no need to add shebang";
type = types.lines;
default = "";
example = ''
waybar &
'';
};
Manuelles Hinzufügen von #!/bin/sh in autostart_sh war nicht nötig. Ohne shebang wurde Polkit und Wallpaper trotzdem nicht geladen. Erst nachdem ich exec = ~/.config/mango/autostart.sh in settings hinzugefügt habe, hat es funktioniert.
wlogout
Ich habe wlogout durch wleave(Wayland-native logout script written in GTK4) ersetzt. Wleave macht keine "Zicken" wie wlogout. Tastenkürzel SUPER + Escape funktioniert jetzt bestens. In settings steht: bind=SUPER,Escape,spawn,${pkgs.wleave}/bin/wleave
Polkit
Ich kann wieder in VScodium speichern und in denselben Anwendung Rebuild ausführen.
Für VScodium habe ich Tastenkürzel SUPER + Return(Numpad) bind=SUPER,code:104,spawn,codium
In Autostart_sh: ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 &
In configuration.nix stehen auch paar Zeilen zu polkit.
Wallpaper
In Autostart_sh habe ich eine Zeile für Wallpaper stehen ${pkgs.swaybg}/bin/swaybg -i /home/dsius/Bilder/Wallpaper/wallpaper.png &
Da ich selten Wallpaper wechsle und kaum Wallpaper sehe, weil ständig irgendwelche Fenster offen sind, ist das die optimale Lösung für mich. swaybg muss natürlich in environment.systemPackages = with pkgs; stehen.

Eine Sache gefällt mir in scroller Layout nicht. Wenn man mit Mauszeiger nach rechts geht, wird manchmal ein Fenster übersprungen.
Ich habe bereits eine leere Quickshell Leiste gebastelt. Ist bereits in mango.nix integriert. Habe ich "Spoiler: mango.nix" aktualisiert.
Muss ich jetzt zuerst die Sache mit Monitoren fixen und mango Layout richtig konfigurieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Alexander2
Finde gut, das du deine Änderungen weiter hier Postest. Jeder interessierte kann ja mit deinen Configdateien sogar das 1:1 dann bei sich installieren :D
Auch wenn ich es nicht machen werde :-)
 
Man soll nicht alles 1:1 übernehmen. Die Pfade, Hostname und Benutzername muss man ändern. Und auch Monitor Config kann anders sein. Mein sekundärer Monitor ist über primären Monitor. stateVersion in configuration.nix soll man auch nicht übernehmen, sondern die eigene behalten.

Ich habe auch networkmanager durch systemd.network + services.resolved ersetzt. Funktioniert bei mir besser mit theLounge. DNS habe ich da auch eingetragen. Das hat aber Auswirkungen auf andere Sachen. Bluetooth oder Wlan nutze ich am PC nicht.

Notiz an mich: "Binnen-I be gone" Browser Add-on deaktivieren, wenn man in Forum irgendwas einfügt.
Das Ding hat in Quickshell Config in "Spoiler: mango.nix" aus centerIn einfach so center gemacht. Wenn man es so mit center statt mit centerIn übernimmt, wird die Quickshell Leiste nicht funktionieren.
 
Zuletzt bearbeitet:
Mich würde interessieren, wie viele Fenster ihr so im Durchschnitt offen habt?
Ich hab 2 x 27 Zoll Monitore. Auf einem kann ich 4 Fenster ablegen Maximal? Und das mal 10 Workspaces (Theoretisch müssten ja mehr gehen? Wers braucht...). Man hat ja immer noch die Möglichkeit zu stacken bzw. die Fenster in Tabs zu ordnen.

Oder was ist die Idee hinter diesem Konzept?
Mit einem Workspace hat man ja gerade die Trennung, die man erreichen will? Man will doch nicht alles auf einmal in einem Arbeitsbereich haben? Da sucht/scrollt man sich doch dumm?
 
Ist doch bei vielen auch so, das du per Startmenü ebenso die Fenster als zu öffnendes angeboten bekommst. Also angenommen du hast Krita schon einmal auf, bist gerade an einer ganz anderen stelle, vielleicht mitm Browser beschäftig. Und nu nwillst du wieder zu krita. Da könnte reichen [meta] kri
und schon siehst du das Fenster als mögliches ziel. enter, zack da. Nichts mit Suchen.

Was auch oft vorkommt, das du bei mehreren Festgelegten Arbeitflächen einige oder gar alle Vorgesehen sind für bestimmte Arbeiten/Programme. Wenn du dir das eingerichtet hast, dann ist da auch fix per shortcut hingewechselt.
Oder per Tastendruck + Übersich öffnet sich + auswahl...

Also jetzt gerade habe ich 12 Fenster offen und ich mache nichts besonderes. grad nichtmal Spotify an.
 
Naja, ja. Nett.
Wenn man 4 Fenster offen hat, wird das auf einem Notebook echt eng. Dann kurz den Sichtbereich verschieben zu könne, ohne das man ein anderes Fenster aus dem Sichtbereich nehmen muss? Okay.

Wenn man nur ein Monitor zur Verfügung hat. Wie gesagt, auf wie viel Fenster kann man sich gleichzeitig konzentrieren, damit man davon profitiert?

@Alexander2
Ich glaube wirklich, es geht mehr darum, links und rechts noch mehr Space dazu zu gewinnen... aber ich zweifel eben so ein wenig an, das man dieses Multitasking beherrscht. Das ist doch eigentlich schon widerlegt? Der Mensch kann sich nicht auf mehrere Sachen gleichzeitig konzentrieren. Das ist doch nur ein schnelles abarbeiten einzelner Aufgaben.

Alexander2 schrieb:
Und nu nwillst du wieder zu krita. Da könnte reichen [meta] kri
Sicher. Oft hat man auch am Kopf, wo sich was befindet. Manche ordnen ihre Workspaces thematisch. Da ist Krita dann immer auf der 7.

---

Interessant ist es alle mal.
Aber ich hab zur Zeit eh nur eine Handvoll Fenster offen und arbeite an zwei offen 😁
 
Klar, nacheinander. Es kann aber ja auch oft genug vorkommen, das ein Programm beschäftig ist und was abarbeitet und du dann was anderes in der zeit nebenher machst.

Der Punkt ist ja nicht, das der Mensch nur eine Sache zur zeit machen kann...

Wenn man so anfängt zu argumentieren, warum sind wir dann über DOS hinausgekommen?
Oder auch einfach nur um nicht immer alles sofort schließen zu müssen, und auch vor allem um die minimierenfunktion nicht zu benutzen.

klar kannst du einfach mit nur einer Arbeitsfläche arbeiten und da alles Fenster Jonglieren. Aber es ist dann einfach anders, wenn du mehrere Arbeitsflächen hast und so die Fenster anders Organisieren kannst..

Vorallem auch, das mit dem Tiling du dich nicht um eine passable Platzierung kümmern muss.(mit der Maus)
 
In Hyprland hatte ich jedem Fenster "gesagt"(rules) in welchem Workspace die sich öffnen sollen. Der obere sekundäre Monitor war für IRC und Bild-im-Bild Fenster da. Durch Autostart waren bei mir 3 Fenster nach dem Einloggen da. Firefox in "1:Firefox", Nautilus in "2: Dateien" und Zim-Wiki in "3:Notizen". Andere Anwendungen habe ich nach Bedarf geöffnet. Mit SUPER + Alt + 1 bis 9 könnte ich Fenster in anderes Workspace verschieben und mit SUPER + 1-9 zu Workspace wechseln oder durch Klick in Waybar auf Workspace 1-9.

In Mango will ich es mit Tags und scroller Layout probieren. Vorteil von Scroller Layout ist, dass man nach Schließen von Dateien wieder in Nautilus landet und muss nicht manuell zu Workspace "2: Dateien" wechseln. Wenn man in Mango in linke untere Ecke geht, wechselt man Layout. Man kann auch festlegen, dass Monitor 1 tile ist und Monitor 2 scroller. Ist alles sehr flexibel.
 
Bei mir sind quasi immer mindestens 4 Fenster bzw. Programme offen, die auf drei Desktops verteilt sind.

→ WMs kümmern sich in erster Linie eigentlich nur darum, wie Fenster auf einem Desktop angeordnet werden bzw. wie der verfügbare Platz auf einem Desktop genutzt wird.
→ Virtuelle Desktops erlauben es, Fenster zusammen anzeigen zu lassen, die z. B. zum gleichen Sachverhalt gehören. Ich habe bspw. einen virtuellen Desktop nur für die Dateiverwaltung.
→ Physische Desktops bzw. mehrere Bildschirme erlauben es, einfach mehr Fenster gleichzeitig zu sehen.
→ Aktivitäten (bei KDE) erlauben es, virtuelle Desktops, Programme und Daten z. B. nach Nutzung zu kategorisieren. Denkbar ist hier z. B. eine Privat- und eine Arbeit-Aktivität. In der Privat-Aktivität finden sich dann Desktops für z. B. Surfen, Spiele, Musik und Video. Das Verzeichnis mit den eigenen Gedichten ist nur hier sichtbar. In der Arbeit-Aktivität finden sich Desktops für z. B. File Management, Terminals und Konferenzen. Das Verzeichnis mit den geschäftlichen Dateien ist nur hier sichtbar.

Das gibt es alles, weil User verschiedene Anforderungen haben.
 
@Alexander2
Wenn du dich also nur eine Aufgabe konzentrierst, wie viele Fenster kann man für diese Aufgabe offen haben? Ich seh Terminal Power-User, die x Metriken offen haben, an einem Monitor... oder vergleichbare Workflows. Alles darüber hinaus kann ich mir gerade nicht Vorstellen, worin der besondere Vorteil liegen soll.

D.S.i.u.S. schrieb:
Vorteil von Scroller Layout ist, dass man nach Schließen von Dateien wieder in Nautilus landet und muss nicht manuell zu Workspace "2: Dateien" wechseln

Hast du es schon mal mit einem Scratchpad versucht? Also einem verstecktem Workpace. Da kannst du dann den Nautilus je nach bedarf aufrufen. Sollte sich doch für diesen Usecase eignen?

Aber gut, besser haben als brauchen. 🙃
 
Zurück
Oben