12.04 এবং / অথবা 14.04 GTK3 এ মিমোনমিকস কীভাবে সক্ষম করবেন?


8

রাস্তায় শব্দটি হ'ল "gtk-সক্ষম-mnemonics" সংস্করণ 3.10 থেকে অবনতি হয়েছে এবং আমি স্মৃতিশক্তি প্রদর্শন করার জন্য কীভাবে আমার অ্যাপ্লিকেশনটি পেতে পারি তা সম্পর্কে আমি নিশ্চিত নই।

আমি altকী টিপলেই তারা প্রদর্শন করবে ।

দয়া করে এখানে দেখুন:

আমি এই নিবন্ধে প্রস্তাবিত সমস্ত কিছু চেষ্টা করেছি সেটিংস.আই এর প্রতি, উলটিকে বিপরীতে স্যুইচ করে:

সম্পর্কিত:

উত্তর:


3

উবুন্টু ১৪.০৪-তে নটিটিলাস ৩.১০.১ এর স্মৃতিবিদ্যার "অক্ষম" করতে যা জিটিকে ৩ ব্যবহার করে:

  1. নিম্নলিখিত পথ এবং ফাইলটি ইতিমধ্যে বিদ্যমান না থাকলে তৈরি করুন।
    /home/YOURUSERNAME/.config/gtk-3.0/settings.ini
  2. তারপর যোগ:
    [Settings]
    gtk-enable-mnemonics = 0
  3. তারপরে লগআউট এবং লগ ইন করুন।

সূত্র:

PS নোট করুন যে জিটিকে ডক্স বলছে আপনার পরিবেশগত পরিবর্তনশীল বলা উচিত XDG_CONFIG_HOMEতবে আমার কাছে এটি ছিল না। আমার একটি বিদ্যমান ~/.config/gtk-3.0ফোল্ডার ছিল এবং এটি প্রদর্শিত হয় এটি পরিবেশ পরিবর্তনশীল ব্যতীত ডিফল্টরূপে সেখানে দেখছে।


1
আমি এই উত্তরটি দ্বারা সত্যিই বিভ্রান্ত হয়েছি যেহেতু প্রশ্নটি সর্বদা স্মৃতিবিজ্ঞান প্রদর্শন করতে সক্ষম করার জন্য জিজ্ঞাসা করছে বলে মনে হচ্ছে তবে এই উত্তরটি তাদের অক্ষম করার বিষয়ে কথা বলে।
— জেমসডলিন

ভাল কথা, কেন আমি তখন উত্তর হিসাবে পোস্ট করেছি তা আমার কোনও ধারণা নেই।
— এলিজা লিন

4

দেখে মনে হচ্ছে জিটিকে + -3 সংস্করণ 3.8 এর পরে "gtk-auto-mnemonics" সেটিংসটি হারিয়েছে (সংস্করণ 3.10 থেকে শুরু করে)।

3.14.4 এর জন্য নিম্নলিখিত প্যাচটিকে "জিটিকে-অটো-মিমোনমিক্স" পুনরায় সক্ষম করা উচিত। এটি সম্ভবত অন্যান্য জিটিকে + -3 সংস্করণে 3.16 এর মতোও কাজ করবে। সংকলনের পরে আপনার কেবল এই ফাইলগুলির প্রয়োজন হবে (প্রথম দুটি হ'ল সিমলিংক):

libgtk-3.so -> libgtk-3.so.0.1400.4
libgtk-3.so.0 -> libgtk-3.so.0.1400.4
libgtk-3.so.0.1400.4

http://ftp.gnome.org/pub/gnome/sources/gtk+/3.14/gtk+-3.14.4.tar.xz

আপনি সহজেই এই দ্বারা কম্পাইল কাপড় ব্যবহার শুরু (প্রতিস্থাপন করতে পারেন lib64সঙ্গে libপ্রয়োজনীয় থাকেন):

LD_LIBRARY_PATH=/folder/where/you/installed/lib64 file-roller

-

কেন জানি না, তবে দেখে মনে হচ্ছে জিটিকে + বিকাশকারীরা কোডটি মুছে ফেলার জন্য সত্যই দুর্দান্ত হয়ে উঠেছে যা এর মতো দরকারী বৈশিষ্ট্যগুলি সরবরাহ করে ... !!!

যদি কোনও জিটিকে + বিকাশকারী এটি পড়েন: এই কোড-লাইনগুলি কাউকে কীভাবে আঘাত করেছে বা তারা কোথায় সরিয়েছে ???

কেউ যদি মূল প্রতিশ্রুতিতে আগ্রহী:

দেখে মনে হচ্ছে জিটিকে + লোকেরা সেই সময়টিতে একটি বৈশিষ্ট্য-অপসারণ চালানো হয়েছিল:

==========

diff -ur gtk+-3.14.4.old/gtk/gtklabel.c gtk+-3.14.4.new/gtk/gtklabel.c
--- gtk+-3.14.4.old/gtk/gtklabel.c  2014-10-21 16:20:55.000000000 +0200
+++ gtk+-3.14.4.new/gtk/gtklabel.c  2015-05-06 23:01:45.447209817 +0200
@@ -2561,11 +2561,12 @@

   if (with_uline)
     {
-      gboolean enable_mnemonics = TRUE;
-      gboolean auto_mnemonics = TRUE;
+      gboolean enable_mnemonics;
+      gboolean auto_mnemonics;

       g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)),
                     "gtk-enable-mnemonics", &enable_mnemonics,
+                    "gtk-auto-mnemonics", &auto_mnemonics,
                     NULL);

       if (!(enable_mnemonics && priv->mnemonics_visible &&
@@ -2775,8 +2776,8 @@
 {
   GtkLabelPrivate *priv = label->priv;
   PangoAttrList *attrs;
-  gboolean enable_mnemonics = TRUE;
-  gboolean auto_mnemonics = TRUE;
+  gboolean enable_mnemonics;
+  gboolean auto_mnemonics;

   if (priv->pattern_set)
     return;
@@ -2784,8 +2785,9 @@
   if (is_mnemonic)
     {
       g_object_get (gtk_widget_get_settings (GTK_WIDGET (label)),
-                    "gtk-enable-mnemonics", &enable_mnemonics,
-                    NULL);
+           "gtk-enable-mnemonics", &enable_mnemonics,
+           "gtk-auto-mnemonics", &auto_mnemonics,
+           NULL);

       if (enable_mnemonics && priv->mnemonics_visible && pattern &&
           (!auto_mnemonics ||
diff -ur gtk+-3.14.4.old/gtk/gtkmain.c gtk+-3.14.4.new/gtk/gtkmain.c
--- gtk+-3.14.4.old/gtk/gtkmain.c   2014-10-21 16:20:55.000000000 +0200
+++ gtk+-3.14.4.new/gtk/gtkmain.c   2015-05-06 22:47:35.375311109 +0200
@@ -1717,18 +1717,26 @@
           ((event->key.state & (gtk_accelerator_get_default_mod_mask ()) & ~(GDK_RELEASE_MASK|GDK_MOD1_MASK)) == 0) &&
           !GTK_IS_MENU_SHELL (grab_widget))
         {
-          gboolean mnemonics_visible;
-          GtkWidget *window;
+          gboolean auto_mnemonics;

-          mnemonics_visible = (event->type == GDK_KEY_PRESS);
+          g_object_get (gtk_widget_get_settings (grab_widget),
+                        "gtk-auto-mnemonics", &auto_mnemonics, NULL);

-          window = gtk_widget_get_toplevel (grab_widget);
-          if (GTK_IS_WINDOW (window))
+          if (auto_mnemonics)
             {
-              if (mnemonics_visible)
-                _gtk_window_schedule_mnemonics_visible (GTK_WINDOW (window));
-              else
-                gtk_window_set_mnemonics_visible (GTK_WINDOW (window), FALSE);
+              gboolean mnemonics_visible;
+              GtkWidget *window;
+
+              mnemonics_visible = (event->type == GDK_KEY_PRESS);
+
+              window = gtk_widget_get_toplevel (grab_widget);
+              if (GTK_IS_WINDOW (window))
+                {
+                  if (mnemonics_visible)
+                    _gtk_window_schedule_mnemonics_visible (GTK_WINDOW (window));
+                  else
+                    gtk_window_set_mnemonics_visible (GTK_WINDOW (window), FALSE);
+                }
             }
         }
       /* else fall through */
diff -ur gtk+-3.14.4.old/gtk/gtkmenushell.c gtk+-3.14.4.new/gtk/gtkmenushell.c
--- gtk+-3.14.4.old/gtk/gtkmenushell.c  2014-08-15 16:38:05.000000000 +0200
+++ gtk+-3.14.4.new/gtk/gtkmenushell.c  2015-05-06 22:53:03.442086931 +0200
@@ -898,9 +898,17 @@
 _gtk_menu_shell_update_mnemonics (GtkMenuShell *menu_shell)
 {
   GtkMenuShell *target;
+  gboolean auto_mnemonics;
   gboolean found;
   gboolean mnemonics_visible;

+  g_object_get (gtk_widget_get_settings (GTK_WIDGET (menu_shell)),
+                "gtk-auto-mnemonics", &auto_mnemonics,
+                NULL);
+
+  if (!auto_mnemonics)
+    return;
+
   target = menu_shell;
   found = FALSE;
   while (target)
diff -ur gtk+-3.14.4.old/gtk/gtkwindow.c gtk+-3.14.4.new/gtk/gtkwindow.c
--- gtk+-3.14.4.old/gtk/gtkwindow.c 2014-10-21 16:20:55.000000000 +0200
+++ gtk+-3.14.4.new/gtk/gtkwindow.c 2015-05-06 22:59:47.780956630 +0200
@@ -5878,6 +5878,8 @@
   GtkWindow *window = GTK_WINDOW (widget);
   GtkWindowPrivate *priv = window->priv;
   GdkWindow *gdk_window;
+  gboolean auto_mnemonics;
+  GtkPolicyType visible_focus;
   GList *link;

   if (!gtk_widget_is_toplevel (widget))
@@ -5966,10 +5968,15 @@
         }
     }

-  /* if mnemonics visible is not already set
+  /* if auto-mnemonics is enabled and mnemonics visible is not already set
    * (as in the case of popup menus), then hide mnemonics initially
    */
-  if (!priv->mnemonics_visible_set)
+  g_object_get (gtk_widget_get_settings (widget),
+                "gtk-auto-mnemonics", &auto_mnemonics,
+                "gtk-visible-focus", &visible_focus,
+                NULL);
+
+  if (auto_mnemonics && !priv->mnemonics_visible_set)
     gtk_window_set_mnemonics_visible (window, FALSE);

   /* inherit from transient parent, so that a dialog that is
@@ -7834,6 +7841,7 @@
               GdkEventFocus *event)
 {
   GtkWindow *window = GTK_WINDOW (widget);
+  gboolean auto_mnemonics;

   /* It appears spurious focus in events can occur when
    *  the window is hidden. So we'll just check to see if
@@ -7845,7 +7853,9 @@
       _gtk_window_set_has_toplevel_focus (window, TRUE);
       _gtk_window_set_is_active (window, TRUE);

-      if (gtk_window_has_mnemonic_modifier_pressed (window))
+      g_object_get (gtk_widget_get_settings (widget),
+                    "gtk-auto-mnemonics", &auto_mnemonics, NULL);
+      if (auto_mnemonics && gtk_window_has_mnemonic_modifier_pressed (window))
         _gtk_window_schedule_mnemonics_visible (window);
     }

@@ -7857,12 +7867,16 @@
                GdkEventFocus *event)
 {
   GtkWindow *window = GTK_WINDOW (widget);
+  gboolean auto_mnemonics;

   _gtk_window_set_has_toplevel_focus (window, FALSE);
   _gtk_window_set_is_active (window, FALSE);

   /* set the mnemonic-visible property to false */
-  gtk_window_set_mnemonics_visible (window, FALSE);
+  g_object_get (gtk_widget_get_settings (widget),
+                "gtk-auto-mnemonics", &auto_mnemonics, NULL);
+  if (auto_mnemonics)
+    gtk_window_set_mnemonics_visible (window, FALSE);

   return FALSE;
 }

1

আমি মনে করি আমি ভুল থিমটি পরিবর্তন করছিলাম। উফ।

পদক্ষেপ অনুসরণ করেছে

https://stackoverflow.com/a/24095212/2026508

থেকে পরিবর্তন করুন: gtk-auto-mnemonics = 0 <---- অক্ষম

এতে পরিবর্তন করুন: gtk-auto-mnemonics = 1 <---- সক্ষম করা হয়েছে

GTK3 এ সেটিংস.টায় পরিবর্তন করুন: /usr/share/themes/CURRENT_THEME_NAME/gtk3.0/settings.ini

জিটিকেসি-তে জিটিকেসিআর-তে পরিবর্তন হয়েছে: /usr/share/themes/CURRENT_THEME_NAME/gtk2.0/gtkrc

তবে নিশ্চিত করুন যে এটি সঠিক / বর্তমান থিম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.