I decided to dive heads first into window managers and need your input for your guidance. I’m absolutely not a Linux-pro. I basically never use the terminal, just started using Github, and only used Gnome (+ KDE for 1/8th the time) for now.

I already informed myself in the last months a bit in what mess I will jump into, but that didn’t prepare me at all… Or at least not as much as I would have liked.
I find it a bit hard to get content for this topic. For Gnome or KDE for example exist trillions of videos and guides, and all TWM-content is only from and for hardcore enthusiasts who are already neck deep into that topic for decades.

One thing I already noticed is that everything is very technical. Everything is in a text file and accessed via terminal. I like that, but it’s just different.
Also, there’s no way to just learn one thing, no. You have to work yourself into many tools all at once, which is super frightening, but interesting.


First off all, I need your choice of packages to make it a fully functional desktop.

Right now, I use Niri, for now in a VM, which comes with a few basic things out of the box, like portals, and additional stuff, like some packages from Sway.
But basically everything else, like bars, decoration, and more, is not preinstalled.
When you use it the first time, it’s very barebones and no eye candy by default.

I would like to hear what “essential” stuff, and what “Because I like it”-stuff you suggest.
Maybe differentiate it with “I personally use it” and “You and everyone else should use that, it should be a default.”

Personally, I would like to have:

^(£ = nice to have; ¥ = basic functionality)

  • ¥ A bar, like waybar
  • £ KDE-Connect: does that work on TWMs? Is there a good implementation? Can I use GSConnect elsewhere too?
  • ¥ A good global search tool like KRunner or the one from Gnome
  • ¥ Clipboard manager
  • £ Wallpaper switcher
  • £ Eye candy in general, e.g. dotfiles (those are the settings for each element, like the bar, right?)
  • More things will be added later :)

Also, do you have any tips for a total noob in that topic? Any things you regretted when you started and now wish others to avoid?
General usage tips for someone who only used full fletched DEs until now?

And, most importantly, do you have any resources where I can read/ watch more into for the future?
Sure, the readme.md on the projects’ page is the best information for that specifically, especially technical stuff, but I don’t know where to get more general information, like discussions, comparisons, and more. The only example I can think of is [email protected] for inspiration, but not much more. Do you have any blogs or threads you can recommend?


Thanks in advance for your help!

I plan to post a “My Linux week”-report very soon, since there has been a lot happening in the last days. I literally just “discovered” Github for example 🫠

  • @pathief
    link
    3
    edit-2
    11 months ago

    My system:

    My waybar dotfiles. You can create/edit these files with whatever text editor you like, you don’t need the terminal. Please note that for some reason Lemmy screws up the “&” when pasting code… Please replace all “&” with “&”.

    ~/.config/waybar/config (note: remove custom/gpu-util if you don’t have a nvidia video card, or change the command to whatever is the AMD equivalent)

    {
        "layer": "top",
        "position": "top",
        "modules-left": [
            "hyprland/workspaces"
        ],
        "modules-center": [
            "hyprland/window"
        ],
        "modules-right": [
            "cpu",
            "custom/gpu-util",
            "network#wifi",
            "pulseaudio",
            "clock",
            "tray",
            "custom/notification"
        ],
        "hyprland/workspaces": {
            "format": "{id}",
            "on-click": "activate",
            "sort-by": "number",
            "persistent-workspaces": {
                "*": 3
            },
            "all-outputs": false
        },
        "clock": {
            "format": "{:<span></span> %I:%M %p, %a %d}",
            "format-alt": "{:📅 %B %d, %Y}",
            "actions": {
                "on-click": "mode"
            },
            "tooltip": false
        },
        "cpu": {
            "interval": 5,
            "format": "<span>󰍛</span> {usage:2}%",
            "tooltip": false
        },
        "custom/gpu-util": {
            "exec": "echo $(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)",
            "format": "<span>󰘚</span> {}%",
            "interval": 5,
            "tooltip": false
        },
        "network#wifi": {
            "interval": 1,
            "interface": "wlan0",
            "format-icons": [
                "󰤯",
                "󰤟",
                "󰤢",
                "󰤥",
                "󰤨"
            ],
            "format-wifi": "<span>{icon}</span> {signalStrength}%",
            "format-ethernet": "󰈀",
            "format-disconnected": "<span>󰤮 </span>",
            "tooltip": true,
            "tooltip-format-wifi": "<span>{icon}</span> {essid} ({signalStrength}%)"
        },
        "tray": {
            "spacing": 12
        },
        "pulseaudio": {
            "format": "<span>{icon}</span> {volume}%  {format_source}",
            "format-bluetooth": "<span>{icon}</span> {volume}%  {format_source}",
            "format-bluetooth-muted": "<span>󰖁</span>  {format_source}",
            "format-muted": "<span>󰖁</span>  {format_source}",
            "format-source": "<span></span> {volume}%",
            "format-source-muted": "<span></span>",
            "format-icons": {
                "headphone": "",
                "phone": "",
                "portable": "",
                "default": [
                    "",
                    "",
                    ""
                ]
            },
            "on-click": "pavucontrol",
            "input": true
        },
        "custom/notification": {
            "tooltip": false,
            "format": "{icon} {}",
            "format-icons": {
                "notification": "<span></span><span><sup></sup></span>",
                "none": "",
                "dnd-notification": "<span></span><span><sup></sup></span>",
                "dnd-none": "",
                "inhibited-notification": "<span></span><span><sup></sup></span>",
                "inhibited-none": "",
                "dnd-inhibited-notification": "<span></span><span><sup></sup></span>",
                "dnd-inhibited-none": ""
            },
            "return-type": "json",
            "exec-if": "which swaync-client",
            "exec": "swaync-client -swb",
            "on-click": "sleep 0.1 &amp;&amp; swaync-client -t -sw",
            "escape": true
        },
        "hyprland/window": {
            "separate-outputs": true,
            "max-length": 100
        }
    }
    

    ~/.config/waybar/style.css

    /**
     * Global Colors
     */
    @define-color bg #434C5E;
    @define-color bg_lighter #546484;
    @define-color fg #D8DEE9;
    @define-color red_warn #BF616A;
    
    
    /**
     * Global style
     */
    * {
    	font-size: 14px;
    	font-family: JetBrains Mono Nerd Font, Font Awesome, sans-serif;
        font-weight: bold;
        border-radius: 5px;
        color: @fg;
        border: 0px;
    }
    
    
    /**
     *  Bar
     */
    #waybar {
    	background-color: rgba(46, 52, 64, 0.6);
        border-radius: 0;
    }
    
    /**
     * Default module styles
     */
    #window,
    #custom-packages,
    #memory,
    #clock,
    #custom-gpu-util,
    #cpu,
    #gpu-util
    #disk,
    #battery,
    #network,
    #tray,
    #pulseaudio,
    #custom-notification {
        background: @bg;
        margin: 5px;
        padding: 2px 10px;
    }
    
    
    /**
     * WORKSPACES module specific style
     */
    #workspaces {
    	background: @bg;
        margin: 5px 3px 5px 12px;
        padding: 0px 2px;
        font-style: normal;
    }
    
    #workspaces button {
        padding: 0px 8px;
        margin: 4px;
        background-color: @bg_lighter;
        opacity: 0.7;
        transition: all 0.3s ease-in-out;
    }
    
    #workspaces button.active {
        background: @red_warn;
        min-width: 40px;
        transition: all 0.3s ease-in-out;
        opacity: 1.0;
    }
    
    #workspaces button:hover {
        background: @red_warn;
        opacity: 1.0;
    }
    
    
    /**
     * Tooltip style
     */
    tooltip {
      background: @bg;
      border: 1px solid @bg_lighter;
      opacity: 0.9;
    }
    
    tooltip label {
      color: @fg;
    }