merge programs.nix with common shared programs
This commit is contained in:
parent
241ecaf5ab
commit
d6b317ce1c
@ -363,8 +363,8 @@ binds {
|
|||||||
Mod+R { switch-preset-column-width; }
|
Mod+R { switch-preset-column-width; }
|
||||||
Mod+Shift+R { reset-window-height; }
|
Mod+Shift+R { reset-window-height; }
|
||||||
// Fullscreen - consistent with sway/hyprland
|
// Fullscreen - consistent with sway/hyprland
|
||||||
Mod+F { fullscreen-window; }
|
Mod+F { maximize-column; }
|
||||||
Mod+Shift+F { maximize-column; }
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
// Floating toggle
|
// Floating toggle
|
||||||
Mod+Space { toggle-window-floating; }
|
Mod+Space { toggle-window-floating; }
|
||||||
|
|||||||
@ -17,15 +17,10 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../../shared/modules/apps/firefox/firefox.nix
|
../../../shared/modules/home-manager/programs.nix
|
||||||
../../../shared/modules/apps/ghostty.nix
|
|
||||||
../../../shared/modules/apps/helix.nix
|
|
||||||
../../../shared/modules/home-manager/git-autosync.nix
|
../../../shared/modules/home-manager/git-autosync.nix
|
||||||
../../../shared/modules/home-manager/noctalia.nix
|
../../../shared/modules/home-manager/noctalia.nix
|
||||||
../../../shared/modules/home-manager/json2nix.nix
|
|
||||||
../../../shared/modules/home-manager/style-preview.nix
|
|
||||||
../niri/niri_home.nix
|
../niri/niri_home.nix
|
||||||
./programs.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = userName;
|
home.username = userName;
|
||||||
@ -33,19 +28,9 @@ in
|
|||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
home.stateVersion = "25.05"; # Please read the comment before changing.
|
||||||
|
|
||||||
firefoxApp.enable = true;
|
sharedPrograms.enable = true;
|
||||||
ghosttyApp.enable = true;
|
|
||||||
helixApp.enable = true;
|
|
||||||
stylePreview.enable = true;
|
|
||||||
json2nix.enable = true;
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
# enable OpenCode here to generate Stylix theming (using unstable package)
|
|
||||||
programs.opencode = {
|
|
||||||
enable = true;
|
|
||||||
package = unstable.opencode;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Stylix auto-theming - applies to all programs.<name>.enable apps
|
# Stylix auto-theming - applies to all programs.<name>.enable apps
|
||||||
stylix = {
|
stylix = {
|
||||||
autoEnable = true;
|
autoEnable = true;
|
||||||
|
|||||||
@ -1,41 +0,0 @@
|
|||||||
# Stylix-themed program configurations
|
|
||||||
# All programs here are managed via programs.<name>.enable for Stylix auto-theming
|
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
#
|
|
||||||
# Terminals
|
|
||||||
#
|
|
||||||
# Ghostty config is in shared/modules/apps/ghostty.nix (enable with ghosttyApp.enable = true)
|
|
||||||
|
|
||||||
foot = {
|
|
||||||
enable = true;
|
|
||||||
# Stylix handles colors and fonts
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
pad = "4x4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#
|
|
||||||
# CLI Tools
|
|
||||||
#
|
|
||||||
bat.enable = true;
|
|
||||||
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
btop.enable = true;
|
|
||||||
|
|
||||||
mpv.enable = true;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Launcher
|
|
||||||
#
|
|
||||||
wofi.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -317,8 +317,8 @@ binds {
|
|||||||
Mod+R { switch-preset-column-width; }
|
Mod+R { switch-preset-column-width; }
|
||||||
Mod+Shift+R { reset-window-height; }
|
Mod+Shift+R { reset-window-height; }
|
||||||
// Fullscreen
|
// Fullscreen
|
||||||
Mod+F { fullscreen-window; }
|
Mod+F { maximize-column; }
|
||||||
Mod+Shift+F { maximize-column; }
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
// Floating toggle
|
// Floating toggle
|
||||||
Mod+Space { toggle-window-floating; }
|
Mod+Space { toggle-window-floating; }
|
||||||
|
|||||||
@ -14,15 +14,10 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../../shared/modules/apps/firefox/firefox.nix
|
../../../shared/modules/home-manager/programs.nix
|
||||||
../../../shared/modules/apps/ghostty.nix
|
|
||||||
../../../shared/modules/apps/helix.nix
|
|
||||||
../../../shared/modules/home-manager/git-autosync.nix
|
../../../shared/modules/home-manager/git-autosync.nix
|
||||||
../../../shared/modules/home-manager/noctalia.nix
|
../../../shared/modules/home-manager/noctalia.nix
|
||||||
../../../shared/modules/home-manager/json2nix.nix
|
|
||||||
../../../shared/modules/home-manager/style-preview.nix
|
|
||||||
../niri/niri_home.nix
|
../niri/niri_home.nix
|
||||||
./programs.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = userName;
|
home.username = userName;
|
||||||
@ -30,11 +25,7 @@ in
|
|||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
home.stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
|
||||||
firefoxApp.enable = true;
|
sharedPrograms.enable = true;
|
||||||
ghosttyApp.enable = true;
|
|
||||||
helixApp.enable = true;
|
|
||||||
stylePreview.enable = true;
|
|
||||||
json2nix.enable = true;
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
# Stylix auto-theming - applies to all programs.<name>.enable apps
|
# Stylix auto-theming - applies to all programs.<name>.enable apps
|
||||||
|
|||||||
@ -1,41 +0,0 @@
|
|||||||
# Stylix-themed program configurations
|
|
||||||
# All programs here are managed via programs.<name>.enable for Stylix auto-theming
|
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs = {
|
|
||||||
#
|
|
||||||
# Terminals
|
|
||||||
#
|
|
||||||
# Ghostty config is in shared/modules/apps/ghostty.nix (enable with ghosttyApp.enable = true)
|
|
||||||
|
|
||||||
foot = {
|
|
||||||
enable = true;
|
|
||||||
# Stylix handles colors and fonts
|
|
||||||
settings = {
|
|
||||||
main = {
|
|
||||||
pad = "4x4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#
|
|
||||||
# CLI Tools
|
|
||||||
#
|
|
||||||
bat.enable = true;
|
|
||||||
|
|
||||||
fzf = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
btop.enable = true;
|
|
||||||
|
|
||||||
mpv.enable = true;
|
|
||||||
|
|
||||||
#
|
|
||||||
# Launcher
|
|
||||||
#
|
|
||||||
wofi.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -402,8 +402,8 @@ binds {
|
|||||||
Mod+R { switch-preset-column-width; }
|
Mod+R { switch-preset-column-width; }
|
||||||
Mod+Shift+R { reset-window-height; }
|
Mod+Shift+R { reset-window-height; }
|
||||||
// Fullscreen - consistent with sway/hyprland
|
// Fullscreen - consistent with sway/hyprland
|
||||||
Mod+F { fullscreen-window; }
|
Mod+F { maximize-column; }
|
||||||
Mod+Shift+F { maximize-column; }
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
// Floating toggle
|
// Floating toggle
|
||||||
Mod+Space { toggle-window-floating; }
|
Mod+Space { toggle-window-floating; }
|
||||||
|
|||||||
@ -17,14 +17,9 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../../shared/modules/apps/firefox/firefox.nix
|
|
||||||
../../../shared/modules/apps/ghostty.nix
|
|
||||||
../../../shared/modules/apps/helix.nix
|
|
||||||
../../../shared/modules/home-manager/programs.nix
|
../../../shared/modules/home-manager/programs.nix
|
||||||
../../../shared/modules/home-manager/git-autosync.nix
|
../../../shared/modules/home-manager/git-autosync.nix
|
||||||
../../../shared/modules/home-manager/noctalia.nix
|
../../../shared/modules/home-manager/noctalia.nix
|
||||||
../../../shared/modules/home-manager/json2nix.nix
|
|
||||||
../../../shared/modules/home-manager/style-preview.nix
|
|
||||||
../niri/niri_home.nix
|
../niri/niri_home.nix
|
||||||
../vpn-proxy/vpn-proxy.nix
|
../vpn-proxy/vpn-proxy.nix
|
||||||
];
|
];
|
||||||
@ -47,20 +42,9 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Enable shared modules
|
# Enable shared modules
|
||||||
firefoxApp.enable = true;
|
|
||||||
ghosttyApp.enable = true;
|
|
||||||
helixApp.enable = true;
|
|
||||||
sharedPrograms.enable = true;
|
sharedPrograms.enable = true;
|
||||||
stylePreview.enable = true;
|
|
||||||
json2nix.enable = true;
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
# OpenCode with Stylix theming (using unstable package)
|
|
||||||
programs.opencode = {
|
|
||||||
enable = true;
|
|
||||||
package = unstable.opencode;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable VPN proxy script
|
# Enable VPN proxy script
|
||||||
vpnProxy.enable = true;
|
vpnProxy.enable = true;
|
||||||
|
|
||||||
@ -144,6 +128,7 @@ in
|
|||||||
neofetch
|
neofetch
|
||||||
unzip
|
unzip
|
||||||
nmap
|
nmap
|
||||||
|
file
|
||||||
|
|
||||||
#
|
#
|
||||||
# Photo / Video
|
# Photo / Video
|
||||||
@ -166,7 +151,6 @@ in
|
|||||||
# Other
|
# Other
|
||||||
#
|
#
|
||||||
chromium
|
chromium
|
||||||
keepassxc
|
|
||||||
obs-studio
|
obs-studio
|
||||||
gnome-disk-utility
|
gnome-disk-utility
|
||||||
hugo
|
hugo
|
||||||
|
|||||||
@ -358,8 +358,8 @@ binds {
|
|||||||
Mod+R { switch-preset-column-width; }
|
Mod+R { switch-preset-column-width; }
|
||||||
Mod+Shift+R { reset-window-height; }
|
Mod+Shift+R { reset-window-height; }
|
||||||
// Fullscreen - consistent with sway/hyprland
|
// Fullscreen - consistent with sway/hyprland
|
||||||
Mod+F { fullscreen-window; }
|
Mod+F { maximize-column; }
|
||||||
Mod+Shift+F { maximize-column; }
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
// Floating toggle
|
// Floating toggle
|
||||||
Mod+Space { toggle-window-floating; }
|
Mod+Space { toggle-window-floating; }
|
||||||
|
|||||||
@ -7,14 +7,9 @@
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../../shared/modules/apps/firefox/firefox.nix
|
|
||||||
../../../shared/modules/apps/ghostty.nix
|
|
||||||
../../../shared/modules/apps/helix.nix
|
|
||||||
../../../shared/modules/home-manager/programs.nix
|
../../../shared/modules/home-manager/programs.nix
|
||||||
../../../shared/modules/home-manager/git-autosync.nix
|
../../../shared/modules/home-manager/git-autosync.nix
|
||||||
../../../shared/modules/home-manager/noctalia.nix
|
../../../shared/modules/home-manager/noctalia.nix
|
||||||
../../../shared/modules/home-manager/json2nix.nix
|
|
||||||
../../../shared/modules/home-manager/style-preview.nix
|
|
||||||
../niri/niri_home.nix
|
../niri/niri_home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -28,20 +23,9 @@
|
|||||||
stylix.autoEnable = true;
|
stylix.autoEnable = true;
|
||||||
|
|
||||||
# Enable shared modules
|
# Enable shared modules
|
||||||
firefoxApp.enable = true;
|
|
||||||
ghosttyApp.enable = true;
|
|
||||||
helixApp.enable = true;
|
|
||||||
sharedPrograms.enable = true;
|
sharedPrograms.enable = true;
|
||||||
stylePreview.enable = true;
|
|
||||||
json2nix.enable = true;
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
# OpenCode with Stylix theming (using unstable package)
|
|
||||||
programs.opencode = {
|
|
||||||
enable = true;
|
|
||||||
package = unstable.opencode;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Git autosync for star-command
|
# Git autosync for star-command
|
||||||
services.git-autosync = {
|
services.git-autosync = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@ -1,21 +0,0 @@
|
|||||||
[General]
|
|
||||||
ConfigVersion=2
|
|
||||||
|
|
||||||
[Browser]
|
|
||||||
CustomProxyLocation=
|
|
||||||
Enabled=true
|
|
||||||
|
|
||||||
[GUI]
|
|
||||||
ApplicationTheme=dark
|
|
||||||
TrayIconAppearance=monochrome-light
|
|
||||||
|
|
||||||
[KeeShare]
|
|
||||||
Active="<?xml version=\"1.0\"?><KeeShare><Active/></KeeShare>\n"
|
|
||||||
Own="<?xml version=\"1.0\"?><KeeShare><PrivateKey>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8OYI/I2otsVMdam8HqfnEYa6emzV2EzXAST+1A4IOC8ojOJdGbhKbvScu5MwgPAWDRiS0yIr6fjNHpTfHCMqY/K8+UsaubHIAjVVR5SDrBvAroTfts/oIqFcW8ab9DYMPpopaxnXh25gGrmEBb33GzuL2LJ4kXz40BEYjsOSffOM83/RstRhmXaV86nPmtbswyLwSEGsPZZliMIgMEoT/Y2qcjfwRJIRIEWNybmlgrHWAzVj5sr00KQhfTRo6dQG/yBMoElYGNvKSTmQDy7WVR+Mh+rYPKOwb2v8D7UrPDKd1n+GheEBKpvE8mDcSg/vGlXOHirOBdtuk+/xhqAqxAgMBAAECggEAETzLs/WN0+5r4q3sdM1juCY2pC7UTWJtUeqYtilClVUOEiisw0CcXVKMI+wZ0jqSSgHipa3B+zZogtSw0Cj6yNpHQD67aZ45LdoY/ggs+hPSFeTMpu0MZmjoROEk6QLTmwYmSzGRT88DqVpPPEmWFrQRWU3KaSFRzy4JsFtoVz9OYeFw37d9pG8BYeruqE7kx+uzCYWRjQXrjmofFpbxGWhkIUcvbVZ8wUVso4gT4JxAQks6nryL5M9NXefU+x/e1Rkopa5aRG/H0dPMYX/8uV2lsr/AW4+kaMPrKoAsPUhErrrJDwNL2zCmcAzNgsthUo/6yLLKlnk+THAGnruEawKBgQDDG9qpvR+OCQrV1rUiX2JmomkMPKIkAf4xLFNAdOwnPMRnq1mRCn0OJmmPmRF+I5fM/64tFzGK/KD5fxll3ybN+mpA540ho9Gvk89AbILXmp9MQMEh92H5tf4/q1EKgsFjMM0aplg2zupsimyi4LuI6tCBUhWun5X5yxUsbyBW2wKBgQD296WmxLJEQJcHfHN/RYBs9HAKCWZTn8kLgoFgCxTHHTB+i5N9yug78N3LmsYUBYwbshpVewxcv6xrfxQJ/igB+zXAgDAghhvbqw+kAiFo+OapchX+Yvm6LzHdnpOIUEDcVhP/IPyGwCNqL3DYhX0A7Qudk4/g73MStAS5aHucYwKBgG4/RweyvincIitC74dErq2gCAvKFzSRi7jtev1pFCf3xmNuB2ZVruRYAD4MGD5Wjmhf8WO5P11x8uQIVamitqKdZXzXWoAvuUSlGO8mYajCzlCgJoGy78HSfKAthdWSnQQXh04PwLj3oq9CaLCAnHd5d+gbIfVSZ8SGZKh/Ap8RAoGADF8dgjwqPfcKWcqnMoH1y/92uVn9MUU42gXAm2ISuWLB8iTlz5Bhj9ciFTf8ojYg7aY/YXbXiLHlXkEwbMu5j1fZOnpxbr+pF5j7IJkmuU52p5had7LXlbcVhWeTNmnmxeLd/5LUc5+eZoxX19DgETLOuScSNw9nsVEpR2xvfMcCgYEAgR4j9M8Nq088dA5Z3VGGxJ/l3GI+gChogZBRmyG48GuBygMVujJ5Kowqid0a3ImAnvxa8BGvEJlinmAsKmyi1UsmXMCLzOWO+jRNuIRoscFk1m2D3IfG43NnjoOhr9aJZHga8DHd1FXNPTqT74jkePHlDzpGOaHXQUN5CyGNouA=</PrivateKey><PublicKey><Signer>nate</Signer><Key>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8OYI/I2otsVMdam8HqfnEYa6emzV2EzXAST+1A4IOC8ojOJdGbhKbvScu5MwgPAWDRiS0yIr6fjNHpTfHCMqY/K8+UsaubHIAjVVR5SDrBvAroTfts/oIqFcW8ab9DYMPpopaxnXh25gGrmEBb33GzuL2LJ4kXz40BEYjsOSffOM83/RstRhmXaV86nPmtbswyLwSEGsPZZliMIgMEoT/Y2qcjfwRJIRIEWNybmlgrHWAzVj5sr00KQhfTRo6dQG/yBMoElYGNvKSTmQDy7WVR+Mh+rYPKOwb2v8D7UrPDKd1n+GheEBKpvE8mDcSg/vGlXOHirOBdtuk+/xhqAqxAgMBAAECggEAETzLs/WN0+5r4q3sdM1juCY2pC7UTWJtUeqYtilClVUOEiisw0CcXVKMI+wZ0jqSSgHipa3B+zZogtSw0Cj6yNpHQD67aZ45LdoY/ggs+hPSFeTMpu0MZmjoROEk6QLTmwYmSzGRT88DqVpPPEmWFrQRWU3KaSFRzy4JsFtoVz9OYeFw37d9pG8BYeruqE7kx+uzCYWRjQXrjmofFpbxGWhkIUcvbVZ8wUVso4gT4JxAQks6nryL5M9NXefU+x/e1Rkopa5aRG/H0dPMYX/8uV2lsr/AW4+kaMPrKoAsPUhErrrJDwNL2zCmcAzNgsthUo/6yLLKlnk+THAGnruEawKBgQDDG9qpvR+OCQrV1rUiX2JmomkMPKIkAf4xLFNAdOwnPMRnq1mRCn0OJmmPmRF+I5fM/64tFzGK/KD5fxll3ybN+mpA540ho9Gvk89AbILXmp9MQMEh92H5tf4/q1EKgsFjMM0aplg2zupsimyi4LuI6tCBUhWun5X5yxUsbyBW2wKBgQD296WmxLJEQJcHfHN/RYBs9HAKCWZTn8kLgoFgCxTHHTB+i5N9yug78N3LmsYUBYwbshpVewxcv6xrfxQJ/igB+zXAgDAghhvbqw+kAiFo+OapchX+Yvm6LzHdnpOIUEDcVhP/IPyGwCNqL3DYhX0A7Qudk4/g73MStAS5aHucYwKBgG4/RweyvincIitC74dErq2gCAvKFzSRi7jtev1pFCf3xmNuB2ZVruRYAD4MGD5Wjmhf8WO5P11x8uQIVamitqKdZXzXWoAvuUSlGO8mYajCzlCgJoGy78HSfKAthdWSnQQXh04PwLj3oq9CaLCAnHd5d+gbIfVSZ8SGZKh/Ap8RAoGADF8dgjwqPfcKWcqnMoH1y/92uVn9MUU42gXAm2ISuWLB8iTlz5Bhj9ciFTf8ojYg7aY/YXbXiLHlXkEwbMu5j1fZOnpxbr+pF5j7IJkmuU52p5had7LXlbcVhWeTNmnmxeLd/5LUc5+eZoxX19DgETLOuScSNw9nsVEpR2xvfMcCgYEAgR4j9M8Nq088dA5Z3VGGxJ/l3GI+gChogZBRmyG48GuBygMVujJ5Kowqid0a3ImAnvxa8BGvEJlinmAsKmyi1UsmXMCLzOWO+jRNuIRoscFk1m2D3IfG43NnjoOhr9aJZHga8DHd1FXNPTqT74jkePHlDzpGOaHXQUN5CyGNouA=</Key></PublicKey></KeeShare>\n"
|
|
||||||
QuietSuccess=true
|
|
||||||
|
|
||||||
[PasswordGenerator]
|
|
||||||
AdditionalChars=
|
|
||||||
ExcludedChars=
|
|
||||||
Length=25
|
|
||||||
SpecialChars=false
|
|
||||||
@ -161,7 +161,7 @@ in
|
|||||||
|
|
||||||
# Selection
|
# Selection
|
||||||
j = "join_selections";
|
j = "join_selections";
|
||||||
J = "yank"
|
J = "yank_joined";
|
||||||
C-s = "split_selection_on_newline";
|
C-s = "split_selection_on_newline";
|
||||||
C-minus = "merge_selections";
|
C-minus = "merge_selections";
|
||||||
C-_ = "merge_consecutive_selections";
|
C-_ = "merge_consecutive_selections";
|
||||||
|
|||||||
@ -1,31 +1,87 @@
|
|||||||
{config, lib, ...}:
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.sharedPrograms;
|
cfg = config.sharedPrograms;
|
||||||
|
unstable = import inputs.nixpkgs-unstable {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.sharedPrograms = {
|
imports = [
|
||||||
enable = lib.mkEnableOption "enable all basic programs with Stylix auto-theming";
|
../apps/firefox/firefox.nix
|
||||||
|
../apps/ghostty.nix
|
||||||
|
../apps/helix.nix
|
||||||
|
./json2nix.nix
|
||||||
|
./style-preview.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options.sharedPrograms = {
|
||||||
|
enable = lib.mkEnableOption "enable all shared programs with Stylix auto-theming";
|
||||||
|
|
||||||
|
# CLI tools
|
||||||
bat.enable = lib.mkEnableOption "enable bat (cat replacement)";
|
bat.enable = lib.mkEnableOption "enable bat (cat replacement)";
|
||||||
fzf.enable = lib.mkEnableOption "enable fzf (fuzzy finder)";
|
fzf.enable = lib.mkEnableOption "enable fzf (fuzzy finder)";
|
||||||
btop.enable = lib.mkEnableOption "enable btop (system monitor)";
|
btop.enable = lib.mkEnableOption "enable btop (system monitor)";
|
||||||
mpv.enable = lib.mkEnableOption "enable mpv (media player)";
|
mpv.enable = lib.mkEnableOption "enable mpv (media player)";
|
||||||
wofi.enable = lib.mkEnableOption "enable wofi (application launcher)";
|
wofi.enable = lib.mkEnableOption "enable wofi (application launcher)";
|
||||||
foot.enable = lib.mkEnableOption "enable foot (terminal emulator)";
|
keepassxc.enable = lib.mkEnableOption "enable keepassxc (password manager)";
|
||||||
|
opencode.enable = lib.mkEnableOption "enable opencode (AI coding assistant)";
|
||||||
|
|
||||||
|
# Apps (pass-through to underlying modules)
|
||||||
|
firefox.enable = lib.mkEnableOption "enable firefox (web browser)";
|
||||||
|
|
||||||
|
ghostty = {
|
||||||
|
enable = lib.mkEnableOption "enable ghostty (terminal emulator)";
|
||||||
|
fontFamily = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "Maple Mono NF";
|
||||||
|
description = "Font family for Ghostty";
|
||||||
|
};
|
||||||
|
enableLigatures = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Enable font ligatures in Ghostty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
helix = {
|
||||||
|
enable = lib.mkEnableOption "enable helix (text editor)";
|
||||||
|
themeOverrides = lib.mkOption {
|
||||||
|
type = lib.types.attrsOf lib.types.anything;
|
||||||
|
default = { };
|
||||||
|
description = "Override minimal theme scopes for helix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
stylePreview.enable = lib.mkEnableOption "enable style preview (Stylix color viewer)";
|
||||||
|
json2nix.enable = lib.mkEnableOption "enable json2nix (JSON to Nix converter)";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
# When sharedPrograms.enable is true, enable all programs
|
# When sharedPrograms.enable is true, enable all programs by default
|
||||||
(lib.mkIf cfg.enable {
|
(lib.mkIf cfg.enable {
|
||||||
sharedPrograms.bat.enable = lib.mkDefault true;
|
sharedPrograms = {
|
||||||
sharedPrograms.fzf.enable = lib.mkDefault true;
|
bat.enable = lib.mkDefault true;
|
||||||
sharedPrograms.btop.enable = lib.mkDefault true;
|
fzf.enable = lib.mkDefault true;
|
||||||
sharedPrograms.mpv.enable = lib.mkDefault true;
|
btop.enable = lib.mkDefault true;
|
||||||
sharedPrograms.wofi.enable = lib.mkDefault true;
|
mpv.enable = lib.mkDefault true;
|
||||||
sharedPrograms.foot.enable = lib.mkDefault true;
|
wofi.enable = lib.mkDefault true;
|
||||||
|
keepassxc.enable = lib.mkDefault true;
|
||||||
|
opencode.enable = lib.mkDefault true;
|
||||||
|
firefox.enable = lib.mkDefault true;
|
||||||
|
ghostty.enable = lib.mkDefault true;
|
||||||
|
helix.enable = lib.mkDefault true;
|
||||||
|
stylePreview.enable = lib.mkDefault true;
|
||||||
|
json2nix.enable = lib.mkDefault true;
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
# Individual program configurations
|
# CLI tools
|
||||||
(lib.mkIf cfg.bat.enable {
|
(lib.mkIf cfg.bat.enable {
|
||||||
programs.bat.enable = true;
|
programs.bat.enable = true;
|
||||||
})
|
})
|
||||||
@ -49,15 +105,69 @@ in
|
|||||||
programs.wofi.enable = true;
|
programs.wofi.enable = true;
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf cfg.foot.enable {
|
(lib.mkIf cfg.keepassxc.enable {
|
||||||
programs.foot = {
|
programs.keepassxc = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
autostart = false;
|
||||||
settings = {
|
settings = {
|
||||||
main = {
|
Browser = {
|
||||||
pad = "4x4";
|
Enabled = true;
|
||||||
|
UpdateBinaryPath = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
PasswordGenerator = {
|
||||||
|
Length = 25;
|
||||||
|
SpecialChars = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
GUI = {
|
||||||
|
AdvancedSettings = true;
|
||||||
|
ApplicationTheme = "dark";
|
||||||
|
CompactMode = true;
|
||||||
|
HidePasswords = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
Security = {
|
||||||
|
ClearClipboardTimeout = 20;
|
||||||
|
LockDatabaseIdleSeconds = 21600;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.opencode.enable {
|
||||||
|
programs.opencode = {
|
||||||
|
enable = true;
|
||||||
|
package = unstable.opencode;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
# Apps — wire to underlying module options
|
||||||
|
(lib.mkIf cfg.firefox.enable {
|
||||||
|
firefoxApp.enable = true;
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.ghostty.enable {
|
||||||
|
ghosttyApp = {
|
||||||
|
enable = true;
|
||||||
|
fontFamily = cfg.ghostty.fontFamily;
|
||||||
|
enableLigatures = cfg.ghostty.enableLigatures;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.helix.enable {
|
||||||
|
helixApp = {
|
||||||
|
enable = true;
|
||||||
|
themeOverrides = cfg.helix.themeOverrides;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.stylePreview.enable {
|
||||||
|
stylePreview.enable = true;
|
||||||
|
})
|
||||||
|
|
||||||
|
(lib.mkIf cfg.json2nix.enable {
|
||||||
|
json2nix.enable = true;
|
||||||
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user