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.