edit after chmod target dir

This commit is contained in:
BluishHumility 2023-11-08 21:59:54 -05:00
parent 65015934d7
commit e6044ae790
88 changed files with 9528 additions and 2 deletions

View File

@ -32,8 +32,8 @@ install=$pkgname.install
package() {
install -d "$pkgdir"/etc
cp -rf "$srcdir"/$pkgname-$pkgver/etc "$pkgdir"
cp -rf "$srcdir"/$pkgname/etc "$pkgdir"
install -d "$pkgdir"/usr
cp -rf "$srcdir"/$pkgname-$pkgver/usr "$pkgdir"
cp -rf "$srcdir"/$pkgname/usr "$pkgdir"
}

View File

@ -0,0 +1,80 @@
65015934d7d06404a66deae70a893146ae254e6c not-for-merge branch 'bluish-branch' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
2c9248f9d75fc9958ee06f1e2c4bfd4ede0d5476 not-for-merge branch 'master' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
57cf5462ab1edf6914c38452360452e008d47f58 not-for-merge 'refs/merge-requests/2/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
0bf8cf28a13c7010324a67b414c7cde003ff8532 not-for-merge 'refs/merge-requests/2/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
02c4c13a54ac43c56a1fb8ecf4ed75bb8fe6962a not-for-merge 'refs/merge-requests/3/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8a79b923452c3683023f49c81d3c17663e6708a5 not-for-merge 'refs/merge-requests/3/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
4a6e40fb542458949e7e273d3e4fdd9ab7e2fe48 not-for-merge 'refs/merge-requests/4/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
2e42d421ad96302b3ce626017f8ec8c015643eb8 not-for-merge 'refs/merge-requests/4/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
cd6beb3941783761f21db742d31a5cb63fca68f7 not-for-merge 'refs/merge-requests/5/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
1b0bc10039c38736f81cf06e5ba9abf4d26026db not-for-merge 'refs/merge-requests/5/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
0a7db7e485335b77c189bf17b0f4f2f6b746db8f not-for-merge 'refs/merge-requests/6/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
cf593f6d9f626d6508f838aa2d7c38452d0889c8 not-for-merge 'refs/merge-requests/6/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
9211a58624f9df6f94720cc2928e77218f027cb6 not-for-merge 'refs/merge-requests/7/head' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
28c2124e52cbaccaa5e40ef7f2a4ac93afe7be41 not-for-merge 'refs/merge-requests/7/merge' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
ffa74e7dc3d136b29ee8ff39b379fd2874e8f425 not-for-merge tag '1.0.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
5093c511110ce0900461ffdf6d2e49e367e5e283 not-for-merge tag '1.1.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
5093c511110ce0900461ffdf6d2e49e367e5e283 not-for-merge tag '1.1.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
5093c511110ce0900461ffdf6d2e49e367e5e283 not-for-merge tag '1.1.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
31bd9f0e44aa973e03b35e1bf3f4eb92d8fe59e5 not-for-merge tag '1.2.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
fd710119c271a9a4209a3b09481761cce129ef2f not-for-merge tag '1.2.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
01852945b42f751a9c823bb3809ab704f1968fb7 not-for-merge tag '1.2.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
fc15f8b3eb1b51c38f5c7540e2b7564523e012ba not-for-merge tag '1.2.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
ced1c7c5bb3b1ebb49ff04bf9e6931d6ed2e1151 not-for-merge tag '1.2.5' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
6687f67fefa24c1fd49f4894be071c54833a6289 not-for-merge tag '1.2.6' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
97e5c3d781c1ec3838dcd04b2db7c0022550021e not-for-merge tag '1.2.7' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
23dfa2af146a85b86eb118cdd62dba5b325ba538 not-for-merge tag '1.2.8' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
00c7fcf3c7b33e081801f63123e5ca7e52da5eab not-for-merge tag '1.2.9' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
05bdada235ad778b4e338754740c7b73c2265aac not-for-merge tag '1.3.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
34ae9560c51f1394f6b19b88dcf7a37cb6bc1365 not-for-merge tag '1.3.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
1124414af8cd0cbbe3ae2789e00f4fa10fe508aa not-for-merge tag '1.4.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
7d93dbd35eba1d140f363ed74f7e8d9779db3903 not-for-merge tag '1.4.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
d9a3fbc93391cda432890c1a30c71fbd936631b3 not-for-merge tag '1.4.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
3008d02fee68a069769bd6adb59be80f68b50368 not-for-merge tag '1.4.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
2727cd113b61878821c676155bc70cb5817adee6 not-for-merge tag '1.4.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
4a6b288952e3f2072f1a5ff719b9e52ab6bcd8aa not-for-merge tag '1.4.5' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
034051cbb4edae0cc7f2f438d93e5940532ef6e9 not-for-merge tag '2.0.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
ae0ea6a329f227c5dd1b3cecfe2bd017ea289966 not-for-merge tag '2.0.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
509af3db23437db11b962afba2dd3f0c61362b94 not-for-merge tag '2.0.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
f1a8a1a7d68afaaa630545c01b0bf4f81b69ca21 not-for-merge tag '2.0.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
842bd9711343428f7e63beae611b59459affa125 not-for-merge tag '2.0.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
892ccc3b63e6867758202097b6a3dd63cc52c19b not-for-merge tag '2.1.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
d74438ee6fae0b2c1456884f445cdd587e8c6de9 not-for-merge tag '2.1.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
5a59260464009dbbb5dcb4cb3c5ed4d9941fa174 not-for-merge tag '2.1.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
f122c5aff7dcb378dcc12a6b4bf85c0fd9088a39 not-for-merge tag '2.2.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
dcaa1d32a32c2580a51f01b8ae56a17d9bba4114 not-for-merge tag '2.2.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
140795a08e75ef68d89c1bf46e52b6efcd2d0f0f not-for-merge tag '2.2.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
cd129aa9f4b2b67d0a81378c6e9c0ffbd367f07e not-for-merge tag '2.3.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
21b1a6be25060a73d95f27ddef2ce892aecb8483 not-for-merge tag '2.4.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8dfe129aeafe0207a9125f8cca99b1fc02b3c238 not-for-merge tag '2.4.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
d5680db6ee6816635360b558da54ea72551cc30b not-for-merge tag '2.4.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
863c9b4e651c0c702ccd31baa1c475af41a0a29c not-for-merge tag '2.4.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
0e9dee7bccc00156e66d51cb142f288067bb08d3 not-for-merge tag '2.4.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
6a980152a69034362937c6579b06463b398f7167 not-for-merge tag '2.4.6' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
883261a610311023e5d6a438b0f768b6e30a5c7f not-for-merge tag '2.5.0' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8d8de27eb84aac0a53187e901127595403ab6d8b not-for-merge tag '2.5.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
50577314227ce319d5e002610c59ecd65d5c5489 not-for-merge tag '2.5.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8e5b36b2bd0a46901bf8320ed44e75b2dc392098 not-for-merge tag '2.5.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
5d44aed2ed5cbf3001b136ab1077f0991f0bdd43 not-for-merge tag '2.5.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
4907183622758d364ae9f574ff8d1b48c73854a0 not-for-merge tag '2.5.5' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
6089e29bd94ab7d2c69ad99a5d37a5c4e15a9602 not-for-merge tag '2.5.6' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
fa323e698984660635d70237b5f0b030bb704aff not-for-merge tag '2.5.7' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
58f1185dc7d564ef29edb99442bdd30de22437ee not-for-merge tag '2.5.8' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
3bee321867c0534ee63ac443bd7c69676b93e101 not-for-merge tag '2.6.1' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8cd319e3ccc0cb48e26450dd9bb631f8ce59da83 not-for-merge tag '2.6.10' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
42cbbf597a60a4390206865e8fcf719b5585b97d not-for-merge tag '2.6.11' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
493d089b930cb5943e55dbca11d6380b2c8d49b8 not-for-merge tag '2.6.12' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
47fd8f533346cf5c78bec05d3408e4765cf767c1 not-for-merge tag '2.6.13' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
8183f88e2e5c8998ac9228905c135fa6fad39b8d not-for-merge tag '2.6.14' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
f9ed84e9448f063184aac27bee19b258f925cd7c not-for-merge tag '2.6.15' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
1a40ada700a376a6aa887e1836a9776dfabc4b02 not-for-merge tag '2.6.16' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
d1e980192ca29d3ee9c5eb8558b868310f686be0 not-for-merge tag '2.6.17' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
97ad33de505224bb4afaf8c1fdc5e8dd9d4690ac not-for-merge tag '2.6.18' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
711f32cfb9c58050d9583ad6e5ff28c16da1944e not-for-merge tag '2.6.2' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
709d32977b88091657d622e2f6b66c55fdd76824 not-for-merge tag '2.6.3' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
ef5d7f428a2d714b10ff47ea0a805d30e41c0472 not-for-merge tag '2.6.4' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
c1c82187419699accad2cbcb07d58af36c244172 not-for-merge tag '2.6.5' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
2987bba05374d6d1d6fc6c23a8831c0ed8cba6db not-for-merge tag '2.6.6' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
59d794d3a7bc87bdb8983cf49d5fda178e63d847 not-for-merge tag '2.6.7' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
636fe36eed56d22f976a04c0d95190699cdf236e not-for-merge tag '2.6.8' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
c3526753009f3ba5a2c3f896851d25b7bfab23df not-for-merge tag '2.6.9' of https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings

View File

@ -0,0 +1 @@
ref: refs/heads/master

View File

@ -0,0 +1,8 @@
[core]
repositoryformatversion = 0
filemode = true
bare = true
[remote "origin"]
url = https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
fetch = +refs/*:refs/*
mirror = true

View File

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View File

@ -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+"$@"}
:

View File

@ -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
}

View File

@ -0,0 +1,174 @@
#!/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.
my $last_update_line = "";
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
$last_update_line = qq[\n"since": $last_update_token,];
}
my $query = <<" END";
["query", "$git_work_tree", {$last_update_line
"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 $/; <CHLD_OUT>};
# 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;
}

View File

@ -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

View File

@ -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+"$@"}
:

View File

@ -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 --

View File

@ -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"
:

View File

@ -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:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# 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 </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi

View File

@ -0,0 +1,77 @@
#!/bin/sh
# An example hook script to validate a patch (and/or patch series) before
# sending it via email.
#
# The hook should exit with non-zero status after issuing an appropriate
# message if it wants to prevent the email(s) from being sent.
#
# To enable this hook, rename this file to "sendemail-validate".
#
# By default, it will only check that the patch(es) can be applied on top of
# the default upstream branch without conflicts in a secondary worktree. After
# validation (successful or not) of the last patch of a series, the worktree
# will be deleted.
#
# The following config variables can be set to change the default remote and
# remote ref that are used to apply the patches against:
#
# sendemail.validateRemote (default: origin)
# sendemail.validateRemoteRef (default: HEAD)
#
# Replace the TODO placeholders with appropriate checks according to your
# needs.
validate_cover_letter () {
file="$1"
# TODO: Replace with appropriate checks (e.g. spell checking).
true
}
validate_patch () {
file="$1"
# Ensure that the patch applies without conflicts.
git am -3 "$file" || return
# TODO: Replace with appropriate checks for this patch
# (e.g. checkpatch.pl).
true
}
validate_series () {
# TODO: Replace with appropriate checks for the whole series
# (e.g. quick build, coding style checks, etc.).
true
}
# main -------------------------------------------------------------------------
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
then
remote=$(git config --default origin --get sendemail.validateRemote) &&
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
git config --replace-all sendemail.validateWorktree "$worktree"
else
worktree=$(git config --get sendemail.validateWorktree)
fi || {
echo "sendemail-validate: error: failed to prepare worktree" >&2
exit 1
}
unset GIT_DIR GIT_WORK_TREE
cd "$worktree" &&
if grep -q "^diff --git " "$1"
then
validate_patch "$1"
else
validate_cover_letter "$1"
fi &&
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
then
git config --unset-all sendemail.validateWorktree &&
trap 'git worktree remove -ff "$worktree"' EXIT &&
validate_series
fi

View File

@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block unannotated tags from entering.
# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
#
# To enable this hook, rename this file to "update".
#
# Config
# ------
# hooks.allowunannotated
# This boolean sets whether unannotated tags will be allowed into the
# repository. By default they won't be.
# hooks.allowdeletetag
# This boolean sets whether deleting tags will be allowed in the
# repository. By default they won't be.
# hooks.allowmodifytag
# This boolean sets whether a tag may be modified after creation. By default
# it won't be.
# hooks.allowdeletebranch
# This boolean sets whether deleting branches will be allowed in the
# repository. By default they won't be.
# hooks.denycreatebranch
# This boolean sets whether remotely creating branches will be denied
# in the repository. By default this is allowed.
#
# --- Command line
refname="$1"
oldrev="$2"
newrev="$3"
# --- Safety check
if [ -z "$GIT_DIR" ]; then
echo "Don't run this script from the command line." >&2
echo " (if you want, you could supply GIT_DIR then run" >&2
echo " $0 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&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 </dev/null | tr '[0-9a-f]' '0')
if [ "$newrev" = "$zero" ]; then
newrev_type=delete
else
newrev_type=$(git cat-file -t $newrev)
fi
case "$refname","$newrev_type" in
refs/tags/*,commit)
# un-annotated tag
short_refname=${refname##refs/tags/}
if [ "$allowunannotated" != "true" ]; then
echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&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

View File

@ -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]
# *~

View File

@ -0,0 +1,83 @@
# pack-refs with: peeled fully-peeled sorted
65015934d7d06404a66deae70a893146ae254e6c refs/heads/bluish-branch
2c9248f9d75fc9958ee06f1e2c4bfd4ede0d5476 refs/heads/master
57cf5462ab1edf6914c38452360452e008d47f58 refs/merge-requests/2/head
0bf8cf28a13c7010324a67b414c7cde003ff8532 refs/merge-requests/2/merge
02c4c13a54ac43c56a1fb8ecf4ed75bb8fe6962a refs/merge-requests/3/head
8a79b923452c3683023f49c81d3c17663e6708a5 refs/merge-requests/3/merge
4a6e40fb542458949e7e273d3e4fdd9ab7e2fe48 refs/merge-requests/4/head
2e42d421ad96302b3ce626017f8ec8c015643eb8 refs/merge-requests/4/merge
cd6beb3941783761f21db742d31a5cb63fca68f7 refs/merge-requests/5/head
1b0bc10039c38736f81cf06e5ba9abf4d26026db refs/merge-requests/5/merge
0a7db7e485335b77c189bf17b0f4f2f6b746db8f refs/merge-requests/6/head
cf593f6d9f626d6508f838aa2d7c38452d0889c8 refs/merge-requests/6/merge
9211a58624f9df6f94720cc2928e77218f027cb6 refs/merge-requests/7/head
28c2124e52cbaccaa5e40ef7f2a4ac93afe7be41 refs/merge-requests/7/merge
ffa74e7dc3d136b29ee8ff39b379fd2874e8f425 refs/tags/1.0.0
5093c511110ce0900461ffdf6d2e49e367e5e283 refs/tags/1.1.1
5093c511110ce0900461ffdf6d2e49e367e5e283 refs/tags/1.1.2
5093c511110ce0900461ffdf6d2e49e367e5e283 refs/tags/1.1.3
31bd9f0e44aa973e03b35e1bf3f4eb92d8fe59e5 refs/tags/1.2.1
fd710119c271a9a4209a3b09481761cce129ef2f refs/tags/1.2.2
01852945b42f751a9c823bb3809ab704f1968fb7 refs/tags/1.2.3
fc15f8b3eb1b51c38f5c7540e2b7564523e012ba refs/tags/1.2.4
ced1c7c5bb3b1ebb49ff04bf9e6931d6ed2e1151 refs/tags/1.2.5
6687f67fefa24c1fd49f4894be071c54833a6289 refs/tags/1.2.6
97e5c3d781c1ec3838dcd04b2db7c0022550021e refs/tags/1.2.7
23dfa2af146a85b86eb118cdd62dba5b325ba538 refs/tags/1.2.8
00c7fcf3c7b33e081801f63123e5ca7e52da5eab refs/tags/1.2.9
05bdada235ad778b4e338754740c7b73c2265aac refs/tags/1.3.0
34ae9560c51f1394f6b19b88dcf7a37cb6bc1365 refs/tags/1.3.1
1124414af8cd0cbbe3ae2789e00f4fa10fe508aa refs/tags/1.4.0
7d93dbd35eba1d140f363ed74f7e8d9779db3903 refs/tags/1.4.1
d9a3fbc93391cda432890c1a30c71fbd936631b3 refs/tags/1.4.2
3008d02fee68a069769bd6adb59be80f68b50368 refs/tags/1.4.3
2727cd113b61878821c676155bc70cb5817adee6 refs/tags/1.4.4
4a6b288952e3f2072f1a5ff719b9e52ab6bcd8aa refs/tags/1.4.5
034051cbb4edae0cc7f2f438d93e5940532ef6e9 refs/tags/2.0.0
ae0ea6a329f227c5dd1b3cecfe2bd017ea289966 refs/tags/2.0.1
509af3db23437db11b962afba2dd3f0c61362b94 refs/tags/2.0.2
f1a8a1a7d68afaaa630545c01b0bf4f81b69ca21 refs/tags/2.0.3
842bd9711343428f7e63beae611b59459affa125 refs/tags/2.0.4
892ccc3b63e6867758202097b6a3dd63cc52c19b refs/tags/2.1.0
d74438ee6fae0b2c1456884f445cdd587e8c6de9 refs/tags/2.1.1
5a59260464009dbbb5dcb4cb3c5ed4d9941fa174 refs/tags/2.1.2
f122c5aff7dcb378dcc12a6b4bf85c0fd9088a39 refs/tags/2.2.0
dcaa1d32a32c2580a51f01b8ae56a17d9bba4114 refs/tags/2.2.1
140795a08e75ef68d89c1bf46e52b6efcd2d0f0f refs/tags/2.2.2
cd129aa9f4b2b67d0a81378c6e9c0ffbd367f07e refs/tags/2.3.0
21b1a6be25060a73d95f27ddef2ce892aecb8483 refs/tags/2.4.0
8dfe129aeafe0207a9125f8cca99b1fc02b3c238 refs/tags/2.4.1
d5680db6ee6816635360b558da54ea72551cc30b refs/tags/2.4.2
863c9b4e651c0c702ccd31baa1c475af41a0a29c refs/tags/2.4.3
0e9dee7bccc00156e66d51cb142f288067bb08d3 refs/tags/2.4.4
6a980152a69034362937c6579b06463b398f7167 refs/tags/2.4.6
883261a610311023e5d6a438b0f768b6e30a5c7f refs/tags/2.5.0
8d8de27eb84aac0a53187e901127595403ab6d8b refs/tags/2.5.1
50577314227ce319d5e002610c59ecd65d5c5489 refs/tags/2.5.2
8e5b36b2bd0a46901bf8320ed44e75b2dc392098 refs/tags/2.5.3
5d44aed2ed5cbf3001b136ab1077f0991f0bdd43 refs/tags/2.5.4
4907183622758d364ae9f574ff8d1b48c73854a0 refs/tags/2.5.5
6089e29bd94ab7d2c69ad99a5d37a5c4e15a9602 refs/tags/2.5.6
fa323e698984660635d70237b5f0b030bb704aff refs/tags/2.5.7
58f1185dc7d564ef29edb99442bdd30de22437ee refs/tags/2.5.8
3bee321867c0534ee63ac443bd7c69676b93e101 refs/tags/2.6.1
8cd319e3ccc0cb48e26450dd9bb631f8ce59da83 refs/tags/2.6.10
42cbbf597a60a4390206865e8fcf719b5585b97d refs/tags/2.6.11
493d089b930cb5943e55dbca11d6380b2c8d49b8 refs/tags/2.6.12
47fd8f533346cf5c78bec05d3408e4765cf767c1 refs/tags/2.6.13
8183f88e2e5c8998ac9228905c135fa6fad39b8d refs/tags/2.6.14
f9ed84e9448f063184aac27bee19b258f925cd7c refs/tags/2.6.15
1a40ada700a376a6aa887e1836a9776dfabc4b02 refs/tags/2.6.16
d1e980192ca29d3ee9c5eb8558b868310f686be0 refs/tags/2.6.17
^7204ff360d3965f7480e79bfd30b09028fb82183
97ad33de505224bb4afaf8c1fdc5e8dd9d4690ac refs/tags/2.6.18
^2c9248f9d75fc9958ee06f1e2c4bfd4ede0d5476
711f32cfb9c58050d9583ad6e5ff28c16da1944e refs/tags/2.6.2
709d32977b88091657d622e2f6b66c55fdd76824 refs/tags/2.6.3
ef5d7f428a2d714b10ff47ea0a805d30e41c0472 refs/tags/2.6.4
c1c82187419699accad2cbcb07d58af36c244172 refs/tags/2.6.5
2987bba05374d6d1d6fc6c23a8831c0ed8cba6db refs/tags/2.6.6
59d794d3a7bc87bdb8983cf49d5fda178e63d847 refs/tags/2.6.7
636fe36eed56d22f976a04c0d95190699cdf236e refs/tags/2.6.8
c3526753009f3ba5a2c3f896851d25b7bfab23df refs/tags/2.6.9

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,45 @@
# Font-icon directories
FONT_DIRS="/usr/share/fonts/TTF /usr/share/fonts/OTF /usr/share/fonts/misc"
ICON_DIR="/usr/share/icons/hicolor"
GLIB_SCHEMA_DIR="usr/share/glib-2.0/schemas"
# Font-related commands
update_fonts() {
mkfontscale "$FONT_DIRS" >/dev/null 2>&1
mkfontdir "$FONT_DIRS" >/dev/null 2>&1
fc-cache -s >/dev/null
}
# GTK related commands
update_gtk() {
glib-compile-schemas $GLIB_SCHEMA_DIR
gtk-update-icon-cache -ftq $ICON_DIR
/bin/sh -c 'dconf update'
}
# Post installation
post_install() {
systemctl enable btrfs-balance.timer
systemctl enable btrfs-defrag.timer
systemctl enable btrfs-scrub.timer
systemctl enable btrfs-trim.timer
systemctl enable garuda-pacman-lock
systemctl --global enable psd
post_upgrade
}
# Post upgrade
post_upgrade() {
echo "Attempting to enable services..."
systemctl enable btrfs-balance.timer
systemctl enable btrfs-defrag.timer
systemctl enable btrfs-scrub.timer
systemctl enable btrfs-trim.timer
systemctl enable garuda-pacman-lock
systemctl --global enable psd
echo "Performing misc postinstall operations..."
update_fonts
update_gtk
}

Binary file not shown.

View File

@ -0,0 +1,34 @@
# Generated by makepkg 6.0.2
# using fakeroot version 1.32.1
pkgname = garuda-common-settings
pkgbase = garuda-common-settings
pkgver = git-1
pkgdesc = Garuda Linux common settings
url = https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings
builddate = 1699497851
packager = Unknown Packager
size = 146950
arch = any
license = GPL
conflict = systemd-swap
conflict = ipw2100-fw
conflict = ipw2200-fw
backup = etc/sudoers.d/editor
backup = etc/sudoers.d/insults
backup = etc/sudoers.d/pwfeedback
depend = btrfsmaintenance
depend = garuda-bash-config
depend = garuda-hooks
depend = garuda-icons
depend = garuda-migrations
depend = garuda-update
depend = garuda-wallpapers
depend = profile-sync-daemon
depend = zram-generator
depend = systemd-oomd-defaults
depend = noto-color-emoji-fontconfig
optdepend = garuda-browser-settings: Garuda Linux Browser settings
optdepend = performance-tweaks: Tuning for best performance
optdepend = powersave-tweaks: Tuning for lower power usage
optdepend = pacutils: Required for garuda-inxi funstuff
makedepend = polkit

View File

@ -0,0 +1,6 @@
if [[ ! $GRUB_CMDLINE_LINUX_DEFAULT =~ ibt=[^[:space:]]+ ]]; then
GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:+$GRUB_CMDLINE_LINUX_DEFAULT }ibt=off"
fi
if [ -z "${GRUB_DISABLE_OS_PROBER+x}" ]; then
GRUB_DISABLE_OS_PROBER=false
fi

View File

@ -0,0 +1,21 @@
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Shutdown" --class shutdown {
echo "System shutting down..."
halt
}
menuentry "Restart" --class restart {
echo "System rebooting..."
reboot
}
#if [ ${grub_platform} == "efi" ]; then
# menuentry "Firmware Setup (UEFI)" --class recovery {
# fwsetup
# }
#fi

View File

@ -0,0 +1,37 @@
[Desktop Entry]
Categories=GNOME;GTK;System;Garuda-Setup;
Comment=Display welcome message
Comment[ca]=Mostra un missatge de benvinguda
Comment[cs]=Zobrazuje uvítací obrazovku
Comment[de]=Willkommensgruß anzeigen
Comment[el]=Εμφάνιση μήνυμα καλωσορίσματος
Comment[es]=Muestra un mensaje de bienvenida
Comment[fr]=Afficher un message de bienvenue
Comment[it]=Visualizza un messaggio di benvenuto
Comment[ja]=Welcome メッセージの表示
Comment[lt]=Rodyti pasisveikinimo pranešimą
Comment[nl]=Laat welkomstbericht zien
Comment[pt]=Mostra uma messagem de boas-vindas
Comment[ru]=Показ приветственного сообщения
Comment[sv]=Visa välkomstmeddelande
Encoding=UTF-8
Exec=garuda-welcome
Icon=garuda-welcome
Name=Garuda Welcome
Name[ca]=Garuda Welcome
Name[cs]=Garuda Vítejte
Name[de]=Garuda Willkommen
Name[el]=Garuda Welcome
Name[es]=Garuda Bienvenida
Name[fr]=Garuda Bienvenue
Name[it]=Garuda Benvenuto
Name[ja]=Garuda Welcome
Name[lt]=Garuda Pasveikinimas
Name[nl]=Garuda Welkom
Name[pt]=Garuda_Boas-vindas do Garuda
Name[ru]=Garuda Приветствие
Name[sv]=Garuda Välkommen
NoDisplay=false
Terminal=false
TryExec=garuda-welcome
Type=Application

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Categories=System;Monitor;
Comment=Does the initial user setup
Exec=bash -c "systemctl --user enable --now gamemoded;setup_dxvk install;rm ~/.config/autostart/initial-user-setup.desktop"
Icon=setup
Name=Initial user setup
StartupNotify=false
Terminal=false
Type=Application

View File

@ -0,0 +1,51 @@
[bleachbit]
auto_hide = True
check_beta = False
check_online_updates = True
dark_mode = True
delete_confirmation = True
debug = False
exit_done = False
shred = False
units_iec = False
[tree]
evolution = True
evolution.cache = True
firefox.crash_reports = True
firefox = True
firefox.backup = True
firefox.cache = True
gnome = True
gnome.run = True
gnome.search_history = True
journald = True
journald.clean = True
system.desktop_entry = True
system = True
system.recent_documents = True
system.localizations = True
system.trash = True
system.rotated_logs = True
system.tmp = True
system.clipboard = True
system.cache = True
deepscan.ds_store = True
deepscan = True
deepscan.backup = True
deepscan.tmp = True
deepscan.thumbs_db = True
deepscan.vim_swap_root = True
deepscan.vim_swap_user = True
x11 = True
x11.debug_logs = True
thumbnails = True
thumbnails.cache = True
thunderbird = True
thunderbird.cache = True
thunderbird.cookies = True
thunderbird.index = True
thunderbird.passwords = True
thunderbird.vacuum = True
firefox.vacuum = True

View File

@ -0,0 +1,87 @@
{
"file": 1,
"format": 1
}{
"autoadd_queued": false,
"autoconnect": false,
"autoconnect_host_id": null,
"autostart_localhost": false,
"check_new_releases": true,
"close_to_tray": true,
"connection_limit_list": [
50,
100,
200,
300,
500
],
"createtorrent.trackers": [],
"default_load_path": null,
"edit_trackers_dialog_height": null,
"edit_trackers_dialog_width": null,
"enable_appindicator": true,
"enable_system_tray": true,
"enabled_plugins": [],
"focus_add_dialog": true,
"focus_main_window_on_add": true,
"interactive_add": true,
"language": null,
"lock_tray": false,
"pieces_color_completed": [
4883,
26985,
56540
],
"pieces_color_downloading": [
65535,
55255,
0
],
"pieces_color_missing": [
65535,
0,
0
],
"pieces_color_waiting": [
4874,
56494,
0
],
"pref_dialog_height": 500,
"pref_dialog_width": 450,
"show_connection_manager_on_start": true,
"show_new_releases": true,
"show_piecesbar": false,
"show_rate_in_title": false,
"show_sidebar": true,
"show_statusbar": true,
"show_tabsbar": true,
"show_toolbar": true,
"sidebar_position": 170,
"sidebar_show_owners": true,
"sidebar_show_trackers": true,
"sidebar_show_zero": false,
"standalone": true,
"start_in_tray": true,
"tabsbar_position": 235,
"tray_download_speed_list": [
5.0,
10.0,
30.0,
80.0,
300.0
],
"tray_password": "",
"tray_upload_speed_list": [
5.0,
10.0,
30.0,
80.0,
300.0
],
"window_height": 480,
"window_maximized": false,
"window_width": 640,
"window_x_pos": 303,
"window_y_pos": 124
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<oor:items xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<item oor:path="/org.openoffice.Office.Common/Misc"><prop oor:name="SymbolStyle" oor:op="fuse"><value>breeze_dark</value></prop></item>
<item oor:path="/org.openoffice.Office.Common/Misc"><prop oor:name="UseOpenCL" oor:op="fuse"><value>false</value></prop></item>
<item oor:path="/org.openoffice.Office.Common/VCL"><prop oor:name="ForceOpenGL" oor:op="fuse"><value>false</value></prop></item>
<item oor:path="/org.openoffice.Office.Common/VCL"><prop oor:name="UseOpenGL" oor:op="fuse"><value>false</value></prop></item>
</oor:items>

View File

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

View File

@ -0,0 +1,4 @@
# Aspell plugin for Micro
This is a spellchecking plugin for [Micro](https://micro-editor.github.io/) editor.
For help see [the help file](help/aspell.md).

View File

@ -0,0 +1,658 @@
VERSION = "1.3.0"
local micro = import("micro")
local shell = import("micro/shell")
local buffer = import("micro/buffer")
local config = import("micro/config")
local util = import("micro/util")
local utf = import("unicode/utf8")
config.RegisterCommonOption("aspell", "check", "auto")
config.RegisterCommonOption("aspell", "lang", "")
config.RegisterCommonOption("aspell", "dict", "")
config.RegisterCommonOption("aspell", "sugmode", "normal")
config.RegisterCommonOption("aspell", "args", "")
function init()
config.MakeCommand("addpersonal", addpersonal, config.NoComplete)
config.MakeCommand("acceptsug", acceptsug, config.NoComplete)
config.MakeCommand("togglecheck", togglecheck, config.NoComplete)
config.AddRuntimeFile("aspell", config.RTHelp, "help/aspell.md")
end
local filterModes = {
xml = "sgml",
["c++"] = "ccpp",
c = "ccpp",
html = "html",
html4 = "html",
html5 = "html",
perl = "perl",
perl6 = "perl",
tex = "tex",
markdown = "markdown",
groff = "nroff",
man = "nroff",
["git-commit"] = "url",
mail = "email"
-- Aspell has comment mode, in which only lines starting with # are checked
-- but it doesn't work for some reason
}
local lock = false
local next = nil
function runAspell(buf, onExit, ...)
local options = {"pipe", "--encoding=utf-8"}
if filterModes[buf:FileType()] then
options[#options + 1] = "--mode=" .. filterModes[buf:FileType()]
end
if buf.Settings["aspell.lang"] ~= "" then
options[#options + 1] = "--lang=" .. buf.Settings["aspell.lang"]
end
if buf.Settings["aspell.dict"] ~= "" then
options[#options + 1] = "--master=" .. buf.Settings["aspell.dict"]
end
if buf.Settings["aspell.sugmode"] ~= "" then
options[#options + 1] = "--sug-mode=" .. buf.Settings["aspell.sugmode"]
end
for _, argument in ipairs(split(buf.Settings["aspell.args"], " ")) do
options[#options + 1] = argument
end
local job = shell.JobSpawn("aspell", options, nil,
nil, onExit, buf, unpack(arg))
-- Enable terse mode
shell.JobSend(job, "!\n")
for i=0, buf:LinesNum() - 1 do
local line = util.String(buf:LineBytes(i))
-- Escape for aspell (it interprets lines that start
-- with % @ ^ ! etc.)
line = "^" .. line .. "\n"
shell.JobSend(job, line)
end
job.Stdin:Close()
end
function spellcheck(buf)
local check = buf.Settings["aspell.check"]
local readcheck = buf.Type.Readonly
if (check == "on" or (check == "auto" and filterModes[buf:FileType()])) and (not readcheck) then
if lock then
next = buf
else
lock = true
runAspell(buf, highlight)
end
else
-- If we aren't supposed to spellcheck, clear the messages
buf:ClearMessages("aspell")
end
end
-- Parses the output of Aspell and returns the list of all misspells.
function parseOutput(out)
local patterns = {"^# (.-) (%d+)$", "^& (.-) %d+ (%d+): (.+)$"}
if out:find("command not found") then
micro.InfoBar():Error(
"Make sure that Aspell is installed and available in your PATH")
return {}
elseif not out:find("International Ispell Version") then
-- Something went wrong, we'll show what Aspell has to say
micro.InfoBar():Error("Aspell: " .. out)
return {}
end
local misspells = {}
local linenumber = 1
local lines = split(out, "\n")
for _, line in ipairs(lines) do
if line == "" then
linenumber = linenumber + 1
else
for _, pattern in ipairs(patterns) do
if string.find(line, pattern) then
local word, offset, suggestions = string.match(line, pattern)
offset = tonumber(offset)
local len = utf.RuneCountInString(word)
misspells[#misspells + 1] = {
word = word,
mstart = buffer.Loc(offset - 1, linenumber - 1),
mend = buffer.Loc(offset - 1 + len, linenumber - 1),
suggestions = suggestions and split(suggestions, ", ") or {},
}
end
end
end
end
return misspells
end
function highlight(out, args)
local buf = args[1]
buf:ClearMessages("aspell")
-- This is a hack that keeps the text shifted two columns to the right
-- even when no gutter messages are shown
local msg = "This message shouldn't be visible (Aspell plugin)"
local bmsg = buffer.NewMessageAtLine("aspell", msg, 0, buffer.MTError)
buf:AddMessage(bmsg)
for _, misspell in ipairs(parseOutput(out)) do
local msg = nil
if #(misspell.suggestions) > 0 then
msg = misspell.word .. " -> " .. table.concat(misspell.suggestions, ", ")
else
msg = misspell.word .. " ->X"
end
local bmsg = buffer.NewMessage("aspell", msg, misspell.mstart,
misspell.mend, buffer.MTWarning)
buf:AddMessage(bmsg)
end
lock = false
if next ~= nil then
spellcheck(next)
next = nil
end
end
function parseMessages(messages)
local patterns = {"^(.-) %-> (.+)$", "^(.-) %->X$"}
if messages == nil then
return {}
end
local misspells = {}
for i=1, #messages do
local message = messages[i]
if message.Owner == "aspell" then
for _, pattern in ipairs(patterns) do
if string.find(message.Msg, pattern) then
local word, suggestions = string.match(message.Msg, pattern)
misspells[#misspells + 1] = {
word = word,
mstart = -message.Start,
mend = -message.End,
suggestions = suggestions and split(suggestions, ", ") or {},
}
end
end
end
end
return misspells
end
function togglecheck(bp, args)
local buf = bp.Buf
local check = buf.Settings["aspell.check"]
if check == "on" or (check == "auto" and filterModes[buf:FileType()]) then
buf.Settings["aspell.check"] = "off"
else
buf.Settings["aspell.check"] = "on"
end
spellcheck(buf)
if args then
return
end
return true
end
function addpersonal(bp, args)
local buf = bp.Buf
local loc = buf:GetActiveCursor().Loc
for _, misspell in ipairs(parseMessages(buf.Messages)) do
local wordInBuf = util.String(buf:Substr(misspell.mstart, misspell.mend))
if loc:GreaterEqual(misspell.mstart) and loc:LessEqual(misspell.mend)
and wordInBuf == misspell.word then
local options = {"pipe", "--encoding=utf-8"}
if buf.Settings["aspell.lang"] ~= "" then
options[#options + 1] = "--lang=" .. buf.Settings["aspell.lang"]
end
if buf.Settings["aspell.dict"] ~= "" then
options[#options + 1] = "--master=" .. buf.Settings["aspell.dict"]
end
for _, argument in ipairs(split(buf.Settings["aspell.args"], " ")) do
options[#options + 1] = argument
end
local job = shell.JobSpawn("aspell", options, nil, nil, function ()
spellcheck(buf)
end)
shell.JobSend(job, "*" .. misspell.word .. "\n#\n")
job.Stdin:Close()
if args then
return
end
return true
end
end
if args then
return
end
return false
end
function acceptsug(bp, args)
local buf = bp.Buf
local n = nil
if args and #args > 0 then
n = tonumber(args[1])
end
local loc = buf:GetActiveCursor().Loc
for _, misspell in ipairs(parseMessages(buf.Messages)) do
local wordInBuf = util.String(buf:Substr(misspell.mstart, misspell.mend))
if loc:GreaterEqual(misspell.mstart) and loc:LessEqual(misspell.mend)
and wordInBuf == misspell.word then
if misspell.suggestions[n] then
-- If n is in the range we'll accept n-th suggestion
buf:GetActiveCursor():GotoLoc(misspell.mend)
buf:Replace(misspell.mstart, misspell.mend, misspell.suggestions[n])
spellcheck(buf)
if args then
return
end
return true
elseif #(misspell.suggestions) > 0 then
-- If n is 0 indicating acceptsug was called with no arguments
-- we will cycle through the suggestions autocomplete-like
buf:GetActiveCursor():GotoLoc(misspell.mend)
buf:Remove(misspell.mstart, misspell.mend)
buf:Autocomplete(function ()
return misspell.suggestions, misspell.suggestions
end)
spellcheck(buf)
if args then
return
end
return true
end
end
end
if args then
return
end
return false
end
function split(str, pat)
local t = {}
local fpat = "(.-)" .. pat
local last_end = 1
local s, e, cap = str:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(t, cap)
end
last_end = e+1
s, e, cap = str:find(fpat, last_end)
end
if last_end <= #str then
cap = str:sub(last_end)
table.insert(t, cap)
end
return t
end
-- We need to spellcheck every time, the buffer is modified. Sadly there's
-- no such thing as onBufferModified()
function onBufferOpen(buf)
spellcheck(buf)
end
-- The following callbacks are undocumented
function onRune(bp)
spellcheck(bp.Buf)
end
function onCycleAutocompleteBack(bp)
spellcheck(bp.Buf)
end
-- The following were copied from help keybindings
-- function onCursorUp(bp)
-- end
-- function onCursorDown(bp)
-- end
-- function onCursorPageUp(bp)
-- end
-- function onCursorPageDown(bp)
-- end
-- function onCursorLeft(bp)
-- end
-- function onCursorRight(bp)
-- end
-- function onCursorStart(bp)
-- end
-- function onCursorEnd(bp)
-- end
-- function onSelectToStart(bp)
-- end
-- function onSelectToEnd(bp)
-- end
-- function onSelectUp(bp)
-- end
-- function onSelectDown(bp)
-- end
-- function onSelectLeft(bp)
-- end
-- function onSelectRight(bp)
-- end
-- function onSelectToStartOfText(bp)
-- end
-- function onSelectToStartOfTextToggle(bp)
-- end
-- function onWordRight(bp)
-- end
-- function onWordLeft(bp)
-- end
-- function onSelectWordRight(bp)
-- end
-- function onSelectWordLeft(bp)
-- end
function onMoveLinesUp(bp)
spellcheck(bp.Buf)
end
function onMoveLinesDown(bp)
spellcheck(bp.Buf)
end
function onDeleteWordRight(bp)
spellcheck(bp.Buf)
end
function onDeleteWordLeft(bp)
spellcheck(bp.Buf)
end
-- function onSelectLine(bp)
-- end
-- function onSelectToStartOfLine(bp)
-- end
-- function onSelectToEndOfLine(bp)
-- end
function onInsertNewline(bp)
spellcheck(bp.Buf)
end
function onInsertSpace(bp)
spellcheck(bp.Buf)
end
function onBackspace(bp)
spellcheck(bp.Buf)
end
function onDelete(bp)
spellcheck(bp.Buf)
end
-- function onCenter(bp)
-- end
function onInsertTab(bp)
spellcheck(bp.Buf)
end
-- function onSave(bp)
-- end
-- function onSaveAll(bp)
-- end
-- function onSaveAs(bp)
-- end
-- function onFind(bp)
-- end
-- function onFindLiteral(bp)
-- end
-- function onFindNext(bp)
-- end
-- function onFindPrevious(bp)
-- end
function onUndo(bp)
spellcheck(bp.Buf)
end
function onRedo(bp)
spellcheck(bp.Buf)
end
-- function onCopy(bp)
-- end
-- function onCopyLine(bp)
-- end
function onCut(bp)
spellcheck(bp.Buf)
end
function onCutLine(bp)
spellcheck(bp.Buf)
end
function onDuplicateLine(bp)
spellcheck(bp.Buf)
end
function onDeleteLine(bp)
spellcheck(bp.Buf)
end
function onIndentSelection(bp)
spellcheck(bp.Buf)
end
function onOutdentSelection(bp)
spellcheck(bp.Buf)
end
function onOutdentLine(bp)
spellcheck(bp.Buf)
end
function onIndentLine(bp)
spellcheck(bp.Buf)
end
function onPaste(bp)
spellcheck(bp.Buf)
end
-- function onSelectAll(bp)
-- end
-- function onOpenFile(bp)
-- end
-- function onStart(bp)
-- end
-- function onEnd(bp)
-- end
-- function onPageUp(bp)
-- end
-- function onPageDown(bp)
-- end
-- function onSelectPageUp(bp)
-- end
-- function onSelectPageDown(bp)
-- end
-- function onHalfPageUp(bp)
-- end
-- function onHalfPageDown(bp)
-- end
-- function onStartOfLine(bp)
-- end
-- function onEndOfLine(bp)
-- end
-- function onStartOfText(bp)
-- end
-- function onStartOfTextToggle(bp)
-- end
-- function onParagraphPrevious(bp)
-- end
-- function onParagraphNext(bp)
-- end
-- function onToggleHelp(bp)
-- end
-- function onToggleDiffGutter(bp)
-- end
-- function onToggleRuler(bp)
-- end
-- function onJumpLine(bp)
-- end
-- function onClearStatus(bp)
-- end
-- function onShellMode(bp)
-- end
-- function onCommandMode(bp)
-- end
-- function onQuit(bp)
-- end
-- function onQuitAll(bp)
-- end
-- function onAddTab(bp)
-- end
-- function onPreviousTab(bp)
-- end
-- function onNextTab(bp)
-- end
-- function onNextSplit(bp)
-- end
-- function onUnsplit(bp)
-- end
-- function onVSplit(bp)
-- end
-- function onHSplit(bp)
-- end
-- function onPreviousSplit(bp)
-- end
-- function onToggleMacro(bp)
-- end
function onPlayMacro(bp)
spellcheck(bp.Buf)
end
-- function onSuspend(bp) -- Unix only
-- end
-- function onScrollUp(bp)
-- end
-- function onScrollDown(bp)
-- end
-- function onSpawnMultiCursor(bp)
-- end
-- function onSpawnMultiCursorUp(bp)
-- end
-- function onSpawnMultiCursorDown(bp)
-- end
-- function onSpawnMultiCursorSelect(bp)
-- end
-- function onRemoveMultiCursor(bp)
-- end
-- function onRemoveAllMultiCursors(bp)
-- end
-- function onSkipMultiCursor(bp)
-- end
-- function onNone(bp)
-- end
-- function onJumpToMatchingBrace(bp)
-- end
function onAutocomplete(bp)
spellcheck(bp.Buf)
end

View File

@ -0,0 +1,76 @@
# Aspell plugin
The text will be checked for misspells as you type. It understands the syntax
of XML, HTML, TeX and Markdown. On C++, C and Perl only comments and string
literals will be checked.
You need to have Aspell installed and available in your PATH. It does not come
with this plugin. If you are on Windows, you can install Aspell through
[MSYS2](https://www.msys2.org/).
## Options
* `aspell.check`: controls whether spellchecking is performed. Possible values
are `on`, `off` and `auto`. When set to `auto`, the file will be checked
only if it's one of these filetypes: XML, C++, C, HTML, Perl, TeX,
Markdown, Groff/Troff, Manpage, Email or Git commit. Defaults to `auto`.
* `aspell.lang`: language to use. Two letter language code, optionally followed
by an underscore or a dash and a two letter country code. It will be passed
to Aspell in the `--lang` option.
* `aspell.dict`: dictionary to use. Run `aspell dicts` in a terminal to see
available dictionaries. It will be passed to Aspell in the `--master` option.
If both `aspell.dict` and `aspell.lang` are left empty (which is the default),
Aspell will follow locale settings.
* `aspell.sugmode`: one of `ultra`, `fast`, `normal`, `slow` or `bad-spellers`.
It will be passed to Aspell in the `--sug-mode` option. Defaults to `normal`.
You may wish to change it to `fast`, if you feel that the spellchecking is
too slow. For an explanation of what each option does, see
http://aspell.net/man-html/Notes-on-the-Different-Suggestion-Modes.html
* `aspell.args`: additional command line arguments, that will be passed to
Aspell.
When you change some of these settings while in Micro using `setlocal` or
`set`, you might not see the effect until you modify a buffer.
You can also disable or enable spellchecking for specific file types in your
`settings.json`:
```json
{
"*.txt": {
"aspell.check": "on"
},
"ft:markdown": {
"aspell.check": "off"
}
}
```
## Commands
* `togglecheck`: turns the spellchecking on/off. You can bind it to a key as
`lua:aspell.addpersonal`. The effect's the same as changing `aspell.check`
using `setlocal`.
* `addpersonal`: adds the word the cursor is on to your personal dictionary, so
that it won't be highlighted as a misspell anymore. You can bind it to a key
as `lua:aspell.addpersonal`.
* `acceptsug 'n'?`: accepts the nth suggestion for the word the cursor is on.
You can bind it to a key as `lua:aspell.acceptsug`. If `n` is not provided or
this command is invoked with a keyboard shortcut, it will start to cycle
through the suggestions. Use `Tab` and `Backtab` to cycle through them.
You can also use them in chain keybindings with `,`, `&` and `|` (see
`help keybindings`). Example `bindings.json`:
```json
{
"Tab": "Autocomplete|lua:aspell.acceptsug|IndentSelection|InsertTab"
}
```

View File

@ -0,0 +1,43 @@
[{
"Name": "aspell",
"Description": "Spellchecking with Aspell",
"Tags": ["spellchecking", "spelling", "aspell", "spellchecker"],
"Website": "https://github.com/priner/micro-aspell-plugin",
"Versions": [
{
"Version": "1.3.0",
"Url": "https://github.com/priner/micro-aspell-plugin/archive/v1.3.0.zip",
"Require": {
"micro": ">=2.0.7"
}
},
{
"Version": "1.2.1",
"Url": "https://github.com/priner/micro-aspell-plugin/archive/v1.2.1.zip",
"Require": {
"micro": ">=2.0.7"
}
},
{
"Version": "1.2.0",
"Url": "https://github.com/priner/micro-aspell-plugin/archive/v1.2.0.zip",
"Require": {
"micro": ">=2.0.0"
}
},
{
"Version": "1.1.0",
"Url": "https://github.com/priner/micro-aspell-plugin/archive/v1.1.0.zip",
"Require": {
"micro": ">=2.0.0"
}
},
{
"Version": "1.0.0",
"Url": "https://github.com/priner/micro-aspell-plugin/archive/v1.0.0.zip",
"Require": {
"micro": ">=2.0.0"
}
}
]
}]

View File

@ -0,0 +1 @@
Provides a `fzf` command in micro to open a file in the current pane using fzf.

View File

@ -0,0 +1,38 @@
VERSION = "1.1.1"
local micro = import("micro")
local shell = import("micro/shell")
local config = import("micro/config")
local buffer = import("micro/buffer")
function fzf(bp)
if shell.TermEmuSupported then
local err = shell.RunTermEmulator(bp, "fzf", false, true, fzfOutput, {bp})
if err ~= nil then
micro.InfoBar():Error(err)
end
else
local output, err = shell.RunInteractiveShell("fzf", false, true)
if err ~= nil then
micro.InfoBar():Error(err)
else
fzfOutput(output, {bp})
end
end
end
function fzfOutput(output, args)
local bp = args[1]
local strings = import("strings")
output = strings.TrimSpace(output)
if output ~= "" then
local buf, err = buffer.NewBufferFromFile(output)
if err == nil then
bp:OpenBuffer(buf)
end
end
end
function init()
config.MakeCommand("fzf", fzf, config.NoComplete)
end

View File

@ -0,0 +1,32 @@
[
{
"Name": "fzf",
"Description": "adds support to opening files via fzf",
"Website": "https://github.com/samdmarshall/micro-fzf-plugin",
"Tags": ["fzf"],
"Versions": [
{
"Version": "1.1.1",
"Url": "https://github.com/micro-editor/updated-plugins/releases/download/v1.0.0/fzf-1.1.1.zip",
"Require": {
"micro": ">=2.0.0-1"
}
},
{
"Version": "1.1.0",
"Url": "https://github.com/micro-editor/updated-plugins/releases/download/v1.0.0/fzf-1.1.0.zip",
"Require": {
"micro": ">=2.0.0-1"
}
},
{
"Version": "1.0.5",
"Url": "https://github.com/samdmarshall/micro-fzf-plugin/archive/v1.0.5.zip",
"Require": {
"micro": ">=1.1.2"
}
}
]
}
]

View File

@ -0,0 +1,7 @@
# Misspell Plugin for Micro
This repository holds the misspell plugin for micro.
Install with `> plugin install misspell`,
https://github.com/client9/misspell needs to be in your PATH.
This plugin will lint text for spelling mistakes.

View File

@ -0,0 +1,9 @@
VERSION = "0.2.0"
local config = import("micro/config")
function init()
-- uses the default linter plugin
-- matches any filetype
linter.makeLinter("misspell", "", "misspell", {"%f"}, "%f:%l:%c: %m", {}, false, true)
end

View File

@ -0,0 +1,22 @@
[{
"Name": "misspell",
"Description": "plugin that corrects commonly misspelled words",
"Tags": ["spell", "check", "misspell"],
"Website": "https://github.com/onodera-punpun/micro-misspell-plugin",
"Versions": [
{
"Version": "0.2.0",
"Url": "https://github.com/micro-editor/updated-plugins/releases/download/v1.0.0/misspell-0.2.0.zip",
"Require": {
"micro": ">=2.0.0-1"
}
},
{
"Version": "0.1.0",
"Url": "https://github.com/onodera-punpun/micro-misspell-plugin/archive/0.1.0.zip",
"Require": {
"micro": ">=1.0.3"
}
}
]
}]

View File

@ -0,0 +1,6 @@
Version 1.2.1
* Fixed utf8 character count
Version 1.2.0
+ Now counts lines
+ Added Support for counting lines, words and characters in selection

View File

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

View File

@ -0,0 +1,4 @@
# Micro Word Count Plugin
Word, character and line counter for micro editor.
(forked from https://github.com/adamnpeace/micro-wc-plugin)

View File

@ -0,0 +1,25 @@
# WordCount (wc) Plugin #
The wc plugin provides the user with the ability to count either
characters or strings in any text being edited with micro.
A word is defined as a string of characters delimited by white
space characters. White space characters are the set of characters
for which the iswspace(3) function returns true.
A line is defined as a string of characters delimited by \n
characters, or by the beginning or end of the file. \r\n line
endings will be counted correctly as well, since there is only
one \n per \r\n.
Character count includes white space and newline characters.
To initiate the function, you can either:
Press "F5"
Or run:
```
> wc
```

View File

@ -0,0 +1,10 @@
{
"name": "wc",
"description": "Word count plugin",
"website": "",
"install": "",
"version": "1.2.1",
"require": [
"micro >= 2.0.0"
]
}

View File

@ -0,0 +1,22 @@
[{
"Name": "wc",
"Description": "Plugin to count words/characters in micro",
"Tags": ["wc", "word", "character", "count"],
"Website": "https://github.com/adamnpeace/micro-wc-plugin",
"Versions": [
{
"Version": "1.1.0",
"Url": "https://github.com/adamnpeace/micro-wc-plugin/archive/v1.1.0.zip",
"Require": {
"micro": ">=2.0.0-1"
}
},
{
"Version": "1.0.1",
"Url": "https://github.com/adamnpeace/micro-wc-plugin/archive/v1.0.1.zip",
"Require": {
"micro": ">=1.1.0"
}
}
]
}]

View File

@ -0,0 +1,37 @@
VERSION = "1.2.1"
local micro = import("micro")
local config = import("micro/config")
local util = import("micro/util")
local utf8 = import("unicode/utf8")
function init()
config.MakeCommand("wc", wordCount, config.NoComplete)
config.AddRuntimeFile("wc", config.RTHelp, "help/wc.md")
config.TryBindKey("F5", "lua:wc.wordCount", false)
end
function wordCount(bp)
-- Buffer of selection/whole document
local buffer
--Get active cursor (to get selection)
local cursor = bp.Buf:GetActiveCursor()
--If cursor exists and there is selection, convert selection byte[] to string
if cursor and cursor:HasSelection() then
buffer = util.String(cursor:GetSelection())
else
--no selection, convert whole buffer byte[] to string
buffer = util.String(bp.Buf:Bytes())
end
--length of the buffer/selection (string), utf8 friendly
charCount = utf8.RuneCountInString(buffer)
--Get word/line count using gsub's number of substitutions
-- number of substitutions, pattern: %S+ (more than one non-whitespace characters)
local _ , wordCount = buffer:gsub("%S+","")
-- number of substitutions, pattern: \n (number of newline characters)
local _, lineCount = buffer:gsub("\n", "")
--add one to line count (since we're counting separators not lines above)
lineCount = lineCount + 1
--display the message
micro.InfoBar():Message("Lines:" .. lineCount .. " Words:"..wordCount.." Characters:"..charCount)
end

View File

@ -0,0 +1,5 @@
{
"autosu": true,
"colorscheme": "geany",
"mkparents": true
}

View File

@ -0,0 +1,146 @@
#
# Example mpv configuration file
#
# Warning:
#
# The commented example options usually do _not_ set the default values. Call
# mpv with --list-options to see the default values for most options. There is
# no builtin or example mpv.conf with all the defaults.
#
#
# Configuration files are read system-wide from /usr/local/etc/mpv.conf
# and per-user from ~/.config/mpv/mpv.conf, where per-user settings override
# system-wide settings, all of which are overridden by the command line.
#
# Configuration file settings and the command line options use the same
# underlying mechanisms. Most options can be put into the configuration file
# by dropping the preceding '--'. See the man page for a complete list of
# options.
#
# Lines starting with '#' are comments and are ignored.
#
# See the CONFIGURATION FILES section in the man page
# for a detailed description of the syntax.
#
# Profiles should be placed at the bottom of the configuration file to ensure
# that settings wanted as defaults are not restricted to specific profiles.
##################
# video settings #
##################
# Start in fullscreen mode by default.
fs=yes
# force starting with centered window
#geometry=50%:50%
# don't allow a new window to have a size larger than 90% of the screen size
#autofit-larger=90%x90%
# Do not close the window on exit.
#keep-open=yes
# Do not wait with showing the video window until it has loaded. (This will
# resize the window once video is loaded. Also always shows a window with
# audio.)
#force-window=immediate
# Disable the On Screen Controller (OSC).
#osc=no
# Keep the player window on top of all other windows.
#ontop=yes
# Specify high quality video rendering preset (for --vo=gpu only)
# Can cause performance problems with some drivers and GPUs.
#profile=gpu-hq
# Force video to lock on the display's refresh rate, and change video and audio
# speed to some degree to ensure synchronous playback - can cause problems
# with some drivers and desktop environments.
#video-sync=display-resample
# Enable hardware decoding if available. Often, this does not work with all
# video outputs, but should work well with default settings on most systems.
# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
# may or may not help.
hwdec=auto
#vo=gpu
#gpu-context=wayland
# Block X11 compositing
x11-bypass-compositor=no
##################
# audio settings #
##################
# Specify default audio device. You can list devices with: --audio-device=help
# The option takes the device string (the stuff between the '...').
#audio-device=alsa/default
# Do not filter audio to keep pitch when changing playback speed.
#audio-pitch-correction=no
# Output 5.1 audio natively, and upmix/downmix audio with a different format.
#audio-channels=5.1
# Disable any automatic remix, _if_ the audio output accepts the audio format.
# of the currently played file. See caveats mentioned in the manpage.
# (The default is "auto-safe", see manpage.)
#audio-channels=auto
volume-max=250
##################
# other settings #
##################
# Pretend to be a web browser. Might fix playback with some streaming sites,
# but also will break with shoutcast streams.
#user-agent="Mozilla/5.0"
# cache settings
#
# Use 150MB input cache by default. The cache is enabled for network streams only.
#cache-default=153600
#
# Use 150MB input cache for everything, even local files.
#cache=153600
#
# Disable the behavior that the player will pause if the cache goes below a
# certain fill size.
#cache-pause=no
#
# Read ahead about 5 seconds of audio and video packets.
#demuxer-readahead-secs=5.0
#
# Raise readahead from demuxer-readahead-secs to this value if a cache is active.
#cache-secs=50.0
# Display English subtitles if available.
#slang=en
# Play Finnish audio if available, fall back to English otherwise.
#alang=fi,en
# Change subtitle encoding. For Arabic subtitles use 'cp1256'.
# If the file seems to be valid UTF-8, prefer UTF-8.
# (You can add '+' in front of the codepage to force it.)
#sub-codepage=cp1256
# You can also include other configuration files.
#include=/path/to/the/file/you/want/to/include
############
# Profiles #
############
# The options declared as part of profiles override global default settings,
# but only take effect when the profile is active.
# The following profile can be enabled on the command line with: --profile=eye-cancer
#[eye-cancer]
#sharpen=5
#keepaspect=no
save-position-on-quit

View File

@ -0,0 +1,33 @@
{
"AurRpcUrl": "https://aurapi.moson.org/rpc",
"AurTimeout": 5000,
"AurSearchDelay": 500,
"AurUseDifferentCommands": false,
"AurInstallCommand": "",
"AurUpgradeCommand": "",
"DisableAur": false,
"MaxResults": 500,
"PacmanDbPath": "/var/lib/pacman/",
"PacmanConfigPath": "/etc/pacman.conf",
"InstallCommand": "paru -S",
"UninstallCommand": "paru -Rs",
"SysUpgradeCommand": "paru",
"SearchMode": "Contains",
"SearchBy": "Name",
"CacheExpiry": 10,
"DisableCache": false,
"ColorScheme": "Arch Linux",
"BorderStyle": "Double",
"ShowPkgbuildCommand": "curl -s \"{url}\"|less",
"ShowPkgbuildInternally": true,
"ComputeRequiredBy": false,
"GlyphStyle": "Angled-No-X",
"DisableNewsFeed": false,
"FeedURLs": "https://archlinux.org/feeds/news/",
"FeedMaxItems": 5,
"SaveWindowLayout": false,
"LeftProportion": 4,
"Transparent": false,
"PackageColumnWidth": 0,
"EnableAutoSuggest": false
}

View File

@ -0,0 +1,69 @@
#
# $XDG_CONFIG_HOME/psd/psd.conf
#
# For documentation, refer man 1 psd or to the wiki page
# https://wiki.archlinux.org/index.php/Profile-sync-daemon
## NOTE the following:
## To protect data from corruption, in the event that you do make an edit while
## psd is active, any changes made will be applied the next time you start psd.
# Uncomment and set to "yes" to use overlayfs instead of a full copy to reduce
# the memory costs and to improve sync/unsync operations. Note that your kernel
# MUST have this module available in order to use this mode
#
#USE_OVERLAYFS="no"
# Uncomment and set to "yes" to resync on suspend to reduce potential data loss.
# Note that your system MUST have gdbus from glib2 installed to use this mode.
#USE_SUSPSYNC="no"
# List any browsers in the array below to have managed by psd. Useful if you do
# not wish to have all possible browser profiles managed which is the default if
# this array is left commented.
#
# Possible values:
# chromium
# chromium-dev
# conkeror.mozdev.org
# epiphany
# falkon
# firefox
# firefox-trunk
# google-chrome
# google-chrome-beta
# google-chrome-unstable
# heftig-aurora
# icecat
# inox
# luakit
# midori
# opera
# opera-beta
# opera-developer
# opera-legacy
# otter-browser
# qupzilla
# qutebrowser
# palemoon
# rekonq
# seamonkey
# surf
# vivaldi
# vivaldi-snapshot
#
BROWSERS=(firedragon firefox chromium opera vivaldi google-chrome otter-browser)
# Uncomment and set to "no" to completely disable the crash recovery feature.
#
# The default is to create crash recovery backups if the system is ungracefully
# powered-down due to a kernel panic, hitting the reset switch, battery going
# dead, etc. Some users keep very diligent backups and don't care to have this
# feature enabled.
USE_BACKUPS="yes"
# Uncomment and set to an integer that is the maximum number of crash recovery
# snapshots to keep (the oldest ones are delete first).
#
# The default is to save the most recent 5 crash recovery snapshots.
BACKUP_LIMIT=2

View File

@ -0,0 +1,10 @@
[gui]
gui=DefaultGUI
iconset=Breeze-dark
qt_style=kvantum

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
Defaults editor=/usr/bin/micro

View File

@ -0,0 +1 @@
Defaults insults

View File

@ -0,0 +1 @@
Defaults pwfeedback

View File

@ -0,0 +1,21 @@
[Desktop Entry]
Categories=System;Monitor;
Comment=
Comment=
Exec=conky --daemonize --pause=1
GenericName=
GenericName=
Icon=conky-logomark-violet
MimeType=
Name=conky
Name=conky
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
TryExec=conky
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

View File

@ -0,0 +1,77 @@
#!/usr/bin/env xdg-open
[Desktop Entry]
Actions=Configure;Capture;Launcher;
Categories=Graphics;
Comment=Powerful yet simple to use screenshot software.
Comment[de]=Schlichte, leistungsstarke Screenshot-Software
Comment[es]=Software de captura de pantalla potente y fácil de usar.
Comment[fr]=Logiciel de capture d'écran puissant et simple d'utilisation.
Comment[ja]=パワフルで使いやすいスクリーンショットソフトウェア。
Comment[pl]=Proste w użyciu narzędzie do zrzutów ekranu
Comment[ru]=Простой и функциональный инструмент для создания скриншотов
Comment[sk]=Mocný, no tiež jednoduchý softvér na zachytávanie obrazovky.
Comment[sr]=Једноставан, а моћан алат за снимање екрана
Comment[uk]=Потужний простий у використанні додаток для створення знімків екрану.
Comment[zh_CN]=强大又易用的屏幕截图软件
Exec=flameshot
GenericName=Screenshot tool
GenericName[es]=Herramienta de captura de pantalla
GenericName[fr]=Outil de capture d'écran
GenericName[ja]=スクリーンショットツール
GenericName[pl]=Zrzuty ekranu
GenericName[ru]=Создание скриншотов
GenericName[sk]=Nástroj na zachytávanie obrazovky
GenericName[sr]=Снимач екрана
GenericName[uk]=Інструмент скриншотів
GenericName[zh_CN]=屏幕截图工具
Icon=org.flameshot.Flameshot
Keywords=flameshot;screenshot;capture;shutter;
Keywords[de]=flameshot;screenshot;Bildschirmfoto;Aufnahme;
Keywords[es]=flameshot;screenshot;capture;shutter;captura;
Keywords[fr]=flameshot;capture d'écran;capter;shutter;
Keywords[ja]=flameshot;screenshot;capture;shutter;スクリーンショット;キャプチャー;
Keywords[zh_CN]=flameshot;screenshot;capture;shutter;截图;屏幕;
Name=Flameshot
Name[zh_CN]=火焰截图
StartupNotify=false
Terminal=false
TryExec=flameshot
Type=Application
X-DBUS-ServiceName=org.flameshot.Flameshot
X-DBUS-StartupType=Unique
X-KDE-DBUS-Restricted-Interfaces=org_kde_kwin_effect-screenshot
[Desktop Action Configure]
Exec=flameshot config
Name=Configure
Name[de]=Einstellungen
Name[es]=Configurar
Name[fr]=Configurer
Name[ja]=設定
Name[pl]=Konfiguruj
Name[ru]=Настройки
Name[sk]=Nastaviť
Name[sr]=Подешавања
Name[uk]=Налаштувати
Name[zh_CN]=配置
[Desktop Action Capture]
Exec=flameshot gui --delay 500
Name=Take screenshot
Name[de]=Bildschirmfoto aufnehmen
Name[es]=Tomar captura de pantalla
Name[fr]=Prendre une capture d'écran
Name[ja]=スクリーンショットを撮る
Name[pl]=Zrzut ekranu
Name[ru]=Сделать скриншот
Name[sk]=Zachytiť obrazovku
Name[sr]=Сними екран
Name[uk]=Зробити знімок
Name[zh_CN]=进行截图
[Desktop Action Launcher]
Exec=flameshot launcher
Name=Open launcher
Name[de]=Starter öffnen
Name[sk]=Otvoriť spúšťač
Name[zh_CN]=打开启动器

View File

@ -0,0 +1,88 @@
[Desktop Entry]
Version=1.0
Categories=Utility;
Comment=Color temperature adjustment tool
Comment[be]=Інструмент рэгулявання каляровай тэмпературы
Comment[ca]=Eina per a l'ajust de la temperatura de color
Comment[cs]=Nástroj pro přizpůsobení barevné teploty
Comment[da]=Justeringsværktøj for farvetemperatur
Comment[de]=Farbtemperaturanpassungswerkzeug
Comment[en_GB]=Colour temperature adjustment tool
Comment[es]=Herramienta para el ajuste de la temperatura de color
Comment[fr]=Outil de réglage de la température de couleur
Comment[he]=כלי להתאמת טמפרטורת צבע
Comment[hu]=Színhőmérséklet beállító eszköz
Comment[it]=Strumento per la regolazione della temperatura del colore
Comment[ja]=色温度の調整ツール
Comment[lt]=Spalvos temperatūros reguliavimo įrankis
Comment[nb]=Justeringsverktøy for fargetemperatur
Comment[nl]=Hulpmiddel voor het bijstellen van de kleurtemperatuur
Comment[pl]=Narzędzie do dostosowywania temperatury barwowej
Comment[pt_BR]=Ferramenta de ajuste de temperatura de cor
Comment[ru]=Инструмент регулирования цветовой температуры
Comment[sr]=Алатка за прилагођавање температуре боје
Comment[sv]=Justeringsverktyg för färgtemperaturer
Comment[tr]=Renk sıcaklığı ayarlama aracı
Comment[uk]=Знаряддя налаштувань колірної температури
Comment[zh_CN]=色温调节工具
Comment[zh_TW]=色溫調整工具
Exec=redshift-gtk
GenericName=Color temperature adjustment
GenericName[be]=Рэгуляванне каляровай тэмпературы
GenericName[ca]=Ajust de la temperatura de color
GenericName[cs]=Nastavení teploty barev
GenericName[da]=Justering af farvetemperatur
GenericName[de]=Farbtemperaturanpassung
GenericName[en_GB]=Colour temperature adjustment
GenericName[es]=Ajuste de la temperatura de color
GenericName[fr]=Réglage de la température de couleur
GenericName[he]=התאמת טמפרטורת צבע
GenericName[hu]=Színhőmérséklet beállítása
GenericName[it]=Regolazione della temperatura del colore
GenericName[ja]=色温度の調整
GenericName[lt]=Spalvos temperatūros reguliavimas
GenericName[nb]=Justering av fargetemperatur
GenericName[nl]=Bijstelling van kleurtemperatuur
GenericName[pl]=Dostosowanie temperatury barwowej
GenericName[pt_BR]=Ajuste de temperatura de cor
GenericName[ru]=Настройка цветовой температуры
GenericName[sr]=Прилагођавање температуре боје
GenericName[sv]=Färgtemperaturjustering
GenericName[tr]=Renk sıcaklığı ayarı
GenericName[uk]=Налаштування колірної температури
GenericName[zh_CN]=色温调节
GenericName[zh_TW]=色溫調整
Hidden=false
Icon=redshift
Name=Redshift
Name[be]=Redshift
Name[ca]=Redshift
Name[cs]=Redshift
Name[da]=Redshift
Name[de]=Redshift
Name[en_GB]=Redshift
Name[es]=Redshift
Name[fr]=Redshift
Name[he]=Redshift
Name[hu]=Redshift
Name[it]=Redshift
Name[ja]=Redshift
Name[lt]=Redshift
Name[nb]=Rødskift
Name[pl]=Redshift
Name[pt]=Redshift
Name[pt_BR]=Redshift
Name[ro]=Redshift
Name[ru]=Redshift
Name[sr]=Редшифт
Name[sv]=Redshift
Name[tr]=Redshift
Name[uk]=Redshift
Name[zh_CN]=红移
Name[zh_TW]=Redshift
StartupNotify=true
Terminal=false
TryExec=redshift-gtk
Type=Application
X-GNOME-Autostart-enabled=true

View File

@ -0,0 +1,87 @@
#!/bin/bash
if [ -t 1 ] ; then
c_134=$'\033[1;34m'
c_131=$'\033[1;31m'
c_off=$'\033[0m'
else
c0="c0"
fi
detect_dual_boot() {
if [[ $EUID -eq 0 ]] && [[ -x /usr/bin/os-prober ]]; then
local OSPROBER_OUT="$(os-prober)" || { DUALBOOT="Os-prober error"; exit; }
echo $OSPROBER_OUT | grep -q "Windows Boot Manager" &> /dev/null && DUALBOOT="Yes" || DUALBOOT="No/Undetected"
elif [[ -x /usr/bin/efibootmgr ]] && [ -d /boot/efi ]; then
local EFIBOOTMGR_OUT="$(efibootmgr)" || { DUALBOOT="Efibootmgr error"; exit; }
echo $EFIBOOTMGR_OUT | grep -q "Windows Boot Manager" &> /dev/null && DUALBOOT="Probably (Run as root to verify)" || DUALBOOT="No/Undetected"
elif [[ -x /usr/bin/os-prober ]]; then
DUALBOOT="<superuser required>"
else
DUALBOOT="No detection tool installed"
fi
}
detect_snapshots() {
if [ -d /.snapshots ] || pacman -Qq snapper-support &> /dev/null; then
printf "snapper "
elif [ -d /run/timeshift ] || pacman -Qq timeshift-support &> /dev/null; then
printf "timeshift "
elif pacman -Qq snapper &> /dev/null; then
printf "snapper(custom) "
elif pacman -Qq timeshift &> /dev/null; then
printf "timeshift(custom) "
fi
}
generate_relevant_software() {
local RELEVANT=()
local packages
packages="$(pacman -Qq garuda-dracut-support mkinitcpio dracut nvidia-dkms 2> /dev/null | xargs || true)"
systemctl is-enabled tlp &> /dev/null && RELEVANT+=("tlp")
systemctl is-active NetworkManager &> /dev/null && RELEVANT+=("NetworkManager")
systemctl is-active connman &> /dev/null && RELEVANT+=("connman")
if [[ "$packages" =~ (^| )garuda-dracut-support($| ) ]]; then
RELEVANT+=("dracut")
elif [[ "$packages" =~ (^| )dracut($| ) ]]; then
RELEVANT+=("dracut(custom)")
fi
[[ "$packages" =~ (^| )mkinitcpio($| ) ]] && RELEVANT+=("mkinitcpio")
[[ "$packages" =~ (^| )nvidia-dkms($| ) ]] && RELEVANT+=("nvidia-dkms")
detect_snapshots
local RELEVANT_SOFTWARE="${RELEVANT[*]}"
[ -z "$RELEVANT_SOFTWARE" ] && RELEVANT_SOFTWARE="None"
echo "$RELEVANT_SOFTWARE"
}
generate_system_update() {
local last_update
last_update="$(date -r /var/lib/garuda/last_update +%s 2> /dev/null)" || { echo "Unknown/Never"; return; }
local reboot=""
if [ "$last_update" -gt "$(date -r /proc +%s)" ]; then
reboot=" ${c_131}↻${c_off}"
fi
echo -e "$(date -d"@$last_update" +%F)${reboot}"
}
inxi -Faz${c0} --zv
echo -e "${c_134}Garuda ($(pacman -Q garuda-common-settings | awk '{print $2}')):${c_off}"
install_date="$(head -n1 /var/log/pacman.log | cut -d " " -f1 | cut -c 2-11)"
echo -e "${c_134} System install date:${c_off} ${install_date}"
echo -e "${c_134} Last full system update:${c_off} $(generate_system_update)"
echo -e "${c_134} Is partially upgraded: ${c_off} $([ -e /var/lib/garuda/partial_upgrade ] && echo Yes || echo No)"
echo -e "${c_134} Relevant software: ${c_off} $(generate_relevant_software)"
detect_dual_boot &> /dev/null
echo -e "${c_134} Windows dual boot: ${c_off} ${DUALBOOT}"
echo -e "${c_134} Failed units: ${c_off} $(systemctl list-units --failed --full --all --plain --no-legend | awk '{printf("%s ",$1)}')"
if [ "$1" == "funstuff" ]; then
update_count="$(paclog --grep="starting full system upgrade" | wc -l)"
echo -e "${c_134} Total system updates: ${c_off} ${update_count}"
echo -e "${c_134} --> Updates per week: ${c_off} $(( ${update_count}/(($(date +%s) - $(date --date="$install_date" +%s) )/(60*60*24*7)) ))"
fi

View File

@ -0,0 +1,5 @@
# This should be removed after the next KDE update
# Created 2023-02-20
[keyfile]
unmanaged-devices=interface-name:lo

View File

@ -0,0 +1,2 @@
# Prevent annoying beep from the pc speaker.
blacklist pcspkr

View File

@ -0,0 +1,3 @@
# Intel VPRO remote access technology driver.
blacklist mei
blacklist mei_me

View File

@ -0,0 +1,15 @@
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of steamos-customizations.
#
# Copyright © 2022 Valve Corporation.
#
# steamos-customizations is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the License,
# or (at your option) any later version.
#
# This is required due to some games being unable to reuse their TCP ports
# if they're killed and restarted quickly - the default timeout is too large.
net.ipv4.tcp_fin_timeout = 5

View File

@ -0,0 +1,12 @@
# SPDX-License-Identifier: LGPL-2.1+
#
# This file is part of steamos-customizations.
#
# Copyright © 2022 Valve Corporation.
#
# steamos-customizations is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation; either version 2.1 of the License,
# or (at your option) any later version.
kernel.sched_cfs_bandwidth_slice_us = 3000

View File

@ -0,0 +1,15 @@
# The swappiness sysctl parameter represents the kernel's preference (or avoidance) of swap space. Swappiness can have a value between 0 and 200, the default value is 60.
# A low value causes the kernel to avoid swapping, a higher value causes the kernel to try to use swap space. Using a low value on sufficient memory is known to improve responsiveness on many systems.
vm.swappiness=133
# Disable NMI watchdog: This action will speed up your boot and shutdown, because one less module is loaded. Additionally disabling watchdog timers increases performance and lowers power consumption
kernel.nmi_watchdog = 0
# Enable the sysctl setting kernel.unprivileged_userns_clone to allow normal users to run unprivileged containers.
kernel.unprivileged_userns_clone=1
# To hide any kernel messages from the console
kernel.printk = 3 3 3 3
# the key combination of Alt+SysRq+<b/e/f/s/u> will result in Magic SysRQ invocation
kernel.sysrq=1

View File

@ -0,0 +1,2 @@
[Journal]
SystemMaxUse=50M

View File

@ -0,0 +1,3 @@
[Manager]
DefaultLimitNOFILE=1048576
DefaultLimitNPROC=1048576

View File

@ -0,0 +1,3 @@
[Manager]
DefaultTimeoutStopSec=10s
DefaultTimeoutAbortSec=10s

View File

@ -0,0 +1,9 @@
[Unit]
Description=Pacman lock cleaner
[Service]
Type=oneshot
ExecStart=rm -f /var/lib/pacman/db.lck
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,9 @@
[Unit]
Description=Optimizing pacman hooks
[Service]
Type=oneshot
ExecStart=bash -c "if /usr/lib/garuda/is-snapshot-boot; then rm -f /etc/pacman.d/hooks/01-snapshot-reject.hook; else ln -fs /dev/null /etc/pacman.d/hooks/01-snapshot-reject.hook; fi"
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,3 @@
[Manager]
DefaultLimitNOFILE=1048576
DefaultLimitNPROC=1048576

View File

@ -0,0 +1,3 @@
[Manager]
DefaultTimeoutStopSec=10s
DefaultTimeoutAbortSec=10s

View File

@ -0,0 +1,5 @@
[zram0]
host-memory-limit = none
zram-fraction = 1
max-zram-size = none
compression-algorithm = zstd

View File

@ -0,0 +1 @@
w /sys/module/zswap/parameters/enabled - - - - 0

View File

@ -0,0 +1 @@
d /var/log/garuda 1755 root root

View File

@ -0,0 +1 @@
w /proc/sys/dev/hpet/max-user-freq - - - - 3072

View File

@ -0,0 +1 @@
w /sys/class/rtc/rtc0/max_user_freq - - - - 3072

View File

@ -0,0 +1,3 @@
# Hpet permissions
KERNEL=="rtc0", GROUP="realtime"
KERNEL=="hpet", GROUP="realtime"

View File

@ -0,0 +1,10 @@
[Desktop Entry]
Type=Application
Name=Reboot To UEFI
Name[de]=Neustart (UEFI)
Comment=Reboot the machine to UEFI
Comment=Neustart im UEFI Modus
Exec=systemctl reboot --firmware-setup
Icon=system-reboot
Categories=System;X-Leave;

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Type=Application
Name=Suspend/Hibernate
Name[de]=Ruhezustand
Comment=Suspend device, then hibernate
Comment[de]=Die Sitzung speichern, danach Ruhezustand
Exec=systemctl suspend-then-hibernate
Icon=system-suspend
Categories=System;X-Leave;

View File

@ -0,0 +1,71 @@
polkit.addRule(function(action, subject) {
if (action.id.indexOf("org.freedesktop.udisks2.") == 0 &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
action.id == "org.freedesktop.udisks2.filesystem-mount" ||
action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" ||
action.id == "org.freedesktop.udisks.filesystem-fstab") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.login1.power-off" ||
action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
action.id == "org.freedesktop.login1.reboot" ||
action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
action.id == "org.freedesktop.login1.hibernate" ||
action.id == "org.freedesktop.login1.hibernate-multiple-sessions" ||
action.id == "org.freedesktop.login1.suspend" ||
action.id == "org.freedesktop.login1.suspend-multiple-sessions") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.upower.hibernate" ||
action.id == "org.freedesktop.upower.suspend") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.blueman.network.setup" ||
action.id == "org.blueman.dhcp.client" ||
action.id == "org.blueman.rfkill.setstate" ||
action.id == "org.blueman.pppd.pppconnect") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.opensuse.cupspkhelper.mechanism.all-edit") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});
polkit.addRule(function(action, subject) {
if ((action.id == "org.corectrl.helper.init" ||
action.id == "org.corectrl.helperkiller.init") &&
subject.isInGroup("wheel"))
{
return polkit.Result.YES;
}
});