prgrammatically enable sioyek, vesktop, claude, etc.
This commit is contained in:
parent
43f68c58a2
commit
9aac8350a5
8 changed files with 198 additions and 223 deletions
|
|
@ -73,14 +73,3 @@ vim.api.nvim_create_autocmd('WinLeave', {
|
||||||
vim.wo.cursorline = false
|
vim.wo.cursorline = false
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.api.nvim_create_autocmd('BufEnter', {
|
|
||||||
group = aug,
|
|
||||||
callback = function()
|
|
||||||
local sw = vim.bo.shiftwidth
|
|
||||||
if sw <= 0 then return end
|
|
||||||
vim.opt_local.listchars:append({
|
|
||||||
leadmultispace = '│' .. string.rep(' ', sw - 1),
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
|
||||||
|
|
@ -17,3 +17,6 @@ user_pref("font.name.monospace.x-western", "Berkeley Mono");
|
||||||
user_pref("font.name.serif.x-math", "STIX Two Math");
|
user_pref("font.name.serif.x-math", "STIX Two Math");
|
||||||
user_pref("font.name-list.serif.x-math", "STIX Two Math, Latin Modern Math, Times New Roman");
|
user_pref("font.name-list.serif.x-math", "STIX Two Math, Latin Modern Math, Times New Roman");
|
||||||
user_pref("font.default.x-western", "sans-serif");
|
user_pref("font.default.x-western", "sans-serif");
|
||||||
|
|
||||||
|
user_pref("browser.tabs.insertAfterCurrent", true);
|
||||||
|
user_pref("browser.tabs.insertRelatedAfterCurrent", true);
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,6 @@
|
||||||
./modules/git.nix
|
./modules/git.nix
|
||||||
./modules/editor.nix
|
./modules/editor.nix
|
||||||
./modules/hyprland.nix
|
./modules/hyprland.nix
|
||||||
./modules/hyprlock.nix
|
|
||||||
./modules/hypridle.nix
|
|
||||||
./modules/hyprpaper.nix
|
|
||||||
./modules/ui.nix
|
./modules/ui.nix
|
||||||
./modules/packages.nix
|
./modules/packages.nix
|
||||||
];
|
];
|
||||||
|
|
@ -36,6 +33,10 @@
|
||||||
home.sessionPath = [ "${config.home.homeDirectory}/.config/nix/scripts" ];
|
home.sessionPath = [ "${config.home.homeDirectory}/.config/nix/scripts" ];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
programs.zen.enable = true;
|
||||||
|
programs.sioyek.enable = true;
|
||||||
|
programs.vesktop.enable = true;
|
||||||
|
programs.claude.enable = true;
|
||||||
|
|
||||||
systemd.user.services.nix-flake-update = {
|
systemd.user.services.nix-flake-update = {
|
||||||
Unit.Description = "Update nix flake inputs";
|
Unit.Description = "Update nix flake inputs";
|
||||||
|
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = [ pkgs.hypridle ];
|
|
||||||
|
|
||||||
xdg.configFile."hypr/hypridle.conf".text = ''
|
|
||||||
general {
|
|
||||||
lock_cmd = wp lock && hyprlock
|
|
||||||
after_sleep_cmd = hyprctl dispatch dpms on
|
|
||||||
}
|
|
||||||
|
|
||||||
listener {
|
|
||||||
timeout = 300
|
|
||||||
on-timeout = wp lock && hyprlock
|
|
||||||
}
|
|
||||||
|
|
||||||
listener {
|
|
||||||
timeout = 600
|
|
||||||
on-timeout = hyprctl dispatch dpms off
|
|
||||||
on-resume = hyprctl dispatch dpms on
|
|
||||||
}
|
|
||||||
|
|
||||||
listener {
|
|
||||||
timeout = 1800
|
|
||||||
on-timeout = systemctl suspend
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -26,8 +26,64 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = lib.mkIf isNixOS [ pkgs.xdg-desktop-portal-gtk ];
|
home.packages =
|
||||||
|
lib.optionals isNixOS [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
pkgs.hyprpaper
|
||||||
|
]
|
||||||
|
++ [
|
||||||
|
pkgs.hyprlock
|
||||||
|
pkgs.hypridle
|
||||||
|
];
|
||||||
|
|
||||||
xdg.configFile."hypr/themes/midnight.conf".text = mkHyprTheme config.palettes.midnight;
|
xdg.configFile."hypr/themes/midnight.conf".text = mkHyprTheme config.palettes.midnight;
|
||||||
xdg.configFile."hypr/themes/daylight.conf".text = mkHyprTheme config.palettes.daylight;
|
xdg.configFile."hypr/themes/daylight.conf".text = mkHyprTheme config.palettes.daylight;
|
||||||
|
|
||||||
|
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
||||||
|
wallpaper {
|
||||||
|
monitor =
|
||||||
|
path = ${config.home.homeDirectory}/img/screen/wallpaper.jpg
|
||||||
|
}
|
||||||
|
|
||||||
|
splash = false
|
||||||
|
'';
|
||||||
|
|
||||||
|
xdg.configFile."hypr/hyprlock.conf".text = ''
|
||||||
|
general {
|
||||||
|
hide_cursor = true
|
||||||
|
grace = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
path = ${config.home.homeDirectory}/img/screen/lock.jpg
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
xdg.configFile."hypr/hypridle.conf".text = ''
|
||||||
|
general {
|
||||||
|
lock_cmd = wp lock && hyprlock
|
||||||
|
after_sleep_cmd = hyprctl dispatch dpms on
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 300
|
||||||
|
on-timeout = wp lock && hyprlock
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 600
|
||||||
|
on-timeout = hyprctl dispatch dpms off
|
||||||
|
on-resume = hyprctl dispatch dpms on
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 1800
|
||||||
|
on-timeout = systemctl suspend
|
||||||
|
}
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
isNixOS,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = [ pkgs.hyprlock ];
|
|
||||||
|
|
||||||
xdg.configFile."hypr/hyprlock.conf".text = ''
|
|
||||||
general {
|
|
||||||
hide_cursor = true
|
|
||||||
grace = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
background {
|
|
||||||
monitor =
|
|
||||||
path = ${config.home.homeDirectory}/img/screen/lock.jpg
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = false
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
isNixOS,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
home.packages = lib.mkIf isNixOS [ pkgs.hyprpaper ];
|
|
||||||
|
|
||||||
xdg.configFile."hypr/hyprpaper.conf".text = ''
|
|
||||||
wallpaper {
|
|
||||||
monitor =
|
|
||||||
path = ${config.home.homeDirectory}/img/screen/wallpaper.jpg
|
|
||||||
}
|
|
||||||
|
|
||||||
splash = false
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -8,11 +8,8 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
enableClaude = true;
|
cfg = config.programs;
|
||||||
enableZen = true;
|
repoDir = "${config.home.homeDirectory}/.config/nix";
|
||||||
enableSioyek = true;
|
|
||||||
enableVesktop = true;
|
|
||||||
enableNeovim = config.programs.neovim.enable;
|
|
||||||
|
|
||||||
sioyek-wrapped = pkgs.symlinkJoin {
|
sioyek-wrapped = pkgs.symlinkJoin {
|
||||||
name = "sioyek";
|
name = "sioyek";
|
||||||
|
|
@ -23,32 +20,37 @@ let
|
||||||
--set QT_QPA_PLATFORM xcb
|
--set QT_QPA_PLATFORM xcb
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
repoDir = "${config.home.homeDirectory}/.config/nix";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options.programs = {
|
||||||
|
zen.enable = lib.mkEnableOption "zen browser";
|
||||||
|
sioyek.enable = lib.mkEnableOption "sioyek PDF viewer";
|
||||||
|
vesktop.enable = lib.mkEnableOption "vesktop Discord client";
|
||||||
|
claude.enable = lib.mkEnableOption "claude code";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
home.sessionVariables = lib.mkMerge [
|
home.sessionVariables = lib.mkMerge [
|
||||||
(lib.mkIf enableZen { BROWSER = "zen"; })
|
(lib.mkIf cfg.zen.enable { BROWSER = "zen"; })
|
||||||
(lib.mkIf enableClaude { CLAUDE_CONFIG_DIR = "${config.xdg.configHome}/claude"; })
|
(lib.mkIf cfg.claude.enable { CLAUDE_CONFIG_DIR = "${config.xdg.configHome}/claude"; })
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.mpv.enable = true;
|
programs.mpv.enable = true;
|
||||||
|
|
||||||
home.packages = lib.mkMerge [
|
home.packages = lib.mkMerge [
|
||||||
(with pkgs; [
|
(with pkgs; [
|
||||||
# signal-desktop
|
|
||||||
slack
|
slack
|
||||||
bitwarden-desktop
|
bitwarden-desktop
|
||||||
gemini-cli
|
gemini-cli
|
||||||
typst
|
typst
|
||||||
])
|
])
|
||||||
(lib.mkIf enableClaude [ pkgs.claude-code ])
|
(lib.mkIf cfg.claude.enable [ pkgs.claude-code ])
|
||||||
(lib.mkIf enableZen [ zen-browser.packages.${hostPlatform}.default ])
|
(lib.mkIf cfg.zen.enable [ zen-browser.packages.${hostPlatform}.default ])
|
||||||
(lib.mkIf enableSioyek [ sioyek-wrapped ])
|
(lib.mkIf cfg.sioyek.enable [ sioyek-wrapped ])
|
||||||
(lib.mkIf enableVesktop [ pkgs.vesktop ])
|
(lib.mkIf cfg.vesktop.enable [ pkgs.vesktop ])
|
||||||
];
|
];
|
||||||
|
|
||||||
xdg.configFile."claude/settings.json" = lib.mkIf enableClaude {
|
xdg.configFile."claude/settings.json" = lib.mkIf cfg.claude.enable {
|
||||||
text = builtins.toJSON {
|
text = builtins.toJSON {
|
||||||
permissions.defaultMode = "acceptEdits";
|
permissions.defaultMode = "acceptEdits";
|
||||||
network_access = true;
|
network_access = true;
|
||||||
|
|
@ -61,35 +63,35 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."claude/CLAUDE.md" = lib.mkIf enableClaude {
|
xdg.configFile."claude/CLAUDE.md" = lib.mkIf cfg.claude.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/CLAUDE.md";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/CLAUDE.md";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."claude/rules" = lib.mkIf enableClaude {
|
xdg.configFile."claude/rules" = lib.mkIf cfg.claude.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/rules";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/rules";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."claude/skills" = lib.mkIf enableClaude {
|
xdg.configFile."claude/skills" = lib.mkIf cfg.claude.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/skills";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/claude/skills";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."sioyek/keys_user.config" = lib.mkIf enableSioyek {
|
xdg.configFile."sioyek/keys_user.config" = lib.mkIf cfg.sioyek.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/keys_user.config";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/keys_user.config";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."sioyek/prefs_user.config" = lib.mkIf enableSioyek {
|
xdg.configFile."sioyek/prefs_user.config" = lib.mkIf cfg.sioyek.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/prefs_user.config";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/prefs_user.config";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."sioyek/themes/midnight.config" = lib.mkIf enableSioyek {
|
xdg.configFile."sioyek/themes/midnight.config" = lib.mkIf cfg.sioyek.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/themes/midnight.config";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/themes/midnight.config";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."sioyek/themes/daylight.config" = lib.mkIf enableSioyek {
|
xdg.configFile."sioyek/themes/daylight.config" = lib.mkIf cfg.sioyek.enable {
|
||||||
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/themes/daylight.config";
|
source = config.lib.file.mkOutOfStoreSymlink "${repoDir}/config/sioyek/themes/daylight.config";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.activation.linkZenProfile = lib.mkIf enableZen (
|
home.activation.linkZenProfile = lib.mkIf cfg.zen.enable (
|
||||||
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||||
zen_config="$HOME/.zen"
|
zen_config="$HOME/.zen"
|
||||||
repo_zen="${repoDir}/config/zen"
|
repo_zen="${repoDir}/config/zen"
|
||||||
|
|
@ -140,21 +142,22 @@ in
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = lib.mkMerge [
|
defaultApplications = lib.mkMerge [
|
||||||
(lib.mkIf enableZen {
|
(lib.mkIf cfg.zen.enable {
|
||||||
"x-scheme-handler/http" = "zen.desktop";
|
"x-scheme-handler/http" = "zen.desktop";
|
||||||
"x-scheme-handler/https" = "zen.desktop";
|
"x-scheme-handler/https" = "zen.desktop";
|
||||||
"text/html" = "zen.desktop";
|
"text/html" = "zen.desktop";
|
||||||
})
|
})
|
||||||
(lib.mkIf enableNeovim {
|
(lib.mkIf cfg.neovim.enable {
|
||||||
"text/plain" = "nvim.desktop";
|
"text/plain" = "nvim.desktop";
|
||||||
})
|
})
|
||||||
(lib.mkIf enableSioyek {
|
(lib.mkIf cfg.sioyek.enable {
|
||||||
"application/pdf" = "sioyek.desktop";
|
"application/pdf" = "sioyek.desktop";
|
||||||
"application/epub+zip" = "sioyek.desktop";
|
"application/epub+zip" = "sioyek.desktop";
|
||||||
})
|
})
|
||||||
(lib.mkIf enableVesktop {
|
(lib.mkIf cfg.vesktop.enable {
|
||||||
"x-scheme-handler/discord" = "vesktop.desktop";
|
"x-scheme-handler/discord" = "vesktop.desktop";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue