feat(dolphin): declarative dolphin

This commit is contained in:
js0ny 2025-11-12 06:27:54 +00:00
parent 94d176692c
commit d4fc7e2249
7 changed files with 264 additions and 6 deletions

View file

@ -0,0 +1,207 @@
<!DOCTYPE gui>
<gui name="dolphin" translationDomain="kxmlgui6" version="46">
<MenuBar alreadyVisited="1">
<Menu alreadyVisited="1" name="file" noMerge="1">
<text translationDomain="kxmlgui6">&amp;File</text>
<Action name="file_new"/>
<Separator weakSeparator="1"/>
<Action name="new_menu"/>
<Action name="file_new"/>
<Action name="new_tab"/>
<Action name="file_close"/>
<Action name="undo_close_tab"/>
<Separator/>
<Action name="add_to_places"/>
<Separator/>
<Action name="renamefile"/>
<Action name="duplicate"/>
<Action name="movetotrash"/>
<Action name="deletefile"/>
<Separator/>
<Action name="show_target"/>
<Separator/>
<Action name="properties"/>
<Separator weakSeparator="1"/>
<Action name="file_close"/>
<Separator weakSeparator="1"/>
<Action name="file_quit"/>
</Menu>
<Menu alreadyVisited="1" name="edit" noMerge="1">
<text translationDomain="kxmlgui6">&amp;Edit</text>
<Action name="edit_undo"/>
<Separator weakSeparator="1"/>
<Action name="edit_cut"/>
<Action name="edit_copy"/>
<Action name="edit_paste"/>
<Separator weakSeparator="1"/>
<Action name="edit_select_all"/>
<Separator weakSeparator="1"/>
<Action name="edit_find"/>
<Separator weakSeparator="1"/>
<Action name="edit_undo"/>
<Separator/>
<Action name="edit_cut"/>
<Action name="edit_copy"/>
<Action name="copy_location"/>
<Action name="edit_paste"/>
<Separator/>
<Action name="show_filter_bar"/>
<Action name="edit_find"/>
<Separator/>
<Action name="toggle_selection_mode"/>
<Action name="copy_to_inactive_split_view"/>
<Action name="move_to_inactive_split_view"/>
<Action name="edit_select_all"/>
<Action name="invert_selection"/>
</Menu>
<Menu alreadyVisited="1" name="view" noMerge="1">
<text translationDomain="kxmlgui6">&amp;View</text>
<Action name="view_zoom_in"/>
<Action name="view_zoom_out"/>
<Separator weakSeparator="1"/>
<Action name="view_redisplay"/>
<Separator weakSeparator="1"/>
<Action name="view_zoom_in"/>
<Action name="view_zoom_reset"/>
<Action name="view_zoom_out"/>
<Separator/>
<Action name="sort"/>
<Action name="view_mode"/>
<Action name="additional_info"/>
<Action name="show_preview"/>
<Action name="show_in_groups"/>
<Action name="show_hidden_files"/>
<Action name="act_as_admin"/>
<Separator/>
<Action name="split_view_menu"/>
<Action name="popout_split_view"/>
<Action name="split_stash"/>
<Action name="redisplay"/>
<Action name="stop"/>
<Separator/>
<Action name="panels"/>
<Menu icon="edit-select-text" name="location_bar" noMerge="1">
<text context="@title:menu" translationDomain="dolphin">Location Bar</text>
<Action name="editable_location"/>
<Action name="replace_location"/>
</Menu>
<Separator/>
<Action name="view_properties"/>
</Menu>
<Menu alreadyVisited="1" name="go" noMerge="1">
<text translationDomain="kxmlgui6">&amp;Go</text>
<Action name="go_up"/>
<Action name="go_back"/>
<Action name="go_forward"/>
<Action name="go_home"/>
<Separator weakSeparator="1"/>
<Action name="bookmarks"/>
<Action name="closed_tabs"/>
</Menu>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Separator weakSeparator="1"/>
<Menu alreadyVisited="1" name="tools" noMerge="1">
<text translationDomain="kxmlgui6">&amp;Tools</text>
<Action name="open_preferred_search_tool"/>
<Action name="open_terminal"/>
<Action name="open_terminal_here"/>
<Action name="manage_disk_space"/>
<Action name="compare_files"/>
<Action name="change_remote_encoding"/>
</Menu>
<Menu alreadyVisited="1" name="settings" noMerge="1">
<text translationDomain="kxmlgui6">&amp;Settings</text>
<Action name="options_show_menubar"/>
<Merge name="StandardToolBarMenuHandler"/>
<Merge name="KMDIViewActions"/>
<Separator weakSeparator="1"/>
<Action name="switch_application_language"/>
<Action name="options_configure_keybinding"/>
<Action name="options_configure_toolbars"/>
<Action name="options_configure"/>
</Menu>
<Separator weakSeparator="1"/>
<Menu alreadyVisited="1" name="help" noMerge="1">
<text translationDomain="kxmlgui6">&amp;Help</text>
<Action name="help_contents"/>
<Action name="help_whats_this"/>
<Action name="open_kcommand_bar"/>
<Separator weakSeparator="1"/>
<Action name="help_report_bug"/>
<Separator weakSeparator="1"/>
<Action name="help_donate"/>
<Separator weakSeparator="1"/>
<Action name="help_about_app"/>
<Action name="help_about_kde"/>
</Menu>
</MenuBar>
<ToolBar alreadyVisited="1" name="mainToolBar" noMerge="1">
<text context="@title:menu" translationDomain="dolphin">Main Toolbar</text>
<Action name="go_back"/>
<Action name="go_forward"/>
<Action name="create_dir"/>
<Action name="view_settings"/>
<Action name="url_navigators"/>
<Action name="copy_location"/>
<Action name="split_view"/>
<Action name="toggle_search"/>
<Action name="hamburger_menu"/>
</ToolBar>
<State name="new_file">
<disable>
<Action name="edit_undo"/>
<Action name="edit_redo"/>
<Action name="edit_cut"/>
<Action name="renamefile"/>
<Action name="movetotrash"/>
<Action name="deletefile"/>
<Action name="invert_selection"/>
<Separator/>
<Action name="go_back"/>
<Action name="go_forward"/>
</disable>
</State>
<State name="has_selection">
<enable>
<Action name="invert_selection"/>
</enable>
</State>
<State name="has_no_selection">
<disable>
<Action name="delete_shortcut"/>
<Action name="invert_selection"/>
</disable>
</State>
<ActionProperties scheme="Default">
<Action name="go_back" priority="0"/>
<Action name="go_forward" priority="0"/>
<Action name="go_up" priority="0"/>
<Action name="go_home" priority="0"/>
<Action name="stop" priority="0"/>
<Action name="icons" priority="0"/>
<Action name="compact" priority="0"/>
<Action name="details" priority="0"/>
<Action name="view_mode" priority="0"/>
<Action name="view_settings" priority="0"/>
<Action name="view_zoom_in" priority="0"/>
<Action name="view_zoom_reset" priority="0"/>
<Action name="view_zoom_out" priority="0"/>
<Action name="edit_cut" priority="0"/>
<Action name="edit_copy" priority="0"/>
<Action name="edit_paste" priority="0"/>
<Action name="toggle_search" priority="0"/>
<Action name="toggle_filter" priority="0"/>
<Action name="create_dir" priority="0"/>
<Action name="split_view" priority="0"/>
<Action iconText="Location" name="copy_location"/>
<Action icon="user_purple" iconText="sudo" name="act_as_admin"/>
<Action name="add_to_places" priority="0"/>
</ActionProperties>
</gui>

View file

@ -6,12 +6,6 @@
alacritty
warp-terminal
# Explorer
kdePackages.dolphin
kdePackages.dolphin-plugins # dolphin git integration
kdePackages.konsole # dolphin terminal integration
yazi # terminal file manager
# PDF Viewer
kdePackages.okular # default
sioyek

View file

@ -5,6 +5,7 @@
}: {
imports = [
../gwenview.nix
../dolphin.nix
];
home.packages = with pkgs; [
# kdePackages.yakuake

View file

@ -0,0 +1,33 @@
{
pkgs,
lib,
...
}: {
home.packages = with pkgs.kdePackages; [
dolphin
dolphin-plugins # dolphin git integration
konsole # dolphin terminal integration
];
xdg.configFile."dolphinrc-override".text = lib.generators.toINI {} {
General = {
ShowSelectionToggle = false;
UseTabForSwitchingSplitView = true;
};
VersionControl = {
enabledPlugins = "Subversion,Git";
};
};
# Manually merge dolphin config to existing file
home.activation.mergeDolphinrc = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [ -f ~/.config/dolphinrc-override ]; then
# Create dolphinrc if it doesn't exist
touch ~/.config/dolphinrc
# Merge the override file into the main config
${pkgs.crudini}/bin/crudini --merge ~/.config/dolphinrc < ~/.config/dolphinrc-override
$DRY_RUN_CMD rm -f ~/.config/dolphinrc-override
fi
'';
}

View file

@ -5,9 +5,20 @@
extraPackages = epkgs:
with epkgs; [
evil
evil-leader
evil-commentary
evil-surround
evil-mc
evil-goggles
telega
beancount
counsel
company
vertico
marginalia
dirvish
nix-ts-mode
flycheck
];
};
home.packages = with pkgs; [

View file

@ -0,0 +1,9 @@
{...}: {
programs.yazi = {
enable = true;
enableZshIntegration = true;
enableFishIntegration = true;
enableNushellIntegration = true;
shellWrapperName = "y";
};
}

View file

@ -36,6 +36,9 @@
./programs/ollama.nix
./programs/sops.nix
./programs/pdf2zh.nix
./programs/gwenview.nix
./programs/yazi.nix
./programs/dolphin.nix
# Desktop Linux
./programs/desktop/plasma.nix