commit b528449d495437f34fc09d084e0d6f4bcb147427
parent 1b2e604b7e28edfae59db283153d0b7bb550f09f
Author: Alex Balgavy <alexander.balgavy@spaceapplications.com>
Date: Mon, 17 Nov 2025 18:12:39 +0100
dwm-gnome configuration
Diffstat:
6 files changed, 83 insertions(+), 0 deletions(-)
diff --git a/gnome/dwm-gnome b/gnome/dwm-gnome
@@ -0,0 +1,36 @@
+#!/usr/bin/env zsh
+
+# Register with gnome-session so that it does not kill the whole session thinking it is dead.
+test -n "$DESKTOP_AUTOSTART_ID" && {
+ dbus-send --print-reply --session --dest=org.gnome.SessionManager "/org/gnome/SessionManager" org.gnome.SessionManager.RegisterClient "string:dwm-gnome" "string:$DESKTOP_AUTOSTART_ID"
+}
+
+if [ -z "$DOTFILES" ]; then
+ export DOTFILES="$HOME/Documents/dotfiles"
+ . "$DOTFILES/shell/zshrc"
+fi
+
+[ -z "$TERMINAL" ] && export TERMINAL="st"
+export _JAVA_AWT_WM_NONREPARENTING=1 # otherwise Ghidra shows a blank screen
+
+LOGS=$HOME/.local/share/logs
+dunst >"$LOGS"/dunst.log 2>&1 &
+unclutter-xfixes &
+sxhkd >"$LOGS"/sxhkd.log 2>&1 &
+xset r rate 300 50 &
+picom >"$LOGS"/picom.log 2>&1 &
+{ "$HOME"/.local/bin/wal -R; xdotool key "super+shift+r"; } &
+libinput-gestures-setup start &
+keynav daemonize &
+CM_IGNORE_WINDOW="KeePassXC" clipmenud &
+
+dwmblocks >"$LOGS"/dwmblocks.log 2>&1 &
+keepassxc &
+brave-browser &
+emacsclient -c -a '' &
+
+SHLVL=0 dwm
+
+test -n "$DESKTOP_AUTOSTART_ID" && {
+ dbus-send --print-reply --session --dest=org.gnome.SessionManager "/org/gnome/SessionManager" org.gnome.SessionManager.Logout "uint32:1"
+}
diff --git a/gnome/dwm-gnome-xsession.desktop b/gnome/dwm-gnome-xsession.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=GNOME + DWM
+Comment=This session logs you into GNOME with DWM as the window manager
+Exec=gnome-session --session=dwm-gnome
+TryExec=gnome-session-dwm
+Type=Application
+DesktopNames=Unity
+X-Ubuntu-Gettext-Domain=gnome-session-3.0
+Type=XSession
diff --git a/gnome/dwm-gnome.desktop b/gnome/dwm-gnome.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=dwm-gnome
+NoDisplay=true
+Comment=suckless tiling window manager
+Exec=dwm-gnome
+X-GNOME-WMName=dwm-gnome
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+X-GNOME-Autostart-Notify=false
diff --git a/gnome/dwm-gnome.session b/gnome/dwm-gnome.session
@@ -0,0 +1,5 @@
+# -*- mode=conf -*-
+
+[GNOME Session]
+Name=dwm-gnome
+RequiredComponents=org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;dwm-gnome
diff --git a/gnome/gnome-session-dwm b/gnome/gnome-session-dwm
@@ -0,0 +1,9 @@
+#! /bin/sh
+gnome-session --help 2>/dev/null | grep -- --builtin > /dev/null
+HASBUILTIN=$?
+if [ $HASBUILTIN -eq 0 ]; then
+ BUILTINARG="--builtin"
+else
+ BUILTINARG=""
+fi
+gnome-session $BUILTINARG --session dwm-gnome "$@"
diff --git a/gnome/install.sh b/gnome/install.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+PREFIX="/usr"
+PATH_DWM_GNOME="$PREFIX/bin/dwm-gnome"
+PATH_DWM_GNOME_DESKTOP="$PREFIX/share/applications/dwm-gnome.desktop"
+PATH_DWM_GNOME_SESSION="$PREFIX/share/gnome-session/sessions/dwm-gnome.session"
+PATH_DWM_GNOME_XSESSION="$PREFIX/share/xsessions/dwm-gnome.desktop"
+PATH_GNOME_SESSION_DWM="$PREFIX/bin/gnome-session-dwm"
+sudo install -m0644 -D session/dwm-gnome-xsession.desktop $PATH_DWM_GNOME_XSESSION
+sudo install -m0644 -D session/dwm-gnome.desktop $PATH_DWM_GNOME_DESKTOP
+sudo install -m0644 -D session/dwm-gnome.session $PATH_DWM_GNOME_SESSION
+sudo install -m0755 -D session/dwm-gnome $PATH_DWM_GNOME
+sudo install -m0755 -D session/gnome-session-dwm $PATH_GNOME_SESSION_DWM
+
+