aboutsummaryrefslogtreecommitdiff
path: root/config.def.h
blob: 4ba77e67b6fd1de06cc5f47032e7c3df19771321 (plain)
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
/*
 * Copyright (c) 2022 mini-rose
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and any associated documentation
 * files to modify, copy, merge, publish, distribute and/or
 * sublicense copies of this sotware for their own use.
 * This code does not come with any warranty.
 *
 * Author: fenze <contact@fenze.dev>
 */

#include <gdk/gdkkeysyms.h>

/* See more:
 * https://webkitgtk.org/reference/webkit2gtk/stable/class.Settings.html */
#define WEBKIT                                           \
	"enable-back-forward-navigation-gestures", true, \
	"enable-developer-extras", true,                 \
	"enable-smooth-scrolling", false

#define GTK                                        \
	"gtk-application-prefer-dark-theme", true, \
	"gtk-enable-animations", false

#define HOME "https://lite.duckduckgo.com/html/"
#define SEARCH "https://lite.duckduckgo.com/html/?q=%s"
#define CACHE_DIR "/home/fenze/.cache/rose"

#define KEY(x) GDK_KEY_##x
#define ZOOM 1	    /* Starting zoom level */
#define ZOOM_VAL .1 /* Zooming value in zoomin/zoomout functions */
#define BG_COLOR "#1E1E2E" /* or e.g., "#FEFEFE" if not using dark theme */
#define WIDTH 500
#define HEIGHT 400

typedef enum {
	goback,
	goforward,
	refresh,
	refresh_force,
	back_to_home,
	toggle_fullscreen,
	zoomin,
	zoomout,
	zoom_reset,
	next_tab,
	prev_tab,
	close_tab,
	show_searchbar,
	show_finder,
	finder_next,
	finder_prev,
	newtab,
  /*prettify,*/
	hidebar
} func;

#define SFT  1 << 0
#define CTRL 1 << 2
#define ALT  1 << 3

static struct {
	unsigned mod;
	unsigned key;
	func id;
} keys[] = {
    { CTRL,	   KEY(h),      goback            },
    { CTRL,	   KEY(l),      goforward         },
    { CTRL,	   KEY(r),      refresh	          },
    { CTRL | SFT,  KEY(R),      refresh_force     },
    { CTRL | SFT,  KEY(H),      back_to_home      },
    { CTRL,	   KEY(equal),  zoomin	          },
    { CTRL,	   KEY(minus),  zoomout	          },
    { CTRL,	   KEY(0),      zoom_reset	  },
    { ALT,	   KEY(h),      prev_tab	  },
    { ALT,	   KEY(l),      next_tab	  },
    { CTRL,	   KEY(w),      close_tab	  },
    { 0x0,	   KEY(F11),    toggle_fullscreen },
    { CTRL,	   KEY(e),      show_searchbar	  },
    { CTRL,	   KEY(f),      show_finder       },
    { CTRL,	   KEY(n),      finder_next       },
    { CTRL | SFT,  KEY(N),      finder_prev	  },
    { CTRL,        KEY(t),      newtab            },
    { CTRL,        KEY(p),      prettify            },
    { 0x0,         KEY(Escape), hidebar           }
};
/* For controls more akin to normal browsers, use:
{
    { CTRL,        KEY(h),          goback             },
    { CTRL,        KEY(j),          goforward          },
    { CTRL,        KEY(r),          refresh            },
    { CTRL | SFT,  KEY(R),          refresh_force      },
    { CTRL | SFT,  KEY(H),          back_to_home       },
    { CTRL,        KEY(equal),      zoomin             },
    { CTRL,        KEY(minus),      zoomout            },
    { CTRL,        KEY(0),          zoom_reset         },
    { CTRL,        KEY(Page_Down),  prev_tab           },
    { CTRL,        KEY(Page_Up),    next_tab           },
    { CTRL,        KEY(w),          close_tab          },
    { 0x0,         KEY(F11),        toggle_fullscreen  },
    { CTRL,        KEY(l),          show_searchbar     },
    { CTRL,        KEY(f),          show_finder        },
    { CTRL,        KEY(n),          finder_next        },
    { CTRL | SFT,  KEY(N),          finder_prev        },
    { CTRL,        KEY(p),          prettify            },

};
*/
/* Reference for the key shorthand:
 * <https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gdk/gdkkeysyms.h> */