![ib_default](https://private-user-images.githubusercontent.com/93749/256998437-4f652554-bede-4aa6-bdbc-233ec843d782.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg0MzctNGY2NTI1NTQtYmVkZS00YWE2LWJkYmMtMjMzZWM4NDNkNzgyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJjZTE4ZWYyMTBjZDAwZGFmMTMyNzhlOGU3YTQ0ZjE0MTA1MGE3YjIxNjRiNGE5ZmU4MmRhZTgwMzBlZGMxYjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ggy67AO54w__h5_QIlyDQ4NNfKSUr4FqJH7T3cQby8g)
(setq
indent-bars-color '(highlight :face-bg t :blend 0.3)
indent-bars-pattern " . . . . ." ; play with the number of dots for your usual font size
indent-bars-width-frac 0.25
indent-bars-pad-frac 0.1)
![ib_minimal](https://private-user-images.githubusercontent.com/93749/256998464-e21da2d6-f6a4-4587-9640-d6a493111473.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg0NjQtZTIxZGEyZDYtZjZhNC00NTg3LTk2NDAtZDZhNDkzMTExNDczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNiOWFmYzEwNWQwOWNjYzZjNjkxZmIwOWQwMTZjZmNmMGUxZTZlZWQzOGJhNzEzODY5MmUyZjA4M2Y0NWVhODAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6G18A5z-gkUfkB7dgvFcrgSBizeWKmuLsMQmQUIVpWc)
Narrow bars without much adornment.
(setq
indent-bars-color '(highlight :face-bg t :blend 0.2)
indent-bars-pattern "."
indent-bars-width-frac 0.1
indent-bars-pad-frac 0.1
indent-bars-zigzag nil
indent-bars-color-by-depth nil
indent-bars-highlight-current-depth nil
indent-bars-display-on-blank-lines nil)
![ib_zebra](https://private-user-images.githubusercontent.com/93749/256998518-8cd209d2-c2ce-46e3-98a6-2e286f8ab8c5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg1MTgtOGNkMjA5ZDItYzJjZS00NmUzLTk4YTYtMmUyODZmOGFiOGM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgwNzczNWIyZjEwODlkMGU0YjE1YzIyNzJjZjc1MWU1Zjc3NjViYWE5ZjIwODY1NmU3OTdhZDIwMzU5ZmJhMGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.h-q3xox_VsB3NWANxF6aHgFGKHPerH7hIiLIyOmgEx4)
Note alternating space and .
in the pattern string.
(setq
indent-bars-color '(highlight :face-bg t :blend 0.25)
indent-bars-pattern ". .. . "
indent-bars-zigzag nil
indent-bars-width-frac 0.4
indent-bars-pad-frac 0.1
indent-bars-color-by-depth '(:palette ("black" "white") :blend 0.65)
indent-bars-highlight-current-depth '(:color "red" :blend 0.15))
![ib_simple](https://private-user-images.githubusercontent.com/93749/256998501-94094b4c-a088-4672-b57e-d88dbadb28cc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg1MDEtOTQwOTRiNGMtYTA4OC00NjcyLWI1N2UtZDg4ZGJhZGIyOGNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0YWI5M2M5YmZiMDRhNWI2YTVlMDgwNjE3ZTk1NmZmOGU4ZjE4MzNiOTE4MTFhMGE1ODgxNjIyNTZlYWU2NzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TDpZkBdkbLxSLHmIsiZNCO71lzBIfl8BiXKuzbw3ssY)
We keep all the defaults but turn off depth-based coloring and change the bar size a bit. Current depth highlighting is achieved with a higher than default blend (making the bar "brighter").
(setq
indent-bars-pattern "."
indent-bars-width-frac 0.5
indent-bars-pad-frac 0.25
indent-bars-color-by-depth nil
indent-bars-highlight-current-depth '(:face default :blend 0.4))
![ib_zz](https://private-user-images.githubusercontent.com/93749/256998541-841dc464-8cb3-4b29-bb3c-1f7d31101800.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg1NDEtODQxZGM0NjQtOGNiMy00YjI5LWJiM2MtMWY3ZDMxMTAxODAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFjYzgzNTRlYzk0NmNkM2U4NzZmZmFkYjE5YmM4YTcwOWY5OGQzZDlkNWU1MmU2OGVlMDI2NzU5OWFmOThkOTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.tgJG6IPLnINkW-qyvCnzVdXHZTpGICv-VamoDwbNB00)
The zig-zag option moves the bitmap pattern alternately left and right for blocks of contiguous matching characters in the pattern string. Note that you must leave room given pad-frac and width to see the entire pattern (but it's also fine not to for "interesting" zig-zags).
(setq
indent-bars-pattern ". . . . "
indent-bars-width-frac 0.25
indent-bars-pad-frac 0.2
indent-bars-zigzag 0.1
indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 1)
indent-bars-highlight-current-depth '(:pattern "." :pad 0.1 :width 0.45))
![zz_smooth](https://private-user-images.githubusercontent.com/93749/257049950-645cb211-63cf-44c0-9e72-ff58f1ad5039.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTcwNDk5NTAtNjQ1Y2IyMTEtNjNjZi00NGMwLTllNzItZmY1OGYxYWQ1MDM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI2NTdhMWFjOGU1MWUzZDMyYmExMjFjOTM5ZjA1NzFlM2Y4ODAwMDRhYWU1MGZmYzcwMTViMjZiMTE5ZDk4MDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XekUA7xLa30KMVPhzmGCoYGjiSs49Cy_5ZffucLfqYE)
The length of the pattern string (and height of a character) determines how "thick" the pattern appears.
(setq
indent-bars-pattern ".*.*.*.*.*.*.*.*"
indent-bars-width-frac 0.25
indent-bars-pad-frac 0.2
indent-bars-zigzag 0.1
indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 0.5)
indent-bars-highlight-current-depth '(:face default :blend 0.7))
![ib_bgzz](https://private-user-images.githubusercontent.com/93749/256998635-01cb0624-5185-425c-96a1-19f1d632c07d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTY5OTg2MzUtMDFjYjA2MjQtNTE4NS00MjVjLTk2YTEtMTlmMWQ2MzJjMDdkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2YzcyNjZmMWJkYzYwMGVkZWNhZDFlNTg2ZmQxYWZjNmY3OGNlYTY3MzA0NzY2MWM3MTZlOThiMTNjNzVkODMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.q1SarqzJf2hB0-UhwOHOZZENhitfTCRfop8m3rDLUNc)
Current depth highlight is fully flexible and all style options are available.
(setq
indent-bars-color '(highlight :face-bg t :blend 0.2)
indent-bars-pattern ".*.*.*.*"
indent-bars-width-frac 0.5
indent-bars-pad-frac 0.2
indent-bars-zigzag 0.1
indent-bars-color-by-depth '(:palette ("red" "green" "orange" "cyan") :blend 1)
indent-bars-highlight-current-depth '(:background "gray10"))
![image](https://private-user-images.githubusercontent.com/93749/259528149-ef02e099-798c-4eb7-947a-6fe144a9104d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTk1MjgxNDktZWYwMmUwOTktNzk4Yy00ZWI3LTk0N2EtNmZlMTQ0YTkxMDRkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRjYWEwMTUzYTZmOWU1YWZhYzZmODc3YTBmZjdmYjI4ZDQ0NGQ2Zjg0MTc5NDdhNGVlNWU2MTcyYjk5NDFmM2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Tf44wiEkaftWsevD35lFRCHO86wEgf_3N_NOUAltfhQ)
Showcasing :blend
-only current-depth coloring (no change in color, just make it more saturated).
(setq
indent-bars-color '(highlight :face-bg t :blend 0.15)
indent-bars-pattern "."
indent-bars-width-frac 0.1
indent-bars-pad-frac 0.1
indent-bars-zigzag nil
indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 1) ; blend=1: blend with BG only
indent-bars-highlight-current-depth '(:blend 0.5) ; pump up the BG blend on current
indent-bars-display-on-blank-lines t)
![ib_term](https://private-user-images.githubusercontent.com/93749/258005661-d2f51fa7-5993-4c34-93b2-effef32a469d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8yNTgwMDU2NjEtZDJmNTFmYTctNTk5My00YzM0LTkzYjItZWZmZWYzMmE0NjlkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk0Y2NhOWQyZDNiYmJiNzQxYjU5NjUzZDA1MzMzY2NkOTBlZjdlOTYzNmRjMDY4NGRlOGM5YmM0MWE3MzYyNjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.l43cFzJbd1wB1XXBKPVyCLXaeCzDYJrpyrqreyOcm8Q)
Note that terminal use implicitly implies indent-bars-prefer-character
.
(setq
indent-bars-color '(highlight :face-bg t :blend 0.75)
indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 1)
indent-bars-unspecified-fg-color "white"
indent-bars-unspecified-bg-color "black")"
Note: indent-bars-prefer-character
need not be set unless you prefer to use character display in GUI as well.
This config (contributed by @alphapapa) shows using the faces from another mode to coordinate text and bar color. Note the faces could also have been configured using the :regexp
option prism-level-\([0-9]+\)
.
![image](https://private-user-images.githubusercontent.com/93749/369041818-dda0926b-16d6-4028-a8e9-5ee57d0677db.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjAxNjAsIm5iZiI6MTczOTI1OTg2MCwicGF0aCI6Ii85Mzc0OS8zNjkwNDE4MTgtZGRhMDkyNmItMTZkNi00MDI4LWE4ZTktNWVlNTdkMDY3N2RiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjExVDA3NDQyMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBiNzBhODM2ZTJiYzE1MmM5ZGFkODQ3NzNiZjQ2NjNjMDIyNTM2MDA1Mzg1YzJiNjczMmFlODI2M2M2YTM1NDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Dgae4yF1GyUaA2EqJnNSTIuqEFIqEJ_aHk4Si9lwXYU)
Here we dial down the out-of-scope treesitter bars to be very muted, and then amp-up the default in-scope bars with a zig-zag pattern on the current selection and saturated colors.
(setopt
indent-bars-color '(highlight :face-bg t :blend 0.8)
indent-bars-pattern "."
indent-bars-color-by-depth '(:regexp "outline-\\([0-9]+\\)" :blend 0.8)
indent-bars-highlight-current-depth '(:blend 1.0 :width 0.4 :pad 0.1 :pattern "!.!.!." :zigzag 0.1)
indent-bars-pad-frac 0.3
indent-bars-ts-highlight-current-depth '(no-inherit) ; equivalent to nil
indent-bars-ts-color-by-depth '(no-inherit)
indent-bars-ts-color '(inherit fringe :face-bg t :blend 0.2))