Add additional config files and templates from old dotfiles
This commit is contained in:
parent
85342ba955
commit
2899218336
188
config/i3/config
Normal file
188
config/i3/config
Normal file
|
@ -0,0 +1,188 @@
|
|||
# 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 Mod1
|
||||
|
||||
# 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 12
|
||||
font pango:FiraCode 12
|
||||
|
||||
# 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 i3-sensible-terminal
|
||||
|
||||
# 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+Shift+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# bind i3lock to win+l for familiarity
|
||||
bindsym Mod4+l exec i3lock -eft -c 282c34
|
||||
|
||||
# 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 window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s 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"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
tray_output primary
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
hide_edge_borders smart
|
2174
config/kitty/kitty.conf
Normal file
2174
config/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load diff
40
config/kitty/kitty_onedark_.conf
Normal file
40
config/kitty/kitty_onedark_.conf
Normal file
|
@ -0,0 +1,40 @@
|
|||
# onedark colors for Kitty
|
||||
|
||||
background #282c34
|
||||
foreground #abb2bf
|
||||
selection_background #393f4a
|
||||
selection_foreground #abb2bf
|
||||
url_color #98c379
|
||||
cursor #abb2bf
|
||||
|
||||
# Tabs
|
||||
active_tab_background #282c34
|
||||
active_tab_foreground #abb2bf
|
||||
inactive_tab_background #242b38
|
||||
inactive_tab_foreground #5c6370
|
||||
#tab_bar_background #20232A
|
||||
|
||||
# normal
|
||||
color0 #20232A
|
||||
color1 #e86671
|
||||
color2 #98c379
|
||||
color3 #e0af68
|
||||
color4 #61afef
|
||||
color5 #c678dd
|
||||
color6 #56b6c2
|
||||
color7 #798294
|
||||
|
||||
# bright
|
||||
color8 #5c6370
|
||||
color9 #e86671
|
||||
color10 #98c379
|
||||
color11 #e0af68
|
||||
color12 #61afef
|
||||
color13 #c678dd
|
||||
color14 #56b6c2
|
||||
color15 #abb2bf
|
||||
|
||||
# extended colors
|
||||
color16 #d19a66
|
||||
color17 #f65866
|
||||
|
42
config/kitty/onehalf-dark.conf
Normal file
42
config/kitty/onehalf-dark.conf
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Onehalf Colorscheme for Kitty
|
||||
# Based on https://github.com/sonph/onehalf
|
||||
# By https://github.com/dbinary
|
||||
|
||||
foreground #dcdfe4
|
||||
background #282c34
|
||||
selection_foreground #000000
|
||||
selection_background #FFFACD
|
||||
url_color #0087BD
|
||||
|
||||
# black
|
||||
# color0 #282c34
|
||||
color0 #5d677a
|
||||
color8 #5d677a
|
||||
|
||||
# red
|
||||
color1 #e06c75
|
||||
color9 #e06c75
|
||||
|
||||
# green
|
||||
color2 #98c379
|
||||
color10 #98c379
|
||||
|
||||
# yellow
|
||||
color3 #e5c07b
|
||||
color11 #e5c07b
|
||||
|
||||
# blue
|
||||
color4 #61afef
|
||||
color12 #61afef
|
||||
|
||||
# magenta
|
||||
color5 #c678dd
|
||||
color13 #c678dd
|
||||
|
||||
# cyan
|
||||
color6 #56b6c2
|
||||
color14 #56b6c2
|
||||
|
||||
# white
|
||||
color7 #dcdfe4
|
||||
color15 #dcdfe4
|
7
config/lazygit/config.yml
Normal file
7
config/lazygit/config.yml
Normal file
|
@ -0,0 +1,7 @@
|
|||
gui:
|
||||
showFileTree: false
|
||||
showCommandLog: false
|
||||
showIcons: true
|
||||
promptToReturnFromSubprocess: false
|
||||
# to exit immediately if run outside of the Git repository
|
||||
notARepository: 'quit'
|
|
@ -10,14 +10,11 @@ mv nvim.appimage "$HOME/bin/nvim"
|
|||
|
||||
## Installing configuration
|
||||
```bash
|
||||
git clone git@github.com:elitherl/vim-config.git ${XDG_CONFIG_HOME:-$HOME/.config}/nvim
|
||||
# or using symlink
|
||||
git clone git@github.com:elitherl/vim-config.git /path/to/directory
|
||||
ln -s /path/to/directory ${XDG_CONFIG_HOME:-$HOME/.config}/nvim
|
||||
ln -s /path/to/config/nvim ${XDG_CONFIG_HOME:-$HOME/.config}/nvim
|
||||
```
|
||||
|
||||
### Install script
|
||||
`install.sh` currently handles installing `Packer`, `pynvim`, `pipx` and currently configured language servers with formatters.
|
||||
`install.sh` currently handles installing `Packer` and `pynvim`.
|
||||
Will also update existing installs if already present.
|
||||
|
||||
### Installing `Packer` plugin manager
|
||||
|
|
14
install.sh
Executable file
14
install.sh
Executable file
|
@ -0,0 +1,14 @@
|
|||
#! /usr/bin/env sh
|
||||
# Install various dotfiles into their proper places
|
||||
|
||||
# .config files
|
||||
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}"
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
|
||||
for FILE in config/*; do
|
||||
FILENAME="$(basename $FILE)"
|
||||
if [ ! -e "$CONFIG_DIR/$FILENAME" ]; then
|
||||
ls -s $(readlink -f "$FILE") "$CONFIG_DIR/$FILENAME"
|
||||
fi
|
||||
echo "$(readlink -f $FILE) -> $CONFIG_DIR/$FILENAME"
|
||||
done
|
30
templates/crontab
Normal file
30
templates/crontab
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Edit this file to introduce tasks to be run by cron.
|
||||
#
|
||||
# Each task to run has to be defined through a single line
|
||||
# indicating with different fields when the task will be run
|
||||
# and what command to run for the task
|
||||
#
|
||||
# To define the time you can provide concrete values for
|
||||
# minute (m), hour (h), day of month (dom), month (mon),
|
||||
# and day of week (dow) or use '*' in these fields (for 'any').
|
||||
#
|
||||
# Notice that tasks will be started based on the cron's system
|
||||
# daemon's notion of time and timezones.
|
||||
#
|
||||
# Output of the crontab jobs (including errors) is sent through
|
||||
# email to the user the crontab file belongs to (unless redirected).
|
||||
#
|
||||
# For example, you can run a backup of all your user accounts
|
||||
# at 5 a.m every week with:
|
||||
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
|
||||
#
|
||||
# For more information see the manual pages of crontab(5) and cron(8)
|
||||
#
|
||||
# Example of job definition:
|
||||
# .---------------- minute (0 - 59)
|
||||
# | .------------- hour (0 - 23)
|
||||
# | | .---------- day of month (1 - 31)
|
||||
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
|
||||
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|
||||
# | | | | |
|
||||
# * * * * * user-name command to be executed
|
48
templates/python_package/__init__.py~
Normal file
48
templates/python_package/__init__.py~
Normal file
|
@ -0,0 +1,48 @@
|
|||
from typing import Union
|
||||
import logging
|
||||
|
||||
LOGGING_FORMATTER = logging.Formatter("%(name)s - %(levelname)s - %(message)s")
|
||||
|
||||
|
||||
def add_root_logger_handler(
|
||||
logger: logging.Logger,
|
||||
formatter: logging.Formatter = LOGGING_FORMATTER,
|
||||
) -> None:
|
||||
"""
|
||||
Recursively climb logger parent tree to add handler with given formatter to
|
||||
top level logger.
|
||||
Will raise UserWarning if it reaches RootLogger to prevent session modification
|
||||
|
||||
:param logger: Logger object to find top level parent from
|
||||
:param formatter: Formatter object to describe logging statements
|
||||
"""
|
||||
if isinstance(logger.parent, logging.RootLogger):
|
||||
if len(logger.handlers) == 0:
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(formatter)
|
||||
logger.addHandler(handler)
|
||||
elif isinstance(logger, logging.RootLogger) or logger.parent is None:
|
||||
raise UserWarning(
|
||||
"Failure in add_root_logger_handler, "
|
||||
"protecting root logger from modification"
|
||||
)
|
||||
else:
|
||||
add_root_logger_handler(logger=logger.parent, formatter=formatter)
|
||||
|
||||
class AbstractLoggingClass:
|
||||
"""
|
||||
Base class to ensure logging is setup
|
||||
"""
|
||||
|
||||
def __init__(self, loglevel: Union[int, str] = logging.WARNING) -> None:
|
||||
"""
|
||||
Set up logging and fetch class level logger for use by subclasses
|
||||
|
||||
:param loglevel: Verbosity of logging statements
|
||||
"""
|
||||
module_logger = logging.getLogger(self.__class__.__module__)
|
||||
add_root_logger_handler(module_logger)
|
||||
self.logger = module_logger.getChild(self.__class__.__name__)
|
||||
if loglevel is not None:
|
||||
self.logger.setLevel(loglevel)
|
||||
|
3
templates/python_package/gitignore
Normal file
3
templates/python_package/gitignore
Normal file
|
@ -0,0 +1,3 @@
|
|||
__pycache__
|
||||
*.*~
|
||||
*.egg-info
|
27
templates/python_package/pre-commit-config.yaml
Normal file
27
templates/python_package/pre-commit-config.yaml
Normal file
|
@ -0,0 +1,27 @@
|
|||
# See https://pre-commit.com for more information
|
||||
# See https://pre-commit.com/hooks.html for more hooks
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: stable
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-toml
|
||||
- id: check-added-large-files
|
||||
- repo: https://github.com/sqlalchemyorg/zimports/
|
||||
rev: stable
|
||||
hooks:
|
||||
- id: zimports
|
||||
name: "Reorganise Import Statements"
|
||||
- repo: https://github.com/psf/black
|
||||
rev: stable
|
||||
hooks:
|
||||
- id: black
|
||||
name: "Reformat Code Using black"
|
||||
- repo: https://gitlab.com/pycqa/flake8
|
||||
rev: stable
|
||||
hooks:
|
||||
- id: flake8
|
||||
name: "Check Code Style Using flake8"
|
||||
|
41
templates/python_package/pyproject.toml
Normal file
41
templates/python_package/pyproject.toml
Normal file
|
@ -0,0 +1,41 @@
|
|||
[build-system]
|
||||
requires = ["setuptools >= 42", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "my_package"
|
||||
version = "1.0"
|
||||
authors = [
|
||||
{name = "Evie Litherland-Smith", email = "evie.litherland-smith@ukaea.uk"}
|
||||
]
|
||||
requires-python = ">=3.7.1"
|
||||
dependencies = [
|
||||
"some_package"
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pre-commit",
|
||||
"flake8",
|
||||
"black",
|
||||
"zimports",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
script_name = "my_package.foo:bar"
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"] # list of folders that contain the packages (["."] by default)
|
||||
include = ["my_package*"] # package names should match these glob patterns (["*"] by default)
|
||||
exclude = ["tests*"] # exclude packages matching these glob patterns (empty by default)
|
||||
namespaces = true # to disable scanning PEP 420 namespaces (true by default)
|
||||
|
||||
[tool.black]
|
||||
line-length = 88
|
||||
exclude = '''
|
||||
/(
|
||||
\.git
|
||||
| \.mypy_cache
|
||||
| venv
|
||||
)/
|
||||
'''
|
5
templates/python_package/pyrightconfig.json
Normal file
5
templates/python_package/pyrightconfig.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"venvPath": "/path/to/venv/directory/",
|
||||
"venv": "venv",
|
||||
"reportMissingTypeStubs": true
|
||||
}
|
11
templates/python_package/setup.cfg
Normal file
11
templates/python_package/setup.cfg
Normal file
|
@ -0,0 +1,11 @@
|
|||
[flake8]
|
||||
max-line-length = 88
|
||||
import-order-style = pep8
|
||||
exclude = .git/*,__pycache__/*
|
||||
|
||||
[pycodestyle]
|
||||
max-line-length = 88
|
||||
exclude = .git/*,__pycache__/*
|
||||
|
||||
[mypy-numpy.*]
|
||||
ignore_missing_imports = True
|
9
templates/python_package/setup.py
Normal file
9
templates/python_package/setup.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env python
|
||||
"""
|
||||
Basic setup.py to maintain backwards compatability with non-PEP517/PEP518
|
||||
compliant projects
|
||||
"""
|
||||
import setuptools
|
||||
|
||||
if __name__ == "__main__":
|
||||
setuptools.setup()
|
26
templates/python_package/src/__init__.py
Normal file
26
templates/python_package/src/__init__.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
from typing import Union
|
||||
import logging
|
||||
|
||||
if (
|
||||
logging.getLogger(__package__).parent.name == "root"
|
||||
and len(logging.getLogger(__package__).handlers) == 0
|
||||
):
|
||||
formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s")
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(formatter)
|
||||
logging.getLogger(__package__).addHandler(handler)
|
||||
|
||||
|
||||
def set_loglevel(loglevel: Union[str, int]) -> None:
|
||||
"""
|
||||
Set global loglevel for pyutils modules
|
||||
|
||||
:param loglevel: logging valid loglevel name or integer
|
||||
:type loglevel: Union[str, int]
|
||||
"""
|
||||
try:
|
||||
logging.getLogger(__package__).setLevel(
|
||||
loglevel.upper() if isinstance(loglevel, str) else loglevel
|
||||
)
|
||||
except Exception as e:
|
||||
logging.getLogger(__package__).warning("Setting loglevel failed: {}".format(e))
|
Loading…
Reference in a new issue