diff --git a/dot_local/share/chezmoi/dot_git/COMMIT_EDITMSG b/dot_local/share/chezmoi/dot_git/COMMIT_EDITMSG new file mode 100644 index 0000000..ada253c --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/COMMIT_EDITMSG @@ -0,0 +1,21 @@ +Update dot_config/polybar/custom_modules.ini +Add dot_config/polybar/scripts/executable_beep.sh +Add dot_config/polybar/scripts/executable_colors.sh +Add dot_config/polybar/scripts/executable_colors.sh.base +Add dot_config/polybar/scripts/executable_launch_polybar +Add dot_config/polybar/scripts/executable_michurin +Add dot_config/polybar/scripts/executable_polybar_bluetooth_speaker.sh +Add dot_config/polybar/scripts/executable_polybar_custom_time.sh +Add dot_config/polybar/scripts/executable_polybar_dunst_indicator.sh +Add dot_config/polybar/scripts/executable_polybar_healthbar.sh +Add dot_config/polybar/scripts/executable_polybar_michurin.py +Add dot_config/polybar/scripts/executable_polybar_net_indicator.sh +Add dot_config/polybar/scripts/executable_polybar_net_speed.sh +Add dot_config/polybar/scripts/executable_polybar_redshift_indicator.sh +Add dot_config/polybar/scripts/executable_polybar_wifibar.sh +Add dot_config/polybar/scripts/executable_refresh_wpg_wallpapers +Add dot_config/polybar/scripts/executable_regkernel +Add dot_config/polybar/scripts/executable_setbg +Add dot_config/polybar/scripts/executable_theme.sh +Add dot_config/polybar/scripts/executable_transmission_indicator.sh +Add dot_config/polybar/scripts/executable_tresorit_indicator.sh diff --git a/dot_local/share/chezmoi/dot_git/HEAD b/dot_local/share/chezmoi/dot_git/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/dot_local/share/chezmoi/dot_git/branches/.keep b/dot_local/share/chezmoi/dot_git/branches/.keep new file mode 100644 index 0000000..e69de29 diff --git a/dot_local/share/chezmoi/dot_git/config b/dot_local/share/chezmoi/dot_git/config new file mode 100644 index 0000000..2cce15b --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/config @@ -0,0 +1,13 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true +[submodule] + active = . +[remote "origin"] + url = git@github.com:mrdev023/dotfiles.git + fetch = +refs/heads/*:refs/remotes/origin/* +[branch "master"] + remote = origin + merge = refs/heads/master diff --git a/dot_local/share/chezmoi/dot_git/description b/dot_local/share/chezmoi/dot_git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_applypatch-msg.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_commit-msg.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_fsmonitor-watchman.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_fsmonitor-watchman.sample new file mode 100644 index 0000000..14ed0aa --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_fsmonitor-watchman.sample @@ -0,0 +1,173 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use IPC::Open2; + +# An example hook script to integrate Watchman +# (https://facebook.github.io/watchman/) with git to speed up detecting +# new and modified files. +# +# The hook is passed a version (currently 2) and last update token +# formatted as a string and outputs to stdout a new update token and +# all files that have been modified since the update token. Paths must +# be relative to the root of the working tree and separated by a single NUL. +# +# To enable this hook, rename this file to "query-watchman" and set +# 'git config core.fsmonitor .git/hooks/query-watchman' +# +my ($version, $last_update_token) = @ARGV; + +# Uncomment for debugging +# print STDERR "$0 $version $last_update_token\n"; + +# Check the hook interface version +if ($version ne 2) { + die "Unsupported query-fsmonitor hook version '$version'.\n" . + "Falling back to scanning...\n"; +} + +my $git_work_tree = get_working_dir(); + +my $retry = 1; + +my $json_pkg; +eval { + require JSON::XS; + $json_pkg = "JSON::XS"; + 1; +} or do { + require JSON::PP; + $json_pkg = "JSON::PP"; +}; + +launch_watchman(); + +sub launch_watchman { + my $o = watchman_query(); + if (is_work_tree_watched($o)) { + output_result($o->{clock}, @{$o->{files}}); + } +} + +sub output_result { + my ($clockid, @files) = @_; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # binmode $fh, ":utf8"; + # print $fh "$clockid\n@files\n"; + # close $fh; + + binmode STDOUT, ":utf8"; + print $clockid; + print "\0"; + local $, = "\0"; + print @files; +} + +sub watchman_clock { + my $response = qx/watchman clock "$git_work_tree"/; + die "Failed to get clock id on '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + + return $json_pkg->new->utf8->decode($response); +} + +sub watchman_query { + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') + or die "open2() failed: $!\n" . + "Falling back to scanning...\n"; + + # In the query expression below we're asking for names of files that + # changed since $last_update_token but not from the .git folder. + # + # To accomplish this, we're using the "since" generator to use the + # recency index to select candidate nodes and "fields" to limit the + # output to file names only. Then we're using the "expression" term to + # further constrain the results. + if (substr($last_update_token, 0, 1) eq "c") { + $last_update_token = "\"$last_update_token\""; + } + my $query = <<" END"; + ["query", "$git_work_tree", { + "since": $last_update_token, + "fields": ["name"], + "expression": ["not", ["dirname", ".git"]] + }] + END + + # Uncomment for debugging the watchman query + # open (my $fh, ">", ".git/watchman-query.json"); + # print $fh $query; + # close $fh; + + print CHLD_IN $query; + close CHLD_IN; + my $response = do {local $/; }; + + # Uncomment for debugging the watch response + # open ($fh, ">", ".git/watchman-response.json"); + # print $fh $response; + # close $fh; + + die "Watchman: command returned no output.\n" . + "Falling back to scanning...\n" if $response eq ""; + die "Watchman: command returned invalid output: $response\n" . + "Falling back to scanning...\n" unless $response =~ /^\{/; + + return $json_pkg->new->utf8->decode($response); +} + +sub is_work_tree_watched { + my ($output) = @_; + my $error = $output->{error}; + if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { + $retry--; + my $response = qx/watchman watch "$git_work_tree"/; + die "Failed to make watchman watch '$git_work_tree'.\n" . + "Falling back to scanning...\n" if $? != 0; + $output = $json_pkg->new->utf8->decode($response); + $error = $output->{error}; + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + # Uncomment for debugging watchman output + # open (my $fh, ">", ".git/watchman-output.out"); + # close $fh; + + # Watchman will always return all files on the first query so + # return the fast "everything is dirty" flag to git and do the + # Watchman query just to get it over with now so we won't pay + # the cost in git to look up each individual file. + my $o = watchman_clock(); + $error = $output->{error}; + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + output_result($o->{clock}, ("/")); + $last_update_token = $o->{clock}; + + eval { launch_watchman() }; + return 0; + } + + die "Watchman: $error.\n" . + "Falling back to scanning...\n" if $error; + + return 1; +} + +sub get_working_dir { + my $working_dir; + if ($^O =~ 'msys' || $^O =~ 'cygwin') { + $working_dir = Win32::GetCwd(); + $working_dir =~ tr/\\/\//; + } else { + require Cwd; + $working_dir = Cwd::cwd(); + } + + return $working_dir; +} diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_post-update.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-applypatch.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-commit.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-commit.sample new file mode 100644 index 0000000..e144712 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-merge-commit.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-push.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-rebase.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_pre-receive.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_prepare-commit-msg.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/dot_local/share/chezmoi/dot_git/hooks/executable_push-to-checkout.sample b/dot_local/share/chezmoi/dot_git/hooks/executable_push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/hooks/executable_push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/dot_local/share/chezmoi/dot_git/index b/dot_local/share/chezmoi/dot_git/index new file mode 100644 index 0000000..fabd296 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/index differ diff --git a/dot_local/share/chezmoi/dot_git/info/exclude b/dot_local/share/chezmoi/dot_git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/dot_local/share/chezmoi/dot_git/logs/HEAD b/dot_local/share/chezmoi/dot_git/logs/HEAD new file mode 100644 index 0000000..97aa1a2 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/logs/HEAD @@ -0,0 +1,8 @@ +0000000000000000000000000000000000000000 7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 Florian RICHER 1651319621 +0200 clone: from https://github.com/mrdev023/dotfiles.git +7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 8ff142bc1f3d033da41e5ce965327331c2d888a5 Florian RICHER 1651867774 +0200 commit: Update dot_doom.d/config.el +8ff142bc1f3d033da41e5ce965327331c2d888a5 2e78190d74d3d4bd6e5b1fab1df49761b14b0415 Florian RICHER 1651868221 +0200 commit: Begin implement arch autoconf +2e78190d74d3d4bd6e5b1fab1df49761b14b0415 b9eb849018bc01b971b69c5bc621a0aa4083f826 Florian RICHER 1651868810 +0200 commit: Add dot_config/dunst/dunstrc +b9eb849018bc01b971b69c5bc621a0aa4083f826 0e0387e99b4212b1e056a4eae1f9f0b2973ce1af Florian RICHER 1651869325 +0200 commit: Update dot_config/i3/config +0e0387e99b4212b1e056a4eae1f9f0b2973ce1af 4ac586098b5bef99a583875f334cef3cc83f2514 Florian RICHER 1651869419 +0200 commit: Remove dot_config/i3/i3blocks.conf +4ac586098b5bef99a583875f334cef3cc83f2514 134cd852d406b2976d4525b5f90427ffdbf26fcf Florian RICHER 1651869596 +0200 commit: Add dot_config/polybar/colors.ini +134cd852d406b2976d4525b5f90427ffdbf26fcf 3ff2e6e742ef911e8930f41d42956c3f74ad8b90 Florian RICHER 1651870524 +0200 commit: Update dot_config/polybar/custom_modules.ini diff --git a/dot_local/share/chezmoi/dot_git/logs/refs/heads/master b/dot_local/share/chezmoi/dot_git/logs/refs/heads/master new file mode 100644 index 0000000..97aa1a2 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/logs/refs/heads/master @@ -0,0 +1,8 @@ +0000000000000000000000000000000000000000 7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 Florian RICHER 1651319621 +0200 clone: from https://github.com/mrdev023/dotfiles.git +7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 8ff142bc1f3d033da41e5ce965327331c2d888a5 Florian RICHER 1651867774 +0200 commit: Update dot_doom.d/config.el +8ff142bc1f3d033da41e5ce965327331c2d888a5 2e78190d74d3d4bd6e5b1fab1df49761b14b0415 Florian RICHER 1651868221 +0200 commit: Begin implement arch autoconf +2e78190d74d3d4bd6e5b1fab1df49761b14b0415 b9eb849018bc01b971b69c5bc621a0aa4083f826 Florian RICHER 1651868810 +0200 commit: Add dot_config/dunst/dunstrc +b9eb849018bc01b971b69c5bc621a0aa4083f826 0e0387e99b4212b1e056a4eae1f9f0b2973ce1af Florian RICHER 1651869325 +0200 commit: Update dot_config/i3/config +0e0387e99b4212b1e056a4eae1f9f0b2973ce1af 4ac586098b5bef99a583875f334cef3cc83f2514 Florian RICHER 1651869419 +0200 commit: Remove dot_config/i3/i3blocks.conf +4ac586098b5bef99a583875f334cef3cc83f2514 134cd852d406b2976d4525b5f90427ffdbf26fcf Florian RICHER 1651869596 +0200 commit: Add dot_config/polybar/colors.ini +134cd852d406b2976d4525b5f90427ffdbf26fcf 3ff2e6e742ef911e8930f41d42956c3f74ad8b90 Florian RICHER 1651870524 +0200 commit: Update dot_config/polybar/custom_modules.ini diff --git a/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/HEAD b/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/HEAD new file mode 100644 index 0000000..ac83190 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/HEAD @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 Florian RICHER 1651319621 +0200 clone: from https://github.com/mrdev023/dotfiles.git diff --git a/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/master b/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/master new file mode 100644 index 0000000..69018f1 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/logs/refs/remotes/origin/master @@ -0,0 +1,7 @@ +7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 8ff142bc1f3d033da41e5ce965327331c2d888a5 Florian RICHER 1651867819 +0200 update by push +8ff142bc1f3d033da41e5ce965327331c2d888a5 2e78190d74d3d4bd6e5b1fab1df49761b14b0415 Florian RICHER 1651868227 +0200 update by push +2e78190d74d3d4bd6e5b1fab1df49761b14b0415 b9eb849018bc01b971b69c5bc621a0aa4083f826 Florian RICHER 1651868812 +0200 update by push +b9eb849018bc01b971b69c5bc621a0aa4083f826 0e0387e99b4212b1e056a4eae1f9f0b2973ce1af Florian RICHER 1651869328 +0200 update by push +0e0387e99b4212b1e056a4eae1f9f0b2973ce1af 4ac586098b5bef99a583875f334cef3cc83f2514 Florian RICHER 1651869421 +0200 update by push +4ac586098b5bef99a583875f334cef3cc83f2514 134cd852d406b2976d4525b5f90427ffdbf26fcf Florian RICHER 1651869598 +0200 update by push +134cd852d406b2976d4525b5f90427ffdbf26fcf 3ff2e6e742ef911e8930f41d42956c3f74ad8b90 Florian RICHER 1651870525 +0200 update by push diff --git a/dot_local/share/chezmoi/dot_git/objects/01/readonly_3ab43720db7824b5808622cb8f60eafa62997e b/dot_local/share/chezmoi/dot_git/objects/01/readonly_3ab43720db7824b5808622cb8f60eafa62997e new file mode 100644 index 0000000..bbf6684 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/01/readonly_3ab43720db7824b5808622cb8f60eafa62997e differ diff --git a/dot_local/share/chezmoi/dot_git/objects/04/readonly_1032d847e5744500cf70041bde2bc98e44c01f b/dot_local/share/chezmoi/dot_git/objects/04/readonly_1032d847e5744500cf70041bde2bc98e44c01f new file mode 100644 index 0000000..0ad2485 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/04/readonly_1032d847e5744500cf70041bde2bc98e44c01f differ diff --git a/dot_local/share/chezmoi/dot_git/objects/04/readonly_b00fb8f1db3bd5b7507b53b70778f340c4b57c b/dot_local/share/chezmoi/dot_git/objects/04/readonly_b00fb8f1db3bd5b7507b53b70778f340c4b57c new file mode 100644 index 0000000..23898b0 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/04/readonly_b00fb8f1db3bd5b7507b53b70778f340c4b57c differ diff --git a/dot_local/share/chezmoi/dot_git/objects/08/readonly_2d2590b955d066eba305e58bbe5c52f1c8f88d b/dot_local/share/chezmoi/dot_git/objects/08/readonly_2d2590b955d066eba305e58bbe5c52f1c8f88d new file mode 100644 index 0000000..bf640d0 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/08/readonly_2d2590b955d066eba305e58bbe5c52f1c8f88d differ diff --git a/dot_local/share/chezmoi/dot_git/objects/0b/readonly_f2afaa21610615170b5c6d35636cc92bcdb6c3 b/dot_local/share/chezmoi/dot_git/objects/0b/readonly_f2afaa21610615170b5c6d35636cc92bcdb6c3 new file mode 100644 index 0000000..796b582 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/0b/readonly_f2afaa21610615170b5c6d35636cc92bcdb6c3 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/0c/readonly_f3271bd3f15107df353dcecc38bfa080e38b78 b/dot_local/share/chezmoi/dot_git/objects/0c/readonly_f3271bd3f15107df353dcecc38bfa080e38b78 new file mode 100644 index 0000000..71f2832 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/0c/readonly_f3271bd3f15107df353dcecc38bfa080e38b78 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/0e/readonly_0387e99b4212b1e056a4eae1f9f0b2973ce1af b/dot_local/share/chezmoi/dot_git/objects/0e/readonly_0387e99b4212b1e056a4eae1f9f0b2973ce1af new file mode 100644 index 0000000..566f60a Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/0e/readonly_0387e99b4212b1e056a4eae1f9f0b2973ce1af differ diff --git a/dot_local/share/chezmoi/dot_git/objects/0e/readonly_b86a0ae992a8634bfffdc88c80b8c70eaa20ef b/dot_local/share/chezmoi/dot_git/objects/0e/readonly_b86a0ae992a8634bfffdc88c80b8c70eaa20ef new file mode 100644 index 0000000..d7acb4e Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/0e/readonly_b86a0ae992a8634bfffdc88c80b8c70eaa20ef differ diff --git a/dot_local/share/chezmoi/dot_git/objects/10/readonly_2e31b2e7ef68a332422899aa8f3fbac71e305b b/dot_local/share/chezmoi/dot_git/objects/10/readonly_2e31b2e7ef68a332422899aa8f3fbac71e305b new file mode 100644 index 0000000..5e10490 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/10/readonly_2e31b2e7ef68a332422899aa8f3fbac71e305b differ diff --git a/dot_local/share/chezmoi/dot_git/objects/12/readonly_221ee6029aa4ae9ca6ef067f23091a0a47cc2d b/dot_local/share/chezmoi/dot_git/objects/12/readonly_221ee6029aa4ae9ca6ef067f23091a0a47cc2d new file mode 100644 index 0000000..e0a74d4 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/12/readonly_221ee6029aa4ae9ca6ef067f23091a0a47cc2d differ diff --git a/dot_local/share/chezmoi/dot_git/objects/13/readonly_4cd852d406b2976d4525b5f90427ffdbf26fcf b/dot_local/share/chezmoi/dot_git/objects/13/readonly_4cd852d406b2976d4525b5f90427ffdbf26fcf new file mode 100644 index 0000000..e3873d0 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/13/readonly_4cd852d406b2976d4525b5f90427ffdbf26fcf differ diff --git a/dot_local/share/chezmoi/dot_git/objects/18/readonly_c81c8e7af7b2743ab9fb08abba54f783029103 b/dot_local/share/chezmoi/dot_git/objects/18/readonly_c81c8e7af7b2743ab9fb08abba54f783029103 new file mode 100644 index 0000000..a15d4d2 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/18/readonly_c81c8e7af7b2743ab9fb08abba54f783029103 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/1b/readonly_f93201b8403227cb90b5e9af12b25225785720 b/dot_local/share/chezmoi/dot_git/objects/1b/readonly_f93201b8403227cb90b5e9af12b25225785720 new file mode 100644 index 0000000..590ae50 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/1b/readonly_f93201b8403227cb90b5e9af12b25225785720 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/2d/readonly_0e4bb119971569f9af7394814ce4054521a125 b/dot_local/share/chezmoi/dot_git/objects/2d/readonly_0e4bb119971569f9af7394814ce4054521a125 new file mode 100644 index 0000000..40e070f Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/2d/readonly_0e4bb119971569f9af7394814ce4054521a125 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/2e/readonly_78190d74d3d4bd6e5b1fab1df49761b14b0415 b/dot_local/share/chezmoi/dot_git/objects/2e/readonly_78190d74d3d4bd6e5b1fab1df49761b14b0415 new file mode 100644 index 0000000..906b342 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/2e/readonly_78190d74d3d4bd6e5b1fab1df49761b14b0415 @@ -0,0 +1 @@ +xAj0E)f0M4!nsy$"r]'AAFhqԳdXd2÷up)q(hĉ-眷?R\ڲuSC˲6LG} E6Z=I-oc77Y`׬R^V9 \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/2e/readonly_9fcad22e24793ebae3b985659ef68744f7227c b/dot_local/share/chezmoi/dot_git/objects/2e/readonly_9fcad22e24793ebae3b985659ef68744f7227c new file mode 100644 index 0000000..5a9361d Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/2e/readonly_9fcad22e24793ebae3b985659ef68744f7227c differ diff --git a/dot_local/share/chezmoi/dot_git/objects/32/readonly_92266a28ce57516a2c9df0ad64c09ac65978d0 b/dot_local/share/chezmoi/dot_git/objects/32/readonly_92266a28ce57516a2c9df0ad64c09ac65978d0 new file mode 100644 index 0000000..ce16513 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/32/readonly_92266a28ce57516a2c9df0ad64c09ac65978d0 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/36/readonly_913b12a67246092190fe2acfe864266087bd5d b/dot_local/share/chezmoi/dot_git/objects/36/readonly_913b12a67246092190fe2acfe864266087bd5d new file mode 100644 index 0000000..494e5c8 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/36/readonly_913b12a67246092190fe2acfe864266087bd5d differ diff --git a/dot_local/share/chezmoi/dot_git/objects/3f/readonly_f2e6e742ef911e8930f41d42956c3f74ad8b90 b/dot_local/share/chezmoi/dot_git/objects/3f/readonly_f2e6e742ef911e8930f41d42956c3f74ad8b90 new file mode 100644 index 0000000..8ec196d Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/3f/readonly_f2e6e742ef911e8930f41d42956c3f74ad8b90 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/41/readonly_2a532cb63dad6cb0734a08d11d49a2ba67d524 b/dot_local/share/chezmoi/dot_git/objects/41/readonly_2a532cb63dad6cb0734a08d11d49a2ba67d524 new file mode 100644 index 0000000..8319d9d Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/41/readonly_2a532cb63dad6cb0734a08d11d49a2ba67d524 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/4a/readonly_c586098b5bef99a583875f334cef3cc83f2514 b/dot_local/share/chezmoi/dot_git/objects/4a/readonly_c586098b5bef99a583875f334cef3cc83f2514 new file mode 100644 index 0000000..03179f1 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/4a/readonly_c586098b5bef99a583875f334cef3cc83f2514 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/52/readonly_ffe2010431b30ca8c11ce2e1427d9bf261c0fb b/dot_local/share/chezmoi/dot_git/objects/52/readonly_ffe2010431b30ca8c11ce2e1427d9bf261c0fb new file mode 100644 index 0000000..76c2ea5 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/52/readonly_ffe2010431b30ca8c11ce2e1427d9bf261c0fb differ diff --git a/dot_local/share/chezmoi/dot_git/objects/5f/readonly_ca07a0e630cf19221f84d3d8a04a44feb09315 b/dot_local/share/chezmoi/dot_git/objects/5f/readonly_ca07a0e630cf19221f84d3d8a04a44feb09315 new file mode 100644 index 0000000..abfed6f Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/5f/readonly_ca07a0e630cf19221f84d3d8a04a44feb09315 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/5f/readonly_d5e7086377cdf5a081b85d19ae228dcd32ebfe b/dot_local/share/chezmoi/dot_git/objects/5f/readonly_d5e7086377cdf5a081b85d19ae228dcd32ebfe new file mode 100644 index 0000000..3b522eb --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/5f/readonly_d5e7086377cdf5a081b85d19ae228dcd32ebfe @@ -0,0 +1 @@ +x}J1N:]Y,D鈈HMHdR*|Z9߽0KmhP МFAY:¨^7SQ MSۻGx4[,(W}b\QYu4 [2 ;| Dt6ęuQd_Z ow p]@1 y˛CUA. 9Dd{U^$(fshŪuI (:Q\9؅?": |c \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/61/readonly_0908f4b9e47ba3fce0a4d66b8a9ba43f68ddc2 b/dot_local/share/chezmoi/dot_git/objects/61/readonly_0908f4b9e47ba3fce0a4d66b8a9ba43f68ddc2 new file mode 100644 index 0000000..48c8d84 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/61/readonly_0908f4b9e47ba3fce0a4d66b8a9ba43f68ddc2 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/64/readonly_565f4319a091a7a9586e59db25af81c4d78021 b/dot_local/share/chezmoi/dot_git/objects/64/readonly_565f4319a091a7a9586e59db25af81c4d78021 new file mode 100644 index 0000000..3d0af44 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/64/readonly_565f4319a091a7a9586e59db25af81c4d78021 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/64/readonly_833fb7e35abcbc3195f7b5a524f64c860b7509 b/dot_local/share/chezmoi/dot_git/objects/64/readonly_833fb7e35abcbc3195f7b5a524f64c860b7509 new file mode 100644 index 0000000..40b9a34 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/64/readonly_833fb7e35abcbc3195f7b5a524f64c860b7509 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/68/readonly_768f79de279124111c82514847bff648524bf1 b/dot_local/share/chezmoi/dot_git/objects/68/readonly_768f79de279124111c82514847bff648524bf1 new file mode 100644 index 0000000..a8c33b1 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/68/readonly_768f79de279124111c82514847bff648524bf1 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/69/readonly_86a2d22590ce24e2bb1796d504135ed2d31c13 b/dot_local/share/chezmoi/dot_git/objects/69/readonly_86a2d22590ce24e2bb1796d504135ed2d31c13 new file mode 100644 index 0000000..052dfd0 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/69/readonly_86a2d22590ce24e2bb1796d504135ed2d31c13 @@ -0,0 +1,2 @@ +xUj0D{~֖ `f4Kc(9I#S9$JN(\μYH.j8 +% 2|B#%tI=y<;+k%_(OaO0D'UiM^ȇb^}j0U?|?U'^4oz!%ߖ|7M,<BOshK27l\ߍڳq]x}ԻIM%^M \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/70/readonly_766eb54fef8b743cff3fda9e7b674feef3eec3 b/dot_local/share/chezmoi/dot_git/objects/70/readonly_766eb54fef8b743cff3fda9e7b674feef3eec3 new file mode 100644 index 0000000..e37e47c Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/70/readonly_766eb54fef8b743cff3fda9e7b674feef3eec3 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/71/readonly_22cca1d47c24445f06bd484c446dfa8c5a9317 b/dot_local/share/chezmoi/dot_git/objects/71/readonly_22cca1d47c24445f06bd484c446dfa8c5a9317 new file mode 100644 index 0000000..166fb5d Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/71/readonly_22cca1d47c24445f06bd484c446dfa8c5a9317 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/73/readonly_82aa0e79e70927d07ec2113bcce54cfa20b61a b/dot_local/share/chezmoi/dot_git/objects/73/readonly_82aa0e79e70927d07ec2113bcce54cfa20b61a new file mode 100644 index 0000000..484f507 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/73/readonly_82aa0e79e70927d07ec2113bcce54cfa20b61a differ diff --git a/dot_local/share/chezmoi/dot_git/objects/78/readonly_3d5ec2cf7b871386a2f68addf36434b2af3788 b/dot_local/share/chezmoi/dot_git/objects/78/readonly_3d5ec2cf7b871386a2f68addf36434b2af3788 new file mode 100644 index 0000000..213c490 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/78/readonly_3d5ec2cf7b871386a2f68addf36434b2af3788 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/79/readonly_7ca657b79dd863d0c80168fd22049cf0a3c339 b/dot_local/share/chezmoi/dot_git/objects/79/readonly_7ca657b79dd863d0c80168fd22049cf0a3c339 new file mode 100644 index 0000000..abbf07b Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/79/readonly_7ca657b79dd863d0c80168fd22049cf0a3c339 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/7c/readonly_c5f4b334bbc4ddab8d2a1e7786533431d3d4da b/dot_local/share/chezmoi/dot_git/objects/7c/readonly_c5f4b334bbc4ddab8d2a1e7786533431d3d4da new file mode 100644 index 0000000..731e4a6 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/7c/readonly_c5f4b334bbc4ddab8d2a1e7786533431d3d4da differ diff --git a/dot_local/share/chezmoi/dot_git/objects/8f/readonly_f142bc1f3d033da41e5ce965327331c2d888a5 b/dot_local/share/chezmoi/dot_git/objects/8f/readonly_f142bc1f3d033da41e5ce965327331c2d888a5 new file mode 100644 index 0000000..030e19f Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/8f/readonly_f142bc1f3d033da41e5ce965327331c2d888a5 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/90/readonly_4341c2cd5cca7f1a9b5c97b826004cb8e75639 b/dot_local/share/chezmoi/dot_git/objects/90/readonly_4341c2cd5cca7f1a9b5c97b826004cb8e75639 new file mode 100644 index 0000000..225f18a Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/90/readonly_4341c2cd5cca7f1a9b5c97b826004cb8e75639 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/90/readonly_82f506faceb4d67594db33c0391f5aa0a0684a b/dot_local/share/chezmoi/dot_git/objects/90/readonly_82f506faceb4d67594db33c0391f5aa0a0684a new file mode 100644 index 0000000..52bf1f9 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/90/readonly_82f506faceb4d67594db33c0391f5aa0a0684a @@ -0,0 +1,2 @@ +x]Q0 aw +@<1ds1NJצЪjxBKu'Igm3VN2ؓFd%c|ze퓽p6e~!0K;۝YaԀ&I & \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/a1/readonly_6924a4eab5ccad660f630f7b0b584ad1c3c0d4 b/dot_local/share/chezmoi/dot_git/objects/a1/readonly_6924a4eab5ccad660f630f7b0b584ad1c3c0d4 new file mode 100644 index 0000000..16c25a3 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/a1/readonly_6924a4eab5ccad660f630f7b0b584ad1c3c0d4 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/a1/readonly_72d7a1ecd18f8090c21e9c0fe0c98d7bd27186 b/dot_local/share/chezmoi/dot_git/objects/a1/readonly_72d7a1ecd18f8090c21e9c0fe0c98d7bd27186 new file mode 100644 index 0000000..96b9979 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/a1/readonly_72d7a1ecd18f8090c21e9c0fe0c98d7bd27186 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/a3/readonly_421ffee02165a37a3e539d19074d839c5ff330 b/dot_local/share/chezmoi/dot_git/objects/a3/readonly_421ffee02165a37a3e539d19074d839c5ff330 new file mode 100644 index 0000000..ec6c386 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/a3/readonly_421ffee02165a37a3e539d19074d839c5ff330 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/aa/readonly_ad7db08e248390fac854c7a1a497f6b579ecdd b/dot_local/share/chezmoi/dot_git/objects/aa/readonly_ad7db08e248390fac854c7a1a497f6b579ecdd new file mode 100644 index 0000000..2915fa2 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/aa/readonly_ad7db08e248390fac854c7a1a497f6b579ecdd differ diff --git a/dot_local/share/chezmoi/dot_git/objects/ac/readonly_f4ff3d1232711701f13b5fac6a8870c405fbe4 b/dot_local/share/chezmoi/dot_git/objects/ac/readonly_f4ff3d1232711701f13b5fac6a8870c405fbe4 new file mode 100644 index 0000000..58a966b Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/ac/readonly_f4ff3d1232711701f13b5fac6a8870c405fbe4 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/ae/readonly_e6b563d83b542bc35ce99a1e9f31d0842804d3 b/dot_local/share/chezmoi/dot_git/objects/ae/readonly_e6b563d83b542bc35ce99a1e9f31d0842804d3 new file mode 100644 index 0000000..089be94 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/ae/readonly_e6b563d83b542bc35ce99a1e9f31d0842804d3 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/ae/readonly_fd179248fb6ed57d71bce70296679d9cc54c77 b/dot_local/share/chezmoi/dot_git/objects/ae/readonly_fd179248fb6ed57d71bce70296679d9cc54c77 new file mode 100644 index 0000000..b24ab54 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/ae/readonly_fd179248fb6ed57d71bce70296679d9cc54c77 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/b0/readonly_8c22bdaa3ccfc7dbd0f915724858470bdea004 b/dot_local/share/chezmoi/dot_git/objects/b0/readonly_8c22bdaa3ccfc7dbd0f915724858470bdea004 new file mode 100644 index 0000000..22d4199 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/b0/readonly_8c22bdaa3ccfc7dbd0f915724858470bdea004 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/b1/readonly_ec775d00ca91c5c8d3e08b5393429b20e3d01d b/dot_local/share/chezmoi/dot_git/objects/b1/readonly_ec775d00ca91c5c8d3e08b5393429b20e3d01d new file mode 100644 index 0000000..26f4485 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/b1/readonly_ec775d00ca91c5c8d3e08b5393429b20e3d01d @@ -0,0 +1,2 @@ +xRMk1 ٿ =fLr4@i-kgDmn^Ovܤg==O #n?ܾ.tI,d(uh-%j#JزU;%b +Dˌ$4LU!whJiJaD1V)c1;H$mZ`^T_ (3?O-TQ^c!uʔJOS\S;|3Ue]Fܨ;> ƢWS-O-1Xްr>+U./3*J G^n [zt,mMue'#vObei6TZS4-w7P \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/b9/readonly_4bd0ec2b11d2122b8473f3b1897c29ca80e0d7 b/dot_local/share/chezmoi/dot_git/objects/b9/readonly_4bd0ec2b11d2122b8473f3b1897c29ca80e0d7 new file mode 100644 index 0000000..a493b3a --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/b9/readonly_4bd0ec2b11d2122b8473f3b1897c29ca80e0d7 @@ -0,0 +1,6 @@ +xAJ@vNL#Mv +]JV\I2iB83H / +5E +pxox9F}i"TGu8*3Ȩs13I) ͢4$ uD +pс BE!D\v0)q![:p l(Qlhyie[̱\m9 鴛̵vw@%sz],oMaH b&բӅ&'?r: 1m +.ID#\w!7[̕K~B+Hx}|^\6?kҗu) \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/b9/readonly_eb849018bc01b971b69c5bc621a0aa4083f826 b/dot_local/share/chezmoi/dot_git/objects/b9/readonly_eb849018bc01b971b69c5bc621a0aa4083f826 new file mode 100644 index 0000000..95c6c99 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/b9/readonly_eb849018bc01b971b69c5bc621a0aa4083f826 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/bb/readonly_cddfcbb458804ef39f275e86fe214b31dfa4a9 b/dot_local/share/chezmoi/dot_git/objects/bb/readonly_cddfcbb458804ef39f275e86fe214b31dfa4a9 new file mode 100644 index 0000000..8f0f549 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/bb/readonly_cddfcbb458804ef39f275e86fe214b31dfa4a9 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/c5/readonly_d9c5324315a5dfb6689cdbd58f8cb312db3c0c b/dot_local/share/chezmoi/dot_git/objects/c5/readonly_d9c5324315a5dfb6689cdbd58f8cb312db3c0c new file mode 100644 index 0000000..054a7e0 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/c5/readonly_d9c5324315a5dfb6689cdbd58f8cb312db3c0c differ diff --git a/dot_local/share/chezmoi/dot_git/objects/d0/readonly_43d05bf0ba8adff3829497013cab923329e05b b/dot_local/share/chezmoi/dot_git/objects/d0/readonly_43d05bf0ba8adff3829497013cab923329e05b new file mode 100644 index 0000000..5af86d6 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/d0/readonly_43d05bf0ba8adff3829497013cab923329e05b differ diff --git a/dot_local/share/chezmoi/dot_git/objects/db/readonly_a411df6590ab8ae2668e73e9f1c746ce68c018 b/dot_local/share/chezmoi/dot_git/objects/db/readonly_a411df6590ab8ae2668e73e9f1c746ce68c018 new file mode 100644 index 0000000..7796283 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/db/readonly_a411df6590ab8ae2668e73e9f1c746ce68c018 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/dd/readonly_e49fb90140640af2b6fb8840ee103f5bbff388 b/dot_local/share/chezmoi/dot_git/objects/dd/readonly_e49fb90140640af2b6fb8840ee103f5bbff388 new file mode 100644 index 0000000..0198f1a Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/dd/readonly_e49fb90140640af2b6fb8840ee103f5bbff388 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/df/readonly_1718898fa193577f8fac722d9b6cce3ac79f40 b/dot_local/share/chezmoi/dot_git/objects/df/readonly_1718898fa193577f8fac722d9b6cce3ac79f40 new file mode 100644 index 0000000..a9981bb Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/df/readonly_1718898fa193577f8fac722d9b6cce3ac79f40 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/e1/readonly_428317488b645c90ba65c5ac98cdad5d0725af b/dot_local/share/chezmoi/dot_git/objects/e1/readonly_428317488b645c90ba65c5ac98cdad5d0725af new file mode 100644 index 0000000..691f276 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/e1/readonly_428317488b645c90ba65c5ac98cdad5d0725af differ diff --git a/dot_local/share/chezmoi/dot_git/objects/e1/readonly_f45064e3074cde9b28542012c76b4062f004d7 b/dot_local/share/chezmoi/dot_git/objects/e1/readonly_f45064e3074cde9b28542012c76b4062f004d7 new file mode 100644 index 0000000..02374cf Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/e1/readonly_f45064e3074cde9b28542012c76b4062f004d7 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/e7/readonly_ce4bafc2a33bbea582d114065b619a67319a87 b/dot_local/share/chezmoi/dot_git/objects/e7/readonly_ce4bafc2a33bbea582d114065b619a67319a87 new file mode 100644 index 0000000..1aff0de --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/objects/e7/readonly_ce4bafc2a33bbea582d114065b619a67319a87 @@ -0,0 +1,2 @@ +xEMn0}H@E@% +M@X/F}izJy ߾BNܾP%vݻTJ^Qy-ut8ޗ)B:`Aĸ/<uoRz3vݖR5fX7嚞<*n ?3Z9Tj.')0ȹcmD7;Wźd=ٹq \ No newline at end of file diff --git a/dot_local/share/chezmoi/dot_git/objects/e9/readonly_bf3adbcb5ea0c9ee8b4a8be7e46c2956341214 b/dot_local/share/chezmoi/dot_git/objects/e9/readonly_bf3adbcb5ea0c9ee8b4a8be7e46c2956341214 new file mode 100644 index 0000000..c5918ab Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/e9/readonly_bf3adbcb5ea0c9ee8b4a8be7e46c2956341214 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/ef/readonly_1c961589b59fd333b3ccd855841d30af3ea9ae b/dot_local/share/chezmoi/dot_git/objects/ef/readonly_1c961589b59fd333b3ccd855841d30af3ea9ae new file mode 100644 index 0000000..be11c02 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/ef/readonly_1c961589b59fd333b3ccd855841d30af3ea9ae differ diff --git a/dot_local/share/chezmoi/dot_git/objects/fb/readonly_d3155b092e7a60b11fc08aff9884f20508ca7f b/dot_local/share/chezmoi/dot_git/objects/fb/readonly_d3155b092e7a60b11fc08aff9884f20508ca7f new file mode 100644 index 0000000..2586cb4 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/fb/readonly_d3155b092e7a60b11fc08aff9884f20508ca7f differ diff --git a/dot_local/share/chezmoi/dot_git/objects/fe/readonly_03c1fe21fc1b5b52d803c8b22d1e8cf0cd8812 b/dot_local/share/chezmoi/dot_git/objects/fe/readonly_03c1fe21fc1b5b52d803c8b22d1e8cf0cd8812 new file mode 100644 index 0000000..af9ceb1 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/fe/readonly_03c1fe21fc1b5b52d803c8b22d1e8cf0cd8812 differ diff --git a/dot_local/share/chezmoi/dot_git/objects/info/.keep b/dot_local/share/chezmoi/dot_git/objects/info/.keep new file mode 100644 index 0000000..e69de29 diff --git a/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.idx b/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.idx new file mode 100644 index 0000000..04c5527 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.idx differ diff --git a/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.pack b/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.pack new file mode 100644 index 0000000..6a2bb83 Binary files /dev/null and b/dot_local/share/chezmoi/dot_git/objects/pack/readonly_pack-c5db3135bffc038e6ee259b1384d546d3b21a718.pack differ diff --git a/dot_local/share/chezmoi/dot_git/packed-refs b/dot_local/share/chezmoi/dot_git/packed-refs new file mode 100644 index 0000000..38f8662 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled fully-peeled sorted +7bb1eeb272c6b2db9b18cebf55a430a28e4740c7 refs/remotes/origin/master diff --git a/dot_local/share/chezmoi/dot_git/refs/heads/master b/dot_local/share/chezmoi/dot_git/refs/heads/master new file mode 100644 index 0000000..ec10902 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/refs/heads/master @@ -0,0 +1 @@ +3ff2e6e742ef911e8930f41d42956c3f74ad8b90 diff --git a/dot_local/share/chezmoi/dot_git/refs/remotes/origin/HEAD b/dot_local/share/chezmoi/dot_git/refs/remotes/origin/HEAD new file mode 100644 index 0000000..6efe28f --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/refs/remotes/origin/HEAD @@ -0,0 +1 @@ +ref: refs/remotes/origin/master diff --git a/dot_local/share/chezmoi/dot_git/refs/remotes/origin/master b/dot_local/share/chezmoi/dot_git/refs/remotes/origin/master new file mode 100644 index 0000000..ec10902 --- /dev/null +++ b/dot_local/share/chezmoi/dot_git/refs/remotes/origin/master @@ -0,0 +1 @@ +3ff2e6e742ef911e8930f41d42956c3f74ad8b90 diff --git a/dot_local/share/chezmoi/dot_git/refs/tags/.keep b/dot_local/share/chezmoi/dot_git/refs/tags/.keep new file mode 100644 index 0000000..e69de29 diff --git a/dot_local/share/chezmoi/literal_dot_config/alacritty/alacritty.yml b/dot_local/share/chezmoi/literal_dot_config/alacritty/alacritty.yml new file mode 100644 index 0000000..73458b6 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/alacritty/alacritty.yml @@ -0,0 +1,7 @@ +shell: + program: tmux +font: + normal: + family: FiraCode NF +window: + opacity: 0.5 # Require `picom -f &` in .xinitrc diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/error_handling.lua b/dot_local/share/chezmoi/literal_dot_config/awesome/error_handling.lua new file mode 100644 index 0000000..918a1ab --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/error_handling.lua @@ -0,0 +1,39 @@ +-- Notification library +local naughty = require("naughty") + +local function init(awesome) + -- {{{ Error handling + -- Check if awesome encountered an error during startup and fell back to + -- another config (This code will only ever execute for the fallback config) + if awesome.startup_errors then + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, there were errors during startup!", + text = awesome.startup_errors + }) + end + + -- Handle runtime errors after startup + do + local in_error = false + awesome.connect_signal("debug::error", function(err) + -- Make sure we don't go into an endless error loop + if in_error then + return + end + in_error = true + + naughty.notify({ + preset = naughty.config.presets.critical, + title = "Oops, an error happened!", + text = tostring(err) + }) + in_error = false + end) + end + -- }}} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/init.lua b/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/init.lua new file mode 100644 index 0000000..a0e8502 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/init.lua @@ -0,0 +1,10 @@ +local function bind(globalkeys, clientkeys, clientbuttons) + -- Media Control + globalkeys, clientkeys, clientbuttons = require('keymapping.mediacontrol').bind(globalkeys, clientkeys, clientbuttons) + + return globalkeys, clientkeys, clientbuttons +end + +return { + bind = bind +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/mediacontrol.lua b/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/mediacontrol.lua new file mode 100644 index 0000000..5b94b8d --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/keymapping/mediacontrol.lua @@ -0,0 +1,19 @@ +local awful = require("awful") +local gears = require("gears") + +local function bind(globalkeys, clientkeys, clientbuttons) + globalkeys = gears.table.join(globalkeys, + awful.key({ }, "XF86AudioPlay", function () awful.util.spawn_with_shell("playerctl play-pause") end), + awful.key({ }, "XF86AudioNext", function () awful.util.spawn_with_shell("playerctl next") end), + awful.key({ }, "XF86AudioPrev", function () awful.util.spawn_with_shell("playerctl previous") end), + awful.key({ }, "XF86AudioRaiseVolume", function () awful.util.spawn_with_shell("amixer -c 0 set Master 1dB+") end), + awful.key({ }, "XF86AudioLowerVolume", function () awful.util.spawn_with_shell("amixer -c 0 set Master 1dB-") end), + awful.key({ }, "XF86AudioMute", function () awful.util.spawn_with_shell("amixer -c 0 set Master toggle") end) + ) + + return globalkeys, clientkeys, clientbuttons +end + +return { + bind = bind +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/rc.lua b/dot_local/share/chezmoi/literal_dot_config/awesome/rc.lua new file mode 100644 index 0000000..3122fdb --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/rc.lua @@ -0,0 +1,602 @@ +-- If LuaRocks is installed, make sure that packages installed through it are +-- found (e.g. lgi). If LuaRocks is not installed, do nothing. +pcall(require, "luarocks.loader") + +-- Standard awesome library +local gears = require("gears") +local awful = require("awful") +require("awful.autofocus") +-- Widget and layout library +local wibox = require("wibox") +-- Theme handling library +local beautiful = require("beautiful") +local menubar = require("menubar") +local hotkeys_popup = require("awful.hotkeys_popup") +-- Enable hotkeys help widget for VIM and other apps +-- when client with a matching name is opened: +require("awful.hotkeys_popup.keys") +require("error_handling").init(awesome) + +-- {{{ Variable definitions +-- Themes define colours, icons, font and wallpapers. +beautiful.init(string.format("%s/.config/awesome/theme/theme.lua", os.getenv("HOME"))) + +-- This is used later as the default terminal and editor to run. +terminal = "alacritty" +editor = os.getenv("EDITOR") or "vim" +editor_cmd = terminal .. " -e " .. editor + +-- Default modkey. +-- Usually, Mod4 is the key with a logo between Control and Alt. +-- If you do not like this or do not have such a key, +-- I suggest you to remap Mod4 to another key using xmodmap or other tools. +-- However, you can use another modifier like Mod1, but it may interact with others. +modkey = "Mod4" + +-- Table of layouts to cover with awful.layout.inc, order matters. +awful.layout.layouts = {awful.layout.suit.floating, awful.layout.suit.tile, awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, awful.layout.suit.tile.top, awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, awful.layout.suit.spiral, awful.layout.suit.spiral.dwindle, + awful.layout.suit.max, awful.layout.suit.max.fullscreen, awful.layout.suit.magnifier, + awful.layout.suit.corner.nw -- awful.layout.suit.corner.ne, +-- awful.layout.suit.corner.sw, +-- awful.layout.suit.corner.se, +} +-- }}} + +-- {{{ Menu +-- Create a launcher widget and a main menu +myawesomemenu = {{"hotkeys", function() + hotkeys_popup.show_help(nil, awful.screen.focused()) +end}, {"manual", terminal .. " -e man awesome"}, {"edit config", editor_cmd .. " " .. awesome.conffile}, + {"restart", awesome.restart}, {"quit", function() + awesome.quit() +end}} + +mymainmenu = awful.menu({ + items = {{"awesome", myawesomemenu, beautiful.awesome_icon}, {"open terminal", terminal}} +}) + +mylauncher = awful.widget.launcher({ + image = beautiful.awesome_icon, + menu = mymainmenu +}) + +-- Menubar configuration +menubar.utils.terminal = terminal -- Set the terminal for applications that require it +-- }}} + +-- Keyboard map indicator and switcher +mykeyboardlayout = awful.widget.keyboardlayout() + +-- {{{ Wibar +-- Create a textclock widget +mytextclock = wibox.widget.textclock() + +local volume_widget = require('awesome-wm-widgets.volume-widget.volume') +local cpu_widget = require("awesome-wm-widgets.cpu-widget.cpu-widget") +local ram_widget = require("awesome-wm-widgets.ram-widget.ram-widget") +local net_speed_widget = require("awesome-wm-widgets.net-speed-widget.net-speed") +local mpris_widget = require("awesome-wm-widgets.mpris-widget") + +-- Create a wibox for each screen and add it +local taglist_buttons = gears.table.join(awful.button({}, 1, function(t) + t:view_only() +end), awful.button({modkey}, 1, function(t) + if client.focus then + client.focus:move_to_tag(t) + end +end), awful.button({}, 3, awful.tag.viewtoggle), awful.button({modkey}, 3, function(t) + if client.focus then + client.focus:toggle_tag(t) + end +end), awful.button({}, 4, function(t) + awful.tag.viewnext(t.screen) +end), awful.button({}, 5, function(t) + awful.tag.viewprev(t.screen) +end)) + +local tasklist_buttons = gears.table.join(awful.button({}, 1, function(c) + if c == client.focus then + c.minimized = true + else + c:emit_signal("request::activate", "tasklist", { + raise = true + }) + end +end), awful.button({}, 3, function() + awful.menu.client_list({ + theme = { + width = 250 + } + }) +end), awful.button({}, 4, function() + awful.client.focus.byidx(1) +end), awful.button({}, 5, function() + awful.client.focus.byidx(-1) +end)) + +local function set_wallpaper(s) + -- Wallpaper + if beautiful.wallpaper then + local wallpaper = beautiful.wallpaper + -- If wallpaper is a function, call it with the screen + if type(wallpaper) == "function" then + wallpaper = wallpaper(s) + end + gears.wallpaper.maximized(wallpaper, s, true) + end +end + +-- Re-set wallpaper when a screen's geometry changes (e.g. different resolution) +screen.connect_signal("property::geometry", set_wallpaper) + +awful.screen.connect_for_each_screen(function(s) + -- Wallpaper + set_wallpaper(s) + + -- Each screen has its own tag table. + awful.tag({"1", "2", "3", "4", "5", "6", "7", "8", "9"}, s, awful.layout.layouts[1]) + + -- Create a promptbox for each screen + s.mypromptbox = awful.widget.prompt() + -- Create an imagebox widget which will contain an icon indicating which layout we're using. + -- We need one layoutbox per screen. + s.mylayoutbox = awful.widget.layoutbox(s) + s.mylayoutbox:buttons(gears.table.join(awful.button({}, 1, function() + awful.layout.inc(1) + end), awful.button({}, 3, function() + awful.layout.inc(-1) + end), awful.button({}, 4, function() + awful.layout.inc(1) + end), awful.button({}, 5, function() + awful.layout.inc(-1) + end))) + -- Create a taglist widget + s.mytaglist = awful.widget.taglist { + screen = s, + filter = awful.widget.taglist.filter.all, + buttons = taglist_buttons + } + + -- Create a tasklist widget + s.mytasklist = awful.widget.tasklist { + screen = s, + filter = awful.widget.tasklist.filter.currenttags, + buttons = tasklist_buttons + } + + -- Create the wibox + s.mywibox = awful.wibar({ + position = "top", + screen = s + }) + + -- Add widgets to the wibox + s.mywibox:setup{ + layout = wibox.layout.align.horizontal, + { -- Left widgets + layout = wibox.layout.fixed.horizontal, + mylauncher, + s.mytaglist, + s.mypromptbox + }, + s.mytasklist, -- Middle widget + { -- Right widgets + layout = wibox.layout.fixed.horizontal, + mpris_widget(), + volume_widget({ widget_type = 'arc' }), + cpu_widget({ width = 40 }), + ram_widget(), + net_speed_widget(), + mykeyboardlayout, + wibox.widget.systray(), + mytextclock, + s.mylayoutbox + } + } +end) +-- }}} + +-- {{{ Mouse bindings +root.buttons(gears.table.join(awful.button({}, 3, function() + mymainmenu:toggle() +end), awful.button({}, 4, awful.tag.viewnext), awful.button({}, 5, awful.tag.viewprev))) +-- }}} + +-- {{{ Key bindings +globalkeys = gears.table.join(awful.key({modkey}, "s", hotkeys_popup.show_help, { + escription = "show help", + group = "awesome" +}), awful.key({modkey}, "Left", awful.tag.viewprev, { + description = "view previous", + group = "tag" +}), awful.key({modkey}, "Right", awful.tag.viewnext, { + description = "view next", + group = "tag" +}), awful.key({modkey}, "Escape", awful.tag.history.restore, { + description = "go back", + group = "tag" +}), awful.key({modkey}, "j", function() + awful.client.focus.byidx(1) +end, { + description = "focus next by index", + group = "client" +}), awful.key({modkey}, "k", function() + awful.client.focus.byidx(-1) +end, { + description = "focus previous by index", + group = "client" +}), awful.key({modkey}, "w", function() + mymainmenu:show() +end, { + description = "show main menu", + group = "awesome" +}), -- Layout manipulation +awful.key({modkey, "Shift"}, "j", function() + awful.client.swap.byidx(1) +end, { + description = "swap with next client by index", + group = "client" +}), awful.key({modkey, "Shift"}, "k", function() + awful.client.swap.byidx(-1) +end, { + description = "swap with previous client by index", + group = "client" +}), awful.key({modkey, "Control"}, "j", function() + awful.screen.focus_relative(1) +end, { + description = "focus the next screen", + group = "screen" +}), awful.key({modkey, "Control"}, "k", function() + awful.screen.focus_relative(-1) +end, { + description = "focus the previous screen", + group = "screen" +}), awful.key({modkey}, "u", awful.client.urgent.jumpto, { + description = "jump to urgent client", + group = "client" +}), awful.key({modkey}, "Tab", function() + awful.client.focus.history.previous() + if client.focus then + client.focus:raise() + end +end, { + description = "go back", + group = "client" +}), -- Standard program +awful.key({modkey}, "Return", function() + awful.spawn(terminal) +end, { + description = "open a terminal", + group = "launcher" +}), awful.key({modkey, "Control"}, "r", awesome.restart, { + description = "reload awesome", + group = "awesome" +}), awful.key({modkey, "Shift"}, "q", awesome.quit, { + description = "quit awesome", + group = "awesome" +}), awful.key({modkey}, "l", function() + awful.tag.incmwfact(0.05) +end, { + description = "increase master width factor", + group = "layout" +}), awful.key({modkey}, "h", function() + awful.tag.incmwfact(-0.05) +end, { + description = "decrease master width factor", + group = "layout" +}), awful.key({modkey, "Shift"}, "h", function() + awful.tag.incnmaster(1, nil, true) +end, { + description = "increase the number of master clients", + group = "layout" +}), awful.key({modkey, "Shift"}, "l", function() + awful.tag.incnmaster(-1, nil, true) +end, { + description = "decrease the number of master clients", + group = "layout" +}), awful.key({modkey, "Control"}, "h", function() + awful.tag.incncol(1, nil, true) +end, { + description = "increase the number of columns", + group = "layout" +}), awful.key({modkey, "Control"}, "l", function() + awful.tag.incncol(-1, nil, true) +end, { + description = "decrease the number of columns", + group = "layout" +}), awful.key({modkey}, "space", function() + awful.layout.inc(1) +end, { + description = "select next", + group = "layout" +}), awful.key({modkey, "Shift"}, "space", function() + awful.layout.inc(-1) +end, { + description = "select previous", + group = "layout" +}), awful.key({modkey, "Control"}, "n", function() + local c = awful.client.restore() + -- Focus restored client + if c then + c:emit_signal("request::activate", "key.unminimize", { + raise = true + }) + end +end, { + description = "restore minimized", + group = "client" +}), -- Prompt +awful.key({modkey}, "r", function() + awful.screen.focused().mypromptbox:run() +end, { + description = "run prompt", + group = "launcher" +}), awful.key({modkey}, "x", function() + awful.prompt.run { + prompt = "Run Lua code: ", + textbox = awful.screen.focused().mypromptbox.widget, + exe_callback = awful.util.eval, + history_path = awful.util.get_cache_dir() .. "/history_eval" + } +end, { + description = "lua execute prompt", + group = "awesome" +}), -- Menubar +awful.key({modkey}, "p", function() + awful.spawn.with_shell("rofi -show drun &>> /tmp/rofi.log") + -- menubar.show() +end, { + description = "show the menubar", + group = "launcher" +})) + +clientkeys = gears.table.join(awful.key({modkey}, "f", function(c) + c.fullscreen = not c.fullscreen + c:raise() +end, { + description = "toggle fullscreen", + group = "client" +}), awful.key({modkey, "Shift"}, "c", function(c) + c:kill() +end, { + description = "close", + group = "client" +}), awful.key({modkey, "Control"}, "space", awful.client.floating.toggle, { + description = "toggle floating", + group = "client" +}), awful.key({modkey, "Control"}, "Return", function(c) + c:swap(awful.client.getmaster()) +end, { + description = "move to master", + group = "client" +}), awful.key({modkey}, "o", function(c) + c:move_to_screen() +end, { + description = "move to screen", + group = "client" +}), awful.key({modkey}, "t", function(c) + c.ontop = not c.ontop +end, { + description = "toggle keep on top", + group = "client" +}), awful.key({modkey}, "n", function(c) + -- The client currently has the input focus, so it cannot be + -- minimized, since minimized clients can't have the focus. + c.minimized = true +end, { + description = "minimize", + group = "client" +}), awful.key({modkey}, "m", function(c) + c.maximized = not c.maximized + c:raise() +end, { + description = "(un)maximize", + group = "client" +}), awful.key({modkey, "Control"}, "m", function(c) + c.maximized_vertical = not c.maximized_vertical + c:raise() +end, { + description = "(un)maximize vertically", + group = "client" +}), awful.key({modkey, "Shift"}, "m", function(c) + c.maximized_horizontal = not c.maximized_horizontal + c:raise() +end, { + description = "(un)maximize horizontally", + group = "client" +})) + +-- Bind all key numbers to tags. +-- Be careful: we use keycodes to make it work on any keyboard layout. +-- This should map on the top row of your keyboard, usually 1 to 9. +for i = 1, 9 do + globalkeys = gears.table.join(globalkeys, -- View tag only. + awful.key({modkey}, "#" .. i + 9, function() + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + tag:view_only() + end + end, { + description = "view tag #" .. i, + group = "tag" + }), -- Toggle tag display. + awful.key({modkey, "Control"}, "#" .. i + 9, function() + local screen = awful.screen.focused() + local tag = screen.tags[i] + if tag then + awful.tag.viewtoggle(tag) + end + end, { + description = "toggle tag #" .. i, + group = "tag" + }), -- Move client to tag. + awful.key({modkey, "Shift"}, "#" .. i + 9, function() + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:move_to_tag(tag) + end + end + end, { + description = "move focused client to tag #" .. i, + group = "tag" + }), -- Toggle tag on focused client. + awful.key({modkey, "Control", "Shift"}, "#" .. i + 9, function() + if client.focus then + local tag = client.focus.screen.tags[i] + if tag then + client.focus:toggle_tag(tag) + end + end + end, { + description = "toggle focused client on tag #" .. i, + group = "tag" + })) +end + +clientbuttons = gears.table.join(awful.button({}, 1, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) +end), awful.button({modkey}, 1, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) + awful.mouse.client.move(c) +end), awful.button({modkey}, 3, function(c) + c:emit_signal("request::activate", "mouse_click", { + raise = true + }) + awful.mouse.client.resize(c) +end)) + +globalkeys, clientkeys, clientbuttons = require('keymapping').bind(globalkeys, clientkeys, clientbuttons) + +-- Set keys +root.keys(globalkeys) +-- }}} + +-- {{{ Rules +-- Rules to apply to new clients (through the "manage" signal). +awful.rules.rules = { -- All clients will match this rule. +{ + rule = {}, + properties = { + border_width = beautiful.border_width, + border_color = beautiful.border_normal, + focus = awful.client.focus.filter, + raise = true, + keys = clientkeys, + buttons = clientbuttons, + screen = awful.screen.preferred, + placement = awful.placement.no_overlap + awful.placement.no_offscreen + } +}, -- Floating clients. +{ + rule_any = { + instance = {"DTA", -- Firefox addon DownThemAll. + "copyq", -- Includes session name in class. + "pinentry"}, + class = {"Arandr", "Blueman-manager", "Gpick", "Kruler", "MessageWin", -- kalarm. + "Sxiv", "Tor Browser", -- Needs a fixed window size to avoid fingerprinting by screen size. + "Wpa_gui", "veromix", "xtightvncviewer"}, + + -- Note that the name property shown in xprop might be set slightly after creation of the client + -- and the name shown there might not match defined rules here. + name = {"Event Tester" -- xev. + }, + role = {"AlarmWindow", -- Thunderbird's calendar. + "ConfigManager", -- Thunderbird's about:config. + "pop-up" -- e.g. Google Chrome's (detached) Developer Tools. + } + }, + properties = { + floating = true + } +}, -- Add titlebars to normal clients and dialogs +{ + rule_any = { + type = {"normal", "dialog"} + }, + properties = { + titlebars_enabled = true + } +} -- Set Firefox to always map on the tag named "2" on screen 1. +-- { rule = { class = "Firefox" }, +-- properties = { screen = 1, tag = "2" } }, +} +-- }}} + +-- {{{ Signals +-- Signal function to execute when a new client appears. +client.connect_signal("manage", function(c) + -- Set the windows at the slave, + -- i.e. put it at the end of others instead of setting it master. + -- if not awesome.startup then awful.client.setslave(c) end + + if awesome.startup and not c.size_hints.user_position and not c.size_hints.program_position then + -- Prevent clients from being unreachable after screen count changes. + awful.placement.no_offscreen(c) + end +end) + +-- Add a titlebar if titlebars_enabled is set to true in the rules. +client.connect_signal("request::titlebars", function(c) + -- buttons for the titlebar + local buttons = gears.table.join(awful.button({}, 1, function() + c:emit_signal("request::activate", "titlebar", { + raise = true + }) + awful.mouse.client.move(c) + end), awful.button({}, 3, function() + c:emit_signal("request::activate", "titlebar", { + raise = true + }) + awful.mouse.client.resize(c) + end)) + + awful.titlebar(c):setup{ + { -- Left + awful.titlebar.widget.iconwidget(c), + buttons = buttons, + layout = wibox.layout.fixed.horizontal + }, + { -- Middle + { -- Title + align = "center", + widget = awful.titlebar.widget.titlewidget(c) + }, + buttons = buttons, + layout = wibox.layout.flex.horizontal + }, + { -- Right + awful.titlebar.widget.floatingbutton(c), + awful.titlebar.widget.maximizedbutton(c), + awful.titlebar.widget.stickybutton(c), + awful.titlebar.widget.ontopbutton(c), + awful.titlebar.widget.closebutton(c), + layout = wibox.layout.fixed.horizontal() + }, + layout = wibox.layout.align.horizontal + } +end) + +-- Enable sloppy focus, so that focus follows mouse. +client.connect_signal("mouse::enter", function(c) + c:emit_signal("request::activate", "mouse_enter", { + raise = false + }) +end) + +client.connect_signal("focus", function(c) + c.border_color = beautiful.border_focus +end) +client.connect_signal("unfocus", function(c) + c.border_color = beautiful.border_normal +end) +-- }}} + +os.execute('picom -f &') diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/README b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/README new file mode 100644 index 0000000..1ddb349 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/README @@ -0,0 +1,3 @@ +Background images: + Mikael Eriksson + Licensed under CC-BY-SA-3.0 diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background.png new file mode 100644 index 0000000..8f52b6b Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background_white.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background_white.png new file mode 100644 index 0000000..bb0c5d0 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/background_white.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerne.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerne.png new file mode 100644 index 0000000..c85bd56 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerne.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernew.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernew.png new file mode 100644 index 0000000..c3fd986 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernew.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernw.png new file mode 100644 index 0000000..dfe78b3 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernww.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernww.png new file mode 100644 index 0000000..f489010 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornernww.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerse.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerse.png new file mode 100644 index 0000000..023ae79 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornerse.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersew.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersew.png new file mode 100644 index 0000000..f7cfa1c Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersew.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersw.png new file mode 100644 index 0000000..c1453c9 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersww.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersww.png new file mode 100644 index 0000000..a65a043 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/cornersww.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindle.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindle.png new file mode 100644 index 0000000..9902d22 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindle.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindlew.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindlew.png new file mode 100644 index 0000000..9199049 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/dwindlew.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairh.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairh.png new file mode 100644 index 0000000..d41deea Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairh.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairhw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairhw.png new file mode 100644 index 0000000..bb50e3a Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairhw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairv.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairv.png new file mode 100644 index 0000000..f5f0288 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairv.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairvw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairvw.png new file mode 100644 index 0000000..4f4ed52 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fairvw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floating.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floating.png new file mode 100644 index 0000000..b8061a0 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floating.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floatingw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floatingw.png new file mode 100644 index 0000000..4815894 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/floatingw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreen.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreen.png new file mode 100644 index 0000000..d02f6fc Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreen.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreenw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreenw.png new file mode 100644 index 0000000..5c35bfa Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/fullscreenw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifier.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifier.png new file mode 100644 index 0000000..2925414 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifier.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifierw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifierw.png new file mode 100644 index 0000000..6209556 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/magnifierw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/max.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/max.png new file mode 100644 index 0000000..8d20844 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/max.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/maxw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/maxw.png new file mode 100644 index 0000000..85f5ce3 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/maxw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiral.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiral.png new file mode 100644 index 0000000..d9434be Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiral.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiralw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiralw.png new file mode 100644 index 0000000..b78dd86 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/spiralw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tile.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tile.png new file mode 100644 index 0000000..3ede21e Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tile.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottom.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottom.png new file mode 100644 index 0000000..6f8c257 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottom.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottomw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottomw.png new file mode 100644 index 0000000..a1de7b2 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilebottomw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleft.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleft.png new file mode 100644 index 0000000..31d6870 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleft.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleftw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleftw.png new file mode 100644 index 0000000..cf14c25 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tileleftw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletop.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletop.png new file mode 100644 index 0000000..98cade2 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletop.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletopw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletopw.png new file mode 100644 index 0000000..d1d0872 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tiletopw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilew.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilew.png new file mode 100644 index 0000000..fde2ca4 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/layouts/tilew.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/submenu.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/submenu.png new file mode 100644 index 0000000..b2778e2 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/submenu.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarefw.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarefw.png new file mode 100644 index 0000000..2a86430 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarefw.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarew.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarew.png new file mode 100644 index 0000000..913f2ca Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/taglist/squarew.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/theme.lua b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/theme.lua new file mode 100644 index 0000000..9733bf6 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/theme.lua @@ -0,0 +1,130 @@ +--------------------------- +-- Default awesome theme -- +--------------------------- + +local theme_assets = require("beautiful.theme_assets") +local xresources = require("beautiful.xresources") +local dpi = xresources.apply_dpi + +local themes_path = string.format("%s/.config/awesome/theme/", os.getenv("HOME")) + +local theme = {} + +theme.font = "sans 8" + +theme.bg_normal = "#222222" +theme.bg_focus = "#535d6c" +theme.bg_urgent = "#ff0000" +theme.bg_minimize = "#444444" +theme.bg_systray = theme.bg_normal + +theme.fg_normal = "#aaaaaa" +theme.fg_focus = "#ffffff" +theme.fg_urgent = "#ffffff" +theme.fg_minimize = "#ffffff" + +theme.useless_gap = dpi(0) +theme.border_width = dpi(1) +theme.border_normal = "#000000" +theme.border_focus = "#535d6c" +theme.border_marked = "#91231c" + +-- There are other variable sets +-- overriding the default one when +-- defined, the sets are: +-- taglist_[bg|fg]_[focus|urgent|occupied|empty|volatile] +-- tasklist_[bg|fg]_[focus|urgent] +-- titlebar_[bg|fg]_[normal|focus] +-- tooltip_[font|opacity|fg_color|bg_color|border_width|border_color] +-- mouse_finder_[color|timeout|animate_timeout|radius|factor] +-- prompt_[fg|bg|fg_cursor|bg_cursor|font] +-- hotkeys_[bg|fg|border_width|border_color|shape|opacity|modifiers_fg|label_bg|label_fg|group_margin|font|description_font] +-- Example: +--theme.taglist_bg_focus = "#ff0000" + +-- Generate taglist squares: +local taglist_square_size = dpi(4) +theme.taglist_squares_sel = theme_assets.taglist_squares_sel( + taglist_square_size, theme.fg_normal +) +theme.taglist_squares_unsel = theme_assets.taglist_squares_unsel( + taglist_square_size, theme.fg_normal +) + +-- Variables set for theming notifications: +-- notification_font +-- notification_[bg|fg] +-- notification_[width|height|margin] +-- notification_[border_color|border_width|shape|opacity] + +-- Variables set for theming the menu: +-- menu_[bg|fg]_[normal|focus] +-- menu_[border_color|border_width] +theme.menu_submenu_icon = themes_path.."submenu.png" +theme.menu_height = dpi(15) +theme.menu_width = dpi(100) + +-- You can add as many variables as +-- you wish and access them by using +-- beautiful.variable in your rc.lua +--theme.bg_widget = "#cc0000" + +-- Define the image to load +theme.titlebar_close_button_normal = themes_path.."titlebar/close_normal.png" +theme.titlebar_close_button_focus = themes_path.."titlebar/close_focus.png" + +theme.titlebar_minimize_button_normal = themes_path.."titlebar/minimize_normal.png" +theme.titlebar_minimize_button_focus = themes_path.."titlebar/minimize_focus.png" + +theme.titlebar_ontop_button_normal_inactive = themes_path.."titlebar/ontop_normal_inactive.png" +theme.titlebar_ontop_button_focus_inactive = themes_path.."titlebar/ontop_focus_inactive.png" +theme.titlebar_ontop_button_normal_active = themes_path.."titlebar/ontop_normal_active.png" +theme.titlebar_ontop_button_focus_active = themes_path.."titlebar/ontop_focus_active.png" + +theme.titlebar_sticky_button_normal_inactive = themes_path.."titlebar/sticky_normal_inactive.png" +theme.titlebar_sticky_button_focus_inactive = themes_path.."titlebar/sticky_focus_inactive.png" +theme.titlebar_sticky_button_normal_active = themes_path.."titlebar/sticky_normal_active.png" +theme.titlebar_sticky_button_focus_active = themes_path.."titlebar/sticky_focus_active.png" + +theme.titlebar_floating_button_normal_inactive = themes_path.."titlebar/floating_normal_inactive.png" +theme.titlebar_floating_button_focus_inactive = themes_path.."titlebar/floating_focus_inactive.png" +theme.titlebar_floating_button_normal_active = themes_path.."titlebar/floating_normal_active.png" +theme.titlebar_floating_button_focus_active = themes_path.."titlebar/floating_focus_active.png" + +theme.titlebar_maximized_button_normal_inactive = themes_path.."titlebar/maximized_normal_inactive.png" +theme.titlebar_maximized_button_focus_inactive = themes_path.."titlebar/maximized_focus_inactive.png" +theme.titlebar_maximized_button_normal_active = themes_path.."titlebar/maximized_normal_active.png" +theme.titlebar_maximized_button_focus_active = themes_path.."titlebar/maximized_focus_active.png" + +theme.wallpaper = themes_path.."background.png" + +-- You can use your own layout icons like this: +theme.layout_fairh = themes_path.."layouts/fairhw.png" +theme.layout_fairv = themes_path.."layouts/fairvw.png" +theme.layout_floating = themes_path.."layouts/floatingw.png" +theme.layout_magnifier = themes_path.."layouts/magnifierw.png" +theme.layout_max = themes_path.."layouts/maxw.png" +theme.layout_fullscreen = themes_path.."layouts/fullscreenw.png" +theme.layout_tilebottom = themes_path.."layouts/tilebottomw.png" +theme.layout_tileleft = themes_path.."layouts/tileleftw.png" +theme.layout_tile = themes_path.."layouts/tilew.png" +theme.layout_tiletop = themes_path.."layouts/tiletopw.png" +theme.layout_spiral = themes_path.."layouts/spiralw.png" +theme.layout_dwindle = themes_path.."layouts/dwindlew.png" +theme.layout_cornernw = themes_path.."layouts/cornernww.png" +theme.layout_cornerne = themes_path.."layouts/cornernew.png" +theme.layout_cornersw = themes_path.."layouts/cornersww.png" +theme.layout_cornerse = themes_path.."layouts/cornersew.png" + +-- Generate Awesome icon: +theme.awesome_icon = theme_assets.awesome_icon( + theme.menu_height, theme.bg_focus, theme.fg_focus +) + +-- Define the icon theme for application icons. If not set then the icons +-- from /usr/share/icons and /usr/share/icons/hicolor will be used. +theme.icon_theme = nil + +return theme + +-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_focus.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_focus.png new file mode 100644 index 0000000..01ef825 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_focus.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_normal.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_normal.png new file mode 100644 index 0000000..5448ed8 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/close_normal.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_active.png new file mode 100644 index 0000000..82dcc7c Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_inactive.png new file mode 100644 index 0000000..c19ba80 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_focus_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_active.png new file mode 100644 index 0000000..62342d1 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_inactive.png new file mode 100644 index 0000000..e2bbdfa Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/floating_normal_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_active.png new file mode 100644 index 0000000..d7dffd7 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_inactive.png new file mode 100644 index 0000000..844389f Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_focus_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_active.png new file mode 100644 index 0000000..a705f81 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_inactive.png new file mode 100644 index 0000000..4c1ab1f Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/maximized_normal_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_focus.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_focus.png new file mode 100644 index 0000000..caaceb2 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_focus.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_normal.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_normal.png new file mode 100644 index 0000000..36621d0 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/minimize_normal.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_active.png new file mode 100644 index 0000000..312c00b Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_inactive.png new file mode 100644 index 0000000..a48e1c5 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_focus_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_active.png new file mode 100644 index 0000000..117a203 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_inactive.png new file mode 100644 index 0000000..d3a10c8 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/ontop_normal_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_active.png new file mode 100644 index 0000000..814499b Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_inactive.png new file mode 100644 index 0000000..21b000d Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_focus_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_active.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_active.png new file mode 100644 index 0000000..bdb5595 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_active.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_inactive.png b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_inactive.png new file mode 100644 index 0000000..a96b9b1 Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/awesome/theme/titlebar/sticky_normal_inactive.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/chezmoi/chezmoi.toml b/dot_local/share/chezmoi/literal_dot_config/chezmoi/chezmoi.toml new file mode 100644 index 0000000..458d1d5 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/chezmoi/chezmoi.toml @@ -0,0 +1,3 @@ +[git] + autoCommit = true + autoPush = true diff --git a/dot_local/share/chezmoi/literal_dot_config/dunst/dunstrc b/dot_local/share/chezmoi/literal_dot_config/dunst/dunstrc new file mode 100644 index 0000000..18c81c8 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/dunst/dunstrc @@ -0,0 +1,167 @@ +[global] + + include-file = ~/.config/polybar/colors.ini + + monitor = 0 + follow = keyboard + geometry = "400x5-10+48" + indicate_hidden = yes + shrink = yes + transparency = 20 + notification_height = 12 + separator_height = 2 + padding = 24 + horizontal_padding = 24 + frame_width = 1 + frame_color = "#3c3836" + corner_radius = 3 + + # 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 = auto + + # Sort messages by urgency. + sort = yes + + idle_threshold = 120 + font = RobotoMono Nerd Font 11 + line_height = 5 + 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 = " %s\n%b" + + alignment = left + show_age_threshold = 60 + word_wrap = yes + ellipsize = middle + ignore_newline = no + stack_duplicates = true + hide_duplicate_count = true + show_indicators = yes + icon_position = off + max_icon_size = 40 + #icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Adwaita/256x256/status/ + sticky_history = yes + history_length = 20 + dmenu = /usr/bin/dmenu -p dunst: + browser = /usr/bin/firefox -new-tab + + # Always run rule-defined scripts, even if the notification is suppressed + always_run_script = true + + title = Dunst + class = Dunst + startup_notification = false + force_xinerama = false + +[experimental] + per_monitor_dpi = false + +[shortcuts] + close = ctrl+space + close_all = ctrl+shift+space + history = ctrl+grave + 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 = "#282828" + ; foreground = "#928374" + + ; background = "#a89984" + ; foreground = "#3c3836" + + background = "#0A0B0D" + foreground = "#FFFFB7" + timeout = 8 + # Icon for notifications with low urgency, uncomment to enable + #icon = /path/to/icon + +[urgency_normal] + ; background = "#333333" + ; foreground = "#ebdbb2" + background = "#bdae93" + foreground = "#3c3836" + timeout = 10 + +[urgency_critical] + ; background = "#703838" + ; foreground = "#ebdbb2" + background = "#fb4934" + foreground = "#32302f" + ; frame_color = "#CCA83B" + timeout = 0 + +# 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", "summary", "body", "icon", "category", +# "msg_urgency" and you can override the "timeout", "urgency", "foreground", +# "background", "new_icon" and "format". +# Shell-like globbing will get expanded. +# +# 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. + +#[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 + +#[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 +# +# vim: ft=cfg diff --git a/dot_local/share/chezmoi/literal_dot_config/gitui/key_bindings.ron b/dot_local/share/chezmoi/literal_dot_config/gitui/key_bindings.ron new file mode 100644 index 0000000..0cd9418 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/gitui/key_bindings.ron @@ -0,0 +1,13 @@ +( + focus_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)), + focus_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)), + focus_above: Some(( code: Char('k'), modifiers: ( bits: 0,),)), + focus_below: Some(( code: Char('j'), modifiers: ( bits: 0,),)), + + move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)), + move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)), + move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)), + move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)), + + open_help: Some(( code: F(1), modifiers: ( bits: 0,),)), +) diff --git a/dot_local/share/chezmoi/literal_dot_config/gitui/theme.ron b/dot_local/share/chezmoi/literal_dot_config/gitui/theme.ron new file mode 100644 index 0000000..c52beac --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/gitui/theme.ron @@ -0,0 +1,19 @@ +( + selected_tab: Reset, + command_fg: White, + selection_bg: Blue, + cmdbar_extra_lines_bg: Blue, + disabled_fg: DarkGray, + diff_line_add: Green, + diff_line_delete: Red, + diff_file_added: LightGreen, + diff_file_removed: LightRed, + diff_file_moved: LightMagenta, + diff_file_modified: Yellow, + commit_hash: Magenta, + commit_time: LightCyan, + commit_author: Green, + danger_fg: Red, + push_gauge_bg: Blue, + push_gauge_fg: Reset, +) \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/i3/config b/dot_local/share/chezmoi/literal_dot_config/i3/config new file mode 100644 index 0000000..c5d9c53 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/i3/config @@ -0,0 +1,261 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout some time, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see https://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:monospace 10 + + +# Set inner/outer gaps +gaps inner 10 +gaps outer 10 + +#do not show titlebar on windows: +# new_window 1pixel + +# thin borders: +hide_edge_borders both + +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Start XDG autostart .desktop files using dex. See also +# https://wiki.archlinux.org/index.php/XDG_Autostart +exec --no-startup-id dex --autostart --environment i3 + +# The combination of xss-lock, nm-applet and pactl is a popular choice, so +# they are included here as an example. Modify as you see fit. + +# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the +# screen before suspend. Use loginctl lock-session to lock your screen. +exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork + +# NetworkManager is the most popular way to manage wireless networks on Linux, +# and nm-applet is a desktop environment-independent system tray GUI for it. +exec --no-startup-id nm-applet + +# Compositor to avoid tearing +# exec --no-startup-id picom -b +exec --no-startup-id picom -CGb --experimental-backend + +#Background +exec --no-startup-id feh --bg-scale /home/adonis/Images/2784029.webp +#exec --no-startup-id mplayer -loop 0 -rootwin -ao null -vo x11 -nokeepaspect -noconsolecontrols -fs /home/adonis/Images/AggressiveShallowCatbird-size_restricted.gif +#exec --no-startup-id mpv --wid=0 -loop 0 -ao null -no-input-terminal -fs /home/adonis/Images/AggressiveShallowCatbird-size_restricted.gif +# exec --no-startup-id xwinwrap -ov -fs -- mplayer -fs -rootwin -wid 0 -quiet -nosound /home/adonis/Images/AggressiveShallowCatbird-size_restricted.mp4 -loop 0 + +# Multimedia keys +# Use pactl to adjust volume in PulseAudio. +set $refresh_i3status killall -SIGUSR1 i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status + +#bindsym XF86MonBrightnessUp exec xbacklight -inc 10 +#bindsym XF86MonBrightnessDown exec xbacklight -dec 10 +#bindsym XF86AudioMute exec amixer -D pulse sset Master toggle -q +#bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 1%- unmute -q +#bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 1%+ unmute -q + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec i3-sensible-terminal + +# kill focused window +bindsym $mod+Shift+A kill + +# start dmenu (a program launcher) +bindsym $mod+d exec --no-startup-id dmenu_run +# A more modern dmenu replacement is rofi: +# bindcode $mod+40 exec "rofi -modi drun,run -show drun" +# There also is i3-dmenu-desktop which only displays applications shipping a +# .desktop file. It is a wrapper around dmenu, so you need that installed. +# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+h focus left +bindsym $mod+j focus down +bindsym $mod+k focus up +bindsym $mod+l focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+h move left +bindsym $mod+Shift+j move down +bindsym $mod+Shift+k move up +bindsym $mod+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+b split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+z layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+q focus parent + +# focus the child container +#bindsym $mod+d focus child + +# Define names for default workspaces for which we configure key bindings later on. +# We use variables to avoid repeating the names in multiple places. +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" + +# switch to workspace +bindsym $mod+ampersand workspace number $ws1 +bindsym $mod+eacute workspace number $ws2 +bindsym $mod+quotedbl workspace number $ws3 +bindsym $mod+apostrophe workspace number $ws4 +bindsym $mod+parenleft workspace number $ws5 +bindsym $mod+section workspace number $ws6 +bindsym $mod+egrave workspace number $ws7 +bindsym $mod+exclam workspace number $ws8 +bindsym $mod+ccedilla workspace number $ws9 +bindsym $mod+agrave workspace number $ws10 + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace number $ws1 +bindsym $mod+Shift+eacute move container to workspace number $ws2 +bindsym $mod+Shift+3 move container to workspace number $ws3 +bindsym $mod+Shift+4 move container to workspace number $ws4 +bindsym $mod+Shift+5 move container to workspace number $ws5 +bindsym $mod+Shift+section move container to workspace number $ws6 +bindsym $mod+Shift+egrave move container to workspace number $ws7 +bindsym $mod+Shift+8 move container to workspace number $ws8 +bindsym $mod+Shift+ccedilla move container to workspace number $ws9 +bindsym $mod+Shift+agrave move container to workspace number $ws10 + +# kill window +bindsym $mod+Shift+q kill + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym m resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape or $mod+r + bindsym Return mode "default" + bindsym Escape mode "default" + bindsym $mod+r mode "default" +} + +bindsym $mod+r mode "resize" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +#bar { +# status_command i3blocks +# font pango:monospace 12 +#} + +# Lock the system +bindsym $mod+Shift+d exec i3lock -i ~/.config/i3/i3-lock-screen.png -t -f + +set $bg-color #DC143C +set $inactive-bg-color #2f343f +set $text-color #f3f4f5 +set $inactive-text-color #676e7d +set $urgent-bg-color #e53935 +set $indicator-color #a0a0a0 + +# set window colors: +# border background text indicator +client.focused $bg-color $bg-color $text-color $indicator-color +client.unfocused $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator-color +client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color $indicator-color +client.urgent $urgent-bg-color $urgent-bg-color $text-color $indicator-color + + +# Toggle gap +set $mode_gaps Toggle gaps: (1) on (2) off +bindsym $mod+g mode "$mode_gaps" +mode "$mode_gaps" { + bindsym g mode "default", gaps inner all set 10, gaps outer all set 10 + bindsym f mode "default", gaps inner all set 1, gaps outer all set 1 +# bindsym Return mode "default" +# bindsym Escape mode "default" +} + +# Toggle window title +# default_border pixel 1 +# default_floating_border pixel 1 + + +# set floating (nontiling)for apps needing it: +for_window [class="Galculator" instance="galculator"] floating enable + +# Desktop notifications_ +exec --no-startup-id /usr/bin/dunst + +## Launch Polybar +exec_always --no-startup-id launch_polybar + diff --git a/dot_local/share/chezmoi/literal_dot_config/i3/i3-lock-screen.png b/dot_local/share/chezmoi/literal_dot_config/i3/i3-lock-screen.png new file mode 100644 index 0000000..783d5ec Binary files /dev/null and b/dot_local/share/chezmoi/literal_dot_config/i3/i3-lock-screen.png differ diff --git a/dot_local/share/chezmoi/literal_dot_config/lazygit/config.yml b/dot_local/share/chezmoi/literal_dot_config/lazygit/config.yml new file mode 100644 index 0000000..e3679f8 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/lazygit/config.yml @@ -0,0 +1,3 @@ +git: + pull: + mode: 'rebase' # one of 'auto' | 'merge' | 'rebase' | 'ff-only', auto reads from git configuration \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/init.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/init.lua new file mode 100644 index 0000000..cf59ffd --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/init.lua @@ -0,0 +1,11 @@ +-------------------- HELPERS ------------------------------- +local helpers = require('helpers') + +-------------------- OPTIONS ------------------------------- +helpers.call_with_helpers(require('options').init) + +-------------------- PLUGINS ------------------------------- +helpers.call_with_helpers(require('plugins').init) + +-------------------- MAPPINGS ------------------------------ +helpers.call_with_helpers(require('mappings').init) \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/helpers.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/helpers.lua new file mode 100644 index 0000000..4090abe --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/helpers.lua @@ -0,0 +1,42 @@ +local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd') +local fn = vim.fn -- to call Vim functions e.g. fn.bufnr() +local g = vim.g -- a table to access global variables +local opt = vim.opt -- to set options +local o = vim.o -- to set options + +local function map(mode, lhs, rhs, opts) + local options = {noremap = true} + if opts then options = vim.tbl_extend('force', options, opts) end + vim.api.nvim_set_keymap(mode, lhs, rhs, options) +end + +local function dump(...) + local objects = vim.tbl_map(vim.inspect, {...}) + print(unpack(objects)) +end + +local function call_with_helpers(user_func) + setfenv(user_func, + vim.tbl_extend('force', getfenv(), get_helpers())) + local status, err = pcall(user_func) + if not status then + print('Failure running setup function: ' .. vim.inspect(err)) + else + return status + end +end + +function get_helpers() + return { + map = map, + cmd = cmd, + fn = fn, + g = g, + opt = opt, + o = o, + dump = dump, + call_with_helpers = call_with_helpers, + } +end + +return get_helpers() \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/mappings.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/mappings.lua new file mode 100644 index 0000000..a73a54a --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/mappings.lua @@ -0,0 +1,79 @@ +local function init() + -- command! LogPath :lua print(vim.inspect(vim.lsp.get_log_path())) + + -------------------- Telescope ----------------------------- + map('n', 'ff', 'Telescope find_files') + map('n', 'fg', 'Telescope live_grep') + map('n', 'fb', 'Telescope buffers') + map('n', 'fh', 'Telescope help_tags') + map('n', 'ps', [[lua require('telescope.builtin').grep_string({ search = vim.fn.input("Grep For >")})]]) + + -------------------- NvimTreeToggle ------------------------ + map('n', 'tt', 'NvimTreeToggle') + map('n', 'tr', 'NvimTreeRefresh') + map('n', 'tf', 'NvimTreeFocus') + + -------------------- Github Copilot ------------------------ + map('n', 'gd', 'Copilot disable') + map('n', 'ge', 'Copilot enable') + map('n', 'gi', 'Copilot setup') + + -------------------- BarBar -------------------------------- + -- Move to previous/next + map('n', '', ':BufferPrevious', opts) + map('n', '', ':BufferNext', opts) + -- Re-order to previous/next + map('n', '', ':BufferMovePrevious', opts) + map('n', '>', ':BufferMoveNext', opts) + -- Close buffer + map('n', '', ':BufferClose', opts) + + -------------------- LSP ----------------------------------- + map('n', ',', 'lua vim.lsp.diagnostic.goto_prev()') + map('n', ';', 'lua vim.lsp.diagnostic.goto_next()') + map('n', 'a', 'lua vim.lsp.buf.code_action()') + map('n', 'd', 'lua vim.lsp.buf.definition()') + map('n', 'f', 'lua vim.lsp.buf.formatting()') + map('n', 'h', 'lua vim.lsp.buf.hover()') + map('n', 'm', 'lua vim.lsp.buf.rename()') + map('n', 'r', 'lua vim.lsp.buf.references()') + map('n', 's', 'lua vim.lsp.buf.document_symbol()') + map('n', 'T', 'lua require\'lsp_extensions\'.inlay_hints()') + + -------------------- HlsLens ------------------------------- + map('n', 'n', "execute('normal! ' . v:count1 . 'n')lua require('hlslens').start()") + map('n', 'N', "execute('normal! ' . v:count1 . 'N')lua require('hlslens').start()") + map('n', '*', "*lua require('hlslens').start()") + map('n', '#', "#lua require('hlslens').start()") + map('n', 'g*', "g*lua require('hlslens').start()") + map('n', 'g#', "g#lua require('hlslens').start()") + + -------------------- DAP ----------------------------------- + map('n', '', 'lua require\'dap\'.toggle_breakpoint()', opts) + map('n', '', 'lua require\'dap\'.set_breakpoint(vim.fn.input(\'Breakpoint condition: \'))', opts) + map('n', '', 'lua require\'dap\'.continue()', opts) + map('n', '', 'lua require\'dap\'.repl.toggle()', opts) + + -------------------- FTerm --------------------------------- + map('n', '', 'lua require("FTerm").toggle()') + map('t', '', 'lua require("FTerm").toggle()') + + -------------------- LAZYGIT ------------------------------- + -- Install docs : https://github.com/jesseduffield/lazygit + map('n', '', 'LazyGit') + + -------------------- OTHER --------------------------------- + map('i', '', ':w') + map('n', '', ':w') + + -------------------- COMMANDS ------------------------------ + cmd 'au TextYankPost * lua vim.highlight.on_yank {on_visual = false}' -- disabled in visual mode + + -------------------- GITHUB COPILOT ------------------------ + map('i', '', [[copilot#Accept("\")]], {noremap=true, silent=true, expr=true}) + cmd('let g:copilot_no_tab_map = v:true') -- Disable tab autocomplete github copilot +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/options.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/options.lua new file mode 100644 index 0000000..40e6faf --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/options.lua @@ -0,0 +1,30 @@ +local function init() + cmd('colorscheme moonlight') + + opt.completeopt = {'menuone', 'noinsert', 'noselect'} -- Completion options (for deoplete) + opt.expandtab = true -- Use spaces instead of tabs + opt.hidden = true -- Enable background buffers + opt.ignorecase = true -- Ignore case + opt.joinspaces = false -- No double spaces with join + opt.list = true -- Show some invisible characters + opt.number = true -- Show line numbers + opt.relativenumber = true -- Relative line numbers + opt.scrolloff = 4 -- Lines of context + opt.shiftround = true -- Round indent + opt.shiftwidth = 2 -- Size of an indent + opt.sidescrolloff = 8 -- Columns of context + opt.smartcase = true -- Do not ignore case with capitals + opt.autoindent = true -- Insert indents automatically + opt.splitbelow = true -- Put new windows below current + opt.splitright = true -- Put new windows right of current + opt.tabstop = 2 -- Number of spaces tabs count for + opt.termguicolors = true -- True color support + opt.wildmode = {'list', 'longest'} -- Command-line completion mode + opt.wrap = false -- Disable line wrap + opt.mouse = 'a' -- Enable mouse for all previous modes + o.clipboard = 'unnamedplus' -- Enabled clipboard shared yank +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/compe.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/compe.lua new file mode 100644 index 0000000..0877dbd --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/compe.lua @@ -0,0 +1,31 @@ +local function init() + vim.o.completeopt = "menuone,noselect" + require'compe'.setup { + enabled = true; + autocomplete = true; + debug = false; + min_length = 1; + preselect = 'enable'; + throttle_time = 80; + source_timeout = 200; + incomplete_delay = 400; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; + documentation = true; + + source = { + path = true; + buffer = true; + calc = true; + nvim_lsp = true; + nvim_lua = true; + vsnip = true; + ultisnips = true; + }; + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/init.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/init.lua new file mode 100644 index 0000000..eea1e9b --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/init.lua @@ -0,0 +1,7 @@ +local function init() + call_with_helpers(require('plugins.dap.lldb').init) +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/lldb.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/lldb.lua new file mode 100644 index 0000000..a3255a8 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/dap/lldb.lua @@ -0,0 +1,32 @@ +local dap = require('dap') + +local function init() + dap.adapters.lldb = { + type = 'executable', + command = '/usr/bin/lldb-vscode', + name = 'lldb' + } + dap.configurations.cpp = { + { + name = "Launch", + type = "lldb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}', + stopOnEntry = false, + args = {}, + runInTerminal = false, + }, + } + dap.configurations.c = dap.configurations.cpp + -- dap.configurations.rust = dap.configurations.cpp + -- dap.configurations.rust[1].program = function() + -- return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/target/debug/', 'file') + -- end +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/init.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..7bddccc --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/init.lua @@ -0,0 +1,150 @@ +function configure_packages() + call_with_helpers(require('plugins.lspconfig').init) + call_with_helpers(require('plugins.dap').init) + call_with_helpers(require('plugins.compe').init) + call_with_helpers(require('plugins.nvim-rust-tools').init) + call_with_helpers(require('plugins.nvim-tree').init) + call_with_helpers(require('plugins.nvim-treesitter').init) + call_with_helpers(require('plugins.nvim-web-devicons').init) + call_with_helpers(require('plugins.nvim-autopairs').init) + call_with_helpers(require('plugins.nvim-notify').init) + call_with_helpers(require('plugins.nvim-hlslens').init) + call_with_helpers(require('plugins.nvim-flutter-tools').init) + call_with_helpers(require('plugins.nvim-fterm').init) + call_with_helpers(require('plugins.nvim-feline').init) + call_with_helpers(require('plugins.nvim-todo-comments').init) + call_with_helpers(require('plugins.nvim-lightspeed').init) + call_with_helpers(require('plugins.nvim-numb').init) + call_with_helpers(require('plugins.nvim-neoscroll').init) + call_with_helpers(require('plugins.nvim-lspkind').init) + call_with_helpers(require('plugins.nvim-signature').init) + call_with_helpers(require('plugins.nvim-gutentags').init) + call_with_helpers(require('plugins.nvim-indent-blankline').init) + call_with_helpers(require('plugins.nvim-editorconfig').init) + call_with_helpers(require('plugins.nvim-ctrlsf').init) +end + +function install_packages() + -- Packer can manage itself as an optional plugin + use 'wbthomason/packer.nvim' + + -- LSP + use 'neovim/nvim-lspconfig' + use 'onsails/lspkind-nvim' + use 'kabouzeid/nvim-lspinstall' + use 'simrat39/rust-tools.nvim' + + -- Autocomplete + use 'hrsh7th/nvim-compe' + use 'SirVer/ultisnips' + use 'honza/vim-snippets' + use 'windwp/nvim-autopairs' + use 'AndrewRadev/tagalong.vim' + use 'andymass/vim-matchup' + + -- Treesitter + use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' } + use 'p00f/nvim-ts-rainbow' + use 'lukas-reineke/indent-blankline.nvim' + use 'JoosepAlviste/nvim-ts-context-commentstring' + use 'romgrk/nvim-treesitter-context' + + -- Syntax + use 'moll/vim-node' + -- use 'zinit-zsh/zplugin-vim-syntax' -- NOT WORKING + use 'editorconfig/editorconfig-vim' + use 'chrisbra/csv.vim' + use 'npxbr/glow.nvim' + use 'junegunn/vim-easy-align' + + -- Icons + use 'kyazdani42/nvim-web-devicons' + use 'ryanoasis/vim-devicons' + + -- Status Line and Bufferline + use 'famiu/feline.nvim' -- A minimal, stylish and customizable statusline for Neovim written in Lua + use 'romgrk/barbar.nvim' -- Tabs, as understood by any other editor. + + -- Telescope project search + use 'nvim-lua/popup.nvim' + use 'nvim-lua/plenary.nvim' + use 'nvim-telescope/telescope.nvim' + use 'nvim-telescope/telescope-fzy-native.nvim' + use 'nvim-telescope/telescope-project.nvim' + use 'fhill2/telescope-ultisnips.nvim' + + -- Explorer + use 'kyazdani42/nvim-tree.lua' + + -- Git + use 'kdheepak/lazygit.nvim' + + -- Flutter + use 'akinsho/flutter-tools.nvim' + + -- Move & Search & replace + use 'windwp/nvim-spectre' + use 'nacro90/numb.nvim' + use 'dyng/ctrlsf.vim' + use 'kevinhwang91/nvim-hlslens' -- nvim-hlslens helps you better glance at matched information, seamlessly jump between matched instances. + use 'ggandor/lightspeed.nvim' + use 'kshenoy/vim-signature' + use 'karb94/neoscroll.nvim' + use 'dstein64/nvim-scrollview' + use 'chaoren/vim-wordmotion' + + -- Tim Pope docet + use 'tpope/vim-sensible' + use 'tpope/vim-rails' + use 'tpope/vim-abolish' + use 'tpope/vim-surround' + use 'tpope/vim-bundler' + use 'tpope/vim-capslock' + use 'tpope/vim-repeat' + use 'tpope/vim-endwise' -- auto complete block with end + use 'tpope/vim-rvm' + use 'tpope/vim-dispatch' + use 'tpope/vim-dadbod' + use 'tpope/vim-jdaddy' + use 'tpope/vim-fugitive' + use 'tpope/vim-commentary' + + -- Tmux + use 'christoomey/vim-tmux-navigator' + + -- Colorschema + use 'dracula/vim' + use 'whatyouhide/vim-gotham' + use 'shaunsingh/moonlight.nvim' + + -- Tags + use 'ludovicchabant/vim-gutentags' + + -- General Plugins + use 'github/copilot.vim' -- Copilot is a vim plugin that helps you to create your own vim plugins. + use 'rcarriga/nvim-notify' -- fancy notification + use 'mfussenegger/nvim-dap' -- debugger + use 'numtostr/FTerm.nvim' -- Floating terminal + use 'folke/todo-comments.nvim' + use 'lambdalisue/suda.vim' + use 'mhinz/vim-startify' -- The fancy start screen for Vim. +end + +function init() + local install_path = fn.stdpath('data')..'/site/pack/packer/opt/packer.nvim' + + if fn.empty(fn.glob(install_path)) > 0 then + fn.system({'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path}) + cmd 'packadd packer.nvim' + end + + cmd 'packadd packer.nvim' + + require('packer').startup(install_packages) + + call_with_helpers(configure_packages) +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/init.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/init.lua new file mode 100644 index 0000000..4d7421b --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/init.lua @@ -0,0 +1,11 @@ +local function init() + call_with_helpers(require('plugins.lspconfig.lua').init) + call_with_helpers(require('plugins.lspconfig.rust').init) + call_with_helpers(require('plugins.lspconfig.typescript').init) + call_with_helpers(require('plugins.lspconfig.ruby').init) + call_with_helpers(require('plugins.lspconfig.php').init) +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/lua.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/lua.lua new file mode 100644 index 0000000..8175d4f --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/lua.lua @@ -0,0 +1,48 @@ +local function init() + local system_name + if vim.fn.has("mac") == 1 then + system_name = "macOS" + elseif vim.fn.has("unix") == 1 then + system_name = "Linux" + elseif vim.fn.has('win32') == 1 then + system_name = "Windows" + else + print("Unsupported system for sumneko") + end + + local sumneko_root_path = fn.stdpath('cache')..'/lspconfig/sumneko_lua/lua-language-server' + local sumneko_binary = sumneko_root_path.."/bin/"..system_name.."/lua-language-server" + + require'lspconfig'.sumneko_lua.setup{ + cmd = {sumneko_binary, "-E", sumneko_root_path .. "/main.lua"}; + settings = { + Lua = { + runtime = { + -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) + version = 'LuaJIT', + -- Setup your lua path + path = vim.split(package.path, ';'), + }, + diagnostics = { + -- Get the language server to recognize the `vim` global + globals = {'vim'}, + }, + workspace = { + -- Make the server aware of Neovim runtime files + library = { + [vim.fn.expand('$VIMRUNTIME/lua')] = true, + [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true, + }, + }, + -- Do not send telemetry data containing a randomized but unique identifier + telemetry = { + enable = false, + }, + }, + }, + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/php.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/php.lua new file mode 100644 index 0000000..cba5eaa --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/php.lua @@ -0,0 +1,7 @@ +local function init() + require'lspconfig'.phpactor.setup{} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/ruby.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/ruby.lua new file mode 100644 index 0000000..1523565 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/ruby.lua @@ -0,0 +1,7 @@ +local function init() + require'lspconfig'.sorbet.setup{} +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/rust.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/rust.lua new file mode 100644 index 0000000..97572cc --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/rust.lua @@ -0,0 +1,7 @@ +local function init() + require'lspconfig'.rust_analyzer.setup{} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/typescript.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/typescript.lua new file mode 100644 index 0000000..b41fa45 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/lspconfig/typescript.lua @@ -0,0 +1,7 @@ +local function init() + require'lspconfig'.tsserver.setup{} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-autopairs.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-autopairs.lua new file mode 100644 index 0000000..a054985 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-autopairs.lua @@ -0,0 +1,11 @@ +local function init() + require('nvim-autopairs').setup() + require("nvim-autopairs.completion.compe").setup({ + map_cr = true, -- map on insert mode + map_complete = true -- it will auto insert `(` after select function or method item + }) +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-ctrlsf.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-ctrlsf.lua new file mode 100644 index 0000000..c97c136 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-ctrlsf.lua @@ -0,0 +1,9 @@ +local function init() + g.ctrlsf_ackprg = 'rg' + g.ctrls_auto_preview = 1 + g.ctrlsf_search_mode = 'async' +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-editorconfig.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-editorconfig.lua new file mode 100644 index 0000000..edcc6fd --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-editorconfig.lua @@ -0,0 +1,7 @@ +local function init() + g.EditorConfig_exclude_patterns = { 'fugitive://.*', 'scp://.*' } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-feline.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-feline.lua new file mode 100644 index 0000000..2ca3ac9 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-feline.lua @@ -0,0 +1,7 @@ +local function init() + require('feline').setup() +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-flutter-tools.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-flutter-tools.lua new file mode 100644 index 0000000..d43029a --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-flutter-tools.lua @@ -0,0 +1,15 @@ +local function init() + require('flutter-tools').setup { + decorations = { + statusline = { + app_version = true, + device = true + } + }, + fvm = true + } +end + +return { + init = init +} diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-fterm.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-fterm.lua new file mode 100644 index 0000000..98e69cc --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-fterm.lua @@ -0,0 +1,15 @@ +local function init() + require'FTerm'.setup { + border = 'double', + dimensions = { + height = 0.8, + width = 0.8, + x = 0.5, + y = 0.5 + } + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-gutentags.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-gutentags.lua new file mode 100644 index 0000000..bf733b9 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-gutentags.lua @@ -0,0 +1,17 @@ +local function init() + cmd('set tags+=tags,.git/tags') + g.gutentags_enabled = 1 + g.gutentags_generate_on_missing = 1 + g.gutentags_generate_on_write = 1 + g.gutentags_resolve_symlinks = 1 + g.gutentags_ctags_tagfile = '.git/tags' + g.gutentags_project_root = { '.git' } + g.gutentags_ctags_extra_args = { '--fields=+l' } + g.gutentags_add_default_project_roots = 0 + g.gutentags_ctags_executable_ruby = 'ripper-tags' + g.gutentags_ctags_extra_args = { '--ignore-unsupported-options', '--recursive' } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-hlslens.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-hlslens.lua new file mode 100644 index 0000000..53d1031 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-hlslens.lua @@ -0,0 +1,36 @@ +local function init() + require('hlslens').setup { + calm_down = true, + override_lens = function(render, plist, nearest, idx, r_idx) + local sfw = vim.v.searchforward == 1 + local indicator, text, chunks + local abs_r_idx = math.abs(r_idx) + if abs_r_idx > 1 then + indicator = string.format('%d%s', abs_r_idx, sfw ~= (r_idx > 1) and '' or '') + elseif abs_r_idx == 1 then + indicator = sfw ~= (r_idx == 1) and '' or '' + else + indicator = '' + end + + local lnum, col = unpack(plist[idx]) + if nearest then + local cnt = #plist + if indicator ~= '' then + text = string.format('[%s %d/%d]', indicator, idx, cnt) + else + text = string.format('[%d/%d]', idx, cnt) + end + chunks = {{' ', 'Ignore'}, {text, 'HlSearchLensNear'}} + else + text = string.format('[%s %d]', indicator, idx) + chunks = {{' ', 'Ignore'}, {text, 'HlSearchLens'}} + end + render.set_virt(0, lnum - 1, col - 1, chunks, nearest) + end + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-indent-blankline.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-indent-blankline.lua new file mode 100644 index 0000000..9c5a278 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-indent-blankline.lua @@ -0,0 +1,12 @@ +local function init() + g.indent_blankline_show_current_context = true + g.indent_blankline_buftype_exclude = {'terminal'} + g.indent_blankline_filetype_exclude = {'help', 'startify', 'dashboard', 'packer', 'neogitstatus', 'NvimTree'} + g.indent_blankline_char = '▏' + g.indent_blankline_use_treesitter = true + g.indent_blankline_show_trailing_blankline_indent = false +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lightspeed.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lightspeed.lua new file mode 100644 index 0000000..e3fbd94 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lightspeed.lua @@ -0,0 +1,7 @@ +local function init() + require("lightspeed").setup {} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lspkind.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lspkind.lua new file mode 100644 index 0000000..b240e21 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-lspkind.lua @@ -0,0 +1,9 @@ +local function init() + require('lspkind').init { + with_text = true, + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-neoscroll.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-neoscroll.lua new file mode 100644 index 0000000..45c4efe --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-neoscroll.lua @@ -0,0 +1,7 @@ +local function init() + require('neoscroll').setup() +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-notify.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-notify.lua new file mode 100644 index 0000000..b3b52d4 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-notify.lua @@ -0,0 +1,7 @@ +local function init() + vim.notify = require("notify") +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-numb.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-numb.lua new file mode 100644 index 0000000..a2cec5a --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-numb.lua @@ -0,0 +1,10 @@ +local function init() + require('numb').setup { + show_numbers = true, -- Enable 'number' for the window while peeking + show_cursorline = true -- Enable 'cursorline' for the window while peeking + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-rust-tools.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-rust-tools.lua new file mode 100644 index 0000000..76519e4 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-rust-tools.lua @@ -0,0 +1,119 @@ +local opts = { + tools = { -- rust-tools options + -- Automatically set inlay hints (type hints) + autoSetHints = true, + + -- Whether to show hover actions inside the hover window + -- This overrides the default hover handler + hover_with_actions = true, + + -- how to execute terminal commands + -- options right now: termopen / quickfix + executor = require("rust-tools/executors").termopen, + + runnables = { + -- whether to use telescope for selection menu or not + use_telescope = true + + -- rest of the opts are forwarded to telescope + }, + + debuggables = { + -- whether to use telescope for selection menu or not + use_telescope = true + + -- rest of the opts are forwarded to telescope + }, + + -- These apply to the default RustSetInlayHints command + inlay_hints = { + + -- Only show inlay hints for the current line + only_current_line = false, + + -- Event which triggers a refersh of the inlay hints. + -- You can make this "CursorMoved" or "CursorMoved,CursorMovedI" but + -- not that this may cause higher CPU usage. + -- This option is only respected when only_current_line and + -- autoSetHints both are true. + only_current_line_autocmd = "CursorHold", + + -- wheter to show parameter hints with the inlay hints or not + show_parameter_hints = true, + + -- prefix for parameter hints + parameter_hints_prefix = "<- ", + + -- prefix for all the other hints (type, chaining) + other_hints_prefix = "=> ", + + -- whether to align to the length of the longest line in the file + max_len_align = false, + + -- padding from the left if max_len_align is true + max_len_align_padding = 1, + + -- whether to align to the extreme right or not + right_align = false, + + -- padding from the right if right_align is true + right_align_padding = 7, + + -- The color of the hints + highlight = "Comment", + }, + + hover_actions = { + -- the border that is used for the hover window + -- see vim.api.nvim_open_win() + border = { + {"╭", "FloatBorder"}, {"─", "FloatBorder"}, + {"╮", "FloatBorder"}, {"│", "FloatBorder"}, + {"╯", "FloatBorder"}, {"─", "FloatBorder"}, + {"╰", "FloatBorder"}, {"│", "FloatBorder"} + }, + + -- whether the hover action window gets automatically focused + auto_focus = false + }, + + -- settings for showing the crate graph based on graphviz and the dot + -- command + crate_graph = { + -- Backend used for displaying the graph + -- see: https://graphviz.org/docs/outputs/ + -- default: x11 + backend = "x11", + -- where to store the output, nil for no output stored (relative + -- path from pwd) + -- default: nil + output = nil, + -- true for all crates.io and external crates, false only the local + -- crates + -- default: true + full = true, + } + }, + + -- all the opts to send to nvim-lspconfig + -- these override the defaults set by rust-tools.nvim + -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer + server = {}, -- rust-analyer options + + -- debugging stuff + dap = { + adapter = { + type = 'executable', + command = 'lldb-vscode', + name = "rt_lldb" + } + } +} + +local function init() + require('rust-tools').setup(opts) +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-signature.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-signature.lua new file mode 100644 index 0000000..9f93972 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-signature.lua @@ -0,0 +1,8 @@ +local function init() + g.SignatureMarkTextHLDynamic = 1 + g.SignatureMarkerTextHLDynamic = 1 +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-todo-comments.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-todo-comments.lua new file mode 100644 index 0000000..bf56103 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-todo-comments.lua @@ -0,0 +1,61 @@ +local function init() + require("todo-comments").setup { + signs = true, -- show icons in the signs column + sign_priority = 8, -- sign priority + -- keywords recognized as todo comments + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = { icon = " ", color = "info" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + }, + merge_keywords = true, -- when true, custom keywords will be merged with the defaults + -- highlighting of the line containing the todo comment + -- * before: highlights before the keyword (typically comment characters) + -- * keyword: highlights of the keyword + -- * after: highlights after the keyword (todo text) + highlight = { + before = "", -- "fg" or "bg" or empty + keyword = "wide", -- "fg", "bg", "wide" or empty. (wide is the same as bg, but will also highlight surrounding characters) + after = "fg", -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlightng (vim regex) + comments_only = true, -- uses treesitter to match keywords in comments only + max_line_len = 400, -- ignore lines longer than this + exclude = {}, -- list of file types to exclude highlighting + }, + -- list of named colors where we try to extract the guifg from the + -- list of hilight groups or use the hex color if hl not found as a fallback + colors = { + error = { "LspDiagnosticsDefaultError", "ErrorMsg", "#DC2626" }, + warning = { "LspDiagnosticsDefaultWarning", "WarningMsg", "#FBBF24" }, + info = { "LspDiagnosticsDefaultInformation", "#2563EB" }, + hint = { "LspDiagnosticsDefaultHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + -- regex that will be used to match keywords. + -- don't replace the (KEYWORDS) placeholder + pattern = [[\b(KEYWORDS):]], -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives + }, + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-tree.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..c9c370c --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,7 @@ +local function init() + require'nvim-tree'.setup {} +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-treesitter.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-treesitter.lua new file mode 100644 index 0000000..1f64e47 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-treesitter.lua @@ -0,0 +1,16 @@ +local function init() + require'nvim-treesitter.configs'.setup { + ensure_installed = "all", -- list of languages + highlight = { + enable = true, + }, + rainbow = { + enable = true, + extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean + } + } +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-web-devicons.lua b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-web-devicons.lua new file mode 100644 index 0000000..77e6749 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/nvim/lua/plugins/nvim-web-devicons.lua @@ -0,0 +1,12 @@ +local function init() + require'nvim-web-devicons'.setup { + -- globally enable default icons (default to false) + -- will get overriden by `get_icons` option + default = true; + } + require'nvim-web-devicons'.get_icons() +end + +return { + init = init +} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/picom/picom.conf b/dot_local/share/chezmoi/literal_dot_config/picom/picom.conf new file mode 100644 index 0000000..7382aa0 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/picom/picom.conf @@ -0,0 +1,416 @@ +################################# +# Shadows # +################################# + + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +# shadow-radius = 12 +shadow-radius = 7; + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +# shadow-opacity = .75 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +shadow-offset-x = -7; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +shadow-offset-y = -7; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +# shadow-exclude = "n:e:Notification"; +# +# shadow-exclude = [] +shadow-exclude = [ + "name = 'Notification'", + "class_g = 'Conky'", + "class_g ?= 'Notify-osd'", + "class_g = 'Cairo-clock'", + "_GTK_FRAME_EXTENTS@:c" +]; + +# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. +# clip-shadow-above = [] + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular Xinerama screen to the screen. +# xinerama-shadow-crop = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = false; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.03; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.03; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +# fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# fade-exclude = [] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +inactive-opacity = 1; + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +frame-opacity = 1; + +# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows. +# inactive-opacity-override = true +inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +# active-opacity = 1.0 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.0 + +# Specify a list of conditions of windows that should never be considered focused. +# focus-exclude = [] +focus-exclude = [ "class_g = 'Cairo-clock'" ]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 1.0 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [] + + +################################# +# Corners # +################################# + +# Sets the radius of rounded window corners. When > 0, the compositor will +# round the corners of windows. Does not interact well with +# `transparent-clipping`. +corner-radius = 0 + +# Exclude conditions for rounded corners. +rounded-corners-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'" +]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +# blur-method = +# blur-size = 12 +# +# blur-deviation = false +# +# blur-strength = 5 + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = false + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = "" +blur-kern = "3x3box"; + + +# Exclude conditions for background blur. +# blur-background-exclude = [] +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +################################# +# General Settings # +################################# + +# Enable remote control via D-Bus. See the man page for more details. +# dbus = true + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +backend = "glx"; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +mark-ovredir-focused = true; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +detect-rounded-corners = true; + +# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +detect-client-opacity = true; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +# use-ewmh-active-win = false + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. This usually means windows from the same application +# will be considered focused or unfocused at the same time. +# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too. +# +# detect-client-leader = false + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn everytime, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window contents. +# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` +# in the source tree for examples. +# +# glx-fshader-win = "" + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +# transparent-clipping = false + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "warn"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# clip-shadow-above::: +# Controls wether shadows that would have been drawn above the window should +# be clipped. Useful for dock windows that should have no shadow painted on top. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.8; } + dropdown_menu = { opacity = 0.8; } +}; diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini b/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini new file mode 100644 index 0000000..e7ce4ba --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini @@ -0,0 +1,18 @@ +[colors] + +dark0_hard = #121519 +dark0_soft = #29313c +light0_hard = #eaeadd +light0_soft = #d3ccc4 +faded_red = #FD3044 +faded_green = #946D5A +faded_yellow = #C49965 +faded_blue = #EFB590 +faded_purple = #D23243 +faded_aqua = #A2817D +bright_red = #ff2a48 +bright_green = #cf8865 +bright_yellow = #ffc86f +bright_blue = #ffe5a2 +bright_purple = #ff3049 +bright_aqua = #e5998f \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini.base b/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini.base new file mode 100644 index 0000000..9082f50 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/colors.ini.base @@ -0,0 +1,18 @@ +[colors] + +dark0_hard = {color0} +dark0_soft = {color8} +light0_hard = {color15} +light0_soft = {color7} +faded_red = {color1} +faded_green = {color2} +faded_yellow = {color3} +faded_blue = {color4} +faded_purple = {color5} +faded_aqua = {color6} +bright_red = {color9} +bright_green = {color10} +bright_yellow = {color11} +bright_blue = {color12} +bright_purple = {color13} +bright_aqua = {color14} \ No newline at end of file diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/config.ini b/dot_local/share/chezmoi/literal_dot_config/polybar/config.ini new file mode 100644 index 0000000..013ab43 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/config.ini @@ -0,0 +1,324 @@ +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; ------------------------------------------- + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/custom_modules.ini + +;; ------------------------------------------- + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = "eDP" + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = "HDMI-2" + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 42 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${colors.dark0_hard} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${colors.light0_soft} + +; overline-size = 5 +border-size = 0 + +border-bottom-size = 0 +border-bottom-color = ${colors.dark0_hard} +border-top-size = 0 +border-top-color = ${colors.dark0_hard} + +border-left-size = 0 +border-left-color = ${colors.dark0_hard} + +border-right-size = 8 +border-right-color = ${colors.dark0_hard} + +padding-left = 0 +padding-right = 0 + +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using ; +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; font-0 = "IBM Plex Mono:size=11:style=Medium;2" +; font-0 = "NotoSansMono Nerd Font:size=11:style=Medium;2" + +; font-0 = "OverpassMono Nerd Font:size=11;3" +; font-0 = "Everson Mono:size=12:style=Bold;5" +; font-0 = "Pragmata Pro Mono:size=11;4" + +; main font +; font-0 = "RobotoMono Nerd Font:style=Medium:size=11;3" +; font-0 = "Inter:size=11:style=Semi Bold;3" +; font-0 = "Jost:size=12;4" +; font-0 = "Pragmata Pro Mono:size=11:style=Medium;3" +; font-0 = "Recursive Mono Static Beta 1.020 Linear SemiBold:size=11:style=SemiBold;3" + +; font-0 = "mononoki Nerd Font:size=11;2" +;font-0 = "JetBrains Mono:size=11:style=Medium;3" +; font-0 = "Input Mono Compressed:size=11:style=Regular;3" +; font-0 = "cherry:size=13;2" +; font-0 = "Cozette:size=11;2" +; font-0 = "dina:size=10;2" +; font-0 = "Tamzen:size=17;2" +; font-0 = "unifont:size=17;2" +; font-0 = "Iosevka Term:size=11:style=Medium;2" + + +; font-0 = "ProggySquareTTSZ:size=12;2" +; font-0 = "ypn envypn:size=14;2" + +; font-0 = "NotoSansMono Nerd Font:size=11:style=Medium;2" + +; tray icons +font-1 = "RobotoMono Nerd Font:size=11;1" +; font-1 = "feather:size=13" + +; workspace icons +; font-2 = "feather:size=16;3" +font-2 = "RobotoMono Nerd Font:style=Medium:size=16" +; +; font-1 = "unifont:size=20;2" +; font-1 = "NotoSansMono Nerd Font:size=11;3" +; tray +font-3 = "Pragmata Pro Mono:size=11:style=Medium;3" +; font-2 = "Tamzen:size=12;3" +; bars +; font-3 = "Cozette:size=10;4" +; font-3 = "ProggyCleanTTSZ Nerd Font Complete Windows Compatible:size=10;3" +; font-3 = "RobotoMono Nerd Font:style=Medium:size=5;4" + +; Modules are added to one of the available blocks +; modules-left = cpu ram +; modules-center = xwindow xbacklight +; modules-right = ipc clock + +;; Available modules +;; +;alsa backlight battery +;bspwm cpu date +;filesystem github i3 +;memory mpd wired-network +;network pulseaudio temperature +;keyboard title workspaces +;; +;; User modules +;checknetwork updates window_switch launcher powermenu sysmenu menu style +;; +;; Bars +;cpu_bar memory_bar filesystem_bar mpd_bar +;volume brightness battery_bar + +modules-left = i3 +modules-center = +modules-right = healthbar volume custom_time + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1.0 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = i3 + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = right + +; If true, the bar will not shift its +; contents when the tray changes +; tray-detached = false + +; Tray icon max size +; tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +# tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +# tray-background = ${color.bg} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; tray-offset-x = 0 +; tray-offset-y = 0 + +; Pad the sides of each tray icon +; tray-padding = 0 + +; Scale factor for tray clients +; tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +; wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;openbox +;awesome +;etc + +;; ------------------------------------------- + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = true + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +format-foreground = +format-background = +format-underline = +format-overline = +format-spacing = +format-padding = +format-margin = +format-offset = diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/config_bottom.ini b/dot_local/share/chezmoi/literal_dot_config/polybar/config_bottom.ini new file mode 100644 index 0000000..e9bf3ad --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/config_bottom.ini @@ -0,0 +1,278 @@ +;; Global WM Settings + +[global/wm] +; Adjust the _NET_WM_STRUT_PARTIAL top value +; Used for top aligned bars +margin-bottom = 0 + +; Adjust the _NET_WM_STRUT_PARTIAL bottom value +; Used for bottom aligned bars +margin-top = 0 + +;; ------------------------------------------- + +;; File Inclusion +; include an external file, like module file, etc. + +include-file = ~/.config/polybar/colors.ini +include-file = ~/.config/polybar/modules.ini +include-file = ~/.config/polybar/custom_modules.ini + +;; ------------------------------------------- + +;; Bar Settings + +[bar/main] +; Use either of the following command to list available outputs: +; If unspecified, the application will pick the first one it finds. +; $ polybar -m | cut -d ':' -f 1 +; $ xrandr -q | grep " connected" | cut -d ' ' -f1 +monitor = "eDP-1" + +; Use the specified monitor as a fallback if the main one is not found. +monitor-fallback = "HDMI-2" + +; Require the monitor to be in connected state +; XRandR sometimes reports my monitor as being disconnected (when in use) +monitor-strict = false + +; Tell the Window Manager not to configure the window. +; Use this to detach the bar if your WM is locking its size/position. +override-redirect = false + +; Put the bar at the bottom of the screen +bottom = true + +; Prefer fixed center position for the `modules-center` block +; When false, the center position will be based on the size of the other blocks. +fixed-center = true + +; Dimension defined as pixel value (e.g. 35) or percentage (e.g. 50%), +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in a width or height of 50% minus 10 pixels +width = 100% +height = 42 + +; Offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; the percentage can optionally be extended with a pixel offset like so: +; 50%:-10, this will result in an offset in the x or y direction +; of 50% minus 10 pixels +offset-x = 0 +offset-y = 0 + +; Background ARGB color (e.g. #f00, #ff992a, #ddff1023) +background = ${colors.dark0_hard} + +; Foreground ARGB color (e.g. #f00, #ff992a, #ddff1023) +foreground = ${colors.light0_hard} + +; border-size = 0 +overline-size = 30 +overline-color = ${colors.bright_red} + +padding-left = 1 +padding-right = 1 + +module-margin-left = 0 +module-margin-right = 0 + +; Fonts are defined using ; +; Font names are specified using a fontconfig pattern. +; font-0 = NotoSans-Regular:size=8;2 +; font-1 = MaterialIcons:size=10 +; font-2 = Termsynu:size=8;-1 +; font-3 = FontAwesome:size=10 +; See the Fonts wiki page for more details + +; font-0 = "IBM Plex Mono:size=11;2" +; font-0 = "NotoSansMono Nerd Font:size=11;2" + +; font-0 = "OverpassMono Nerd Font:size=11;4" +; font-0 = "Everson Mono:size=14;5" +; font-0 = "Pragmata Pro Mono:size=11;4" + +; main font +font-0 = "RobotoMono Nerd Font:size=11;2" +; font-0 = "JetBrains Mono:size=11;2" +; font-0 = "mononoki Nerd Font:size=11;2" +; font-0 = "dina:size=17;2" +; font-0 = "Tamzen:size=17;2" +; font-0 = "Pragmata Pro Mono:size=11:style=Medium;4" +; font-0 = "ProggySquareTTSZ:size=12;2" +; font-0 = "Cozette:size=14;2" +; font-0 = "ypn envypn:size=14;2" +; font-0 = "Iosevka Nerd Font:size=11:style=Medium;3" + + +; workspace icons +font-1 = "feather:size=13;3" +; font-1 = "Cozette:size=14;2" +; tray +font-2 = "Pragmata Pro Mono:size=11:style=Medium;3" +; font-2 = "Cozette:size=14;2" +; bars +; font-3 = "xos4 Terminus:size=11;3" +font-3 = "Cozette:size=10;4" + + +modules-left = memory cpu michurin +modules-center = +modules-right = netspeed + +; The separator will be inserted between the output of each module +separator = + +; This value is used to add extra spacing between elements +; @deprecated: This parameter will be removed in an upcoming version +; spacing = 0 + +; Opacity value between 0.0 and 1.0 used on fade in/out +dim-value = 1 + +; Value to be used to set the WM_NAME atom +; If the value is empty or undefined, the atom value +; will be created from the following template: polybar-[BAR]_[MONITOR] +; NOTE: The placeholders are not available for custom values +wm-name = i3 + +; Locale used to localize various module data (e.g. date) +; Expects a valid libc locale, for example: sv_SE.UTF-8 +locale = + +; Position of the system tray window +; If empty or undefined, tray support will be disabled +; NOTE: A center aligned tray will cover center aligned modules +; +; Available positions: +; left +; center +; right +; none +tray-position = none + +; If true, the bar will not shift its +; contents when the tray changes +; tray-detached = false + +; Tray icon max size +; tray-maxsize = 16 + +; DEPRECATED! Since 3.3.0 the tray always uses pseudo-transparency +; Enable pseudo transparency +; Will automatically be enabled if a fully transparent +; background color is defined using `tray-background` +# tray-transparent = false + +; Background color for the tray container +; ARGB color (e.g. #f00, #ff992a, #ddff1023) +; By default the tray container will use the bar +; background color. +# tray-background = ${color.bg} + +; Tray offset defined as pixel value (e.g. 35) or percentage (e.g. 50%) +; tray-offset-x = 0 +; tray-offset-y = 0 + +; Pad the sides of each tray icon +; tray-padding = 0 + +; Scale factor for tray clients +; tray-scale = 1.0 + +; Restack the bar window and put it above the +; selected window manager's root +; +; Fixes the issue where the bar is being drawn +; on top of fullscreen window's +; +; Currently supported WM's: +; bspwm +; i3 (requires: `override-redirect = true`) +; wm-restack = + +; Set a DPI values used when rendering text +; This only affects scalable fonts +; dpi = + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = +scroll-down = +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +;; WM Workspace Specific + +; bspwm +;;scroll-up = bspwm-desknext +;;scroll-down = bspwm-deskprev +;;scroll-up = bspc desktop -f prev.local +;;scroll-down = bspc desktop -f next.local + +;i3 +;;scroll-up = i3wm-wsnext +;;scroll-down = i3wm-wsprev +;;scroll-up = i3-msg workspace next_on_output +;;scroll-down = i3-msg workspace prev_on_output + +;openbox +;awesome +;etc + +;; ------------------------------------------- + +;; Application Settings + +[settings] +; The throttle settings lets the eventloop swallow up til X events +; if they happen within Y millisecond after first event was received. +; This is done to prevent flood of update event. +; +; For example if 5 modules emit an update event at the same time, we really +; just care about the last one. But if we wait too long for events to swallow +; the bar would appear sluggish so we continue if timeout +; expires or limit is reached. +throttle-output = 5 +throttle-output-for = 10 + +; Time in milliseconds that the input handler will wait between processing events +throttle-input-for = 30 + +; Reload upon receiving XCB_RANDR_SCREEN_CHANGE_NOTIFY events +screenchange-reload = true + +; Compositing operators +; @see: https://www.cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +format-foreground = +format-background = +format-underline = +format-overline = +format-spacing = +format-padding = +format-margin = +format-offset = + +pseudo-transparency = true diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/custom_modules.ini b/dot_local/share/chezmoi/literal_dot_config/polybar/custom_modules.ini new file mode 100644 index 0000000..5fca07a --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/custom_modules.ini @@ -0,0 +1,133 @@ +[module/healthbar] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_healthbar.sh +tail = true +interval = 3 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 + +[module/wifibar] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_wifibar.sh +tail = true +interval = 3 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 + +[module/netspeed] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_net_speed.sh +tail = true +interval = 2 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 + +[module/bluetooth_speaker] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_bluetooth_speaker.sh +tail = true +interval = 3 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 +format-font = 1 + +#[module/michurin] +#type = custom/script +#exec = ~/.cache/pypoetry/virtualenvs/machaerus-afsOMv7y-py3.10/bin/python ~/.local/bin/scripts/polybar_michurin.py +#tail = true +#interval = 5 + +#format-background = ${colors.dark0_hard} +#format-foreground = ${colors.light0_soft} +#format-padding = 1 +#format-font = 1 + +[module/net_indicator] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_net_indicator.sh +tail = true +interval = 3 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 +format-font = 1 + +click-left = kitty -e nmtui-connect + +[module/tresorit_indicator] +type = custom/script +exec = ~/.config/polybar/scripts/tresorit_indicator.sh +tail = true +interval = 2 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 +format-font = 1 + +click-left = tresorit + +[module/dunst_indicator] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_dunst_indicator.sh +tail = true +interval = 1 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 +format-font = 1 + +click-left = dunstctl set-paused toggle + +[module/custom_time] +type = custom/script +exec = ~/.config/polybar/scripts/polybar_custom_time.sh +tail = true +interval = 1 + +format-background = ${colors.dark0_hard} +format-foreground = ${colors.light0_soft} +format-padding = 1 +format-font = 1 + +[module/redblock] +type = custom/text +content = " " +tail = true +interval = 10 +content-background = ${colors.faded_red} +content-padding = 1 + +[module/yellowblock] +type = custom/text +content = " " +tail = true +interval = 10 +content-background = ${colors.faded_yellow} +content-padding = 1 + +[module/greenblock] +type = custom/text +content = " " +tail = true +interval = 10 +content-background = ${colors.faded_green} +content-padding = 1 + +[module/blueblock] +type = custom/text +content = " " +tail = true +interval = 10 +content-background = ${colors.faded_blue} +content-padding = 1 diff --git a/dot_local/share/chezmoi/literal_dot_config/polybar/modules.ini b/dot_local/share/chezmoi/literal_dot_config/polybar/modules.ini new file mode 100644 index 0000000..52ffe20 --- /dev/null +++ b/dot_local/share/chezmoi/literal_dot_config/polybar/modules.ini @@ -0,0 +1,552 @@ +[module/volume] +type = internal/pulseaudio + +use-ui-max = false + +; format-volume =  +format-volume = +format-volume-background = ${colors.dark0_hard} +format-volume-foreground = ${colors.light0_soft} +format-volume-padding = 1 +format-font = 4 + +ramp-volume-0 =  +ramp-volume-1 =  +ramp-volume-2 =  + +format-muted =  +; format-muted =  +format-muted-background = ${colors.dark0_hard} +format-muted-foreground = ${colors.faded_red} +format-muted-padding = 1 +format-muted-font = 4 + +; label-volume = %percentage%% + +; bar-muted-foreground = "#aaaaaa" + +; label-muted = "---- muted ----" +; label-muted = "∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣" +; label-muted = "───────────────" +label-muted = "···············" +; label-muted = "" + +bar-volume-width = 16 +bar-volume-gradient = false + +bar-volume-indicator = +bar-volume-indicator-foreground = ${colors.light0_soft} +bar-volume-indicator-font = 4 + +; bar-volume-fill = ─ +bar-volume-fill = · +; bar-volume-fill = ∣ +bar-volume-foreground-0 = ${colors.faded_yellow} +; bar-volume-foreground-0 = "#aaaaaa" +bar-volume-fill-font = 4 + +; bar-volume-empty = ─ +bar-volume-empty = · +; bar-volume-empty = ∣ +bar-volume-empty-foreground = ${colors.dark0_soft} +bar-volume-empty-font = 4 + +click-right = tilix -e "pavucontrol" + +;; ------------------------------------------- + + +[module/menu-apps] +type = custom/menu + +; If true, will be to the left of the menu items (default). +; If false, it will be on the right of all the items. +expand-right = true + +; "menu-LEVEL-N" has the same properties as "label-NAME" with +; the additional "exec" property +; +; Commands will be executed using "/bin/sh -c $COMMAND" + +menu-0-0 = Browsers +menu-0-0-exec = #menu-apps.open.1 +menu-0-1 = Multimedia +menu-0-1-exec = #menu-apps.open.2 + +menu-1-0 = Firefox +menu-1-0-exec = firefox +menu-1-1 = Chromium +menu-1-1-exec = chromium + +menu-2-0 = Gimp +menu-2-0-exec = gimp +menu-2-1 = Scrot +menu-2-1-exec = scrot + +; Available tags: +; (default) - gets replaced with +; (default) +; If expand-right is true, the default will be "" and the +; other way around otherwise. +; Note that if you use you must also include +; the definition for +; format = + +label-open = Apps +label-close = x + +; Optional item separator +; Default: none +label-separator = | + +;; ------------------------------------------- + +[module/weather] +type = custom/script +exec = busctl --user -j get-property io.ntfd /weather openweathermap.strings RenderedTemplate | jq -r .data +interval = 60 +label-font = 2 + +;; ------------------------------------------- + +[module/date] +type = internal/date + +interval = 1.0 + +time = %A / %d %b %Y / %H:%M:%S +; time-alt = %Y-%m-%d + +format =