[rc/fun] migrate fun scripts :)
[~bandali/configs] / rc.org
CommitLineData
08146d0e
AB
1#+title: rc.org
2#+property: header-args :comments link :mkdirp yes :results silent
3
4* About
5
6This org file contains the configuration files of pretty much every
7program I use. The files are tangled (i.e. exported, or derived) from
8this file using =org-babel=.
9
10Note: This file is best viewed inside Emacs with org mode.
11
12* Configs
13
b13e2dc1
AB
14This section contains the configuration files (dotfiles) of various
15programs I use.
16
17** [[https://github.com/afewmail/afew][afew]]
18:PROPERTIES:
19:header-args+: :tangle ~/.config/afew/config
20:END:
21
22#+begin_quote
23an initial tagging script for notmuch mail
24#+end_quote
25
26#+begin_src conf
27# This is the default filter chain
28[SpamFilter]
29#[ClassifyingFilter]
30[KillThreadsFilter]
31#[ListMailsFilter]
32[ArchiveSentMailsFilter]
33sent_tag = sent
34[InboxFilter]
35
36#[Filter.1]
37#query = 'folder:amin/lists/.haskell-cafe'
38#tags = +lists;+lists/haskell-cafe
39#message = lists/haskell-cafe
40
41#[Filter.2]
42#query = 'folder:amin/lists/.haskell-weekly'
43#tags = +lists;+lists/haskell-weekly
44#message = lists/haskell-weekly
45
46#[Filter.3]
47#query = 'folder:amin/lists/.hackernewsletter'
48#tags = +lists;+lists/hackernewsletter
49#message = lists/hackernewsletter
50
51
52#[FolderNameFilter]
53#folder_blacklist = Inbox
54#maildir_separator = /.
55#folder_transforms = Drafts:draft Junk:spam Trash:deleted Sent:sent Archive:archive lists/haskell-cafe:lists/haskell-cafe
56#+end_src
57
58** bspwm
59
60*** bspwmrc
61:PROPERTIES:
62:header-args+: :tangle ~/.config/bspwm/bspwmrc :shebang "#!/bin/sh"
63:END:
64
65#+begin_src sh
66sxhkd &
67sh ~/.fehbg &
68xfce4-panel -d &
69#compton &
70sleep 0.5 && pasystray --notify=all &
71
72bspc monitor -d I II III IV V VI VII VIII IX X
73#bspc monitor eDP-1 -d I II III IV V
74#bspc monitor HDMI-1 -d VI VII VIII IX X
75
76#bspc config border_width 2
77#bspc config window_gap 8
78bspc config window_gap 0
79
80bspc config bottom_padding 26
81
82bspc config split_ratio 0.52
83bspc config borderless_monocle true
84bspc config gapless_monocle true
85bspc config click_to_focus button1
86bspc config directional_focus_tightness low
87
88bspc rule -a Firefox desktop='^1' follow=on
89bspc rule -a Nightly desktop='^1' follow=on
90bspc rule -a Emacs desktop='^2' state=tiled follow=on
91#bspc rule -a Chromium desktop='^4' follow=on
92bspc rule -a URxvt state=floating
93bspc rule -a URxvt:tiled state=tiled
94bspc rule -a Connman-gtk state=floating
95bspc rule -a Xfce4-panel state=floating
96bspc rule -a TelegramDesktop state=floating
97bspc rule -a Ec state=floating
98bspc rule -a Pavucontrol state=floating
99bspc rule -a Eog state=floating
100bspc rule -a Seahorse state=floating
101bspc rule -a mpv state=floating
102bspc rule -a Evince state=floating
103bspc rule -a Meld state=floating
104bspc rule -a Autokey-gtk state=floating
105bspc rule -a Mousepad state=floating
106bspc rule -a Wrapper-1.0 state=floating
107bspc rule -a File-roller state=floating
108bspc rule -a Gnome-disks state=floating
109bspc rule -a Termite state=floating
110bspc rule -a Termite:tiled state=tiled
111bspc rule -a Thunderbird:Calendar state=floating
112bspc rule -a Audacity state=floating
113bspc rule -a Proof state=floating # pvs x-show-proof
114bspc rule -a Nm-connection-editor state=floating
115bspc rule -a Wire state=floating
116bspc rule -a discord state=floating
117bspc rule -a X2goclient state=floating
118bspc rule -a SimpleScreenRecorder state=floating
119bspc rule -a Gimp state=floating
120bspc rule -a Wrapper-2.0 state=floating
121bspc rule -a Zathura state=tiled
122#+end_src
123
124*** sxhkdrc
125:PROPERTIES:
126:header-args+: :tangle ~/.config/sxhkd/sxhkdrc
127:END:
128
129#+begin_src conf
130#
131# wm independent hotkeys
132#
133
134# terminal emulator
135super + {_,shift} + Return
136 urxvt{_, -name tiled}
137
138#super + {_,shift} + Return
139# termite{_, --name=tiled}
140
141# program launcher
142super + space
143 rofi -show run -display-run '> ' -display-window ' 🗔 '
144
145super + alt + space
146 xfce4-popup-whiskermenu
147
148# window finder
149super + backslash
150 rofi -show window -display-run '> ' -display-window ' 🗔 '
151
152# password manager
153alt + space
154 rofi-pass
155
156# firefox
157#super + r
158# firefox
159
160# chromium
161#super + c
162# chromium -incognito
163
164# emacs
165super + e
166 emacs
167
168# make sxhkd reload its configuration files:
169super + Escape
170 pkill -USR1 -x sxhkd
171
172# volume {up,down}
173XF86Audio{Raise,Lower}Volume
174 pamixer --allow-boost --{in,de}crease 5
175
176# mute
177XF86AudioMute
178 pamixer --toggle-mute
179
180# playback control
181XF86Audio{Play,Prev,Next}
182 mpc {toggle,prev,next}
183
184# lock the screen
185super + shift + q
186 light-locker-command -l
187
188# Toggle keyboard layout
189super + F7
190 toggle-layout
191
192# Toggle Xfce presentation mode
193XF86LaunchB
194 toggle-presentation-mode
195
196# monitor brightness
197XF86MonBrightness{Up,Down}
198 light -{A,U} 5
199
200super + apostrophe
201 rofi-light
202
203# keyboard brightness
204#XF86KbdBrightness{Up,Down}
205# kbdlight {up,down}
206
207#
208# bspwm hotkeys
209#
210
211# quit bspwm normally
212super + alt + Escape
213 bspc quit
214
215# close and kill
216super + {w,q}
217 bspc node -{c,k}
218
219# alternate between the tiled and monocle layout
220super + m
221 bspc desktop -l next
222
223# send the newest marked node to the newest preselected node
224super + y
225 bspc node newest.marked.local -n newest.!automatic.local
226
227# swap the current node and the biggest node
228super + g
229 bspc node -s biggest
230
231#
232# state/flags
233#
234
235# set the window state
236super + {t,shift + t,s,f}
237 bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
238
239# set the node flags
240super + ctrl + {m,x,y,z}
241 bspc node -g {marked,locked,sticky,private}
242
243#
244# focus/swap
245#
246
247# focus the node in the given direction
248super + {_,shift + }{h,j,k,l}
249 bspc node -{f,s} {west,south,north,east}
250
251# focus the node for the given path jump
252super + {p,b,comma,period}
253 bspc node -f @{parent,brother,first,second}
254
255# focus the next/previous node in the current desktop
256super + {_,shift + }c
257 bspc node -f {next,prev}.local
258
259# focus the next/previous desktop in the current monitor
260super + bracket{left,right}
261 bspc desktop -f {prev,next}.local
262
263# send to next/prev desktop
264super + shift + bracket{left,right}
265 bspc node -d {prev,next} --follow
266
267# focus the last node/desktop
268super + {grave,Tab}
269 bspc {node,desktop} -f last
270
271# focus the older or newer node in the focus history
272super + {o,i}
273 bspc wm -h off; \
274 bspc node {older,newer} -f; \
275 bspc wm -h on
276
277# focus or send to the given desktop
278super + {_,shift + }{1-9,0}
279 bspc {desktop -f,node -d} '^{1-9,10}'
280
281#
282# preselect
283#
284
285# preselect the direction
286super + ctrl + {h,j,k,l}
287 bspc node -p {west,south,north,east}
288
289# preselect the ratio
290super + ctrl + {1-9}
291 bspc node -o 0.{1-9}
292
293# cancel the preselection for the focused node
294super + ctrl + space
295 bspc node -p cancel
296
297# cancel the preselection for the focused desktop
298super + ctrl + shift + space
299 bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
300
301#
302# move/resize
303#
304
305# expand a window by moving one of its side outward
306super + alt + {h,j,k,l}
307 bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
308
309# contract a window by moving one of its side inward
310super + alt + shift + {h,j,k,l}
311 bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
312
313# move a floating window
314super + {Left,Down,Up,Right}
315 bspc node -v {-20 0,0 20,0 -20,20 0}
316
317#alt + bracket{left,right}
318# xdotool key --clearmodifiers ctrl+Page_{Up,Down}
319#+end_src
320
321** compton
322:PROPERTIES:
323:header-args+: :tangle ~/.config/compton.conf
324:END:
325
326#+begin_src conf
327# Shadow
328shadow = false; # Enabled client-side shadows on windows.
329no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows.
330no-dnd-shadow = true; # Don't draw shadows on DND windows.
331clear-shadow = true; # Zero the part of the shadow's mask behind the
332 # window. Fix some weirdness with ARGB windows.
333shadow-radius = 5; # The blur radius for shadows. (default 12)
334shadow-offset-x = -5; # The left offset for shadows. (default -15)
335shadow-offset-y = -5; # The top offset for shadows. (default -15)
336# shadow-opacity = 0.7; # The translucency for shadows. (default .75)
337# shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0)
338# shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0)
339# shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0)
340shadow-exclude = [ "n:e:Notification", "class_g = 'Chromium'", "class_g = 'Dmenu'", "class_g = 'Firefox' && argb" ]; # Exclude conditions for shadows.
341# shadow-exclude = "n:e:Notification";
342#shadow-exclude = [ "_GTK_FRAME_EXTENTS@:c" ] # Fix dual shadow on some gtk3 powered applications
343shadow-ignore-shaped = true; # Avoid drawing shadow on all shaped windows
344 # (see also: --detect-rounded-corners)
345
346# Opacity
347menu-opacity = 1.0; # The opacity for menus. (default 1.0)
348#inactive-opacity = 0.9; # Default opacity of inactive windows. (0.0 - 1.0)
349# active-opacity = 0.8; # Default opacity for active windows. (0.0 - 1.0)
350frame-opacity = 1.0; # Opacity of window titlebars and borders. (0.1 - 1.0)
351# inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides
352 # value of _NET_WM_OPACITY. Bad choice.
353alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing
354 # it may result in less X resource usage,
355 # Yet fading may look bad.
356#inactive-dim = 0.5; # Dim inactive windows. (0.0 - 1.0)
357#inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity.
358# blur-background = true; # Blur background of transparent windows.
359 # Bad performance with X Render backend.
360 # GLX backend is preferred.
361# blur-background-frame = true; # Blur background of opaque windows with transparent
362 # frames as well.
363blur-background-fixed = true; # Do not let blur radius adjust based on window opacity.
364blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'" ];
365 # Exclude conditions for background blur.
366
367# Fading
368fading = false; # Fade windows during opacity changes.
369fade-delta = 3; # The time between steps in a fade in milliseconds. (default 10).
370fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028).
371fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03).
372# no-fading-openclose = true; # Avoid fade windows in/out when opening/closing.
373fade-exclude = [ ]; # Exclude conditions for fading.
374
375# Other
376backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically
377 # much faster but depends on a sane driver.
378mark-wmwin-focused = true; # Try to detect WM windows and mark them as active.
379mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus).
380use-ewmh-active-win = true; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused
381 # instead of using FocusIn/Out events. Usually more reliable but
382 # depends on a EWMH-compliant WM.
383detect-rounded-corners = false; # Detect rounded corners and treat them as rectangular when --shadow-ignore- shaped is on.
384detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window
385 # managers not passing _NET_WM_OPACITY of client windows to frame
386 # windows.
387refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto.
388vsync = "drm"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc"
389 # See man page for more details.
390dbe = false; # Enable DBE painting mode. Rarely needed.
391paint-on-overlay = true; # Painting on X Composite overlay window. Recommended.
392sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate.
393 # Incompatible with certain VSync methods.
394unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is
395 # detected, to maximize performance for full-screen windows.
396focus-exclude = [ ]; # A list of conditions of windows that should always be considered
397 # focused.
398detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in
399 # the same group focused at the same time.
400detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows.
401invert-color-include = [ ]; # Conditions for windows to be painted with inverted color.
402
403# GLX backend # GLX backend fine-tune options. See man page for more info.
404glx-no-stencil = true; # Recommended.
405glx-copy-from-front = false; # Useful with --glx-swap-method,
406# glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync.
407# glx-no-rebind-pixmap = true; # Recommended if it works.
408glx-no-rebind-pixmap = true; # Recommended if it works.
409#glx-swap-method = "4"; # See man page.
410glx-swap-method = "4"; # See man page.
411
412# Window type settings
413wintypes:
414{
415 tooltip = { fade = true; shadow = false; opacity = 1; focus = true; };
416 menu = { shadow = false; };
417 dropdown_menu = { shadow = false; };
418 popup_menu = { shadow = false; };
419 utility = { shadow = false; };
420 # fade: Fade the particular type of windows.
421 # shadow: Give those windows shadow
422 # opacity: Default opacity for the type of windows.
423 # focus: Whether to always consider windows of this type focused.
424};
425#+end_src
426
05ab13aa
AB
427** Dunst
428:PROPERTIES:
429:header-args+: :tangle ~/.config/dunst/dunstrc
430:END:
431
432#+begin_src conf
433[global]
434#font = Ubuntu Mono 10.5
435font = Inconsolata 11
436
437# Path to default icons.
438icon_folders = /usr/share/icons/Moka/16x16/status/:/usr/share/icons/Moka/16x16/devices/:/usr/share/icons/Faba-Mono/16x16/status/:/usr/share/icons/Faba-Mono/16x16/devices/:/usr/share/icons/Moka/16x16/actions/:/usr/share/icons/Moka/16x16/categories/:/usr/share/icons/Moka/16x16/mimetypes/:/usr/share/icons/Moka/16x16/apps/:/usr/share/icons/Moka/16x16/places/:/usr/share/icons/Paper/16x16/status/
439
440icon_position = left
441# <b>bold</b>
442# <i>italic</i>
443# <s>strikethrough<s/>
444# <u>underline</u>
445markup = full
446# The format of the message. Possible variables are:
447# %a appname
448# %s summary
449# %b body
450# %i iconname (including its path)
451# %I iconname (without its path)
452# %p progress value if set ([ 0%] to [100%]) or nothing
453# Markup is allowed
454format = "<b>%s</b>\n%b"
455# Sort messages by urgency
456sort = yes
457# Show how many messages are currently hidden (because of geometry)
458indicate_hiddenl= no
459# Alignment of message text.
460# Possible values are "left", "center" and "right"
461alignment = center
462# The frequency with wich text that is longer than the notification
463# window allows bounces back and forth.
464# This option conflicts with 'word_wrap'.
465# Set to 0 to disable
466bounce_freq = 3
467# show age of message if message is older than show_age_threshold seconds.
468# set to -1 to disable
469show_age_threshold = -1
470# split notifications into multiple lines if they don't fit into geometry
471word_wrap = yes
472# ignore newlines '\n' in notifications
473ignore_newline = no
474# The geometry of the message window.
475# geometry [{width}]x{height}][+/-{x}+/-{y}]
476# The height is measured in number of notifications everything else in pixels. If the width
477# is omitted but the height is given ("-geometry x2"), the message window
478# expands over the whole screen (dmenu-like). If width is 0,
479# the window expands to the longest message displayed.
480# A positive x is measured from the left, a negative from the
481# right side of the screen. Y is measured from the top and down respectevly.
482# The width can be negative. In this case the actual width is the
483# screen width minus the width defined in within the geometry option.
484#geometry = "410x12-12+12"
485#geometry = "0x0-30-30"
486geometry = "260x12-30-30"
487# The transparency of the window. range: [0; 100]
488# This option will only work if a compositing windowmanager is present (e.g. xcompmgr, compiz, etc..)
489transparency = 0
490# Don't remove messages, if the user is idle (no mouse or keyboard input)
491# for longer than idle_threshold seconds.
492# Set to 0 to disable.
493idle_threshold = 120
494# Which monitor should the notifications be displayed on.
495monitor = 0
496# Display notification on focused monitor. Possible modes are:
497# mouse: follow mouse pointer
498# keyboard: follow window with keyboard focus
499# none: don't follow anything
500#
501# "keyboard" needs a windowmanager that exports the _NET_ACTIVE_WINDOW property.
502# This should be the case for almost all modern windowmanagers.
503#
504# If this option is set to mouse or keyboard, the monitor option will be
505# ignored.
506follow = keyboard
507# should a notification popped up from history be sticky or
508# timeout as if it would normally do.
509sticky_history = yes
510# The height of a single line. If the height is smaller than the font height,
511# it will get raised to the font height.
512# This adds empty space above and under the text.
513line_height = 0
514
515show_indicators = yes
516
517# Draw a line of 'separatpr_height' pixel height between two notifications.
518# Set to 0 to disable
519separator_height = 3
520# padding between text and separator
521padding = 8
522# horizontal padding
523horizontal_padding = 8
524# Define a color for the separator.
525# possible values are:
526# * auto: dunst tries to find a color fitting to the background
527# * foreground: use the same color as the foreground
528# * frame: use the same color as the frame.
529# * anything else will be interpreted as a X color
530separator_color = foreground
531# print a notification on startup
532# This is mainly for error detection, since dbus (re-)starts dunst
533# automatically after a crash.
534startup_notification = false
535# dmenu path
536#dmenu = /usr/bin/dmenu -p dunst:
537dmenu = /usr/bin/rofi -dmenu -p dunst:
538# browser for opening urls in context menu
539browser = /usr/bin/firefox -new-tab
540[frame]
541width = 0
542color = "#377222"
543[shortcuts]
544# shortcuts are specified as [modifier+][modifier+]...key
545# available modifiers are 'ctrl', 'mod1' (the alt-key), 'mod2', 'mod3'
546# and 'mod4' (windows-key)
547# xev might be helpful to find names for keys
548# close notification
549close = ctrl+space
550# close all notifications
551close_all = ctrl+shift+space
552# redisplay last message(s)
553# On the US keyboard layout 'grave' is normally above TAB and left of '1'.
554history = ctrl+shift+h
555# context menu
556context = ctrl+shift+period
557[urgency_low]
558# IMPORTANT: colors have to be defined in quotation marks.
559# Otherwise the '#' and following would be interpreted as a comment.
560background = "#1d2a30"
561foreground = "#71c2af"
562timeout = 3
563[urgency_normal]
564background = "#1d2a30"
565foreground = "#71c2af"
566timeout = 0
567[urgency_critical]
568background = "#1d2a30"
569foreground = "#ff9982"
570timeout = 0
571
572# Every section that isn't one of the above is interpreted as a rules
573# to override settings for certain messages.
574# Messages can be matched by 'appname', 'summary', 'body' or 'icon'
575# and you can override the 'timeout', 'urgency', 'foreground', 'background'
576# and 'format'.
577# Shell-like globbing will get expanded.
578#
579# SCRIPTING
580# you can specify a script that gets run when the rule matches by setting
581# the 'script' option.
582# The script will be called as follows:
583# script appname summary body icon urgency
584# where urgency can be "LOW", "NORMAL" or "CRITICAL".
585#
586# NOTE: if you don't want a notification to be displayed, set the format to ""
587# NOTE: It might be helpful to run dunst -print in a terminal in order to find
588# fitting options for rules.
589#[espeak]
590# summary = "*"
591# script = dunst_espeak.sh
592#[script-test]
593# summary = "*script*"
594# script = dunst_test.sh
595#[ignore]
596## This notification will not be displayed
597# summary = "foobar"
598# format = ""
599#[signed_on]
600# appname = Pidgin
601# summary = "*signed on*"
602# urgency = low
603#
604#[signed_off]
605# appname = Pidgin
606# summary = *signed off*
607# urgency = low
608#
609#[says]
610# appname = Pidgin
611# summary = *says*
612# urgency = critical
613#
614#[twitter]
615# appname = Pidgin
616# summary = *twitter.com*
617# urgency = normal
618#
619[xfpm-backlight]
620 summary = *Brightness*
621 urgency = low
622#+end_src
623
624** Fontconfig
625:PROPERTIES:
626:header-args+: :tangle ~/.config/fontconfig/fonts.conf
627:END:
628
629#+begin_src xml
630<?xml version="1.0"?>
631<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
632<fontconfig>
633 <match target="font">
634 <edit mode="assign" name="rgba">
635 <const>rgb</const>
636 </edit>
637 </match>
638 <match target="font">
639 <edit mode="assign" name="hinting">
640 <bool>true</bool>
641 </edit>
642 </match>
643 <match target="font">
644 <edit mode="assign" name="hintstyle">
645 <const>hintslight</const>
646 </edit>
647 </match>
648 <match target="font">
649 <edit mode="assign" name="antialias">
650 <bool>true</bool>
651 </edit>
652 </match>
653 <match target="font">
654 <edit mode="assign" name="lcdfilter">
655 <const>lcddefault</const>
656 </edit>
657 </match>
658 <dir>~/.fonts</dir>
659
660 <!-- Use Liberation Sans for Helvetica (instead of Nimbus Sans) -->
661 <alias binding="same">
662 <family>Helvetica</family>
663 <accept>
664 <family>Liberation Sans</family>
665 </accept>
666</alias>
667</fontconfig>
668#+end_src
669
58cbbce2 670** Git
08146d0e
AB
671
672*** gitconfig
673:PROPERTIES:
674:header-args+: :tangle ~/.gitconfig
675:END:
676
677**** user
678#+begin_src conf
679[user]
680 name = Amin Bandali
681 email = amin@aminb.org
682 # signingkey = 4E05246AB0BF7FFB
683#+end_src
684
685**** signing
686#+begin_src conf
687# [commit]
688# gpgsign = true
689# [format]
690# signoff = true
691#+end_src
692
693**** core
694#+begin_src conf
695[core]
696 autocrlf = input # CRLF -> LF on commit
697 editor = emacsclient -t
698 excludesfile = ~/.gitignore_global
699 pager = "less"
700#+end_src
701
702**** gpg
703#+begin_src conf
704[gpg]
705 program = gpg2
706#+end_src
707
708**** alias
709#+begin_src conf
710[alias]
711 git = !exec git # handle nested git calls, e.g. git git status
712 aliases = config --get-regexp '^alias\\.'
713 a = add
714 s = status
715 sl = status --long
716 c = checkout
717 cb = checkout -b
718 b = branch
719 r = rebase
720 p = pull
721 pr = pull --rebase
722 ps = push
723 psf = push --force
724#+end_src
725
726**** color
727#+begin_src conf
728[color]
729 ui = auto
730[color "status"]
731 added = green bold
732 changed = red bold
733 untracked = red bold
734[color "branch"]
735 current = green bold
736 remote = magenta bold
737[color "diff"]
738 new = green bold
739 old = red bold
740#+end_src
741
742**** status
743#+begin_src conf
744[status]
745 # showUntrackedFiles = all
746 short=true
747 branch=true
748#+end_src
749
750**** github
751#+begin_src conf
752[github]
753 user = aminb
754#+end_src
755
756*** gitignore
757:PROPERTIES:
758:header-args+: :tangle ~/.gitignore_global
759:END:
760
761#+begin_src conf
762*.orig
763*.py[co]
764*.sublime-workspace
765*~
766.DS_Store
767*.elc
768*-autoloads.el
769#+end_src
58cbbce2
AB
770
771** Latexmk
772:PROPERTIES:
773:header-args+: :tangle ~/.latexmkrc
774:END:
775
776#+begin_src conf
777$pdf_previewer = "start zathura %O %S";
778$clean_ext = "aux out";
779
780# $pdf_update_method = 4;
781# $pdf_update_command = "zathura %O %S";
782
783# Synctex allows one to jump to from the PDF in Zathura to the source in Emacs
784# by Ctrl+click in the PDF.
785# Tell latexmk to use Zathura as a previewer, and run emacsclient as the Synctex
786# editor.
787# $pdf_previewer = 'exec zathura --synctex-forward -x \'emacsclient --no-wait +%{line} %{input}\' %O %S';
788#+end_src
b13e2dc1
AB
789
790* Scripts
791
792This section contains various useful scripts and the ones used by the
793programs above. For instance, =toggle-tablet= for switching to and
794from tablet mode on my X220T, =toggle-presentation-mode= for toggling
795Xfce's presentation mode which keeps the screen awake, and
796=rofi-light= a small utility that uses [[https://github.com/DaveDavenport/rofi][Rofi]] to ask and [[https://github.com/haikarainen/light][light]] to set an
797exact brightness value.
798
799** rofi-light
800:PROPERTIES:
801:header-args+: :tangle ~/.local/bin/rofi-light :shebang "#!/bin/bash"
802:END:
803
33c5a5cd 804#+begin_src bash
b13e2dc1
AB
805cur=$(light -G)
806val=$(rofi -dmenu -mesg "light $cur" -p "light -S " -l 0 -width 8)
807light -S $val
808#+end_src
809
810** toggle-layout
811:PROPERTIES:
812:header-args+: :tangle ~/.local/bin/toggle-layout :shebang "#!/bin/bash"
813:END:
814
33c5a5cd 815#+begin_src bash
b13e2dc1
AB
816lang="$(setxkbmap -print | grep xkb_symbols | cut -d'+' -f 2)"
817
818if [ "$lang" = "us" ]; then
819 setxkbmap ir
820else
821 setxkbmap us
822 # xmodmap $HOME/.Xmodmap
823fi
824#+end_src
825
826** toggle-presentation-mode
827:PROPERTIES:
828:header-args+: :tangle ~/.local/bin/toggle-presentation-mode :shebang "#!/bin/bash"
829:END:
830
33c5a5cd 831#+begin_src bash
b13e2dc1
AB
832xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -T
833#+end_src
33c5a5cd
AB
834
835** Fun :)
836
837*** eat-em
838:PROPERTIES:
839:header-args+: :tangle ~/.local/bin/eat-em :shebang "#!/bin/sh"
840:END:
841
842#+begin_src sh
843# Original Posted at http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921
844# [ESC] character in original post removed here.
845
846# ANSI Color -- use these variables to easily have different color
847# and format output. Make sure to output the reset sequence after
848# colors (f = foreground, b = background), and use the 'off'
849# feature for anything you turn on.
850
851initializeANSI()
852{
853 esc="$(echo -en '\e')"
854
855 blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"
856 yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m"
857 cyanf="${esc}[36m"; whitef="${esc}[37m"
858
859 blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m"
860 yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m"
861 cyanb="${esc}[46m"; whiteb="${esc}[47m"
862
863 boldon="${esc}[1m"; boldoff="${esc}[22m"
864 italicson="${esc}[3m"; italicsoff="${esc}[23m"
865 ulon="${esc}[4m"; uloff="${esc}[24m"
866 invon="${esc}[7m"; invoff="${esc}[27m"
867
868 reset="${esc}[0m"
869}
870
871# note in this first use that switching colors doesn't require a reset
872# first - the new color overrides the old one.
873
874#clear
875
876initializeANSI
877
878cat << EOF
879
880 ${yellowf} ▄███████▄${reset} ${redf} ▄██████▄${reset} ${greenf} ▄██████▄${reset} ${bluef} ▄██████▄${reset} ${purplef} ▄██████▄${reset} ${cyanf} ▄██████▄${reset}
881 ${yellowf}▄█████████▀▀${reset} ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄${reset} ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄${reset} ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄${reset} ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄${reset} ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
882 ${yellowf}███████▀${reset} ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███${reset} ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███${reset} ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███${reset} ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███${reset} ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
883 ${yellowf}███████▄${reset} ${redf}████████████${reset} ${greenf}████████████${reset} ${bluef}████████████${reset} ${purplef}████████████${reset} ${cyanf}████████████${reset}
884 ${yellowf}▀█████████▄▄${reset} ${redf}██▀██▀▀██▀██${reset} ${greenf}██▀██▀▀██▀██${reset} ${bluef}██▀██▀▀██▀██${reset} ${purplef}██▀██▀▀██▀██${reset} ${cyanf}██▀██▀▀██▀██${reset}
885 ${yellowf} ▀███████▀${reset} ${redf}▀ ▀ ▀ ▀${reset} ${greenf}▀ ▀ ▀ ▀${reset} ${bluef}▀ ▀ ▀ ▀${reset} ${purplef}▀ ▀ ▀ ▀${reset} ${cyanf}▀ ▀ ▀ ▀${reset}
886
887 ${boldon}${yellowf} ▄███████▄ ${redf} ▄██████▄ ${greenf} ▄██████▄ ${bluef} ▄██████▄ ${purplef} ▄██████▄ ${cyanf} ▄██████▄${reset}
888 ${boldon}${yellowf}▄█████████▀▀ ${redf}▄${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄ ${greenf}▄${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄ ${bluef}▄${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄ ${purplef}▄${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄ ${cyanf}▄${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
889 ${boldon}${yellowf}███████▀ ${redf}█${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███ ${greenf}█${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███ ${bluef}█${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███ ${purplef}█${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███ ${cyanf}█${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
890 ${boldon}${yellowf}███████▄ ${redf}████████████ ${greenf}████████████ ${bluef}████████████ ${purplef}████████████ ${cyanf}████████████${reset}
891 ${boldon}${yellowf}▀█████████▄▄ ${redf}██▀██▀▀██▀██ ${greenf}██▀██▀▀██▀██ ${bluef}██▀██▀▀██▀██ ${purplef}██▀██▀▀██▀██ ${cyanf}██▀██▀▀██▀██${reset}
892 ${boldon}${yellowf} ▀███████▀ ${redf}▀ ▀ ▀ ▀ ${greenf}▀ ▀ ▀ ▀ ${bluef}▀ ▀ ▀ ▀ ${purplef}▀ ▀ ▀ ▀ ${cyanf}▀ ▀ ▀ ▀${reset}
893
894EOF
895#+end_src
896
897
898*** invade-em
899:PROPERTIES:
900:header-args+: :tangle ~/.local/bin/invade-em :shebang "#!/bin/bash"
901:END:
902
903#+begin_src bash
904#
905# ANSI color scheme script featuring Space Invaders
906#
907# Original: http://crunchbang.org/forums/viewtopic.php?pid=126921%23p126921#p126921
908# Modified by lolilolicon
909#
910
911f=3 b=4
912for j in f b; do
913 for i in {0..7}; do
914 printf -v $j$i %b "\e[${!j}${i}m"
915 done
916done
917bld=$'\e[1m'
918rst=$'\e[0m'
919
920cat << EOF
921
922 $f1 ▀▄ ▄▀ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4 ▀▄ ▄▀ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst
923 $f1 ▄█▀███▀█▄ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4 ▄█▀███▀█▄ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst
924 $f1█▀███████▀█ $f2▀▀███▀▀███▀▀ $f3▀█▀██▀█▀ $f4█▀███████▀█ $f5▀▀███▀▀███▀▀ $f6▀█▀██▀█▀$rst
925 $f1▀ ▀▄▄ ▄▄▀ ▀ $f2 ▀█▄ ▀▀ ▄█▀ $f3▀▄ ▄▀ $f4▀ ▀▄▄ ▄▄▀ ▀ $f5 ▀█▄ ▀▀ ▄█▀ $f6▀▄ ▄▀$rst
926
927 $bld$f1▄ ▀▄ ▄▀ ▄ $f2 ▄▄▄████▄▄▄ $f3 ▄██▄ $f4▄ ▀▄ ▄▀ ▄ $f5 ▄▄▄████▄▄▄ $f6 ▄██▄ $rst
928 $bld$f1█▄█▀███▀█▄█ $f2███▀▀██▀▀███ $f3▄█▀██▀█▄ $f4█▄█▀███▀█▄█ $f5███▀▀██▀▀███ $f6▄█▀██▀█▄$rst
929 $bld$f1▀█████████▀ $f2▀▀▀██▀▀██▀▀▀ $f3▀▀█▀▀█▀▀ $f4▀█████████▀ $f5▀▀▀██▀▀██▀▀▀ $f6▀▀█▀▀█▀▀$rst
930 $bld$f1 ▄▀ ▀▄ $f2▄▄▀▀ ▀▀ ▀▀▄▄ $f3▄▀▄▀▀▄▀▄ $f4 ▄▀ ▀▄ $f5▄▄▀▀ ▀▀ ▀▀▄▄ $f6▄▀▄▀▀▄▀▄$rst
931
932
933 $f7▌$rst
934
935 $f7▌$rst
936
937 $f7 ▄█▄ $rst
938 $f7▄█████████▄$rst
939 $f7▀▀▀▀▀▀▀▀▀▀▀$rst
940
941EOF
942#+end_src