commit e824f330ce24f4a26c55b3fe434d35156a5acff9 Author: tavo Date: Sat Dec 28 23:32:12 2024 -0600 first commit diff --git a/dwm-flexipatched.diff b/dwm-flexipatched.diff new file mode 100644 index 0000000..3cf7afa --- /dev/null +++ b/dwm-flexipatched.diff @@ -0,0 +1,347 @@ +diff '--color=auto' -Nu a/config.def.h b/config.def.h +--- a/config.def.h 2024-12-28 22:09:50.009762644 -0600 ++++ b/config.def.h 2024-12-28 23:28:39.313251353 -0600 +@@ -17,7 +17,7 @@ + * automatically update with setborderpx. */ + static const unsigned int barborderpx = 0; /* border pixel of bar */ + #endif // BAR_BORDER_PATCH +-static const unsigned int snap = 32; /* snap pixel */ ++static const unsigned int snap = 1; /* snap pixel */ + #if SWALLOW_PATCH + static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ + #endif // SWALLOW_PATCH +@@ -166,21 +166,21 @@ + #if BAR_PANGO_PATCH + static const char font[] = "monospace 10"; + #else +-static const char *fonts[] = { "monospace:size=10" }; ++static const char *fonts[] = { "JetBrainsMono:bold:size=10" }; + #endif // BAR_PANGO_PATCH + static const char dmenufont[] = "monospace:size=10"; + + static char c000000[] = "#000000"; // placeholder value + +-static char normfgcolor[] = "#bbbbbb"; +-static char normbgcolor[] = "#222222"; +-static char normbordercolor[] = "#444444"; +-static char normfloatcolor[] = "#db8fd9"; +- +-static char selfgcolor[] = "#eeeeee"; +-static char selbgcolor[] = "#005577"; +-static char selbordercolor[] = "#005577"; +-static char selfloatcolor[] = "#005577"; ++static char normfgcolor[] = "#374145"; ++static char normbgcolor[] = "#1e2326"; ++static char normbordercolor[] = "#1e2326"; ++static char normfloatcolor[] = "#1e2326"; ++ ++static char selfgcolor[] = "#7fbbb3"; ++static char selbgcolor[] = "#1e2326"; ++static char selbordercolor[] = "#7fbbb3"; ++static char selfloatcolor[] = "#7fbbb3"; + + static char titlenormfgcolor[] = "#bbbbbb"; + static char titlenormbgcolor[] = "#222222"; +@@ -192,13 +192,13 @@ + static char titleselbordercolor[] = "#005577"; + static char titleselfloatcolor[] = "#005577"; + +-static char tagsnormfgcolor[] = "#bbbbbb"; +-static char tagsnormbgcolor[] = "#222222"; ++static char tagsnormfgcolor[] = "#374145"; ++static char tagsnormbgcolor[] = "#1e2326"; + static char tagsnormbordercolor[] = "#444444"; + static char tagsnormfloatcolor[] = "#db8fd9"; + +-static char tagsselfgcolor[] = "#eeeeee"; +-static char tagsselbgcolor[] = "#005577"; ++static char tagsselfgcolor[] = "#7fbbb3"; ++static char tagsselbgcolor[] = "#1e2326"; + static char tagsselbordercolor[] = "#005577"; + static char tagsselfloatcolor[] = "#005577"; + +@@ -515,6 +515,10 @@ + #elif SCRATCHPADS_PATCH + RULE(.instance = "spterm", .tags = SPTAG(0), .isfloating = 1) + #endif // SCRATCHPADS_PATCH ++ RULE(.class = "st", .isfloating = 0, .isterminal = 1, .noswallow = 0) ++ RULE(.class = "Display-im6.q16", .isfloating = 1, .isterminal = 1, .noswallow = 0) ++ RULE(.class = "zbar", .isfloating = 1, .isterminal = 1, .noswallow = 0) ++ RULE(.class = "qemu-system-x86_64", .isfloating = 1, .isterminal = 1, .noswallow = 0) + }; + + #if MONITOR_RULES_PATCH +@@ -637,7 +641,7 @@ + }; + + /* layout(s) */ +-static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ ++static const float mfact = 0.50; /* factor of master area size [0.05..0.95] */ + static const int nmaster = 1; /* number of clients in master area */ + #if FLEXTILE_DELUXE_LAYOUT + static const int nstack = 0; /* number of clients in primary stack area */ +@@ -729,9 +733,9 @@ + static const Layout layouts[] = { + /* symbol arrange function */ + #if TILE_LAYOUT +- { "[]=", tile }, /* first entry is default */ ++ { "", tile }, /* first entry is default */ + #endif +- { "><>", NULL }, /* no layout function means floating behavior */ ++ /* { "><>", NULL }, /1* no layout function means floating behavior *1/ */ + #if MONOCLE_LAYOUT + { "[M]", monocle }, + #endif +@@ -783,7 +787,7 @@ + #endif // XKB_PATCH + + /* key definitions */ +-#define MODKEY Mod1Mask ++#define MODKEY Mod4Mask + #if COMBO_PATCH && SWAPTAGS_PATCH && TAGOTHERMONITOR_PATCH + #define TAGKEYS(KEY,TAG) \ + { MODKEY, KEY, comboview, {.ui = 1 << TAG} }, \ +@@ -870,11 +874,11 @@ + #if !NODMENU_PATCH + "-m", dmenumon, + #endif // NODMENU_PATCH +- "-fn", dmenufont, +- "-nb", normbgcolor, +- "-nf", normfgcolor, +- "-sb", selbgcolor, +- "-sf", selfgcolor, ++ /* "-fn", dmenufont, */ ++ /* "-nb", normbgcolor, */ ++ /* "-nf", normfgcolor, */ ++ /* "-sb", selbgcolor, */ ++ /* "-sf", selfgcolor, */ + #if BAR_DMENUMATCHTOP_PATCH + topbar ? NULL : "-b", + #endif // BAR_DMENUMATCHTOP_PATCH +@@ -906,19 +910,39 @@ + }; + #endif // ON_EMPTY_KEYS_PATCH + ++static const char *filemanager[] = { "st", "-e", "nav", NULL }; ++static const char *dpass[] = { "dwmpass", NULL }; ++static const char *dpassotp[] = { "dwmotp", NULL }; ++static const char *klayout[] = { "setxkbmap-next", NULL }; ++static const char *doutput[] = { "menu-output", NULL }; ++static const char *dinput[] = { "menu-input", NULL }; ++static const char *dpower[] = { "menu-power", NULL }; ++static const char *browser[] = { "firefox-hardened", NULL }; ++static const char *brightdown[] = { "brightdown", NULL }; ++static const char *brightup[] = { "brightup", NULL }; ++static const char *clipmenu[] = { "clipmenu", NULL }; ++static const char *voldown[] = { "voldown", NULL }; ++static const char *volup[] = { "volup", NULL }; ++static const char *micdown[] = { "micdown", NULL }; ++static const char *micup[] = { "micup", NULL }; ++static const char *prtsc[] = { "prtsc", NULL }; ++static const char *mute[] = { "mute", NULL }; ++static const char *micmute[] = { "micmute", NULL }; ++ ++#include + static const Key keys[] = { + /* modifier key function argument */ + #if KEYMODES_PATCH + { MODKEY, XK_Escape, setkeymode, {.ui = COMMANDMODE} }, + #endif // KEYMODES_PATCH +- { MODKEY, XK_p, spawn, {.v = dmenucmd } }, +- { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, ++ { MODKEY, XK_r, spawn, {.v = dmenucmd } }, ++ { MODKEY, XK_Return, spawn, {.v = termcmd } }, + #if RIODRAW_PATCH + { MODKEY|ControlMask, XK_p, riospawnsync, {.v = dmenucmd } }, + { MODKEY|ControlMask, XK_Return, riospawn, {.v = termcmd } }, + { MODKEY, XK_s, rioresize, {0} }, + #endif // RIODRAW_PATCH +- { MODKEY, XK_b, togglebar, {0} }, ++ { MODKEY|ShiftMask, XK_b, togglebar, {0} }, + #if TOGGLETOPBAR_PATCH + { MODKEY|ShiftMask, XK_b, toggletopbar, {0} }, + #endif // TOGGLETOPBAR_PATCH +@@ -967,8 +991,8 @@ + { MODKEY|ControlMask, XK_j, pushdown, {0} }, + { MODKEY|ControlMask, XK_k, pushup, {0} }, + #endif // PUSH_PATCH / PUSH_NO_MASTER_PATCH +- { MODKEY, XK_i, incnmaster, {.i = +1 } }, +- { MODKEY, XK_d, incnmaster, {.i = -1 } }, ++ { MODKEY|ShiftMask, XK_i, incnmaster, {.i = +1 } }, ++ { MODKEY|ShiftMask, XK_d, incnmaster, {.i = -1 } }, + #if FLEXTILE_DELUXE_LAYOUT + { MODKEY|ControlMask, XK_i, incnstack, {.i = +1 } }, + { MODKEY|ControlMask, XK_u, incnstack, {.i = -1 } }, +@@ -1013,7 +1037,7 @@ + #if INSETS_PATCH + { MODKEY|ShiftMask|ControlMask, XK_a, updateinset, {.v = &default_inset } }, + #endif // INSETS_PATCH +- { MODKEY, XK_Return, zoom, {0} }, ++ { MODKEY|ShiftMask, XK_Return, zoom, {0} }, + #if VANITYGAPS_PATCH + { MODKEY|Mod4Mask, XK_u, incrgaps, {.i = +1 } }, + { MODKEY|Mod4Mask|ShiftMask, XK_u, incrgaps, {.i = -1 } }, +@@ -1064,7 +1088,7 @@ + #if BAR_WINTITLEACTIONS_PATCH + { MODKEY|ControlMask, XK_z, showhideclient, {0} }, + #endif // BAR_WINTITLEACTIONS_PATCH +- { MODKEY|ShiftMask, XK_c, killclient, {0} }, ++ { MODKEY, XK_c, killclient, {0} }, + #if KILLUNSEL_PATCH + { MODKEY|ShiftMask, XK_x, killunsel, {0} }, + #endif // KILLUNSEL_PATCH +@@ -1087,9 +1111,8 @@ + #if XRDB_PATCH && !BAR_VTCOLORS_PATCH + { MODKEY|ShiftMask, XK_F5, xrdb, {.v = NULL } }, + #endif // XRDB_PATCH +- { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, +- { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, +- { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, ++ { MODKEY|ShiftMask, XK_t, setlayout, {.v = &layouts[0]} }, ++ { MODKEY|ShiftMask, XK_m, setlayout, {.v = &layouts[1]} }, + #if COLUMNS_LAYOUT + { MODKEY, XK_c, setlayout, {.v = &layouts[3]} }, + #endif // COLUMNS_LAYOUT +@@ -1105,7 +1128,7 @@ + { MODKEY|ControlMask, XK_Return, mirrorlayout, {0} }, /* flextile, flip master and stack areas */ + #endif // FLEXTILE_DELUXE_LAYOUT + { MODKEY, XK_space, setlayout, {0} }, +- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, ++ { MODKEY, XK_t, togglefloating, {0} }, + #if MAXIMIZE_PATCH + { MODKEY|ControlMask|ShiftMask, XK_h, togglehorizontalmax, {0} }, + { MODKEY|ControlMask|ShiftMask, XK_l, togglehorizontalmax, {0} }, +@@ -1139,7 +1162,7 @@ + { MODKEY|ShiftMask, XK_f, fullscreen, {0} }, + #endif // FULLSCREEN_PATCH + #if STICKY_PATCH +- { MODKEY|ShiftMask, XK_s, togglesticky, {0} }, ++ { MODKEY, XK_s, togglesticky, {0} }, + #endif // STICKY_PATCH + #if SCRATCHPAD_ALT_1_PATCH + { MODKEY, XK_minus, scratchpad_show, {0} }, +@@ -1312,6 +1335,25 @@ + TAGKEYS( XK_7, 6) + TAGKEYS( XK_8, 7) + TAGKEYS( XK_9, 8) ++ { MODKEY, XK_f, spawn, {.v = filemanager } }, ++ { MODKEY|ShiftMask, XK_o, spawn, {.v = dpassotp } }, ++ { MODKEY|ShiftMask, XK_c, spawn, {.v = clipmenu } }, ++ { MODKEY, XK_w, spawn, {.v = browser } }, ++ { MODKEY, XK_o, spawn, {.v = doutput } }, ++ { MODKEY, XK_space, spawn, {.v = klayout } }, ++ { MODKEY, XK_p, spawn, {.v = dpower } }, ++ { MODKEY, XK_i, spawn, {.v = dinput } }, ++ { MODKEY|ShiftMask, XK_p, spawn, {.v = dpass } }, ++ { 0, XF86XK_MonBrightnessDown, spawn, {.v = brightdown } }, ++ { 0, XF86XK_MonBrightnessUp, spawn, {.v = brightup } }, ++ { 0, XF86XK_AudioLowerVolume, spawn, {.v = voldown } }, ++ { 0, XF86XK_AudioRaiseVolume, spawn, {.v = volup } }, ++ { 0, XF86XK_AudioMute, spawn, {.v = mute } }, ++ { ShiftMask, XF86XK_AudioLowerVolume, spawn, {.v = micdown } }, ++ { ShiftMask, XF86XK_AudioRaiseVolume, spawn, {.v = micup } }, ++ { ShiftMask, XF86XK_AudioMute, spawn, {.v = micmute } }, ++ { 0, XF86XK_AudioMicMute, spawn, {.v = micmute } }, ++ { 0, XK_Print, spawn, {.v = prtsc } }, + }; + + #if KEYMODES_PATCH +diff '--color=auto' -Nu a/config.mk b/config.mk +--- a/config.mk 2024-12-28 22:09:50.009762644 -0600 ++++ b/config.mk 2024-12-28 22:39:51.163155583 -0600 +@@ -46,7 +46,7 @@ + #XEXTLIB = -lXext + + # Uncomment this for the swallow patch / SWALLOW_PATCH +-#XCBLIBS = -lX11-xcb -lxcb -lxcb-res ++XCBLIBS = -lX11-xcb -lxcb -lxcb-res + + # This is needed for the winicon and tagpreview patches / BAR_WINICON_PATCH / BAR_TAGPREVIEW_PATCH + #IMLIB2LIBS = -lImlib2 +Common subdirectories: a/.git and b/.git +Common subdirectories: a/.github and b/.github +Common subdirectories: a/patch and b/patch +diff '--color=auto' -Nu a/patches.def.h b/patches.def.h +--- a/patches.def.h 2024-12-28 22:09:50.019762642 -0600 ++++ b/patches.def.h 2024-12-28 22:39:38.159821799 -0600 +@@ -206,7 +206,7 @@ + #define BAR_WINICON_PATCH 0 + + /* Show window title in bar */ +-#define BAR_WINTITLE_PATCH 1 ++#define BAR_WINTITLE_PATCH 0 + + /* Shows window titles in the bar, but only for floating clients. + * This depends on code from the flexwintitle patch. +@@ -459,7 +459,7 @@ + * This patch interferes with the center transient windows patches. + * https://dwm.suckless.org/patches/alwayscenter/ + */ +-#define ALWAYSCENTER_PATCH 0 ++#define ALWAYSCENTER_PATCH 1 + + /* This patch allows windows to be resized with its aspect ratio remaining constant. + * https://dwm.suckless.org/patches/aspectresize/ +@@ -488,7 +488,7 @@ + /* This patch adds new clients at the bottom of the stack. + * https://dwm.suckless.org/patches/attachbottom/ + */ +-#define ATTACHBOTTOM_PATCH 0 ++#define ATTACHBOTTOM_PATCH 1 + + /* This patch will make dwm run "~/.local/share/dwm/autostart_blocking.sh" and + * "~/.local/share/dwm/autostart.sh &" before entering the handler loop. One or +@@ -828,7 +828,7 @@ + /* This patch allows you to move clients around in the stack and swap them with the master. + * https://dwm.suckless.org/patches/movestack/ + */ +-#define MOVESTACK_PATCH 0 ++#define MOVESTACK_PATCH 1 + + /* This patch allows you to change the names of tags during runtime. + * +@@ -865,7 +865,7 @@ + /* Removes the border when there is only one window visible. + * https://dwm.suckless.org/patches/noborder/ + */ +-#define NOBORDER_PATCH 0 ++#define NOBORDER_PATCH 1 + + /* Enable modifying or removing dmenu in config.def.h which resulted previously in a + * compilation error because two lines of code hardcode dmenu into dwm. +@@ -917,7 +917,7 @@ + * monitor (default). + * https://dwm.suckless.org/patches/pertag/ + */ +-#define PERTAG_PATCH 0 ++#define PERTAG_PATCH 1 + + /* Option to enable gaps on a per tag basis rather than globally. + * Depends on both pertag and vanitygaps patches being enabled. +@@ -1188,7 +1188,7 @@ + /* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. + * https://dwm.suckless.org/patches/sticky/ + */ +-#define STICKY_PATCH 0 ++#define STICKY_PATCH 1 + + /* This patch adds "window swallowing" to dwm as known from Plan 9's windowing system rio. + * Clients marked with isterminal in config.h swallow a window opened by any child process, +@@ -1205,7 +1205,7 @@ + * + * https://dwm.suckless.org/patches/swallow/ + */ +-#define SWALLOW_PATCH 0 ++#define SWALLOW_PATCH 1 + + /* This patch depends on the pertag patch and makes it possible to switch focus with a single + * shortcut (MOD+s) instead of having to think if you should use mod-j or mod-k for reaching +@@ -1403,7 +1403,7 @@ + * when the mouse cursor is (a) on a different screen or (b) on top of a different window. + * https://dwm.suckless.org/patches/warp/ + */ +-#define WARP_PATCH 0 ++#define WARP_PATCH 1 + + /* Sometimes a single application opens different windows depending on the task + * at hand and this is often reflected in the WM_WINDOW_ROLE(STRING) x property. diff --git a/st-flexipatched.diff b/st-flexipatched.diff new file mode 100644 index 0000000..4c3f375 --- /dev/null +++ b/st-flexipatched.diff @@ -0,0 +1,147 @@ +diff '--color=auto' -Nu a/config.def.h b/config.def.h +--- a/config.def.h 2024-12-28 22:20:47.286451280 -0600 ++++ b/config.def.h 2024-12-28 22:21:15.313118824 -0600 +@@ -5,7 +5,7 @@ + * + * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html + */ +-static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; ++static char *font = "JetBrainsMono:size=10"; + #if FONT2_PATCH + /* Spare fonts */ + static char *font2[] = { +@@ -178,27 +178,31 @@ + /* Terminal colors (16 first used in escape sequence) */ + static const char *colorname[] = { + /* 8 normal colors */ +- "black", +- "red3", +- "green3", +- "yellow3", +- "blue2", +- "magenta3", +- "cyan3", +- "gray90", ++ [0] = "#414b50", /* black */ ++ [1] = "#e67e80", /* red */ ++ [2] = "#a7c080", /* green */ ++ [3] = "#dbbc7f", /* yellow */ ++ [4] = "#7fbbb3", /* blue */ ++ [5] = "#d699b6", /* magenta */ ++ [6] = "#83c092", /* cyan */ ++ [7] = "#d3c6aa", /* white */ + + /* 8 bright colors */ +- "gray50", +- "red", +- "green", +- "yellow", +- "#5c5cff", +- "magenta", +- "cyan", +- "white", ++ [8] = "#475258", /* black */ ++ [9] = "#e67e80", /* red */ ++ [10] = "#a7c080", /* green */ ++ [11] = "#dbbc7f", /* yellow */ ++ [12] = "#7fbbb3", /* blue */ ++ [13] = "#d699b6", /* magenta */ ++ [14] = "#83c092", /* cyan */ ++ [15] = "#d3c6aa", /* white */ + + [255] = 0, + ++ /* special colors */ ++ [256] = "#272e33", /* background */ ++ [257] = "#d3c6aa", /* foreground */ ++ + /* more colors can be added after 255 to use with DefaultXX */ + "#add8e6", /* 256 -> cursor */ + "#555555", /* 257 -> rev cursor*/ +@@ -215,10 +219,10 @@ + unsigned int defaultbg = 0; + unsigned int bg = 17, bgUnfocused = 16; + #else +-unsigned int defaultbg = 258; ++unsigned int defaultbg = 256; + #endif // ALPHA_FOCUS_HIGHLIGHT_PATCH +-unsigned int defaultfg = 259; +-unsigned int defaultcs = 256; ++unsigned int defaultfg = 257; ++unsigned int defaultcs = 257; + unsigned int defaultrcs = 257; + #if SELECTION_COLORS_PATCH + unsigned int selectionfg = 258; +@@ -428,8 +432,8 @@ + { MODKEY, XK_Return, fullscreen, {.i = 0} }, + #endif // FULLSCREEN_PATCH + #if SCROLLBACK_PATCH +- { ShiftMask, XK_Page_Up, kscrollup, {.i = -1}, S_PRI }, +- { ShiftMask, XK_Page_Down, kscrolldown, {.i = -1}, S_PRI }, ++ { TERMMOD, XK_K, kscrollup, {.i = 1}, S_PRI }, ++ { TERMMOD, XK_J, kscrolldown, {.i = 1}, S_PRI }, + #endif // SCROLLBACK_PATCH + #if CLIPBOARD_PATCH + { TERMMOD, XK_Y, clippaste, {.i = 0} }, +diff '--color=auto' -Nu a/config.mk b/config.mk +--- a/config.mk 2024-12-28 22:20:47.286451280 -0600 ++++ b/config.mk 2024-12-28 22:21:15.313118824 -0600 +@@ -27,8 +27,8 @@ + #LIGATURES_LIBS = `$(PKG_CONFIG) --libs harfbuzz` + + # Uncomment this for the SIXEL patch / SIXEL_PATCH +-#SIXEL_C = sixel.c sixel_hls.c +-#SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2` ++SIXEL_C = sixel.c sixel_hls.c ++SIXEL_LIBS = `$(PKG_CONFIG) --libs imlib2` + + # Uncomment for the netwmicon patch / NETWMICON_PATCH + #NETWMICON_LIBS = `$(PKG_CONFIG) --libs gdlib` +Common subdirectories: a/.git and b/.git +Common subdirectories: a/patch and b/patch +diff '--color=auto' -Nu a/patches.def.h b/patches.def.h +--- a/patches.def.h 2024-12-28 22:20:47.289784616 -0600 ++++ b/patches.def.h 2024-12-28 22:21:33.886452799 -0600 +@@ -44,7 +44,7 @@ + /* A simple variant of the anysize patch that only changes the resize hints to allow the window to + * be resized to any size. + */ +-#define ANYSIZE_SIMPLE_PATCH 0 ++#define ANYSIZE_SIMPLE_PATCH 1 + + /* Draws a background image in farbfeld format in place of the defaultbg color allowing for pseudo + * transparency. +@@ -321,7 +321,7 @@ + * Text wraps when the terminal window is made smaller. + * Comes with scrollback. + */ +-#define REFLOW_PATCH 0 ++#define REFLOW_PATCH 1 + + /* This patch allows you to specify a border that is relative in size to the width of a cell + * in the terminal. +@@ -338,13 +338,13 @@ + /* Scroll back through terminal output using Shift+{PageUp, PageDown}. + * https://st.suckless.org/patches/scrollback/ + */ +-#define SCROLLBACK_PATCH 0 ++#define SCROLLBACK_PATCH 1 + + /* Scroll back through terminal output using Shift+MouseWheel. + * This variant depends on SCROLLBACK_PATCH being enabled. + * https://st.suckless.org/patches/scrollback/ + */ +-#define SCROLLBACK_MOUSE_PATCH 0 ++#define SCROLLBACK_MOUSE_PATCH 1 + + /* Scroll back through terminal output using mouse wheel (when not in MODE_ALTSCREEN). + * This variant depends on SCROLLBACK_PATCH being enabled. +@@ -378,7 +378,7 @@ + * + * https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809 + */ +-#define SIXEL_PATCH 0 ++#define SIXEL_PATCH 1 + + /* This patch allows clients to embed into the st window and is useful if you tend to + * start X applications from the terminal. For example: