Skip to content

Commit c8d0bd3

Browse files
committed
Release 1.7.7
1 parent 3500cdb commit c8d0bd3

12 files changed

+4254
-2
lines changed

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
AC_INIT([rofi], [1.7.6-dev], [https://github.com/davatorium/rofi/],[],[https://github.com/davatorium/rofi/discussions])
1+
AC_INIT([rofi], [1.7.7], [https://github.com/davatorium/rofi/],[],[https://github.com/davatorium/rofi/discussions])
22

33
AC_CONFIG_SRCDIR([source/rofi.c])
44
AC_CONFIG_HEADER([config.h])

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project('rofi', 'c',
2-
version: '1.7.6-dev',
2+
version: '1.7.7',
33
meson_version: '>=0.59.0',
44
license: [ 'MIT' ],
55
default_options: [
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# rofi-debugging(5)
2+
3+
## NAME
4+
5+
Debugging rofi.
6+
7+
When reporting an issue with rofi crashing, or misbehaving. It helps to do some
8+
small test to help pin-point the problem.
9+
10+
First try disabling your custom configuration: `-no-config`
11+
12+
This disables the parsing of the configuration files. This runs rofi in *stock*
13+
mode.
14+
15+
If you run custom C plugins, you can disable the plugins using: `-no-plugins`
16+
17+
## Get the relevant information for an issue
18+
19+
Please pastebin the output of the following commands:
20+
21+
```bash
22+
rofi -help
23+
rofi -dump-config
24+
rofi -dump-theme
25+
```
26+
27+
`rofi -help` provides us with the configuration files parsed, the exact
28+
version, monitor layout and more useful information.
29+
30+
The `rofi -dump-config` and `rofi -dump-theme` output gives us `rofi`
31+
interpretation of your configuration and theme.
32+
33+
Please check the output for identifiable information and remove this.
34+
35+
## Timing traces
36+
37+
To get a timing trace, enable the **Timings** debug domain.
38+
39+
```bash
40+
G_MESSAGES_DEBUG=Timings rofi -show drun
41+
```
42+
It will show a trace with (useful) timing information at relevant points during
43+
the execution. This will help debugging when rofi is slow to start.
44+
45+
Example trace:
46+
47+
```text
48+
(process:14942): Timings-DEBUG: 13:47:39.335: 0.000000 (0.000000): Started
49+
(process:14942): Timings-DEBUG: 13:47:39.335: 0.000126 (0.000126): ../source/rofi.c:main:786
50+
(process:14942): Timings-DEBUG: 13:47:39.335: 0.000163 (0.000037): ../source/rofi.c:main:819
51+
(process:14942): Timings-DEBUG: 13:47:39.336: 0.000219 (0.000056): ../source/rofi.c:main:826 Setup Locale
52+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001235 (0.001016): ../source/rofi.c:main:828 Collect MODI
53+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001264 (0.000029): ../source/rofi.c:main:830 Setup MODI
54+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001283 (0.000019): ../source/rofi.c:main:834 Setup mainloop
55+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001369 (0.000086): ../source/rofi.c:main:837 NK Bindings
56+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001512 (0.000143): ../source/xcb.c:display_setup:1177 Open Display
57+
(process:14942): Timings-DEBUG: 13:47:39.337: 0.001829 (0.000317): ../source/xcb.c:display_setup:1192 Setup XCB
58+
(process:14942): Timings-DEBUG: 13:47:39.346: 0.010650 (0.008821): ../source/rofi.c:main:844 Setup Display
59+
(process:14942): Timings-DEBUG: 13:47:39.346: 0.010715 (0.000065): ../source/rofi.c:main:848 Setup abe
60+
(process:14942): Timings-DEBUG: 13:47:39.350: 0.015101 (0.004386): ../source/rofi.c:main:883 Load cmd config
61+
(process:14942): Timings-DEBUG: 13:47:39.351: 0.015275 (0.000174): ../source/rofi.c:main:907 Setup Modi
62+
(process:14942): Timings-DEBUG: 13:47:39.351: 0.015291 (0.000016): ../source/view.c:rofi_view_workers_initialize:1922 Setup Threadpool, start
63+
(process:14942): Timings-DEBUG: 13:47:39.351: 0.015349 (0.000058): ../source/view.c:rofi_view_workers_initialize:1945 Setup Threadpool, done
64+
(process:14942): Timings-DEBUG: 13:47:39.367: 0.032018 (0.016669): ../source/rofi.c:main:1000 Setup late Display
65+
(process:14942): Timings-DEBUG: 13:47:39.367: 0.032080 (0.000062): ../source/rofi.c:main:1003 Theme setup
66+
(process:14942): Timings-DEBUG: 13:47:39.367: 0.032109 (0.000029): ../source/rofi.c:startup:668 Startup
67+
(process:14942): Timings-DEBUG: 13:47:39.367: 0.032121 (0.000012): ../source/rofi.c:startup:677 Grab keyboard
68+
(process:14942): Timings-DEBUG: 13:47:39.368: 0.032214 (0.000093): ../source/view.c:__create_window:701 xcb create window
69+
(process:14942): Timings-DEBUG: 13:47:39.368: 0.032235 (0.000021): ../source/view.c:__create_window:705 xcb create gc
70+
(process:14942): Timings-DEBUG: 13:47:39.368: 0.033136 (0.000901): ../source/view.c:__create_window:714 create cairo surface
71+
(process:14942): Timings-DEBUG: 13:47:39.369: 0.033286 (0.000150): ../source/view.c:__create_window:723 pango cairo font setup
72+
(process:14942): Timings-DEBUG: 13:47:39.369: 0.033351 (0.000065): ../source/view.c:__create_window:761 configure font
73+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045896 (0.012545): ../source/view.c:__create_window:769 textbox setup
74+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045944 (0.000048): ../source/view.c:__create_window:781 setup window attributes
75+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045955 (0.000011): ../source/view.c:__create_window:791 setup window fullscreen
76+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045966 (0.000011): ../source/view.c:__create_window:797 setup window name and class
77+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045974 (0.000008): ../source/view.c:__create_window:808 setup startup notification
78+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045981 (0.000007): ../source/view.c:__create_window:810 done
79+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045992 (0.000011): ../source/rofi.c:startup:679 Create Window
80+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.045999 (0.000007): ../source/rofi.c:startup:681 Parse ABE
81+
(process:14942): Timings-DEBUG: 13:47:39.381: 0.046113 (0.000114): ../source/rofi.c:startup:684 Config sanity check
82+
(process:14942): Timings-DEBUG: 13:47:39.384: 0.048229 (0.002116): ../source/dialogs/run.c:get_apps:216 start
83+
(process:14942): Timings-DEBUG: 13:47:39.390: 0.054626 (0.006397): ../source/dialogs/run.c:get_apps:336 stop
84+
(process:14942): Timings-DEBUG: 13:47:39.390: 0.054781 (0.000155): ../source/dialogs/drun.c:get_apps:634 Get Desktop apps (start)
85+
(process:14942): Timings-DEBUG: 13:47:39.391: 0.055264 (0.000483): ../source/dialogs/drun.c:get_apps:641 Get Desktop apps (user dir)
86+
(process:14942): Timings-DEBUG: 13:47:39.418: 0.082884 (0.027620): ../source/dialogs/drun.c:get_apps:659 Get Desktop apps (system dirs)
87+
(process:14942): Timings-DEBUG: 13:47:39.418: 0.082944 (0.000060): ../source/dialogs/drun.c:get_apps_history:597 Start drun history
88+
(process:14942): Timings-DEBUG: 13:47:39.418: 0.082977 (0.000033): ../source/dialogs/drun.c:get_apps_history:617 Stop drun history
89+
(process:14942): Timings-DEBUG: 13:47:39.419: 0.083638 (0.000661): ../source/dialogs/drun.c:get_apps:664 Sorting done.
90+
(process:14942): Timings-DEBUG: 13:47:39.419: 0.083685 (0.000047): ../source/view.c:rofi_view_create:1759
91+
(process:14942): Timings-DEBUG: 13:47:39.419: 0.083700 (0.000015): ../source/view.c:rofi_view_create:1783 Startup notification
92+
(process:14942): Timings-DEBUG: 13:47:39.419: 0.083711 (0.000011): ../source/view.c:rofi_view_create:1786 Get active monitor
93+
(process:14942): Timings-DEBUG: 13:47:39.420: 0.084693 (0.000982): ../source/view.c:rofi_view_refilter:1028 Filter start
94+
(process:14942): Timings-DEBUG: 13:47:39.421: 0.085992 (0.001299): ../source/view.c:rofi_view_refilter:1132 Filter done
95+
(process:14942): Timings-DEBUG: 13:47:39.421: 0.086090 (0.000098): ../source/view.c:rofi_view_update:982
96+
(process:14942): Timings-DEBUG: 13:47:39.421: 0.086123 (0.000033): ../source/view.c:rofi_view_update:1002 Background
97+
(process:14942): Timings-DEBUG: 13:47:39.428: 0.092864 (0.006741): ../source/view.c:rofi_view_update:1008 widgets
98+
```
99+
100+
## Debug domains
101+
102+
To further debug the plugin, you can get a trace with (lots of) debug
103+
information. This debug output can be enabled for multiple parts in rofi using
104+
the glib debug framework. Debug domains can be enabled by setting the
105+
G\_MESSAGES\_DEBUG environment variable. At the time of creation of this page,
106+
the following debug domains exist:
107+
108+
- all: Show debug information from all domains.
109+
- X11Helper: The X11 Helper functions.
110+
- View: The main window view functions.
111+
- Widgets.Box: The Box widget.
112+
- Modes.DMenu: The dmenu mode.
113+
- Modes.Run: The run mode.
114+
- Modes.DRun: The desktop file run mode.
115+
- Modes.Window: The window mode.
116+
- Modes.Script: The script mode.
117+
- Modes.Combi: The script mode.
118+
- Modes.Ssh: The ssh mode.
119+
- Rofi: The main application.
120+
- Timings: Get timing output.
121+
- Theme: Theme engine debug output. (warning lots of output).
122+
- Widgets.Icon: The Icon widget.
123+
- Widgets.Box: The box widget.
124+
- Widgets.Container: The container widget.
125+
- Widgets.Window: The window widget.
126+
- Helpers.IconFetcher: Information about icon lookup.
127+
128+
For full list see `man rofi`.
129+
130+
Example: `G_MESSAGES_DEBUG=Dialogs.DRun rofi -show drun` To get specific output
131+
from the Desktop file run dialog.
132+
133+
To redirect the debug output to a file (`~/rofi.log`) add:
134+
135+
```bash
136+
rofi -show drun -log ~/rofi.log
137+
```
138+
139+
Specifying the logfile automatically enabled all log domains.
140+
This can be useful when rofi is launched from a window manager.
141+
142+
## Creating a backtrace
143+
144+
First make sure you compile **rofi** with debug symbols:
145+
146+
```bash
147+
make CFLAGS="-O0 -g3" clean rofi
148+
```
149+
150+
Getting a backtrace using GDB is not very handy. Because if rofi get stuck, it
151+
grabs keyboard and mouse. So if it crashes in GDB you are stuck. The best way
152+
to go is to enable core file. (ulimit -c unlimited in bash) then make rofi
153+
crash. You can then load the core in GDB.
154+
155+
```bash
156+
gdb rofi core
157+
```
158+
159+
Then type inside gdb:
160+
161+
```bash
162+
thread apply all bt
163+
```
164+
165+
The output trace is useful when reporting crashes.
166+
167+
Some distribution have `systemd-coredump`, this way you can easily get a
168+
backtrace via `coredumpctl`.
169+
170+
## SEE ALSO
171+
172+
rofi-sensible-terminal(1), dmenu(1), rofi-theme(5),
173+
rofi-script(5), rofi-keys(5),rofi-theme-selector(1)
174+
175+
## AUTHOR
176+
177+
* Qball Cow <[email protected]>

0 commit comments

Comments
 (0)