Skip to content

Commit 34a0ff7

Browse files
committed
Awesome WM → EXWM
1 parent 2a68cd9 commit 34a0ff7

File tree

6 files changed

+427
-111
lines changed

6 files changed

+427
-111
lines changed

README.org

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ Expose home-manager configurations.
179179
configuration = { ... }: {
180180
nixpkgs.config.allowUnfree = true;
181181
nixpkgs.overlays = self.overlays.${system};
182+
nixpkgs.config.firefox.enableTridactylNative = true;
182183
imports = [
183184
self.lib.home-manager-common
184185

@@ -706,6 +707,7 @@ Expose Emacs with my packages as a top-level package.
706707
[
707708
epkgs.orgPackages.org-plus-contrib
708709
epkgs.elpaPackages.adaptive-wrap
710+
epkgs.exwm
709711

710712
pkgs.ycmd
711713
pkgs.notmuch
@@ -1146,19 +1148,42 @@ Setup timezone:
11461148
services.xserver.displayManager.lightdm.enable = true;
11471149
}
11481150
#+end_src
1149-
** Window manager
1150-
I use [[http://awesome.naquadah.org/][awesome wm]]:
1151+
** Window manager (EXWM)
1152+
I recently switched to use EXWM as my window manager.
11511153

1154+
NixOS has an EXWM module, but my feeling is that it's too limiting.
11521155
#+name: nixos-section
11531156
#+begin_src nix
11541157
{
1155-
services.xserver.windowManager = {
1156-
awesome = {
1157-
enable = true;
1158-
luaModules = [ pkgs.luaPackages.luafilesystem pkgs.luaPackages.cjson ];
1159-
};
1158+
services.xserver.windowManager.session = lib.singleton {
1159+
name = "exwm";
1160+
start = ''
1161+
exec ${pkgs.my-emacs}/bin/emacsclient -a "" -c
1162+
'';
11601163
};
1161-
services.xserver.displayManager.defaultSession = "none+awesome";
1164+
services.xserver.displayManager.defaultSession = "none+exwm";
1165+
}
1166+
#+end_src
1167+
1168+
Without a window compositor, I have experienced window tearing (especially in Firefox)—with picom everything runs smoothly.
1169+
#+name: home-manager-section
1170+
#+begin_src nix
1171+
{
1172+
services.picom.enable = true;
1173+
}
1174+
#+end_src
1175+
1176+
** Awesome WM (backup)
1177+
Keep [[http://awesome.naquadah.org/][awesome wm]] as a backup window manager.
1178+
1179+
#+name: nixos-section
1180+
#+begin_src nix
1181+
{
1182+
services.xserver.windowManager.awesome = {
1183+
enable = true;
1184+
luaModules = [ pkgs.luaPackages.luafilesystem pkgs.luaPackages.cjson ];
1185+
};
1186+
services.xserver.displayManager.defaultSession = lib.mkDefault "none+awesome";
11621187
}
11631188
#+end_src
11641189

@@ -1178,9 +1203,18 @@ These packages are used by my awesome wm setup:
11781203
pkgs.wmname
11791204
pkgs.xclip
11801205
pkgs.escrotum
1206+
pkgs.xorg.xkbcomp
11811207
];
11821208
}
11831209
#+end_src
1210+
1211+
Link awesome wm configuration in place.
1212+
#+name: home-manager-section
1213+
#+begin_src nix
1214+
{
1215+
xdg.configFile."awesome".source = ./.config/awesome;
1216+
}
1217+
#+end_src
11841218
** Keyboard
11851219
*** Layouts
11861220
I use English and Ukrainian layouts. I also use Russian symbols, but they are on the third level.
@@ -1485,9 +1519,6 @@ slock: unable to disable OOM killer. Make sure to suid or sgid slock.
14851519

14861520
pkgs.mplayer
14871521
pkgs.smplayer
1488-
1489-
# Used by naga-awesome wm setup
1490-
pkgs.xdotool
14911522
];
14921523
}
14931524
#+end_src
@@ -1829,7 +1860,7 @@ This install a number of default man pages for the linux/posix system.
18291860
}
18301861
#+end_src
18311862
* Other configs
1832-
# #+name: home-manager-section
1863+
#+name: home-manager-section
18331864
#+begin_src nix
18341865
{
18351866
home.file = {
@@ -1841,7 +1872,5 @@ This install a number of default man pages for the linux/posix system.
18411872
programs.fish.shellInit = ''
18421873
set -x PATH ${./bin} $PATH
18431874
'';
1844-
1845-
xdg.configFile."awesome".source = ./.config/awesome;
18461875
}
18471876
#+end_src

0 commit comments

Comments
 (0)