about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-06-24 11:10:21 +0300
committerAzat Bahawi <azat@bahawi.net>2024-06-24 11:10:21 +0300
commit75918debfd7245d90478f882b0323a705ab3c7be (patch)
tree26b8f0ab5a3e4d7c61963fa96d57250e5ddc9a7d
parent2024-06-19 (diff)
2024-06-24
-rw-r--r--configurations/default.nix6
-rw-r--r--flake.lock78
-rw-r--r--lib/my.nix4
-rw-r--r--modules/common/nix.nix13
-rw-r--r--modules/games/default.nix26
-rw-r--r--modules/profiles/default.nix3
-rw-r--r--modules/profiles/headful.nix7
-rw-r--r--modules/subversion.nix2
-rw-r--r--modules/vim.nix208
-rw-r--r--modules/vim/default.nix71
-rw-r--r--modules/vim/rc.vim169
-rw-r--r--modules/wayland.nix6
12 files changed, 280 insertions, 313 deletions
diff --git a/configurations/default.nix b/configurations/default.nix
index c1712db..7e2f6d7 100644
--- a/configurations/default.nix
+++ b/configurations/default.nix
@@ -66,9 +66,8 @@ mapAttrs' mkConfiguration (
       srvos.nixosModules.common
     ];
 
-    melian.modules = with inputs; [
-      nixos-hardware.nixosModules.common-pc-laptop-ssd
-      nixos-hardware.nixosModules.lenovo-thinkpad-t480
+    ilmare.modules = with inputs; [
+      nixos-hardware.nixosModules.lenovo-thinkpad-x1-nano
       nixpkgs.nixosModules.notDetected
       srvos.nixosModules.common
     ];
@@ -92,7 +91,6 @@ mapAttrs' mkConfiguration (
     yavanna.modules = with inputs; [
       "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix"
       nixos-hardware.nixosModules.common-cpu-intel
-      nixos-hardware.nixosModules.common-pc-hdd
       nixpkgs.nixosModules.notDetected
       srvos.nixosModules.server
     ];
diff --git a/flake.lock b/flake.lock
index 09a2c72..67beb64 100644
--- a/flake.lock
+++ b/flake.lock
@@ -375,11 +375,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1717664902,
-        "narHash": "sha256-7XfBuLULizXjXfBYy/VV+SpYMHreNRHk9nKMsm1bgb4=",
+        "lastModified": 1718879355,
+        "narHash": "sha256-RTyqP4fBX2MdhNuMP+fnR3lIwbdtXhyj7w7fwtvgspc=",
         "owner": "cachix",
         "repo": "git-hooks.nix",
-        "rev": "cc4d466cb1254af050ff7bdf47f6d404a7c646d1",
+        "rev": "8cd35b9496d21a6c55164d8547d9d5280162b07a",
         "type": "github"
       },
       "original": {
@@ -433,11 +433,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718788307,
-        "narHash": "sha256-SqiOz0sljM0GjyQEVinPXQxaGcbOXw5OgpCWGPgh/vo=",
+        "lastModified": 1719037157,
+        "narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "d7830d05421d0ced83a0f007900898bdcaf2a2ca",
+        "rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511",
         "type": "github"
       },
       "original": {
@@ -464,11 +464,11 @@
     },
     "impermanence": {
       "locked": {
-        "lastModified": 1717932370,
-        "narHash": "sha256-7C5lCpiWiyPoIACOcu2mukn/1JRtz6HC/1aEMhUdcw0=",
+        "lastModified": 1719091691,
+        "narHash": "sha256-AxaLX5cBEcGtE02PeGsfscSb/fWMnyS7zMWBXQWDKbE=",
         "owner": "nix-community",
         "repo": "impermanence",
-        "rev": "27979f1c3a0d3b9617a3563e2839114ba7d48d3f",
+        "rev": "23c1f06316b67cb5dabdfe2973da3785cfe9c34a",
         "type": "github"
       },
       "original": {
@@ -489,11 +489,11 @@
         "nixpkgs-24_05": "nixpkgs-24_05"
       },
       "locked": {
-        "lastModified": 1718398369,
-        "narHash": "sha256-ccOHDuTaUhD1DW6DGNXoDJNOwYx55rVNKECyqRzKRtE=",
+        "lastModified": 1718697807,
+        "narHash": "sha256-Enla61WFisytTYbWygPynEbu8vozjeGc6Obkj2GRj7o=",
         "owner": "simple-nixos-mailserver",
         "repo": "nixos-mailserver",
-        "rev": "54cbacb6eb9938bf1eaab7a7840fb527050c2af1",
+        "rev": "290a995de5c3d3f08468fa548f0d55ab2efc7b6b",
         "type": "gitlab"
       },
       "original": {
@@ -515,11 +515,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718760354,
-        "narHash": "sha256-jRp9BePU8ZW2Q9UFOcSNNV1H3NSp3hqXkg/raMNhHMM=",
+        "lastModified": 1719106546,
+        "narHash": "sha256-eXI0i8sPL/XblbrX5Oi5Vy+IJfRIfgnGfz3R0xxKqxc=",
         "owner": "Infinidoge",
         "repo": "nix-minecraft",
-        "rev": "c50d882ce2510df6e47cb6b392497dde75ed2a2a",
+        "rev": "c26db352b99db2c47ca4ea8ccf0b1fc66c4ceda1",
         "type": "github"
       },
       "original": {
@@ -535,11 +535,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718507237,
-        "narHash": "sha256-xBEWCxWeRpWQggFFp8ugJCDa63cOJsVvx71R9F0Eowg=",
+        "lastModified": 1719111455,
+        "narHash": "sha256-rnIxHx+fLpydjMQsbpZ21kblUr/lMqSaAtMA4+qMMEE=",
         "owner": "nix-community",
         "repo": "nix-index-database",
-        "rev": "6af2c5e58c20311276f59d247341cafeebfcb6f4",
+        "rev": "4293f532d0107dfb7e6f8b34a0421dc8111320e6",
         "type": "github"
       },
       "original": {
@@ -577,11 +577,11 @@
     },
     "nixos-hardware": {
       "locked": {
-        "lastModified": 1718548414,
-        "narHash": "sha256-1obyIuQPR/Kq1j5/i/5EuAfQrDwjYnjCDG8iLtXmBhQ=",
+        "lastModified": 1719145664,
+        "narHash": "sha256-+0bBlerLxsHUJcKPDWZM1wL3V9bzCFjz+VyRTG8fnUA=",
         "owner": "NixOS",
         "repo": "nixos-hardware",
-        "rev": "cde8f7e11f036160b0fd6a9e07dc4c8e4061cf06",
+        "rev": "c3e48cbd88414f583ff08804eb57b0da4c194f9e",
         "type": "github"
       },
       "original": {
@@ -592,11 +592,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1718606988,
-        "narHash": "sha256-pmjP5ePc1jz+Okona3HxD7AYT0wbrCwm9bXAlj08nDM=",
+        "lastModified": 1719082008,
+        "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "38d3352a65ac9d621b0cd3074d3bef27199ff78f",
+        "rev": "9693852a2070b398ee123a329e68f0dab5526681",
         "type": "github"
       },
       "original": {
@@ -623,11 +623,11 @@
     },
     "nixpkgs-master": {
       "locked": {
-        "lastModified": 1718788377,
-        "narHash": "sha256-ZoqF46gRMKHra9+5Uw5rBKu0/0Bo9b7kO5rvjgGjy10=",
+        "lastModified": 1719214567,
+        "narHash": "sha256-KKT+5n8uIiBcqz8xbpE4042MhneTxCx7qO78EyQGlog=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "2dbcf7101a397c243aa2011b4a53db73f1f1448c",
+        "rev": "cab01b571fd39cd803da18577e8a6ae071a0e006",
         "type": "github"
       },
       "original": {
@@ -639,11 +639,11 @@
     },
     "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1718786543,
-        "narHash": "sha256-R8lt4gur3+k5oG03AMaA0+Vnzdrm6BJ3c4gjnDRJZMk=",
+        "lastModified": 1719154419,
+        "narHash": "sha256-H5cz+1rcc3MkkLzUW7FHLo7cgb0htn1rDVeNewa0Hnw=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "b9bb121348b1392a5994cb333559fd158b8b9fc5",
+        "rev": "28302cbc45602ccf5f3d45827145e59e4b83d8e0",
         "type": "github"
       },
       "original": {
@@ -720,11 +720,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718585173,
-        "narHash": "sha256-G5DB6D3p8ucyGfmWt3JmiWcVW55DeuUoiT230wQ9Am4=",
+        "lastModified": 1718844164,
+        "narHash": "sha256-QUXWv6llKIQ5To2N24d9dRI78Hqfm9iFyhvmvlOICNo=",
         "owner": "nix-community",
         "repo": "srvos",
-        "rev": "c607ffef7c234d88f37ed12d75b2c48de3f4b3fe",
+        "rev": "557ff94aa1b48a723f8fa16eb9e7a2e6de991682",
         "type": "github"
       },
       "original": {
@@ -754,11 +754,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718634635,
-        "narHash": "sha256-REUyeY+gD/QuTwAhuJycheej0FWFGPTosI+jiG5TsQk=",
+        "lastModified": 1719152448,
+        "narHash": "sha256-Acbi1Crd+UEbpPW8IR0ZGRKV+JCnMXDS2cglFQJvRPM=",
         "owner": "danth",
         "repo": "stylix",
-        "rev": "f13c946181730f98e1a5cd09714100490207b250",
+        "rev": "0fc4e9f1449a9dce4be7a1ecedd97949da591181",
         "type": "github"
       },
       "original": {
@@ -825,11 +825,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1718760425,
-        "narHash": "sha256-kGAKl4qNbVPz5z+2F32jYM4srlRGt7j3qljoW45mjV4=",
+        "lastModified": 1719106160,
+        "narHash": "sha256-jVBLe1sKZdXHiWMXs1Pc86xgGnwlLPbo/ptzWr8FbmE=",
         "owner": "nix-community",
         "repo": "nix-vscode-extensions",
-        "rev": "b882e3fa1da93a60e1f4185ae02314eb73fa9852",
+        "rev": "37f43e542bb49c27f3aeb16dc7bd3a800e9e0469",
         "type": "github"
       },
       "original": {
diff --git a/lib/my.nix b/lib/my.nix
index 8e9b3fc..30f0e5c 100644
--- a/lib/my.nix
+++ b/lib/my.nix
@@ -266,8 +266,8 @@ with lib;
             syncthing.id = "@SYNCTHING_ID@";
           };
 
-          # ThinkPad T480.
-          melian = {
+          # ThinkPad X1 Nano Gen 3.
+          ilmare = {
             stateVersion = "24.05";
             deviceIcon = "devices.laptop";
             system = "x86_64-linux";
diff --git a/modules/common/nix.nix b/modules/common/nix.nix
index 6c5bd18..3342113 100644
--- a/modules/common/nix.nix
+++ b/modules/common/nix.nix
@@ -126,11 +126,16 @@ in
 
         overlays = with inputs; [
           self.overlays.default
-          (_: _: {
+          (_: prev: {
             # Global PR package overrides go here. Example:
             # ```
             # inherit (pkgsPr 309018 "sha256-x3ATxjrTVdaX5eo9P6pz+8/W6D2TNYzvjZpOBa3ZRI8=") endlessh-go;
             # ```
+
+            spf-engine = prev.spf-engine.override {
+              # FIXME https://nixpk.gs/pr-tracker.html?pr=321940
+              inherit (pkgsMaster.python311.pkgs) pymilter;
+            };
           })
         ];
       };
@@ -141,7 +146,6 @@ in
         systemPackages =
           with pkgs;
           optionals this.isHeadful [
-            nix-top
             nix-tree
             nixfiles
           ];
@@ -151,9 +155,6 @@ in
         };
       };
 
-      system = {
-        # HACK This lets `nix flake check` to pass.
-        stateVersion = if hasAttr "stateVersion" this then this.stateVersion else trivial.release;
-      };
+      system.stateVersion = this.stateVersion or trivial.release;
     };
 }
diff --git a/modules/games/default.nix b/modules/games/default.nix
index dea9d3c..4f474b4 100644
--- a/modules/games/default.nix
+++ b/modules/games/default.nix
@@ -8,20 +8,18 @@ in
 
   options.nixfiles.modules.games.enable32BitSupport = mkEnableOption "support for games";
 
-  config = mkIf cfg.enable32BitSupport {
-    services = {
-      jack.alsa.support32Bit = config.services.jack.alsa.enable;
-
-      pipewire.alsa.support32Bit = config.services.pipewire.alsa.enable;
-    };
-
-    hardware = {
-      opengl = mkIf config.hardware.opengl.enable {
-        extraPackages32 = config.hardware.opengl.extraPackages;
-        driSupport32Bit = config.hardware.opengl.driSupport;
+  config = mkMerge [
+    { hardware.graphics.enable = true; }
+    (mkIf cfg.enable32BitSupport {
+      services = {
+        jack.alsa.support32Bit = config.services.jack.alsa.enable;
+        pipewire.alsa.support32Bit = config.services.pipewire.alsa.enable;
       };
 
-      pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
-    };
-  };
+      hardware = {
+        graphics.enable32Bit = true;
+        pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
+      };
+    })
+  ];
 }
diff --git a/modules/profiles/default.nix b/modules/profiles/default.nix
index 9e99938..61f93b9 100644
--- a/modules/profiles/default.nix
+++ b/modules/profiles/default.nix
@@ -36,6 +36,7 @@ in
       eza.enable = true;
       htop.enable = true;
       tmux.enable = true;
+      vim.enable = true;
     };
 
     programs = {
@@ -47,8 +48,6 @@ in
       nano.enable = false;
     };
 
-    time.timeZone = "Europe/Moscow";
-
     environment.systemPackages = with pkgs; [
       cryptsetup
       file
diff --git a/modules/profiles/headful.nix b/modules/profiles/headful.nix
index 331464b..8951d83 100644
--- a/modules/profiles/headful.nix
+++ b/modules/profiles/headful.nix
@@ -96,10 +96,7 @@ in
       consoleLogLevel = 3;
     };
 
-    hardware.opengl = {
-      enable = true;
-      driSupport = true;
-    };
+    hardware.graphics.enable = true;
 
     programs = {
       dconf.enable = true;
@@ -114,6 +111,8 @@ in
       upower.enable = true;
     };
 
+    time.timeZone = "Europe/Moscow";
+
     environment.systemPackages = with pkgs; [
       arping
       dnsutils
diff --git a/modules/subversion.nix b/modules/subversion.nix
index 9398592..64ddcf3 100644
--- a/modules/subversion.nix
+++ b/modules/subversion.nix
@@ -24,7 +24,7 @@ in
             store-auth-creds = "yes";
           };
           helpers = {
-            editor-cmd = getExe config.programs.vim.package;
+            editor-cmd = getExe' config.programs.vim.package "vim";
             diff-cmd = getExe pkgs.colordiff;
           };
           miscellany = {
diff --git a/modules/vim.nix b/modules/vim.nix
new file mode 100644
index 0000000..7209e8b
--- /dev/null
+++ b/modules/vim.nix
@@ -0,0 +1,208 @@
+{
+  config,
+  lib,
+  pkgs,
+  this,
+  ...
+}:
+with lib;
+let
+  cfg = config.nixfiles.modules.vim;
+in
+{
+  options.nixfiles.modules.vim.enable = mkEnableOption "Vim";
+
+  config = mkIf cfg.enable {
+    hm.stylix.targets.vim.enable = false;
+
+    programs.vim = {
+      package = mkIf this.isHeadful (
+        pkgs.vim-full.customize {
+          name = "vim";
+          vimrcConfig = with cfg; {
+            customRC = ''
+              let $VIMFILES = expand('<sfile>:p:h')
+
+              let g:skip_defaults_vim = 1
+
+              let g:netrw_dirhistmax = 0
+
+              if has('unnamedplus')
+                set clipboard^=unnamedplus
+              else
+                set clipboard^=unnamed
+              endif
+
+              set diffopt+=iwhite
+              set hidden
+              set lazyredraw
+              set mouse=
+              set path+=**
+
+              set cmdheight=1
+              set fillchars=vert:\ "
+              set modeline
+              set noshowmode
+              set shortmess+=I
+              set textwidth=0
+              set title
+
+              set noerrorbells
+              set novisualbell
+
+              set splitbelow
+              set splitright
+
+              set complete=
+              set complete+=.
+              set complete+=b
+              set complete+=t
+              set completeopt=
+              set completeopt+=menu
+              set completeopt+=longest
+
+              set gdefault
+              set hlsearch
+              set iskeyword+=-
+              set magic
+
+              set foldmethod=marker
+              set nofoldenable
+
+              set shortmess=
+              set shortmess+=I
+              set shortmess+=T
+              set shortmess+=a
+              set shortmess+=c
+              set shortmess+=t
+
+              set nolist
+              set nowrap
+
+              set scrolloff=10
+              set sidescrolloff=10
+
+              set number
+              if v:version >= 700
+                set numberwidth=3
+              endif
+
+              set wildignorecase
+              set wildignore=
+
+              set nobackup
+              set noswapfile
+              set noundofile
+              set nowritebackup
+
+              set smartcase
+              set ignorecase
+
+              set autoindent
+              set breakindent
+              set smartindent
+
+              set expandtab
+              set shiftround
+              set shiftwidth=4
+              set smarttab
+              set softtabstop=4
+              set tabstop=4
+
+              set colorcolumn=
+              let g:EditorConfig_max_line_indicator = "none"
+
+              nnoremap        <Space>     <Nop>
+              let mapleader=" "
+
+              nnoremap        :W          :w
+              nnoremap        :W!         :w!
+              nnoremap        :Q          :q
+              nnoremap        :Q!         :q!
+
+              nnoremap <expr> j           v:count ? 'j' : 'gj'
+              nnoremap <expr> k           v:count ? 'k' : 'gk'
+
+              nnoremap        J           gt
+              nnoremap        K           gT
+
+              nnoremap        <C-A>       ^h
+              vnoremap        <C-A>       ^h
+              nnoremap        H           ^h
+              vnoremap        H           ^h
+
+              nnoremap        <C-E>       $
+              vnoremap        <C-E>       $
+              nnoremap        L           $
+              vnoremap        L           $
+
+              nnoremap        N           Nzzzv
+              nnoremap        n           nzzzv
+
+              inoremap        <C-U>       <C-g>u<C-u>
+              inoremap        <C-W>       <C-g>u<C-w>
+
+              vnoremap        <           <gv
+              vnoremap        >           >gv
+              vnoremap        <Tab>       >gv
+              vnoremap        <S-Tab>     <gv
+              nnoremap        <Tab>       >>_
+              nnoremap        <S-Tab>     <<_
+
+              nnoremap        ]b          :bnext<CR>
+              nnoremap        [b          :bprevious<CR>
+
+              nnoremap        <C-H>       <C-w>h
+              nnoremap        <C-J>       <C-w>j
+              nnoremap        <C-K>       <C-w>k
+              nnoremap        <C-R>       <C-w>l
+
+              nnoremap        *           /\<<C-r>=expand('<cword>')<CR>\><CR>
+              nnoremap        #           ?\<<C-r>=expand('<cword>')<CR>\><CR>
+
+              cnoremap        ;/          <C-r>=expand('%:p:h').'/'<CR>
+              cnoremap        ;;          <C-r>=expand('%:t')<CR>
+              cnoremap        ;.          <C-r>=expand('%:p:r')<CR>
+
+              nnoremap        <Leader>.   :lcd %:p:h<CR>
+
+              nnoremap        Q           @q
+
+              nnoremap        <Leader>c   ^v$h
+              nnoremap        <Leader>v   ggVG
+
+              nnoremap        <Leader>y   "+y
+              nnoremap        <Leader>Y   "+Y
+
+              nnoremap        <Leader>p   "+p
+              nnoremap        <Leader>P   "+P
+
+              inoremap        <C-v>       <C-c>"+pi
+              cnoremap        <C-v>       <C-r>+
+
+              nmap            <Leader>w   :w!<CR>
+              nmap            <Leader>wq  :wq!<CR>
+
+              nnoremap        ZX          :qa!<CR>
+
+              nnoremap        <Leader>q   :q<CR>
+
+              command         WS          w !sudo tee "%" >/dev/null
+            '';
+            packages.myVimPackage.start = with pkgs.vimPlugins; [
+              editorconfig-vim
+              vim-eunuch
+              vim-nix
+              vim-sensible
+              vim-sleuth
+              vim-surround
+              vim-unimpaired
+            ];
+          };
+        }
+      );
+
+      defaultEditor = true;
+    };
+  };
+}
diff --git a/modules/vim/default.nix b/modules/vim/default.nix
deleted file mode 100644
index 94cc7af..0000000
--- a/modules/vim/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-with lib;
-let
-  cfg = config.nixfiles.modules.vim;
-in
-{
-  options.nixfiles.modules.vim = {
-    enable = mkEnableOption "Vim";
-
-    rc = mkOption {
-      type = types.str;
-      default = readFile ./rc.vim;
-      description = "Configuration file.";
-    };
-
-    plugins = mkOption {
-      type = with types; listOf package;
-      default = with pkgs.vimPlugins; [
-        editorconfig-vim
-        vim-eunuch
-        vim-nix
-        vim-sensible
-        vim-sleuth
-        vim-surround
-        vim-unimpaired
-      ];
-      description = "Plugins.";
-    };
-  };
-
-  config = mkIf cfg.enable {
-    hm.stylix.targets.vim.enable = false;
-
-    programs.vim.package =
-      (pkgs.vim-full.override {
-        cscopeSupport = false;
-        darwinSupport = false;
-        features = "normal";
-        guiSupport = "gtk3";
-        luaSupport = false;
-        multibyteSupport = false;
-        netbeansSupport = false;
-        nlsSupport = false;
-        perlSupport = false;
-        pythonSupport = false;
-        rubySupport = false;
-        tclSupport = false;
-        ximSupport = false;
-      }).customize
-        {
-          name = "vim";
-          vimrcConfig = with cfg; {
-            customRC = rc;
-            packages.myVimPackage.start = plugins;
-          };
-        };
-
-    environment = {
-      systemPackages = [ config.programs.vim.package ];
-      variables = rec {
-        EDITOR = "vim";
-        VISUAL = EDITOR;
-      };
-    };
-  };
-}
diff --git a/modules/vim/rc.vim b/modules/vim/rc.vim
deleted file mode 100644
index 3bd9eb7..0000000
--- a/modules/vim/rc.vim
+++ /dev/null
@@ -1,169 +0,0 @@
-let $VIMFILES = expand('<sfile>:p:h')
-
-let g:skip_defaults_vim = 1
-
-let g:netrw_dirhistmax = 0
-
-if has('unnamedplus')
-    set clipboard^=unnamedplus
-else
-    set clipboard^=unnamed
-endif
-
-set backspace=indent,eol,start
-set diffopt+=iwhite
-set hidden
-set lazyredraw
-set mouse=
-set path+=**
-set viminfo=
-
-set cmdheight=1
-set fillchars=vert:\ "
-set modeline
-set noshowmode
-set shortmess+=I
-set textwidth=0
-set title
-
-set noerrorbells
-set novisualbell
-
-set splitbelow
-set splitright
-
-set complete=
-set complete+=.
-set complete+=b
-set complete+=t
-set completeopt=
-set completeopt+=menu
-set completeopt+=longest
-
-set gdefault
-set hlsearch
-set iskeyword+=-
-set magic
-
-set foldmethod=marker
-set nofoldenable
-
-set shortmess=
-set shortmess+=I
-set shortmess+=T
-set shortmess+=a
-set shortmess+=c
-set shortmess+=t
-
-set nolist
-set nowrap
-
-set scrolloff=10
-set sidescrolloff=10
-
-set number
-if v:version >= 700
-    set numberwidth=3
-endif
-
-set wildignorecase
-set wildignore=
-
-set nobackup
-set noswapfile
-set noundofile
-set nowritebackup
-
-set smartcase
-set ignorecase
-
-set autoindent
-set breakindent
-set smartindent
-
-set expandtab
-set shiftround
-set shiftwidth=4
-set smarttab
-set softtabstop=4
-set tabstop=4
-
-set colorcolumn=
-let g:EditorConfig_max_line_indicator = "none"
-
-nnoremap        <Space>     <Nop>
-let mapleader=" "
-
-nnoremap        :W          :w
-nnoremap        :W!         :w!
-nnoremap        :Q          :q
-nnoremap        :Q!         :q!
-
-nnoremap <expr> j           v:count ? 'j' : 'gj'
-nnoremap <expr> k           v:count ? 'k' : 'gk'
-
-nnoremap        J           gt
-nnoremap        K           gT
-
-nnoremap        <C-A>       ^h
-vnoremap        <C-A>       ^h
-nnoremap        H           ^h
-vnoremap        H           ^h
-
-nnoremap        <C-E>       $
-vnoremap        <C-E>       $
-nnoremap        L           $
-vnoremap        L           $
-
-nnoremap        N           Nzzzv
-nnoremap        n           nzzzv
-
-inoremap        <C-U>       <C-g>u<C-u>
-inoremap        <C-W>       <C-g>u<C-w>
-
-vnoremap        <           <gv
-vnoremap        >           >gv
-vnoremap        <Tab>       >gv
-vnoremap        <S-Tab>     <gv
-nnoremap        <Tab>       >>_
-nnoremap        <S-Tab>     <<_
-
-nnoremap        ]b          :bnext<CR>
-nnoremap        [b          :bprevious<CR>
-
-nnoremap        <C-H>       <C-w>h
-nnoremap        <C-J>       <C-w>j
-nnoremap        <C-K>       <C-w>k
-nnoremap        <C-R>       <C-w>l
-
-nnoremap        *           /\<<C-r>=expand('<cword>')<CR>\><CR>
-nnoremap        #           ?\<<C-r>=expand('<cword>')<CR>\><CR>
-
-cnoremap        ;/          <C-r>=expand('%:p:h').'/'<CR>
-cnoremap        ;;          <C-r>=expand('%:t')<CR>
-cnoremap        ;.          <C-r>=expand('%:p:r')<CR>
-
-nnoremap        <Leader>.   :lcd %:p:h<CR>
-
-nnoremap        Q           @q
-
-nnoremap        <Leader>c   ^v$h
-nnoremap        <Leader>v   ggVG
-
-nnoremap        <Leader>y   "+y
-nnoremap        <Leader>Y   "+Y
-
-nnoremap        <Leader>p   "+p
-nnoremap        <Leader>P   "+P
-
-inoremap        <C-v>       <C-c>"+pi
-cnoremap        <C-v>       <C-r>+
-
-nmap            <Leader>w   :w!<CR>
-nmap            <Leader>wq  :wq!<CR>
-
-nnoremap        ZX          :qa!<CR>
-
-nnoremap        <Leader>q   :q<CR>
-
-command         WS          w !sudo tee "%" >/dev/null
diff --git a/modules/wayland.nix b/modules/wayland.nix
index e3dba79..7a9820d 100644
--- a/modules/wayland.nix
+++ b/modules/wayland.nix
@@ -14,6 +14,10 @@ in
   config = mkIf cfg.enable {
     nixfiles.modules.foot.enable = true;
 
-    hm.home.packages = with pkgs; [ wl-clipboard ];
+    hm.home = {
+      packages = with pkgs; [ wl-clipboard ];
+
+      sessionVariables.NIXOS_OZONE_WL = 1;
+    };
   };
 }

Consider giving Nix/NixOS a try! <3