mirror of
https://github.com/ItsDrike/nixdots
synced 2024-12-25 17:54:35 +00:00
Add preference options
This commit is contained in:
parent
32bebe0adc
commit
15ce6ea7d0
|
@ -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 = {
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ in
|
|||
./wms.nix
|
||||
./theme.nix
|
||||
./services.nix
|
||||
./preferences.nix
|
||||
];
|
||||
|
||||
options.myOptions.home-manager = {
|
||||
|
|
34
options/home/preferences.nix
Normal file
34
options/home/preferences.nix
Normal 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";
|
||||
};
|
||||
}
|
|
@ -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 = {
|
||||
|
|
Loading…
Reference in a new issue