This file is indexed.

/usr/include/libfm-1.0/fm-config.h is in libfm-dev 1.2.0-1ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
/*
 *      fm-config.h
 *
 *      Copyright 2009 PCMan <pcman.tw@gmail.com>
 *      Copyright 2012-2014 Andriy Grytsenko (LStranger) <andrej@rep.kiev.ua>
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */


#ifndef __FM_CONFIG_H__
#define __FM_CONFIG_H__

#include <glib-object.h>
#include <gio/gio.h>

G_BEGIN_DECLS

#define FM_CONFIG_TYPE              (fm_config_get_type())
#define FM_CONFIG(obj)              (G_TYPE_CHECK_INSTANCE_CAST((obj),\
            FM_CONFIG_TYPE, FmConfig))
#define FM_CONFIG_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass),\
            FM_CONFIG_TYPE, FmConfigClass))
#define FM_IS_CONFIG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
            FM_CONFIG_TYPE))
#define FM_IS_CONFIG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass),\
            FM_CONFIG_TYPE))

typedef struct _FmConfig            FmConfig;
typedef struct _FmConfigClass       FmConfigClass;

#define     FM_CONFIG_DEFAULT_SINGLE_CLICK      FALSE
#define     FM_CONFIG_DEFAULT_USE_TRASH         TRUE
#define     FM_CONFIG_DEFAULT_CONFIRM_DEL       TRUE
#define     FM_CONFIG_DEFAULT_CONFIRM_TRASH     TRUE
#define     FM_CONFIG_DEFAULT_NO_USB_TRASH      TRUE

#define     FM_CONFIG_DEFAULT_BIG_ICON_SIZE     48
#define     FM_CONFIG_DEFAULT_SMALL_ICON_SIZE   16
#define     FM_CONFIG_DEFAULT_PANE_ICON_SIZE    16
#define     FM_CONFIG_DEFAULT_THUMBNAIL_SIZE    128

#define     FM_CONFIG_DEFAULT_SHOW_THUMBNAIL    TRUE
#define     FM_CONFIG_DEFAULT_THUMBNAIL_LOCAL   TRUE
#define     FM_CONFIG_DEFAULT_THUMBNAIL_MAX     2048

#define     FM_CONFIG_DEFAULT_FORCE_S_NOTIFY    TRUE
#define     FM_CONFIG_DEFAULT_BACKUP_HIDDEN     TRUE
#define     FM_CONFIG_DEFAULT_NO_EXPAND_EMPTY   FALSE
#define     FM_CONFIG_DEFAULT_SHOW_FULL_NAMES   FALSE
#define     FM_CONFIG_DEFAULT_ONLY_USER_TEMPLATES FALSE
#define     FM_CONFIG_DEFAULT_TEMPLATE_RUN_APP  FALSE
#define     FM_CONFIG_DEFAULT_TEMPL_TYPE_ONCE   FALSE
#define     FM_CONFIG_DEFAULT_SHADOW_HIDDEN     FALSE
#define     FM_CONFIG_DEFAULT_DEFER_CONTENT_TEST FALSE
#define     FM_CONFIG_DEFAULT_QUICK_EXEC        FALSE
#define     FM_CONFIG_DEFAULT_SMART_DESKTOP_AUTODROP TRUE

#define     FM_CONFIG_DEFAULT_PLACES_HOME       TRUE
#define     FM_CONFIG_DEFAULT_PLACES_DESKTOP    TRUE
#define     FM_CONFIG_DEFAULT_PLACES_ROOT       FALSE
#define     FM_CONFIG_DEFAULT_PLACES_COMPUTER   FALSE
#define     FM_CONFIG_DEFAULT_PLACES_TRASH      TRUE
#define     FM_CONFIG_DEFAULT_PLACES_APPLICATIONS TRUE
#define     FM_CONFIG_DEFAULT_PLACES_NETWORK    FALSE
#define     FM_CONFIG_DEFAULT_PLACES_UNMOUNTED  TRUE

#define     FM_CONFIG_DEFAULT_AUTO_SELECTION_DELAY 600

/* this enum is used by FmDndDest but we save it nicely in config so have it here */

/**
 * FmDndDestDropAction:
 * @FM_DND_DEST_DROP_AUTO: move if source and destination are on the same file system, copy otherwise
 * @FM_DND_DEST_DROP_COPY: copy
 * @FM_DND_DEST_DROP_MOVE: move
 * @FM_DND_DEST_DROP_ASK: open popup to let user select desired action
 *
 * selected behavior when files are dropped on destination widget.
 */
typedef enum
{
    FM_DND_DEST_DROP_AUTO,
    FM_DND_DEST_DROP_COPY,
    FM_DND_DEST_DROP_MOVE,
    FM_DND_DEST_DROP_ASK
} FmDndDestDropAction;

/**
 * FmConfig:
 * @terminal: command line to launch terminal emulator
 * @archiver: desktop_id of the archiver used
 * @big_icon_size: size of big icons
 * @small_icon_size: size of small icons
 * @pane_icon_size: size of side pane icons
 * @thumbnail_size: size of thumbnail icons
 * @thumbnail_max: show thumbnails for files smaller than 'thumb_max' KB
 * @auto_selection_delay: (since 1.2.0) delay for autoselection in single-click mode, in ms
 * @drop_default_action: (since 1.2.0) default action on drop (see #FmDndDestDropAction)
 * @single_click: single click to open file
 * @use_trash: delete file to trash can
 * @confirm_del: ask before deleting files
 * @confirm_trash: (since 1.2.0) ask before moving files to trash can
 * @show_thumbnail: show thumbnails
 * @thumbnail_local: show thumbnails for local files only
 * @show_internal_volumes: show system internal volumes in side pane. (udisks-only)
 * @si_unit: use SI prefix for file sizes
 * @advanced_mode: enable advanced features for experienced user
 * @force_startup_notify: (since 1.0.1) use startup notify by default
 * @backup_as_hidden: (since 1.0.1) treat backup files as hidden
 * @no_usb_trash: (since 1.0.1) don't create trash folder on removable media
 * @no_child_non_expandable: (since 1.0.1) hide expanders on empty folder
 * @show_full_names: (since 1.2.0) always show full names in Icon View mode
 * @shadow_hidden: (since 1.2.0) show icons of hidden files shadowed in the view
 * @places_home: (since 1.2.0) show 'Home' item in Places
 * @places_desktop: (since 1.2.0) show 'Desktop' item in Places
 * @places_applications: (since 1.2.0) show 'Applications' item in Places
 * @places_trash: (since 1.2.0) show 'Trash' item in Places
 * @places_root: (since 1.2.0) show '/' item in Places
 * @places_computer: (since 1.2.0) show 'My computer' item in Places
 * @places_network: (since 1.2.0) show 'Network' item in Places
 * @places_unmounted: (since 1.2.0) show unmounted internal volumes in Places
 * @only_user_templates: (since 1.2.0) show only user defined templates in 'Create...' menu
 * @template_run_app: (since 1.2.0) run default application after creation from template
 * @template_type_once: (since 1.2.0) use only one template of each MIME type
 * @defer_content_test: (since 1.2.0) defer test for content type on folder loading
 * @quick_exec: (since 1.2.0) don't ask user for action on executable launch
 * @modules_blacklist: (since 1.2.0) list of modules (mask in form "type:name") to never load
 * @modules_whitelist: (since 1.2.0) list of excemptions from @modules_blacklist
 * @list_view_size_units: (since 1.2.0) file size units in list view: h, k, M, G
 * @format_cmd: (since 1.2.0) command to format the volume (device will be added)
 * @smart_desktop_autodrop: (since 1.2.0) enable "smart shortcut" auto-action for ~/Desktop
 * @saved_search: (since 1.2.0) internal saved data of fm_launch_search_simple()
 */
struct _FmConfig
{
    /*< private >*/
    GObject parent;
    char *_cfg_name;

    /*< public >*/
    char* terminal;
    char* archiver;

    gint big_icon_size;
    gint small_icon_size;
    gint pane_icon_size;
    gint thumbnail_size;
    gint thumbnail_max;
    gint auto_selection_delay;
    gint drop_default_action;

    gboolean single_click;
    gboolean use_trash;
    gboolean confirm_del;
    gboolean confirm_trash;
    gboolean show_thumbnail;
    gboolean thumbnail_local;
    gboolean show_internal_volumes;
    gboolean si_unit;
    gboolean advanced_mode;
    gboolean force_startup_notify;
    gboolean backup_as_hidden;
    gboolean no_usb_trash;
    gboolean no_child_non_expandable;
    gboolean show_full_names;
    gboolean shadow_hidden;

    gboolean places_home;
    gboolean places_desktop;
    gboolean places_applications;
    gboolean places_trash;
    gboolean places_root;
    gboolean places_computer;
    gboolean places_network;
    gboolean places_unmounted;

    gboolean only_user_templates;
    gboolean template_run_app;
    gboolean template_type_once;
    gboolean defer_content_test;
    gboolean quick_exec;

    gchar **modules_blacklist;
    gchar **modules_whitelist;
    /*< private >*/
    gchar **system_modules_blacklist; /* concatenated from system, don't save! */
    /*< public >*/

    gchar *list_view_size_units;
    gchar *format_cmd;

    gboolean smart_desktop_autodrop;
    gchar *saved_search;
    /*< private >*/
    gpointer _reserved1; /* reserved space for updates until next ABI */
    gpointer _reserved2;
    gpointer _reserved3;
    gpointer _reserved4;
    gpointer _reserved5;
    gpointer _reserved6;
    gpointer _reserved7;
    GFileMonitor *_cfg_mon;
};

/**
 * FmConfigClass
 * @parent_class: the parent class
 * @changed: the class closure for the #FmConfig::changed signal
 */
struct _FmConfigClass
{
    GObjectClass parent_class;
    void (*changed)(FmConfig* cfg);
};

/* global config object */
extern FmConfig* fm_config;

GType       fm_config_get_type      (void);
FmConfig*   fm_config_new           (void);

void fm_config_load_from_file(FmConfig* cfg, const char* name);

void fm_config_load_from_key_file(FmConfig* cfg, GKeyFile* kf);

void fm_config_save(FmConfig* cfg, const char* name);

void fm_config_emit_changed(FmConfig* cfg, const char* changed_key);

/* internal for libfm */
const char *_fm_config_get_name(FmConfig *cfg);

G_END_DECLS

#endif /* __FM_CONFIG_H__ */