diff --git a/user/bin/default.nix b/user/bin/default.nix index e411b85..6ca9b82 100644 --- a/user/bin/default.nix +++ b/user/bin/default.nix @@ -8,13 +8,13 @@ #nsxiv-rifle = [pkgs.nsxiv]; #screenshot = [pkgs.maim pkgs.xclip]; }; - mkln = x: config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.local/nixos/user/bin/${x}"; + ln = config.u.lib.ln "${config.u.confPath}/user/bin"; in { home.file = builtins.listToAttrs ( map (x: { name = ".local/bin/${x}"; - value = {source = mkln x;}; + value = {source = ln x;}; }) ( builtins.filter diff --git a/user/config/default.nix b/user/config/default.nix index fa16445..7313b85 100644 --- a/user/config/default.nix +++ b/user/config/default.nix @@ -4,22 +4,20 @@ lib, ... }: let - mkln = x: config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.local/nixos/user/config/${x}"; - tmuxConfig = config.u.tmux.extraConfig + lib.strings.concatMapStrings (x: "\nrun ${x.rtp}") config.u.tmux.plugins; + ln = config.u.lib.ln "${config.u.confPath}/user/config"; in { - imports = [./kde]; - - u.tmux.plugins = with pkgs.tmuxPlugins; [ - vim-tmux-navigator - sessionist + imports = [ + ./kde + ./tmux ]; + fonts.fontconfig.enable = false; gtk.gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; xresources.path = "${config.xdg.configHome}/Xresources"; - xdg.configFile.alacritty.source = mkln "alacritty"; - xdg.configFile.awesome.source = mkln "awesome"; - xdg.configFile.bash.source = mkln "bash"; + xdg.configFile.alacritty.source = ln "alacritty"; + xdg.configFile.awesome.source = ln "awesome"; + xdg.configFile.bash.source = ln "bash"; xdg.configFile.fcitx5.source = ./fcitx5; xdg.configFile.fontconfig.source = ./fontconfig; xdg.configFile."gdb/gdbinit.py".source = gdb/gdbinit.py; @@ -35,6 +33,5 @@ in { xdg.configFile.qt5ct.source = ./qt5ct; xdg.configFile.readline.source = ./readline; xdg.configFile."starship.toml".source = ./starship.toml; - xdg.configFile.sx.source = mkln "sx"; - xdg.configFile."tmux/tmux.conf".text = (builtins.readFile tmux/tmux.conf) + tmuxConfig; + xdg.configFile.sx.source = ln "sx"; } diff --git a/user/config/tmux/default.nix b/user/config/tmux/default.nix new file mode 100644 index 0000000..1d779cd --- /dev/null +++ b/user/config/tmux/default.nix @@ -0,0 +1,14 @@ +{ + config, + pkgs, + lib, + ... +}: let + tmuxConfig = config.u.tmux.extraConfig + lib.strings.concatMapStrings (x: "\nrun ${x.rtp}") config.u.tmux.plugins; +in { + u.tmux.plugins = with pkgs.tmuxPlugins; [ + vim-tmux-navigator + sessionist + ]; + xdg.configFile."tmux/tmux.conf".text = (builtins.readFile ./tmux.conf) + tmuxConfig; +} diff --git a/user/options.nix b/user/options.nix index 2e7fdc0..477c007 100644 --- a/user/options.nix +++ b/user/options.nix @@ -1,5 +1,10 @@ -{lib, ...}: { +{config, lib, ...}: { options.u = { + confPath = lib.mkOption { + type = lib.types.path; + description = "path to nixos config"; + default = "${config.home.homeDirectory}/.local/nixos"; + }; tmux = { plugins = lib.mkOption { type = lib.types.listOf lib.types.package; @@ -33,5 +38,14 @@ }); description = "list of file manager bookmarks"; }; + lib = lib.mkOption { + type = lib.types.attrs; + description = "library"; + }; + }; + config.u.lib = rec { + ln = base: x: config.lib.file.mkOutOfStoreSymlink "${base}/${x}"; + lnh = ln "${config.home.homeDirectory}"; + lnn = ln "${config.u.confPath}"; }; } diff --git a/user/xdg.nix b/user/xdg.nix index 96b36a5..bec4c71 100644 --- a/user/xdg.nix +++ b/user/xdg.nix @@ -34,12 +34,12 @@ config.common.default = "kde"; }; home.file = let - mkln = x: config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/${x}"; + ln = config.u.lib.lnh; in { - ".local/home/.cache".source = mkln ".cache"; - ".local/home/.config".source = mkln ".config"; - ".local/home/.local".source = mkln ".local"; - ".local/home/Desktop".source = mkln "Desktop"; - ".local/home/Downloads".source = mkln "Downloads"; + ".local/home/.cache".source = ln ".cache"; + ".local/home/.config".source = ln ".config"; + ".local/home/.local".source = ln ".local"; + ".local/home/Desktop".source = ln "Desktop"; + ".local/home/Downloads".source = ln "Downloads"; }; }