Initial commit

This commit is contained in:
Felix Suchert 2020-12-21 15:13:39 +01:00
commit bac7cdd09b
Signed by: feliix42
GPG key ID: 24363525EA0E8A99
233 changed files with 9708 additions and 0 deletions

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
entropy/mail/.mbsyncrc
entropy/mail/.msmtprc
entropy/mail/neomutt/signature.txt
entropy/mail/neomutt/notmuch-hook.sh
entropy/mail/neomutt/whoami.muttrc
entropy/vpn/credentials.txt

9
.gitmodules vendored Normal file
View file

@ -0,0 +1,9 @@
[submodule "entropy/kitty/kitty-themes"]
path = entropy/kitty/kitty-themes
url = git@github.com:dexpota/kitty-themes.git
[submodule "entropy/mail/neomutt/themes/powerline"]
path = entropy/mail/neomutt/themes/powerline
url = git@github.com:sheoak/neomutt-powerline-nerdfonts.git
[submodule "entropy/mail/neomutt/themes/dracula"]
path = entropy/mail/neomutt/themes/dracula
url = https://github.com/dracula/mutt.git

27
entropy/.gitconfig Normal file
View file

@ -0,0 +1,27 @@
[user]
email = dev@felixwittwer.de
name = Felix Wittwer
signingkey = F8634A1CFF7D61608503A70B24363525EA0E8A99
[push]
default = simple
[pull]
rebase = true
[commit]
gpgSign = true
template = ~/.gitcommit_template
[core]
pager = delta
[pull]
rebase = true
[interactive]
diffFilter = delta --color-only
[delta]
features = side-by-side line-numbers decorations
whitespace-error-style = 22 reverse
[delta "decorations"]
commit-decoration-style = bold yellow box ul
file-style = bold yellow ul
file-decoration-style = none

1
entropy/.urlview Normal file
View file

@ -0,0 +1 @@
COMMAND xdg-open

95
entropy/.vimrc Normal file
View file

@ -0,0 +1,95 @@
filetype plugin indent on
syntax on
" enable autocompletion of ale
let g:ale_completion_enabled = 1
" disable latex linting from ale as i've got my own plugin for that
let g:ale_linters = { 'tex': []}
" Initialize plugin system
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/morhetz/gruvbox
Plug 'morhetz/gruvbox'
" Any valid git URL is allowed
Plug 'https://github.com/scrooloose/nerdcommenter.git'
" On-demand loading
Plug 'rust-lang/rust.vim', { 'for': 'rust' }
Plug 'vim-syntastic/syntastic'
Plug 'cespare/vim-toml', { 'for': 'toml' }
Plug 'vim-airline/vim-airline'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'keith/swift.vim', { 'for': 'swift' }
Plug 'justinmk/vim-sneak'
Plug 'lervag/vimtex'
Plug 'editorconfig/editorconfig-vim'
Plug 'LnL7/vim-nix'
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" ale language server client
Plug 'dense-analysis/ale'
" Initialize plugin system
call plug#end()
set laststatus=2
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
" possible setting as alternative for easymotion
" let g:sneak#label = 1
set backspace=indent,eol,start
" map the leader key to ,
let mapleader=","
" set filetypes
au BufRead,BufNewFile *.ohuac setfiletype rust
au BufRead,BufNewFile *.ohuao setfiletype json
" Cycling through windows and tabs -- made by Pius :D
" nnoremap j <C-W><C-J>
" nnoremap k <C-W><C-K>
" nnoremap l <C-W><C-L>
" nnoremap h <C-W><C-H>
" nnoremap <C-J> <C-W><C-J><C-W>_
" nnoremap <C-K> <C-W><C-K><C-W>_
" nnoremap <C-L> <C-W><C-L><C-W>\|
" nnoremap <C-H> <C-W><C-H><C-W>\|
map <C-H> :tabp<Enter>
map <C-L> :tabn<Enter>
" fix auto-completion
set wildmenu " show a completion menu
set wildignorecase
set wildignore=*.o,*~,*.pyc,*.aux,*.bbl,*.blg,*-blx.bib,*.log,*.out,*.run.xml,
\*.toc,*.nav,*.snm " ignore auxiliary files
" set completeopt-=preview
" tex configuration
let g:tex_flavor='latex'
" Optics
colorscheme gruvbox
set background=dark " Setting dark mode
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
" Search
set hlsearch " Highlight all search results
set smartcase " Enable smart-case search
set ignorecase " Always case-insensitive
set incsearch " Searches for strings incrementally

6
entropy/config.fish Normal file
View file

@ -0,0 +1,6 @@
# use fancier version of ls
alias ls="lsd"
alias l="lsd -la"
# useful shortcut
alias calculator="python3 -i -c 'from math import *'"

431
entropy/dunst/dunstrc Normal file
View file

@ -0,0 +1,431 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x5-30+20"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
# Padding between text and separator.
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
### Text ###
font = Monospace 8
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <https://developer.gnome.org/pango/stable/pango-Markup.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = left
# Scale small icons up to this size, set to 0 to disable. Helpful
# for e.g. small files or high-dpi screens. In case of conflict,
# max_icon_size takes precedence over this.
min_icon_size = 0
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 32
# Paths to default icons.
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /run/current-system/sw/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /run/current-system/sw/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# Manage dunst's desire for talking
# Can be one of the following values:
# crit: Critical features. Dunst aborts
# warn: Only non-fatal warnings
# mesg: Important Messages
# info: all unimportant stuff
# debug: all less than unimportant stuff
verbosity = mesg
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Ignore the dbus closeNotification message.
# Useful to enforce the timeout set by dunst configuration. Without this
# parameter, an application may close the notification sent before the
# user defined timeout.
ignore_dbusclose = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
### mouse
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: If the notification has exactly one action, or one is marked as default,
# invoke it. If there are multiple and no default, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#285577"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#900000"
foreground = "#ffffff"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
#
# Messages can be matched by
# appname (discouraged, see desktop_entry)
# body
# category
# desktop_entry
# icon
# match_transient
# msg_urgency
# stack_tag
# summary
#
# and you can override the
# background
# foreground
# format
# frame_color
# fullscreen
# new_icon
# set_stack_tag
# set_transient
# timeout
# urgency
#
# Shell-like globbing will get expanded.
#
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
# GLib based applications export their desktop-entry name. In comparison to the appname,
# the desktop-entry won't get localized.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
# Disable the transient hint so that idle_threshold cannot be bypassed from the
# client
#[transient_disable]
# match_transient = yes
# set_transient = no
#
# Make the handling of transient notifications more strict by making them not
# be placed in history.
#[transient_history_ignore]
# match_transient = yes
# history_ignore = yes
# fullscreen values
# show: show the notifications, regardless if there is a fullscreen window opened
# delay: displays the new notification, if there is no fullscreen window active
# If the notification is already drawn, it won't get undrawn.
# pushback: same as delay, but when switching into fullscreen, the notification will get
# withdrawn from screen again and will get delayed like a new notification
#[fullscreen_delay_everything]
# fullscreen = delay
#[fullscreen_show_critical]
# msg_urgency = critical
# fullscreen = show
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[skip-display]
# # This notification will not be displayed, but will be included in the history
# summary = "foobar"
# skip_display = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
#[stack-volumes]
# appname = "some_volume_notifiers"
# set_stack_tag = "volume"
#
# vim: ft=cfg

View file

@ -0,0 +1,27 @@
# 50 Chars ---->|
# 72 Characters ---->|
# Type can be
# ✨ feat (new feature)
# 🐛 fix (bug fix)
# 📚 docs (changes to documentation)
# 🌹 style (formatting, missing semi colons, etc; no code change)
# 📝 refactor (refactoring production code)
# 🔍 test (adding missing tests, refactoring tests; no production code change)
# 💪 chore (updating grunt tasks etc; no production code change)
# 🚢 ship (bump a version; release)
# --------------------
# Remember to
# Separate subject from body with a blank line
# Limit the subject line to 50 characters
# Capitalize the subject line
# Do not end the subject line with a period
# Use the imperative mood in the subject line
# Wrap the body at 72 characters
# Use the body to explain what and why vs. how
# Can use multiple lines with "-" for bullet points in body
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

201
entropy/i3/config Normal file
View file

@ -0,0 +1,201 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec kitty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
# switch to workspace
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# screenshot shortcut
bindsym --release $mod+c exec scrot -f -s --border #'~/%Y-%m-%d-%H%M%S_$wx$h.png'
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status-rs
font pango:Fira Code, Font Awesome 5 Free
# font pango:DejaVu Sans Mono, FontAwesome 12
# position top
colors {
separator #666666
background #222222
statusline #dddddd
focused_workspace #0088CC #0088CC #ffffff
active_workspace #333333 #333333 #ffffff
inactive_workspace #333333 #333333 #888888
urgent_workspace #2f343a #900000 #ffffff
}
}
# automatically set the background image on startup
exec --no-startup-id feh --bg-fill /home/felix/Pictures/wall.jpg
# start notification server
exec --no-startup-id dunst &

View file

@ -0,0 +1,55 @@
theme = "gruvbox-dark"
icons = "awesome5"
#[[block]]
#block = "notmuch"
#query = "tag:unread"
#threshold_warning = 1
#threshold_critical = 10
#name = "A"
[[block]]
block = "maildir"
interval = 60
inboxes = ["/home/felix/.mail/tu-dresden/Inbox"]
threshold_warning = 1
threshold_critical = 10
display_type = "new"
[[block]]
block = "disk_space"
path = "/"
alias = "/"
info_type = "available"
unit = "GB"
interval = 20
warning = 20.0
alert = 10.0
[[block]]
block = "memory"
display_type = "memory"
format_mem = "{Mup}%"
format_swap = "{SUp}%"
[[block]]
block = "cpu"
interval = 1
[[block]]
block = "load"
interval = 1
format = "{1m}"
[[block]]
block = "sound"
[[block]]
block = "battery"
interval = 10
format = "{percentage}% {time}"
[[block]]
block = "time"
interval = 60
format = "%a %d.%m. %R"

96
entropy/initialize.sh Executable file
View file

@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -euo pipefail
printf '\033[33m
/$$
| $$
/$$$$$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$ /$$ /$$
/$$__ $$| $$__ $$|_ $$_/ /$$__ $$ /$$__ $$ /$$__ $$| $$ | $$
| $$$$$$$$| $$ \ $$ | $$ | $$ \__/| $$ \ $$| $$ \ $$| $$ | $$
| $$_____/| $$ | $$ | $$ /$$| $$ | $$ | $$| $$ | $$| $$ | $$
| $$$$$$$| $$ | $$ | $$$$/| $$ | $$$$$$/| $$$$$$$/| $$$$$$$
\_______/|__/ |__/ \___/ |__/ \______/ | $$____/ \____ $$
| $$ /$$ | $$
| $$ | $$$$$$/
|__/ \______/
This script will now install the dotfiles and configurations for `entropy`.
\033[39m'
printf '\033[31m[note] Note that you have to manually link the nixos configuration and rebuild the system before running this script.
\033[39m'
echo "[note] Please make sure a GPG private key is installed."
echo "[note] Finally, you should have a working ssh key in place to interact with github and other servers. Note that the existing SSH config will be overwritten."
read -p "Are you ready to go? [y/n] " ready
if [ $ready != "y" ]; then
exit
fi
# sudo -v
# general preparations
mkdir -p ~/.config
# set up pass
printf "\033[33m[info] Linking config files\033[39m"
# this must be run in the home network
git clone felix@decima:~/pass-backup ~/.password-store
# set up vim
printf "\033[33m[info] Setting up vim\033[39m"
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
ln -s $PWD/.vimrc ~/.vimrc
vim -c "PlugInstall"
# set up mail
printf "\033[33m[info] Configuring Neomutt - your GPG password may be required.\033[39m"
cd mail
# generate mbsyncrc
sed -e "s/{{PASSWORD}}/$(pass mail/tud | head -1)/" -e "s/{{USER}}/$(pass mail/tud-user)/" template.mbsyncrc > .mbsyncrc
sed -e "s/{{USER}}/$(pass mail/tud-user)/" template.msmtprc > .msmtprc
# link files
cd ..
ln -s $PWD/mail/neomutt/ ~/.config/neomutt
ln -s $PWD/mail/.mailcap ~/.mailcap
ln -s $PWD/mail/.mbsyncrc ~/.mbsyncrc
ln -s $PWD/mail/.msmtprc ~/.msmtprc
ln -s $PWD/mail/.notmuch-config ~/.notmuch-config
mkdir -p ~/.mail/tu-dresden
notmuch new
# set up openvpn connection
printf "\033[33m[info] Configuring OpenVPN\033[39m"
cd vpn
pass mail/tud-user | head -1 >> credentials.txt
pass mail/tud | head -1 >> credentials.txt
cd ..
ln -s $PWD/vpn ~/.config/vpn
# link other dotfiles
printf "\033[33m[info] Linking config files\033[39m"
ln -s $PWD/kitty/ ~/.config/kitty
ln -s $PWD/.urlview ~/.urlview
ln -s $PWD/.gitconfig ~/.gitconfig
ln -s $PWD/git-commit-template.txt ~/.gitcommit_template
mkdir -p ~/.config/fish/
ln -s $PWD/config.fish ~/.config/fish/config.fish
ln -s $PWD/i3 ~/.config/i3
ln -s $PWD/i3status-rust ~/.config/i3status-rust
ln -s $PWD/dunst ~/.config/dunst
# set default browser, enable redshift etc
printf "\033[33m[info] Setting up some defaults\033[39m"
xdg-settings set default-web-browser firefox.desktop
mkdir -p ~/.config/systemd/user/default.target.wants
touch ~/.config/systemd/user/default.target.wants/redshift.service

@ -0,0 +1 @@
Subproject commit fca3335489bdbab4cce150cb440d3559ff5400e2

899
entropy/kitty/kitty.conf Normal file
View file

@ -0,0 +1,899 @@
# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
#: Fonts {{{
#: kitty has very powerful font management. You can configure
#: individual font faces and even specify special fonts for particular
#: characters.
# font_family Fira Code
font_family Hack Nerd Font
# bold_font auto
# italic_font auto
# bold_italic_font auto
#: You can specify different fonts for the bold/italic/bold-italic
#: variants. By default they are derived automatically, by the OSes
#: font system. Setting them manually is useful for font families that
#: have many weight variants like Book, Medium, Thick, etc. For
#: example::
#: font_family Operator Mono Book
#: bold_font Operator Mono Medium
#: italic_font Operator Mono Book Italic
#: bold_italic_font Operator Mono Medium Italic
font_size 16.0
#: Font size (in pts)
# adjust_line_height 0
# adjust_column_width 0
#: Change the size of each character cell kitty renders. You can use
#: either numbers, which are interpreted as pixels or percentages
#: (number followed by %), which are interpreted as percentages of the
#: unmodified values. You can use negative pixels or percentages less
#: than 100% to reduce sizes (but this might cause rendering
#: artifacts).
# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols
#: Map the specified unicode codepoints to a particular font. Useful
#: if you need special rendering for some symbols, such as for
#: Powerline. Avoids the need for patched fonts. Each unicode code
#: point is specified in the form U+<code point in hexadecimal>. You
#: can specify multiple code points, separated by commas and ranges
#: separated by hyphens. symbol_map itself can be specified multiple
#: times. Syntax is::
#: symbol_map codepoints Font Family Name
# box_drawing_scale 0.001, 1, 1.5, 2
#: Change the sizes of the lines used for the box drawing unicode
#: characters These values are in pts. They will be scaled by the
#: monitor DPI to arrive at a pixel value. There must be four values
#: corresponding to thin, normal, thick, and very thick lines.
#: }}}
#: Cursor customization {{{
# cursor #cccccc
#: Default cursor color
# cursor_text_color #111111
#: Choose the color of text under the cursor. If you want it rendered
#: with the background color of the cell underneath instead, use the
#: special keyword: background
# cursor_shape block
#: The cursor shape can be one of (block, beam, underline)
cursor_blink_interval 0.5
cursor_stop_blinking_after 5.0
#: The interval (in seconds) at which to blink the cursor. Set to zero
#: to disable blinking. Note that numbers smaller than repaint_delay
#: will be limited to repaint_delay. Stop blinking cursor after the
#: specified number of seconds of keyboard inactivity. Set to zero to
#: never stop blinking.
#: }}}
#: Scrollback {{{
# scrollback_lines 2000
#: Number of lines of history to keep in memory for scrolling back.
#: Memory is allocated on demand. Negative numbers are (effectively)
#: infinite scrollback. Note that using very large scrollback is not
#: recommended a it can slow down resizing of the terminal and also
#: use large amounts of RAM.
# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
#: Program with which to view scrollback in a new window. The
#: scrollback buffer is passed as STDIN to this program. If you change
#: it, make sure the program you use can handle ANSI escape sequences
#: for colors and text formatting. INPUT_LINE_NUMBER in the command
#: line above will be replaced by an integer representing which line
#: should be at the top of the screen.
# wheel_scroll_multiplier 5.0
#: Modify the amount scrolled by the mouse wheel. Note this is only
#: used for low precision scrolling devices, not for high precision
#: scrolling on platforms such as macOS and Wayland. Use negative
#: numbers to change scroll direction.
#: }}}
#: Mouse {{{
# url_color #0087BD
# url_style curly
#: The color and style for highlighting URLs on mouse-over. url_style
#: can be one of: none, single, double, curly
# open_url_modifiers kitty_mod
#: The modifier keys to press when clicking with the mouse on URLs to
#: open the URL
# open_url_with default
#: The program with which to open URLs that are clicked on. The
#: special value default means to use the operating system's default
#: URL handler.
# copy_on_select no
#: Copy to clipboard on select. With this enabled, simply selecting
#: text with the mouse will cause the text to be copied to clipboard.
#: Useful on platforms such as macOS/Wayland that do not have the
#: concept of primary selections. Note that this is a security risk,
#: as all programs, including websites open in your browser can read
#: the contents of the clipboard.
# rectangle_select_modifiers ctrl+alt
#: The modifiers to use rectangular selection (i.e. to select text in
#: a rectangular block with the mouse)
# select_by_word_characters :@-./_~?&=%+#
#: Characters considered part of a word when double clicking. In
#: addition to these characters any character that is marked as an
#: alpha-numeric character in the unicode database will be matched.
# click_interval 0.5
#: The interval between successive clicks to detect double/triple
#: clicks (in seconds)
# mouse_hide_wait 3.0
#: Hide mouse cursor after the specified number of seconds of the
#: mouse not being used. Set to zero to disable mouse cursor hiding.
# focus_follows_mouse no
#: Set the active window to the window under the mouse when moving the
#: mouse around
#: }}}
#: Performance tuning {{{
# repaint_delay 10
#: Delay (in milliseconds) between screen updates. Decreasing it,
#: increases frames-per-second (FPS) at the cost of more CPU usage.
#: The default value yields ~100 FPS which is more than sufficient for
#: most uses. Note that to actually achieve 100 FPS you have to either
#: set sync_to_monitor to no or use a monitor with a high refresh
#: rate.
# input_delay 3
#: Delay (in milliseconds) before input from the program running in
#: the terminal is processed. Note that decreasing it will increase
#: responsiveness, but also increase CPU usage and might cause flicker
#: in full screen programs that redraw the entire screen on each loop,
#: because kitty is so fast that partial screen updates will be drawn.
# sync_to_monitor yes
#: Sync screen updates to the refresh rate of the monitor. This
#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
#: when scrolling. However, it limits the rendering speed to the
#: refresh rate of your monitor. With a very high speed mouse/high
#: keyboard repeat rate, you may notice some slight input latency. If
#: so, set this to no.
#: }}}
#: Terminal bell {{{
# enable_audio_bell yes
#: Enable/disable the audio bell. Useful in environments that require
#: silence.
# visual_bell_duration 0.0
#: Visual bell duration. Flash the screen when a bell occurs for the
#: specified number of seconds. Set to zero to disable.
# window_alert_on_bell yes
#: Request window attention on bell. Makes the dock icon bounce on
#: macOS or the taskbar flash on linux.
bell_on_tab yes
#: Show a bell symbol on the tab if a bell occurs in one of the
#: windows in the tab and the window is not the currently focused
#: window
#: }}}
#: Window layout {{{
# remember_window_size yes
# initial_window_width 640
# initial_window_height 400
#: If enabled, the window size will be remembered so that new
#: instances of kitty will have the same size as the previous
#: instance. If disabled, the window will initially have size
#: configured by initial_window_width/height, in pixels. You can use a
#: suffix of "c" on the width/height values to have them interpreted
#: as number of cells instead of pixels.
# enabled_layouts *
#: The enabled window layouts. A comma separated list of layout names.
#: The special value all means all layouts. The first listed layout
#: will be used as the startup layout. For a list of available
#: layouts, see the
#: https://sw.kovidgoyal.net/kitty/index.html#layouts.
# window_resize_step_cells 2
# window_resize_step_lines 2
#: The step size (in units of cell width/cell height) to use when
#: resizing windows. The cells value is used for horizontal resizing
#: and the lines value for vertical resizing.
# window_border_width 1.0
#: The width (in pts) of window borders. Will be rounded to the
#: nearest number of pixels based on screen resolution. Note that
#: borders are displayed only when more than one window is visible.
#: They are meant to separate multiple windows.
# draw_minimal_borders yes
#: Draw only the minimum borders needed. This means that only the
#: minimum needed borders for inactive windows are drawn. That is only
#: the borders that separate the inactive window from a neighbor. Note
#: that setting a non-zero window margin overrides this and causes all
#: borders to be drawn.
# window_margin_width 10.0
#: The window margin (in pts) (blank area outside the border)
# single_window_margin_width -1000.0
#: The window margin (in pts) to use when only a single window is
#: visible. Negative values will cause the value of
#: window_margin_width to be used instead.
# window_padding_width 0.0
#: The window padding (in pts) (blank area between the text and the
#: window border)
# active_border_color #00ff00
#: The color for the border of the active window
# inactive_border_color #cccccc
#: The color for the border of inactive windows
# bell_border_color #ff5a00
#: The color for the border of inactive windows in which a bell has
#: occurred
# inactive_text_alpha 1.0
#: Fade the text in inactive windows by the specified amount (a number
#: between zero and one, with zero being fully faded).
#: }}}
#: Tab bar {{{
# tab_bar_edge bottom
#: Which edge to show the tab bar on, top or bottom
# tab_bar_margin_width 0.0
#: The margin to the left and right of the tab bar (in pts)
# tab_bar_style fade
#: The tab bar style, can be one of: fade or separator. In the fade
#: style, each tab's edges fade into the background color, in the
#: separator style, tabs are separated by a configurable separator.
# tab_fade 0.25 0.5 0.75 1
#: Control how each tab fades into the background when using fade for
#: the tab_bar_style. Each number is an alpha (between zero and one)
#: that controls how much the corresponding cell fades into the
#: background, with zero being no fade and one being full fade. You
#: can change the number of cells used by adding/removing entries to
#: this list.
# tab_separator " ┇"
#: The separator between tabs in the tab bar when using separator as
#: the tab_bar_style.
# active_tab_foreground #000
# active_tab_background #eee
# active_tab_font_style bold-italic
# inactive_tab_foreground #444
# inactive_tab_background #999
# inactive_tab_font_style normal
#: Tab bar colors and styles
#: }}}
#: Color scheme {{{
# foreground #dddddd
background #202020
#: The foreground and background colors
# background_opacity 0.8
# dynamic_background_opacity no
#: The opacity of the background. A number between 0 and 1, where 1 is
#: opaque and 0 is fully transparent. This will only work if
#: supported by the OS (for instance, when using a compositor under
#: X11). Note that it only sets the default background color's
#: opacity. This is so that things like the status bar in vim,
#: powerline prompts, etc. still look good. But it means that if you
#: use a color theme with a background color in your editor, it will
#: not be rendered as transparent. Instead you should change the
#: default background color in your kitty config and not use a
#: background color in the editor color scheme. Or use the escape
#: codes to set the terminals default colors in a shell script to
#: launch your editor. Be aware that using a value less than 1.0 is a
#: (possibly significant) performance hit. If you want to dynamically
#: change transparency of windows set dynamic_background_opacity to
#: yes (this is off by default as it has a performance cost)
# dim_opacity 0.75
#: How much to dim text that has the DIM/FAINT attribute set. One
#: means no dimming and zero means fully dimmed (i.e. invisible).
# selection_foreground #000000
# selection_background #FFFACD
#: The foreground and background for text selected with the mouse
#: The 16 terminal colors. There are 8 basic colors, each color has a
#: dull and bright version. You can also set the remaining colors from
#: the 256 color table as color16 to color255.
# color0 #000000
# color8 #767676
#: black
# color1 #cc0403
# color9 #f2201f
#: red
# color2 #19cb00
# color10 #23fd00
#: green
# color3 #cecb00
# color11 #fffd00
#: yellow
# color4 #0d73cc
# color12 #1a8fff
#: blue
# color5 #cb1ed1
# color13 #fd28ff
#: magenta
# color6 #0dcdcd
# color14 #14ffff
#: cyan
# color7 #dddddd
# color15 #ffffff
#: white
#: }}}
#: Advanced {{{
# shell .
#: The shell program to execute. The default value of . means to use
#: whatever shell is set as the default shell for the current user.
#: Note that on macOS if you change this, you might need to add
#: --login to ensure that the shell starts in interactive mode and
#: reads its startup rc files.
# editor .
#: The console editor to use when editing the kitty config file or
#: similar tasks. A value of . means to use the environment variable
#: EDITOR. Note that this environment variable has to be set not just
#: in your shell startup scripts but system-wide, otherwise kitty will
#: not see it.
# close_on_child_death no
#: Close the window when the child process (shell) exits. If no (the
#: default), the terminal will remain open when the child exits as
#: long as there are still processes outputting to the terminal (for
#: example disowned or backgrounded processes). If yes, the window
#: will close as soon as the child process exits. Note that setting it
#: to yes means that any background processes still using the terminal
#: can fail silently because their stdout/stderr/stdin no longer work.
# allow_remote_control no
#: Allow other programs to control kitty. If you turn this on other
#: programs can control all aspects of kitty, including sending text
#: to kitty windows, opening new windows, closing windows, reading the
#: content of windows, etc. Note that this even works over ssh
#: connections.
# env
#: Specify environment variables to set in all child processes. Note
#: that environment variables are expanded recursively, so if you
#: use::
#: env MYVAR1=a
#: env MYVAR2=${MYVAR}/${HOME}/b
#: The value of MYVAR2 will be a/<path to home directory>/b.
# startup_session none
#: Path to a session file to use for all kitty instances. Can be
#: overridden by using the kitty --session command line option for
#: individual instances. See
#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty
#: documentation for details. Note that relative paths are interpreted
#: with respect to the kitty config directory. Environment variables
#: in the path are expanded.
# clipboard_control write-clipboard write-primary
#: Allow programs running in kitty to read and write from the
#: clipboard. You can control exactly which actions are allowed. The
#: set of possible actions is: write-clipboard read-clipboard write-
#: primary read-primary The default is to allow writing to the
#: clipboard and primary selection. Note that enabling the read
#: functionality is a security risk as it means that any program, even
#: one running on a remote server via SSH can read your clipboard.
# term xterm-kitty
#: The value of the TERM environment variable to set. Changing this
#: can break many terminal programs, only change it if you know what
#: you are doing, not because you read some advice on Stack Overflow
#: to change it. The TERM variable if used by various programs to get
#: information about the capabilities and behavior of the terminal. If
#: you change it, depending on what programs you run, and how
#: different the terminal you are changing it to is, various things
#: from key-presses, to colors, to various advanced features may not
#: work.
#: }}}
#: OS specific tweaks {{{
# macos_titlebar_color system
#: Change the color of the kitty window's titlebar on macOS. A value
#: of system means to use the default system color, a value of
#: background means to use the background color of the currently
#: active window and finally you can use an arbitrary color, such as
#: #12af59 or red. WARNING: This option works by using a hack, as
#: there is no proper Cocoa API for it. It sets the background color
#: of the entire window and makes the titlebar transparent. As such it
#: is incompatible with background_opacity. If you want to use both,
#: you are probably better off just hiding the titlebar with
#: macos_hide_titlebar.
# macos_hide_titlebar no
macos_hide_titlebar yes
#: Hide the kitty window's title bar on macOS.
# x11_hide_window_decorations no
#: Hide the window decorations (title bar and window borders) on X11
#: and Wayland. Whether this works and exactly what effect it has
#: depends on the window manager, as it is the job of the window
#: manager/compositor to draw window decorations.
macos_option_as_alt no
#: Use the option key as an alt key. With this set to no, kitty will
#: use the macOS native Option+Key = unicode character behavior. This
#: will break any Alt+key keyboard shortcuts in your terminal
#: programs, but you can use the macOS unicode input technique.
# macos_hide_from_tasks no
#: Hide the kitty window from running tasks (Option+Tab) on macOS.
# macos_quit_when_last_window_closed no
#: Have kitty quit when all the top-level windows are closed. By
#: default, kitty will stay running, even with no open windows, as is
#: the expected behavior on macOS.
# macos_window_resizable yes
#: Disable this if you want kitty top-level (OS) windows to not be
#: resizable on macOS.
# macos_thicken_font 0
#: Draw an extra border around the font with the given width, to
#: increase legibility at small font sizes. For example, a value of
#: 0.75 will result in rendering that looks similar to sub-pixel
#: antialiasing at common font sizes.
# macos_traditional_fullscreen no
#: Use the traditional full-screen transition, that is faster, but
#: less pretty.
# macos_custom_beam_cursor no
#: Enable/disable custom mouse cursor for macOS that is easier to see
#: on both light and dark backgrounds. WARNING: this might make your
#: mouse cursor invisible on dual GPU machines.
#: }}}
#: Keyboard shortcuts {{{
#: For a list of key names, see: GLFW keys
#: <http://www.glfw.org/docs/latest/group__keys.html>. The name to use
#: is the part after the GLFW_KEY_ prefix. For a list of modifier
#: names, see: GLFW mods
#: <http://www.glfw.org/docs/latest/group__mods.html>
#: On Linux you can also use XKB key names to bind keys that are not
#: supported by GLFW. See XKB keys
#: <https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-
#: keysyms.h> for a list of key names. The name to use is the part
#: after the XKB_KEY_ prefix. Note that you should only use an XKB key
#: name for keys that are not present in the list of GLFW keys.
#: Finally, you can use raw system key codes to map keys. To see the
#: system key code for a key, start kitty with the kitty --debug-
#: keyboard option. Then kitty will output some debug text for every
#: key event. In that text look for ``native_code`` the value of that
#: becomes the key name in the shortcut. For example:
#: .. code-block:: none
#: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
#: Here, the key name for the A key is 0x61 and you can use it with::
#: map ctrl+0x61 something
#: to map ctrl+a to something.
#: You can use the special action no_op to unmap a keyboard shortcut
#: that is assigned in the default configuration.
#: You can combine multiple actions to be triggered by a single
#: shortcut, using the syntax below::
#: map key combine <separator> action1 <separator> action2 <separator> action3 ...
#: For example::
#: map kitty_mod+e combine : new_window : next_layout
#: this will create a new window and switch to the next available
#: layout
#: You can use multi-key shortcuts using the syntax shown below::
#: map key1>key2>key3 action
#: For example::
#: map ctrl+f>2 set_font_size 20
# kitty_mod ctrl+shift
#: The value of kitty_mod is used as the modifier for all default
#: shortcuts, you can change it in your kitty.conf to change the
#: modifiers for all the default shortcuts.
# clear_all_shortcuts no
#: You can have kitty remove all shortcut definition seen up to this
#: point. Useful, for instance, to remove the default shortcuts.
#: Clipboard {{{
# map cmd+c copy_to_clipboard
# map kitty_mod+c copy_to_clipboard
# map cmd+v paste_from_clipboard
# map kitty_mod+v paste_from_clipboard
# map kitty_mod+s paste_from_selection
# map shift+insert paste_from_selection
# map kitty_mod+o pass_selection_to_program
#: You can also pass the contents of the current selection to any
#: program using pass_selection_to_program. By default, the system's
#: open program is used, but you can specify your own, for example::
#: map kitty_mod+o pass_selection_to_program firefox
#: You can pass the current selection to a terminal program running in
#: a new kitty window, by using the @selection placeholder::
#: map kitty_mod+y new_window less @selection
#: }}}
#: Scrolling {{{
# map kitty_mod+up scroll_line_up
# map kitty_mod+k scroll_line_up
# map kitty_mod+down scroll_line_down
# map kitty_mod+j scroll_line_down
# map kitty_mod+page_up scroll_page_up
# map kitty_mod+page_down scroll_page_down
# map kitty_mod+home scroll_home
# map kitty_mod+end scroll_end
# map kitty_mod+h show_scrollback
#: You can pipe the contents of the current screen + history buffer as
#: STDIN to an arbitrary program using the ``pipe`` function. For
#: example, the following opens the scrollback buffer in less in an
#: overlay window::
#: map f1 pipe @ansi overlay less +G -R
#: Placeholders available are: @text (which is plain text) and @ansi
#: (which includes text styling escape codes). For only the current
#: screen, use @screen or @ansi_screen. For the secondary screen, use
#: @alternate and @ansi_alternate. The secondary screen is the screen
#: not currently displayed. For example if you run a fullscreen
#: terminal application, the secondary screen will be the screen you
#: return to when quitting the application. You can also use ``none``
#: for no STDIN input.
#: To open in a new window, tab or new OS window, use ``window``,
#: ``tab``, or ``os_window`` respectively. You can also use ``none``
#: in which case the data will be piped into the program without
#: creating any windows, useful if the program is a GUI program that
#: creates its own windows.
#: }}}
#: Window management {{{
# map kitty_mod+enter new_window
#: You can open a new window running an arbitrary program, for
#: example::
#: map kitty_mod+y new_window mutt
#: You can open a new window with the current working directory set to
#: the working directory of the current window using::
#: map ctrl+alt+enter new_window_with_cwd
#: You can open a new window that is allowed to control kitty via the
#: kitty remote control facility by prefixing the command line with @.
#: Any programs running in that window will be allowed to control
#: kitty. For example::
#: map ctrl+enter new_window @ some_program
# map cmd+n new_os_window
# map kitty_mod+n new_os_window
# map kitty_mod+w close_window
# map kitty_mod+] next_window
# map kitty_mod+[ previous_window
# map kitty_mod+f move_window_forward
# map kitty_mod+b move_window_backward
# map kitty_mod+` move_window_to_top
# map kitty_mod+r start_resizing_window
# map kitty_mod+1 first_window
# map kitty_mod+2 second_window
# map kitty_mod+3 third_window
# map kitty_mod+4 fourth_window
# map kitty_mod+5 fifth_window
# map kitty_mod+6 sixth_window
# map kitty_mod+7 seventh_window
# map kitty_mod+8 eighth_window
# map kitty_mod+9 ninth_window
# map kitty_mod+0 tenth_window
#: }}}
#: Tab management {{{
# map ctrl+tab next_tab
# map kitty_mod+right next_tab
# map ctrl+shift+tab previous_tab
# map kitty_mod+left previous_tab
# map kitty_mod+t new_tab
# map kitty_mod+q close_tab
# map kitty_mod+. move_tab_forward
# map kitty_mod+, move_tab_backward
# map kitty_mod+alt+t set_tab_title
#: You can also create shortcuts to go to specific tabs, with 1 being
#: the first tab::
#: map ctrl+alt+1 goto_tab 1
#: map ctrl+alt+2 goto_tab 2
#: Just as with new_window above, you can also pass the name of
#: arbitrary commands to run when using new_tab and use
#: new_tab_with_cwd. Finally, if you want the new tab to open next to
#: the current tab rather than at the end of the tabs list, use::
#: map ctrl+t new_tab !neighbor [optional cmd to run]
#: }}}
#: Layout management {{{
# map kitty_mod+l next_layout
#: You can also create shortcuts to switch to specific layouts::
#: map ctrl+alt+t goto_layout tall
#: map ctrl+alt+s goto_layout stack
#: Similarly, to switch back to the previous layout::
#: map ctrl+alt+p last_used_layout
#: }}}
#: Font sizes {{{
#: You can change the font size for all top-level kitty windows at a
#: time or only the current one.
# map kitty_mod+equal change_font_size all +2.0
# map kitty_mod+minus change_font_size all -2.0
# map kitty_mod+backspace change_font_size all 0
#: To setup shortcuts for specific font sizes::
#: map kitty_mod+f6 change_font_size all 10.0
#: To setup shortcuts to change only the current window's font size::
#: map kitty_mod+f6 change_font_size current 10.0
#: }}}
#: Select and act on visible text {{{
#: Use the hints kitten to select text and either pass it to an
#: external program or insert it into the terminal or copy it to the
#: clipboard.
# map kitty_mod+e kitten hints
#: Open a currently visible URL using the keyboard. The program used
#: to open the URL is specified in open_url_with.
# map kitty_mod+p>f kitten hints --type path --program -
#: Select a path/filename and insert it into the terminal. Useful, for
#: instance to run git commands on a filename output from a previous
#: git command.
# map kitty_mod+p>shift+f kitten hints --type path
#: Select a path/filename and open it with the default open program.
# map kitty_mod+p>l kitten hints --type line --program -
#: Select a line of text and insert it into the terminal. Use for the
#: output of things like: ls -1
# map kitty_mod+p>w kitten hints --type word --program -
#: Select words and insert into terminal.
# map kitty_mod+p>h kitten hints --type hash --program -
#: Select something that looks like a hash and insert it into the
#: terminal. Useful with git, which uses sha1 hashes to identify
#: commits
#: The hints kitten has many more modes of operation that you can map
#: to different shortcuts. For a full description see kittens/hints.
#: }}}
#: Miscellaneous {{{
# map kitty_mod+f11 toggle_fullscreen
# map kitty_mod+u kitten unicode_input
# map kitty_mod+f2 edit_config_file
# map kitty_mod+escape kitty_shell window
#: Open the kitty shell in a new window/tab/overlay/os_window to
#: control kitty using commands.
# map kitty_mod+a>m set_background_opacity +0.1
# map kitty_mod+a>l set_background_opacity -0.1
# map kitty_mod+a>1 set_background_opacity 1
# map kitty_mod+a>d set_background_opacity default
# map kitty_mod+delete clear_terminal reset active
#: You can create shortcuts to clear/reset the terminal. For example::
#: map kitty_mod+f9 clear_terminal reset active
#: map kitty_mod+f10 clear_terminal clear active
#: map kitty_mod+f11 clear_terminal scrollback active
#: These will reset screen/clear screen/clear screen+scrollback
#: respectively. If you want to operate on all windows instead of just
#: the current one, use all instead of :italic`active`.
#: You can tell kitty to send arbitrary (UTF-8) encoded text to the
#: client program when pressing specified shortcut keys. For example::
#: map ctrl+alt+a send_text all Special text
#: This will send "Special text" when you press the ctrl+alt+a key
#: combination. The text to be sent is a python string literal so you
#: can use escapes like \x1b to send control codes or \u21fb to send
#: unicode characters (or you can just input the unicode characters
#: directly as UTF-8 text). The first argument to send_text is the
#: keyboard modes in which to activate the shortcut. The possible
#: values are normal or application or kitty or a comma separated
#: combination of them. The special keyword all means all modes. The
#: modes normal and application refer to the DECCKM cursor key mode
#: for terminals, and kitty refers to the special kitty extended
#: keyboard protocol.
#: Another example, that outputs a word and then moves the cursor to
#: the start of the line (same as pressing the Home key)::
#: map ctrl+alt+a send_text normal Word\x1b[H
#: map ctrl+alt+a send_text application Word\x1bOH
#: }}}
# }}}
# include /Users/felix/.config/kitty/theme.conf"
include ~/.config/kitty/kitty-themes/themes/gruvbox_dark.conf

1
entropy/kitty/theme.conf Symbolic link
View file

@ -0,0 +1 @@
./kitty-themes/themes/gruvbox_dark.conf

13
entropy/mail/.mailcap Normal file
View file

@ -0,0 +1,13 @@
# Images
image/jpeg; feh %s
image/pjpeg; feh %s
image/png; feh %s
image/gif; firefox %s
# PDF
application/pdf; zathura %s
# HTML
# -- always use w3m; it's gay to use firefox for this
# text/html; elinks -force-html %s
text/html; w3m -I %{charset} -T text/html; copiousoutput;

View file

@ -0,0 +1,88 @@
# .notmuch-config - Configuration file for the notmuch mail system
#
# For more information about notmuch, see https://notmuchmail.org
# Database configuration
#
# The only value supported here is 'path' which should be the top-level
# directory where your mail currently exists and to where mail will be
# delivered in the future. Files should be individual email messages.
# Notmuch will store its database within a sub-directory of the path
# configured here named ".notmuch".
#
[database]
path=/home/felix/.mail
# User configuration
#
# Here is where you can let notmuch know how you would like to be
# addressed. Valid settings are
#
# name Your full name.
# primary_email Your primary email address.
# other_email A list (separated by ';') of other email addresses
# at which you receive email.
#
# Notmuch will use the various email addresses configured here when
# formatting replies. It will avoid including your own addresses in the
# recipient list of replies, and will set the From address based on the
# address to which the original email was addressed.
#
[user]
name=Felix Wittwer
primary_email=felix.wittwer1@tu-dresden.de
other_email=felix.wittwer1@mailbox.tu-dresden.de;s6525655@msx.tu-dresden.de;
# Configuration for "notmuch new"
#
# The following options are supported here:
#
# tags A list (separated by ';') of the tags that will be
# added to all messages incorporated by "notmuch new".
#
# ignore A list (separated by ';') of file and directory names
# that will not be searched for messages by "notmuch new".
#
# NOTE: *Every* file/directory that goes by one of those
# names will be ignored, independent of its depth/location
# in the mail store.
#
[new]
tags=new
ignore=/.mbsyncstate/;/.uidvalidity/
# Search configuration
#
# The following option is supported here:
#
# exclude_tags
# A ;-separated list of tags that will be excluded from
# search results by default. Using an excluded tag in a
# query will override that exclusion.
#
[search]
exclude_tags=deleted;spam;
# Maildir compatibility configuration
#
# The following option is supported here:
#
# synchronize_flags Valid values are true and false.
#
# If true, then the following maildir flags (in message filenames)
# will be synchronized with the corresponding notmuch tags:
#
# Flag Tag
# ---- -------
# D draft
# F flagged
# P passed
# R replied
# S unread (added when 'S' flag is not present)
#
# The "notmuch new" command will notice flag changes in filenames
# and update tags, while the "notmuch tag" and "notmuch restore"
# commands will notice tag changes and update flags in filenames
#
[maildir]
synchronize_flags=true

View file

@ -0,0 +1,24 @@
# vim: syntax=muttrc textwidth=100
# felix.wittwer1@tu-dresden.de
set from = felix.wittwer1@tu-dresden.de
set folder = "~/.mail/tu-dresden/"
set spoolfile = "~/.mail/tu-dresden/Inbox"
set postponed = =Drafts
set trash = =Trash
set record = =Sent
# NOTE: disabled for notmuch
# mailboxes "=Inbox" "=Trash" "=Sent" "=Drafts"
macro index \CS "<shell-escape>mbsync tu-dresden<enter>"
set signature = "~/.config/neomutt/signature.txt"
# folder hooks to avoid long folder paths
# folder-hook =Inbox 'set status_format = "[tu dresden] [inbox]%> %u unread %m total %p postponed"'
# folder-hook =Sent 'set status_format = "[tu dresden] [sent]%> %m total"'
# folder-hook =Drafts 'set status_format = "[tu dresden] [drafts]%> %m total"'
# folder-hook =Trash 'set status_format = "[tu dresden] [trash] %> %m total"'

136
entropy/mail/neomutt/gpg.rc Normal file
View file

@ -0,0 +1,136 @@
# -*-muttrc-*-
#
# Command formats for gpg.
#
# Version notes:
#
# GPG 2.1 introduces the option "--pinentry-mode", which requires
# the "loopback" argument in instances where "--passphrase-fd" is
# used.
#
# Some of the older commented-out versions of the commands use gpg-2comp from:
# http://70t.de/download/gpg-2comp.tar.gz
#
# %p The empty string when no passphrase is needed,
# the string "PGPPASSFD=0" if one is needed.
#
# This is mostly used in conditional % sequences.
#
# %f Most PGP commands operate on a single file or a file
# containing a message. %f expands to this file's name.
#
# %s When verifying signatures, there is another temporary file
# containing the detached signature. %s expands to this
# file's name.
#
# %a In "signing" contexts, this expands to the value of the
# configuration variable $pgp_sign_as, if set, otherwise
# $pgp_default_key. You probably need to
# use this within a conditional % sequence.
#
# %r In many contexts, neomutt passes key IDs to pgp. %r expands to
# a list of key IDs.
# Section A: Key Management
# The default key for encryption (used by $pgp_self_encrypt and
# $postpone_encrypt).
#
# It will also be used for signing unless $pgp_sign_as is set to a
# key.
#
# Unless your key does not have encryption capability, uncomment this
# line and replace the keyid with your own.
#
# set pgp_default_key="0x12345678"
# If you have a separate signing key, or your key _only_ has signing
# capability, uncomment this line and replace the keyid with your
# signing keyid.
#
# set pgp_sign_as="0x87654321"
# Section B: Commands
# Note that we explicitly set the comment armor header since GnuPG, when used
# in some localiaztion environments, generates 8bit data in that header, thereby
# breaking PGP/MIME.
# decode application/pgp
#
set pgp_decode_command="gpg --status-fd=2 %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
# Verify a signature
#
set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f"
# Decrypt an attachment
#
set pgp_decrypt_command="gpg --status-fd=2 %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --quiet --batch --output - --decrypt %f"
# Create a PGP/MIME signed attachment
#
# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
#
set pgp_sign_command="gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --batch --quiet --output - --armor --textmode %?a?--local-user %a? --detach-sign %f"
# Create a application/pgp inline signed message. This style is obsolete but still needed for Hushmail recipients and some MUAs.
#
# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
#
set pgp_clearsign_command="gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --no-verbose --batch --quiet --output - --armor --textmode %?a?--local-user %a? --clearsign %f"
# Create an encrypted attachment (note that some users include the --always-trust option here)
#
# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
#
set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --textmode --armor --encrypt -- --recipient %r -- %f"
# Create an encrypted and signed attachment (note that some users include the --always-trust option here)
#
# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
#
set pgp_encrypt_sign_command="pgpewrap gpg %?p?--pinentry-mode loopback --passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - %?a?--local-user %a? --armor --sign --encrypt -- --recipient %r -- %f"
# Import a key into the public key ring
#
set pgp_import_command="gpg --no-verbose --import %f"
# Export a key from the public key ring
#
set pgp_export_command="gpg --no-verbose --armor --export %r"
# Verify a key
#
set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r"
# Read in the public key ring
#
set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-keys %r"
# Read in the secret key ring
#
set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-secret-keys %r"
# Fetch keys
# set pgp_getkeys_command="pkspxycwrap %r"
# pattern for good signature - may need to be adapted to locale!
# OK, here's a version which uses gnupg's message catalog:
# set pgp_good_sign="^gpgv?: Good signature from"
# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"
#
# Output pattern to indicate a valid signature using --status-fd messages
# set pgp_good_sign="^\\[GNUPG:\\] GOODSIG"
# Output pattern to verify a decryption occurred
# This is now deprecated by pgp_check_gpg_decrypt_status_fd:
# set pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY"
set pgp_check_gpg_decrypt_status_fd
# set pgp_autosign=yes
set pgp_default_key=0xEA0E8A99
set pgp_replyencrypt=yes
set pgp_timeout=1800
set pgp_good_sign="^gpg: Good signature from"

View file

@ -0,0 +1,166 @@
# vim: syntax=muttrc textwidth=100
## Storage Setup
set header_cache = ~/.cache/neomutt/
set message_cachedir = ~/.cache/neomutt/
set tmpdir = ~/.cache/neomutt/
set virtual_spoolfile
## Notmuch configuration
set nm_default_uri = "notmuch:///home/felix/.mail"
virtual-mailboxes "Combined Inbox" "notmuch://?query=tag:inbox"
virtual-mailboxes "All Unread Messages" "notmuch://?query=tag:unread"
virtual-mailboxes "Archive" "notmuch://?query=tag:archive"
virtual-mailboxes "Sent" "notmuch://?query=tag:sent"
macro index A "<modify-labels>+archive -unread -inbox\\n" "Archive message"
macro index c "<change-vfolder>?" "Change to vfolder overview"
macro index \\\\ "<vfolder-from-query>" "Search mailbox"
# # open a different virtual folder
#bind index,pager X change-vfolder
# # read entire thread of the current message
# bind index,pager + entire-thread
# # generate virtual folder from query
#bind index,pager \CX vfolder-from-query
# generate virtual folder from query with time window
bind index < vfolder-window-backward
bind index > vfolder-window-forward
## Displaying Options -> How should the UI look?
set index_format = "%Z⌈%D⌋ %-20.20F ⌜%s⌟" # Switch format of index
set date_format = "%d.%m.%y" # use german date format for sanity reasons
set folder_format = '%N %4C %4s bytes %2F %2f'
#set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
auto_view text/html
alternative_order text/plain text/enriched text/html
# uncollapse mail threads as necessary
set uncollapse_jump
set uncollapse_new
# Sorting options:
set sort_re
set sort = reverse-threads
set sort_aux = last-date-received
## Set of sane defaults for handling and displaying mail
set nomark_old # stop marking my mail as old
set smart_wrap # wrap words instead of cutting them half
set reflow_text # automatically reflow text if the mail allows it
set menu_scroll # scroll only a line instead of a page
# Mail Displaying:
unset markers # remove + signs on line wrap
set smart_wrap # only wrap full words
set reflow_text # reflow text if the mail allows it
set reflow_wrap = 120
set wrap = 120
set pager_index_lines = 5
set pager_context = 5
set pager_stop # Jesus Christ. Stop moving on to the next mail!
# Mail editing:
set include # the next 3 set's are to
set edit_headers # go right to vim and edit through that composition
set autoedit # window, rather than mutt giving me 21 questions
set forward_quote
set forward_format = "Fwd: %s"
## Set mail editor to vim & setup aspell
set editor = 'vim -c "set fo+=aw" -c "set nosmartindent" -c "set nojs" -c "set filetype=mail" -c "normal }"'
set text_flowed = yes
set ispell = 'aspell -e -c'
## h e a d e r s
ignore *
unignore from: to: subject: Cc:
hdr_order From: To: Cc: Date:
set user_agent
## Keep me from sending mails w/o attachments
set abort_noattach = ask-yes
set attach_keyword = "\\<(anhängen|angehängt|anhang|anhänge|hängt an|anhängig|attached|attachments?|anbei)\\>"
## Sidebar
source ~/.config/neomutt/sidebar.muttrc
bind index,pager \CO sidebar-open
bind index,pager \CN sidebar-next
bind index,pager \CP sidebar-prev
bind index,pager B sidebar-toggle-visible
## Theme
source ~/.config/neomutt/themes/powerline/colors/gruvbox-powerline.neomuttrc
source ~/.config/neomutt/themes/powerline/powerline.neomuttrc
## Basic Sending Options
set sendmail = "msmtp"
set use_from = yes
set realname = "Felix Wittwer"
set reverse_name # set the sender mail address to whomever it was originally sent
set envelope_from = yes
## Use GPG
source ~/.config/neomutt/gpg.rc
set pgp_use_gpg_agent = yes
## Set up S/MIME
set crypt_use_gpgme = yes
set crypt_autosmime = yes
set crypt_autosign = yes
# automatically encrypt when possible
set crypt_opportunistic_encrypt = yes
set crypt_replyencrypt = yes
set crypt_replysign = yes
set crypt_replysignencrypted = yes
# set default key and encrypt to self
set smime_default_key = 0x39DDEFF5
set smime_self_encrypt = yes
## What is SPAM? Baby don't annoy me ~ annoy me, no more!
spam "X-Spam-Status: Yes" "90+/SA"
spam "X-Spam-Flag: YES" "90+/SA"
spam "X-TUD-Spam-Status: Yes" "90+/SA"
## VIM Keybindings
bind pager j next-line
bind pager k previous-line
bind attach,index,pager \CD next-page
bind attach,index,pager \CU previous-page
bind pager g top
bind pager G bottom
bind attach,index g first-entry
bind attach,index G last-entry
bind index,pager X group-reply
bind index,pager S group-chat-reply
# configure aliases and mailboxes
source ~/.config/neomutt/whoami.muttrc
#### Mailbox switching
source ~/.config/neomutt/accounts/tudresden.muttrc

View file

@ -0,0 +1,23 @@
set sidebar_visible = no
set sidebar_width = 20
set sidebar_short_path = yes
set sidebar_delim_chars = '/.'
set sidebar_folder_indent
set sidebar_indent_string = ' '
# set sidebar_new_mail_only = yes
set sidebar_next_new_wrap = yes
set sidebar_on_right = no
#set sidebar_divider_char = ' '
set sidebar_format = '%B %?N?(%N)?%* %S'
set sidebar_sort_method = 'path'
set mail_check_stats = yes
color sidebar_indicator brightcolor02 default
color sidebar_highlight brightcolor223 default
color sidebar_divider default default
color sidebar_flagged color243 default
color sidebar_new color243 default
color sidebar_ordinary color243 default
# vim: syntax=neomuttrc

@ -0,0 +1 @@
Subproject commit 94e340c8dd939c4a7f94c9a7a820d2f5205515c2

@ -0,0 +1 @@
Subproject commit dc014df127693ee48ae019305af0a3a61453a5c9

View file

@ -0,0 +1,26 @@
# ---- TU Dresden ----
IMAPAccount tu-dresden
Host msx.tu-dresden.de
User {{USER}}
#PassCmd "pass mail/tud | head -1"
Pass "{{PASSWORD}}"
SSLType IMAPS
AuthMechs LOGIN
# because exchange apparently can't handle parallel accesses:
PipelineDepth 1
IMAPStore tu-dresden-remote
Account tu-dresden
MaildirStore tu-dresden-local
Subfolders Verbatim
Path ~/.mail/tu-dresden/
Inbox ~/.mail/tu-dresden/Inbox
Channel tu-dresden
Master :tu-dresden-remote:
Slave :tu-dresden-local:
Patterns *
Create Both
SyncState *

View file

@ -0,0 +1,20 @@
# Set default values for all following accounts.
defaults
auth on
tls on
# tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.msmtp.log
#
# TU Dresden
account tud
host msx.tu-dresden.de
port 587
auth login
from felix.wittwer1@tu-dresden.de
user {{USER}}
passwordeval "pass mail/tud | head -1"
# Set a default account
account default : tud

View file

@ -0,0 +1,318 @@
# 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, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
# include and configure R
./modules/r.nix
# python with modules
./modules/python.nix
];
# set up LUKS discovery
boot.initrd.luks.devices.cryptlvm.device = "/dev/disk/by-uuid/f382cd01-9048-4b1b-8a73-48e1f61e6c08";
# make the screen usable
#hardware.video.hidpi.enable = true;
services.xserver.dpi = 180;
environment.variables = {
GDK_SCALE = "2";
GDK_DPI_SCALE = "0.5";
_JAVA_OPTIONS = "-Dsun.java2d.uiScale=2";
};
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# enable powertop for saving power
#powerManagement.powertop.enable = true;
networking.hostName = "entropy"; # Define your hostname.
networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Set your time zone.
time.timeZone = "Europe/Berlin";
# geoclue2 does not yield a location at home, so I'll make the manual configuration the default
# location.provider = "geoclue2";
location.provider = "manual";
# using the location of the cafe ascii should be good enough
location.latitude = 51.0250869;
location.longitude = 13.7210005;
# The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config
# replicates the default behaviour.
networking.useDHCP = false;
networking.interfaces.enp0s31f6.useDHCP = true;
networking.interfaces.wlp0s20f3.useDHCP = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
#font = "Lat2-Terminus16";
font = "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
keyMap = pkgs.lib.mkForce "uk";
};
# use the xkb-config from the X server
console.useXkbConfig = true;
# Configure X Server
services.xserver.enable = true;
services.xserver.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
extraPackages = with pkgs; [
dmenu
#(i3status-rust.overrideAttrs ( oldAttrs: { cargoBuildFlags = [ "--features=notmuch" ]; }))
i3status-rust
i3lock-fancy
libnotify
dunst
feh
];
# extraSessionCommands = "feh --bg-scale /home/felix/wall.jpg";
};
# login window options
services.xserver.displayManager.lightdm = {
background = "/etc/nixos/extra/login.jpg";
# should be enabled by selecting i3
# enable = true;
greeters.gtk = {
cursorTheme.name = "Adwaita-dark";
iconTheme.name = "Adwaita-dark";
theme.name = "Adwaita-dark";
};
};
services.xserver.xautolock = {
enable = true;
extraOptions = [ "-detectsleep" ];
locker = "${pkgs.i3lock-fancy}/bin/i3lock-fancy";
nowlocker = "${pkgs.i3lock-fancy}/bin/i3lock-fancy";
time = 10;
};
# Configure keymap in X11
services.xserver.layout = "gb";
services.xserver.xkbOptions = "eurosign:e,ctrl:nocaps,compose:prsc";
# enable touchpas support
services.xserver.libinput.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
services.printing.drivers = [
pkgs.gutenprint
pkgs.epson-escpr
];
# set up my printer at home
hardware.printers.ensurePrinters = [
{
description = "My private printer";
deviceUri = "https://192.168.178.30:631/ipp/print";
location = "Home";
model = "epson-inkjet-printer-escpr/Epson-XP-322_323_325_Series-epson-escpr-en.ppd";
name = "Home";
}
];
# setup the printers at work
#hardware.printers.ensurePrinters = [
#{
#description = "CC printer";
#deviceUri = "";
#location = "BAR/III51";
#model = "Ricoh-MP_C307_PS.ppd";
#name = "CC_small";
#}
#{
#description = "PD printer (A3)";
#deviceUri = "";
#location = "BAR/III71B";
#model = "Ricoh-MP_C3004_PS.ppd";
#name = "PD_Chair";
#}
#];
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.felix = {
createHome = true;
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user.
group = "users";
home = "/home/felix";
shell = pkgs.fish;
};
# allow user felix to run openconnect without password
security.sudo.extraRules = [
{
users = [ "felix" ];
commands = [
{ command = "${pkgs.openconnect}/bin/openconnect"; options = [ "NOPASSWD" ]; }
];
}
];
# set up virtualization with virtualbox
virtualisation.virtualbox.host.enable = true;
# I'm gonna keep this disabled for the sake of my sanity
# virtualisation.virtualbox.host.enableExtensionPack = true;
users.extraGroups.vboxusers.members = [ "felix" ];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# basic command line tooling
wget
vim
w3m
htop
bat
lsd
ripgrep
sshfs
ncdu
scrot
tldr
unzip
# automatic detection of display changes
autorandr
# password management
pass
pinentry-curses
# mail
isync
msmtp
neomutt urlview
notmuch
# programming languages and compilers
rustup
# python3
stack
gcc
gnumake
# I heard you like man pages?
man-pages
# git and friends
git
gitAndTools.delta
gitAndTools.gitui
# terminal, browsers, text editing
kitty
vscodium
typora
firefox
# time tracking
watson
# file managers
ranger
xfce.thunar
# document viewers
mupdf
pdfpc
zathura
# LaTeX
texlive.combined.scheme-full
# the eternal pain continues
libreoffice-fresh
# video and media applications
zoom-us
youtube-dl
ffmpeg-full
# messenger
tdesktop
# networking
openconnect
];
# install fonts
fonts.fonts = with pkgs; [
font-awesome
fira-code
fira-code-symbols
roboto
roboto-mono
roboto-slab
overpass
(nerdfonts.override {
fonts = [ "FiraCode" "DroidSansMono" "Hack" "SourceCodePro" "RobotoMono" ];
})
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
programs.fish.enable = true;
programs.vim.defaultEditor = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryFlavor = "curses";
};
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
services.udev.packages = [ pkgs.libu2f-host ];
# for SAMBA file shares
services.gvfs.enable = true;
# use redshift
services.redshift.enable = true;
# allow brightness control
services.illum.enable = true;
# enable OpenVPN for connecting to the TUD network
services.openvpn.servers.tud = {
config = '' config /home/felix/.config/vpn/TUD.ovpn '';
autoStart = false; #true;
updateResolvConf = true;
};
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# allow unfree licenced packges
nixpkgs.config.allowUnfree = true;
# tmp workaround for rpy2
# nixpkgs.config.allowBroken = true;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "20.09"; # Did you read the comment?
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

View file

@ -0,0 +1,31 @@
# 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, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/8439695b-636d-4061-932e-d4be7273ee8f";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/8447-740A";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/fff5639a-f572-44b0-a9b4-a81afe65c32d"; }
];
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
}

View file

@ -0,0 +1,17 @@
# This file is not linked
{ pkgs, ... }:
{
environment.systemPackages = with pkgs;
let
my-python-packages = python-packages: with python-packages; [
pygments
pandas
numpy
pylint
# rpy2
];
python-with-my-packages = python3.withPackages my-python-packages;
in
[ python-with-my-packages ];
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs;
let
R-with-my-packages = rWrapper.override {
packages = with rPackages; [
ggplot2
rlang
lazyeval
];
};
in
[ R-with-my-packages ];
}

60
entropy/vpn/TUD.ovpn Normal file
View file

@ -0,0 +1,60 @@
tls-client
pull
remote openvpn.zih.tu-dresden.de
port 1194
dev tun
proto udp
auth-user-pass /home/felix/.config/vpn/credentials.txt
nobind
#comp-lzo no
tls-version-min 1.2
<ca>
-----BEGIN CERTIFICATE-----
MIIDJDCCAqqgAwIBAgIIVUfkeTU1KgIwCgYIKoZIzj0EAwQwgcYxCzAJBgNVBAYT
AkRFMQ8wDQYDVQQIEwZTYXhvbnkxEDAOBgNVBAcTB0RyZXNkZW4xKDAmBgNVBAoT
H1RlY2huaXNjaGUgVW5pdmVyc2l0YWV0IERyZXNkZW4xQjBABgNVBAsTOVplbnRy
dW0gZnVlciBJbmZvcm1hdGlvbnNkaWVuc3RlIHVuZCBIb2NobGVpc3R1bmdzcmVj
aG5lbjEmMCQGA1UEAxMdT3BlblZQTiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN
MjAwMzEzMTcwMjAwWhcNMjMwMzEzMTcwMjAwWjCBxjELMAkGA1UEBhMCREUxDzAN
BgNVBAgTBlNheG9ueTEQMA4GA1UEBxMHRHJlc2RlbjEoMCYGA1UEChMfVGVjaG5p
c2NoZSBVbml2ZXJzaXRhZXQgRHJlc2RlbjFCMEAGA1UECxM5WmVudHJ1bSBmdWVy
IEluZm9ybWF0aW9uc2RpZW5zdGUgdW5kIEhvY2hsZWlzdHVuZ3NyZWNobmVuMSYw
JAYDVQQDEx1PcGVuVlBOIENlcnRpZmljYXRlIEF1dGhvcml0eTB2MBAGByqGSM49
AgEGBSuBBAAiA2IABAFyQ2/XGnQpeqQGR9//A3eSUl/dm5ksuPba4yuF+TonfIMS
SkYrW3KbFexK/7M1F2n6xTCk8YxgF0cl/6AqVW80UsdW9FeQSO2jEOY8xl4Ag95B
5KD1ur3kfn/GxRfJe6NjMGEwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU
/IAoHx3yIpN6FV/js71yXvf+POwwHwYDVR0jBBgwFoAU/IAoHx3yIpN6FV/js71y
Xvf+POwwCwYDVR0PBAQDAgEGMAoGCCqGSM49BAMEA2gAMGUCMQDyPDrW8JofQUiG
a1DacXRr3dQUAKIdpgk7VFXU90hRrSTkMBgZNev6rd+TBgk/XeQCMCLq4DQgwTjc
jexcxW/cIHH5bfUy/xykQWjEnlJsPoeA0JaTtBcrrK7h/9dUCUhk+g==
-----END CERTIFICATE-----
</ca>
<tls-crypt>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
9b32985687664a47084463da740ff2a2
8976d0f78b2264e7feda8486efe02289
7ff5abc2f1bfe170eb620e63fb0cba01
fb65e4f6668fd3a718e1b3d4d94ac2a5
56a1d53f8f971fb0307034d425758cb3
1aeb8156b05ceb2fe79eaf56777c3bb5
0fa26bc1f3a0b21d3a1a8787f133c626
5776465ab7848443d8b153300853a7c2
167d72baf41b6372db1b801499ac1aa3
3506442dfb204bb037e961c938fd9571
cb62228eb0c482f3db4598f08f8c26fe
1d72031e82f5bd163e961310fe781806
8e546e4957f6eae73585b245ae3a6273
fc4375d385cb2c95646af01ec31a23cc
e7fbbd353a27ec216f6e677fed8a4298
6b0c01f429db0ddb52fd0760788c32d5
-----END OpenVPN Static key V1-----
</tls-crypt>
remote-cert-tls server
cipher AES-256-GCM
auth SHA384
reneg-sec 43200
verb 3

26
tycho/.gitconfig Normal file
View file

@ -0,0 +1,26 @@
[user]
name = Felix Wittwer
email = dev@felixwittwer.de
signingkey = EA0E8A99
[push]
default = simple
[commit]
gpgsign = true
template = ~/.gitcommit_template
[core]
excludesfile = /Users/felix/.global_gitignore
pager = delta
[pull]
rebase = true
[interactive]
diffFilter = delta --color-only
[delta]
features = side-by-side line-numbers decorations
whitespace-error-style = 22 reverse
[delta "decorations"]
commit-decoration-style = bold yellow box ul
file-style = bold yellow ul
file-decoration-style = none

1
tycho/.global_gitignore Normal file
View file

@ -0,0 +1 @@
.DS_Store

94
tycho/.vimrc Normal file
View file

@ -0,0 +1,94 @@
filetype plugin indent on
syntax on
" enable autocompletion of ale
let g:ale_completion_enabled = 1
" disable latex linting from ale as i've got my own plugin for that
let g:ale_linters = { 'tex': []}
" Initialize plugin system
call plug#begin('~/.vim/plugged')
" Make sure you use single quotes
" Shorthand notation; fetches https://github.com/morhetz/gruvbox
Plug 'morhetz/gruvbox'
" Any valid git URL is allowed
Plug 'https://github.com/scrooloose/nerdcommenter.git'
" On-demand loading
Plug 'rust-lang/rust.vim', { 'for': 'rust' }
Plug 'vim-syntastic/syntastic'
Plug 'cespare/vim-toml', { 'for': 'toml' }
Plug 'vim-airline/vim-airline'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'keith/swift.vim', { 'for': 'swift' }
Plug 'justinmk/vim-sneak'
Plug 'lervag/vimtex'
Plug 'editorconfig/editorconfig-vim'
" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" ale language server client
Plug 'dense-analysis/ale'
" Initialize plugin system
call plug#end()
set laststatus=2
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
" possible setting as alternative for easymotion
" let g:sneak#label = 1
set backspace=indent,eol,start
" map the leader key to ,
let mapleader=","
" set filetypes
au BufRead,BufNewFile *.ohuac setfiletype rust
au BufRead,BufNewFile *.ohuao setfiletype json
" Cycling through windows and tabs -- made by Pius :D
" nnoremap j <C-W><C-J>
" nnoremap k <C-W><C-K>
" nnoremap l <C-W><C-L>
" nnoremap h <C-W><C-H>
" nnoremap <C-J> <C-W><C-J><C-W>_
" nnoremap <C-K> <C-W><C-K><C-W>_
" nnoremap <C-L> <C-W><C-L><C-W>\|
" nnoremap <C-H> <C-W><C-H><C-W>\|
map <C-H> :tabp<Enter>
map <C-L> :tabn<Enter>
" fix auto-completion
set wildmenu " show a completion menu
set wildignorecase
set wildignore=*.o,*~,*.pyc,*.aux,*.bbl,*.blg,*-blx.bib,*.log,*.out,*.run.xml,
\*.toc,*.nav,*.snm " ignore auxiliary files
" set completeopt-=preview
" tex configuration
let g:tex_flavor='latex'
" Optics
colorscheme gruvbox
set background=dark " Setting dark mode
set number
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
" Search
set hlsearch " Highlight all search results
set smartcase " Enable smart-case search
set ignorecase " Always case-insensitive
set incsearch " Searches for strings incrementally

46
tycho/.yabairc Executable file
View file

@ -0,0 +1,46 @@
#!/usr/bin/env sh
# bar settings
yabai -m config status_bar on #off
yabai -m config status_bar_text_font "Helvetica Neue:Bold:12.0"
yabai -m config status_bar_icon_font "FontAwesome:Regular:12.0"
yabai -m config status_bar_background_color 0xff202020
yabai -m config status_bar_foreground_color 0xffa8a8a8
yabai -m config status_bar_space_icon_strip I II III IV V VI VII VIII IX X
yabai -m config status_bar_power_icon_strip  
yabai -m config status_bar_space_icon 
yabai -m config status_bar_clock_icon 
# global settings
yabai -m config mouse_follows_focus off
yabai -m config focus_follows_mouse autofocus
yabai -m config window_placement second_child
yabai -m config window_topmost off
yabai -m config window_opacity off
yabai -m config window_opacity_duration 0.0
yabai -m config window_shadow on
yabai -m config window_border off
yabai -m config window_border_placement inset
yabai -m config window_border_width 4
yabai -m config window_border_radius -1.0
yabai -m config active_window_border_topmost off
yabai -m config active_window_border_color 0xff775759
yabai -m config normal_window_border_color 0xff505050
yabai -m config insert_window_border_color 0xffd75f5f
yabai -m config active_window_opacity 1.0
yabai -m config normal_window_opacity 0.90
yabai -m config split_ratio 0.50
yabai -m config auto_balance off
yabai -m config mouse_modifier fn
yabai -m config mouse_action1 move
yabai -m config mouse_action2 resize
# general space settings
yabai -m config layout bsp
yabai -m config top_padding 20
yabai -m config bottom_padding 20
yabai -m config left_padding 20
yabai -m config right_padding 20
yabai -m config window_gap 10
echo "yabai configuration loaded.."

121
tycho/create_home.sh Executable file
View file

@ -0,0 +1,121 @@
#!/usr/bin/env bash
printf '\033[33m
/$$ /$$
| $$ | $$
/$$$$$$ /$$ /$$ /$$$$$$$| $$$$$$$ /$$$$$$
|_ $$_/ | $$ | $$ /$$_____/| $$__ $$ /$$__ $$
| $$ | $$ | $$| $$ | $$ \ $$| $$ \ $$
| $$ /$$| $$ | $$| $$ | $$ | $$| $$ | $$
| $$$$/| $$$$$$$| $$$$$$$| $$ | $$| $$$$$$/
\___/ \____ $$ \_______/|__/ |__/ \______/
/$$ | $$
| $$$$$$/
\______/
This script will now install the dotfiles and configurations for `tycho`.
\033[39m'
echo "[note] Please make sure you have a working version of gpg installed (e.g., GPGTools)."
echo "[note] Also, please make sure a private key is installed."
echo "[note] Finally, you should have a working ssh config in place to interact with github and other servers."
read -p "Are you ready to go? [y/n] " ready
if [ $ready != "y" ]; then
exit
fi
# ~/.macos — https://mths.be/macos
# Close any open System Preferences panes, to prevent them from overriding
# settings were about to change
osascript -e 'tell application "System Preferences" to quit'
# Ask for the administrator password upfront
sudo -v
# Keep-alive: update existing `sudo` time stamp until `.macos` has finished
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
printf "\033[33m[info] Setting Hostname\033[39m"
# Set computer name (as done via System Preferences → Sharing)
sudo scutil --set ComputerName "tycho"
sudo scutil --set HostName "tycho"
sudo scutil --set LocalHostName "tycho"
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "tycho"
printf "\033[33m[info] Linking config files\033[39m"
ln -s $pwd/.gitconfig ~/.gitconfig
ln -s $PWD/.global_gitignore ~/.global_gitignore
ln -s $PWD/git-commit-template.txt ~/.gitcommit_template
mkdir -p ~/.config/alacritty
ln -s $PWD/terminal/alacritty.yml ~/.config/alacritty/alacritty.yml
ln -s $PWD/kitty/ ~/.config/kitty
touch ~/.hushlogin
ln -s $PWD/.yabairc ~/.yabairc
printf "\033[33m[info] Installing Homebrew\033[39m"
# we need the xcode tools
xcode-select --install
if test ! $(which brew); then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
fi
printf "\033[33m[info] Installing nix\033[39m"
if test ! $(which nix-env); then
curl -L https://nixos.org/nix/install | sh
fi
printf "\033[33m[info] Installing some basic binaries\033[39m"
brew install fish
chsh -s /usr/local/bin/fish
binaries=(
pass
python
git
)
brew install ${binaries[@]}
apps=(
kitty
font-hack-nerd-font
keepingyouawake
)
brew cask install ${apps[@]}
printf "\033[33m[info] Cloning password store\033[39m"
git clone felix@decima:~/pass-backup ~/.password_store
printf "\033[33m[info] Setting up neomutt\033[39m"
# TODO:
# 1: Install necessary packages via brew/nix
# Mail
# 2: fetch the password store repo
printf "\033[33m[info] Setting up Fish Shell\033[39m"
mkdir -p ~/.config/fish/
ln -s $PWD/terminal/config.fish ~/.config/fish/config.fish
git clone git@github.com:oh-my-fish/plugin-foreign-env.git ~/.config/fish/plugin-foreign-env
printf "\033[33m[info] Setting up vim\033[39m"
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
ln -s $PWD/.vimrc ~/.vimrc
vim -c "PlugInstall"

View file

@ -0,0 +1,27 @@
# 50 Chars ---->|
# 72 Characters ---->|
# Type can be
# ✨ feat (new feature)
# 🐛 fix (bug fix)
# 📚 docs (changes to documentation)
# 🌹 style (formatting, missing semi colons, etc; no code change)
# 📝 refactor (refactoring production code)
# 🔍 test (adding missing tests, refactoring tests; no production code change)
# 💪 chore (updating grunt tasks etc; no production code change)
# 🚢 ship (bump a version; release)
# --------------------
# Remember to
# Separate subject from body with a blank line
# Limit the subject line to 50 characters
# Capitalize the subject line
# Do not end the subject line with a period
# Use the imperative mood in the subject line
# Wrap the body at 72 characters
# Use the body to explain what and why vs. how
# Can use multiple lines with "-" for bullet points in body
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

View file

@ -0,0 +1,111 @@
{
"files": [
"README.md"
],
"badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-green.svg?style=for-the-badge)](#contributors)",
"contributorTemplate": "<a href=\"<%= contributor.profile %>\"><b><%= contributor.name %></b></a><br /><%= contributions %>",
"imageSize": 100,
"commit": false,
"contributors": [
{
"login": "scopatz",
"name": "Anthony Scopatz",
"avatar_url": "https://avatars2.githubusercontent.com/u/320553?v=4",
"profile": "http://www.scopatz.com",
"contributions": [
"doc"
]
},
{
"login": "orangecoloured",
"name": "RCKT",
"avatar_url": "https://avatars3.githubusercontent.com/u/3314891?v=4",
"profile": "https://rckt.cc",
"contributions": [
"theme"
]
},
{
"login": "varmanishant",
"name": "varmanishant",
"avatar_url": "https://avatars1.githubusercontent.com/u/4084912?v=4",
"profile": "https://github.com/varmanishant",
"contributions": [
"theme"
]
},
{
"login": "rlerdorf",
"name": "Rasmus Lerdorf",
"avatar_url": "https://avatars3.githubusercontent.com/u/54641?v=4",
"profile": "https://github.com/rlerdorf",
"contributions": [
"bug",
"ideas"
]
},
{
"login": "Luflosi",
"name": "Luflosi",
"avatar_url": "https://avatars1.githubusercontent.com/u/15217907?v=4",
"profile": "https://github.com/Luflosi",
"contributions": [
"fix",
"question",
"doc"
]
},
{
"login": "connorholyday",
"name": "Connor Holyday",
"avatar_url": "https://avatars1.githubusercontent.com/u/4559119?v=4",
"profile": "https://holyday.me",
"contributions": [
"fix"
]
},
{
"login": "BlueDrink9",
"name": "BlueDrink9",
"avatar_url": "https://avatars3.githubusercontent.com/u/26474254?v=4",
"profile": "https://github.com/BlueDrink9",
"contributions": [
"bug"
]
},
{
"login": "brujoand",
"name": "Anders Brujordet",
"avatar_url": "https://avatars1.githubusercontent.com/u/124421?v=4",
"profile": "https://github.com/brujoand",
"contributions": [
"theme"
]
},
{
"login": "rjshrjndrn",
"name": "Rajesh Rajendran",
"avatar_url": "https://avatars3.githubusercontent.com/u/2563385?v=4",
"profile": "http://www.hackouts.com",
"contributions": [
"fix"
]
}
],
"types": {
"theme": {
"symbol": "😻",
"description": "New theme added to the collection"
},
"fix": {
"symbol": "🛠️",
"description": "Fixed a theme"
}
},
"contributorsPerLine": 7,
"projectName": "kitty-themes",
"projectOwner": "dexpota",
"repoType": "github",
"repoHost": "https://github.com",
"commitConvention": "none"
}

View file

@ -0,0 +1,10 @@
---
name: theme-request
about: Use the following template if you want a new theme to be included in the collection.
title: Add <theme> to the collection.
labels: theme request
assignees: dexpota
---
Please, include **theme** in the collection. You can find it here: **url**

View file

@ -0,0 +1,9 @@
---
name: theme-request
about: Use the following template if you want a new theme to be included in the collection.
title: Add <theme> to the collection.
labels: theme request
assignees: dexpota
---
Please, include **theme** in the collection.

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View file

@ -0,0 +1,9 @@
# kitty-tools
> A bunch of useful scripts used to convert schemes and generate files.
## Process overview
1. Find a nice theme and check the licensing, is it possible to distribute the theme?
2. Generate the configuration file for **kitty**;
3. Add a new preview for the theme;
4. Update the README.md;

View file

@ -0,0 +1,26 @@
#!/bin/bash
#
# This file echoes a bunch of color codes to the
# terminal to demonstrate what's available. Each
# line is the color code of one forground color,
# out of 17 (default + 16 escapes), followed by a
# test use of that color on all nine background
# colors (default + 8 escapes).
#
T='gYw' # The test text
echo -e "\n 40m 41m 42m 43m\
44m 45m 46m 47m";
for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \
'1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \
' 36m' '1;36m' ' 37m' '1;37m';
do FG=${FGs// /}
echo -en " $FGs \033[$FG $T "
for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
do echo -en "$EINS \033[$FG\033[$BG $T \033[0m";
done
echo;
done
echo

View file

@ -0,0 +1,30 @@
import json
from jinja2 import FileSystemLoader, Environment
import sys
import os
def removeAlpha(value):
hex = value.lstrip("#")
return "#" + hex[0:6]
filename = sys.argv[1]
kitty_configuration = os.path.splitext(filename)[0] + ".conf"
with open(filename, "r") as configuration_file:
configuration = json.load(configuration_file)
loader = FileSystemLoader(".")
env = Environment(loader=loader)
env.filters['removeAlpha'] = removeAlpha
env.trim_blocks = True
template = env.get_template("template.conf.j2")
output = template.render(**configuration)
with open(kitty_configuration, "w") as fp:
fp.write(output)

View file

@ -0,0 +1,57 @@
#!/usr/bin/swift
// main.swift
// nscolor
//
// Created by Fabrizio FD. Destro on 28/12/18.
// Copyright © 2018 Fabrizio FD. Destro. All rights reserved.
//
import Foundation
import AppKit
func hex(color: NSColor) -> String {
return String(format: "#%02x%02x%02x", Int(color.redComponent * 0xFF), Int(color.greenComponent * 0xFF), Int(color.blueComponent * 0xFF))
}
func process_color(field: String, data: Data) {
let color = NSKeyedUnarchiver.unarchiveObject(with: data) as! NSColor
print("\(field) \(hex(color: color))");
}
func generate_conf_line(field: String, key: String, dictionary: NSDictionary){
if let data = dictionary[key] {
process_color(field: field, data: data as! Data)
}
}
func process(filename: String) {
let plist = NSDictionary(contentsOfFile: filename)!
generate_conf_line(field: "background", key: "BackgroundColor", dictionary: plist)
generate_conf_line(field: "foreground", key: "TextColor", dictionary: plist)
generate_conf_line(field: "cursor", key: "CursorColor", dictionary: plist)
generate_conf_line(field: "selection_background", key: "SelectionColor", dictionary: plist)
generate_conf_line(field: "color0", key: "ANSIBlackColor", dictionary: plist)
generate_conf_line(field: "color8", key: "ANSIBrightBlackColor", dictionary: plist)
generate_conf_line(field: "color1", key: "ANSIRedColor", dictionary: plist)
generate_conf_line(field: "color9", key: "ANSIBrightRedColor", dictionary: plist)
generate_conf_line(field: "color2", key: "ANSIGreenColor", dictionary: plist)
generate_conf_line(field: "color10", key: "ANSIBrightGreenColor", dictionary: plist)
generate_conf_line(field: "color3", key: "ANSIYellowColor", dictionary: plist)
generate_conf_line(field: "color11", key: "ANSIBrightYellowColor", dictionary: plist)
generate_conf_line(field: "color4", key: "ANSIBlueColor", dictionary: plist)
generate_conf_line(field: "color12", key: "ANSIBrightBlueColor", dictionary: plist)
generate_conf_line(field: "color5", key: "ANSIMagentaColor", dictionary: plist)
generate_conf_line(field: "color13", key: "ANSIBrightMagentaColor", dictionary: plist)
generate_conf_line(field: "color6", key: "ANSICyanColor", dictionary: plist)
generate_conf_line(field: "color14", key: "ANSIBrightCyanColor", dictionary: plist)
generate_conf_line(field: "color7", key: "ANSIWhiteColor", dictionary: plist)
generate_conf_line(field: "color15", key: "ANSIBrightWhiteColor", dictionary: plist)
}
if (CommandLine.argc == 2) {
let filename = CommandLine.arguments[1]
process(filename: filename)
} else {
print("Missing plist's path.")
}

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
theme=$1
jq ".colors | to_entries | map(select(.key | match(\"terminal.*\"))) | map({(.key | gsub(\"\\\\.(?<a>.)\"; .a | ascii_upcase) | ltrimstr(\"terminal\") | sub(\"(?<a>.)\"; .a | ascii_downcase)):.value}) | add" < "$theme" > "terminal/${theme%.*}.json"

View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
find ~/github/macos-terminal-themes/schemes/ -name "*.terminal" -print0 | while read -d $'\0' -r file; do
filename=`basename "$file"`
without_ext=${filename%.*}
removed_spaces=${without_ext// /_}
# output_filename=`echo ${removed_spaces} | tr '[:upper:]' '[:lower:]'`
echo ${removed_spaces}.conf
./convert_conf.swift "$file" > ./themes/${removed_spaces}.conf
done

View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# This script generate all preview images for the themes
# In order to capture previews without the to bar start kitty without decorations
# kitty -o hide_window_decorations=yes
# shellcheck source=libcapture.sh
source libcapture.sh
# read theme path from args
id=$1
theme=$2
preview_filename=$3
conf_filename=$(basename "$theme")
lockfile=$(mktemp)
kitty @ set-colors --match id:"$id" "$theme"
kitty @ send-text --match id:"$id" "clear && figlet -f digital -t \"$conf_filename\" && unbuffer ./color_table.sh && rm \"$lockfile\"\n"
# simple sync mechanism, wait for the lockfile to be removed
( echo "$lockfile" | entr "false" 1>/dev/null 2>&1 ) || capture themes "$preview_filename"

View file

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# This script generate all preview images for the themes
root="$(git rev-parse --show-toplevel)"
tools="$root/.tools"
PATH=$tools:$PATH
# new kitty window, return its id
id=$(kitty @ new-window --title themes --window-type os --cwd "$tools")
# start bash without reading the profile nor the configuration
kitty @ send-text --match id:"$id" "/usr/bin/env bash --noprofile --norc\n"
kitty @ set-font-size 24
# save all preview in this directory
previews="$root/_previews"
if [ ! -d "$previews" ]; then
mkdir "$previews"
fi
while read -r theme
do
echo "Genereting theme preview for $theme"
preview_directory=$previews/$(basename "${theme%.*}")
[ ! -d "$preview_directory" ] && mkdir "$preview_directory"
preview_filename=$previews/$(basename "${theme%.*}")/preview.png
generate_theme_preview.sh "$id" "$theme" "$preview_filename"
mogrify -resize 1024x\> "$preview_filename"
done < /dev/stdin
kitty @ close-window --match id:"$id"
kitty @ set-font-size 16

View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
function capture_linux() {
local title="$1"
local output="$2"
import -window "$title" "$output"
}
function capture_osx() {
local title="$1"
local output="$2"
# get system id of the new created window
sys_id=$(./windowid.swift "kitty" "$title")
screencapture -wl"$sys_id" "$output"
}
function capture() {
if [[ "$OSTYPE" == "linux-gnu" ]]; then
capture_linux "$@"
elif [[ "$OSTYPE" == "darwin"* ]]; then
capture_osx "$@"
fi
}

View file

@ -0,0 +1,15 @@
#!/usr/bin/env bash
previews_root=$1
# usually this value: https://raw.githubusercontent.com/dexpota/kitty-themes-website/master
url_root=$2
for f in $(find "$previews_root/previews" -maxdepth 1 -mindepth 1 -type d | sort); do
preview_file="$f"/preview.png
theme=$(basename $f)
relative_path=$(realpath --relative-to="$previews_root" "$preview_file")
header=`basename $theme | sed 's/_/ /g'`
image="![image]($url_root/$relative_path)"
echo \#\# $header
echo $image
done

View file

@ -0,0 +1,91 @@
from argparse import ArgumentParser
from svgwrite.shapes import Rect
import svgwrite
theme_keys = [
"foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity",
"selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10",
"color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15"
]
def is_valid(line):
"""
Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not
empty and the key is correct.
:param line: a line inside the configuration file
:type line: str
:return: true if is valid, false otherwise
:rtype: bool
"""
return (not line.lstrip().startswith("#") # is not a comment
and len(line.strip()) != 0 # is not empty
and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one
def extract_configuration_pair(line):
"""
Extract a configuration pair by splitting on spaces and taking the first couple of values.
:param line: a line inside the configuration file
:type line: str
:return: a key-value pair
:rtype: bool
"""
split = line.split(maxsplit=2)
return split[0], split[1]
def read_configuration(filename):
"""
Read a kitty configuration file and extract only theme related keys and values.
:param filename: path to the configuration file
:type filename: str
:return: a map with theme related configuration values
:rtype: dict[str, str]
"""
with open(filename, "r") as fp:
lines = fp.readlines()
print(filename)
theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)])
return theme_config
def draw_theme_palette(theme_configuration, start_point, size, displacement):
rects = []
for k, v in theme_configuration.items():
rgb = tuple(int(v[i + 1:i + 3], 16) for i in (0, 2, 4))
rects.append(Rect(start_point, size, fill=svgwrite.utils.rgb(rgb[0], rgb[1], rgb[2])))
start_point = (start_point[0] + displacement[0], start_point[1] + displacement[1])
return rects
def draw_all_palettes(themes):
dwg = svgwrite.Drawing('test.svg', profile='tiny')
y = 0
palettes = []
for theme in themes:
palettes += draw_theme_palette(theme, (0, y), (10, 10), (10, 0))
y += 10
for rect in palettes:
dwg.add(rect)
dwg.save()
def main():
parser = ArgumentParser()
parser.add_argument("theme", type=str, nargs="+")
ns = parser.parse_args()
theme_configurations = [read_configuration(theme) for theme in ns.theme]
draw_all_palettes(theme_configurations)
if __name__ == "__main__":
main()

View file

@ -0,0 +1,136 @@
import sys
import os
import sys
theme_keys = [
"cursor", "foreground", "background", "background_opacity", "dynamic_background_opacity", "dim_opacity",
"selection_foreground", "selection_background", "color0", "color8", "color1", "color9", "color2", "color10",
"color3", "color11", "color4", "color12", "color5", "color13", "color6", "color14", "color7", "color15"
]
def is_valid(line):
"""
Returns true if a line inside a configuration file is a valid theme configuration pair: is not a comment, is not
empty and the key is correct.
:param line: a line inside the configuration file
:type line: str
:return: true if is valid, false otherwise
:rtype: bool
"""
return (not line.lstrip().startswith("#") # is not a comment
and len(line.strip()) != 0 # is not empty
and line.split(maxsplit=1)[0] in theme_keys) # key is a valid one
def extract_configuration_pair(line):
"""
Extract a configuration pair by splitting on spaces and taking the first couple of values.
:param line: a line inside the configuration file
:type line: str
:return: a key-value pair
:rtype: bool
"""
split = line.split(maxsplit=2)
return split[0], split[1]
def read_configuration(filename):
"""
Read a kitty configuration file and extract only theme related keys and values.
:param filename: path to the configuration file
:type filename: str
:return: a map with theme related configuration values
:rtype: dict[str, str]
"""
with open(filename, "r") as fp:
lines = fp.readlines()
theme_config = dict([extract_configuration_pair(line) for line in lines if is_valid(line)])
return theme_config
def fg(color, text):
rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4))
return ('\x1b[38;2;%s;%s;%sm' % rgb + text + '\x1b[0m')
def bg(color, text):
rgb = tuple(int(color[i + 1:i + 3], 16) for i in (0, 2, 4))
return ('\x1b[48;2;%s;%s;%sm' % rgb + text + '\x1b[0m')
def print_preview(filename, configuration):
cursor = configuration["cursor"]
background = configuration["background"]
foreground = configuration["foreground"]
theme = os.path.basename(filename)
size = len(theme) + (2 + 2 + 16 + 2 + 16 + 1 + 2)
print(bg(background, " " * size))
print(bg(background, " "), end="")
print(bg(background, fg(foreground, theme)), end="")
print(bg(background, " "), end="")
c='a'
for i in range(0, 16):
color = configuration["color%d" % i]
print(bg(background, fg(color, c)), end="")
c = chr(ord(c) + 1)
print(bg(background, " "), end="")
selection_background = configuration["selection_background"]
selection_foreground = configuration["selection_foreground"]
c='A'
for i in range(0, 16):
print(bg(selection_background, fg(selection_foreground, c)), end="")
c = chr(ord(c) + 1)
print(bg(cursor, " "), end="")
print(bg(background, " "))
print(bg(background, " " * size))
print(bg(background, " "), end="")
print(bg(configuration["color0"], " "), end="")
print(bg(configuration["color1"], " "), end="")
print(bg(configuration["color2"], " "), end="")
print(bg(configuration["color3"], " "), end="")
print(bg(configuration["color4"], " "), end="")
print(bg(configuration["color5"], " "), end="")
print(bg(configuration["color6"], " "), end="")
print(bg(configuration["color7"], " "), end="")
print(bg(background, " "), end="")
print(bg(configuration["color8"], " "), end="")
print(bg(configuration["color9"], " "), end="")
print(bg(configuration["color10"], " "), end="")
print(bg(configuration["color11"], " "), end="")
print(bg(configuration["color12"], " "), end="")
print(bg(configuration["color13"], " "), end="")
print(bg(configuration["color14"], " "), end="")
print(bg(configuration["color15"], " "), end="")
print(bg(background, " " * (size - 16 - 4)), end="")
print()
print(bg(background, " " * size))
print()
def main(directory):
for filename in os.listdir(directory):
try:
path = os.path.join(directory, filename)
configuration = read_configuration(path)
print_preview(path, configuration)
except Exception as e:
print(e, file=sys.stderr)
print("Error while processing %s" % filename, file=sys.stderr)
if __name__ == "__main__":
main(sys.argv[1])

View file

@ -0,0 +1,24 @@
#!/bin/bash
# @author: @vrdhn on github
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd $SCRIPT_DIR/..
set_theme () {
cat themes/$1.conf | awk 'BEGIN {printf("kitty @ set-colors ")} {printf( "%s=%s ",$1,$2 )} END{printf("\n")}' | sh
}
list=$(find themes -type f | grep "$1" | xargs basename | cut -d. -f1)
for x in $list ;
do
kitty +kitten icat "previews/$x.png"
read -n 1 -p "$x : Next / Set / Quit :" ans
echo
case $ans in
n ) ;;
s ) set_theme $x ; exit ;;
q ) exit ;;
esac
done

View file

@ -0,0 +1,37 @@
background #
foreground #
cursor #
cursor_text_color #
selection_foreground #
selection_background #
# black
color0 #
color8 #
# red
color1 #
# light red
color9 #
# green
color2 #
# light green
color10 #
# yellow
color3 #
# light yellow
color11 #
# blue
color4 #
# light blue
color12 #
# magenta
color5 #
# light magenta
color13 #
# cyan
color6 #
# lighy cyan
color14 #
# light gray
color7 #
# dark gray
color15 #

View file

@ -0,0 +1,91 @@
{% if background is defined %}
background {{background}}
{% endif %}
{% if foreground is defined %}
foreground {{foreground}}
{% endif %}
{% if cursorForeground is defined %}
cursor {{cursorForeground}}
{% endif %}
{% if cursorBackground is defined %}
cursor_text_color {{cursorBackground | removeAlpha}}
{% endif %}
{% if background is defined %}
selection_foreground {{background | removeAlpha}}
{% endif %}
{% if selectionBackground is defined %}
selection_background {{selectionBackground | removeAlpha}}
{% endif %}
{% if ansiBlack is defined %}
# dull black
color0 {{ansiBlack}}
{% endif %}
{% if ansiBrightBlack is defined %}
# light black
color8 {{ansiBrightBlack}}
{% endif %}
{% if ansiRed is defined %}
# dull red
color1 {{ansiRed}}
{% endif %}
{% if ansiBrightRed %}
# light red
color9 {{ansiBrightRed}}
{% endif %}
{% if ansiGreen is defined %}
# dull green
color2 {{ansiGreen}}
{% endif %}
{% if ansiBrightGreen is defined %}
# light green
color10 {{ansiBrightGreen}}
{% endif %}
{% if ansiYellow is defined %}
# yellow
color3 {{ansiYellow}}
{% endif %}
{% if ansiBrightYellow is defined %}
# light yellow
color11 {{ansiBrightYellow}}
{% endif %}
{% if ansiBlue is defined %}
# blue
color4 {{ansiBlue}}
{% endif %}
{% if ansiBrightBlue %}
# light blue
color12 {{ansiBrightBlue}}
{% endif %}
{% if ansiMagenta is defined %}
# magenta
color5 {{ansiMagenta}}
{% endif %}
{% if ansiBrightMagenta is defined %}
# light magenta
color13 {{ansiBrightMagenta}}
{% endif %}
{% if ansiCyan is defined %}
# cyan
color6 {{ansiCyan}}
{% endif %}
{% if ansiBrightCyan is defined %}
# light cyan
color14 {{ansiBrightCyan}}
{% endif %}
{% if ansiWhite is defined %}
# dull white
color7 {{ansiWhite}}
{% endif %}
{% if ansiBrightWhite is defined %}
# bright white
color15 {{ansiBrightWhite}}
{% endif %}

View file

@ -0,0 +1,20 @@
#!/usr/bin/swift
import Foundation
import Cocoa
import CoreGraphics.CGWindow
let windows : NSArray = CGWindowListCopyWindowInfo(CGWindowListOption.excludeDesktopElements, kCGNullWindowID)! as NSArray
let search_for_app = CommandLine.arguments[1]
let search_for_win = CommandLine.arguments[2]
for window in windows {
let window = window as! NSDictionary
let app_name = window[kCGWindowOwnerName] as! String
let window_name = window[kCGWindowName] as? String
if app_name == search_for_app && window_name == search_for_win {
print("\(window[kCGWindowNumber]!)")
}
}

View file

@ -0,0 +1,8 @@
# Contributing to kitty-themes
We always welcome your pull request! To start contributing follow these simple
steps:
1. Fork the repo and create your branch from `master`;
2. Add your theme as config file under `themes` directory;
3. Issue the pull request through github;

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019 Fabrizio Destro <fabrizio@destro.dev>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View file

@ -0,0 +1,465 @@
[iterm2-themes]: https://github.com/mbadolato/iTerm2-Color-Schemes
[color-scripts]: https://github.com/stark/Color-Scripts/tree/master/color-scripts
[license]: https://opensource.org/licenses/MIT
[license-badge]: https://img.shields.io/github/license/dexpota/kitty-themes.svg?style=for-the-badge
[kitty-themes-previews]: https://github.com/dexpota/kitty-themes-website/tree/master/previews
![kitty-themes](./.github/kitty-themes.jpg)
> **Personalize** your *kitty* terminal and choose your theme from this awesome
> collection, for more information on the terminal visit
> https://github.com/kovidgoyal/kitty
[![License: MIT][license-badge]][license]
[![All Contributors](https://img.shields.io/badge/all_contributors-9-green.svg?style=for-the-badge)](#contributors)
- [About](#about)
- [Installation](#installation)
- [Source Code](#source-code)
- [Conda](#conda)
- [License](#license)
- [Bring me to the previews!](#previews)
- [Contributors](#contributors)
## About
In this repository you can find a set of themes to personalize your kitty
terminal, these have been ported from [iTerm2-Color-Schemes][iterm2-themes]. You can find
the previews for each theme in the [section](#previews) below or in this other
[repository](kitty-themes-previews).
## Installation
### Source Code
1. If you want to download and use one of these theme you have two options:
- clone the entire *kitty-themes* repository:
```bash
git clone --depth 1 git@github.com:dexpota/kitty-themes.git ~/.config/kitty/kitty-themes
```
- or download just one theme:
```bash
THEME=https://raw.githubusercontent.com/dexpota/kitty-themes/master/themes/3024_Day.conf
wget "$THEME" -P ~/.config/kitty/kitty-themes/themes
```
2. Choose a theme and create a symlink:
```bash
cd ~/.config/kitty
ln -s ./kitty-themes/themes/Floraverse.conf ~/.config/kitty/theme.conf
```
3. Add this line to your kitty.conf configuration file:
```
include ./theme.conf
```
### Conda
If you using the ``conda`` package manager, you may also install these themes
with the following command:
```bash
conda install -c conda-forge kitty-themes
```
## License
All original content of this repository is licensed with the [MIT
License](./LICENSE.md). Whenever possible the author of the theme is cited
inside each theme configuration file, together with its license. Hit me up if
you find your theme inside this repository and you want a proper citation.
## Previews
If you have followed the [installation](#installation) instructions and cloned
the entire repo, you have two options to try a theme:
1. If you have enabled remote control in *kitty* you can run this command:
```bash
kitty @ set-colors -a "~/.config/kitty/kitty-themes/themes/AdventureTime.conf"
```
2. Otherwise you can start another instance of kitty and specify another config
file to read from, this will cause *kitty* to read both its normal config
file and the specified one:
```bash
kitty -o include="~/.config/kitty/kitty-themes/themes/AdventureTime.conf"
```
### Bonus
Try your new theme with one of the scripts in [Color-scripts][color-scripts] with this
one-liner (requires `jq`):
```bash
COLOR_SCRIPT_REPO=https://api.github.com/repos/stark/Color-Scripts/contents/color-scripts
wget -q -O - $(curl -s $COLOR_SCRIPT_REPO | jq '.[] | "\(.path) \(.download_url)"' -r | shuf -n1 | cut -d " " -f2) | bash
```
### 3024 Day
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/3024_Day/preview.png)
### 3024 Night
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/3024_Night/preview.png)
### AdventureTime
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AdventureTime/preview.png)
### Afterglow
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Afterglow/preview.png)
### AlienBlood
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AlienBlood/preview.png)
### Alucard
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Alucard/preview.png)
### Apprentice
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Apprentice/preview.png)
### Argonaut
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Argonaut/preview.png)
### Arthur
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Arthur/preview.png)
### AtelierSulphurpool
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AtelierSulphurpool/preview.png)
### Atom
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Atom/preview.png)
### AtomOneLight
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/AtomOneLight/preview.png)
### ayu
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu/preview.png)
### ayu light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu_light/preview.png)
### ayu mirage
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ayu_mirage/preview.png)
### Batman
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Batman/preview.png)
### Belafonte Day
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Belafonte_Day/preview.png)
### Belafonte Night
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Belafonte_Night/preview.png)
### BirdsOfParadise
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/BirdsOfParadise/preview.png)
### Blazer
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Blazer/preview.png)
### Borland
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Borland/preview.png)
### Bright Lights
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Bright_Lights/preview.png)
### Broadcast
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Broadcast/preview.png)
### Brogrammer
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Brogrammer/preview.png)
### C64
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/C64/preview.png)
### Chalk
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Chalk/preview.png)
### Chalkboard
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Chalkboard/preview.png)
### Ciapre
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ciapre/preview.png)
### CLRS
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/CLRS/preview.png)
### Cobalt2
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Cobalt2/preview.png)
### Cobalt Neon
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Cobalt_Neon/preview.png)
### CrayonPonyFish
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/CrayonPonyFish/preview.png)
### Dark Pastel
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dark_Pastel/preview.png)
### Darkside
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Darkside/preview.png)
### Desert
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Desert/preview.png)
### DimmedMonokai
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/DimmedMonokai/preview.png)
### DotGov
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/DotGov/preview.png)
### Dracula
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dracula/preview.png)
### Dumbledore
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Dumbledore/preview.png)
### Duotone Dark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Duotone_Dark/preview.png)
### Earthsong
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Earthsong/preview.png)
### Elemental
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Elemental/preview.png)
### ENCOM
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ENCOM/preview.png)
### Espresso
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Espresso/preview.png)
### Espresso Libre
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Espresso_Libre/preview.png)
### Fideloper
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Fideloper/preview.png)
### FishTank
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FishTank/preview.png)
### Flat
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Flat/preview.png)
### Flatland
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Flatland/preview.png)
### Floraverse
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Floraverse/preview.png)
### FrontEndDelight
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FrontEndDelight/preview.png)
### FunForrest
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/FunForrest/preview.png)
### Galaxy
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Galaxy/preview.png)
### Github
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Github/preview.png)
### Glacier
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Glacier/preview.png)
### GoaBase
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/GoaBase/preview.png)
### Grape
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Grape/preview.png)
### Grass
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Grass/preview.png)
### gruvbox dark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/gruvbox_dark/preview.png)
### gruvbox light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/gruvbox_light/preview.png)
### Hardcore
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hardcore/preview.png)
### Harper
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Harper/preview.png)
### Highway
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Highway/preview.png)
### Hipster Green
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hipster_Green/preview.png)
### Homebrew
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Homebrew/preview.png)
### Hurtado
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hurtado/preview.png)
### Hybrid
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Hybrid/preview.png)
### IC Green PPL
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IC_Green_PPL/preview.png)
### IC Orange PPL
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IC_Orange_PPL/preview.png)
### idleToes
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/idleToes/preview.png)
### IR Black
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/IR_Black/preview.png)
### Jackie Brown
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Jackie_Brown/preview.png)
### Japanesque
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Japanesque/preview.png)
### Jellybeans
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Jellybeans/preview.png)
### JetBrains Darcula
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/JetBrains_Darcula/preview.png)
### Kibble
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Kibble/preview.png)
### Later This Evening
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Later_This_Evening/preview.png)
### Lavandula
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Lavandula/preview.png)
### LiquidCarbon
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbon/preview.png)
### LiquidCarbonTransparent
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbonTransparent/preview.png)
### LiquidCarbonTransparentInverse
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/LiquidCarbonTransparentInverse/preview.png)
### Man Page
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Man_Page/preview.png)
### Material
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Material/preview.png)
### MaterialDark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/MaterialDark/preview.png)
### Mathias
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Mathias/preview.png)
### Medallion
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Medallion/preview.png)
### Misterioso
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Misterioso/preview.png)
### Molokai
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Molokai/preview.png)
### MonaLisa
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/MonaLisa/preview.png)
### Monokai Classic
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Classic/preview.png)
### Monokai Pro
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro/preview.png)
### Monokai Pro (Filter Machine)
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Machine)/preview.png)
### Monokai Pro (Filter Octagon)
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Octagon)/preview.png)
### Monokai Pro (Filter Ristretto)
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Ristretto)/preview.png)
### Monokai Pro (Filter Spectrum)
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Pro_(Filter_Spectrum)/preview.png)
### Monokai Soda
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Monokai_Soda/preview.png)
### N0tch2k
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/N0tch2k/preview.png)
### Neopolitan
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Neopolitan/preview.png)
### Neutron
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Neutron/preview.png)
### NightLion v1
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/NightLion_v1/preview.png)
### NightLion v2
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/NightLion_v2/preview.png)
### Nova
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Nova/preview.png)
### Novel
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Novel/preview.png)
### Obsidian
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Obsidian/preview.png)
### Ocean
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ocean/preview.png)
### OceanicMaterial
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/OceanicMaterial/preview.png)
### Ollie
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ollie/preview.png)
### OneDark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/OneDark/preview.png)
### Parasio Dark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Parasio_Dark/preview.png)
### PaulMillr
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PaulMillr/preview.png)
### PencilDark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PencilDark/preview.png)
### PencilLight
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/PencilLight/preview.png)
### Piatto Light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Piatto_Light/preview.png)
### Pnevma
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Pnevma/preview.png)
### Pro
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Pro/preview.png)
### Red Alert
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Red_Alert/preview.png)
### Red Sands
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Red_Sands/preview.png)
### Relaxed Afterglow
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Relaxed_Afterglow/preview.png)
### Renault Style
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Renault_Style/preview.png)
### Renault Style Light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Renault_Style_Light/preview.png)
### Rippedcasts
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Rippedcasts/preview.png)
### Royal
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Royal/preview.png)
### Seafoam Pastel
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Seafoam_Pastel/preview.png)
### SeaShells
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SeaShells/preview.png)
### Seti
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Seti/preview.png)
### Shaman
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Shaman/preview.png)
### Slate
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Slate/preview.png)
### Smyck
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Smyck/preview.png)
### snazzy
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/snazzy/preview.png)
### SoftServer
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SoftServer/preview.png)
### Solarized Darcula
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Darcula/preview.png)
### Solarized Dark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark/preview.png)
### Solarized Dark Higher Contrast
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark_Higher_Contrast/preview.png)
### Solarized Dark - Patched
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Dark_-_Patched/preview.png)
### Solarized Light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Solarized_Light/preview.png)
### Source Code X
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Source_Code_X/preview.png)
### Spacedust
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spacedust/preview.png)
### SpaceGray
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray/preview.png)
### SpaceGray Eighties
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray_Eighties/preview.png)
### SpaceGray Eighties Dull
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/SpaceGray_Eighties_Dull/preview.png)
### Spiderman
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spiderman/preview.png)
### Spring
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Spring/preview.png)
### Square
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Square/preview.png)
### Sundried
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Sundried/preview.png)
### Symfonic
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Symfonic/preview.png)
### Tango Dark
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tango_Dark/preview.png)
### Tango Light
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tango_Light/preview.png)
### Teerb
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Teerb/preview.png)
### Thayer Bright
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Thayer_Bright/preview.png)
### The Hulk
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/The_Hulk/preview.png)
### Tomorrow
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow/preview.png)
### Tomorrow Night
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night/preview.png)
### Tomorrow Night Blue
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Blue/preview.png)
### Tomorrow Night Bright
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Bright/preview.png)
### Tomorrow Night Eighties
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Tomorrow_Night_Eighties/preview.png)
### ToyChest
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/ToyChest/preview.png)
### Treehouse
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Treehouse/preview.png)
### Twilight
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Twilight/preview.png)
### Ubuntu
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Ubuntu/preview.png)
### Urple
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Urple/preview.png)
### Vaughn
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Vaughn/preview.png)
### VibrantInk
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/VibrantInk/preview.png)
### WarmNeon
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/WarmNeon/preview.png)
### Wez
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wez/preview.png)
### WildCherry
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/WildCherry/preview.png)
### Wombat
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wombat/preview.png)
### Wryan
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Wryan/preview.png)
### Zenburn
![image](https://raw.githubusercontent.com/dexpota/kitty-themes-website/master/previews/Zenburn/preview.png)
## Contributors
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore -->
<table>
<tr>
<td align="center"><a href="http://www.scopatz.com"><b>Anthony Scopatz</b></a><br /><a href="https://github.com/dexpota/kitty-themes/commits?author=scopatz" title="Documentation">📖</a></td>
<td align="center"><a href="https://rckt.cc"><b>RCKT</b></a><br /><a href="#theme-orangecoloured" title="New theme added to the collection">😻</a></td>
<td align="center"><a href="https://github.com/varmanishant"><b>varmanishant</b></a><br /><a href="#theme-varmanishant" title="New theme added to the collection">😻</a></td>
<td align="center"><a href="https://github.com/rlerdorf"><b>Rasmus Lerdorf</b></a><br /><a href="https://github.com/dexpota/kitty-themes/issues?q=author%3Arlerdorf" title="Bug reports">🐛</a> <a href="#ideas-rlerdorf" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://github.com/Luflosi"><b>Luflosi</b></a><br /><a href="#fix-Luflosi" title="Fixed a theme">🛠️</a> <a href="#question-Luflosi" title="Answering Questions">💬</a> <a href="https://github.com/dexpota/kitty-themes/commits?author=Luflosi" title="Documentation">📖</a></td>
<td align="center"><a href="https://holyday.me"><b>Connor Holyday</b></a><br /><a href="#fix-connorholyday" title="Fixed a theme">🛠️</a></td>
<td align="center"><a href="https://github.com/BlueDrink9"><b>BlueDrink9</b></a><br /><a href="https://github.com/dexpota/kitty-themes/issues?q=author%3ABlueDrink9" title="Bug reports">🐛</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/brujoand"><b>Anders Brujordet</b></a><br /><a href="#theme-brujoand" title="New theme added to the collection">😻</a></td>
<td align="center"><a href="http://www.hackouts.com"><b>Rajesh Rajendran</b></a><br /><a href="#fix-rjshrjndrn" title="Fixed a theme">🛠️</a></td>
</tr>
</table>
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

View file

@ -0,0 +1,21 @@
background #f7f7f7
foreground #494542
cursor #494542
selection_background #a4a1a1
color0 #090200
color8 #5b5754
color1 #da2c20
color9 #e8bacf
color2 #00a152
color10 #3a3332
color3 #fcec02
color11 #494542
color4 #00a0e4
color12 #7f7c7b
color5 #a06994
color13 #d6d4d3
color6 #b5e4f4
color14 #ccab53
color7 #a4a1a1
color15 #f7f7f7
selection_foreground #f7f7f7

View file

@ -0,0 +1,21 @@
background #090200
foreground #a4a1a1
cursor #a4a1a1
selection_background #494542
color0 #090200
color8 #5b5754
color1 #da2c20
color9 #e8bacf
color2 #00a152
color10 #3a3332
color3 #fcec02
color11 #494542
color4 #00a0e4
color12 #7f7c7b
color5 #a06994
color13 #d6d4d3
color6 #b5e4f4
color14 #ccab53
color7 #a4a1a1
color15 #f7f7f7
selection_foreground #090200

View file

@ -0,0 +1,21 @@
background #1e1c44
foreground #f8dbc0
cursor #eebf37
selection_background #6f6a4e
color0 #050404
color8 #4e7bbf
color1 #bc0013
color9 #fc5e59
color2 #49b117
color10 #9dff6e
color3 #e6741d
color11 #efc11a
color4 #0f49c6
color12 #1896c6
color5 #665992
color13 #9a5952
color6 #6fa497
color14 #c8f9f3
color7 #f8dbc0
color15 #f5f4fb
selection_foreground #1e1c44

View file

@ -0,0 +1,21 @@
background #202020
foreground #d0d0d0
cursor #d0d0d0
selection_background #303030
color0 #151515
color8 #505050
color1 #ac4142
color9 #ac4142
color2 #7e8d50
color10 #7e8d50
color3 #e5b566
color11 #e5b566
color4 #6c99ba
color12 #6c99ba
color5 #9e4e85
color13 #9e4e85
color6 #7dd5cf
color14 #7dd5cf
color7 #d0d0d0
color15 #f5f5f5
selection_foreground #202020

View file

@ -0,0 +1,21 @@
background #0f160f
foreground #637d75
cursor #73f990
selection_background #1d4025
color0 #112615
color8 #3c4711
color1 #7f2b26
color9 #df8008
color2 #2f7e25
color10 #18e000
color3 #707f23
color11 #bde000
color4 #2f697f
color12 #00a9df
color5 #47577e
color13 #0058df
color6 #317f76
color14 #00dfc3
color7 #647d75
color15 #73f990
selection_foreground #0f160f

View file

@ -0,0 +1,21 @@
background #222330
foreground #cef3ff
cursor #ffffff
selection_background #44475a
color0 #000000
color8 #545454
color1 #ff5555
color9 #ff5454
color2 #fa0074
color10 #50fa7b
color3 #7f0a1f
color11 #f0fa8b
color4 #3282ff
color12 #1200f8
color5 #1b3cff
color13 #ff78c5
color6 #0037fc
color14 #8ae9fc
color7 #bbbbbb
color15 #ffffff
selection_foreground #222330

View file

@ -0,0 +1,26 @@
# Apprentice by Romain Lafourcade, https://github.com/romainl
# This work is licensed under the terms of the MIT license.
# For a copy, see https://opensource.org/licenses/MIT.
cursor #c7c7c7
cursor_text_color #feffff
selection_foreground #3e3e3e
selection_background #c1ddff
foreground #c8c8c8
background #323232
color0 #252525
color8 #555555
color1 #be7472
color9 #ff9900
color2 #709772
color10 #97bb98
color3 #989772
color11 #fefdbc
color4 #7199bc
color12 #9fbdde
color5 #727399
color13 #989abc
color6 #719899
color14 #6fbbbc
color7 #7f7f7f
color15 #feffff

View file

@ -0,0 +1,21 @@
background #0d0f18
foreground #fffaf3
cursor #ff0017
selection_background #002a3a
color0 #222222
color8 #444444
color1 #ff000f
color9 #ff273f
color2 #8ce00a
color10 #abe05a
color3 #ffb900
color11 #ffd141
color4 #008df8
color12 #0092ff
color5 #6c43a5
color13 #9a5feb
color6 #00d7eb
color14 #67ffef
color7 #ffffff
color15 #ffffff
selection_foreground #0d0f18

View file

@ -0,0 +1,21 @@
background #1c1c1c
foreground #ddeedd
cursor #e2bbef
selection_background #4d4d4d
color0 #3d352a
color8 #554444
color1 #cd5c5c
color9 #cc5533
color2 #86af80
color10 #88aa22
color3 #e8ae5b
color11 #ffa75d
color4 #6495ed
color12 #87ceeb
color5 #deb887
color13 #996600
color6 #b0c4de
color14 #b0c4de
color7 #bbaa99
color15 #ddccbb
selection_foreground #1c1c1c

View file

@ -0,0 +1,21 @@
background #202745
foreground #969cb3
cursor #969cb3
selection_background #5e6686
color0 #202745
color8 #6a7394
color1 #c84821
color9 #c76a28
color2 #ab9639
color10 #283256
color3 #c08a2f
color11 #5e6686
color4 #3d8ed0
color12 #898ea3
color5 #6678cc
color13 #dee1f0
color6 #21a1c8
color14 #9c6279
color7 #969cb3
color15 #f4f7ff
selection_foreground #202745

View file

@ -0,0 +1,21 @@
background #161718
foreground #c4c8c5
cursor #d0d0d0
selection_background #444444
color0 #000000
color8 #000000
color1 #fc5ef0
color9 #fc5ef0
color2 #86c38a
color10 #94f936
color3 #ffd6b1
color11 #f5ffa7
color4 #85befd
color12 #95cbfe
color5 #b9b5fc
color13 #b9b5fc
color6 #85befd
color14 #85befd
color7 #dfdfdf
color15 #dfdfdf
selection_foreground #161718

View file

@ -0,0 +1,21 @@
background #f8f8f8
foreground #2a2b33
cursor #bbbbbb
selection_background #ececec
color0 #000000
color8 #000000
color1 #de3d35
color9 #de3d35
color2 #3e953a
color10 #3e953a
color3 #d2b67b
color11 #d2b67b
color4 #2f5af3
color12 #2f5af3
color5 #950095
color13 #a00095
color6 #3e953a
color14 #3e953a
color7 #bbbbbb
color15 #ffffff
selection_foreground #f8f8f8

View file

@ -0,0 +1,21 @@
background #1b1d1e
foreground #6e6e6e
cursor #fcee0b
selection_background #4d4f4c
color0 #1b1d1e
color8 #505354
color1 #e6db43
color9 #fff68d
color2 #c8be46
color10 #fff27c
color3 #f3fd21
color11 #feed6c
color4 #737074
color12 #909495
color5 #737271
color13 #9a999d
color6 #615f5e
color14 #a2a2a5
color7 #c5c5be
color15 #dadad5
selection_foreground #1b1d1e

View file

@ -0,0 +1,21 @@
background #d4ccb9
foreground #45363b
cursor #45363b
selection_background #958b83
color0 #20111a
color8 #5e5252
color1 #bd100d
color9 #bd100d
color2 #858062
color10 #858062
color3 #e9a448
color11 #e9a448
color4 #416978
color12 #416978
color5 #96522b
color13 #96522b
color6 #98999c
color14 #98999c
color7 #958b83
color15 #d4ccb9
selection_foreground #d4ccb9

View file

@ -0,0 +1,21 @@
background #20111a
foreground #958b83
cursor #958b83
selection_background #45363b
color0 #20111a
color8 #5e5252
color1 #bd100d
color9 #bd100d
color2 #858062
color10 #858062
color3 #e9a448
color11 #e9a448
color4 #416978
color12 #416978
color5 #96522b
color13 #96522b
color6 #98999c
color14 #98999c
color7 #958b83
color15 #d4ccb9
selection_foreground #20111a

View file

@ -0,0 +1,21 @@
background #2a1e1d
foreground #dfdab7
cursor #573d25
selection_background #563c27
color0 #573d25
color8 #9a6b49
color1 #be2d26
color9 #e84526
color2 #6ba08a
color10 #94d7ba
color3 #e99c29
color11 #d0d04f
color4 #5a86ac
color12 #b8d3ed
color5 #ab80a6
color13 #d09dca
color6 #74a5ac
color14 #92ced6
color7 #dfdab7
color15 #fff9d4
selection_foreground #2a1e1d

View file

@ -0,0 +1,21 @@
background #0d1925
foreground #d9e5f1
cursor #d9e5f1
color0 #000000
color8 #252525
color1 #b87979
color9 #dabdbd
color2 #79b879
color10 #bddabd
color3 #b8b879
color11 #dadabd
color4 #7979b8
color12 #bdbdda
color5 #b879b8
color13 #dabdda
color6 #79b8b8
color14 #bddada
color7 #d9d9d9
color15 #ffffff
selection_foreground #0d1925
selection_background #d9e6f2

View file

@ -0,0 +1,21 @@
background #0000a3
foreground #ffff4d
cursor #ffa460
selection_background #a3a3a3
color0 #4e4e4e
color8 #7c7c7c
color1 #ff6b60
color9 #ffb6b0
color2 #a7ff60
color10 #ceffab
color3 #ffffb6
color11 #ffffcb
color4 #96cafd
color12 #b5dcfe
color5 #ff73fd
color13 #ff9cfe
color6 #c6c4fd
color14 #dfdffe
color7 #eeeeee
color15 #ffffff
selection_foreground #0000a3

View file

@ -0,0 +1,21 @@
background #191919
foreground #b2c8d6
cursor #f34a00
selection_background #b2c8d6
color0 #191919
color8 #191919
color1 #ff355b
color9 #ff355b
color2 #b6e875
color10 #b6e875
color3 #ffc150
color11 #ffc150
color4 #75d3ff
color12 #75d4ff
color5 #b975e6
color13 #b975e6
color6 #6cbeb5
color14 #6cbeb5
color7 #c1c8d6
color15 #c1c8d6
selection_foreground #191919

View file

@ -0,0 +1,21 @@
background #2b2b2b
foreground #e5e1db
cursor #ffffff
selection_background #5a637e
color0 #000000
color8 #323232
color1 #da4839
color9 #ff7b6a
color2 #509f50
color10 #83d082
color3 #ffd249
color11 #ffff7b
color4 #6d9cbd
color12 #9fcef0
color5 #cfcfff
color13 #ffffff
color6 #6d9cbd
color14 #a0cef0
color7 #ffffff
color15 #ffffff
selection_foreground #2b2b2b

View file

@ -0,0 +1,21 @@
background #131313
foreground #d6dae4
cursor #b9b9b9
selection_background #1f1f1f
color0 #1f1f1f
color8 #d6dae4
color1 #f71118
color9 #de342e
color2 #2cc55d
color10 #1dd260
color3 #ecb90f
color11 #f2bd09
color4 #2a84d2
color12 #0f80d5
color5 #4e59b7
color13 #524fb9
color6 #0f80d5
color14 #0f7cda
color7 #d6dae4
color15 #ffffff
selection_foreground #131313

View file

@ -0,0 +1,21 @@
background #40318d
foreground #7869c4
cursor #7869c4
selection_background #7869c4
color0 #090300
color8 #000000
color1 #883932
color9 #883932
color2 #55a049
color10 #55a049
color3 #bfce72
color11 #bfce72
color4 #40318d
color12 #40318d
color5 #8b3f96
color13 #8a3e95
color6 #67b6bd
color14 #67b6bd
color7 #ffffff
color15 #f7f7f7
selection_foreground #40318d

View file

@ -0,0 +1,21 @@
background #ffffff
foreground #262626
cursor #6fd2fc
selection_background #6fd2fc
color0 #000000
color8 #545753
color1 #f72729
color9 #fb0416
color2 #32895c
color10 #2cc631
color3 #f96f1c
color11 #fcd627
color4 #125ccf
color12 #156ffe
color5 #9f00bc
color13 #e800b0
color6 #32c2c0
color14 #39d5ce
color7 #b2b2b2
color15 #ededec
selection_foreground #ffffff

View file

@ -0,0 +1,21 @@
background #2b2c2e
foreground #d2d8d9
cursor #708183
selection_background #e3e8ed
color0 #7c8a8f
color8 #888888
color1 #b23a51
color9 #f24840
color2 #789a69
color10 #80c46f
color3 #b9ab4a
color11 #ffeb62
color4 #2a7fac
color12 #4095ff
color5 #bc4f5a
color13 #fb5175
color6 #44a799
color14 #52ccbd
color7 #d2d8d9
color15 #d2d8d9
selection_foreground #2b2c2e

View file

@ -0,0 +1,21 @@
background #29262f
foreground #d9e6f2
cursor #d9e6f2
selection_background #073642
color0 #000000
color8 #323232
color1 #c37372
color9 #dbaaaa
color2 #72c373
color10 #aadbaa
color3 #c2c372
color11 #dadbaa
color4 #7372c3
color12 #aaaadb
color5 #c372c2
color13 #dbaada
color6 #72c2c3
color14 #aadadb
color7 #d9d9d9
color15 #ffffff
selection_foreground #29262f

View file

@ -0,0 +1,21 @@
background #181c27
foreground #ada37a
cursor #91805a
selection_background #172539
color0 #181818
color8 #555555
color1 #800009
color9 #ab3834
color2 #48513b
color10 #a6a65d
color3 #cc8a3e
color11 #dcde7b
color4 #566d8c
color12 #2f97c6
color5 #724c7c
color13 #d33060
color6 #5b4f4a
color14 #f3dab1
color7 #ada37e
color15 #f3f3f3
selection_foreground #181c27

View file

@ -0,0 +1,21 @@
background #122637
foreground #ffffff
cursor #f0cb09
selection_background #18344f
color0 #000000
color8 #545454
color1 #ff0000
color9 #f40d17
color2 #37dd21
color10 #3bcf1d
color3 #fee409
color11 #ecc809
color4 #1460d2
color12 #5555ff
color5 #ff005d
color13 #ff55ff
color6 #00bbbb
color14 #6ae3f9
color7 #bbbbbb
color15 #ffffff
selection_foreground #122637

View file

@ -0,0 +1,21 @@
background #142838
foreground #8ff586
cursor #c4206f
selection_background #084fb0
color0 #142630
color8 #fff688
color1 #ff2320
color9 #d4312e
color2 #3aa5ff
color10 #8ff586
color3 #e9e75c
color11 #e9f06d
color4 #8ff586
color12 #3c7dd2
color5 #781aa0
color13 #8230a7
color6 #8ff586
color14 #6cbc67
color7 #ba45b1
color15 #8ff586
selection_foreground #142838

View file

@ -0,0 +1,21 @@
background #140607
foreground #685259
cursor #685259
selection_background #2a1a1c
color0 #2a1a1c
color8 #3c2a2e
color1 #90002a
color9 #c5245c
color2 #579523
color10 #8dff56
color3 #aa301b
color11 #c7371d
color4 #8b87af
color12 #cfc9ff
color5 #682e50
color13 #fb6cb9
color6 #e8a766
color14 #ffceae
color7 #685259
color15 #af949d
selection_foreground #140607

View file

@ -0,0 +1,21 @@
background #000000
foreground #ffffff
cursor #bbbbbb
selection_background #b5d5ff
color0 #000000
color8 #545454
color1 #ff5555
color9 #ff5555
color2 #55ff55
color10 #55ff55
color3 #ffff55
color11 #ffff55
color4 #5555ff
color12 #5555ff
color5 #ff55ff
color13 #ff55ff
color6 #55ffff
color14 #55ffff
color7 #bbbbbb
color15 #ffffff
selection_foreground #000000

View file

@ -0,0 +1,21 @@
background #212324
foreground #b9b9b9
cursor #bbbbbb
selection_background #2f3333
color0 #000000
color8 #000000
color1 #e8331c
color9 #df5a4f
color2 #68c156
color10 #76b768
color3 #f1d32b
color11 #eed64a
color4 #1c98e8
color12 #387bd2
color5 #8e69c8
color13 #957bbd
color6 #1c98e8
color14 #3d96e2
color7 #b9b9b9
color15 #b9b9b9
selection_foreground #212324

View file

@ -0,0 +1,21 @@
background #333333
foreground #ffffff
cursor #00ff00
selection_background #b5d5ff
color0 #4d4d4d
color8 #545454
color1 #ff2b2b
color9 #ff5555
color2 #98fb98
color10 #55ff55
color3 #f0e68c
color11 #ffff55
color4 #cd853f
color12 #87ceff
color5 #ffdead
color13 #ff55ff
color6 #ffa0a0
color14 #ffd700
color7 #f5deb3
color15 #ffffff
selection_foreground #333333

View file

@ -0,0 +1,21 @@
background #1e1e1e
foreground #b8bcb9
cursor #f83d19
selection_background #292c31
color0 #3a3c43
color8 #888987
color1 #be3e48
color9 #fb001e
color2 #869a3a
color10 #0e712e
color3 #c4a535
color11 #c37033
color4 #4e76a1
color12 #176ce3
color5 #855b8d
color13 #fb0067
color6 #568ea3
color14 #2d6f6c
color7 #b8bcb9
color15 #fcffb8
selection_foreground #1e1e1e

View file

@ -0,0 +1,21 @@
background #252b35
foreground #eaeaea
cursor #d9002f
selection_background #194080
color0 #181818
color8 #181818
color1 #bf081d
color9 #bf081d
color2 #3d9751
color10 #3d9751
color3 #f6bb33
color11 #f6bb33
color4 #16b1df
color12 #16b1df
color5 #772fb0
color13 #772fb0
color6 #8bd1ed
color14 #8bd1ed
color7 #ffffff
color15 #ffffff
selection_foreground #252b35

View file

@ -0,0 +1,21 @@
background #1e1f28
foreground #f8f8f2
cursor #bbbbbb
selection_background #44475a
color0 #000000
color8 #545454
color1 #ff5555
color9 #ff5454
color2 #50fa7b
color10 #50fa7b
color3 #f0fa8b
color11 #f0fa8b
color4 #bd92f8
color12 #bd92f8
color5 #ff78c5
color13 #ff78c5
color6 #8ae9fc
color14 #8ae9fc
color7 #bbbbbb
color15 #ffffff
selection_foreground #1e1f28

View file

@ -0,0 +1,21 @@
background #422553
foreground #c4c8c5
cursor #c4c8c5
selection_background #008aff
color0 #2b283d
color8 #413e53
color1 #ae0000
color9 #d3a624
color2 #3e7c54
color10 #aaaaaa
color3 #f0c75e
color11 #716254
color4 #415baf
color12 #946a2c
color5 #9445ae
color13 #b294ba
color6 #008aff
color14 #25de50
color7 #850000
color15 #c9c9c9
selection_foreground #422553

View file

@ -0,0 +1,21 @@
background #1f1c27
foreground #b6a0ff
cursor #ff9738
selection_background #353146
color0 #1f1c27
color8 #353146
color1 #d8393d
color9 #d8393d
color2 #2dcc72
color10 #2dcc72
color3 #d8b76e
color11 #d8b76e
color4 #ffc183
color12 #ffc183
color5 #dd8d40
color13 #dd8d40
color6 #2388ff
color14 #2388ff
color7 #b6a0ff
color15 #e9e4ff
selection_foreground #1f1c27

View file

@ -0,0 +1,21 @@
background #000000
foreground #00a595
cursor #bbbbbb
selection_background #00a48c
color0 #000000
color8 #545454
color1 #9f0000
color9 #ff0000
color2 #008b00
color10 #00ee00
color3 #ffcf00
color11 #ffff00
color4 #0081ff
color12 #0000ff
color5 #bc00ca
color13 #ff00ff
color6 #008b8b
color14 #00cdcd
color7 #bbbbbb
color15 #ffffff
selection_foreground #000000

View file

@ -0,0 +1,21 @@
background #282420
foreground #e5c6a8
cursor #f6f6ec
selection_background #111417
color0 #111417
color8 #665e54
color1 #c84134
color9 #ff6459
color2 #84c44b
color10 #97e035
color3 #f4ae2e
color11 #dfd561
color4 #1397b9
color12 #5ed9ff
color5 #d0623c
color13 #ff9168
color6 #4f9452
color14 #83ef88
color7 #e5c5a9
color15 #f6f6ec
selection_foreground #282420

View file

@ -0,0 +1,21 @@
background #21211c
foreground #807973
cursor #facb7f
selection_background #403729
color0 #3c3b30
color8 #545444
color1 #97280f
color9 #df502a
color2 #479942
color10 #60e06f
color3 #7f7110
color11 #d69827
color4 #497f7d
color12 #78d8d8
color5 #7e4e2e
color13 #cd7c53
color6 #387f58
color14 #58d598
color7 #807974
color15 #fff1e8
selection_foreground #21211c

View file

@ -0,0 +1,21 @@
background #323232
foreground #ffffff
cursor #d6d6d6
selection_background #5b5b5b
color0 #353535
color8 #535353
color1 #d25252
color9 #f00c0c
color2 #a4c161
color10 #c1df74
color3 #ffc56d
color11 #e1e48a
color4 #6c99ba
color12 #8ab6d9
color5 #d096d9
color13 #efb5f7
color6 #bdd6ff
color14 #dbf4ff
color7 #ededec
color15 #ffffff
selection_foreground #323232

Some files were not shown because too many files have changed in this diff Show more