chore: moved from cwm to sway 9386192e
Steve · 2026-10-12 10:24 7 file(s) · +135 −144
config.scm +18 −5
45 45
46 46
 (packages (append (list
47 47
                    ;; window managers
48 -
                    qtile cwm rofi
49 -
                    ;; xorg stuff
50 -
                    xorg-server xinit xwallpaper xset xrandr feh
48 +
                    qtile sway rofi
49 +
                    ;; wayland stuff
50 +
                    swaybg swayidle swaylock wl-clipboard
51 51
                    ;; text editor
52 52
                    vis emacs
53 53
                    ;; browser
62 62
                    (specification->package "cloudflared")) ; from Rosenthal channel
63 63
                   %base-packages))
64 64
65 -
 (services (append (list (service xorg-server-service-type)
66 -
                         (service slim-service-type)
65 +
 (services (append (list (service greetd-service-type
66 +
                                  (greetd-configuration
67 +
                                   (terminals
68 +
                                    (list
69 +
                                     ;; Text login on tty7 that starts sway
70 +
                                     (greetd-terminal-configuration
71 +
                                      (terminal-vt "7")
72 +
                                      (terminal-switch #t)
73 +
                                      (default-session-command
74 +
                                        (greetd-agreety-session
75 +
                                         (command
76 +
                                          (greetd-user-session
77 +
                                           (command (file-append sway "/bin/sway"))
78 +
                                           (command-args '())
79 +
                                           (xdg-session-type "wayland"))))))))))
67 80
                         (service dhcpcd-service-type)
68 81
                         (service dbus-root-service-type)
69 82
                         (service elogind-service-type)
cwm/cwmrc (deleted) +0 −122
1 -
# ~/.cwmrc -- Darkmatter
2 -
# Palette matches the Darkmatter GTK theme, kitty, and emacs themes.
3 -
# Modifier prefixes: C=Control M=Alt S=Shift 4=Super. Super is Mod4, so
4 -
# bindings are written "4-", not "M-". Combine modifiers before one dash: "4S-q".
5 -
6 -
fontname "BerkeleyMono Nerd Font Mono:pixelsize=16"
7 -
borderwidth 0
8 -
gap 12 12 12 12
9 -
snapdist 8
10 -
sticky yes
11 -
12 -
# Darkmatter
13 -
color activeborder   "#5f8787"
14 -
color inactiveborder "#333333"
15 -
color urgencyborder  "#e75353"
16 -
color groupborder    "#fbcb97"
17 -
color ungroupborder  "#e78a53"
18 -
# Menus: background, text, selected-item highlight and its text
19 -
color menubg  "#121113"
20 -
color font    "#c1c1c1"
21 -
color menufg  "#e78a53"
22 -
color selfont "#121113"
23 -
24 -
# Applications (shown in the M-? application menu)
25 -
command term  kitty
26 -
command emacs emacs
27 -
command librewolf librewolf
28 -
command btop  "kitty btop"
29 -
30 -
# Start with a clean slate; only the bindings below are active
31 -
unbind-key  all
32 -
unbind-mouse all
33 -
34 -
# Launchers
35 -
bind-key 4-Return terminal
36 -
bind-key 4-d      "rofi -show drun"
37 -
bind-key 4-space  menu-exec
38 -
bind-key 4-slash  menu-cmd
39 -
bind-key 4-Tab    menu-window
40 -
bind-key 4-b      "librewolf"
41 -
42 -
# Window actions
43 -
bind-key 4-w      window-close
44 -
bind-key 4-f      window-fullscreen
45 -
bind-key 4-m      window-maximize
46 -
bind-key 4S-m     window-vmaximize
47 -
bind-key 4-n      window-hide
48 -
bind-key 4-s      window-stick
49 -
bind-key 4-r      window-raise
50 -
bind-key 4S-r     window-lower
51 -
bind-key 4-t      window-htile
52 -
bind-key 4-v      window-vtile
53 -
54 -
# Focus
55 -
bind-key 4-j      window-cycle
56 -
bind-key 4-k      window-rcycle
57 -
bind-key M-Tab    window-cycle
58 -
bind-key MS-Tab   window-rcycle
59 -
60 -
# Move (Super+Shift) and resize (Super+Control) with vim keys
61 -
bind-key 4S-h     window-move-left-big
62 -
bind-key 4S-j     window-move-down-big
63 -
bind-key 4S-k     window-move-up-big
64 -
bind-key 4S-l     window-move-right-big
65 -
bind-key 4C-h     window-resize-left-big
66 -
bind-key 4C-j     window-resize-down-big
67 -
bind-key 4C-k     window-resize-up-big
68 -
bind-key 4C-l     window-resize-right-big
69 -
70 -
# Snap to screen edges
71 -
bind-key 4M-h     window-snap-left
72 -
bind-key 4M-j     window-snap-down
73 -
bind-key 4M-k     window-snap-up
74 -
bind-key 4M-l     window-snap-right
75 -
76 -
# Groups: Super+N shows only group N, Super+Shift+N sends the window there,
77 -
# Super+Control+N toggles group N on top of what is shown
78 -
bind-key 4-1 group-only-1
79 -
bind-key 4-2 group-only-2
80 -
bind-key 4-3 group-only-3
81 -
bind-key 4-4 group-only-4
82 -
bind-key 4-5 group-only-5
83 -
bind-key 4-6 group-only-6
84 -
bind-key 4-7 group-only-7
85 -
bind-key 4-8 group-only-8
86 -
bind-key 4-9 group-only-9
87 -
bind-key 4S-1 window-movetogroup-1
88 -
bind-key 4S-2 window-movetogroup-2
89 -
bind-key 4S-3 window-movetogroup-3
90 -
bind-key 4S-4 window-movetogroup-4
91 -
bind-key 4S-5 window-movetogroup-5
92 -
bind-key 4S-6 window-movetogroup-6
93 -
bind-key 4S-7 window-movetogroup-7
94 -
bind-key 4S-8 window-movetogroup-8
95 -
bind-key 4S-9 window-movetogroup-9
96 -
bind-key 4C-1 group-toggle-1
97 -
bind-key 4C-2 group-toggle-2
98 -
bind-key 4C-3 group-toggle-3
99 -
bind-key 4C-4 group-toggle-4
100 -
bind-key 4C-5 group-toggle-5
101 -
bind-key 4C-6 group-toggle-6
102 -
bind-key 4C-7 group-toggle-7
103 -
bind-key 4C-8 group-toggle-8
104 -
bind-key 4C-9 group-toggle-9
105 -
bind-key 4-0     group-toggle-all
106 -
bind-key 4-grave group-last
107 -
bind-key 4-g     window-group
108 -
109 -
# Window manager
110 -
bind-key 4S-Escape restart
111 -
bind-key 4S-q     quit
112 -
113 -
# Mouse: Super+drag to move/resize, Super+middle to lower
114 -
bind-mouse 4-1 window-move
115 -
bind-mouse 4-3 window-resize
116 -
bind-mouse 4-2 window-lower
117 -
# Clicks on the empty desktop
118 -
bind-mouse 1 menu-window
119 -
bind-mouse 3 menu-cmd
120 -
121 -
# Pin apps to a group: autogroup <group> "instance,class" (see xprop WM_CLASS)
122 -
# autogroup 2 "librewolf"
emacs/lisp/init-ui.el +3 −3
1 1
;;; init-ui.el -*- lexical-binding: t; -*-
2 2
3 3
(when (display-graphic-p)
4 -
  (set-face-attribute 'default nil :family "BerkeleyMono Nerd Font Mono" :height 140))
4 +
  (set-face-attribute 'default nil :family "BerkeleyMono Nerd Font Mono" :height 130))
5 5
6 6
(use-package base16-theme)
7 7
31 31
                                       '("?" "#666666"))))
32 32
      (propertize (format " %s " letter)
33 33
                  'face `(:background ,color
34 -
                          :foreground ,(alist-get 'base00 darkmatter-palette)
35 -
                          :weight bold)))))
34 +
                                      :foreground ,(alist-get 'base00 darkmatter-palette)
35 +
                                      :weight bold)))))
36 36
37 37
(setq-default
38 38
 mode-line-format
home.scm +1 −2
50 50
    (service home-files-service-type
51 51
             `((".guile" ,%default-dotguile)
52 52
               (".Xdefaults" ,%default-xdefaults)
53 -
               (".xsession" ,(local-file "xsession/xsession" #:recursive? #t))
54 -
               (".cwmrc" ,(local-file "cwm/cwmrc"))
55 53
               ;; Emacs config files are linked into ~/.emacs.d so that
56 54
               ;; elpa/ and other runtime state stay writable there.
57 55
               (".emacs.d/early-init.el" ,(local-file "emacs/early-init.el"))
64 62
             `(("starship.toml" ,(local-file "starship/starship.toml"))
65 63
               ("alacritty/alacritty.toml" ,(local-file "alacritty/alacritty.toml"))
66 64
               ("kitty/kitty.conf" ,(local-file "kitty/kitty.conf"))
65 +
               ("sway/config" ,(local-file "sway/config"))
67 66
               ("qtile/config.py" ,(local-file "qtile/config.py"))
68 67
               ("gdb/gdbinit" ,%default-gdbinit)
69 68
               ("nano/nanorc" ,%default-nanorc)))
kitty/kitty.conf +1 −1
16 16
bold_font        auto
17 17
italic_font      auto
18 18
bold_italic_font auto
19 -
font_size 14.0
19 +
font_size 13.0
20 20
21 21
# Mouse and cursor
22 22
mouse_hide_wait -1
sway/config (added) +112 −0
1 +
# ~/.config/sway/config -- Darkmatter
2 +
# Palette matches the Darkmatter GTK theme, kitty, and emacs themes.
3 +
# Bindings follow the old cwmrc where sway has an equivalent.
4 +
5 +
set $mod Mod4
6 +
set $left h
7 +
set $down j
8 +
set $up k
9 +
set $right l
10 +
set $term kitty
11 +
set $menu rofi -show drun
12 +
13 +
font pango:BerkeleyMono Nerd Font Mono 13
14 +
15 +
output * bg $HOME/wallpapers/assets/temple.png fill
16 +
output HDMI-A-1 scale 1.20
17 +
18 +
default_border pixel 2
19 +
default_floating_border pixel 2
20 +
gaps inner 12
21 +
gaps outer 0
22 +
focus_follows_mouse no
23 +
24 +
# Darkmatter
25 +
# class                 border  bg      text    indicator child_border
26 +
client.focused          #fbcb97 #121113 #c1c1c1 #e78a53   #fbcb97
27 +
client.focused_inactive #333333 #121113 #c1c1c1 #333333   #333333
28 +
client.unfocused        #333333 #121113 #888888 #333333   #333333
29 +
client.urgent           #e75353 #121113 #c1c1c1 #e75353   #e75353
30 +
31 +
# Launchers
32 +
bindsym $mod+Return exec $term
33 +
bindsym $mod+d exec $menu
34 +
bindsym $mod+b exec librewolf --scale=1.25
35 +
36 +
# Window actions
37 +
bindsym $mod+w kill
38 +
bindsym $mod+f fullscreen toggle
39 +
bindsym $mod+s sticky toggle
40 +
bindsym $mod+t splith
41 +
bindsym $mod+v splitv
42 +
bindsym $mod+e layout toggle split
43 +
bindsym $mod+Shift+t floating toggle
44 +
bindsym $mod+space focus mode_toggle
45 +
bindsym $mod+a focus parent
46 +
bindsym $mod+n move scratchpad
47 +
bindsym $mod+Shift+n scratchpad show
48 +
49 +
# Focus and move with vim keys
50 +
bindsym $mod+$left focus left
51 +
bindsym $mod+$down focus down
52 +
bindsym $mod+$up focus up
53 +
bindsym $mod+$right focus right
54 +
bindsym $mod+Shift+$left move left
55 +
bindsym $mod+Shift+$down move down
56 +
bindsym $mod+Shift+$up move up
57 +
bindsym $mod+Shift+$right move right
58 +
59 +
# Resize (Super+Control) with vim keys
60 +
bindsym $mod+Control+$left resize shrink width 40px
61 +
bindsym $mod+Control+$down resize grow height 40px
62 +
bindsym $mod+Control+$up resize shrink height 40px
63 +
bindsym $mod+Control+$right resize grow width 40px
64 +
65 +
# Workspaces: Super+N shows workspace N, Super+Shift+N sends the window there
66 +
bindsym $mod+1 workspace number 1
67 +
bindsym $mod+2 workspace number 2
68 +
bindsym $mod+3 workspace number 3
69 +
bindsym $mod+4 workspace number 4
70 +
bindsym $mod+5 workspace number 5
71 +
bindsym $mod+6 workspace number 6
72 +
bindsym $mod+7 workspace number 7
73 +
bindsym $mod+8 workspace number 8
74 +
bindsym $mod+9 workspace number 9
75 +
bindsym $mod+Shift+1 move container to workspace number 1
76 +
bindsym $mod+Shift+2 move container to workspace number 2
77 +
bindsym $mod+Shift+3 move container to workspace number 3
78 +
bindsym $mod+Shift+4 move container to workspace number 4
79 +
bindsym $mod+Shift+5 move container to workspace number 5
80 +
bindsym $mod+Shift+6 move container to workspace number 6
81 +
bindsym $mod+Shift+7 move container to workspace number 7
82 +
bindsym $mod+Shift+8 move container to workspace number 8
83 +
bindsym $mod+Shift+9 move container to workspace number 9
84 +
bindsym $mod+grave workspace back_and_forth
85 +
bindsym $mod+Tab workspace next_on_output
86 +
bindsym $mod+Shift+Tab workspace prev_on_output
87 +
88 +
# Mouse: Super+left drag moves, Super+right drag resizes floating windows
89 +
floating_modifier $mod normal
90 +
91 +
# Window manager
92 +
bindsym $mod+Shift+Escape reload
93 +
bindsym $mod+Shift+q exec swaymsg exit
94 +
95 +
bar {
96 +
    position top
97 +
    font pango:BerkeleyMono Nerd Font Mono 13
98 +
    status_command while date +'%Y-%m-%d %H:%M'; do sleep 30; done
99 +
    colors {
100 +
        background #121113
101 +
        statusline #c1c1c1
102 +
        separator  #333333
103 +
        # class            border  bg      text
104 +
        focused_workspace  #e78a53 #e78a53 #121113
105 +
        active_workspace   #333333 #333333 #c1c1c1
106 +
        inactive_workspace #121113 #121113 #888888
107 +
        urgent_workspace   #e75353 #e75353 #121113
108 +
    }
109 +
}
110 +
111 +
# Pin apps to a workspace (see swaymsg -t get_tree for app_id)
112 +
# assign [app_id="librewolf"] workspace number 2
xsession/xsession (deleted) +0 −11
1 -
#!/bin/sh
2 -
# ~/.xsession -- run by Guix's xinitrc wrapper. SLiM passes no session
3 -
# here, so the window manager is started by name below.
4 -
5 -
# Keep session output so crashes can be debugged
6 -
exec > "$HOME/.xsession-errors" 2>&1
7 -
set -x
8 -
9 -
feh --no-fehbg --bg-fill "$HOME/wallpapers/assets/temple.png" &
10 -
11 -
exec cwm