Add mime type module and refactor options
This commit is contained in:
parent
3a2266d44f
commit
69fb898087
25 changed files with 641 additions and 478 deletions
|
|
@ -8,7 +8,7 @@
|
|||
}:
|
||||
{
|
||||
options.mods = {
|
||||
base_packages = {
|
||||
basePackages = {
|
||||
enable = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
Enables default system packages.
|
||||
'';
|
||||
};
|
||||
additional_packages = lib.mkOption {
|
||||
additionalPackages = lib.mkOption {
|
||||
default = [ ];
|
||||
example = [ pkgs.openssl ];
|
||||
type = with lib.types; listOf package;
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
Note that these are installed even if base packages is disabled, e.g. you can also use this as the only packages to install.
|
||||
'';
|
||||
};
|
||||
special_programs = lib.mkOption {
|
||||
specialPrograms = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
special program configuration to be added which require programs.something notation.
|
||||
'';
|
||||
};
|
||||
special_services = lib.mkOption {
|
||||
specialServices = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
config = lib.optionalAttrs (options ? environment.systemPackages) {
|
||||
environment.systemPackages =
|
||||
if config.mods.base_packages.enable then
|
||||
if config.mods.basePackages.enable then
|
||||
with pkgs;
|
||||
[
|
||||
adwaita-icon-theme
|
||||
|
|
@ -73,13 +73,13 @@
|
|||
upower
|
||||
xorg.xkbutils
|
||||
]
|
||||
++ config.mods.base_packages.additional_packages
|
||||
++ config.mods.basePackages.additionalPackages
|
||||
else
|
||||
config.mods.base_packages.additional_packages;
|
||||
config.mods.basePackages.additionalPackages;
|
||||
|
||||
gtk.iconCache.enable = false;
|
||||
services =
|
||||
if config.mods.base_packages.enable then
|
||||
if config.mods.basePackages.enable then
|
||||
{
|
||||
upower.enable = true;
|
||||
dbus = {
|
||||
|
|
@ -92,12 +92,12 @@
|
|||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
// config.mods.base_packages.special_services
|
||||
// config.mods.basePackages.specialServices
|
||||
else
|
||||
config.mods.base_packages.special_services;
|
||||
config.mods.basePackages.specialServices;
|
||||
|
||||
programs =
|
||||
if config.mods.base_packages.enable then
|
||||
if config.mods.basePackages.enable then
|
||||
{
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
|
|
@ -119,9 +119,9 @@
|
|||
ssh.startAgent = true;
|
||||
gnupg.agent.enable = true;
|
||||
}
|
||||
// config.mods.base_packages.special_programs
|
||||
// config.mods.basePackages.specialPrograms
|
||||
else
|
||||
config.mods.base_packages.special_programs;
|
||||
config.mods.basePackages.specialPrograms;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./acpid.nix
|
||||
./base_packages.nix
|
||||
./basePackages.nix
|
||||
./bluetooth.nix
|
||||
./coding.nix
|
||||
./drives.nix
|
||||
|
|
@ -12,13 +12,13 @@
|
|||
./gdm.nix
|
||||
./git.nix
|
||||
./gnome.nix
|
||||
./gnome_services.nix
|
||||
./gnomeServices.nix
|
||||
./gpu.nix
|
||||
./greetd.nix
|
||||
./home_packages.nix
|
||||
./homePackages.nix
|
||||
./hyprland
|
||||
./kde.nix
|
||||
./kde_connect.nix
|
||||
./kdeConnect.nix
|
||||
./keepassxc.nix
|
||||
./kitty.nix
|
||||
./media.nix
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
./stylix.nix
|
||||
./teams.nix
|
||||
./virtualbox.nix
|
||||
./mime.nix
|
||||
./xkb.nix
|
||||
./xone.nix
|
||||
./yazi
|
||||
|
|
|
|||
|
|
@ -130,7 +130,9 @@ in
|
|||
};
|
||||
};
|
||||
# TODO make this convert to choice of drives -> thanks to funny types this doesn't work...
|
||||
swapDevices = lib.mkIf config.mods.drives.useSwap.enable [ { device = "/dev/disk/by-label/SWAP"; } ];
|
||||
swapDevices = lib.mkIf config.mods.drives.useSwap.enable [
|
||||
{ device = "/dev/disk/by-label/SWAP"; }
|
||||
];
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
abbr --add gl 'git pull origin'
|
||||
abbr --add gm 'git commit -m'
|
||||
abbr --add ga "git add -A"
|
||||
abbr --add gc "git commit --amend --no-edit"
|
||||
abbr --add g+ 'bear -- g++ -Wextra -Werror -std=c++20'
|
||||
abbr --add s "kitty +kitten ssh"
|
||||
abbr --add zl 'z "" '
|
||||
|
|
|
|||
|
|
@ -44,13 +44,13 @@
|
|||
type = lib.types.bool;
|
||||
description = "Whether to use gamemode";
|
||||
};
|
||||
gpu_optimization = lib.mkOption {
|
||||
gpuOptimization = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = "Whether to use GPU performance setting. NOTE: this is at your own risk!";
|
||||
};
|
||||
gpu_device = lib.mkOption {
|
||||
gpuDevice = lib.mkOption {
|
||||
default = 0;
|
||||
example = 1;
|
||||
type = lib.types.int;
|
||||
|
|
@ -71,9 +71,9 @@
|
|||
general = {
|
||||
governor = "performance";
|
||||
};
|
||||
gpu = lib.mkIf config.mods.gaming.gpu_optimization {
|
||||
gpu = lib.mkIf config.mods.gaming.gpuOptimization {
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
gpu_device = config.mods.gaming.gpu_device;
|
||||
gpu_device = config.mods.gaming.gpuDevice;
|
||||
amd_performance_level = "high";
|
||||
nv_powermizer_mode = 1;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
lib,
|
||||
config,
|
||||
options,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
|
@ -19,7 +18,7 @@
|
|||
type = lib.types.str;
|
||||
description = "Git email";
|
||||
};
|
||||
ssh_config = lib.mkOption {
|
||||
sshConfig = lib.mkOption {
|
||||
default = ''
|
||||
Host github.com
|
||||
${
|
||||
|
|
@ -63,7 +62,7 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
home.file.".ssh/config".text = config.mods.git.ssh_config;
|
||||
home.file.".ssh/config".text = config.mods.git.sshConfig;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
}:
|
||||
{
|
||||
options.mods = {
|
||||
gnome_services.enable = lib.mkOption {
|
||||
gnomeServices.enable = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.gnome_services.enable (
|
||||
config = lib.mkIf config.mods.gnomeServices.enable (
|
||||
lib.optionalAttrs (options ? services.gnome.gnome-keyring) {
|
||||
programs.dconf.enable = true;
|
||||
services = {
|
||||
|
|
@ -6,14 +6,14 @@
|
|||
...
|
||||
}:
|
||||
{
|
||||
options.mods.home_packages = {
|
||||
options.mods.homePackages = {
|
||||
useDefaultPackages = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = "Use default packages (will use additional_packages only if disabled)";
|
||||
};
|
||||
additional_packages = lib.mkOption {
|
||||
additionalPackages = lib.mkOption {
|
||||
default = [ ];
|
||||
example = [ pkgs.flatpak ];
|
||||
type = with lib.types; listOf package;
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
Will be installed regardless of default home manager packages are installed.
|
||||
'';
|
||||
};
|
||||
special_programs = lib.mkOption {
|
||||
specialPrograms = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
special program configuration to be added which require programs.something notation.
|
||||
'';
|
||||
};
|
||||
special_services = lib.mkOption {
|
||||
specialServices = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -77,18 +77,18 @@
|
|||
};
|
||||
config = lib.optionalAttrs (options ? home.packages) {
|
||||
home.packages =
|
||||
if config.mods.home_packages.useDefaultPackages then
|
||||
if config.mods.homePackages.useDefaultPackages then
|
||||
with pkgs;
|
||||
[
|
||||
# TODO add fcp once fixed....
|
||||
(lib.mkIf config.mods.home_packages.ncspot ncspot)
|
||||
(lib.mkIf config.mods.home_packages.vesktop vesktop)
|
||||
(lib.mkIf config.mods.home_packages.nextcloudClient nextcloud-client)
|
||||
(lib.mkIf (!isNull config.mods.home_packages.matrixClient) config.mods.home_packages.matrixClient)
|
||||
(lib.mkIf (!isNull config.mods.home_packages.mailClient) config.mods.home_packages.mailClient)
|
||||
(lib.mkIf config.mods.homePackages.ncspot ncspot)
|
||||
(lib.mkIf config.mods.homePackages.vesktop vesktop)
|
||||
(lib.mkIf config.mods.homePackages.nextcloudClient nextcloud-client)
|
||||
(lib.mkIf (!isNull config.mods.homePackages.matrixClient) config.mods.homePackages.matrixClient)
|
||||
(lib.mkIf (!isNull config.mods.homePackages.mailClient) config.mods.homePackages.mailClient)
|
||||
(lib.mkIf (
|
||||
!isNull config.mods.home_packages.additionalBrowser
|
||||
) config.mods.home_packages.additionalBrowser)
|
||||
!isNull config.mods.homePackages.additionalBrowser
|
||||
) config.mods.homePackages.additionalBrowser)
|
||||
adw-gtk3
|
||||
bat
|
||||
brightnessctl
|
||||
|
|
@ -119,9 +119,9 @@
|
|||
zenith
|
||||
zoxide
|
||||
]
|
||||
++ config.mods.home_packages.additional_packages
|
||||
++ config.mods.homePackages.additionalPackages
|
||||
else
|
||||
config.mods.home_packages.additional_packages;
|
||||
config.mods.homePackages.additionalPackages;
|
||||
|
||||
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml { }).generate "direnv" {
|
||||
global = {
|
||||
|
|
@ -129,14 +129,14 @@
|
|||
};
|
||||
};
|
||||
programs =
|
||||
if config.mods.home_packages.useDefaultPackages then
|
||||
config.mods.home_packages.special_programs
|
||||
if config.mods.homePackages.useDefaultPackages then
|
||||
config.mods.homePackages.specialPrograms
|
||||
else
|
||||
config.mods.home_packages.special_programs;
|
||||
config.mods.homePackages.specialPrograms;
|
||||
services =
|
||||
if config.mods.home_packages.useDefaultPackages then
|
||||
config.mods.home_packages.special_services
|
||||
if config.mods.homePackages.useDefaultPackages then
|
||||
config.mods.homePackages.specialServices
|
||||
else
|
||||
config.mods.home_packages.special_services;
|
||||
config.mods.homePackages.specialServices;
|
||||
};
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
type = lib.types.bool;
|
||||
description = "Enables anyrun";
|
||||
};
|
||||
use_default_config = lib.mkOption {
|
||||
useDefaultConfig = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
Use preconfigured anyrun config.
|
||||
'';
|
||||
};
|
||||
custom_config = lib.mkOption {
|
||||
customConfig = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
Will be merged with default configuration if enabled.
|
||||
'';
|
||||
};
|
||||
use_default_css = lib.mkOption {
|
||||
useDefaultCss = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -41,7 +41,7 @@
|
|||
Use preconfigured anyrun css.
|
||||
'';
|
||||
};
|
||||
custom_css = lib.mkOption {
|
||||
customCss = lib.mkOption {
|
||||
default = '''';
|
||||
example = ''
|
||||
#window {
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
programs.anyrun = {
|
||||
enable = true;
|
||||
config =
|
||||
if config.mods.hyprland.anyrun.use_default_config then
|
||||
if config.mods.hyprland.anyrun.useDefaultConfig then
|
||||
{
|
||||
plugins = [
|
||||
inputs.anyrun.packages.${pkgs.system}.applications
|
||||
|
|
@ -83,12 +83,12 @@
|
|||
hidePluginInfo = true;
|
||||
closeOnClick = true;
|
||||
}
|
||||
// config.mods.hyprland.anyrun.custom_config
|
||||
// config.mods.hyprland.anyrun.customConfig
|
||||
else
|
||||
config.mods.hyprland.anyrun.custom_config;
|
||||
config.mods.hyprland.anyrun.customConfig;
|
||||
|
||||
extraCss =
|
||||
if config.mods.hyprland.anyrun.use_default_css then
|
||||
if config.mods.hyprland.anyrun.useDefaultCss then
|
||||
''
|
||||
#window {
|
||||
border-radius: 10px;
|
||||
|
|
@ -137,9 +137,9 @@
|
|||
border-radius: 10px;
|
||||
}
|
||||
''
|
||||
+ config.mods.hyprland.anyrun.custom_css
|
||||
+ config.mods.hyprland.anyrun.customCss
|
||||
else
|
||||
config.mods.hyprland.anyrun.custom_css;
|
||||
config.mods.hyprland.anyrun.customCss;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
The workspace configuration for hyprland.
|
||||
'';
|
||||
};
|
||||
no_atomic = lib.mkOption {
|
||||
noAtomic = lib.mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
Use tearing
|
||||
'';
|
||||
};
|
||||
extra_autostart = lib.mkOption {
|
||||
extraAutostart = lib.mkOption {
|
||||
default = [ ];
|
||||
example = [ "your application" ];
|
||||
type = lib.types.listOf lib.types.str;
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
Extra exec_once.
|
||||
'';
|
||||
};
|
||||
use_default_config = lib.mkOption {
|
||||
useDefaultConfig = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
Use preconfigured Hyprland config.
|
||||
'';
|
||||
};
|
||||
custom_config = lib.mkOption {
|
||||
customConfig = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings =
|
||||
if config.mods.hyprland.use_default_config then
|
||||
if config.mods.hyprland.useDefaultConfig then
|
||||
{
|
||||
"$mod" = "SUPER";
|
||||
|
||||
|
|
@ -131,14 +131,14 @@
|
|||
"$mod SUPERSHIFT,K,exec, playerctl -a pause & hyprlock & systemctl hibernate"
|
||||
|
||||
# media keys
|
||||
(lib.mkIf config.mods.scripts.audio-control ",XF86AudioMute,exec, audio-control mute")
|
||||
(lib.mkIf config.mods.scripts.audio-control ",XF86AudioLowerVolume,exec, audio-control sink -5%")
|
||||
(lib.mkIf config.mods.scripts.audio-control ",XF86AudioRaiseVolume,exec, audio-control sink +5%")
|
||||
(lib.mkIf config.mods.scripts.audioControl ",XF86AudioMute,exec, audio-control mute")
|
||||
(lib.mkIf config.mods.scripts.audioControl ",XF86AudioLowerVolume,exec, audio-control sink -5%")
|
||||
(lib.mkIf config.mods.scripts.audioControl ",XF86AudioRaiseVolume,exec, audio-control sink +5%")
|
||||
",XF86AudioPlay,exec, playerctl play-pause"
|
||||
",XF86AudioNext,exec, playerctl next"
|
||||
",XF86AudioPrev,exec, playerctl previous"
|
||||
(lib.mkIf config.mods.scripts.change-brightness ",XF86MonBrightnessDown,exec, change-brightness brightness 10%-")
|
||||
(lib.mkIf config.mods.scripts.change-brightness ",XF86MonBrightnessUp,exec, change-brightness brightness +10%")
|
||||
(lib.mkIf config.mods.scripts.changeBrightness ",XF86MonBrightnessDown,exec, change-brightness brightness 10%-")
|
||||
(lib.mkIf config.mods.scripts.changeBrightness ",XF86MonBrightnessUp,exec, change-brightness brightness +10%")
|
||||
|
||||
# hyprland keybinds
|
||||
# misc
|
||||
|
|
@ -219,7 +219,7 @@
|
|||
border_size = 3;
|
||||
"col.active_border" = lib.mkOverride 51 "0xFFFF0000 0xFF00FF00 0xFF0000FF 45deg";
|
||||
# "col.inactive_border" = "0x66333333";
|
||||
allow_tearing = lib.mkIf config.mods.hyprland.no_atomic true;
|
||||
allow_tearing = lib.mkIf config.mods.hyprland.noAtomic true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
|
|
@ -297,7 +297,7 @@
|
|||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
"QT_SCALE_FACTOR,1"
|
||||
''EDITOR,"neovide --novsync --nofork"''
|
||||
(lib.mkIf config.mods.hyprland.no_atomic "WLR_DRM_NO_ATOMIC,1")
|
||||
(lib.mkIf config.mods.hyprland.noAtomic "WLR_DRM_NO_ATOMIC,1")
|
||||
"GTK_USE_PORTAL, 1"
|
||||
|
||||
(lib.mkIf config.mods.gpu.nvidia.enable "LIBVA_DRIVER_NAME,nvidia")
|
||||
|
|
@ -349,7 +349,7 @@
|
|||
# should be taken care of with the new systemd services
|
||||
# "nextcloud --background"
|
||||
"oxinoti"
|
||||
] ++ config.mods.hyprland.extra_autostart;
|
||||
] ++ config.mods.hyprland.extraAutostart;
|
||||
|
||||
# plugin = {
|
||||
# hyprspace = {
|
||||
|
|
@ -359,9 +359,9 @@
|
|||
# };
|
||||
# };
|
||||
}
|
||||
// config.mods.hyprland.custom_config
|
||||
// config.mods.hyprland.customConfig
|
||||
else
|
||||
lib.mkForce config.mods.hyprland.custom_config;
|
||||
lib.mkForce config.mods.hyprland.customConfig;
|
||||
plugins = config.mods.hyprland.plugins;
|
||||
#inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
|
|
@ -17,262 +16,309 @@ in
|
|||
type = lib.types.bool;
|
||||
description = "Enables ironbar";
|
||||
};
|
||||
useDefaultConfig = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Use preconfigured ironbar config.
|
||||
'';
|
||||
};
|
||||
customConfig = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
description = ''
|
||||
Custom ironbar configuration.
|
||||
Will be merged with default configuration if enabled.
|
||||
'';
|
||||
};
|
||||
useDefaultCss = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Use preconfigured ironbar css.
|
||||
'';
|
||||
};
|
||||
customCss = lib.mkOption {
|
||||
default = '''';
|
||||
example = ''
|
||||
#window {
|
||||
border-radius: none;
|
||||
}
|
||||
'';
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
Custom ironbar css.
|
||||
Will be merged with default css if enabled.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.mods.hyprland.ironbar.enable (
|
||||
lib.optionalAttrs (options ? programs.ironbar) {
|
||||
|
||||
programs.ironbar = {
|
||||
enable = true;
|
||||
style = ''
|
||||
@import url("/home/${username}/.config/gtk-3.0/gtk.css");
|
||||
style =
|
||||
if config.mods.hyprland.ironbar.useDefaultCss then
|
||||
''
|
||||
@import url("/home/${username}/.config/gtk-3.0/gtk.css");
|
||||
|
||||
* {
|
||||
color: #71bbe6;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
* {
|
||||
color: #71bbe6;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.background {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
.background {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.workspaces {
|
||||
margin: 2px 0px 0px 5px;
|
||||
border-radius: 10px;
|
||||
/* background-color: #2b2c3b; */
|
||||
background-color: #1E1E2E;
|
||||
padding: 2px 5px 2px 5px;
|
||||
}
|
||||
.workspaces {
|
||||
margin: 2px 0px 0px 5px;
|
||||
border-radius: 10px;
|
||||
/* background-color: #2b2c3b; */
|
||||
background-color: #1E1E2E;
|
||||
padding: 2px 5px 2px 5px;
|
||||
}
|
||||
|
||||
.workspaces .item {
|
||||
margin: 0px 3px 0px 3px;
|
||||
font-size: 13px;
|
||||
border-radius: 100%;
|
||||
padding: 0px 2px 0px 3px;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
.workspaces .item {
|
||||
margin: 0px 3px 0px 3px;
|
||||
font-size: 13px;
|
||||
border-radius: 100%;
|
||||
padding: 0px 2px 0px 3px;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
.workspaces .item:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
.workspaces .item:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
|
||||
.workspaces .item.focused {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
.workspaces .item.focused {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
|
||||
.audio-box {
|
||||
padding: 2em;
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.audio-box {
|
||||
padding: 2em;
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.audio-slider {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
.audio-slider {
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.audio-button {
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin: 0px 1em 20px 1em;
|
||||
border-radius: 100%;
|
||||
font-size: 17px;
|
||||
}
|
||||
.audio-button {
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin: 0px 1em 20px 1em;
|
||||
border-radius: 100%;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.audio-button-box {
|
||||
padding: 0px 2.5em 0px 2.5em;
|
||||
}
|
||||
.audio-button-box {
|
||||
padding: 0px 2.5em 0px 2.5em;
|
||||
}
|
||||
|
||||
.focused {
|
||||
/* margin: 2px 0px 0px 0px; */
|
||||
padding: 0px 5px 0px 5px;
|
||||
/* background-color: 1a1b26; */
|
||||
background-color: #1E1E2E;
|
||||
font-size: 17px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.focused {
|
||||
/* margin: 2px 0px 0px 0px; */
|
||||
padding: 0px 5px 0px 5px;
|
||||
/* background-color: 1a1b26; */
|
||||
background-color: #1E1E2E;
|
||||
font-size: 17px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#bar #end {
|
||||
margin: 0px 5px 0px 0px;
|
||||
padding: 0px 5px 0px 5px;
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 10px;
|
||||
}
|
||||
#bar #end {
|
||||
margin: 0px 5px 0px 0px;
|
||||
padding: 0px 5px 0px 5px;
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.popup-button {
|
||||
padding: 0px 5px 0px 3px;
|
||||
margin: 0em 3px;
|
||||
border-radius: 100%;
|
||||
font-size: 13px;
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
.popup-button {
|
||||
padding: 0px 5px 0px 3px;
|
||||
margin: 0em 3px;
|
||||
border-radius: 100%;
|
||||
font-size: 13px;
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
|
||||
.popup-button-box {
|
||||
padding: 2px 0px 2px 0px;
|
||||
}
|
||||
.popup-button-box {
|
||||
padding: 2px 0px 2px 0px;
|
||||
}
|
||||
|
||||
.clock {
|
||||
padding: 0px 5px 0px 5px;
|
||||
font-size: 17px;
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
.clock {
|
||||
padding: 0px 5px 0px 5px;
|
||||
font-size: 17px;
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
|
||||
.clock:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
.clock:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
|
||||
.custom button {
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
.custom button {
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
|
||||
.custom button:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
.custom button:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
|
||||
.memory-usage {
|
||||
font-size: 15px;
|
||||
margin: 0px 5px 0px 0px;
|
||||
}
|
||||
.memory-usage {
|
||||
font-size: 15px;
|
||||
margin: 0px 5px 0px 0px;
|
||||
}
|
||||
|
||||
.memory-usage:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
.memory-usage:hover {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
|
||||
.popup-clock {
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 5px;
|
||||
padding: 2px 8px 10px 8px;
|
||||
}
|
||||
.popup-clock {
|
||||
background-color: #1E1E2E;
|
||||
border-radius: 5px;
|
||||
padding: 2px 8px 10px 8px;
|
||||
}
|
||||
|
||||
.popup-clock .calendar-clock {
|
||||
font-size: 2.5em;
|
||||
padding-bottom: 0.1em;
|
||||
}
|
||||
.popup-clock .calendar-clock {
|
||||
font-size: 2.5em;
|
||||
padding-bottom: 0.1em;
|
||||
}
|
||||
|
||||
.popup-clock .calendar {
|
||||
border-radius: 5px;
|
||||
font-size: 1.05em;
|
||||
}
|
||||
.popup-clock .calendar {
|
||||
border-radius: 5px;
|
||||
font-size: 1.05em;
|
||||
}
|
||||
|
||||
.popup-clock .calendar:selected {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
'';
|
||||
.popup-clock .calendar:selected {
|
||||
background-color: #3e4152;
|
||||
}
|
||||
''
|
||||
+ config.mods.hyprland.ironbar.customCss
|
||||
else
|
||||
config.mods.hyprland.ironbar.customCss;
|
||||
features = [
|
||||
#"another_feature"
|
||||
];
|
||||
config = {
|
||||
monitors."${config.conf.defaultMonitor}" = {
|
||||
end = config.conf.ironbar.modules ++ [
|
||||
monitors."${config.conf.defaultMonitor}" =
|
||||
if config.mods.hyprland.ironbar.useDefaultConfig then
|
||||
{
|
||||
type = "sys_info";
|
||||
format = [ " {memory_percent}" ];
|
||||
interval.memory = 30;
|
||||
class = "memory-usage";
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
bar = [
|
||||
end = config.conf.ironbar.modules ++ [
|
||||
{
|
||||
type = "button";
|
||||
class = "popup-button";
|
||||
label = "";
|
||||
on_click = "popup:toggle";
|
||||
type = "sys_info";
|
||||
format = [ " {memory_percent}" ];
|
||||
interval.memory = 30;
|
||||
class = "memory-usage";
|
||||
}
|
||||
];
|
||||
class = "popup-button-box";
|
||||
popup = [
|
||||
{
|
||||
type = "box";
|
||||
orientation = "vertical";
|
||||
class = "audio-box";
|
||||
widgets = [
|
||||
type = "custom";
|
||||
bar = [
|
||||
{
|
||||
type = "button";
|
||||
class = "popup-button";
|
||||
label = "";
|
||||
on_click = "popup:toggle";
|
||||
}
|
||||
];
|
||||
class = "popup-button-box";
|
||||
popup = [
|
||||
{
|
||||
type = "box";
|
||||
orientation = "horizontal";
|
||||
orientation = "vertical";
|
||||
class = "audio-box";
|
||||
widgets = [
|
||||
{
|
||||
type = "button";
|
||||
class = "audio-button";
|
||||
label = "";
|
||||
on_click = "!/home/${username}/.config/eww/scripts/audio_control.sh bluetooth";
|
||||
type = "box";
|
||||
orientation = "horizontal";
|
||||
widgets = [
|
||||
{
|
||||
type = "button";
|
||||
class = "audio-button";
|
||||
label = "";
|
||||
on_click = "!/home/${username}/.config/eww/scripts/audio_control.sh bluetooth";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
class = "audio-button";
|
||||
label = "";
|
||||
on_click = "!/home/${username}/.config/eww/scripts/audio_control.sh internal";
|
||||
}
|
||||
];
|
||||
class = "audio-button-box";
|
||||
}
|
||||
{
|
||||
type = "button";
|
||||
class = "audio-button";
|
||||
label = "";
|
||||
on_click = "!/home/${username}/.config/eww/scripts/audio_control.sh internal";
|
||||
type = "label";
|
||||
label = "Output";
|
||||
}
|
||||
{
|
||||
type = "slider";
|
||||
class = "audio-slider";
|
||||
step = 1.0;
|
||||
length = 200;
|
||||
value = "pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||
on_change = "!pactl set-sink-volume @DEFAULT_SINK@ $0%";
|
||||
}
|
||||
{
|
||||
type = "label";
|
||||
label = "Input";
|
||||
}
|
||||
{
|
||||
type = "slider";
|
||||
class = "audio-slider";
|
||||
step = 1.0;
|
||||
length = 200;
|
||||
value = "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||
on_change = "!pactl set-source-volume @DEFAULT_SOURCE@ $0%";
|
||||
}
|
||||
];
|
||||
class = "audio-button-box";
|
||||
}
|
||||
{
|
||||
type = "label";
|
||||
label = "Output";
|
||||
}
|
||||
{
|
||||
type = "slider";
|
||||
class = "audio-slider";
|
||||
step = 1.0;
|
||||
length = 200;
|
||||
value = "pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||
on_change = "!pactl set-sink-volume @DEFAULT_SINK@ $0%";
|
||||
}
|
||||
{
|
||||
type = "label";
|
||||
label = "Input";
|
||||
}
|
||||
{
|
||||
type = "slider";
|
||||
class = "audio-slider";
|
||||
step = 1.0;
|
||||
length = 200;
|
||||
value = "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'";
|
||||
on_change = "!pactl set-source-volume @DEFAULT_SOURCE@ $0%";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
type = "custom";
|
||||
bar = [
|
||||
{
|
||||
type = "button";
|
||||
class = "popup-button";
|
||||
label = "";
|
||||
on_click = "!oxidash --css /home/${username}/gits/oxidash/style.css";
|
||||
type = "custom";
|
||||
bar = [
|
||||
{
|
||||
type = "button";
|
||||
class = "popup-button";
|
||||
label = "";
|
||||
on_click = "!oxidash --css /home/${username}/gits/oxidash/style.css";
|
||||
}
|
||||
];
|
||||
class = "popup-button-box";
|
||||
}
|
||||
{
|
||||
type = "clock";
|
||||
format = "%I:%M";
|
||||
format_popup = "%I:%M:%S";
|
||||
locale = "en_US";
|
||||
}
|
||||
{ type = "tray"; }
|
||||
];
|
||||
position = "top";
|
||||
height = 10;
|
||||
anchor_to_edges = true;
|
||||
start = [
|
||||
{
|
||||
type = "workspaces";
|
||||
all_monitors = true;
|
||||
}
|
||||
];
|
||||
center = [
|
||||
{
|
||||
type = "focused";
|
||||
show_icon = true;
|
||||
show_title = true;
|
||||
icon_size = 20;
|
||||
truncate = "end";
|
||||
}
|
||||
];
|
||||
class = "popup-button-box";
|
||||
}
|
||||
{
|
||||
type = "clock";
|
||||
format = "%I:%M";
|
||||
format_popup = "%I:%M:%S";
|
||||
locale = "en_US";
|
||||
}
|
||||
{ type = "tray"; }
|
||||
];
|
||||
position = "top";
|
||||
height = 10;
|
||||
anchor_to_edges = true;
|
||||
start = [
|
||||
{
|
||||
type = "workspaces";
|
||||
all_monitors = true;
|
||||
}
|
||||
];
|
||||
center = [
|
||||
{
|
||||
type = "focused";
|
||||
show_icon = true;
|
||||
show_title = true;
|
||||
icon_size = 20;
|
||||
truncate = "end";
|
||||
}
|
||||
];
|
||||
};
|
||||
// config.mods.hyprland.ironbar.customConfig
|
||||
else
|
||||
config.mods.hyprland.ironbar.customConfig;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
{
|
||||
|
||||
options.mods = {
|
||||
kde_connect.enable = lib.mkOption {
|
||||
kdeConnect.enable = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
example = true;
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.mods.kde_connect.enable (
|
||||
config = lib.mkIf config.mods.kdeConnect.enable (
|
||||
lib.optionalAttrs (options ? networking.firewall) {
|
||||
networking.firewall = {
|
||||
allowedTCPPortRanges = [
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
Additional media packages.
|
||||
'';
|
||||
};
|
||||
special_programs = lib.mkOption {
|
||||
specialPrograms = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
special program configuration to be added which require programs.something notation.
|
||||
'';
|
||||
};
|
||||
special_services = lib.mkOption {
|
||||
specialServices = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -78,13 +78,13 @@
|
|||
obs-studio.enable = true;
|
||||
obs-studio.plugins = with pkgs; [ obs-studio-plugins.obs-vaapi ];
|
||||
}
|
||||
// config.mods.media.special_programs
|
||||
// config.mods.media.specialPrograms
|
||||
else
|
||||
config.mods.media.special_programs;
|
||||
config.mods.media.specialPrograms;
|
||||
services =
|
||||
if config.mods.media.useBasePackages then
|
||||
config.mods.media.special_services
|
||||
config.mods.media.specialServices
|
||||
else
|
||||
config.mods.media.special_services;
|
||||
config.mods.media.specialServices;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
154
modules/programs/mime.nix
Normal file
154
modules/programs/mime.nix
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
# Copyright (c) 2020-2021 Mihai Fufezan
|
||||
# credits to fufexan https://github.com/fufexan/dotfiles/blob/main/home/terminal/programs/xdg.nix
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
options,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.mods.mime = {
|
||||
enable = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = "Enables mime handling with nix";
|
||||
};
|
||||
imageTypes = lib.mkOption {
|
||||
default = [
|
||||
"png"
|
||||
"svg"
|
||||
"jpeg"
|
||||
"gif"
|
||||
];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Image mime handlers";
|
||||
};
|
||||
videoTypes = lib.mkOption {
|
||||
default = [
|
||||
"mp4"
|
||||
"avi"
|
||||
"mkv"
|
||||
];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Video mime handlers";
|
||||
};
|
||||
audioTypes = lib.mkOption {
|
||||
default = [
|
||||
"mp3"
|
||||
"flac"
|
||||
"wav"
|
||||
"aac"
|
||||
];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Audio mime handlers";
|
||||
};
|
||||
browserTypes = lib.mkOption {
|
||||
default = [
|
||||
"json"
|
||||
"x-extension-htm"
|
||||
"x-extension-html"
|
||||
"x-extension-shtml"
|
||||
"x-extension-xht"
|
||||
"x-extension-xhtml"
|
||||
];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Browser mime handlers";
|
||||
};
|
||||
browserXTypes = lib.mkOption {
|
||||
default = [
|
||||
"about"
|
||||
"ftp"
|
||||
"http"
|
||||
"https"
|
||||
"unknown"
|
||||
];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Browser X mime handlers";
|
||||
};
|
||||
browserApplications = lib.mkOption {
|
||||
default = [ "firefox" ];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Applications used for handling browser mime types";
|
||||
};
|
||||
imageApplications = lib.mkOption {
|
||||
default = [ "imv" ];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Applications used for handling image mime types";
|
||||
};
|
||||
videoApplications = lib.mkOption {
|
||||
default = [ "mpv" ];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Applications used for handling video mime types";
|
||||
};
|
||||
audioApplications = lib.mkOption {
|
||||
default = [ "io.bassi.Amberol" ];
|
||||
example = [ ];
|
||||
type = with lib.types; listOf str;
|
||||
description = "Applications used for handling audio mime types";
|
||||
};
|
||||
# TODO additional config
|
||||
};
|
||||
config = lib.optionalAttrs (options ? home) {
|
||||
xdg =
|
||||
let
|
||||
xdgAssociations =
|
||||
type: program: list:
|
||||
builtins.listToAttrs (
|
||||
map (e: {
|
||||
name = "${type}/${e}";
|
||||
value = program;
|
||||
}) list
|
||||
);
|
||||
|
||||
imageAc = xdgAssociations "image" config.mods.mime.imageApplications config.mods.mime.imageTypes;
|
||||
videoAc = xdgAssociations "video" config.mods.mime.videoApplications config.mods.mime.videoTypes;
|
||||
audioAc = xdgAssociations "audio" config.mods.mime.audioApplications config.mods.mime.audioTypes;
|
||||
browserAc =
|
||||
(xdgAssociations "application" config.mods.mime.browserApplications config.mods.mime.browserTypes)
|
||||
// (xdgAssociations "x-scheme-handler" config.mods.mime.browserApplications
|
||||
config.mods.mime.browserXTypes
|
||||
);
|
||||
associations = builtins.mapAttrs (_: v: (map (e: "${e}.desktop") v)) (
|
||||
# TODO make configurable
|
||||
{
|
||||
"application/pdf" = [ "org.pwmt.zathura-pdf-mupdf" ];
|
||||
"text/html" = config.mods.mime.browserApplications;
|
||||
"text/plain" = [ "neovide" ];
|
||||
"x-scheme-handler/chrome" = [ "com.brave.browser" ];
|
||||
"inode/directory" = [ "yazi" ];
|
||||
}
|
||||
// imageAc
|
||||
// audioAc
|
||||
// videoAc
|
||||
// browserAc
|
||||
);
|
||||
in
|
||||
lib.mkIf config.mods.mime.enable {
|
||||
enable = true;
|
||||
cacheHome = config.home.homeDirectory + "/.local/cache";
|
||||
|
||||
mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = associations;
|
||||
};
|
||||
|
||||
userDirs = {
|
||||
enable = true;
|
||||
createDirectories = true;
|
||||
extraConfig = {
|
||||
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||
pws = "${config.home.homeDirectory}/pws";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -17,14 +17,18 @@
|
|||
config = lib.mkIf config.mods.printing.enable (
|
||||
lib.optionalAttrs (options ? services.printing) {
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
services.printing.browsing = true;
|
||||
services.printing.drivers = [ pkgs.hplip ];
|
||||
services.printing.startWhenNeeded = true; # optional
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
services = {
|
||||
printing = {
|
||||
enable = true;
|
||||
browsing = true;
|
||||
drivers = [ pkgs.hplip ];
|
||||
startWhenNeeded = true; # optional
|
||||
};
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@
|
|||
}:
|
||||
{
|
||||
options.mods.scripts = {
|
||||
change-brightness = lib.mkOption {
|
||||
changeBrightness = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = "Enables the change-brightness script";
|
||||
};
|
||||
audio-control = lib.mkOption {
|
||||
audioControl = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -28,8 +28,8 @@
|
|||
config = (
|
||||
lib.optionalAttrs (options ? home.packages) {
|
||||
home.packages = [
|
||||
(lib.mkIf config.mods.scripts.change-brightness (
|
||||
pkgs.writeShellScriptBin "change-brightness" ''
|
||||
(lib.mkIf config.mods.scripts.changeBrightness (
|
||||
pkgs.writeShellScriptBin "changeBrightness" ''
|
||||
set_brightness() {
|
||||
brightnessctl set "$1"
|
||||
CURRENT=$(brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}')
|
||||
|
|
@ -41,8 +41,8 @@
|
|||
fi
|
||||
''
|
||||
))
|
||||
(lib.mkIf config.mods.scripts.audio-control (
|
||||
pkgs.writeShellScriptBin "audio-control" ''
|
||||
(lib.mkIf config.mods.scripts.audioControl (
|
||||
pkgs.writeShellScriptBin "audioControl" ''
|
||||
ncspot() {
|
||||
NUM=$(pactl list clients short | rg "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
||||
CHANGE=$(pactl list sink-inputs short | rg "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
Enables starship prompt
|
||||
'';
|
||||
};
|
||||
use_default_prompt = lib.mkOption {
|
||||
useDefaultPrompt = lib.mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
Enables preconfigured prompt
|
||||
'';
|
||||
};
|
||||
custom_prompt = lib.mkOption {
|
||||
customPrompt = lib.mkOption {
|
||||
default = { };
|
||||
example = { };
|
||||
type = with lib.types; attrsOf anything;
|
||||
|
|
@ -49,9 +49,9 @@
|
|||
{
|
||||
enable = true;
|
||||
interactiveOnly = true;
|
||||
presets = lib.mkIf config.mods.starship.use_default_prompt [ "pastel-powerline" ];
|
||||
presets = lib.mkIf config.mods.starship.useDefaultPrompt [ "pastel-powerline" ];
|
||||
settings =
|
||||
lib.mkIf config.mods.starship.use_default_prompt {
|
||||
lib.mkIf config.mods.starship.useDefaultPrompt {
|
||||
# derived from https://starship.rs/presets/pastel-powerline
|
||||
format = "$username$directory$git_branch$git_status$git_metrics[ ](bg:none fg:prev_bg)";
|
||||
right_format = "$c$elixir$elm$golang$gradle$haskell$java$julia$nodejs$nim$rust$scala$python$ocaml$opa$perl$zig$dart$dotnet$nix_shell$shell$solidity[](bg:prev_bg fg:#3465A4)$time$os";
|
||||
|
|
@ -170,7 +170,7 @@
|
|||
format = "[ $time ]($style)";
|
||||
};
|
||||
}
|
||||
// config.mods.starship.custom_prompt;
|
||||
// config.mods.starship.customPrompt;
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue