Skip to content

Instantly share code, notes, and snippets.

@Pitometsu
Last active July 4, 2021 00:44
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pitometsu/b9950e8d7466ecdde1f087dcd0b26a29 to your computer and use it in GitHub Desktop.
Save Pitometsu/b9950e8d7466ecdde1f087dcd0b26a29 to your computer and use it in GitHub Desktop.
dotfiles
#################################
#
# Backend
#
#################################
# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster but depends on a sane driver.
# backend = "glx";
backend = "glx";
#################################
#
# GLX backend
#
#################################
glx-no-stencil = true;
# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all.
# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified,
# but a 20% increase when only 1/4 is.
# My tests on nouveau show terrible slowdown.
# Useful with --glx-swap-method, as well.
glx-copy-from-front = false;
# GLX backend: Use MESA_copy_sub_buffer to do partial screen update.
# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated.
# May break VSync and is not available on some drivers.
# Overrides --glx-copy-from-front.
# glx-use-copysubbuffermesa = true;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
# glx-no-rebind-pixmap = true;
# GLX backend: GLX buffer swap method we assume.
# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1).
# undefined is the slowest and the safest, and the default value.
# copy is fastest, but may fail on some drivers,
# 2-6 are gradually slower but safer (6 is still faster than 0).
# Usually, double buffer means 2, triple buffer means 3.
# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers.
# Useless with --glx-use-copysubbuffermesa.
# Partially breaks --resize-damage.
# Defaults to undefined.
glx-swap-method = "undefined";
#################################
#
# Shadows
#
#################################
# Enabled client-side shadows on windows.
shadow = true;
# Don't draw shadows on DND windows.
no-dnd-shadow = true;
# Avoid drawing shadows on dock/panel windows.
no-dock-shadow = true;
# Zero the part of the shadow's mask behind the window. Fix some weirdness with ARGB windows.
clear-shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 6;
# The left offset for shadows. (default -15)
shadow-offset-x = -9;
# The top offset for shadows. (default -15)
shadow-offset-y = -9;
# The translucency for shadows. (default .75)
shadow-opacity = 0.85;
# Set if you want different colour shadows
shadow-red = 0.5137254901960784; # 0x83 / 0xFF
shadow-green = 0.5803921568627451; # 0x94 / 0xFF
shadow-blue = 0.5882352941176471; # 0x96 / 0xFF
# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches
# (most applications are fine, only apps that do weird things with xshapes or argb are affected).
# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher.
shadow-exclude = [
"!focused",
"! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
# "name *= 'Chromium'",
# "name *= 'Chrome'",
# "name *= 'Firefox'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Cairo-dock'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'"
];
# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners)
shadow-ignore-shaped = false;
#################################
#
# Opacity
#
#################################
menu-opacity = 1;
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
alpha-step = 0.06;
# Dim inactive windows. (0.0 - 1.0)
# inactive-dim = 1.0;
# Do not let dimness adjust based on window opacity.
# inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
blur-background = true;
# Blur background of opaque windows with transparent frames as well.
blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
blur-background-fixed = false;
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'"
];
# blur-kern = "11x11gaussian";
blur-kern = "13,13,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.486752,0.606531,0.726149,0.835270,0.923116,0.980199,0.980199,0.923116,0.835270,0.726149,0.606531,0.486752,0.477114,0.594521,0.711770,0.818731,0.904837,0.960789,0.980199,0.960789,0.904837,0.818731,0.711770,0.594521,0.477114,0.449329,0.559898,0.670320,0.771052,0.852144,0.904837,0.923116,0.904837,0.852144,0.771052,0.670320,0.559898,0.449329,0.406570,0.506617,0.606531,0.697676,0.771052,0.818731,0.835270,0.818731,0.771052,0.697676,0.606531,0.506617,0.406570,0.353455,0.440432,0.527292,0.606531,0.670320,0.711770,0.726149,0.711770,0.670320,0.606531,0.527292,0.440432,0.353455,0.295230,0.367879,0.440432,0.506617,0.559898,0.594521,0.606531,0.594521,0.559898,0.506617,0.440432,0.367879,0.295230,0.236928,0.295230,0.353455,0.406570,0.449329,0.477114,0.486752,0.477114,0.449329,0.406570,0.353455,0.295230,0.236928";
#################################
#
# Fading
#
#################################
# Fade windows during opacity changes.
fading = true;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 1.3;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.007;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.007;
# Fade windows in/out when opening/closing
# no-fading-openclose = true;
# Do not fade destroyed ARGB windows with WM frame.
no-fading-destroyed-argb = true;
# Specify a list of conditions of windows that should not be faded.
fade-exclude = [ ];
#################################
#
# Other
#
#################################
# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events.
# Usually more reliable but depends on a EWMH-compliant WM.
use-ewmh-active-win = true;
# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on.
detect-rounded-corners = true;
# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows.
# This prevents opacity being ignored for some apps.
# For example without this enabled my xfce4-notifyd is 100% opacity no matter what.
detect-client-opacity = true;
# Specify refresh rate of the screen.
# If not specified or 0, compton will try detecting this with X RandR extension.
refresh-rate = 0;
# Set VSync method. VSync methods currently available:
# none: No VSync
# drm: VSync with DRM_IOCTL_WAIT_VBLANK. May only work on some drivers.
# opengl: Try to VSync with SGI_video_sync OpenGL extension. Only work on some drivers.
# opengl-oml: Try to VSync with OML_sync_control OpenGL extension. Only work on some drivers.
# opengl-swc: Try to VSync with SGI_swap_control OpenGL extension. Only work on some drivers. Works only with GLX backend. Known to be most effective on many drivers. Does not actually control paint timing, only buffer swap is affected, so it doesn’t have the effect of --sw-opti unlike other methods. Experimental.
# opengl-mswc: Try to VSync with MESA_swap_control OpenGL extension. Basically the same as opengl-swc above, except the extension we use.
# (Note some VSync methods may not be enabled at compile time.)
vsync = "opengl-swc";
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = false;
# Painting on X Composite overlay window. Recommended.
paint-on-overlay = true;
# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance.
# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already,
# unless you wish to specify a lower refresh rate than the actual value.
sw-opti = false;
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
# paint-on-overlay may make the flickering less obvious.
unredir-if-possible = true;
# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [ ];
# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time.
detect-transient = true;
# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time.
# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too.
detect-client-leader = true;
#################################
#
# Window type settings
#
#################################
wintypes:
{
tooltip =
{
# fade: Fade the particular type of windows.
fade = true;
# shadow: Give those windows shadow
shadow = false;
# opacity: Default opacity for the type of windows.
opacity = 0.85;
# focus: Whether to always consider windows of this type focused.
focus = true;
};
};
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 48 17 18 38 39 40 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_megabytes=1
highlight_threads=0
tree_view=0
header_margin=1
detailed_cpu_time=0
cpu_count_from_zero=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
delay=15
left_meters=LeftCPUs Memory Swap Battery
left_meter_modes=1 1 1 1
right_meters=RightCPUs Tasks LoadAverage Uptime
right_meter_modes=1 2 2 2
set font "Inconsolata LGC 8.6"
set default-fg "#657b83"
set default-bg "#fdf6e3"
set inputbar-fg "#657b83"
set inputbar-bg "#fdf6e3"
set statusbar-fg "#657b83"
set statusbar-bg "#fdf6e3"
set tabbar-fg "#657b83"
set tabbar-bg "#fdf6e3"
set completion-fg "#657b83"
set completion-bg "#fdf6e3"
set completion-highlight-fg "#fdf6e3"
set completion-highlight-bg "#657b83"
# Exact Solarized Dark color theme for the color GNU ls utility.
# Designed for dircolors (GNU coreutils) 5.97
#
# This simple theme was simultaneously designed for these terminal color schemes:
# - Solarized dark (best)
# - Solarized light
# - default dark
# - default light
# with a slight optimization for Solarized Dark.
#
# How the colors were selected:
# - Terminal emulators often have an option typically enabled by default that makes
# bold a different color. It is important to leave this option enabled so that
# you can access the entire 16-color Solarized palette, and not just 8 colors.
# - We favor universality over a greater number of colors. So we limit the number
# of colors so that this theme will work out of the box in all terminals,
# Solarized or not, dark or light.
# - We choose to have the following category of files:
# NORMAL & FILE, DIR, LINK, EXEC and
# editable text including source, unimportant text, binary docs & multimedia source
# files, viewable multimedia, archived/compressed, and unimportant non-text
# - For uniqueness, we stay away from the Solarized foreground colors are -- either
# base00 (brightyellow) or base0 (brighblue). However, they can be used if
# you know what the bg/fg colors of your terminal are, in order to optimize the display.
# - 3 different options are provided: universal, solarized dark, and solarized light.
# The only difference between the universal scheme and one that's optimized for
# dark/light is the color of "unimportant" files, which should blend more with the
# background
# - We note that blue is the hardest color to see on dark bg and yellow is the hardest
# color to see on light bg (with blue being particularly bad). So we choose yellow
# for multimedia files which are usually accessed in a GUI folder browser anyway.
# And blue is kept for custom use of this scheme's user.
# - See table below to see the assignments.
# Insatllation instructions:
# This file goes in the /etc directory, and must be world readable.
# You can copy this file to .dir_colors in your $HOME directory to override
# the system defaults.
# COLOR needs one of these arguments: 'tty' colorizes output to ttys, but not
# pipes. 'all' adds color characters to all output. 'none' shuts colorization
# off.
COLOR tty
# Below, there should be one TERM entry for each termtype that is colorizable
TERM ansi
TERM color_xterm
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM Eterm
TERM eterm-color
TERM gnome
TERM gnome-256color
TERM jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM nxterm
TERM putty
TERM rxvt
TERM rxvt-256color
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM rxvt-unicode256
TERM screen
TERM screen-256color
TERM screen-256color-bce
TERM screen-bce
TERM screen.linux
TERM screen-w
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
# EIGHTBIT, followed by '1' for on, '0' for off. (8-bit output)
EIGHTBIT 1
#############################################################################
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
#
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
#
# NOTES:
# - See http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html
# - Color combinations
# ANSI Color code Solarized Notes Universal SolDark SolLight
# ~~~~~~~~~~~~~~~ ~~~~~~~~~ ~~~~~ ~~~~~~~~~ ~~~~~~~ ~~~~~~~~
# 00 none NORMAL, FILE <SAME> <SAME>
# 30 black base02
# 01;30 bright black base03 bg of SolDark
# 31 red red docs & mm src <SAME> <SAME>
# 01;31 bright red orange EXEC <SAME> <SAME>
# 32 green green editable text <SAME> <SAME>
# 01;32 bright green base01 unimportant text <SAME>
# 33 yellow yellow unclear in light bg multimedia <SAME> <SAME>
# 01;33 bright yellow base00 fg of SolLight unimportant non-text
# 34 blue blue unclear in dark bg user customized <SAME> <SAME>
# 01;34 bright blue base0 fg in SolDark unimportant text
# 35 magenta magenta LINK <SAME> <SAME>
# 01;35 bright magenta violet archive/compressed <SAME> <SAME>
# 36 cyan cyan DIR <SAME> <SAME>
# 01;36 bright cyan base1 unimportant non-text <SAME>
# 37 white base2
# 01;37 bright white base3 bg in SolLight
# 05;37;41 unclear in Putty dark
### By file type
# global default
NORMAL 00
# normal file
FILE 00
# directory
DIR 36
# symbolic link
LINK 35
# pipe, socket, block device, character device (blue bg)
FIFO 30;44
SOCK 35;44
DOOR 35;44 # Solaris 2.5 and later
BLK 33;44
CHR 37;44
#############################################################################
### By file attributes
# Orphaned symlinks (blinking white on red)
# Blink may or may not work (works on iTerm dark or light, and Putty dark)
ORPHAN 05;37;41
# ... and the files that orphaned symlinks point to (blinking white on red)
MISSING 05;37;41
# files with execute permission
EXEC 01;31 # Unix
.cmd 01;31 # Win
.exe 01;31 # Win
.com 01;31 # Win
.bat 01;31 # Win
.reg 01;31 # Win
.app 01;31 # OSX
#############################################################################
### By extension
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
### Text formats
# Text that we can edit with a regular editor
.txt 32
.org 32
.md 32
.mkd 32
# Source text
.h 32
.c 32
.C 32
.cc 32
.cxx 32
.objc 32
.sh 32
.csh 32
.zsh 32
.el 32
.vim 32
.java 32
.pl 32
.pm 32
.py 32
.rb 32
.hs 32
.php 32
.htm 32
.html 32
.shtml 32
.xml 32
.rdf 32
.css 32
.js 32
.man 32
.0 32
.1 32
.2 32
.3 32
.4 32
.5 32
.6 32
.7 32
.8 32
.9 32
.l 32
.n 32
.p 32
.pod 32
.tex 32
### Multimedia formats
# Image
.bmp 33
.cgm 33
.dl 33
.dvi 33
.emf 33
.eps 33
.gif 33
.jpeg 33
.jpg 33
.JPG 33
.mng 33
.pbm 33
.pcx 33
.pdf 33
.pgm 33
.png 33
.ppm 33
.pps 33
.ppsx 33
.ps 33
.svg 33
.svgz 33
.tga 33
.tif 33
.tiff 33
.xbm 33
.xcf 33
.xpm 33
.xwd 33
.xwd 33
.yuv 33
# Audio
.aac 33
.au 33
.flac 33
.mid 33
.midi 33
.mka 33
.mp3 33
.mpa 33
.mpeg 33
.mpg 33
.ogg 33
.ra 33
.wav 33
# Video
.anx 33
.asf 33
.avi 33
.axv 33
.flc 33
.fli 33
.flv 33
.gl 33
.m2v 33
.m4v 33
.mkv 33
.mov 33
.mp4 33
.mp4v 33
.mpeg 33
.mpg 33
.nuv 33
.ogm 33
.ogv 33
.ogx 33
.qt 33
.rm 33
.rmvb 33
.swf 33
.vob 33
.wmv 33
### Misc
# Binary document formats and multimedia source
.doc 31
.docx 31
.rtf 31
.dot 31
.dotx 31
.xls 31
.xlsx 31
.ppt 31
.pptx 31
.fla 31
.psd 31
# Archives, compressed
.7z 1;35
.apk 1;35
.arj 1;35
.bin 1;35
.bz 1;35
.bz2 1;35
.cab 1;35 # Win
.deb 1;35
.dmg 1;35 # OSX
.gem 1;35
.gz 1;35
.iso 1;35
.jar 1;35
.msi 1;35 # Win
.rar 1;35
.rpm 1;35
.tar 1;35
.tbz 1;35
.tbz2 1;35
.tgz 1;35
.tx 1;35
.war 1;35
.xpi 1;35
.xz 1;35
.z 1;35
.Z 1;35
.zip 1;35
# For testing
.ANSI-30-black 30
.ANSI-01;30-brblack 01;30
.ANSI-31-red 31
.ANSI-01;31-brred 01;31
.ANSI-32-green 32
.ANSI-01;32-brgreen 01;32
.ANSI-33-yellow 33
.ANSI-01;33-bryellow 01;33
.ANSI-34-blue 34
.ANSI-01;34-brblue 01;34
.ANSI-35-magenta 35
.ANSI-01;35-brmagenta 01;35
.ANSI-36-cyan 36
.ANSI-01;36-brcyan 01;36
.ANSI-37-white 37
.ANSI-01;37-brwhite 01;37
#############################################################################
# Your customizations
# Unimportant text files
# For universal scheme, use brightgreen 01;32
# For optimal on light bg (but too prominent on dark bg), use white 01;34
.log 01;32
*~ 01;32
*# 01;32
#.log 01;34
#*~ 01;34
#*# 01;34
# Unimportant non-text files
# For universal scheme, use brightcyan 01;36
# For optimal on dark bg (but too prominent on light bg), change to 01;33
#.bak 01;36
#.BAK 01;36
#.old 01;36
#.OLD 01;36
#.org_archive 01;36
#.off 01;36
#.OFF 01;36
#.dist 01;36
#.DIST 01;36
#.orig 01;36
#.ORIG 01;36
#.swp 01;36
#.swo 01;36
#*,v 01;36
.bak 01;33
.BAK 01;33
.old 01;33
.OLD 01;33
.org_archive 01;33
.off 01;33
.OFF 01;33
.dist 01;33
.DIST 01;33
.orig 01;33
.ORIG 01;33
.swp 01;33
.swo 01;33
*,v 01;33
# The brightmagenta (Solarized: purple) color is free for you to use for your
# custom file type
.gpg 34
.gpg 34
.pgp 34
.asc 34
.3des 34
.aes 34
.enc 34
geometry 0x1+940
max_geometry 4x1
icon_size 16
slot_size 17
kludges force_icons_size
window_strut top
background "#eee8d5"
tint_color "#eee8d5"
icon_gravity EN
grow_gravity EN
scrollbars_size 1
scrollbars_step 17
scrollbars horizontal
scrollbars_highlight "#657b83"
skip_taskbar true
window_layer top
8i�screen-256color-it|screen-256color with italics supportP���������������������%)����->@DK��MY��]`fj����npuz���������������������������������������������������������������������� ��������"*��������������������������2��5>GP��Ybk��t����������������}����������������������������������������(������������,����������������3������������������������������������������������������������������������������������������������������8>������������������������������������������������������������������������������������������������������D������������������������������������������������������I��������������������������R������������������W������������������������������������������������������������������]������a�
[%i%p1%d;%p2%dr[%i%p1%d;%p2%dH
[?25l[?25hM[?1049h[?1049lg)0[3~OBOP[21~OQOROS[15~[17~[18~[19~[20~[1~[2~OD[6~[5~OCOA[?1l>[?1h=E[%p1%dP[%p1%dM[%p1%dB[%p1%d@[%p1%dL[%p1%dD[%p1%dC[%p1%dAc[?1000l[?25h87
M[0%?%p6%t;1%;%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t%e%;H ++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~(B)0[4~[23~[24~[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m
&iuscreen-it|screen with italics supportP��������������������@��%)����->@DK��MY��]`fj����npuz���������������������������������������������������������������������� ��������"*��������������������������2��5>GP��Ybk��t����������������}����������������������������������������(������������,����������������3������������������������������������������������������������������������������������������������������8>������������������������������������������������������������������������������������������������������D������������������������������������������������������I��������������������������R������������������W������������������������������������������������������������������]������ak
[%i%p1%d;%p2%dr[%i%p1%d;%p2%dH
[?25l[?25hM[?1049h[?1049lg)0[3~OBOP[21~OQOROS[15~[17~[18~[19~[20~[1~[2~OD[6~[5~OCOA[?1l>[?1h=E[%p1%dP[%p1%dM[%p1%dB[%p1%d@[%p1%dL[%p1%dD[%p1%dC[%p1%dAc[?1000l[?25h87
M[0%?%p6%t;1%;%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t%e%;H ++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~(B)0[4~[23~[24~[3%p1%dm[4%p1%dm
#### COLOUR (Solarized light)
# default statusbar colors
set-option -g status-bg white #base2
set-option -g status-fg yellow #yellow
set-option -g status-attr default
# default window title colors
set-window-option -g window-status-fg brightyellow #base00
set-window-option -g window-status-bg default
#set-window-option -g window-status-attr dim
# active window title colors
set-window-option -g window-status-current-fg brightred #orange
set-window-option -g window-status-current-bg default
#set-window-option -g window-status-current-attr bright
# pane border
set-option -g pane-border-fg white #base2
set-option -g pane-active-border-fg brightcyan #base1
# message text
set-option -g message-bg white #base2
set-option -g message-fg brightred #orange
# pane number display
set-option -g display-panes-active-colour blue #blue
set-option -g display-panes-colour brightred #orange
# clock
set-window-option -g clock-mode-colour green #green
# To copy:
bind-key -n -t emacs-copy M-w copy-pipe "xsel --clipboard --iput --display :0"
# To paste:
bind-key C-y run "xsel --clipboard --output --display :0 | tmux load-buffer - ; tmux paste-buffer"
# show prefix key
set -g status-right ' #{?client_prefix,#[reverse]<Prefix>#[noreverse] ,}"#{=21:pane_title}" %H:%M %d-%b-%y'
# attempt to set the window title
set-option -g set-titles on
set-option -g set-titles-string "#T"
# Prefix
unbind C-b
# set-option -g prefix C-q
set -g prefix 'C-q'
bind 'C-q' send-prefix
# fix titles
# set -ga terminal-overrides ",xterm*:XT:smcup@:rmcup@"
# set -ga terminal-overrides ",rxvt*:XT:smcup@:rmcup@"
# set -g terminal-overrides 'screen*:sitm@,ritm@'
# set -g terminal-overrides ',rxvt*:ritm@,sitm@'
# set -g terminal-overrides ",*:colors=256:smso=\e[3m:rmso=\e[23m:sitm=\e[3m:ritm=\e[23m"
set -g terminal-overrides ",*:colors=256:smso=\e[3m:rmso=\e[23m:sitm=\e[7m:ritm=\e[27m"
# set -g terminal-overrides ",*:colors=256:smso=\e[7m:rmso=\e[27m:sitm=\e[3m:ritm=\e[23"
# set -g terminal-overrides ",*:colors=256:smso=\e[3m:rmso=\e[23m"
# set -g terminal-overrides ",*:colors=256:sitm=\e[3m:ritm=\e[23m"
# 24bit color support
# set-option -ga terminal-overrides ",xterm-256color:Tc"
set-option -ga terminal-overrides ",rxvt-unicode-256color:Tc"
set-option -ga terminal-overrides ",st-256color:Tc"
# fix italic
set -g default-terminal "screen-256color-it"
#
# Emacs compatability
#
# true colors in Emacs
KONSOLE_DBUS_SESSION=1
# Shifted keys
# set-window-option -g xterm-keys on
set -g xterm-keys on
Xcursor.theme: ATER
! UI elements
Emacs.menuBar: 0
Emacs.toolBar: 0
Emacs.verticalScrollBars: off
! Font settings
Emacs.FontBackend: xft,x
Emacs.font: Inconsolata LGC-8.6
! Key translations: Super & Hyper in Emacs
! Make Super, Hyper and Print - Super key, Fn - Hyper, AltGr - Meta
XTerm.VT100.translations: #override \n\
<Key>Super_L: string("@s") \n\
<Key>Super_R: string("@s") \n\
<Key>Hyper_L: string("@s") \n\
<Key>Hyper_R: string("@s") \n\
<Key>Print: string("@s") \n\
<Key>XF86WakeUp: string("@h") \n\
<Key>ISO_Level3_Shift: string("") \n\
~Ctrl ~Meta Shift <Key> Tab: string(0x1b) string("[z2a") \n\
~Ctrl Meta ~Shift <Key> Tab: string(0x1b) string("[z3a") \n\
~Ctrl Meta Shift <Key> Tab: string(0x1b) string("[z4a") \n\
Ctrl ~Meta ~Shift <Key> Tab: string(0x1b) string("[z5a") \n\
Ctrl ~Meta Shift <Key> Tab: string(0x1b) string("[z6a") \n\
Ctrl Meta ~Shift <Key> Tab: string(0x1b) string("[z7a") \n\
Ctrl Meta Shift <Key> Tab: string(0x1b) string("[z8a") \n\
\
~Ctrl ~Meta Shift <Key> Return: string(0x1b) string("[z2b") \n\
~Ctrl Meta ~Shift <Key> Return: string(0x1b) string("[z3b") \n\
~Ctrl Meta Shift <Key> Return: string(0x1b) string("[z4b") \n\
Ctrl ~Meta ~Shift <Key> Return: string(0x1b) string("[z5b") \n\
Ctrl ~Meta Shift <Key> Return: string(0x1b) string("[z6b") \n\
Ctrl Meta ~Shift <Key> Return: string(0x1b) string("[z7b") \n\
Ctrl Meta Shift <Key> Return: string(0x1b) string("[z8b") \n\
\
~Ctrl ~Meta Shift <Key> BackSpace: string(0x1b) string("[z2c") \n\
~Ctrl Meta ~Shift <Key> BackSpace: string(0x1b) string("[z3c") \n\
~Ctrl Meta Shift <Key> BackSpace: string(0x1b) string("[z4c") \n\
Ctrl ~Meta ~Shift <Key> BackSpace: string(0x1b) string("[z5c") \n\
Ctrl ~Meta Shift <Key> BackSpace: string(0x1b) string("[z6c") \n\
Ctrl Meta ~Shift <Key> BackSpace: string(0x1b) string("[z7c") \n\
Ctrl Meta Shift <Key> BackSpace: string(0x1b) string("[z8c") \n\
\
~Ctrl ~Meta ~Shift <Key> Pause: string(0x1b) string("[zd") \n\
~Ctrl ~Meta Shift <Key> Pause: string(0x1b) string("[z2d") \n\
~Ctrl Meta ~Shift <Key> Pause: string(0x1b) string("[z3d") \n\
~Ctrl Meta Shift <Key> Pause: string(0x1b) string("[z4d") \n\
Ctrl ~Meta ~Shift <Key> Pause: string(0x1b) string("[z5d") \n\
Ctrl ~Meta Shift <Key> Pause: string(0x1b) string("[z6d") \n\
Ctrl Meta ~Shift <Key> Pause: string(0x1b) string("[z7d") \n\
Ctrl Meta Shift <Key> Pause: string(0x1b) string("[z8d") \n\
\
Ctrl ~Meta ~Shift <Key> Break: string(0x1b) string("[z5d") \n\
Ctrl ~Meta Shift <Key> Break: string(0x1b) string("[z6d") \n\
Ctrl Meta ~Shift <Key> Break: string(0x1b) string("[z7d") \n\
Ctrl Meta Shift <Key> Break: string(0x1b) string("[z8d") \n\
\
~Ctrl ~Meta ~Shift <Key> Sys_Req: string(0x1b) string("[ze") \n\
~Ctrl ~Meta Shift <Key> Sys_Req: string(0x1b) string("[z2e") \n\
Ctrl ~Meta ~Shift <Key> Sys_Req: string(0x1b) string("[z5e") \n\
Ctrl ~Meta Shift <Key> Sys_Req: string(0x1b) string("[z6e") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Enter: string(0x1b) string("[zf") \n\
~Ctrl ~Meta Shift <Key> KP_Enter: string(0x1b) string("[z2f") \n\
~Ctrl Meta ~Shift <Key> KP_Enter: string(0x1b) string("[z3f") \n\
~Ctrl Meta Shift <Key> KP_Enter: string(0x1b) string("[z4f") \n\
Ctrl ~Meta ~Shift <Key> KP_Enter: string(0x1b) string("[z5f") \n\
Ctrl ~Meta Shift <Key> KP_Enter: string(0x1b) string("[z6f") \n\
Ctrl Meta ~Shift <Key> KP_Enter: string(0x1b) string("[z7f") \n\
Ctrl Meta Shift <Key> KP_Enter: string(0x1b) string("[z8f") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Add: string(0x1b) string("[zg") \n\
~Ctrl ~Meta Shift <Key> KP_Add: string(0x1b) string("[z2g") \n\
~Ctrl Meta ~Shift <Key> KP_Add: string(0x1b) string("[z3g") \n\
~Ctrl Meta Shift <Key> KP_Add: string(0x1b) string("[z4g") \n\
Ctrl ~Meta ~Shift <Key> KP_Add: string(0x1b) string("[z5g") \n\
Ctrl ~Meta Shift <Key> KP_Add: string(0x1b) string("[z6g") \n\
Ctrl Meta ~Shift <Key> KP_Add: string(0x1b) string("[z7g") \n\
Ctrl Meta Shift <Key> KP_Add: string(0x1b) string("[z8g") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Subtract: string(0x1b) string("[zh") \n\
~Ctrl ~Meta Shift <Key> KP_Subtract: string(0x1b) string("[z2h") \n\
~Ctrl Meta ~Shift <Key> KP_Subtract: string(0x1b) string("[z3h") \n\
~Ctrl Meta Shift <Key> KP_Subtract: string(0x1b) string("[z4h") \n\
Ctrl ~Meta ~Shift <Key> KP_Subtract: string(0x1b) string("[z5h") \n\
Ctrl ~Meta Shift <Key> KP_Subtract: string(0x1b) string("[z6h") \n\
Ctrl Meta ~Shift <Key> KP_Subtract: string(0x1b) string("[z7h") \n\
Ctrl Meta Shift <Key> KP_Subtract: string(0x1b) string("[z8h") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Decimal: string(0x1b) string("[zi") \n\
~Ctrl ~Meta Shift <Key> KP_Decimal: string(0x1b) string("[z2i") \n\
~Ctrl Meta ~Shift <Key> KP_Decimal: string(0x1b) string("[z3i") \n\
~Ctrl Meta Shift <Key> KP_Decimal: string(0x1b) string("[z4i") \n\
Ctrl ~Meta ~Shift <Key> KP_Decimal: string(0x1b) string("[z5i") \n\
Ctrl ~Meta Shift <Key> KP_Decimal: string(0x1b) string("[z6i") \n\
Ctrl Meta ~Shift <Key> KP_Decimal: string(0x1b) string("[z7i") \n\
Ctrl Meta Shift <Key> KP_Decimal: string(0x1b) string("[z8i") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Divide: string(0x1b) string("[zj") \n\
~Ctrl ~Meta Shift <Key> KP_Divide: string(0x1b) string("[z2j") \n\
~Ctrl Meta ~Shift <Key> KP_Divide: string(0x1b) string("[z3j") \n\
~Ctrl Meta Shift <Key> KP_Divide: string(0x1b) string("[z4j") \n\
Ctrl ~Meta ~Shift <Key> KP_Divide: string(0x1b) string("[z5j") \n\
Ctrl ~Meta Shift <Key> KP_Divide: string(0x1b) string("[z6j") \n\
Ctrl Meta ~Shift <Key> KP_Divide: string(0x1b) string("[z7j") \n\
Ctrl Meta Shift <Key> KP_Divide: string(0x1b) string("[z8j") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_Multiply: string(0x1b) string("[zk") \n\
~Ctrl ~Meta Shift <Key> KP_Multiply: string(0x1b) string("[z2k") \n\
~Ctrl Meta ~Shift <Key> KP_Multiply: string(0x1b) string("[z3k") \n\
~Ctrl Meta Shift <Key> KP_Multiply: string(0x1b) string("[z4k") \n\
Ctrl ~Meta ~Shift <Key> KP_Multiply: string(0x1b) string("[z5k") \n\
Ctrl ~Meta Shift <Key> KP_Multiply: string(0x1b) string("[z6k") \n\
Ctrl Meta ~Shift <Key> KP_Multiply: string(0x1b) string("[z7k") \n\
Ctrl Meta Shift <Key> KP_Multiply: string(0x1b) string("[z8k") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_0: string(0x1b) string("[zl") \n\
~Ctrl ~Meta Shift <Key> KP_0: string(0x1b) string("[z2l") \n\
~Ctrl Meta ~Shift <Key> KP_0: string(0x1b) string("[z3l") \n\
~Ctrl Meta Shift <Key> KP_0: string(0x1b) string("[z4l") \n\
Ctrl ~Meta ~Shift <Key> KP_0: string(0x1b) string("[z5l") \n\
Ctrl ~Meta Shift <Key> KP_0: string(0x1b) string("[z6l") \n\
Ctrl Meta ~Shift <Key> KP_0: string(0x1b) string("[z7l") \n\
Ctrl Meta Shift <Key> KP_0: string(0x1b) string("[z8l") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_1: string(0x1b) string("[zm") \n\
~Ctrl ~Meta Shift <Key> KP_1: string(0x1b) string("[z2m") \n\
~Ctrl Meta ~Shift <Key> KP_1: string(0x1b) string("[z3m") \n\
~Ctrl Meta Shift <Key> KP_1: string(0x1b) string("[z4m") \n\
Ctrl ~Meta ~Shift <Key> KP_1: string(0x1b) string("[z5m") \n\
Ctrl ~Meta Shift <Key> KP_1: string(0x1b) string("[z6m") \n\
Ctrl Meta ~Shift <Key> KP_1: string(0x1b) string("[z7m") \n\
Ctrl Meta Shift <Key> KP_1: string(0x1b) string("[z8m") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_2: string(0x1b) string("[zn") \n\
~Ctrl ~Meta Shift <Key> KP_2: string(0x1b) string("[z2n") \n\
~Ctrl Meta ~Shift <Key> KP_2: string(0x1b) string("[z3n") \n\
~Ctrl Meta Shift <Key> KP_2: string(0x1b) string("[z4n") \n\
Ctrl ~Meta ~Shift <Key> KP_2: string(0x1b) string("[z5n") \n\
Ctrl ~Meta Shift <Key> KP_2: string(0x1b) string("[z6n") \n\
Ctrl Meta ~Shift <Key> KP_2: string(0x1b) string("[z7n") \n\
Ctrl Meta Shift <Key> KP_2: string(0x1b) string("[z8n") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_3: string(0x1b) string("[zo") \n\
~Ctrl ~Meta Shift <Key> KP_3: string(0x1b) string("[z2o") \n\
~Ctrl Meta ~Shift <Key> KP_3: string(0x1b) string("[z3o") \n\
~Ctrl Meta Shift <Key> KP_3: string(0x1b) string("[z4o") \n\
Ctrl ~Meta ~Shift <Key> KP_3: string(0x1b) string("[z5o") \n\
Ctrl ~Meta Shift <Key> KP_3: string(0x1b) string("[z6o") \n\
Ctrl Meta ~Shift <Key> KP_3: string(0x1b) string("[z7o") \n\
Ctrl Meta Shift <Key> KP_3: string(0x1b) string("[z8o") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_4: string(0x1b) string("[zp") \n\
~Ctrl ~Meta Shift <Key> KP_4: string(0x1b) string("[z2p") \n\
~Ctrl Meta ~Shift <Key> KP_4: string(0x1b) string("[z3p") \n\
~Ctrl Meta Shift <Key> KP_4: string(0x1b) string("[z4p") \n\
Ctrl ~Meta ~Shift <Key> KP_4: string(0x1b) string("[z5p") \n\
Ctrl ~Meta Shift <Key> KP_4: string(0x1b) string("[z6p") \n\
Ctrl Meta ~Shift <Key> KP_4: string(0x1b) string("[z7p") \n\
Ctrl Meta Shift <Key> KP_4: string(0x1b) string("[z8p") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_5: string(0x1b) string("[zq") \n\
~Ctrl ~Meta Shift <Key> KP_5: string(0x1b) string("[z2q") \n\
~Ctrl Meta ~Shift <Key> KP_5: string(0x1b) string("[z3q") \n\
~Ctrl Meta Shift <Key> KP_5: string(0x1b) string("[z4q") \n\
Ctrl ~Meta ~Shift <Key> KP_5: string(0x1b) string("[z5q") \n\
Ctrl ~Meta Shift <Key> KP_5: string(0x1b) string("[z6q") \n\
Ctrl Meta ~Shift <Key> KP_5: string(0x1b) string("[z7q") \n\
Ctrl Meta Shift <Key> KP_5: string(0x1b) string("[z8q") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_6: string(0x1b) string("[zr") \n\
~Ctrl ~Meta Shift <Key> KP_6: string(0x1b) string("[z2r") \n\
~Ctrl Meta ~Shift <Key> KP_6: string(0x1b) string("[z3r") \n\
~Ctrl Meta Shift <Key> KP_6: string(0x1b) string("[z4r") \n\
Ctrl ~Meta ~Shift <Key> KP_6: string(0x1b) string("[z5r") \n\
Ctrl ~Meta Shift <Key> KP_6: string(0x1b) string("[z6r") \n\
Ctrl Meta ~Shift <Key> KP_6: string(0x1b) string("[z7r") \n\
Ctrl Meta Shift <Key> KP_6: string(0x1b) string("[z8r") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_7: string(0x1b) string("[zs") \n\
~Ctrl ~Meta Shift <Key> KP_7: string(0x1b) string("[z2s") \n\
~Ctrl Meta ~Shift <Key> KP_7: string(0x1b) string("[z3s") \n\
~Ctrl Meta Shift <Key> KP_7: string(0x1b) string("[z4s") \n\
Ctrl ~Meta ~Shift <Key> KP_7: string(0x1b) string("[z5s") \n\
Ctrl ~Meta Shift <Key> KP_7: string(0x1b) string("[z6s") \n\
Ctrl Meta ~Shift <Key> KP_7: string(0x1b) string("[z7s") \n\
Ctrl Meta Shift <Key> KP_7: string(0x1b) string("[z8s") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_8: string(0x1b) string("[zt") \n\
~Ctrl ~Meta Shift <Key> KP_8: string(0x1b) string("[z2t") \n\
~Ctrl Meta ~Shift <Key> KP_8: string(0x1b) string("[z3t") \n\
~Ctrl Meta Shift <Key> KP_8: string(0x1b) string("[z4t") \n\
Ctrl ~Meta ~Shift <Key> KP_8: string(0x1b) string("[z5t") \n\
Ctrl ~Meta Shift <Key> KP_8: string(0x1b) string("[z6t") \n\
Ctrl Meta ~Shift <Key> KP_8: string(0x1b) string("[z7t") \n\
Ctrl Meta Shift <Key> KP_8: string(0x1b) string("[z8t") \n\
\
~Ctrl ~Meta ~Shift <Key> KP_9: string(0x1b) string("[zu") \n\
~Ctrl ~Meta Shift <Key> KP_9: string(0x1b) string("[z2u") \n\
~Ctrl Meta ~Shift <Key> KP_9: string(0x1b) string("[z3u") \n\
~Ctrl Meta Shift <Key> KP_9: string(0x1b) string("[z4u") \n\
Ctrl ~Meta ~Shift <Key> KP_9: string(0x1b) string("[z5u") \n\
Ctrl ~Meta Shift <Key> KP_9: string(0x1b) string("[z6u") \n\
Ctrl Meta ~Shift <Key> KP_9: string(0x1b) string("[z7u") \n\
Ctrl Meta Shift <Key> KP_9: string(0x1b) string("[z8u") \n\
\
~Ctrl ~Meta ~Shift <Key> Menu: string(0x1b) string("[zv") \n\
~Ctrl ~Meta Shift <Key> Menu: string(0x1b) string("[z2v") \n\
~Ctrl Meta ~Shift <Key> Menu: string(0x1b) string("[z3v") \n\
~Ctrl Meta Shift <Key> Menu: string(0x1b) string("[z4v") \n\
Ctrl ~Meta ~Shift <Key> Menu: string(0x1b) string("[z5v") \n\
Ctrl ~Meta Shift <Key> Menu: string(0x1b) string("[z6v") \n\
Ctrl Meta ~Shift <Key> Menu: string(0x1b) string("[z7v") \n\
Ctrl Meta Shift <Key> Menu: string(0x1b) string("[z8v") \n
XTerm.VT100.formatOtherKeys: 1
XTerm*eightBitInput: false
XTerm*metaSendsEscape: true
XTerm*backarrowKey: false
XTerm*modifier: meta
!----------------------------------------------------------
! default bindings in xterm-131
! to get an idea:
!
! Shift <KeyPress> Prior:scroll-back(1,halfpage) \n\
! Shift <KeyPress> Next:scroll-forw(1,halfpage) \n\
! Shift <KeyPress> Select:select-cursor-start() \
! select-cursor-end(PRIMARY, CUT_BUFFER0) \n\
! Shift <KeyPress> Insert:insert-selection(PRIMARY, CUT_BUFFER0) \n\
!
! ~Meta <KeyPress>:insert-seven-bit() \n\
! Meta <KeyPress>:insert-eight-bit() \n\
! !Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
! !Lock Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
! !Lock Ctrl @Num_Lock <Btn1Down>:popup-menu(mainMenu) \n\
! ! @Num_Lock Ctrl <Btn1Down>:popup-menu(mainMenu) \n\
! ~Meta <Btn1Down>:select-start() \n\
! ~Meta <Btn1Motion>:select-extend() \n\
! !Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
! !Lock Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
! !Lock Ctrl @Num_Lock <Btn2Down>:popup-menu(vtMenu) \n\
! ! @Num_Lock Ctrl <Btn2Down>:popup-menu(vtMenu) \n\
! ~Ctrl ~Meta <Btn2Down>:ignore() \n\
! Meta <Btn2Down>:clear-saved-lines() \n\
! ~Ctrl ~Meta <Btn2Up>:insert-selection(PRIMARY, CUT_BUFFER0) \n\
! !Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
! !Lock Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
! !Lock Ctrl @Num_Lock <Btn3Down>:popup-menu(fontMenu) \n\
! ! @Num_Lock Ctrl <Btn3Down>:popup-menu(fontMenu) \n\
! ~Ctrl ~Meta <Btn3Down>:start-extend() \n\
! ~Meta <Btn3Motion>:select-extend() \n\
! Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
! Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
! Lock @Num_Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
! @Num_Lock Ctrl <Btn4Down>:scroll-back(1,halfpage,m) \n\
! <Btn4Down>:scroll-back(5,line,m) \n\
! Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
! Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
! Lock @Num_Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
! @Num_Lock Ctrl <Btn5Down>:scroll-forw(1,halfpage,m) \n\
! <Btn5Down>:scroll-forw(5,line,m) \n\
! <BtnUp>:select-end(PRIMARY, CUT_BUFFER0) \n\
! <BtnDown>:bell(0)
!------------------------------------------------------------
XTerm*faceName: Inconsolata LGC
XTerm*faceSize: 8.6
URxvt*pointerShape: double_arrow
! URxvt*termName: string
! URxvt*geometry: 80x60
! URxvt*chdir: string
! URxvt*reverseVideo: boolean
! URxvt*loginShell: boolean
! URxvt*jumpScroll: boolean
! URxvt*skipScroll: boolean
! URxvt*pastableTabs: boolean
! URxvt*scrollstyle: mode
URxvt*scrollBar: false
! URxvt*scrollBar_right: boolean
! URxvt*scrollBar_floating: boolean
! URxvt*scrollBar_align: mode
! URxvt*thickness: number
URxvt*scrollTtyOutput: false
URxvt*scrollTtyKeypress: true
URxvt*scrollWithBuffer: true
! URxvt*inheritPixmap: boolean
! URxvt*transparent: boolean
! URxvt*tintColor: color
! URxvt*shading: number
! URxvt*blurRadius: HxV
! URxvt*fading: number
! URxvt*fadeColor: color
! URxvt*utmpInhibit: boolean
! URxvt*urgentOnBell: boolean
URxvt*visualBell: true
! URxvt*mapAlert: boolean
! URxvt*meta8: true
! URxvt*mouseWheelScrollPage: boolean
! URxvt*tripleclickwords: boolean
! URxvt*insecure: boolean
! URxvt*cursorUnderline: boolean
! URxvt*cursorBlink: boolean
! URxvt*pointerBlank: boolean
! URxvt*background: color
! URxvt*foreground: color
! URxvt*color0: color
! URxvt*color1: color
! URxvt*color2: color
! URxvt*color3: color
! URxvt*color4: color
! URxvt*color5: color
! URxvt*color6: color
! URxvt*color7: color
! URxvt*color16: color
! URxvt*color17: color
! URxvt*color18: color
! URxvt*color19: color
! URxvt*color20: color
! URxvt*color21: color
! URxvt*color22: color
! URxvt*color23: color
! URxvt*color24: color
! URxvt*color25: color
! URxvt*color26: color
! URxvt*color27: color
! URxvt*color28: color
! URxvt*color29: color
! URxvt*color30: color
! URxvt*color31: color
! URxvt*color32: color
! URxvt*color33: color
! URxvt*color34: color
! URxvt*color35: color
! URxvt*color36: color
! URxvt*color37: color
! URxvt*color38: color
! URxvt*color39: color
! URxvt*color40: color
! URxvt*color41: color
! URxvt*color42: color
! URxvt*color43: color
! URxvt*color44: color
! URxvt*color45: color
! URxvt*color46: color
! URxvt*color47: color
! URxvt*color48: color
! URxvt*color49: color
! URxvt*color50: color
! URxvt*color51: color
! URxvt*color52: color
! URxvt*color53: color
! URxvt*color54: color
! URxvt*color55: color
! URxvt*color56: color
! URxvt*color57: color
! URxvt*color58: color
! URxvt*color59: color
! URxvt*color60: color
! URxvt*color61: color
! URxvt*color62: color
! URxvt*color63: color
! URxvt*color64: color
! URxvt*color65: color
! URxvt*color66: color
! URxvt*color67: color
! URxvt*color68: color
! URxvt*color69: color
! URxvt*color70: color
! URxvt*color71: color
! URxvt*color72: color
! URxvt*color73: color
! URxvt*color74: color
! URxvt*color75: color
! URxvt*color76: color
! URxvt*color77: color
! URxvt*color78: color
! URxvt*color79: color
! URxvt*color80: color
! URxvt*color81: color
! URxvt*color82: color
! URxvt*color83: color
! URxvt*color84: color
! URxvt*color85: color
! URxvt*color86: color
! URxvt*color87: color
! URxvt*color88: color
! URxvt*color89: color
! URxvt*color90: color
! URxvt*color91: color
! URxvt*color92: color
! URxvt*color93: color
! URxvt*color94: color
! URxvt*color95: color
! URxvt*color96: color
! URxvt*color97: color
! URxvt*color98: color
! URxvt*color99: color
! URxvt*color100: color
! URxvt*color101: color
! URxvt*color102: color
! URxvt*color103: color
! URxvt*color104: color
! URxvt*color105: color
! URxvt*color106: color
! URxvt*color107: color
! URxvt*color108: color
! URxvt*color109: color
! URxvt*color110: color
! URxvt*color111: color
! URxvt*color112: color
! URxvt*color113: color
! URxvt*color114: color
! URxvt*color115: color
! URxvt*color116: color
! URxvt*color117: color
! URxvt*color118: color
! URxvt*color119: color
! URxvt*color120: color
! URxvt*color121: color
! URxvt*color122: color
! URxvt*color123: color
! URxvt*color124: color
! URxvt*color125: color
! URxvt*color126: color
! URxvt*color127: color
! URxvt*color128: color
! URxvt*color129: color
! URxvt*color130: color
! URxvt*color131: color
! URxvt*color132: color
! URxvt*color133: color
! URxvt*color134: color
! URxvt*color135: color
! URxvt*color136: color
! URxvt*color137: color
! URxvt*color138: color
! URxvt*color139: color
! URxvt*color140: color
! URxvt*color141: color
! URxvt*color142: color
! URxvt*color143: color
! URxvt*color144: color
! URxvt*color145: color
! URxvt*color146: color
! URxvt*color147: color
! URxvt*color148: color
! URxvt*color149: color
! URxvt*color150: color
! URxvt*color151: color
! URxvt*color152: color
! URxvt*color153: color
! URxvt*color154: color
! URxvt*color155: color
! URxvt*color156: color
! URxvt*color157: color
! URxvt*color158: color
! URxvt*color159: color
! URxvt*color160: color
! URxvt*color161: color
! URxvt*color162: color
! URxvt*color163: color
! URxvt*color164: color
! URxvt*color165: color
! URxvt*color166: color
! URxvt*color167: color
! URxvt*color168: color
! URxvt*color169: color
! URxvt*color170: color
! URxvt*color171: color
! URxvt*color172: color
! URxvt*color173: color
! URxvt*color174: color
! URxvt*color175: color
! URxvt*color176: color
! URxvt*color177: color
! URxvt*color178: color
! URxvt*color179: color
! URxvt*color180: color
! URxvt*color181: color
! URxvt*color182: color
! URxvt*color183: color
! URxvt*color184: color
! URxvt*color185: color
! URxvt*color186: color
! URxvt*color187: color
! URxvt*color188: color
! URxvt*color189: color
! URxvt*color190: color
! URxvt*color191: color
! URxvt*color192: color
! URxvt*color193: color
! URxvt*color194: color
! URxvt*color195: color
! URxvt*color196: color
! URxvt*color197: color
! URxvt*color198: color
! URxvt*color199: color
! URxvt*color200: color
! URxvt*color201: color
! URxvt*color202: color
! URxvt*color203: color
! URxvt*color204: color
! URxvt*color205: color
! URxvt*color206: color
! URxvt*color207: color
! URxvt*color208: color
! URxvt*color209: color
! URxvt*color210: color
! URxvt*color211: color
! URxvt*color212: color
! URxvt*color213: color
! URxvt*color214: color
! URxvt*color215: color
! URxvt*color216: color
! URxvt*color217: color
! URxvt*color218: color
! URxvt*color219: color
! URxvt*color220: color
! URxvt*color221: color
! URxvt*color222: color
! URxvt*color223: color
! URxvt*color224: color
! URxvt*color225: color
! URxvt*color226: color
! URxvt*color227: color
! URxvt*color228: color
! URxvt*color229: color
! URxvt*color230: color
! URxvt*color231: color
! URxvt*color232: color
! URxvt*color233: color
! URxvt*color234: color
! URxvt*color235: color
! URxvt*color236: color
! URxvt*color237: color
! URxvt*color238: color
! URxvt*color239: color
! URxvt*color240: color
! URxvt*color241: color
! URxvt*color242: color
! URxvt*color243: color
! URxvt*color244: color
! URxvt*color245: color
! URxvt*color246: color
! URxvt*color247: color
! URxvt*color248: color
! URxvt*color249: color
! URxvt*color250: color
! URxvt*color251: color
! URxvt*color252: color
! URxvt*color253: color
! URxvt*color254: color
! URxvt*color255: color
! URxvt*color8: color
! URxvt*color9: color
! URxvt*color10: color
! URxvt*color11: color
! URxvt*color12: color
! URxvt*color13: color
! URxvt*color14: color
! URxvt*color15: color
! URxvt*colorBD: color
! URxvt*colorIT: color
! URxvt*colorUL: color
! URxvt*colorRV: color
! URxvt*underlineColor: color
! URxvt*scrollColor: color
! URxvt*troughColor: color
! URxvt*highlightColor: color
! URxvt*highlightTextColor: color
! URxvt*cursorColor: color
! URxvt*cursorColor2: color
! URxvt*pointerColor: color
! URxvt*pointerColor2: color
! URxvt*borderColor: color
! URxvt*path: search path
! URxvt*backgroundPixmap: file[;geom]
! URxvt*iconFile: file
URxvt*font: xft:Inconsolata LGC:size=8.2,\
xft:Source Han Sans JP,\
xft:Source Han Sans CN,\
xft:Source Han Sans TW,\
xft:IPAPGothic,\
xft:Source Han Sans KR,\
xft:Baekmuk Dotum,\
xft:DejaVu Sans:size=8.6,\
xft:Symbola:size=6.8,\
xft:OpenSymbol:size=6.8,\
xft:Unifont:size=6.8
! xft:FontAwesome
URxvt*boldFont: xft:Inconsolata LGC:bold:size=8.6,\
xft:Source Han Sans JP:bold,\
xft:Source Han Sans CN:bold,\
xft:Source Han Sans TW:bold,\
xft:IPAPGothic:bold,\
xft:Source Han Sans KR:bold,\
xft:Baekmuk Dotum:bold,\
xft:DejaVu Sans:bold:size=8.6,\
xft:Symbola:bold:size=6.8,\
xft:OpenSymbol:bold:size=6.8,\
xft:Unifont:bold:size=6.8
! xft:FontAwesome
URxvt*italicFont: xft:Inconsolata LGC:italic:size=8.2,\
xft:Source Han Sans JP:italic,\
xft:Source Han Sans CN:italic,\
xft:Source Han Sans TW:italic,\
xft:IPAPGothic:italic,\
xft:Source Han Sans KR:italic,\
xft:Baekmuk Dotum:italic,\
xft:DejaVu Sans:italic:size=8.6,\
xft:Symbola:italic:size=6.8,\
xft:OpenSymbol:italic:size=6.8,\
xft:Unifont:italic:size=6.8
! xft:FontAwesome
URxvt*boldItalicFont: xft:Inconsolata LGC:bold:italic:size=8.2,\
xft:Source Han Sans JP:bold:italic,\
xft:Source Han Sans CN:bold:italic,\
xft:Source Han Sans TW:bold:italic,\
xft:IPAPGothic:bold:italic,\
xft:Source Han Sans KR:bold:italic,\
xft:Baekmuk Dotum:bold:italic,\
xft:DejaVu Sans:bold:italic:size=8.6,\
xft:Symbola:bold:italic:size=6.8,\
xft:OpenSymbol:bold:italic:size=6.8,\
xft:Unifont:bold:italic:size=6.8
! xft:FontAwesome
URxvt*intensityStyles: false
! URxvt*inputMethod: name
! URxvt*preeditType: style
! URxvt*imLocale: string
! URxvt*imFont: fontname
! URxvt*title: sting
! URxvt*iconName: string
! URxvt*saveLines: number
! URxvt*buffered: boolean
URxvt*depth: 32
! URxvt*visual: number
! URxvt*transient-for: windowid
! URxvt*override-redirect: boolean
! URxvt*hold: boolean
! URxvt*externalBorder: number
! URxvt*internalBorder: number
! URxvt*borderLess: boolean
! URxvt*lineSpace: number
! URxvt*letterSpace: number
! URxvt*skipBuiltinGlyphs: boolean
! URxvt*pointerBlankDelay: number
! URxvt*backspacekey: string
! URxvt*deletekey: string
! URxvt*print-pipe: string
URxvt*modifier: meta
! URxvt*cutchars: string
! URxvt*answerbackString: string
! URxvt*secondaryScreen: boolean
! URxvt*secondaryScroll: boolean
! URxvt*perl-lib: string
! URxvt*perl-eval: perl-eval
! URxvt*perl-ext-common: string
URxvt.perl-ext-common: default,clipboard
! URxvt*perl-ext: string
URxvt*iso14755: false
URxvt*iso14755_52: false
! URxvt*xrm: string
! URxvt*keysym.sym: keysym
! Map Control-number keys and quotes to Meta-* because there aren't ascii
! control codes for those Control-* sequences, so terminals don't handle them,
! so they're not passed through to emacs frames in terminals. (the workaround is
! to add duplicate M-* key bindings in emacs.)
!
! after more research it turns out rxvt and screen get this wrong, but xterm
! gets it right! C-* makes it through to terminal emacsen correctly. screen
! inside xterm still gets it wrong though. :|
!
! i got the human-readable key names after Control- and the octal escaped
! keysyms in the RHS from xev.
!
! for porting to xterm, use VT100*translations like below
! URxvt*keysym.Control-0: list|\033|0123456789|
! URxvt*keysym.Control-grave: \033`
! URxvt*keysym.Control-apostrophe: \033\047
! URxvt*keysym.Control-slash: \033/
! URxvt.keysym.Super: @s
! URxvt.keysym.Hyper: @h
! Key translations: Super & Hyper in Emacs
! Make Super and Print - Super key, nothing - Hyper, AltGr - Alt
! URxvt*keysym.Super_L: \030@s
! URxvt*keysym.Super_R: \030@s
! URxvt*keysym.Hyper_L: \030@s
! URxvt*keysym.Hyper_R: \030@s
! URxvt*keysym.Print: \030@s
! URxvt*keysym.XF86WakeUp: \030@h
! URxvt*keysym.ISO_Level13_Shift: \033
! URxvt*keysym.Alt_R: \030@s
URxvt.keysym.Mod4-c: perl:clipboard:copy
URxvt.keysym.Mod4-v: perl:clipboard:paste
URxvt.keysym.Mod4-C-v: perl:clipboard:paste_escaped
URxvt.clipboard.copycmd: xsel --clipboard --input --display :0
URxvt.clipboard.pastecmd: xsel --clipboard --output --display :0
! Fix Meta for URxvt
! urxvt*keysym.Meta-0X0020: \302\240
! urxvt*keysym.Meta-0X0021: \302\241
! urxvt*keysym.Meta-0X0022: \302\242
! urxvt*keysym.Meta-0X0023: \302\243
! urxvt*keysym.Meta-0X0024: \302\244
! urxvt*keysym.Meta-0X0025: \302\245
! urxvt*keysym.Meta-0X0026: \302\246
! urxvt*keysym.Meta-0X0027: \302\247
! urxvt*keysym.Meta-0X0028: \302\250
! urxvt*keysym.Meta-0X0029: \302\251
! urxvt*keysym.Meta-0X002A: \302\252
! urxvt*keysym.Meta-0X002B: \302\253
! urxvt*keysym.Meta-0X002C: \302\254
! urxvt*keysym.Meta-0X002D: \302\255
! urxvt*keysym.Meta-0X002E: \302\256
! urxvt*keysym.Meta-0X002F: \302\257
! urxvt*keysym.Meta-0X0030: \302\260
! urxvt*keysym.Meta-0X0031: \302\261
! urxvt*keysym.Meta-0X0032: \302\262
! urxvt*keysym.Meta-0X0033: \302\263
! urxvt*keysym.Meta-0X0034: \302\264
! urxvt*keysym.Meta-0X0035: \302\265
! urxvt*keysym.Meta-0X0036: \302\266
! urxvt*keysym.Meta-0X0037: \302\267
! urxvt*keysym.Meta-0X0038: \302\270
! urxvt*keysym.Meta-0X0039: \302\271
! urxvt*keysym.Meta-0X003A: \302\272
! urxvt*keysym.Meta-0X003B: \302\273
! urxvt*keysym.Meta-0X003C: \302\274
! urxvt*keysym.Meta-0X003D: \302\275
! urxvt*keysym.Meta-0X003E: \302\276
! urxvt*keysym.Meta-0X003F: \302\277
! urxvt*keysym.Meta-0X0040: \303\200
! urxvt*keysym.Meta-0X0041: \303\201
! urxvt*keysym.Meta-0X0042: \303\202
! urxvt*keysym.Meta-0X0043: \303\203
! urxvt*keysym.Meta-0X0044: \303\204
! urxvt*keysym.Meta-0X0045: \303\205
! urxvt*keysym.Meta-0X0046: \303\206
! urxvt*keysym.Meta-0X0047: \303\207
! urxvt*keysym.Meta-0X0048: \303\210
! urxvt*keysym.Meta-0X0049: \303\211
! urxvt*keysym.Meta-0X004A: \303\212
! urxvt*keysym.Meta-0X004B: \303\213
! urxvt*keysym.Meta-0X004C: \303\214
! urxvt*keysym.Meta-0X004D: \303\215
! urxvt*keysym.Meta-0X004E: \303\216
! urxvt*keysym.Meta-0X004F: \303\217
! urxvt*keysym.Meta-0X0050: \303\220
! urxvt*keysym.Meta-0X0051: \303\221
! urxvt*keysym.Meta-0X0052: \303\222
! urxvt*keysym.Meta-0X0053: \303\223
! urxvt*keysym.Meta-0X0054: \303\224
! urxvt*keysym.Meta-0X0055: \303\225
! urxvt*keysym.Meta-0X0056: \303\226
! urxvt*keysym.Meta-0X0057: \303\227
! urxvt*keysym.Meta-0X0058: \303\230
! urxvt*keysym.Meta-0X0059: \303\231
! urxvt*keysym.Meta-0X005A: \303\232
! urxvt*keysym.Meta-0X005B: \303\233
! urxvt*keysym.Meta-0X005C: \303\234
! urxvt*keysym.Meta-0X005D: \303\235
! urxvt*keysym.Meta-0X005E: \303\236
! urxvt*keysym.Meta-0X005F: \303\237
! urxvt*keysym.Meta-0X0060: \303\240
! urxvt*keysym.Meta-0X0061: \303\241
! urxvt*keysym.Meta-0X0062: \303\242
! urxvt*keysym.Meta-0X0063: \303\243
! urxvt*keysym.Meta-0X0064: \303\244
! urxvt*keysym.Meta-0X0065: \303\245
! urxvt*keysym.Meta-0X0066: \303\246
! urxvt*keysym.Meta-0X0067: \303\247
! urxvt*keysym.Meta-0X0068: \303\250
! urxvt*keysym.Meta-0X0069: \303\251
! urxvt*keysym.Meta-0X006A: \303\252
! urxvt*keysym.Meta-0X006B: \303\253
! urxvt*keysym.Meta-0X006C: \303\254
! urxvt*keysym.Meta-0X006D: \303\255
! urxvt*keysym.Meta-0X006E: \303\256
! urxvt*keysym.Meta-0X006F: \303\257
! urxvt*keysym.Meta-0X0070: \303\260
! urxvt*keysym.Meta-0X0071: \303\261
! urxvt*keysym.Meta-0X0072: \303\262
! urxvt*keysym.Meta-0X0073: \303\263
! urxvt*keysym.Meta-0X0074: \303\264
! urxvt*keysym.Meta-0X0075: \303\265
! urxvt*keysym.Meta-0X0076: \303\266
! urxvt*keysym.Meta-0X0077: \303\267
! urxvt*keysym.Meta-0X0078: \303\270
! urxvt*keysym.Meta-0X0079: \303\271
! urxvt*keysym.Meta-0X007A: \303\272
! urxvt*keysym.Meta-0X007B: \303\273
! urxvt*keysym.Meta-0X007C: \303\274
! urxvt*keysym.Meta-0X007D: \303\275
! urxvt*keysym.Meta-0X007E: \303\276
! urxvt*keysym.Meta-0X007F: \303\277
! from https://github.com/yuutayamada/xterm-keybinder-el/blob/master/emacs-urxvt-client
urxvt*keysym.Mod3-S-0x20 'string:[====== '
urxvt*keysym.Print-S-0x20 'string:[===== '
urxvt*keysym.Mod3-S-0x21 'string:[======!'
urxvt*keysym.Print-S-0x21 'string:[=====!'
urxvt*keysym.C-S-0x21 'string:[=!'
urxvt*keysym.Mod3-S-0x22 'string:[======"'
urxvt*keysym.Print-S-0x22 'string:[====="'
urxvt*keysym.C-S-0x22 'string:[="'
urxvt*keysym.Mod3-S-0x23 'string:[======#'
urxvt*keysym.Print-S-0x23 'string:[=====#'
urxvt*keysym.C-S-0x23 'string:[=#'
urxvt*keysym.Mod3-S-0x24 'string:[======$'
urxvt*keysym.Print-S-0x24 'string:[=====$'
urxvt*keysym.C-S-0x24 'string:[=$'
urxvt*keysym.Mod3-S-0x25 'string:[======%'
urxvt*keysym.Print-S-0x25 'string:[=====%'
urxvt*keysym.C-S-0x25 'string:[=%'
urxvt*keysym.Mod3-S-0x26 'string:[======&'
urxvt*keysym.Print-S-0x26 'string:[=====&'
urxvt*keysym.C-S-0x26 'string:[=&'
urxvt*keysym.Mod3-0x27 "string:@h'"
urxvt*keysym.Print-0x27 "string:@s'"
urxvt*keysym.C-0x27 "string:@c'"
urxvt*keysym.Mod3-S-0x28 'string:[======('
urxvt*keysym.Print-S-0x28 'string:[=====('
urxvt*keysym.C-S-0x28 'string:[=('
urxvt*keysym.Mod3-S-0x29 'string:[======)'
urxvt*keysym.Print-S-0x29 'string:[=====)'
urxvt*keysym.C-S-0x29 'string:[=)'
urxvt*keysym.Mod3-S-0x2a 'string:[======*'
urxvt*keysym.Print-S-0x2a 'string:[=====*'
urxvt*keysym.C-S-0x2a 'string:[=*'
urxvt*keysym.Mod3-S-0x2b 'string:[======+'
urxvt*keysym.Print-S-0x2b 'string:[=====+'
urxvt*keysym.C-S-0x2b 'string:[=+'
urxvt*keysym.Mod3-0x2c 'string:@h,'
urxvt*keysym.Print-0x2c 'string:@s,'
urxvt*keysym.C-0x2c 'string:@c,'
urxvt*keysym.Mod3-0x2d 'string:@h-'
urxvt*keysym.Print-0x2d 'string:@s-'
urxvt*keysym.C-0x2d 'string:@c-'
urxvt*keysym.Mod3-0x2e 'string:@h.'
urxvt*keysym.Print-0x2e 'string:@s.'
urxvt*keysym.C-0x2e 'string:@c.'
urxvt*keysym.Mod3-0x2f 'string:@h/'
urxvt*keysym.Print-0x2f 'string:@s/'
urxvt*keysym.Mod3-0x30 'string:@h0'
urxvt*keysym.Print-0x30 'string:@s0'
urxvt*keysym.C-0x30 'string:@c0'
urxvt*keysym.Mod3-0x31 'string:@h1'
urxvt*keysym.Print-0x31 'string:@s1'
urxvt*keysym.C-0x31 'string:@c1'
urxvt*keysym.Mod3-0x32 'string:@h2'
urxvt*keysym.Print-0x32 'string:@s2'
urxvt*keysym.C-0x32 'string:@c2'
urxvt*keysym.Mod3-0x33 'string:@h3'
urxvt*keysym.Print-0x33 'string:@s3'
urxvt*keysym.C-0x33 'string:@c3'
urxvt*keysym.Mod3-0x34 'string:@h4'
urxvt*keysym.Print-0x34 'string:@s4'
urxvt*keysym.C-0x34 'string:@c4'
urxvt*keysym.Mod3-0x35 'string:@h5'
urxvt*keysym.Print-0x35 'string:@s5'
urxvt*keysym.C-0x35 'string:@c5'
urxvt*keysym.Mod3-0x36 'string:@h6'
urxvt*keysym.Print-0x36 'string:@s6'
urxvt*keysym.C-0x36 'string:@c6'
urxvt*keysym.Mod3-0x37 'string:@h7'
urxvt*keysym.Print-0x37 'string:@s7'
urxvt*keysym.C-0x37 'string:@c7'
urxvt*keysym.Mod3-0x38 'string:@h8'
urxvt*keysym.Print-0x38 'string:@s8'
urxvt*keysym.C-0x38 'string:@c8'
urxvt*keysym.Mod3-0x39 'string:@h9'
urxvt*keysym.Print-0x39 'string:@s9'
urxvt*keysym.C-0x39 'string:@c9'
urxvt*keysym.Mod3-S-0x3a 'string:[======:'
urxvt*keysym.Print-S-0x3a 'string:[=====:'
urxvt*keysym.Mod3-0x3b 'string:@h;'
urxvt*keysym.Print-0x3b 'string:@s;'
urxvt*keysym.C-0x3b 'string:@c;'
urxvt*keysym.Mod3-S-0x3c 'string:[======<'
urxvt*keysym.Print-S-0x3c 'string:[=====<'
urxvt*keysym.Mod3-0x3d 'string:@h='
urxvt*keysym.Print-0x3d 'string:@s='
urxvt*keysym.C-S-0x3d 'string:[=='
urxvt*keysym.Mod3-S-0x3e 'string:[======>'
urxvt*keysym.Print-S-0x3e 'string:[=====>'
urxvt*keysym.Mod3-S-0x3f 'string:[======?'
urxvt*keysym.Print-S-0x3f 'string:[=====?'
urxvt*keysym.Mod3-S-0x40 'string:[======@'
urxvt*keysym.Print-S-0x40 'string:[=====@'
urxvt*keysym.Mod3-S-0x41 'string:[======A'
urxvt*keysym.Print-S-0x41 'string:[=====A'
urxvt*keysym.C-S-0x41 'string:[=A'
urxvt*keysym.M-S-0x41 'string:[===A'
urxvt*keysym.C-M-S-0x41 'string:[==A'
urxvt*keysym.Mod3-S-0x42 'string:[======B'
urxvt*keysym.Print-S-0x42 'string:[=====B'
urxvt*keysym.C-S-0x42 'string:[=B'
urxvt*keysym.M-S-0x42 'string:[===B'
urxvt*keysym.C-M-S-0x42 'string:[==B'
urxvt*keysym.Mod3-S-0x43 'string:[======C'
urxvt*keysym.Print-S-0x43 'string:[=====C'
urxvt*keysym.C-S-0x43 'string:[=C'
urxvt*keysym.M-S-0x43 'string:[===C'
urxvt*keysym.C-M-S-0x43 'string:[==C'
urxvt*keysym.Mod3-S-0x44 'string:[======D'
urxvt*keysym.Print-S-0x44 'string:[=====D'
urxvt*keysym.C-S-0x44 'string:[=D'
urxvt*keysym.M-S-0x44 'string:[===D'
urxvt*keysym.C-M-S-0x44 'string:[==D'
urxvt*keysym.Mod3-S-0x45 'string:[======E'
urxvt*keysym.Print-S-0x45 'string:[=====E'
urxvt*keysym.C-S-0x45 'string:[=E'
urxvt*keysym.M-S-0x45 'string:[===E'
urxvt*keysym.C-M-S-0x45 'string:[==E'
urxvt*keysym.Mod3-S-0x46 'string:[======F'
urxvt*keysym.Print-S-0x46 'string:[=====F'
urxvt*keysym.C-S-0x46 'string:[=F'
urxvt*keysym.M-S-0x46 'string:[===F'
urxvt*keysym.C-M-S-0x46 'string:[==F'
urxvt*keysym.Mod3-S-0x47 'string:[======G'
urxvt*keysym.Print-S-0x47 'string:[=====G'
urxvt*keysym.C-S-0x47 'string:[=G'
urxvt*keysym.M-S-0x47 'string:[===G'
urxvt*keysym.C-M-S-0x47 'string:[==G'
urxvt*keysym.Mod3-S-0x48 'string:[======H'
urxvt*keysym.Print-S-0x48 'string:[=====H'
urxvt*keysym.C-S-0x48 'string:[=H'
urxvt*keysym.M-S-0x48 'string:[===H'
urxvt*keysym.C-M-S-0x48 'string:[==H'
urxvt*keysym.Mod3-S-0x49 'string:[======I'
urxvt*keysym.Print-S-0x49 'string:[=====I'
urxvt*keysym.C-S-0x49 'string:[=I'
urxvt*keysym.M-S-0x49 'string:[===I'
urxvt*keysym.C-M-S-0x49 'string:[==I'
urxvt*keysym.Mod3-S-0x4a 'string:[======J'
urxvt*keysym.Print-S-0x4a 'string:[=====J'
urxvt*keysym.C-S-0x4a 'string:[=J'
urxvt*keysym.M-S-0x4a 'string:[===J'
urxvt*keysym.C-M-S-0x4a 'string:[==J'
urxvt*keysym.Mod3-S-0x4b 'string:[======K'
urxvt*keysym.Print-S-0x4b 'string:[=====K'
urxvt*keysym.C-S-0x4b 'string:[=K'
urxvt*keysym.M-S-0x4b 'string:[===K'
urxvt*keysym.C-M-S-0x4b 'string:[==K'
urxvt*keysym.Mod3-S-0x4c 'string:[======L'
urxvt*keysym.Print-S-0x4c 'string:[=====L'
urxvt*keysym.C-S-0x4c 'string:[=L'
urxvt*keysym.M-S-0x4c 'string:[===L'
urxvt*keysym.C-M-S-0x4c 'string:[==L'
urxvt*keysym.Mod3-S-0x4d 'string:[======M'
urxvt*keysym.Print-S-0x4d 'string:[=====M'
urxvt*keysym.C-S-0x4d 'string:[=M'
urxvt*keysym.M-S-0x4d 'string:[===M'
urxvt*keysym.C-M-S-0x4d 'string:[==M'
urxvt*keysym.Mod3-S-0x4e 'string:[======N'
urxvt*keysym.Print-S-0x4e 'string:[=====N'
urxvt*keysym.C-S-0x4e 'string:[=N'
urxvt*keysym.M-S-0x4e 'string:[===N'
urxvt*keysym.C-M-S-0x4e 'string:[==N'
urxvt*keysym.Mod3-S-0x4f 'string:[======O'
urxvt*keysym.Print-S-0x4f 'string:[=====O'
urxvt*keysym.C-S-0x4f 'string:[=O'
urxvt*keysym.M-S-0x4f 'string:[===O'
urxvt*keysym.C-M-S-0x4f 'string:[==O'
urxvt*keysym.Mod3-S-0x50 'string:[======P'
urxvt*keysym.Print-S-0x50 'string:[=====P'
urxvt*keysym.C-S-0x50 'string:[=P'
urxvt*keysym.M-S-0x50 'string:[===P'
urxvt*keysym.C-M-S-0x50 'string:[==P'
urxvt*keysym.Mod3-S-0x51 'string:[======Q'
urxvt*keysym.Print-S-0x51 'string:[=====Q'
urxvt*keysym.C-S-0x51 'string:[=Q'
urxvt*keysym.M-S-0x51 'string:[===Q'
urxvt*keysym.C-M-S-0x51 'string:[==Q'
urxvt*keysym.Mod3-S-0x52 'string:[======R'
urxvt*keysym.Print-S-0x52 'string:[=====R'
urxvt*keysym.C-S-0x52 'string:[=R'
urxvt*keysym.M-S-0x52 'string:[===R'
urxvt*keysym.C-M-S-0x52 'string:[==R'
urxvt*keysym.Mod3-S-0x53 'string:[======S'
urxvt*keysym.Print-S-0x53 'string:[=====S'
urxvt*keysym.C-S-0x53 'string:[=S'
urxvt*keysym.M-S-0x53 'string:[===S'
urxvt*keysym.C-M-S-0x53 'string:[==S'
urxvt*keysym.Mod3-S-0x54 'string:[======T'
urxvt*keysym.Print-S-0x54 'string:[=====T'
urxvt*keysym.C-S-0x54 'string:[=T'
urxvt*keysym.M-S-0x54 'string:[===T'
urxvt*keysym.C-M-S-0x54 'string:[==T'
urxvt*keysym.Mod3-S-0x55 'string:[======U'
urxvt*keysym.Print-S-0x55 'string:[=====U'
urxvt*keysym.C-S-0x55 'string:[=U'
urxvt*keysym.M-S-0x55 'string:[===U'
urxvt*keysym.C-M-S-0x55 'string:[==U'
urxvt*keysym.Mod3-S-0x56 'string:[======V'
urxvt*keysym.Print-S-0x56 'string:[=====V'
urxvt*keysym.C-S-0x56 'string:[=V'
urxvt*keysym.M-S-0x56 'string:[===V'
urxvt*keysym.C-M-S-0x56 'string:[==V'
urxvt*keysym.Mod3-S-0x57 'string:[======W'
urxvt*keysym.Print-S-0x57 'string:[=====W'
urxvt*keysym.C-S-0x57 'string:[=W'
urxvt*keysym.M-S-0x57 'string:[===W'
urxvt*keysym.C-M-S-0x57 'string:[==W'
urxvt*keysym.Mod3-S-0x58 'string:[======X'
urxvt*keysym.Print-S-0x58 'string:[=====X'
urxvt*keysym.C-S-0x58 'string:[=X'
urxvt*keysym.M-S-0x58 'string:[===X'
urxvt*keysym.C-M-S-0x58 'string:[==X'
urxvt*keysym.Mod3-S-0x59 'string:[======Y'
urxvt*keysym.Print-S-0x59 'string:[=====Y'
urxvt*keysym.C-S-0x59 'string:[=Y'
urxvt*keysym.M-S-0x59 'string:[===Y'
urxvt*keysym.C-M-S-0x59 'string:[==Y'
urxvt*keysym.Mod3-S-0x5a 'string:[======Z'
urxvt*keysym.Print-S-0x5a 'string:[=====Z'
urxvt*keysym.C-S-0x5a 'string:[=Z'
urxvt*keysym.M-S-0x5a 'string:[===Z'
urxvt*keysym.C-M-S-0x5a 'string:[==Z'
urxvt*keysym.Mod3-0x5b 'string:@h['
urxvt*keysym.Print-0x5b 'string:@s['
urxvt*keysym.Mod3-0x5c 'string:@h\'
urxvt*keysym.Print-0x5c 'string:@s\'
urxvt*keysym.Mod3-0x5d 'string:@h]'
urxvt*keysym.Print-0x5d 'string:@s]'
urxvt*keysym.Mod3-S-0x5e 'string:[======^'
urxvt*keysym.Print-S-0x5e 'string:[=====^'
urxvt*keysym.Mod3-S-0x5f 'string:[======_'
urxvt*keysym.Print-S-0x5f 'string:[=====_'
urxvt*keysym.Mod3-0x60 'string:@h`'
urxvt*keysym.Print-0x60 'string:@s`'
urxvt*keysym.Mod3-0x61 'string:@ha'
urxvt*keysym.Print-0x61 'string:@sa'
urxvt*keysym.Mod3-0x62 'string:@hb'
urxvt*keysym.Print-0x62 'string:@sb'
urxvt*keysym.Mod3-0x63 'string:@hc'
urxvt*keysym.Print-0x63 'string:@sc'
urxvt*keysym.Mod3-0x64 'string:@hd'
urxvt*keysym.Print-0x64 'string:@sd'
urxvt*keysym.Mod3-0x65 'string:@he'
urxvt*keysym.Print-0x65 'string:@se'
urxvt*keysym.Mod3-0x66 'string:@hf'
urxvt*keysym.Print-0x66 'string:@sf'
urxvt*keysym.Mod3-0x67 'string:@hg'
urxvt*keysym.Print-0x67 'string:@sg'
urxvt*keysym.Mod3-0x68 'string:@hh'
urxvt*keysym.Print-0x68 'string:@sh'
urxvt*keysym.Mod3-0x69 'string:@hi'
urxvt*keysym.Print-0x69 'string:@si'
urxvt*keysym.Mod3-0x6a 'string:@hj'
urxvt*keysym.Print-0x6a 'string:@sj'
urxvt*keysym.Mod3-0x6b 'string:@hk'
urxvt*keysym.Print-0x6b 'string:@sk'
urxvt*keysym.Mod3-0x6c 'string:@hl'
urxvt*keysym.Print-0x6c 'string:@sl'
urxvt*keysym.Mod3-0x6d 'string:@hm'
urxvt*keysym.Print-0x6d 'string:@sm'
urxvt*keysym.Mod3-0x6e 'string:@hn'
urxvt*keysym.Print-0x6e 'string:@sn'
urxvt*keysym.Mod3-0x6f 'string:@ho'
urxvt*keysym.Print-0x6f 'string:@so'
urxvt*keysym.Mod3-0x70 'string:@hp'
urxvt*keysym.Print-0x70 'string:@sp'
urxvt*keysym.Mod3-0x71 'string:@hq'
urxvt*keysym.Print-0x71 'string:@sq'
urxvt*keysym.Mod3-0x72 'string:@hr'
urxvt*keysym.Print-0x72 'string:@sr'
urxvt*keysym.Mod3-0x73 'string:@hs'
urxvt*keysym.Print-0x73 'string:@ss'
urxvt*keysym.Mod3-0x74 'string:@ht'
urxvt*keysym.Print-0x74 'string:@st'
urxvt*keysym.Mod3-0x75 'string:@hu'
urxvt*keysym.Print-0x75 'string:@su'
urxvt*keysym.Mod3-0x76 'string:@hv'
urxvt*keysym.Print-0x76 'string:@sv'
urxvt*keysym.Mod3-0x77 'string:@hw'
urxvt*keysym.Print-0x77 'string:@sw'
urxvt*keysym.Mod3-0x78 'string:@hx'
urxvt*keysym.Print-0x78 'string:@sx'
urxvt*keysym.Mod3-0x79 'string:@hy'
urxvt*keysym.Print-0x79 'string:@sy'
urxvt*keysym.Mod3-0x7a 'string:@hz'
urxvt*keysym.Print-0x7a 'string:@sz'
urxvt*keysym.Mod3-S-0x7b 'string:[======{'
urxvt*keysym.Print-S-0x7b 'string:[====={'
urxvt*keysym.Mod3-S-0x7c 'string:[======|'
urxvt*keysym.Print-S-0x7c 'string:[=====|'
urxvt*keysym.Mod3-S-0x7d 'string:[======}'
urxvt*keysym.Print-S-0x7d 'string:[=====}'
urxvt*keysym.Mod3-S-0x7e 'string:[======~'
urxvt*keysym.Print-S-0x7e 'string:[=====~'
urxvt*keysym.C-M-0x67 'string:[====g'
urxvt*keysym.C-M-0x20 'string:[==== '
urxvt*keysym.Shift-0x20 'string:@S '
urxvt*keysym.C-M-Return "[====
"
urxvt*keysym.C-Return 'string:@c
'
urxvt*keysym.Shift-Return 'string:@S
'
! for xterm extras, see https://github.com/yyr/xterm-extras.el/blob/master/xterm-extras.el
! ~Ctrl ~Meta Shift <Key> Tab: 'string:2a'
! ~Ctrl Meta ~Shift <Key> Tab: 'string:3a'
! ~Ctrl Meta Shift <Key> Tab: 'string:4a'
! Ctrl ~Meta ~Shift <Key> Tab: 'string:5a'
! Ctrl ~Meta Shift <Key> Tab: 'string:6a'
! Ctrl Meta ~Shift <Key> Tab: 'string:7a'
! Ctrl Meta Shift <Key> Tab: 'string:8a'
! ~Ctrl ~Meta Shift <Key> Return: 'string:2b'
! ~Ctrl Meta ~Shift <Key> Return: 'string:3b'
! ~Ctrl Meta Shift <Key> Return: 'string:4b'
! Ctrl ~Meta ~Shift <Key> Return: 'string:5b'
! Ctrl ~Meta Shift <Key> Return: 'string:6b'
! Ctrl Meta ~Shift <Key> Return: 'string:7b'
! Ctrl Meta Shift <Key> Return: 'string:8b'
! ~Ctrl ~Meta Shift <Key> BackSpace: 'string:2c'
! ~Ctrl Meta ~Shift <Key> BackSpace: 'string:3c'
! ~Ctrl Meta Shift <Key> BackSpace: 'string:4c'
! Ctrl ~Meta ~Shift <Key> BackSpace: 'string:5c'
! Ctrl ~Meta Shift <Key> BackSpace: 'string:6c'
! Ctrl Meta ~Shift <Key> BackSpace: 'string:7c'
! Ctrl Meta Shift <Key> BackSpace: 'string:8c'
! ~Ctrl ~Meta ~Shift <Key> Pause: 'string:d")
! ~Ctrl ~Meta Shift <Key> Pause: 'string:2d'
! ~Ctrl Meta ~Shift <Key> Pause: 'string:3d'
! ~Ctrl Meta Shift <Key> Pause: 'string:4d'
! Ctrl ~Meta ~Shift <Key> Pause: 'string:5d'
! Ctrl ~Meta Shift <Key> Pause: 'string:6d'
! Ctrl Meta ~Shift <Key> Pause: 'string:7d'
! Ctrl Meta Shift <Key> Pause: 'string:8d'
! Ctrl ~Meta ~Shift <Key> Break: 'string:5d'
! Ctrl ~Meta Shift <Key> Break: 'string:6d'
! Ctrl Meta ~Shift <Key> Break: 'string:7d'
! Ctrl Meta Shift <Key> Break: 'string:8d'
! ~Ctrl ~Meta ~Shift <Key> Sys_Req: 'string:e")
! ~Ctrl ~Meta Shift <Key> Sys_Req: 'string:2e'
! Ctrl ~Meta ~Shift <Key> Sys_Req: 'string:5e'
! Ctrl ~Meta Shift <Key> Sys_Req: 'string:6e'
! ~Ctrl ~Meta ~Shift <Key> KP_Enter: 'string:f")
! ~Ctrl ~Meta Shift <Key> KP_Enter: 'string:2f'
! ~Ctrl Meta ~Shift <Key> KP_Enter: 'string:3f'
! ~Ctrl Meta Shift <Key> KP_Enter: 'string:4f'
! Ctrl ~Meta ~Shift <Key> KP_Enter: 'string:5f'
! Ctrl ~Meta Shift <Key> KP_Enter: 'string:6f'
! Ctrl Meta ~Shift <Key> KP_Enter: 'string:7f'
! Ctrl Meta Shift <Key> KP_Enter: 'string:8f'
! ~Ctrl ~Meta ~Shift <Key> KP_Add: 'string:g")
! ~Ctrl ~Meta Shift <Key> KP_Add: 'string:2g'
! ~Ctrl Meta ~Shift <Key> KP_Add: 'string:3g'
! ~Ctrl Meta Shift <Key> KP_Add: 'string:4g'
! Ctrl ~Meta ~Shift <Key> KP_Add: 'string:5g'
! Ctrl ~Meta Shift <Key> KP_Add: 'string:6g'
! Ctrl Meta ~Shift <Key> KP_Add: 'string:7g'
! Ctrl Meta Shift <Key> KP_Add: 'string:8g'
! ~Ctrl ~Meta ~Shift <Key> KP_Subtract: 'string:h")
! ~Ctrl ~Meta Shift <Key> KP_Subtract: 'string:2h'
! ~Ctrl Meta ~Shift <Key> KP_Subtract: 'string:3h'
! ~Ctrl Meta Shift <Key> KP_Subtract: 'string:4h'
! Ctrl ~Meta ~Shift <Key> KP_Subtract: 'string:5h'
! Ctrl ~Meta Shift <Key> KP_Subtract: 'string:6h'
! Ctrl Meta ~Shift <Key> KP_Subtract: 'string:7h'
! Ctrl Meta Shift <Key> KP_Subtract: 'string:8h'
! ~Ctrl ~Meta ~Shift <Key> KP_Decimal: 'string:i")
! ~Ctrl ~Meta Shift <Key> KP_Decimal: 'string:2i'
! ~Ctrl Meta ~Shift <Key> KP_Decimal: 'string:3i'
! ~Ctrl Meta Shift <Key> KP_Decimal: 'string:4i'
! Ctrl ~Meta ~Shift <Key> KP_Decimal: 'string:5i'
! Ctrl ~Meta Shift <Key> KP_Decimal: 'string:6i'
! Ctrl Meta ~Shift <Key> KP_Decimal: 'string:7i'
! Ctrl Meta Shift <Key> KP_Decimal: 'string:8i'
! ~Ctrl ~Meta ~Shift <Key> KP_Divide: 'string:j")
! ~Ctrl ~Meta Shift <Key> KP_Divide: 'string:2j'
! ~Ctrl Meta ~Shift <Key> KP_Divide: 'string:3j'
! ~Ctrl Meta Shift <Key> KP_Divide: 'string:4j'
! Ctrl ~Meta ~Shift <Key> KP_Divide: 'string:5j'
! Ctrl ~Meta Shift <Key> KP_Divide: 'string:6j'
! Ctrl Meta ~Shift <Key> KP_Divide: 'string:7j'
! Ctrl Meta Shift <Key> KP_Divide: 'string:8j'
! ~Ctrl ~Meta ~Shift <Key> KP_Multiply: 'string:k")
! ~Ctrl ~Meta Shift <Key> KP_Multiply: 'string:2k'
! ~Ctrl Meta ~Shift <Key> KP_Multiply: 'string:3k'
! ~Ctrl Meta Shift <Key> KP_Multiply: 'string:4k'
! Ctrl ~Meta ~Shift <Key> KP_Multiply: 'string:5k'
! Ctrl ~Meta Shift <Key> KP_Multiply: 'string:6k'
! Ctrl Meta ~Shift <Key> KP_Multiply: 'string:7k'
! Ctrl Meta Shift <Key> KP_Multiply: 'string:8k'
! ~Ctrl ~Meta ~Shift <Key> KP_0: 'string:l")
! ~Ctrl ~Meta Shift <Key> KP_0: 'string:2l'
! ~Ctrl Meta ~Shift <Key> KP_0: 'string:3l'
! ~Ctrl Meta Shift <Key> KP_0: 'string:4l'
! Ctrl ~Meta ~Shift <Key> KP_0: 'string:5l'
! Ctrl ~Meta Shift <Key> KP_0: 'string:6l'
! Ctrl Meta ~Shift <Key> KP_0: 'string:7l'
! Ctrl Meta Shift <Key> KP_0: 'string:8l'
! ~Ctrl ~Meta ~Shift <Key> KP_1: 'string:m")
! ~Ctrl ~Meta Shift <Key> KP_1: 'string:2m'
! ~Ctrl Meta ~Shift <Key> KP_1: 'string:3m'
! ~Ctrl Meta Shift <Key> KP_1: 'string:4m'
! Ctrl ~Meta ~Shift <Key> KP_1: 'string:5m'
! Ctrl ~Meta Shift <Key> KP_1: 'string:6m'
! Ctrl Meta ~Shift <Key> KP_1: 'string:7m'
! Ctrl Meta Shift <Key> KP_1: 'string:8m'
! ~Ctrl ~Meta ~Shift <Key> KP_2: 'string:n")
! ~Ctrl ~Meta Shift <Key> KP_2: 'string:2n'
! ~Ctrl Meta ~Shift <Key> KP_2: 'string:3n'
! ~Ctrl Meta Shift <Key> KP_2: 'string:4n'
! Ctrl ~Meta ~Shift <Key> KP_2: 'string:5n'
! Ctrl ~Meta Shift <Key> KP_2: 'string:6n'
! Ctrl Meta ~Shift <Key> KP_2: 'string:7n'
! Ctrl Meta Shift <Key> KP_2: 'string:8n'
! ~Ctrl ~Meta ~Shift <Key> KP_3: 'string:o")
! ~Ctrl ~Meta Shift <Key> KP_3: 'string:2o'
! ~Ctrl Meta ~Shift <Key> KP_3: 'string:3o'
! ~Ctrl Meta Shift <Key> KP_3: 'string:4o'
! Ctrl ~Meta ~Shift <Key> KP_3: 'string:5o'
! Ctrl ~Meta Shift <Key> KP_3: 'string:6o'
! Ctrl Meta ~Shift <Key> KP_3: 'string:7o'
! Ctrl Meta Shift <Key> KP_3: 'string:8o'
! ~Ctrl ~Meta ~Shift <Key> KP_4: 'string:p")
! ~Ctrl ~Meta Shift <Key> KP_4: 'string:2p'
! ~Ctrl Meta ~Shift <Key> KP_4: 'string:3p'
! ~Ctrl Meta Shift <Key> KP_4: 'string:4p'
! Ctrl ~Meta ~Shift <Key> KP_4: 'string:5p'
! Ctrl ~Meta Shift <Key> KP_4: 'string:6p'
! Ctrl Meta ~Shift <Key> KP_4: 'string:7p'
! Ctrl Meta Shift <Key> KP_4: 'string:8p'
! ~Ctrl ~Meta ~Shift <Key> KP_5: 'string:q")
! ~Ctrl ~Meta Shift <Key> KP_5: 'string:2q'
! ~Ctrl Meta ~Shift <Key> KP_5: 'string:3q'
! ~Ctrl Meta Shift <Key> KP_5: 'string:4q'
! Ctrl ~Meta ~Shift <Key> KP_5: 'string:5q'
! Ctrl ~Meta Shift <Key> KP_5: 'string:6q'
! Ctrl Meta ~Shift <Key> KP_5: 'string:7q'
! Ctrl Meta Shift <Key> KP_5: 'string:8q'
! ~Ctrl ~Meta ~Shift <Key> KP_6: 'string:r")
! ~Ctrl ~Meta Shift <Key> KP_6: 'string:2r'
! ~Ctrl Meta ~Shift <Key> KP_6: 'string:3r'
! ~Ctrl Meta Shift <Key> KP_6: 'string:4r'
! Ctrl ~Meta ~Shift <Key> KP_6: 'string:5r'
! Ctrl ~Meta Shift <Key> KP_6: 'string:6r'
! Ctrl Meta ~Shift <Key> KP_6: 'string:7r'
! Ctrl Meta Shift <Key> KP_6: 'string:8r'
! ~Ctrl ~Meta ~Shift <Key> KP_7: 'string:s")
! ~Ctrl ~Meta Shift <Key> KP_7: 'string:2s'
! ~Ctrl Meta ~Shift <Key> KP_7: 'string:3s'
! ~Ctrl Meta Shift <Key> KP_7: 'string:4s'
! Ctrl ~Meta ~Shift <Key> KP_7: 'string:5s'
! Ctrl ~Meta Shift <Key> KP_7: 'string:6s'
! Ctrl Meta ~Shift <Key> KP_7: 'string:7s'
! Ctrl Meta Shift <Key> KP_7: 'string:8s'
! ~Ctrl ~Meta ~Shift <Key> KP_8: 'string:t")
! ~Ctrl ~Meta Shift <Key> KP_8: 'string:2t'
! ~Ctrl Meta ~Shift <Key> KP_8: 'string:3t'
! ~Ctrl Meta Shift <Key> KP_8: 'string:4t'
! Ctrl ~Meta ~Shift <Key> KP_8: 'string:5t'
! Ctrl ~Meta Shift <Key> KP_8: 'string:6t'
! Ctrl Meta ~Shift <Key> KP_8: 'string:7t'
! Ctrl Meta Shift <Key> KP_8: 'string:8t'
! ~Ctrl ~Meta ~Shift <Key> KP_9: 'string:u")
! ~Ctrl ~Meta Shift <Key> KP_9: 'string:2u'
! ~Ctrl Meta ~Shift <Key> KP_9: 'string:3u'
! ~Ctrl Meta Shift <Key> KP_9: 'string:4u'
! Ctrl ~Meta ~Shift <Key> KP_9: 'string:5u'
! Ctrl ~Meta Shift <Key> KP_9: 'string:6u'
! Ctrl Meta ~Shift <Key> KP_9: 'string:7u'
! Ctrl Meta Shift <Key> KP_9: 'string:8u'
! ~Ctrl ~Meta ~Shift <Key> Menu: 'string:v")
! ~Ctrl ~Meta Shift <Key> Menu: 'string:2v'
! ~Ctrl Meta ~Shift <Key> Menu: 'string:3v'
! ~Ctrl Meta Shift <Key> Menu: 'string:4v'
! Ctrl ~Meta ~Shift <Key> Menu: 'string:5v'
! Ctrl ~Meta Shift <Key> Menu: 'string:6v'
! Ctrl Meta ~Shift <Key> Menu: 'string:7v'
! Ctrl Meta Shift <Key> Menu: 'string:8v'
! Additional keysyms
! urxvt*keysym.Esc ''
! urxvt*kysym.C-Esc ''
! urxvt*keysym.Print-Return ''
! urxvt*keysym.Print-left '@s'
! urxvt*keysym.Print-right ''
! urxvt*keysym.Print-up ''
! urxvt*keysym.Print-down ''
! urxvt*keysym.Print-C-left ''
! urxvt*keysym.Print-C-right ''
! urxvt*keysym.Print-C-up ''
! urxvt*keysym.Print-C-down ''
! urxvt*keysym.Print-M-left ''
! urxvt*keysym.Print-M-right ''
! urxvt*keysym.Print-M-up ''
! urxvt*keysym.Print-M-down ''
! urxvt*keysym.Print-C-M-left ''
! urxvt*keysym.Print-C-M-right ''
! urxvt*keysym.Print-C-M-up ''
! urxvt*keysym.Print-C-M-down ''
! urxvt*keysym.Print-S-left ''
! urxvt*keysym.Print-S-right ''
! urxvt*keysym.Print-S-up ''
! urxvt*keysym.Print-S-down ''
! urxvt*keysym.Print-C-S-left ''
! urxvt*keysym.Print-C-S-right ''
! urxvt*keysym.Print-C-S-up ''
! urxvt*keysym.Print-C-S-down ''
! urxvt*keysym.Print-M-S-left ''
! urxvt*keysym.Print-M-S-right ''
! urxvt*keysym.Print-M-S-up ''
! urxvt*keysym.Print-M-S-down ''
! urxvt*keysym.Print-C-M-S-left ''
! urxvt*keysym.Print-C-M-S-right ''
! urxvt*keysym.Print-C-M-S-up ''
! urxvt*keysym.Print-C-M-S-down ''
! URxvt*background.border: boolean
! URxvt*background.expr: string
! URxvt*background.interval: seconds
! URxvt*bell-command: string
! URxvt*matcher.button: string
! URxvt*matcher.launcher: string
! URxvt*matcher.launcher.*: string
! URxvt*matcher.pattern.*: string
! URxvt*matcher.rend.*: string
! URxvt*remote-clipboard.fetch: string
! URxvt*remote-clipboard.store: string
! URxvt*searchable-scrollback: string
! URxvt*selection-autotransform.*: string
! URxvt*selection-pastebin.cmd: string
! URxvt*selection-pastebin.url: string
! URxvt*selection.pattern-0: string
! URxvt*tab-bg: colour
! URxvt*tab-fg: colour
! URxvt*tabbar-bg: colour
! URxvt*tabbar-fg: colour
! URxvt*url-launcher: string
! Solarized light
#define S_base03 #002b36
#define S_base02 #073642
#define S_base01 #586e75
#define S_base00 #657b83
#define S_base0 #839496
#define S_base1 #93a1a1
#define S_base2 #eee8d5
#define S_base3 #fdf6e3
! URxvt.background: [80]#fdf6e3
URxvt.background: [90]#eeeae0
*background: S_base3
*foreground: S_base00
*fadeColor: S_base3
*cursorColor: S_base01
*pointerColorBackground:S_base1
*pointerColorForeground:S_base01
#define S_yellow #b58900
#define S_orange #cb4b16
#define S_red #dc322f
#define S_magenta #d33682
#define S_violet #6c71c4
#define S_blue #268bd2
#define S_cyan #2aa198
#define S_green #859900
!! black dark/light
*color0: S_base02
*color8: S_base03
!! red dark/light
*color1: S_red
*color9: S_orange
!! green dark/light
*color2: S_green
*color10: S_base01
!! yellow dark/light
*color3: S_yellow
*color11: S_base00
!! blue dark/light
*color4: S_blue
*color12: S_base0
!! magenta dark/light
*color5: S_magenta
*color13: S_violet
!! cyan dark/light
*color6: S_cyan
*color14: S_base1
!! white dark/light
*color7: S_base2
*color15: S_base3
rofi.modi: window,run,ssh
rofi.opacity: 90
rofi.width: 50
rofi.lines: 15
rofi.columns: 1
rofi.font: InconsolataLGC 8.6
rofi.fg: #657b83
rofi.bg: argb:75fdf6e3
rofi.color-enabled: true
rofi.color-normal: argb:FCfdf6e3, #657b83, argb:F5eee8d5, argb:F0839496, #eee8d5
rofi.color-urgent: argb:FCfdf6e3, #657b83, argb:F5eee8d5, argb:F0839496, #eee8d5
rofi.color-active: argb:FCfdf6e3, #657b83, argb:F5eee8d5, argb:F0839496, #eee8d5
rofi.color-window: #eee8d5,#93a1a1
rofi.fg-active: #268BD2
rofi.fg-urgent: #268BD2
rofi.hlfg-active: #FDF6E3
rofi.hlfg-urgent: #FDF6E3
rofi.bg-active: argb:FCFDF6E3
rofi.bg-urgent: argb:FCFDF6E3
rofi.hlbg-active: argb:F0268BD2
rofi.hlbg-urgent: argb:F0268BD2
rofi.bgalt: argb:F5fdf6e3
rofi.hlfg: #EEE8D5
rofi.hlbg: argb:F0586E75
rofi.bc: argb:F5002B36
rofi.bw: 3
rofi.location: 0
rofi.padding: 2
rofi.yoffset: 0
rofi.xoffset: 0
rofi.fixed-num-lines: false
rofi.terminal: urxvt
rofi.ssh-client: ssh
rofi.ssh-command: {terminal} -e {ssh-client} {host}
rofi.run-command: {cmd}
rofi.run-list-command:
rofi.run-shell-command: {terminal} -e {cmd}
rofi.disable-history: false
rofi.levenshtein-sort: true
rofi.case-sensitive: false
rofi.sidebar-mode: false
rofi.lazy-filter-limit: 5000
rofi.eh: 1
rofi.auto-select: false
rofi.parse-hosts: false
rofi.combi-modi: window,run
rofi.fuzzy: false
rofi.m: -1
rofi.line-margin: 2
rofi.filter:
rofi.separator-style: solid
rofi.hide-scrollbar: true
rofi.pid: /run/user/1000/rofi.pid
rofi.kb-primary-paste: Control+Shift+v,Shift+Insert
rofi.kb-secondary-paste: Control+v,Insert
rofi.kb-clear-line: Control+u
rofi.kb-move-front: Control+a
rofi.kb-move-end: Control+e
rofi.kb-move-word-back: Alt+b
rofi.kb-move-word-forward: Alt+f
rofi.kb-move-char-back: Left,Control+b
rofi.kb-move-char-forward: Right,Control+f
rofi.kb-remove-word-back: Control+Alt+h
rofi.kb-remove-word-forward: Control+Alt+d
rofi.kb-remove-char-forward: Delete,Control+d
rofi.kb-remove-char-back: BackSpace,Control+h
rofi.kb-accept-entry: Control+j,Control+m,Return,KP_Enter
rofi.kb-accept-custom: Control+Return
rofi.kb-accept-entry-continue: Shift+Return
rofi.kb-mode-next: Shift+Right,Control+Tab
rofi.kb-mode-previous: Shift+Left,Control+Shift+Tab
rofi.kb-toggle-case-sensitivity: grave,dead_grave
rofi.kb-delete-entry: Shift+Delete
rofi.kb-row-left: Control+Page_Up
rofi.kb-row-right: Control+Page_Down
rofi.kb-row-up: Up,Control+p,Shift+Tab
rofi.kb-row-down: Down,Control+n
rofi.kb-row-tab: Tab
rofi.kb-page-prev: Page_Up
rofi.kb-page-next: Page_Down
rofi.kb-row-first: Home,KP_Home
rofi.kb-row-last: End,KP_End
rofi.kb-row-select: Control+space
rofi.kb-cancel: Escape
rofi.kb-custom-1: Alt+1
rofi.kb-custom-2: Alt+2
rofi.kb-custom-3: Alt+3
rofi.kb-custom-4: Alt+4
rofi.kb-custom-5: Alt+5
rofi.kb-custom-6: Alt+6
rofi.kb-custom-7: Alt+7
rofi.kb-custom-8: Alt+8
rofi.kb-custom-9: Alt+9
rofi.kb-custom-10: Alt+0
rofi.kb-custom-11: Alt+Shift+1
rofi.kb-custom-12: Alt+Shift+2
rofi.kb-custom-13: Alt+Shift+3
rofi.kb-custom-14: Alt+Shift+4
rofi.kb-custom-15: Alt+Shift+5
rofi.kb-custom-16: Alt+Shift+6
rofi.kb-custom-17: Alt+Shift+7
rofi.kb-custom-18: Alt+Shift+8
rofi.kb-custom-19: Alt+Shift+9
rofi.key-window:
rofi.key-run:
rofi.key-ssh:
# Created by newuser for 5.0.8
# source ~/.zsh/antigen-hs/init.zsh
# Oh My Zsh
DISABLE_AUTO_UPDATE="true"
source ~/.zshrc_oh-my-zsh
# the prompt
# case "$TERM" in
# # [skipping some esoteric terminal emulators...]
# screen|screen.rxvt)
# # Set a coloured prompt
# PS1=$'%{\e[00;32m%}%*%{\e[00;34m%}%2~ %# %{\e[00m%}'
# ;;
# rxvt|rxvt-unicode|xterm|xterm-color|rxvt-unicode-256color)
# # Set the title, and a coloured prompt containing some useful info
# PS1=$'%{\e]0;%-3~\a\e\[00;32m%}%*%{\e[00;30m%}!%! %{\e[00;34m%}%2~ %# %{\e[0m%}'
# ;;
# esac
# screen ant terminal window title
function preexec() {
local a=${${1## *}[(w)1]} # get the command
local b=${a##*\/} # get the command basename
a="${b}${1#$a}" # add back the parameters
a=${a//\%/\%\%} # escape print specials
a=$(print -Pn "$a" | tr -d "\t\n\v\f\r") # remove fancy whitespace
a=${(V)a//\%/\%\%} # escape non-visibles and print specials
case "$TERM" in
screen|screen.*)
# See screen(1) "TITLES (naming windows)".
# "\ek" and "\e\" are the delimiters for screen(1) window titles
print -Pn "\ek%-3~ $a\e\\" # set screen title. Fix vim: ".
print -Pn "\e]2;%-3~ $a\a" # set xterm title, via screen "Operating System Command"
;;
rxvt|rxvt-unicode|xterm|xterm-color|xterm-256color|rxvt-unicode-256color)
print -Pn "\e]2;%m:%-3~ $a\a"
;;
esac
}
# reset the screen
function precmd() {
case "$TERM" in
screen|screen.rxvt)
print -Pn "\ek%-3~\e\\" # set screen title
print -Pn "\e]2;%-3~\a" # must (re)set xterm title
;;
esac
}
run-nix-emacs () {
setsid nix-shell . --command "emacs" &> /dev/null
}
alias ne='run-nix-emacs'
#### Options
autoload -Uz compinit promptinit colors zcalc tetris zed vcs_info zutil complist
colors
compinit
promptinit
setopt NO_EQUALS
setopt INC_APPEND_HISTORY SHARE_HISTORY
setopt APPEND_HISTORY
unsetopt BG_NICE # do NOT nice bg commands
setopt CORRECT # command CORRECTION
setopt EXTENDED_HISTORY # puts timestamps in the history
setopt ALL_EXPORT
setopt notify globdots correct pushdtohome cdablevars autolist
setopt autocd recexact longlistjobs
setopt autoresume histignoredups pushdsilent
setopt autopushd pushdminus extendedglob rcquotes mailwarning
unsetopt bgnice autoparamslash
unsetopt correctall # turn off correction for proper commands
setopt prompt_subst
unsetopt MENUCOMPLETE
zmodload -a zsh/stat stat
zmodload -a zsh/zpty zpty
zmodload -a zsh/zprof zprof
#### Key bindings
bindkey '^K' kill-whole-line
bindkey "\e[7~" beginning-of-line
bindkey "\e[8~" end-of-line
bindkey "\e[H" beginning-of-line # Home (xorg)
bindkey "\e[1~" beginning-of-line # Home (console)
bindkey "\e[4~" end-of-line # End (console)
bindkey "\e[F" end-of-line # End (xorg)
bindkey "`echotc kP`" history-beginning-search-backward # Page Up
bindkey "`echotc kN`" history-beginning-search-forward # Page Down
bindkey "\e[2~" overwrite-mode # Ins
bindkey "\e[3~" delete-char # Delete
bindkey '\eOH' beginning-of-line
bindkey '\eOF' end-of-line
bindkey ';5D' backward-word # Ctrl+left
bindkey ';5C' forward-word # Ctrl+right
bindkey "`echotc ku`" up-line-or-history # up
bindkey "`echotc kd`" down-line-or-history # down
bindkey "`echotc kr`" forward-char # Right
bindkey "`echotc kl`" backward-char # Left
bindkey '[D' backward-word # Alt+left
bindkey '[C' forward-word # Alt+right
bindkey '[3~' delete-word # Alt+Del почему-то это блокирует простой Del
# prevent interrupt with Emacs's Super/Hyper sequences
do-nothing() {}
zle -N do-nothing
bindkey '^X@s' do-nothing
bindkey '^X@h' do-nothing
#### Styles
zstyle ':vcs_info:*' stagedstr "%{$fg_bold[green]%}~"
zstyle ':vcs_info:*' unstagedstr "%{$fg_bold[yellow]%}+"
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:*' branchformat '%b-%r'
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
zstyle ':vcs_info:hg*' actionformats "(%s|%a)[%i%u %b %m]"
zstyle ':vcs_info:(hg*|git*):*' get-revision true
zstyle ':vcs_info:(hg*|git*):*' check-for-changes true
zstyle ':vcs_info:hg*:*' get-bookmarks true
zstyle ':vcs_info:hg*:*' get-mq true
zstyle ':vcs_info:hg*:*' get-unapplied true
zstyle ':vcs_info:hg*:*' patch-format "mq(%g):%n/%c %p"
zstyle ':vcs_info:hg*:*' nopatch-format "mq(%g):%n/%c %p"
zstyle ':vcs_info:(hg*|git*):*' stagedstr "%{$fg_bold[green]%}~"
zstyle ':vcs_info:(hg*|git*):*' unstagedstr "%{$fg_bold[yellow]%}+"
zstyle ':vcs_info:hg*:*' hgrevformat "%r" # only show local revision
zstyle ':vcs_info:hg*:*' branchformat "%b" # only show branch
zstyle ':vcs_info:*' enable git svn cvs hg bzr darcs
zstyle ':completion::complete:*' use-cache on
zstyle ':completion::complete:*' cache-path ~/.zsh/cache/$HOST
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'
zstyle ':completion:*' menu select=1 _complete _ignored _approximate
zstyle -e ':completion:*:approximate:*' max-errors \
'reply=( $(( ($#PREFIX+$#SUFFIX)/2 )) numeric )'
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle -e ':completion:*:approximate:*' max-errors \
'reply=( $(( ($#PREFIX+$#SUFFIX)/2 )) numeric )'
zstyle ':completion:*' verbose yes
zstyle ':completion:*:descriptions' format '%B%d%b'
zstyle ':completion:*:messages' format '%d'
zstyle ':completion:*:warnings' format 'No matches for: %d'
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:*:kill:*:processes' command 'ps --forest -A -o pid,user,cmd'
zstyle ':completion:*:processes-names' command 'ps axho command'
zstyle ':completion:*' hosts $(awk '/^[^#]/ {print $2 $3" "$4" "$5}' /etc/hosts | grep -v ip6- && grep "^#%" /etc/hosts | awk -F% '{print $2}')
zstyle ':completion:*:scp:*' tag-order \
files users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *'
zstyle ':completion:*:scp:*' group-order \
files all-files users hosts-domain hosts-host hosts-ipaddr
zstyle ':completion:*:ssh:*' tag-order \
users 'hosts:-host hosts:-domain:domain hosts:-ipaddr"IP\ Address *'
zstyle ':completion:*:ssh:*' group-order \
hosts-domain hosts-host users hosts-ipaddr
zstyle '*' single-ignored show
#### VCS Prompt
vcs_info_wrapper () {
zstyle ':vcs_info:*' formats "%{$fg_bold[white]%}[%{$reset_color%}%{$fg[green]%}%b%c%u%{$fg_bold[red]%}!%{$fg_bold[white]%}]"
vcs_info
if [ -n "$vcs_info_msg_0_" ] ; then
echo "%{$fg_bold[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del"
fi
}
# RPROMPT='$(vcs_info_wrapper)' # FIXME: broken term window title in VCS dirs
# Fix right prompt for oh_my_zsh
unset RPROMPT
# set custom prompt for nix-shell sessions
# TODO: split into separate plugin
nix-shell-dir () {
if [[ "$NIX_SHELL_DIR" ]] ; then
local NIX_SHELL_DIR_NAME=$(sed "s|$HOME|~|g" <<< $NIX_SHELL_DIR)
NIX_SHELL_DIR_NAME=$(sed 's|~/Projects|PRJ|g' <<< $NIX_SHELL_DIR_NAME)
echo %{$fg[green]"["$fg_bold[green]"nix:"$reset_color" "$fg[gray]"$NIX_SHELL_DIR_NAME"$fg[green]"]"$reset_color%}
fi
}
# a little hack here... Edit newline in the middle of the PROMPT
PROMPT=$(sed ':a;N;$!ba;s/\n/ $(nix-shell-dir)\n/g' <<< $PROMPT)
#### Custom Terminfo
LOCAL_TERMINFO=$HOME/.terminfo
if [ -d $LOCAL_TERMINFO ]; then
export TERMINFO=$LOCAL_TERMINFO
fi
# # Add RVM to PATH for scripting
# export PATH="$PATH:$HOME/.rvm/bin"
# # Load RVM into a shell session *as a function*
# [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
# # Gem
# PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
# GnuPG
GNUPGHOME=$HOME/.gnupg
GPG_TTY=$(tty)
export GPG_TTY
unset SSH_AGENT_PID
export SSH_AUTH_SOCK="${HOME}/.gnupg/S.gpg-agent.ssh"
# Path to your oh-my-zsh installation.
export ZSH="${HOME}/.oh-my-zsh"
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
# ZSH_THEME="blinks"
ZSH_THEME="candy"
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(nix git gitfast git-extras git-flow git_remote_branch sudo gnu-utils
systemd tmux docker vagrant zaw rails ruby bundler cabal stack
common-aliases dircycle fbterm zsh-functional zsh-bd
zsh-syntax-highlighting zsh-history-substring-search fancy-ctrl-z zsh-completions) # deer
# User configuration
# export PATH="/home/netsu/bin:/var/setuid-wrappers:/home/netsu/.nix-profile/bin:/home/netsu/.nix-profile/sbin:/home/netsu/.nix-profile/lib/kde4/libexec:/nix/var/nix/profiles/default/bin:/nix/var/nix/profiles/default/sbin:/nix/var/nix/profiles/default/lib/kde4/libexec:/run/current-system/sw/bin:/run/current-system/sw/sbin:/run/current-system/sw/lib/kde4/libexec"
# export MANPATH="/usr/local/man:$MANPATH"
source $ZSH/oh-my-zsh.sh
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
rec {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./musnix/default.nix
];
musnix = {
# enable = true;
kernel = {
# optimize = true;
# realtime = true;
packages = pkgs.linuxPackages_4_6_rt;
# packages = let linuxPackages_4_6_rt_fix = pkgs.linuxPackagesFor (pkgs.linux_4_6_rt.override {
# kernelPatches = pkgs.linuxPackages_4_6_rt.kernelPatches ++ [
# # Fix Bumblebee for T440p
# { name = "pcipm-nouveau-pm2";
# patch = pkgs.fetchurl {
# url = "https://lekensteyn.nl/files/linux-v4.6-pcipm-nouveau-pm2.patch";
# sha256 = "8caa840429de855188b3e262b66708a2b70af05652286015b8e1f6f8ea90f12d";
# };
# }
# ];
# extraConfig = ''
# SCHED_BFS y
# '';
# }) pkgs.linuxPackages_4_6_rt; in linuxPackages_4_6_rt_fix;
};
};
boot = {
kernelModules = [
"kvm-intel"
];
extraModprobeConfig = ''
# thinkpad acpi
options thinkpad_acpi fan_control=1
# intel graphics
options i915 modeset=1 i915_enable_rc6=7 i915_enable_fbc=1 lvds_downclock=1 # powersave=0
# intel audio
# options snd-hda-intel index=0 id=PCH
# options snd-hda-intel index=1 id=HDMI
# options snd-hda-intel index=0 model=auto vid=8086 pid=8c20
# options snd-hda-intel index=1 model=auto vid=8086 pid=0c0c
# options snd slots=snd-hda-intel
# fix intel wifi-N
# options iwlwifi 11n_disable=1
# options iwlwifi swcrypto=1
options iwlwifi 11n_disable=8
options iwlwifi.power_save=Y
options iwldvm.force_cam=N
'';
extraModulePackages = [ config.boot.kernelPackages.tp_smapi ];
# kernelPackages = pkgs.linuxPackages_latest; # TODO: zen-kernel BFQ/BFS/reiserfs/lowlatency/hibernation/custom font
# kernelPackages = let
# rtKernel = pkgs.linuxPackagesFor (pkgs.linux.override {
# extraConfig = ''
# PREEMPT_RT_FULL? y
# PREEMPT y
# IOSCHED_DEADLINE y
# DEFAULT_DEADLINE y
# DEFAULT_IOSCHED "deadline"
# HPET_TIMER y
# CPU_FREQ n
# TREE_RCU_TRACE n
# '';
# }) pkgs.linuxPackages; in rtKernel;
# kernelPackages = with pkgs; linuxPackagesFor linux_4_6_fix linuxPackages_4_6;
# kernelPackages = let linuxPackages_4_6_rt_fix = pkgs.linuxPackagesFor (pkgs.linux_4_6_rt.override {
# kernelPatches = pkgs.linuxPackages_4_6_rt.kernelPatches ++ [
# # Fix Bumblebee for T440p
# { name = "pcipm-nouveau-pm2";
# patch = pkgs.fetchurl {
# url = "https://lekensteyn.nl/files/linux-v4.6-pcipm-nouveau-pm2.patch";
# sha256 = "8caa840429de855188b3e262b66708a2b70af05652286015b8e1f6f8ea90f12d";
# };
# }
# ];
# extraConfig = ''
# SCHED_BFS y
# '';
# }) pkgs.linuxPackages_4_6_rt; in linuxPackages_4_6_rt_fix;
kernelParams = [
# "acpi_osi=\"!Windows 2012\""
# "acpi_backlight=vendor"
"acpi_osi="
# "acpi_osi=\"!Windows 2013\""
"video.use_native_backlight=1"
"pcie_aspm=force"
"drm_kms_helper.edid_firmware=edid/1920x1080.bin"
"video=1920x1080"
"clocksource=acpi_pm"
"pci=use_crs"
"consoleblank=0"
# realtime
# "threadirq"
# debug only:
# "boot.shell_on_fail"
# "boot.trace"
# "systemd.log_level=debug"
# "systemd.log_target=console"
# colors
"vt.default_red=0x07,0xdc,0x85,0xb5,0x26,0xd3,0x2a,0xee,0x00,0xcb,0x58,0x65,0x83,0x6c,0x93,0xfd vt.default_grn=0x36,0x32,0x99,0x89,0x8b,0x36,0xa1,0xe8,0x2b,0x4b,0x6e,0x7b,0x94,0x71,0xa1,0xf6 vt.default_blu=0x42,0x2f,0x00,0x00,0xd2,0x82,0x98,0xd5,0x36,0x16,0x75,0x83,0x96,0xc4,0xa1,0xe3"
];
loader = {
# systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
grub.enable = true;
grub.device = "nodev";
grub.fsIdentifier = "label";
grub.gfxmodeEfi = "1920x1080";
grub.efiSupport = true;
# grub.splashImage = "./background.png";
timeout = 3;
};
initrd.kernelModules = [
"intel_agp"
"i915"
"bbswitch"
# jack
# "snd-seq"
# "snd-rawmidi"
"snd-aloop"
"thinkpad_ec"
"tp_smapi"
"hdaps"
# "fbcon" # ???: Built-in now
# external sound card
"snd-usb-audio"
# "snd_hda_intel"
"ehci_hcd" "ahci" "firewire_ohci"
];
blacklistedKernelModules = [
# No beeping
"snd_pcsp"
"pcspkr"
# fix bumblebee
"nvidia_uvm"
# because of intel
"nouveau"
"nvidia"
"nvidiafb"
# buggy and old
"thinkpad_acpi"
];
# kernel.sysctl = { vm.swappiness = 1; };
# kernel.sysctl = { "vm.swappiness" = 10; "fs.inotify.max_user_watches" = 524288; };
# postBootCommands = ''
# echo 2048 > /sys/class/rtc/rtc0/max_user_freq
# echo 2048 > /proc/sys/dev/hpet/max-user-freq
# setpci -v -d *:* latency_timer=b0
# setpci -v -s $00:1b.0 latency_timer=ff
# '';
# /*The SOUND_CARD_PCI_ID can be obtained like so:*/
# /*$ lspci | grep -i audio*/
};
fileSystems."/" = pkgs.lib.mkForce {
device = "/dev/nixos/root";
label = "root";
fsType = "ext3";
options = [ "noatime" "errors=remount-ro"];
};
fileSystems."/home" = pkgs.lib.mkForce {
device = "/dev/nixos/home";
label = "home";
fsType = "ext4";
};
fileSystems."/boot" = pkgs.lib.mkForce {
device = "/dev/disk/by-label/ESP";
fsType = "vfat";
};
fileSystems."/tmp" = pkgs.lib.mkForce {
device = "tmpfs";
fsType = "tmpfs";
options = [ "nosuid" "nodev" "noatime" "nodiratime" "size=10G" ];
};
swapDevices = pkgs.lib.mkForce [
{ device = "/dev/disk/by-label/Swap"; }
];
networking = {
hostName = "hackbook";
hostId = "847849e7";
# interfaceMonitor.enable = false;
wireless.enable = false;
wireless.interfaces = [ "wlp4s0" ];
wireless.userControlled.enable = true;
wireless.userControlled.group = "network";
useDHCP = false;
wicd.enable = true;
extraHosts = ''
127.0.0.1 db
127.0.0.1 admerge-db
'';
};
# security.pam.loginLimits =
# [
# { domain = "@audio"; item = "memlock"; type = "-"; value = "unlimited"; }
# { domain = "@audio"; item = "rtprio"; type = "-"; value = "99"; }
# { domain = "@audio"; item = "nofile"; type = "soft"; value = "99999"; }
# { domain = "@audio"; item = "nofile"; type = "hard"; value = "99999"; }
# ];
nix = {
extraOptions = ''
auto-optimise-store = true
env-keep-derivations = true
gc-keep-outputs = true
gc-keep-derivations = true
# keep-failed = true
# keep-going = true
auto-optimise-store = true
'';
maxJobs = pkgs.lib.mkForce 9;
buildCores = pkgs.lib.mkForce 9;
useSandbox = true;
binaryCaches = [ "https://cache.nixos.org/" # "https://hydra.nixos.org/" "https://hydra.cryp.to/"
];
};
nixpkgs.config = {
allowUnfree = true;
# # CFLAGS="-march=core-avx2 -O2 -pipe"
# # stdenv.userHook = ''
# # NIX_CFLAGS_COMPILE+=" -march=core-avx2 -O2 -pipe"
# # '';
firefox = {
enableGoogleTalkPlugin = true;
enableAdobeFlash = true;
enableGTK3 = true; # recompilation required :(
# ffmpegSupport = false;
# jre = true;
# enableMPlayer = true; # will use MPV instead, see: https://addons.mozilla.org/en-US/firefox/addon/watch-with-mpv/
icedtea = true;
};
chromium = {
enablePepperFlash = true;
enablePepperPDF = true;
# hiDPISupport = true; # recompilation required :(
# jre = true;
icedtea = true;
};
pulseaudio = true;
jack = true;
# qt48Full = { gtkStyle = true; };
# qt53 = { gtkStyle = true; };
mesa = {
# enableTextureFloats = true;
};
# # virtualbox.enableExtensionPack = true;
haskellPackageOverrides = self: super: with pkgs.haskell.lib; {
# libmpd = pkgs.haskell.lib.overrideCabal super.libmpd (drv: {
# # don't help to fix time-1.5
# libraryHaskellDepends = drv.libraryHaskellDepends ++ [ pkgs.haskell.packages.lts-5_15.time ];
# });
libmpd = dontCheck (overrideCabal super.libmpd (drv: {
postPatch = (drv.postPatch or "") + ''
substituteInPlace ./libmpd.cabal --replace "time >=1.5 && <1.6" "time >=1.5"
'';
}));
xmobar = (overrideCabal super.xmobar (drv: {
# Skip -fwith_datezone
configureFlags = [ "-fwith_xft" "-fwith_utf8" "-fwith_inotify"
"-fwith_iwlib" "-fwith_mpd" "-fwith_alsa"
"-fwith_mpris" "-fwith_dbus" "-fwith_xpm" ];
})).override {
timezone-series = null;
timezone-olson = null;
};
# # pandoc = overrideCabal super.pandoc (drv: {
# # version = "1.12.4.2";
# # editedCabalFile = null;
# # revision = null;
# # sha256 = "0ibzladj0xm0xnsphd26lzndxzkawz73pfd7rnlnmllqckrzairg";
# # });
# # xmobar = pkgs.haskell.lib.overrideCabal super.xmobar
# # cabal-install = lib.overrideCabal super.cabal-install (attrs: {
# # buildDepends = [ self.text ]; # for antigen-hs, see: https://github.com/Tarrasch/antigen-hs/issues/24
# # });
# # ghc-mod = lib.overrideCabal super.ghc-mod (oldAttrs: {
# # src = pkgs.fetchgit {
# # url = https://github.com/kazu-yamamoto/ghc-mod;
# # rev = "247e4e0e7616fe1fecc68fdcf80d6249ac4cee4f";
# # sha256 = "2a23271d0e6907351a246f095040ba18c3ab6bf1cba08a14338d701defa55474";
# # };
# # buildDepends = oldAttrs.buildDepends ++ [ self.cabal-helper self.cereal ];
# # });
# # cabal-helper = lib.overrideCabal super.cabal-helper (oldAttrs: {
# # version = "0.3.2.0";
# # sha256 = "06igjmr0n8418wid1pr74cgvlsmwni7ar72g9bddivlbxax1pfli";
# # });
# # HaRe = lib.overrideCabal super.HaRe (attrs: {
# # version = "0.6.1.0";
# # sha256 = "1azxbfvzdn73bv3vg6xylrjiahaxcx86vhx9b60z106a4ynkxdfr";
# # });
# # ghc-mod = super.ghc-mod.overrideDerivation (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "kazu-yamamoto";
# # repo = "ghc-mod";
# # rev = "19b3de356928f7c1a7aa3a59430beae08a883e7b";
# # sha256 = "0airmyw5w912fxlq9r1076q6cca7nvh29smhny1lv694h3bbvgjz";
# # };
# # buildInputs = attrs.buildInputs ++ [ pkgs.haskellPackages.cabal-helper ];
# # });
# # cabal-helper = super.cabal-helper.overrideDerivation (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "DanielG";
# # repo = "cabal-helper";
# # rev = "c2f6a2e5bf40f9e4cb9276bcc9b58ec3627f727a";
# # sha256 = "075a4i8ck75rc03pmzr65ys20s9g0jwyclfvnziminpp3p8p53vi";
# # };
# # version = "0.6.0.0";
# # });
# # cabal-helper = lib.overrideCabal super.cabal-helper (attrs: {
# # version = "0.6.0.0";
# # sha256 = "0b12mz370fhlibln6w9c67npp9ivvgkayxn53zv5pq7w76rd1ajv";
# # });
hobbes = super.hobbes.overrideDerivation (attrs: {
src = pkgs.fetchFromGitHub {
owner = "jhickner";
repo = "hobbes";
rev = "764b04465b9d46e3521d42cd26f006b571aad912";
sha256 = "05cqirxfnibnwr1vwziwxp75jh7m871jq5y2rmbkz79b7bw8lbcz";
};
buildInputs = with pkgs.haskellPackages; [
filepath
filemanip
fsnotify
text
];
});
funnyprint = with pkgs.haskellPackages; mkDerivation {
pname = "funnyprint";
version = "0.0.5";
sha256 = "17prxs7cdblkn4f9w2nr0gjhcm1p1pqklxg44ynpr5a739zdh4wg";
isLibrary = true;
isExecutable = false;
libraryHaskellDepends = [ ipprint hscolour ];
testHaskellDepends = [ tasty tasty-hspec criterion ];
doCheck = false;
jailbreak = true;
homepage = "https://github.com/Pitometsu/funnyprint#readme";
description = "funnyPrint function to colorize GHCi output.";
license = pkgs.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};
# # ghci-ng = overrideCabal super.ghci-ng (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "chrisdone";
# # repo = "ghci-ng";
# # rev = "05df61d826d71cf8d65a6d764928775fdb8c91ad";
# # sha256 = "0flawgqdn01axkzac3zkzzqgbjm7z7b4y0xwcvr360x1fbnmmp52";
# # };
# # executableHaskellDepends =
# # let deps = with super; [ containers syb time transformers ];
# # in attrs.executableHaskellDepends ++ deps;
# # version = "0.0.0";
# # homepage = "https://github.com/chrisdone/ghci-ng#readme";
# # description = "Next generation GHCi";
# # });
hmenu = overrideCabal super.hmenu (attrs: {
src = pkgs.fetchFromGitHub {
owner = "sulami";
repo = "hmenu";
rev = "728a746202065c740b1516f3c66e72c6ff90bd35";
sha256 = "1c05j9m0vgzx70245k84mqs3x9ikd2k6c3r64w46l26cgi9bfahc";
};
buildDepends = with super; [ MissingH ];
});
haskell-docs = overrideCabal super.haskell-docs (drv: {
src = pkgs.fetchFromGitHub {
owner = "chrisdone";
repo = "haskell-docs";
rev = "32ecee8afe78de600da2f85ae58e60dcbc02fceb";
sha256 = "098zf0bd93yk6w5vfpbaqhp51sdwk9bmg0wdnidhk7ff9y4b27b8";
};
# patches = [ ~/nix/patches/haskell-docs/0001-packagename-type-ambiguity.patch ];
});
# hell-git = pkgs.haskell-ng.lib.overrideCabal pkgs.haskellngPackages.hell (oldAttrs: {
# src = pkgs.fetchgit {
# url = https://github.com/chrisdone/hell.git;
# rev = "442b0fc7cd7e2e9a5b2e43b14540467ddd32d29b";
# sha256 = "0q046zixqz5hd8c2pd4m6gcz3qyl032z8i9xxs0658c36fkk788f";
# };
# });
# stack = (overrideCabal super.stack (drv: {
# version = "1.1.3";
# revision = null;
# editedCabalFile = null;
# src = pkgs.fetchFromGitHub {
# owner = "commercialhaskell";
# repo = "stack";
# rev = "35ad01e6c7a2c7b090e52594043dc72cd7ed27b9";
# sha256 = "1w656qzm4ba06blcmykrsv45hckygf16964i1w2snlhfpz4xij8g";
# };
# libraryHaskellDepends = with self; [store persistent-sqlite] ++ drv.libraryHaskellDepends;
# })).override {
# persistent-sqlite = self.persistent-sqlite_2_5;
# };
stack = super.stack.override {
Cabal = super.Cabal_1_24_0_0;
};
th-utilities = overrideCabal super.th-utilities (drv: {
doCheck = false;
});
store = overrideCabal super.store (drv: {
doCheck = false;
});
# persistent-sqlite_2_5 = overrideCabal super.persistent-sqlite (drv: {
# version = "2.5";
# sha256 = "0wv3pc226vq5xyz05j4jm960ambk49g2phw22zz5q8c9a1zfhrya";
# doCheck = false;
# jailbreak = true;
# isLibrary = true;
# isExecutable = false;
# revision = null;
# editedCabalFile = null;
# });
};
packageOverrides = pkgs: rec {
# linux_4_6_fix = pkgs.linux_4_6.override {
# kernelPatches = pkgs.linux_4_6.kernelPatches ++ [
# # Fix Bumblebee for T440p
# { name = "pcipm-nouveau-pm2";
# patch = pkgs.fetchurl {
# url = "https://lekensteyn.nl/files/linux-v4.6-pcipm-nouveau-pm2.patch";
# sha256 = "8caa840429de855188b3e262b66708a2b70af05652286015b8e1f6f8ea90f12d";
# };
# }
# ];
# # extraConfig = ''
# # SCHED_BFS y
# # '';
# };
# jrePlugin = pkgs.jre8Plugin;
# qt4 = pkgs.qt4.override { gtkStyle = true; };
# qt53 = pkgs.qt53.override { gtkStyle = true; };
bumblebee = pkgs.bumblebee.override {
extraNvidiaDeviceOptions = ''
# custom setup
BusID "PCI:2:0:0"
Option "DRI" "3"
Option "AllowGLXWithComposite" "true"
Option "TwinView" "true"
Option "AddARGBGLXVisuals" "true"
Option "DisableGLXRootClipping" "true"
Option "DamageEvents" "true"
Option "RenderAccel" "true"
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
Option "AllowIndirectGLXProtocol" "off"
# caution here
Option "UseEvents" "false"
Option "TripleBuffer" "true"
Option "BackingStore" "true"
Option "Coolbits" "1"
Option "AccelMethod" "EXA"
Option "MigrationHeuristic" "greedy"
Option "AccelDFS" "true"
Option "EnablePageFlip" "true"
Option "EnableDepthMoves" "true"
Option "RegistryDwords" "EnableBrightnessControl=1"
'';
};
lts-5_15 = (pkgs.haskell.packages.lts-5_15.override rec {
overrides = config.haskellPackageOverrides or (self: super: {
vector-algorithms = pkgs.haskell.lib.overrideCabal super.vector-algorithms (drv: {
libraryHaskellDepends = with self; [ mtl mwc-random ] ++ drv.libraryHaskellDepends;
# libraryHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# testHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# executableHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# doCheck = false;
# jailbreak = true;
# isLibrary = true;
# isExecutable = false;
# revision = null;
# editedCabalFile = null;
});
});
});
numix_solarized-gtk-theme = with pkgs; stdenv.mkDerivation rec {
version = "0.0.1";
name = "numix_solarized-gtk-theme-${version}";
src = fetchFromGitHub {
owner = "Ferdi265";
repo = "numix-solarized-gtk-theme";
rev = "b6fce07c95a84dd618ed8594d441d0543192c1bb";
sha256 = "0gix5gx0n2bqyig3ngc9ky4296kqhnjr2vzjkidsjlkqp8raalmw";
};
# actuall, buildDepends, but in case of buildDepends it don't see sass in $PATH, not sure, why
buildInputs = [ gdk_pixbuf glib sass libxml2 ];
buildPhase = ''
make DESTDIR=$out
'';
prePatch = ''
sed -i 's/Numix/Numix Solarized/g' index.theme
export bkgrn=586e75
export white=eee8d5
export black=002b36
sed -i 's/selected_bg_color: #[^\\n]*;/selected_bg_color: #'$bkgrn';/g' gtk-3.0/scss/_global.scss
sed -i 's/selected_bg_color: #[^\\n]*;/selected_bg_color: #'$bkgrn';/g' gtk-3.20/scss/_global.scss
sed -i 's/white: #fff;/white: #'$white';/g' gtk-3.0/scss/_global.scss
sed -i 's/white: #fff;/white: #'$white';/g' gtk-3.20/scss/_global.scss
sed -i 's/black: #000;/black: #'$black';/g' gtk-3.0/scss/_global.scss
sed -i 's/black: #000;/black: #'$black';/g' gtk-3.20/scss/_global.scss
sed -i 's/nselected_bg_color:#[^\\n]*\\n/nselected_bg_color:#'$bkgrn'\\n/g' gtk-2.0/gtkrc
'';
installPhase = ''
install -dm 755 $out/share/themes/Numix\ Solarized
cp -dr --no-preserve='ownership' {LICENSE,CREDITS,index.theme,README.md,gtk-2.0,gtk-3.0,gtk-3.20,metacity-1,openbox-3,unity,xfce-notify-4.0,xfwm4} $out/share/themes/Numix\ Solarized/
'';
# installPhase = ''
# make DESTDIR=$out install
# '';
meta = {
description = "Numix Solarized GTK theme";
homepage = http://bitterologist.deviantart.com/art/Numix-Solarized-417575928;
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.all;
};
};
# gnome3 = pkgs.stdenv.lib.overrideDerivation pkgs.gnome3 (attrs: {
# adwaita-icon-theme = pkgs.stdenv.lib.overrideDerivation pkgs.adwaita (attrs: {
# preInstall = ''
# install -dm 755 $out/share/icons
# '';
# });
# });
conkeror-unwrapped = pkgs.stdenv.lib.overrideDerivation pkgs.conkeror-unwrapped (attrs: rec {
version = "1.0.3";
src = pkgs.fetchgit {
url = "git://repo.or.cz/conkeror.git";
rev = "refs/tags/${version}";
sha256 = "06fhfk8km3gd1lc19543zn0c71zfbn8wsalinvm1dbgi724f52pd";
};
});
# vstsdk = fetchzip {
# name = "vstsdk-3.6.5";
# url = "file://" + requireFile {
# url = http://www.steinberg.net/sdk_downloads/vstsdk365_28_08_2015_build_66.zip;
# sha256 = "18jd2s31hgbgv3765xl9zmljlikryd0104m34qkpc1jmlxzaclac";
# };
# sha256 = "1vgwdplb1jsa4y4azdc93h3prs2jpqpbw2vzvv105amdizvq0f13";
# };
# carla = pkgs.stdenv.mkDerivation rec {
# version = "2.0";
# name = "carla-${version}";
# src = fetchzip {
# url = "https://github.com/falkTX/Carla/archive/master.zip";
# sha256 = "13sp36jyvdksxpz77ijddjdmdlhq9yvlb1z93p0nr7bpc4xp567q";
# };
# buildInputs = with pkgs; [
# wineWow
# pkgconfig
# python3
# # pyliblo - does not exist
# # liblo - enable this if pyliblo exists
# libclthreads
# libclxclient
# ffmpeg
# fluidsynth
# mesa_glu
# libpng
# libsmf
# /* linuxsampler */
# ntk
# minixml
# zita-convolver
# zita-resampler
# vstsdk
# # optionals:
# gtk2 # lv2 gtk2 ui support
# gtk3 # lv2 gtk3 ui support
# /* pygtk # NekoFilter UI */
# /* zlib # extra native plugins */
# /* zynaddsubfx # ZynAddSubFX banks */
# /* windows.mingw_w64 */
# /* windows.mingw_w64_headers */
# makeWrapper
# ] ++ (with python34Packages;
# [ wrapPython
# pyqt5
# ]);
# pyuic5 = "PYUIC5=${pkgs.python34Packages.pyqt5}/bin/pyuic5";
# phaseNames = [ "wrapBinContentsPython" ];
# buildPhase = ''
# sed -i source/Makefile.mk -e "s#CARLA_VESTIGE_HEADER = true##"
# rm -r source/includes/vestige
# ln -s ${pkgs.vstsdk} source/includes/vst2
# export ${pyuic5}
# export PREFIX=$out
# #echo "=== compiling win64 ==="
# #make win64
# #echo "=== compiling wine64 ==="
# #make wine64
# #echo "=== compiling carla ==="
# make
# '';
# installPhase = ''
# make ${pyuic5} install PREFIX=$out
# for i in $out/bin/*; do
# wrapProgram "$i" --set PYTHONPATH $PYTHONPATH
# done
# for i in $out/bin/.*wrapped; do
# sed -i $i \
# -e "s#python#${pkgs.python3}/bin/python3#"
# done
# for i in $out/share/carla/resources/{*-ui,*-plugin*}; do
# patch --batch $i ${./fixpypath.patch}
# done
# '';
# meta = with stdenv.lib; {
# description = "Audio plugin host";
# homepage = http://ardour.org/;
# license = licenses.gpl2;
# platforms = platforms.linux;
# maintainers = [ maintainers.joelmo ];
# };
# };
xombrero = with pkgs; stdenv.mkDerivation rec {
# TODO: gtk2 flag support
version = "1.6.4";
pname = "xombrero";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "conformal";
repo = "${pname}";
rev = "28d140688dd5944df75568b2f6c785069a5883aa";
sha256 = "0376yyz2ybzgp7q9j1rvwxfmgww4hhkaq3fd6l7gljphjj6qvcqj";
};
preFixup=''
wrapProgram "$out/bin/$pname" \
--prefix GIO_EXTRA_MODULES : "${gnome3.glib_networking.out}/lib/gio/modules:${gnome3.dconf}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
'';
buildInputs = [gnutls desktop_file_utils perl libbsd gtk3 gnome3.webkitgtk24x pkgconfig groff makeWrapper gsettings_desktop_schemas ];
makeFlags = [ "-C" "linux" "GTK_VERSION=gtk3" "PREFIX=\${out}" ];
installFlags = [ "PREFIX=\${out}" ];
# preInstall = ''
# install -dm 755 $out/share/$pname
# '';
# preInstall = "cp -r share/$pname $out/share/$pname";
# environment.pathsToLink = [ "/share/$pname" ];
# outputs = [ "out" "man" "${pname}" ];
};
# patched version for VFS5011 sensor, unreliable
# fprintd = pkgs.stdenv.lib.overrideDerivation pkgs.fprintd (attrs: {
# src = pkgs.fetchFromGitHub {
# owner = "abbradar";
# repo = "fprint_vfs5011";
# rev = "faa090818200ca3ea6bfac8bb510e5e01a246c34";
# sha256 = "0msiwk5f88030my6chchy5xzsmfd5x8m2inyg7br3jdx2vjr0mw3";
# };
# });
# # tmux = pkgs.stdenv.lib.overrideDerivation pkgs.tmux (attrs: {
# # version = "2.2";
# # });
emacs = pkgs.stdenv.lib.overrideDerivation (pkgs.emacs.override {
withGTK2 = false;
withGTK3 = true;
# imagemagick = pkgs.imagemagickBig;
}) (attrs: {
# src = pkgs.fetchgit {
# rev = "f85318cdcdc2f7cf7729117fcc841407776c7e4b";
# url = "git://git.savannah.gnu.org/emacs.git";
# sha256 = "1hqghjgr0kdhwgmw6nnilnw2dmmb7arcd14iyrai2z61krv0z29j";
# };
patches = map pkgs.fetchurl [
{ url = "https://gist.githubusercontent.com/choppsv1/e8198df70cb1778b04d6/raw/99b9c436c5b7dc96f2d4645b7b2cdeec614f7698/emacs-24.5-24bit.diff";
sha256 = "04jbskhhd90h5xkj2575kzs9p1lady864l6ng3c7jpsk2hhcxsgv";
}
];
});
urxvt = pkgs.stdenv.lib.overrideDerivation pkgs.rxvt_unicode (attrs: {
src = pkgs.fetchgit {
url = "https://github.com/spudowiar/rxvt-unicode.git";
rev = "d6732943f1e79f09fa1bd86dbeb4e02a06bdfc18";
sha256 = "1xh7b71f1a2zblykymcjmpnqw2jvmz114fc1sfvpjvq6rvswc93m";
fetchSubmodules = true;
};
preConfigure = ''
mkdir -p $terminfo/share/terminfo
configureFlags="--with-terminfo=$terminfo/share/terminfo --enable-256-color --enable-24-bit-color --enable-combining --enable-fading --enable-font-styles --enable-iso14755 --enable-keepscrolling --enable-lastlog --enable-mousewheel --enable-next-scroll --enable-perl --enable-pointer-blank --enable-rxvt-scroll --enable-selectionscrolling --enable-slipwheeling --disable-smart-resize --enable-startup-notification --enable-transparency --enable-unicode3 --enable-utmp --enable-wtmp --enable-xft --enable-xim --enable-xterm-scroll --disable-pixbuf --disable-frills"
export TERMINFO=$terminfo/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.freetype}/include/freetype2"
NIX_LDFLAGS="$NIX_LDFLAGS -lfontconfig -lXrender "
mkdir -p $out/lib/perl5
ln -s $out/{lib/urxvt,lib/perl5/site_perl}
'';
});
urxvt-with-plugins = pkgs.rxvt_unicode_with-plugins.override {
rxvt_unicode = urxvt;
};
# # st = pkgs.stdenv.lib.overrideDerivation pkgs.st (attrs: rec {
# # patches = map pkgs.fetchurl [
# # { url = "http://st.suckless.org/patches/st-0.6-argbbg.diff";
# # sha256 = "0ig87m5dp0p08dl9idq7vsg5w0w5h24lpaj6kbfr9bl81zh0rjl4";
# # }
# # { url = "http://st.suckless.org/patches/st-git-20151119-solarized-light.diff";
# # sha256 = "14bi0vsvyj75mp5nqsp34c2x8kkkv9c2q0kbx495k2a4gcsgv1s7";
# # }
# # ];
# # });
rofi = pkgs.stdenv.lib.overrideDerivation pkgs.rofi (attrs: {
version = "0.15.8";
postInstall = ''
ln -s "$out/bin/rofi" "$out/bin/dmenu"
'';
});
skype = pkgs.stdenv.lib.overrideDerivation pkgs.skype (attrs: {
buildInputs = with pkgs.pkgsi686Linux; [gtk-engine-murrine gtk_engines gnome.gtk gnome3.gtk gdk_pixbuf libcanberra_gtk3] ++ attrs.buildInputs;
});
moc = pkgs.stdenv.lib.overrideDerivation pkgs.moc (attrs: {
buildInputs = attrs.buildInputs ++ (with pkgs; [ libsamplerate taglib libmpcdec wavpack faad2 curl file ]); # +librcc +libmagic -libmpc
configureFlags = "--with-rcc --without-oss --with-alsa --with-jack --with-aac --with-mp3 --with-musepack --with-vorbis --with-flac --with-wavpack --with-sndfile --with-modplug --with-ffmpeg --with-speex --with-timidity --with-samplerate --with-curl --with-sidplay2 --with-magic --disable-cache --disable-debug";
});
sox = pkgs.sox.override {
enableLame = true;
enableAMR = true;
};
ffmpeg-full = pkgs.ffmpeg-full.override {
lame = true;
# TODO: a lot of flags here...
};
vlc = pkgs.vlc.override {
jackSupport = true;
};
# gnome.gtk = pkgs.stdenv.lib.overrideDerivation pkgs.gnome.gtk (attrs: {
# prePatch = ''
# substituteInPlace gtk/gtkprivate.h '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_CONTROL_MASK' '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_SUPER_MASK'
# '';
# });
# gnome3.gtk = pkgs.stdenv.lib.overrideDerivation pkgs.gnome3.gtk (attrs: {
# prePatch = ''
# substituteInPlace gtk/gtkprivate.h '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_CONTROL_MASK' '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_SUPER_MASK'
# '';
# });
# wicd = pkgs.wicd.override {
# python = pkgs.python34;
# };
# sxiv_xft = pkgs.stdenv.lib.overrideDerivation (pkgs.sxiv.override
# (args: args) // { # here add new args
# # withImagemagick = true;
# # withLibjpeg = true;
# # withGimp = true;
# }
# ) (attrs: {
# name = "sxiv_xft-2013.10.27";
# # meta.description = "Simple (or small or suckless) X Image Viewer with manga view mode (-m) (baskerville xft fork)";
# prePatch = ''
# substituteInPlace config.def.h 'static const char * const BAR_FONT = "Monospace:size=9";' 'static const char * const BAR_FONT = "Inconsolata LGC:size=8.6";'
# substituteInPlace config.def.h 'static const char * const WIN_BG_COLOR = "#555555";' 'static const char * const WIN_BG_COLOR = "#fdf6e3";'
# substituteInPlace config.def.h 'static const char * const WIN_FS_COLOR = "#000000";' 'static const char * const WIN_FS_COLOR = "#657b83";'
# substituteInPlace config.def.h 'static const char * const SEL_COLOR = "#EEEEEE";' 'static const char * const SEL_COLOR = "#eee8d5";'
# substituteInPlace config.def.h 'static const char * const BAR_BG_COLOR = "#222222";' 'static const char * const BAR_BG_COLOR = "#fdf6e3";'
# substituteInPlace config.def.h 'static const char * const BAR_FG_COLOR = "#EEEEEE";' 'static const char * const BAR_FG_COLOR = "#657b83";'
# '';
# src = pkgs.fetchFromGitHub {
# owner = "Pitometsu";
# repo = "sxiv";
# # branch = "xft";
# sha256 = "02zj4gmckaca5ryxb52ma1fd26gm2fjpahz7f7iv801qs8i88b1j";
# rev = "6af450670d20cfaa779013e85e709eb3fe022c52";
# };
# # patches = [
# # (let manga_patch = {
# # name = "manga-patch";
# # src = import <nix/fetchurl.nix> {
# # url = "https://github.com/baskerville/sxiv/commit/77eb07637d14c432319605d3e383d37ff1a91850.patch";
# # md5 = "7faf8df927e34a44802ecc17e7b80755";
# # };
# # }; in manga_patch.src)
# # (let xft_patch = {
# # name = "xft-patch";
# # src = import <nix/fetchurl.nix> {
# # url = "https://github.com/baskerville/sxiv/commit/ea4ea27cae735f107c191eb4590db357f9ee5d4f.patch";
# # md5 = "0b8cc129d9d078322fa82179544cc008";
# # };
# # }; in xft_patch.src)
# # ];
# # buildInputs = attrs.buildInputs ++ [ pkgs.xlibs.libXft ] ++ stdenv.lib.optional attrs.withImagemagick pkgs.imagemagick ++ stdenv.lib.optional attrs.withLibjpeg pkgs.libjpeg ++ stdenv.lib.optional attrs.withGimp pkgs.gimp;
# buildInputs = attrs.buildInputs ++ [ pkgs.xlibs.libXft ];
# # buildDepends = [ pkgs.xlibs.libXft ];
# });
};
};
# system.copySystemConfiguration = true; # broken because of chroot
services.ntp.enable = true;
time.timeZone = "Europe/Kiev";
# Select internationalisation properties.
i18n = {
consoleFont = "${pkgs.terminus_font}/share/consolefonts/ter-v16n.psf.gz";
consoleKeyMap = "dvp";
defaultLocale = "en_US.UTF-8";
# consoleUseXkbConfig = true;
};
programs.zsh = {
enable = true;
interactiveShellInit = ''
x-copy-region-as-kill () {
zle copy-region-as-kill
print -rn $CUTBUFFER | xsel --clipboard --input --display :0
}
zle -N x-copy-region-as-kill
x-kill-region () {
zle kill-region
print -rn $CUTBUFFER | xsel --clipboard --input --display :0
}
zle -N x-kill-region
x-yank () {
CUTBUFFER=$(xsel --clipboard --output --display :0 < /dev/null)
zle yank
}
zle -N x-yank
bindkey -e '\ew' x-copy-region-as-kill
bindkey -e '^w' x-kill-region
bindkey -e '^y' x-yank
setopt extended_glob
'';
};
environment = {
shellAliases = {
j = "jobs";
g = "git";
gl = "git log --pretty=format:\"%an, %ar, %h: %s\"";
gs = "git status";
gf = "git fetch";
ga = "git add";
gcl = "git clone";
gc = "git commit -m";
gca = "git commit -a -m";
gp = "git pull --rebase && git push";
gull = "git pull --rebase";
gpp = "git pull --rebase git push";
gush = "git push";
gm = "git merge";
gb = "git branch";
gco = "git checkout";
gd = "git diff";
gu = "git ls-files --other --exclude-standard";
gt = "git log --graph --oneline --decorate --all";
gsm = "git submodule";
ecw = "emacsclient";
ec = "emacsclient -nw";
gr = "egrep -s --colour=auto";
t = "tree -C";
t1 = "t -L 1";
lls = "ls -F -h --color=auto";
ll = "ls -l";
la = "ls -a";
ls = "ls -h";
lla = "la -1";
l = "ls";
nano = "nano -w";
cp = "cp -viR";
mv = "mv -vi";
rm = "rm -viR";
md = "mkdir -p -v";
# jackD = "set_rlimits jackd -Rv -p512 -d alsa -dhw:1 -r96000 -p4096 -n2 -Xseq";
df = "df -h";
du = "du -h";
# burndvd = "growisofs -Z /dev/dvdrw -R -J";
# burndvdISO = "growisofs -dvd-compat -Z /dev/dvdrw=";
# burncd = "mkisofs -r -f -jcharset=cp1251 -C $(cdrecord dev=/dev/cdrw -msinfo) -M /dev/cdrw $HOME/forburn/ | cdrecord --speed=4 -v -multi driveropts=burnfree -eject dev=/dev/cdrw -";
# burncdISO = "cdrecord --speed=4 -v -multi driveropts=burnfree -eject dev=/dev/cdrw";
# blankcd = "cdrecord --dev=/dev/cdrw --blank=fast";
# bl = "baudline_jack -waveform -realtime -record -jack -inconnect";
wget = "wget --no-check-certificate";
wgetp = "wgetpaste -rXvt";
killall = "pkill";
pbcopy = "xsel --clipboard --input --display :0";
pbpaste = "xsel --clipboard --output --display :0";
open = "DISPLAY=:0 xdg-open";
zip = "zip -r";
ew = "emacs -Q";
et = "emacs -nw -Q";
tv = "pv -p --timer --rate --bytes";
dmesg = "dmesg --color=always";
less = "less -R";
s = "ssh";
c = "curl";
f = "find";
h = "heroku";
haix = "heroku sudo apps:info -xa";
be = "bundle exec";
# tmux
tma = "tmux attach -d -t";
tmn = "tmux new -s $(basename $(pwd))";
tml = "tmux list-sessions";
nixpaste = "curl -F \"text=<-\" http://nixpaste.lbr.uno";
nixos-fix = "nix-store --verify --check-contents --repair";
nixos-repkg = "nix-build --check -A";
nixos-clean = "nix-collect-garbage -d";
nixos-search = "nix-env -qaP --description \\* | sed -re \"s/^nixos\\.//g\" | fgrep -i";
nixos-update = "nixos-rebuild switch";
nixos-upgrade = "nixos-rebuild switch --upgrade";
nxf = "nixos-fix";
nxr = "nixos-repkg";
nxc = "nixos-clean";
nxs = "nixos-search";
nxu = "nixos-update";
nxg = "nixos-upgrade"; # TODO: sync git in /etc/nixos/* from imports
};
shells = [
"/run/current-system/sw/bin/zsh"
"/run/current-system/sw/bin/bash"
];
variables = with pkgs; rec {
EDITOR = "et";
# DRI_PRIME = "1";
VDPAU_DRIVER = "va_gl";
QT_STYLE_OVERRIDE = "GTK+";
# fish ssl for git, see: https://github.com/NixOS/nixpkgs/issues/3382
# GIT_SSL_CAINFO="/etc/ssl/certs/ca-certificates.crt";
# Fix Gtk org.a11y.Bus error. Or just add at-spi2-core-2.20.1/etc/xdg to /run/current-system/sw/etc/xdg ??? See: https://github.com/NixOS/nixpkgs/issues/16327
# NO_AT_BRIDGE = "1";
# nvidia tearing
__GL_YIELD = "USLEEP";
__GL_THREADED_OPTIMIZATIONS = "1";
# Fix webkitgtk
# GIO_EXTRA_MODULES = "${glib_networking}/lib/gio/modules";
# GIO_EXTRA_MODULES = "${dconf}/lib/gio/modules"
# GIO_EXTRA_MODULES = "${glib}/lib/gio/modules"
# GIO_EXTRA_MODULES = "${gconf}/lib/gio/modules"
# GSETTINGS_SCHEMA_DIR = "${glib}/share/glib-2.0/schemas";
# GSETTINGS_SCHEMA_PATH = "\$GSETTINGS_SCHEMA_DIR";
# XDG_DATA_DIRS = "${glib}/share:${gtk3}/share:\$GSETTINGS_SCHEMAS_PATH:\$XDG_ICON_DIRS:\$XDG_DATA_DIRS";
# XDG_ICON_DIRS = ...
XCURSOR_PATH = "~/.icons:${config.system.path}/share/icons:\$XCURSOR_PATH";
XDG_CONFIG_DIRS = "${gnome3.gnome_settings_daemon}/etc/xdg:\$XDG_CONFIG_DIRS";
# GTK2 theme
GTK_PATH = "\$GTK_PATH:${gtk-engine-murrine}/lib/gtk-2.0";
GTK2_RC_FILES = "${pkgs.writeText "iconrc" "gtk-icon-theme-name=\"Numix-Light\"\ngtk-fallback-icon-theme=\"hicolor\"\n"}:${pkgs.numix_solarized-gtk-theme}/share/themes/Numix\ Solarized/gtk-2.0/gtkrc:\$GTK2_RC_FILES";
# GTK3 theme
GTK_THEME = "Numix Solarized";
XDG_DATA_DIRS = "${numix_solarized-gtk-theme}/share:\$XDG_DATA_DIRS";
# export XDG_CONFIG_DIR S ="/etc/xdg:\$XDG_CONFIG_DIRS";
# XCURSOR_PATH = ...
# SVG loader for pixbuf (needed for svg icon themes)
GDK_PIXBUF_MODULE_FILE = "\$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)";
# Set GTK_DATA_PREFIX so that GTK+ can find the system themes.
GTK_DATA_PREFIX = "\$GTK_DATA_PREFIX:${config.system.path}:${pkgs.numix_solarized-gtk-theme}";
};
interactiveShellInit = ''
'';
extraInit = ''
'';
# binsh = "${pkgs.dash}/bin/dash"; # SLIM not work with DASH :'(
# shellInit = ''
# export VST_PATH=/nix/var/nix/profiles/default/lib/vst:/var/run/current-system/sw/lib/vst:~/.vst
# export LXVST_PATH=/nix/var/nix/profiles/default/lib/lxvst:/var/run/current-system/sw/lib/lxvst:~/.lxvst
# export LADSPA_PATH=/nix/var/nix/profiles/default/lib/ladspa:/var/run/current-system/sw/lib/ladspa:~/.ladspa
# export LV2_PATH=/nix/var/nix/profiles/default/lib/lv2:/var/run/current-system/sw/lib/lv2:~/.lv2
# export DSSI_PATH=/nix/var/nix/profiles/default/lib/dssi:/var/run/current-system/sw/lib/dssi:~/.dssi
# '';
# /var/run/current-system/sw/etc/profile
# shellInit = ''
# # ===================================
# # SYSTEM WIDE CONFIGURATION GOES HERE
# # ===================================
# # Set GTK_PATH so that GTK+ can find themes engine.
# export GTK_PATH=$GTK_PATH:${pkgs.numix-gtk-theme}/lib/gtk-2.0::${pkgs.numix-gtk-theme}/lib/gtk-3.0:${pkgs.gtk-engine-murrine}/lib/gtk-2.0
# # Set GTK2 RC
# export GTK2_RC_FILES=$GTK2_RC_FILES:${pkgs.numix-gtk-theme}/share/themes/Numix/gtk-2.0/gtkrc
# # Set GTK_DATA_PREFIX so that GTK+ can find the system themes.
# export GTK_DATA_PREFIX=$GTK_DATA_PREFIX:${config.system.path}
# # ===================================
# '';
# pathsToLink =
# [ "/usr/share/themes" "/usr/share/mime" "/usr/share/desktop-directories" ];
# List packages installed in system profile
systemPackages = with pkgs; ([
# appearance
lxappearance gtk-engine-murrine gtk_engines hicolor_icon_theme numix-icon-theme gnome3.adwaita-icon-theme numix_solarized-gtk-theme # qt5.qtbase.gtk
# desktop
lxappearance primus rofi compton-git unclutter haskellPackages.hmenu haskellPackages.yeganesh haskellPackages.xmobar taffybar redshift unclutter scrot screenfetch stalonetray xlibs.xev xlibs.xlsfonts xclip xsel primus wmctrl feh xdotool # bgs xlaunch
(let dmenfm = let version = "0.1.2.1";
in with pkgs; stdenv.mkDerivation rec {
name = "dmenfm-${version}";
src = fetchFromGitHub {
owner = "Pitometsu";
repo = "dmenfm";
rev = "a4b61f49b15ce210fde25aaa87a55a90c0a9f6bf";
sha256 = "14fq6c0kkxg29ikknsmk43j8hg3v70qnma5hs4iisx0dl5p9ma5i";
};
dontBuild = true;
installPhase = let
bin_dir = "$out/bin";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${bin_dir}"
mkdir -pv "${doc_dir}"
cp -v dmenfm "${bin_dir}"
cp -v README.md "${doc_dir}"
'';
meta = with stdenv.lib; {
homepage = "https://github.com/hangtwenty/dmenfm#readme";
description = "A simple dmenu-based file manager.";
license = licenses.gpl;
platforms = platforms.all;
};
}; in dmenfm)
# env
emacs zeal moc mpv st urxvt-with-plugins zathura conkeror chromium transmission_gtk rtorrent gimp-with-plugins inkscape skype qtox weechat telegram-cli gajim sxiv python27Packages.youtube-dl xombrero firefox # sxiv_xft # sxiv_bskv_manga vlc libreoffice firefox-esr-wrapper
# emacs wibkit dependensies:
python27Packages.pyqt5
python27Packages.epc
python27Packages.xlib
# qt5.qtwebkit
# (let sxiv_xft = with pkgs; stdenv.mkDerivation rec {
# name = "sxiv_xft";
# src = fetchgit {
# url = "git://github.com/pitometsu/sxiv.git";
# sha256 = "1fapnvaj0cf9gj2gmdls1ch2jh68i51sga9zdmrirmzr9fwqhfhx";
# rev = "6af450670d20cfaa779013e85e709eb3fe022c52";
# };
# postUnpack = ''
# substituteInPlace $sourceRoot/Makefile \
# --replace /usr/local $out
# '';
# buildInputs = with pkgs.xlibs; [ libX11 imlib2 libXft libXext fontconfig giflib libexif ]; # TODO: make giflib and libexif optional
# meta = with stdenv.lib; {
# description = "Simple (or small or suckless) X Image Viewer (xft fork)";
# homepage = https://github.com/pitometsu/sxiv;
# license = licenses.gpl2Plus;
# platforms = platforms.linux;
# };
# }; in sxiv_xft)
# cli
tmux w3m wget zsh nix-zsh-completions tree file lsof # byobu
# fun
steam
# audio
# sox soxr
pavucontrol lash baudline # ladish patchage gladish/claudia baudline
jack2Full qjackctl a2jmidid # spectrojack
jaaa jack_rack jalv jackmeter jack_oscrolloscope # zynjacku lv2rack
ingen ardour audacious jamin timemachine patchage iannix spectrojack non # laoe luppp algoscore rationale carla
mhwaveedit # reZound
puredata # supercollider
artyFX ams-lv2 calf
# commented out because of broken Faust
# constant-detune-chorus CharacterCompressor CompBus LazyLimiter
fomp mda_lv2 (hiPrio metersLv2) mod-distortion rkrlv2 sorcer # MBdistortion RhythmDelay
# swh_lv2 x42-plugins # zam-plugins
# dev
stack cabal-install cabal2nix llvm (hiPrio clang) gdb gnumake automake autoconf cmake gitAndTools.gitFull diffoscope subversion bazaar bazaarTools cvs mercurial darcs silver-searcher haskellPackages.hobbes nodejs openjdk python3 # postgresql # oraclejre oraclejdk # ghc gcc
git-hub heroku nix-repl # howdoi
ditaa
gnupg
# Ruby
bundix
ruby_2_0 # for emacs plugins
# chruby
# # RVM -- ???: sholdn't it be in dependencies list?
# # git
# # gcc
# # bash
# # curl
# which
# ## openssl
# sqlite
# # patch
# ## readline
# # ncurses
# ## zlib
# libyaml
# libiconv
# libxml2 # used by gem nokogiri, rails dependency
# libxslt # used by gem nokogiri, rails dependency
# libksba
# libtool
# bison
# pkgconfig
# # v8
# # Rails
# nodejs
# python
python34Packages.ipython python34Packages.pip python34Packages.virtualenv
# sci
R graphviz gnuplot # octave (hiPrio texLiveFull) emacs24Packages.ess
# utils
keychain aspell pastebinit wgetpaste gnupg openvpn qrencode unrar unzip p7zip imagemagickBig pv glxinfo # imgurbash
tcpdump reptyr gnutls nethogs trickle
python27Packages.googlecl python34Packages.youtube-dl gist # haskellPackages.pandoc haskellPackages.hakyll
(let clipmenu = # { stdenv
# , pkgs
# , fetchFromGitHub
# , withRofi ? true, rofi
# , withDmenu2 ? false, dmenu2 ? null
# , dmenu ? null }:
with pkgs.stdenv.lib;
# assert withRofi -> !withDmenu2 && dmenu2 == null && dmenu == null && rofi != null;
# assert withDmenu2 -> !withRofi && rofi == null && dmenu == null && dmenu2 != null;
# assert !withRofi && !withDmenu2 -> rofi == null && dmenu2 == null && dmenu != null;
let
version = "1.1.0";
in
stdenv.mkDerivation rec {
name = "clipmenu-${version}";
src = fetchFromGitHub {
owner = "cdown";
repo = "clipmenu";
rev = "4dfbfed9e2a1a66836816883a14065333abaf8c6";
sha256 = "0dbvrbzrb505sjcv0kyrc0yjzhwwckdpgya7ylrxqpfabklwv7lz";
};
dontBuild = true;
installPhase = let
bin_dir = "$out/bin";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${bin_dir}"
mkdir -pv "${doc_dir}"
cp -v {clipmenu,clipmenud} "${bin_dir}"
cp -v {README.md,LICENSE} "${doc_dir}"
'';
buildInputs = [ bash ]
++ [ rofi ];
# ++ optional withRofi [ rofi ]
# ++ optional (!withRofi && withDmenu2) [ dmenu2 ]
# ++ optional (!withRofi && !withDmenu2) [ dmenu ];
meta = with stdenv.lib; {
homepage = "https://github.com/cdown/clipmenu#readme";
description = "clipmenu is a simple clipboard manager using dmenu and xsel.";
license = licenses.isc;
platforms = platforms.all;
};
}; in clipmenu)
# sys
dash usbutils pciutils lshw htop ntfs3g fbterm nox hdparm powertop aircrackng acpitool mkpasswd reiser4progs udisks bashmount (hiPrio utillinuxCurses) parted gptfdisk pmutils # udisks manpages
gparted
# host
# qemu_kvm # linuxPackages_4_6.virtualbox
# haskell development and hacking
# HUnit broke hoogle suppert for now somewhy
# (lts-5_15.ghcWithHoogle (hpkgs: with lts-5_15; [
(lts-5_15.ghcWithPackages (hpkgs: with lts-5_15; [
hoogle
hlint
hi
shake
(pkgs.haskell.lib.dontCheck intero)
funnyprint
haskell-docs
stylish-haskell
structured-haskell-mode
ghc-mod
hasktags
HaRe
]))
] # ++ # (with haskellPackages; [
# (haskell.packages.lts-5_15.ghcWithHoogle (hpkgs: with haskell.packages.lts-5_15; [
# hlint hi
# (pkgs.haskell.lib.dontCheck intero)
# funnyprint
# haskell-docs
# hscolour ipprint
# stylish-haskell
# structured-haskell-mode ghc-mod # hdevtools
# hasktags
# ]))
# ]) # ++ (with haskell.packages.ghc784; [
# ghci-ng
# structured-haskell-mode # ghc stack hlint ghc-mod hi hdevtools cabal-install
# ]) # ++ [ haskell.packages.ghc763.HaRe ]
);
};
# nixpkgs.config.allowBroken = true;
environment.etc."adobe/mms.cfg".text = ''
EnableLinuxHWVideoDecode = 1
OverrideGPUValidation = 1
'';
fonts = {
enableCoreFonts = true;
enableFontDir = true;
enableGhostscriptFonts = false;
fonts = with pkgs; [
symbola
font-awesome-ttf
libertine
# code2000
# code2001
# code2002
terminus_font
ubuntu_font_family
liberation_ttf
freefont_ttf
source-code-pro
(let inconsolata-lgc = let version = "1.2.0";
in with pkgs; stdenv.mkDerivation rec {
name = "inconsolata-lgc-${version}";
src = fetchurl {
url = "https://github.com/MihailJP/Inconsolata-LGC/releases/download/LGC-1.2.0/InconsolataLGC-OT-1.2.0.tar.xz";
sha256 = "0rw8i481sdqi0pspbvyd2f86k0vlrb6mbi94jmsl1kms18c18p66";
};
dontBuild = true;
installPhase = let
fonts_dir = "$out/share/fonts/opentype";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${fonts_dir}"
mkdir -pv "${doc_dir}"
cp -v *.otf "${fonts_dir}"
cp -v {README,LICENSE,ChangeLog} "${doc_dir}"
'';
meta = with stdenv.lib; {
homepage = http://www.levien.com/type/myfonts/inconsolata.html;
description = "A monospace font for both screen and print, LGC extension";
license = licenses.ofl;
platforms = platforms.all;
};
}; in inconsolata-lgc)
inconsolata
vistafonts
dejavu_fonts
freefont_ttf
unifont
cm_unicode
ipafont
baekmuk-ttf
source-han-sans-japanese
source-han-sans-korean
source-han-sans-simplified-chinese
source-han-sans-traditional-chinese
source-sans-pro
source-serif-pro
fira
fira-code
fira-mono
hasklig
];
fontconfig = {
enable = true;
dpi = 100;
antialias = true;
hinting = {
autohint = false;
enable = true;
style = "slight";
};
subpixel.lcdfilter = "default";
ultimate = {
enable = true; # see also: rendering, substitutions
useEmbeddedBitmaps = true;
};
defaultFonts = {
serif = [ "Source Sans Pro" "DejaVu Serif" "IPAMincho" "Beakmuk Batang" ];
sansSerif = [ "Source Serif Pro" "DejaVu Sans" "IPAGothic" "Beakmuk Dotum" ];
monospace = [ "Inconsolata LGC" "DejaVu Sans Mono" "IPAGothic" "Beakmuk Dotum" ];
};
};
};
environment.etc."fonts/conf.d/98-matches.conf".text = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<!-- Medium hinting for smaller fonts -->
<match target="font">
<test compare="more" name="pixelsize" qual="any"><double>5</double></test>
<test compare="less_eq" name="pixelsize" qual="any"><double>9</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for smallest fonts -->
<match target="font">
<test compare="less_eq" name="pixelsize" qual="any"><double>5</double></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>18</double></test>
<test compare="less" name="pixelsize" qual="any"><double>24</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for biggest fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>24</double></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for BOLD bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>16</double></test>
<test compare="less" name="pixelsize" qual="any"><double>18</double></test>
<test name="weight" compare="more"><const>medium</const></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for BOLD biggest fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>18</double></test>
<test name="weight" compare="more"><const>medium</const></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for _italic_ bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>16</double></test>
<test name="slant" compare="not_eq"><double>0</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
</match>
</fontconfig>
'';
environment.etc."fonts/conf.d/99-aliases.conf".text = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<!-- Use Nimbus Sans L instead of Helvetica -->
<alias binding="same">
<family>Helvetica</family>
<prefer>
<family>Nimbus Sans L</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Nimbus Sans L instead of Segoe UI -->
<alias binding="same">
<family>Segoe UI</family>
<prefer>
<family>Nimbus Sans L</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Arial -->
<alias binding="same">
<family>Arial Unicode MS</family>
<prefer>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Arial -->
<alias binding="same">
<family>Arial</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Corbel -->
<alias binding="same">
<family>Corbel</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Candara -->
<alias binding="same">
<family>Candara</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Times New Roman -->
<alias binding="same">
<family>Times New Roman</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Palatino Linotype -->
<alias binding="same">
<family>Palatino Linotype</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Sylfaen -->
<alias binding="same">
<family>Sylfaen</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Cambria -->
<alias binding="same">
<family>Cambria</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Serif instead of Georgia -->
<alias binding="same">
<family>Georgia</family>
<prefer>
<family>Droid Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Serif instead of Constantia -->
<alias binding="same">
<family>Constantia</family>
<prefer>
<family>Droid Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Calibri -->
<alias binding="same">
<family>Calibri</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Trebuchet MS -->
<alias binding="same">
<family>Trebuchet MS</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Segoe Script -->
<alias binding="same">
<family>Segoe Script</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Lucida Sans Unicode -->
<alias binding="same">
<family>Lucida Sans Unicode</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Comic Sans MS -->
<alias binding="same">
<family>Comic Sans MS</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Verdana -->
<alias binding="same">
<family>Verdana</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Tahoma -->
<alias binding="same">
<family>Tahoma</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Microsoft Sans Serif -->
<alias binding="same">
<family>Microsoft Sans Serif</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Consolas -->
<alias binding="same">
<family>Consolas</family>
<prefer>
<family>Inconsolata LGC</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Monaco -->
<alias binding="same">
<family>Monaco</family>
<prefer>
<family>Inconsolata LGC</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Monaco -->
<alias binding="same">
<family>Menlo</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Ubuntu Mono instead of Courier New -->
<alias binding="same">
<family>Courier New</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Ubuntu Mono instead of Lucida Console -->
<alias binding="same">
<family>Lucida Console</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans Mono</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
</match>
</fontconfig>
'';
security.sudo.extraConfig = ''
# Disable timeout.
Defaults env_reset,timestamp_timeout=0
'';
security.setuidPrograms = [ "xlaunch"
# "pmount" "pumount" "udevil"
];
# List services that you want to enable:
# PostgreSQL
services.postgresql = {
enable = true;
package = pkgs.postgresql95;
authentication = "local all all ident";
};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
services.cron.enable = false;
# services.udev = {
# extraRules = ''
# KERNEL=="rtc0", GROUP="audio"
# KERNEL=="hpet", GROUP="audio"
# '';
# };
services.udisks2.enable = true;
# services.devmon.enable = true;
services.kmscon.hwRender = true;
services.logind.extraConfig = ''
HandleLidSwitch=ignore
HandlePowerKey=hybrid-sleep
'';
# Enable CUPS to print documents.
# services.printing.enable = true;
# Xorg, WM, DM, DE
services.xserver = {
useGlamor = true;
enable = true;
enableTCP = false;
exportConfiguration = true;
layout = "us,ru";
xkbVariant = "dvp,winkeys";
xkbOptions = "grp:shift_toggle,grp_led:caps,ctrl:nocaps,altwin:meta_alt,altwin:super_win,altwin:hyper_win";
# autorun = false;
videoDrivers = [ "intel" ];
synaptics = {
enable = true;
accelFactor = "0.005";
vertEdgeScroll = false;
horizEdgeScroll = false;
tapButtons = false;
buttonsMap = [ 0 0 0 ];
fingersMap = [ 1 3 2 ];
twoFingerScroll = true;
palmDetect = true;
palmMinZ = 100;
palmMinWidth = 8;
additionalOptions = ''
Option "MaxTapTime" "0"
'';
};
config = ''
# /etc/X11/xorg.conf.d/50-thinkpad_trackpoint.conf
Section "InputClass"
Identifier "TrackPoint"
MatchProduct "TrackPoint"
MatchDriver "evdev"
# MatchDevicePath "event"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "EmulateWheelTimeOut" "200"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
Option "ZAxisMapping" "4 5"
Option "AccelerationProfile" "2"
Option "AccelerationNumerator" "5"
Option "AccelerationDenominator" "3"
Option "AccelerationThreshold" "4"
Option "AdaptiveDeceleration" "2"
# Option "ConstantDeceleration" "2"
EndSection
# /etc/X11/xorg.conf.d/60-mouse-acceleration.conf
Section "InputClass"
Identifier "My Mouse"
MatchIsPointer "yes"
# set the following to 1 1 0 respectively to disable acceleration.
Option "AccelerationNumerator" "2"
Option "AccelerationDenominator" "1"
Option "AccelerationThreshold" "4"
EndSection
# Disable black screen
Section "Monitor"
Identifier "LVDS0"
Option "DPMS" "false"
EndSection
Section "ServerLayout"
Identifier "ServerLayout0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "BlankTime" "0"
Option "OffTime" "0"
EndSection
'';
# deviceSection = ''
# # custom setup
# BusID "PCI:0:2:0"
# Option "DRI" "3"
# Option "AllowGLXWithComposite" "true"
# Option "TwinView" "true"
# Option "XvMC" "true"
# Option "XAANoOffscreenPixmaps" "true"
# Option "UseEvents" "true"
# Option "TearFree" "true"
# Option "Tiling" "true"
# Option "SwapBuffersWait" "true"
# Option "Backlight" "intel_backlight"
# '';
# inputClassSections = [
# ''
# Identifier "TrackPoint"
# MatchProduct "TrackPoint"
# MatchDriver "evdev"
# Option "EmulateWheel" "true"
# Option "EmulateWheelButton" "2"
# Option "EmulateWheelTimeOut" "200"
# Option "XAxisMapping" "6 7"
# Option "YAxisMapping" "4 5"
# Option "ZAxisMapping" "4 5"
# Option "AccelerationProfile" "2"
# Option "AccelerationNumerator" "5"
# Option "AccelerationDenominator" "3"
# Option "AccelerationThreshold" "4"
# Option "AdaptiveDeceleration" "2"
# ''
# ''
# Identifier "Mouse"
# MatchIsPointer "yes"
# # set the following to 1 1 0 respectively to disable acceleration.
# Option "AccelerationNumerator" "2"
# Option "AccelerationDenominator" "1"
# Option "AccelerationThreshold" "4"
# ''
# ];
# moduleSection = ''
# # custom setup
# Load "glx"
# Load "dbe"
# Load "extmod"
# Load "dri"
# '';
# monitorSection = ''
# # custom setup
# Option "DPMS" "false"
# Option "PreferredMode" "1920x1080"
# DisplaySize 309 173
# '';
# screenSection = ''
# DefaultDepth 24
# '';
# serverFlagsSection = ''
# # custom setup
# # Option "DefaultServerLayout" "Layout[all]"
# Option "AIGLX" "true"
# Option "VTSysReq" "True"
# Option "Xinerama" "true"
# Option "DRI2" "true"
# Option "GlxVisuals" "all"
# Option "StandbyTime" "0"
# Option "SuspendTime" "0"
# Option "OffTime" "0"
# Option "BlankTime" "0"
# '';
# serverLayoutSection = ''
# # custom setup
# # Option "AutoAddDevices" "false"
# Option "AutoAddDevices" "true"
# Option "AutoAddGPU" "false"
# Option "AIGLX" "true"
# Option "IsolateDevice" "PCI:0:2:0"
# '';
# config = ''
# Section "Extensions"
# Option "Composite" "Enable"
# EndSection
# '';
desktopManager = {
kde4.enable = false;
xterm.enable = false;
default = "none";
};
displayManager.slim = {
enable = true;
defaultUser = "netsu";
# autoLogin = true;
# hideCursor = true;
};
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
};
};
# services.mingetty.autologinUser = "netsu";
services.gnome3.at-spi2-core.enable = true;
services.acpid.enable = true;
services.hdapsd.enable = true;
# services.fprintd.enable = true;
# services.thinkfan.enable = true;
# services.thinkfan.sensor = "/sys/class/hwmon/hwmon0/temp1_input";
powerManagement.enable = true;
# powerManagement.cpuFreqGovernor = "ondemand";
# powerManagement.cpuFreqGovernor = "performance";
hardware = {
opengl = {
extraPackages = with pkgs; [ vaapiIntel vaapiVdpau ];
driSupport32Bit = true;
s3tcSupport = true;
};
bumblebee.enable = true;
# bluetooth.enable = true;
trackpoint.sensitivity = 255;
# trackpoint.speed = 255;
# firmware = [ pkgs.linuxPackages_4_6.mt7601 ];
enableAllFirmware = true;
pulseaudio = {
enable = true;
support32Bit = true;
package = pkgs.pulseaudioFull;
};
};
# Docker
virtualisation.docker.enable = true;
# User account
users.extraUsers.netsu = {
isNormalUser = true;
name = "netsu";
description = "Yuriy Pitomets";
group = "users";
extraGroups = [ "wheel" "network" "disk" "audio" "video" "docker" ];
uid = 1000;
createHome = true;
home = "/home/netsu";
hashedPassword = "RXBFfJzQ59q6Q";
};
users.mutableUsers = false;
users.extraUsers.root = {
hashedPassword = null;
initialHashedPassword = null;
initialPassword = null;
password = null;
passwordFile = null;
};
services.openssh.permitRootLogin = "no";
# Make Zsh the default shell system-wide
users.defaultUserShell = "/run/current-system/sw/bin/zsh";
}
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, ... }:
{
imports =
[ <nixpkgs/nixos/modules/installer/scan/not-detected.nix>
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/e8bdbe84-699e-463b-a87d-672bb119e256";
fsType = "ext3";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/B1CF-2B2C";
fsType = "vfat";
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/9d442fc1-49c5-4ee3-b9e3-e66889f8199f";
fsType = "ext4";
};
fileSystems."/tmp" =
{ device = "tmpfs";
fsType = "tmpfs";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/0fbae3fc-9c64-45b0-80a1-c69913291ad1"; }
];
nix.maxJobs = lib.mkDefault 8;
}
-- ~/.xmonad/xmobar.hs
Config {
font = "xft:Inconsolata LGC:size=8.6:style=Medium",
additionalFonts = ["xft:Inconsolata:size=10:style=Bold","xft:FontAwesome:size=7.5"],
bgColor = "#eee8d5",
fgColor = "#657b83",
position = TopW L 100,
lowerOnStart = True,
commands = [
Run Date "%a %b %_d %_H:%M" "date" 10,
Run Kbd [ ("us(dvp)" , "<fc=#cb4b16>DV</fc>")
, ("ru(winkeys)", "<fc=#dc322f>RU</fc>")
],
Run Battery [ "-t", "<fn=2></fn> <acstatus>"
, "-L", "25"
, "-H", "75"
, "-h", "#859900"
, "-n", "#b58900"
, "-l", "#dc322f"
, "--"
, "-o", "<left>% (<timeleft>)"
, "-O", "<left>% <fc=#cb4b16><fn=2></fn></fc>"
, "-i", "<fc=#859900><fn=2></fn></fc>"] 30,
Run Volume "default" "Master" [ "--template", "<fn=2></fn> <volume>%" -- " <status>" -- mute status
, "--"
, "-O", "<fn=2></fn>"
, "-o", "<fn=2></fn>"
, "-C", "#859900"
, "-c", "#dc322f"
, "--highd", "-5.0"
, "--lowd", "-30.0"
] 5,
Run Wireless "wlp4s0" [ "-a", "l"
, "-w", "4"
, "-t", "<fn=2></fn> <essid><quality>%"
, "-L", "50"
, "-H", "75"
, "-l", "#dc322f"
, "-n", "#cb4b16"
, "-h", "#859900"
] 10,
Run DynNetwork [ "--template", "<fn=2></fn> <tx> <fn=2></fn> <rx> kB/s"
, "--Low", "1000"
, "--High", "5000"
, "--low", "#859900"
, "--normal", "#cb4b16"
, "--high", "#dc322f"
] 10,
Run Memory [ "-t", "<fn=2></fn> <usedratio>%"
, "-H", "8192"
, "-L", "4096"
, "-h", "#dc322f"
, "-l", "#859900"
,"-n", "#839496"] 10,
Run Swap [ "-t", "<fn=2></fn> <usedratio>%"
, "-H", "1024"
, "-L", "512"
, "-h", "#dc322f"
, "-l", "#859900"
, "-n", "#839496"] 10,
Run DiskIO [ ("/", "<fn=2></fn> <total>")
, ("/home", "<fn=2></fn> <total>")] [] 10,
Run MultiCpu [ "-t", "<fn=2></fn> <total0><total1><total2><total3><total4><total5><total6><total7>"
, "-L", "30"
, "-H", "60"
, "-h", "#dc322f"
, "-l", "#859900"
, "-n", "#839496"
, "-w", "3"] 10,
Run UnsafeStdinReader
],
sepChar = "%",
alignSep = "}{",
template = "%UnsafeStdinReader% }{ %multicpu% %diskio% %swap% %memory% %dynnetwork% %wlp4s0wi% %default:Master% %battery% %kbd% <fc=#fdf6e3>|</fc> <fn=1><fc=#2aa198>%date%</fc></fn> "
}
-- ~/.xmonad/xmonad.hs
import System.Exit
import System.IO
import XMonad
import XMonad.Actions.Commands
import XMonad.Actions.CycleWindows
import XMonad.Actions.CycleWS
import XMonad.Actions.UpdatePointer
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.SetWMName
import XMonad.Hooks.UrgencyHook
-- import XMonad.Actions.MouseResize
-- import XMonad.Actions.DynamicWorkspaces
import XMonad.Layout.Fullscreen hiding
(fullscreenEventHook)
-- import XMonad.Layout.BorderResize
import XMonad.Layout.NoBorders
-- import XMonad.Layout.Grid
-- import XMonad.Layout.Spiral
-- import XMonad.Layout.Circle
import XMonad.Layout.ResizableTile
-- import XMonad.Layout.MouseResizableTile
import XMonad.Layout.MultiColumns
import XMonad.Layout.MultiToggle
import XMonad.Layout.MultiToggle.Instances
import XMonad.Layout.Tabbed
-- import XMonad.Layout.ThreeColumns
import XMonad.Layout.Spacing
-- import XMonad.Layout.WindowArranger
import Data.List (isPrefixOf)
import qualified Data.Map as M
import Data.Maybe (isJust)
import Graphics.X11.ExtraTypes.XF86
import XMonad.Core (whenJust)
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig (additionalKeys)
import XMonad.Util.Run (spawnPipe)
------------------------------------------------------------------------
-- Terminal
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
--
myTerminal = "urxvt"
------------------------------------------------------------------------
-- Workspaces
-- The default number of workspaces (virtual screens) and their names.
--
-- myWorkspaces = {- clickable . (map xmobarEscape) $ -} ["<fn=2>\xf120</fn>","<fn=2>\xf0ac</fn>","<fn=2>\xf0ad</fn>","<fn=2>\xf0eb</fn>","<fn=2>\xf085</fn>"] ++ map show [6..12]
named_ws = [ "<fn=2>\xf120</fn>" -- term
, "<fn=2>\xf121</fn>" -- code
, "<fn=2>\xf0ac</fn>" -- web
, "<fn=2>\xf0ad</fn>" -- sys
, "<fn=2>\xf0eb</fn>" -- chat
, "<fn=2>\xf085</fn>" -- media
, "<fn=2>\xf1fc</fn>" -- art
]
myWorkspaces = clickable workspaces
where
workspaces = named_ws ++ unnamed_ws
unnamed_ws = let l = length named_ws
s = max 0 $ 12 - l
in take s [[c] | c <- ['Α'..]]
clickable ws = [ "<action=wmctrl -s " ++ w ++ ">"
++ wrap "." "." name ++
"</action>"
| (n, name) <- zip [1..length named_ws] ws
, let w = show $ n - 1
]
------------------------------------------------------------------------
-- Window rules
-- Execute arbitrary actions and WindowSet manipulations when managing
-- a new window. You can use this to, for example, always float a
-- particular program, or have a client always appear on a particular
-- workspace.
--
-- To find the property name associated with a program, use
-- > xprop | grep WM_CLASS
-- and click on the client you're interested in.
--
-- To match on the WM_NAME, you can use 'title' in the same way that
-- 'className' and 'resource' are used below.
--
myManageHook = composeAll [] {-
[ className =? "Chromium" --> doShift (named_ws !! 2)
, className =? "Google-chrome" --> doShift (named_ws !! 2)
, className =? "conkeror" --> doShift (named_ws !! 2)
, className =? "firefox" --> doShift (named_ws !! 2)
, className =? "Nightly" --> doShift (named_ws !! 2)
, resource =? "desktop_window" --> doIgnore
, className =? "Steam" --> doFloat
, className =? "Gimp" --> doShift (named_ws !! 5)
, className =? "Inkscape" --> doShift (named_ws !! 5)
, className =? "MPlayer" --> doFloat
, className =? "VirtualBox" --> doShift (named_ws !! 5)
, className =? "Xchat" --> doShift (named_ws !! 4)
, className =? "Skype" --> doShift (named_ws !! 4)
, className =? "Emacs" --> doShift (named_ws !! 3)
, className =? "stalonetray" --> doIgnore
, isFullscreen --> (doF W.focusDown <+> doFullFloat)
]
-}
------------------------------------------------------------------------
-- Layouts
-- You can specify and transform your layouts by modifying these values.
-- If you change layout bindings be sure to use 'mod-shift-space' after
-- restarting (with 'mod-q') to reset your layout state to the new
-- defaults, as xmonad preserves your old layout settings by default.
--
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
--
-- TODO: merge behaviour of MultiCol and MouseResizableTile
myLayout =
mkToggle (NOBORDERS ?? SMARTBORDERS ?? NBFULL ?? EOT) . avoidStruts . smartBorders . mkToggle (single MIRROR) $
spacing 5 (ResizableTall 1 delta ratio [])
-- spacing 5 (mouseResizableTile { fracIncrement = delta, masterFrac = ratio, slaveFrac = 0.2, draggerType = BordersDragger }) -- FIXME: mouse focus
-- ||| spacing 5 (mouseResizableTile { fracIncrement = delta, masterFrac = ratio, slaveFrac = 0.2, draggerType = BordersDragger, isMirrored = True })
||| spacing 5 (multiCol [1] 1 delta (-0.5)) -- Many equal columns!
-- ||| spacing 5 (Mirror $ multiCol [1] 1 delta (-0.5))
-- ||| ThreeColMid 1 delta ratio
-- ||| Circle
-- ||| Grid
-- ||| spiral ratio
||| tabbed shrinkText tabConfig
-- ||| Full
-- ) ||| noBorders (fullscreenFull Full)
where
ratio = toRational $ 2 / (1 + sqrt 5 :: Double)
delta = 0.03
------------------------------------------------------------------------
-- Colors and borders
-- Currently based on the ir_black theme.
--
myNormalBorderColor = "#eee8d5"
myFocusedBorderColor = "#839496"
-- Colors for text and backgrounds of each tab when in "Tabbed" layout.
tabConfig = def
{ activeBorderColor = "#eee8d5"
, activeTextColor = "#657b83"
, activeColor = "#fdf6e3"
, inactiveBorderColor = "#839496"
, inactiveTextColor = "#839496"
, inactiveColor = "#eee8d5"
, fontName = "xft:Inconsolata LGC-8.6"
, decoHeight = 18
}
-- Color of current window title in xmobar.
xmobarTitleColor = "#93a1a1"
-- Color of current workspace in xmobar.
xmobarCurrentWorkspaceColor = "#cb4b16"
-- Width of the window border in pixels.
myBorderWidth = 0
------------------------------------------------------------------------
-- Key bindings
--
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
--
myModMask = mod4Mask
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
----------------------------------------------------------------------
-- Custom key bindings
--
-- Start a terminal. Terminal to start is specified by myTerminal variable.
[ ((modMask .|. shiftMask, xK_Return)
, spawn $ XMonad.terminal conf)
-- Lock the screen using xscreensaver.
, ((modMask .|. controlMask, xK_l)
, spawn "xscreensaver-command -lock")
-- Launch clipmenu clipboard manager.
-- , ((modMask .|. shiftMask, xK_v)
-- , spawn "$(clipmenu -p 'copy:')")
-- Launch dmenu via yeganesh.
-- Use this to launch programs without a key binding.
-- , ((modMask, xK_p)
-- , spawn "$(yeganesh -x -- -p 'run:')")
-- Launch rofi run.
-- Use this to launch programs without a key binding.
, ((modMask, xK_r)
, spawn "$(rofi -show run)")
-- Launch gmrun.
-- , ((modMask .|. shiftMask, xK_p)
-- , spawn "gmrun")
-- Take a screenshot in select mode.
-- After pressing this key binding, click a window, or draw a rectangle with
-- the mouse.
, ((modMask, xK_Print)
, spawn "sleep 0.3 ; scrot -s -b \"$HOME/Pictures/%Y-%m-%d-%H%M%S_\\$wx\\$h.png\" -e \"xdg-open \\$f\"")
-- Take full screenshot in multi-head mode.
-- That is, take a screenshot of everything you see.
, ((modMask .|. shiftMask, xK_Print)
, spawn "scrot -m \"$HOME/Pictures/%Y-%m-%d-%H%M%S_\\$wx\\$h.png\" -e \"xdg-open \\$f\"")
-- Fetch a single use password.
, ((modMask .|. shiftMask, xK_o)
, spawn "fetchotp -x")
-- Mute volume.
-- , ((0, xF86XK_AudioMute)
-- , spawn "amixer -q set Master toggle")
-- Decrease volume.
, ((0, xF86XK_AudioLowerVolume)
, spawn "amixer -q set Master 5%- && ${SHELL} ~/.xmonad/getvolume.sh >> /tmp/.volume-pipe")
-- Increase volume.
, ((0, xF86XK_AudioRaiseVolume)
, spawn "amixer -q set Master 5%+ && ${SHELL} ~/.xmonad/getvolume.sh >> /tmp/.volume-pipe")
-- Audio previous.
, ((0, 0x1008FF16)
, spawn "")
-- Play/pause.
, ((0, 0x1008FF14)
, spawn "")
-- Audio next.
, ((0, 0x1008FF17)
, spawn "")
-- Eject CD tray.
, ((0, 0x1008FF2C)
, spawn "eject -T")
--------------------------------------------------------------------
-- "Standard" xmonad key bindings
--
-- Close focused window.
, ((modMask .|. shiftMask, xK_c)
, kill)
-- Cycle through the available layout algorithms.
, ((modMask, xK_space)
, sendMessage NextLayout)
-- Reset the layouts on the current workspace to default.
, ((modMask .|. shiftMask, xK_space)
, setLayout $ XMonad.layoutHook conf)
-- Resize viewed windows to the correct size.
, ((modMask, xK_n)
, refresh)
-- Next / Previous workspace
-- , ((modMask .|. shiftMask, xK_Page_Down), do
-- shiftToNext
-- nextWS)
-- , ((modMask .|. shiftMask, xK_Page_Up), do
-- shiftToPrev
-- prevWS)
, ((modMask, xK_Page_Down), nextWS)
, ((modMask, xK_Page_Up), prevWS)
, ((modMask .|. controlMask, xK_Page_Down), shiftToNext)
, ((modMask .|. controlMask, xK_Page_Up), shiftToPrev)
, ((modMask .|. shiftMask, xK_Page_Down), shiftToNext >> nextWS)
, ((modMask .|. shiftMask, xK_Page_Up), shiftToPrev >> prevWS)
-- , ((modMask, xK_Down), nextScreen)
-- , ((modMask, xK_Up), prevScreen)
-- , ((modMask .|. controlMask, xK_Down), shiftNextScreen >> nextScreen)
-- , ((modMask .|. controlMask, xK_Up), shiftPrevScreen >> prevScreen)
, ((modMask .|. mod1Mask, xK_s), toggleWS)
-- , ((modMask .|. shiftMask, xK_Page_Down), do
-- shiftNextScreen
-- nextScreen)
-- , ((modMask .|. shiftMask, xK_Page_Up), do
-- shiftPrevScreen
-- prevScreen)
-- Move focus to the next window.
, ((modMask, xK_g)
, spawn "$(rofi -show window)")
-- Move focus to the previous window.
-- , ((modMask, xK_Tab)
-- , cycleRecentWindows [xK_Super_L] xK_Shift_R xK_Tab)
-- Move focus to the next window.
, ((modMask, xK_k)
, windows W.focusDown)
, ((modMask .|. shiftMask, xK_Tab)
, windows W.focusDown)
-- Move focus to the previous window.
, ((modMask, xK_j)
, windows W.focusUp )
, ((modMask, xK_Tab)
, windows W.focusUp )
-- Move focus to the master window.
, ((modMask, xK_m)
, windows W.focusMaster)
-- Swap the focused window and the master window.
, ((modMask, xK_Return)
, windows W.swapMaster)
-- Swap the focused window with the next window.
, ((modMask .|. shiftMask, xK_k)
, windows W.swapDown )
-- Swap the focused window with the previous window.
, ((modMask .|. shiftMask, xK_j)
, windows W.swapUp )
-- Shrink the master area.
, ((modMask, xK_h)
, sendMessage Shrink)
-- Expand the master area.
, ((modMask, xK_l)
, sendMessage Expand)
-- Mirror toggle
, ((modMask, xK_x)
, sendMessage $ Toggle MIRROR)
-- Full toggle
, ((modMask, xK_f)
, sendMessage $ Toggle NBFULL)
-- Borders style toggle
, ((modMask, xK_d)
, sendMessage (Toggle NOBORDERS) >> sendMessage (Toggle SMARTBORDERS)) -- FIXME not work
-- Vertical shrink
, ((modMask, xK_u)
, sendMessage MirrorShrink)
-- Vertical expand
, ((modMask, xK_i)
, sendMessage MirrorExpand)
-- -- %! Shrink a slave area
-- , ((modMask, xK_u)
-- , sendMessage ShrinkSlave)
-- -- %! Expand a slave area
-- , ((modMask, xK_i)
-- , sendMessage ExpandSlave)
-- Push window back into tiling.
, ((modMask, xK_t)
, withFocused $ windows . W.sink)
-- Increment the number of windows in the master area.
, ((modMask, xK_comma)
, sendMessage (IncMasterN 1))
-- Decrement the number of windows in the master area.
, ((modMask, xK_period)
, sendMessage (IncMasterN (-1)))
-- Toggle the status bar gap.
-- TODO: update this binding with avoidStruts, ((modMask, xK_b),
-- Toggle the status bar gap
-- Use this binding with avoidStruts from Hooks.ManageDocks.
-- See also the statusBar function from Hooks.DynamicLog.
--
, ((modMask, xK_b )
, sendMessage ToggleStruts)
-- Quit xmonad.
, ((modMask .|. shiftMask, xK_Escape)
, io (exitWith ExitSuccess))
-- Restart xmonad.
, ((modMask, xK_Escape)
, restart "xmonad" True)
]
++
-- mod-[F1..F9], Switch to workspace N
-- mod-shift-[F1..F9], Move client to workspace N
[((m .|. modMask, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_F1 .. xK_F9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
-- -- mod-[1..9], Switch to workspace N
-- -- mod-shift-[1..9], Move client to workspace N
-- [((m .|. modMask, k), windows $ f i)
-- | (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
-- , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
-- ++
-- -- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- -- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
-- [((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
-- | (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
-- , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
------------------------------------------------------------------------
-- Mouse bindings
--
-- Focus rules
-- True if your focus should follow your mouse cursor.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
[
-- mod-button1, Set the window to floating mode and move by dragging
((modMask, button1),
(\w -> focus w >> mouseMoveWindow w))
-- mod-button2, Raise the window to the top of the stack
, ((modMask, button2),
(\w -> focus w >> windows W.swapMaster))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modMask, button3),
(\w -> focus w >> mouseResizeWindow w))
-- you may also bind events to the mouse scroll wheel (button4 and button5)
]
------------------------------------------------------------------------
-- Status bars and logging
-- Perform an arbitrary action on each internal state change or X event.
-- See the 'DynamicLog' extension for examples.
--
-- To emulate dwm's status bar
--
-- > logHook = dynamicLogDzen
--
------------------------------------------------------------------------
-- Startup hook
-- Perform an arbitrary action each time xmonad starts or is restarted
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
-- per-workspace layout choices.
--
-- By default, do nothing.
myStartupHook = do
spawn "xsetroot -cursor_name left_ptr"
spawn "feh --bg-fill ~/Pictures/nixos_haskell.png"
spawn "ps cax | grep compton ; if ! [ $? -eq 0 ]; then optirun compton; fi"
spawn "ps cax | grep stalonetray ; if ! [ $? -eq 0 ]; then stalonetray; fi"
spawn "ps cax | grep unclutter ; if ! [ $? -eq 0 ]; then unclutter; fi"
-- spawn "ps cax | grep clipmenud ; if ! [ $? -eq 0 ]; then clipmenud; fi"
-- spawn "export XMONAD_VOLUME_PIPE=/tmp/.volume-pipe ; if ! [ -p $XMONAD_VOLUME_PIPE ] ; then ; mkfifo $XMONAD_VOLUME_PIPE ; fi && ${SHELL} ~/.xmonad/getvolume.sh >> $XMONAD_VOLUME_PIPE"
------------------------------------------------------------------------
-- Run xmonad with all the defaults we set up.
--
main = do
xmproc <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
xmonad $ withUrgencyHook NoUrgencyHook
$ ewmh defaults { logHook = do
winset <- gets windowset
dynamicLogWithPP $
let rep' _ _ [] = []
rep' a b s@(x:xs) = if a `isPrefixOf` s
then b ++ (drop (length a) s)
else x:rep' a b xs
rep _ _ [] = []
rep a b s@(x:xs) = if a `isPrefixOf` s
then b ++ rep a b (drop (length a) s)
else x:rep a b xs
wrap' a b = rep' "." b . rep' "." a
in xmobarPP { ppOutput = let strip = rep "/fc> " "/fc>" . rep "/action> " "/action>" -- TODO: less hacky
in hPutStrLn xmproc . strip
, ppTitle = xmobarColor xmobarTitleColor "" . (if isJust (W.peek winset) then ("<action=wmctrl -c :ACTIVE:><fc=#6c71c4><fn=2>\xf00d</fn> </fc></action><action=wmctrl -b toggle,hidden -r :ACTIVE:><fc=#268bd2><fn=2>\xf068</fn> </fc></action><action=wmctrl -b toggle,fullscreen -r :ACTIVE:><fc=#859900><fn=2>\xf067</fn> </fc></action> " ++) else id) . shorten 95
, ppCurrent = xmobarColor xmobarCurrentWorkspaceColor "" . wrap' "[" "]"
, ppVisible = wrap' "(" ")"
, ppSep = " "
, ppLayout = \x -> case x of
"Mosaic" -> "│:│"
"Spacing 5 ResizableTall" -> "│A│"
"Mirror Spacing 5 ResizableTall" -> "│M│"
"Tabbed Simplest" -> "│T│"
"Full" -> "│ │"
"Grid" -> "│#│"
"Circle" -> "│O│"
"Spacing 5 MultiCol" -> "│I│"
"Mirror Spacing 5 MultiCol" -> "│-│"
"Spiral" -> "│@│"
_ -> x
, ppHidden = wrap' "°" " "
, ppHiddenNoWindows = rep "." " " -- . showNamedWorkspaces
}
updatePointer (0, 0) (0, 0) -- Nearest
, manageHook = manageDocks <+> myManageHook
, startupHook = myStartupHook <+> setWMName "LG3D" -- compatability with Java apps
, handleEventHook = handleEventHook def <+> fullscreenEventHook
}
where
showNamedWorkspaces wsId = if any (`elem` wsId) ['a'..'z']
then pad wsId
else ""
------------------------------------------------------------------------
-- Combine it all together
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
-- use the defaults defined in xmonad/XMonad/Config.hs
--
-- No need to modify this.
--
defaults = def
{ terminal = myTerminal
, focusFollowsMouse = myFocusFollowsMouse
, borderWidth = myBorderWidth
, modMask = myModMask
, workspaces = myWorkspaces
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor
-- key bindings
, keys = myKeys
, mouseBindings = myMouseBindings
-- hooks, layouts
, layoutHook = myLayout
, manageHook = myManageHook
, startupHook = myStartupHook
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment