1
0
Fork 0
This commit is contained in:
Vladimír Dudr 2022-05-06 10:08:57 +02:00
commit e280dad1d4
101 changed files with 12747 additions and 0 deletions
.chezmoiexternal.toml_laya-repo
bin
dot_config
broot
composer
containers
dunst
encrypted_laya.cfg.ascgreenclip.toml.tmpl
herbstluftwm
imv
jesseduffield/lazygit
kitty
nginx
nvim
after
ftplugin
syntax
autoload
ftdetect
init.lua
php
phpactor
picom
private_cmus
private_mc
private_mpv
private_pipewire
private_qutebrowser
ranger
rclone
rofi
systemd/user
zsh
dot_gitconfigdot_mbsyncrcdot_zshrcprivate_dot_msmtprc

10
.chezmoiexternal.toml Normal file
View file

@ -0,0 +1,10 @@
[".oh-my-zsh"]
type = "archive"
url = "https://github.com/ohmyzsh/ohmyzsh/archive/master.tar.gz"
exact = true
stripComponents = 1
refreshPeriod = "168h"
[".local/share/nvim/site/pack/packer/start/packer.nvim"]
type = "git-repo"
url = "https://github.com/wbthomason/packer.nvim"

12
_laya-repo Normal file
View file

@ -0,0 +1,12 @@
#compdef laya-repo
_describe 'command' '(
commit-all:go\ through\ all\ libs\ in\ storage,\ stage\ all\ changes,\ commit\ them\
convert:create\ new\ laya\ repository\ and\ copy\ current\ dir\ to\ repository\ directory\
pull-all:pull\ or\ clone\ everything\ in\ repository.laya.io/laya/\
status:show\ what\ is\ not\ commited\
diff:show\ diff\ of\ current\ directory\ agains\ laya\ lib\ of\ same\ name\
sync:synchronize\ all\ files\ of\ current\ directory\ to\ laya\ lib\ of\ same\ name\
sync-all:call\ sync\ to\ all\ subdirectories\ of\ current\ directory
)' && ret=0

63
bin/executable_devel Normal file
View file

@ -0,0 +1,63 @@
#!/bin/bash
versions=( 56 71 72 73 74 80 81)
stop_fpm() {
for v in "${versions[@]}"
do
msg="${v:-default}"
[[ "$(systemctl --user is-active "php@${v}.service")" == active ]] && systemctl --user stop "php@${v}" && echo "Stop php fpm ($msg)"
done
}
start() {
[[ "$(systemctl --user is-active nginx.service)" != active ]] && echo Start nginx && systemctl --user start nginx.service
msg="${1:-default}"
systemctl --user restart "php@$1.service" && echo "Start php fpm ($msg)"
}
restart() {
stop_fpm
start "${1:-74}"
}
case $1 in
start|default|80|php80)
restart 80
;;
stop)
systemctl --user stop nginx && echo Stop nginx
stop_fpm
;;
php71|71)
restart 71
;;
php72|72)
restart 72
;;
php73|73)
restart 73
;;
php74|74)
restart 74
;;
php81|81)
restart 81
;;
php56|56)
restart 56
;;
dev|snapshot|-snapshot)
restart -snapshot
;;
*)
for v in "${versions[@]}"
do
msg="${v:-default}"
[[ "$(systemctl --user is-active "php@${v}")" == active ]] && echo "($msg)" && exit
done
restart
;;
esac

360
dot_config/broot/conf.hjson Normal file
View file

@ -0,0 +1,360 @@
###############################################################
# This configuration file lets you
# - define new commands
# - change the shortcut or triggering keys of built-in verbs
# - change the colors
# - set default values for flags
# - set special behaviors on specific paths
# - and more...
#
# Configuration documentation is available at
# https://dystroy.org/broot
#
# This file's format is Hjson ( https://hjson.github.io/ ). Some
# properties are commented out. To enable them, remove the `#`.
#
###############################################################
{
capture_mouse: false
###############################################################
# Default flags
# You can set up flags you want broot to start with by
# default, for example `default_flags="ihp"` if you usually want
# to see hidden and gitignored files and the permissions (then
# if you don't want the hidden files you can launch `br -H`)
# A popular flag is the `g` one which displays git related info.
#
# default_flags:
###############################################################
# Date/Time format
# If you want to change the format for date/time, uncomment the
# following line and change it according to
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
#
# date_time_format: %Y/%m/%d %R
###############################################################
# uncomment to activate modal mode
#
# (you really should read https://dystroy.org/broot/modal/
# before as it may not suit everybody even among vim users)
#
modal: false
###############################################################
# Whether to mark the selected line with a triangle
#
show_selection_mark: true
###############################################################
# Column order
# cols_order, if specified, must be a permutation of the following
# array. You should keep the name at the end as it has a variable
# length.
#
# cols_order: [
# mark
# git
# size
# permission
# date
# count
# branch
# name
# ]
###############################################################
# True Colors
# If this parameter isn't set, broot tries to automatically
# determine whether true colors (24 bits) are available.
# As this process is unreliable, you may uncomment this setting
# and set it to false or true if you notice the colors in
# previewed images are too off.
#
# true_colors: false
###############################################################
# Icons
# If you want to display icons in broot, uncomment this line
# (see https://dystroy.org/broot/icons for installation and
# troubleshooting)
#
# icon_theme: vscode
###############################################################
# Special paths
# If some paths must be handled specially, uncomment (and change
# this section as per the examples)
#
# special_paths: {
# "/media/slow-backup-disk" : no-enter
# "/home/dys/useless" : hide
# "/home/dys/my-link-I-want-to-explore" : enter
# }
###############################################################
# Quit on last cancel
# You can usually cancel the last state change on escape.
# If you want the escape key to quit broot when there's nothing
# to cancel (for example when you just opened broot), uncomment
# this parameter
#
# quit_on_last_cancel: true
###############################################################
# Search modes
#
# broot allows many search modes.
# A search mode is defined by
# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
# - where to search: file 'name', 'path', or file 'content'
# A search pattern may for example be "fuzzy path" (default),
# "regex content" or "exact path".
#
# The search mode is selected from its prefix. For example, if
# you type "abc", the default mode is "fuzzy path". If you type
# "/abc", the mode is "regex path". If you type "rn/abc", the mode
# is "regex name".
#
# This mapping may be modified. You may want to dedicate the
# empty prefix (the one which doesn't need a '/') to the
# search mode you use most often. The example below makes it
# easy to search on name rather than on the subpath.
#
# More information on
# https://dystroy.org/broot/input/#the-filtering-pattern
#
# search_modes: {
# <empty>: fuzzy name
# /: regex name
# }
###############################################################
# Verbs and shortcuts
# You can define your own commands which would be applied to
# the selection.
# You'll also find below verbs that you can customize or enable.
verbs: [
# Example 1: launching `tail -n` on the selected file (leaving broot)
# {
# name: tail_lines
# invocation: tl {lines_count}
# execution: "tail -f -n {lines_count} {file}"
# }
# Example 2: creating a new file without leaving broot
# {
# name: touch
# invocation: touch {new_file}
# execution: "touch {directory}/{new_file}"
# leave_broot: false
# }
# A standard recommended command for editing files, that you
# can customize.
# If $EDITOR isn't set on your computer, you should either set it using
# something similar to
# export EDITOR=nvim
# or just replace it with your editor of choice in the 'execution'
# pattern.
# If your editor is able to open a file on a specific line, use {line}
# so that you may jump directly at the right line from a preview.
# Example:
# execution: nvim +{line} {file}
{
invocation: edit
shortcut: e
execution: "$EDITOR +{line} {file}"
leave_broot: false
}
# A convenient shortcut to create new text files in
# the current directory or below
{
invocation: create {subpath}
execution: "$EDITOR {directory}/{subpath}"
leave_broot: false
}
{
invocation: git_diff
shortcut: gd
leave_broot: false
execution: "git difftool -y {file}"
}
# On ctrl-b, propose the creation of a copy of the selection.
# While this might occasionally be useful, this verb is mostly here
# as an example to demonstrate rare standard groups like {file-stem}
# and {file-dot-extension} and the auto_exec verb property which
# allows verbs not executed until you hit enter
{
invocation: "backup {version}"
key: ctrl-b
leave_broot: false
auto_exec: false
execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
}
# This verb lets you launch a terminal on ctrl-T
# (on exit you'll be back in broot)
{
invocation: terminal
key: ctrl-t
execution: "$SHELL"
set_working_dir: true
leave_broot: false
}
# Here's an example of a shortcut bringing you to your home directory
# {
# invocation: home
# key: ctrl-home
# execution: ":focus ~"
# }
# A popular set of shortcuts for going up and down:
#
# {
# key: ctrl-k
# execution: ":line_up"
# }
# {
# key: ctrl-j
# execution: ":line_down"
# }
# {
# key: ctrl-u
# execution: ":page_up"
# }
# {
# key: ctrl-d
# execution: ":page_down"
# }
# If you develop using git, you might like to often switch
# to the git status filter:
# {
# key: ctrl-g
# execution: ":toggle_git_status"
# }
# You can reproduce the bindings of Norton Commander
# on copying or moving to the other panel:
# {
# key: F5
# external: "cp -r {file} {other-panel-directory}"
# leave_broot: false
# }
# {
# key: F6
# external: "mv {file} {other-panel-directory}"
# leave_broot: false
# }
]
###############################################################
# Skin
# If you want to change the colors of broot,
# uncomment the following bloc and start messing
# with the various values.
# A skin entry value is made of two parts separated with a '/':
# The first one is the skin for the active panel.
# The second one, optional, is the skin for non active panels.
# You may find explanations and other skins on
# https://dystroy.org/broot/skins
###############################################################
# If you only want to set the default color and a transparent
# background, uncomment this simplified skin:
# skin: {
# default: none none / gray(20) none
# }
#
# To experiment with a whole skin, uncomment this one:
# skin: {
# default: gray(23) none / gray(20) none
# tree: ansi(94) None / gray(3) None
# parent: gray(18) None / gray(13) None
# file: gray(20) None / gray(15) None
# directory: ansi(208) None Bold / ansi(172) None bold
# exe: Cyan None
# link: Magenta None
# pruning: gray(12) None Italic
# perm__: gray(5) None
# perm_r: ansi(94) None
# perm_w: ansi(132) None
# perm_x: ansi(65) None
# owner: ansi(138) None
# group: ansi(131) None
# count: ansi(136) gray(3)
# dates: ansi(66) None
# sparse: ansi(214) None
# content_extract: ansi(29) None
# content_match: ansi(34) None
# git_branch: ansi(229) None
# git_insertions: ansi(28) None
# git_deletions: ansi(160) None
# git_status_current: gray(5) None
# git_status_modified: ansi(28) None
# git_status_new: ansi(94) None Bold
# git_status_ignored: gray(17) None
# git_status_conflicted: ansi(88) None
# git_status_other: ansi(88) None
# selected_line: None gray(5) / None gray(4)
# char_match: Yellow None
# file_error: Red None
# flag_label: gray(15) None
# flag_value: ansi(208) None Bold
# input: White None / gray(15) gray(2)
# status_error: gray(22) ansi(124)
# status_job: ansi(220) gray(5)
# status_normal: gray(20) gray(3) / gray(2) gray(2)
# status_italic: ansi(208) gray(3) / gray(2) gray(2)
# status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
# status_code: ansi(229) gray(3) / gray(2) gray(2)
# status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
# purpose_normal: gray(20) gray(2)
# purpose_italic: ansi(178) gray(2)
# purpose_bold: ansi(178) gray(2) Bold
# purpose_ellipsis: gray(20) gray(2)
# scrollbar_track: gray(7) None / gray(4) None
# scrollbar_thumb: gray(22) None / gray(14) None
# help_paragraph: gray(20) None
# help_bold: ansi(208) None Bold
# help_italic: ansi(166) None
# help_code: gray(21) gray(3)
# help_headers: ansi(208) None
# help_table_border: ansi(239) None
# preview: gray(20) gray(1) / gray(18) gray(2)
# preview_line_number: gray(12) gray(3)
# preview_match: None ansi(29)
# hex_null: gray(11) None
# hex_ascii_graphic: gray(18) None
# hex_ascii_whitespace: ansi(143) None
# hex_ascii_other: ansi(215) None
# hex_non_ascii: ansi(167) None
# }
###############################################################
# File Extension Colors
#
# uncomment and modify the next section if you want to color
# file name depending on their extension
#
# ext_colors: {
# png: rgb(255, 128, 75)
# rs: yellow
# }
###############################################################
# Max Panels Count
#
# Change this if you sometimes want to have more than 2 panels
# open
# max_panels_count: 2
}

View file

@ -0,0 +1,9 @@
-----BEGIN PGP MESSAGE-----
jA0EBwMCZjtG6wrHtAby0sAEARfimhkXBBUg/srSCY+f8Ul7RbRYHeioZWYE1FY6
coVcqgKHjpvxaCbXF2XWZyC6iLe/4i31OIRVz7nAbnTBNlUSKBwXudprQVfi5tUW
rtlZJQYPCr5auwqZr5JZrfe02aMt4RVx+w++shWwcf9sBrWzOX6TyVJzJxIcVEhE
We+kBJqPDy2t1f453BEhdJpXbWkqNkHWj/K+/PD0iFXDjODoKtZLsbY8CPYz0siQ
8hFsJ9IPfL9CGt7svOtkKL6ordqV9A==
=VS4r
-----END PGP MESSAGE-----

View file

@ -0,0 +1,6 @@
{
"repositories": [
{ "type": "composer", "url": "https://packages.laya.io" }
]
}

View file

@ -0,0 +1,607 @@
# The containers configuration file specifies all of the available configuration
# command-line options/flags for container engine tools like Podman & Buildah,
# but in a TOML format that can be easily modified and versioned.
# Please refer to containers.conf(5) for details of all configuration options.
# Not all container engines implement all of the options.
# All of the options have hard coded defaults and these options will override
# the built in defaults. Users can then override these options via the command
# line. Container engines will read containers.conf files in up to three
# locations in the following order:
# 1. /usr/share/containers/containers.conf
# 2. /etc/containers/containers.conf
# 3. $HOME/.config/containers/containers.conf (Rootless containers ONLY)
# Items specified in the latter containers.conf, if they exist, override the
# previous containers.conf settings, or the default settings.
[containers]
# List of annotation. Specified as
# "key = value"
# If it is empty or commented out, no annotations will be added
#
#annotations = []
# Used to change the name of the default AppArmor profile of container engine.
#
#apparmor_profile = "container-default"
# Default way to to create a cgroup namespace for the container
# Options are:
# `private` Create private Cgroup Namespace for the container.
# `host` Share host Cgroup Namespace with the container.
#
#cgroupns = "private"
# Control container cgroup configuration
# Determines whether the container will create CGroups.
# Options are:
# `enabled` Enable cgroup support within container
# `disabled` Disable cgroup support, will inherit cgroups from parent
# `no-conmon` Do not create a cgroup dedicated to conmon.
#
#cgroups = "enabled"
# List of default capabilities for containers. If it is empty or commented out,
# the default capabilities defined in the container engine will be added.
#
default_capabilities = [
"CHOWN",
"DAC_OVERRIDE",
"FOWNER",
"FSETID",
"KILL",
"NET_BIND_SERVICE",
"SETFCAP",
"SETGID",
"SETPCAP",
"SETUID",
"SYS_CHROOT"
]
# A list of sysctls to be set in containers by default,
# specified as "name=value",
# for example:"net.ipv4.ping_group_range=0 0".
#
default_sysctls = [
"net.ipv4.ping_group_range=0 0",
]
# A list of ulimits to be set in containers by default, specified as
# "<ulimit name>=<soft limit>:<hard limit>", for example:
# "nofile=1024:2048"
# See setrlimit(2) for a list of resource names.
# Any limit not specified here will be inherited from the process launching the
# container engine.
# Ulimits has limits for non privileged container engines.
#
#default_ulimits = [
# "nofile=1280:2560",
#]
# List of devices. Specified as
# "<device-on-host>:<device-on-container>:<permissions>", for example:
# "/dev/sdc:/dev/xvdc:rwm".
# If it is empty or commented out, only the default devices will be used
#
#devices = []
# List of default DNS options to be added to /etc/resolv.conf inside of the container.
#
#dns_options = []
# List of default DNS search domains to be added to /etc/resolv.conf inside of the container.
#
#dns_searches = []
# Set default DNS servers.
# This option can be used to override the DNS configuration passed to the
# container. The special value "none" can be specified to disable creation of
# /etc/resolv.conf in the container.
# The /etc/resolv.conf file in the image will be used without changes.
#
#dns_servers = []
# Environment variable list for the conmon process; used for passing necessary
# environment variables to conmon or the runtime.
#
#env = [
# "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
# "TERM=xterm",
#]
# Pass all host environment variables into the container.
#
#env_host = false
# Default proxy environment variables passed into the container.
# The environment variables passed in include:
# http_proxy, https_proxy, ftp_proxy, no_proxy, and the upper case versions of
# these. This option is needed when host system uses a proxy but container
# should not use proxy. Proxy environment variables specified for the container
# in any other way will override the values passed from the host.
#
#http_proxy = true
# Run an init inside the container that forwards signals and reaps processes.
#
#init = false
# Container init binary, if init=true, this is the init binary to be used for containers.
#
#init_path = "/usr/libexec/podman/catatonit"
# Default way to to create an IPC namespace (POSIX SysV IPC) for the container
# Options are:
# `private` Create private IPC Namespace for the container.
# `host` Share host IPC Namespace with the container.
#
#ipcns = "private"
# keyring tells the container engine whether to create
# a kernel keyring for use within the container.
#
#keyring = true
# label tells the container engine whether to use container separation using
# MAC(SELinux) labeling or not.
# The label flag is ignored on label disabled systems.
#
#label = true
# Logging driver for the container. Available options: k8s-file and journald.
#
#log_driver = "k8s-file"
# Maximum size allowed for the container log file. Negative numbers indicate
# that no size limit is imposed. If positive, it must be >= 8192 to match or
# exceed conmon's read buffer. The file is truncated and re-opened so the
# limit is never exceeded.
#
#log_size_max = -1
# Specifies default format tag for container log messages.
# This is useful for creating a specific tag for container log messages.
# Containers logs default to truncated container ID as a tag.
#
#log_tag = ""
# Default way to to create a Network namespace for the container
# Options are:
# `private` Create private Network Namespace for the container.
# `host` Share host Network Namespace with the container.
# `none` Containers do not use the network
#
#netns = "private"
# Create /etc/hosts for the container. By default, container engine manage
# /etc/hosts, automatically adding the container's own IP address.
#
#no_hosts = false
# Default way to to create a PID namespace for the container
# Options are:
# `private` Create private PID Namespace for the container.
# `host` Share host PID Namespace with the container.
#
#pidns = "private"
# Maximum number of processes allowed in a container.
#
#pids_limit = 2048
# Copy the content from the underlying image into the newly created volume
# when the container is created instead of when it is started. If false,
# the container engine will not copy the content until the container is started.
# Setting it to true may have negative performance implications.
#
#prepare_volume_on_create = false
# Path to the seccomp.json profile which is used as the default seccomp profile
# for the runtime.
#
#seccomp_profile = "/usr/share/containers/seccomp.json"
# Size of /dev/shm. Specified as <number><unit>.
# Unit is optional, values:
# b (bytes), k (kilobytes), m (megabytes), or g (gigabytes).
# If the unit is omitted, the system uses bytes.
#
#shm_size = "65536k"
# Set timezone in container. Takes IANA timezones as well as "local",
# which sets the timezone in the container to match the host machine.
#
#tz = ""
# Set umask inside the container
#
#umask = "0022"
# Default way to to create a User namespace for the container
# Options are:
# `auto` Create unique User Namespace for the container.
# `host` Share host User Namespace with the container.
#
#userns = "host"
# Number of UIDs to allocate for the automatic container creation.
# UIDs are allocated from the "container" UIDs listed in
# /etc/subuid & /etc/subgid
#
#userns_size = 65536
# Default way to to create a UTS namespace for the container
# Options are:
# `private` Create private UTS Namespace for the container.
# `host` Share host UTS Namespace with the container.
#
#utsns = "private"
# List of volumes. Specified as
# "<directory-on-host>:<directory-in-container>:<options>", for example:
# "/db:/var/lib/db:ro".
# If it is empty or commented out, no volumes will be added
#
#volumes = []
[secrets]
#driver = "file"
[secrets.opts]
#root = "/example/directory"
[network]
# Network backend determines what network driver will be used to set up and tear down container networks.
# Valid values are "cni" and "netavark".
# The default value is empty which means that it will automatically choose CNI or netavark. If there are
# already containers/images or CNI networks preset it will choose CNI.
#
# Before changing this value all containers must be stopped otherwise it is likely that
# iptables rules and network interfaces might leak on the host. A reboot will fix this.
#
#network_backend = ""
# Path to directory where CNI plugin binaries are located.
#
#cni_plugin_dirs = [
# "/usr/local/libexec/cni",
# "/usr/libexec/cni",
# "/usr/local/lib/cni",
# "/usr/lib/cni",
# "/opt/cni/bin",
#]
# The network name of the default network to attach pods to.
#
#default_network = "podman"
# The default subnet for the default network given in default_network.
# If a network with that name does not exist, a new network using that name and
# this subnet will be created.
# Must be a valid IPv4 CIDR prefix.
#
#default_subnet = "10.88.0.0/16"
# Path to the directory where network configuration files are located.
# For the CNI backend the default is "/etc/cni/net.d" as root
# and "$HOME/.config/cni/net.d" as rootless.
# For the netavark backend "/etc/containers/networks" is used as root
# and "$graphroot/networks" as rootless.
#
#network_config_dir = "/etc/cni/net.d/"
[engine]
# Index to the active service
#
#active_service = production
# The compression format to use when pushing an image.
# Valid options are: `gzip`, `zstd` and `zstd:chunked`.
#
#compression_format = "gzip"
# Cgroup management implementation used for the runtime.
# Valid options "systemd" or "cgroupfs"
#
cgroup_manager = "systemd"
# Environment variables to pass into conmon
#
#conmon_env_vars = [
# "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#]
# Paths to look for the conmon container manager binary
#
#conmon_path = [
# "/usr/libexec/podman/conmon",
# "/usr/local/libexec/podman/conmon",
# "/usr/local/lib/podman/conmon",
# "/usr/bin/conmon",
# "/usr/sbin/conmon",
# "/usr/local/bin/conmon",
# "/usr/local/sbin/conmon"
#]
# Enforces using docker.io for completing short names in Podman's compatibility
# REST API. Note that this will ignore unqualified-search-registries and
# short-name aliases defined in containers-registries.conf(5).
#compat_api_enforce_docker_hub = true
# Specify the keys sequence used to detach a container.
# Format is a single character [a-Z] or a comma separated sequence of
# `ctrl-<value>`, where `<value>` is one of:
# `a-z`, `@`, `^`, `[`, `\`, `]`, `^` or `_`
#
#detach_keys = "ctrl-p,ctrl-q"
# Determines whether engine will reserve ports on the host when they are
# forwarded to containers. When enabled, when ports are forwarded to containers,
# ports are held open by as long as the container is running, ensuring that
# they cannot be reused by other programs on the host. However, this can cause
# significant memory usage if a container has many ports forwarded to it.
# Disabling this can save memory.
#
#enable_port_reservation = true
# Environment variables to be used when running the container engine (e.g., Podman, Buildah).
# For example "http_proxy=internal.proxy.company.com".
# Note these environment variables will not be used within the container.
# Set the env section under [containers] table, if you want to set environment variables for the container.
#
#env = []
# Define where event logs will be stored, when events_logger is "file".
#events_logfile_path=""
# Selects which logging mechanism to use for container engine events.
# Valid values are `journald`, `file` and `none`.
#
#events_logger = "journald"
# A is a list of directories which are used to search for helper binaries.
#
#helper_binaries_dir = [
# "/usr/local/libexec/podman",
# "/usr/local/lib/podman",
# "/usr/libexec/podman",
# "/usr/lib/podman",
#]
# Path to OCI hooks directories for automatically executed hooks.
#
#hooks_dir = [
# "/usr/share/containers/oci/hooks.d",
#]
# Manifest Type (oci, v2s2, or v2s1) to use when pulling, pushing, building
# container images. By default image pulled and pushed match the format of the
# source image. Building/committing defaults to OCI.
#
#image_default_format = ""
# Default transport method for pulling and pushing for images
#
#image_default_transport = "docker://"
# Maximum number of image layers to be copied (pulled/pushed) simultaneously.
# Not setting this field, or setting it to zero, will fall back to containers/image defaults.
#
#image_parallel_copies = 0
# Default command to run the infra container
#
#infra_command = "/pause"
# Infra (pause) container image name for pod infra containers. When running a
# pod, we start a `pause` process in a container to hold open the namespaces
# associated with the pod. This container does nothing other then sleep,
# reserving the pods resources for the lifetime of the pod. By default container
# engines run a builtin container using the pause executable. If you want override
# specify an image to pull.
#
#infra_image = ""
# Specify the locking mechanism to use; valid values are "shm" and "file".
# Change the default only if you are sure of what you are doing, in general
# "file" is useful only on platforms where cgo is not available for using the
# faster "shm" lock type. You may need to run "podman system renumber" after
# you change the lock type.
#
#lock_type** = "shm"
# Indicates if Podman is running inside a VM via Podman Machine.
# Podman uses this value to do extra setup around networking from the
# container inside the VM to to host.
#
#machine_enabled = false
# MultiImageArchive - if true, the container engine allows for storing archives
# (e.g., of the docker-archive transport) with multiple images. By default,
# Podman creates single-image archives.
#
#multi_image_archive = "false"
# Default engine namespace
# If engine is joined to a namespace, it will see only containers and pods
# that were created in the same namespace, and will create new containers and
# pods in that namespace.
# The default namespace is "", which corresponds to no namespace. When no
# namespace is set, all containers and pods are visible.
#
#namespace = ""
# Path to the slirp4netns binary
#
#network_cmd_path = ""
# Default options to pass to the slirp4netns binary.
# For example "allow_host_loopback=true"
#
#network_cmd_options = ["enable_ipv6=true",]
# Whether to use chroot instead of pivot_root in the runtime
#
#no_pivot_root = false
# Number of locks available for containers and pods.
# If this is changed, a lock renumber must be performed (e.g. with the
# 'podman system renumber' command).
#
#num_locks = 2048
# Whether to pull new image before running a container
#
#pull_policy = "missing"
# Indicates whether the application should be running in remote mode. This flag modifies the
# --remote option on container engines. Setting the flag to true will default
# `podman --remote=true` for access to the remote Podman service.
#
#remote = false
# Default OCI runtime
#
runtime = "crun"
# List of the OCI runtimes that support --format=json. When json is supported
# engine will use it for reporting nicer errors.
#
#runtime_supports_json = ["crun", "runc", "kata", "runsc", "krun"]
# List of the OCI runtimes that supports running containers with KVM Separation.
#
#runtime_supports_kvm = ["kata", "krun"]
# List of the OCI runtimes that supports running containers without cgroups.
#
#runtime_supports_nocgroups = ["crun", "krun"]
# Default location for storing temporary container image content. Can be overridden with the TMPDIR environment
# variable. If you specify "storage", then the location of the
# container/storage tmp directory will be used.
image_copy_tmp_dir="{{.chezmoi.homeDir}}/.local/tmp"
# Number of seconds to wait without a connection
# before the `podman system service` times out and exits
#
#service_timeout = 5
# Directory for persistent engine files (database, etc)
# By default, this will be configured relative to where the containers/storage
# stores containers
# Uncomment to change location from this default
#
#static_dir = "/var/lib/containers/storage/libpod"
# Number of seconds to wait for container to exit before sending kill signal.
#
#stop_timeout = 10
# map of service destinations
#
#[service_destinations]
# [service_destinations.production]
# URI to access the Podman service
# Examples:
# rootless "unix://run/user/$UID/podman/podman.sock" (Default)
# rootfull "unix://run/podman/podman.sock (Default)
# remote rootless ssh://engineering.lab.company.com/run/user/1000/podman/podman.sock
# remote rootfull ssh://root@10.10.1.136:22/run/podman/podman.sock
#
# uri = "ssh://user@production.example.com/run/user/1001/podman/podman.sock"
# Path to file containing ssh identity key
# identity = "~/.ssh/id_rsa"
# Directory for temporary files. Must be tmpfs (wiped after reboot)
#
#tmp_dir = "/run/libpod"
# Directory for libpod named volumes.
# By default, this will be configured relative to where containers/storage
# stores containers.
# Uncomment to change location from this default.
#
#volume_path = "/var/lib/containers/storage/volumes"
# Paths to look for a valid OCI runtime (crun, runc, kata, runsc, krun, etc)
[engine.runtimes]
#crun = [
# "/usr/bin/crun",
# "/usr/sbin/crun",
# "/usr/local/bin/crun",
# "/usr/local/sbin/crun",
# "/sbin/crun",
# "/bin/crun",
# "/run/current-system/sw/bin/crun",
#]
#kata = [
# "/usr/bin/kata-runtime",
# "/usr/sbin/kata-runtime",
# "/usr/local/bin/kata-runtime",
# "/usr/local/sbin/kata-runtime",
# "/sbin/kata-runtime",
# "/bin/kata-runtime",
# "/usr/bin/kata-qemu",
# "/usr/bin/kata-fc",
#]
#runc = [
# "/usr/bin/runc",
# "/usr/sbin/runc",
# "/usr/local/bin/runc",
# "/usr/local/sbin/runc",
# "/sbin/runc",
# "/bin/runc",
# "/usr/lib/cri-o-runc/sbin/runc",
#]
#runsc = [
# "/usr/bin/runsc",
# "/usr/sbin/runsc",
# "/usr/local/bin/runsc",
# "/usr/local/sbin/runsc",
# "/bin/runsc",
# "/sbin/runsc",
# "/run/current-system/sw/bin/runsc",
#]
#krun = [
# "/usr/bin/krun",
# "/usr/local/bin/krun",
#]
[engine.volume_plugins]
#testplugin = "/run/podman/plugins/test.sock"
[machine]
# Number of CPU's a machine is created with.
#
#cpus=1
# The size of the disk in GB created when init-ing a podman-machine VM.
#
#disk_size=10
# The image used when creating a podman-machine VM.
#
#image = "testing"
# Memory in MB a machine is created with.
#
#memory=2048
# The username to use and create on the podman machine OS for rootless
# container access.
#
#user = "core"
# The [machine] table MUST be the last entry in this file.
# (Unless another table is added)
# TOML does not provide a way to end a table other than a further table being
# defined, so every key hereafter will be part of [machine] and not the
# main config.

View file

@ -0,0 +1,77 @@
# For more information on this configuration file, see containers-registries.conf(5).
#
# NOTE: RISK OF USING UNQUALIFIED IMAGE NAMES
# We recommend always using fully qualified image names including the registry
# server (full dns name), namespace, image name, and tag
# (e.g., registry.redhat.io/ubi8/ubi:latest). Pulling by digest (i.e.,
# quay.io/repository/name@digest) further eliminates the ambiguity of tags.
# When using short names, there is always an inherent risk that the image being
# pulled could be spoofed. For example, a user wants to pull an image named
# `foobar` from a registry and expects it to come from myregistry.com. If
# myregistry.com is not first in the search list, an attacker could place a
# different `foobar` image at a registry earlier in the search list. The user
# would accidentally pull and run the attacker's image and code rather than the
# intended content. We recommend only adding registries which are completely
# trusted (i.e., registries which don't allow unknown or anonymous users to
# create accounts with arbitrary names). This will prevent an image from being
# spoofed, squatted or otherwise made insecure. If it is necessary to use one
# of these registries, it should be added at the end of the list.
#
# # An array of host[:port] registries to try when pulling an unqualified image, in order.
unqualified-search-registries = ["docker.io"]
#
# [[registry]]
# # The "prefix" field is used to choose the relevant [[registry]] TOML table;
# # (only) the TOML table with the longest match for the input image name
# # (taking into account namespace/repo/tag/digest separators) is used.
# #
# # The prefix can also be of the form: *.example.com for wildcard subdomain
# # matching.
# #
# # If the prefix field is missing, it defaults to be the same as the "location" field.
# prefix = "example.com/foo"
#
# # If true, unencrypted HTTP as well as TLS connections with untrusted
# # certificates are allowed.
# insecure = false
#
# # If true, pulling images with matching names is forbidden.
# blocked = false
#
# # The physical location of the "prefix"-rooted namespace.
# #
# # By default, this is equal to "prefix" (in which case "prefix" can be omitted
# # and the [[registry]] TOML table can only specify "location").
# #
# # Example: Given
# # prefix = "example.com/foo"
# # location = "internal-registry-for-example.net/bar"
# # requests for the image example.com/foo/myimage:latest will actually work with the
# # internal-registry-for-example.net/bar/myimage:latest image.
#
# # The location can be empty iff prefix is in a
# # wildcarded format: "*.example.com". In this case, the input reference will
# # be used as-is without any rewrite.
# location = internal-registry-for-example.com/bar"
#
# # (Possibly-partial) mirrors for the "prefix"-rooted namespace.
# #
# # The mirrors are attempted in the specified order; the first one that can be
# # contacted and contains the image will be used (and if none of the mirrors contains the image,
# # the primary location specified by the "registry.location" field, or using the unmodified
# # user-specified reference, is tried last).
# #
# # Each TOML table in the "mirror" array can contain the following fields, with the same semantics
# # as if specified in the [[registry]] TOML table directly:
# # - location
# # - insecure
# [[registry.mirror]]
# location = "example-mirror-0.local/mirror-for-foo"
# [[registry.mirror]]
# location = "example-mirror-1.local/mirrors/foo"
# insecure = true
# # Given the above, a pull of example.com/foo/image:latest will try:
# # 1. example-mirror-0.local/mirror-for-foo/image:latest
# # 2. example-mirror-1.local/mirrors/foo/image:latest
# # 3. internal-registry-for-example.net/bar/image:latest
# # in order, and use the first one that exists.

View file

@ -0,0 +1,108 @@
[aliases]
# almalinux
"almalinux" = "docker.io/library/almalinux"
"almalinux-minimal" = "docker.io/library/almalinux-minimal"
# Arch Linux
"archlinux" = "docker.io/archlinux/archlinux"
# centos
"centos" = "quay.io/centos/centos"
# containers
"skopeo" = "quay.io/skopeo/stable"
"buildah" = "quay.io/buildah/stable"
"podman" = "quay.io/podman/stable"
# docker
"alpine" = "docker.io/library/alpine"
"docker" = "docker.io/library/docker"
"registry" = "docker.io/library/registry"
"hello-world" = "docker.io/library/hello-world"
"swarm" = "docker.io/library/swarm"
# Fedora
"fedora-minimal" = "registry.fedoraproject.org/fedora-minimal"
"fedora" = "registry.fedoraproject.org/fedora"
# openSUSE
"opensuse/tumbleweed" = "registry.opensuse.org/opensuse/tumbleweed"
"opensuse/tumbleweed-dnf" = "registry.opensuse.org/opensuse/tumbleweed-dnf"
"opensuse/tumbleweed-microdnf" = "registry.opensuse.org/opensuse/tumbleweed-microdnf"
"opensuse/leap" = "registry.opensuse.org/opensuse/leap"
"opensuse/busybox" = "registry.opensuse.org/opensuse/busybox"
"tumbleweed" = "registry.opensuse.org/opensuse/tumbleweed"
"tumbleweed-dnf" = "registry.opensuse.org/opensuse/tumbleweed-dnf"
"tumbleweed-microdnf" = "registry.opensuse.org/opensuse/tumbleweed-microdnf"
"leap" = "registry.opensuse.org/opensuse/leap"
"leap-dnf" = "registry.opensuse.org/opensuse/leap-dnf"
"leap-microdnf" = "registry.opensuse.org/opensuse/leap-microdnf"
"tw-busybox" = "registry.opensuse.org/opensuse/busybox"
# SUSE
"suse/sle15" = "registry.suse.com/suse/sle15"
"suse/sles12sp5" = "registry.suse.com/suse/sles12sp5"
"suse/sles12sp4" = "registry.suse.com/suse/sles12sp4"
"suse/sles12sp3" = "registry.suse.com/suse/sles12sp3"
"sle15" = "registry.suse.com/suse/sle15"
"sles12sp5" = "registry.suse.com/suse/sles12sp5"
"sles12sp4" = "registry.suse.com/suse/sles12sp4"
"sles12sp3" = "registry.suse.com/suse/sles12sp3"
# Red Hat Enterprise Linux
"rhel" = "registry.access.redhat.com/rhel"
"rhel6" = "registry.access.redhat.com/rhel6"
"rhel7" = "registry.access.redhat.com/rhel7"
"rhel7.9" = "registry.access.redhat.com/rhel7.9"
"rhel-atomic" = "registry.access.redhat.com/rhel-atomic"
"rhel-minimal" = "registry.access.redhat.com/rhel-minimum"
"rhel-init" = "registry.access.redhat.com/rhel-init"
"rhel7-atomic" = "registry.access.redhat.com/rhel7-atomic"
"rhel7-minimal" = "registry.access.redhat.com/rhel7-minimum"
"rhel7-init" = "registry.access.redhat.com/rhel7-init"
"rhel7/rhel" = "registry.access.redhat.com/rhel7/rhel"
"rhel7/rhel-atomic" = "registry.access.redhat.com/rhel7/rhel7/rhel-atomic"
"ubi7/ubi" = "registry.access.redhat.com/ubi7/ubi"
"ubi7/ubi-minimal" = "registry.access.redhat.com/ubi7-minimal"
"ubi7/ubi-init" = "registry.access.redhat.com/ubi7-init"
"ubi7" = "registry.access.redhat.com/ubi7"
"ubi7-init" = "registry.access.redhat.com/ubi7-init"
"ubi7-minimal" = "registry.access.redhat.com/ubi7-minimal"
"rhel8" = "registry.access.redhat.com/ubi8"
"rhel8-init" = "registry.access.redhat.com/ubi8-init"
"rhel8-minimal" = "registry.access.redhat.com/ubi8-minimal"
"rhel8-micro" = "registry.access.redhat.com/ubi8-micro"
"ubi8" = "registry.access.redhat.com/ubi8"
"ubi8-minimal" = "registry.access.redhat.com/ubi8-minimal"
"ubi8-init" = "registry.access.redhat.com/ubi8-init"
"ubi8-micro" = "registry.access.redhat.com/ubi8-micro"
"ubi8/ubi" = "registry.access.redhat.com/ubi8/ubi"
"ubi8/ubi-minimal" = "registry.access.redhat.com/ubi8-minimal"
"ubi8/ubi-init" = "registry.access.redhat.com/ubi8-init"
"ubi8/ubi-micro" = "registry.access.redhat.com/ubi8-micro"
"rhel9" = "registry.access.redhat.com/ubi9"
"rhel9-init" = "registry.access.redhat.com/ubi9-init"
"rhel9-minimal" = "registry.access.redhat.com/ubi9-minimal"
"rhel9-micro" = "registry.access.redhat.com/ubi9-micro"
"ubi9" = "registry.access.redhat.com/ubi9"
"ubi9-minimal" = "registry.access.redhat.com/ubi9-minimal"
"ubi9-init" = "registry.access.redhat.com/ubi9-init"
"ubi9-micro" = "registry.access.redhat.com/ubi9-micro"
"ubi9/ubi" = "registry.access.redhat.com/ubi9/ubi"
"ubi9/ubi-minimal" = "registry.access.redhat.com/ubi9-minimal"
"ubi9/ubi-init" = "registry.access.redhat.com/ubi9-init"
"ubi9/ubi-micro" = "registry.access.redhat.com/ubi9-micro"
# Rocky Linux
"rockylinux" = "docker.io/library/rockylinux"
# Debian
"debian" = "docker.io/library/debian"
# Kali Linux
"kali-bleeding-edge" = "docker.io/kalilinux/kali-bleeding-edge"
"kali-dev" = "docker.io/kalilinux/kali-dev"
"kali-experimental" = "docker.io/kalilinux/kali-experimental"
"kali-last-release" = "docker.io/kalilinux/kali-last-release"
"kali-rolling" = "docker.io/kalilinux/kali-rolling"
# Ubuntu
"ubuntu" = "docker.io/library/ubuntu"
# Oracle Linux
"oraclelinux" = "container-registry.oracle.com/os/oraclelinux"
# busybox
"busybox" = "docker.io/library/busybox"
# php
"php" = "docker.io/library/php"
# python
"python" = "docker.io/library/python"
# node
"node" = "docker.io/library/node"

View file

@ -0,0 +1,9 @@
[storage]
driver = "overlay"
runroot = "/run/user/1000"
graphroot = "{{.chezmoi.homeDir}}/.local/share/containers/storage"
# [storage.options]
# mount_program = "/usr/bin/fuse-overlayfs"
# vim: ft=toml

414
dot_config/dunst/dunstrc Normal file
View file

@ -0,0 +1,414 @@
[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 = keyboard
# 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+45"
# 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 = Mononoki 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
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.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
# 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 larger icons down to this size, set to 0 to disable
max_icon_size = 48
# Paths to default icons.
icon_path = /usr/share/icons/clarity-albus/16x16/status:/usr/share/icons/clarity-albus/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 = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/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 = 5
### 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 action of 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.
mouse_left_click = close_current
mouse_middle_click = do_action
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,8 @@
-----BEGIN PGP MESSAGE-----
jA0EBwMCNN+mXsCZFvzy0o4B3bBBstcKWyGiQYXSXyzKbeHft5Hh1RkeTbOS9yoD
96xGfZMWHEjCM1JXCHMx7fs8+YbQ1lwd0s8qM8OuquYxx+Z46tmZ+ZfAi1mIqn6s
zdt0mN+jVizQYii5+o7g+yu2o5dvEoyAqe4dvSWPQFxzDSBEsPtRxzKyDOcGD41o
G5TXoZZ1HVWe9yN+cixs
=z5zU
-----END PGP MESSAGE-----

View file

@ -0,0 +1,9 @@
[greenclip]
blacklisted_applications = []
enable_image_support = true
history_file = "{{.chezmoi.homeDir}}/.cache/greenclip.history"
image_cache_directory = "/tmp/greenclip"
max_history_length = 50
max_selection_size_bytes = 2000
trim_space_from_selection = true
use_primary_selection_as_input = false

View file

@ -0,0 +1,54 @@
# shellcheck shell=bash
# shellcheck disable=SC2034
declare -A colors
colors=(
[dark0_hard]='#1d2021'
[dark0]='#282828'
[dark0_soft]='#32302f'
[dark1]='#3c3836'
[dark2]='#504945'
[dark3]='#665c54'
[dark4]='#7c6f64'
[dark4_256]='#7c6f64'
[gray_245]='#928374'
[gray_244]='#928374'
[light0_hard]='#f9f5d7'
[light0]='#fbf1c7'
[light0_soft]='#f2e5bc'
[light1]='#ebdbb2'
[light2]='#d5c4a1'
[light3]='#bdae93'
[light4]='#a89984'
[light4_256]='#a89984'
[bright_red]='#fb4934'
[bright_green]='#b8bb26'
[bright_yellow]='#fabd2f'
[bright_blue]='#83a598'
[bright_purple]='#d3869b'
[bright_aqua]='#8ec07c'
[bright_orange]='#fe8019'
[neutral_red]='#cc241d'
[neutral_green]='#98971a'
[neutral_yellow]='#d79921'
[neutral_blue]='#458588'
[neutral_purple]='#b16286'
[neutral_aqua]='#689d6a'
[neutral_orange]='#d65d0e'
[faded_red]='#9d0006'
[faded_green]='#79740e'
[faded_yellow]='#b57614'
[faded_blue]='#076678'
[faded_purple]='#8f3f71'
[faded_aqua]='#427b58'
[faded_orange]='#af3a03'
)
colors[active]="${colors[bright_blue]}"
colors[urgent]="${colors[bright_orange]}"

View file

@ -0,0 +1,256 @@
#!/bin/bash
# this is a simple config for herbstluftwm
hc() {
herbstclient "$@"
}
hc emit_hook reload
# shellcheck source={{.chezmoi.homeDir}}/.config/herbstluftwm/colors.sh
. "$(dirname "$0")/colors.sh"
### disable touchpad, cuz trackpoint rulezzzz
xinput --disable 'SynPS/2 Synaptics TouchPad'
xsetroot -solid "${colors[dark0_hard]}"
# remove all existing keybindings
hc keyunbind --all
# keybindings
# if you have a super key you will be much happier with Mod set to Mod4
#Mod=Mod1 # Use alt as the main modifier
Mod=Mod4 # Use the super key as the main modifier
hc keybind $Mod-Shift-q quit
hc keybind $Mod-Shift-r reload
hc keybind $Mod-Shift-c close
hc keybind $Mod-Return spawn kitty
hc keybind $Mod-x spawn rofi -modi drun -show drun
hc keybind $Mod-Shift-x spawn rofi -show fb -modi fb:{{.chezmoi.homeDir}}/.config/herbstluftwm/file-browser
hc keybind $Mod-z spawn rofi -modi "clipboard:greenclip print" -show clipboard -run-command '{cmd}'
hc keybind $Mod-c spawn rofi -lines 0 -show calc -modi calc -no-show-match -no-sort -no-history
hc keybind $Mod-a spawn rofi -show pb -modi "pb:$HOME/.config/herbstluftwm/passmenu2"
hc keybind $Mod-Shift-a spawn rofi -show pb -modi "pb:$HOME/.config/herbstluftwm/passboltmenu2"
hc keybind $Mod-m spawn ~/.config/herbstluftwm/pmount-dmenu
hc keybind $Mod-Escape spawn dunstctl close
# basic movement in tiling and floating mode
# focusing clients
hc keybind $Mod-Left focus left
hc keybind $Mod-Down focus down
hc keybind $Mod-Up focus up
hc keybind $Mod-Right focus right
hc keybind $Mod-h focus left
hc keybind $Mod-j focus down
hc keybind $Mod-k focus up
hc keybind $Mod-l focus right
# moving clients in tiling and floating mode
hc keybind $Mod-Shift-Left shift left
hc keybind $Mod-Shift-Down shift down
hc keybind $Mod-Shift-Up shift up
hc keybind $Mod-Shift-Right shift right
hc keybind $Mod-Shift-h shift left
hc keybind $Mod-Shift-j shift down
hc keybind $Mod-Shift-k shift up
hc keybind $Mod-Shift-l shift right
# splitting frames
# create an empty frame at the specified direction
hc keybind $Mod-u split bottom 0.5
hc keybind $Mod-o split right 0.5
# let the current frame explode into subframes
hc keybind $Mod-Control-space split explode
# resizing frames and floating clients
resizestep=0.02
hc keybind $Mod-Control-h resize left +$resizestep
hc keybind $Mod-Control-j resize down +$resizestep
hc keybind $Mod-Control-k resize up +$resizestep
hc keybind $Mod-Control-l resize right +$resizestep
hc keybind $Mod-Control-Left resize left +$resizestep
hc keybind $Mod-Control-Down resize down +$resizestep
hc keybind $Mod-Control-Up resize up +$resizestep
hc keybind $Mod-Control-Right resize right +$resizestep
# tags
tag_names=( {1..9} )
tag_keys=( {1..9} )
hc rename default "${tag_names[0]}" || true
for i in "${!tag_names[@]}" ; do
hc add "${tag_names[$i]}"
key="${tag_keys[$i]}"
if [ -n "$key" ] ; then
hc keybind "$Mod-$key" use_index "$i"
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# cycle through tags
hc keybind $Mod-period use_index +1 --skip-visible
hc keybind $Mod-comma use_index -1 --skip-visible
# layouting
hc keybind $Mod-r remove
hc keybind $Mod-s floating toggle
hc keybind $Mod-f fullscreen toggle
hc keybind $Mod-Shift-f set_attr clients.focus.floating toggle
hc keybind $Mod-Shift-d set_attr clients.focus.decorated toggle
hc keybind $Mod-Shift-m set_attr clients.focus.minimized true
hc keybind $Mod-Control-m jumpto last-minimized
hc keybind $Mod-p pseudotile toggle
# The following cycles through the available layouts within a frame, but skips
# layouts, if the layout change wouldn't affect the actual window positions.
# I.e. if there are two windows within a frame, the grid layout is skipped.
hc keybind $Mod-space \
or , and . compare tags.focus.curframe_wcount = 2 \
. cycle_layout +1 vertical horizontal max vertical grid \
, cycle_layout +1
# mouse
hc mouseunbind --all
hc mousebind $Mod-Button1 move
hc mousebind $Mod-Button2 zoom
hc mousebind $Mod-Button3 resize
hc mousebind $Mod-Control-Button1 call substitute WID clients.dragged.winid close WID
# focus
hc keybind $Mod-BackSpace cycle_monitor
hc keybind $Mod-Tab cycle_all +1
hc keybind $Mod-Shift-Tab cycle_all -1
hc keybind $Mod-grave cycle
hc keybind $Mod-i jumpto urgent
# music
# hc keybind XF86AudioMute chain , spawn sh -c 'pactl set-sink-mute $(pactl get-default-sink) toggle' , emit_hook volume
# hc keybind XF86AudioLowerVolume chain , spawn sh -c 'pactl set-sink-volume $(pactl get-default-sink) -10%' , emit_hook volume
# hc keybind XF86AudioRaiseVolume chain , spawn sh -c 'pactl set-sink-volume $(pactl get-default-sink) +10%' , emit_hook volume
# shellcheck disable=SC2016
hc keybind XF86AudioMute spawn sh -c 'pactl set-sink-mute $(pactl get-default-sink) toggle'
# shellcheck disable=SC2016
hc keybind XF86AudioLowerVolume spawn sh -c 'pactl set-sink-volume $(pactl get-default-sink) -10%'
# shellcheck disable=SC2016
hc keybind XF86AudioRaiseVolume spawn sh -c 'pactl set-sink-volume $(pactl get-default-sink) +10%'
hc keybind XF86AudioRaiseVolume spawn sh -c 'pactl set-sink-volume $(pactl get-default-sink) +10%'
hc keybind XF86AudioMicMute spawn rofi -show pulse -modi "pulse:$HOME/.config/herbstluftwm/pulsemenu"
hc keybind XF86AudioNext spawn cmus-remote -n
hc keybind XF86AudioPrev spawn cmus-remote -r
hc keybind XF86AudioPlay spawn cmus-remote -u
# shellcheck disable=2016 # needed to pass whole script to keybind...
hc keybind XF86TouchpadToggle spawn dash -c 'xinput --set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" $(xinput --list-props "SynPS/2 Synaptics TouchPad" | awk -F ":\t+" "/Device Enabled/ { print (1+\$2)%2}")'
hc keybind XF86Display spawn ~/.config/herbstluftwm/monitors
hc keybind XF86ScreenSaver and a spawn slock a spawn xset dpms force off
# shellcheck disable=2016 # $f is scrot interpolation string, not shells
hc keybind Print spawn scrot --focused --exec 'imv $f' {{.chezmoi.homeDir}}/Pictures/scrot/%F-scrot.png
# shellcheck disable=SC2016
hc keybind Shift-Print spawn scrot --select --exec 'imv $f' {{.chezmoi.homeDir}}/Pictures/scrot/%F-scrot.png
# theme
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
hc set frame_border_active_color "${colors[active]}"
hc set frame_bg_active_color "${colors[active]}"
hc set frame_bg_normal_color "${colors[dark3]}"
hc set frame_border_normal_color "${colors[dark3]}"
hc set frame_border_width 2
hc set always_show_frame on
hc set frame_bg_transparent on
hc set frame_transparent_width 5
hc set frame_gap 0
hc set frame_normal_opacity 100
hc set frame_active_opacity 50
hc attr theme.title_height 15
hc attr theme.title_when multiple_tabs
hc attr theme.title_font 'Dejavu Sans:pixelsize=12' # example using Xft
# hc attr theme.title_font '-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*'
hc attr theme.title_depth 3 # space below the title's baseline
hc attr theme.active.color "${colors[active]}"
hc attr theme.title_color "${colors[light0_hard]}"
hc attr theme.normal.color "${colors[dark3]}"
hc attr theme.urgent.color "${colors[urgent]}"
hc attr theme.tab_color "${colors[dark0_hard]}"
hc attr theme.active.tab_color "${colors[dark3]}"
hc attr theme.active.tab_outer_color "${colors[dark3]}"
hc attr theme.active.tab_title_color "${colors[light0]}"
hc attr theme.normal.title_color "${colors[light3]}"
hc attr theme.inner_width 0
hc attr theme.inner_color "${colors[dark0_hard]}"
hc attr theme.border_width 3
hc attr theme.floating.border_width 4
hc attr theme.floating.outer_width 1
hc attr theme.floating.outer_color "${colors[dark0_hard]}"
hc attr theme.active.inner_color "${colors[active]}"
hc attr theme.urgent.inner_color "${colors[urgent]}"
hc attr theme.normal.inner_color "${colors[dark3]}"
# copy inner color to outer_color
for state in active urgent normal ; do
hc substitute C theme.${state}.inner_color \
attr theme.${state}.outer_color C
done
hc attr theme.tiling.outer_width 1
hc attr theme.background_color "${colors[dark0_hard]}"
hc set window_gap 0
hc set frame_padding 0
hc set smart_window_surroundings off
hc set smart_frame_surroundings on
hc set mouse_recenter_gap 0
# rules
hc unrule -F
#hc rule class=XTerm tag=3 # move all xterms to tag 3
hc rule focus=on # normally focus new clients
hc rule floatplacement=center
#hc rule focus=off # normally do not focus new clients
# give focus to most common terminals
#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
hc rule fixedsize floating=on
hc rule class='pinentry-qt' floating=on
hc rule class='mpv' floating=on
hc set tree_style '╾│ ├└╼─┐'
# unlock, just to be sure
hc unlock
# do multi monitor setup here, e.g.:
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
# or simply:
hc detect_monitors
### switch off disconnected
#for mon in "$(xrandr | grep -E 'disconnected [[:digit:]]{3,4}' | awk '{ print $1}')" ; do
#xrandr --output $mon --off
#done
hc attr settings.auto_detect_monitors 1
systemctl --user import-environment DISPLAY XAUTHORITY XDG_SESSION_PATH
systemctl restart --user "hlwm.target"
#monitors=$(hc list_monitors | awk -F":" '{print $1}')
#panel_height=18
#for monitor in $monitors ; do
#hc pad "$monitor" "$panel_height"
#done
#hc pad "0" "$panel_height"
### set my favourite keymap (and map compose key to <> key i dont use anyway)
setxkbmap -option compose:102 us cz_sk_de
xset s off
xset -dpms
### set wallpaper
#feh --bg-center {{.chezmoi.homeDir}}/config/wallpaper/RoyalRadish-Wallpaper_practice_12.png

View file

@ -0,0 +1,52 @@
#!/bin/bash
shopt -s nullglob
# We use this to make sure the cache files are sorted bytewise
LC_COLLATE=C
# Some people copy/paste huge swathes of text that could slow down dmenu
line_length_limit=500
declare -A selections
ordered_selections=()
files=("/tmp/clipmenu.$USER/"*)
# We can't use `for ... in` here because we need to add files to
# ordered_selections from last to first -- that is, newest to oldest. Incoming
# clipboard entries have a ISO datetime prefixed to the front to aid in this.
for (( i=${#files[@]}-1; i>=0; i-- )); do
file=${files[$i]}
# We look for the first line matching regex /./ here because we want the
# first line that can provide reasonable context to the user. That is, if
# you have 5 leading lines of whitespace, displaying " (6 lines)" is much
# less useful than displaying "foo (6 lines)", where "foo" is the first
# line in the entry with actionable context.
first_line=$(sed -n '/./{p;q}' "$file" | cut -c1-"$line_length_limit")
lines=$(wc -l < "$file")
if (( lines > 1 )); then
first_line+=" ($lines lines)"
fi
ordered_selections+=("$first_line")
selections[$first_line]=$file
done
# It's okay to hardcode `-l 8` here as a sensible default without checking
# whether `-l` is also in "$@", because the way that dmenu works allows a later
# argument to override an earlier one. That is, if the user passes in `-l`, our
# one will be ignored.
chosen_line=$(printf '%s\n' "${ordered_selections[@]}" | uniq | rofi -columns 1 -p "Clipboard history: " -dmenu -l 8 "$@")
[[ $chosen_line ]] || exit 1
for selection in clipboard primary; do
if type -p xsel >/dev/null 2>&1; then
xsel --logfile /dev/null -i --"$selection" < "${selections[$chosen_line]}"
else
xclip -sel "$selection" < "${selections[$chosen_line]}"
fi
done

View file

@ -0,0 +1,118 @@
#!/bin/bash
hr_msg() {
printf -- '\n--- %s ---\n\n' "$1" >&2
}
debug() {
if (( DEBUG )); then
printf '%s\n' "$@" >&2
fi
}
print_debug_info() {
# DEBUG comes from the environment
if ! (( DEBUG )); then
return
fi
local msg="${1?}"
hr_msg "$msg"
hr_msg Environment
env | LC_ALL=C sort >&2
cgroup_path=/proc/$$/cgroup
if [[ -f $cgroup_path ]]; then
hr_msg cgroup
cat "$cgroup_path" >&2
else
hr_msg 'NO CGROUP'
fi
hr_msg 'Finished debug info'
}
print_debug_info 'Initialising'
cache_dir=/tmp/clipmenu.$USER/
# It's ok that this only applies to the final directory.
# shellcheck disable=SC2174
mkdir -p -m0700 "$cache_dir"
declare -A last_data
declare -A last_filename
while sleep "${CLIPMENUD_SLEEP:-0.5}"; do
print_debug_info 'About to run selection'
for selection in clipboard primary; do
print_debug_info "About to do selection for '$selection'"
if type -p xsel >/dev/null 2>&1; then
debug 'Using xsel'
data=$(xsel --logfile /dev/null -o --"$selection"; printf x)
else
debug 'Using xclip'
data=$(xclip -o -sel "$selection"; printf x)
fi
debug "Data before stripping: $data"
# We add and remove the x so that trailing newlines are not stripped.
# Otherwise, they would be stripped by the very nature of how POSIX
# defines command substitution.
data=${data%x}
debug "Data after stripping: $data"
if [[ $data != *[^[:space:]]* ]]; then
debug "Skipping as clipboard is only blank"
continue
fi
if [[ ${last_data[$selection]} == "$data" ]]; then
debug 'Skipping as last selection is the same as this one'
continue
fi
# If we were in the middle of doing a selection when the previous poll
# ran, then we may have got a partial clip.
possible_partial=${last_data[$selection]}
if [[ $possible_partial && $data == "$possible_partial"* ]]; then
debug "$possible_partial is a possible partial of $data"
debug "Removing ${last_filename[$selection]}"
rm -- "${last_filename[$selection]}"
fi
filename="$cache_dir/$(LC_ALL=C date +%F-%T.%N)"
last_data[$selection]=$data
last_filename[$selection]=$filename
debug "Writing $data to $filename"
printf '%s' "$data" > "$filename"
if ! (( NO_OWN_CLIPBOARD )) && [[ $selection != primary ]]; then
# Take ownership of the clipboard, in case the original application
# is unable to serve the clipboard request (due to being suspended,
# etc).
#
# Primary is excluded from the change of ownership as applications
# sometimes act up if clipboard focus is taken away from them --
# for example, urxvt will unhilight text, which is undesirable.
#
# We can't colocate this with the above copying code because
# https://github.com/cdown/clipmenu/issues/34 requires knowing if
# we would skip first.
if type -p xsel >/dev/null 2>&1; then
xsel --logfile /dev/null -o --"$selection" | xsel -i --"$selection"
else
xclip -o -sel "$selection" | xclip -i -sel "$selection"
fi
fi
done
done

View file

@ -0,0 +1,38 @@
#!/usr/bin/env bash
set -e
last_dir_file=/run/user/1000/rofi-fb.last-dir
if (( ROFI_RETV == 0 ))
then
# echo "first call" >&2
rm -f /run/user/1000/rofi-fb.last-dir
fi
if [[ -e "$last_dir_file" ]]
then
ld="$(cat "$last_dir_file")"
# echo "change to $ld" >&2
[[ -d "$ld" ]] && cd "$ld"
fi
if [[ -d "$1" ]]
then
cd "$1"
echo "$PWD" > "$last_dir_file"
elif [[ -x "$1" ]]
then
"$1"
elif [[ -n "$1" ]]
then
file="$(realpath "$1")"
echo "opening '$file'" >&2
systemd-run --user --scope xdg-open "$file" &>/dev/null
exit 0
fi
echo ".."
ls -A
# vim:sw=4:ts=4:et:

View file

@ -0,0 +1,25 @@
#!/bin/bash
trap '[[ -n "$reload" ]] && herbstclient reload' EXIT
for mon in $(xrandr | grep -E 'disconnected [[:digit:]]{3,4}' | awk '{ print $1}')
do
xrandr --output "$mon" --off
reload=yes
done
MONITORS=$(xrandr | grep -v LVDS1 | grep ' connected' | awk '{print $1}')
[[ -z "$MONITORS" ]] && exit
CONFIG="$(echo "$MONITORS" | rofi -dmenu -p "Choose a monitor")"
[[ -z "$CONFIG" ]] && exit
DIRECTION="$(echo -e 'left\nright' | rofi -dmenu -p "Where you want it")"
[[ -z "$DIRECTION" ]] && exit
xrandr --output "$CONFIG" "--$DIRECTION-of" LVDS-1 --auto
reload=yes

View file

@ -0,0 +1,28 @@
#!/bin/bash
trap '[[ -n "$reload" ]] && herbstclient detect_monitors && systemctl restart --user panel-handler@$DISPLAY' EXIT
if [[ -z "$*" ]]
then
for mon in $(xrandr | grep -E 'disconnected [[:digit:]]{3,4}' | awk '{ print $1}')
do
xrandr --output "$mon" --off
reload=yes
done
fi
MONITORS=$(xrandr | grep -v LVDS1 | grep ' connected' | awk '{print $1}')
[[ -z "$MONITORS" ]] && exit
CONFIG="$(echo "$MONITORS" | rofi -dmenu)"
[[ -z "$CONFIG" ]] && exit
DIRECTION="$(echo -e 'left\nright' | rofi -dmenu)"
[[ -z "$DIRECTION" ]] && exit
xrandr --output "$CONFIG" "--$DIRECTION-of" LVDS1 --auto
reload=yes

View file

@ -0,0 +1,78 @@
#!/bin/bash
#pids=
#trap 'for p in $pids ; do kill $p ; done ' EXIT
batt_name=BAT0
declare -A state
update() {
local what="$1"
local new="$2"
if [[ "${state[$what]}" != "$new" ]]
then
herbstclient emit_hook "$(printf '%s\t%s' "$what" "$new")"
# echo "$what :: $new"
state[$what]="$new"
fi
}
(
playerctl metadata --format '{{playerName}}|{{status}}|{{artist}}|{{xesam:comment}}|{{title}}' -a -F |
while IFS='|' read -r player status artist comment title
do
test -n "$status" || status=off
update "$(echo -en "player\t$player")" "$(printf '%s\t%s\t%s\t%s' "$status" "$artist" "$comment" "$title")"
done
notify-send -u critical "Player" "Player monitoring loop failed!"
) &
#pids="$!"
(
while :
do
pactl subscribe | ag "Event 'change' on sink" | while read -r _
do
volume="$(pactl get-sink-volume "$(pactl get-default-sink)" | grep -E -o '[0-9]+%' | uniq | tr '\n' ',' | sed 's/,$//')"
update volume "$volume"
done
sleep 10
done
) &
while :
do
# shellcheck source=/sys/class/power_supply/BAT0/uevent # most likely
#. /sys/class/power_supply/$batt_name/uevent
read -r batt_perc < /sys/devices/platform/smapi/BAT0/remaining_percent
read -r ac < /sys/devices/platform/smapi/BAT0/state
read -r load _ < /proc/loadavg
read -r temp < /sys/devices/platform/coretemp.0/hwmon/hwmon?/temp1_input
update ac "$ac"
update load "$load"
update battery "$batt_perc"
update temperature "$((temp / 1000 ))"
update network "$(ip -br addr show dev eth0 | awk '{ print $2"\t"$3 }')"
update wifi "$(iwctl station wlan0 show |grep 'Connected network' | sed 's/ */ /g' | cut -d ' ' -f 4-)"
#if [ -e /run/user/1000/cmus-socket ]
#then
#update player "$(printf '%s\t%s \t%s' "$(playerctl metadata artist | tr -d "'" )" "$(playerctl metadata xesam:comment)" "$(playerctl metadata title)")"
#else
#update player ""
#fi
update date "%{T2}%{T-} $(date '+%{F#efefef}%H:%M%{F#909090}, %Y-%m-%{F#efefef}%d')"
sleep 10
done

View file

@ -0,0 +1,76 @@
#!/bin/ksh
#pids=
#trap 'for p in $pids ; do kill $p ; done ' EXIT
declare -A state
update() {
local what="$1"
local new="$2"
if [[ "${state[$what]}" != "$new" ]]
then
herbstclient emit_hook "$(printf '%s\t%s' "$what" "$new")"
# echo "$what :: $new"
state[$what]="$new"
fi
}
(
playerctl metadata --format '{{playerName}}|{{status}}|{{artist}}|{{xesam:comment}}|{{title}}' -a -F |
while IFS='|' read -r player status artist comment title
do
test -n "$status" || status=off
update "$(echo -en "player\t$player")" "$(printf '%s\t%s\t%s\t%s' "$status" "$artist" "$comment" "$title")"
done
notify-send -u critical "Player" "Player monitoring loop failed!"
) &
#pids="$!"
(
while :
do
pactl subscribe | ag "Event 'change' on sink" | while read -r _
do
volume="$(pactl get-sink-volume "$(pactl get-default-sink)" | grep -E -o '[0-9]+%' | uniq | tr '\n' ',' | sed 's/,$//')"
update volume "$volume"
done
sleep 10
done
) &
while :
do
# shellcheck source=/sys/class/power_supply/BAT0/uevent # most likely
#. /sys/class/power_supply/$batt_name/uevent
read -r batt_perc < /sys/devices/platform/smapi/BAT0/remaining_percent
read -r ac < /sys/devices/platform/smapi/BAT0/state
read -r load _ < /proc/loadavg
read -r temp < /sys/devices/platform/coretemp.0/hwmon/hwmon4/temp1_input
update ac "$ac"
update load "$load"
update battery "$batt_perc"
update temperature "$((temp / 1000 ))"
update network "$(ip -br addr show dev eth0 | awk '{ print $2"\t"$3 }')"
update wifi "$(iwctl station wlan0 show |grep 'Connected network' | sed 's/ */ /g' | cut -d ' ' -f 4-)"
#if [ -e /run/user/1000/cmus-socket ]
#then
#update player "$(printf '%s\t%s \t%s' "$(playerctl metadata artist | tr -d "'" )" "$(playerctl metadata xesam:comment)" "$(playerctl metadata title)")"
#else
#update player ""
#fi
update date "%{T2}%{T-} $(date '+%{F#efefef}%H:%M%{F#909090}, %Y-%m-%{F#efefef}%d')"
sleep 10
done

View file

@ -0,0 +1,272 @@
#!/bin/bash
hc() { herbstclient "$@" ;}
panel_height=18
# bgcolor=$(hc get frame_border_normal_color)
# selbg=$(hc get window_border_active_color)
# selfg='#282828'
# fg='#fbf1c7'
# bgcolor='#282828'
# selsecbg='#ebdbb2'
. "$(dirname "$0")/colors.sh"
col_bg_pri_sel=${colors[active]}
col_fg_pri_sel=${colors[dark0]}
col_bg_sec_sel=${colors[dark3]}
col_fg_sec_sel=${colors[light1]}
col_bg=${colors[dark0]}
col_fg=${colors[light0]}
col_fg_sec=${colors[light4]}
col_bg_urg=${colors[urgent]}
monitors=( )
i=0
while read -r _ resolution
do
monitors[$i]="$(herbstclient list_monitors | grep "$resolution" | cut -d":" -f1)"
i=$((i+1))
done < <(xrandr| awk '/ connected/ { FS=" " ; $0=$0 ; if ($3 == "primary") { res=$4 } else {res=$3} ; FS="+" ; $0=$0 ; print $2" "res }' | sort -n)
first_loop=1
notify() {
if [[ "$first_loop" != 1 ]]
then
#twmnc "$@"
notify-send "$@"
fi
}
# so it bootstraps...
( sleep 0.5; hc emit_hook volume ) &
hc --idle | {
for monitor in "${monitors[@]}" ; do
tags[$monitor]="$(hc tag_status "$monitor")"
done
date="%{T2}%{T-} $(date '+%{F#efefef}%H:%M%{F#909090}, %Y-%m-%{F#efefef}%d')"
windowtitle=""
#count-mails;
#charge=$(battery | awk '{print $2}')
while true ; do
### prepare by monitor tags displaying
for monitor in "${monitors[@]}" ; do
output_tags[$monitor]="%{A4:herbstclient use_index +1 --skip-visible:}%{A5:herbstclient use_index -1 --skip-visible:}"
for i in ${tags[$monitor]} ; do
case ${i:0:1} in
'#'|'+')
output_tags[$monitor]="${output_tags[$monitor]}%{F$col_fg_pri_sel}%{B$col_bg_pri_sel}"
;;
#'+')
#output_tags[$monitor]="${output_tags[$monitor]}%{B#3c7693}%{F#141414}"
#;;
':')
output_tags[$monitor]="${output_tags[$monitor]}%{B-}%{F-}"
;;
'!')
output_tags[$monitor]="${output_tags[$monitor]}%{B${col_bg_urg}}%{F-}"
;;
'-'|'%')
output_tags[$monitor]="${output_tags[$monitor]}%{B${col_bg_sec_sel}%{F${col_fg_sec_sel}}"
;;
*)
output_tags[$monitor]="${output_tags[$monitor]}%{B-}%{F${col_fg_sec}}"
;;
esac
# output_tags[$monitor]="${output_tags[$monitor]}%{A:herbstclient use_index $((${i:1} - 1 )):} ${i:1} %{A}"
output_tags[$monitor]="${output_tags[$monitor]}%{A1:herbstclient use ${i:1}:} ${i:1} %{A}%{B-}%{F-}"
done
output_tags[$monitor]="${output_tags[$monitor]}%{A}%{A}"
done
#bordercolor="#26221C"
separator="%{B-}%{F-}|"
#separator="%{B$selbg} %{B-}%{F-}"
#right=
#for st in playing volume wifi temperature load date
#do
#data="$(eval $st)"
#[[ -n "$data" ]] && right="$right $separator $data"
#done
### All drawing happens here
# echo -n "%{T5}" # set font
for m in "${!monitors[@]}" ; do
monitor=${monitors[$m]}
### set monitor
echo -n "%{S$m}"
#echo -en "%{S$((${#monitors[@]} - monitor))}"
### print the left
echo -n "%{l}${output_tags[$monitor]}$separator ${windowtitle:0:150}"
### center
#echo -n "%{c}%{U${colors[bright_orange]}}${windowtitle:0:150}%{U-}"
### print the right
echo -n "%{r}$playing $separator $volume $separator $wifi $separator $network $separator $temperature $separator $load $separator $date $separator %{U#f2f229}$charge%{U-} $separator"
#echo -en "%{r}$right $separator %{U#f2f229}$charge%{U-} $separator"
done
### end the output
echo
### Data handling ###
# This part handles the events generated in the event loop, and sets
# internal variables based on them. The event and its arguments are
# read into the array cmd, then action is taken depending on the event
# name.
# "Special" events (quit_panel/togglehidepanel/reload) are also handled
# here.
# wait for next event
IFS=$'\t' read -ra cmd || break
#for z in ${cmd[@]}
#do
#echo -n "'$z' " >&2
#done
#echo >&2
# find out event origin
case "${cmd[0]}" in
tag*)
#echo "resetting tags" >&2
for monitor in "${monitors[@]}" ; do
tags[$monitor]="$(hc tag_status "$monitor")"
done
;;
date)
#echo "resetting date" >&2
date="${cmd[*]:1}"
;;
quit_panel)
exit
;;
reload)
exit
;;
load)
load=" ${cmd[*]:1}"
;;
focus_changed|window_title_changed)
windowtitle="${cmd[*]:2}"
echo "$windowtitle" > /tmp/wt
;;
player)
# declare -A player_status
if [[ "${cmd[1]}" = cmus ]]
then
play_line=" ${cmd[3]:0:20}/${cmd[4]:0:20}- ${cmd[5]:0:20}"
play_sym=
case "${cmd[2]}" in
off|Stopped)
play_line=
;;
Paused)
play_sym=
;;
*)
play_sym="%{T2}%{T-}"
;;
esac
playing="$play_sym$play_line"
fi
# [[ "${player_status[${cmd[1]}]}" != "${cmd[2]}" ]] &&
# notify "Player: ${cmd[1]}" "${cmd[2]}"
# player_status[${cmd[1]}]="${cmd[2]}"
;;
ac)
case ${cmd[1]} in
charging)
batt_sym="%{F#00aa00}$batt_sym%{F-}"
ac="+"
notify "Power" "Battery charging"
;;
discharging)
ac="-"
batt_sym="%{F#ffdb00}$batt_sym%{F-}"
notify "Power" "Battery discharging"
;;
idle)
ac="="
notify "Power" "Fully charged"
;;
esac
;;
battery)
#echo "battery" >&2
batt_perc="${cmd[1]}"
{ [ "$batt_perc" -ge 95 ] && batt_sym= ; } ||
{ [ "$batt_perc" -ge 75 ] && batt_sym= ; } ||
{ [ "$batt_perc" -ge 50 ] && batt_sym= ; } ||
{ [ "$batt_perc" -ge 25 ] && batt_sym= ; } || batt_sym=
case "$ac" in
+)
batt_sym="%{F#00aa00}$batt_sym%{F-}"
ac="+"
;;
-)
batt_sym="%{F#ffdb00}$batt_sym%{F-}"
;;
*)
;;
esac
charge="$batt_sym ${batt_perc}%"
[ "$batt_perc" -le 15 ] && [ "$ac" != '+' ] && notify -u critical "Power" "Battery has only ${batt_perc}%"
;;
temperature)
temperature=" ${cmd[1]}°C"
;;
wifi)
_wifi_net="${cmd[1]}"
if [[ -n "$_wifi_net" ]]
then
_wifi_sym=直
else
_wifi_sym=睊
fi
wifi="$(xargs <<<"$_wifi_sym $_wifi_net")"
;;
network)
_net_status="${cmd[1]}"
if [[ "$_net_status" == 'UP' ]]
then
network="$(xargs <<<"ﯱ ${cmd[2]}")"
else
network=
fi
;;
volume)
sleep 0.1
mute="$(pactl get-sink-mute "$(pactl get-default-sink)" | awk '{print $2}')"
if [[ "$mute" == yes ]]
then
volume=""
else
volume=" ${cmd[1]}"
fi
;;
esac
first_loop=0
done
} | lemonbar -f "Noto Sans Mono-10" -f "Symbols Nerd Font-10" -a30 -B "$col_bg" -F "$col_fg" -u 1 | sh
#} | lemonbar -f "DejaVu Sans-9" -f "Font Awesome-9" -f "Symbols Nerd Font-9"
#} | tee >(lemonbar -f "DejaViu Sans-9" -f "Font Awesome-9" )
systemctl stop --user "hlwm.target"

View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
. /usr/share/nvm/init-nvm.sh
if [[ $(passbolt auth check) != 'You are already logged in.' ]]
then
passbolt auth login
fi
tmp=$(mktemp)
trap 'rm $tmp' EXIT
uuid=$(passbolt find | tail -n+2|rofi -columns 1 -width 80 -p "Password for" -dmenu "$@" | awk '{print $NF}')
[[ -n "$uuid" ]] || exit
passbolt get "$uuid" | gpg -q | xclip -i -selection clipboard

View file

@ -0,0 +1,28 @@
#!/bin/bash
. /usr/share/nvm/init-nvm.sh
if (( ROFI_RETV == 0 ))
then
echo -en "\0prompt\x1fPassword for\n"
temp="$(mktemp)"
passbolt find > "$temp"
awk 'NR >1 { str = substr($0, 0, 58) ; gsub(/ +$/, "", str) ;print str"|"$NF}' < "$temp" | while IFS="|" read -r name uuid
do
echo -e "$name\0info\x1f$uuid"
done
else
(
data="$(passbolt get "$ROFI_INFO" | gpg -q)"
if jq '.' <<<"$data" &>/dev/null
then
password="$(jq -r '.password' <<<"$data")"
else
password="$data"
fi
xclip -i -selection clipboard <<<"$password"
) > /dev/null
exit 0
fi

View file

@ -0,0 +1,25 @@
#!/usr/bin/env bash
shopt -s nullglob globstar
typeit=0
if [[ $1 == "--type" ]]; then
typeit=1
shift
fi
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
password=$(printf '%s\n' "${password_files[@]}" | rofi -p "Password for" -dmenu "$@")
[[ -n $password ]] || exit
if [[ $typeit -eq 0 ]]; then
pass show -c "$password" 2>/dev/null
else
pass show "$password" | { read -r pass; printf %s "$pass"; } |
xdotool type --clearmodifiers --file -
fi

View file

@ -0,0 +1,30 @@
#!/usr/bin/env bash
shopt -s nullglob globstar
if (( ROFI_RETV == 0 ))
then
echo -en "\0prompt\x1fPassword for\n"
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
printf '%s\n' "${password_files[@]}"
else
typeit=0
(( ROFI_RETV == 2 )) && typeit=1
password="$1"
echo "$@" >&2
echo "$ROFI_RETV" >&2
[[ -n $password ]] || exit
if (( typeit == 0 ))
then
coproc pass show -c "$password" &>/dev/null
else
coproc ( pass show "$password" | { read -r pass; printf %s "$pass"; } |
xdotool type --clearmodifiers --file - )
fi
fi

View file

@ -0,0 +1,34 @@
#!/bin/bash
notify() {
#notify-send -i /usr/share/icons/Adwaita/96x96/devices/drive-harddisk-usb-symbolic.symbolic.png "$@"
notify-send -i drive-harddisk "$@"
}
read -r block mnt < <(lsblk -ln -o NAME,HOTPLUG,FSTYPE,MOUNTPOINT \
| awk '$2==1 && $3 !="" { if ($4 != "") {print $1" (unmount)"} else { print $1}}' \
| rofi -p 'Mount' -dmenu)
if [[ -z "$block" ]]
then
exit 0
fi
if [[ -z "$mnt" ]]
then
if pmount "$block"
then
notify "$block mounted"
herbstclient spawn kitty -d "/media/$block"
else
notify "$block mount failed"
fi
else
res="$(pumount "$block" 2>&1)"
if (( $? == 0 ))
then
notify "$block unmounted"
else
notify -u critical "$block unmount failed" "$res"
fi
fi

View file

@ -0,0 +1,75 @@
#!/bin/bash
export MESSAGE=""
print_list() {
pactl list sinks | awk '
function rofi_set(prop, val) {
print "\0"prop"\x1f"val
}
BEGIN {
have_sink = 0
i = 0
"pactl get-default-sink" | getline active_sink
list=""
active_line=-1
};
/^Sink/ {
new=mute" "name" ("volume")\0info\x1f"sink
if (have_sink == active_line) {
list=new"\n"list
} else if (have_sink > 0) {
list=list"\n"new
}
sink=substr($2,2);
have_sink++
};
/Description/ {
$1 = "" ;
name = substr($0,2);
};
/Mute/ {
if ( $2 == "yes") {
mute="(M)"
} else {
mute=""
}
}
/Volume/ && ! /Base Volume/ {
if ( $5 == $12) {
volume=$5
} else {
volume=$5"|"$12
}
}
/Name/ && $2 == active_sink {
active_line=have_sink
}
END {
new=mute" "name" ("volume")\0info\x1f"sink
if (have_sink == active_line) {
list=new"\n"list
} else if (have_sink > 0) {
list=list"\n"new
}
rofi_set("prompt", "Default sink")
rofi_set("message", ENVIRON["MESSAGE"])
rofi_set("use-hot-keys","true")
rofi_set("active", "0")
sub(/\n+/, "\n", list)
print list
}'
}
case "$ROFI_RETV" in
0) : ;;
1) pactl set-default-sink "$ROFI_INFO" ; exit 0 ;;
10) pactl set-sink-volume "$ROFI_INFO" -10% ;;
11) pactl set-sink-volume "$ROFI_INFO" +10% ;;
12) pactl set-sink-mute "$ROFI_INFO" toggle ;;
*) export MESSAGE="unknown action" ;;
esac
print_list

63
dot_config/imv/config Normal file
View file

@ -0,0 +1,63 @@
# Default config for imv
[options]
# Suppress built-in key bindings, and specify them explicitly in this
# config file.
suppress_default_binds = true
[aliases]
# Define aliases here. Any arguments passed to an alias are appended to the
# command.
# alias = command to run
[binds]
# Define some key bindings
q = quit
y = exec echo working!
# Image navigation
<Left> = prev
<bracketleft> = prev
<Right> = next
<bracketright> = next
gg = goto 1
<Shift+G> = goto -1
# Panning
j = pan 0 -50
k = pan 0 50
h = pan 50 0
l = pan -50 0
# Zooming
<Up> = zoom 1
<Shift+plus> = zoom 1
i = zoom 1
<Down> = zoom -1
<minus> = zoom -1
o = zoom -1
# Rotate Clockwise by 90 degrees
<Ctrl+r> = rotate by 90
# Other commands
x = close
f = fullscreen
d = overlay
p = exec echo $imv_current_file
y = exec echo $imv_current_file | xclip -i
c = center
s = scaling next
<Shift+S> = upscaling next
a = zoom actual
r = reset
# Gif playback
<period> = next_frame
<space> = toggle_playing
# Slideshow control
t = slideshow +1
<Shift+T> = slideshow -1

View file

@ -0,0 +1,11 @@
reporting: "off"
startuppopupversion: 1
git:
pull:
mode: rebase
customCommands:
- key: '<c-f>'
context: files
command: |
php-cs-fixer fix --rules '{"@Symfony":true,"array_syntax":{"syntax":"short"},"binary_operator_spaces":{"default":"align_single_space_minimal"},"fully_qualified_strict_types":false}' {{.SelectedFile.Name}}

1942
dot_config/kitty/kitty.conf Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,10 @@
# Open any file with a fragment in vim, fragments are generated
# by the hyperlink_grep kitten and nothing else so far.
protocol file
fragment_matches [0-9]+
action launch --type=overlay vim +${FRAGMENT} ${FILE_PATH}
# Open text files without fragments in the editor
protocol file
mime text/*
action launch --type=overlay nvim ${FILE_PATH}

View file

@ -0,0 +1,33 @@
## name: Gruvbox Dark Hard
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark-hard.conf
selection_foreground #ebdbb2
selection_background #d65d0e
background #1d2021
foreground #ebdbb2
color0 #3c3836
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #a89984
color8 #928374
color9 #fb4934
color10 #b8bb26
color11 #fabd2f
color12 #83a598
color13 #d3869b
color14 #8ec07c
color15 #fbf1c7
cursor #bdae93
cursor_text_color #665c54
url_color #458588

View file

@ -0,0 +1,26 @@
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

View file

@ -0,0 +1,25 @@
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

109
dot_config/nginx/koi-utf Normal file
View file

@ -0,0 +1,109 @@
# This map is not a full koi8-r <> utf8 map: it does not contain
# box-drawing and some other characters. Besides this map contains
# several koi8-u and Byelorussian letters which are not in koi8-r.
# If you need a full and standard map, use contrib/unicode2nginx/koi-utf
# map instead.
charset_map koi8-r utf-8 {
80 E282AC ; # euro
95 E280A2 ; # bullet
9A C2A0 ; # &nbsp;
9E C2B7 ; # &middot;
A3 D191 ; # small yo
A4 D194 ; # small Ukrainian ye
A6 D196 ; # small Ukrainian i
A7 D197 ; # small Ukrainian yi
AD D291 ; # small Ukrainian soft g
AE D19E ; # small Byelorussian short u
B0 C2B0 ; # &deg;
B3 D081 ; # capital YO
B4 D084 ; # capital Ukrainian YE
B6 D086 ; # capital Ukrainian I
B7 D087 ; # capital Ukrainian YI
B9 E28496 ; # numero sign
BD D290 ; # capital Ukrainian soft G
BE D18E ; # capital Byelorussian short U
BF C2A9 ; # (C)
C0 D18E ; # small yu
C1 D0B0 ; # small a
C2 D0B1 ; # small b
C3 D186 ; # small ts
C4 D0B4 ; # small d
C5 D0B5 ; # small ye
C6 D184 ; # small f
C7 D0B3 ; # small g
C8 D185 ; # small kh
C9 D0B8 ; # small i
CA D0B9 ; # small j
CB D0BA ; # small k
CC D0BB ; # small l
CD D0BC ; # small m
CE D0BD ; # small n
CF D0BE ; # small o
D0 D0BF ; # small p
D1 D18F ; # small ya
D2 D180 ; # small r
D3 D181 ; # small s
D4 D182 ; # small t
D5 D183 ; # small u
D6 D0B6 ; # small zh
D7 D0B2 ; # small v
D8 D18C ; # small soft sign
D9 D18B ; # small y
DA D0B7 ; # small z
DB D188 ; # small sh
DC D18D ; # small e
DD D189 ; # small shch
DE D187 ; # small ch
DF D18A ; # small hard sign
E0 D0AE ; # capital YU
E1 D090 ; # capital A
E2 D091 ; # capital B
E3 D0A6 ; # capital TS
E4 D094 ; # capital D
E5 D095 ; # capital YE
E6 D0A4 ; # capital F
E7 D093 ; # capital G
E8 D0A5 ; # capital KH
E9 D098 ; # capital I
EA D099 ; # capital J
EB D09A ; # capital K
EC D09B ; # capital L
ED D09C ; # capital M
EE D09D ; # capital N
EF D09E ; # capital O
F0 D09F ; # capital P
F1 D0AF ; # capital YA
F2 D0A0 ; # capital R
F3 D0A1 ; # capital S
F4 D0A2 ; # capital T
F5 D0A3 ; # capital U
F6 D096 ; # capital ZH
F7 D092 ; # capital V
F8 D0AC ; # capital soft sign
F9 D0AB ; # capital Y
FA D097 ; # capital Z
FB D0A8 ; # capital SH
FC D0AD ; # capital E
FD D0A9 ; # capital SHCH
FE D0A7 ; # capital CH
FF D0AA ; # capital hard sign
}

103
dot_config/nginx/koi-win Normal file
View file

@ -0,0 +1,103 @@
charset_map koi8-r windows-1251 {
80 88 ; # euro
95 95 ; # bullet
9A A0 ; # &nbsp;
9E B7 ; # &middot;
A3 B8 ; # small yo
A4 BA ; # small Ukrainian ye
A6 B3 ; # small Ukrainian i
A7 BF ; # small Ukrainian yi
AD B4 ; # small Ukrainian soft g
AE A2 ; # small Byelorussian short u
B0 B0 ; # &deg;
B3 A8 ; # capital YO
B4 AA ; # capital Ukrainian YE
B6 B2 ; # capital Ukrainian I
B7 AF ; # capital Ukrainian YI
B9 B9 ; # numero sign
BD A5 ; # capital Ukrainian soft G
BE A1 ; # capital Byelorussian short U
BF A9 ; # (C)
C0 FE ; # small yu
C1 E0 ; # small a
C2 E1 ; # small b
C3 F6 ; # small ts
C4 E4 ; # small d
C5 E5 ; # small ye
C6 F4 ; # small f
C7 E3 ; # small g
C8 F5 ; # small kh
C9 E8 ; # small i
CA E9 ; # small j
CB EA ; # small k
CC EB ; # small l
CD EC ; # small m
CE ED ; # small n
CF EE ; # small o
D0 EF ; # small p
D1 FF ; # small ya
D2 F0 ; # small r
D3 F1 ; # small s
D4 F2 ; # small t
D5 F3 ; # small u
D6 E6 ; # small zh
D7 E2 ; # small v
D8 FC ; # small soft sign
D9 FB ; # small y
DA E7 ; # small z
DB F8 ; # small sh
DC FD ; # small e
DD F9 ; # small shch
DE F7 ; # small ch
DF FA ; # small hard sign
E0 DE ; # capital YU
E1 C0 ; # capital A
E2 C1 ; # capital B
E3 D6 ; # capital TS
E4 C4 ; # capital D
E5 C5 ; # capital YE
E6 D4 ; # capital F
E7 C3 ; # capital G
E8 D5 ; # capital KH
E9 C8 ; # capital I
EA C9 ; # capital J
EB CA ; # capital K
EC CB ; # capital L
ED CC ; # capital M
EE CD ; # capital N
EF CE ; # capital O
F0 CF ; # capital P
F1 DF ; # capital YA
F2 D0 ; # capital R
F3 D1 ; # capital S
F4 D2 ; # capital T
F5 D3 ; # capital U
F6 C6 ; # capital ZH
F7 C2 ; # capital V
F8 DC ; # capital soft sign
F9 DB ; # capital Y
FA C7 ; # capital Z
FB D8 ; # capital SH
FC DD ; # capital E
FD D9 ; # capital SHCH
FE D7 ; # capital CH
FF DA ; # capital hard sign
}

1003
dot_config/nginx/mime.types Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,443 @@
worker_processes 1;
working_directory {{.chezmoi.homeDir}}/.config/nginx;
error_log stderr info;
daemon off;
load_module /usr/lib/nginx/modules/ngx_http_echo_module.so;
events {
worker_connections 1024;
}
http {
upstream php {
server 127.0.0.1:9080;
}
upstream php81 {
server 127.0.0.1:9081;
}
upstream php80 {
server 127.0.0.1:9080;
}
upstream php74 {
server 127.0.0.1:9074;
}
upstream php73 {
server 127.0.0.1:9073;
}
upstream php72 {
server 127.0.0.1:9072;
}
upstream php71 {
server 127.0.0.1:9071;
}
include mime.types;
default_type application/octet-stream;
types_hash_bucket_size 128;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# error_page 403 404 @errors;
# proxy_intercept_errors on;
# fastcgi_intercept_errors on;
add_header "Access-Control-Allow-Origin" "*";
access_log off;
server {
server_name files.*;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
client_max_body_size 10G;
proxy_request_buffering off;
proxy_buffering off;
add_header "X-Dummy" 1;
location /upload {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:9999;
}
location /download {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:9999;
}
location / {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://s3.appsincloud.net:7480/vizitapptest_files/;
}
}
server {
#server_name ~^static\.(?<project>[^.]+)\.[^.]+$;
server_name ~^static\.(.+\.)?(?<project>[^.]+)\.[^.]+$;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
root {{.chezmoi.homeDir}}/jopixel/$project/www/static;
error_page 404 /errors/404.html;
error_page 403 /errors/403.html;
location /errors/ {
alias {{.chezmoi.homeDir}}/jopixel/errorpages/;
}
}
map $host $php_version {
hostnames;
default php80;
*.laya-server.localhost php74;
*.vizit.localhost php80;
*.up123.localhost php72;
*.katalogy.localhost php71;
*.eno.localhost php71;
}
server {
#server_name _;
server_name ~^[^.]+\.(?<project>[^.]+)\..+$;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
client_max_body_size 1G;
root {{.chezmoi.homeDir}}/jopixel/$project/www/www;
#add_header Access-Control-Allow-Origin "*";
index index.php;
location /echo {
add_header "Content-Type" "text/plain";
echo "ahoj";
echo_flush;
return 200;
}
location /favicon.ico {
log_not_found off;
access_log off;
}
location /fpm-status {
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
fastcgi_hide_header Access-Control-Allow-Origin;
fastcgi_pass $php_version;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_keep_conn on;
fastcgi_read_timeout 300s;
fastcgi_index index.php;
}
location /_files/ {
internal;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_method GET;
proxy_pass_request_body off;
#proxy_pass_request_headers off;
proxy_pass http://s3.appsincloud.net:7480/;
}
location /_static/ {
internal;
root {{.chezmoi.homeDir}}/jopixel/$project/www/static;
try_files $uri =404;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
error_page 404 /errors/404.html;
error_page 403 /errors/403.html;
location /errors/ {
alias {{.chezmoi.homeDir}}/jopixel/errorpages/;
}
}
# include sites/*.conf;
server {
#server_name _;
server_name *.zdravotniregistr.cz;
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server http2;
listen [::]:443 ssl default_server http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
client_max_body_size 1G;
set $project "katalogy";
root {{.chezmoi.homeDir}}/jopixel/$project/www/www;
#add_header Access-Control-Allow-Origin "*";
index index.php;
location /echo {
add_header "Content-Type" "text/plain";
echo "ahoj";
echo_flush;
return 200;
}
location /favicon.ico {
log_not_found off;
access_log off;
}
location /fpm-status {
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location / {
fastcgi_hide_header Access-Control-Allow-Origin;
fastcgi_pass php71;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME index.php;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_keep_conn on;
fastcgi_read_timeout 300s;
fastcgi_index index.php;
}
location /_files/ {
internal;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_method GET;
proxy_pass_request_body off;
#proxy_pass_request_headers off;
proxy_pass http://s3.appsincloud.net:7480/;
}
location /_static/ {
internal;
root {{.chezmoi.homeDir}}/jopixel/$project/www/static;
try_files $uri =404;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
error_page 404 /errors/404.html;
error_page 403 /errors/403.html;
location /errors/ {
alias {{.chezmoi.homeDir}}/jopixel/errorpages/;
}
}
server {
#server_name _;
server_name gin.localhost;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
location / {
proxy_pass http://127.0.0.1:3000;
location /api {
proxy_pass http://127.0.0.1:5204;
}
}
}
server {
#server_name _;
server_name wp2.localhost;
server_name *.wp2.localhost;
listen 80;
listen [::]:80;
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.crt;
ssl_certificate_key {{.chezmoi.homeDir}}/.config/nginx/ssl/localhost.key;
client_max_body_size 1G;
root {{.chezmoi.homeDir}}/jopixel/wp2.localhost/live/www/www;
#add_header Access-Control-Allow-Origin "*";
index index.php;
location /favicon.ico {
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location /skel {
alias {{.chezmoi.homeDir}}/jopixel/vpscontroller/wordpress-skel/uploads/;
}
location ~ .php$ {
fastcgi_hide_header Access-Control-Allow-Origin;
fastcgi_pass php80;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_keep_conn on;
fastcgi_read_timeout 300s;
fastcgi_index index.php;
}
}
}

View file

@ -0,0 +1,17 @@
scgi_param REQUEST_METHOD $request_method;
scgi_param REQUEST_URI $request_uri;
scgi_param QUERY_STRING $query_string;
scgi_param CONTENT_TYPE $content_type;
scgi_param DOCUMENT_URI $document_uri;
scgi_param DOCUMENT_ROOT $document_root;
scgi_param SCGI 1;
scgi_param SERVER_PROTOCOL $server_protocol;
scgi_param REQUEST_SCHEME $scheme;
scgi_param HTTPS $https if_not_empty;
scgi_param REMOTE_ADDR $remote_addr;
scgi_param REMOTE_PORT $remote_port;
scgi_param SERVER_PORT $server_port;
scgi_param SERVER_NAME $server_name;

View file

@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFXzCCBEegAwIBAgIIHRxRuB6t75UwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE
BhMCQ1oxDjAMBgNVBAoTBVNvZ3VuMQwwCgYDVQQLEwN3ZWIxEDAOBgNVBAMTB1Nv
Z3VuQ0EwHhcNMTgwNDEyMTQxNTAwWhcNMjMwNDEyMTQxNTAwWjBBMQswCQYDVQQG
EwJDWjEOMAwGA1UEChMFU29ndW4xDDAKBgNVBAsTA3dlYjEUMBIGA1UEAwwLKi5s
b2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIEcPYabc3
UWzCMsgpWpJSg6uzGIoBsgS0m1RQH22AIzMhxhJq4kwy5F53wqo8l70yDXgjaMv0
DUnz5JC2IdrMo0hMBauOh1h5VpKHux6YhW3sgV6tRxSm4FhehPGw9vQk0fx6QRkL
YxzyeTHopqIX20N1FW6FlC3vZC9+xgKQnfm9TxmgFGHKVlXMFO9Vg32dYD7y8P66
WWBttRqMkL326fShpmWMoE1GdRYz+yLABXwx6FsnLFubOVk7yKAnYycEuhxszEXO
uBU24ce0ymkaXZsnLUT2Kdk/T4bwz8gEb9VeYubIilupah041Fp7NjG751pxrmJH
pHP2RXyOv/7fAgMBAAGjggJdMIICWTAJBgNVHRMEAjAAMIICSgYDVR0RBIICQTCC
Aj2CESoudml6aXQubG9jYWxob3N0ghAqLmdkcHIubG9jYWxob3N0ghEqLnVwMTIz
LmxvY2FsaG9zdIIRKi5jYXZlcy5sb2NhbGhvc3SCDyouZW5vLmxvY2FsaG9zdIIT
Ki5hZG1pbmVyLmxvY2FsaG9zdIIXKi5sYXlhLXNlcnZlci5sb2NhbGhvc3SCESou
ZXNob3AubG9jYWxob3N0ghYqLnRlYXN0YXJ0ZXIubG9jYWxob3N0ghIqLmFpa2lk
by5sb2NhbGhvc3SCFioudHJhaWxndWlkZS5sb2NhbGhvc3SCEyoubXl0YW5nby5s
b2NhbGhvc3SCFSouaW52b2ljaW5nLmxvY2FsaG9zdIITKi5sYXlhd2ViLmxvY2Fs
aG9zdIIRKi5hc3FpeC5sb2NhbGhvc3SCFSouc3RhdGlzdGl4LmxvY2FsaG9zdIIT
Ki5ib29raW5nLmxvY2FsaG9zdIISKi5rb3RtZWwubG9jYWxob3N0ghkqLmJhdGVy
aWUtZ3JvaGUubG9jYWxob3N0ghUqLnpkcmF2b3RuaXJlZ2lzdHIuY3qCFCoua2F0
YWxvZ3kubG9jYWxob3N0ghYqLnZpeml0LWNvcmUubG9jYWxob3N0ghgqLmJvb2tp
bmctY29yZS5sb2NhbGhvc3SCFCoubmljZXJpY2UubG9jYWxob3N0ghsqLmpvcGl4
ZWwtc3VwcG9ydC5sb2NhbGhvc3SCGSouZW5vLXN0YXRpc3RpeC5sb2NhbGhvc3Qw
DQYJKoZIhvcNAQELBQADggEBAA0KW8I3dgn2s2PYpromKo3jTZP3qMuxJ8agp5S4
GRkCV5xIASpJnUY3JUA4TLJ4ECQx/ZK2exggJw4Ojp/4P1LpK6mIGL1JpnxFj5rA
m8mJZLDOxBYzL7diG/24lrQh9DziGxHh/VFIEsky/jWQ4UQNmun3RF1fVKTcWUlY
dOHPgJgn1enWoBhd+NT2AEVYyiyXwI1tqjFAaJkYI+dW5Qx8WNpS/OQGjuv+ZYvp
9nENMwEOvtOa0uGtxja/mkof38mza1BtyEW5r4Sdw0PvRBNO+OYV0HUH06OMMZ90
4MciCzkz8I3sFjxrzaRTm0iZ6SknFOohNfMQuxT1uM2CZ8M=
-----END CERTIFICATE-----

View file

@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyBHD2Gm3N1FswjLIKVqSUoOrsxiKAbIEtJtUUB9tgCMzIcYS
auJMMuRed8KqPJe9Mg14I2jL9A1J8+SQtiHazKNITAWrjodYeVaSh7semIVt7IFe
rUcUpuBYXoTxsPb0JNH8ekEZC2Mc8nkx6KaiF9tDdRVuhZQt72QvfsYCkJ35vU8Z
oBRhylZVzBTvVYN9nWA+8vD+ullgbbUajJC99un0oaZljKBNRnUWM/siwAV8Mehb
JyxbmzlZO8igJ2MnBLocbMxFzrgVNuHHtMppGl2bJy1E9inZP0+G8M/IBG/VXmLm
yIpbqWodONRaezYxu+daca5iR6Rz9kV8jr/+3wIDAQABAoIBAAdzqfDAl0NnM/7T
t2La7cJHBzkne9RuVgCIHI7TbNet9/SVFRCIF0B6Aw7A4GhbWn+nwsbG23nemNeN
ttohzq16k3HJcEdhwSjb0Z9el9gkeCCr/OPFVv6UMpZqqznlKNjKPXYsQIuNCIH7
g6Ffu3/Z+dw9jR1KlJ9rAt3c8DGEr9YbRXyWLvf8B+B0i0THjWjqmI6bJNJeZSTI
nu7G7h/4ZQTSQQs22o+YgVxX9rKPmOFbf13OP3MJ8VfvdeeMeDzCchs8KwOq/tYJ
vvYJs10Bl75XHKjsmjLpZX165T0zDfXLz8Kf5J1BsoMpbyd6jugCEXbSakZ2Cxwc
OzNzeBkCgYEA/Ws3iz35nvdFUoe+0owaTepN/ENcxWaLBQsec4KOmKhZfuCA2B2Q
EkyAk8j9n8pajZyvweU0cLcPX6hJdNXJ+wbegld236Fd7dYWCEmnSMVUTSP+AOHv
VmJLi1jMvBNvUL54fXVvQ3nshFR41xOFW4+caWIB+ra8iZbHGSMke0sCgYEAyhtw
2PbaGYndHTmYUUuUX/9rdaJKjol6t8Ljc2YaYdSKRgOBBIXU/+J0xrUaWQ857205
XJutUxtkWaeMZneg9H0awC+7uySlgZEv50svkHluvsKYxS0pTHvxlmb+q92sme4S
T3rI88c2TnIMnTajr9WQUcR9nr5IjOnJwsj7Gj0CgYBjISGlEiUnDcrMMdVvPua7
O8AtwZv0i9wtqN/Mh3GIPbJkcyVzZH0K62oQZTrw2pL5eiU2T5Zn0PPuk0HItihA
TbuUeOpDKDg55NjRfR421RnY4w9lAPxCakjqxV2w5FlS2G8BhIJ1fqgKS5DJcRVl
b5PblT7496pgl95h8uE+aQKBgQCQyMm11Fl39Ch/+DOjAXbgspTj54hrxhcwr5/L
mriJnv4TnA0AFXP6f9tSQokGhf7mA6QVML0hDT19cKcG/OpEW58fUNK3BVC/mifs
FROU9zkb1UIl9u1gCmaObWhB7QLqHv/lCjwNT4ga+F8K/QqUO3Uw7odjgkNtF0pf
jSU9rQKBgD2MASR1vY5ZeYb7LqVLRhOb+0lmXqxrOTiAHD4Z/9xacHREXTqIbIgS
varoU7PEAWSNM5qULiVGcQS+4W1itjkLpYH5PtS6JPDfNDq+Jck6VnQgEfZ6+QCN
tH5V1S6bcnx0dDuMhemcMHZMrxLhvNeBNZ2fHE2e7BLbhRFbfpcc
-----END RSA PRIVATE KEY-----

View file

@ -0,0 +1,17 @@
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;

126
dot_config/nginx/win-utf Normal file
View file

@ -0,0 +1,126 @@
# This map is not a full windows-1251 <> utf8 map: it does not
# contain Serbian and Macedonian letters. If you need a full map,
# use contrib/unicode2nginx/win-utf map instead.
charset_map windows-1251 utf-8 {
82 E2809A ; # single low-9 quotation mark
84 E2809E ; # double low-9 quotation mark
85 E280A6 ; # ellipsis
86 E280A0 ; # dagger
87 E280A1 ; # double dagger
88 E282AC ; # euro
89 E280B0 ; # per mille
91 E28098 ; # left single quotation mark
92 E28099 ; # right single quotation mark
93 E2809C ; # left double quotation mark
94 E2809D ; # right double quotation mark
95 E280A2 ; # bullet
96 E28093 ; # en dash
97 E28094 ; # em dash
99 E284A2 ; # trade mark sign
A0 C2A0 ; # &nbsp;
A1 D18E ; # capital Byelorussian short U
A2 D19E ; # small Byelorussian short u
A4 C2A4 ; # currency sign
A5 D290 ; # capital Ukrainian soft G
A6 C2A6 ; # borken bar
A7 C2A7 ; # section sign
A8 D081 ; # capital YO
A9 C2A9 ; # (C)
AA D084 ; # capital Ukrainian YE
AB C2AB ; # left-pointing double angle quotation mark
AC C2AC ; # not sign
AD C2AD ; # soft hypen
AE C2AE ; # (R)
AF D087 ; # capital Ukrainian YI
B0 C2B0 ; # &deg;
B1 C2B1 ; # plus-minus sign
B2 D086 ; # capital Ukrainian I
B3 D196 ; # small Ukrainian i
B4 D291 ; # small Ukrainian soft g
B5 C2B5 ; # micro sign
B6 C2B6 ; # pilcrow sign
B7 C2B7 ; # &middot;
B8 D191 ; # small yo
B9 E28496 ; # numero sign
BA D194 ; # small Ukrainian ye
BB C2BB ; # right-pointing double angle quotation mark
BF D197 ; # small Ukrainian yi
C0 D090 ; # capital A
C1 D091 ; # capital B
C2 D092 ; # capital V
C3 D093 ; # capital G
C4 D094 ; # capital D
C5 D095 ; # capital YE
C6 D096 ; # capital ZH
C7 D097 ; # capital Z
C8 D098 ; # capital I
C9 D099 ; # capital J
CA D09A ; # capital K
CB D09B ; # capital L
CC D09C ; # capital M
CD D09D ; # capital N
CE D09E ; # capital O
CF D09F ; # capital P
D0 D0A0 ; # capital R
D1 D0A1 ; # capital S
D2 D0A2 ; # capital T
D3 D0A3 ; # capital U
D4 D0A4 ; # capital F
D5 D0A5 ; # capital KH
D6 D0A6 ; # capital TS
D7 D0A7 ; # capital CH
D8 D0A8 ; # capital SH
D9 D0A9 ; # capital SHCH
DA D0AA ; # capital hard sign
DB D0AB ; # capital Y
DC D0AC ; # capital soft sign
DD D0AD ; # capital E
DE D0AE ; # capital YU
DF D0AF ; # capital YA
E0 D0B0 ; # small a
E1 D0B1 ; # small b
E2 D0B2 ; # small v
E3 D0B3 ; # small g
E4 D0B4 ; # small d
E5 D0B5 ; # small ye
E6 D0B6 ; # small zh
E7 D0B7 ; # small z
E8 D0B8 ; # small i
E9 D0B9 ; # small j
EA D0BA ; # small k
EB D0BB ; # small l
EC D0BC ; # small m
ED D0BD ; # small n
EE D0BE ; # small o
EF D0BF ; # small p
F0 D180 ; # small r
F1 D181 ; # small s
F2 D182 ; # small t
F3 D183 ; # small u
F4 D184 ; # small f
F5 D185 ; # small kh
F6 D186 ; # small ts
F7 D187 ; # small ch
F8 D188 ; # small sh
F9 D189 ; # small shch
FA D18A ; # small hard sign
FB D18B ; # small y
FC D18C ; # small soft sign
FD D18D ; # small e
FE D18E ; # small yu
FF D18F ; # small ya
}

View file

@ -0,0 +1,2 @@
setlocal tabstop=2
setlocal shiftwidth=2

View file

@ -0,0 +1,10 @@
syn keyword latteKeyword contained render renderIfExists
"syn match layaRenderMacroView contained /\m[a-zA-Z_0-9]\+/
"syn match layaRenderMacroChildOp contained /\m=>/
syn match latteMacroRender contained /\m\(\({[{%]\@!\|{{\|{%\)\(render\|renderIfExists\)\s\)\@<=\(\S\+\)\(\ \+=> \+[a-zA-Z_0-9]\+\)\+!\?/ contains=layaRenderMacroChildOp,layaRenderMacroView
"syn region latteMacroRender contained keepend start=/\m\({render\|{renderIfExists\)/ end=/}/ contains=layaRenderMacroChildOp,layaRenderMacroView
"hi def link layaRenderMacroView String
"hi def link layaRenderMacroChildOp Operator
hi def link latteMacroRender String

View file

@ -0,0 +1,9 @@
function! go#Gofmt(path) abort
let cmd = 'gofmt -w '.a:path
call system(cmd)
let winstate = winsaveview()
exec 'edit!'
call winrestview(winstate)
endfunction

View file

@ -0,0 +1 @@
autocmd BufRead,BufNewFile *.tpl setlocal filetype=html.latte

View file

@ -0,0 +1,5 @@
autocmd BufRead,BufNewFile *.yml setlocal shiftwidth=2
"set expandtab
"set shiftwidth=2
"set softtabstop=2

458
dot_config/nvim/init.lua Normal file
View file

@ -0,0 +1,458 @@
--- PACKAGES {{{
vim.cmd 'packadd packer.nvim' -- Load package
require('packer').startup(function()
use 'wbthomason/packer.nvim'
use 'neovim/nvim-lspconfig'
-- use 'glepnir/lspsaga.nvim'
use {'hrsh7th/nvim-cmp', requires={'neovim/nvim-lspconfig'}}
use {'hrsh7th/cmp-nvim-lsp', requires={'hrsh7th/nvim-cmp'}}
use {'hrsh7th/cmp-buffer', requires={'hrsh7th/nvim-cmp'}}
use {'hrsh7th/cmp-path', requires={'hrsh7th/nvim-cmp'}}
use {'hrsh7th/cmp-nvim-lua', requires={'hrsh7th/nvim-cmp'}}
use 'hrsh7th/vim-vsnip'
use {'hrsh7th/cmp-vsnip', requires={'hrsh7th/nvim-cmp', 'hrsh7th/vim-vsnip'}}
use 'simrat39/symbols-outline.nvim'
use { 'jose-elias-alvarez/null-ls.nvim', requires = { "nvim-lua/plenary.nvim" }}
use {'nvim-treesitter/nvim-treesitter', run=':TSUpdate'}
use 'nvim-treesitter/playground'
use 'David-Kunz/treesitter-unit'
use({ "yioneko/nvim-yati", requires = "nvim-treesitter/nvim-treesitter" })
use {'nvim-telescope/telescope.nvim', requires={'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim'}}
-- use {"ellisonleao/gruvbox.nvim", requires = {"rktjmp/lush.nvim"}}
use 'morhetz/gruvbox'
-- use 'lifepillar/vim-solarized8'
use 'chrisbra/Colorizer'
use 'kdheepak/lazygit.nvim'
use {'lewis6991/gitsigns.nvim', requires={'nvim-lua/plenary.nvim'}}
use { 'hoob3rt/lualine.nvim', requires = {'kyazdani42/nvim-web-devicons', opt = true}}
use 'AndrewRadev/linediff.vim'
use "lukas-reineke/indent-blankline.nvim"
use 'b3nj5m1n/kommentary'
use 'airblade/vim-rooter'
use {'vlada-dudr/vim-php-cs-fixer', ft='php'}
use 'editorconfig/editorconfig-vim'
use { 'scrooloose/nerdtree', disable=true }
use { 'kyazdani42/nvim-tree.lua', requires = 'kyazdani42/nvim-web-devicons' }
use 'vim-vdebug/vdebug'
use 'dyng/ctrlsf.vim'
use 'eugen0329/vim-esearch'
use 'fpob/nette.vim'
use { 'ziglang/zig.vim', ft='zig' }
end)
--- PACKAGES }}}
--- OPTIONS {{{
vim.o.ruler=true
vim.o.mouse=''
vim.o.showcmd=true
vim.o.scrolloff=3
vim.o.ignorecase=true
vim.o.smartcase=true
vim.o.hidden=true
vim.o.autoread=true
vim.o.completeopt='menuone,noinsert,noselect'
vim.o.tabstop=4
vim.o.softtabstop=4
vim.o.swapfile=true
vim.o.undofile=true
vim.o.expandtab=true
vim.o.shiftwidth=4
vim.o.number=true
--vim.o.colorcolumn=0
--vim.o.foldmethod='marker'
vim.o.foldcolumn='auto:1'
vim.o.signcolumn='yes'
vim.o.list=false
vim.o.relativenumber=false
vim.o.foldenable=true
vim.o.cursorline=true
vim.o.autoindent=true
vim.o.smartindent=true
vim.o.fileencodings='ucs-bom,utf-8,default,cp852,latin1'
vim.o.path='**'
--vim.o.clipboard = "unnamedplus"
-- Buffer
vim.cmd([[
augroup forceRecheck
au FocusGained,BufEnter * :silent! !
augroup END
]])
-- vim.env.EDITOR = 'nvr'
--- OPTIONS }}}
--- LSP {{{
-- local saga = require('lspsaga').init_lsp_saga()
local nvim_lsp = require('lspconfig')
local on_attach = function(client, bufnr)
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
-- require'completion'.on_attach()
-- Mappings.
local opts = { noremap=true, silent=true }
buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('i', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
buf_set_keymap('v', '<space>ca', '<cmd>lua vim.lsp.buf.range_code_action()<CR>', opts)
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
buf_set_keymap('n', '<space>e', '<cmd>lua vim.show_line_diagnostics()<CR>', opts)
buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
buf_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
buf_set_keymap("v", "<space>f", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts)
end
-- Use a loop to conveniently both setup defined servers
-- and map buffer local keybindings when the language server attaches
local servers = { 'phpactor', 'gopls', 'clangd', 'zls', 'hls' }
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup {
on_attach = on_attach,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
end
require'lspconfig'.omnisharp.setup{
cmd = { '/usr/bin/omnisharp', '--languageserver' , '--hostPID', tostring(pid) },
on_attach = on_attach,
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
require'lspconfig'.powershell_es.setup{
bundle_path = '/home/sogun/devel/PowerShellEditorServices',
capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
}
--- LSP }}}
--- CMP {{{
local cmp = require'cmp'
cmp.setup({
-- documentation = true,
sources = {
{ name = 'nvim_lsp' },
{ name = 'nvim_lua' },
{ name = 'buffer' },
{ name = 'path' },
},
formatting = {
format = function(entry, vim_item)
-- set a name for each source
vim_item.menu = ({
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
nvim_lua = "[Lua]",
path = "[Path]"
})[entry.source.name]
return vim_item
end,
},
window = {
-- completion = cmp.config.window.bordered(),
-- documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert({
['<CR>'] = cmp.mapping.confirm({ select = false })
}),
snippet = {
expand = function(args)
-- For `vsnip` user.
vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` user.
end
}
})
--- CMP }}}
-- vsnip {{{
vim.cmd 'imap <expr> <Tab> vsnip#jumpable(1) ? \'<Plug>(vsnip-jump-next)\' : \'<Tab>\''
vim.cmd 'smap <expr> <Tab> vsnip#jumpable(1) ? \'<Plug>(vsnip-jump-next)\' : \'<Tab>\''
vim.cmd 'imap <expr> <S-Tab> vsnip#jumpable(-1) ? \'<Plug>(vsnip-jump-prev)\' : \'<S-Tab>\''
vim.cmd 'smap <expr> <S-Tab> vsnip#jumpable(-1) ? \'<Plug>(vsnip-jump-prev)\' : \'<S-Tab>\''
-- vsnip }}}
--- gitsigns {{{
require'gitsigns'.setup{}
--- gitsigns }}}
-- lualine {{{
require'lualine'.setup {
options = {
icons_enabled = true,
theme = vim.env.TERM ~= 'linux' and 'gruvbox' or nil,
component_separators = {'', ''},
section_separators = {'', ''},
disabled_filetypes = {}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch'},
lualine_c = { {'filename', path = 1} },
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
extensions = {'nerdtree'}
}
-- lualine }}}
-- NerdTree {{{
--vim.api.nvim_set_keymap('n', '<F3>', [[<Cmd>NERDTreeToggle<CR>]], { noremap = true, silent = true })
--vim.api.nvim_set_keymap('n', '<F4>', [[<Cmd>NERDTreeFind %<CR>]], { noremap = true, silent = true })
-- NerdTree }}}
-- NvimTree {{{
vim.g.nvim_tree_add_trailing = 1
vim.g.nvim_tree_special_files = ''
vim.cmd ( [[
let g:nvim_tree_show_icons = {
\ 'git': 0,
\ 'folders': 0,
\ 'files': 0,
\ 'folder_arrows': 0,
\ }
]])
require'nvim-tree'.setup {
}
vim.api.nvim_set_keymap('n', '<F3>', [[<Cmd>NvimTreeToggle<CR>]], { noremap = true, silent = true })
vim.api.nvim_set_keymap('n', '<F4>', [[<Cmd>NvimTreeFindFile<CR>]], { noremap = true, silent = true })
-- }}} NvimTree
-- Telescope {{{
vim.api.nvim_set_keymap('n', '<C-Space>', [[<Cmd>Telescope buffers<CR>]], { noremap = true, silent = true })
require("telescope").setup {
defaults = {
preview = {
hide_on_startup = true
},
--[[ mappings = {
i = {
["<c-h>"] = actions.toggle_preview,
},
n = {
["<c-h>"] = actions.toggle_preview,
},
}, ]]
},
pickers = {
buffers = {
show_all_buffers = true,
sort_lastused = false,
sort_mru = true,
-- theme = "dropdown",
mappings = {
i = {
["<c-d>"] = "delete_buffer",
},
n = {
["<c-d>"] = "delete_buffer",
}
}
}
}
}
vim.cmd 'augroup Telescope'
vim.cmd 'autocmd FileType TelescopePrompt inoremap <buffer> <C-b> <cmd>Telescope buffers initial_mode=insert<cr>'
vim.cmd 'autocmd FileType TelescopePrompt inoremap <buffer> <C-f> <cmd>Telescope fd initial_mode=insert<cr>'
vim.cmd 'autocmd FileType TelescopePrompt nnoremap <buffer> <C-b> <cmd>Telescope buffers initial_mode=insert<cr>'
vim.cmd 'autocmd FileType TelescopePrompt nnoremap <buffer> <C-f> <cmd>Telescope fd initial_mode=insert<cr>'
vim.cmd 'autocmd FileType TelescopePrompt inoremap <buffer> <C-a> <cmd>Telescope builtin initial_mode=insert<cr>'
vim.cmd 'autocmd FileType TelescopePrompt nnoremap <buffer> <C-a> <cmd>Telescope builtin initial_mode=insert<cr>'
vim.cmd 'augroup END'
-- Telescope }}}
-- Tree sitter {{{
require'nvim-treesitter.configs'.setup {
ensure_installed = 'all', -- one of "all", "maintained" (parsers with maintainers), or a list of languages
highlight = { enable = true, },
playground = { enable = false, },
yati = { enable = true, },
incremental_selection = {
enable = true,
keymaps = {
init_selection = "gnn",
node_incremental = "grn",
scope_incremental = "grc",
node_decremental = "grm",
},
},
indent = {
-- disable = { "php" },-- php indent SUCKS A LOT
enable = false,
},
}
vim.api.nvim_set_keymap('x', 'iu', ':lua require"treesitter-unit".select()<CR>', {noremap=true})
vim.api.nvim_set_keymap('x', 'au', ':lua require"treesitter-unit".select(true)<CR>', {noremap=true})
vim.api.nvim_set_keymap('o', 'iu', ':<c-u>lua require"treesitter-unit".select()<CR>', {noremap=true})
vim.api.nvim_set_keymap('o', 'au', ':<c-u>lua require"treesitter-unit".select(true)<CR>', {noremap=true})
--[[ vim.o.foldmethod = 'expr'
vim.o.foldexpr = 'nvim_treesitter#foldexpr()' ]]
--- Tree sitter }}}
-- Indent lines {{{
vim.g.indent_blankline_filetype_exclude = { 'help', 'NvimTree', 'TelescopePrompt', 'lspinfo' }
vim.g.indent_blankline_buftype_exclude = { 'terminal', 'nofile', 'prompt' }
-- indent lines }}}
-- PHP CS FIXER {{{
vim.g.php_cs_fixer_rules = [[
{
"@Symfony":true,
"array_syntax":{"syntax":"short"},
"binary_operator_spaces":{"default":"align_single_space_minimal"},
"fully_qualified_strict_types":false
}
]]
--vim.g.php_cs_fixer_php_path = 'php7' -- Path to PHP
vim.g.php_cs_fixer_path = '/usr/bin/php-cs-fixer' -- Path to PHP
vim.g.php_cs_fixer_enable_default_mapping = 1 -- Enable the mapping by default (<leader>pcd)
vim.g.php_cs_fixer_dry_run = 0 -- Call command with dry-run option
vim.g.php_cs_fixer_verbose = 0
vim.g.php_cs_fixer_version = 3
-- }}}
-- kommentary {{{
kommentary_config = require('kommentary.config')
kommentary_config.configure_language("php", { prefer_single_line_comments = true, })
-- kommentary }}}
-- NEORAY {{{
vim.cmd [[
if exists('g:neoray')
set guifont=Go_Mono:h11
NeoraySet CursorAnimTime 0
NeoraySet Transparency 0.95
NeoraySet TargetTPS 120
NeoraySet ContextMenuOn FALSE
NeoraySet BoxDrawingOn TRUE
NeoraySet WindowSize 100x40
NeoraySet WindowState none
NeoraySet KeyZoomIn <>
NeoraySet KeyZoomOut <>
endif ]]
-- }}}
-- rooter {{{
vim.g.rooter_manual_only = 1
-- }}}
-- null-ls {{{
nls = require "null-ls"
nls.setup({
on_attach = on_attach,
debug = true,
sources = {
nls.builtins.formatting.xmllint,
nls.builtins.diagnostics.sqlfluff,
nls.builtins.diagnostics.phpstan.with({
cwd = function(params)
-- falls back to root if return value is nil
return params.root:match("jopixel") and "www";
end
}),
nls.builtins.formatting.phpcsfixer.with({
extra_args = { "--rules", '{ "@Symfony":true, "nullable_type_declaration_for_default_null_value":true, "array_syntax":{"syntax":"short"}, "binary_operator_spaces":{"default":"align_single_space_minimal"}, "fully_qualified_strict_types":false }' }
}),
nls.builtins.diagnostics.shellcheck
}
})
-- }}}
-- color handling {{{
term = vim.env.TERM
if(term ~= 'linux' or vim.g.neoray)
then
vim.cmd('set termguicolors')
vim.g.gruvbox_contrast_dark = 'hard'
vim.cmd('colorscheme gruvbox')
vim.cmd 'highlight link Directory GruvboxGreen'
vim.cmd 'highlight link Function GruvboxFg1'
vim.cmd 'highlight link Operator GruvboxFg1'
end
vim.cmd 'highlight link TSVariable Identifier'
vim.cmd 'highlight link TSVariableBuiltin Identifier'
-- }}}
-- {{{ LAYA
vim.cmd [[
augroup layaAbbrevs
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> T $this->obtainer()->translator()->t();<Left><Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> TI $this->obtainer()->translator()->t()<Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> LOG $this->obtainer()->logger()->log();<Left><Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> DEBUG $this->obtainer()->logger()->log('debug', 'debug',);<Left><Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> PROD $this->producer()
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> VIEW \laya\view\view
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> FORM \layalib\view\form\form
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> FILE $this->producer()->file()<Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> LINK $this->producer()->link($this, '')<Left><Left>
autocmd BufRead,BufNewFile ~/jopixel/**/*.php iabbrev <buffer> NOTIF $this->obtainer()->notifications()
augroup END
]]
-- }}} LAYA
-- vim: sw=2: ts=2: fdm=marker:

0
dot_config/php/.keep Normal file
View file

View file

0
dot_config/picom/.keep Normal file
View file

View file

@ -0,0 +1,227 @@
set aaa_mode=album
set altformat_current= %F
set altformat_playlist= %f%= %d
set altformat_title=%f
set altformat_trackwin= %f%= %d
set auto_expand_albums_follow=true
set auto_expand_albums_search=true
set auto_expand_albums_selcur=true
set auto_reshuffle=true
set buffer_seconds=10
set color_cmdline_attr=default
set color_cmdline_bg=235
set color_cmdline_fg=208
set color_cur_sel_attr=default
set color_error=167
set color_info=214
set color_separator=245
set color_statusline_attr=default
set color_statusline_bg=236
set color_statusline_fg=72
set color_titleline_attr=default
set color_titleline_bg=245
set color_titleline_fg=black
set color_trackwin_album_attr=bold
set color_trackwin_album_bg=default
set color_trackwin_album_fg=default
set color_win_attr=default
set color_win_bg=235
set color_win_cur=142
set color_win_cur_attr=default
set color_win_cur_sel_attr=default
set color_win_cur_sel_bg=237
set color_win_cur_sel_fg=142
set color_win_dir=223
set color_win_fg=223
set color_win_inactive_cur_sel_attr=default
set color_win_inactive_cur_sel_bg=235
set color_win_inactive_cur_sel_fg=142
set color_win_inactive_sel_attr=default
set color_win_inactive_sel_bg=235
set color_win_inactive_sel_fg=229
set color_win_sel_attr=default
set color_win_sel_bg=237
set color_win_sel_fg=229
set color_win_title_attr=default
set color_win_title_bg=239
set color_win_title_fg=109
set confirm_run=true
set continue=true
set continue_album=true
set device=/dev/cdrom
set display_artist_sort_name=false
set dsp.alsa.device=
set dsp.ao.buffer_size=16384
set dsp.ao.device_interface=
set dsp.ao.driver=
set dsp.ao.wav_counter=1
set dsp.ao.wav_dir={{.chezmoi.homeDir}}
set dsp.jack.resampling_quality=2
set dsp.jack.server_name=
set dsp.oss.device=
set follow=true
set format_clipped_text=…
set format_current= %-20%a │ %t%=│ %-20%c│ %-20%l │ %-3%g │ %{?originaldate?%{originaldate}?%{date}} │ %d %{?X!=0?%3X ? }
set format_playlist= %-20%a │ %t%=│ %-20%c│ %-20%l │ %-3%g │ %{?originaldate?%{originaldate}?%{date}} │ %d %{?X!=0?%3X ? }
set format_playlist_va= %-20%a │ %t%=│ %-20%c│ %-20%l │ %-3%g │ %{?originaldate?%{originaldate}?%{date}} │ %d %{?X!=0?%3X ? }
set format_statusline= %{status} %{?show_playback_position?%{position} %{?duration?/ %{duration} }?%{?duration?%{duration} }}- %{total} %{?volume>=0?vol: %{?lvolume!=rvolume?%{lvolume},%{rvolume} ?%{volume} }}%{?stream?buf: %{buffer} }%{?show_current_bitrate & bitrate>=0? %{bitrate} kbps }%=%{?repeat_current?repeat current?%{?play_library?%{playlist_mode} from %{?play_sorted?sorted }library?playlist}} | %1{continue}%1{follow}%1{repeat}%1{shuffle}
set format_title=%a - %l - %t (%y)
set format_trackwin=%{?discnumber?%{discnumber}|}%3n. %t %=%c | %-5%g | %{?originaldate?%{originaldate}?%{date}} | %d
set format_trackwin_album= %l
set format_trackwin_va=%3n. %t %=%c | %-4%g | %-3%y | %d
set format_treewin= %l
set format_treewin_artist=%a
set icecast_default_charset=ISO-8859-1
set id3_default_charset=ISO-8859-1
set input.aac.priority=50
set input.cdio.cddb_url=freedb.freedb.org:8880
set input.cdio.priority=50
set input.cue.priority=50
set input.ffmpeg.priority=30
set input.flac.priority=50
set input.mad.priority=55
set input.modplug.priority=50
set input.mpc.priority=50
set input.opus.priority=50
set input.vorbis.priority=50
set input.wav.priority=50
set input.wavpack.priority=50
set lib_add_filter=
set lib_sort=date title album discnumber tracknumber filename play_count
set mixer.alsa.channel=
set mixer.alsa.device=
set mixer.oss.channel=PCM
set mixer.oss.device=
set mixer.pulse.restore_volume=1
set mouse=false
set mpris=true
set output_plugin=pulse
set passwd=
set pause_on_output_change=false
set pl_sort=
set play_library=true
set play_sorted=false
set repeat=false
set repeat_current=false
set replaygain=track
set replaygain_limit=true
set replaygain_preamp=0.000000
set resume=false
set rewind_offset=5
set scroll_offset=2
set set_term_title=true
set show_all_tracks=true
set show_current_bitrate=false
set show_hidden=false
set show_playback_position=true
set show_remaining_time=false
set shuffle=off
set skip_track_info=false
set smart_artist_sort=true
set softvol=false
set softvol_state=0 0
set start_view=tree
set status_display_program=
set stop_after_queue=false
set time_show_leading_zero=true
set tree_width_max=0
set tree_width_percent=33
set wrap_search=true
bind browser backspace browser-up
bind browser i toggle show_hidden
bind browser space win-activate
bind browser u win-update
bind common ! push shell
bind common + vol +10%
bind common , seek -1m
bind common - vol -10%
bind common . seek +1m
bind common / search-start
bind common 1 view tree
bind common 2 view sorted
bind common 3 view playlist
bind common 4 view queue
bind common 5 view browser
bind common 6 view filters
bind common 7 view settings
bind common = vol +10%
bind common ? search-b-start
bind common B player-next-album
bind common C toggle continue
bind common D win-remove
bind common E win-add-Q
bind common F push filter
bind common G win-bottom
bind common I echo {}
bind common L push live-filter
bind common M toggle play_library
bind common N search-prev
bind common P win-mv-before
bind common U win-update-cache
bind common Z player-prev-album
bind common [ vol +1% +0
bind common ] vol +0 +1%
bind common ^B win-page-up
bind common ^C echo Type :quit<enter> to exit cmus.
bind common ^D win-half-page-down
bind common ^E win-scroll-down
bind common ^F win-page-down
bind common ^L refresh
bind common ^R toggle repeat_current
bind common ^T run herbstclient spawn kid3-qt {}
bind common ^U win-half-page-up
bind common ^Y win-scroll-up
bind common a win-add-l
bind common b player-next
bind common c player-pause
bind common delete win-remove
bind common down win-down
bind common e win-add-q
bind common end win-bottom
bind common enter win-activate
bind common f toggle follow
bind common g win-top
bind common h seek -5
bind common home win-top
bind common i win-sel-cur
bind common j win-down
bind common k win-up
bind common l seek +5
bind common left seek -5
bind common m toggle aaa_mode
bind common mlb_click_bar player-pause
bind common mlb_click_selected win-activate
bind common mouse_scroll_down win-down
bind common mouse_scroll_down_bar seek -5
bind common mouse_scroll_down_title right-view
bind common mouse_scroll_up win-up
bind common mouse_scroll_up_bar seek +5
bind common mouse_scroll_up_title left-view
bind common n search-next
bind common o toggle play_sorted
bind common p win-mv-after
bind common page_down win-page-down
bind common page_up win-page-up
bind common q quit -i
bind common r toggle repeat
bind common right seek +5
bind common s toggle shuffle
bind common space win-toggle
bind common t toggle show_remaining_time
bind common tab win-next
bind common u update-cache
bind common up win-up
bind common v player-stop
bind common x player-play
bind common y win-add-p
bind common z player-prev
bind common { vol -1% -0
bind common } vol -0 -1%
fset 90s=date>=1990&date<2000
fset classical=genre="Classical"
fset missing-tag=!stream&(artist=""|album=""|title=""|tracknumber=-1|date=-1)
fset mp3=filename="*.mp3"
fset ogg=filename="*.ogg"
fset ogg-or-mp3=ogg|mp3
fset unheard=play_count=0
factivate

View file

@ -0,0 +1,49 @@
# colors from solarized: http://ethanschoonover.com/solarized
# default text color
set color_win_fg=241
# overall background color
set color_win_bg=234
# command-line colors
set color_cmdline_bg=234
set color_cmdline_fg=241
set color_error=160
set color_info=136
set color_separator=240
# bottom status line
set color_statusline_bg=241
set color_statusline_fg=235
# bottom title line
set color_titleline_bg=241
set color_titleline_fg=235
# top title area
set color_win_title_bg=241
set color_win_title_fg=235
##### playing file colors ######################################################
# unselected currently playing track's text
set color_win_cur=33
# active selection for currently playing track
set color_win_cur_sel_bg=136
set color_win_cur_sel_fg=yellow
# inactive selection for currently playing track
set color_win_inactive_cur_sel_bg=234
set color_win_inactive_cur_sel_fg=125
##### non-playing file colors ##################################################
# active selection
set color_win_sel_bg=136
set color_win_sel_fg=0
# inactive selection
set color_win_inactive_sel_bg=235
set color_win_inactive_sel_fg=136
##### file browser view colors #################################################
# directory listing color
set color_win_dir=33

196
dot_config/private_mc/ini Normal file
View file

@ -0,0 +1,196 @@
[Midnight-Commander]
verbose=true
pause_after_run=1
shell_patterns=true
auto_save_setup=true
preallocate_space=false
auto_menu=false
use_internal_view=true
use_internal_edit=false
clear_before_exec=true
confirm_delete=true
confirm_overwrite=true
confirm_execute=false
confirm_history_cleanup=true
confirm_exit=false
confirm_directory_hotlist_delete=true
safe_delete=false
mouse_repeat_rate=100
double_click_speed=250
use_8th_bit_as_meta=false
confirm_view_dir=false
mouse_move_pages_viewer=true
mouse_close_dialog=false
fast_refresh=false
drop_menus=false
wrap_mode=true
old_esc_mode=false
old_esc_mode_timeout=1000000
cd_symlinks=true
show_all_if_ambiguous=false
max_dirt_limit=10
use_file_to_guess_type=true
alternate_plus_minus=false
only_leading_plus_minus=true
show_output_starts_shell=false
xtree_mode=false
num_history_items_recorded=60
file_op_compute_totals=true
classic_progressbar=true
vfs_timeout=60
ftpfs_directory_timeout=900
use_netrc=true
ftpfs_retry_seconds=30
ftpfs_always_use_proxy=false
ftpfs_use_passive_connections=true
ftpfs_use_passive_connections_over_proxy=false
ftpfs_use_unix_list_options=true
ftpfs_first_cd_then_ls=true
fish_directory_timeout=900
editor_tab_spacing=8
editor_word_wrap_line_length=72
editor_fill_tabs_with_spaces=false
editor_return_does_auto_indent=true
editor_backspace_through_tabs=false
editor_fake_half_tabs=true
editor_option_save_mode=0
editor_option_save_position=true
editor_option_auto_para_formatting=false
editor_option_typewriter_wrap=false
editor_edit_confirm_save=true
editor_syntax_highlighting=true
editor_persistent_selections=true
editor_drop_selection_on_copy=true
editor_cursor_beyond_eol=false
editor_cursor_after_inserted_block=false
editor_visible_tabs=true
editor_visible_spaces=true
editor_line_state=false
editor_simple_statusbar=false
editor_check_new_line=false
editor_show_right_margin=false
editor_group_undo=false
editor_ask_filename_before_edit=false
nice_rotating_dash=true
mcview_remember_file_position=false
auto_fill_mkdir_name=true
copymove_persistent_attr=true
select_flags=6
editor_backup_extension=~
editor_filesize_threshold=64M
editor_stop_format_chars=-+*\\,.;:&>
mcview_eof=
ignore_ftp_chattr_errors=true
skin=modarin256
filepos_max_saved_entries=1024
editor_state_full_filename=false
safe_overwrite=false
shadows=true
[Layout]
message_visible=true
keybar_visible=true
xterm_title=true
output_lines=0
command_prompt=true
menubar_visible=true
free_space=true
horizontal_split=false
vertical_equal=true
left_panel_size=80
horizontal_equal=true
top_panel_size=29
[Misc]
timeformat_recent=%e.%b %H:%M
timeformat_old=%e.%b %Y
ftp_proxy_host=gate
ftpfs_password=anonymous@
display_codepage=UTF-8
source_codepage=Other_8_bit
autodetect_codeset=
clipboard_store=
clipboard_paste=
[Colors]
base_color=
xterm=
color_terminals=
xterm-256color=
st-256color=
xterm-termite=
xterm-kitty=
alacritty=
linux=
[Panels]
show_mini_info=true
kilobyte_si=false
mix_all_files=false
show_backups=true
show_dot_files=true
fast_reload=false
fast_reload_msg_shown=false
mark_moves_down=true
reverse_files_only=true
auto_save_setup_panels=false
navigate_with_arrows=false
panel_scroll_pages=true
mouse_move_pages=true
filetype_mode=true
permission_mode=false
torben_fj_mode=false
quick_search_mode=2
simple_swap=false
select_flags=4
panel_scroll_center=false
[FindFile]
file_case_sens=true
file_shell_pattern=false
file_find_recurs=true
file_skip_hidden=false
file_all_charsets=false
content_use=true
content_case_sens=true
content_regexp=false
content_first_hit=false
content_whole_words=false
content_all_charsets=false
ignore_dirs_enable=true
ignore_dirs=node_modules
follow_symlinks=false
[DiffView]
show_symbols=false
show_numbers=false
tab_size=8
diff_quality=0
diff_ignore_tws=false
diff_ignore_all_space=false
diff_ignore_space_change=false
diff_tab_expansion=false
diff_ignore_case=false
[HotlistConfig]
expanded_view_of_groups=0
[Panelize]
Modified git files=git ls-files --modified
Najít odmítnuté části záplat (*.rej) po záplatování=find . -name \\*.rej -print
Najít programy SUID a SGID=find . \\( \\( -perm -04000 -a -perm /011 \\) -o \\( -perm -02000 -a -perm /01 \\) \\) -print
Najít všechny soubory *.orig po záplatování=find . -name \\*.orig -print

View file

@ -0,0 +1,827 @@
# Midnight Commander 3.0 extension file
# Warning: Structure of this file has changed completely with version 3.0
#
# All lines starting with # or empty lines are thrown away.
# Lines starting in the first column should have following format:
#
# keyword/descNL, i.e. everything after keyword/ until new line is desc
#
# keyword can be:
#
# shell (desc is, when starting with a dot, any extension (no wildcars),
# i.e. matches all the files *desc . Example: .tar matches *.tar;
# if it doesn't start with a dot, it matches only a file of that name)
#
# shell/i (desc is, when starting with a dot, any extension (no wildcars),
# The same as shell but with case insensitive.
#
# regex (desc is an extended regular expression)
# Please note that we are using the GNU regex library and thus
# \| matches the literal | and | has special meaning (or) and
# () have special meaning and \( \) stand for literal ( ).
#
# regex/i (desc is an extended regular expression)
# The same as regex but with case insensitive.
#
# type (file matches this if `file %f` matches regular expression desc
# (the filename: part from `file %f` is removed))
#
# type/i (file matches this if `file %f` matches regular expression desc)
# The same as type but with case insensitive.
#
# directory (matches any directory matching regular expression desc)
#
# include (matches an include directive)
#
# default (matches any file no matter what desc is)
#
# Other lines should start with a space or tab and should be in the format:
#
# keyword=commandNL (with no spaces around =), where keyword should be:
#
# Open (if the user presses Enter or doubleclicks it),
#
# View (F3), Edit (F4)
#
# Include is the keyword used to add any further entries from an include/
# section
#
# command is any one-line shell command, with the following substitutions:
#
# %% -> % character
# %p -> name of the current file (without path, but pwd is its path).
# Also provided to external application as MC_EXT_BASENAME
# global variable
# %f -> name of the current file. Unlike %p, if file is located on a
# non-local virtual filesystem, i.e. either tarfs or ftpfs,
# then the file will be temporarily copied into a local directory
# and %f will be the full path to this local temporal file.
# If you don't want to get a local copy and want to get the
# virtual fs path (like /#ftp:ftp.cvut.cz/pub/hungry/xword), then
# use %d/%p instead of %f.
# Also provided to external application as MC_EXT_FILENAME
# global variable
# %d -> name of the current directory (pwd, without trailing slash)
# Also provided to external application as MC_EXT_CURRENTDIR
# global variable
# %s -> "selected files", i.e. space separated list of tagged files if any
# or name of the current file.
# Also provided to external application as MC_EXT_SELECTED
# global variable
# %t -> list of tagged files
# Also provided to external application as MC_EXT_ONLYTAGGED
# global variable
# %u -> list of tagged files (they'll be untaged after the command)
#
# (If these 6 letters are in uppercase, they refer to the other panel.
# But you shouldn't have to use it in this file.)
#
#
# %cd -> the rest is a path mc should change into (cd won't work, since it's
# a child process). %cd handles even vfs names.
#
# %view -> the command you type will be piped into mc's internal file viewer
# if you type only the %view and no command, viewer will load %f file
# instead (i.e. no piping, so it is different to %view cat %f)
# %view may be directly followed by {} with a list of any of
# ascii (Ascii mode), hex (Hex mode), nroff (color highlighting for
# text using backspace for bold and underscore) and unform
# (no highlighting for nroff sequences) separated by commas.
#
# %var -> You use it like this: %var{VAR:default}. This macro will expand
# to the value of the VAR variable in the environment if it's set
# otherwise the value in default will be used. This is similar to
# the Bourne shell ${VAR-default} construct.
#
# Rules are applied from top to bottom, thus the order is important.
# If some actions are missing, search continues as if this target didn't
# match (i.e. if a file matches the first and second entry and View action
# is missing in the first one, then on pressing F3 the View action from
# the second entry will be used. default should catch all the actions.
#
# Any new entries you develop for you are always welcome if they are
# useful on more than one system. You can post your modifications
# as tickets at www.midnight-commander.org
### Changes ###
#
# Reorganization: 2012-03-07 Slava Zanko <slavazanko@gmail.com>
### GIT Repo ###
# gitfs changeset
regex/^\[git\]
Open=%cd %p/changesetfs://
View=%cd %p/patchsetfs://
### Archives ###
# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk, .gem
regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk$|\.gem$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.gz
shell/.tar.bz
# Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip
regex/\.t(ar\.bz2|bz2?|b2)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.bzip2
# .tar.lzma, .tlz
regex/\.t(ar\.lzma|lz)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lzma
# .tar.lz
shell/.tar.lz
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz
# .tar.lz4, .tlz4
regex/\.t(ar\.lz4|lz4)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.lz4
# .tar.xz, .txz
regex/\.t(ar\.xz|xz)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.xz
# .tar.zst, .tzst
regex/\.t(ar\.zst|zst)$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.zst
# .tar.F - used in QNX
shell/.tar.F
# Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.F
# .qpr/.qpk - QNX Neutrino package installer files
regex/\.qp[rk]$
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar.qpr
# tar
shell/i/.tar
Open=%cd %p/utar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view tar
# lha
type/^LHa\ .*archive
Open=%cd %p/ulha://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lha
# PAK
type/^PAK\ .*archive
Open=%cd %p/unar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view pak
# arj
regex/i/\.a(rj|[0-9][0-9])$
Open=%cd %p/uarj://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arj
# cab
shell/i/.cab
Open=%cd %p/ucab://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cab
# ha
shell/i/.ha
Open=%cd %p/uha://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ha
# rar
regex/i/\.r(ar|[0-9][0-9])$
Open=%cd %p/urar://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view rar
# ALZip
shell/i/.alz
Open=%cd %p/ualz://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view alz
# cpio
shell/.cpio.Z
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.z
shell/.cpio.lz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz
shell/.cpio.lz4
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.lz4
shell/.cpio.xz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.xz
shell/.cpio.zst
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.zst
shell/.cpio.gz
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio.gz
shell/i/.cpio
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
# initrd
regex/^(initramfs.*\.img|initrd(-.+)?\.img(-.+)?)$
Open=%cd %p/ucpio://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view cpio
# 7zip archives (they are not man pages)
shell/i/.7z
Open=%cd %p/u7z://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view 7z
# patch
regex/\.(diff|patch)(\.bz2)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
regex/\.(diff|patch)(\.(gz|Z))$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
regex/\.(diff|patch)(\.xz)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
regex/\.(diff|patch)(\.zst)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zst
# ls-lR
regex/(^|\.)ls-?lR(\.gz|Z|bz2)$
Open=%cd %p/lslR://
# trpm
shell/.trpm
Open=%cd %p/trpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view trpm
# RPM packages (SuSE uses *.spm for source packages)
regex/\.(src\.rpm|spm)$
Open=%cd %p/rpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view src.rpm
shell/.rpm
Open=%cd %p/rpm://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view rpm
# deb
regex/\.u?deb$
Open=%cd %p/deb://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view deb
# dpkg
shell/.debd
Open=%cd %p/debd://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view debd
# apt
shell/.deba
Open=%cd %p/deba://
View=%view{ascii} /usr/lib/mc/ext.d/package.sh view deba
# ISO9660
shell/i/.iso
Open=%cd %p/iso9660://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view iso9660
regex/\.(diff|patch)$
Open=%cd %p/patchfs://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view cat
# ar library
regex/\.s?a$
Open=%cd %p/uar://
#Open=%view{ascii} ar tv %f
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view ar
# gplib
shell/i/.lib
Open=%cd %p/ulib://
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lib
# Mailboxes
type/^ASCII\ mail\ text
Open=%cd %p/mailfs://
### Sources ###
# C/C++
regex/i/\.(c|cc|cpp)$
Include=editor
# C/C++ header
regex/i/\.(h|hh|hpp)$
Include=editor
# Fortran
shell/i/.f
Include=editor
# Assembler
regex/i/\.(s|asm)$
Include=editor
include/editor
Open=%var{EDITOR:vi} %f
# .so libraries
regex/\.(so|so\.[0-9\.]*)$
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view so
# Object
type/^ELF
#Open=%var{PAGER:more} %f
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view elf
### Documentation ###
# Texinfo
#regex/\.(te?xi|texinfo)$
# GNU Info page
type/^Info\ text
Open=/usr/lib/mc/ext.d/text.sh open info
shell/.info
Open=/usr/lib/mc/ext.d/text.sh open info
# Exception: .3gp are video files not manual pages
shell/i/.3gp
Include=video
# Manual page
regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$
Open=/usr/lib/mc/ext.d/text.sh open man %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man %var{PAGER:more}
# Perl pod page
shell/.pod
Open=/usr/lib/mc/ext.d/text.sh open pod %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view pod %var{PAGER:more}
# Troff with me macros.
# Exception - "read.me" is not a nroff file.
shell/read.me
Open=
View=
shell/.me
Open=/usr/lib/mc/ext.d/text.sh open nroff.me %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.me %var{PAGER:more}
# Troff with ms macros.
shell/.ms
Open=/usr/lib/mc/ext.d/text.sh open nroff.ms %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view nroff.ms %var{PAGER:more}
# Manual page - compressed
type/^(ASCII )?troff.*gzip compressed
Open=/usr/lib/mc/ext.d/text.sh open man.gz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.gz %var{PAGER:more}
type/^(ASCII )?troff.*bzip compressed
Open=/usr/lib/mc/ext.d/text.sh open man.bz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz %var{PAGER:more}
type/^(ASCII )?troff.*bzip2 compressed
Open=/usr/lib/mc/ext.d/text.sh open man.bz2 %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.bz2 %var{PAGER:more}
# Manual page
type/^(ASCII )?troff
Open=/usr/lib/mc/ext.d/text.sh open man %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man %var{PAGER:more}
# Perl pod page
shell/.pod
Open=/usr/lib/mc/ext.d/text.sh open pod %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view pod %var{PAGER:more}
regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz$
Open=/usr/lib/mc/ext.d/text.sh open man.lz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz %var{PAGER:more}
regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lz4$
Open=/usr/lib/mc/ext.d/text.sh open man.lz4 %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lz4 %var{PAGER:more}
regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$
Open=/usr/lib/mc/ext.d/text.sh open man.lzma %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.lzma %var{PAGER:more}
regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$
Open=/usr/lib/mc/ext.d/text.sh open man.xz %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.xz %var{PAGER:more}
regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.zst$
Open=/usr/lib/mc/ext.d/text.sh open man.zst %var{PAGER:more}
View=%view{ascii,nroff} /usr/lib/mc/ext.d/text.sh view man.zst %var{PAGER:more}
# CHM
shell/i/.chm
Open=/usr/lib/mc/ext.d/text.sh open chm
### Images ###
type/^GIF
Include=image
type/^JPEG
Include=image
type/^PC\ bitmap
Include=image
type/^PNG
Include=image
type/^JNG
Include=image
type/^MNG
Include=image
type/^TIFF
Include=image
type/^PBM
Include=image
type/^PGM
Include=image
type/^PPM
Include=image
type/^Netpbm
Include=image
shell/.xcf
Open=/usr/lib/mc/ext.d/image.sh open xcf
shell/.xbm
Open=/usr/lib/mc/ext.d/image.sh open xbm
shell/.xpm
Include=image
View=/usr/lib/mc/ext.d/image.sh view xpm %f
shell/.ico
Include=image
shell/i/.svg
Edit=herbstclient spawn inkscape %f
Include=image
include/image
Open=herbstclient spawn imv %f
View=herbstclient spawn imv %f
Edit=herbstclient spawn gimp $f
### Sound files ###
regex/i/\.(wav|snd|voc|au|smp|aiff|aif|snd|m4a|ape|aac|wv|mp3|spx|flac|og[gax]|wma|opus)$
Include=audio
regex/i/\.(mod|s3m|xm|it|mtm|669|stm|ult|far)$
Open=/usr/lib/mc/ext.d/sound.sh open mod
shell/i/.waw22
Open=/usr/lib/mc/ext.d/sound.sh open wav22
regex/i/\.(midi?|rmid?)$
Open=/usr/lib/mc/ext.d/sound.sh open midi
include/audio
Open=/usr/bin/cmus-remote -q %f
View=herbstclient spawn /usr/bin/ffplay %f
Edit=herbstclient spawn /usr/bin/kid3-qt %f
### Play lists ###
regex/i/\.(m3u|pls)$
Open=/usr/lib/mc/ext.d/sound.sh open playlist
### Video ###
shell/i/.avi
Include=video
regex/i/\.as[fx]$
Include=video
shell/i/.divx
Include=video
shell/i/.mkv
Include=video
regex/i/\.(mov|qt)$
Include=video
regex/i/\.(mp4|m4v|mpe?g)$
Include=video
# MPEG-2 TS container + H.264 codec
shell/i/.mts
Include=video
shell/i/.ts
Include=video
shell/i/.vob
Include=video
shell/i/.wmv
Include=video
regex/i/\.fl[icv]$
Include=video
shell/i/.ogv
Include=video
regex/i/\.ra?m$
Open=/usr/lib/mc/ext.d/video.sh open ram
# WebM
shell/i/.webm
Include=video
type/WebM
Include=video
include/video
Open=/usr/bin/vlc %f &>/dev/null &
View=/usr/bin/ffplay %f
### Documents ###
# Postscript
type/^PostScript
Open=/usr/lib/mc/ext.d/doc.sh open ps
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view ps
# PDF
type/^PDF
Open=/usr/bin/mupdf %f &>/dev/null &
View=/usr/bin/mupdf %f
# html
regex/i/\.html?$
Open=/usr/lib/mc/ext.d/web.sh open html
View=%view{ascii} /usr/lib/mc/ext.d/web.sh view html
# StarOffice 5.2
shell/.sdw
Open=/usr/lib/mc/ext.d/doc.sh open ooffice
# StarOffice 6 and OpenOffice.org formats
regex/i/\.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
Open=herbstclient spawn libreoffice %f
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view odt
# AbiWord
shell/.abw
Open=/usr/lib/mc/ext.d/doc.sh open abw
# Gnumeric
shell/i/.gnumeric
Open=/usr/lib/mc/ext.d/doc.sh open gnumeric
# Microsoft Word Document
regex/i/\.(do[ct]|wri)$
Open=/usr/lib/mc/ext.d/doc.sh open msdoc
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
type/^Microsoft\ Word
Open=/usr/lib/mc/ext.d/doc.sh open msdoc
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msdoc
# RTF document
shell/i/.rtf
Open=herbstclient spawn libreoffice %f
# Microsoft Excel Worksheet
regex/i/\.xl[sw]s?$
Open=herbstclient spawn libreoffice %f
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
type/^Microsoft\ Excel
Open=herbstclient spawn libreoffice %f
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msxls
regex/i/\.(ppt|pps)$
Open=herbstclient spawn libreoffice %f
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view msppt
# Use OpenOffice.org to open any MS Office documents
type/^Microsoft\ Office\ Document
Open=herbstclient spawn libreoffice %f
# Framemaker
type/^FrameMaker
Open=/usr/lib/mc/ext.d/doc.sh open framemaker
# DVI
shell/i/.dvi
Open=/usr/lib/mc/ext.d/doc.sh open dvi
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view dvi
# TeX
shell/i/.tex
Include=editor
# DjVu
regex/i/\.djvu?$
Open=/usr/lib/mc/ext.d/doc.sh open djvu
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view djvu
# Comic Books
regex/i/\.cb[zr]$
Open=/usr/lib/mc/ext.d/doc.sh open comic
# Epub & mobi
regex/i/\.(epub|mobi)$
Open=/usr/lib/mc/ext.d/doc.sh open epub
View=%view{ascii} /usr/lib/mc/ext.d/doc.sh view epub
### Miscellaneous ###
# Compiled Java classes
shell/.class
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view javaclass
# Makefile
regex/^[Mm]akefile$
Open=make -f %f %{Enter parameters}
# Imakefile
shell/Imakefile
Open=xmkmf -a
# Makefile.PL (MakeMaker)
regex/^Makefile\.(PL|pl)$
Open=%var{PERL:perl} %f
# sqlite3.db
type/^SQLite 3.x database
Open=/usr/lib/mc/ext.d/misc.sh open sqlite
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view sqlite
# dbf
shell/i/.dbf
Open=/usr/lib/mc/ext.d/misc.sh open dbf
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view dbf
# REXX script
regex/\.(rexx?|cmd)$
Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
# Disk images for Commodore computers (VIC20, C64, C128)
shell/i/.d64
Open=%cd %p/uc1541://
View=%view{ascii} c1541 %f -list
Extract=c1541 %f -extract
# Glade, a user interface designer for GTK+ and GNOME
shell/i/.glade
Open=/usr/lib/mc/ext.d/misc.sh open glade
# Gettext Catalogs
regex/\.g?mo$
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view mo
# po
shell/.po
Open=/usr/lib/mc/ext.d/misc.sh open po
# lyx
shell/i/.lyx
Open=/usr/lib/mc/ext.d/misc.sh open lyx
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view lyx
# torrent
shell/i/.torrent
View=%view{ascii} /usr/lib/mc/ext.d/misc.sh view torrent
### Plain compressed files ###
# ace
shell/i/.ace
Open=%cd %p/uace://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view ace
Extract=unace x %f
# arc
shell/i/.arc
Open=%cd %p/uarc://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view arc
Extract=arc x %f '*'
Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi
# zip
shell/i/.zip
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
# zip
type/i/^zip\ archive
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
# jar(zip)
type/i/^Java\ (Jar\ file|archive)\ data\ \((zip|JAR)\)
Open=%cd %p/uzip://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zip
# zoo
shell/i/.zoo
Open=%cd %p/uzoo://
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view zoo
# gzip
type/^gzip
Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
regex/\.(gz|Z)$
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
# bzip2
type/^bzip2
Open=/usr/lib/mc/ext.d/archive.sh view bzip2 %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
regex/\.bz2?$
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bz2
# bzip
type/^bzip
Open=/usr/lib/mc/ext.d/archive.sh view bzip %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view bzip
# compress
type/^compress
Open=/usr/lib/mc/ext.d/archive.sh view gz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view gz
# lz
regex/\.lz$
Open=/usr/lib/mc/ext.d/archive.sh view lz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz
# lz
type/^LZIP
Open=/usr/lib/mc/ext.d/archive.sh view lz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz
# lz4
regex/\.lz4$
Open=/usr/lib/mc/ext.d/archive.sh view lz4 %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lz4
# lzma
regex/\.lzma$
Open=/usr/lib/mc/ext.d/archive.sh view lzma %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view lzma
# xz
regex/\.xz$
Open=/usr/lib/mc/ext.d/archive.sh view xz %var{PAGER:more}
View=%view{ascii} /usr/lib/mc/ext.d/archive.sh view xz
# Parity Archive
type/^Parity\ Archive\ Volume\ Set
Open=/usr/lib/mc/ext.d/archive.sh open par2
### Default ###
# Default target for anything not described above
default/*
Open=
View=
### EOF ###

418
dot_config/private_mc/menu Normal file
View file

@ -0,0 +1,418 @@
shell_patterns=0
+ ! t t
@ Do something on the current file
CMD=%{Enter command}
$CMD %f
+ t t
@ Do something on the tagged files
set %t; CMD=%{Enter command}
while [ -n "$1" ]; do
$CMD "$1"
shift
done
0 Edit a bug report and send it to root
I=`mktemp "${MC_TMPDIR:-/tmp}/mail.XXXXXX"` || exit 1
${EDITOR-vi} "$I"
test -r $I && mail root < $I
rm -f "$I"
=+ f \.1$ | f \.3$ | f \.4$ | f \.5$ | f \.6$ | f \.7$ | f \.8$ | f \.man$ & t r
1 Display the file with roff -man
%view{ascii,nroff} roff -man %f
2 Call the info hypertext browser
info
= t d
3 Compress the current subdirectory (tar.gz)
Pwd=`basename %d /`
echo -n "Name of the compressed file (without extension) [$Pwd]: "
read tar
if [ "$tar"x = x ]; then tar="$Pwd"; fi
cd .. && \
tar cf - "$Pwd" | gzip -f9 > "$tar.tar.gz" && \
echo "../$tar.tar.gz created."
4 Compress the current subdirectory (tar.bz2)
Pwd=`basename %d /`
echo -n "Name of the compressed file (without extension) [$Pwd]: "
read tar
if [ "$tar"x = x ]; then tar="$Pwd"; fi
cd .. && \
tar cf - "$Pwd" | bzip2 -f > "$tar.tar.bz2" && \
echo "../$tar.tar.bz2 created."
5 Compress the current subdirectory (tar.7z)
Pwd=`basename %d /`
echo -n "Name of the compressed file (without extension) [$Pwd]: "
read tar
if [ "$tar"x = x ]; then tar="$Pwd"; fi
cd .. && \
tar cf - "$Pwd" | 7za a -si "$tar.tar.7z" && \
echo "../$tar.tar.7z created."
6 Compress the current subdirectory (tar.xz)
Pwd=`basename %d /`
echo -n "Name of the compressed file (without extension) [$Pwd]: "
read tar
if [ "$tar"x = x ]; then tar="$Pwd"; fi
cd .. && \
tar cf - "$Pwd" | xz -f > "$tar.tar.xz" && \
echo "../$tar.tar.xz created."
= f \.c$ & t r
+ f \.c$ & t r & ! t t
c Compile and link current .c file
make `basename %f .c` 2>/dev/null || cc -O -o `basename %f .c` %f
+ t r & ! t t
a Append file to opposite
cat %f >> %D/%f
+ t t
A Append files to opposite files
set %t
while [ -n "$1" ]; do
cat "$1" >> "%D/$1"
shift
done
+ t r & ! t t
d Delete file if a copy exists in the other directory.
if [ "%d" = "%D" ]; then
echo "The two directories must be different."
exit 1
fi
if [ -f %D/%f ]; then # if two of them, then
if cmp -s %D/%f %f; then
rm %f && echo "%f: DELETED."
else
echo "%f and %D/%f differ: NOT deleted."
echo -n "Press RETURN "
read key
fi
else
echo "%f: No copy in %D/%f: NOT deleted."
fi
+ t t
D Delete tagged files if a copy exists in the other directory.
if [ "%d" = "%D" ]; then
echo "The two directores must be different."
exit 1
fi
for i in %t
do
if [ -f "%D/$i" ]; then
SUM1="`sum \"$i\"`"
SUM2="`sum \"%D/$i\"`"
if [ "$SUM1" = "$SUM2" ]; then
rm "$i" && echo "${i}: DELETED."
else
echo "$i and %D/$i differ: NOT deleted."
fi
else
echo "$i has no copy in %D: NOT deleted."
fi
done
m View manual page
MAN=%{Enter manual name}
%view{ascii,nroff} MANROFFOPT='' MAN_KEEP_FORMATTING=1 man -P cat $MAN
= f \.gz$ & t r
+ ! t t
n Inspect gzip'ed newsbatch file
dd if=%f bs=1 skip=12|zcat|${PAGER-more}
# assuming the cunbatch header is 12 bytes long.
= t r &
+ ! t t
h Strip headers from current newsarticle
CHECK=`awk '{print $1 ; exit}' %f` 2>/dev/null
case "$CHECK" in
Newsgroups:|Path:)
I=`mktemp "${MC_TMPDIR:-/tmp}/news.XXXXXX"` || exit 1
cp %f "$I" && sed '/^'"$CHECK"' /,/^$/d' "$I" > %f
[ "$?" = "0" ] && rm "$I"
echo "%f: header removed."
;;
*)
echo "%f is not a news article."
;;
esac
+ t t
H Strip headers from the marked newsarticles
set %t
while [ -n "$1" ]; do
CHECK=`awk '{print $1 ; exit}' $1` 2>/dev/null
WFILE=`mktemp "${MC_TMPDIR:-/tmp}/news.XXXXXX"` || exit 1
case "$CHECK" in
Newsgroups:|Path:)
cp "$1" "$WFILE" && sed '/^'"$CHECK"' /,/^$/d' "$WFILE" > "$1"
if [ "$?" = "0" ]; then
rm "$WFILE"; echo "$1 header removed. OK."
else
echo "Oops! Please check $1 against $WFILE."
fi
;;
*)
echo "$1 skipped: Not a news article."
;;
esac
shift
done
= t r
+ ! t t
r Copy file to remote host
echo -n "To which host?: "
read Host
echo -n "To which directory on $Host?: "
read Dir
rcp -p %f "${Host}:$Dir"
+ t t
R Copy files to remote host (no error checking)
echo -n "Copy files to which host?: "
read Host
echo -n "To which directory on $Host? :"
read Dir
rcp -pr %u "${Host}:$Dir"
= f \.tex$ & t r
+ f \.tex$ & t r & ! t t
t Run latex on file and show it with xdvi
latex %f && xdvi `basename %f .tex`.dvi
=+ f ^part | f ^Part | f uue & t r
+ t t
U Uudecode marked news articles (needs work)
set %t
(
while [ -n "$1" ]; do # strip headers
FIRST=`awk '{print $1 ; exit}' "$1"`
cat "$1" | sed '/^'"$FIRST"' /,/^$/d'; shift
done
) |sed '/^$/d' |sed -n '/^begin 6/,/^end$/p' | uudecode
if [ "$?" != "0" ]; then
echo "Cannot decode %t."
fi
echo "Please test the output file before deleting anything."
=+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r
x Extract the contents of a compressed tar file
unset PRG
case %f in
*.tar.bz2)
PRG="bunzip2 -c"
;;
*.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
PRG="gzip -dc"
;;
*.tar.lzma)
PRG="lzma -dc"
;;
*.tar.lz)
PRG="lzip -dc"
;;
*.tar.xz)
PRG="xz -dc"
;;
*.tar.7z)
PRG="7za e -so"
;;
*)
exit 1
;;
esac
$PRG %f | tar xvf -
= t r
+ ! t t
y Gzip or gunzip current file
unset DECOMP
case %f in
*.gz) DECOMP=-d;;
*.[zZ]) DECOMP=-d;;
esac
gzip $DECOMP -v %f
+ t t
Y Gzip or gunzip tagged files
for i in %t
do
unset DECOMP
case "$i" in
*.gz) DECOMP=-d;;
*.[zZ]) DECOMP=-d;;
esac
gzip $DECOMP -v "$i"
done
+ ! t t
b Bzip2 or bunzip2 current file
unset DECOMP
case %f in
*.bz2) DECOMP=-d;;
esac
bzip2 $DECOMP -v %f
+ t t
B Bzip2 or bunzip2 tagged files
for i in %t
do
unset DECOMP
case "$i" in
*.bz2) DECOMP=-d;;
esac
bzip2 $DECOMP -v "$i"
done
+ f \.tar.gz$ | f \.tgz$ | f \.tpz$ | f \.tar.Z$ | f \.tar.z$ | f \.tar.bz2$ | f \.tar.F$ & t r & ! t t
z Extract compressed tar file to subdirectory
unset D
set gzip -cd
case %f in
*.tar.gz) D="`basename %f .tar.gz`";;
*.tgz) D="`basename %f .tgz`";;
*.tpz) D="`basename %f .tpz`";;
*.tar.Z) D="`basename %f .tar.Z`";;
*.tar.z) D="`basename %f .tar.z`";;
*.tar.bz2) D="`basename %f .tar.bz2`"; set bunzip2 -c ;;
*.tar.F) D="`basename %f .tar.F`"; set freeze -dc;
esac
mkdir "$D"; cd "$D" && ("$1" "$2" ../%f | tar xvf -)
+ t t
Z Extract compressed tar files to subdirectories
for i in %t
do
set gzip -dc
unset D
case "$i" in
*.tar.gz) D="`basename $i .tar.gz`";;
*.tgz) D="`basename $i .tgz`";;
*.tpz) D="`basename $i .tpz`";;
*.tar.Z) D="`basename $i .tar.Z`";;
*.tar.z) D="`basename $i .tar.z`";;
*.tar.F) D="`basename $i .tar.F`"; set freeze -dc;;
*.tar.bz2) D="`basename $i .tar.bz2`"; set bunzip2 -c;;
esac
mkdir "$D"; (cd "$D" && "$1" "$2" "../$i" | tar xvf -)
done
+ f \.gz$ | f \.tgz$ | f \.tpz$ | f \.Z$ | f \.z$ | f \.bz2$ & t r & ! t t
c Convert gz<->bz2, tar.gz<->tar.bz2 & tgz->tar.bz2
unset D
unset EXT
case %f in
*.tgz) EXT=tgz;;
*.tpz) EXT=tpz;;
*.Z) EXT=Z;;
*.z) EXT=z;;
*.gz) EXT=gz;;
*.bz2) EXT=bz2;;
esac
case $EXT in
tgz|tpz) D="`basename %f .$EXT`.tar";;
gz|Z|z) D="`basename %f .$EXT`";;
bz2) D="`basename %f .bz2`";;
esac
if [ "$EXT" = "bz2" ]; then
bunzip2 -v %f ; gzip -f9 -v "$D"
else
gunzip -v %f ; bzip2 -v "$D"
fi
+ t t
C Convert gz<->bz2, tar.gz<->tar.bz2 & tgz->tar.bz2
set %t
while [ -n "$1" ]
do
unset D
unset EXT
case "$1" in
*.tgz) EXT=tgz;;
*.tpz) EXT=tpz;;
*.Z) EXT=Z;;
*.z) EXT=z;;
*.gz) EXT=gz;;
*.bz2) EXT=bz2;;
esac
case $EXT in
tgz) D="`basename $1 .tgz`.tar";;
tpz) D="`basename $1 .tpz`.tar";;
gz|Z|z) D="`basename $1 .$EXT`";;
bz2) D="`basename $1 .bz2`";;
esac
if [ "$EXT" = "bz2" ]; then
bunzip2 -v "$1"
gzip -f9 -v "$D"
else
gunzip -v "$1"
bzip2 -v "$D"
fi
shift
done
+ x /usr/bin/open | x /usr/local/bin/open & x /bin/sh
o Open next a free console
open -s -- sh
+ f \.flac$ | f \.aif$ | f \.m4a$
c Copy and convert to mp3
set %t
[ -n "$1" ] || set %f
while [ -n "$1" ]
do
case "$1" in
*.flac) EXT=flac;;
*.aif) EXT=aif;;
*.m4a) EXT=m4a;;
esac
ffmpeg -i %d/"$1" -ab 320k -map_metadata 0 -id3v2_version 3 %D/"$(basename "$1" $EXT)mp3"
shift
done
+ f \.wv$ | f \.aif$ | f \.m4a$
f Copy and convert to flac
set %t
[ -n "$1" ] || set %f
while [ -n "$1" ]
do
case "$1" in
*.wv) EXT=wv;;
*.aif) EXT=aif;;
*.m4a) EXT=m4a;;
esac
ffmpeg -i %d/"$1" %D/"$(basename "$1" $EXT)flac"
shift
done
u Copy unaccented
set %t
[ -n "$1" ] || set %f
while [ -n "$1" ]
do
NEW_FNAME=$(echo "$1" | iconv -f utf-8 -t ascii//TRANSLIT | tr -c -d 'a-zA-Z_0-9 .-')
cp %d/"$1" %D/"$NEW_FNAME"
shift
done
k kak
herbstclient spawn xterm -e "kak \"$(realpath %f)\""
+ s \.cue$
s Split by this cue
set %t
[ -n "$1" ] || set %f
while [ -n "$1" ]
do
shnsplit -o flac -t '%n - %%t' -f "$1" "${1//.cue}.flac"
shift
done

View file

@ -0,0 +1 @@
hwdec=auto

View file

@ -0,0 +1,248 @@
# Daemon config file for PipeWire version "0.3.32" #
#
# Copy and edit this file in /etc/pipewire for systemwide changes
# or in ~/.config/pipewire for local changes.
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
default.clock.rate = 44100
default.clock.allowed-rates = [ 44100 48000 88200 96000 192000 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
context.modules = [
#{ name = <module-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ ifexists ] [ nofail ] ]
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses RTKit to boost the data thread priority.
{ name = libpipewire-module-rtkit
args = {
#nice.level = -11
#rt.prio = 88
#rt.time.soft = 2000000
#rt.time.hard = 2000000
}
flags = [ ifexists nofail ]
}
# Set thread priorities without using RTKit.
#{ name = libpipewire-module-rt
# args = {
# nice.level = -11
# rt.prio = 88
# rt.time.soft = 2000000
# rt.time.hard = 2000000
# }
# flags = [ ifexists nofail ]
#}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
# /usr/bin/pipewire-media-session
#]
# An array of rejected paths.
#access.rejected = [ ]
# An array of paths with restricted access.
#access.restricted = [ ]
# Anything not in the above lists gets assigned the
# access.force permission.
#access.force = flatpak
}
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
{ name = libpipewire-module-zeroconf-discover }
]
context.objects = [
#{ factory = <factory-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ nofail ] ]
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-driver"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# #api.alsa.period-size = 1024
# #api.alsa.headroom = 0
# #api.alsa.disable-mmap = false
# #api.alsa.disable-batch = false
# #audio.format = "S16LE"
# #audio.rate = 48000
# #audio.channels = 2
# #audio.position = "FL,FR"
# }
#}
]
context.exec = [
#{ path = <program-name> [ args = "<arguments>" ] }
#
# Execute the given program with arguments.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = "" }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,332 @@
# gruvbox dark hard qutebrowser theme by Florian Bruhin <me@the-compiler.org>
#
# Originally based on:
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
# Base16 qutebrowser template by theova and Daniel Mulford
# Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
bg0_hard = "#1d2021"
bg0_soft = '#32302f'
bg0_normal = '#282828'
bg0 = bg0_normal
bg1 = "#3c3836"
bg2 = "#504945"
bg3 = "#665c54"
bg4 = "#7c6f64"
fg0 = "#fbf1c7"
fg1 = "#ebdbb2"
fg2 = "#d5c4a1"
fg3 = "#bdae93"
fg4 = "#a89984"
bright_red = "#fb4934"
bright_green = "#b8bb26"
bright_yellow = "#fabd2f"
bright_blue = "#83a598"
bright_purple = "#d3869b"
bright_aqua = "#8ec07c"
bright_gray = "#928374"
bright_orange = "#fe8019"
dark_red = "#cc241d"
dark_green = "#98971a"
dark_yellow = "#d79921"
dark_blue = "#458588"
dark_purple = "#b16286"
dark_aqua = "#689d6a"
dark_gray = "#a89984"
dark_orange = "#d65d0e"
### Completion
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
c.colors.completion.fg = [fg1, bright_aqua, bright_yellow]
# Background color of the completion widget for odd rows.
c.colors.completion.odd.bg = bg0
# Background color of the completion widget for even rows.
c.colors.completion.even.bg = c.colors.completion.odd.bg
# Foreground color of completion widget category headers.
c.colors.completion.category.fg = bright_blue
# Background color of the completion widget category headers.
c.colors.completion.category.bg = bg1
# Top border color of the completion widget category headers.
c.colors.completion.category.border.top = c.colors.completion.category.bg
# Bottom border color of the completion widget category headers.
c.colors.completion.category.border.bottom = c.colors.completion.category.bg
# Foreground color of the selected completion item.
c.colors.completion.item.selected.fg = fg0
# Background color of the selected completion item.
c.colors.completion.item.selected.bg = bg4
# Top border color of the selected completion item.
c.colors.completion.item.selected.border.top = bg2
# Bottom border color of the selected completion item.
c.colors.completion.item.selected.border.bottom = c.colors.completion.item.selected.border.top
# Foreground color of the matched text in the selected completion item.
c.colors.completion.item.selected.match.fg = bright_orange
# Foreground color of the matched text in the completion.
c.colors.completion.match.fg = c.colors.completion.item.selected.match.fg
# Color of the scrollbar handle in the completion view.
c.colors.completion.scrollbar.fg = c.colors.completion.item.selected.fg
# Color of the scrollbar in the completion view.
c.colors.completion.scrollbar.bg = c.colors.completion.category.bg
### Context menu
# Background color of disabled items in the context menu.
c.colors.contextmenu.disabled.bg = bg3
# Foreground color of disabled items in the context menu.
c.colors.contextmenu.disabled.fg = fg3
# Background color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.bg = bg0
# Foreground color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.fg = fg2
# Background color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.bg = bg2
#Foreground color of the context menus selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.fg = c.colors.contextmenu.menu.fg
### Downloads
# Background color for the download bar.
c.colors.downloads.bar.bg = bg0
# Color gradient start for download text.
c.colors.downloads.start.fg = bg0
# Color gradient start for download backgrounds.
c.colors.downloads.start.bg = bright_blue
# Color gradient end for download text.
c.colors.downloads.stop.fg = c.colors.downloads.start.fg
# Color gradient stop for download backgrounds.
c.colors.downloads.stop.bg = bright_aqua
# Foreground color for downloads with errors.
c.colors.downloads.error.fg = bright_red
### Hints
# Font color for hints.
c.colors.hints.fg = bg0
# Background color for hints.
c.colors.hints.bg = 'rgba(250, 191, 47, 200)' # bright_yellow
# Font color for the matched part of hints.
c.colors.hints.match.fg = bg4
### Keyhint widget
# Text color for the keyhint widget.
c.colors.keyhint.fg = fg4
# Highlight color for keys to complete the current keychain.
c.colors.keyhint.suffix.fg = fg0
# Background color of the keyhint widget.
c.colors.keyhint.bg = bg0
### Messages
# Foreground color of an error message.
c.colors.messages.error.fg = bg0
# Background color of an error message.
c.colors.messages.error.bg = bright_red
# Border color of an error message.
c.colors.messages.error.border = c.colors.messages.error.bg
# Foreground color of a warning message.
c.colors.messages.warning.fg = bg0
# Background color of a warning message.
c.colors.messages.warning.bg = bright_purple
# Border color of a warning message.
c.colors.messages.warning.border = c.colors.messages.warning.bg
# Foreground color of an info message.
c.colors.messages.info.fg = fg2
# Background color of an info message.
c.colors.messages.info.bg = bg0
# Border color of an info message.
c.colors.messages.info.border = c.colors.messages.info.bg
### Prompts
# Foreground color for prompts.
c.colors.prompts.fg = fg0
# Border used around UI elements in prompts.
c.colors.prompts.border = f'1px solid {bg1}'
# Background color for prompts.
c.colors.prompts.bg = bg3
# Background color for the selected item in filename prompts.
c.colors.prompts.selected.bg = bg2
### Statusbar
# Foreground color of the statusbar.
c.colors.statusbar.normal.fg = fg0
# Background color of the statusbar.
c.colors.statusbar.normal.bg = bg0
# Foreground color of the statusbar in insert mode.
c.colors.statusbar.insert.fg = bg0_hard
# Background color of the statusbar in insert mode.
c.colors.statusbar.insert.bg = dark_aqua
# Foreground color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.fg = bg0_hard
# Background color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.bg = dark_blue
# Foreground color of the statusbar in private browsing mode.
c.colors.statusbar.private.fg = bright_purple
# Background color of the statusbar in private browsing mode.
c.colors.statusbar.private.bg = bg0
# Foreground color of the statusbar in command mode.
c.colors.statusbar.command.fg = fg0
# Background color of the statusbar in command mode.
c.colors.statusbar.command.bg = bg1
# Foreground color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.fg = c.colors.statusbar.private.fg
# Background color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.bg = c.colors.statusbar.command.bg
# Foreground color of the statusbar in caret mode.
c.colors.statusbar.caret.fg = bg0_hard
# Background color of the statusbar in caret mode.
c.colors.statusbar.caret.bg = dark_purple
# Foreground color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.fg = c.colors.statusbar.caret.fg
# Background color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.bg = bright_purple
# Background color of the progress bar.
c.colors.statusbar.progress.bg = bright_blue
# Default foreground color of the URL in the statusbar.
c.colors.statusbar.url.fg = fg4
# Foreground color of the URL in the statusbar on error.
c.colors.statusbar.url.error.fg = dark_red
# Foreground color of the URL in the statusbar for hovered links.
c.colors.statusbar.url.hover.fg = bright_orange
# Foreground color of the URL in the statusbar on successful load
# (http).
c.colors.statusbar.url.success.http.fg = bright_red
# Foreground color of the URL in the statusbar on successful load
# (https).
c.colors.statusbar.url.success.https.fg = fg0
# Foreground color of the URL in the statusbar when there's a warning.
c.colors.statusbar.url.warn.fg = bright_purple
### tabs
# Background color of the tab bar.
c.colors.tabs.bar.bg = bg0
# Color gradient start for the tab indicator.
c.colors.tabs.indicator.start = bright_blue
# Color gradient end for the tab indicator.
c.colors.tabs.indicator.stop = bright_aqua
# Color for the tab indicator on errors.
c.colors.tabs.indicator.error = bright_red
# Foreground color of unselected odd tabs.
c.colors.tabs.odd.fg = fg0
# Background color of unselected odd tabs.
c.colors.tabs.odd.bg = bg2
# Foreground color of unselected even tabs.
c.colors.tabs.even.fg = c.colors.tabs.odd.fg
# Background color of unselected even tabs.
c.colors.tabs.even.bg = bg3
# Foreground color of selected odd tabs.
c.colors.tabs.selected.odd.fg = fg0
# Background color of selected odd tabs.
c.colors.tabs.selected.odd.bg = bg0
# Foreground color of selected even tabs.
c.colors.tabs.selected.even.fg = c.colors.tabs.selected.odd.fg
# Background color of selected even tabs.
c.colors.tabs.selected.even.bg = bg0
# Background color of pinned unselected even tabs.
c.colors.tabs.pinned.even.bg = bright_green
# Foreground color of pinned unselected even tabs.
c.colors.tabs.pinned.even.fg = bg2
# Background color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.bg = bright_green
# Foreground color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.fg = c.colors.tabs.pinned.even.fg
# Background color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.bg = bg0
# Foreground color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.fg = c.colors.tabs.selected.odd.fg
# Background color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.bg = c.colors.tabs.pinned.selected.even.bg
# Foreground color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.fg = c.colors.tabs.selected.odd.fg
# Background color for webpages if unset (or empty to use the theme's
# color).
#c.colors.webpage.bg = bg4

View file

@ -0,0 +1,4 @@
slack https://jopixel.slack.com/
git https://git.jopixel.cz/dashboard
jira https://jira.jopixel.cz/secure/Dashboard.jspa
support https://support.jopixel.cz/

View file

@ -0,0 +1,4 @@
set confirm_on_delete multiple
map <delete> delete
set preview_images_method kitty
set preview_images true

View file

@ -0,0 +1,253 @@
-----BEGIN PGP MESSAGE-----
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
aloY6Mzog4sHyqBo/1sbW6lb0wHdyfIpGos=
=4MYg
-----END PGP MESSAGE-----

0
dot_config/rofi/.keep Normal file
View file

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/mpDris2.service

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/pipewire-pulse.service

View file

@ -0,0 +1,10 @@
[Unit]
Description=Notification daemon
PartOf=hlwm.target
[Service]
Type=simple
ExecStart=/usr/bin/dunst
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=Greenclip
PartOf=hlwm.target
[Service]
Type=simple
ExecStart=/usr/bin/greenclip daemon
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1,5 @@
[Unit]
Description=Support services for hlwm session
#ConsistsOf=greenclip@%i.service panel-generator@%i.service panel-handler@%i.service dunst@%i.service
#Requires=greenclip@%i.service panel-generator@%i.service panel-handler@%i.service dunst@%i.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/dunst.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/greenclip.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/mconnect.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/panel-generator.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/panel-handler.service

View file

@ -0,0 +1 @@
{{.chezmoi.homeDir}}/.config/systemd/user/picom.service

View file

@ -0,0 +1,8 @@
[Unit]
Description=mconnect
[Service]
ExecStart=/usr/bin/mconnect
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1,2 @@
[Unit]
BindsTo=mpd.service

View file

@ -0,0 +1,14 @@
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target network-online.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/bin/nginx -c {{.chezmoi.homeDir}}/.config/nginx/nginx.conf -g 'pid ${RUNTIME_DIRECTORY}/nginx.pid;'
ExecReload=/usr/bin/nginx -c {{.chezmoi.homeDir}}/.config/nginx/nginx.conf -g 'pid ${RUNTIME_DIRECTORY}/nginx.pid;' -s reload
KillMode=mixed
RuntimeDirectory=nginx
[Install]
WantedBy=default.target

View file

@ -0,0 +1,12 @@
[Unit]
Description=HLWM statusbar
PartOf=hlwm.target
After=panel-handler.service
[Service]
Type=simple
ExecStartPre=/usr/bin/sleep 1
ExecStart={{.chezmoi.homeDir}}/.config/herbstluftwm/panel-generator
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=HLWM hook generator for statusbar
PartOf=hlwm.target
[Service]
Type=simple
ExecStart={{.chezmoi.homeDir}}/.config/herbstluftwm/panel-handler
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1,20 @@
# It's not recommended to modify this file in-place, because it
# will be overwritten during upgrades. If you want to customize,
# the best way is to use the "systemctl edit" command.
[Unit]
Description=The PHP %i FastCGI Process Manager
After=network.target
[Service]
Type=notify
; PIDFile=${RUNTIME_DIRECTORY}/php-fpm.pid
#ExecStart=/usr/bin/php-fpm%i --nodaemonize --fpm-config %t/php/fpm/php-fpm.conf -c ${CONFIGURATION_DIRECTORY} --pid ${RUNTIME_DIRECTORY}/php-fpm.pid --force-stderr
ExecStart=/usr/bin/php-fpm%i --nodaemonize --fpm-config %E/php/%i/fpm/php-fpm.conf -n -c {{.chezmoi.homeDir}}/.config/php/%i/php.ini --force-stderr
ExecReload=/bin/kill -USR2 $MAINPID
#RuntimeDirectory=php-fpm-%i
RuntimeDirectory=php$i-fpm
#ConfigurationDirectory=php/%i
[Install]
WantedBy=default.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=Picom
PartOf=hlwm.target
[Service]
Type=simple
ExecStart=/usr/bin/picom
[Install]
WantedBy=hlwm.target

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/wireplumber.service

View file

@ -0,0 +1 @@
/usr/lib/systemd/user/pipewire-pulse.socket

View file

@ -0,0 +1,9 @@
[Unit]
Description="wayland idle daemon"
Before=river.target
[Service]
ExecStart=/usr/bin/swayidle
[Install]
WantedBy=river.target

View file

@ -0,0 +1 @@
/dev/null

View file

@ -0,0 +1 @@
/dev/null

View file

@ -0,0 +1 @@
/dev/null

View file

@ -0,0 +1 @@
/dev/null

View file

@ -0,0 +1 @@
/dev/null

0
dot_config/zsh/.keep Normal file
View file

View file

@ -0,0 +1,28 @@
alias hosts="sudo vim /etc/hosts"
alias vi=nvim
alias vim=nvim
alias kid3=kid3-qt
alias torr=transmission-cli
alias grevert="git checkout --"
alias gst='git status -s'
alias gp='git push'
alias gd='git diff'
alias gup='git pull --rebase'
alias gupv='git pull --rebase -v'
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
alias wine32='WINEARCH=win32 WINEPREFIX=/home/sogun/.wine32 wine'
alias lg=lazygit
alias catdb='git --no-pager show HEAD:www/app/config/database.cfg.d/connections.cfg.d/basic.cfg.php'
alias scur='systemctl --user restart'
alias scus='systemctl --user stop'
alias scust='systemctl --user status'
alias slog='journalctl --user -u'
# vim: ft=zsh

View file

@ -0,0 +1,25 @@
pomerge() {
name="$1"
lang="${2:-cs_CZ.UTF-8}"
git_root="$(git worktree list --porcelain | awk 'NR == 1 {print $2; exit}')"
app_po="${git_root}/www/app/translate/gettext/$lang/LC_MESSAGES/$name.po"
new_po="${git_root}/www/userdata/locale/${name}_new.po"
[[ -d "$(dirname "$app_po")" ]] || mkdir -p "$(dirname "$app_po")"
[[ -e "$new_po" ]] || { echo "$new_po does not exist" ; return 1 ;}
if ! [[ -e "$app_po" ]]
then
cp -v "$new_po" "$app_po"
return
fi
msgcat --use-first --no-location --no-wrap "$app_po" "$new_po"
}
pocompile() {
name="$1"
lang="${2:-cs_CZ.UTF-8}"
git_root="$(git worktree list --porcelain | awk 'NR == 1 {print $2; exit}')"
app_po="${git_root}/www/app/translate/gettext/$lang/LC_MESSAGES/$name.po"
[[ -e "$app_po" ]] || { echo "$app_po does not exists"; return 1; }
msgfmt -o "${app_po%po}mo" "$app_po"
}

38
dot_gitconfig Normal file
View file

@ -0,0 +1,38 @@
[user]
name = Vladimír Dudr
email = vladimir@tango-dj.cz
[http "https://gopkg.in"]
followRedirects = true
[gui]
spellingdictionary = none
[color]
ui = auto
[pull]
rebase = true
[rebase]
autostash = false
[core]
pager = delta
[delta]
side-by-side = true
;file-decoration-style = none
file-style = normal
syntax-theme = gruvbox
[interactive]
diffFilter = delta --color-only
[diff]
algorithm = patience
[sendemail]
smtpserver = /usr/bin/msmtp
smtpserveroption = -a
smtpserveroption = tdj

66
dot_mbsyncrc Normal file
View file

@ -0,0 +1,66 @@
IMAPAccount gmail
Host imap.gmail.com
User vlada.dudr@gmail.com
SSLType IMAPS
PassCmd "pass show mail/gmail"
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore gmail-remote
Account gmail
MaildirStore gmail-local
# The trailing "/" is important
Path ~/Mail/vlada.dudr@gmail.com/
Inbox ~/Mail/vlada.dudr@gmail.com/INBOX
SubFolders verbatim
# Channel gmail-mail
# Far :gmail-remote:"[Gmail]/All Mail"
# Near :gmail-local:Gmail
# Sync All
# SyncState *
# Create Both
# Expunge Both
# Channel gmail-trash
# Far :gmail-remote:"[Gmail]/Trash"
# Near :gmail-local:Gmail-trash
# Sync All
# SyncState *
# Create Both
# Expunge Both
Group gmail
Channel gmail-mail
Channel gmail-trash
IMAPAccount tdj
Host mail.tango-dj.cz
User vladimir@tango-dj.cz
PassCmd "pass show mail/tdj"
SSLType STARTTLS
SSLVersions TLSv1.2
IMAPStore tdj-remote
Account tdj
MaildirStore tdj-local
# The trailing "/" is important
Path ~/Mail/vladimir@tango-dj.cz/
Inbox ~/Mail/vladimir@tango-dj.cz/INBOX
SubFolders verbatim
AltMap yes
#Flatten "."
Channel tdj
Far :tdj-remote:
Near :tdj-local:
Create Both
Sync All
# Save the synchronization state files in the relevant directory
SyncState *
Patterns *
Create Both
Expunge Both
# vim: ft=conf

105
dot_zshrc Normal file
View file

@ -0,0 +1,105 @@
# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="gentoo"
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git z sudo docker laya-repo direnv fzf timer)
source $ZSH/oh-my-zsh.sh
# User configuration
export GOPATH=~/go
export PATH=$PATH:~/bin:~/.cargo/bin:$GOPATH/bin
#export MANPAGER="bat -p -l manpage"
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
GPG_TTY=$(tty)
export GPG_TTY
for cf in ~/.config/zsh/* ; do
source $cf
done
#export LESS=-i
export EDITOR=nvim
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
#source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
if [[ -z "$MC_SID" ]]
then
RPS1='%{$fg_bold[red]%}%?%{$reset_color%}'
else
# in mc
function __git_prompt_git() {
return 1
}
fi

49
private_dot_msmtprc Normal file
View file

@ -0,0 +1,49 @@
defaults
port 587
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile ~/.log/msmtp.log
account gmail
host smtp.gmail.com
from vlada.dudr@gmail.com
auth on
user vlada.dudr@gmail.com
passwordeval "pass show mail/gmail"
account jopixel : gmail
from dudr@jopixel.cz
user dudr@jopixel.cz
passwordeval "pass show jopixel/mail"
account default : gmail
account smartweb
host smtp.smartweb.cz
auth on
user vladimir
passwordeval "pass show mail/smartweb"
from support@smartweb.cz
account e4you : smartweb
from support@e4you.cz
account vd-e4 : smartweb
from vladimir.dudr@e4you.cz
account tdj
host mail.tango-dj.cz
auth on
user vladimir@tango-dj.cz
passwordeval "pass show mail/tdj"
from vladimir@tango-dj.cz
account virtii
#host mail.virtii.com
host mail.togle.cz
auth on
user vladimir@virtii.com
passwordeval "pass show togle/mail"
from vladimir@virtii.com
tls_trust_file
tls_certcheck off

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