Add preference options

This commit is contained in:
ItsDrike 2024-06-24 21:12:59 +02:00
parent 32bebe0adc
commit 15ce6ea7d0
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
6 changed files with 228 additions and 212 deletions

View file

@ -7,6 +7,7 @@
inherit (lib) mkIf;
cfg = osConfig.myOptions.home-manager.programs.file-managers.pcmanfm-qt;
cfgPreferences = osConfig.myOptions.home-manager.preferences;
in {
config = mkIf cfg.enable {
home.packages = with pkgs; [ lxqt.pcmanfm-qt ];
@ -96,14 +97,14 @@ in {
};
System = {
Archiver = cfg.archiverCmd;
Archiver = cfgPreferences.archiveManager.command;
FallbackIconThemeName = "oxygen";
OnlyUserTemplates = false;
SIUnit = false;
SuCommand = "${pkgs.lxqt.lxqt-sudo}/bin/lxqt-sudo %s";
TemplateRunApp = false;
TemplateTypeOnce = false;
Terminal = cfg.terminalCmd;
Terminal = cfgPreferences.terminalEmulator.command;
};
Thumbnail = {

View file

@ -1,4 +1,6 @@
{ config, ... }: {
{ config, osConfig, ... }: let
cfgPreferences = osConfig.myOptions.home-manager.preferences;
in {
wayland.windowManager.hyprland = {
settings = {
"$MOUSE_LMB" = "mouse:272";
@ -26,14 +28,16 @@
#
# Programs
#
"SUPER, Return, exec, kitty"
"SUPER, R, exec, walker"
# TODO: requires programs
"SUPER, Return, exec, ${cfgPreferences.terminalEmulator.command}"
"SUPER, R, exec, ${cfgPreferences.launcher.command}"
"SUPER, B, exec, ${cfgPreferences.browser.command}"
"SUPER, X, exec, ${cfgPreferences.fileManager.command}"
# TODO: Add qalculate
#
# DE/WM Control programs
#
# TODO: Requires programs
# TODO: Add menuquit
"SUPER_SHIFT, L, exec, wlogout -p layer-shell"
"SUPER_CTRL, L, exec, loginctl lock-session"
"SUPER_SHIFT, T, exec, toggle-idle"

View file

@ -3,23 +3,17 @@
osConfig,
...
}: let
cfg = osConfig.myOptions.home-manager.programs;
cfgPreferences = osConfig.myOptions.home-manager.preferences;
in {
xdg.mimeApps = let
# TODO: Make options for these
browser = "firefox.desktop";
textEditor = browser; # nvim doesn't work properly with xdg-open, just use the browser
emailClient = browser;
documentViewer = browser; # TODO: consider zathura (org.pwmt.zathura.desktop.desktop)
fileManager = "pcmanfm-qt.desktop";
archiveManager = "org.kde.ark.desktop";
imageViewer =
if cfg.applications.qimgv.enable
then "qimgv.desktop"
else if cfg.applications.nomacs.enable
then "org.nomacs.ImageLounge.desktop"
else browser;
mediaPlayer = "mpv.desktop";
browser = cfgPreferences.browser.desktop;
textEditor = cfgPreferences.textEditor.desktop;
emailClient = cfgPreferences.emailClient.desktop;
documentViewer = cfgPreferences.documentViewer.desktop;
fileManager = cfgPreferences.fileManager.desktop;
archiveManager = cfgPreferences.archiveManager.desktop;
imageViewer = cfgPreferences.imageViewer.desktop;
mediaPlayer = cfgPreferences.mediaPlayer.desktop;
associations = {
# Browser
@ -205,8 +199,8 @@ in {
};
home.sessionVariables = {
BROWSER = "firefox";
DEFAULT_BROWSER = "firefox";
TERMINAL = "kitty";
BROWSER = cfgPreferences.browser.command;
DEFAULT_BROWSER = cfgPreferences.browser.command;
TERMINAL = cfgPreferences.terminalEmulator.command;
};
}

View file

@ -8,6 +8,7 @@ in
./wms.nix
./theme.nix
./services.nix
./preferences.nix
];
options.myOptions.home-manager = {

View file

@ -0,0 +1,34 @@
{ lib, ... }: let
inherit (lib) mkOption types;
mkPreferenceCmdOption = name: commandDefault: mkOption {
type = types.str;
description = "The command to start your preferred ${name}.";
default = commandDefault;
};
mkPreferenceDesktopOption = name: desktopDefault: mkOption {
type = types.str;
description = "The desktop (application) file for your preferred ${name}.";
default = desktopDefault;
};
mkPreferenceOptions = name: commandDefault: desktopDefault: {
command = mkPreferenceCmdOption name commandDefault;
desktop = mkPreferenceDesktopOption name desktopDefault;
};
in
{
options.myOptions.home-manager.preferences = {
browser = mkPreferenceOptions "browser" "firefox" "firefox.desktop";
terminalEmulator = mkPreferenceOptions "terminal emulator" "kitty" "kitty.desktop";
textEditor = mkPreferenceOptions "editor" "nvim" "nvim.desktop";
fileManager = mkPreferenceOptions "file manager" "pcmanfm-qt" "pcmanfm-qt.desktop";
imageViewer = mkPreferenceOptions "image viewer" "qimgv" "qimgv.desktop";
mediaPlayer = mkPreferenceOptions "media player" "mpv" "mpv.desktop";
archiveManager = mkPreferenceOptions "archive manager" "ark" "org.kde.ark.desktop";
documentViewer = mkPreferenceOptions "document viewer" "firefox" "firefox.desktop"; # TODO: consider zathura (org.pwmt.zathura.desktop.desktop)
emailClient = mkPreferenceOptions "email client" "firefox" "firefox.desktop";
launcher.command = mkPreferenceCmdOption "launcher" "walker";
};
}

View file

@ -49,25 +49,7 @@ in
};
file-managers = {
pcmanfm-qt = {
enable = mkEnableOption "Pcmanfm-qt (extremely fast and lightweight file manager and the standard file manager of LXDE)";
terminalCmd = mkOption {
type = types.str;
default = "kitty";
description = ''
Command used to open the terminal emulator.
'';
};
archiverCmd = mkOption {
type = types.str;
default = "ark";
description = ''
Command used to open the archiver (zip/tar explorer).
'';
};
};
pcmanfm-qt.enable = mkEnableOption "Pcmanfm-qt (extremely fast and lightweight file manager and the standard file manager of LXDE)";
};
tools = {