diff options
| author | nsfisis <nsfisis@gmail.com> | 2023-09-02 09:43:06 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2023-09-02 09:43:06 +0900 |
| commit | 1311917d3118c3d7dbb6815280f8fe0febbbdc8d (patch) | |
| tree | af576b92959f77332239a1ddc22fa9e943253d89 | |
| parent | f8d23391c64acfd9db15816aa2522ce0ef4ad1a5 (diff) | |
| download | dotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.tar.gz dotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.tar.zst dotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.zip | |
home-manager: refactor a bit
| -rw-r--r-- | flake.nix | 21 | ||||
| -rw-r--r-- | home-manager/home.nix | 21 |
2 files changed, 27 insertions, 15 deletions
@@ -18,18 +18,33 @@ }; }; - outputs = { nixpkgs, home-manager, ... } @ inputs: { - homeConfigurations.ken = home-manager.lib.homeManagerConfiguration { + outputs = { + nixpkgs, + home-manager, + ... + } @ inputs: + let + mkHomeConfiguration = { + system, + env, + ... + }: home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { - system = "x86_64-linux"; + system = system; config.allowUnfree = true; }; extraSpecialArgs = { inherit inputs; + inherit env; }; modules = [ ./home-manager/home.nix ]; }; + in { + homeConfigurations.ken = mkHomeConfiguration { + system = "x86_64-linux"; + env.gui.clipboard.copyCommand = null; + }; }; } diff --git a/home-manager/home.nix b/home-manager/home.nix index a0eb5cd..3a61227 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,7 +1,7 @@ -{ pkgs, ... }: - +{ pkgs, specialArgs, ... }: let - isWayland = builtins.getEnv "XDG_SESSION_TYPE" == "wayland"; + clipboardCopyCommand = specialArgs.env.gui.clipboard.copyCommand; + requiresWlClipboard = clipboardCopyCommand == "wl-copy"; in { home.username = "ken"; @@ -39,7 +39,7 @@ in # pkgs.zsh pkgs.nodePackages.typescript-language-server - ] ++ pkgs.lib.optional isWayland pkgs.wl-clipboard; + ] ++ pkgs.lib.optional requiresWlClipboard pkgs.wl-clipboard; home.file = { # "hoge".source = dotfiles/piyo; @@ -68,19 +68,16 @@ in prefix = "C-t"; terminal = "tmux-256color"; - extraConfig = ( + extraConfig = let commonConfig = builtins.readFile ./config/tmux/tmux.conf; - extraConfig = if isWayland then + extraConfig = if clipboardCopyCommand != null then '' - bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy" + bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "${clipboardCopyCommand}" '' else - '' - bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy" - ''; + ""; in - commonConfig + extraConfig - ); + commonConfig + extraConfig; }; } |
