From 7a7e185e9942ff54aba9772e630d952295df44fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Tue, 3 Feb 2026 11:50:48 +0100 Subject: [PATCH 1/7] The link creation wizard auto-sets the target folder chooser dialog to the current working directory --- src/main-win.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main-win.c b/src/main-win.c index 49fc53b8..c708dddb 100644 --- a/src/main-win.c +++ b/src/main-win.c @@ -33,6 +33,8 @@ #include "pcmanfm.h" +#include + #include "app-config.h" #include "main-win.h" #include "pref.h" @@ -1744,7 +1746,13 @@ static void on_link(GtkAction *act, FmMainWin *win) FmPathList *files = fm_folder_view_dup_selected_file_paths(win->folder_view); if (files) { - FmPath *dest = fm_select_folder(GTK_WINDOW(win), NULL); + /* Start the folder chooser in the directory of the first selected file */ + FmPath *first = fm_path_list_peek_head(files); + FmPath *default_parent = NULL; + if (first) + default_parent = fm_path_get_parent(first); + + FmPath *dest = fm_select_folder_with_default(GTK_WINDOW(win), default_parent, NULL); if (dest) { fm_link_files(GTK_WINDOW(win), files, dest); From 933b9d840d11dddfb02d5f7da8a62597a2be00a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Tue, 3 Feb 2026 22:10:45 +0100 Subject: [PATCH 2/7] New hotkeys: Alt+S and Shift+F4 have to open current folder in the terminal. Ctrl+P opens Preferences. Alt+P opens File > Folder properties. --- po/hu.po | 4 ++-- src/main-win-ui.c | 22 +++++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/po/hu.po b/po/hu.po index 6b7bc587..8222990c 100644 --- a/po/hu.po +++ b/po/hu.po @@ -839,9 +839,9 @@ msgstr "" msgid "Fil_ter..." msgstr "" -#: ../src/main-win-ui.c:230 +#: ../src/main-win-ui.c:230 # I drop the leading _ in favor of the new Alt S hotkey. msgid "_Help" -msgstr "_Súgó" +msgstr "Súgó" #: ../src/main-win-ui.c:232 msgid "_Keyboard Navigation" diff --git a/src/main-win-ui.c b/src/main-win-ui.c index 8ca74242..151fe27f 100644 --- a/src/main-win-ui.c +++ b/src/main-win-ui.c @@ -153,6 +153,7 @@ static const char main_menu_xml[] = "" "" "" + "" #if FM_CHECK_VERSION(1, 0, 2) "" #endif @@ -182,7 +183,9 @@ static const char main_menu_xml[] = "" "" "" -""; +"" +"" +""; /* For actions that are bounced to FmFolderView - check accels for accordance */ static GtkActionEntry main_win_actions[]= @@ -193,7 +196,7 @@ static GtkActionEntry main_win_actions[]= {"CreateNew", GTK_STOCK_ADD, N_("C_reate New..."), "", NULL, NULL}, {"NewFolder", "folder", N_("Folder"), "N", NULL, G_CALLBACK(bounce_action)}, {"NewBlank", NULL, N_("Empty File"), "N", NULL, G_CALLBACK(bounce_action)}, - {"Prop", GTK_STOCK_PROPERTIES, N_("Folder Propertie_s"), NULL, NULL, G_CALLBACK(bounce_action)}, + {"Prop", GTK_STOCK_PROPERTIES, N_("Folder Propertie_s"), "P", NULL, G_CALLBACK(bounce_action)}, {"CloseTab", GTK_STOCK_CLOSE, N_("_Close Tab"), "W", NULL, G_CALLBACK(on_close_tab)}, {"Close", GTK_STOCK_QUIT, N_("Close _Window"), "Q", NULL, G_CALLBACK(on_close_win)}, {"EditMenu", NULL, N_("_Edit"), NULL, NULL, NULL}, @@ -206,13 +209,13 @@ static GtkActionEntry main_win_actions[]= {"CopyPath", NULL, N_("Copy Pat_h(s)"), NULL, NULL, G_CALLBACK(on_copy_path)}, {"Rename", NULL, N_("R_ename..."), "F2", NULL, G_CALLBACK(on_rename)}, {"Duplicate", NULL, N_("D_uplicate..."), "U", NULL, NULL}, - {"Link", NULL, N_("Create Lin_k..."), NULL, NULL, G_CALLBACK(on_link)}, + {"Link", NULL, N_("Create Lin_k..."), "K", NULL, G_CALLBACK(on_link)}, {"MoveTo", NULL, N_("_Move to..."), NULL, NULL, G_CALLBACK(on_move_to)}, {"CopyTo", NULL, N_("Copy to_..."), NULL, NULL, G_CALLBACK(on_copy_to)}, {"FileProp", GTK_STOCK_PROPERTIES, N_("Propertie_s"), "Return", NULL, G_CALLBACK(bounce_action)}, {"SelAll", GTK_STOCK_SELECT_ALL, NULL, "A", NULL, G_CALLBACK(bounce_action)}, {"InvSel", NULL, N_("_Invert Selection"), "I", NULL, G_CALLBACK(bounce_action)}, - {"Pref", GTK_STOCK_PREFERENCES, N_("Prefere_nces"), NULL, NULL, G_CALLBACK(on_preference)}, + {"Pref", GTK_STOCK_PREFERENCES, N_("Prefere_nces"), "P" , NULL, G_CALLBACK(on_preference)}, {"ViewMenu", NULL, N_("_View"), NULL, NULL, NULL}, {"Reload", GTK_STOCK_REFRESH, N_("_Reload Folder"), "F5", N_("Reload current folder"), G_CALLBACK(on_reload)}, {"Toolbar", NULL, N_("Tool_bar"), NULL, NULL, NULL}, @@ -247,12 +250,14 @@ static GtkActionEntry main_win_actions[]= {"BookmarksMenu", NULL, N_("_Bookmarks"), NULL, NULL, NULL}, {"AddBookmark", GTK_STOCK_ADD, N_("_Add to Bookmarks..."), "D", N_("Add current folder to bookmarks list"), G_CALLBACK(on_add_bookmark)}, {"ToolMenu", NULL, N_("Too_ls"), NULL, NULL, NULL}, - {"Term", "utilities-terminal", N_("Open Current Folder in _Terminal"), "F4", NULL, G_CALLBACK(on_open_in_terminal)}, -#if FM_CHECK_VERSION(1, 0, 2) + {"Term", "utilities-terminal", N_("Open Current Folder in _Terminal"), "S", NULL, G_CALLBACK(on_open_in_terminal)}, + {"TermAltS", "utilities-terminal", N_("Open Current Folder in _Terminal"), "S", NULL, G_CALLBACK(on_open_in_terminal)}, // sadly this doesnt work, handles the event to focusing the main Menu entry that begins with S. + #if FM_CHECK_VERSION(1, 0, 2) {"Search", GTK_STOCK_FIND, N_("Fin_d Files..."), "F", N_("Open search dialog"), G_CALLBACK(on_search)}, #endif #if FM_CHECK_VERSION(1, 2, 0) - {"Launch", GTK_STOCK_EXECUTE, N_("_Run a Command in Current Folder..."), NULL, NULL, G_CALLBACK(on_launch)}, +// {"Launch", GTK_STOCK_EXECUTE, N_("_Run a Command in Current Folder..."), NULL, NULL, G_CALLBACK(on_launch)}, + {"Launch", GTK_STOCK_EXECUTE, N_("_Run a Command in Current Folder..."), "C", NULL, G_CALLBACK(on_launch)}, #endif /*{"AsRoot", GTK_STOCK_DIALOG_AUTHENTICATION, N_("Open Current Folder as _Root"), NULL, NULL, G_CALLBACK(on_open_as_root)},*/ /* for accelerators */ @@ -262,6 +267,9 @@ static GtkActionEntry main_win_actions[]= {"Reload2", NULL, NULL, "R", NULL, G_CALLBACK(on_reload)}, {"SizeBigger2", NULL, NULL, "equal", NULL, G_CALLBACK(on_size_increment)}, {"SizeSmaller2", NULL, NULL, "minus", NULL, G_CALLBACK(on_size_decrement)}, + {"TermShiftS", NULL, NULL, "F4", NULL, G_CALLBACK(on_open_in_terminal)}, + {"TermShiftF4", NULL, NULL, "F4", NULL, G_CALLBACK(on_open_in_terminal)}, + }; /* main_win_toggle_actions+main_win_mode_actions - see 'ViewMenu' for mnemonics */ From f11bbfb5cbd75a91ff9e8e20567c4e2d854530ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Tue, 3 Feb 2026 22:15:14 +0100 Subject: [PATCH 3/7] Ctrl+L should also Create Link, not focus the path bar. + Small fixes (The Duplicate action is now available in the Menu, no new implementation written). --- src/main-win-ui.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main-win-ui.c b/src/main-win-ui.c index 151fe27f..4a0d859a 100644 --- a/src/main-win-ui.c +++ b/src/main-win-ui.c @@ -52,6 +52,7 @@ static const char main_menu_xml[] = "" "" "" + "" "" /* TODO: implement "Create a duplicate" action "" */ @@ -179,6 +180,7 @@ static const char main_menu_xml[] = "" "" "" +"" "" "" "" @@ -209,7 +211,7 @@ static GtkActionEntry main_win_actions[]= {"CopyPath", NULL, N_("Copy Pat_h(s)"), NULL, NULL, G_CALLBACK(on_copy_path)}, {"Rename", NULL, N_("R_ename..."), "F2", NULL, G_CALLBACK(on_rename)}, {"Duplicate", NULL, N_("D_uplicate..."), "U", NULL, NULL}, - {"Link", NULL, N_("Create Lin_k..."), "K", NULL, G_CALLBACK(on_link)}, + {"Link", NULL, N_("Create Lin_k..."), "L", NULL, G_CALLBACK(on_link)}, {"MoveTo", NULL, N_("_Move to..."), NULL, NULL, G_CALLBACK(on_move_to)}, {"CopyTo", NULL, N_("Copy to_..."), NULL, NULL, G_CALLBACK(on_copy_to)}, {"FileProp", GTK_STOCK_PROPERTIES, N_("Propertie_s"), "Return", NULL, G_CALLBACK(bounce_action)}, @@ -244,7 +246,7 @@ static GtkActionEntry main_win_actions[]= {"Apps", "system-software-install", N_("_Applications"), NULL, N_("Go to root of applications menu folder"), G_CALLBACK(on_go_apps)}, {"Computer", "computer", N_("Dev_ices"), NULL, N_("Go to list of devices connected to the computer"), G_CALLBACK(on_go_computer)}, {"Network", GTK_STOCK_NETWORK, N_("Net_work"), NULL, N_("Go to list of places on the network"), G_CALLBACK(on_go_network)}, - {"Location", GTK_STOCK_JUMP_TO, N_("_Go to Location..."), "L", NULL, G_CALLBACK(on_location)}, + {"Location", GTK_STOCK_JUMP_TO, N_("_Go to Location..."), NULL, NULL, G_CALLBACK(on_location)}, {"Connect", NULL, N_("_Connect to Server..."), NULL, N_("Open a window to choose remote folder location"), G_CALLBACK(on_go_connect)}, {"Go", GTK_STOCK_JUMP_TO, NULL, NULL, N_("Go to the path in the location bar"), G_CALLBACK(on_go)}, {"BookmarksMenu", NULL, N_("_Bookmarks"), NULL, NULL, NULL}, @@ -262,6 +264,7 @@ static GtkActionEntry main_win_actions[]= /*{"AsRoot", GTK_STOCK_DIALOG_AUTHENTICATION, N_("Open Current Folder as _Root"), NULL, NULL, G_CALLBACK(on_open_as_root)},*/ /* for accelerators */ {"Location2", NULL, NULL, "d", NULL, G_CALLBACK(on_location)}, + {"Link2", NULL, N_("Create Lin_k..."), "K", NULL, G_CALLBACK(on_link)}, {"Prev2", NULL, NULL, "XF86Back", NULL, G_CALLBACK(on_go_back)}, {"Next2", NULL, NULL, "XF86Forward", NULL, G_CALLBACK(on_go_forward)}, {"Reload2", NULL, NULL, "R", NULL, G_CALLBACK(on_reload)}, From 8229b4d8009085f567ef429bf403c53e1bdcd7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Tue, 3 Feb 2026 22:17:28 +0100 Subject: [PATCH 4/7] --- src/main-win-ui.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main-win-ui.c b/src/main-win-ui.c index 4a0d859a..4ca4e348 100644 --- a/src/main-win-ui.c +++ b/src/main-win-ui.c @@ -52,7 +52,6 @@ static const char main_menu_xml[] = "" "" "" - "" "" /* TODO: implement "Create a duplicate" action "" */ From 4dc5699fef0c3f24f4ac4dcba0e05332befdce90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Wed, 4 Feb 2026 09:23:31 +0100 Subject: [PATCH 5/7] =?UTF-8?q?Az=20adventuretc-f=C3=A9le=20default=20be?= =?UTF-8?q?=C3=A1ll=C3=ADt=C3=A1sok=20berak=C3=A1sa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/pcmanfm.conf | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/data/pcmanfm.conf b/data/pcmanfm.conf index 2fd42dd7..223707ca 100644 --- a/data/pcmanfm.conf +++ b/data/pcmanfm.conf @@ -14,9 +14,19 @@ desktop_shadow=#000000 show_wm_menu=0 [ui] -win_width=640 -win_height=480 +win_width=1300 +win_height=985 +maximized=1 +splitter_pos=252 +media_in_new_tab=0 +desktop_folder_new_win=0 +change_tab_on_drop=1 +close_on_unmount=0 +focus_previous=1 side_pane_mode=places -view_mode=icon -show_hidden=0 +view_mode=list +show_hidden=1 sort=name;ascending; +toolbar=newtab;navigation; +show_statusbar=1 +pathbar_mode_buttons=0 From 6687ba14ed5657be2a1cb133e9eca16dc48c9356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Sat, 14 Feb 2026 12:50:43 +0100 Subject: [PATCH 6/7] =?UTF-8?q?-=20When=20copying=20files=20to=20the=20cli?= =?UTF-8?q?pboard,=20in=20terms=20of=20the=20plain=20text=20flavor,=20do?= =?UTF-8?q?=20not=20put=20a=20\n=20char=20at=20the=20very=20end=20of=20the?= =?UTF-8?q?=20text,=20only=20*between*=20lines.=20-=20a=20Copy=20Path(s)?= =?UTF-8?q?=20funkci=C3=B3ra=20legyen=20egy=20hotkey=20(Alt+Insert).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main-win-ui.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main-win-ui.c b/src/main-win-ui.c index 4ca4e348..91e52c84 100644 --- a/src/main-win-ui.c +++ b/src/main-win-ui.c @@ -207,7 +207,7 @@ static GtkActionEntry main_win_actions[]= {"Paste", GTK_STOCK_PASTE, NULL, NULL, NULL, G_CALLBACK(bounce_action)}, {"ToTrash", GTK_STOCK_DELETE, N_("Move to _Trash"), "", NULL, G_CALLBACK(on_trash)}, {"Del", GTK_STOCK_REMOVE, NULL, "", NULL, G_CALLBACK(on_del)}, - {"CopyPath", NULL, N_("Copy Pat_h(s)"), NULL, NULL, G_CALLBACK(on_copy_path)}, + {"CopyPath", NULL, N_("Copy Pat_h(s)"), "Insert", NULL, G_CALLBACK(on_copy_path)}, {"Rename", NULL, N_("R_ename..."), "F2", NULL, G_CALLBACK(on_rename)}, {"Duplicate", NULL, N_("D_uplicate..."), "U", NULL, NULL}, {"Link", NULL, N_("Create Lin_k..."), "L", NULL, G_CALLBACK(on_link)}, From 18dd0b6bf559d277a9bf97a6addc080cc9ab90d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bertalan=20G=C3=B6ller?= Date: Sat, 14 Feb 2026 13:55:01 +0100 Subject: [PATCH 7/7] --- src/main-win.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/main-win.c b/src/main-win.c index c708dddb..3702e9c0 100644 --- a/src/main-win.c +++ b/src/main-win.c @@ -34,6 +34,7 @@ #include "pcmanfm.h" #include +#include #include "app-config.h" #include "main-win.h" @@ -1815,22 +1816,12 @@ static void on_del(GtkAction* act, FmMainWin* win) static void on_copy_path(GtkAction* action, FmMainWin* win) { - GdkDisplay *dpy = gtk_widget_get_display(GTK_WIDGET(win)); - GtkClipboard *clipboard = gtk_clipboard_get_for_display(dpy, GDK_SELECTION_CLIPBOARD); - GString *str = g_string_sized_new(128); FmPathList *files = fm_folder_view_dup_selected_file_paths(win->folder_view); - GList *fl; - - for (fl = fm_path_list_peek_head_link(files); fl; fl = fl->next) + if(files) { - char *path = fm_path_to_str(fl->data); - if (str->len > 0) - g_string_append_c(str, '\n'); - g_string_append(str, path); - g_free(path); + fm_clipboard_copy_paths_as_text(GTK_WIDGET(win), files); + fm_path_list_unref(files); } - gtk_clipboard_set_text(clipboard, str->str, str->len); - g_string_free(str, TRUE); } static void on_preference(GtkAction* act, FmMainWin* win)