aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-09-02 09:43:06 +0900
committernsfisis <nsfisis@gmail.com>2023-09-02 09:43:06 +0900
commit1311917d3118c3d7dbb6815280f8fe0febbbdc8d (patch)
treeaf576b92959f77332239a1ddc22fa9e943253d89
parentf8d23391c64acfd9db15816aa2522ce0ef4ad1a5 (diff)
downloaddotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.tar.gz
dotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.tar.zst
dotfiles-1311917d3118c3d7dbb6815280f8fe0febbbdc8d.zip
home-manager: refactor a bit
-rw-r--r--flake.nix21
-rw-r--r--home-manager/home.nix21
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;
};
}