Geany "LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion `GTK_IS_MENU_SHELL(menu)' failed"

StackOverflow https://stackoverflow.com/questions/14815500

  •  09-03-2022
  •  | 
  •  

Question

I'm doing this Ruby on Rails tutorial, and everytime I input

:~/rails_projects/first_app$ geany .gitignore    

I get this

(geany:12043): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertioN                      
`GTK_IS_MENU_SHELL(menu)' failed
@ubuntu:~/rails_projects/first_app$ geany .gitignore

(geany:12369): LIBDBUSMENU-GTK-CRITICAL **: watch_submenu: assertion     
`GTK_IS_MENU_SHELL(menu)' failed 

The text editor still opens, but the terminal doesn't let me input anything unless I close the text editor, unlike the tutorial where he has it open, and the terminal still works.How can I get the functioning terminal with the text editor?

Was it helpful?

Solution

I have the same question.
Any ideas on how to correct it??

The way I found to continue to use the command line and still have the geany opened is:

 $ geany file &
 $ <ctrl+c>


It's useful, but not perfect. A solution would be good

OTHER TIPS

Cut and paste the following bash function definition into your bash profile ~/.bash_profile to use this from a login bash terminal (or into ~/.bashrc to use this from a non-login terminal). This function will be available only in terminals started after this change is made.

geany() { 
    $(which geany) --no-msgwin --no-session "$@" &>/dev/null & disown
}

Now typing geany followed by zero or more filenames will have the desired effect.

Explanation:

$(which geany) finds the path to geany by searching your PATH, and substitutes that path in place of the text $(which geany).

The options --no-msgwin and --no-session are optional, but respectively start geany without its message window at the bottom and without remembering to open files that were open the last time geany was closed.

"$@" is the bash way to substitute into this command the rest of your command line (i.e. all the filenames you type after you type geany to use this function).

&>/dev/null redirects geany's standard output and standard error output to /dev/null which stops any messages from geany being displayed in the console.

& disown runs geany as a separate process that is not a child process of the terminal that starts geany. So it is immediately not a job associated with the terminal, and no termination message will appear in the terminal when you quit geany.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top