📄 xdefaults.c
字号:
/*--------------------------------*-C-*---------------------------------* * File: xdefaults.c *----------------------------------------------------------------------* * * All portions of code are copyright by their respective author/s. * Copyright (c) 1994 Robert Nation <nation@rocket.sanders.lockheed.com> * Copyright (c) 1997,1998 mj olesen <olesen@me.queensu.ca> * Copyright (c) 2004 Terry Griffin <griffint@pobox.com> * Copyright (c) 2005 Grant McDorman <grmcdorman@users.sourceforge.net> * Copyright (c) 2004-2006 Jingmin Zhou <jimmyzhou@users.sourceforge.net> * Copyright (c) 2005-2006 Gautam Iyer <gi1242@users.sourceforge.net> * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. *----------------------------------------------------------------------*/#include "../config.h"#include "rxvt.h"#ifdef DEBUG_VERBOSE#define DEBUG_LEVEL 1#else #define DEBUG_LEVEL 0#endif#if DEBUG_LEVEL#define DBG_MSG(d,x) if(d <= DEBUG_LEVEL) fprintf x#else#define DBG_MSG(d,x)#endif/*--------------------------------------------------------------------* * BEGIN `INTERNAL' ROUTINE PROTOTYPES * *--------------------------------------------------------------------*/#ifndef NO_RESOURCESvoid rxvt_get_xdefaults (rxvt_t*, FILE*, const char*);#endif/*--------------------------------------------------------------------* * END `INTERNAL' ROUTINE PROTOTYPES * *--------------------------------------------------------------------*/static const char *emptyResource = "";static const char *const xnames[3] = { ".mrxvtrc", ".Xdefaults", ".Xresources",};/*{{{ monolithic option/resource structure: *//* * `string' options MUST have a usage argument * `switch' and `boolean' options have no argument * if there's no desc(ription), it won't appear in rxvt_usage() *//* INFO() - descriptive information only */#define INFO(opt, arg, desc) \ {0, -1, NULL, (opt), (arg), (desc), 0}/* STRG() - command-line option, with/without resource */#define STRG(rsp, kw, opt, arg, desc, multiple) \ {0, (rsp), (kw), (opt), (arg), (desc), (multiple)}/* RSTRG() - resource/long-option */#define RSTRG(rsp, kw, arg, multiple) \ {0, (rsp), (kw), NULL, (arg), NULL, (multiple)}/* BOOL() - regular boolean `-/+' flag */#define BOOL(rsp, kw, opt, flag, desc, multiple) \ {(Opt_Boolean|(flag)), (rsp), (kw), (opt), NULL, (desc), (multiple)}/* SWCH() - `-' flag */#define SWCH(opt, flag, desc, multiple) \ {(flag), -1, NULL, (opt), NULL, (desc), (multiple)}/* convenient macros */#define optList_STRLEN(i) \ (optList[i].flag ? 0 : (optList[i].arg ? STRLEN(optList[i].arg) : 1))#define optList_isBool(i) \ (optList[i].flag & Opt_Boolean)#define optList_isReverse(i) \ (optList[i].flag & Opt_Reverse)#define optList_isMultiple(i) \ (optList[i].multiple)#define optList_size() \ (sizeof(optList) / sizeof(optList[0]))static const struct { const unsigned long flag; /* Option flag */ const int doff; /* data offset */ const char* kw; /* keyword */ const char* opt; /* option */ const char* arg; /* argument */ const char* desc; /* description */ const char multiple; /* multiple values for profiles */} optList[] = { /* Options for each profile */#ifdef BACKGROUND_IMAGE STRG(Rs_backgroundPixmap, "Pixmap", "pixmap", "file[;geom]", "background image for a tab", 1),#endif STRG(Rs_tabtitle, "tabTitle", "tt", "string", "title name for tab", 1), STRG(Rs_saveLines, "saveLines", "sl", "number", "number of scrolled lines to save for tab", 1), STRG(Rs_command, "command", "e", "string", "command to execute for a tab", 1), STRG( Rs_foreground, "foreground", "fg", "color", "foreground color for a tab", 1), STRG( Rs_background, "background", "bg", "color", "background color for a tab", 1), STRG( Rs_cwd, "workingDirectory", "wd", "dir", "Working directory to open new tabs in", 1 ), STRG(Rs_maxTabWidth, "maxTabWidth", "mtw", "number", "maximum (char) title width of all tabs", 0), STRG(Rs_minVisibleTabs, "minVisibleTabs", "mvt", "number", "minimum # of tabs to keep visible (requires xftpfn)", 0), BOOL(Rs2_hlTabOnBell, "highlightTabOnBell", "htb", Opt2_hlTabOnBell, "highlighting inactive tabs only when bell sounds", 0), BOOL(Rs2_syncTabTitle, "syncTabTitle", "stt", Opt2_syncTabTitle, "synchronizing terminal title with tab title", 0), BOOL(Rs2_hideTabbar, "hideTabbar", "ht", Opt2_hideTabbar, "hiding tabbar on initialization", 0), BOOL(Rs2_autohideTabbar, "autohideTabbar", "aht", Opt2_autohideTabbar, "auto hide/show the tabbar depending on number of open tabs", 0), BOOL(Rs2_bottomTabbar, "bottomTabbar", "bt", Opt2_bottomTabbar, "showing tabbar at bottom", 0), BOOL(Rs2_hideButtons, "hideButtons", "hb", Opt2_hideButtons, "hide buttons on tabbar", 0), BOOL(Rs2_syncTabIcon, "syncTabIcon", "sti", Opt2_syncTabIcon, "synchronizing icon name with tab title", 0), BOOL(Rs2_veryBold, "veryBoldFont", "vbf", Opt2_veryBold, "showing color text with bold font", 0), STRG(Rs_display_name, NULL, "d", NULL, NULL, 0), STRG(Rs_display_name, NULL, "display", "string", "X server to contact", 0), STRG(Rs_term_name, "termName", "tn", "string", "the TERM environment variable", 0), STRG(Rs_title, "title", "title", "string", "title name for window", 0), STRG(Rs_geometry, NULL, "g", NULL, NULL, 0), STRG(Rs_geometry, "geometry", "geometry", "geometry", "size (in characters) and position", 0), SWCH("C", Opt_console, "intercept console messages", 0), SWCH("iconic", Opt_iconic, "start iconic", 0), BOOL(Rs2_maximized, "maximized", "m", Opt2_maximized, "Start maximized", 0), BOOL(Rs2_fullscreen, "fullscreen", "fs", Opt2_fullscreen, "Start fullscreen", 0), /* -ic is used for appIcon */ /* SWCH("ic", Opt_iconic, NULL, 0), */ BOOL(Rs_reverseVideo, "reverseVideo", "rv", Opt_reverseVideo, "reverse video", 0), BOOL(Rs_loginShell, "loginShell", "ls", Opt_loginShell, "login shell", 0), BOOL(Rs_jumpScroll, "jumpScroll", "j", Opt_jumpScroll, "jump scrolling", 0),#ifdef TINTING_SUPPORT STRG(Rs_color + Color_tint, "tintColor", "tint", "color", "tint color", 0), STRG(Rs_shade, "shading", "shade", "%", "shade background by %x when tinting", 0), STRG(Rs_shade, "backgroundFade", "bgfade", "%", "fade background image or transparent background by %x (obsolete)", 0),#endif#ifdef TRANSPARENT RSTRG(Rs_bgRefreshInterval, "bgRefreshInterval", "ms", 0),#endif#ifdef OFF_FOCUS_FADING STRG(Rs_fade, "fading", "fade", "%", "make colors x% darker when losing focus", 0),#endif#ifdef HAVE_SCROLLBARS BOOL(Rs_scrollBar, "scrollBar", "sb", Opt_scrollBar, "scrollbar", 0), BOOL(Rs_scrollBar_right, "scrollbarRight", "sr", Opt_scrollBar_right, "scrollbar right", 0), BOOL(Rs_scrollBar_floating, "scrollbarFloating", "st", Opt_scrollBar_floating, "scrollbar without a trough", 0), STRG(Rs_scrollBar_thickness, "scrollbarThickness", "sbt", "number", "scrollbar thickness/width in pixels", 0), STRG(Rs_scrollBar_style, "scrollbarStyle", "ss", "mode", "scrollbar style = plain|xterm|rxvt|next|sgi", 0), STRG(Rs_scrollBar_align, "scrollbarAlign", "sa", "mode", "scrollbar alignment = top|bottom", 0),# ifdef BACKGROUND_IMAGE STRG(Rs_scrollbarPixmap, "scrollbarPixmap", "sbpixmap", "file[;geom]", "scrollbar background image", 0),# endif#endif BOOL(Rs_scrollTtyOutputInhibit, "scrollTtyOutputInhibit", "si", Opt_scrollTtyOutputInhibit, "scroll-on-tty-output inhibit", 0), BOOL(Rs_scrollTtyKeypress, "scrollTtyKeypress", "sk", Opt_scrollTtyKeypress, "scroll-on-keypress", 0), BOOL(Rs_scrollWithBuffer, "scrollWithBuffer", "sw", Opt_scrollWithBuffer, "scroll-with-buffer", 0), STRG(Rs_opacity, "opacity", "o", "%", "transluscent window (true transparent) opaque degree", 0), STRG(Rs_opacityDegree, "opacityDegree", "od", "%", "transluscent window opaque degree interval", 0),#ifdef TRANSPARENT BOOL(Rs_transparent, "transparent", "tr", Opt_transparent, "transparent", 0), BOOL(Rs_forceTransparent, "transparentForce", "trf", Opt_forceTransparent, "forcefully transparent", 0), SWCH("tr", Opt_transparent, NULL, 0),# ifdef HAVE_SCROLLBARS BOOL(Rs_transparent_scrollbar, "transparentScrollbar", "trs", Opt_transparent_scrollbar, "transparent scrollbar", 0),# endif# ifdef HAVE_MENUBAR BOOL(Rs_transparent_menubar, "transparentMenubar", "trm", Opt_transparent_menubar, "transparent menubar", 0),# endif BOOL(Rs_transparent_tabbar, "transparentTabbar", "trt", Opt_transparent_tabbar, "transparent tabbar", 0),#endif /* TRANSPARENT */#ifdef BACKGROUND_IMAGE STRG(Rs_tabbarPixmap, "tabbarPixmap", "tbpixmap", "file[;geom]", "tabbar background image", 0), BOOL(Rs_tabPixmap, "tabUsePixmap", "tupixmap", Opt_tabPixmap, "use tabbar background image for tabs", 0),# if 0 /* App icon not yet implemented */ STRG(Rs_appIcon, "appIcon", "ic", "file[;geom]", "application icon file", 0),#endif#endif /* BACKGROUND_IMAGE */ BOOL(Rs_utmpInhibit, "utmpInhibit", "ut", Opt_utmpInhibit, "utmp inhibit - do not log to utmp", 0), STRG(Rs_confFile, NULL, "cf", "file", "X resource configuration file instead of ~/.mrxvtrc", 0),#ifndef NO_BELL BOOL(Rs_visualBell, "visualBell", "vb", Opt_visualBell, "visual bell", 0),# if ! defined(NO_MAPALERT) && defined(MAPALERT_OPTION) BOOL(Rs_mapAlert, "mapAlert", NULL, Opt_mapAlert, NULL, 0),# endif#endif#ifdef META8_OPTION BOOL(Rs_meta8, "meta8", "m8", Opt_meta8, "meta8", 0),#endif#ifdef MOUSE_WHEEL BOOL(Rs_mouseWheelScrollPage, "mouseWheelScrollPage", "mp", Opt_mouseWheelScrollPage, "mouse wheel scrolling a page", 0),#endif#ifdef MULTICHAR_SET BOOL(Rs_mc_hack, "multibyte_cursor", "mcc", Opt_mc_hack, "Multibyte character cursor movement", 0),#endif#ifndef NO_FRILLS BOOL(Rs_tripleclickwords, "tripleclickwords", "tcw", Opt_tripleclickwords, "triple click word selection", 0),#endif STRG(Rs_color + Color_ufbg, "ufBackground", "ufbg", "color", "unfocused background color", 0),#ifdef TEXT_SHADOW STRG(Rs_textShadow, "textShadow", "ts", "color", "text shadow color", 0), STRG(Rs_textShadowMode, "textShadowMode", "tsm", "mode", "shadow mode = " "top|bottom|left|right|topleft|topright|botleft|botright", 0),#endif STRG(Rs_tabfg, "tabForeground", "tabfg", "color", "tabbar active tab foreground color", 0), STRG(Rs_tabbg, "tabBackground", "tabbg", "color", "tabbar and active tab background color", 0), STRG(Rs_itabfg, "itabForeground", "itabfg", "color", "tabbar inactive tab foreground color", 0), STRG(Rs_itabbg, "itabBackground", "itabbg", "color", "tabbar inactive tab background color", 0), RSTRG(Rs_color + minCOLOR + 0, "color0", "color", 0), RSTRG(Rs_color + minCOLOR + 1, "color1", "color", 0), RSTRG(Rs_color + minCOLOR + 2, "color2", "color", 0), RSTRG(Rs_color + minCOLOR + 3, "color3", "color", 0), RSTRG(Rs_color + minCOLOR + 4, "color4", "color", 0), RSTRG(Rs_color + minCOLOR + 5, "color5", "color", 0), RSTRG(Rs_color + minCOLOR + 6, "color6", "color", 0), RSTRG(Rs_color + minCOLOR + 7, "color7", "color", 0),#ifndef NO_BRIGHTCOLOR RSTRG(Rs_color + minBrightCOLOR + 0, "color8", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 1, "color9", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 2, "color10", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 3, "color11", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 4, "color12", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 5, "color13", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 6, "color14", "color", 0), RSTRG(Rs_color + minBrightCOLOR + 7, "color15", "color", 0),#endif /* NO_BRIGHTCOLOR */#ifndef NO_BOLD_UNDERLINE_REVERSE RSTRG(Rs_color + Color_BD, "colorBD", "color", 0), RSTRG(Rs_color + Color_UL, "colorUL", "color", 0), RSTRG(Rs_color + Color_RV, "colorRV", "color", 0),#endif /* ! NO_BOLD_UNDERLINE_REVERSE */#ifdef KEEP_SCROLLCOLOR RSTRG(Rs_color + Color_scroll, "scrollColor", "color", 0), RSTRG(Rs_color + Color_trough, "troughColor", "color", 0),#endif /* KEEP_SCROLLCOLOR */#ifdef OPTION_HC RSTRG(Rs_color + Color_HC, "highlightColor", "color", 0),#endif#ifndef NO_CURSORCOLOR STRG(Rs_color + Color_cursor, "cursorColor", "cr", "color", "cursor color", 0), RSTRG(Rs_color + Color_cursor2, "cursorColor2", "color", 0),#endif /* NO_CURSORCOLOR */ STRG(Rs_color + Color_pointer, "pointerColor", "pr", "color", "pointer color", 0), STRG(Rs_color + Color_border, "borderColor", "bd", "color", "border color", 0),#if defined (BACKGROUND_IMAGE) || defined(HAVE_MENUBAR) RSTRG(Rs_path, "path", "search path", 0),#endif /* defined (BACKGROUND_IMAGE) || (HAVE_MENUBAR) */#ifdef HAVE_MENUBAR STRG(Rs_menu, "menu", "menu", "filename[;tag]", "menubar definition file", 0), BOOL(Rs_showMenu, "showMenu", "showmenu", Opt_showMenu, "show menubar", 0),# ifdef BACKGROUND_IMAGE STRG(Rs_menubarPixmap, "menubarPixmap", "mbpixmap", "file[;geom]", "menubar background image", 0),# endif#endif#ifndef NO_BOLDFONT STRG(Rs_boldFont, "boldFont", "fb", "fontname", "bold text font", 0),# if MAX_NFONTS > 1 RSTRG(Rs_boldFont + 1, "boldFont1", "fontname", 0),#endif# if MAX_NFONTS > 2 RSTRG(Rs_boldFont + 2, "boldFont2", "fontname", 0),#endif# if MAX_NFONTS > 3 RSTRG(Rs_boldFont + 3, "boldFont3", "fontname", 0),#endif# if MAX_NFONTS > 4 RSTRG(Rs_boldFont + 4, "boldFont4", "fontname", 0),#endif# if MAX_NFONTS > 5 RSTRG(Rs_boldFont + 5, "boldFont5", "fontname", 0),#endif# if MAX_NFONTS > 6 RSTRG(Rs_boldFont + 6, "boldFont6", "fontname", 0),#endif# if MAX_NFONTS > 7 RSTRG(Rs_boldFont + 7, "boldFont7", "fontname", 0),#endif#endif STRG(Rs_font + 0, "font", "fn", "fontname", "normal text font", 0),#if MAX_NFONTS > 1 RSTRG(Rs_font + 1, "font1", "fontname", 0),#endif#if MAX_NFONTS > 2 RSTRG(Rs_font + 2, "font2", "fontname", 0),#endif#if MAX_NFONTS > 3 RSTRG(Rs_font + 3, "font3", "fontname", 0),#endif#if MAX_NFONTS > 4 RSTRG(Rs_font + 4, "font4", "fontname", 0),#endif#if MAX_NFONTS > 5 RSTRG(Rs_font + 5, "font5", "fontname", 0),#endif#if MAX_NFONTS > 6 RSTRG(Rs_font + 6, "font6", "fontname", 0),#endif#if MAX_NFONTS > 7 RSTRG(Rs_font + 7, "font7", "fontname", 0),#endif#ifdef MULTICHAR_SET STRG(Rs_mfont + 0, "mfont", "fm", "fontname", "multichar font", 0),# if MAX_NFONTS > 1 RSTRG(Rs_mfont + 1, "mfont1", "fontname", 0),# endif# if MAX_NFONTS > 2 RSTRG(Rs_mfont + 2, "mfont2", "fontname", 0),# endif# if MAX_NFONTS > 3 RSTRG(Rs_mfont + 3, "mfont3", "fontname", 0),# endif# if MAX_NFONTS > 4 RSTRG(Rs_mfont + 4, "mfont4", "fontname", 0),# endif# if MAX_NFONTS > 5 RSTRG(Rs_mfont + 5, "mfont5", "fontname", 0),# endif# if MAX_NFONTS > 6 RSTRG(Rs_mfont + 6, "mfont6", "fontname", 0),# endif# if MAX_NFONTS > 7 RSTRG(Rs_mfont + 7, "mfont7", "fontname", 0),# endif#endif /* MULTICHAR_SET */#ifdef XFT_SUPPORT BOOL(Rs_xft, "xft", "xft", Opt_xft, "use freetype font", 0), STRG(Rs_xftfont, "xftFont", "xftfn", "fontname", "freetype font", 0),# ifdef MULTICHAR_SET STRG(Rs_xftmfont, "xftmFont", "xftfm", "fontname", "freetype multichar font", 0), STRG(Rs_xftmsz, "xftmSize", "xftmsz", "number", "freetype multichar font size", 0), BOOL(Rs2_xftNomFont, "xftNomFont", "xftnfm", Opt2_xftNomFont, "use freetype font as freetype mfont", 0), BOOL(Rs2_xftSlowOutput, "xftSlowOutput", "xftslow", Opt2_xftSlowOutput, "multichar string display in slow mode for better visual effect", 0),# endif BOOL(Rs2_xftaa, "xftAntialias", "xftaa", Opt2_xftAntialias, "antialias of freetype font", 0), BOOL(Rs2_xftht, "xftHinting", "xftht", Opt2_xftHinting, "hinting of freetype font", 0), BOOL(Rs2_xftah, "xftAutoHint", "xftah", Opt2_xftAutoHint, "autohint of freetype font", 0), BOOL(Rs2_xftga, "xftGlobalAdvance", "xftga", Opt2_xftGlobalAdvance, "global advance of freetype font", 0), STRG(Rs_xftwt, "xftWeight", "xftwt", "style", "weight style = light|medium|bold", 0), STRG(Rs_xftst, "xftSlant", "xftst", "style", "slant style = roman|italic|oblique", 0), STRG(Rs_xftsz, "xftSize", "xftsz", "number", "freetype font size", 0), STRG(Rs_xftwd, "xftWidth", "xftwd", "style", "freetype font width = " "ultracondensed|condensed|normal|expanded|ultraexpended", 0), STRG(Rs_xftrgb, "xftRGBA", "xftrgb", "style", "freetype font sub-pixel order = rgb|bgr|vrgb|vbgr|none", 0), STRG(Rs_xftpfn, "xftPFont", "xftpfn", "fontname", "propotionally spaced freetype font to use for tabbar / menubar", 0), STRG(Rs_xftpsz, "xftPSize", "xftpsz", "size", "size of propotional freetype font", 0),#endif BOOL(Rs2_cmdAllTabs, "cmdAllTabs", "at", Opt2_cmdAllTabs, "running -e command for all tabs", 0), BOOL(Rs2_protectSecondary, "protectSecondary", "ps", Opt2_protectSecondary, "protecting tab that uses the secondary screen from being closed", 0),#ifdef MULTICHAR_SET STRG(Rs_multichar_encoding, "multichar_encoding", "km", "mode", "multichar encoding mode = eucj|sjis|big5|gb|gbk|kr|noenc", 0),#endif /* MULTICHAR_SET */#ifdef USE_XIM STRG(Rs_inputMethod, "inputMethod", "im", "name", "name of input method", 0), STRG(Rs_preeditType, "preeditType", "pt", "style", "input style = OverTheSpot|OffTheSpot|Root", 0),#endif /* USE_XIM */#ifdef GREEK_SUPPORT STRG(Rs_greek_keyboard, "greek_keyboard", "grk", "mode", "greek keyboard mapping mode = iso|ibm", 0), RSTRG(Rs_greektoggle_key, "greektoggle_key", "keysym", 0),#endif STRG(Rs_name, "clientName", "name", "string", "client instance, icon, and title strings", 0), STRG(Rs_title, NULL, "T", NULL, NULL, 0), /* short form */ STRG(Rs_iconName, "iconName", "in", "string", "icon name for window", 0), BOOL(Rs2_borderLess, "borderLess", "bl", Opt2_borderLess, "borderless window", 0), BOOL(Rs2_overrideRedirect, "overrideRedirect", "or", Opt2_overrideRedirect, "override_redirect flag", 0), STRG(Rs_bellCommand, "bellCommand", "blc", "string", "command to execute instead of beeping", 0), BOOL(Rs2_holdExit, "holdExit", "hold", Opt2_holdExit, "hold after terminal exits", 0), STRG(Rs_holdExitText, "holdExitText", "het", "string", "text to show while holding the terminal", 0), STRG(Rs_desktop, "desktop", "desktop", "number", "desktop to place the program", 0), BOOL(Rs2_broadcast, "broadcast", "bcst", Opt2_broadcast, "broadcast input to all terminals", 0),#ifndef NO_FRILLS STRG(Rs_ext_bwidth, "externalBorder", "w", "number", "external border in pixels", 0), STRG(Rs_ext_bwidth, NULL, "bw", NULL, NULL, 0), STRG(Rs_ext_bwidth, NULL, "borderwidth", NULL, NULL, 0), STRG(Rs_int_bwidth, "internalBorder", "b", "number", "internal border in pixels", 0), /* Reposition window on resize to stay on screen */ BOOL(Rs2_smartResize, "smartResize", NULL, Opt2_smartResize, NULL, 0), /* Resize window smooothly (not in character steps) */ BOOL(Rs2_smoothResize, "smoothResize", NULL, Opt2_smoothResize, NULL, 0),#endif#ifndef NO_LINESPACE STRG(Rs_lineSpace, "lineSpace", "lsp", "number", "number of extra pixels between rows", 0),#endif#ifdef POINTER_BLANK BOOL(Rs_pointerBlank, "pointerBlank", "pb", Opt_pointerBlank, "blank pointer", 0),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -