@@ -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
11861220I 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