From 1311917d3118c3d7dbb6815280f8fe0febbbdc8d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 2 Sep 2023 09:43:06 +0900 Subject: home-manager: refactor a bit --- flake.nix | 21 ++++++++++++++++++--- home-manager/home.nix | 21 +++++++++------------ 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/flake.nix b/flake.nix index 79121d2..35763ae 100644 --- a/flake.nix +++ b/flake.nix @@ -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; }; } -- cgit v1.2.3-70-g09d2