Huge changes to .Xresources, layouts/tags and more

This commit is contained in:
speediegq 2022-10-19 22:27:34 +02:00
parent 6fd111c889
commit 520a8adc5e
5 changed files with 433 additions and 397 deletions

View file

@ -3,225 +3,225 @@
!! This is the speedwm configuration file. It will be loaded on startup provided it is located in ~/.config/speedwm-de/speedwmrc. !! This is the speedwm configuration file. It will be loaded on startup provided it is located in ~/.config/speedwm-de/speedwmrc.
!! If it is not, you need to manually load it. !! If it is not, you need to manually load it.
!! !!
!! To reload settings during runtime, run 'speedwm_run -r'. !! To reload settings during runtime, run 'speedwm.run -r'.
!! !!
!! Bar options !! Bar options
- speedwm.bar_height: 8 !! Height of the bar in pixels (<num>) - speedwm.bar.height: 8 !! Height of the bar in pixels (<num>)
- speedwm.bar_hide: 0 !! Hide the bar by default (0/1) - speedwm.bar.hide: 0 !! Hide the bar by default (0/1)
- speedwm.bar_hide_tags: 0 !! Hide the tags (0/1) - speedwm.bar.hide.tags: 0 !! Hide the tags (0/1)
- speedwm.bar_hide_emptytags: 1 !! Hide the tags that have no windows open (0/1) - speedwm.bar.hide.emptytags: 1 !! Hide the tags that have no windows open (0/1)
- speedwm.bar_hide_powerline: 1 !! Hide the powerline drawn over the tags (0/1) - speedwm.bar.hide.powerline: 1 !! Hide the powerline drawn over the tags (0/1)
- speedwm.bar_hide_floating: 0 !! Hide the floating window indicator (0/1) - speedwm.bar.hide.floating: 0 !! Hide the floating window indicator (0/1)
- speedwm.bar_hide_layout: 0 !! Hide the layout indicator (0/1) - speedwm.bar.hide.layout: 0 !! Hide the layout indicator (0/1)
- speedwm.bar_hide_sticky: 0 !! Hide the sticky indicator (0/1) - speedwm.bar.hide.sticky: 0 !! Hide the sticky indicator (0/1)
- speedwm.bar_hide_status: 0 !! Hide the status bar (0/1) - speedwm.bar.hide.status: 0 !! Hide the status bar (0/1)
- speedwm.bar_hide_title: 0 !! Hide the window title (0/1) - speedwm.bar.hide.title: 0 !! Hide the window title (0/1)
- speedwm.bar_hide_unseltitle: 0 !! Hide the unselected window title (0/1) - speedwm.bar.hide.unseltitle: 0 !! Hide the unselected window title (0/1)
- speedwm.bar_hide_icon: 0 !! Hide the window icon (0/1) - speedwm.bar.hide.icon: 0 !! Hide the window icon (0/1)
- speedwm.bar_layoutposition: 1 !! Position of the layout indicator (0: Right, 1: Left) - speedwm.bar.layoutposition: 1 !! Position of the layout indicator (0: Right, 1: Left)
- speedwm.bar_paddingh: 10 !! Horizontal padding (extra space) around the bar in pixels (<num>) - speedwm.bar.paddingh: 10 !! Horizontal padding (extra space) around the bar in pixels (<num>)
- speedwm.bar_paddingv: 10 !! Vertical padding (extra space) around the bar in pixels (<num>) - speedwm.bar.paddingv: 10 !! Vertical padding (extra space) around the bar in pixels (<num>)
- speedwm.bar_position: 1 !! Position of the bar (0: Bottom, 1: Top) - speedwm.bar.position: 1 !! Position of the bar (0: Bottom, 1: Top)
!! Border options !! Border options
- speedwm.border_roundedcorners: 0 !! Enable rounded corners around the border of windows (0/1) - speedwm.border.roundedcorners: 0 !! Enable rounded corners around the border of windows (0/1)
- speedwm.border_cornerradius: 2 !! Corner radius when rounded corners are enabled (<num>) - speedwm.border.cornerradius: 2 !! Corner radius when rounded corners are enabled (<num>)
- speedwm.border_size: 1 !! Size of the border around windows in pixels (<num>) - speedwm.border.size: 1 !! Size of the border around windows in pixels (<num>)
!! Client options !! Client options
- speedwm.client_allowurgent: 1 !! Allow windows to have the 'urgent' status (0/1) - speedwm.client.allowurgent: 1 !! Allow windows to have the 'urgent' status (0/1)
- speedwm.client_autoresize: 1 !! Allow windows to resize themselves on demand (0/1) - speedwm.client.autoresize: 1 !! Allow windows to resize themselves on demand (0/1)
- speedwm.client_decorhints: 1 !! Respect decoration hints for windows (0/1) - speedwm.client.decorhints: 1 !! Respect decoration hints for windows (0/1)
- speedwm.client_fade_inactive: 1 !! Fade inactive windows (windows that are not focused) (0/1) - speedwm.client.fade.inactive: 1 !! Fade inactive windows (windows that are not focused) (0/1)
- speedwm.client_fade_windows: 1 !! Fade windows (0/1) - speedwm.client.fade.windows: 1 !! Fade windows (0/1)
- speedwm.client_floatscratchpad: 0 !! Float a scratchpad window when it's shown (0/1) - speedwm.client.floatscratchpad: 0 !! Float a scratchpad window when it is shown (0/1)
- speedwm.client_savefloat: 1 !! Save the position of floating windows when they are no longer floating (0/1) - speedwm.client.savefloat: 1 !! Save the position of floating windows when they are no longer floating (0/1)
- speedwm.client_swallow: 1 !! Allow clients to be swallowed by the terminal emulator (0/1) - speedwm.client.swallow: 1 !! Allow clients to be swallowed by the terminal emulator (0/1)
- speedwm.client_swallowfloating: 1 !! Also allow floating clients to be swallowed (0/1) - speedwm.client.swallowfloating: 1 !! Also allow floating clients to be swallowed (0/1)
- speedwm.client_wmclass: 1 !! Enable workaround for when a class cannot be grabbed from a client (0/1) - speedwm.client.wmclass: 1 !! Enable workaround for when a class cannot be grabbed from a client (0/1)
!! Font options !! Font options
- speedwm.fonts_font1: NotoSans-Regular:size=8:antialiasing=true - speedwm.fonts.font1: NotoSans-Regular:size=8:antialiasing=true
- speedwm.fonts_font2: fontawesome:size=8:antialiasing=true - speedwm.fonts.font2: fontawesome:size=8:antialiasing=true
- speedwm.fonts_font3: Noto Color Emoji:size=8:antialiasing=true - speedwm.fonts.font3: Noto Color Emoji:size=8:antialiasing=true
!! Color options !! Color options
- speedwm.col_background: #222222 - speedwm.col.background: #222222
- speedwm.col_layout: #99b3ff - speedwm.col.layout: #99b3ff
- speedwm.col_layouttext: #000000 - speedwm.col.layouttext: #000000
- speedwm.col_status0: #131210 - speedwm.col.status0: #131210
- speedwm.col_status1: #bf616a - speedwm.col.status1: #bf616a
- speedwm.col_status2: #A16F9D - speedwm.col.status2: #A16F9D
- speedwm.col_status3: #68ABAA - speedwm.col.status3: #68ABAA
- speedwm.col_status4: #A89F93 - speedwm.col.status4: #A89F93
- speedwm.col_status5: #D3A99B - speedwm.col.status5: #D3A99B
- speedwm.col_status6: #AFC9AC - speedwm.col.status6: #AFC9AC
- speedwm.col_status7: #eae1cb - speedwm.col.status7: #eae1cb
- speedwm.col_status8: #a39d8e - speedwm.col.status8: #a39d8e
- speedwm.col_status9: #6D5E8E - speedwm.col.status9: #6D5E8E
- speedwm.col_status10: #a16f9d - speedwm.col.status10: #a16f9d
- speedwm.col_status11: #d3a99b - speedwm.col.status11: #d3a99b
- speedwm.col_status12: #afc9ac - speedwm.col.status12: #afc9ac
- speedwm.col_status13: #eae1cb - speedwm.col.status13: #eae1cb
- speedwm.col_status14: #6d5e8e - speedwm.col.status14: #6d5e8e
- speedwm.col_status15: #ffffff - speedwm.col.status15: #ffffff
- speedwm.col_systray: #222222 - speedwm.col.systray: #222222
- speedwm.col_tag1: #99b3ff - speedwm.col.tag1: #99b3ff
- speedwm.col_tag1_text: #eeeeee - speedwm.col.tag1.text: #eeeeee
- speedwm.col_tag2: #99b3ff - speedwm.col.tag2: #99b3ff
- speedwm.col_tag2_text: #eeeeee - speedwm.col.tag2.text: #eeeeee
- speedwm.col_tag3: #99b3ff - speedwm.col.tag3: #99b3ff
- speedwm.col_tag3_text: #eeeeee - speedwm.col.tag3.text: #eeeeee
- speedwm.col_tag4: #99b3ff - speedwm.col.tag4: #99b3ff
- speedwm.col_tag4_text: #eeeeee - speedwm.col.tag4.text: #eeeeee
- speedwm.col_tag5: #99b3ff - speedwm.col.tag5: #99b3ff
- speedwm.col_tag5_text: #eeeeee - speedwm.col.tag5.text: #eeeeee
- speedwm.col_tag6: #99b3ff - speedwm.col.tag6: #99b3ff
- speedwm.col_tag6_text: #eeeeee - speedwm.col.tag6.text: #eeeeee
- speedwm.col_tag7: #99b3ff - speedwm.col.tag7: #99b3ff
- speedwm.col_tag7_text: #eeeeee - speedwm.col.tag7.text: #eeeeee
- speedwm.col_tag8: #99b3ff - speedwm.col.tag8: #99b3ff
- speedwm.col_tag8_text: #eeeeee - speedwm.col.tag8.text: #eeeeee
- speedwm.col_tag9: #99b3ff - speedwm.col.tag9: #99b3ff
- speedwm.col_tag9_text: #eeeeee - speedwm.col.tag9.text: #eeeeee
- speedwm.col_tagurgent: #f0e68c - speedwm.col.tagurgent: #f0e68c
- speedwm.col_textnorm: #bbbbbb - speedwm.col.textnorm: #bbbbbb
- speedwm.col_textsel: #eeeeee - speedwm.col.textsel: #eeeeee
- speedwm.col_titlenorm: #222222 - speedwm.col.titlenorm: #222222
- speedwm.col_titlesel: #99b3ff - speedwm.col.titlesel: #99b3ff
- speedwm.col_titlehid: #222222 - speedwm.col.titlehid: #222222
- speedwm.col_windowbordernorm: #000000 - speedwm.col.windowbordernorm: #000000
- speedwm.col_windowbordersel: #eeeeee - speedwm.col.windowbordersel: #eeeeee
- speedwm.col_windowborderurg: #f0e68c - speedwm.col.windowborderurg: #f0e68c
!! Color toggles !! Color toggles
- speedwm.color_hiddentitle: 1 !! Color the hidden title (0/1) - speedwm.color.hiddentitle: 1 !! Color the hidden title (0/1)
- speedwm.color_layout: 1 !! Color the layout indicator (0/1) - speedwm.color.layout: 1 !! Color the layout indicator (0/1)
- speedwm.color_selectedtitle: 1 !! Color the selected title (0/1) - speedwm.color.selectedtitle: 1 !! Color the selected title (0/1)
!! Cursor options !! Cursor options
- speedwm.cursor_warp: 1 !! Warp the cursor to the next focused window/monitor (0/1) - speedwm.cursor.warp: 1 !! Warp the cursor to the next focused window/monitor (0/1)
!! Focus options !! Focus options
- speedwm.focus_spawned: 0 !! Focus the newly spawned window or keep focus (0/1) - speedwm.focus.spawned: 0 !! Focus the newly spawned window or keep focus (0/1)
!! Fullscreen options !! Fullscreen options
- speedwm.fullscreen_hidebar: 1 !! Hide the bar when a client is fullscreened (0/1) - speedwm.fullscreen.hidebar: 1 !! Hide the bar when a client is fullscreened (0/1)
- speedwm.fullscreen_lockfullscreen: 1 !! Lock the fullscreen (0/1) - speedwm.fullscreen.lockfullscreen: 1 !! Lock the fullscreen (0/1)
- speedwm.fullscreen_movefullscreenmon: 0 !! Allow moving fullscreened windows to another monitor (0/1) - speedwm.fullscreen.movefullscreenmon: 0 !! Allow moving fullscreened windows to another monitor (0/1)
!! Gap options !! Gap options
- speedwm.gaps_enable: 1 !! Enable gaps around the windows - speedwm.gaps.enable: 1 !! Enable gaps around the windows
- speedwm.gaps_sizeih: 10 !! Horizontal inner gap size (<num>) - speedwm.gaps.sizeih: 10 !! Horizontal inner gap size (<num>)
- speedwm.gaps_sizeiv: 10 !! Vertical inner gap size (<num>) - speedwm.gaps.sizeiv: 10 !! Vertical inner gap size (<num>)
- speedwm.gaps_sizeoh: 10 !! Horizontal outer gap size (<num>) - speedwm.gaps.sizeoh: 10 !! Horizontal outer gap size (<num>)
- speedwm.gaps_sizeov: 10 !! Vertical outer gap size (<num>) - speedwm.gaps.sizeov: 10 !! Vertical outer gap size (<num>)
- speedwm.gaps_smartgaps: 0 !! Enable different gap size when only one client is spawned (0/1) - speedwm.gaps.smartgaps: 0 !! Enable different gap size when only one client is spawned (0/1)
- speedwm.gaps_smartgapsize: 0 !! Size of the gaps when only one client is spawned (0/1) - speedwm.gaps.smartgapsize: 0 !! Size of the gaps when only one client is spawned (0/1)
!! Icon options !! Icon options
- speedwm.icon_size: 10 !! Size of the window icon in the taskbar (<num>) - speedwm.icon.size: 10 !! Size of the window icon in the taskbar (<num>)
- speedwm.icon_spacing: 5 !! Spacing between icon and text in the taskbar (<num>) - speedwm.icon.spacing: 5 !! Spacing between icon and text in the taskbar (<num>)
!! Layout options !! Layout options
!! Deck layout !! Deck layout
- speedwm.layout_deck_count: 0 !! Enable deck count in the deck layout (0/1) - speedwm.layout.deck.count: 0 !! Enable deck count in the deck layout (0/1)
- speedwm.layout_deck_format: [%d] !! Format of the deck count where %d is the deck count (string) - speedwm.layout.deck.format: [%d] !! Format of the deck count where %d is the deck count (string)
!! Dynamic Grid layout !! Dynamic Grid layout
- speedwm.layout_dgrid_forcevsplit: 1 !! Force vertical splits in the dynamic grid layout (0/1) - speedwm.layout.dgrid.forcevsplit: 1 !! Force vertical splits in the dynamic grid layout (0/1)
!! Monocle layout !! Monocle layout
- speedwm.layout_monocle_clientcount: 0 !! Enable client count in the monocle layout (0/1) - speedwm.layout.monocle.clientcount: 0 !! Enable client count in the monocle layout (0/1)
- speedwm.layout_monocle_count: 0 !! Enable focused client and number of total clients in the monocle layout (0/1) - speedwm.layout.monocle.count: 0 !! Enable focused client and number of total clients in the monocle layout (0/1)
- speedwm.layout_monocle_format: [%d/%d] !! Format of the monocle count where %d is the monocle count (string) - speedwm.layout.monocle.format: [%d/%d] !! Format of the monocle count where %d is the monocle count (string)
!! mfact options !! mfact options
- speedwm.mfact: 0.50 !! Default mfact (0-1) - speedwm.mfact: 0.50 !! Default mfact (0-1)
- speedwm.mfact_lowest: 0.05 !! Lowest possible mfact (0-1) - speedwm.mfact.lowest: 0.05 !! Lowest possible mfact (0-1)
!! Mouse options !! Mouse options
- speedwm.mouse_clicktofocus: 0 !! Require clicking on a window to focus or focus when the cursor touches it (0/1) - speedwm.mouse.clicktofocus: 0 !! Require clicking on a window to focus or focus when the cursor touches it (0/1)
- speedwm.mouse_mfact: 1 !! Enable adjusting mfact with your mouse (0/1) - speedwm.mouse.mfact: 1 !! Enable adjusting mfact with your mouse (0/1)
- speedwm.mouse_cfact: 1 !! Enable adjusting cfact with your mouse (0/1) - speedwm.mouse.cfact: 1 !! Enable adjusting cfact with your mouse (0/1)
- speedwm.mouse_mousepreview: 1 !! Enable previewing tags by hovering over them with your cursor (0/1) - speedwm.mouse.mousepreview: 1 !! Enable previewing tags by hovering over them with your cursor (0/1)
!! Rule options !! Rule options
- speedwm.rule_refresh: 1 !! Allow rules to be refreshed if a title/class changes (0/1) - speedwm.rule.refresh: 1 !! Allow rules to be refreshed if a title/class changes (0/1)
!! Stack options !! Stack options
- speedwm.stack_attachdirection: 3 !! Direction to attach windows in (0: Default, 1: Above, 2: Aside, 3: Below, 4: Bottom, 5: Top) - speedwm.stack.attachdirection: 3 !! Direction to attach windows in (0: Default, 1: Above, 2: Aside, 3: Below, 4: Bottom, 5: Top)
- speedwm.stack_centerfloating: 1 !! Center floating windows (0/1) - speedwm.stack.centerfloating: 1 !! Center floating windows (0/1)
- speedwm.stack_i3mcount: 0 !! Enable i3 like nmaster/mastercount (0/1) - speedwm.stack.i3mcount: 0 !! Enable i3 like nmaster/mastercount (0/1)
- speedwm.stack_mastercount: 1 !! Number of master clients in the master stack to start with (0/1) - speedwm.stack.mastercount: 1 !! Number of master clients in the master stack to start with (0/1)
- speedwm.stack_snap: 20 !! Snap pixel (<char>) - speedwm.stack.snap: 20 !! Snap pixel (<char>)
!! Status options !! Status options
!! Text to print when no status bar is running !! Text to print when no status bar is running
- speedwm.status_defaultstatus: - speedwm.status.defaultstatus:
!! Status bar script to run !! Status bar script to run
- speedwm.status_status: status - speedwm.status.status: status
- speedwm.status_statusallmons: 1 !! Display status text on all monitors (0/1) - speedwm.status.statusallmons: 1 !! Display status text on all monitors (0/1)
!! Switcher options !! Switcher options
- speedwm.switcher_maxheight: 200 !! Max height of the switcher in pixels (<char>) - speedwm.switcher.maxheight: 200 !! Max height of the switcher in pixels (<char>)
- speedwm.switcher_maxwidth: 600 !! Max width of the switcher in pixels (<char>) - speedwm.switcher.maxwidth: 600 !! Max width of the switcher in pixels (<char>)
- speedwm.switcher_menupositionv: 1 !! Menu position of the switcher vertically (0: Bottom, 1: Center, 2: Top) - speedwm.switcher.menupositionv: 1 !! Menu position of the switcher vertically (0: Bottom, 1: Center, 2: Top)
- speedwm.switcher_menupositionh: 1 !! Menu position of the switcher horizontally (0: Left, 1: Center, 2: Right) - speedwm.switcher.menupositionh: 1 !! Menu position of the switcher horizontally (0: Left, 1: Center, 2: Right)
!! Systray options !! Systray options
- speedwm.systray_padding: 2 !! Extra padding between status and systray (0/1) - speedwm.systray.padding: 2 !! Extra padding between status and systray (0/1)
- speedwm.systray_pinning: 0 !! Always show systray on the focused monitor or <num> (0/<monitor number>) - speedwm.systray.pinning: 0 !! Always show systray on the focused monitor or <num> (0/<monitor number>)
- speedwm.systray_position: 0 !! Position of the systray horizontally (0: Right, 1: Left) - speedwm.systray.position: 0 !! Position of the systray horizontally (0: Right, 1: Left)
- speedwm.systray_show: 0 !! Show the systray by default (0/1) - speedwm.systray.show: 0 !! Show the systray by default (0/1)
!! Tag options !! Tag options
- speedwm.tag_pertag: 1 !! Allow tags to have their own values (0/1) - speedwm.tag.pertag: 1 !! Allow tags to have their own values (0/1)
- speedwm.tag_preview: 1 !! Enable tag previews (0/1) - speedwm.tag.preview: 1 !! Enable tag previews (0/1)
- speedwm.tag_preview_bar: 0 !! Include the bar in the tag preview (0/1) - speedwm.tag.preview.bar: 0 !! Include the bar in the tag preview (0/1)
- speedwm.tag_preview_paddingh: 0 !! Extra horizontal padding between the tag preview and the edge of the screen (<num>) - speedwm.tag.preview.paddingh: 0 !! Extra horizontal padding between the tag preview and the edge of the screen (<num>)
- speedwm.tag_preview_paddingv: 0 !! Extra vertical padding between the tag preview and the bar (<num>) - speedwm.tag.preview.paddingv: 0 !! Extra vertical padding between the tag preview and the bar (<num>)
- speedwm.tag_preview_scale: 2 !! Amount to scale down the preview picture by (<num>) - speedwm.tag.preview.scale: 2 !! Amount to scale down the preview picture by (<num>)
- speedwm.tag_resetgaps: 1 !! Reset gaps when the tag has no clients (0/1) - speedwm.tag.resetgaps: 1 !! Reset gaps when the tag has no clients (0/1)
- speedwm.tag_resetlayout: 1 !! Reset layout when the tag has no clients (0/1) - speedwm.tag.resetlayout: 1 !! Reset layout when the tag has no clients (0/1)
- speedwm.tag_resetmfact: 1 !! Reset mfact when the tag has no clients (0/1) - speedwm.tag.resetmfact: 1 !! Reset mfact when the tag has no clients (0/1)
- speedwm.tag_start: 1 !! Start on a tag on startup (0/1) - speedwm.tag.start: 1 !! Start on a tag on startup (0/1)
- speedwm.tag_underline: 0 !! Draw an underline on the tags (0/1) - speedwm.tag.underline: 0 !! Draw an underline on the tags (0/1)
- speedwm.tag_underlineall: 0 !! Show underline on all tags or just the selected tags (0/1) - speedwm.tag.underlineall: 0 !! Show underline on all tags or just the selected tags (0/1)
- speedwm.tag_underlinepad: 5 !! Horizontal padding between the underline and tag (<num>) - speedwm.tag.underlinepad: 5 !! Horizontal padding between the underline and tag (<num>)
- speedwm.tag_underlinestroke: 2 !! Height of the underline in pixels (<num>) - speedwm.tag.underlinestroke: 2 !! Height of the underline in pixels (<num>)
- speedwm.tag_underlinevoffset: 0 !! How far above the bottom of the bar the line should appear (<num) - speedwm.tag.underlinevoffset: 0 !! How far above the bottom of the bar the line should appear (<num)
- speedwm.tag_urgentwindows: 1 !! Color tags that have urgent tags on them (0/1) - speedwm.tag.urgentwindows: 1 !! Color tags that have urgent tags on them (0/1)
!! Tiling options !! Tiling options
- speedwm.tiling_resizehints: 0 !! Enable resize hints (0/1) - speedwm.tiling.resizehints: 0 !! Enable resize hints (0/1)
!! Shell to run commands with (<char>) !! Shell to run commands with (<char>)
- speedwm.run_shell: /bin/sh - speedwm.run.shell: /bin/sh

View file

@ -1,50 +0,0 @@
/* These are all available layouts in speedwm.
* Any new layouts should be added in the exact same way as existing layouts.
* Layouts that are added through patches should be in layouts.c
*
* Once you're done with your edits, run 'make clean install'. */
static const Layout layouts[] = {
#if LAYOUT_TILE
{ "[]=", tile },
#endif
/* Floating layout (if no layout is available */
{ "(L2)", NULL },
#if LAYOUT_MONOCLE
{ "(L3)", monocle },
#endif
#if LAYOUT_GRID
{ "(L4)", grid },
#endif
#if LAYOUT_DECK
{ "(L5)", deck },
#endif
#if LAYOUT_CM
{ "(L6)", centeredmaster },
#endif
#if LAYOUT_CFM
{ "(L7)", centeredfloatingmaster },
#endif
#if LAYOUT_SPIRAL
{ "(L8)", spiral },
#endif
#if LAYOUT_DWINDLE
{ "(L9)", dwindle },
#endif
#if LAYOUT_BSTACK
{ "(L10)", bstack },
#endif
#if LAYOUT_BSTACKH
{ "(L11)", bstackhoriz },
#endif
#if LAYOUT_HGRID
{ "(L12)", horizgrid },
#endif
#if LAYOUT_DGRID
{ "(L13)", dynamicgrid },
#endif
#if LAYOUT_CUSTOM
{ "(L14)", custom },
#endif
{ NULL, NULL },
};

View file

@ -206,9 +206,8 @@ static int layoutposition = 1; /* Layout indicator on the le
/* Systray options */ /* Systray options */
static int systraypinning = 0; /* Show systray on focused monitor (0) or (<monitor number>) to pin to a specific monitor */ static int systraypinning = 0; /* Show systray on focused monitor (0) or (<monitor number>) to pin to a specific monitor */
static int systrayonleft = 0; /* Systray position. Right: 0, Left: 1. */ static int systrayposition = 0; /* Systray position. (0: Right, 1: Left) */
static int systrayspacing = 2; /* Systray spacing in pixels */ static int systrayspacing = 2; /* Systray spacing in pixels */
static int showsystray = 0; /* Show systray by default (1) or hide (1) */
/* Tag text options */ /* Tag text options */
static int underline = 0; /* Underline tags (1) or not (0) */ static int underline = 0; /* Underline tags (1) or not (0) */
@ -225,6 +224,7 @@ static int hideunselectedtitle = 0; /* Hide unselected title (1)
static int hidestatus = 0; /* Hide status bar (1) or show (0) */ static int hidestatus = 0; /* Hide status bar (1) or show (0) */
static int hideicon = 0; /* Hide icon (1) or show (0) */ static int hideicon = 0; /* Hide icon (1) or show (0) */
static int hidetags = 0; /* Hide status bar (1) or show (0) */ static int hidetags = 0; /* Hide status bar (1) or show (0) */
static int hidesystray = 1; /* Show systray by default (1) or hide (1) */
static int hideemptytags = 1; /* Hide empty tags (1) or show (0) */ static int hideemptytags = 1; /* Hide empty tags (1) or show (0) */
static int hidepowerline = 1; /* Hide tag powerline (1) or show (0) */ static int hidepowerline = 1; /* Hide tag powerline (1) or show (0) */
static int hidefloating = 0; /* Hide floating indicator (1) or show (0) */ static int hidefloating = 0; /* Hide floating indicator (1) or show (0) */
@ -326,7 +326,49 @@ static int colorhiddentitle = 1; /* Color the hidden title. */
/* Layout */ /* Layout */
static int colorlayout = 1; /* Color the layout indicator. If you're going to be using Powerlines, the tags look better with this set to 0. */ static int colorlayout = 1; /* Color the layout indicator. If you're going to be using Powerlines, the tags look better with this set to 0. */
/* Opacity settings /* Text options
*
* Unused/empty tags
*/
static char text_tag1_empty[] = "1"; /* Text for tag 1 when empty */
static char text_tag2_empty[] = "2"; /* Text for tag 2 when empty */
static char text_tag3_empty[] = "3"; /* Text for tag 3 when empty */
static char text_tag4_empty[] = "4"; /* Text for tag 4 when empty */
static char text_tag5_empty[] = "5"; /* Text for tag 5 when empty */
static char text_tag6_empty[] = "6"; /* Text for tag 6 when empty */
static char text_tag7_empty[] = "7"; /* Text for tag 7 when empty */
static char text_tag8_empty[] = "8"; /* Text for tag 8 when empty */
static char text_tag9_empty[] = "9"; /* Text for tag 9 when empty */
/* Used/occupied tags */
static char text_tag1_used[] = "[1]"; /* Text for tag 1 when used */
static char text_tag2_used[] = "[2]"; /* Text for tag 2 when used */
static char text_tag3_used[] = "[3]"; /* Text for tag 3 when used */
static char text_tag4_used[] = "[4]"; /* Text for tag 4 when used */
static char text_tag5_used[] = "[5]"; /* Text for tag 5 when used */
static char text_tag6_used[] = "[6]"; /* Text for tag 6 when used */
static char text_tag7_used[] = "[7]"; /* Text for tag 7 when used */
static char text_tag8_used[] = "[8]"; /* Text for tag 8 when used */
static char text_tag9_used[] = "[9]"; /* Text for tag 9 when used */
/* Layouts */
static char text_layout1[] = "(L1)"; /* Text for layout 1 */
static char text_layout2[] = "(L2)"; /* Text for layout 2 */
static char text_layout3[] = "(L3)"; /* Text for layout 3 */
static char text_layout4[] = "(L4)"; /* Text for layout 4 */
static char text_layout5[] = "(L5)"; /* Text for layout 5 */
static char text_layout6[] = "(L6)"; /* Text for layout 6 */
static char text_layout7[] = "(L7)"; /* Text for layout 7 */
static char text_layout8[] = "(L8)"; /* Text for layout 8 */
static char text_layout9[] = "(L9)"; /* Text for layout 9 */
static char text_layout10[] = "(L10)"; /* Text for layout 10 */
static char text_layout11[] = "(L11)"; /* Text for layout 11 */
static char text_layout12[] = "(L12)"; /* Text for layout 12 */
static char text_layout13[] = "(L13)"; /* Text for layout 13 */
static char text_layout14[] = "(L14)"; /* Text for layout 14 */
/* Alpha/opacity settings
*
* These options set the opacity of the status bar modules. * These options set the opacity of the status bar modules.
* They can be anything from 0 (fully transparent) to 255 (fully opaque). * They can be anything from 0 (fully transparent) to 255 (fully opaque).
* *
@ -345,38 +387,6 @@ static int colorlayout = 1; /* Color the layout indicator
#define statusopacity 160 /* Opacity for speedwm status bar */ #define statusopacity 160 /* Opacity for speedwm status bar */
#define systrayopacity 160 /* Opacity for the speedwm built in systray */ #define systrayopacity 160 /* Opacity for the speedwm built in systray */
/* Tag text options
*
* These two variables allow you to change the tag text/icons.
* tags is the text/icons for empty tags, as in tags without any open windows.
* usedtags is the text/icons for occupied tags, as in tags with open windows.
*
* Do note that usedtags are not going to be used if tag labels are enabled.
*
*/
static char *tags[] = { "1", /* Tag 1 text (empty) */
"2", /* Tag 2 text (empty) */
"3", /* Tag 3 text (empty) */
"4", /* Tag 4 text (empty) */
"5", /* Tag 5 text (empty) */
"6", /* Tag 6 text (empty) */
"7", /* Tag 7 text (empty) */
"8", /* Tag 8 text (empty) */
"9", /* Tag 9 text (empty) */
};
/* Text for tags with windows open */
static char *usedtags[] = { "1", /* Tag 1 text (occupied) */
"2", /* Tag 2 text (occupied) */
"3", /* Tag 3 text (occupied) */
"4", /* Tag 4 text (occupied) */
"5", /* Tag 5 text (occupied) */
"6", /* Tag 6 text (occupied) */
"7", /* Tag 7 text (occupied) */
"8", /* Tag 8 text (occupied) */
"9", /* Tag 9 text (occupied) */
};
/* Icon misc options /* Icon misc options
* *
* Sticky * Sticky

119
speedwm.c
View file

@ -320,7 +320,8 @@ typedef struct {
enum resource_type { enum resource_type {
STRING = 0, STRING = 0,
INTEGER = 1, INTEGER = 1,
FLOAT = 2 FLOAT = 2,
DOUBLE = 3
}; };
typedef struct { typedef struct {
@ -760,7 +761,6 @@ static int systraypinningfailfirst = 1;
#include "autostart.h" /* Add autostart support */ #include "autostart.h" /* Add autostart support */
#include "colors.h" /* Include colors */ #include "colors.h" /* Include colors */
#include "rules.h" /* Include rules */ #include "rules.h" /* Include rules */
#include "layouts.h" /* Include layout list */
#if USEXRESOURCES #if USEXRESOURCES
#include "xresources.h" /* Include .Xresources/Pywal support */ #include "xresources.h" /* Include .Xresources/Pywal support */
#endif #endif
@ -772,20 +772,94 @@ static int systraypinningfailfirst = 1;
#include "statusbar.h" /* Include mouse statuscmd support */ #include "statusbar.h" /* Include mouse statuscmd support */
#endif #endif
/* Signals */
#include "signal.h" /* Include signal support */
/* IPC support */ /* IPC support */
#if USEIPC #if USEIPC
#include "toggle/ipc.c" #include "toggle/ipc.c"
#include "toggle/ipc-cli.c" #include "toggle/ipc-cli.c"
#include "ipc.h" /* Include IPC */ #include "ipc.h" /* Include IPC */
#endif
/* Text for tags */
static char *tags[] = { text_tag1_empty,
text_tag2_empty, /* Tag 2 text (empty) */
text_tag3_empty, /* Tag 3 text (empty) */
text_tag4_empty, /* Tag 4 text (empty) */
text_tag5_empty, /* Tag 5 text (empty) */
text_tag6_empty, /* Tag 6 text (empty) */
text_tag7_empty, /* Tag 7 text (empty) */
text_tag8_empty, /* Tag 8 text (empty) */
text_tag9_empty, /* Tag 9 text (empty) */
};
/* Text for tags with windows open */
static char *usedtags[] = { text_tag1_used, /* Tag 1 text (used) */
text_tag2_used, /* Tag 2 text (used) */
text_tag3_used, /* Tag 3 text (used) */
text_tag4_used, /* Tag 4 text (used) */
text_tag5_used, /* Tag 5 text (used) */
text_tag6_used, /* Tag 6 text (used) */
text_tag7_used, /* Tag 7 text (used) */
text_tag8_used, /* Tag 8 text (used) */
text_tag9_used, /* Tag 9 text (used) */
};
/* Text for layouts */
static Layout layouts[] = {
#if LAYOUT_TILE
{ text_layout1, tile, },
#endif
/* floating layout (if no layout is available */
{ text_layout2, NULL, },
#if LAYOUT_MONOCLE
{ text_layout3, monocle, },
#endif
#if LAYOUT_GRID
{ text_layout4, grid },
#endif
#if LAYOUT_DECK
{ text_layout5, deck },
#endif
#if LAYOUT_CM
{ text_layout6, centeredmaster },
#endif
#if LAYOUT_CFM
{ text_layout7, centeredfloatingmaster },
#endif
#if LAYOUT_SPIRAL
{ text_layout8, spiral },
#endif
#if LAYOUT_DWINDLE
{ text_layout9, dwindle },
#endif
#if LAYOUT_BSTACK
{ text_layout10, bstack },
#endif
#if LAYOUT_BSTACKH
{ text_layout11, bstackhoriz },
#endif
#if LAYOUT_HGRID
{ text_layout12, horizgrid },
#endif
#if LAYOUT_DGRID
{ text_layout13, dynamicgrid },
#endif
#if LAYOUT_CUSTOM
{ text_layout14, custom },
#endif
{ NULL, NULL },
};
/* Rest of the IPC support */
#if USEIPC
#include "toggle/ipc-yajl.c" #include "toggle/ipc-yajl.c"
#endif #endif
/* Layout code */ /* Layout code */
#include "layouts.c" /* Enable patched layouts */ #include "layouts.c" /* Enable patched layouts */
/* Signals */
#include "signal.h" /* Include signal support */
unsigned int tagw[LENGTH(tags)]; unsigned int tagw[LENGTH(tags)];
struct Pertag { struct Pertag {
@ -1304,7 +1378,7 @@ cleanup(void)
cleanupmon(mons); cleanupmon(mons);
#if USESYSTRAY #if USESYSTRAY
if (showsystray) { if (!hidesystray) {
XUnmapWindow(dpy, systray->win); XUnmapWindow(dpy, systray->win);
XDestroyWindow(dpy, systray->win); XDestroyWindow(dpy, systray->win);
free(systray); free(systray);
@ -1376,7 +1450,7 @@ clientmessage(XEvent *e)
XWindowAttributes wa; XWindowAttributes wa;
XSetWindowAttributes swa; XSetWindowAttributes swa;
if (showsystray && cme->window == systray->win && cme->message_type == netatom[NetSystemTrayOP]) { if (!hidesystray && cme->window == systray->win && cme->message_type == netatom[NetSystemTrayOP]) {
/* add systray icons */ /* add systray icons */
if (cme->data.l[1] == SYSTEM_TRAY_REQUEST_DOCK) { if (cme->data.l[1] == SYSTEM_TRAY_REQUEST_DOCK) {
if (!(c = (Client *)calloc(1, sizeof(Client)))) if (!(c = (Client *)calloc(1, sizeof(Client))))
@ -1966,7 +2040,7 @@ drawstatusbar(Monitor *m, int bh, char* stext) {
w += 2; /* 1px padding on both sides */ w += 2; /* 1px padding on both sides */
#if USESYSTRAY #if USESYSTRAY
ret = x = m->ww - w - 2 * sp - ((showsystray && m == systraytomon(m)) ? getsystraywidth() : 0); ret = x = m->ww - w - 2 * sp - ((!hidesystray && m == systraytomon(m)) ? getsystraywidth() : 0);
#else #else
ret = x = m->ww - w - 2 * sp; ret = x = m->ww - w - 2 * sp;
#endif #endif
@ -2221,7 +2295,7 @@ drawbar(Monitor *m)
return; return;
#if USESYSTRAY #if USESYSTRAY
if(showsystray && m == systraytomon(m) && !systrayonleft) if(!hidesystray && m == systraytomon(m) && !systrayposition)
stw = getsystraywidth(); stw = getsystraywidth();
#endif #endif
@ -2810,7 +2884,7 @@ getsystraywidth()
{ {
unsigned int w = 0; unsigned int w = 0;
Client *i; Client *i;
if(showsystray) if(!hidesystray)
for(i = systray->icons; i; w += i->w + systrayspacing, i = i->next) ; for(i = systray->icons; i; w += i->w + systrayspacing, i = i->next) ;
return w ? w + systrayspacing : 1; return w ? w + systrayspacing : 1;
} }
@ -2818,9 +2892,9 @@ getsystraywidth()
void void
togglesystray() togglesystray()
{ {
if (showsystray) if (!hidesystray)
XUnmapWindow(dpy, systray->win); XUnmapWindow(dpy, systray->win);
showsystray = !showsystray; hidesystray = !hidesystray;
updatesystray(); updatesystray();
updatestatus(); updatestatus();
} }
@ -4495,7 +4569,7 @@ removesystrayicon(Client *i)
{ {
Client **ii; Client **ii;
if (!showsystray || !i) if (hidesystray || !i)
return; return;
for (ii = &systray->icons; *ii && *ii != i; ii = &(*ii)->next); for (ii = &systray->icons; *ii && *ii != i; ii = &(*ii)->next);
if (ii) if (ii)
@ -4506,7 +4580,7 @@ removesystrayicon(Client *i)
void void
resizebarwin(Monitor *m) { resizebarwin(Monitor *m) {
unsigned int w = m->ww; unsigned int w = m->ww;
if (showsystray && m == systraytomon(m) && !systrayonleft) if (!hidesystray && m == systraytomon(m) && !systrayposition)
w -= getsystraywidth(); w -= getsystraywidth();
XMoveResizeWindow(dpy, m->barwin, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh); XMoveResizeWindow(dpy, m->barwin, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh);
} }
@ -5470,7 +5544,7 @@ togglebar(const Arg *arg)
updatebarpos(selmon); updatebarpos(selmon);
#if USESYSTRAY #if USESYSTRAY
resizebarwin(selmon); resizebarwin(selmon);
if (showsystray) { if (!hidesystray) {
XWindowChanges wc; XWindowChanges wc;
if (!selmon->showbar) if (!selmon->showbar)
wc.y = -bh; wc.y = -bh;
@ -5705,7 +5779,7 @@ updatebars(void)
continue; continue;
#if USESYSTRAY #if USESYSTRAY
w = m->ww; w = m->ww;
if (showsystray && m == systraytomon(m)) if (!hidesystray && m == systraytomon(m))
w -= getsystraywidth(); w -= getsystraywidth();
#endif #endif
m->barwin = XCreateWindow(dpy, root, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh, 0, depth, m->barwin = XCreateWindow(dpy, root, m->wx + sp, m->by + vp, m->ww - 2 * sp, bh, 0, depth,
@ -5714,7 +5788,7 @@ updatebars(void)
XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor); XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor);
#if USESYSTRAY #if USESYSTRAY
if (showsystray && m == systraytomon(m)) if (!hidesystray && m == systraytomon(m))
XMapRaised(dpy, systray->win); XMapRaised(dpy, systray->win);
#endif #endif
@ -6367,7 +6441,7 @@ updatesystrayiconstate(Client *i, XPropertyEvent *ev)
long flags; long flags;
int code = 0; int code = 0;
if (!showsystray || !i || ev->atom != xatom[XembedInfo] || if (hidesystray || !i || ev->atom != xatom[XembedInfo] ||
!(flags = getatomprop(i, xatom[XembedInfo]))) !(flags = getatomprop(i, xatom[XembedInfo])))
return; return;
@ -6401,9 +6475,9 @@ updatesystray(void)
unsigned int sw = TEXTW(stext) - lrpad + systrayspacing; unsigned int sw = TEXTW(stext) - lrpad + systrayspacing;
unsigned int w = 1; unsigned int w = 1;
if (!showsystray) if (hidesystray)
return; return;
if (systrayonleft) if (systrayposition)
x -= sw + lrpad / 2; x -= sw + lrpad / 2;
if (!systray) { if (!systray) {
/* init systray */ /* init systray */
@ -6461,7 +6535,7 @@ Client *
wintosystrayicon(Window w) { wintosystrayicon(Window w) {
Client *i = NULL; Client *i = NULL;
if (!showsystray || !w) if (hidesystray || !w)
return i; return i;
for (i = systray->icons; i && i->win != w; i = i->next) ; for (i = systray->icons; i && i->win != w; i = i->next) ;
return i; return i;
@ -6654,6 +6728,9 @@ resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst)
case FLOAT: case FLOAT:
*fdst = strtof(ret.addr, NULL); *fdst = strtof(ret.addr, NULL);
break; break;
case DOUBLE:
strcpy(sdst, ret.addr);
break;
} }
} }
} }

View file

@ -7,171 +7,170 @@
* *
* Value in .Xresources Type Value internally */ * Value in .Xresources Type Value internally */
ResourcePref resources[] = { ResourcePref resources[] = {
{ "fonts_font1", STRING, &font1 }, { "fonts.font1", STRING, &font1 },
{ "fonts_font2", STRING, &font2 }, { "fonts.font2", STRING, &font2 },
{ "fonts_font3", STRING, &font3 }, { "fonts.font3", STRING, &font3 },
{ "fonts_fonts", STRING, &fonts }, { "fonts.fonts", STRING, &fonts },
{ "col_background", STRING, &col_background }, { "col.background", STRING, &col_background },
{ "col_titlenorm", STRING, &col_titlenorm }, { "col.titlenorm", STRING, &col_titlenorm },
{ "col_titlesel", STRING, &col_titlesel }, { "col.titlesel", STRING, &col_titlesel },
{ "col_titlehid", STRING, &col_titlehid }, { "col.titlehid", STRING, &col_titlehid },
{ "col_windowbordernorm", STRING, &col_windowbordernorm }, { "col.windowbordernorm", STRING, &col_windowbordernorm },
{ "col_windowbordersel", STRING, &col_windowbordersel }, { "col.windowbordersel", STRING, &col_windowbordersel },
{ "col_windowborderurg", STRING, &col_windowborderurg }, { "col.windowborderurg", STRING, &col_windowborderurg },
{ "col_layout", STRING, &col_layout }, { "col.layout", STRING, &col_layout },
{ "col_layouttext", STRING, &col_layouttext }, { "col.layouttext", STRING, &col_layouttext },
{ "col_textnorm", STRING, &col_textnorm }, { "col.textnorm", STRING, &col_textnorm },
{ "col_textsel", STRING, &col_textsel }, { "col.textsel", STRING, &col_textsel },
{ "col_tag1", STRING, &col_tag1 }, { "col.tag1", STRING, &col_tag1 },
{ "col_tag1_text", STRING, &col_tag1_text }, { "col.tag1_text", STRING, &col_tag1_text },
{ "col_tag2", STRING, &col_tag2 }, { "col.tag2", STRING, &col_tag2 },
{ "col_tag2_text", STRING, &col_tag2_text }, { "col.tag2.text", STRING, &col_tag2_text },
{ "col_tag3", STRING, &col_tag3 }, { "col.tag3", STRING, &col_tag3 },
{ "col_tag3_text", STRING, &col_tag3_text }, { "col.tag3.text", STRING, &col_tag3_text },
{ "col_tag4", STRING, &col_tag4 }, { "col.tag4", STRING, &col_tag4 },
{ "col_tag4_text", STRING, &col_tag4_text }, { "col.tag4.text", STRING, &col_tag4_text },
{ "col_tag5", STRING, &col_tag5 }, { "col.tag5", STRING, &col_tag5 },
{ "col_tag5_text", STRING, &col_tag5_text }, { "col.tag5.text", STRING, &col_tag5_text },
{ "col_tag6", STRING, &col_tag6 }, { "col.tag6", STRING, &col_tag6 },
{ "col_tag6_text", STRING, &col_tag6_text }, { "col.tag6.text", STRING, &col_tag6_text },
{ "col_tag7", STRING, &col_tag7 }, { "col.tag7", STRING, &col_tag7 },
{ "col_tag7_text", STRING, &col_tag7_text }, { "col.tag7.text", STRING, &col_tag7_text },
{ "col_tag8", STRING, &col_tag8 }, { "col.tag8", STRING, &col_tag8 },
{ "col_tag8_text", STRING, &col_tag8_text }, { "col.tag8.text", STRING, &col_tag8_text },
{ "col_tag9", STRING, &col_tag9 }, { "col.tag9", STRING, &col_tag9 },
{ "col_tag9_text", STRING, &col_tag9_text }, { "col.tag9.text", STRING, &col_tag9_text },
{ "col_tagurgent", STRING, &col_tagurgent }, { "col.tagurgent", STRING, &col_tagurgent },
{ "col_status0", STRING, &col_status0 }, { "col.status0", STRING, &col_status0 },
{ "col_status1", STRING, &col_status1 }, { "col.status1", STRING, &col_status1 },
{ "col_status2", STRING, &col_status2 }, { "col.status2", STRING, &col_status2 },
{ "col_status3", STRING, &col_status3 }, { "col.status3", STRING, &col_status3 },
{ "col_status4", STRING, &col_status4 }, { "col.status4", STRING, &col_status4 },
{ "col_status5", STRING, &col_status5 }, { "col.status5", STRING, &col_status5 },
{ "col_status6", STRING, &col_status6 }, { "col.status6", STRING, &col_status6 },
{ "col_status7", STRING, &col_status7 }, { "col.status7", STRING, &col_status7 },
{ "col_status8", STRING, &col_status8 }, { "col.status8", STRING, &col_status8 },
{ "col_status9", STRING, &col_status9 }, { "col.status9", STRING, &col_status9 },
{ "col_status10", STRING, &col_status10 }, { "col.status10", STRING, &col_status10 },
{ "col_status11", STRING, &col_status11 }, { "col.status11", STRING, &col_status11 },
{ "col_status12", STRING, &col_status12 }, { "col.status12", STRING, &col_status12 },
{ "col_status13", STRING, &col_status13 }, { "col.status13", STRING, &col_status13 },
{ "col_status14", STRING, &col_status14 }, { "col.status14", STRING, &col_status14 },
{ "col_status15", STRING, &col_status15 }, { "col.status15", STRING, &col_status15 },
{ "col_systray", STRING, &col_systray }, { "col.systray", STRING, &col_systray },
{ "run_shell", STRING, &shell }, { "run.shell", STRING, &shell },
{ "status_status", STRING, &status }, { "status.status", STRING, &status },
{ "status_defaultstatus", STRING, &defaultstatus }, { "status.defaultstatus", STRING, &defaultstatus },
{ "bar_altbarclass", STRING, &altbarclass }, { "bar.altbarclass", STRING, &altbarclass },
{ "bar_altbarcmd", STRING, &altbarcmd }, { "bar.altbarcmd", STRING, &altbarcmd },
{ "bar_alttrayname", STRING, &alttrayname }, { "bar.alttrayname", STRING, &alttrayname },
{ "fullscreen_lockfullscreen", INTEGER, &lockfullscreen }, { "fullscreen.lockfullscreen", INTEGER, &lockfullscreen },
{ "fullscreen_movefullscreenmon",INTEGER, &movefullscreenmon }, { "fullscreen.movefullscreenmon",INTEGER, &movefullscreenmon },
{ "fullscreen_hidebar", INTEGER, &fullscreenhidebar }, { "fullscreen.hidebar", INTEGER, &fullscreenhidebar },
{ "rule_refresh", INTEGER, &refreshrules }, { "rule.refresh", INTEGER, &refreshrules },
{ "border_size", INTEGER, &bordersize }, { "border.size", INTEGER, &bordersize },
{ "stack_snap", INTEGER, &snap }, { "stack.snap", INTEGER, &snap },
{ "bar_hide", INTEGER, &hidebar }, { "bar.hide", INTEGER, &hidebar },
{ "stack_mastercount", INTEGER, &mastercount }, { "stack.mastercount", INTEGER, &mastercount },
{ "stack_attachdirection", INTEGER, &attachdirection }, { "stack.attachdirection", INTEGER, &attachdirection },
{ "tiling_resizehints", INTEGER, &resizehints }, { "tiling.resizehints", INTEGER, &resizehints },
{ "tag_start", INTEGER, &startontag }, { "tag.start", INTEGER, &startontag },
{ "client_decorhints", INTEGER, &decorhints }, { "client.decorhints", INTEGER, &decorhints },
{ "client_swallow", INTEGER, &swallowclients }, { "client.swallow", INTEGER, &swallowclients },
{ "client_swallowfloating", INTEGER, &swallowfloating }, { "client.swallowfloating", INTEGER, &swallowfloating },
{ "bar_height", INTEGER, &barheight }, { "bar.height", INTEGER, &barheight },
{ "bar_paddingv", INTEGER, &barpaddingv }, { "bar.paddingv", INTEGER, &barpaddingv },
{ "bar_paddingh", INTEGER, &barpaddingh }, { "bar.paddingh", INTEGER, &barpaddingh },
{ "stack_centerfloating", INTEGER, &centerfloating }, { "stack.centerfloating", INTEGER, &centerfloating },
{ "client_savefloat", INTEGER, &savefloat }, { "client.savefloat", INTEGER, &savefloat },
{ "cursor_warp", INTEGER, &warpcursor }, { "cursor.warp", INTEGER, &warpcursor },
{ "tag_pertag", INTEGER, &pertag }, { "tag.pertag", INTEGER, &pertag },
{ "stack_i3mcount", INTEGER, &i3mastercount }, { "stack.i3mcount", INTEGER, &i3mastercount },
{ "bar_layoutposition", INTEGER, &layoutposition }, { "bar.layoutposition", INTEGER, &layoutposition },
{ "bar_hide_layout", INTEGER, &hidelayout }, { "bar.hide.layout", INTEGER, &hidelayout },
{ "bar_hide_title", INTEGER, &hidetitle }, { "bar.hide.title", INTEGER, &hidetitle },
{ "bar_hide_unseltitle", INTEGER, &hideunselectedtitle }, { "bar.hide.unseltitle", INTEGER, &hideunselectedtitle },
{ "bar_hide_icon", INTEGER, &hideicon }, { "bar.hide.icon", INTEGER, &hideicon },
{ "bar_hide_tags", INTEGER, &hidetags }, { "bar.hide.tags", INTEGER, &hidetags },
{ "bar_hide_emptytags", INTEGER, &hideemptytags }, { "bar.hide.emptytags", INTEGER, &hideemptytags },
{ "bar_hide_powerline", INTEGER, &hidepowerline }, { "bar.hide.powerline", INTEGER, &hidepowerline },
{ "bar_hide_status", INTEGER, &hidestatus }, { "bar.hide.status", INTEGER, &hidestatus },
{ "bar_hide_sticky", INTEGER, &hidesticky }, { "bar.hide.sticky", INTEGER, &hidesticky },
{ "bar_hide_floating", INTEGER, &hidefloating }, { "bar.hide.floating", INTEGER, &hidefloating },
{ "client_allowurgent", INTEGER, &allowurgent }, { "client.allowurgent", INTEGER, &allowurgent },
{ "status_statusallmons", INTEGER, &statusallmons }, { "status.statusallmons", INTEGER, &statusallmons },
{ "tag_resetlayout", INTEGER, &resetlayout }, { "tag.resetlayout", INTEGER, &resetlayout },
{ "tag_resetmfact", INTEGER, &resetmfact }, { "tag.resetmfact", INTEGER, &resetmfact },
{ "tag_resetgaps", INTEGER, &resetgaps }, { "tag.resetgaps", INTEGER, &resetgaps },
{ "client_wmclass", INTEGER, &wmclass }, { "client.wmclass", INTEGER, &wmclass },
{ "mouse_clicktofocus", INTEGER, &clicktofocus }, { "mouse.clicktofocus", INTEGER, &clicktofocus },
{ "tag_urgentwindows", INTEGER, &urgentwindows }, { "tag.urgentwindows", INTEGER, &urgentwindows },
{ "tag_underline", INTEGER, &underline }, { "tag.underline", INTEGER, &underline },
{ "tag_underlinepad", INTEGER, &underlinepad }, { "tag.underlinepad", INTEGER, &underlinepad },
{ "tag_underlinestroke", INTEGER, &underlinestroke }, { "tag.underlinestroke", INTEGER, &underlinestroke },
{ "tag_underlinevoffset", INTEGER, &underlinevoffset }, { "tag.underlinevoffset", INTEGER, &underlinevoffset },
{ "gaps_enable", INTEGER, &enablegaps }, { "gaps.enable", INTEGER, &enablegaps },
{ "gaps_sizeih", INTEGER, &gapsizeih }, { "gaps.sizeih", INTEGER, &gapsizeih },
{ "gaps_sizeiv", INTEGER, &gapsizeiv }, { "gaps.sizeiv", INTEGER, &gapsizeiv },
{ "gaps_sizeoh", INTEGER, &gapsizeoh }, { "gaps.sizeoh", INTEGER, &gapsizeoh },
{ "gaps_sizeov", INTEGER, &gapsizeov }, { "gaps.sizeov", INTEGER, &gapsizeov },
{ "gaps_smartgaps", INTEGER, &smartgaps }, { "gaps.smartgaps", INTEGER, &smartgaps },
{ "gaps_smartgapsize", INTEGER, &smartgapsize }, { "gaps.smartgapsize", INTEGER, &smartgapsize },
{ "mouse_mfact", INTEGER, &mousemfact }, { "mouse.mfact", INTEGER, &mousemfact },
{ "mouse_cfact", INTEGER, &mousecfact }, { "mouse.cfact", INTEGER, &mousecfact },
{ "focus_spawned", INTEGER, &focusspawn }, { "focus.spawned", INTEGER, &focusspawn },
{ "client_floatscratchpad", INTEGER, &floatscratchpad }, { "client.floatscratchpad", INTEGER, &floatscratchpad },
{ "bar_altbar", INTEGER, &altbar }, { "bar.altbar", INTEGER, &altbar },
{ "client_autoresize", INTEGER, &autoresize }, { "client.autoresize", INTEGER, &autoresize },
{ "mfact", FLOAT, &mfact }, { "mfact", FLOAT, &mfact },
{ "mfact_lowest", FLOAT, &lowestmfact }, { "mfact.lowest", FLOAT, &lowestmfact },
{ "switcher_menupositionv", INTEGER, &menupositionv }, { "switcher.menupositionv", INTEGER, &menupositionv },
{ "switcher_menupositionh", INTEGER, &menupositionh }, { "switcher.menupositionh", INTEGER, &menupositionh },
{ "switcher_maxwidth", INTEGER, &maxwidth }, { "switcher.maxwidth", INTEGER, &maxwidth },
{ "switcher_maxheight", INTEGER, &maxheight }, { "switcher.maxheight", INTEGER, &maxheight },
{ "color_selectedtitle", INTEGER, &colorselectedtitle }, { "color.selectedtitle", INTEGER, &colorselectedtitle },
{ "color_hiddentitle", INTEGER, &colorhiddentitle }, { "color.hiddentitle", INTEGER, &colorhiddentitle },
{ "color_layout", INTEGER, &colorlayout }, { "color.layout", INTEGER, &colorlayout },
#if USESYSTRAY #if USESYSTRAY
{ "systray_pinning", INTEGER, &systraypinning }, { "systray.pinning", INTEGER, &systraypinning },
{ "systray_position", INTEGER, &systrayonleft }, { "systray.position", INTEGER, &systrayposition },
{ "systray_padding", INTEGER, &systrayspacing }, { "systray.padding", INTEGER, &systrayspacing },
{ "systray_show", INTEGER, &showsystray }, { "systray.show", INTEGER, &hidesystray },
#endif #endif
#if LAYOUT_MONOCLE #if LAYOUT_MONOCLE
{ "layout_monocle_format", STRING, &monocleformat }, { "layout.monocle.format", STRING, &monocleformat },
{ "layout_monocle_clientcount", INTEGER, &monocleclientcount }, { "layout.monocle.clientcount", INTEGER, &monocleclientcount },
{ "layout_monocle_count", INTEGER, &monoclecount }, { "layout.monocle.count", INTEGER, &monoclecount },
#endif #endif
#if LAYOUT_DECK #if LAYOUT_DECK
{ "layout_deck_format", STRING, &deckformat }, { "layout.deck.format", STRING, &deckformat },
{ "layout_deck_count", INTEGER, &deckcount }, { "layout.deck.count", INTEGER, &deckcount },
#endif #endif
#if USEWINICON #if USEWINICON
{ "icon_size", INTEGER, &iconsize }, { "icon.size", INTEGER, &iconsize },
{ "icon_spacing", INTEGER, &iconspacing }, { "icon.spacing", INTEGER, &iconspacing },
#endif #endif
#if USETAGPREVIEW #if USETAGPREVIEW
{ "tag_preview_scale", INTEGER, &scalepreview }, { "tag.preview.scale", INTEGER, &scalepreview },
{ "tag_preview", INTEGER, &tagpreview }, { "tag.preview", INTEGER, &tagpreview },
{ "tag_preview_paddingv", INTEGER, &tagpreviewpaddingv }, { "tag.preview.paddingv", INTEGER, &tagpreviewpaddingv },
{ "tag_preview_paddingh", INTEGER, &tagpreviewpaddingh }, { "tag.preview.paddingh", INTEGER, &tagpreviewpaddingh },
{ "tag_preview_bar", INTEGER, &barpreview }, { "tag.preview.bar", INTEGER, &barpreview },
#if MOUSE #if MOUSE
{ "mouse_mousepreview", INTEGER, &mousepreview }, { "mouse.mousepreview", INTEGER, &mousepreview },
#endif #endif
#endif #endif
{ "bar_position", INTEGER, &barposition }, { "bar.position", INTEGER, &barposition },
#if USEFADE #if USEFADE
{ "client_fade_inactive", INTEGER, &fadeinactive }, { "client.fade.inactive", INTEGER, &fadeinactive },
{ "client_fade_windows", INTEGER, &fadewindows }, { "client.fade.windows", INTEGER, &fadewindows },
#endif #endif
#if USEROUNDCORNERS #if USEROUNDCORNERS
{ "border_roundedcorners", INTEGER, &roundedcorners }, { "border.roundedcorners", INTEGER, &roundedcorners },
{ "border_cornerradius", INTEGER, &cornerradius }, { "border.cornerradius", INTEGER, &cornerradius },
#endif #endif
#if LAYOUT_DGRID #if LAYOUT_DGRID
{ "layout_dgrid_forcevsplit", INTEGER, &forcevsplit }, { "layout.dgrid.forcevsplit", INTEGER, &forcevsplit },
#endif #endif
/* Traditional color system support (for example useful for Pywal) */ /* Traditional color system support (for example useful for Pywal) */
{ "color0", STRING, &col_background }, { "color0", STRING, &col_background },