Noco is a small desktop environment for X11. No compositor, just plain window management, and it still looks and feels like a normal desktop: title bars, a taskbar, a start menu, dragging windows around with the mouse.
- Dragging and resizing windows is fast. When you drag a title bar it just draws a simple outline on screen and only moves the real window once you let go. No re-rendering the whole window over and over while you drag it.
- Windows get a bit of glass/blur look on the frames, taskbar, launcher and notifications, each tuned a little different so the taskbar and launcher do not look identical to window frames.
- The taskbar shows real running app icons pulled from each window, has a pinnable row of apps (right click in the menu to pin), and the start menu closes properly when you click it again instead of piling up windows.
- You can grab a window edge a few pixels outside the visible border, so resizing does not need pixel perfect aim. Cursor changes shape when you are in the grab zone.
- Ctrl+Alt+Left and Ctrl+Alt+Right switch workspaces, on top of clicking the numbers on the taskbar.
Noco is a full small desktop, not only a window manager. It comes with:
wm/- noco-wm, the window manager itself. Handles title bars, moving/resizing with the mouse, workspaces.panel/- noco-panel, the taskbar. Start button, pinned apps, running windows, workspace switcher, clock.launcher/- noco-launcher, the app menu that opens from the start button. Search bar, categories, pin/unpin.notifyd/- noco-notifyd, a small notification daemon, popups stack in a corner.appearance/- noco-appearance, an editor for the glass/color/radius settings with a live preview. Only touches visual settings on purpose.shell/- shared code used by the other pieces: config loading, wallpaper sampling, drawing, window titles.session/- session script and .desktop file so it shows up in a display manager.config/- the default noco.conf.showcase/- noco-showcase, a small tool that grabs real screenshots of a running session (idle desktop, menu open, a couple of demo windows). Not part of the session itself, just a way to get actual screenshots instead of mockups.
You need gcc, make, and dev packages for libx11, libxrandr, libxinerama, libxext, gtk3, and glib2.
sudo ./install.shThis builds everything, drops the binaries in /usr/local/bin, adds an Xsession entry if it can, and copies a default config to ~/.config/noco/noco.conf if you do not already have one.
To build just one piece:
make -C wm
make -C panel
make -C launcher
make -C notifyd
make -C appearance
make -C showcaseThere's a small tool for this, noco-showcase, instead of hand grabbing screenshots or faking them. Run it from inside an actual Noco session (a real one, or a nested one under Xephyr so it doesn't touch your main desktop):
noco-showcase ./my-screenshotsIt grabs the idle desktop, opens a couple of demo terminal windows, opens the app menu through the same toggle the taskbar's Menu button uses, closes it again, and saves a PNG at each step using XGetImage, so what you get is a real capture of your actual build and theme, not a placeholder.
Add this line to ~/.xinitrc:
exec noco-session
Or just pick Noco from your display manager's session list.
Everything here works fine with just the mouse. The keyboard shortcuts are extra, not required.
Windows - each one has a title bar, title on the left, three buttons on the right (minimize, maximize, close).
- Drag the title bar to move the window. You get an outline while dragging, the window itself moves once you let go.
- Double click the title bar to maximize or restore.
- Drag an edge or corner to resize. The grab zone reaches a bit past the visible edge and the cursor changes when you are close enough.
- Click anywhere on a window to focus it. Focus does not follow the mouse, only clicks change it.
Taskbar - docked to the bottom by default, can be set to the top in the config.
- The Menu button on the left opens the app menu, click it again (or click elsewhere) to close it.
- Pinned apps show as small icon buttons, right click an app in the menu to pin or unpin it.
- Running windows on the current workspace show up with their icon, click to focus, click again to minimize.
- The workspace switcher is a row of numbers, click one to jump there.
- Clock sits on the right.
Menu - opens from the Menu button or Mod+D. Has a search box, a sidebar of categories, and the app list. Right click an app to pin or unpin it.
Notifications - popups stack in a corner of the screen (position is configurable), click one to dismiss it early or just let it time out.
Default mod key is Super.
Mod+Drag- move a window from anywhere, not just the title barMod+Right Drag- resize from anywhereMod+F- toggle maximizeMod+M- minimizeMod+Q- close windowMod+Arrow keys- snap window to a half or the full screenMod+1..9- switch workspaceMod+Shift+1..9- move focused window to a workspaceCtrl+Alt+Left/Right- previous/next workspaceMod+Tab(hold Mod, tap Tab) - task switcherMod+Shift+Tab- task switcher, reverseMod+D- app menuMod+Return- open a terminal
Edit ~/.config/noco/noco.conf by hand, or run noco-appearance for a live-preview editor that covers glass, colors, radii, taskbar and notifications.
If there is no user config yet, Noco falls back to /etc/noco/noco.conf, then to built in defaults.
Some keys worth knowing: frame_margin and resize_padding control the visible border versus the extra invisible grab area, panel_tint_alpha / panel_blur_downscale and launcher_tint_alpha are per surface glass settings, and pinned_apps is a semicolon separated list of .desktop IDs that gets managed automatically when you pin/unpin from the menu. Check config/noco.conf for the full list.
You need to restart the affected part (noco-wm, noco-panel, noco-notifyd) for changes to take effect.
Each piece (taskbar, launcher, notification popups, title bars) grabs the desktop wallpaper pixmap once and keeps it cached. When it draws, it samples the part of the wallpaper behind it, shrinks and grows it back to fake a blur, tints it, and clips it to a rounded rectangle using the X Shape extension so the corners are actually not there, not just painted over.
The cache only gets redone when the wallpaper changes, not every frame. Dragging a window skips this whole thing and just draws a plain outline instead, so the expensive part only happens once per drag instead of many times a second.
- Window previews can go stale if windows overlap on the same workspace, since without a compositor there is no reliable way to read pixels hidden behind another window.
- No proper multi-monitor placement for the panel or launcher yet, everything targets the primary monitor.
- No lock screen yet.
- The notification daemon has no history and no action buttons right now.
- Pinned taskbar entries always launch a new instance instead of focusing one that is already running.
- Better multi-monitor support
- Lock screen
- Matching pinned apps to already-running instances
- Better window preview refresh
- More theme options
- Notification actions and history
Bug reports, patches, themes, packaging help and feedback are all welcome.
GPL-3.0. See LICENSE.