Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| f638a8e89c |
34
.github/workflows/docs.yaml
vendored
|
|
@ -1,34 +0,0 @@
|
||||||
# by https://github.com/danth/stylix/blob/master/.github/workflows/docs.yml
|
|
||||||
name: Docs
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
runs-on: nixos-latest
|
|
||||||
steps:
|
|
||||||
- name: Nix Config
|
|
||||||
run: |
|
|
||||||
mkdir -p $HOME/.config
|
|
||||||
mkdir -p $HOME/.config/nix
|
|
||||||
echo experimental-features = nix-command flakes pipe-operators >> $HOME/.config/nix/nix.conf
|
|
||||||
echo access-tokens = github.com=${{ secrets.GITHUBTOKEN }} >> $HOME/.config/nix/nix.conf
|
|
||||||
nix profile install nixpkgs#nodejs
|
|
||||||
- name: Build docs
|
|
||||||
run: nix -L build git+https://git.dashie.org/${{ forgejo.repository }}.git?rev=${{ forgejo.sha }}#docs --no-write-lock-file
|
|
||||||
- name: Prepare docs for upload
|
|
||||||
run: cp -r --dereference --no-preserve=mode,ownership result/ public/
|
|
||||||
# - name: Upload artifact
|
|
||||||
# uses: https://data.forgejo.org/forgejo/upload-artifact@v4
|
|
||||||
# with:
|
|
||||||
# path: public/
|
|
||||||
- name: Publish Page
|
|
||||||
uses: https://data.forgejo.org/actions/git-pages@v2
|
|
||||||
with:
|
|
||||||
site: https://username.pages.dashie.org/reponame/
|
|
||||||
token: ${{ forge.token }}
|
|
||||||
source: public/
|
|
||||||
35
.github/workflows/pr.yaml
vendored
|
|
@ -1,35 +0,0 @@
|
||||||
# inspired by https://github.com/danth/stylix/blob/master/.github/workflows/docs.yml
|
|
||||||
name: PR check
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches: ["main"]
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: check
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Install Nix
|
|
||||||
uses: DeterminateSystems/nix-installer-action@main
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
extra-conf: |
|
|
||||||
extra-experimental-features = nix-command flakes pipe-operators
|
|
||||||
- name: Set up cache
|
|
||||||
uses: DeterminateSystems/magic-nix-cache-action@main
|
|
||||||
- name: action
|
|
||||||
uses: cachix/install-nix-action@v25
|
|
||||||
with:
|
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
|
||||||
- name: cache
|
|
||||||
uses: cachix/cachix-action@v16
|
|
||||||
with:
|
|
||||||
name: dashnix
|
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
||||||
- name: Linter check
|
|
||||||
run: nix run --no-write-lock-file github:${{ github.repository }}/${{ github.sha }}#lint -- check
|
|
||||||
- name: Format check
|
|
||||||
run: nix run --no-write-lock-file github:${{ github.repository }}/${{ github.sha }}#format -- --check .
|
|
||||||
- name: Build docs
|
|
||||||
run: nix -L build github:${{ github.repository }}/${{ github.sha }}#docs --no-write-lock-file
|
|
||||||
29
.github/workflows/release.yaml
vendored
|
|
@ -1,29 +0,0 @@
|
||||||
# by https://github.com/danth/stylix/blob/master/.github/workflows/docs.yml
|
|
||||||
name: Release
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [created]
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Release
|
|
||||||
permissions: write-all
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Install Nix
|
|
||||||
uses: DeterminateSystems/nix-installer-action@main
|
|
||||||
with:
|
|
||||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
extra-conf: |
|
|
||||||
extra-experimental-features = nix-command flakes pipe-operators
|
|
||||||
- name: Set up cache
|
|
||||||
uses: DeterminateSystems/magic-nix-cache-action@main
|
|
||||||
- name: Build ISO
|
|
||||||
run: nix build github:${{ github.repository }}/${{ github.sha }}#iso --no-write-lock-file
|
|
||||||
- name: Prepare ISO for upload
|
|
||||||
run: |
|
|
||||||
cp -r --dereference --no-preserve=mode,ownership result/iso/DashNix.iso DashNix.iso
|
|
||||||
- name: upload ISO
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
with:
|
|
||||||
files: |
|
|
||||||
DashNix.iso
|
|
||||||
4
.gitignore
vendored
|
|
@ -1,3 +1 @@
|
||||||
result/*
|
/nvim/plugged/*
|
||||||
result
|
|
||||||
flake.lock
|
|
||||||
|
|
|
||||||
159
.zshrc
Normal file
|
|
@ -0,0 +1,159 @@
|
||||||
|
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||||
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The following lines were added by compinstall
|
||||||
|
zstyle :compinstall filename '$HOME/.zshrc'
|
||||||
|
|
||||||
|
autoload -Uz compinit
|
||||||
|
compinit
|
||||||
|
##########
|
||||||
|
|
||||||
|
HISTFILE=~/.histfile
|
||||||
|
HISTSIZE=1000
|
||||||
|
SAVEHIST=1000
|
||||||
|
# End of lines configured by zsh-newuser-install
|
||||||
|
#
|
||||||
|
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||||
|
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||||
|
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
|
||||||
|
|
||||||
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||||
|
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet
|
||||||
|
|
||||||
|
export PATH=$PATH:~/.local/bin
|
||||||
|
export PATH=$PATH:~/.cargo/bin
|
||||||
|
export GPG_TTY=$TTY
|
||||||
|
export TEXMFHOME=$HOME/.texmf
|
||||||
|
export MANGOHUD_CONFIG=position=top-right,font_scale=0.7,round_corners=10.0
|
||||||
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
|
export QT_AUTO_SCREEN_SCALE_FACTOR=0
|
||||||
|
|
||||||
|
alias sudo='sudo '
|
||||||
|
alias ls='lsd'
|
||||||
|
alias :q='exit'
|
||||||
|
alias gh='git push origin'
|
||||||
|
alias gl='git pull origin'
|
||||||
|
alias gm='git commit -m'
|
||||||
|
alias ga="git add -A"
|
||||||
|
alias g+='bear -- g++ -Wextra -Werror -std=c++20'
|
||||||
|
|
||||||
|
# zoxide
|
||||||
|
## =============================================================================
|
||||||
|
#
|
||||||
|
# Utility functions for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
|
||||||
|
function __zoxide_pwd() {
|
||||||
|
\builtin pwd -L
|
||||||
|
}
|
||||||
|
|
||||||
|
# cd + custom logic based on the value of _ZO_ECHO.
|
||||||
|
function __zoxide_cd() {
|
||||||
|
# shellcheck disable=SC2164
|
||||||
|
\builtin cd -- "$@" >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Hook configuration for zoxide.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Hook to add new entries to the database.
|
||||||
|
function __zoxide_hook() {
|
||||||
|
# shellcheck disable=SC2312
|
||||||
|
\command zoxide add -- "$(__zoxide_pwd)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Initialize hook.
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
if [[ ${precmd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]] && [[ ${chpwd_functions[(Ie)__zoxide_hook]:-} -eq 0 ]]; then
|
||||||
|
chpwd_functions+=(__zoxide_hook)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
||||||
|
#
|
||||||
|
|
||||||
|
__zoxide_z_prefix='z#'
|
||||||
|
|
||||||
|
# Jump to a directory using only keywords.
|
||||||
|
function __zoxide_z() {
|
||||||
|
# shellcheck disable=SC2199
|
||||||
|
if [[ "$#" -eq 0 ]]; then
|
||||||
|
__zoxide_cd ~
|
||||||
|
elif [[ "$#" -eq 1 ]] && { [[ -d "$1" ]] || [[ "$1" = '-' ]] || [[ "$1" =~ ^[-+][0-9]$ ]]; }; then
|
||||||
|
__zoxide_cd "$1"
|
||||||
|
elif [[ "$@[-1]" == "${__zoxide_z_prefix}"* ]]; then
|
||||||
|
# shellcheck disable=SC2124
|
||||||
|
\builtin local result="${@[-1]}"
|
||||||
|
__zoxide_cd "${result:${#__zoxide_z_prefix}}"
|
||||||
|
else
|
||||||
|
\builtin local result
|
||||||
|
# shellcheck disable=SC2312
|
||||||
|
result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -- "$@")" &&
|
||||||
|
__zoxide_cd "${result}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Jump to a directory using interactive search.
|
||||||
|
function __zoxide_zi() {
|
||||||
|
\builtin local result
|
||||||
|
result="$(\command zoxide query -i -- "$@")" && __zoxide_cd "${result}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# Commands for zoxide. Disable these using --no-cmd.
|
||||||
|
#
|
||||||
|
|
||||||
|
\builtin unalias z &>/dev/null || \builtin true
|
||||||
|
function z() {
|
||||||
|
__zoxide_z "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
\builtin unalias zi &>/dev/null || \builtin true
|
||||||
|
function zi() {
|
||||||
|
__zoxide_zi "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -o zle ]]; then
|
||||||
|
function __zoxide_z_complete() {
|
||||||
|
# Only show completions when the cursor is at the end of the line.
|
||||||
|
# shellcheck disable=SC2154
|
||||||
|
[[ "${#words[@]}" -eq "${CURRENT}" ]] || return
|
||||||
|
|
||||||
|
if [[ "${#words[@]}" -eq 2 ]]; then
|
||||||
|
_files -/
|
||||||
|
elif [[ "${words[-1]}" == '' ]]; then
|
||||||
|
\builtin local result
|
||||||
|
# shellcheck disable=SC2086,SC2312
|
||||||
|
if result="$(\command zoxide query --exclude "$(__zoxide_pwd)" -i -- ${words[2,-1]})"; then
|
||||||
|
__zoxide_result="${result}"
|
||||||
|
else
|
||||||
|
__zoxide_result=''
|
||||||
|
fi
|
||||||
|
\builtin printf '\e[5n'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function __zoxide_z_complete_helper() {
|
||||||
|
\builtin local result="${__zoxide_z_prefix}${__zoxide_result}"
|
||||||
|
# shellcheck disable=SC2296
|
||||||
|
[[ -n "${__zoxide_result}" ]] && LBUFFER="${LBUFFER}${(q-)result}"
|
||||||
|
\builtin zle reset-prompt
|
||||||
|
}
|
||||||
|
|
||||||
|
\builtin zle -N __zoxide_z_complete_helper
|
||||||
|
\builtin bindkey "\e[0n" __zoxide_z_complete_helper
|
||||||
|
if [[ "${+functions[compdef]}" -ne 0 ]]; then
|
||||||
|
\compdef -d z
|
||||||
|
\compdef -d zi
|
||||||
|
\compdef __zoxide_z_complete z
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
841
LICENSE
|
|
@ -1,841 +0,0 @@
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
|
|
||||||
This version of the GNU Lesser General Public License incorporates
|
|
||||||
the terms and conditions of version 3 of the GNU General Public
|
|
||||||
License, supplemented by the additional permissions listed below.
|
|
||||||
|
|
||||||
0. Additional Definitions.
|
|
||||||
|
|
||||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
|
||||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
|
||||||
General Public License.
|
|
||||||
|
|
||||||
"The Library" refers to a covered work governed by this License,
|
|
||||||
other than an Application or a Combined Work as defined below.
|
|
||||||
|
|
||||||
An "Application" is any work that makes use of an interface provided
|
|
||||||
by the Library, but which is not otherwise based on the Library.
|
|
||||||
Defining a subclass of a class defined by the Library is deemed a mode
|
|
||||||
of using an interface provided by the Library.
|
|
||||||
|
|
||||||
A "Combined Work" is a work produced by combining or linking an
|
|
||||||
Application with the Library. The particular version of the Library
|
|
||||||
with which the Combined Work was made is also called the "Linked
|
|
||||||
Version".
|
|
||||||
|
|
||||||
The "Minimal Corresponding Source" for a Combined Work means the
|
|
||||||
Corresponding Source for the Combined Work, excluding any source code
|
|
||||||
for portions of the Combined Work that, considered in isolation, are
|
|
||||||
based on the Application, and not on the Linked Version.
|
|
||||||
|
|
||||||
The "Corresponding Application Code" for a Combined Work means the
|
|
||||||
object code and/or source code for the Application, including any data
|
|
||||||
and utility programs needed for reproducing the Combined Work from the
|
|
||||||
Application, but excluding the System Libraries of the Combined Work.
|
|
||||||
|
|
||||||
1. Exception to Section 3 of the GNU GPL.
|
|
||||||
|
|
||||||
You may convey a covered work under sections 3 and 4 of this License
|
|
||||||
without being bound by section 3 of the GNU GPL.
|
|
||||||
|
|
||||||
2. Conveying Modified Versions.
|
|
||||||
|
|
||||||
If you modify a copy of the Library, and, in your modifications, a
|
|
||||||
facility refers to a function or data to be supplied by an Application
|
|
||||||
that uses the facility (other than as an argument passed when the
|
|
||||||
facility is invoked), then you may convey a copy of the modified
|
|
||||||
version:
|
|
||||||
|
|
||||||
a) under this License, provided that you make a good faith effort to
|
|
||||||
ensure that, in the event an Application does not supply the
|
|
||||||
function or data, the facility still operates, and performs
|
|
||||||
whatever part of its purpose remains meaningful, or
|
|
||||||
|
|
||||||
b) under the GNU GPL, with none of the additional permissions of
|
|
||||||
this License applicable to that copy.
|
|
||||||
|
|
||||||
3. Object Code Incorporating Material from Library Header Files.
|
|
||||||
|
|
||||||
The object code form of an Application may incorporate material from
|
|
||||||
a header file that is part of the Library. You may convey such object
|
|
||||||
code under terms of your choice, provided that, if the incorporated
|
|
||||||
material is not limited to numerical parameters, data structure
|
|
||||||
layouts and accessors, or small macros, inline functions and templates
|
|
||||||
(ten or fewer lines in length), you do both of the following:
|
|
||||||
|
|
||||||
a) Give prominent notice with each copy of the object code that the
|
|
||||||
Library is used in it and that the Library and its use are
|
|
||||||
covered by this License.
|
|
||||||
|
|
||||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
|
||||||
document.
|
|
||||||
|
|
||||||
4. Combined Works.
|
|
||||||
|
|
||||||
You may convey a Combined Work under terms of your choice that,
|
|
||||||
taken together, effectively do not restrict modification of the
|
|
||||||
portions of the Library contained in the Combined Work and reverse
|
|
||||||
engineering for debugging such modifications, if you also do each of
|
|
||||||
the following:
|
|
||||||
|
|
||||||
a) Give prominent notice with each copy of the Combined Work that
|
|
||||||
the Library is used in it and that the Library and its use are
|
|
||||||
covered by this License.
|
|
||||||
|
|
||||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
|
||||||
document.
|
|
||||||
|
|
||||||
c) For a Combined Work that displays copyright notices during
|
|
||||||
execution, include the copyright notice for the Library among
|
|
||||||
these notices, as well as a reference directing the user to the
|
|
||||||
copies of the GNU GPL and this license document.
|
|
||||||
|
|
||||||
d) Do one of the following:
|
|
||||||
|
|
||||||
0) Convey the Minimal Corresponding Source under the terms of this
|
|
||||||
License, and the Corresponding Application Code in a form
|
|
||||||
suitable for, and under terms that permit, the user to
|
|
||||||
recombine or relink the Application with a modified version of
|
|
||||||
the Linked Version to produce a modified Combined Work, in the
|
|
||||||
manner specified by section 6 of the GNU GPL for conveying
|
|
||||||
Corresponding Source.
|
|
||||||
|
|
||||||
1) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (a) uses at run time
|
|
||||||
a copy of the Library already present on the user's computer
|
|
||||||
system, and (b) will operate properly with a modified version
|
|
||||||
of the Library that is interface-compatible with the Linked
|
|
||||||
Version.
|
|
||||||
|
|
||||||
e) Provide Installation Information, but only if you would otherwise
|
|
||||||
be required to provide such information under section 6 of the
|
|
||||||
GNU GPL, and only to the extent that such information is
|
|
||||||
necessary to install and execute a modified version of the
|
|
||||||
Combined Work produced by recombining or relinking the
|
|
||||||
Application with a modified version of the Linked Version. (If
|
|
||||||
you use option 4d0, the Installation Information must accompany
|
|
||||||
the Minimal Corresponding Source and Corresponding Application
|
|
||||||
Code. If you use option 4d1, you must provide the Installation
|
|
||||||
Information in the manner specified by section 6 of the GNU GPL
|
|
||||||
for conveying Corresponding Source.)
|
|
||||||
|
|
||||||
5. Combined Libraries.
|
|
||||||
|
|
||||||
You may place library facilities that are a work based on the
|
|
||||||
Library side by side in a single library together with other library
|
|
||||||
facilities that are not Applications and are not covered by this
|
|
||||||
License, and convey such a combined library under terms of your
|
|
||||||
choice, if you do both of the following:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work based
|
|
||||||
on the Library, uncombined with any other library facilities,
|
|
||||||
conveyed under the terms of this License.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library that part of it
|
|
||||||
is a work based on the Library, and explaining where to find the
|
|
||||||
accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
6. Revised Versions of the GNU Lesser General Public License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the GNU Lesser General Public License from time to time. Such new
|
|
||||||
versions will be similar in spirit to the present version, but may
|
|
||||||
differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Library as you received it specifies that a certain numbered version
|
|
||||||
of the GNU Lesser General Public License "or any later version"
|
|
||||||
applies to it, you have the option of following the terms and
|
|
||||||
conditions either of that published version or of any later version
|
|
||||||
published by the Free Software Foundation. If the Library as you
|
|
||||||
received it does not specify a version number of the GNU Lesser
|
|
||||||
General Public License, you may choose any version of the GNU Lesser
|
|
||||||
General Public License ever published by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Library as you received it specifies that a proxy can decide
|
|
||||||
whether future versions of the GNU Lesser General Public License shall
|
|
||||||
apply, that proxy's public statement of acceptance of any version is
|
|
||||||
permanent authorization for you to choose that version for the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
the GNU General Public License is intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users. We, the Free Software Foundation, use the
|
|
||||||
GNU General Public License for most of our software; it applies also to
|
|
||||||
any other work released this way by its authors. You can apply it to
|
|
||||||
your programs, too.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to prevent others from denying you
|
|
||||||
these rights or asking you to surrender the rights. Therefore, you have
|
|
||||||
certain responsibilities if you distribute copies of the software, or if
|
|
||||||
you modify it: responsibilities to respect the freedom of others.
|
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
|
||||||
gratis or for a fee, you must pass on to the recipients the same
|
|
||||||
freedoms that you received. You must make sure that they, too, receive
|
|
||||||
or can get the source code. And you must show them these terms so they
|
|
||||||
know their rights.
|
|
||||||
|
|
||||||
Developers that use the GNU GPL protect your rights with two steps:
|
|
||||||
(1) assert copyright on the software, and (2) offer you this License
|
|
||||||
giving you legal permission to copy, distribute and/or modify it.
|
|
||||||
|
|
||||||
For the developers' and authors' protection, the GPL clearly explains
|
|
||||||
that there is no warranty for this free software. For both users' and
|
|
||||||
authors' sake, the GPL requires that modified versions be marked as
|
|
||||||
changed, so that their problems will not be attributed erroneously to
|
|
||||||
authors of previous versions.
|
|
||||||
|
|
||||||
Some devices are designed to deny users access to install or run
|
|
||||||
modified versions of the software inside them, although the manufacturer
|
|
||||||
can do so. This is fundamentally incompatible with the aim of
|
|
||||||
protecting users' freedom to change the software. The systematic
|
|
||||||
pattern of such abuse occurs in the area of products for individuals to
|
|
||||||
use, which is precisely where it is most unacceptable. Therefore, we
|
|
||||||
have designed this version of the GPL to prohibit the practice for those
|
|
||||||
products. If such problems arise substantially in other domains, we
|
|
||||||
stand ready to extend this provision to those domains in future versions
|
|
||||||
of the GPL, as needed to protect the freedom of users.
|
|
||||||
|
|
||||||
Finally, every program is threatened constantly by software patents.
|
|
||||||
States should not allow patents to restrict development and use of
|
|
||||||
software on general-purpose computers, but in those that do, we wish to
|
|
||||||
avoid the special danger that patents applied to a free program could
|
|
||||||
make it effectively proprietary. To prevent this, the GPL assures that
|
|
||||||
patents cannot be used to render the program non-free.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Use with the GNU Affero General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU Affero General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the special requirements of the GNU Affero General Public License,
|
|
||||||
section 13, concerning interaction through a network will apply to the
|
|
||||||
combination as such.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU General Public License from time to time. Such new versions will
|
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If the program does terminal interaction, make it output a short
|
|
||||||
notice like this when it starts in an interactive mode:
|
|
||||||
|
|
||||||
<program> Copyright (C) <year> <name of author>
|
|
||||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
||||||
This is free software, and you are welcome to redistribute it
|
|
||||||
under certain conditions; type `show c' for details.
|
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
||||||
parts of the General Public License. Of course, your program's commands
|
|
||||||
might be different; for a GUI interface, you would use an "about box".
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU GPL, see
|
|
||||||
<https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
The GNU General Public License does not permit incorporating your program
|
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
|
||||||
may consider it more useful to permit linking proprietary applications with
|
|
||||||
the library. If this is what you want to do, use the GNU Lesser General
|
|
||||||
Public License instead of this License. But first, please read
|
|
||||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
||||||
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
docs/src/README.md
|
|
||||||
6
README.md
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# dotFiles
|
||||||
|
|
||||||
|
## General
|
||||||
|
Personal Dotfiles with many being combined together to get this, and other things coming from myself directly.
|
||||||
|
|
||||||
|
## [Keymaps](nvim/README.md)
|
||||||
878
alacritty/alacritty.yml
Normal file
|
|
@ -0,0 +1,878 @@
|
||||||
|
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||||
|
|
||||||
|
# Import additional configuration files
|
||||||
|
#
|
||||||
|
# Imports are loaded in order, skipping all missing files, with the importing
|
||||||
|
# file being loaded last. If a field is already present in a previous import, it
|
||||||
|
# will be replaced.
|
||||||
|
#
|
||||||
|
# All imports must either be absolute paths starting with `/`, or paths relative
|
||||||
|
# to the user's home directory starting with `~/`.
|
||||||
|
#import:
|
||||||
|
# - /path/to/alacritty.yml
|
||||||
|
|
||||||
|
# Any items in the `env` entry below will be added as
|
||||||
|
# environment variables. Some entries may override variables
|
||||||
|
# set by alacritty itself.
|
||||||
|
#env:
|
||||||
|
# TERM variable
|
||||||
|
#
|
||||||
|
# This value is used to set the `$TERM` environment variable for
|
||||||
|
# each instance of Alacritty. If it is not present, alacritty will
|
||||||
|
# check the local terminfo database and use `alacritty` if it is
|
||||||
|
# available, otherwise `xterm-256color` is used.
|
||||||
|
#TERM: alacritty
|
||||||
|
|
||||||
|
#window:
|
||||||
|
# Window dimensions (changes require restart)
|
||||||
|
#
|
||||||
|
# Number of lines/columns (not pixels) in the terminal. The number of columns
|
||||||
|
# must be at least `2`, while using a value of `0` for columns and lines will
|
||||||
|
# fall back to the window manager's recommended size.
|
||||||
|
#dimensions:
|
||||||
|
# columns: 0
|
||||||
|
# lines: 0
|
||||||
|
|
||||||
|
# Window position (changes require restart)
|
||||||
|
#
|
||||||
|
# Specified in number of pixels.
|
||||||
|
# If the position is not set, the window manager will handle the placement.
|
||||||
|
#position:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Window padding (changes require restart)
|
||||||
|
#
|
||||||
|
# Blank space added around the window in pixels. This padding is scaled
|
||||||
|
# by DPI and the specified value is always added at both opposing sides.
|
||||||
|
#padding:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Spread additional padding evenly around the terminal content.
|
||||||
|
#dynamic_padding: false
|
||||||
|
|
||||||
|
# Window decorations
|
||||||
|
#
|
||||||
|
# Values for `decorations`:
|
||||||
|
# - full: Borders and title bar
|
||||||
|
# - none: Neither borders nor title bar
|
||||||
|
#
|
||||||
|
# Values for `decorations` (macOS only):
|
||||||
|
# - transparent: Title bar, transparent background and title bar buttons
|
||||||
|
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||||
|
#decorations: full
|
||||||
|
|
||||||
|
# Background opacity
|
||||||
|
#
|
||||||
|
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||||
|
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||||
|
window:
|
||||||
|
opacity: 0.85
|
||||||
|
|
||||||
|
# Startup Mode (changes require restart)
|
||||||
|
#
|
||||||
|
# Values for `startup_mode`:
|
||||||
|
# - Windowed
|
||||||
|
# - Maximized
|
||||||
|
# - Fullscreen
|
||||||
|
#
|
||||||
|
# Values for `startup_mode` (macOS only):
|
||||||
|
# - SimpleFullscreen
|
||||||
|
#startup_mode: Windowed
|
||||||
|
|
||||||
|
# Window title
|
||||||
|
#title: Alacritty
|
||||||
|
|
||||||
|
# Allow terminal applications to change Alacritty's window title.
|
||||||
|
#dynamic_title: true
|
||||||
|
|
||||||
|
# Window class (Linux/BSD only):
|
||||||
|
#class:
|
||||||
|
# Application instance name
|
||||||
|
#instance: Alacritty
|
||||||
|
# General application class
|
||||||
|
#general: Alacritty
|
||||||
|
|
||||||
|
# GTK theme variant (Linux/BSD only)
|
||||||
|
#
|
||||||
|
# Override the variant of the GTK theme. Commonly supported values are `dark`
|
||||||
|
# and `light`. Set this to `None` to use the default theme variant.
|
||||||
|
#gtk_theme_variant: None
|
||||||
|
|
||||||
|
#scrolling:
|
||||||
|
# Maximum number of lines in the scrollback buffer.
|
||||||
|
# Specifying '0' will disable scrolling.
|
||||||
|
#history: 10000
|
||||||
|
|
||||||
|
# Scrolling distance multiplier.
|
||||||
|
#multiplier: 3
|
||||||
|
|
||||||
|
# Font configuration
|
||||||
|
#font:
|
||||||
|
# Normal (roman) font face
|
||||||
|
#normal: 'FuraMono Nerd Font'
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) Menlo
|
||||||
|
# - (Linux/BSD) monospace
|
||||||
|
# - (Windows) Consolas
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Regular
|
||||||
|
|
||||||
|
# Bold font face
|
||||||
|
# bold: 'FuraMono Nerf Font bold'
|
||||||
|
#
|
||||||
|
# If the bold family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold
|
||||||
|
|
||||||
|
# Italic font face
|
||||||
|
#italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Italic
|
||||||
|
|
||||||
|
# Bold italic font face
|
||||||
|
#bold_italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the bold italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold Italic
|
||||||
|
|
||||||
|
# Point size
|
||||||
|
#size: 11.0
|
||||||
|
|
||||||
|
# Offset is the extra space around each character. `offset.y` can be thought
|
||||||
|
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||||
|
# spacing.
|
||||||
|
#offset:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Glyph offset determines the locations of the glyphs within their cells with
|
||||||
|
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||||
|
# right, increasing `y` moves the glyph upward.
|
||||||
|
#glyph_offset:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Thin stroke font rendering (macOS only)
|
||||||
|
#
|
||||||
|
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||||
|
# it is recommended to set `use_thin_strokes` to `false`.
|
||||||
|
#use_thin_strokes: true
|
||||||
|
|
||||||
|
# Use built-in font for box drawing characters.
|
||||||
|
#
|
||||||
|
# If `true`, Alacritty will use a custom built-in font for box drawing
|
||||||
|
# characters (Unicode points 2500 - 259f).
|
||||||
|
#
|
||||||
|
#builtin_box_drawing: true
|
||||||
|
|
||||||
|
# If `true`, bold text is drawn using the bright color variants.
|
||||||
|
#draw_bold_text_with_bright_colors: false
|
||||||
|
|
||||||
|
# Colors (Tomorrow Night)
|
||||||
|
colors:
|
||||||
|
# Default colors
|
||||||
|
primary:
|
||||||
|
background: '#1d1f21'
|
||||||
|
foreground: '#c5c8c6'
|
||||||
|
|
||||||
|
# Bright and dim foreground colors
|
||||||
|
#
|
||||||
|
# The dimmed foreground color is calculated automatically if it is not
|
||||||
|
# present. If the bright foreground color is not set, or
|
||||||
|
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||||
|
# color will be used.
|
||||||
|
#dim_foreground: '#828482'
|
||||||
|
#bright_foreground: '#eaeaea'
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
#
|
||||||
|
# Colors which should be used to draw the terminal cursor.
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
cursor:
|
||||||
|
text: CellBackground
|
||||||
|
cursor: CellForeground
|
||||||
|
|
||||||
|
# Vi mode cursor colors
|
||||||
|
#
|
||||||
|
# Colors for the cursor when the vi mode is active.
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
vi_mode_cursor:
|
||||||
|
text: CellBackground
|
||||||
|
cursor: CellForeground
|
||||||
|
|
||||||
|
# Search colors
|
||||||
|
#
|
||||||
|
# Colors used for the search bar and match highlighting.
|
||||||
|
search:
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
matches:
|
||||||
|
foreground: '#000000'
|
||||||
|
background: '#ffffff'
|
||||||
|
focused_match:
|
||||||
|
foreground: '#ffffff'
|
||||||
|
background: '#000000'
|
||||||
|
|
||||||
|
colors.footer_bar:
|
||||||
|
background: '#c5c8c6'
|
||||||
|
foreground: '#1d1f21'
|
||||||
|
|
||||||
|
# Keyboard regex hints
|
||||||
|
hints:
|
||||||
|
# First character in the hint label
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
start:
|
||||||
|
foreground: '#1d1f21'
|
||||||
|
background: '#e9ff5e'
|
||||||
|
|
||||||
|
# All characters after the first one in the hint label
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
end:
|
||||||
|
foreground: '#e9ff5e'
|
||||||
|
background: '#1d1f21'
|
||||||
|
|
||||||
|
# Line indicator
|
||||||
|
#
|
||||||
|
# Color used for the indicator displaying the position in history during
|
||||||
|
# search and vi mode.
|
||||||
|
#
|
||||||
|
# By default, these will use the opposing primary color.
|
||||||
|
#line_indicator:
|
||||||
|
# foreground: None
|
||||||
|
# background: None
|
||||||
|
|
||||||
|
# Selection colors
|
||||||
|
#
|
||||||
|
# Colors which should be used to draw the selection area.
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground/CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
selection:
|
||||||
|
text: CellBackground
|
||||||
|
background: CellForeground
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '#1d1f21'
|
||||||
|
red: '#cc6666'
|
||||||
|
green: '#b5bd68'
|
||||||
|
yellow: '#f0c674'
|
||||||
|
blue: '#81a2be'
|
||||||
|
magenta: '#b294bb'
|
||||||
|
cyan: '#8abeb7'
|
||||||
|
white: '#c5c8c6'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '#666666'
|
||||||
|
red: '#d54e53'
|
||||||
|
green: '#b9ca4a'
|
||||||
|
yellow: '#e7c547'
|
||||||
|
blue: '#7aa6da'
|
||||||
|
magenta: '#c397d8'
|
||||||
|
cyan: '#70c0b1'
|
||||||
|
white: '#eaeaea'
|
||||||
|
|
||||||
|
# Dim colors
|
||||||
|
#
|
||||||
|
# If the dim colors are not set, they will be calculated automatically based
|
||||||
|
# on the `normal` colors.
|
||||||
|
dim:
|
||||||
|
black: '#131415'
|
||||||
|
red: '#864343'
|
||||||
|
green: '#777c44'
|
||||||
|
yellow: '#9e824c'
|
||||||
|
blue: '#556a7d'
|
||||||
|
magenta: '#75617b'
|
||||||
|
cyan: '#5b7d78'
|
||||||
|
white: '#828482'
|
||||||
|
|
||||||
|
# Indexed Colors
|
||||||
|
#
|
||||||
|
# The indexed colors include all colors from 16 to 256.
|
||||||
|
# When these are not set, they're filled with sensible defaults.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# `- { index: 16, color: '#ff00ff' }`
|
||||||
|
#
|
||||||
|
#indexed_colors: []
|
||||||
|
|
||||||
|
# Transparent cell backgrounds
|
||||||
|
#
|
||||||
|
# Whether or not `window.opacity` applies to all cell backgrounds or only to
|
||||||
|
# the default background. When set to `true` all cells will be transparent
|
||||||
|
# regardless of their background color.
|
||||||
|
#transparent_background_colors: false
|
||||||
|
|
||||||
|
# Bell
|
||||||
|
#
|
||||||
|
# The bell is rung every time the BEL control character is received.
|
||||||
|
#bell:
|
||||||
|
# Visual Bell Animation
|
||||||
|
#
|
||||||
|
# Animation effect for flashing the screen when the visual bell is rung.
|
||||||
|
#
|
||||||
|
# Values for `animation`:
|
||||||
|
# - Ease
|
||||||
|
# - EaseOut
|
||||||
|
# - EaseOutSine
|
||||||
|
# - EaseOutQuad
|
||||||
|
# - EaseOutCubic
|
||||||
|
# - EaseOutQuart
|
||||||
|
# - EaseOutQuint
|
||||||
|
# - EaseOutExpo
|
||||||
|
# - EaseOutCirc
|
||||||
|
# - Linear
|
||||||
|
#animation: EaseOutExpo
|
||||||
|
|
||||||
|
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
||||||
|
# disable the visual bell animation.
|
||||||
|
#duration: 0
|
||||||
|
|
||||||
|
# Visual bell animation color.
|
||||||
|
#color: '#ffffff'
|
||||||
|
|
||||||
|
# Bell Command
|
||||||
|
#
|
||||||
|
# This program is executed whenever the bell is rung.
|
||||||
|
#
|
||||||
|
# When set to `command: None`, no command will be executed.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# command:
|
||||||
|
# program: notify-send
|
||||||
|
# args: ["Hello, World!"]
|
||||||
|
#
|
||||||
|
#command: None
|
||||||
|
|
||||||
|
#selection:
|
||||||
|
# This string contains all characters that are used as separators for
|
||||||
|
# "semantic words" in Alacritty.
|
||||||
|
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||||
|
|
||||||
|
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||||
|
#save_to_clipboard: false
|
||||||
|
|
||||||
|
#cursor:
|
||||||
|
# Cursor style
|
||||||
|
#style:
|
||||||
|
# Cursor shape
|
||||||
|
#
|
||||||
|
# Values for `shape`:
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
#shape: Block
|
||||||
|
|
||||||
|
# Cursor blinking state
|
||||||
|
#
|
||||||
|
# Values for `blinking`:
|
||||||
|
# - Never: Prevent the cursor from ever blinking
|
||||||
|
# - Off: Disable blinking by default
|
||||||
|
# - On: Enable blinking by default
|
||||||
|
# - Always: Force the cursor to always blink
|
||||||
|
#blinking: Off
|
||||||
|
|
||||||
|
# Vi mode cursor style
|
||||||
|
#
|
||||||
|
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
||||||
|
# the style of the active value of the normal cursor.
|
||||||
|
#
|
||||||
|
# See `cursor.style` for available options.
|
||||||
|
#vi_mode_style: None
|
||||||
|
|
||||||
|
# Cursor blinking interval in milliseconds.
|
||||||
|
#blink_interval: 750
|
||||||
|
|
||||||
|
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||||
|
# window is not focused.
|
||||||
|
#unfocused_hollow: true
|
||||||
|
|
||||||
|
# Thickness of the cursor relative to the cell width as floating point number
|
||||||
|
# from `0.0` to `1.0`.
|
||||||
|
#thickness: 0.15
|
||||||
|
|
||||||
|
# Live config reload (changes require restart)
|
||||||
|
live_config_reload: true
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
#
|
||||||
|
# You can set `shell.program` to the path of your favorite shell, e.g.
|
||||||
|
#`/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
|
||||||
|
# shell.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) /bin/bash --login
|
||||||
|
# - (Linux/BSD) user login shell
|
||||||
|
# - (Windows) powershell
|
||||||
|
shell:
|
||||||
|
program: /bin/zsh
|
||||||
|
args:
|
||||||
|
- --login
|
||||||
|
|
||||||
|
|
||||||
|
# Startup directory
|
||||||
|
#
|
||||||
|
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||||
|
# directory of the parent process will be used.
|
||||||
|
#working_directory: None
|
||||||
|
|
||||||
|
# Send ESC (\x1b) before characters when alt is pressed.
|
||||||
|
#alt_send_esc: true
|
||||||
|
|
||||||
|
# Offer IPC using `alacritty msg` (unix only)
|
||||||
|
#ipc_socket: true
|
||||||
|
|
||||||
|
#mouse:
|
||||||
|
# Click settings
|
||||||
|
#
|
||||||
|
# The `double_click` and `triple_click` settings control the time
|
||||||
|
# alacritty should wait for accepting multiple clicks as one double
|
||||||
|
# or triple click.
|
||||||
|
#double_click: { threshold: 300 }
|
||||||
|
#triple_click: { threshold: 300 }
|
||||||
|
|
||||||
|
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||||
|
#hide_when_typing: false
|
||||||
|
|
||||||
|
# Regex hints
|
||||||
|
#
|
||||||
|
# Terminal hints can be used to find text in the visible part of the terminal
|
||||||
|
# and pipe it to other applications.
|
||||||
|
#hints:
|
||||||
|
# Keys used for the hint labels.
|
||||||
|
#alphabet: "jfkdls;ahgurieowpq"
|
||||||
|
|
||||||
|
# List with all available hints
|
||||||
|
#
|
||||||
|
# Each hint must have a `regex` and either an `action` or a `command` field.
|
||||||
|
# The fields `mouse`, `binding` and `post_processing` are optional.
|
||||||
|
#
|
||||||
|
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
||||||
|
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
||||||
|
#
|
||||||
|
# The `mouse.enabled` field controls if the hint should be underlined while
|
||||||
|
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
||||||
|
#
|
||||||
|
# If the `post_processing` field is set to `true`, heuristics will be used to
|
||||||
|
# shorten the match if there are characters likely not to be part of the hint
|
||||||
|
# (e.g. a trailing `.`). This is most useful for URIs.
|
||||||
|
#
|
||||||
|
# Values for `action`:
|
||||||
|
# - Copy
|
||||||
|
# Copy the hint's text to the clipboard.
|
||||||
|
# - Paste
|
||||||
|
# Paste the hint's text to the terminal or search.
|
||||||
|
# - Select
|
||||||
|
# Select the hint's text.
|
||||||
|
# - MoveViModeCursor
|
||||||
|
# Move the vi mode cursor to the beginning of the hint.
|
||||||
|
#enabled:
|
||||||
|
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
||||||
|
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
||||||
|
# command: xdg-open
|
||||||
|
# post_processing: true
|
||||||
|
# mouse:
|
||||||
|
# enabled: true
|
||||||
|
# mods: None
|
||||||
|
# binding:
|
||||||
|
# key: U
|
||||||
|
# mods: Control|Shift
|
||||||
|
|
||||||
|
# Mouse bindings
|
||||||
|
#
|
||||||
|
# Mouse bindings are specified as a list of objects, much like the key
|
||||||
|
# bindings further below.
|
||||||
|
#
|
||||||
|
# To trigger mouse bindings when an application running within Alacritty
|
||||||
|
# captures the mouse, the `Shift` modifier is automatically added as a
|
||||||
|
# requirement.
|
||||||
|
#
|
||||||
|
# Each mouse binding will specify a:
|
||||||
|
#
|
||||||
|
# - `mouse`:
|
||||||
|
#
|
||||||
|
# - Middle
|
||||||
|
# - Left
|
||||||
|
# - Right
|
||||||
|
# - Numeric identifier such as `5`
|
||||||
|
#
|
||||||
|
# - `action` (see key bindings for actions not exclusive to mouse mode)
|
||||||
|
#
|
||||||
|
# - Mouse exclusive actions:
|
||||||
|
#
|
||||||
|
# - ExpandSelection
|
||||||
|
# Expand the selection to the current mouse cursor location.
|
||||||
|
#
|
||||||
|
# And optionally:
|
||||||
|
#
|
||||||
|
# - `mods` (see key bindings)
|
||||||
|
#mouse_bindings:
|
||||||
|
# - { mouse: Right, action: ExpandSelection }
|
||||||
|
# - { mouse: Right, mods: Control, action: ExpandSelection }
|
||||||
|
# - { mouse: Middle, mode: ~Vi, action: PasteSelection }
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
#
|
||||||
|
# Key bindings are specified as a list of objects. For example, this is the
|
||||||
|
# default paste binding:
|
||||||
|
#
|
||||||
|
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||||
|
#
|
||||||
|
# Each key binding will specify a:
|
||||||
|
#
|
||||||
|
# - `key`: Identifier of the key pressed
|
||||||
|
#
|
||||||
|
# - A-Z
|
||||||
|
# - F1-F24
|
||||||
|
# - Key0-Key9
|
||||||
|
#
|
||||||
|
# A full list with available key codes can be found here:
|
||||||
|
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||||
|
#
|
||||||
|
# Instead of using the name of the keys, the `key` field also supports using
|
||||||
|
# the scancode of the desired key. Scancodes have to be specified as a
|
||||||
|
# decimal number. This command will allow you to display the hex scancodes
|
||||||
|
# for certain keys:
|
||||||
|
#
|
||||||
|
# `showkey --scancodes`.
|
||||||
|
#
|
||||||
|
# Then exactly one of:
|
||||||
|
#
|
||||||
|
# - `chars`: Send a byte sequence to the running application
|
||||||
|
#
|
||||||
|
# The `chars` field writes the specified string to the terminal. This makes
|
||||||
|
# it possible to pass escape sequences. To find escape codes for bindings
|
||||||
|
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||||
|
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||||
|
# to keys. It is therefore required to update the terminfo when changing an
|
||||||
|
# escape sequence.
|
||||||
|
#
|
||||||
|
# - `action`: Execute a predefined action
|
||||||
|
#
|
||||||
|
# - ToggleViMode
|
||||||
|
# - SearchForward
|
||||||
|
# Start searching toward the right of the search origin.
|
||||||
|
# - SearchBackward
|
||||||
|
# Start searching toward the left of the search origin.
|
||||||
|
# - Copy
|
||||||
|
# - Paste
|
||||||
|
# - IncreaseFontSize
|
||||||
|
# - DecreaseFontSize
|
||||||
|
# - ResetFontSize
|
||||||
|
# - ScrollPageUp
|
||||||
|
# - ScrollPageDown
|
||||||
|
# - ScrollHalfPageUp
|
||||||
|
# - ScrollHalfPageDown
|
||||||
|
# - ScrollLineUp
|
||||||
|
# - ScrollLineDown
|
||||||
|
# - ScrollToTop
|
||||||
|
# - ScrollToBottom
|
||||||
|
# - ClearHistory
|
||||||
|
# Remove the terminal's scrollback history.
|
||||||
|
# - Hide
|
||||||
|
# Hide the Alacritty window.
|
||||||
|
# - Minimize
|
||||||
|
# Minimize the Alacritty window.
|
||||||
|
# - Quit
|
||||||
|
# Quit Alacritty.
|
||||||
|
# - ToggleFullscreen
|
||||||
|
# - SpawnNewInstance
|
||||||
|
# Spawn a new instance of Alacritty.
|
||||||
|
# - CreateNewWindow
|
||||||
|
# Create a new Alacritty window from the current process.
|
||||||
|
# - ClearLogNotice
|
||||||
|
# Clear Alacritty's UI warning and error notice.
|
||||||
|
# - ClearSelection
|
||||||
|
# Remove the active selection.
|
||||||
|
# - ReceiveChar
|
||||||
|
# - None
|
||||||
|
#
|
||||||
|
# - Vi mode exclusive actions:
|
||||||
|
#
|
||||||
|
# - Open
|
||||||
|
# Perform the action of the first matching hint under the vi mode cursor
|
||||||
|
# with `mouse.enabled` set to `true`.
|
||||||
|
# - ToggleNormalSelection
|
||||||
|
# - ToggleLineSelection
|
||||||
|
# - ToggleBlockSelection
|
||||||
|
# - ToggleSemanticSelection
|
||||||
|
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
||||||
|
#
|
||||||
|
# - Vi mode exclusive cursor motion actions:
|
||||||
|
#
|
||||||
|
# - Up
|
||||||
|
# One line up.
|
||||||
|
# - Down
|
||||||
|
# One line down.
|
||||||
|
# - Left
|
||||||
|
# One character left.
|
||||||
|
# - Right
|
||||||
|
# One character right.
|
||||||
|
# - First
|
||||||
|
# First column, or beginning of the line when already at the first column.
|
||||||
|
# - Last
|
||||||
|
# Last column, or beginning of the line when already at the last column.
|
||||||
|
# - FirstOccupied
|
||||||
|
# First non-empty cell in this terminal row, or first non-empty cell of
|
||||||
|
# the line when already at the first cell of the row.
|
||||||
|
# - High
|
||||||
|
# Top of the screen.
|
||||||
|
# - Middle
|
||||||
|
# Center of the screen.
|
||||||
|
# - Low
|
||||||
|
# Bottom of the screen.
|
||||||
|
# - SemanticLeft
|
||||||
|
# Start of the previous semantically separated word.
|
||||||
|
# - SemanticRight
|
||||||
|
# Start of the next semantically separated word.
|
||||||
|
# - SemanticLeftEnd
|
||||||
|
# End of the previous semantically separated word.
|
||||||
|
# - SemanticRightEnd
|
||||||
|
# End of the next semantically separated word.
|
||||||
|
# - WordLeft
|
||||||
|
# Start of the previous whitespace separated word.
|
||||||
|
# - WordRight
|
||||||
|
# Start of the next whitespace separated word.
|
||||||
|
# - WordLeftEnd
|
||||||
|
# End of the previous whitespace separated word.
|
||||||
|
# - WordRightEnd
|
||||||
|
# End of the next whitespace separated word.
|
||||||
|
# - Bracket
|
||||||
|
# Character matching the bracket at the cursor's location.
|
||||||
|
# - SearchNext
|
||||||
|
# Beginning of the next match.
|
||||||
|
# - SearchPrevious
|
||||||
|
# Beginning of the previous match.
|
||||||
|
# - SearchStart
|
||||||
|
# Start of the match to the left of the vi mode cursor.
|
||||||
|
# - SearchEnd
|
||||||
|
# End of the match to the right of the vi mode cursor.
|
||||||
|
#
|
||||||
|
# - Search mode exclusive actions:
|
||||||
|
# - SearchFocusNext
|
||||||
|
# Move the focus to the next search match.
|
||||||
|
# - SearchFocusPrevious
|
||||||
|
# Move the focus to the previous search match.
|
||||||
|
# - SearchConfirm
|
||||||
|
# - SearchCancel
|
||||||
|
# - SearchClear
|
||||||
|
# Reset the search regex.
|
||||||
|
# - SearchDeleteWord
|
||||||
|
# Delete the last word in the search regex.
|
||||||
|
# - SearchHistoryPrevious
|
||||||
|
# Go to the previous regex in the search history.
|
||||||
|
# - SearchHistoryNext
|
||||||
|
# Go to the next regex in the search history.
|
||||||
|
#
|
||||||
|
# - macOS exclusive actions:
|
||||||
|
# - ToggleSimpleFullscreen
|
||||||
|
# Enter fullscreen without occupying another space.
|
||||||
|
#
|
||||||
|
# - Linux/BSD exclusive actions:
|
||||||
|
#
|
||||||
|
# - CopySelection
|
||||||
|
# Copy from the selection buffer.
|
||||||
|
# - PasteSelection
|
||||||
|
# Paste from the selection buffer.
|
||||||
|
#
|
||||||
|
# - `command`: Fork and execute a specified command plus arguments
|
||||||
|
#
|
||||||
|
# The `command` field must be a map containing a `program` string and an
|
||||||
|
# `args` array of command line parameter strings. For example:
|
||||||
|
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||||
|
#
|
||||||
|
# And optionally:
|
||||||
|
#
|
||||||
|
# - `mods`: Key modifiers to filter binding actions
|
||||||
|
#
|
||||||
|
# - Command
|
||||||
|
# - Control
|
||||||
|
# - Option
|
||||||
|
# - Super
|
||||||
|
# - Shift
|
||||||
|
# - Alt
|
||||||
|
#
|
||||||
|
# Multiple `mods` can be combined using `|` like this:
|
||||||
|
# `mods: Control|Shift`.
|
||||||
|
# Whitespace and capitalization are relevant and must match the example.
|
||||||
|
#
|
||||||
|
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||||
|
#
|
||||||
|
# This is mainly used to send applications the correct escape sequences
|
||||||
|
# when in different modes.
|
||||||
|
#
|
||||||
|
# - AppCursor
|
||||||
|
# - AppKeypad
|
||||||
|
# - Search
|
||||||
|
# - Alt
|
||||||
|
# - Vi
|
||||||
|
#
|
||||||
|
# A `~` operator can be used before a mode to apply the binding whenever
|
||||||
|
# the mode is *not* active, e.g. `~Alt`.
|
||||||
|
#
|
||||||
|
# Bindings are always filled by default, but will be replaced when a new
|
||||||
|
# binding with the same triggers is defined. To unset a default binding, it can
|
||||||
|
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||||
|
# a no-op if you do not wish to receive input characters for that binding.
|
||||||
|
#
|
||||||
|
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||||
|
# in the order they were defined in.
|
||||||
|
#key_bindings:
|
||||||
|
#- { key: Paste, action: Paste }
|
||||||
|
#- { key: Copy, action: Copy }
|
||||||
|
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||||
|
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||||
|
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
|
||||||
|
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||||
|
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
|
||||||
|
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||||
|
|
||||||
|
# Vi Mode
|
||||||
|
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||||||
|
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||||||
|
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||||||
|
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||||||
|
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||||||
|
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
||||||
|
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
||||||
|
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
||||||
|
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
||||||
|
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
||||||
|
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
||||||
|
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
||||||
|
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
||||||
|
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
||||||
|
#- { key: Y, mode: Vi|~Search, action: Copy }
|
||||||
|
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
||||||
|
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
||||||
|
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
||||||
|
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
||||||
|
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
||||||
|
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
||||||
|
#- { key: Return, mode: Vi|~Search, action: Open }
|
||||||
|
#- { key: K, mode: Vi|~Search, action: Up }
|
||||||
|
#- { key: J, mode: Vi|~Search, action: Down }
|
||||||
|
#- { key: H, mode: Vi|~Search, action: Left }
|
||||||
|
#- { key: L, mode: Vi|~Search, action: Right }
|
||||||
|
#- { key: Up, mode: Vi|~Search, action: Up }
|
||||||
|
#- { key: Down, mode: Vi|~Search, action: Down }
|
||||||
|
#- { key: Left, mode: Vi|~Search, action: Left }
|
||||||
|
#- { key: Right, mode: Vi|~Search, action: Right }
|
||||||
|
#- { key: Key0, mode: Vi|~Search, action: First }
|
||||||
|
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
||||||
|
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
||||||
|
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
||||||
|
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
||||||
|
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
||||||
|
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
||||||
|
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
||||||
|
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
||||||
|
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
||||||
|
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
||||||
|
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
||||||
|
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
||||||
|
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
||||||
|
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
||||||
|
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
||||||
|
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
||||||
|
|
||||||
|
# Search Mode
|
||||||
|
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
||||||
|
#- { key: Escape, mode: Search, action: SearchCancel }
|
||||||
|
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
||||||
|
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
||||||
|
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
||||||
|
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
||||||
|
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
||||||
|
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
||||||
|
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
||||||
|
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
||||||
|
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||||||
|
|
||||||
|
# (Windows, Linux, and BSD only)
|
||||||
|
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||||
|
#- { key: C, mods: Control|Shift, action: Copy }
|
||||||
|
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
||||||
|
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
||||||
|
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
||||||
|
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||||
|
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||||
|
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||||
|
|
||||||
|
# (Windows only)
|
||||||
|
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||||
|
|
||||||
|
# (macOS only)
|
||||||
|
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
||||||
|
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
||||||
|
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||||
|
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
||||||
|
#- { key: V, mods: Command, action: Paste }
|
||||||
|
#- { key: C, mods: Command, action: Copy }
|
||||||
|
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
||||||
|
#- { key: H, mods: Command, action: Hide }
|
||||||
|
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
|
||||||
|
#- { key: M, mods: Command, action: Minimize }
|
||||||
|
#- { key: Q, mods: Command, action: Quit }
|
||||||
|
#- { key: W, mods: Command, action: Quit }
|
||||||
|
#- { key: N, mods: Command, action: SpawnNewInstance }
|
||||||
|
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||||
|
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
||||||
|
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
||||||
|
|
||||||
|
#debug:
|
||||||
|
# Display the time it takes to redraw each frame.
|
||||||
|
#render_timer: false
|
||||||
|
|
||||||
|
# Keep the log file after quitting Alacritty.
|
||||||
|
#persistent_logging: false
|
||||||
|
|
||||||
|
# Log level
|
||||||
|
#
|
||||||
|
# Values for `log_level`:
|
||||||
|
# - Off
|
||||||
|
# - Error
|
||||||
|
# - Warn
|
||||||
|
# - Info
|
||||||
|
# - Debug
|
||||||
|
# - Trace
|
||||||
|
#log_level: Warn
|
||||||
|
|
||||||
|
# Print all received window events.
|
||||||
|
#print_events: false
|
||||||
228
assets/logo.svg
|
|
@ -1,228 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="38.203144mm"
|
|
||||||
height="64.726036mm"
|
|
||||||
viewBox="0 0 38.203144 64.726037"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:docname="logo.svg"
|
|
||||||
inkscape:export-filename="logo.svg"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
|
||||||
id="namedview1"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1"
|
|
||||||
inkscape:document-units="mm"
|
|
||||||
inkscape:zoom="1.9527497"
|
|
||||||
inkscape:cx="140.82706"
|
|
||||||
inkscape:cy="187.42801"
|
|
||||||
inkscape:window-width="1340"
|
|
||||||
inkscape:window-height="764"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg1" /><defs
|
|
||||||
id="defs1"><linearGradient
|
|
||||||
id="linearGradient106"><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop106" /><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0.23456791"
|
|
||||||
id="stop109" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.4526749"
|
|
||||||
id="stop108" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.59362137"
|
|
||||||
id="stop110" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="0.66358024"
|
|
||||||
id="stop111" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop107" /></linearGradient><linearGradient
|
|
||||||
id="swatch2"><stop
|
|
||||||
style="stop-color:#000000;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop2" /></linearGradient><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient107"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
spreadMethod="pad" /><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient111"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
spreadMethod="pad" /><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient112"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
spreadMethod="pad" /><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient113"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
spreadMethod="pad" /></defs><g
|
|
||||||
id="layer1"
|
|
||||||
transform="matrix(0.45379,0,0,0.45379,-29.224699,-23.939314)"><g
|
|
||||||
id="g82"
|
|
||||||
transform="matrix(0.16779066,0,0,0.16779066,64.401373,52.777012)"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1"><g
|
|
||||||
id="layer3-7"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-141.35649,1425.3526)"><g
|
|
||||||
id="g113"><g
|
|
||||||
id="layer1-8"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
id="path4861" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
|
||||||
id="use4863" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
|
||||||
id="use4865" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
|
||||||
id="use4867" /><path
|
|
||||||
id="path4873"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4875"
|
|
||||||
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4877"
|
|
||||||
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><g
|
|
||||||
id="layer2"
|
|
||||||
style="display:none;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(72.039038,-1799.4476)"><path
|
|
||||||
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
|
|
||||||
id="path6032"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.236;fill:#28b3fc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path5875"
|
|
||||||
d="M 385.59154,773.06721 H 284.75659 l -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
id="path5851"
|
|
||||||
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.415;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5884"
|
|
||||||
width="48.834862"
|
|
||||||
height="226.22897"
|
|
||||||
x="-34.74221"
|
|
||||||
y="446.17056"
|
|
||||||
transform="rotate(-30)" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.509;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="path3428"
|
|
||||||
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" /><use
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
xlink:href="#rect5884"
|
|
||||||
id="use4252"
|
|
||||||
transform="rotate(60,268.29786,489.4515)"
|
|
||||||
width="100%"
|
|
||||||
height="100%"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect4254"
|
|
||||||
width="5.3947482"
|
|
||||||
height="115.12564"
|
|
||||||
x="545.71014"
|
|
||||||
y="467.07007"
|
|
||||||
transform="rotate(30,575.23539,-154.13386)" /></g></g><g
|
|
||||||
id="layer3"
|
|
||||||
style="display:inline;opacity:1;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
id="path3336-6"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
|
|
||||||
style="opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(60,407.11155,-715.78724)"
|
|
||||||
id="use3439-6"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-60,407.31177,-715.70016)"
|
|
||||||
id="use3445-0"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(180,407.41868,-715.7565)"
|
|
||||||
id="use3449-5"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
|
|
||||||
id="path4260-0" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(120,407.33916,-716.08356)"
|
|
||||||
id="use4354-5"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-120,407.28823,-715.86995)"
|
|
||||||
id="use4362-2"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1" /></g><g
|
|
||||||
id="g104"
|
|
||||||
style="fill:url(#linearGradient107);stroke:none"
|
|
||||||
transform="rotate(-13.062247,340.02897,-863.93232)"><path
|
|
||||||
id="use3449-5-0-0"
|
|
||||||
d="m 331.77633,-1001.5212 94.91305,225.23301 -55.78631,-6.46377 -25.29508,-60.48604 -39.63845,52.03815 -27.6842,-3.48227 -11.10824,-26.27568 56.46054,-74.04107 -25.77721,-61.5105 z"
|
|
||||||
style="fill:url(#linearGradient111);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-6"
|
|
||||||
d="m 457.02748,-744.14459 -70.00051,-234.1759 54.76023,12.45846 18.60597,62.86668 45.03324,-47.44663 27.14534,6.4555 8.2017,27.32283 -64.13603,67.50143 18.97452,63.93729 z"
|
|
||||||
style="display:inline;fill:url(#linearGradient112);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-4"
|
|
||||||
d="m 292.53533,-578.77105 178.97491,-166.45237 -53.52586,-16.99636 -47.88683,44.78006 -14.79485,-63.7204 -26.67512,-8.18413 -20.91172,19.40373 21.10703,90.68829 -48.74692,45.51646 z"
|
|
||||||
style="display:inline;fill:url(#linearGradient113);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g></g></g></g></g></svg>
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB |
BIN
assets/logo2.png
|
Before Width: | Height: | Size: 38 KiB |
238
assets/logo2.svg
|
|
@ -1,238 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="38.753597mm"
|
|
||||||
height="65.022255mm"
|
|
||||||
viewBox="0 0 38.753597 65.022256"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
xml:space="preserve"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><title
|
|
||||||
id="title39">DashNix</title><defs
|
|
||||||
id="defs1"><linearGradient
|
|
||||||
id="linearGradient106"><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop106" /><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0.23456791"
|
|
||||||
id="stop109" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.4526749"
|
|
||||||
id="stop108" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.59362137"
|
|
||||||
id="stop110" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="0.66358024"
|
|
||||||
id="stop111" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop107" /></linearGradient><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient107"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
spreadMethod="pad" /></defs><g
|
|
||||||
id="layer1"
|
|
||||||
transform="matrix(0.45379,0,0,0.45379,-29.020506,-23.643099)"><g
|
|
||||||
id="g82"
|
|
||||||
transform="matrix(0.16779066,0,0,0.16779066,64.401373,52.777012)"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1"><g
|
|
||||||
id="layer3-7"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-141.35649,1425.3526)"><g
|
|
||||||
id="g113"><g
|
|
||||||
id="layer1-8"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
id="path4861" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1"
|
|
||||||
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
|
||||||
id="use4863" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
|
||||||
id="use4865" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
|
||||||
id="use4867" /><path
|
|
||||||
id="path4873"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4875"
|
|
||||||
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4877"
|
|
||||||
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><g
|
|
||||||
id="layer2"
|
|
||||||
style="display:none;fill:#f7f5f6;fill-opacity:1"
|
|
||||||
transform="translate(72.039038,-1799.4476)"><path
|
|
||||||
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
|
|
||||||
id="path6032"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.236;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path5875"
|
|
||||||
d="M 385.59154,773.06721 H 284.75659 l -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
id="path5851"
|
|
||||||
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.415;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5884"
|
|
||||||
width="48.834862"
|
|
||||||
height="226.22897"
|
|
||||||
x="-34.74221"
|
|
||||||
y="446.17056"
|
|
||||||
transform="rotate(-30)" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.509;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="path3428"
|
|
||||||
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" /><use
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
xlink:href="#rect5884"
|
|
||||||
id="use4252"
|
|
||||||
transform="rotate(60,268.29786,489.4515)"
|
|
||||||
width="100%"
|
|
||||||
height="100%"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect4254"
|
|
||||||
width="5.3947482"
|
|
||||||
height="115.12564"
|
|
||||||
x="545.71014"
|
|
||||||
y="467.07007"
|
|
||||||
transform="rotate(30,575.23539,-154.13386)" /></g><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.362108"
|
|
||||||
d="m 17.647006,93.08153 c -2.137791,-3.629135 -3.886892,-6.781154 -3.886892,-7.004491 0,-0.223334 2.036859,-3.907974 4.526353,-8.18809 2.489494,-4.280113 4.526353,-7.872269 4.526353,-7.982568 0,-0.110298 -4.202399,-0.200542 -9.338664,-0.200542 H 4.1354931 L 2.2488007,66.408408 C 1.2111198,64.594822 0.36210825,62.964051 0.36210825,62.784474 c 0,-0.179578 0.83310065,-1.791759 1.85133475,-3.582627 l 1.8513347,-3.256122 13.4477393,-0.0031 13.447739,-0.0031 4.75902,-8.234844 4.75902,-8.234843 8.039166,-0.09755 8.039169,-0.09754 -0.718362,1.18387 C 55.443173,41.109708 47.744447,54.433923 38.729994,70.067947 29.715538,85.701971 22.158685,98.760409 21.936986,99.086701 21.60128,99.580783 20.884148,98.576936 17.647006,93.08153 Z"
|
|
||||||
id="path27"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path28"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path29"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path30"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path31"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path32"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path33"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path34"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path35"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /></g><g
|
|
||||||
id="layer3"
|
|
||||||
style="display:inline;opacity:1;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
id="path3336-6"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
|
|
||||||
style="opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(60,407.11155,-715.78724)"
|
|
||||||
id="use3439-6"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-60,407.31177,-715.70016)"
|
|
||||||
id="use3445-0"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(180,407.41868,-715.7565)"
|
|
||||||
id="use3449-5"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
|
|
||||||
id="path4260-0" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(120,407.33916,-716.08356)"
|
|
||||||
id="use4354-5"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-120,407.28823,-715.86995)"
|
|
||||||
id="use4362-2"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /></g><g
|
|
||||||
id="g104"
|
|
||||||
style="fill:url(#linearGradient107);stroke:none"
|
|
||||||
transform="rotate(-13.062247,340.02897,-863.93232)"><path
|
|
||||||
id="use3449-5-0-0"
|
|
||||||
d="m 331.77633,-1001.5212 94.91305,225.23301 -55.78631,-6.46377 -25.29508,-60.48604 -39.63845,52.03815 -27.6842,-3.48227 -11.10824,-26.27568 56.46054,-74.04107 -25.77721,-61.5105 z"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-6"
|
|
||||||
d="m 457.16967,-744.75745 -70.00051,-234.1759 54.76023,12.45846 18.60597,62.86668 45.03324,-47.44663 27.14534,6.4555 8.2017,27.32283 -64.13603,67.50143 18.97452,63.93729 z"
|
|
||||||
style="fill:#ff0d01;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-4"
|
|
||||||
d="m 277.21377,-582.32585 178.97491,-166.45237 -53.52586,-16.99636 -47.88683,44.78006 -14.79485,-63.7204 -26.67512,-8.18413 -20.91172,19.40373 21.10703,90.68829 -48.74692,45.51646 z"
|
|
||||||
style="fill:#f8f641;fill-opacity:1" /></g></g></g></g><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path36"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 21.228346,98.82575 C 20.775825,98.187139 14.573556,87.698587 14.099569,86.770393 l -0.346608,-0.67875 1.796437,-3.213914 c 0.988041,-1.767653 3.067246,-5.409743 4.620457,-8.093538 1.553211,-2.683792 2.824019,-4.931476 2.824019,-4.99485 0,-0.110336 -11.090545,-0.351953 -16.3853984,-0.356972 L 4.0737178,69.429968 2.217913,66.175832 C 1.1972204,64.386056 0.36210825,62.847854 0.36210825,62.757606 c 0,-0.09025 0.87964515,-1.70058 1.95476695,-3.578513 l 1.954767,-3.414422 13.3895698,0.06926 13.389571,0.06926 4.821268,-8.307221 4.821271,-8.307221 3.145111,-0.04488 c 1.729813,-0.02469 5.235571,0.01605 7.790576,0.09053 l 4.645463,0.135412 -3.534135,6.15584 c -4.146422,7.222338 -16.886029,29.318862 -25.000346,43.362463 -3.135747,5.427098 -5.801825,9.976251 -5.924618,10.109228 -0.183451,0.198671 -0.288115,0.150249 -0.587027,-0.271581 z"
|
|
||||||
id="path37"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 97.636535,120.63066 c -1.389583,-2.41665 -4.382703,-7.63252 -6.651376,-11.59081 l -4.12486,-7.1969 -4.45825,-0.005 c -4.928423,-0.005 -14.743895,-0.1852 -14.838725,-0.27196 -0.03322,-0.0304 -1.827632,-3.096939 -3.987593,-6.814561 l -3.9272,-6.759314 17.535793,-0.04616 c 9.644687,-0.02539 25.387006,-0.02539 34.982936,0 l 17.44715,0.04616 -1.54239,2.715812 c -0.84832,1.493697 -2.61343,4.622573 -3.92248,6.953058 l -2.38008,4.237245 -9.38708,-0.11294 c -7.6636,-0.0922 -9.37652,-0.0697 -9.32957,0.12287 0.0316,0.1297 2.12168,3.83356 4.64454,8.23081 l 4.58703,7.995 -1.97119,3.3966 -1.9712,3.39659 -4.08947,0.0486 -4.08947,0.0486 z"
|
|
||||||
id="path38"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 87.802229,39.150266 C 80.890113,27.177278 73.023088,13.551901 70.319951,8.8716522 L 65.405158,0.36210825 68.59656,0.24891517 c 1.755271,-0.0622562 5.350472,-0.12261799 7.989335,-0.1341373 l 4.797935,-0.0209442 4.519855,7.89261083 c 2.48592,4.3409365 4.610279,8.0162745 4.7208,8.1674195 0.162204,0.22183 1.117147,-1.300038 4.953498,-7.8942647 l 4.752557,-8.16907224 h 3.92896 3.92895 l 2.03256,3.50763344 c 1.1179,1.9291986 2.03255,3.5544662 2.03255,3.6117061 0,0.05724 -3.01666,5.2908554 -6.70369,11.6302564 l -6.703688,11.526185 4.779848,8.329337 4.77986,8.329337 -3.94792,6.877008 c -2.17135,3.782353 -3.97949,6.908583 -4.01808,6.947175 -0.0386,0.03859 -5.725543,-9.725911 -12.637661,-21.698899 z"
|
|
||||||
id="path39"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /></g><metadata
|
|
||||||
id="metadata39"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><cc:license
|
|
||||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:title>DashNix</dc:title></cc:Work><cc:License
|
|
||||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
|
||||||
|
Before Width: | Height: | Size: 26 KiB |
238
assets/logo3.svg
|
|
@ -1,238 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="38.854057mm"
|
|
||||||
height="65.022255mm"
|
|
||||||
viewBox="0 0 38.854057 65.022256"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
xml:space="preserve"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><title
|
|
||||||
id="title39">DashNix</title><defs
|
|
||||||
id="defs1"><linearGradient
|
|
||||||
id="linearGradient106"><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop106" /><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0.23456791"
|
|
||||||
id="stop109" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.4526749"
|
|
||||||
id="stop108" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.59362137"
|
|
||||||
id="stop110" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="0.66358024"
|
|
||||||
id="stop111" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop107" /></linearGradient><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient107"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
spreadMethod="pad" /></defs><g
|
|
||||||
id="layer1"
|
|
||||||
transform="matrix(0.45379,0,0,0.45379,-28.920048,-23.643099)"><g
|
|
||||||
id="g82"
|
|
||||||
transform="matrix(0.16779066,0,0,0.16779066,64.401373,52.777012)"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1"><g
|
|
||||||
id="layer3-7"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-141.35649,1425.3526)"><g
|
|
||||||
id="g113"><g
|
|
||||||
id="layer1-8"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
id="path4861" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
|
||||||
id="use4863" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
|
||||||
id="use4865" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
|
||||||
id="use4867" /><path
|
|
||||||
id="path4873"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><path
|
|
||||||
id="use4875"
|
|
||||||
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><path
|
|
||||||
id="use4877"
|
|
||||||
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><g
|
|
||||||
id="layer2"
|
|
||||||
style="display:none;fill:#f7f5f6;fill-opacity:1"
|
|
||||||
transform="translate(72.039038,-1799.4476)"><path
|
|
||||||
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
|
|
||||||
id="path6032"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.236;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path5875"
|
|
||||||
d="M 385.59154,773.06721 H 284.75659 l -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
id="path5851"
|
|
||||||
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.415;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5884"
|
|
||||||
width="48.834862"
|
|
||||||
height="226.22897"
|
|
||||||
x="-34.74221"
|
|
||||||
y="446.17056"
|
|
||||||
transform="rotate(-30)" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.509;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="path3428"
|
|
||||||
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" /><use
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
xlink:href="#rect5884"
|
|
||||||
id="use4252"
|
|
||||||
transform="rotate(60,268.29786,489.4515)"
|
|
||||||
width="100%"
|
|
||||||
height="100%"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect4254"
|
|
||||||
width="5.3947482"
|
|
||||||
height="115.12564"
|
|
||||||
x="545.71014"
|
|
||||||
y="467.07007"
|
|
||||||
transform="rotate(30,575.23539,-154.13386)" /></g><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 17.647006,93.08153 c -2.137791,-3.629135 -3.886892,-6.781154 -3.886892,-7.004491 0,-0.223334 2.036859,-3.907974 4.526353,-8.18809 2.489494,-4.280113 4.526353,-7.872269 4.526353,-7.982568 0,-0.110298 -4.202399,-0.200542 -9.338664,-0.200542 H 4.1354931 L 2.2488007,66.408408 C 1.2111198,64.594822 0.36210825,62.964051 0.36210825,62.784474 c 0,-0.179578 0.83310065,-1.791759 1.85133475,-3.582627 l 1.8513347,-3.256122 13.4477393,-0.0031 13.447739,-0.0031 4.75902,-8.234844 4.75902,-8.234843 8.039166,-0.09755 8.039169,-0.09754 -0.718362,1.18387 C 55.443173,41.109708 47.744447,54.433923 38.729994,70.067947 29.715538,85.701971 22.158685,98.760409 21.936986,99.086701 21.60128,99.580783 20.884148,98.576936 17.647006,93.08153 Z"
|
|
||||||
id="path27"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path28"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path29"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path30"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path31"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path32"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path33"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path34"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path35"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /></g><g
|
|
||||||
id="layer3"
|
|
||||||
style="display:inline;opacity:1;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
id="path3336-6"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(60,407.11155,-715.78724)"
|
|
||||||
id="use3439-6"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-60,407.31177,-715.70016)"
|
|
||||||
id="use3445-0"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(180,407.41868,-715.7565)"
|
|
||||||
id="use3449-5"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
|
|
||||||
id="path4260-0" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(120,407.33916,-716.08356)"
|
|
||||||
id="use4354-5"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-120,407.28823,-715.86995)"
|
|
||||||
id="use4362-2"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /></g><g
|
|
||||||
id="g104"
|
|
||||||
style="fill:url(#linearGradient107);stroke:none"
|
|
||||||
transform="rotate(-13.062247,340.02897,-863.93232)"><path
|
|
||||||
id="use3449-5-0-0"
|
|
||||||
d="m 331.77633,-1001.5212 94.91305,225.23301 -55.78631,-6.46377 -25.29508,-60.48604 -39.63845,52.03815 -27.6842,-3.48227 -11.10824,-26.27568 56.46054,-74.04107 -25.77721,-61.5105 z"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-6"
|
|
||||||
d="m 457.16967,-744.75745 -70.00051,-234.1759 54.76023,12.45846 18.60597,62.86668 45.03324,-47.44663 27.14534,6.4555 8.2017,27.32283 -64.13603,67.50143 18.97452,63.93729 z"
|
|
||||||
style="fill:#ff0d01;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-4"
|
|
||||||
d="m 277.21377,-582.32585 178.97491,-166.45237 -53.52586,-16.99636 -47.88683,44.78006 -14.79485,-63.7204 -26.67512,-8.18413 -20.91172,19.40373 21.10703,90.68829 -48.74692,45.51646 z"
|
|
||||||
style="fill:#f8f641;fill-opacity:1" /></g></g></g></g><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path36"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 21.228346,98.82575 C 20.775825,98.187139 14.573556,87.698587 14.099569,86.770393 l -0.346608,-0.67875 1.796437,-3.213914 c 0.988041,-1.767653 3.067246,-5.409743 4.620457,-8.093538 1.553211,-2.683792 2.824019,-4.931476 2.824019,-4.99485 0,-0.110336 -11.090545,-0.351953 -16.3853984,-0.356972 L 4.0737178,69.429968 2.217913,66.175832 C 1.1972204,64.386056 0.36210825,62.847854 0.36210825,62.757606 c 0,-0.09025 0.87964515,-1.70058 1.95476695,-3.578513 l 1.954767,-3.414422 13.3895698,0.06926 13.389571,0.06926 4.821268,-8.307221 4.821271,-8.307221 3.145111,-0.04488 c 1.729813,-0.02469 5.235571,0.01605 7.790576,0.09053 l 4.645463,0.135412 -3.534135,6.15584 c -4.146422,7.222338 -16.886029,29.318862 -25.000346,43.362463 -3.135747,5.427098 -5.801825,9.976251 -5.924618,10.109228 -0.183451,0.198671 -0.288115,0.150249 -0.587027,-0.271581 z"
|
|
||||||
id="path37"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 97.636535,120.63066 c -1.389583,-2.41665 -4.382703,-7.63252 -6.651376,-11.59081 l -4.12486,-7.1969 -4.45825,-0.005 c -4.928423,-0.005 -14.743895,-0.1852 -14.838725,-0.27196 -0.03322,-0.0304 -1.827632,-3.096939 -3.987593,-6.814561 l -3.9272,-6.759314 17.535793,-0.04616 c 9.644687,-0.02539 25.387006,-0.02539 34.982936,0 l 17.44715,0.04616 -1.54239,2.715812 c -0.84832,1.493697 -2.61343,4.622573 -3.92248,6.953058 l -2.38008,4.237245 -9.38708,-0.11294 c -7.6636,-0.0922 -9.37652,-0.0697 -9.32957,0.12287 0.0316,0.1297 2.12168,3.83356 4.64454,8.23081 l 4.58703,7.995 -1.97119,3.3966 -1.9712,3.39659 -4.08947,0.0486 -4.08947,0.0486 z"
|
|
||||||
id="path38"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#b2dff8;fill-opacity:0;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 87.802229,39.150266 C 80.890113,27.177278 73.023088,13.551901 70.319951,8.8716522 L 65.405158,0.36210825 68.59656,0.24891517 c 1.755271,-0.0622562 5.350472,-0.12261799 7.989335,-0.1341373 l 4.797935,-0.0209442 4.519855,7.89261083 c 2.48592,4.3409365 4.610279,8.0162745 4.7208,8.1674195 0.162204,0.22183 1.117147,-1.300038 4.953498,-7.8942647 l 4.752557,-8.16907224 h 3.92896 3.92895 l 2.03256,3.50763344 c 1.1179,1.9291986 2.03255,3.5544662 2.03255,3.6117061 0,0.05724 -3.01666,5.2908554 -6.70369,11.6302564 l -6.703688,11.526185 4.779848,8.329337 4.77986,8.329337 -3.94792,6.877008 c -2.17135,3.782353 -3.97949,6.908583 -4.01808,6.947175 -0.0386,0.03859 -5.725543,-9.725911 -12.637661,-21.698899 z"
|
|
||||||
id="path39"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /></g><metadata
|
|
||||||
id="metadata39"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><cc:license
|
|
||||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:title>DashNix</dc:title></cc:Work><cc:License
|
|
||||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
|
||||||
|
Before Width: | Height: | Size: 24 KiB |
|
|
@ -1,141 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-filename="nixos-catpuccin.png"
|
|
||||||
sodipodi:docname="catppuccinnix.svg"
|
|
||||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
|
||||||
version="1.1"
|
|
||||||
id="svg2"
|
|
||||||
viewBox="0 0 3225.0001 1350"
|
|
||||||
height="1440"
|
|
||||||
width="3440"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
||||||
<defs
|
|
||||||
id="defs4" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
inkscape:showpageshadow="false"
|
|
||||||
borderlayer="true"
|
|
||||||
inkscape:pagecheckerboard="false"
|
|
||||||
units="px"
|
|
||||||
inkscape:document-rotation="0"
|
|
||||||
fit-margin-bottom="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-top="0"
|
|
||||||
inkscape:snap-global="true"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-height="1440"
|
|
||||||
inkscape:window-width="3440"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:current-layer="g2"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:cy="745.58828"
|
|
||||||
inkscape:cx="2124.2232"
|
|
||||||
inkscape:zoom="0.63976327"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="1"
|
|
||||||
borderopacity="1.0"
|
|
||||||
bordercolor="#666666"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
id="base"
|
|
||||||
inkscape:deskcolor="#d1d1d1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata7">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
id="g2"
|
|
||||||
inkscape:label="nix"
|
|
||||||
inkscape:export-filename="2kwide.png"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96"
|
|
||||||
inkscape:groupmode="layer">
|
|
||||||
<rect
|
|
||||||
style="display:inline;fill:#1e1e2e;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3.54331;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;paint-order:stroke markers fill"
|
|
||||||
id="rect1"
|
|
||||||
width="3225"
|
|
||||||
height="1350"
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
inkscape:label="background"
|
|
||||||
inkscape:export-filename="2kwidepng"
|
|
||||||
inkscape:export-xdpi="96"
|
|
||||||
inkscape:export-ydpi="96" />
|
|
||||||
<g
|
|
||||||
transform="translate(-233.46209,403.59287)"
|
|
||||||
style="display:inline;opacity:1"
|
|
||||||
inkscape:label="logo"
|
|
||||||
id="layer3"
|
|
||||||
inkscape:groupmode="layer">
|
|
||||||
<g
|
|
||||||
style="stroke-width:11.0512"
|
|
||||||
transform="matrix(0.11707329,0,0,0.11707336,1503.267,99.424817)"
|
|
||||||
id="g955">
|
|
||||||
<g
|
|
||||||
transform="matrix(11.047619,0,0,11.047619,-1572.2888,9377.7107)"
|
|
||||||
id="g869"
|
|
||||||
inkscape:export-filename="g869.svg"
|
|
||||||
inkscape:export-xdpi="600"
|
|
||||||
inkscape:export-ydpi="600">
|
|
||||||
<g
|
|
||||||
transform="rotate(-60,226.35754,-449.37199)"
|
|
||||||
id="g932"
|
|
||||||
style="fill:#f9e2af;fill-opacity:1;stroke-width:11.0512">
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path3336-6"
|
|
||||||
d="m 449.71876,-420.51322 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
|
|
||||||
style="opacity:1;fill:#f9e2af;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
</g>
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="path4260-0"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#fab387;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use3439-6"
|
|
||||||
d="m 353.65459,-797.57947 -122.21762,211.66311 -28.53475,-48.37004 32.93837,-56.68746 -65.41521,-0.17187 -13.94166,-24.16966 14.23639,-24.72105 93.11171,0.294 33.46379,-57.6904 z"
|
|
||||||
style="fill:#f38ba8;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use3449-5"
|
|
||||||
d="m 505.28844,-721.12474 -122.19683,-211.67512 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4901 33.22946,57.8257 z"
|
|
||||||
style="fill:#89b4fa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use4354-5"
|
|
||||||
d="m 451.30201,-803.62004 -244.41444,-0.012 27.62231,-48.89684 65.56197,0.18174 -32.55876,-56.73718 13.96071,-24.15866 28.52725,-0.0314 46.30123,80.7841 66.69317,0.13525 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cba6f7;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cccccccccc"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
id="use4362-2"
|
|
||||||
d="m 460.90516,-633.96606 122.21762,-211.66312 28.53475,48.37004 -32.93837,56.68746 65.41521,0.17187 13.94166,24.16966 -14.23639,24.72105 -93.11171,-0.294 -33.46371,57.69035 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#a6e3a1;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:33.1535;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 7.3 KiB |
BIN
base/black.jpg
|
Before Width: | Height: | Size: 127 KiB |
|
|
@ -1,174 +0,0 @@
|
||||||
{
|
|
||||||
mkDashDefault,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
hostName,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
username = config.conf.username;
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
wsl.enable = mkDashDefault config.conf.wsl;
|
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot = lib.mkIf (!config.conf.wsl) {
|
|
||||||
consoleLogLevel = mkDashDefault 0;
|
|
||||||
|
|
||||||
lanzaboote = lib.mkIf config.conf.secureBoot {
|
|
||||||
enable = mkDashDefault true;
|
|
||||||
pkiBundle = mkDashDefault "/var/lib/sbctl";
|
|
||||||
settings.reboot-for-bitlocker = mkDashDefault true;
|
|
||||||
};
|
|
||||||
|
|
||||||
loader = {
|
|
||||||
systemd-boot = {
|
|
||||||
enable =
|
|
||||||
if config.conf.secureBoot
|
|
||||||
then lib.mkForce false
|
|
||||||
else if config.conf.useSystemdBootloader
|
|
||||||
then true
|
|
||||||
else mkDashDefault false;
|
|
||||||
configurationLimit = 5;
|
|
||||||
};
|
|
||||||
efi.canTouchEfiVariables = mkDashDefault true;
|
|
||||||
};
|
|
||||||
|
|
||||||
kernelPackages = mkDashDefault pkgs.linuxPackages_latest;
|
|
||||||
initrd = {
|
|
||||||
verbose = mkDashDefault false;
|
|
||||||
availableKernelModules = [
|
|
||||||
"nvme"
|
|
||||||
"xhci_pci"
|
|
||||||
"ahci"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
kernelParams =
|
|
||||||
[
|
|
||||||
''resume="PARTLABEL=SWAP"''
|
|
||||||
''quiet''
|
|
||||||
''udev.log_level=3''
|
|
||||||
]
|
|
||||||
++ config.conf.bootParams;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
useDHCP = mkDashDefault true;
|
|
||||||
networkmanager.enable = mkDashDefault true;
|
|
||||||
hostName = mkDashDefault hostName;
|
|
||||||
};
|
|
||||||
|
|
||||||
time = {
|
|
||||||
timeZone = mkDashDefault config.conf.timezone;
|
|
||||||
hardwareClockInLocalTime = mkDashDefault config.conf.systemLocalTime;
|
|
||||||
};
|
|
||||||
|
|
||||||
i18n.defaultLocale = mkDashDefault config.conf.locale;
|
|
||||||
|
|
||||||
services = {
|
|
||||||
lorri.enable = mkDashDefault true;
|
|
||||||
xserver.enable = mkDashDefault true;
|
|
||||||
fstrim.enable = mkDashDefault true;
|
|
||||||
pulseaudio.enable = mkDashDefault false;
|
|
||||||
pipewire = {
|
|
||||||
enable = mkDashDefault true;
|
|
||||||
alsa = {
|
|
||||||
enable = mkDashDefault true;
|
|
||||||
support32Bit = mkDashDefault true;
|
|
||||||
};
|
|
||||||
jack.enable = mkDashDefault true;
|
|
||||||
pulse.enable = mkDashDefault true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = mkDashDefault config.conf.system;
|
|
||||||
nix = {
|
|
||||||
gc = {
|
|
||||||
automatic = mkDashDefault true;
|
|
||||||
dates = mkDashDefault "weekly";
|
|
||||||
options = mkDashDefault "--delete-older-than 7d --delete-generations +5";
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
trusted-users = [username];
|
|
||||||
auto-optimise-store = mkDashDefault true;
|
|
||||||
|
|
||||||
builders-use-substitutes = mkDashDefault true;
|
|
||||||
|
|
||||||
trusted-substituters = [
|
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
"https://anyrun.cachix.org"
|
|
||||||
"https://oxipaste.cachix.org"
|
|
||||||
"https://oxinoti.cachix.org"
|
|
||||||
"https://oxishut.cachix.org"
|
|
||||||
"https://oxidash.cachix.org"
|
|
||||||
"https://oxicalc.cachix.org"
|
|
||||||
"https://hyprdock.cachix.org"
|
|
||||||
"https://reset.cachix.org"
|
|
||||||
"https://dashvim.cachix.org"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
|
||||||
"oxipaste.cachix.org-1:n/oA3N3Z+LJP7eIWOwuoLd9QnPyZXqFjLgkahjsdDGc="
|
|
||||||
"oxinoti.cachix.org-1:dvSoJl2Pjo5HMaNngdBbSaixK9BSf2N8gzjP2MdGvfc="
|
|
||||||
"oxishut.cachix.org-1:axyAGF3XMh1IyMAW4UMbQCdMNovDH0KH6hqLLRJH8jU="
|
|
||||||
"oxidash.cachix.org-1:5K2FNHp7AS8VF7LmQkJAUG/dm6UHCz4ngshBVbjFX30="
|
|
||||||
"oxicalc.cachix.org-1:qF3krFc20tgSmtR/kt6Ku/T5QiG824z79qU5eRCSBTQ="
|
|
||||||
"hyprdock.cachix.org-1:HaROK3fBvFWIMHZau3Vq1TLwUoJE8yRbGLk0lEGzv3Y="
|
|
||||||
"reset.cachix.org-1:LfpnUUdG7QM/eOkN7NtA+3+4Ar/UBeYB+3WH+GjP9Xo="
|
|
||||||
"dashvim.cachix.org-1:uLRdxp1WOWHnsZZtu3SwUWZRsvC7SXo0Gyk3tIefuL0="
|
|
||||||
];
|
|
||||||
|
|
||||||
experimental-features = mkDashDefault "nix-command flakes pipe-operators";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
cpu.${config.conf.cpu}.updateMicrocode =
|
|
||||||
mkDashDefault
|
|
||||||
config.hardware.enableRedistributableFirmware;
|
|
||||||
};
|
|
||||||
|
|
||||||
security.rtkit.enable = mkDashDefault true;
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
XDG_CACHE_HOME = mkDashDefault "$HOME/.cache";
|
|
||||||
DIRENV_LOG_FORMAT = mkDashDefault "";
|
|
||||||
QT_QPA_PLATFORMTHEME = mkDashDefault "qt5ct";
|
|
||||||
};
|
|
||||||
|
|
||||||
# allows user change later on
|
|
||||||
users = {
|
|
||||||
mutableUsers = mkDashDefault true;
|
|
||||||
users.${username} = {
|
|
||||||
isNormalUser = mkDashDefault true;
|
|
||||||
description = mkDashDefault username;
|
|
||||||
extraGroups = [
|
|
||||||
"networkmanager"
|
|
||||||
"wheel"
|
|
||||||
"gamemode"
|
|
||||||
"docker"
|
|
||||||
"vboxusers"
|
|
||||||
"video"
|
|
||||||
"audio"
|
|
||||||
"scanner"
|
|
||||||
"lp"
|
|
||||||
];
|
|
||||||
packages = with pkgs; [
|
|
||||||
home-manager
|
|
||||||
xdg-desktop-portal-gtk
|
|
||||||
];
|
|
||||||
# this password will only last for the first login
|
|
||||||
# e.g. login, then change to whatever else, this also ensures no public hash is available
|
|
||||||
password = mkDashDefault "firstlogin";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./env.nix
|
|
||||||
./xkb_layout.nix
|
|
||||||
./common_hardware.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
24
base/env.nix
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
mkDashDefault,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment = {
|
|
||||||
variables = {
|
|
||||||
GSETTINGS_SCHEMA_DIR = mkDashDefault "${pkgs.glib.getSchemaPath pkgs.gsettings-desktop-schemas}";
|
|
||||||
NEOVIDE_MAXIMIZED = mkDashDefault "0";
|
|
||||||
GPG_TTY = mkDashDefault "$(tty)";
|
|
||||||
EDITOR = mkDashDefault "neovide --no-fork";
|
|
||||||
SUDO_EDITOR = mkDashDefault "neovide --no-fork";
|
|
||||||
SCRIPTS = mkDashDefault "$HOME/.config/scripts";
|
|
||||||
};
|
|
||||||
sessionVariables = {
|
|
||||||
NIXOS_OZONE_WL = mkDashDefault "1";
|
|
||||||
GOPATH = mkDashDefault "$HOME/.go";
|
|
||||||
FLAKE = mkDashDefault config.conf.nixosConfigPath;
|
|
||||||
NH_FLAKE = mkDashDefault config.conf.nixosConfigPath;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
mkDashDefault,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
layout = pkgs.writeText "enIntUmlaut" ''
|
|
||||||
xkb_symbols "enIntUmlaut"
|
|
||||||
{
|
|
||||||
include "us(basic)"
|
|
||||||
include "level3(ralt_switch)"
|
|
||||||
key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
|
|
||||||
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
|
|
||||||
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
|
|
||||||
};
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
environment.systemPackages = mkDashDefault [pkgs.xorg.xkbcomp];
|
|
||||||
services.xserver.xkb.extraLayouts.enIntUmlaut = {
|
|
||||||
description = "US layout with 'umlaut'";
|
|
||||||
languages = ["eng"];
|
|
||||||
symbolsFile = "${layout}";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
||||||
# with friendly help by stylix: https://github.com/danth/stylix/blob/master/docs/default.nix
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
buildSystems,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
makeOptionsDoc = configuration: pkgs.nixosOptionsDoc {options = configuration;};
|
|
||||||
generateDocs = obj: ''
|
|
||||||
touch src/${obj.fst}.md
|
|
||||||
sed '/*Declared by:*/,/^$/d' <${obj.snd.optionsCommonMark} >> src/${obj.fst}.md
|
|
||||||
'';
|
|
||||||
summaryAppend = name: ''
|
|
||||||
echo "- [${name}](${name}.md)" >> src/SUMMARY.md
|
|
||||||
'';
|
|
||||||
system = (buildSystems {root = ../example/.;})."example".options;
|
|
||||||
makeOptionsDocPrograms = names: pkgs.nixosOptionsDoc {options = lib.attrByPath (lib.splitString "." names) null system.mods;};
|
|
||||||
conf = makeOptionsDoc system.conf;
|
|
||||||
basePath = ../modules/programs;
|
|
||||||
pathToAttrs = path:
|
|
||||||
lib.attrsets.mapAttrsToList (
|
|
||||||
name: meta: {
|
|
||||||
inherit name;
|
|
||||||
inherit meta;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
(builtins.readDir path);
|
|
||||||
pathToStrings = path: prefix: let
|
|
||||||
mapFn = attrs:
|
|
||||||
if attrs.meta == "directory"
|
|
||||||
then pathToStrings "${basePath}/${attrs.name}" attrs.name
|
|
||||||
else if prefix != ""
|
|
||||||
then "${prefix}.${attrs.name}"
|
|
||||||
else attrs.name;
|
|
||||||
in
|
|
||||||
map
|
|
||||||
mapFn
|
|
||||||
(pathToAttrs path);
|
|
||||||
filteredNames = builtins.filter (names: !(lib.strings.hasInfix "default" names)) (
|
|
||||||
map (name: lib.strings.removeSuffix ".nix" name) (lib.lists.flatten (pathToStrings basePath ""))
|
|
||||||
);
|
|
||||||
deduplicatedNames = map (name: lib.strings.splitString "." name |> lib.lists.unique |> lib.strings.concatStringsSep ".") filteredNames;
|
|
||||||
mods = map makeOptionsDocPrograms deduplicatedNames;
|
|
||||||
docs = lib.strings.concatLines (map generateDocs (lib.lists.zipLists deduplicatedNames mods));
|
|
||||||
summary = lib.strings.concatStringsSep " " (map summaryAppend deduplicatedNames);
|
|
||||||
in
|
|
||||||
pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
name = "dashNix-book";
|
|
||||||
src = ./.;
|
|
||||||
|
|
||||||
patchPhase = ''
|
|
||||||
sed '/*Declared by:*/,/^$/d' <${conf.optionsCommonMark} >> src/conf.md
|
|
||||||
${docs}
|
|
||||||
echo "[README](README.md)\n # Options\n - [Base Config](conf.md)" >> src/SUMMARY.md
|
|
||||||
${summary}
|
|
||||||
'';
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
${pkgs.mdbook}/bin/mdbook build --dest-dir $out
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -1,329 +0,0 @@
|
||||||
<div align = center>
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
An opinionated flake to bootstrap NixOS systems with default configurations for various programs and services from both NixOS and HomeManager which can be enabled, disabled, configured or replaced at will.
|
|
||||||
|
|
||||||
# Usage
|
|
||||||
|
|
||||||
This flake is intended to be used as an input to your own NixOS configuration:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
dashNix = {
|
|
||||||
url = "github:Xetibo/DashNix";
|
|
||||||
inputs = {
|
|
||||||
# ensure these are here to update the packages on your own
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
stable.follows = "stable";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
You can then configure your systems in your flake outputs with a provided library command:
|
|
||||||
|
|
||||||
Please note that overriding inputs will invalidate the cache configuration, this means you will have to add this manually:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
builders-use-substitutes = true;
|
|
||||||
|
|
||||||
extra-substituters = [
|
|
||||||
"https://hyprland.cachix.org"
|
|
||||||
"https://anyrun.cachix.org"
|
|
||||||
"https://cache.garnix.io"
|
|
||||||
"https://oxipaste.cachix.org"
|
|
||||||
"https://oxinoti.cachix.org"
|
|
||||||
"https://oxishut.cachix.org"
|
|
||||||
"https://oxidash.cachix.org"
|
|
||||||
"https://oxicalc.cachix.org"
|
|
||||||
"https://hyprdock.cachix.org"
|
|
||||||
"https://reset.cachix.org"
|
|
||||||
"https://dashvim.cachix.org"
|
|
||||||
];
|
|
||||||
|
|
||||||
extra-trusted-public-keys = [
|
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
|
||||||
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
|
|
||||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
|
||||||
"oxipaste.cachix.org-1:n/oA3N3Z+LJP7eIWOwuoLd9QnPyZXqFjLgkahjsdDGc="
|
|
||||||
"oxinoti.cachix.org-1:dvSoJl2Pjo5HMaNngdBbSaixK9BSf2N8gzjP2MdGvfc="
|
|
||||||
"oxishut.cachix.org-1:axyAGF3XMh1IyMAW4UMbQCdMNovDH0KH6hqLLRJH8jU="
|
|
||||||
"oxidash.cachix.org-1:5K2FNHp7AS8VF7LmQkJAUG/dm6UHCz4ngshBVbjFX30="
|
|
||||||
"oxicalc.cachix.org-1:qF3krFc20tgSmtR/kt6Ku/T5QiG824z79qU5eRCSBTQ="
|
|
||||||
"hyprdock.cachix.org-1:HaROK3fBvFWIMHZau3Vq1TLwUoJE8yRbGLk0lEGzv3Y="
|
|
||||||
"reset.cachix.org-1:LfpnUUdG7QM/eOkN7NtA+3+4Ar/UBeYB+3WH+GjP9Xo="
|
|
||||||
"dashvim.cachix.org-1:uLRdxp1WOWHnsZZtu3SwUWZRsvC7SXo0Gyk3tIefuL0="
|
|
||||||
];
|
|
||||||
```
|
|
||||||
|
|
||||||
```nix
|
|
||||||
nixosConfigurations = inputs.dashNix.dashNixLib.buildSystems { root = ./.; };
|
|
||||||
```
|
|
||||||
|
|
||||||
This command will build each system that is placed within the hosts/ directory.
|
|
||||||
In this directory create one directory for each system you want to configure with DashNix.
|
|
||||||
This will automatically pick up the hostname for the system and look for 3 different files that are explained below.
|
|
||||||
(Optionally, you can also change the parameter root (./.) to define a different starting directory than hosts/)
|
|
||||||
|
|
||||||
In order for your configuration to work, you are required to at least provide a single config file with a further config file being optional for custom configuration.
|
|
||||||
The hardware.nix specifies additional NixOS configuration, while home.nix specifies additional home-manager configuration. (both optional)
|
|
||||||
|
|
||||||
|- flake.nix\
|
|
||||||
|- flake.lock\
|
|
||||||
|- hosts/\
|
|
||||||
|--- system1/\
|
|
||||||
|------ configuration.nix (required)\
|
|
||||||
|------ hardware.nix (optional)\
|
|
||||||
|------ home.nix (optional)\
|
|
||||||
|--- system2/\
|
|
||||||
|------ configuration.nix (required)\
|
|
||||||
|------ hardware.nix (optional)\
|
|
||||||
|------ home.nix (optional)\
|
|
||||||
|--- system3/\
|
|
||||||
|------ configuration.nix (required)\
|
|
||||||
|------ hardware.nix (optional)\
|
|
||||||
|------ home.nix (optional)
|
|
||||||
|
|
||||||
Here is a minimal required configuration.nix (the TODOs mention a required change):
|
|
||||||
|
|
||||||
```nix
|
|
||||||
{config, ...}: {
|
|
||||||
# TODO denote important changes
|
|
||||||
|
|
||||||
# variables for system
|
|
||||||
conf = {
|
|
||||||
# TODO your username
|
|
||||||
username = "YOURNAME";
|
|
||||||
# TODO only needed when you use intel -> amd is default
|
|
||||||
# cpu = "intel";
|
|
||||||
# TODO your xkb layout
|
|
||||||
locale = "something.UTF-8";
|
|
||||||
# TODO your timezone
|
|
||||||
timezone = "CONTINENT/CITY";
|
|
||||||
};
|
|
||||||
|
|
||||||
# modules
|
|
||||||
mods = {
|
|
||||||
# default disk config has root home boot and swap partition, overwrite if you want something different
|
|
||||||
sops.enable = false;
|
|
||||||
nextcloud.enable = false;
|
|
||||||
wm.monitors = [
|
|
||||||
# Example
|
|
||||||
# {
|
|
||||||
# name = "DP-1";
|
|
||||||
# resolutionX = 3440;
|
|
||||||
# resolutionY = 1440;
|
|
||||||
# refreshrate = 180;
|
|
||||||
# positionX = 2560;
|
|
||||||
# positionY = 0;
|
|
||||||
# scale = 1;
|
|
||||||
# transform = "0";
|
|
||||||
# vrr = false;
|
|
||||||
# }
|
|
||||||
];
|
|
||||||
gpu.nvidia.enable = true;
|
|
||||||
kdeConnect.enable = true;
|
|
||||||
# login manager:
|
|
||||||
# default is greetd
|
|
||||||
# greetd = { };
|
|
||||||
# sddm = { };
|
|
||||||
# gdm = { };
|
|
||||||
drives = {
|
|
||||||
# default assumes ROOT, BOOT, HOME and SWAP labaled drives exist
|
|
||||||
# for an example without HOME see below
|
|
||||||
# defaultDrives.enable = false;
|
|
||||||
# extraDrives = [
|
|
||||||
# {
|
|
||||||
# name = "boot";
|
|
||||||
# drive = {
|
|
||||||
# device = "/dev/disk/by-label/BOOT";
|
|
||||||
# fsType = "vfat";
|
|
||||||
# options = [ "rw" "fmask=0022" "dmask=0022" "noatime" ];
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# name = "";
|
|
||||||
# drive = {
|
|
||||||
# device = "/dev/disk/by-label/ROOT";
|
|
||||||
# fsType = "ext4";
|
|
||||||
# options = [ "noatime" "nodiratime" "discard" ];
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# You can also use disko to format your disks on installation.
|
|
||||||
# Please refer to the Documentation about the drives module for an example.
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## First Login
|
|
||||||
|
|
||||||
After logging in the first time, your password will be set to "firstlogin", please change this to whatever you like.
|
|
||||||
|
|
||||||
## Configuring pkgs
|
|
||||||
|
|
||||||
While DashNix offers a default pkgs config, you may want to permit an unsecure packages,
|
|
||||||
add additional modules/inputs, or add an overlay to them.
|
|
||||||
You can configure both stable and unstable pkgs the following way:
|
|
||||||
|
|
||||||
Please note that modules and inputs are merged together to ensure functionality.
|
|
||||||
|
|
||||||
```nix
|
|
||||||
currentSystem = "x86_64-linux";
|
|
||||||
permittedPackages = [
|
|
||||||
"some package"
|
|
||||||
];
|
|
||||||
config = {
|
|
||||||
system = currentSystem;
|
|
||||||
config = {
|
|
||||||
allowUnfree = true;
|
|
||||||
permittedInsecurePackages = permittedPackages;
|
|
||||||
};
|
|
||||||
inputs = {
|
|
||||||
# Some inputs
|
|
||||||
}
|
|
||||||
mods = {
|
|
||||||
home = [
|
|
||||||
# Some home manager module
|
|
||||||
];
|
|
||||||
nixos = [
|
|
||||||
# Some nixos module
|
|
||||||
];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
unstableBundle = {
|
|
||||||
pkgs = inputs.unstable;
|
|
||||||
inherit config mods;
|
|
||||||
};
|
|
||||||
inputs.dashNix.dashNixLib.buildSystems {
|
|
||||||
root = ./.;
|
|
||||||
inherit unstableBundle;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
With this you could also change your input to something different should you wish to do so.
|
|
||||||
Note that overriding inputs via the flake still works,
|
|
||||||
this way however ensures you can also configure the inputs.
|
|
||||||
|
|
||||||
## Stable/Unstable
|
|
||||||
|
|
||||||
Sometimes you want to differentiate between systems that are stable and unstable, e.g. for servers and desktops/laptops.
|
|
||||||
This can be done with the overridePkgs flag for the lib function:
|
|
||||||
|
|
||||||
(overridePkgs simply inverts the default bundle that is used for the nix standard library as well as NixOS itself)
|
|
||||||
|
|
||||||
```nix
|
|
||||||
nixosConfigurations =
|
|
||||||
inputs.dashNix.dashNixLib.buildSystems {
|
|
||||||
root = ./stable;
|
|
||||||
inherit stableBundle;
|
|
||||||
overridePkgs = true;
|
|
||||||
}
|
|
||||||
// inputs.dashNix.dashNixLib.buildSystems {
|
|
||||||
inherit unstableBundle;
|
|
||||||
root = ./unstable;
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
You can now place your systems in the respective directories.
|
|
||||||
Keep in mind that the hosts directory will still need to exist in each variant.
|
|
||||||
E.g. stable/hosts/yourserver and unstable/hosts/yourdesktop
|
|
||||||
|
|
||||||
# Installation via ISO
|
|
||||||
|
|
||||||
You can find a custom ISO in the releases: [Link](https://github.com/Xetibo/DashNix/releases).
|
|
||||||
With this, you will receive the example config in /iso/example alongside the gnome desktop environment,
|
|
||||||
as well as a few tools like gnome-disks, Neovim, Vscodium, a browser etc.
|
|
||||||
|
|
||||||
Alternatively, you can use whatever NixOS installer and just install your config from there, just make sure to set the drive configuration before.
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
First, copy the read-only config from /iso/example-config to a location of your choice.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cp /iso/example-config ~/config -r
|
|
||||||
```
|
|
||||||
|
|
||||||
Then configure as you please and choose a command below depending on your disk installation variant.
|
|
||||||
|
|
||||||
Installation via manual configuration:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo nixos-install --flake <flakelocation>#<hostname> --root <mountpoint> --option experimental-features "nix-command flakes pipe-operators"
|
|
||||||
#example
|
|
||||||
#nixos-install --flake ~/config#globi --root /mnt --option experimental-features "nix-command flakes pipe-operators"
|
|
||||||
```
|
|
||||||
|
|
||||||
Installation via disko:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
sudo disko-install --flake <flakelocation>#<hostname> --disk <disk-name> <disk-device> --option experimental-features "nix-command flakes pipe-operators"
|
|
||||||
#example
|
|
||||||
#disko-install -- --flake ~/config#globi --disk main /dev/nvme0n1 --option experimental-features "nix-command flakes pipe-operators"
|
|
||||||
```
|
|
||||||
|
|
||||||
# Installation via flake
|
|
||||||
|
|
||||||
If you already have nix installed, you can instead just copy the default config onto your system and install DashNix with it.
|
|
||||||
To create the example config for a base to start with, you can just run this flake with the mkFlake command:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
nix run github:Xetibo/DashNix#mkFlake
|
|
||||||
```
|
|
||||||
|
|
||||||
This command will put the default configuration into $HOME/gits/nixos
|
|
||||||
|
|
||||||
# Modules
|
|
||||||
|
|
||||||
This configuration features several modules that can be used as preconfigured "recipies".
|
|
||||||
These modules attempt to combine the home-manager and nixos packages/options to one single configuration file for each new system.
|
|
||||||
For package lists, please check the individual modules, as the lists can be long.
|
|
||||||
|
|
||||||
- Hyprland: Installs and configures Hyprland with various additional packages
|
|
||||||
- Niri: Installs and configures Niri with various additional packages
|
|
||||||
- acpid : Enables the acpid daemon
|
|
||||||
- base packages : A list of system packages to be installed by default
|
|
||||||
- bluetooth : Configures/enables bluetooth and installs tools for bluetooth
|
|
||||||
- coding packages : A list of coding packages to be installed by default
|
|
||||||
- drives : A drive configuration module
|
|
||||||
- firefox: Enables and configures firefox (extensions and settings)
|
|
||||||
- fish: Enables and configures fish shell
|
|
||||||
- gaming : Configures gaming related features (launchers, gamemode)
|
|
||||||
- git : Git key and config module
|
|
||||||
- gnome_services : Gnome services for minimal enviroments -> Window managers etc
|
|
||||||
- gpu : GPU settings (AMD)
|
|
||||||
- greetd : Enables and configures the greetd/regreet login manager with Hyprland
|
|
||||||
- home packages : A list of home packages to be installed by default
|
|
||||||
- kde_connect : Enables KDE connect and opens its ports
|
|
||||||
- keepassxc : Configures keepassxc
|
|
||||||
- kitty: Enables and configures kitty terminal
|
|
||||||
- layout : Modules to configure keyboard layout system wide
|
|
||||||
- media packages : A list of media packages to be installed by default
|
|
||||||
- mime: Mime type configuration
|
|
||||||
- nextcloud : Handles synchronization via nextcloud cmd. (requires config.sops.secrets.nextcloud)
|
|
||||||
- oxi: My own programs, can be selectively disabled, or as a whole
|
|
||||||
- piper : Installs and enables piper alongside its daemon
|
|
||||||
- plymouth: enable or disable plymouth
|
|
||||||
- printing : Enables and configures printing services
|
|
||||||
- scripts: Various preconfigured scripts with the ability to add more
|
|
||||||
- sops: Enables sops-nix
|
|
||||||
- starship : Configures the starship prompt
|
|
||||||
- stylix : Configures system themes, can also be applied to dashvim if used.
|
|
||||||
- teams: For the poor souls that have to use this....
|
|
||||||
- virtualbox : Enables and configures virtualbox
|
|
||||||
- xkb: Keyboard layout configuration
|
|
||||||
- xone : Installs the xone driver
|
|
||||||
- yazi: Installs yazi and sets custom keybinds
|
|
||||||
|
|
||||||
# Credits
|
|
||||||
|
|
||||||
- [Fufexan](https://github.com/fufexan) for the xdg-mime config:
|
|
||||||
- [Catppuccin](https://github.com/catppuccin) for base16 colors and zen-browser css
|
|
||||||
- [Danth](https://github.com/danth) for providing a base for the nix docs
|
|
||||||
- [chermnyx](https://github.com/chermnyx) for providing a base for zen configuration
|
|
||||||
- [voronind-com](https://github.com/voronind-com) for providing the darkreader configuration
|
|
||||||
- [Nix-Artwork](https://github.com/NixOS/nixos-artwork/tree/master/logo) for the Nix/NixOS logo (Tim Cuthbertson (@timbertson))
|
|
||||||
- [xddxdd](https://github.com/xddxdd) for the CachyOS-Kernel flake
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
# This file handles the basic configuration for settings like language, timezone, input, cpu etc.
|
|
||||||
|
|
@ -1,238 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
width="38.753597mm"
|
|
||||||
height="65.022255mm"
|
|
||||||
viewBox="0 0 38.753597 65.022256"
|
|
||||||
version="1.1"
|
|
||||||
id="svg1"
|
|
||||||
xml:space="preserve"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><title
|
|
||||||
id="title39">DashNix</title><defs
|
|
||||||
id="defs1"><linearGradient
|
|
||||||
id="linearGradient106"><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0"
|
|
||||||
id="stop106" /><stop
|
|
||||||
style="stop-color:#28b3fc;stop-opacity:1;"
|
|
||||||
offset="0.23456791"
|
|
||||||
id="stop109" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.4526749"
|
|
||||||
id="stop108" /><stop
|
|
||||||
style="stop-color:#f8f641;stop-opacity:1;"
|
|
||||||
offset="0.59362137"
|
|
||||||
id="stop110" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="0.66358024"
|
|
||||||
id="stop111" /><stop
|
|
||||||
style="stop-color:#ff0d01;stop-opacity:1;"
|
|
||||||
offset="1"
|
|
||||||
id="stop107" /></linearGradient><linearGradient
|
|
||||||
xlink:href="#linearGradient106"
|
|
||||||
id="linearGradient107"
|
|
||||||
x1="278.05182"
|
|
||||||
y1="-843.59747"
|
|
||||||
x2="529.8988"
|
|
||||||
y2="-736.69476"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
spreadMethod="pad" /></defs><g
|
|
||||||
id="layer1"
|
|
||||||
transform="matrix(0.45379,0,0,0.45379,-29.020506,-23.643099)"><g
|
|
||||||
id="g82"
|
|
||||||
transform="matrix(0.16779066,0,0,0.16779066,64.401373,52.777012)"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1"><g
|
|
||||||
id="layer3-7"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-141.35649,1425.3526)"><g
|
|
||||||
id="g113"><g
|
|
||||||
id="layer1-8"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
id="path4861" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1"
|
|
||||||
d="m 353.50926,-797.4433 -122.21756,211.6631 -28.53477,-48.37 32.93839,-56.6875 -65.41521,-0.1719 -13.9414,-24.1698 14.23637,-24.721 93.11177,0.2939 33.46371,-57.6903 z"
|
|
||||||
id="use4863" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 362.88537,-628.243 244.41439,0.012 -27.62229,48.8968 -65.56199,-0.1817 32.55876,56.7371 -13.96098,24.1585 -28.52722,0.032 -46.3013,-80.7841 -66.69317,-0.1353 z"
|
|
||||||
id="use4865" /><path
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
d="m 505.14318,-720.9886 -122.19683,-211.6751 56.15706,-0.5268 32.6236,56.8692 32.85645,-56.5653 27.90237,0.011 14.29086,24.6896 -46.81047,80.4902 33.22946,57.8256 z"
|
|
||||||
id="use4867" /><path
|
|
||||||
id="path4873"
|
|
||||||
d="m 309.40365,-710.2521 122.19683,211.6751 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4902 -33.22946,-57.8256 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4875"
|
|
||||||
d="m 451.3364,-803.53264 -244.4144,-0.012 27.62229,-48.89685 65.56199,0.18175 -32.55875,-56.73717 13.96097,-24.15851 28.52722,-0.0315 46.3013,80.78414 66.69317,0.13524 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><path
|
|
||||||
id="use4877"
|
|
||||||
d="m 460.87178,-633.8425 122.21757,-211.66304 28.53477,48.37003 -32.93839,56.68751 65.4152,0.1718 13.9414,24.1698 -14.23636,24.7211 -93.11177,-0.294 -33.46371,57.6904 z"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" /><g
|
|
||||||
id="layer2"
|
|
||||||
style="display:none;fill:#f7f5f6;fill-opacity:1"
|
|
||||||
transform="translate(72.039038,-1799.4476)"><path
|
|
||||||
d="M 460.60629,594.72881 209.74183,594.7288 84.309616,377.4738 209.74185,160.21882 l 250.86446,1e-5 125.43222,217.255 z"
|
|
||||||
id="path6032"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.236;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
|
||||||
id="path5875"
|
|
||||||
d="M 385.59154,773.06721 H 284.75659 l -50.41747,-87.32564 50.41748,-87.32563 100.83495,10e-6 50.41748,87.32563 z" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
id="path5851"
|
|
||||||
d="m 1216.5591,938.53395 123.0545,228.14035 -42.6807,-1.2616 -43.4823,-79.7725 -39.6506,80.3267 -32.6875,-19.7984 53.4737,-100.2848 -37.1157,-73.88955 z"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.415;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect5884"
|
|
||||||
width="48.834862"
|
|
||||||
height="226.22897"
|
|
||||||
x="-34.74221"
|
|
||||||
y="446.17056"
|
|
||||||
transform="rotate(-30)" /><path
|
|
||||||
transform="translate(0,-308.26772)"
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.509;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="path3428"
|
|
||||||
d="m 251.98568,878.63831 -14.02447,24.29109 h -28.04894 l -14.02447,-24.29109 14.02447,-24.2911 h 28.04894 z" /><use
|
|
||||||
x="0"
|
|
||||||
y="0"
|
|
||||||
xlink:href="#rect5884"
|
|
||||||
id="use4252"
|
|
||||||
transform="rotate(60,268.29786,489.4515)"
|
|
||||||
width="100%"
|
|
||||||
height="100%"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><rect
|
|
||||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#f7f5f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
|
||||||
id="rect4254"
|
|
||||||
width="5.3947482"
|
|
||||||
height="115.12564"
|
|
||||||
x="545.71014"
|
|
||||||
y="467.07007"
|
|
||||||
transform="rotate(30,575.23539,-154.13386)" /></g><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.362108"
|
|
||||||
d="m 17.647006,93.08153 c -2.137791,-3.629135 -3.886892,-6.781154 -3.886892,-7.004491 0,-0.223334 2.036859,-3.907974 4.526353,-8.18809 2.489494,-4.280113 4.526353,-7.872269 4.526353,-7.982568 0,-0.110298 -4.202399,-0.200542 -9.338664,-0.200542 H 4.1354931 L 2.2488007,66.408408 C 1.2111198,64.594822 0.36210825,62.964051 0.36210825,62.784474 c 0,-0.179578 0.83310065,-1.791759 1.85133475,-3.582627 l 1.8513347,-3.256122 13.4477393,-0.0031 13.447739,-0.0031 4.75902,-8.234844 4.75902,-8.234843 8.039166,-0.09755 8.039169,-0.09754 -0.718362,1.18387 C 55.443173,41.109708 47.744447,54.433923 38.729994,70.067947 29.715538,85.701971 22.158685,98.760409 21.936986,99.086701 21.60128,99.580783 20.884148,98.576936 17.647006,93.08153 Z"
|
|
||||||
id="path27"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path28"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path29"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path30"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path31"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path32"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path33"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path34"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path35"
|
|
||||||
transform="matrix(3.4748797,0,0,3.4748797,156.33872,-933.32664)" /></g><g
|
|
||||||
id="layer3"
|
|
||||||
style="display:inline;opacity:1;fill:#28b3fc;fill-opacity:1"
|
|
||||||
transform="translate(-14.982227,-492.1621)"><path
|
|
||||||
id="path3336-6"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8257 z"
|
|
||||||
style="opacity:1;fill:#28b3fc;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(60,407.11155,-715.78724)"
|
|
||||||
id="use3439-6"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-60,407.31177,-715.70016)"
|
|
||||||
id="use3445-0"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(180,407.41868,-715.7565)"
|
|
||||||
id="use3449-5"
|
|
||||||
xlink:href="#path3336-6"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 309.54892,-710.38827 122.19683,211.67512 -56.15706,0.5268 -32.6236,-56.8692 -32.85645,56.5653 -27.90237,-0.011 -14.29086,-24.6896 46.81047,-80.4901 -33.22946,-57.8256 z"
|
|
||||||
id="path4260-0" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(120,407.33916,-716.08356)"
|
|
||||||
id="use4354-5"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /><use
|
|
||||||
height="100%"
|
|
||||||
width="100%"
|
|
||||||
transform="rotate(-120,407.28823,-715.86995)"
|
|
||||||
id="use4362-2"
|
|
||||||
xlink:href="#path4260-0"
|
|
||||||
y="0"
|
|
||||||
x="0"
|
|
||||||
style="display:inline;fill:#28b3fc;fill-opacity:1;stroke:#28b3fc;stroke-width:7.88004;stroke-dasharray:none;stroke-opacity:1" /></g><g
|
|
||||||
id="g104"
|
|
||||||
style="fill:url(#linearGradient107);stroke:none"
|
|
||||||
transform="rotate(-13.062247,340.02897,-863.93232)"><path
|
|
||||||
id="use3449-5-0-0"
|
|
||||||
d="m 331.77633,-1001.5212 94.91305,225.23301 -55.78631,-6.46377 -25.29508,-60.48604 -39.63845,52.03815 -27.6842,-3.48227 -11.10824,-26.27568 56.46054,-74.04107 -25.77721,-61.5105 z"
|
|
||||||
style="fill:#28b3fc;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-6"
|
|
||||||
d="m 457.16967,-744.75745 -70.00051,-234.1759 54.76023,12.45846 18.60597,62.86668 45.03324,-47.44663 27.14534,6.4555 8.2017,27.32283 -64.13603,67.50143 18.97452,63.93729 z"
|
|
||||||
style="fill:#ff0d01;fill-opacity:1" /><path
|
|
||||||
id="use3449-5-0-0-4"
|
|
||||||
d="m 277.21377,-582.32585 178.97491,-166.45237 -53.52586,-16.99636 -47.88683,44.78006 -14.79485,-63.7204 -26.67512,-8.18413 -20.91172,19.40373 21.10703,90.68829 -48.74692,45.51646 z"
|
|
||||||
style="fill:#f8f641;fill-opacity:1" /></g></g></g></g><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke-width:0.181054"
|
|
||||||
d="m 20.413065,97.739351 c -2.448138,-4.090679 -6.658726,-11.27144 -6.752434,-11.515638 -0.05373,-0.14001 2.024274,-3.903593 4.617779,-8.363519 2.593506,-4.459926 4.715464,-8.13954 4.715464,-8.17692 0,-0.03738 -4.257035,-0.07107 -9.460078,-0.07486 L 4.0737178,69.601519 2.1145346,66.168465 0.15535114,62.73541 2.2025635,59.176688 l 2.0472121,-3.558721 13.3811224,0.07335 13.381123,0.07335 4.807164,-8.283226 4.807163,-8.283227 h 7.93127 c 4.362198,0 7.931269,0.04091 7.931269,0.0909 0,0.112152 -34.58204,60.050535 -34.768044,60.260772 -0.07356,0.08315 -0.662065,-0.731596 -1.307778,-1.810541 z"
|
|
||||||
id="path36"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 21.228346,98.82575 C 20.775825,98.187139 14.573556,87.698587 14.099569,86.770393 l -0.346608,-0.67875 1.796437,-3.213914 c 0.988041,-1.767653 3.067246,-5.409743 4.620457,-8.093538 1.553211,-2.683792 2.824019,-4.931476 2.824019,-4.99485 0,-0.110336 -11.090545,-0.351953 -16.3853984,-0.356972 L 4.0737178,69.429968 2.217913,66.175832 C 1.1972204,64.386056 0.36210825,62.847854 0.36210825,62.757606 c 0,-0.09025 0.87964515,-1.70058 1.95476695,-3.578513 l 1.954767,-3.414422 13.3895698,0.06926 13.389571,0.06926 4.821268,-8.307221 4.821271,-8.307221 3.145111,-0.04488 c 1.729813,-0.02469 5.235571,0.01605 7.790576,0.09053 l 4.645463,0.135412 -3.534135,6.15584 c -4.146422,7.222338 -16.886029,29.318862 -25.000346,43.362463 -3.135747,5.427098 -5.801825,9.976251 -5.924618,10.109228 -0.183451,0.198671 -0.288115,0.150249 -0.587027,-0.271581 z"
|
|
||||||
id="path37"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 97.636535,120.63066 c -1.389583,-2.41665 -4.382703,-7.63252 -6.651376,-11.59081 l -4.12486,-7.1969 -4.45825,-0.005 c -4.928423,-0.005 -14.743895,-0.1852 -14.838725,-0.27196 -0.03322,-0.0304 -1.827632,-3.096939 -3.987593,-6.814561 l -3.9272,-6.759314 17.535793,-0.04616 c 9.644687,-0.02539 25.387006,-0.02539 34.982936,0 l 17.44715,0.04616 -1.54239,2.715812 c -0.84832,1.493697 -2.61343,4.622573 -3.92248,6.953058 l -2.38008,4.237245 -9.38708,-0.11294 c -7.6636,-0.0922 -9.37652,-0.0697 -9.32957,0.12287 0.0316,0.1297 2.12168,3.83356 4.64454,8.23081 l 4.58703,7.995 -1.97119,3.3966 -1.9712,3.39659 -4.08947,0.0486 -4.08947,0.0486 z"
|
|
||||||
id="path38"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /><path
|
|
||||||
style="fill:#f7f5f6;fill-opacity:1;stroke:#28b3fc;stroke-width:2.26772;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="M 87.802229,39.150266 C 80.890113,27.177278 73.023088,13.551901 70.319951,8.8716522 L 65.405158,0.36210825 68.59656,0.24891517 c 1.755271,-0.0622562 5.350472,-0.12261799 7.989335,-0.1341373 l 4.797935,-0.0209442 4.519855,7.89261083 c 2.48592,4.3409365 4.610279,8.0162745 4.7208,8.1674195 0.162204,0.22183 1.117147,-1.300038 4.953498,-7.8942647 l 4.752557,-8.16907224 h 3.92896 3.92895 l 2.03256,3.50763344 c 1.1179,1.9291986 2.03255,3.5544662 2.03255,3.6117061 0,0.05724 -3.01666,5.2908554 -6.70369,11.6302564 l -6.703688,11.526185 4.779848,8.329337 4.77986,8.329337 -3.94792,6.877008 c -2.17135,3.782353 -3.97949,6.908583 -4.01808,6.947175 -0.0386,0.03859 -5.725543,-9.725911 -12.637661,-21.698899 z"
|
|
||||||
id="path39"
|
|
||||||
transform="matrix(0.58305237,0,0,0.58305237,64.401373,52.754168)" /></g><metadata
|
|
||||||
id="metadata39"><rdf:RDF><cc:Work
|
|
||||||
rdf:about=""><cc:license
|
|
||||||
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" /><dc:title>DashNix</dc:title></cc:Work><cc:License
|
|
||||||
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/"><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
|
|
||||||
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF></metadata></svg>
|
|
||||||
|
Before Width: | Height: | Size: 26 KiB |
|
|
@ -1 +0,0 @@
|
||||||
# This file handles configuration of individual modules.
|
|
||||||
456
dunst/dunstrc
Normal file
|
|
@ -0,0 +1,456 @@
|
||||||
|
# See dunst(5) for all configuration options
|
||||||
|
|
||||||
|
[global]
|
||||||
|
### Display ###
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 2
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a window manager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern window managers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = none
|
||||||
|
|
||||||
|
### Geometry ###
|
||||||
|
|
||||||
|
# dynamic width from 0 to 300
|
||||||
|
# width = (0, 300)
|
||||||
|
# constant width of 300
|
||||||
|
width = (0, 300)
|
||||||
|
|
||||||
|
# The maximum height of a single notification, excluding the frame.
|
||||||
|
height = (0, 300)
|
||||||
|
|
||||||
|
# Position the notification in the top right corner
|
||||||
|
origin = top-right
|
||||||
|
|
||||||
|
# Offset from the origin
|
||||||
|
offset = 10x2
|
||||||
|
|
||||||
|
# Scale factor. It is auto-detected if value is 0.
|
||||||
|
scale = 0
|
||||||
|
|
||||||
|
# Maximum number of notification (0 means no limit)
|
||||||
|
notification_limit = 3
|
||||||
|
|
||||||
|
### Progress bar ###
|
||||||
|
|
||||||
|
# Turn on the progess bar. It appears when a progress hint is passed with
|
||||||
|
# for example dunstify -h int:value:12
|
||||||
|
progress_bar = true
|
||||||
|
|
||||||
|
# Set the progress bar height. This includes the frame, so make sure
|
||||||
|
# it's at least twice as big as the frame width.
|
||||||
|
progress_bar_height = 10
|
||||||
|
|
||||||
|
# Set the frame width of the progress bar
|
||||||
|
progress_bar_frame_width = 1
|
||||||
|
|
||||||
|
# Set the minimum width for the progress bar
|
||||||
|
progress_bar_min_width = 150
|
||||||
|
|
||||||
|
# Set the maximum width for the progress bar
|
||||||
|
progress_bar_max_width = 300
|
||||||
|
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of
|
||||||
|
# notification_limit).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing window manager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.). (X11 only)
|
||||||
|
transparency = 0
|
||||||
|
|
||||||
|
# Draw a line of "separator_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# If gap_size is greater than 0, this setting will be ignored.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 8
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 8
|
||||||
|
|
||||||
|
# Padding between text and icon.
|
||||||
|
text_icon_padding = 0
|
||||||
|
|
||||||
|
# Defines width in pixels of frame around the notification window.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
frame_width = 3
|
||||||
|
|
||||||
|
# Defines color of the frame around the notification window.
|
||||||
|
frame_color = "#0f0f17"
|
||||||
|
|
||||||
|
# Size of gap to display between notifications - requires a compositor.
|
||||||
|
# If value is greater than 0, separator_height will be ignored and a border
|
||||||
|
# of size frame_width will be drawn around each notification instead.
|
||||||
|
# Click events on gaps do not currently propagate to applications below.
|
||||||
|
gap_size = 2
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = yes
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
# A client can set the 'transient' hint to bypass this. See the rules
|
||||||
|
# section for how to disable this if necessary
|
||||||
|
# idle_threshold = 120
|
||||||
|
|
||||||
|
### Text ###
|
||||||
|
|
||||||
|
font = FuraMono Nerd Font 10
|
||||||
|
|
||||||
|
# The spacing between lines. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
line_height = 0
|
||||||
|
|
||||||
|
# Possible values are:
|
||||||
|
# full: Allow a small subset of html markup in notifications:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <https://docs.gtk.org/Pango/pango_markup.html>.
|
||||||
|
#
|
||||||
|
# strip: This setting is provided for compatibility with some broken
|
||||||
|
# clients that send markup even though it's not enabled on the
|
||||||
|
# server. Dunst will try to strip the markup but the parsing is
|
||||||
|
# simplistic so using this option outside of matching rules for
|
||||||
|
# specific applications *IS GREATLY DISCOURAGED*.
|
||||||
|
#
|
||||||
|
# no: Disable markup parsing, incoming notifications will be treated as
|
||||||
|
# plain text. Dunst will not advertise that it has the body-markup
|
||||||
|
# capability if this is set as a global setting.
|
||||||
|
#
|
||||||
|
# It's important to note that markup inside the format option will be parsed
|
||||||
|
# regardless of what this is set to.
|
||||||
|
markup = full
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# %n progress value if set without any extra characters
|
||||||
|
# %% Literal %
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# Vertical alignment of message text and icon.
|
||||||
|
# Possible values are "top", "center" and "bottom".
|
||||||
|
vertical_alignment = center
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = 60
|
||||||
|
|
||||||
|
# Specify where to make an ellipsis in long lines.
|
||||||
|
# Possible values are "start", "middle" and "end".
|
||||||
|
ellipsize = middle
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Stack together notifications with the same content
|
||||||
|
stack_duplicates = true
|
||||||
|
|
||||||
|
# Hide the count of stacked notifications with the same content
|
||||||
|
hide_duplicate_count = false
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = yes
|
||||||
|
|
||||||
|
### Icons ###
|
||||||
|
|
||||||
|
# Recursive icon lookup. You can set a single theme, instead of having to
|
||||||
|
# define all lookup paths.
|
||||||
|
enable_recursive_icon_lookup = true
|
||||||
|
|
||||||
|
# Set icon theme (only used for recursive icon lookup)
|
||||||
|
icon_theme = Adwaita
|
||||||
|
# You can also set multiple icon themes, with the leftmost one being used first.
|
||||||
|
# icon_theme = "Adwaita, breeze"
|
||||||
|
|
||||||
|
# Align icons left/right/top/off
|
||||||
|
icon_position = left
|
||||||
|
|
||||||
|
# Scale small icons up to this size, set to 0 to disable. Helpful
|
||||||
|
# for e.g. small files or high-dpi screens. In case of conflict,
|
||||||
|
# max_icon_size takes precedence over this.
|
||||||
|
min_icon_size = 32
|
||||||
|
|
||||||
|
# Scale larger icons down to this size, set to 0 to disable
|
||||||
|
max_icon_size = 128
|
||||||
|
|
||||||
|
# Paths to default icons (only neccesary when not using recursive icon lookup)
|
||||||
|
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
|
||||||
|
|
||||||
|
### History ###
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 20
|
||||||
|
|
||||||
|
### Misc/Advanced ###
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/xdg-open
|
||||||
|
|
||||||
|
# Always run rule-defined scripts, even if the notification is suppressed
|
||||||
|
always_run_script = true
|
||||||
|
|
||||||
|
# Define the title of the windows spawned by dunst
|
||||||
|
title = Dunst
|
||||||
|
|
||||||
|
# Define the class of the windows spawned by dunst
|
||||||
|
class = Dunst
|
||||||
|
|
||||||
|
# Define the corner radius of the notification window
|
||||||
|
# in pixel size. If the radius is 0, you have no rounded
|
||||||
|
# corners.
|
||||||
|
# The radius will be automatically lowered if it exceeds half of the
|
||||||
|
# notification height to avoid clipping text and/or icons.
|
||||||
|
corner_radius = 10
|
||||||
|
|
||||||
|
# Ignore the dbus closeNotification message.
|
||||||
|
# Useful to enforce the timeout set by dunst configuration. Without this
|
||||||
|
# parameter, an application may close the notification sent before the
|
||||||
|
# user defined timeout.
|
||||||
|
ignore_dbusclose = false
|
||||||
|
|
||||||
|
### Wayland ###
|
||||||
|
# These settings are Wayland-specific. They have no effect when using X11
|
||||||
|
|
||||||
|
# Uncomment this if you want to let notications appear under fullscreen
|
||||||
|
# applications (default: overlay)
|
||||||
|
# layer = top
|
||||||
|
|
||||||
|
# Set this to true to use X11 output on Wayland.
|
||||||
|
force_xwayland = false
|
||||||
|
|
||||||
|
### Legacy
|
||||||
|
|
||||||
|
# Use the Xinerama extension instead of RandR for multi-monitor support.
|
||||||
|
# This setting is provided for compatibility with older nVidia drivers that
|
||||||
|
# do not support RandR and using it on systems that support RandR is highly
|
||||||
|
# discouraged.
|
||||||
|
#
|
||||||
|
# By enabling this setting dunst will not be able to detect when a monitor
|
||||||
|
# is connected or disconnected which might break follow mode if the screen
|
||||||
|
# layout changes.
|
||||||
|
force_xinerama = false
|
||||||
|
|
||||||
|
### mouse
|
||||||
|
|
||||||
|
# Defines list of actions for each mouse event
|
||||||
|
# Possible values are:
|
||||||
|
# * none: Don't do anything.
|
||||||
|
# * do_action: Invoke the action determined by the action_name rule. If there is no
|
||||||
|
# such action, open the context menu.
|
||||||
|
# * open_url: If the notification has exactly one url, open it. If there are multiple
|
||||||
|
# ones, open the context menu.
|
||||||
|
# * close_current: Close current notification.
|
||||||
|
# * close_all: Close all notifications.
|
||||||
|
# * context: Open context menu for the notification.
|
||||||
|
# * context_all: Open context menu for all notifications.
|
||||||
|
# These values can be strung together for each mouse event, and
|
||||||
|
# will be executed in sequence.
|
||||||
|
mouse_left_click = close_current
|
||||||
|
mouse_middle_click = do_action, close_current
|
||||||
|
mouse_right_click = close_all
|
||||||
|
|
||||||
|
# Experimental features that may or may not work correctly. Do not expect them
|
||||||
|
# to have a consistent behaviour across releases.
|
||||||
|
[experimental]
|
||||||
|
# Calculate the dpi to use on a per-monitor basis.
|
||||||
|
# If this setting is enabled the Xft.dpi value will be ignored and instead
|
||||||
|
# dunst will attempt to calculate an appropriate dpi value for each monitor
|
||||||
|
# using the resolution and physical size. This might be useful in setups
|
||||||
|
# where there are multiple screens with very different dpi values.
|
||||||
|
per_monitor_dpi = false
|
||||||
|
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
background = "#222222F0"
|
||||||
|
foreground = "#888888"
|
||||||
|
frame_color = "0f0f17C8"
|
||||||
|
timeout = 3
|
||||||
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
background = "#222222F0"
|
||||||
|
foreground = "#888888"
|
||||||
|
frame_color = "0f0f17C8"
|
||||||
|
timeout = 3
|
||||||
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
background = "#900000F0"
|
||||||
|
foreground = "#ffffff"
|
||||||
|
frame_color = "#ff0000C8"
|
||||||
|
timeout = 0
|
||||||
|
# Icon for notifications with critical urgency, uncomment to enable
|
||||||
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
#
|
||||||
|
# Messages can be matched by
|
||||||
|
# appname (discouraged, see desktop_entry)
|
||||||
|
# body
|
||||||
|
# category
|
||||||
|
# desktop_entry
|
||||||
|
# icon
|
||||||
|
# match_transient
|
||||||
|
# msg_urgency
|
||||||
|
# stack_tag
|
||||||
|
# summary
|
||||||
|
#
|
||||||
|
# and you can override the
|
||||||
|
# background
|
||||||
|
# foreground
|
||||||
|
# format
|
||||||
|
# frame_color
|
||||||
|
# fullscreen
|
||||||
|
# new_icon
|
||||||
|
# set_stack_tag
|
||||||
|
# set_transient
|
||||||
|
# set_category
|
||||||
|
# timeout
|
||||||
|
# urgency
|
||||||
|
# icon_position
|
||||||
|
# skip_display
|
||||||
|
# history_ignore
|
||||||
|
# action_name
|
||||||
|
# word_wrap
|
||||||
|
# ellipsize
|
||||||
|
# alignment
|
||||||
|
# hide_text
|
||||||
|
#
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# Instead of the appname filter, it's recommended to use the desktop_entry filter.
|
||||||
|
# GLib based applications export their desktop-entry name. In comparison to the appname,
|
||||||
|
# the desktop-entry won't get localized.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
# Disable the transient hint so that idle_threshold cannot be bypassed from the
|
||||||
|
# client
|
||||||
|
#[transient_disable]
|
||||||
|
# match_transient = yes
|
||||||
|
# set_transient = no
|
||||||
|
#
|
||||||
|
# Make the handling of transient notifications more strict by making them not
|
||||||
|
# be placed in history.
|
||||||
|
#[transient_history_ignore]
|
||||||
|
# match_transient = yes
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
# fullscreen values
|
||||||
|
# show: show the notifications, regardless if there is a fullscreen window opened
|
||||||
|
# delay: displays the new notification, if there is no fullscreen window active
|
||||||
|
# If the notification is already drawn, it won't get undrawn.
|
||||||
|
# pushback: same as delay, but when switching into fullscreen, the notification will get
|
||||||
|
# withdrawn from screen again and will get delayed like a new notification
|
||||||
|
#[fullscreen_delay_everything]
|
||||||
|
# fullscreen = delay
|
||||||
|
#[fullscreen_show_critical]
|
||||||
|
# msg_urgency = critical
|
||||||
|
# fullscreen = show
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = true
|
||||||
|
|
||||||
|
#[history-ignore]
|
||||||
|
# # This notification will not be saved in history
|
||||||
|
# summary = "foobar"
|
||||||
|
# history_ignore = yes
|
||||||
|
|
||||||
|
#[skip-display]
|
||||||
|
# # This notification will not be displayed, but will be included in the history
|
||||||
|
# summary = "foobar"
|
||||||
|
# skip_display = yes
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
#[stack-volumes]
|
||||||
|
# appname = "some_volume_notifiers"
|
||||||
|
# set_stack_tag = "volume"
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
||||||
14
environment.d/envvars.conf
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
GTK_CSD=0
|
||||||
|
QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
|
QT_WAYLAND_FORCE_DPI=96
|
||||||
|
QT_AUTO_SCREEN_SCALE_FACTOR=0
|
||||||
|
QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||||
|
QT_SCALE_FACTOR=1
|
||||||
|
QT_QPA_PLATFORM=wayland
|
||||||
|
XCURSOR_SIZE=24
|
||||||
|
WAYLAND_DISPLAY=wayland-1
|
||||||
|
XDG_CURRENT_DESKTOP=wlr
|
||||||
|
GPG_TTY=$(tty)
|
||||||
|
PATH=$PATH:$HOME/.local/bin
|
||||||
|
TEXMFHOME=$HOME/.texmf
|
||||||
|
GTK_THEME=Adwaita:dark
|
||||||
447
eww_desktop/bar/eww.scss
Normal file
|
|
@ -0,0 +1,447 @@
|
||||||
|
/** EWW.SCSS
|
||||||
|
Created by saimoom **/
|
||||||
|
*{
|
||||||
|
all: unset;
|
||||||
|
font-family: feather;
|
||||||
|
font-family: DaddyTimeMono Nerd Font;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** General **/
|
||||||
|
.bar_class {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.module {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 10px 16px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** tooltip!! **/
|
||||||
|
tooltip.background {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-size: 18;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Widgets **/
|
||||||
|
|
||||||
|
.clock_time_sep {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 4px 1px 4px;
|
||||||
|
}
|
||||||
|
.clock_time_class, .clock_minute_class {
|
||||||
|
font-size: 23;
|
||||||
|
}
|
||||||
|
.clock_date_class {
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 20px 0px -1px;
|
||||||
|
color: #d7beda;
|
||||||
|
}
|
||||||
|
.clock_minute_class {
|
||||||
|
margin: 0px 20px 0px 3px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock_time_class {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.membar {
|
||||||
|
color: #e0b089;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.batbar {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.brightbar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.volbar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.volume_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.module_essid {
|
||||||
|
font-size: 18;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
.module-wif {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 0px 10px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
color: #e0b089;
|
||||||
|
}
|
||||||
|
.iconbat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
.iconbat, .iconmem {
|
||||||
|
font-size: 15;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
.bright_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #e4c9af;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.separ {
|
||||||
|
color: #3e424f;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
margin: 0px 8px 0px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mem_module {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 3px;
|
||||||
|
}
|
||||||
|
.bat_module {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #22242b;
|
||||||
|
box-shadow: 0 2px 3px 2px #06060b;
|
||||||
|
border-radius: 16px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.works {
|
||||||
|
font-size: 27px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 5px 0px 0px 20px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
|
||||||
|
.0 , .01, .02, .03, .04, .05, .06,
|
||||||
|
.011, .022, .033, .044, .055, .066{
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unoccupied */
|
||||||
|
.0 {
|
||||||
|
color: #3e424f;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Occupied */
|
||||||
|
.01, .02, .03, .04, .05, .06 {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Focused */
|
||||||
|
.011, .022, .033, .044, .055, .066 {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.song_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 24px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 18px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin : 3px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 28px;
|
||||||
|
margin : 3px 0px 0px 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.song_btn_prev, .song_btn_next {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-size : 24px;
|
||||||
|
margin : 3px 0px 0px 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
// Calendar
|
||||||
|
.cal {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-family: JetBrainsMono Nerd Font;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
.cal-in {
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
|
||||||
|
.cal {
|
||||||
|
&.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
calender {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
calendar:selected {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.header {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.button {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.highlight {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:indeterminate {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.sys_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
.sys_text_bat_sub, .sys_text_mem_sub {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bbc5d7;
|
||||||
|
margin: 5px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_text_bat, .sys_text_mem {
|
||||||
|
font-size: 21;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 14px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat, .sys_icon_mem {
|
||||||
|
font-size: 30;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
.sys_win {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
.sys_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat, .sys_text_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
.sys_icon_mem, .sys_text_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
}
|
||||||
|
.sys_bat_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 15px 10px 10px 20px;
|
||||||
|
}
|
||||||
|
.sys_mem_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 10px 10px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.music_pop {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.music_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 100px;
|
||||||
|
box-shadow: 5px 5px 5px 5px #06060b;
|
||||||
|
min-width: 170px;
|
||||||
|
margin: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 20px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin : 20px 0px 0px -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_artist {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 16px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin : 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_prev, .music_btn_play, .music_btn_next {
|
||||||
|
font-family: Iosevka Nerd Font;
|
||||||
|
}
|
||||||
|
.music_btn_prev {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 32px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 48px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_next {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 32px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.music_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 190px;
|
||||||
|
margin : -10px 10px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-box {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.speaker_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url('images/speaker.png');
|
||||||
|
background-position: center;
|
||||||
|
min-height: 70px;
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 10px 20px 5px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 26px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin: 20px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.speaker_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 120px;
|
||||||
|
margin : 0px 0px 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.mic_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url('images/mic.png');
|
||||||
|
background-position: center;
|
||||||
|
min-height: 70px;
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 5px 20px 20px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 26px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.mic_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 120px;
|
||||||
|
margin : 0px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin : 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
352
eww_desktop/bar/eww.yuck
Normal file
|
|
@ -0,0 +1,352 @@
|
||||||
|
;; Variables
|
||||||
|
(defpoll clock_time :interval "5m" "date +\%I")
|
||||||
|
(defpoll clock_minute :interval "5s" "date +\%M")
|
||||||
|
(defpoll clock_date :interval "10h" "date '+%d/%m'")
|
||||||
|
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||||
|
(defpoll battery :interval "15s" "./scripts/battery --bat")
|
||||||
|
(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
|
||||||
|
(defpoll memory :interval "15s" "scripts/memory")
|
||||||
|
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
|
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
|
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
(defvar br_reveal false)
|
||||||
|
(defvar music_reveal false)
|
||||||
|
(defvar wifi_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(deflisten workspace "scripts/workspace")
|
||||||
|
|
||||||
|
(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
|
||||||
|
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
|
||||||
|
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll song :interval "2s" "~/.config/eww/bar/scripts/music_info --song")
|
||||||
|
(defpoll song_artist :interval "2s" "~/.config/eww/bar/scripts/music_info --artist")
|
||||||
|
(defpoll current_status :interval "1s" "~/.config/eww/bar/scripts/music_info --time")
|
||||||
|
(defpoll song_status :interval "2s" "~/.config/eww/bar/scripts/music_info --status")
|
||||||
|
(defpoll cover_art :interval "2s" "~/.config/eww/bar/scripts/music_info --cover")
|
||||||
|
|
||||||
|
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||||
|
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||||
|
|
||||||
|
;; widgets
|
||||||
|
|
||||||
|
(defwidget wifi []
|
||||||
|
(eventbox :onhover "${eww} update wifi_rev=true"
|
||||||
|
:onhoverlost "${eww} update wifi_rev=false"
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button :class "module-wif" :onclick "networkmanager_dmenu" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal wifi_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(label :class "module_essid"
|
||||||
|
:text ESSID_WLAN
|
||||||
|
:orientation "h"
|
||||||
|
)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget workspaces []
|
||||||
|
(literal :content workspace))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget bat []
|
||||||
|
(box :class "bat_module" :vexpand "false" :hexpand "false"
|
||||||
|
(circular-progress :value battery
|
||||||
|
:class "batbar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconbat"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "battery on ${battery}%"
|
||||||
|
:show_truncated false
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:wrap false
|
||||||
|
""))))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget mem []
|
||||||
|
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "membar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconmem"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "using ${memory}% ram"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
""))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget sep []
|
||||||
|
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "separ" :text "|")))
|
||||||
|
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox :onhover "${eww} update time_rev=true"
|
||||||
|
:onhoverlost "${eww} update time_rev=false"
|
||||||
|
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text clock_time :class "clock_time_class" )
|
||||||
|
(label :text "" :class "clock_time_sep" )
|
||||||
|
(label :text clock_minute :class "clock_minute_class")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal time_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(button :class "clock_date_class"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop calendar" clock_date
|
||||||
|
)
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox :onhover "${eww} update vol_reveal=true"
|
||||||
|
:onhoverlost "${eww} update vol_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop audio" :class "volume_icon" "")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal vol_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "volbar"
|
||||||
|
:value volume_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "amixer -D pulse sset Master {}%" )))))
|
||||||
|
|
||||||
|
(defwidget bright []
|
||||||
|
(eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text "" :class "bright_icon" :tooltip "brightness")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal br_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "brightbar"
|
||||||
|
:value brightness_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${brightness_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "brightnessctl set {}%" )))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defwidget music []
|
||||||
|
(eventbox :onhover "${eww} update music_reveal=true"
|
||||||
|
:onhoverlost "${eww} update music_reveal=false"
|
||||||
|
(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal music_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(box :vexpand "false" :hexpand "false" :oreintation "h"
|
||||||
|
(button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget left []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:class "left_modules"
|
||||||
|
(bright)
|
||||||
|
(volume)
|
||||||
|
(wifi)
|
||||||
|
(sep)
|
||||||
|
(bat)
|
||||||
|
(mem)
|
||||||
|
(sep)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget right []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
:class "right_modules"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
:class "center_modules"
|
||||||
|
(music)))
|
||||||
|
|
||||||
|
(defwidget bar_1 []
|
||||||
|
(box :class "bar_class"
|
||||||
|
:orientation "h"
|
||||||
|
(right)
|
||||||
|
(center)
|
||||||
|
(left)
|
||||||
|
))
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "9px"
|
||||||
|
:width "98%"
|
||||||
|
:height "30px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "fg"
|
||||||
|
:wm-ignore true
|
||||||
|
:windowtype "dock"
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
(defwidget system []
|
||||||
|
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
|
||||||
|
(box :class "sys_bat_box" :orientation "h" :space-evenly "false"
|
||||||
|
(circular-progress :value battery
|
||||||
|
:class "sys_bat"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_bat"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "battery"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery}%"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery_status}"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))
|
||||||
|
(label :text "" :class "sys_sep" :halign "center")
|
||||||
|
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "sys_mem"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_mem"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
:angle 0.0))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "memory"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_free_mb}mb free"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))))
|
||||||
|
|
||||||
|
(defwidget cal []
|
||||||
|
(box :class "cal" :orientation "v"
|
||||||
|
(box :class "cal-in"
|
||||||
|
(calendar :class "cal"
|
||||||
|
:day calendar_day
|
||||||
|
:year calendar_year))))
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget audio []
|
||||||
|
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "speaker_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value volume_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "amixer -D pulse sset Master {}%"
|
||||||
|
:tooltip "volume on ${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "mic_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "mic_text" :text "mic" :valign "center" :halign "left" )
|
||||||
|
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value mic_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "mic on ${mic_percent}%"
|
||||||
|
:onchange "amixer -D pulse sset Capture {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))))
|
||||||
|
|
||||||
|
(defwindow audio_ctl
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "280px"
|
||||||
|
:height "60px")
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow system
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
(system))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defwidget music_pop []
|
||||||
|
(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
|
||||||
|
(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
|
||||||
|
(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
|
||||||
|
(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
|
||||||
|
|
||||||
|
|
||||||
|
;; music
|
||||||
|
(defwindow music_win :stacking "fg" :focusable "false" :screen 1
|
||||||
|
:geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
|
||||||
|
(music_pop))
|
||||||
|
|
||||||
BIN
eww_desktop/bar/images/mic.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
eww_desktop/bar/images/music.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
eww_desktop/bar/images/profile.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
eww_desktop/bar/images/speaker.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
27
eww_desktop/bar/launch_bar
Executable file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Files and cmd
|
||||||
|
FILE="$HOME/.cache/eww_launch.xyz"
|
||||||
|
EWW="$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar"
|
||||||
|
|
||||||
|
## Run eww daemon if not running already
|
||||||
|
if [[ ! `pidof eww` ]]; then
|
||||||
|
${EWW} daemon
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Open widgets
|
||||||
|
run_eww() {
|
||||||
|
${EWW} open-many \
|
||||||
|
bar
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
## Launch or close widgets accordingly
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
touch "$FILE"
|
||||||
|
run_eww && bspc config -m LVDS-1 top_padding 49
|
||||||
|
else
|
||||||
|
${EWW} close-all && killall eww
|
||||||
|
rm "$FILE"
|
||||||
|
fi
|
||||||
17
eww_desktop/bar/scripts/battery
Executable file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
battery() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/capacity
|
||||||
|
}
|
||||||
|
battery_stat() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/status
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "$1" == "--bat" ]]; then
|
||||||
|
battery
|
||||||
|
elif [[ "$1" == "--bat-st" ]]; then
|
||||||
|
battery_stat
|
||||||
|
fi
|
||||||
|
|
||||||
15
eww_desktop/bar/scripts/mem-ad
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
total="$(free -m | grep Mem: | awk '{ print $2 }')"
|
||||||
|
used="$(free -m | grep Mem: | awk '{ print $3 }')"
|
||||||
|
|
||||||
|
free=$(expr $total - $used)
|
||||||
|
|
||||||
|
if [ "$1" = "total" ]; then
|
||||||
|
echo $total
|
||||||
|
elif [ "$1" = "used" ]; then
|
||||||
|
echo $used
|
||||||
|
elif [ "$1" = "free" ]; then
|
||||||
|
echo $free
|
||||||
|
fi
|
||||||
3
eww_desktop/bar/scripts/memory
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||||
98
eww_desktop/bar/scripts/music_info
Executable file
|
|
@ -0,0 +1,98 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# scripts by adi1090x
|
||||||
|
|
||||||
|
## Get data
|
||||||
|
STATUS="$(mpc status)"
|
||||||
|
COVER="/tmp/.music_cover.png"
|
||||||
|
MUSIC_DIR="$HOME/Music"
|
||||||
|
|
||||||
|
## Get status
|
||||||
|
get_status() {
|
||||||
|
if [[ $STATUS == *"[playing]"* ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "奈"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get song
|
||||||
|
get_song() {
|
||||||
|
song=`mpc -f %title% current`
|
||||||
|
if [[ -z "$song" ]]; then
|
||||||
|
echo "Offline"
|
||||||
|
else
|
||||||
|
echo "$song"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get artist
|
||||||
|
get_artist() {
|
||||||
|
artist=`mpc -f %artist% current`
|
||||||
|
if [[ -z "$artist" ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "$artist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get time
|
||||||
|
get_time() {
|
||||||
|
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
|
||||||
|
if [[ -z "$time" ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "$time"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ctime() {
|
||||||
|
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
|
||||||
|
if [[ -z "$ctime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ctime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ttime() {
|
||||||
|
ttime=`mpc -f %time% current`
|
||||||
|
if [[ -z "$ttime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ttime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get cover
|
||||||
|
get_cover() {
|
||||||
|
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
|
||||||
|
# Check if the file has a embbeded album art
|
||||||
|
if [ "$STATUS" -eq 0 ];then
|
||||||
|
echo "$COVER"
|
||||||
|
else
|
||||||
|
echo "images/music.png"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--song" ]]; then
|
||||||
|
get_song
|
||||||
|
elif [[ "$1" == "--artist" ]]; then
|
||||||
|
get_artist
|
||||||
|
elif [[ "$1" == "--status" ]]; then
|
||||||
|
get_status
|
||||||
|
elif [[ "$1" == "--time" ]]; then
|
||||||
|
get_time
|
||||||
|
elif [[ "$1" == "--ctime" ]]; then
|
||||||
|
get_ctime
|
||||||
|
elif [[ "$1" == "--ttime" ]]; then
|
||||||
|
get_ttime
|
||||||
|
elif [[ "$1" == "--cover" ]]; then
|
||||||
|
get_cover
|
||||||
|
elif [[ "$1" == "--toggle" ]]; then
|
||||||
|
mpc -q toggle
|
||||||
|
elif [[ "$1" == "--next" ]]; then
|
||||||
|
{ mpc -q next; get_cover; }
|
||||||
|
elif [[ "$1" == "--prev" ]]; then
|
||||||
|
{ mpc -q prev; get_cover; }
|
||||||
|
fi
|
||||||
92
eww_desktop/bar/scripts/pop
Executable file
|
|
@ -0,0 +1,92 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
calendar() {
|
||||||
|
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open calendar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close calendar
|
||||||
|
rm "$LOCK_FILE" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
system() {
|
||||||
|
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open system
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE_MEM"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system
|
||||||
|
rm "$LOCK_FILE_MEM" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
music() {
|
||||||
|
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open music_win
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
|
||||||
|
touch "$LOCK_FILE_SONG"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close music_win
|
||||||
|
rm "$LOCK_FILE_SONG" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
audio() {
|
||||||
|
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
|
||||||
|
touch "$LOCK_FILE_AUDIO"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
|
||||||
|
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "calendar" ]; then
|
||||||
|
calendar
|
||||||
|
elif [ "$1" = "system" ]; then
|
||||||
|
system
|
||||||
|
elif [ "$1" = "music" ]; then
|
||||||
|
music
|
||||||
|
elif [ "$1" = "audio" ]; then
|
||||||
|
audio
|
||||||
|
fi
|
||||||
26
eww_desktop/bar/scripts/wifi
Executable file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
status=$(nmcli g | grep -oE "disconnected")
|
||||||
|
essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
|
||||||
|
|
||||||
|
if [ $status ] ; then
|
||||||
|
icon=""
|
||||||
|
text=""
|
||||||
|
col="#575268"
|
||||||
|
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
text="${essid}"
|
||||||
|
col="#a1bdce"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$1" == "--COL" ]]; then
|
||||||
|
echo $col
|
||||||
|
elif [[ "$1" == "--ESSID" ]]; then
|
||||||
|
echo $text
|
||||||
|
elif [[ "$1" == "--ICON" ]]; then
|
||||||
|
echo $icon
|
||||||
|
fi
|
||||||
|
|
||||||
56
eww_desktop/bar/scripts/workspace
Executable file
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/sh
|
||||||
|
workspaces() {
|
||||||
|
|
||||||
|
ws1="1"
|
||||||
|
ws2="2"
|
||||||
|
ws3="3"
|
||||||
|
ws4="4"
|
||||||
|
ws5="5"
|
||||||
|
ws6="6"
|
||||||
|
|
||||||
|
# Unoccupied
|
||||||
|
un="0"
|
||||||
|
|
||||||
|
# check if Occupied
|
||||||
|
o1=$(bspc query -D -d .occupied --names | grep "$ws1" )
|
||||||
|
o2=$(bspc query -D -d .occupied --names | grep "$ws2" )
|
||||||
|
o3=$(bspc query -D -d .occupied --names | grep "$ws3" )
|
||||||
|
o4=$(bspc query -D -d .occupied --names | grep "$ws4" )
|
||||||
|
o5=$(bspc query -D -d .occupied --names | grep "$ws5" )
|
||||||
|
o6=$(bspc query -D -d .occupied --names | grep "$ws6" )
|
||||||
|
|
||||||
|
# check if Focused
|
||||||
|
f1=$(bspc query -D -d focused --names | grep "$ws1" )
|
||||||
|
f2=$(bspc query -D -d focused --names | grep "$ws2" )
|
||||||
|
f3=$(bspc query -D -d focused --names | grep "$ws3" )
|
||||||
|
f4=$(bspc query -D -d focused --names | grep "$ws4" )
|
||||||
|
f5=$(bspc query -D -d focused --names | grep "$ws5" )
|
||||||
|
f6=$(bspc query -D -d focused --names | grep "$ws6" )
|
||||||
|
|
||||||
|
ic_1=""
|
||||||
|
ic_2=""
|
||||||
|
ic_3=""
|
||||||
|
ic_4=""
|
||||||
|
ic_5=""
|
||||||
|
ic_6=""
|
||||||
|
if [ $f1 ]; then
|
||||||
|
ic_1=""
|
||||||
|
elif [ $f2 ]; then
|
||||||
|
ic_2=""
|
||||||
|
elif [ $f3 ]; then
|
||||||
|
ic_3=""
|
||||||
|
elif [ $f4 ]; then
|
||||||
|
ic_4=""
|
||||||
|
elif [ $f5 ]; then
|
||||||
|
ic_5=""
|
||||||
|
elif [ $f6 ]; then
|
||||||
|
ic_6=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"bspc desktop -f $ws1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"bspc desktop -f $ws2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"bspc desktop -f $ws3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"bspc desktop -f $ws4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"bspc desktop -f $ws5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"bspc desktop -f $ws6\" :class \"$un$o6$f6\" \"$ic_6\"))"
|
||||||
|
|
||||||
|
}
|
||||||
|
workspaces
|
||||||
|
bspc subscribe desktop node_transfer | while read -r _ ; do
|
||||||
|
workspaces
|
||||||
|
done
|
||||||
510
eww_desktop/eww.scss
Normal file
|
|
@ -0,0 +1,510 @@
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: feather;
|
||||||
|
font-family: DaddyTimeMono Nerd Font;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** General **/
|
||||||
|
.bar_class {
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.module {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 10px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** tooltip!! **/
|
||||||
|
tooltip.background {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-size: 14;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Widgets **/
|
||||||
|
|
||||||
|
.clock_time_sep {
|
||||||
|
font-size: 20;
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 0px 1px 0px;
|
||||||
|
}
|
||||||
|
.clock_time_class,
|
||||||
|
.clock_minute_class {
|
||||||
|
font-size: 24;
|
||||||
|
}
|
||||||
|
.clock_date_class {
|
||||||
|
font-size: 21;
|
||||||
|
margin: 0px 5px 0px 5px;
|
||||||
|
color: #d7beda;
|
||||||
|
}
|
||||||
|
.clock_minute_class {
|
||||||
|
margin: 0px 5px 0px 2px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
.clock_time_class {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 0px 0px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.membar {
|
||||||
|
color: #e0b089;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module_app_text {
|
||||||
|
font-size: 23;
|
||||||
|
margin: 2px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bright_icon_overlay {
|
||||||
|
font-size: 28;
|
||||||
|
color: #e4c9af;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
margin: 0px 27px 0px 3px;
|
||||||
|
}
|
||||||
|
.volume_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
.module-blu {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
font-size: 23;
|
||||||
|
margin: 0px -3px 4px 8px;
|
||||||
|
color: #e0b089;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mem_padding {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separ {
|
||||||
|
color: #3e424f;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mem_module {
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #22242b;
|
||||||
|
box-shadow: 0 2px 3px 2px #06060b;
|
||||||
|
border-radius: 16px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.works {
|
||||||
|
font-size: 27px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 15px;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
.0,
|
||||||
|
.01,
|
||||||
|
.02,
|
||||||
|
.03,
|
||||||
|
.04,
|
||||||
|
.05,
|
||||||
|
.06,
|
||||||
|
.011,
|
||||||
|
.022,
|
||||||
|
.033,
|
||||||
|
.044,
|
||||||
|
.055,
|
||||||
|
.066 {
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unoccupied */
|
||||||
|
.0 {
|
||||||
|
color: #3e424f;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Occupied */
|
||||||
|
.01,
|
||||||
|
.02,
|
||||||
|
.03,
|
||||||
|
.04,
|
||||||
|
.05,
|
||||||
|
.06 {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Focused */
|
||||||
|
.011,
|
||||||
|
.022,
|
||||||
|
.033,
|
||||||
|
.044,
|
||||||
|
.055,
|
||||||
|
.066 {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 24px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar
|
||||||
|
.cal {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-family: JetBrainsMono Nerd Font;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
.cal-in {
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
|
||||||
|
.cal {
|
||||||
|
&.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
calender {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
calendar:selected {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.header {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.button {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.highlight {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:indeterminate {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
.sys_text_mem_sub {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bbc5d7;
|
||||||
|
margin: 5px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_text_mem {
|
||||||
|
font-size: 21;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 14px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_icon_mem {
|
||||||
|
font-size: 30;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
.sys_win {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_icon_mem,
|
||||||
|
.sys_text_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_mem_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 10px 10px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-box {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.speaker_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/speaker.png");
|
||||||
|
background-position: center;
|
||||||
|
min-height: 40px;
|
||||||
|
min-width: 45px;
|
||||||
|
margin: 10px 10px 5px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 5px 15px 0px 15px;
|
||||||
|
}
|
||||||
|
.bright_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 5px 15px 0px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change_audio_box {
|
||||||
|
margin: 0px 0px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change_audio {
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 50px 0px 50px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.speaker_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 100px;
|
||||||
|
margin: 0px 0px 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/mic.png");
|
||||||
|
background-position: center;
|
||||||
|
min-height: 40px;
|
||||||
|
min-width: 45px;
|
||||||
|
margin: 5px 20px 20px 10px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.mic_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 100px;
|
||||||
|
margin: 6px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
//cockpit stuff
|
||||||
|
|
||||||
|
.cockpit_class {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock {
|
||||||
|
padding: 0px 30px 0px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_box {
|
||||||
|
background-color: #06060b;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 0px 5px 0px 5px;
|
||||||
|
opacity: 0.85;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_shutdown {
|
||||||
|
color: red;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_sleep {
|
||||||
|
color: blue;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_restart {
|
||||||
|
color: green;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_info {
|
||||||
|
margin: -50px 0px 0px 0px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.album_cover {
|
||||||
|
margin: -60px 10px 20px 10px;
|
||||||
|
padding: 0px;
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_settings {
|
||||||
|
color: #d35d6e;
|
||||||
|
font-size: 35px;
|
||||||
|
margin: -30px 5px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-icon {
|
||||||
|
font-size: 80px;
|
||||||
|
margin: 10px 0px 5px 10px;
|
||||||
|
font-family: Iosevka;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-stat {
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: -5px 0px 10px 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.temperature {
|
||||||
|
color: grey;
|
||||||
|
font-size: 48px;
|
||||||
|
font-weight: 900;
|
||||||
|
margin: 0px 0px 0px 20px;
|
||||||
|
}
|
||||||
|
.weather-quote {
|
||||||
|
margin: 20px 10px 1000px 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.weather-quote-head,
|
||||||
|
.weather-quote-tail {
|
||||||
|
color: grey;
|
||||||
|
font-size: 18px;
|
||||||
|
margin: 0px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_left {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 5px -20px -30px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_right {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 5px 0px -30px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_date {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: -30px -20px 0px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_sep {
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 0px -20px -30px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_docs {
|
||||||
|
color: red;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: 10px 0px -10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_pics {
|
||||||
|
color: green;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_gits {
|
||||||
|
color: blue;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: -20px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_sep_bottom {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: -10px 0px 0px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_sep_top {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 0px -10px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
354
eww_desktop/eww.yuck
Normal file
|
|
@ -0,0 +1,354 @@
|
||||||
|
;; date definitions ;;
|
||||||
|
(defpoll clock_time :interval "1m" "date +\%I")
|
||||||
|
(defpoll clock_minute :interval "5s" "date +\%M")
|
||||||
|
(defpoll clock_date :interval "1h" "date '+%d/%m'")
|
||||||
|
|
||||||
|
;; volume definitions ;;
|
||||||
|
(defpoll volume_percent :interval "1s" "pactl get-sink-volume @DEFAULT_SINK@ | awk -F '/' ' { print $2 } ' | tr -d ' %'")
|
||||||
|
(defpoll mic_percent :interval "1s" "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'")
|
||||||
|
|
||||||
|
;; memory definitions ;;
|
||||||
|
(defpoll memory :interval "15s" "scripts/memory")
|
||||||
|
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
|
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
|
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
|
|
||||||
|
;; music definitions ;;
|
||||||
|
(defpoll Song_info :interval "2s" "scripts/music_control")
|
||||||
|
(defpoll Thumbnail :interval "2s" "scripts/music_control2")
|
||||||
|
|
||||||
|
;; calendar definitions ;;
|
||||||
|
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||||
|
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||||
|
|
||||||
|
;; Weather vars
|
||||||
|
(defpoll weather-icon :interval "21m" "cat ~/.cache/weather/weather-icon")
|
||||||
|
(defpoll temperature :interval "21m" "cat ~/.cache/weather/weather-degree")
|
||||||
|
(defpoll weather-hex :interval "21m" "cat ~/.cache/weather/weather-hex")
|
||||||
|
(defpoll weather-stat :interval "21m" "cat ~/.cache/weather/weather-stat")
|
||||||
|
(defpoll weather-stat-side :interval "21m" "~/.config/eww/scripts/weather-trimmer")
|
||||||
|
(defpoll weather-quote :interval "21m" "~/.config/eww/scripts/getwethquote")
|
||||||
|
(defpoll weather-quote2 :interval "21m" "~/.config/eww/scripts/getwethquote2")
|
||||||
|
|
||||||
|
;; simple variables ;;
|
||||||
|
(defvar eww "$HOME/.local/bin/eww -c $HOME/.config/eww")
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
(defvar br_reveal false)
|
||||||
|
(defvar music_reveal false)
|
||||||
|
(defvar wifi_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(defvar current_monitor 0)
|
||||||
|
(deflisten workspace "scripts/workspace")
|
||||||
|
(deflisten currentName "scripts/current_name")
|
||||||
|
|
||||||
|
|
||||||
|
;; widgets
|
||||||
|
(defwidget bluetooth []
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button :class "module-blu" :onclick "hyprctl dispatch exec 'blueman-manager'" :wrap "false" :limit-width 12 "")
|
||||||
|
))
|
||||||
|
|
||||||
|
;; workspaces ;;
|
||||||
|
(defwidget workspaces []
|
||||||
|
(literal :content workspace))
|
||||||
|
|
||||||
|
;; memory ;;
|
||||||
|
(defwidget mem []
|
||||||
|
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||||
|
(button :class "iconmem"
|
||||||
|
:onclick "$HOME/.config/eww/scripts/pop system"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "membar"
|
||||||
|
:thickness 4
|
||||||
|
:tooltip "using ${memory}% ram"
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
(label :class "mem_padding" :text "")
|
||||||
|
))))
|
||||||
|
|
||||||
|
;; seperator ;;
|
||||||
|
(defwidget sep []
|
||||||
|
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "separ" :text "|")))
|
||||||
|
|
||||||
|
;; clock ;;
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox :onhover "${eww} update time_rev=true"
|
||||||
|
:onhoverlost "${eww} update time_rev=false"
|
||||||
|
(button :onclick "scripts/pop calendar"
|
||||||
|
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text clock_time :class "clock_time_class" )
|
||||||
|
(label :text "" :class "clock_time_sep" )
|
||||||
|
(label :text clock_minute :class "clock_minute_class")
|
||||||
|
(revealer :class "clock_date_class"
|
||||||
|
:transition "slideleft"
|
||||||
|
:reveal time_rev
|
||||||
|
:duration "350ms"
|
||||||
|
clock_date
|
||||||
|
)))))
|
||||||
|
|
||||||
|
;; speaker volume ;;
|
||||||
|
(defwidget volume []
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop audio" :class "volume_icon" "")))
|
||||||
|
|
||||||
|
;; audio volume widget ;;
|
||||||
|
(defwidget audio []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet audio_ctl"
|
||||||
|
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "speaker_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value volume_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%"
|
||||||
|
:tooltip "volume on ${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "mic_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "mic" :valign "center" :halign "left" )
|
||||||
|
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value mic_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "mic on ${mic_percent}%"
|
||||||
|
:onchange "pactl set-source-volume @DEFAULT_SOURCE@ {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :class "change_audio_box" :halign "center" :spac`e-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "change_audio" :orientation "v" :halign "left"
|
||||||
|
(button :onclick "scripts/change-audio internal" ""))
|
||||||
|
(box :class "change_audio" :orientation "v" :halign "right"
|
||||||
|
(button :onclick "scripts/change-audio bluetooth" ""))
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defwidget cname []
|
||||||
|
(literal :content currentName))
|
||||||
|
|
||||||
|
;; calendar ;;
|
||||||
|
(defwidget cal []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet calendar"
|
||||||
|
(box :class "cal" :orientation "v"
|
||||||
|
(box :class "cal-in"
|
||||||
|
(calendar :class "cal"
|
||||||
|
:day calendar_day
|
||||||
|
:year calendar_year)))))
|
||||||
|
|
||||||
|
(defwidget system []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet system"
|
||||||
|
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
|
||||||
|
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "sys_mem"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_mem"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
:angle 0.0))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "memory"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_free_mb}mb free"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))))))
|
||||||
|
|
||||||
|
;; cockpit widget ;;
|
||||||
|
(defwidget cockpit []
|
||||||
|
(box :orientation "h"
|
||||||
|
(box :class "cockpit_class"
|
||||||
|
:orientation "h"
|
||||||
|
(box :orientation "v"
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(box
|
||||||
|
(button :class "cockpit_button_shutdown" :onclick "hyprctl dispatch exec 'shutdown now'" "")
|
||||||
|
(button :class "cockpit_button_restart" :onclick "hyprctl dispatch exec reboot" "")
|
||||||
|
(button :class "cockpit_button_sleep" :onclick "hyprctl dispatch exec 'playerctl -a pause & swaylock -c 000000 & systemctl suspend'" ""))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box
|
||||||
|
(button :class "cockpit_button_settings" :onclick "hyprctl dispatch exec 'pavucontrol'" "")
|
||||||
|
(button :class "cockpit_button_settings" :onclick "scripts/change-audio bluetooth" "")))
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(button :class "cockpit_docs" :onclick "hyprctl dispatch exec nautilus $HOME/Documents" "Documents ")
|
||||||
|
(label :text "" :class "cockpit_sep_top" :halign "center")
|
||||||
|
(button :class "cockpit_pics" :onclick "hyprctl dispatch exec nautilus $HOME/Pictures" "Pictures ")
|
||||||
|
(label :text "" :class "cockpit_sep_bottom" :halign "center")
|
||||||
|
(button :class "cockpit_gits" :onclick "hyprctl dispatch exec 'alacritty --working-directory $HOME/gits'" "gits ")))
|
||||||
|
(box :orientation "v"
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(box :class "cockpit_clock"
|
||||||
|
(label :text clock_time :class "cockpit_clock_left" )
|
||||||
|
(label :text "" :class "cockpit_clock_sep" )
|
||||||
|
(label :text clock_minute :class "cockpit_clock_right"))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :class "cockpit_clock"
|
||||||
|
(label :text clock_date :class "cockpit_date")
|
||||||
|
))
|
||||||
|
(box :class "cockpit_box" (weather)))
|
||||||
|
(box :width 300 :height 200 :class "cockpit_box" :orientation "v"
|
||||||
|
(box :class "song_info"
|
||||||
|
(label :wrap true :text "${Song_info}"))
|
||||||
|
(box :class "album_cover" :style 'background-image: url("${Thumbnail}")')
|
||||||
|
)))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; weather ;;
|
||||||
|
(defwidget weather []
|
||||||
|
(box :orientation "v" :space-evenly "false"
|
||||||
|
(box :orientation "h" :space-evenly "false"
|
||||||
|
(box :class "weather-icon" :style "color: ${weather-hex}" {weather-icon})
|
||||||
|
(box :class "temperature" "${temperature}"))
|
||||||
|
(box :orientation "v" :space-evenly "false"
|
||||||
|
(box :class "weather-stat" {weather-stat}))
|
||||||
|
(box :class "weather-quote-head"
|
||||||
|
(label :wrap true :text {weather-quote}))))
|
||||||
|
|
||||||
|
;; left side but displayed right? ;;
|
||||||
|
(defwidget left []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:class "left_modules"
|
||||||
|
(volume)
|
||||||
|
(bluetooth)
|
||||||
|
(sep)
|
||||||
|
(mem)
|
||||||
|
(sep)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
;; right side but displayed left? ;;
|
||||||
|
(defwidget right []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
:class "right_modules"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
;; center widget ;;
|
||||||
|
(defwidget center []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
:class "center_modules"
|
||||||
|
(cname)))
|
||||||
|
|
||||||
|
;; bar as widget;;
|
||||||
|
(defwidget bar_1 []
|
||||||
|
(box :class "bar_class"
|
||||||
|
:orientation "h"
|
||||||
|
(right)
|
||||||
|
(center)
|
||||||
|
(left)
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Drawing Windows ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "20px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
(defwindow audio_ctl
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "120px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "250px"
|
||||||
|
:height "230px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
(defwindow system
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "50px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(system))
|
||||||
|
|
||||||
|
;; draw the bar ;;
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "1px"
|
||||||
|
:width "99%"
|
||||||
|
:height "20px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "bottom"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
;; draw the cockpit monitor 0 ;;
|
||||||
|
(defwindow cockpit_window_0
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "1470px"
|
||||||
|
:y "420px"
|
||||||
|
:width "600px"
|
||||||
|
:height "400px"
|
||||||
|
:anchor "center")
|
||||||
|
:stacking "overlay"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(cockpit))
|
||||||
|
|
||||||
|
|
||||||
|
;; draw the cockpit monitor 1 ;;
|
||||||
|
(defwindow cockpit_window_1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry
|
||||||
|
:width "600px"
|
||||||
|
:height "400px"
|
||||||
|
:anchor "center")
|
||||||
|
:stacking "overlay"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(cockpit))
|
||||||
|
|
||||||
|
|
||||||
|
;; draw the cockpit monitor 2 ;;
|
||||||
|
(defwindow cockpit_window_2
|
||||||
|
:monitor 2
|
||||||
|
:geometry (geometry
|
||||||
|
:width "600px"
|
||||||
|
:height "400px"
|
||||||
|
:anchor "center")
|
||||||
|
:stacking "overlay"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(cockpit))
|
||||||
BIN
eww_desktop/images/mic.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
eww_desktop/images/music.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
eww_desktop/images/profile.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
eww_desktop/images/speaker.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
27
eww_desktop/launch_bar
Executable file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Files and cmd
|
||||||
|
FILE="$HOME/.cache/eww_launch.xyz"
|
||||||
|
EWW="$HOME/.local/bin/eww -c $HOME/.config/eww"
|
||||||
|
|
||||||
|
## Run eww daemon if not running already
|
||||||
|
if [[ ! `pidof eww` ]]; then
|
||||||
|
${EWW} daemon
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Open widgets
|
||||||
|
run_eww() {
|
||||||
|
${EWW} open-many \
|
||||||
|
bar
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
## Launch or close widgets accordingly
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
touch "$FILE"
|
||||||
|
run_eww && bspc config -m LVDS-1 top_padding 49
|
||||||
|
else
|
||||||
|
${EWW} close-all && killall eww
|
||||||
|
rm "$FILE"
|
||||||
|
fi
|
||||||
31
eww_desktop/scripts/audio_devices
Executable file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
CLIENTS=$(pactl list sink-inputs | grep "application.process.binary" | awk -F '= ' ' { print $2 } ' | tr -d '"')
|
||||||
|
|
||||||
|
readarray -t lines <<<"$CLIENTS"
|
||||||
|
|
||||||
|
printf "%s\n" "${lines[@]}"
|
||||||
|
echo ${lines[2]}
|
||||||
|
|
||||||
|
|
||||||
|
#echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"hyprctl dispatch workspace 1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"hyprctl dispatch workspace 2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"hyprctl dispatch workspace 3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"hyprctl dispatch workspace 4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"hyprctl dispatch workspace 5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"hyprctl dispatch workspace 6\" :class \"$un$o6$f6\" \"$ic_6\") (button :onclick \"hyprctl dispatch workspace 7\" :class \"$un$o7$f7\" \"$ic_7\") (button :onclick \"hyprctl dispatch workspace 8\" :class \"$un$o8$f8\" \"$ic_8\"))"
|
||||||
|
|
||||||
|
# (eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
# :onhoverlost "scripts/pop hoverGet audio_ctl"
|
||||||
|
# (box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
|
||||||
|
# (box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
# (box :class "speaker_icon" :orientation "v")
|
||||||
|
# (box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
# (label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
# (box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
# (scale :value volume_percent
|
||||||
|
# :space-evenly "false"
|
||||||
|
# :orientation "h"
|
||||||
|
# :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%"
|
||||||
|
# :tooltip "volume on ${volume_percent}%"
|
||||||
|
# :max 100
|
||||||
|
# :min 0))))
|
||||||
|
|
||||||
|
# (label :text "" :class "audio_sep" :halign "center")
|
||||||
|
|
||||||
|
# ))))
|
||||||
77
eww_desktop/scripts/battery
Executable file
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
bat=/sys/class/power_supply/BAT0/
|
||||||
|
per="$(cat "$bat/capacity")"
|
||||||
|
char="$(cat "$bat/status")"
|
||||||
|
|
||||||
|
icon() {
|
||||||
|
|
||||||
|
#[ $(cat "$bat/status") = Charging ] && echo "" && exit
|
||||||
|
|
||||||
|
if [ "$char" == "Charging" ]; then
|
||||||
|
if [ "$per" -gt "90" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "80" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "70" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "60" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "50" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "40" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "30" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "20" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "10" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "0" ]; then
|
||||||
|
icon=""
|
||||||
|
else
|
||||||
|
echo && exit
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$per" -gt "90" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "80" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "70" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "60" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "50" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "40" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "30" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "20" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "10" ]; then
|
||||||
|
icon=""
|
||||||
|
notify-send -u critical "Battery Low" "Connect Charger"
|
||||||
|
elif [ "$per" -gt "0" ]; then
|
||||||
|
icon=""
|
||||||
|
notify-send -u critical "Battery Low" "Connect Charger"
|
||||||
|
else
|
||||||
|
echo && exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
percent() {
|
||||||
|
echo $per
|
||||||
|
}
|
||||||
|
|
||||||
|
stat() {
|
||||||
|
echo $char
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$1" = "icon" ] && icon && exit
|
||||||
|
[ "$1" = "percent" ] && percent && exit
|
||||||
|
[ "$1" = 'stat' ] && stat && exit
|
||||||
|
exit
|
||||||
|
|
||||||
37
eww_desktop/scripts/change-audio
Executable file
|
|
@ -0,0 +1,37 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
internal() {
|
||||||
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }')
|
||||||
|
if [ "$SPEAKER" != "" ]; then
|
||||||
|
pactl set-default-sink "$SPEAKER"
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
DEVICE=$( echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
||||||
|
notify-send "changed audio to "$DEVICE" "
|
||||||
|
else
|
||||||
|
notify-send "failed, not available!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
bluetooth() {
|
||||||
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }')
|
||||||
|
if [ "$SPEAKER" != "" ]; then
|
||||||
|
pactl set-default-sink "$SPEAKER"
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
DEVICE=$(echo "$SPEAKER" | awk -F '.' ' { print $4 } ')
|
||||||
|
notify-send "changed audio to "$DEVICE" "
|
||||||
|
else
|
||||||
|
notify-send "failed, not available!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" == "internal" ]; then
|
||||||
|
internal
|
||||||
|
elif [ "$1" == "bluetooth" ]; then
|
||||||
|
bluetooth
|
||||||
|
else
|
||||||
|
SPEAKER=$(pactl info | grep "Default Sink" | awk -F ': ' ' { print $2 } ')
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
12
eww_desktop/scripts/change-brightness
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
set_brightness() {
|
||||||
|
brightnessctl set "$1"
|
||||||
|
CURRENT=$(brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}')
|
||||||
|
dunstify -a "changeBrightness" -r 3 -u low -i brightness-high -h int:value:"$CURRENT" "Brightness: ${CURRENT}%"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" == "brightness" ]; then
|
||||||
|
set_brightness "$2"
|
||||||
|
fi
|
||||||
|
|
||||||
20
eww_desktop/scripts/change-volume
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
set_volume_sink() {
|
||||||
|
pactl set-sink-volume @DEFAULT_SINK@ "$1"
|
||||||
|
CURRENT=$(pactl get-sink-volume @DEFAULT_SINK@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
||||||
|
dunstify -a "changeVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Output Volume: ${CURRENT}%"
|
||||||
|
}
|
||||||
|
|
||||||
|
set_volume_source() {
|
||||||
|
pactl set-source-volume @DEFAULT_SOURCE@ "$1"
|
||||||
|
CURRENT=$(pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %')
|
||||||
|
dunstify -a "changeMicVolume" -r 2 -u low -i audio-volume-high -h int:value:"$CURRENT" "Input Volume: ${CURRENT}%"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" == "sink" ]; then
|
||||||
|
set_volume_sink "$2"
|
||||||
|
elif [ "$1" == "source" ]; then
|
||||||
|
set_volume_source "$2"
|
||||||
|
fi
|
||||||
11
eww_desktop/scripts/cockpit_toggle
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
ISOPEN=$(eww windows | grep "*cockpit" | tr -d '*')
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$ISOPEN" = "" ]; then
|
||||||
|
MONITOR=$(hyprctl monitors | grep -B 7 "focused: yes" | grep "ID" | awk -F '(' ' { print $2 } ' | tr -d 'ID ):')
|
||||||
|
eww open cockpit_window_"$MONITOR"
|
||||||
|
else
|
||||||
|
eww close "$ISOPEN"
|
||||||
|
fi
|
||||||
9
eww_desktop/scripts/current_name
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
currentName() {
|
||||||
|
win=$(hyprctl activewindow | grep class | awk -F ':' '{print $2}' | tr -d ' ')
|
||||||
|
echo "(box :class \"module_app_text\" :space-evenly \"false\" :orientation \"h\" :spacing \"3\" (label :text \"$win\"))"
|
||||||
|
}
|
||||||
|
currentName
|
||||||
|
tail -f /tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | grep -E --line-buffered "focus to surface" | while read -r; do
|
||||||
|
currentName
|
||||||
|
done
|
||||||
5
eww_desktop/scripts/firefox_control.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
NUM=$(pactl list clients short | grep "firefox" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
||||||
|
CLIENT=$(pactl list sink-inputs short | grep "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||||
|
pactl set-sink-input-volume "$CLIENT" "$1"
|
||||||
2
eww_desktop/scripts/getwethquote
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo -e $(cat $HOME/.cache/weather/weather-quote) | head -n1
|
||||||
2
eww_desktop/scripts/getwethquote2
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo -e $(cat $HOME/.cache/weather/weather-quote) | tail -n1
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
8°C
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
#adadff
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
It's cloudy, sort of gloomy \nYou'd better get a book to read...
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Overcast Clouds
|
||||||
15
eww_desktop/scripts/mem-ad
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
total="$(free -m | grep Mem: | awk '{ print $2 }')"
|
||||||
|
used="$(free -m | grep Mem: | awk '{ print $3 }')"
|
||||||
|
|
||||||
|
free=$(expr $total - $used)
|
||||||
|
|
||||||
|
if [ "$1" = "total" ]; then
|
||||||
|
echo $total
|
||||||
|
elif [ "$1" = "used" ]; then
|
||||||
|
echo $used
|
||||||
|
elif [ "$1" = "free" ]; then
|
||||||
|
echo $free
|
||||||
|
fi
|
||||||
3
eww_desktop/scripts/memory
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||||
2
eww_desktop/scripts/music_control
Executable file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo $(playerctl metadata -p ncspot,%any --format "{{ artist }}\n{{ album }}\n{{ title }}")
|
||||||
3
eww_desktop/scripts/music_control2
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/bash
|
||||||
|
echo $(playerctl -p ncspot,%any metadata mpris:artUrl)
|
||||||
|
|
||||||
98
eww_desktop/scripts/music_info
Executable file
|
|
@ -0,0 +1,98 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# scripts by adi1090x
|
||||||
|
|
||||||
|
## Get data
|
||||||
|
STATUS="$(mpc status)"
|
||||||
|
COVER="/tmp/.music_cover.png"
|
||||||
|
MUSIC_DIR="$HOME/Music"
|
||||||
|
|
||||||
|
## Get status
|
||||||
|
get_status() {
|
||||||
|
if [[ $STATUS == *"[playing]"* ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "奈"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get song
|
||||||
|
get_song() {
|
||||||
|
song=`mpc -f %title% current`
|
||||||
|
if [[ -z "$song" ]]; then
|
||||||
|
echo "Offline"
|
||||||
|
else
|
||||||
|
echo "$song"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get artist
|
||||||
|
get_artist() {
|
||||||
|
artist=`mpc -f %artist% current`
|
||||||
|
if [[ -z "$artist" ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "$artist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get time
|
||||||
|
get_time() {
|
||||||
|
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
|
||||||
|
if [[ -z "$time" ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "$time"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ctime() {
|
||||||
|
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
|
||||||
|
if [[ -z "$ctime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ctime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ttime() {
|
||||||
|
ttime=`mpc -f %time% current`
|
||||||
|
if [[ -z "$ttime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ttime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get cover
|
||||||
|
get_cover() {
|
||||||
|
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
|
||||||
|
# Check if the file has a embbeded album art
|
||||||
|
if [ "$STATUS" -eq 0 ];then
|
||||||
|
echo "$COVER"
|
||||||
|
else
|
||||||
|
echo "images/music.png"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--song" ]]; then
|
||||||
|
get_song
|
||||||
|
elif [[ "$1" == "--artist" ]]; then
|
||||||
|
get_artist
|
||||||
|
elif [[ "$1" == "--status" ]]; then
|
||||||
|
get_status
|
||||||
|
elif [[ "$1" == "--time" ]]; then
|
||||||
|
get_time
|
||||||
|
elif [[ "$1" == "--ctime" ]]; then
|
||||||
|
get_ctime
|
||||||
|
elif [[ "$1" == "--ttime" ]]; then
|
||||||
|
get_ttime
|
||||||
|
elif [[ "$1" == "--cover" ]]; then
|
||||||
|
get_cover
|
||||||
|
elif [[ "$1" == "--toggle" ]]; then
|
||||||
|
mpc -q toggle
|
||||||
|
elif [[ "$1" == "--next" ]]; then
|
||||||
|
{ mpc -q next; get_cover; }
|
||||||
|
elif [[ "$1" == "--prev" ]]; then
|
||||||
|
{ mpc -q prev; get_cover; }
|
||||||
|
fi
|
||||||
5
eww_desktop/scripts/ncspot_control.sh
Executable file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
NUM=$(pactl list clients short | grep "ncspot" | awk -F 'PipeWire' ' { print $1 } ' | tr -d ' \t\n')
|
||||||
|
CLIENT=$(pactl list sink-inputs short | grep "$NUM" | awk -F ' ' ' { print $1 }' | tr -d ' \t\n')
|
||||||
|
pactl set-sink-input-volume "$CLIENT" "$1"
|
||||||
134
eww_desktop/scripts/pop
Executable file
|
|
@ -0,0 +1,134 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
calendar() {
|
||||||
|
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww open calendar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close system music_win audio_ctl brightness
|
||||||
|
touch "$LOCK_FILE"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close calendar
|
||||||
|
rm "$LOCK_FILE" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
system() {
|
||||||
|
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww open system
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open system
|
||||||
|
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close calendar music_win audio_ctl brightness
|
||||||
|
touch "$LOCK_FILE_MEM"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close system
|
||||||
|
rm "$LOCK_FILE_MEM" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
music() {
|
||||||
|
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww open music_win
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close system calendar brightness
|
||||||
|
touch "$LOCK_FILE_SONG"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close music_win
|
||||||
|
rm "$LOCK_FILE_SONG" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
audio() {
|
||||||
|
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww open audio_ctl
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close system calendar music brightness
|
||||||
|
touch "$LOCK_FILE_AUDIO"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close audio_ctl
|
||||||
|
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
brightness() {
|
||||||
|
LOCK_FILE_AUDIO="$HOME/.cache/eww-brightness.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww open brightness_window
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close system calendar music audio_ctl
|
||||||
|
touch "$LOCK_FILE_AUDIO"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close brightness_window
|
||||||
|
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
hoverGet() {
|
||||||
|
NAME="$1"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww"
|
||||||
|
if [[ -f "$STORE" ]]; then
|
||||||
|
rm "$STORE"
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww close "$NAME"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
hoverCreate() {
|
||||||
|
if [[ ! -f "$STORE" ]]; then
|
||||||
|
touch "$STORE"
|
||||||
|
else
|
||||||
|
echo "failure!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
STORE=true
|
||||||
|
if [ "$1" = "calendar" ]; then
|
||||||
|
calendar
|
||||||
|
elif [ "$1" = "system" ]; then
|
||||||
|
system
|
||||||
|
#elif [ "$1" = "music" ]; then
|
||||||
|
#music
|
||||||
|
elif [ "$1" = "audio" ]; then
|
||||||
|
audio
|
||||||
|
elif [ "$1" = "brightness" ]; then
|
||||||
|
brightness
|
||||||
|
elif [ "$1" = "hoverGet" ]; then
|
||||||
|
hoverGet "$2"
|
||||||
|
elif [ "$1" = "hoverCreate" ]; then
|
||||||
|
hoverCreate
|
||||||
|
fi
|
||||||
125
eww_desktop/scripts/weather
Executable file
|
|
@ -0,0 +1,125 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
tmp_weather="$HOME/.cache/weather"
|
||||||
|
tmp_weather_stat=$tmp_weather/weather-stat
|
||||||
|
tmp_weather_degree=$tmp_weather/weather-degree
|
||||||
|
tmp_weather_quote=$tmp_weather/weather-quote
|
||||||
|
tmp_weather_hex=$tmp_weather/weather-hex
|
||||||
|
tmp_weather_icon=$tmp_weather/weather-icon
|
||||||
|
|
||||||
|
if [ ! -d $tmp_weather ]; then
|
||||||
|
mkdir -p $tmp_weather
|
||||||
|
fi
|
||||||
|
#notify-send -u critical "weather ping" "pangping"
|
||||||
|
# Put in your api and stuff link here
|
||||||
|
# If you dunno, head to openweathermap.org, and make and account
|
||||||
|
#(completely free I swear, and then get your API Key and your City ID)
|
||||||
|
# I wish I was smart enough to do it like Elena, but this is the top I could do lol
|
||||||
|
KEY=$(cat $HOME/.ssh/weather-key)
|
||||||
|
ID=$(cat $HOME/.ssh/location)
|
||||||
|
UNIT="{metric}" #Options are 'metric' and 'imperial'
|
||||||
|
weather=$(curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID="$KEY"&q="$ID"&units="$UNIT"")
|
||||||
|
#echo $weather
|
||||||
|
if [ ! -z "$weather" ]; then
|
||||||
|
weather_temp=$(echo "$weather" | jq ".main.temp" | cut -d "." -f 1)
|
||||||
|
weather_icon_code=$(echo "$weather" | jq -r ".weather[].icon" | head -1)
|
||||||
|
weather_description=$(echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g")
|
||||||
|
|
||||||
|
#Big long if statement of doom
|
||||||
|
if [ "$weather_icon_code" == "50d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
|
||||||
|
weather_hex="#84afdb" #a7b8b2
|
||||||
|
elif [ "$weather_icon_code" == "50n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
|
||||||
|
weather_hex="#84afdb"
|
||||||
|
elif [ "$weather_icon_code" == "01d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..."
|
||||||
|
weather_hex="#ffd86b"
|
||||||
|
elif [ "$weather_icon_code" == "01n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..."
|
||||||
|
weather_hex="#fcdcf6"
|
||||||
|
elif [ "$weather_icon_code" == "02d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "02n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "03d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "03n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "04d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "04n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
|
||||||
|
weather_hex="#adadff"
|
||||||
|
elif [ "$weather_icon_code" == "09d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
|
||||||
|
weather_hex="#6b95ff"
|
||||||
|
elif [ "$weather_icon_code" == "09n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
|
||||||
|
weather_hex="#6b95ff"
|
||||||
|
elif [ "$weather_icon_code" == "10d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
|
||||||
|
weather_hex="#6b95ff"
|
||||||
|
elif [ "$weather_icon_code" == "10n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
|
||||||
|
weather_hex="#6b95ff"
|
||||||
|
elif [ "$weather_icon_code" == "11d" ]; then
|
||||||
|
weather_icon=""
|
||||||
|
weather_quote="There's storm for forecast today \nMake sure you don't get blown away..."
|
||||||
|
weather_hex="#ffeb57"
|
||||||
|
elif [ "$weather_icon_code" == "11n" ]; then
|
||||||
|
weather_icon=""
|
||||||
|
weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..."
|
||||||
|
weather_hex="#ffeb57"
|
||||||
|
elif [ "$weather_icon_code" == "13d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!"
|
||||||
|
weather_hex="#e3e6fc"
|
||||||
|
elif [ "$weather_icon_code" == "13n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..."
|
||||||
|
weather_hex="#e3e6fc"
|
||||||
|
elif [ "$weather_icon_code" == "40d" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
|
||||||
|
weather_hex="#84afdb"
|
||||||
|
elif [ "$weather_icon_code" == "40n" ]; then
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
|
||||||
|
weather_hex="#84afdb"
|
||||||
|
else
|
||||||
|
weather_icon=" "
|
||||||
|
weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!"
|
||||||
|
weather_hex="#adadff"
|
||||||
|
fi
|
||||||
|
echo "$weather_icon" > $tmp_weather_icon
|
||||||
|
echo "$weather_description" > $tmp_weather_stat
|
||||||
|
echo "$weather_temp""°C" > $tmp_weather_degree
|
||||||
|
echo "$weather_quote" > $tmp_weather_quote
|
||||||
|
echo "$weather_hex" > $tmp_weather_hex
|
||||||
|
else
|
||||||
|
echo "Weather Unavailable" > $tmp_weather_stat
|
||||||
|
echo " " > $tmp_weather_icon
|
||||||
|
echo "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > $tmp_weather_quote
|
||||||
|
echo "-" > $tmp_weather_degree
|
||||||
|
echo "#adadff" > $tmp_weather_hex
|
||||||
|
fi
|
||||||
9
eww_desktop/scripts/weather-trimmer
Executable file
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
weather=$(cat $HOME/.cache/weather/weather-stat)
|
||||||
|
weather_count=$(cat $HOME/.cache/weather/weather-stat | wc -c)
|
||||||
|
|
||||||
|
if [ "$weather_count" -lt 10 ]; then
|
||||||
|
echo $weather;
|
||||||
|
else
|
||||||
|
echo $(cat $HOME/.cache/weather/weather-stat | cut -c1-6)...
|
||||||
|
fi
|
||||||
26
eww_desktop/scripts/wifi
Executable file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
status=$(nmcli g | grep -oE "disconnected")
|
||||||
|
essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
|
||||||
|
|
||||||
|
if [ $status ] ; then
|
||||||
|
icon=""
|
||||||
|
text=""
|
||||||
|
col="#575268"
|
||||||
|
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
text="${essid}"
|
||||||
|
col="#a1bdce"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$1" == "--COL" ]]; then
|
||||||
|
echo $col
|
||||||
|
elif [[ "$1" == "--ESSID" ]]; then
|
||||||
|
echo $text
|
||||||
|
elif [[ "$1" == "--ICON" ]]; then
|
||||||
|
echo $icon
|
||||||
|
fi
|
||||||
|
|
||||||
99
eww_desktop/scripts/workspace
Executable file
|
|
@ -0,0 +1,99 @@
|
||||||
|
#!/bin/bash
|
||||||
|
workspaces() {
|
||||||
|
|
||||||
|
ws1="ID 1"
|
||||||
|
ws2="ID 2"
|
||||||
|
ws3="ID 3"
|
||||||
|
ws4="ID 4"
|
||||||
|
ws5="ID 5"
|
||||||
|
ws6="ID 6"
|
||||||
|
ws7="ID 7"
|
||||||
|
ws8="ID 8"
|
||||||
|
|
||||||
|
# check if Occupied
|
||||||
|
o1=$(hyprctl workspaces | grep "$ws1" )
|
||||||
|
o2=$(hyprctl workspaces | grep "$ws2" )
|
||||||
|
o3=$(hyprctl workspaces | grep "$ws3" )
|
||||||
|
o4=$(hyprctl workspaces | grep "$ws4" )
|
||||||
|
o5=$(hyprctl workspaces | grep "$ws5" )
|
||||||
|
o6=$(hyprctl workspaces | grep "$ws6" )
|
||||||
|
o7=$(hyprctl workspaces | grep "$ws7" )
|
||||||
|
o8=$(hyprctl workspaces | grep "$ws8" )
|
||||||
|
|
||||||
|
# check if Focused
|
||||||
|
f1=$(hyprctl monitors | grep "workspace: 1" -A 4 | grep "focused: yes" )
|
||||||
|
f2=$(hyprctl monitors | grep "workspace: 2" -A 4 | grep "focused: yes" )
|
||||||
|
f3=$(hyprctl monitors | grep "workspace: 3" -A 4 | grep "focused: yes" )
|
||||||
|
f4=$(hyprctl monitors | grep "workspace: 4" -A 4 | grep "focused: yes" )
|
||||||
|
f5=$(hyprctl monitors | grep "workspace: 5" -A 4 | grep "focused: yes" )
|
||||||
|
f6=$(hyprctl monitors | grep "workspace: 6" -A 4 | grep "focused: yes" )
|
||||||
|
f7=$(hyprctl monitors | grep "workspace: 7" -A 4 | grep "focused: yes" )
|
||||||
|
f8=$(hyprctl monitors | grep "workspace: 8" -A 4 | grep "focused: yes" )
|
||||||
|
|
||||||
|
if [ "$o1" != "" ]; then
|
||||||
|
ic_1="①"
|
||||||
|
else
|
||||||
|
ic_1=""
|
||||||
|
fi
|
||||||
|
if [ "$o2" != "" ]; then
|
||||||
|
ic_2="②"
|
||||||
|
else
|
||||||
|
ic_2=""
|
||||||
|
fi
|
||||||
|
if [ "$o3" != "" ]; then
|
||||||
|
ic_3="③"
|
||||||
|
else
|
||||||
|
ic_3=""
|
||||||
|
fi
|
||||||
|
if [ "$o4" != "" ]; then
|
||||||
|
ic_4="④"
|
||||||
|
else
|
||||||
|
ic_4=""
|
||||||
|
fi
|
||||||
|
if [ "$o5" != "" ]; then
|
||||||
|
ic_5="⑤"
|
||||||
|
else
|
||||||
|
ic_5=""
|
||||||
|
fi
|
||||||
|
if [ "$o6" != "" ]; then
|
||||||
|
ic_6="⑥"
|
||||||
|
else
|
||||||
|
ic_6=""
|
||||||
|
fi
|
||||||
|
if [ "$o7" != "" ]; then
|
||||||
|
ic_7="⑦"
|
||||||
|
else
|
||||||
|
ic_7=""
|
||||||
|
fi
|
||||||
|
if [ "$o8" != "" ]; then
|
||||||
|
ic_8="⑧"
|
||||||
|
else
|
||||||
|
ic_8=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$f1" != "" ]; then
|
||||||
|
ic_1="➊"
|
||||||
|
elif [ "$f2" != "" ]; then
|
||||||
|
ic_2="➋"
|
||||||
|
elif [ "$f3" != "" ]; then
|
||||||
|
ic_3="➌"
|
||||||
|
elif [ "$f4" != "" ]; then
|
||||||
|
ic_4="➍"
|
||||||
|
elif [ "$f5" != "" ]; then
|
||||||
|
ic_5="➎"
|
||||||
|
elif [ "$f6" != "" ]; then
|
||||||
|
ic_6="➏"
|
||||||
|
elif [ "$f7" != "" ]; then
|
||||||
|
ic_7="➐"
|
||||||
|
elif [ "$f8" != "" ]; then
|
||||||
|
ic_8="➑"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#ic_1=$(hyprctl workspaces)
|
||||||
|
#ic_2="t"
|
||||||
|
echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"hyprctl dispatch workspace 1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"hyprctl dispatch workspace 2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"hyprctl dispatch workspace 3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"hyprctl dispatch workspace 4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"hyprctl dispatch workspace 5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"hyprctl dispatch workspace 6\" :class \"$un$o6$f6\" \"$ic_6\") (button :onclick \"hyprctl dispatch workspace 7\" :class \"$un$o7$f7\" \"$ic_7\") (button :onclick \"hyprctl dispatch workspace 8\" :class \"$un$o8$f8\" \"$ic_8\"))"
|
||||||
|
}
|
||||||
|
workspaces
|
||||||
|
tail -f /tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/hyprland.log | grep -E --line-buffered "Changed to workspace|focus to surface" | while read -r; do
|
||||||
|
workspaces
|
||||||
|
done
|
||||||
447
eww_laptop/bar/eww.scss
Normal file
|
|
@ -0,0 +1,447 @@
|
||||||
|
/** EWW.SCSS
|
||||||
|
Created by saimoom **/
|
||||||
|
*{
|
||||||
|
all: unset;
|
||||||
|
font-family: feather;
|
||||||
|
font-family: DaddyTimeMono Nerd Font;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** General **/
|
||||||
|
.bar_class {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.module {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 10px 16px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** tooltip!! **/
|
||||||
|
tooltip.background {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-size: 18;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Widgets **/
|
||||||
|
|
||||||
|
.clock_time_sep {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 4px 1px 4px;
|
||||||
|
}
|
||||||
|
.clock_time_class, .clock_minute_class {
|
||||||
|
font-size: 23;
|
||||||
|
}
|
||||||
|
.clock_date_class {
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 20px 0px -1px;
|
||||||
|
color: #d7beda;
|
||||||
|
}
|
||||||
|
.clock_minute_class {
|
||||||
|
margin: 0px 20px 0px 3px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock_time_class {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.membar {
|
||||||
|
color: #e0b089;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.batbar {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.brightbar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #e4c9af 30%, #f2cdcd 50%, #e0b089 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.volbar trough highlight {
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.volume_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.module_essid {
|
||||||
|
font-size: 18;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
.module-wif {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 0px 10px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
color: #e0b089;
|
||||||
|
}
|
||||||
|
.iconbat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
.iconbat, .iconmem {
|
||||||
|
font-size: 15;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
.bright_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #e4c9af;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.separ {
|
||||||
|
color: #3e424f;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
margin: 0px 8px 0px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mem_module {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 3px;
|
||||||
|
}
|
||||||
|
.bat_module {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #22242b;
|
||||||
|
box-shadow: 0 2px 3px 2px #06060b;
|
||||||
|
border-radius: 16px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.works {
|
||||||
|
font-size: 27px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 5px 0px 0px 20px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
|
||||||
|
.0 , .01, .02, .03, .04, .05, .06,
|
||||||
|
.011, .022, .033, .044, .055, .066{
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unoccupied */
|
||||||
|
.0 {
|
||||||
|
color: #3e424f;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Occupied */
|
||||||
|
.01, .02, .03, .04, .05, .06 {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Focused */
|
||||||
|
.011, .022, .033, .044, .055, .066 {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.song_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 24px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 18px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin : 3px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 28px;
|
||||||
|
margin : 3px 0px 0px 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.song_btn_prev, .song_btn_next {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-size : 24px;
|
||||||
|
margin : 3px 0px 0px 5px;
|
||||||
|
|
||||||
|
}
|
||||||
|
// Calendar
|
||||||
|
.cal {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-family: JetBrainsMono Nerd Font;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
.cal-in {
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
|
||||||
|
.cal {
|
||||||
|
&.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
calender {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
calendar:selected {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.header {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.button {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.highlight {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:indeterminate {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.sys_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
.sys_text_bat_sub, .sys_text_mem_sub {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bbc5d7;
|
||||||
|
margin: 5px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_text_bat, .sys_text_mem {
|
||||||
|
font-size: 21;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 14px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat, .sys_icon_mem {
|
||||||
|
font-size: 30;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
.sys_win {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
.sys_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat, .sys_text_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
.sys_icon_mem, .sys_text_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
}
|
||||||
|
.sys_bat_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 15px 10px 10px 20px;
|
||||||
|
}
|
||||||
|
.sys_mem_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 10px 10px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.music_pop {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.music_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 100px;
|
||||||
|
box-shadow: 5px 5px 5px 5px #06060b;
|
||||||
|
min-width: 170px;
|
||||||
|
margin: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 20px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin : 20px 0px 0px -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_artist {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 16px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin : 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_prev, .music_btn_play, .music_btn_next {
|
||||||
|
font-family: Iosevka Nerd Font;
|
||||||
|
}
|
||||||
|
.music_btn_prev {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 32px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 48px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_next {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size : 32px;
|
||||||
|
font-weight : normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.music_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 190px;
|
||||||
|
margin : -10px 10px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-box {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.speaker_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url('images/speaker.png');
|
||||||
|
background-position: center;
|
||||||
|
min-height: 70px;
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 10px 20px 5px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 26px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin: 20px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.speaker_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 120px;
|
||||||
|
margin : 0px 0px 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.mic_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url('images/mic.png');
|
||||||
|
background-position: center;
|
||||||
|
min-height: 70px;
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 5px 20px 20px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size : 26px;
|
||||||
|
font-weight : bold;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(to right, #afcee0 30%, #a1bdce 50%, #77a5bf 100% *50);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.mic_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 120px;
|
||||||
|
margin : 0px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin : 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
352
eww_laptop/bar/eww.yuck
Normal file
|
|
@ -0,0 +1,352 @@
|
||||||
|
;; Variables
|
||||||
|
(defpoll clock_time :interval "5m" "date +\%I")
|
||||||
|
(defpoll clock_minute :interval "5s" "date +\%M")
|
||||||
|
(defpoll clock_date :interval "10h" "date '+%d/%m'")
|
||||||
|
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||||
|
(defpoll battery :interval "15s" "./scripts/battery --bat")
|
||||||
|
(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
|
||||||
|
(defpoll memory :interval "15s" "scripts/memory")
|
||||||
|
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
|
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
|
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
(defvar br_reveal false)
|
||||||
|
(defvar music_reveal false)
|
||||||
|
(defvar wifi_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(deflisten workspace "scripts/workspace")
|
||||||
|
|
||||||
|
(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
|
||||||
|
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
|
||||||
|
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll song :interval "2s" "~/.config/eww/bar/scripts/music_info --song")
|
||||||
|
(defpoll song_artist :interval "2s" "~/.config/eww/bar/scripts/music_info --artist")
|
||||||
|
(defpoll current_status :interval "1s" "~/.config/eww/bar/scripts/music_info --time")
|
||||||
|
(defpoll song_status :interval "2s" "~/.config/eww/bar/scripts/music_info --status")
|
||||||
|
(defpoll cover_art :interval "2s" "~/.config/eww/bar/scripts/music_info --cover")
|
||||||
|
|
||||||
|
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||||
|
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||||
|
|
||||||
|
;; widgets
|
||||||
|
|
||||||
|
(defwidget wifi []
|
||||||
|
(eventbox :onhover "${eww} update wifi_rev=true"
|
||||||
|
:onhoverlost "${eww} update wifi_rev=false"
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button :class "module-wif" :onclick "networkmanager_dmenu" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal wifi_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(label :class "module_essid"
|
||||||
|
:text ESSID_WLAN
|
||||||
|
:orientation "h"
|
||||||
|
)))))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget workspaces []
|
||||||
|
(literal :content workspace))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget bat []
|
||||||
|
(box :class "bat_module" :vexpand "false" :hexpand "false"
|
||||||
|
(circular-progress :value battery
|
||||||
|
:class "batbar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconbat"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "battery on ${battery}%"
|
||||||
|
:show_truncated false
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:wrap false
|
||||||
|
""))))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget mem []
|
||||||
|
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "membar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconmem"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "using ${memory}% ram"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
""))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget sep []
|
||||||
|
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "separ" :text "|")))
|
||||||
|
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox :onhover "${eww} update time_rev=true"
|
||||||
|
:onhoverlost "${eww} update time_rev=false"
|
||||||
|
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text clock_time :class "clock_time_class" )
|
||||||
|
(label :text "" :class "clock_time_sep" )
|
||||||
|
(label :text clock_minute :class "clock_minute_class")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal time_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(button :class "clock_date_class"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop calendar" clock_date
|
||||||
|
)
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox :onhover "${eww} update vol_reveal=true"
|
||||||
|
:onhoverlost "${eww} update vol_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop audio" :class "volume_icon" "")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal vol_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "volbar"
|
||||||
|
:value volume_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "amixer -D pulse sset Master {}%" )))))
|
||||||
|
|
||||||
|
(defwidget bright []
|
||||||
|
(eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text "" :class "bright_icon" :tooltip "brightness")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal br_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "brightbar"
|
||||||
|
:value brightness_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${brightness_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "brightnessctl set {}%" )))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defwidget music []
|
||||||
|
(eventbox :onhover "${eww} update music_reveal=true"
|
||||||
|
:onhoverlost "${eww} update music_reveal=false"
|
||||||
|
(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal music_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(box :vexpand "false" :hexpand "false" :oreintation "h"
|
||||||
|
(button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget left []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:class "left_modules"
|
||||||
|
(bright)
|
||||||
|
(volume)
|
||||||
|
(wifi)
|
||||||
|
(sep)
|
||||||
|
(bat)
|
||||||
|
(mem)
|
||||||
|
(sep)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget right []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
:class "right_modules"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
:class "center_modules"
|
||||||
|
(music)))
|
||||||
|
|
||||||
|
(defwidget bar_1 []
|
||||||
|
(box :class "bar_class"
|
||||||
|
:orientation "h"
|
||||||
|
(right)
|
||||||
|
(center)
|
||||||
|
(left)
|
||||||
|
))
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "9px"
|
||||||
|
:width "98%"
|
||||||
|
:height "30px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "fg"
|
||||||
|
:wm-ignore true
|
||||||
|
:windowtype "dock"
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
(defwidget system []
|
||||||
|
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
|
||||||
|
(box :class "sys_bat_box" :orientation "h" :space-evenly "false"
|
||||||
|
(circular-progress :value battery
|
||||||
|
:class "sys_bat"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_bat"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "battery"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery}%"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery_status}"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))
|
||||||
|
(label :text "" :class "sys_sep" :halign "center")
|
||||||
|
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "sys_mem"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_mem"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
:angle 0.0))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "memory"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_free_mb}mb free"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))))
|
||||||
|
|
||||||
|
(defwidget cal []
|
||||||
|
(box :class "cal" :orientation "v"
|
||||||
|
(box :class "cal-in"
|
||||||
|
(calendar :class "cal"
|
||||||
|
:day calendar_day
|
||||||
|
:year calendar_year))))
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget audio []
|
||||||
|
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "speaker_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value volume_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "amixer -D pulse sset Master {}%"
|
||||||
|
:tooltip "volume on ${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "mic_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "mic_text" :text "mic" :valign "center" :halign "left" )
|
||||||
|
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value mic_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "mic on ${mic_percent}%"
|
||||||
|
:onchange "amixer -D pulse sset Capture {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))))
|
||||||
|
|
||||||
|
(defwindow audio_ctl
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "280px"
|
||||||
|
:height "60px")
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow system
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
(system))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defwidget music_pop []
|
||||||
|
(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
|
||||||
|
(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
|
||||||
|
(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
|
||||||
|
(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
|
||||||
|
|
||||||
|
|
||||||
|
;; music
|
||||||
|
(defwindow music_win :stacking "fg" :focusable "false" :screen 1
|
||||||
|
:geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
|
||||||
|
(music_pop))
|
||||||
|
|
||||||
BIN
eww_laptop/bar/images/mic.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
eww_laptop/bar/images/music.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
eww_laptop/bar/images/profile.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
eww_laptop/bar/images/speaker.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
27
eww_laptop/bar/launch_bar
Executable file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Files and cmd
|
||||||
|
FILE="$HOME/.cache/eww_launch.xyz"
|
||||||
|
EWW="$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar"
|
||||||
|
|
||||||
|
## Run eww daemon if not running already
|
||||||
|
if [[ ! `pidof eww` ]]; then
|
||||||
|
${EWW} daemon
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Open widgets
|
||||||
|
run_eww() {
|
||||||
|
${EWW} open-many \
|
||||||
|
bar
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
## Launch or close widgets accordingly
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
touch "$FILE"
|
||||||
|
run_eww && bspc config -m LVDS-1 top_padding 49
|
||||||
|
else
|
||||||
|
${EWW} close-all && killall eww
|
||||||
|
rm "$FILE"
|
||||||
|
fi
|
||||||
17
eww_laptop/bar/scripts/battery
Executable file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
battery() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/capacity
|
||||||
|
}
|
||||||
|
battery_stat() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/status
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "$1" == "--bat" ]]; then
|
||||||
|
battery
|
||||||
|
elif [[ "$1" == "--bat-st" ]]; then
|
||||||
|
battery_stat
|
||||||
|
fi
|
||||||
|
|
||||||
15
eww_laptop/bar/scripts/mem-ad
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
total="$(free -m | grep Mem: | awk '{ print $2 }')"
|
||||||
|
used="$(free -m | grep Mem: | awk '{ print $3 }')"
|
||||||
|
|
||||||
|
free=$(expr $total - $used)
|
||||||
|
|
||||||
|
if [ "$1" = "total" ]; then
|
||||||
|
echo $total
|
||||||
|
elif [ "$1" = "used" ]; then
|
||||||
|
echo $used
|
||||||
|
elif [ "$1" = "free" ]; then
|
||||||
|
echo $free
|
||||||
|
fi
|
||||||
3
eww_laptop/bar/scripts/memory
Executable file
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||||
98
eww_laptop/bar/scripts/music_info
Executable file
|
|
@ -0,0 +1,98 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# scripts by adi1090x
|
||||||
|
|
||||||
|
## Get data
|
||||||
|
STATUS="$(mpc status)"
|
||||||
|
COVER="/tmp/.music_cover.png"
|
||||||
|
MUSIC_DIR="$HOME/Music"
|
||||||
|
|
||||||
|
## Get status
|
||||||
|
get_status() {
|
||||||
|
if [[ $STATUS == *"[playing]"* ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "奈"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get song
|
||||||
|
get_song() {
|
||||||
|
song=`mpc -f %title% current`
|
||||||
|
if [[ -z "$song" ]]; then
|
||||||
|
echo "Offline"
|
||||||
|
else
|
||||||
|
echo "$song"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get artist
|
||||||
|
get_artist() {
|
||||||
|
artist=`mpc -f %artist% current`
|
||||||
|
if [[ -z "$artist" ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "$artist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get time
|
||||||
|
get_time() {
|
||||||
|
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
|
||||||
|
if [[ -z "$time" ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "$time"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ctime() {
|
||||||
|
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
|
||||||
|
if [[ -z "$ctime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ctime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ttime() {
|
||||||
|
ttime=`mpc -f %time% current`
|
||||||
|
if [[ -z "$ttime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ttime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get cover
|
||||||
|
get_cover() {
|
||||||
|
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
|
||||||
|
# Check if the file has a embbeded album art
|
||||||
|
if [ "$STATUS" -eq 0 ];then
|
||||||
|
echo "$COVER"
|
||||||
|
else
|
||||||
|
echo "images/music.png"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--song" ]]; then
|
||||||
|
get_song
|
||||||
|
elif [[ "$1" == "--artist" ]]; then
|
||||||
|
get_artist
|
||||||
|
elif [[ "$1" == "--status" ]]; then
|
||||||
|
get_status
|
||||||
|
elif [[ "$1" == "--time" ]]; then
|
||||||
|
get_time
|
||||||
|
elif [[ "$1" == "--ctime" ]]; then
|
||||||
|
get_ctime
|
||||||
|
elif [[ "$1" == "--ttime" ]]; then
|
||||||
|
get_ttime
|
||||||
|
elif [[ "$1" == "--cover" ]]; then
|
||||||
|
get_cover
|
||||||
|
elif [[ "$1" == "--toggle" ]]; then
|
||||||
|
mpc -q toggle
|
||||||
|
elif [[ "$1" == "--next" ]]; then
|
||||||
|
{ mpc -q next; get_cover; }
|
||||||
|
elif [[ "$1" == "--prev" ]]; then
|
||||||
|
{ mpc -q prev; get_cover; }
|
||||||
|
fi
|
||||||
92
eww_laptop/bar/scripts/pop
Executable file
|
|
@ -0,0 +1,92 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
calendar() {
|
||||||
|
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open calendar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close calendar
|
||||||
|
rm "$LOCK_FILE" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
system() {
|
||||||
|
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open system
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE_MEM"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system
|
||||||
|
rm "$LOCK_FILE_MEM" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
music() {
|
||||||
|
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open music_win
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
|
||||||
|
touch "$LOCK_FILE_SONG"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close music_win
|
||||||
|
rm "$LOCK_FILE_SONG" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
audio() {
|
||||||
|
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
|
||||||
|
EWW_BIN="$HOME/.local/bin/eww/eww"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
|
||||||
|
touch "$LOCK_FILE_AUDIO"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
|
||||||
|
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "calendar" ]; then
|
||||||
|
calendar
|
||||||
|
elif [ "$1" = "system" ]; then
|
||||||
|
system
|
||||||
|
elif [ "$1" = "music" ]; then
|
||||||
|
music
|
||||||
|
elif [ "$1" = "audio" ]; then
|
||||||
|
audio
|
||||||
|
fi
|
||||||
26
eww_laptop/bar/scripts/wifi
Executable file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
status=$(nmcli g | grep -oE "disconnected")
|
||||||
|
essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
|
||||||
|
|
||||||
|
if [ $status ] ; then
|
||||||
|
icon=""
|
||||||
|
text=""
|
||||||
|
col="#575268"
|
||||||
|
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
text="${essid}"
|
||||||
|
col="#a1bdce"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$1" == "--COL" ]]; then
|
||||||
|
echo $col
|
||||||
|
elif [[ "$1" == "--ESSID" ]]; then
|
||||||
|
echo $text
|
||||||
|
elif [[ "$1" == "--ICON" ]]; then
|
||||||
|
echo $icon
|
||||||
|
fi
|
||||||
|
|
||||||
56
eww_laptop/bar/scripts/workspace
Executable file
|
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/sh
|
||||||
|
workspaces() {
|
||||||
|
|
||||||
|
ws1="1"
|
||||||
|
ws2="2"
|
||||||
|
ws3="3"
|
||||||
|
ws4="4"
|
||||||
|
ws5="5"
|
||||||
|
ws6="6"
|
||||||
|
|
||||||
|
# Unoccupied
|
||||||
|
un="0"
|
||||||
|
|
||||||
|
# check if Occupied
|
||||||
|
o1=$(bspc query -D -d .occupied --names | grep "$ws1" )
|
||||||
|
o2=$(bspc query -D -d .occupied --names | grep "$ws2" )
|
||||||
|
o3=$(bspc query -D -d .occupied --names | grep "$ws3" )
|
||||||
|
o4=$(bspc query -D -d .occupied --names | grep "$ws4" )
|
||||||
|
o5=$(bspc query -D -d .occupied --names | grep "$ws5" )
|
||||||
|
o6=$(bspc query -D -d .occupied --names | grep "$ws6" )
|
||||||
|
|
||||||
|
# check if Focused
|
||||||
|
f1=$(bspc query -D -d focused --names | grep "$ws1" )
|
||||||
|
f2=$(bspc query -D -d focused --names | grep "$ws2" )
|
||||||
|
f3=$(bspc query -D -d focused --names | grep "$ws3" )
|
||||||
|
f4=$(bspc query -D -d focused --names | grep "$ws4" )
|
||||||
|
f5=$(bspc query -D -d focused --names | grep "$ws5" )
|
||||||
|
f6=$(bspc query -D -d focused --names | grep "$ws6" )
|
||||||
|
|
||||||
|
ic_1=""
|
||||||
|
ic_2=""
|
||||||
|
ic_3=""
|
||||||
|
ic_4=""
|
||||||
|
ic_5=""
|
||||||
|
ic_6=""
|
||||||
|
if [ $f1 ]; then
|
||||||
|
ic_1=""
|
||||||
|
elif [ $f2 ]; then
|
||||||
|
ic_2=""
|
||||||
|
elif [ $f3 ]; then
|
||||||
|
ic_3=""
|
||||||
|
elif [ $f4 ]; then
|
||||||
|
ic_4=""
|
||||||
|
elif [ $f5 ]; then
|
||||||
|
ic_5=""
|
||||||
|
elif [ $f6 ]; then
|
||||||
|
ic_6=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"bspc desktop -f $ws1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"bspc desktop -f $ws2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"bspc desktop -f $ws3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"bspc desktop -f $ws4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"bspc desktop -f $ws5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"bspc desktop -f $ws6\" :class \"$un$o6$f6\" \"$ic_6\"))"
|
||||||
|
|
||||||
|
}
|
||||||
|
workspaces
|
||||||
|
bspc subscribe desktop node_transfer | while read -r _ ; do
|
||||||
|
workspaces
|
||||||
|
done
|
||||||
665
eww_laptop/eww.scss
Normal file
|
|
@ -0,0 +1,665 @@
|
||||||
|
/** EWW.SCSS
|
||||||
|
Created by saimoom **/
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: feather;
|
||||||
|
font-family: DaddyTimeMono Nerd Font;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** General **/
|
||||||
|
.bar_class {
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.module {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 10px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** tooltip!! **/
|
||||||
|
tooltip.background {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-size: 14;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
margin: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Widgets **/
|
||||||
|
|
||||||
|
.clock_time_sep {
|
||||||
|
font-size: 20;
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 0px 1px 0px;
|
||||||
|
}
|
||||||
|
.clock_time_class,
|
||||||
|
.clock_minute_class {
|
||||||
|
font-size: 24;
|
||||||
|
}
|
||||||
|
.clock_date_class {
|
||||||
|
font-size: 21;
|
||||||
|
margin: 0px 5px 0px 5px;
|
||||||
|
color: #d7beda;
|
||||||
|
}
|
||||||
|
.clock_minute_class {
|
||||||
|
margin: 0px 5px 0px 2px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
.clock_time_class {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 0px 0px 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.membar {
|
||||||
|
color: #e0b089;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.batbar {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.brightbar trough highlight {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#e4c9af 30%,
|
||||||
|
#f2cdcd 50%,
|
||||||
|
#e0b089 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.brightbar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 100px;
|
||||||
|
margin: 0px -15px 5px 0px;
|
||||||
|
}
|
||||||
|
.volbar trough highlight {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module_app_text {
|
||||||
|
font-size: 23;
|
||||||
|
margin: 2px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.bright_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #e4c9af;
|
||||||
|
margin: 0px 10px 0px -10px;
|
||||||
|
}
|
||||||
|
.bright_icon_overlay {
|
||||||
|
font-size: 28;
|
||||||
|
color: #e4c9af;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
margin: 0px 27px 0px 3px;
|
||||||
|
}
|
||||||
|
.volume_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
.module-wif {
|
||||||
|
font-size: 22;
|
||||||
|
color: #a1bdce;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
.module_essid {
|
||||||
|
font-size: 18;
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 5px 0px -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
font-size: 23;
|
||||||
|
margin: 4px -3px 4px 0px;
|
||||||
|
color: #e0b089;
|
||||||
|
}
|
||||||
|
.mem_padding {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
.iconbat {
|
||||||
|
font-size: 23;
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separ {
|
||||||
|
color: #3e424f;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mem_module {
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
.bat_module {
|
||||||
|
background-color: #282828;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #22242b;
|
||||||
|
box-shadow: 0 2px 3px 2px #06060b;
|
||||||
|
border-radius: 16px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.works {
|
||||||
|
font-size: 27px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 15px;
|
||||||
|
background-color: #282828;
|
||||||
|
}
|
||||||
|
|
||||||
|
.0,
|
||||||
|
.01,
|
||||||
|
.02,
|
||||||
|
.03,
|
||||||
|
.04,
|
||||||
|
.05,
|
||||||
|
.06,
|
||||||
|
.011,
|
||||||
|
.022,
|
||||||
|
.033,
|
||||||
|
.044,
|
||||||
|
.055,
|
||||||
|
.066 {
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unoccupied */
|
||||||
|
.0 {
|
||||||
|
color: #3e424f;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Occupied */
|
||||||
|
.01,
|
||||||
|
.02,
|
||||||
|
.03,
|
||||||
|
.04,
|
||||||
|
.05,
|
||||||
|
.06 {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Focused */
|
||||||
|
.011,
|
||||||
|
.022,
|
||||||
|
.033,
|
||||||
|
.044,
|
||||||
|
.055,
|
||||||
|
.066 {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 24px;
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 3px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 28px;
|
||||||
|
margin: 3px 0px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_prev,
|
||||||
|
.song_btn_next {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-size: 24px;
|
||||||
|
margin: 3px 0px 0px 5px;
|
||||||
|
}
|
||||||
|
// Calendar
|
||||||
|
.cal {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
font-family: JetBrainsMono Nerd Font;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
.cal-in {
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
|
||||||
|
.cal {
|
||||||
|
&.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
calender {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
calendar:selected {
|
||||||
|
color: #a1bdce;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.header {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.button {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.highlight {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:indeterminate {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
.sys_text_bat_sub,
|
||||||
|
.sys_text_mem_sub {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bbc5d7;
|
||||||
|
margin: 5px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_text_bat,
|
||||||
|
.sys_text_mem {
|
||||||
|
font-size: 21;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 14px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat,
|
||||||
|
.sys_icon_mem {
|
||||||
|
font-size: 30;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
.sys_win {
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
.sys_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
background-color: #38384d;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
.sys_icon_bat,
|
||||||
|
.sys_text_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
.sys_icon_mem,
|
||||||
|
.sys_text_mem {
|
||||||
|
color: #e4c9af;
|
||||||
|
}
|
||||||
|
.sys_bat_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 15px 10px 10px 20px;
|
||||||
|
}
|
||||||
|
.sys_mem_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 10px 10px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_pop {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.music_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 100px;
|
||||||
|
box-shadow: 5px 5px 5px 5px #06060b;
|
||||||
|
min-width: 170px;
|
||||||
|
margin: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 20px 0px 0px -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_artist {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_prev,
|
||||||
|
.music_btn_play,
|
||||||
|
.music_btn_next {
|
||||||
|
font-family: Iosevka Nerd Font;
|
||||||
|
}
|
||||||
|
.music_btn_prev {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_play {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 48px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
.music_btn_next {
|
||||||
|
color: #bbc5d7;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.music_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 13px;
|
||||||
|
min-width: 190px;
|
||||||
|
margin: -10px 10px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-box {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
.speaker_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/speaker.png");
|
||||||
|
background-position: center;
|
||||||
|
min-height: 40px;
|
||||||
|
min-width: 45px;
|
||||||
|
margin: 10px 10px 5px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 5px 15px 0px 15px;
|
||||||
|
}
|
||||||
|
.bright_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 22px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 5px 15px 0px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change_audio_box {
|
||||||
|
margin: 0px 0px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.change_audio {
|
||||||
|
color: #a1bdce;
|
||||||
|
margin: 0px 50px 0px 50px;
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.speaker_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 100px;
|
||||||
|
margin: 0px 0px 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/mic.png");
|
||||||
|
background-position: center;
|
||||||
|
min-height: 40px;
|
||||||
|
min-width: 45px;
|
||||||
|
margin: 5px 20px 20px 10px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_text {
|
||||||
|
color: #a1bdce;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
#afcee0 30%,
|
||||||
|
#a1bdce 50%,
|
||||||
|
#77a5bf 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
.mic_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 100px;
|
||||||
|
margin: 6px 0px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio_sep {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
//cockpit stuff
|
||||||
|
|
||||||
|
.cockpit_class {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock {
|
||||||
|
padding: 0px 30px 0px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_box {
|
||||||
|
background-color: #06060b;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 0px 5px 0px 5px;
|
||||||
|
opacity: 0.85;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_shutdown {
|
||||||
|
color: #FF1111;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_sleep {
|
||||||
|
color: #0055FF;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_restart {
|
||||||
|
color: #11FF11;
|
||||||
|
font-size: 40px;
|
||||||
|
margin: 0px 5px -30px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_info {
|
||||||
|
margin: -50px 0px 0px 0px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.album_cover {
|
||||||
|
margin: -60px 10px 20px 10px;
|
||||||
|
padding: 0px;
|
||||||
|
background-size: cover;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_button_settings {
|
||||||
|
color: #d35d6e;
|
||||||
|
font-size: 35px;
|
||||||
|
margin: -30px 5px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-icon {
|
||||||
|
font-size: 80px;
|
||||||
|
margin: 10px 0px 35px 25px;
|
||||||
|
font-family: Iosevka;
|
||||||
|
}
|
||||||
|
|
||||||
|
.weather-stat {
|
||||||
|
font-size: 30px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: -20px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.temperature {
|
||||||
|
color: grey;
|
||||||
|
font-size: 48px;
|
||||||
|
font-weight: 900;
|
||||||
|
margin: 0px 0px 0px 20px;
|
||||||
|
}
|
||||||
|
.weather-quote {
|
||||||
|
margin: 30px -5px 0px 20px;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.weather-quote-head,
|
||||||
|
.weather-quote-tail {
|
||||||
|
color: grey;
|
||||||
|
font-size: 18px;
|
||||||
|
margin: 10px 0px 10px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_left {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 5px -20px -30px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_right {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 5px 0px -30px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_date {
|
||||||
|
font-size: 50px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: -30px -20px 0px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_clock_sep {
|
||||||
|
font-size: 40px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #d35d6e;
|
||||||
|
margin: 0px -20px -30px -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_docs {
|
||||||
|
color: #FF1111;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: 10px 0px -10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_pics {
|
||||||
|
color: #11FF11;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_gits {
|
||||||
|
color: #0055FF;
|
||||||
|
font-size: 30px;
|
||||||
|
margin: -20px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_sep_bottom {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: -10px 0px 0px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cockpit_sep_top {
|
||||||
|
color: #38384d;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 0px -10px 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
513
eww_laptop/eww.yuck
Normal file
|
|
@ -0,0 +1,513 @@
|
||||||
|
;; date definitions ;;
|
||||||
|
(defpoll clock_time :interval "1m" "date +\%I")
|
||||||
|
(defpoll clock_minute :interval "5s" "date +\%M")
|
||||||
|
(defpoll clock_date :interval "10h" "date '+%d/%m'")
|
||||||
|
|
||||||
|
;; volume definitions ;;
|
||||||
|
(defpoll volume_percent :interval "1s" "pactl get-sink-volume @DEFAULT_SINK@ | awk -F '/' ' { print $2 } ' | tr -d ' %'")
|
||||||
|
(defpoll mic_percent :interval "1s" "pactl get-source-volume @DEFAULT_SOURCE@ | awk -F'/' '{ print $2 }' | tr -d ' %'")
|
||||||
|
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||||
|
|
||||||
|
;; battery definitions ;;
|
||||||
|
(defpoll battery_status :interval "5s" "./scripts/battery stat")
|
||||||
|
(defpoll battery-capacity :interval "5s" "scripts/battery percent")
|
||||||
|
(defpoll battery :interval "5s" "scripts/battery icon")
|
||||||
|
|
||||||
|
;; memory definitions ;;
|
||||||
|
(defpoll memory :interval "15s" "scripts/memory")
|
||||||
|
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
|
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
|
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
|
|
||||||
|
;; wifi definitions ;;
|
||||||
|
(defpoll COL_WLAN :interval "1m" "~/.config/eww/scripts/wifi --COL")
|
||||||
|
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/scripts/wifi --ESSID")
|
||||||
|
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/scripts/wifi --ICON")
|
||||||
|
|
||||||
|
;; music definitions ;;
|
||||||
|
(defpoll Song_info :interval "2s" "scripts/music_control")
|
||||||
|
(defpoll Thumbnail :interval "2s" "scripts/music_control2")
|
||||||
|
|
||||||
|
;; current window ;;
|
||||||
|
;;(defpoll currentWindow :interval "100ms" "hyprctl activewindow | grep class | awk -F ':' '{ print $2 }'")
|
||||||
|
|
||||||
|
;; calendar definitions ;;
|
||||||
|
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||||
|
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||||
|
|
||||||
|
;; Weather vars
|
||||||
|
(defpoll weather-icon :interval "20m" "cat ~/.cache/weather/weather-icon")
|
||||||
|
(defpoll temperature :interval "20m" "cat ~/.cache/weather/weather-degree")
|
||||||
|
(defpoll weather-hex :interval "20m" "cat ~/.cache/weather/weather-hex")
|
||||||
|
(defpoll weather-stat :interval "20m" "cat ~/.cache/weather/weather-stat")
|
||||||
|
(defpoll weather-stat-side :interval "20m" "~/.config/eww/scripts/weather-trimmer")
|
||||||
|
(defpoll weather-quote :interval "20m" "~/.config/eww/scripts/getwethquote")
|
||||||
|
|
||||||
|
;; simple variables ;;
|
||||||
|
(defvar eww "$HOME/.local/bin/eww -c $HOME/.config/eww")
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
(defvar br_reveal false)
|
||||||
|
(defvar music_reveal false)
|
||||||
|
(defvar wifi_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(deflisten workspace "scripts/workspace")
|
||||||
|
(deflisten currentName "scripts/current_name")
|
||||||
|
|
||||||
|
|
||||||
|
;; widgets
|
||||||
|
|
||||||
|
|
||||||
|
;; wifi ;;
|
||||||
|
(defwidget wifi []
|
||||||
|
(eventbox :onhover "${eww} update wifi_rev=true"
|
||||||
|
:onhoverlost "${eww} update wifi_rev=false"
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button :class "module-wif" :onclick "hyprctl dispatch exec 'alacritty -e nmtui' && ${eww} update wifi_rev=false" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" WLAN_ICON)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal wifi_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(button :class "module_essid" :onclick "hyprctl dispatch exec 'alacritty -e nmtui' && ${eww} update wifi_rev=false" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" ESSID_WLAN)))))
|
||||||
|
|
||||||
|
(defwidget bluetooth []
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button :class "module-wif" :onclick "hyprctl dispatch exec 'blueman-manager'" :wrap "false" :limit-width 12 :style "color: ${COL_WLAN};" "")
|
||||||
|
))
|
||||||
|
|
||||||
|
;; workspaces ;;
|
||||||
|
(defwidget workspaces []
|
||||||
|
(literal :content workspace))
|
||||||
|
|
||||||
|
|
||||||
|
;; Battery ;;
|
||||||
|
(defwidget bat []
|
||||||
|
(box :class "bat_module" :vexpand "false" :hexpand "false"
|
||||||
|
(button
|
||||||
|
:class "iconbat"
|
||||||
|
:tooltip "Battery: ${battery-capacity}%"
|
||||||
|
:show_truncated false
|
||||||
|
:onclick "$HOME/.config/eww/scripts/pop system"
|
||||||
|
:wrap false
|
||||||
|
"${battery}")))
|
||||||
|
|
||||||
|
;; memory ;;
|
||||||
|
(defwidget mem []
|
||||||
|
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||||
|
(button :class "iconmem"
|
||||||
|
:onclick "$HOME/.config/eww/scripts/pop system"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "membar"
|
||||||
|
:thickness 4
|
||||||
|
:tooltip "using ${memory}% ram"
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
(label :class "mem_padding" :text "")
|
||||||
|
))))
|
||||||
|
|
||||||
|
|
||||||
|
;; seperator ;;
|
||||||
|
(defwidget sep []
|
||||||
|
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "separ" :text "|")))
|
||||||
|
|
||||||
|
;; clock ;;
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox :onhover "${eww} update time_rev=true"
|
||||||
|
:onhoverlost "${eww} update time_rev=false"
|
||||||
|
(button :onclick "scripts/pop calendar"
|
||||||
|
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text clock_time :class "clock_time_class" )
|
||||||
|
(label :text "" :class "clock_time_sep" )
|
||||||
|
(label :text clock_minute :class "clock_minute_class")
|
||||||
|
(revealer :class "clock_date_class"
|
||||||
|
:transition "slideleft"
|
||||||
|
:reveal time_rev
|
||||||
|
:duration "350ms"
|
||||||
|
clock_date
|
||||||
|
)))))
|
||||||
|
|
||||||
|
;; speaker volume ;;
|
||||||
|
(defwidget volume []
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop audio" :class "volume_icon" "")))
|
||||||
|
|
||||||
|
;; screen brightness ;;
|
||||||
|
(defwidget bright []
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop brightness" :class "bright_icon" "")))
|
||||||
|
|
||||||
|
;; brightness widget ;;
|
||||||
|
(defwidget brightness_overlay []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet brightness_window"
|
||||||
|
(box :class "audio-box" :halign "center" :orientation "v" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "brightness" :halign "left" )
|
||||||
|
(box :class "brightbar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "bright_icon_overlay" :text "")
|
||||||
|
(scale :value brightness_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "brightnessctl set {}%"
|
||||||
|
:tooltip "brightness on ${brightness_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0)))))
|
||||||
|
|
||||||
|
;; audio volume widget ;;
|
||||||
|
(defwidget audio []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet audio_ctl"
|
||||||
|
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "speaker_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value volume_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%"
|
||||||
|
:tooltip "volume on ${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "mic_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "mic" :valign "center" :halign "left" )
|
||||||
|
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value mic_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "mic on ${mic_percent}%"
|
||||||
|
:onchange "pactl set-source-volume @DEFAULT_SOURCE@ {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(label :class "bright_icon_overlay" :orientation "v" :text "")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "bright_text" :text "lux" :valign "center" :halign "right" )
|
||||||
|
(box :class "brightbar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value brightness_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "brightness ${brightness_percent}%"
|
||||||
|
:onchange "brightnessctl set {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :class "change_audio_box" :halign "center" :spac`e-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "change_audio" :orientation "v" :halign "left"
|
||||||
|
(button :onclick "scripts/change-audio internal" ""))
|
||||||
|
(box :class "change_audio" :orientation "v" :halign "right"
|
||||||
|
(button :onclick "scripts/change-audio bluetooth" ""))
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defwidget cname []
|
||||||
|
(literal :content currentName))
|
||||||
|
|
||||||
|
;; calendar ;;
|
||||||
|
(defwidget cal []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet calendar"
|
||||||
|
(box :class "cal" :orientation "v"
|
||||||
|
(box :class "cal-in"
|
||||||
|
(calendar :class "cal"
|
||||||
|
:day calendar_day
|
||||||
|
:year calendar_year)))))
|
||||||
|
|
||||||
|
(defwidget system []
|
||||||
|
(eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
:onhoverlost "scripts/pop hoverGet system"
|
||||||
|
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
|
||||||
|
(box :class "sys_bat_box" :orientation "h" :space-evenly "false"
|
||||||
|
(circular-progress :value battery-capacity
|
||||||
|
:class "sys_bat"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_bat"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "battery"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery-capacity}%"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery_status}"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))
|
||||||
|
(label :text "" :class "sys_sep" :halign "center")
|
||||||
|
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "sys_mem"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_mem"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
:angle 0.0))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "memory"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_free_mb}mb free"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))))))
|
||||||
|
|
||||||
|
;; cockpit widget ;;
|
||||||
|
(defwidget cockpit []
|
||||||
|
(box :orientation "h"
|
||||||
|
(box :class "cockpit_class"
|
||||||
|
:orientation "h"
|
||||||
|
(box :orientation "v"
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(box
|
||||||
|
(button :class "cockpit_button_shutdown" :onclick "hyprctl dispatch exec 'shutdown now'" "")
|
||||||
|
(button :class "cockpit_button_restart" :onclick "hyprctl dispatch exec reboot" "")
|
||||||
|
(button :class "cockpit_button_sleep" :onclick "hyprctl dispatch exec 'playerctl -a pause & swaylock -c 000000 & systemctl suspend'" ""))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box
|
||||||
|
(button :class "cockpit_button_settings" :onclick "hyprctl dispatch exec 'pavucontrol'" "")
|
||||||
|
(button :class "cockpit_button_settings" :onclick "scripts/change-audio bluetooth" "")))
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(button :class "cockpit_docs" :onclick "hyprctl dispatch exec nautilus $HOME/Documents" "Documents ")
|
||||||
|
(label :text "" :class "cockpit_sep_top" :halign "center")
|
||||||
|
(button :class "cockpit_pics" :onclick "hyprctl dispatch exec nautilus $HOME/Pictures" "Pictures ")
|
||||||
|
(label :text "" :class "cockpit_sep_bottom" :halign "center")
|
||||||
|
(button :class "cockpit_gits" :onclick "hyprctl dispatch exec 'alacritty --working-directory $HOME/gits'" "gits ")))
|
||||||
|
(box :orientation "v"
|
||||||
|
(box :class "cockpit_box" :orientation "v"
|
||||||
|
(box :class "cockpit_clock"
|
||||||
|
(label :text clock_time :class "cockpit_clock_left" )
|
||||||
|
(label :text "" :class "cockpit_clock_sep" )
|
||||||
|
(label :text clock_minute :class "cockpit_clock_right"))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :class "cockpit_clock"
|
||||||
|
(label :text clock_date :class "cockpit_date")
|
||||||
|
))
|
||||||
|
(box :class "cockpit_box" (weather)))
|
||||||
|
(box :width 300 :height 200 :class "cockpit_box" :orientation "v"
|
||||||
|
(box :class "song_info"
|
||||||
|
(label :wrap true :text "${Song_info}"))
|
||||||
|
(box :class "album_cover" :style 'background-image: url("${Thumbnail}")')
|
||||||
|
)))
|
||||||
|
)
|
||||||
|
|
||||||
|
;; weather ;;
|
||||||
|
(defwidget weather []
|
||||||
|
(box :orientation "v" :space-evenly "false"
|
||||||
|
(box :orientation "h" :space-evenly "false"
|
||||||
|
(box :class "weather-icon" :style "color: ${weather-hex}" {weather-icon})
|
||||||
|
(box :class "temperature" "${temperature}"))
|
||||||
|
(box :orientation "v" :space-evenly "false"
|
||||||
|
(box :class "weather-stat" {weather-stat}))
|
||||||
|
(box :class "weather-quote-head"
|
||||||
|
(label :wrap true :text {weather-quote}))))
|
||||||
|
|
||||||
|
;; left side but displayed right? ;;
|
||||||
|
(defwidget left []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:class "left_modules"
|
||||||
|
(volume)
|
||||||
|
(wifi)
|
||||||
|
(bluetooth)
|
||||||
|
(sep)
|
||||||
|
(bat)
|
||||||
|
(mem)
|
||||||
|
(sep)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
;; right side but displayed left? ;;
|
||||||
|
(defwidget right []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
:class "right_modules"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
;; center widget ;;
|
||||||
|
(defwidget center []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
:class "center_modules"
|
||||||
|
(cname)))
|
||||||
|
|
||||||
|
;; bar as widget;;
|
||||||
|
(defwidget bar_1 []
|
||||||
|
(box :class "bar_class"
|
||||||
|
:orientation "h"
|
||||||
|
(right)
|
||||||
|
(center)
|
||||||
|
(left)
|
||||||
|
))
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Drawing Windows ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "20px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
(defwindow audio_ctl
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "120px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "250px"
|
||||||
|
:height "330px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
(defwindow brightness_window
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "250px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "280px"
|
||||||
|
:height "60px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(brightness_overlay))
|
||||||
|
|
||||||
|
;; music again .. ;;
|
||||||
|
;; (defwindow music_win :stacking "fg" :focusable "false" :screen 1
|
||||||
|
;; :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
|
||||||
|
;; (music_pop))
|
||||||
|
|
||||||
|
(defwindow system
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "50px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(system))
|
||||||
|
|
||||||
|
;; draw the bar ;;
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "1px"
|
||||||
|
:width "99%"
|
||||||
|
:height "20px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "bg"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
;; draw the bar ;;
|
||||||
|
(defwindow cockpit_window_0
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry
|
||||||
|
:width "600px"
|
||||||
|
:height "500px"
|
||||||
|
:anchor "center")
|
||||||
|
:stacking "overlay"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(cockpit))
|
||||||
|
|
||||||
|
(defwindow calendar1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x "20px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
(defwindow audio_ctl1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x "120px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "250px"
|
||||||
|
:height "330px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
(defwindow brightness_window1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x "250px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "280px"
|
||||||
|
:height "60px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(brightness_overlay))
|
||||||
|
|
||||||
|
;; music again .. ;;
|
||||||
|
;; (defwindow music_win1 :stacking "fg" :focusable "false" :screen 1
|
||||||
|
;; :geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
|
||||||
|
;; (music_pop))
|
||||||
|
|
||||||
|
(defwindow system1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x "50px"
|
||||||
|
:y "2px"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
:stacking "overlay"
|
||||||
|
(system))
|
||||||
|
|
||||||
|
;; draw the bar ;;
|
||||||
|
(defwindow bar1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "1px"
|
||||||
|
:width "99%"
|
||||||
|
:height "20px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "bg"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
;; draw the bar ;;
|
||||||
|
(defwindow cockpit_window_1
|
||||||
|
:monitor 1
|
||||||
|
:geometry (geometry
|
||||||
|
:width "600px"
|
||||||
|
:height "500px"
|
||||||
|
:anchor "center")
|
||||||
|
:stacking "overlay"
|
||||||
|
:wm-ignore false
|
||||||
|
:exclusive true
|
||||||
|
(cockpit))
|
||||||
|
|
||||||
BIN
eww_laptop/images/mic.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
eww_laptop/images/music.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
eww_laptop/images/profile.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
eww_laptop/images/speaker.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
27
eww_laptop/launch_bar
Executable file
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## Files and cmd
|
||||||
|
FILE="$HOME/.cache/eww_launch.xyz"
|
||||||
|
EWW="$HOME/.local/bin/eww -c $HOME/.config/eww"
|
||||||
|
|
||||||
|
## Run eww daemon if not running already
|
||||||
|
if [[ ! `pidof eww` ]]; then
|
||||||
|
${EWW} daemon
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Open widgets
|
||||||
|
run_eww() {
|
||||||
|
${EWW} open-many \
|
||||||
|
bar
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
## Launch or close widgets accordingly
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
touch "$FILE"
|
||||||
|
run_eww && bspc config -m LVDS-1 top_padding 49
|
||||||
|
else
|
||||||
|
${EWW} close-all && killall eww
|
||||||
|
rm "$FILE"
|
||||||
|
fi
|
||||||
31
eww_laptop/scripts/audio_devices
Executable file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
CLIENTS=$(pactl list sink-inputs | grep "application.process.binary" | awk -F '= ' ' { print $2 } ' | tr -d '"')
|
||||||
|
|
||||||
|
readarray -t lines <<<"$CLIENTS"
|
||||||
|
|
||||||
|
printf "%s\n" "${lines[@]}"
|
||||||
|
echo ${lines[2]}
|
||||||
|
|
||||||
|
|
||||||
|
#echo "(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" (button :onclick \"hyprctl dispatch workspace 1\" :class \"$un$o1$f1\" \"$ic_1\") (button :onclick \"hyprctl dispatch workspace 2\" :class \"$un$o2$f2\" \"$ic_2\") (button :onclick \"hyprctl dispatch workspace 3\" :class \"$un$o3$f3\" \"$ic_3\") (button :onclick \"hyprctl dispatch workspace 4\" :class \"$un$o4$f4\" \"$ic_4\") (button :onclick \"hyprctl dispatch workspace 5\" :class \"$un$o5$f5\" \"$ic_5\") (button :onclick \"hyprctl dispatch workspace 6\" :class \"$un$o6$f6\" \"$ic_6\") (button :onclick \"hyprctl dispatch workspace 7\" :class \"$un$o7$f7\" \"$ic_7\") (button :onclick \"hyprctl dispatch workspace 8\" :class \"$un$o8$f8\" \"$ic_8\"))"
|
||||||
|
|
||||||
|
# (eventbox :onhover "scripts/pop hoverCreate"
|
||||||
|
# :onhoverlost "scripts/pop hoverGet audio_ctl"
|
||||||
|
# (box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
|
||||||
|
# (box :halign "center" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
# (box :class "speaker_icon" :orientation "v")
|
||||||
|
# (box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
# (label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
# (box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
# (scale :value volume_percent
|
||||||
|
# :space-evenly "false"
|
||||||
|
# :orientation "h"
|
||||||
|
# :onchange "pactl set-sink-volume @DEFAULT_SINK@ {}%"
|
||||||
|
# :tooltip "volume on ${volume_percent}%"
|
||||||
|
# :max 100
|
||||||
|
# :min 0))))
|
||||||
|
|
||||||
|
# (label :text "" :class "audio_sep" :halign "center")
|
||||||
|
|
||||||
|
# ))))
|
||||||
76
eww_laptop/scripts/battery
Executable file
|
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
bat=/sys/class/power_supply/BAT0/
|
||||||
|
per="$(cat "$bat/capacity")"
|
||||||
|
char="$(cat "$bat/status")"
|
||||||
|
|
||||||
|
icon() {
|
||||||
|
|
||||||
|
#[ $(cat "$bat/status") = Charging ] && echo "" && exit
|
||||||
|
|
||||||
|
if [ "$char" == "Charging" ]; then
|
||||||
|
if [ "$per" -gt "90" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "80" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "70" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "60" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "50" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "40" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "30" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "20" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "10" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "0" ]; then
|
||||||
|
icon=""
|
||||||
|
else
|
||||||
|
echo && exit
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$per" -gt "90" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "80" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "70" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "60" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "50" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "40" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "30" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "20" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "10" ]; then
|
||||||
|
icon=""
|
||||||
|
elif [ "$per" -gt "0" ]; then
|
||||||
|
icon=""
|
||||||
|
notify-send -u critical "Battery Low" "Connect Charger"
|
||||||
|
else
|
||||||
|
echo && exit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
percent() {
|
||||||
|
echo $per
|
||||||
|
}
|
||||||
|
|
||||||
|
stat() {
|
||||||
|
echo $char
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$1" = "icon" ] && icon && exit
|
||||||
|
[ "$1" = "percent" ] && percent && exit
|
||||||
|
[ "$1" = 'stat' ] && stat && exit
|
||||||
|
exit
|
||||||
|
|
||||||
35
eww_laptop/scripts/change-audio
Executable file
|
|
@ -0,0 +1,35 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
internal() {
|
||||||
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "alsa" | awk -F ': ' '{ print $2 }')
|
||||||
|
if [ "$SPEAKER" != "" ]; then
|
||||||
|
pactl set-default-sink "$SPEAKER"
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
notify-send "changed audio to internal speakers "
|
||||||
|
else
|
||||||
|
notify-send "failed, not available!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
bluetooth() {
|
||||||
|
SPEAKER=$(pactl list sinks | grep "Name" | grep "blue" | awk -F ': ' '{ print $2 }')
|
||||||
|
if [ "$SPEAKER" != "" ]; then
|
||||||
|
pactl set-default-sink "$SPEAKER"
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
notify-send "changed audio to Bluetooth"
|
||||||
|
else
|
||||||
|
notify-send "failed, not available!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" == "internal" ]; then
|
||||||
|
internal
|
||||||
|
elif [ "$1" == "bluetooth" ]; then
|
||||||
|
bluetooth
|
||||||
|
else
|
||||||
|
SPEAKER=$(pactl info | grep "Default Sink" | awk -F ': ' ' { print $2 } ')
|
||||||
|
pactl set-sink-mute "$SPEAKER" false
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
12
eww_laptop/scripts/change-brightness
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
set_brightness() {
|
||||||
|
brightnessctl set "$1"
|
||||||
|
CURRENT=$(brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}')
|
||||||
|
dunstify -a "changeBrightness" -r 3 -u low -i brightness-high -h int:value:"$CURRENT" "Brightness: ${CURRENT}%"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" == "brightness" ]; then
|
||||||
|
set_brightness "$2"
|
||||||
|
fi
|
||||||
|
|
||||||