Big commit. I think I'm done for most parts :)
This commit is contained in:
parent
ae0f7df7d9
commit
1c96422a91
155 changed files with 7285 additions and 144 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
palette.yml
|
29
Dockerfile
Normal file
29
Dockerfile
Normal file
|
@ -0,0 +1,29 @@
|
|||
FROM alpine:latest
|
||||
|
||||
# Change repositories
|
||||
RUN printf 'https://download.nus.edu.sg/mirror/alpine/edge/main\n\
|
||||
https://download.nus.edu.sg/mirror/alpine/edge/community\n\
|
||||
https://download.nus.edu.sg/mirror/alpine/edge/testing\n' > /etc/apk/repositories
|
||||
|
||||
# Install dependencies
|
||||
RUN apk --no-cache add \
|
||||
doas ansible git neovim fish build-base \
|
||||
rsync cargo py3-virtualenv py3-setuptools
|
||||
|
||||
# Assure correct permission on /tmp
|
||||
RUN chmod 1777 /tmp
|
||||
|
||||
# Create a test user
|
||||
RUN echo 'permit :wheel nopass' > /etc/doas.d/doas.conf \
|
||||
&& chmod 400 /etc/doas.d/doas.conf \
|
||||
&& printf 'cuteuser\ncuteuser\n' | adduser -h /home/kawaii -s /bin/ash -G wheel kawaii
|
||||
|
||||
# Enter testing environment
|
||||
USER kawaii
|
||||
WORKDIR /home/kawaii
|
||||
COPY . .
|
||||
|
||||
# Slim down the image size
|
||||
RUN rm -rf .git
|
||||
|
||||
CMD ["/bin/ash"]
|
29
README.md
29
README.md
|
@ -1,15 +1,34 @@
|
|||
# dotfiles v2
|
||||
|
||||
This is the continuation of [my old dotfiles](https://git.disroot.org/FollieHiyuki/dotfiles), now contains only stuff I really need.
|
||||
|
||||
Managed with `ansible`.
|
||||
This is the continuation of [my old dotfiles](https://git.disroot.org/FollieHiyuki/dotfiles), now contains only what I really need and is managed with `ansible`.
|
||||
|
||||
## 🧰 Setup
|
||||
|
||||
```shell
|
||||
$ ansible-playbook -i hosts dotfiles.yml
|
||||
```bash
|
||||
# Install `community.general` for APK module
|
||||
$ ansible-galaxy collection install community.general
|
||||
# Run the playbook
|
||||
$ ansible-playbook dotfiles.yml
|
||||
```
|
||||
|
||||
`additional` directory contains other playbooks for installing packages.
|
||||
|
||||
## ✔️ Testing inside a container
|
||||
|
||||
```bash
|
||||
# Build the image
|
||||
$ buildah build --rm -t alpine/dotfiles -f Dockerfile .
|
||||
# Run the playbook
|
||||
$ podman run --rm -i localhost/alpine/dotfiles ansible-playbook -v -i hosts dotfiles.yml
|
||||
# Exec into the container and look around
|
||||
$ podman run --rm -it localhost/alpine/dotfiles /bin/ash
|
||||
```
|
||||
|
||||
## 🖊️ TODO
|
||||
|
||||
- [ ] [wayout](https://git.sr.ht/~proycon/wayout)
|
||||
- [ ] Additional playbooks for bootstraping
|
||||
|
||||
## 📓 Notes
|
||||
|
||||
I use Alpine-edge aka. the best binary distro on Earth 😃. Therefore some tasks won't work on other distros (eg. `apk` tasks)
|
||||
|
|
40
additional/Anime4KCPP.yml
Normal file
40
additional/Anime4KCPP.yml
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
- name: Download, build and install Anime4KCPP
|
||||
hosts: all
|
||||
vars:
|
||||
- anime4kcpp_dir: ~/Code/Anime4KCPP
|
||||
tasks:
|
||||
- name: Install dependencies
|
||||
apk:
|
||||
name: cmake,opencv-dev,opencl-icd-loader-dev
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Clone Anime4KCPP repository
|
||||
git:
|
||||
depth: 1
|
||||
update: yes
|
||||
repo: https://github.com/TianZerL/Anime4KCPP.git
|
||||
dest: '{{ anime4kcpp_dir }}'
|
||||
|
||||
- name: Make build directory
|
||||
file:
|
||||
path: '{{ anime4kcpp_dir }}/build'
|
||||
state: directory
|
||||
|
||||
- name: Generate cmake build files
|
||||
command:
|
||||
chdir: '{{ anime4kcpp_dir }}/build'
|
||||
cmd: cmake ..
|
||||
|
||||
- name: Build Anime4KCPP CLI
|
||||
command: make
|
||||
args:
|
||||
creates: '{{ anime4kcpp_dir }}/build/bin/Anime4KCPP_CLI'
|
||||
chdir: '{{ anime4kcpp_dir }}/build'
|
||||
|
||||
- name: Symlink Anime4KCPP_CLI executable
|
||||
file:
|
||||
src: '{{ anime4kcpp_dir }}/build/bin/Anime4KCPP_CLI'
|
||||
dest: ~/.local/bin/Anime4KCPP_CLI
|
||||
state: link
|
0
additional/deps.yml
Normal file
0
additional/deps.yml
Normal file
0
additional/theme_bootstrap.yml
Normal file
0
additional/theme_bootstrap.yml
Normal file
24
additional/tt.yml
Normal file
24
additional/tt.yml
Normal file
|
@ -0,0 +1,24 @@
|
|||
---
|
||||
- name: Download and install tt
|
||||
hosts: all
|
||||
vars:
|
||||
- tt_dir: ~/Code/tt
|
||||
tasks:
|
||||
- name: Clone tt repository
|
||||
git:
|
||||
depth: 1
|
||||
update: yes
|
||||
repo: https://github.com/runrin/tt.git
|
||||
dest: '{{ tt_dir }}'
|
||||
|
||||
- name: Build tt
|
||||
command: make
|
||||
args:
|
||||
chdir: '{{ tt_dir }}'
|
||||
creates: '{{ tt_dir }}/tt'
|
||||
|
||||
- name: Symlink tt executable
|
||||
file:
|
||||
src: '{{ tt_dir }}/tt'
|
||||
dest: ~/.local/bin/tt
|
||||
state: link
|
38
additional/wallpapers.yml
Normal file
38
additional/wallpapers.yml
Normal file
|
@ -0,0 +1,38 @@
|
|||
---
|
||||
- name: Download some wallpapers
|
||||
hosts: all
|
||||
vars:
|
||||
- wallpaper_dir: ~/Pictures/Wallpapers
|
||||
tasks:
|
||||
- name: An artwork by @ogipote
|
||||
get_url:
|
||||
url: https://ogipote.com/wp-content/uploads/2021/03/%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC5.jpg
|
||||
dest: '{{ wallpaper_dir }}/レイヤー5.jpg'
|
||||
mode: 0644
|
||||
|
||||
- name: Key artwork of Sayoasa anime
|
||||
get_url:
|
||||
url: http://sayoasa.jp/en/img/top/key.jpg
|
||||
dest: '{{ wallpaper_dir }}/key.jpg'
|
||||
mode: 0644
|
||||
|
||||
# tumblr has good enough image quality
|
||||
- name: Maquia artwork by @necomi
|
||||
get_url:
|
||||
url: https://64.media.tumblr.com/269736b9e0af3be25460f469fa2c06f4/tumblr_p6b2chhj2g1v84cqao1_1280.png
|
||||
dest: '{{ wallpaper_dir }}/maquia.png'
|
||||
mode: 0644
|
||||
|
||||
# Rimuu has her site rewritten. The artworks are now in crappy webp format
|
||||
# generated by wix.com so let's upload 1 we luckily downloaded back then
|
||||
# to Github and call it a day
|
||||
- name: Barbara artwork by @rimuu
|
||||
get_url:
|
||||
url: https://github.com/FollieHiyuki/FollieHiyuki/raw/main/wallpapers/90575757_p0.png
|
||||
dest: '{{ wallpaper_dir }}/90575757_p0.png'
|
||||
mode: 0644
|
||||
|
||||
# - name: Short Fubuki animation by @kaynimatic
|
||||
# command:
|
||||
# cmd: ~/.local/bin/gallery-dl https://twitter.com/i/status/1324684931885273088
|
||||
# creates: ~/Pictures/gallery-dl/twitter/kaynimatic/1324684931885273088_1.mp4
|
|
@ -2,5 +2,5 @@
|
|||
inventory = ./hosts
|
||||
gathering = explicit
|
||||
display_skipped_hosts = False
|
||||
host_key_checking = False
|
||||
host_key_checking = True
|
||||
interpreter_python = auto_silent
|
||||
|
|
59
dotfiles.yml
59
dotfiles.yml
|
@ -1,23 +1,70 @@
|
|||
---
|
||||
- hosts: all
|
||||
- name: Gather information
|
||||
hosts: all
|
||||
gather_facts: yes
|
||||
|
||||
- hosts: all
|
||||
- name: Check the values of variables
|
||||
hosts: all
|
||||
tasks:
|
||||
- name: Check theme name
|
||||
fail:
|
||||
msg: Variable 'theme' needs to be 'nord' or 'onedark'
|
||||
when: theme != 'nord' and theme != 'onedark'
|
||||
|
||||
- name: Check clipboard manager name
|
||||
fail:
|
||||
msg: Variable 'clipboard' needs to be 'clipman' or 'cliphist'
|
||||
when: clipboard != 'clipman' and clipboard != 'cliphist'
|
||||
|
||||
- name: Check notification daemon name
|
||||
fail:
|
||||
msg: Variable 'notification' needs to be 'dunst' or 'mako'
|
||||
when: notification != 'dunst' and notification != 'mako'
|
||||
|
||||
- name: Generate theme colors
|
||||
hosts: all
|
||||
roles:
|
||||
- palette
|
||||
|
||||
- hosts: all
|
||||
- name: Deploy dotfiles
|
||||
hosts: all
|
||||
vars_files:
|
||||
- '{{ ansible_env.PWD }}/palette.yml'
|
||||
- /tmp/palette.yml
|
||||
roles:
|
||||
- scripts
|
||||
- alacritty
|
||||
- amfora
|
||||
- bash
|
||||
- anime-downloader
|
||||
- bat
|
||||
# - cava
|
||||
- dunst_mako
|
||||
- fish
|
||||
# - element-desktop
|
||||
- emacs
|
||||
- fontconfig
|
||||
- foot
|
||||
- gallery-dl
|
||||
- git
|
||||
- glow
|
||||
- gnupg
|
||||
- mpd
|
||||
- mpv
|
||||
- newsboat
|
||||
- npm
|
||||
- nvim
|
||||
# - qtcreator
|
||||
- qutebrowser
|
||||
- ripgrep
|
||||
- river
|
||||
- shells
|
||||
- sway
|
||||
- swaylock
|
||||
- tmux
|
||||
- translate-shell
|
||||
- vifm
|
||||
- waybar
|
||||
- weechat
|
||||
- wofi
|
||||
- xdg-desktop-portal-wlr
|
||||
- yt-dlp
|
||||
- zathura
|
||||
# - zellij
|
||||
|
|
|
@ -2,10 +2,15 @@
|
|||
user_name: FollieHiyuki
|
||||
user_email: folliekazetani@protonmail.com
|
||||
gpg_signature: 813CF484F4993419
|
||||
default_browser: qutebrowser
|
||||
notification: dunst
|
||||
term_font: Iosevka Nerd Font
|
||||
cjk_font: Sarasa Mono J
|
||||
font_size: 14
|
||||
theme: nord
|
||||
user_agent: Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0
|
||||
default_browser: qutebrowser
|
||||
clipboard: clipman
|
||||
cjk_font: Sarasa Mono J
|
||||
term_font: Iosevka Nerd Font
|
||||
font_size: 14
|
||||
notification: dunst
|
||||
theme: nord
|
||||
gtk_theme: Nordic
|
||||
icon_theme: Papirus-Dark
|
||||
cursor_theme: Bibata-Modern-Ice
|
||||
cursor_size: 24
|
||||
|
|
|
@ -35,7 +35,6 @@ auto_redirect = false
|
|||
http = '{{ default_browser }}'
|
||||
|
||||
# Any URL that will accept a query string can be put here
|
||||
# search = "gemini://gus.guru/search"
|
||||
search = "gemini://geminispace.info/search"
|
||||
|
||||
# Whether colors will be used in the terminal
|
||||
|
|
310
roles/anime-downloader/files/config.json
Normal file
310
roles/anime-downloader/files/config.json
Normal file
|
@ -0,0 +1,310 @@
|
|||
{
|
||||
"dl": {
|
||||
"aria2c_for_torrents": true,
|
||||
"aria2c_log_level": "error",
|
||||
"chunk_size": "10",
|
||||
"download_dir": "Videos/Anime",
|
||||
"external_downloader": "",
|
||||
"fallback_qualities": [
|
||||
"720p",
|
||||
"480p",
|
||||
"360p"
|
||||
],
|
||||
"file_format": "{anime_title}/{anime_title}_{ep_no}",
|
||||
"force_download": true,
|
||||
"player": "mpv",
|
||||
"provider": "anitube",
|
||||
"quality": "1080p",
|
||||
"selescrape_browser": null,
|
||||
"selescrape_browser_executable_path": null,
|
||||
"selescrape_driver_binary_path": null,
|
||||
"skip_download": false,
|
||||
"speed_limit": 0,
|
||||
"url": false
|
||||
},
|
||||
"ezdl": {
|
||||
"download_metadata": false,
|
||||
"fallback_providers": [
|
||||
"vidstream",
|
||||
"anime8"
|
||||
],
|
||||
"file_format": "{anime_title}/{anime_title}_{ep_no}",
|
||||
"provider": "animebinge",
|
||||
"quality": "1080p",
|
||||
"ratio": 50
|
||||
},
|
||||
"gui": {
|
||||
"player": "mpv"
|
||||
},
|
||||
"siteconfig": {
|
||||
"9anime": {
|
||||
"domain_extension": "to",
|
||||
"server": "mp4upload",
|
||||
"version": "subbed"
|
||||
},
|
||||
"anime8": {
|
||||
"include_special_eps": false,
|
||||
"servers": [
|
||||
"fserver",
|
||||
"fdserver",
|
||||
"oserver"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animebinge": {
|
||||
"servers": [
|
||||
"mp4upload",
|
||||
"xstreamcdn",
|
||||
"trollvid"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animedaisuki": {
|
||||
"servers": [
|
||||
"official"
|
||||
]
|
||||
},
|
||||
"animeflix": {
|
||||
"fallback_servers": [
|
||||
"FastStream"
|
||||
],
|
||||
"server": "AUEngine",
|
||||
"version": "sub"
|
||||
},
|
||||
"animeflv": {
|
||||
"server": "natsuki",
|
||||
"servers": [
|
||||
"stape",
|
||||
"natsuki",
|
||||
"gocdn",
|
||||
"yu",
|
||||
"fembed"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animekisa": {
|
||||
"fallback_servers": [
|
||||
"mp4upload",
|
||||
"vidstream"
|
||||
],
|
||||
"server": "gcloud"
|
||||
},
|
||||
"animeonline360": {
|
||||
"version": "subbed"
|
||||
},
|
||||
"animerush": {
|
||||
"fallback_servers": [
|
||||
"MP4Upload",
|
||||
"Mp4upload Video",
|
||||
"Youruploads Video"
|
||||
],
|
||||
"server": "Mp4uploadHD Video",
|
||||
"servers": [
|
||||
"Mp4uploadHD Video",
|
||||
"MP4Upload",
|
||||
"Mp4upload Video",
|
||||
"Youruploads Video"
|
||||
]
|
||||
},
|
||||
"animesimple": {
|
||||
"server": "trollvid",
|
||||
"servers": [
|
||||
"vidstreaming",
|
||||
"trollvid",
|
||||
"mp4upload",
|
||||
"xstreamcdn"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animesuge": {
|
||||
"servers": [
|
||||
"mp4upload",
|
||||
"streamtape"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animetake": {
|
||||
"servers": [
|
||||
"gstore",
|
||||
"hydrax",
|
||||
"fembed",
|
||||
"vidstreaming",
|
||||
"mixdrop"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"animevibe": {
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"3rdparty",
|
||||
"mp4upload",
|
||||
"hydrax",
|
||||
"gcloud",
|
||||
"fembed"
|
||||
]
|
||||
},
|
||||
"animixplay": {
|
||||
"server": "vidstream",
|
||||
"v5-servers": [
|
||||
"mp4up",
|
||||
"stape"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"anistream.xyz": {
|
||||
"version": "subbed"
|
||||
},
|
||||
"darkanime": {
|
||||
"servers": [
|
||||
"mp4upload",
|
||||
"trollvid"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"dbanimes": {
|
||||
"servers": [
|
||||
"mixdrop",
|
||||
"gounlimited",
|
||||
"vudeo",
|
||||
"fembed",
|
||||
"sendvid"
|
||||
]
|
||||
},
|
||||
"dreamanime": {
|
||||
"server": "trollvid",
|
||||
"version": "subbed"
|
||||
},
|
||||
"dubbedanime": {
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"mp4upload",
|
||||
"trollvid"
|
||||
],
|
||||
"version": "dubbed"
|
||||
},
|
||||
"egyanime": {
|
||||
"servers": [
|
||||
"clipwatching",
|
||||
"streamtape"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"gogoanime": {
|
||||
"server": "cdn",
|
||||
"version": "subbed"
|
||||
},
|
||||
"justdubs": {
|
||||
"servers": [
|
||||
"mp4upload",
|
||||
"gcloud"
|
||||
]
|
||||
},
|
||||
"kickass": {
|
||||
"ext_fallback_servers": [
|
||||
"Mp4Upload",
|
||||
"Vidcdn",
|
||||
"Vidstreaming"
|
||||
],
|
||||
"fallback_servers": [
|
||||
"ORIGINAL-QUALITY-V2",
|
||||
"HTML5-HQ",
|
||||
"HTML5",
|
||||
"A-KICKASSANIME",
|
||||
"BETAPLAYER",
|
||||
"KICKASSANIME",
|
||||
"DEVSTREAM"
|
||||
],
|
||||
"server": "A-KICKASSANIME"
|
||||
},
|
||||
"kissanime": {
|
||||
"version": "subbed"
|
||||
},
|
||||
"kissanimex": {
|
||||
"version": "subbed"
|
||||
},
|
||||
"kisscartoon": {
|
||||
"servers": [
|
||||
"mpserver",
|
||||
"yuserver",
|
||||
"oserver",
|
||||
"xserver",
|
||||
"ptserver"
|
||||
]
|
||||
},
|
||||
"nineanime": {
|
||||
"server": "mp4upload"
|
||||
},
|
||||
"nyaa": {
|
||||
"category": "English-translated",
|
||||
"filter": "Trusted only"
|
||||
},
|
||||
"putlockers": {
|
||||
"servers": [
|
||||
"eplay",
|
||||
"mixdrop"
|
||||
],
|
||||
"version": "dubbed"
|
||||
},
|
||||
"ryuanime": {
|
||||
"server": "trollvid",
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"mp4upload",
|
||||
"xstreamcdn",
|
||||
"trollvid"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"vidstream": {
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"gcloud",
|
||||
"mp4upload",
|
||||
"cloud9",
|
||||
"hydrax"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"voiranime": {
|
||||
"servers": [
|
||||
"gounlimited"
|
||||
]
|
||||
},
|
||||
"vostfree": {
|
||||
"server": "sibnet"
|
||||
},
|
||||
"watchmovie": {
|
||||
"fallback_servers": [
|
||||
"fembed",
|
||||
"yourupload",
|
||||
"mp4upload"
|
||||
],
|
||||
"server": "gcloud",
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"gcloud",
|
||||
"yourupload",
|
||||
"hydrax"
|
||||
],
|
||||
"version": "subbed"
|
||||
},
|
||||
"yify": {
|
||||
"servers": [
|
||||
"vidstream",
|
||||
"yify"
|
||||
]
|
||||
}
|
||||
},
|
||||
"watch": {
|
||||
"autoplay_next": true,
|
||||
"fallback_qualities": [
|
||||
"720p",
|
||||
"480p",
|
||||
"360p"
|
||||
],
|
||||
"log_level": "INFO",
|
||||
"mpv_arguments": "",
|
||||
"provider": "anitube",
|
||||
"quality": "1080p"
|
||||
}
|
||||
}
|
22
roles/anime-downloader/tasks/main.yml
Normal file
22
roles/anime-downloader/tasks/main.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/anime-downloader
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
copy:
|
||||
src: config.json
|
||||
dest: ~/.config/anime-downloader/config.json
|
||||
force: yes
|
||||
|
||||
- name: Install anime-downloader with pip
|
||||
pip:
|
||||
name: anime-downloader
|
||||
virtualenv: ~/.config/anime-downloader/venv
|
||||
|
||||
- name: Symlink anime executable
|
||||
file:
|
||||
src: ~/.config/anime-downloader/venv/bin/anime
|
||||
dest: ~/.local/bin/anime
|
||||
state: link
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- name: Copy config
|
||||
copy:
|
||||
src: bashrc
|
||||
dest: ~/.bashrc
|
||||
force: yes
|
11
roles/bat/tasks/main.yml
Normal file
11
roles/bat/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/bat
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/bat/config
|
||||
force: yes
|
9
roles/bat/templates/config.j2
Normal file
9
roles/bat/templates/config.j2
Normal file
|
@ -0,0 +1,9 @@
|
|||
{% if theme == 'nord' %}
|
||||
--theme="Nord"
|
||||
{% elif theme == 'onedark' %}
|
||||
--theme="TwoDark"
|
||||
{% endif %}
|
||||
--color=always
|
||||
--italic-text=always
|
||||
--pager="less -R"
|
||||
--style="plain"
|
11
roles/cava/tasks/main.yml
Normal file
11
roles/cava/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/cava
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/cava/config
|
||||
force: yes
|
191
roles/cava/templates/config.j2
Normal file
191
roles/cava/templates/config.j2
Normal file
|
@ -0,0 +1,191 @@
|
|||
## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting.
|
||||
|
||||
|
||||
[general]
|
||||
|
||||
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
|
||||
; mode = normal
|
||||
|
||||
# Accepts only non-negative values.
|
||||
; framerate = 60
|
||||
|
||||
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
|
||||
# new as of 0.6.0 autosens of low values (dynamic range)
|
||||
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
|
||||
; autosens = 1
|
||||
; overshoot = 20
|
||||
|
||||
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
|
||||
# 200 means double height. Accepts only non-negative values.
|
||||
; sensitivity = 100
|
||||
|
||||
# The number of bars (0-200). 0 sets it to auto (fill up console).
|
||||
# Bars' width and space between bars in number of characters.
|
||||
; bars = 0
|
||||
; bar_width = 2
|
||||
; bar_spacing = 1
|
||||
|
||||
# For SDL width and space between bars is in pixels, defaults are:
|
||||
; bar_width = 20
|
||||
; bar_spacing = 5
|
||||
|
||||
|
||||
# Lower and higher cutoff frequencies for lowest and highest bars
|
||||
# the bandwidth of the visualizer.
|
||||
# Note: there is a minimum total bandwidth of 43Mhz x number of bars.
|
||||
# Cava will automatically increase the higher cutoff if a too low band is specified.
|
||||
; lower_cutoff_freq = 50
|
||||
; higher_cutoff_freq = 10000
|
||||
|
||||
|
||||
# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and
|
||||
# only check for input once per second. Cava will wake up once input is detected. 0 = disable.
|
||||
; sleep_timer = 0
|
||||
|
||||
|
||||
[input]
|
||||
|
||||
# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem'
|
||||
# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with.
|
||||
#
|
||||
# All input methods uses the same config variable 'source'
|
||||
# to define where it should get the audio.
|
||||
#
|
||||
# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink
|
||||
# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them).
|
||||
#
|
||||
# For alsa 'source' will be the capture device.
|
||||
# For fifo 'source' will be the path to fifo-file.
|
||||
# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address
|
||||
; method = pulse
|
||||
; source = auto
|
||||
|
||||
; method = alsa
|
||||
; source = hw:Loopback,1
|
||||
|
||||
; method = fifo
|
||||
; source = /tmp/mpd.fifo
|
||||
; sample_rate = 44100
|
||||
; sample_bits = 16
|
||||
|
||||
; method = shmem
|
||||
; source = /squeezelite-AA:BB:CC:DD:EE:FF
|
||||
|
||||
; method = portaudio
|
||||
; source = auto
|
||||
|
||||
|
||||
[output]
|
||||
|
||||
# Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'.
|
||||
# 'noncurses' uses a custom framebuffer technique and prints only changes
|
||||
# from frame to frame in the terminal. 'ncurses' is default if supported.
|
||||
#
|
||||
# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data
|
||||
# stream of the bar heights that can be used to send to other applications.
|
||||
# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above.
|
||||
#
|
||||
# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context.
|
||||
; method = ncurses
|
||||
|
||||
# Visual channels. Can be 'stereo' or 'mono'.
|
||||
# 'stereo' mirrors both channels with low frequencies in center.
|
||||
# 'mono' outputs left to right lowest to highest frequencies.
|
||||
# 'mono_option' set mono to either take input from 'left', 'right' or 'average'.
|
||||
; channels = stereo
|
||||
; mono_option = average
|
||||
|
||||
# Raw output target. A fifo will be created if target does not exist.
|
||||
; raw_target = /dev/stdout
|
||||
|
||||
# Raw data format. Can be 'binary' or 'ascii'.
|
||||
; data_format = binary
|
||||
|
||||
# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530).
|
||||
; bit_format = 16bit
|
||||
|
||||
# Ascii max value. In 'ascii' mode range will run from 0 to value specified here
|
||||
; ascii_max_range = 1000
|
||||
|
||||
# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters.
|
||||
# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)).
|
||||
; bar_delimiter = 59
|
||||
; frame_delimiter = 10
|
||||
|
||||
# sdl window size and position. -1,-1 is centered.
|
||||
; sdl_width = 1000
|
||||
; sdl_height = 500
|
||||
; sdl_x = -1
|
||||
; sdl_y= -1
|
||||
|
||||
[color]
|
||||
|
||||
# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow.
|
||||
# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires
|
||||
# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt.
|
||||
# if supported, ncurses mode will be forced on if user defined colors are used.
|
||||
# default is to keep current terminal color
|
||||
; background = default
|
||||
; foreground = default
|
||||
|
||||
# SDL only support hex code colors, these are the default:
|
||||
; background = '#111111'
|
||||
; foreground = '#33cccc'
|
||||
|
||||
|
||||
# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported,
|
||||
# background must also be defined in hex or remain commented out. 1 = on, 0 = off.
|
||||
# You can define as many as 8 different colors. They range from bottom to top of screen
|
||||
gradient = 1
|
||||
gradient_count = 8
|
||||
{% if theme == 'nord' %}
|
||||
gradient_color_1 = '{{ purple }}'
|
||||
gradient_color_2 = '{{ blue }}'
|
||||
gradient_color_3 = '{{ cyan }}'
|
||||
gradient_color_4 = '{{ teal }}'
|
||||
gradient_color_5 = '{{ green }}'
|
||||
gradient_color_6 = '{{ yellow }}'
|
||||
gradient_color_7 = '{{ orange }}'
|
||||
gradient_color_8 = '{{ red }}'
|
||||
{% elif theme == 'onedark' %}
|
||||
gradient_color_1 = '{{ violet }}'
|
||||
gradient_color_2 = '{{ blue }}'
|
||||
gradient_color_3 = '{{ cyan }}'
|
||||
gradient_color_4 = '{{ green }}'
|
||||
gradient_color_5 = '{{ yellow }}'
|
||||
gradient_color_6 = '{{ orange }}'
|
||||
gradient_color_7 = '{{ red }}'
|
||||
gradient_color_8 = '{{ dark_red }}'
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
[smoothing]
|
||||
|
||||
# Percentage value for integral smoothing. Takes values from 0 - 100.
|
||||
# Higher values means smoother, but less precise. 0 to disable.
|
||||
; integral = 77
|
||||
|
||||
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
|
||||
; monstercat = 0
|
||||
; waves = 0
|
||||
|
||||
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
|
||||
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
|
||||
; gravity = 100
|
||||
|
||||
|
||||
# In bar height, bars that would have been lower that this will not be drawn.
|
||||
; ignore = 0
|
||||
|
||||
|
||||
[eq]
|
||||
|
||||
# This one is tricky. You can have as much keys as you want.
|
||||
# Remember to uncomment more then one key! More keys = more precision.
|
||||
# Look at readme.md on github for further explanations and examples.
|
||||
1 = 2 # bass
|
||||
2 = 2
|
||||
3 = 1 # midtone
|
||||
4 = 1
|
||||
5 = 0.5 # treble
|
|
@ -1,9 +1,4 @@
|
|||
---
|
||||
- name: Check the name of notification daemon
|
||||
fail:
|
||||
msg: The daemon needs to be 'dunst' or 'mako'
|
||||
when: notification != 'dunst' and notification != 'mako'
|
||||
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: '~/.config/{{ notification }}'
|
||||
|
@ -13,19 +8,17 @@
|
|||
synchronize:
|
||||
src: icons/
|
||||
dest: '~/.config/{{ notification }}/'
|
||||
recursive: yes
|
||||
delete: yes
|
||||
|
||||
- name: Copy config
|
||||
- name: Copy dunst config
|
||||
template:
|
||||
src: dunstrc.j2
|
||||
dest: ~/.config/dunst/dunstrc
|
||||
force: yes
|
||||
when: notification == 'dunst'
|
||||
|
||||
- name: Copy config
|
||||
- name: Copy mako config
|
||||
template:
|
||||
src: mako_config.j2
|
||||
src: config.j2
|
||||
dest: ~/.config/mako/config
|
||||
force: yes
|
||||
when: notification == 'mako'
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
# dynamic width from 0 to 300
|
||||
# width = (0, 300)
|
||||
# constant width of 300
|
||||
width = 300
|
||||
width = (300, 500)
|
||||
|
||||
# The maximum height of a single notification, excluding the frame.
|
||||
height = 300
|
||||
|
|
47
roles/element-desktop/files/config.json
Normal file
47
roles/element-desktop/files/config.json
Normal file
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"settingDefaults": {
|
||||
"custom_themes": [
|
||||
{
|
||||
"name": "Nord",
|
||||
"is_dark": true,
|
||||
"colors": {
|
||||
"accent-color": "#a3be8c",
|
||||
"primary-color": "#88c0d0",
|
||||
"warning-color": "#bf616a",
|
||||
"sidebar-color": "#2e3440",
|
||||
"roomlist-background-color": "#434c5e",
|
||||
"roomlist-text-color": "#ebcb8b",
|
||||
"roomlist-text-secondary-color": "#e5e9f0",
|
||||
"roomlist-highlights-color": "#2e3440",
|
||||
"roomlist-separator-color": "#3b4252",
|
||||
"timeline-background-color": "#3b4252",
|
||||
"timeline-text-color": "#eceff4",
|
||||
"timeline-text-secondary-color": "#81a1c1",
|
||||
"timeline-highlights-color": "#434c5e",
|
||||
"reaction-row-button-selected-bg-color": "#bf616a"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "OneDark",
|
||||
"is_dark": true,
|
||||
"colors": {
|
||||
"accent-color": "#98c379",
|
||||
"primary-color": "#56b6c2",
|
||||
"warning-color": "#e06c75",
|
||||
"sidebar-color": "#282c34",
|
||||
"roomlist-background-color": "#4b5263",
|
||||
"roomlist-text-color": "#e5c07b",
|
||||
"roomlist-text-secondary-color": "#bbc2cf",
|
||||
"roomlist-highlights-color": "#282c34",
|
||||
"roomlist-separator-color": "#3e4452",
|
||||
"timeline-background-color": "#3e4452",
|
||||
"timeline-text-color": "#bbc2cf",
|
||||
"timeline-text-secondary-color": "#61afef",
|
||||
"timeline-highlights-color": "#4b5263",
|
||||
"reaction-row-button-selected-bg-color": "#e06c75"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"showLabsSettings": true
|
||||
}
|
11
roles/element-desktop/tasks/main.yml
Normal file
11
roles/element-desktop/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/Element
|
||||
state: directory
|
||||
|
||||
- name: Copy theme config
|
||||
copy:
|
||||
src: config.json
|
||||
dest: ~/.config/Element/config.json
|
||||
force: yes
|
BIN
roles/emacs/files/doom/images/kokkoro.png
Normal file
BIN
roles/emacs/files/doom/images/kokkoro.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 285 KiB |
BIN
roles/emacs/files/doom/images/miku.png
Normal file
BIN
roles/emacs/files/doom/images/miku.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 271 KiB |
BIN
roles/emacs/files/doom/images/yui.png
Normal file
BIN
roles/emacs/files/doom/images/yui.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 261 KiB |
BIN
roles/emacs/files/doom/images/yukino.png
Normal file
BIN
roles/emacs/files/doom/images/yukino.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 296 KiB |
207
roles/emacs/files/doom/init.el
Normal file
207
roles/emacs/files/doom/init.el
Normal file
|
@ -0,0 +1,207 @@
|
|||
;;; init.el -*- lexical-binding: t; -*-
|
||||
|
||||
(doom! :input
|
||||
;;chinese
|
||||
;;japanese
|
||||
;;layout ; auie,ctsrnm is the superior home row
|
||||
|
||||
:completion
|
||||
(company ; the ultimate code completion backend
|
||||
+childframe)
|
||||
;;helm ; the *other* search engine for love and life
|
||||
;;ido ; the other *other* search engine...
|
||||
(ivy ; a search engine for love and life
|
||||
+fuzzy
|
||||
+prescient
|
||||
+icons)
|
||||
;;vertico ; the search engine of the future
|
||||
|
||||
:ui
|
||||
;;deft ; notational velocity for Emacs
|
||||
doom ; what makes DOOM look the way it does
|
||||
doom-dashboard ; a nifty splash screen for Emacs
|
||||
doom-quit ; DOOM quit-message prompts when you quit Emacs
|
||||
(emoji ; :)
|
||||
+unicode
|
||||
+ascii
|
||||
+github)
|
||||
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
|
||||
;;hydra
|
||||
indent-guides ; highlighted indent columns
|
||||
;;(ligatures +extra); ligatures and symbols to make your code pretty again
|
||||
;;minimap ; show a map of the code on the side
|
||||
modeline ; snazzy, Atom-inspired modeline, plus API
|
||||
nav-flash ; blink cursor line after big motions
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup ; tame sudden yet inevitable temporary windows
|
||||
+all
|
||||
+defaults)
|
||||
;;tabs ; a tab bar for Emacs
|
||||
(treemacs +lsp) ; a project drawer, like neotree but cooler
|
||||
unicode ; extended unicode support for various languages
|
||||
vc-gutter ; vcs diff in the fringe
|
||||
;;vi-tilde-fringe ; fringe tildes to mark beyond EOB
|
||||
(window-select ; visually switch windows
|
||||
+numbers)
|
||||
workspaces ; tab emulation, persistence & separate workspaces
|
||||
zen ; distraction-free coding or writing
|
||||
|
||||
:editor
|
||||
(evil +everywhere); come to the dark side, we have cookies
|
||||
file-templates ; auto-snippets for empty files
|
||||
fold ; (nigh) universal code folding
|
||||
;;(format +onsave) ; automated prettiness
|
||||
;;god ; run Emacs commands without modifier keys
|
||||
;;lispy ; vim for lisp, for people who don't like vim
|
||||
multiple-cursors ; editing in many places at once
|
||||
;;objed ; text object editing for the innocent
|
||||
parinfer ; turn lisp into python, sort of
|
||||
;;rotate-text ; cycle region at point between text candidates
|
||||
snippets ; my elves. They type so I don't have to
|
||||
;;word-wrap ; soft wrapping with language-aware indent
|
||||
|
||||
:emacs
|
||||
(dired ; making dired pretty [functional]
|
||||
+ranger
|
||||
+icons)
|
||||
electric ; smarter, keyword-based electric-indent
|
||||
(ibuffer +icons) ; interactive buffer management
|
||||
undo ; persistent, smarter undo for your inevitable mistakes
|
||||
vc ; version-control and Emacs, sitting in a tree
|
||||
|
||||
:term
|
||||
eshell ; the elisp shell that works everywhere
|
||||
;;shell ; simple shell REPL for Emacs
|
||||
;;term ; basic terminal emulator for Emacs
|
||||
;;vterm ; the best terminal emulation in Emacs
|
||||
|
||||
:checkers
|
||||
syntax ; tasing you for every semicolon you forget
|
||||
(spell ; tasing you for misspelling misspelling
|
||||
+everywhere
|
||||
+hunspell
|
||||
+flyspell)
|
||||
grammar ; tasing grammar mistake every you make
|
||||
|
||||
:tools
|
||||
ansible
|
||||
(debugger +lsp) ; FIXME stepping through code, to help you add bugs
|
||||
direnv
|
||||
docker
|
||||
editorconfig ; let someone else argue about tabs vs spaces
|
||||
;;ein ; tame Jupyter notebooks with emacs
|
||||
(eval +overlay) ; run code, run (also, repls)
|
||||
;;gist ; interacting with github gists
|
||||
(lookup ; navigate your code and its documentation
|
||||
+dictionary
|
||||
+docsets)
|
||||
(lsp +peek)
|
||||
(magit +forge) ; a git porcelain for Emacs
|
||||
make ; run make tasks from Emacs
|
||||
;;pass ; password manager for nerds
|
||||
pdf ; pdf enhancements
|
||||
;;prodigy ; FIXME managing external services & code builders
|
||||
rgb ; creating color strings
|
||||
;;taskrunner ; taskrunner for all your projects
|
||||
;;terraform ; infrastructure as code
|
||||
;;tmux ; an API for interacting with tmux
|
||||
;;upload ; map local to remote projects via ssh/ftp
|
||||
|
||||
:os
|
||||
;;(:if IS-MAC macos); improve compatibility with macOS
|
||||
;;tty ; improve the terminal Emacs experience
|
||||
|
||||
:lang
|
||||
;;agda ; types of types of types of types...
|
||||
;;(beancount +lsp) ; the accounting system in Emacs
|
||||
(cc +lsp) ; C/C++/Obj-C madness
|
||||
clojure ; java with a lisp
|
||||
common-lisp ; if you've seen one lisp, you've seen them all
|
||||
;;coq ; proofs-as-programs
|
||||
;;crystal ; ruby at the speed of c
|
||||
;;csharp ; unity, .NET, and mono shenanigans
|
||||
data ; config/data formats
|
||||
;;(dart +flutter) ; paint ui and not much else
|
||||
;;dhall
|
||||
;;elixir ; erlang done right
|
||||
;;elm ; care for a cup of TEA?
|
||||
emacs-lisp ; drown in parentheses
|
||||
;;erlang ; an elegant language for a more civilized age
|
||||
;;ess ; emacs speaks statistics
|
||||
;;factor
|
||||
;;faust ; dsp, but you get to keep your soul
|
||||
;;fsharp ; ML stands for Microsoft's Language
|
||||
;;fstar ; (dependent) types and (monadic) effects and Z3
|
||||
;;gdscript ; the language you waited for
|
||||
go ; the hipster dialect
|
||||
;;(haskell +dante) ; a language that's lazier than I am
|
||||
;;hy ; readability of scheme w/ speed of python
|
||||
;;idris ;
|
||||
json ; At least it ain't XML
|
||||
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
|
||||
javascript ; all(hope(abandon(ye(who(enter(here))))))
|
||||
;;julia ; a better, faster MATLAB
|
||||
;;kotlin ; a better, slicker Java(Script)
|
||||
(latex ; writing papers in Emacs has never been so fun
|
||||
+latexmk
|
||||
+cdlatex
|
||||
+lsp
|
||||
+fold)
|
||||
;;lean ; for folks with too much to prove
|
||||
;;ledger ; be audit you can be
|
||||
(lua ; one-based indices? one-based indices
|
||||
+moonscript)
|
||||
(markdown +grip) ; writing docs for people to ignore
|
||||
;;nim ; python + lisp at the speed of c
|
||||
;;nix ; I hereby declare "nix geht mehr!"
|
||||
;;ocaml ; an objective camel
|
||||
(org ; organize your plain life in plain text
|
||||
+pretty
|
||||
+journal
|
||||
+noter
|
||||
+pandoc)
|
||||
;;php ; perl's insecure younger brother
|
||||
;;plantuml ; diagrams for confusing people more
|
||||
;;purescript ; javascript, but functional
|
||||
(python ; beautiful is better than ugly
|
||||
+lsp
|
||||
;;+pyenv
|
||||
;;+poetry
|
||||
+pyright
|
||||
+cpython)
|
||||
qt ; the 'cutest' gui framework ever
|
||||
;;racket ; a DSL for DSLs
|
||||
;;raku ; the artist formerly known as perl6
|
||||
rest ; Emacs as a REST client
|
||||
;;rst ; ReST in peace
|
||||
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
|
||||
rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
|
||||
;;scala ; java, but good
|
||||
(scheme +guile) ; a fully conniving family of lisps
|
||||
(sh ; she sells {ba,z,fi}sh shells on the C xor
|
||||
+fish)
|
||||
;;sml
|
||||
;;solidity ; do you need a blockchain? No.
|
||||
;;swift ; who asked for emoji variables?
|
||||
;;terra ; Earth and Moon in alignment for performance.
|
||||
web ; the tubes
|
||||
yaml ; JSON, but readable
|
||||
zig ; C, but simpler
|
||||
|
||||
:email
|
||||
;;(mu4e +org +gmail)
|
||||
;;notmuch
|
||||
;;(wanderlust +gmail)
|
||||
|
||||
:app
|
||||
calendar
|
||||
;;emms
|
||||
;;everywhere ; *leave* Emacs!? You must be joking
|
||||
;;irc ; how neckbeards socialize
|
||||
;;(rss +org) ; emacs as an RSS reader
|
||||
;;twitter ; twitter client https://twitter.com/vnought
|
||||
|
||||
:config
|
||||
;;literate
|
||||
(default +bindings +smartparens))
|
10
roles/emacs/files/doom/packages.el
Normal file
10
roles/emacs/files/doom/packages.el
Normal file
|
@ -0,0 +1,10 @@
|
|||
;; -*- no-byte-compile: t; -*-
|
||||
;;; $DOOMDIR/packages.el
|
||||
|
||||
;; (package! xonsh-mode)
|
||||
(package! vimrc-mode)
|
||||
(package! all-the-icons-ivy-rich)
|
||||
(package! nerd-fonts
|
||||
:recipe (:host github :repo "FollieHiyuki/nerd-fonts.el"))
|
||||
(package! keycast)
|
||||
(package! org-tree-slide)
|
46
roles/emacs/tasks/main.yml
Normal file
46
roles/emacs/tasks/main.yml
Normal file
|
@ -0,0 +1,46 @@
|
|||
---
|
||||
- name: Create doom directory
|
||||
file:
|
||||
path: ~/.config/doom
|
||||
state: directory
|
||||
|
||||
- name: Copy files
|
||||
synchronize:
|
||||
src: doom/
|
||||
dest: ~/.config/doom/
|
||||
recursive: yes
|
||||
|
||||
- name: Copy doom config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/doom/config.el
|
||||
force: yes
|
||||
|
||||
- name: Clone Doom Emacs
|
||||
git:
|
||||
depth: 1
|
||||
update: yes
|
||||
repo: https://github.com/hlissner/doom-emacs.git
|
||||
dest: ~/.config/emacs
|
||||
|
||||
- name: Run 'doom install'
|
||||
command:
|
||||
cmd: ~/.config/emacs/bin/doom -y install
|
||||
creates: ~/.config/emacs/.local/env
|
||||
|
||||
- name: Clone and build parinfer-rust
|
||||
vars:
|
||||
- parinfer_dir: ~/.config/emacs/.local/etc/parinfer-rust
|
||||
block:
|
||||
- name: Clone parinfer-rust
|
||||
git:
|
||||
depth: 1
|
||||
update: yes
|
||||
repo: https://github.com/eraserhd/parinfer-rust.git
|
||||
dest: '{{ parinfer_dir }}'
|
||||
|
||||
- name: Build parinfer-rust
|
||||
command: cargo build --release --features emacs
|
||||
args:
|
||||
chdir: '{{ parinfer_dir }}'
|
||||
creates: '{{ parinfer_dir }}/target/release/libparinfer_rust.so'
|
244
roles/emacs/templates/config.j2
Normal file
244
roles/emacs/templates/config.j2
Normal file
|
@ -0,0 +1,244 @@
|
|||
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; Some functionality uses this to identify you
|
||||
(setq user-full-name "{{ user_name }}"
|
||||
user-mail-address "{{ user_email }}")
|
||||
|
||||
;; Better default settings
|
||||
(setq-default
|
||||
;; Tab vs space
|
||||
indent-tabs-mode nil
|
||||
tab-width 4
|
||||
evil-shift-width 4
|
||||
standard-indent 4
|
||||
line-spacing 2
|
||||
;; From @tecosaur
|
||||
delete-by-moving-to-trash t
|
||||
window-combination-resize t
|
||||
x-stretch-cursor t)
|
||||
(setq undo-limit 80000000
|
||||
evil-want-fine-undo t
|
||||
auto-save-default t
|
||||
truncate-string-ellipsis "…")
|
||||
(global-subword-mode 1) ;; Use CamelCase words
|
||||
|
||||
;; Font settings
|
||||
(setq doom-font (font-spec :family "Iosevka" :size 18 :weight 'semi-light)
|
||||
doom-serif-font (font-spec :family "Iosevka Slab" :size 18 :weight 'semi-light)
|
||||
doom-variable-pitch-font (font-spec :family "IBM Plex Sans" :size 18)
|
||||
doom-big-font (font-spec :family "Iosevka" :size 26 :weight 'semi-light))
|
||||
(after! unicode-fonts
|
||||
(setq doom-unicode-font doom-font)
|
||||
(dolist (unicode-block '("CJK Compatibility"
|
||||
"CJK Compatibility Forms"
|
||||
"CJK Compatibility Ideographs"
|
||||
"CJK Compatibility Ideographs Supplement"
|
||||
"CJK Radicals Supplement"
|
||||
"CJK Strokes"
|
||||
"CJK Symbols and Punctuation"
|
||||
"CJK Unified Ideographs"
|
||||
"CJK Unified Ideographs Extension A"
|
||||
"CJK Unified Ideographs Extension B"
|
||||
"CJK Unified Ideographs Extension C"
|
||||
"CJK Unified Ideographs Extension D"
|
||||
"CJK Unified Ideographs Extension E"))
|
||||
(push "{{ cjk_font }}" (cadr (assoc unicode-block unicode-fonts-block-font-mapping)))))
|
||||
;;(setq inhibit-compacting-font-caches t)
|
||||
(custom-set-faces!
|
||||
'(font-lock-comment-face :slant italic)
|
||||
'(font-lock-keyword-face :weight bold))
|
||||
|
||||
;; Japanese input method
|
||||
;; (use-package! mozc
|
||||
;; :config
|
||||
;; (setq default-input-method "japanese-mozc"))
|
||||
(after! doom-modeline
|
||||
(setq doom-modeline-major-mode-icon t
|
||||
doom-modeline-major-mode-color-icon t
|
||||
doom-modeline-buffer-encoding t
|
||||
doom-modeline-enable-word-count t
|
||||
doom-modeline-unicode-fallback t))
|
||||
(custom-set-faces!
|
||||
'(doom-modeline-buffer-modified :foreground "orange"))
|
||||
|
||||
;; Window split position
|
||||
(setq evil-vsplit-window-right t
|
||||
evil-split-window-below t)
|
||||
|
||||
;; Emoji
|
||||
(after! emojify
|
||||
(setq emojify-display-style 'unicode))
|
||||
|
||||
{% if theme == 'nord' %}
|
||||
(setq doom-theme 'doom-nord)
|
||||
{% elif theme == 'onedark' %}
|
||||
(setq doom-theme 'doom-one)
|
||||
{% endif %}
|
||||
(setq doom-themes-enable-bold t
|
||||
doom-themes-enable-italic t)
|
||||
(after! treemacs
|
||||
(setq doom-themes-treemacs-theme 'doom-colors
|
||||
doom-themes-treemacs-enable-variable-pitch nil))
|
||||
|
||||
;; Pick an image for dashboard
|
||||
(defun random-choice (items)
|
||||
(let* ((size (length items))
|
||||
(index (random size)))
|
||||
(nth index items)))
|
||||
(defvar kawaii (random-choice (delete "."
|
||||
(delete ".." (directory-files (expand-file-name "images" doom-private-dir))))))
|
||||
(setq +doom-dashboard-banner-file kawaii
|
||||
+doom-dashboard-banner-dir (expand-file-name "images" doom-private-dir)
|
||||
+doom-dashboard-banner-padding '(0 . 2)
|
||||
+doom-dashboard-functions '(doom-dashboard-widget-banner
|
||||
doom-dashboard-widget-shortmenu
|
||||
doom-dashboard-widget-loaded))
|
||||
|
||||
(setq display-line-numbers-type 'relative)
|
||||
(setq global-hl-line-modes nil)
|
||||
|
||||
;; Git-gutter
|
||||
(after! git-gutter
|
||||
(setq +vc-gutter-default-style nil))
|
||||
|
||||
;; Indent
|
||||
(after! highlight-indent-guides
|
||||
(setq highlight-indent-guides-method 'character
|
||||
highlight-indent-guides-responsive t))
|
||||
|
||||
;; Use ranger.el instead of default dired
|
||||
(after! ranger
|
||||
(setq ranger-parent-depth 0
|
||||
ranger-cleanup-eagerly t
|
||||
ranger-show-hidden t
|
||||
ranger-max-preview-size 20
|
||||
ranger-dont-show-binary t))
|
||||
|
||||
;; Projectile
|
||||
(after! projectile
|
||||
(setq projectile-project-search-path '("~/Code/")
|
||||
projectile-auto-discover nil))
|
||||
|
||||
(use-package! all-the-icons-ivy-rich
|
||||
:defer-incrementally counsel-projectile
|
||||
:init (all-the-icons-ivy-rich-mode 1)
|
||||
:config
|
||||
(setq all-the-icons-ivy-rich-icon-size 1.0))
|
||||
(use-package! ivy-rich
|
||||
:after all-the-icons-ivy-rich)
|
||||
|
||||
;; Company
|
||||
(after! company
|
||||
(setq company-idle-delay 0.5
|
||||
company-minimum-prefix-length 2
|
||||
company-show-numbers nil))
|
||||
|
||||
;; lsp
|
||||
(use-package! lsp-treemacs
|
||||
:after (treemacs lsp)
|
||||
:config
|
||||
(lsp-treemacs-sync-mode 1))
|
||||
(setq lsp-clients-clangd-args '("-j=2"
|
||||
"--background-index"
|
||||
"--clang-tidy"
|
||||
"--completion-style=detailed"
|
||||
"--pch-storage=memory"
|
||||
"--header-insertion=iwyu"
|
||||
"--header-insertion-decorators"))
|
||||
(after! lsp-clangd (set-lsp-priority! 'clangd 2)) ;; Prefer clangd than the default ccls
|
||||
|
||||
;; Quicker which-key
|
||||
(after! which-key
|
||||
(setq which-key-idle-delay 0.5))
|
||||
|
||||
(use-package! parinfer-rust-mode
|
||||
:init
|
||||
(setq parinfer-rust-library (concat doom-etc-dir "parinfer-rust/target/release/libparinfer_rust.so")
|
||||
parinfer-rust-auto-download nil))
|
||||
|
||||
(setq org-directory "~/Documents/Org/")
|
||||
(after! org
|
||||
(setq org-default-notes-file "~/Documents/Org/notes.org"
|
||||
org-agenda-files '("~/Documents/Org/agenda/agenda.org" "~/Documents/Org/agenda/archive.org")
|
||||
org-confirm-babel-evaluate nil
|
||||
org-ellipsis "▾"
|
||||
org-log-done t
|
||||
org-log-into-drawser t
|
||||
org-insert-heading-respect-content nil
|
||||
org-hide-emphasis-markers t)
|
||||
(add-to-list 'org-modules 'ol-info)
|
||||
;; Org-noter
|
||||
(setq org-noter-notes-search-path '("~/Documents/Org/noter/"))
|
||||
;; Org-journal
|
||||
(setq org-journal-dir "~/Documents/Org/journal/"))
|
||||
(defun follie/comfy-org-editing ()
|
||||
(setq visual-fill-column-width 100
|
||||
visual-fill-column-center-text t)
|
||||
(visual-fill-column-mode 1)
|
||||
(display-line-numbers-mode -1))
|
||||
(add-hook 'org-mode-hook 'follie/comfy-org-editing)
|
||||
(add-hook! org-mode (electric-indent-local-mode -1))
|
||||
(defun follie/org-toggle-emphasis-markers ()
|
||||
"Toggle emphasis markers in an Org buffer"
|
||||
(interactive)
|
||||
(if org-hide-emphasis-markers
|
||||
(setq org-hide-emphasis-markers nil)
|
||||
(setq org-hide-emphasis-markers t))
|
||||
(org-mode-restart))
|
||||
(map! :map org-mode-map
|
||||
:localleader :desc "org-toggle-emphasis-markers"
|
||||
"z" #'follie/org-toggle-emphasis-markers)
|
||||
|
||||
;; Org-tree-slide
|
||||
(defun follie/presentation-start ()
|
||||
(text-scale-set 2)
|
||||
(hide-mode-line-mode 1))
|
||||
(defun follie/presentation-stop ()
|
||||
(text-scale-set 0)
|
||||
(hide-mode-line-mode -1))
|
||||
(use-package! org-tree-slide
|
||||
:commands org-tree-slide-mode
|
||||
:config
|
||||
(setq org-tree-slide-skip-outline-level 0
|
||||
org-image-actual-width nil
|
||||
org-tree-slide-heading-emphasis t
|
||||
org-tree-slide-modeline-display nil
|
||||
org-tree-slide-header t
|
||||
org-tree-slide-slide-in-effect t
|
||||
org-tree-slide-breadcrumbs " ▶ "
|
||||
org-tree-slide-activate-message "Presentation starto..."
|
||||
org-tree-slide-deactivate-message "Thanks for listening!")
|
||||
(add-hook! 'org-tree-slide-mode-hook #'evil-normalize-keymaps)
|
||||
(add-hook! 'org-tree-slide-play-hook #'follie/presentation-start)
|
||||
(add-hook! 'org-tree-slide-stop-hook #'follie/presentation-stop))
|
||||
|
||||
;; Latex
|
||||
(setq +latex-viewers '(pdf-tools))
|
||||
|
||||
;; Spell checker
|
||||
(after! flyspell
|
||||
(setq flyspell-lazy-idle-seconds 2))
|
||||
|
||||
;; Magit
|
||||
(after! magit
|
||||
(setq magit-diff-refine-hunk 'all))
|
||||
|
||||
;; Keycast
|
||||
(use-package! keycast
|
||||
:commands keycast-mode
|
||||
:config
|
||||
(define-minor-mode keycast-mode
|
||||
"Show current command and its key binding in the mode line."
|
||||
:global t
|
||||
(if keycast-mode
|
||||
(progn
|
||||
(add-hook 'pre-command-hook 'keycast--update t)
|
||||
(add-to-list 'global-mode-string '("" mode-line-keycast " ")))
|
||||
(remove-hook 'pre-command-hook 'keycast--update)
|
||||
(setq global-mode-string (remove '("" mode-line-keycast " ") global-mode-string))))
|
||||
(custom-set-faces!
|
||||
'(keycast-command :inherit doom-modeline-debug
|
||||
:height 0.9)
|
||||
'(keycast-key :inherit custom-modified
|
||||
:height 1.1
|
||||
:weight bold)))
|
|
@ -1,9 +0,0 @@
|
|||
if not pgrep -u "$USER" gpg-agent >/dev/null
|
||||
gpg-agent --daemon --enable-ssh-support >/dev/null
|
||||
end
|
||||
|
||||
if test -z "$SSH_AUTH_SOCK"
|
||||
set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
|
||||
end
|
||||
|
||||
gpg-connect-agent updatestartuptty /bye >/dev/null
|
110
roles/fontconfig/files/fonts.conf
Normal file
110
roles/fontconfig/files/fonts.conf
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<!-- Default font (no fc-match pattern) -->
|
||||
<match>
|
||||
<edit mode="prepend" name="family">
|
||||
<string>Iosevka Aile</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<!-- Default font for the ja_JP locale (no fc-match pattern) -->
|
||||
<match>
|
||||
<test compare="contains" name="lang">
|
||||
<string>ja</string>
|
||||
</test>
|
||||
<edit mode="prepend" name="family">
|
||||
<string>Sarasa Fixed J</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<!-- Default sans-serif font -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>sans-serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Iosevka Aile</string></edit>
|
||||
<edit name="family" mode="append" binding="same"><string>Sarasa Fixed J</string></edit>
|
||||
</match>
|
||||
|
||||
<!-- Default serif fonts -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>serif</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Iosevka Etoile</string></edit>
|
||||
<edit name="family" mode="append" binding="same"><string>Sarasa Fixed Slab J</string></edit>
|
||||
</match>
|
||||
|
||||
<!-- Default monospace fonts -->
|
||||
<match target="pattern">
|
||||
<test qual="any" name="family"><string>monospace</string></test>
|
||||
<edit name="family" mode="prepend" binding="same"><string>Iosevka</string></edit>
|
||||
<edit name="family" mode="append" binding="same"><string>Sarasa Mono J</string></edit>
|
||||
</match>
|
||||
|
||||
<!-- Fallback fonts preference order -->
|
||||
<alias>
|
||||
<family>sans-serif</family>
|
||||
<prefer>
|
||||
<family>Iosevka Aile</family>
|
||||
<family>Noto Sans</family>
|
||||
<family>FreeSans</family>
|
||||
<family>Open Sans</family>
|
||||
<family>Droid Sans</family>
|
||||
<family>Ubuntu</family>
|
||||
<family>Roboto</family>
|
||||
<family>Sarasa Fixed J</family>
|
||||
<family>NotoSansCJK</family>
|
||||
<family>Source Han Sans JP</family>
|
||||
<family>IPAPGothic</family>
|
||||
<family>VL PGothic</family>
|
||||
<family>Koruri</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>serif</family>
|
||||
<prefer>
|
||||
<family>Iosevka Etoile</family>
|
||||
<family>Noto Serif</family>
|
||||
<family>FreeSerif</family>
|
||||
<family>Droid Serif</family>
|
||||
<family>Roboto Slab</family>
|
||||
<family>Sarasa Fixed Slab J</family>
|
||||
<family>IPAPMincho</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<alias>
|
||||
<family>monospace</family>
|
||||
<prefer>
|
||||
<family>Iosevka</family>
|
||||
<family>Noto Sans Mono</family>
|
||||
<family>FreeMono</family>
|
||||
<family>Inconsolatazi4</family>
|
||||
<family>Ubuntu Mono</family>
|
||||
<family>Droid Sans Mono</family>
|
||||
<family>Roboto Mono</family>
|
||||
<family>Sarasa Mono J</family>
|
||||
<family>IPAGothic</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
<!-- <match target="font"> -->
|
||||
<!-- <edit name="antialias" mode="assign"> -->
|
||||
<!-- <bool>true</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="hinting" mode="assign"> -->
|
||||
<!-- <bool>true</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="hintstyle" mode="assign"> -->
|
||||
<!-- <const>hintnone</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="rgba" mode="assign"> -->
|
||||
<!-- <const>none</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="autohint" mode="assign"> -->
|
||||
<!-- <bool>false</bool> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="lcdfilter" mode="assign"> -->
|
||||
<!-- <const>lcdnone</const> -->
|
||||
<!-- </edit> -->
|
||||
<!-- <edit name="dpi" mode="assign"> -->
|
||||
<!-- <double>96</double> -->
|
||||
<!-- </edit> -->
|
||||
<!-- </match> -->
|
||||
</fontconfig>
|
11
roles/fontconfig/tasks/main.yml
Normal file
11
roles/fontconfig/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/fontconfig
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
copy:
|
||||
src: fonts.conf
|
||||
dest: ~/.config/fontconfig/fonts.conf
|
||||
force: yes
|
31
roles/gallery-dl/tasks/main.yml
Normal file
31
roles/gallery-dl/tasks/main.yml
Normal file
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/gallery-dl
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/gallery-dl/config.json
|
||||
force: yes
|
||||
|
||||
# gallery-dl will complain that ~/.local/share/gallery-dl/log.txt is missing
|
||||
# This path is setup inside the config file, so create it as desired
|
||||
- name: Create directory in ~/.local/share
|
||||
file:
|
||||
path: ~/.local/share/gallery-dl
|
||||
state: directory
|
||||
|
||||
- name: Install gallery-dl with pip
|
||||
pip:
|
||||
name:
|
||||
- gallery-dl
|
||||
- yt-dlp
|
||||
virtualenv: ~/.config/gallery-dl/venv
|
||||
|
||||
- name: Symlink gallery-dl executable
|
||||
file:
|
||||
src: ~/.config/gallery-dl/venv/bin/gallery-dl
|
||||
dest: ~/.local/bin/gallery-dl
|
||||
state: link
|
176
roles/gallery-dl/templates/config.j2
Normal file
176
roles/gallery-dl/templates/config.j2
Normal file
|
@ -0,0 +1,176 @@
|
|||
{
|
||||
"extractor": {
|
||||
"archive": "~/.local/share/gallery-dl/archive.sqlite3",
|
||||
"base-directory": "~/Pictures/gallery-dl",
|
||||
"chapter-filter": "lang == 'en'",
|
||||
"chapter-unique": true,
|
||||
"cookies": null,
|
||||
"date-format": "%Y-%m-%dT%H:%M:%S",
|
||||
"image-unique": true,
|
||||
"path-remove": "\u0000-\u001f\u007f",
|
||||
"path-replace": "_",
|
||||
"path-restrict": "unix",
|
||||
"retries": 4,
|
||||
"skip": true,
|
||||
"user-agent": "{{ user_agent }}",
|
||||
"pixiv": {
|
||||
"filename": "{id}_p{num}.{extension}",
|
||||
"directory": [
|
||||
"Pixiv",
|
||||
"{user[name]}-{user[id]}"
|
||||
],
|
||||
"avatar": false,
|
||||
"ugoira": true,
|
||||
"refresh-token": ""
|
||||
},
|
||||
"danbooru": {
|
||||
"ugoira": false
|
||||
},
|
||||
"artstation": {
|
||||
"directory": [
|
||||
"ArtStation",
|
||||
"{user[username]}"
|
||||
],
|
||||
"external": false
|
||||
},
|
||||
"deviantart": {
|
||||
"directory": [
|
||||
"DeviantArt",
|
||||
"{user[id]}"
|
||||
],
|
||||
"flat": true,
|
||||
"extra": false,
|
||||
"include": "gallery,scraps,favorite",
|
||||
"metadata": false,
|
||||
"mature": true,
|
||||
"journals": "text",
|
||||
"original": true,
|
||||
"quality": 100
|
||||
},
|
||||
"mangadex": {
|
||||
"directory": [
|
||||
"Manga",
|
||||
"{manga}",
|
||||
"c{chapter}{chaper_minor} - {title}"
|
||||
],
|
||||
"postprocessors": [
|
||||
{
|
||||
"name": "zip",
|
||||
"compression": "store",
|
||||
"extension": "cbz",
|
||||
"keep-files": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"mangafox": {
|
||||
"directory": [
|
||||
"Manga",
|
||||
"{manga}",
|
||||
"c{chapter}{chaper_minor}"
|
||||
],
|
||||
"postprocessors": [
|
||||
{
|
||||
"name": "zip",
|
||||
"compression": "store",
|
||||
"extension": "cbz",
|
||||
"keep-files": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"manganelo": {
|
||||
"directory": [
|
||||
"Manga",
|
||||
"{manga}",
|
||||
"c{chapter}{chaper_minor} - {title}"
|
||||
],
|
||||
"postprocessors": [
|
||||
{
|
||||
"name": "zip",
|
||||
"compression": "store",
|
||||
"extension": "cbz",
|
||||
"keep-files": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"mangahere": {
|
||||
"directory": [
|
||||
"Manga",
|
||||
"{manga}",
|
||||
"c{chapter}{chaper_minor} - {title}"
|
||||
],
|
||||
"postprocessors": [
|
||||
{
|
||||
"name": "zip",
|
||||
"compression": "store",
|
||||
"extension": "cbz",
|
||||
"keep-files": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"mangapark": {
|
||||
"directory": [
|
||||
"Manga",
|
||||
"{manga}",
|
||||
"c{chapter}{chaper_minor} - {title}"
|
||||
],
|
||||
"postprocessors": [
|
||||
{
|
||||
"name": "zip",
|
||||
"compression": "store",
|
||||
"extension": "cbz",
|
||||
"keep-files": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"reddit": {
|
||||
"comments": 0,
|
||||
"morecomments": false,
|
||||
"recursion": 0
|
||||
},
|
||||
"twitter": {
|
||||
"quoted": false,
|
||||
"replies": false,
|
||||
"retweets": false,
|
||||
"twitpic": false
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"mtime": true,
|
||||
"part": true,
|
||||
"part-directory": "/tmp/gallery-dl/.download/",
|
||||
"retries": 4,
|
||||
"timeout": 8.0,
|
||||
"verify": true,
|
||||
"http": {
|
||||
"adjust-extensions": true
|
||||
}
|
||||
},
|
||||
"output": {
|
||||
"mode": "color",
|
||||
"progress": true,
|
||||
"logfile": {
|
||||
"path": "~/.local/share/gallery-dl/log.txt",
|
||||
"mode": "w",
|
||||
"level": "debug"
|
||||
},
|
||||
"log": {
|
||||
"level": "info",
|
||||
"format": {
|
||||
"debug": "\u001b[0;37m{name}: {message}\u001b[0m",
|
||||
"info": "\u001b[1;37m{name}: {message}\u001b[0m",
|
||||
"warning": "\u001b[1;33m{name}: {message}\u001b[0m",
|
||||
"error": "\u001b[1;31m{name}: {message}\u001b[0m"
|
||||
}
|
||||
},
|
||||
"unsupportedfile": {
|
||||
"path": "~/.local/share/gallery-dl/unsupported.txt",
|
||||
"mode": "a",
|
||||
"format": "{asctime} {message}",
|
||||
"format-date": "%Y-%m-%d-%H-%M-%S"
|
||||
}
|
||||
},
|
||||
"cache": {
|
||||
"file": "~/.cache/gallery-dl/cache.sqlite3"
|
||||
},
|
||||
"netrc": false
|
||||
}
|
|
@ -9,6 +9,7 @@
|
|||
[core]
|
||||
editor = nvim
|
||||
whitespace = trailing-space
|
||||
sshCommand = dbclient -y
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
|
|
203
roles/glow/files/nord.json
Normal file
203
roles/glow/files/nord.json
Normal file
|
@ -0,0 +1,203 @@
|
|||
{
|
||||
"document": {
|
||||
"block_prefix": "\n",
|
||||
"block_suffix": "\n",
|
||||
"color": "#d8dee9",
|
||||
"margin": 2
|
||||
},
|
||||
"block_quote": {
|
||||
"indent": 1,
|
||||
"indent_token": "│ "
|
||||
},
|
||||
"paragraph": {},
|
||||
"list": {
|
||||
"level_indent": 2
|
||||
},
|
||||
"heading": {
|
||||
"block_suffix": "\n",
|
||||
"color": "#81a1c1",
|
||||
"bold": true
|
||||
},
|
||||
"h1": {
|
||||
"prefix": " ",
|
||||
"suffix": " ",
|
||||
"color": "#ebcb8b",
|
||||
"background_color": "#5e81ac",
|
||||
"bold": true
|
||||
},
|
||||
"h2": {
|
||||
"prefix": "## "
|
||||
},
|
||||
"h3": {
|
||||
"prefix": "### "
|
||||
},
|
||||
"h4": {
|
||||
"prefix": "#### "
|
||||
},
|
||||
"h5": {
|
||||
"prefix": "##### "
|
||||
},
|
||||
"h6": {
|
||||
"prefix": "###### ",
|
||||
"color": "#88c0d0",
|
||||
"bold": false
|
||||
},
|
||||
"text": {},
|
||||
"strikethrough": {
|
||||
"crossed_out": true
|
||||
},
|
||||
"emph": {
|
||||
"italic": true
|
||||
},
|
||||
"strong": {
|
||||
"bold": true
|
||||
},
|
||||
"hr": {
|
||||
"color": "#3b4252",
|
||||
"format": "\n--------\n"
|
||||
},
|
||||
"item": {
|
||||
"block_prefix": "• "
|
||||
},
|
||||
"enumeration": {
|
||||
"block_prefix": ". "
|
||||
},
|
||||
"task": {
|
||||
"ticked": "[✓] ",
|
||||
"unticked": "[ ] "
|
||||
},
|
||||
"link": {
|
||||
"color": "#8fbcbb",
|
||||
"underline": true
|
||||
},
|
||||
"link_text": {
|
||||
"color": "#a3be8c",
|
||||
"bold": true
|
||||
},
|
||||
"image": {
|
||||
"color": "#b48ead",
|
||||
"underline": true
|
||||
},
|
||||
"image_text": {
|
||||
"color": "#4c566a",
|
||||
"format": "Image: {{.text}} →"
|
||||
},
|
||||
"code": {
|
||||
"prefix": " ",
|
||||
"suffix": " ",
|
||||
"color": "#d08770",
|
||||
"background_color": "#434c5e"
|
||||
},
|
||||
"code_block": {
|
||||
"color": "#d8dee9",
|
||||
"margin": 2,
|
||||
"chroma": {
|
||||
"text": {
|
||||
"color": "#d8dee9"
|
||||
},
|
||||
"error": {
|
||||
"color": "#bf616a"
|
||||
},
|
||||
"comment": {
|
||||
"color": "#616e87",
|
||||
"italic": true
|
||||
},
|
||||
"comment_preproc": {
|
||||
"color": "#5e81ac"
|
||||
},
|
||||
"keyword": {
|
||||
"color": "#81a1c1",
|
||||
"bold": true
|
||||
},
|
||||
"keyword_reserved": {
|
||||
"color": "#81a1c1",
|
||||
"bold": false
|
||||
},
|
||||
"keyword_namespace": {
|
||||
"color": "#81a1c1",
|
||||
"bold": false
|
||||
},
|
||||
"keyword_type": {
|
||||
"color": "#81a1c1",
|
||||
"bold": false
|
||||
},
|
||||
"operator": {
|
||||
"color": "#81a1c1"
|
||||
},
|
||||
"punctuation": {
|
||||
"color": "#eceff4"
|
||||
},
|
||||
"name": {
|
||||
"color": "#d8dee9"
|
||||
},
|
||||
"name_builtin": {
|
||||
"color": "#81a1c1"
|
||||
},
|
||||
"name_tag": {
|
||||
"color": "#81a1c1"
|
||||
},
|
||||
"name_attribute": {
|
||||
"color": "#8fbcbb"
|
||||
},
|
||||
"name_class": {
|
||||
"color": "#8fbcbb"
|
||||
},
|
||||
"name_constant": {
|
||||
"color": "#8fbcbb"
|
||||
},
|
||||
"name_decorator": {
|
||||
"color": "#d08770"
|
||||
},
|
||||
"name_exception": {
|
||||
"color": "#bf616a"
|
||||
},
|
||||
"name_function": {
|
||||
"color": "#88c0d0"
|
||||
},
|
||||
"name_other": {},
|
||||
"literal": {},
|
||||
"literal_number": {
|
||||
"color": "#b48ead"
|
||||
},
|
||||
"literal_date": {},
|
||||
"literal_string": {
|
||||
"color": "#a3be8c"
|
||||
},
|
||||
"literal_string_escape": {
|
||||
"color": "#ebcb8b"
|
||||
},
|
||||
"generic_deleted": {
|
||||
"color": "#bf616a"
|
||||
},
|
||||
"generic_emph": {
|
||||
"italic": true
|
||||
},
|
||||
"generic_inserted": {
|
||||
"color": "#4c566a",
|
||||
"bold": true
|
||||
},
|
||||
"generic_strong": {
|
||||
"bold": true
|
||||
},
|
||||
"generic_subheading": {
|
||||
"color": "#88c0d0",
|
||||
"bold": true
|
||||
},
|
||||
"background": {
|
||||
"background_color": "#2e3440"
|
||||
}
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"center_separator": "┼",
|
||||
"column_separator": "│",
|
||||
"row_separator": "─"
|
||||
},
|
||||
"definition_list": {},
|
||||
"definition_term": {},
|
||||
"definition_description": {
|
||||
"block_prefix": "\n🠶 "
|
||||
},
|
||||
"html_block": {},
|
||||
"html_span": {}
|
||||
}
|
197
roles/glow/files/onedark.json
Normal file
197
roles/glow/files/onedark.json
Normal file
|
@ -0,0 +1,197 @@
|
|||
{
|
||||
"document": {
|
||||
"block_prefix": "\n",
|
||||
"block_suffix": "\n",
|
||||
"color": "#abb2bf",
|
||||
"margin": 2
|
||||
},
|
||||
"block_quote": {
|
||||
"indent": 1,
|
||||
"indent_token": "│ "
|
||||
},
|
||||
"paragraph": {},
|
||||
"list": {
|
||||
"level_indent": 2
|
||||
},
|
||||
"heading": {
|
||||
"block_suffix": "\n",
|
||||
"color": "#61afef",
|
||||
"bold": true
|
||||
},
|
||||
"h1": {
|
||||
"prefix": " ",
|
||||
"suffix": " ",
|
||||
"color": "#e5c07b",
|
||||
"background_color": "#61afef",
|
||||
"bold": true
|
||||
},
|
||||
"h2": {
|
||||
"prefix": "## "
|
||||
},
|
||||
"h3": {
|
||||
"prefix": "### "
|
||||
},
|
||||
"h4": {
|
||||
"prefix": "#### "
|
||||
},
|
||||
"h5": {
|
||||
"prefix": "##### "
|
||||
},
|
||||
"h6": {
|
||||
"prefix": "###### ",
|
||||
"color": "#56b6c2",
|
||||
"bold": false
|
||||
},
|
||||
"text": {},
|
||||
"strikethrough": {
|
||||
"crossed_out": true
|
||||
},
|
||||
"emph": {
|
||||
"italic": true
|
||||
},
|
||||
"strong": {
|
||||
"bold": true
|
||||
},
|
||||
"hr": {
|
||||
"color": "#3e4452",
|
||||
"format": "\n--------\n"
|
||||
},
|
||||
"item": {
|
||||
"block_prefix": "• "
|
||||
},
|
||||
"enumeration": {
|
||||
"block_prefix": ". "
|
||||
},
|
||||
"task": {
|
||||
"ticked": "[✓] ",
|
||||
"unticked": "[ ] "
|
||||
},
|
||||
"link": {
|
||||
"color": "#5699af",
|
||||
"underline": true
|
||||
},
|
||||
"link_text": {
|
||||
"color": "#98c379",
|
||||
"bold": true
|
||||
},
|
||||
"image": {
|
||||
"color": "#c678dd",
|
||||
"underline": true
|
||||
},
|
||||
"image_text": {
|
||||
"color": "#4b5263",
|
||||
"format": "Image: {{.text}} →"
|
||||
},
|
||||
"code": {
|
||||
"prefix": " ",
|
||||
"suffix": " ",
|
||||
"color": "#d19a66",
|
||||
"background_color": "#4b5263"
|
||||
},
|
||||
"code_block": {
|
||||
"color": "#b0c4de",
|
||||
"margin": 2,
|
||||
"chroma": {
|
||||
"text": {
|
||||
"color": "#b0c4de"
|
||||
},
|
||||
"error": {
|
||||
"color": "#b0c4de"
|
||||
},
|
||||
"comment": {
|
||||
"color": "#8a93a5",
|
||||
"italic": true
|
||||
},
|
||||
"comment_preproc": {
|
||||
"bold": true
|
||||
},
|
||||
"keyword": {
|
||||
"color": "#c678dd"
|
||||
},
|
||||
"keyword_reserved": {},
|
||||
"keyword_namespace": {
|
||||
"color": "#b756ff",
|
||||
"bold": true
|
||||
},
|
||||
"keyword_type": {
|
||||
"color": "#ef8383"
|
||||
},
|
||||
"operator": {
|
||||
"color": "#c7bf54"
|
||||
},
|
||||
"punctuation": {
|
||||
"color": "#b0c4de"
|
||||
},
|
||||
"name": {
|
||||
"color": "#c1abea"
|
||||
},
|
||||
"name_builtin": {
|
||||
"color": "#ef8383"
|
||||
},
|
||||
"name_tag": {
|
||||
"color": "#e06c75"
|
||||
},
|
||||
"name_attribute": {
|
||||
"color": "#b3d23c"
|
||||
},
|
||||
"name_class": {
|
||||
"color": "#76a9f9"
|
||||
},
|
||||
"name_constant": {
|
||||
"color": "#b756ff",
|
||||
"bold": true
|
||||
},
|
||||
"name_decorator": {
|
||||
"color": "#e5c07b"
|
||||
},
|
||||
"name_exception": {
|
||||
"color": "#fd7474",
|
||||
"bold": true
|
||||
},
|
||||
"name_function": {
|
||||
"color": "#00b1f7"
|
||||
},
|
||||
"name_other": {},
|
||||
"literal": {},
|
||||
"literal_number": {
|
||||
"color": "#d19a66"
|
||||
},
|
||||
"literal_date": {},
|
||||
"literal_string": {
|
||||
"color": "#98c379"
|
||||
},
|
||||
"literal_string_escape": {
|
||||
"color": "#d26464",
|
||||
"bold": true
|
||||
},
|
||||
"generic_deleted": {},
|
||||
"generic_emph": {
|
||||
"italic": true
|
||||
},
|
||||
"generic_inserted": {
|
||||
"color": "#a6e22e"
|
||||
},
|
||||
"generic_strong": {
|
||||
"bold": true
|
||||
},
|
||||
"generic_subheading": {
|
||||
"color": "#a2cbff"
|
||||
},
|
||||
"background": {
|
||||
"background_color": "#282c34"
|
||||
}
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"center_separator": "┼",
|
||||
"column_separator": "│",
|
||||
"row_separator": "─"
|
||||
},
|
||||
"definition_list": {},
|
||||
"definition_term": {},
|
||||
"definition_description": {
|
||||
"block_prefix": "\n🠶 "
|
||||
},
|
||||
"html_block": {},
|
||||
"html_span": {}
|
||||
}
|
20
roles/glow/tasks/main.yml
Normal file
20
roles/glow/tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/glow/styles
|
||||
state: directory
|
||||
|
||||
- name: Copy themes
|
||||
copy:
|
||||
src: '{{ item }}'
|
||||
dest: ~/.config/glow/styles
|
||||
force: yes
|
||||
loop:
|
||||
- nord.json
|
||||
- onedark.json
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: glow.j2
|
||||
dest: ~/.config/glow/glow.yml
|
||||
force: yes
|
10
roles/glow/templates/glow.j2
Normal file
10
roles/glow/templates/glow.j2
Normal file
|
@ -0,0 +1,10 @@
|
|||
# style name or JSON path (default "auto")
|
||||
style: "~/.config/glow/styles/{{ theme }}.json"
|
||||
# show local files only; no network (TUI-mode only)
|
||||
local: false
|
||||
# mouse support (TUI-mode only)
|
||||
mouse: true
|
||||
# use pager to display markdown
|
||||
pager: false
|
||||
# word-wrap at width
|
||||
width: 80
|
12
roles/gnupg/files/gpg-agent.conf
Normal file
12
roles/gnupg/files/gpg-agent.conf
Normal file
|
@ -0,0 +1,12 @@
|
|||
# https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html
|
||||
|
||||
# gpg-agent timeout
|
||||
max-cache-ttl 14400
|
||||
default-cache-ttl 7200
|
||||
max-cache-ttl-ssh 14400
|
||||
default-cache-ttl-ssh 7200
|
||||
|
||||
# the default password prompt
|
||||
#pinentry-program /usr/bin/pinentry-curses
|
||||
#pinentry-program /usr/bin/pinentry-gnome3
|
||||
pinentry-program /usr/bin/pinentry-qt
|
20
roles/gnupg/tasks/main.yml
Normal file
20
roles/gnupg/tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
- name: Create gnupg directory
|
||||
file:
|
||||
path: ~/.local/share/gnupg
|
||||
state: directory
|
||||
mode: 0700
|
||||
|
||||
- name: Copy gpg.conf
|
||||
template:
|
||||
src: gpg.j2
|
||||
dest: ~/.local/share/gnupg/gpg.conf
|
||||
force: yes
|
||||
mode: 0600
|
||||
|
||||
- name: Copy gpg-agent.conf
|
||||
copy:
|
||||
src: gpg-agent.conf
|
||||
dest: ~/.local/share/gnupg/gpg-agent.conf
|
||||
force: yes
|
||||
mode: 0600
|
45
roles/gnupg/templates/gpg.j2
Normal file
45
roles/gnupg/templates/gpg.j2
Normal file
|
@ -0,0 +1,45 @@
|
|||
# https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration-Options.html
|
||||
# https://www.gnupg.org/documentation/manuals/gnupg/GPG-Esoteric-Options.html
|
||||
|
||||
# No greeting
|
||||
no-greeting
|
||||
|
||||
# No version in output
|
||||
no-emit-version
|
||||
|
||||
# Key servers
|
||||
keyserver hkp://keys.gnupg.net
|
||||
|
||||
# The command line that should be run to view a photo ID
|
||||
photo-viewer "qimgv %i"
|
||||
|
||||
# Use the following options when verifying signatures
|
||||
verify-options show-photos show-user-notations pka-lookup
|
||||
list-options show-usage show-user-notations show-uid-validity
|
||||
|
||||
# Disable caching of passphrase for symmetrical ops
|
||||
no-symkey-cache
|
||||
|
||||
# Display all keys and their fingerprints
|
||||
with-fingerprint
|
||||
|
||||
# Long hexadecimal key format
|
||||
#keyid-format 0xlong
|
||||
|
||||
# The message digest algorithm used when signing a key
|
||||
cert-digest-algo SHA256
|
||||
|
||||
# The default key to sign with
|
||||
default-key {{ gpg_signature }}
|
||||
|
||||
# Use the default key as default recipient
|
||||
default-recipient-self
|
||||
|
||||
# Personal algorithms
|
||||
personal-cipher-preferences AES256 AES192 AES CAST5
|
||||
personal-digest-preferences SHA256 SHA512 SHA384 SHA224
|
||||
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
|
||||
|
||||
# No one seems to use these
|
||||
disable-cipher-algo 3DES
|
||||
disable-cipher-algo BLOWFISH
|
|
@ -11,7 +11,7 @@
|
|||
# Or else mpd will fail to start
|
||||
- name: Create mpd directory in ~/.local/share
|
||||
file:
|
||||
path: ~/.local/share/mpd
|
||||
path: ~/.local/share/mpd/playlists
|
||||
state: directory
|
||||
|
||||
- name: Copy mpd config
|
||||
|
|
17
roles/mpv/files/input.conf
Normal file
17
roles/mpv/files/input.conf
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Low-end computer
|
||||
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A (Fast)"
|
||||
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B (Fast)"
|
||||
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C (Fast)"
|
||||
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A+A (Fast)"
|
||||
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B+B (Fast)"
|
||||
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C+A (Fast)"
|
||||
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
||||
|
||||
# High-end computer
|
||||
# CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
|
||||
# CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
|
||||
# CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
|
||||
# CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
|
||||
# CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
|
||||
# CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
|
||||
# CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
|
30
roles/mpv/tasks/main.yml
Normal file
30
roles/mpv/tasks/main.yml
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/mpv/shaders
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: mpv.j2
|
||||
dest: ~/.config/mpv/mpv.conf
|
||||
force: yes
|
||||
|
||||
- name: Download Anime4K shaders
|
||||
get_url:
|
||||
url: https://github.com/bloc97/Anime4K/releases/download/v4.0.1/Anime4K_v4.0.zip
|
||||
dest: /tmp/Anime4K.zip
|
||||
mode: 0644
|
||||
|
||||
# Busybox has 'unzip' so use that
|
||||
# 'zipinfo' is required for 'unarchive' module, but it is only available in 'unzip' package
|
||||
- name: Unzip Anime4K shaders
|
||||
command: unzip /tmp/Anime4K.zip -d ~/.config/mpv/shaders
|
||||
args:
|
||||
creates: ~/.config/mpv/shaders/Anime4K_Darken_HQ.glsl
|
||||
|
||||
- name: Copy input config
|
||||
copy:
|
||||
src: input.conf
|
||||
dest: ~/.config/mpv/input.conf
|
||||
force: yes
|
13
roles/mpv/templates/mpv.j2
Normal file
13
roles/mpv/templates/mpv.j2
Normal file
|
@ -0,0 +1,13 @@
|
|||
sub-auto=fuzzy
|
||||
sub-bold=yes
|
||||
# scale=ewa_lanczossharp
|
||||
# cscale=ewa_lanczossharp
|
||||
# video-sync=display-resample
|
||||
# interpolation
|
||||
# tscale=oversample
|
||||
profile=gpu-hq
|
||||
gpu-context=wayland
|
||||
vo=gpu
|
||||
hwdec=vaapi
|
||||
user-agent="{{ user_agent }}"
|
||||
script-opts=ytdl_hook-ytdl_path=/usr/bin/yt-dlp
|
66
roles/newsboat/files/urls
Normal file
66
roles/newsboat/files/urls
Normal file
|
@ -0,0 +1,66 @@
|
|||
-------Linux/BSD-------
|
||||
https://distrowatch.com/news/dw.xml "~DistroWatch" news
|
||||
https://www.reddit.com/r/linux/new.rss "~r/linux" reddit
|
||||
https://www.reddit.com/r/linuxquestions/new.rss "~r/linuxquestions" reddit
|
||||
https://www.reddit.com/r/openbsd/new.rss "~r/openbsd" reddit
|
||||
https://www.reddit.com/r/freebsd/new.rss "~r/freebsd" reddit
|
||||
https://www.reddit.com/r/Gentoo/new.rss "~r/Gentoo" reddit
|
||||
https://www.reddit.com/r/archlinux/new.rss "~r/archlinux" reddit
|
||||
https://www.reddit.com/r/voidlinux/new.rss "~r/voidlinux" reddit
|
||||
https://www.reddit.com/r/NixOS/new.rss "~r/NixOS" reddit
|
||||
https://www.reddit.com/r/bedrocklinux/new.rss "~r/bedrocklinux" reddit
|
||||
https://www.reddit.com/r/Fedora/new.rss "~r/Fedora" reddit
|
||||
https://www.reddit.com/r/kde/new.rss "~r/kde" reddit
|
||||
https://www.reddit.com/r/commandline/new.rss "~r/commandline" reddit
|
||||
--------Privacy--------
|
||||
https://www.reddit.com/r/privacytoolsIO/new.rss "~r/privacytoolsIO" reddit
|
||||
https://www.reddit.com/r/privacy/new.rss "~r/privacy" reddit
|
||||
https://www.reddit.com/r/TOR/new.rss "~r/TOR" reddit
|
||||
https://www.reddit.com/r/Monero/new.rss "~r/Monero" reddit
|
||||
---------Fluff---------
|
||||
https://www.reddit.com/r/unixporn/new.rss "~r/unixporn" reddit
|
||||
https://www.reddit.com/r/Rainmeter/new.rss "~r/Rainmeter" reddit
|
||||
https://www.reddit.com/r/FirefoxCSS/new.rss "~r/FirefoxCSS" reddit
|
||||
https://www.reddit.com/r/startpages/new.rss "~r/startpages" reddit
|
||||
https://www.reddit.com/r/wallpaper/new.rss "~r/wallpaper" reddit
|
||||
https://www.reddit.com/r/Animewallpaper/new.rss "~r/Animewallpaper" reddit
|
||||
https://www.reddit.com/r/AnimewallpapersSFW/new.rss "~r/AnimewallpaperSFW" reddit
|
||||
https://www.reddit.com/r/awwnime/new.rss "~r/awwnime" reddit
|
||||
https://www.reddit.com/r/Lolirefugees/new.rss "~r/Lolirefugees" reddit
|
||||
https://www.reddit.com/r/AnimeGirlsInKimonos/new.rss "~r/AnimeGirlsInKimono" reddit
|
||||
https://www.reddit.com/r/fatestaynight/new.rss "~r/fatestaynight" reddit
|
||||
https://www.reddit.com/r/Saber/new.rss "~r/Saber" reddit
|
||||
https://www.reddit.com/r/OneTrueTohsaka/new.rss "~r/OneTrueTohsaka" reddit
|
||||
https://www.reddit.com/r/formalwaifus/new.rss "~r/formalwaifus" reddit
|
||||
https://www.reddit.com/r/LightNovels/new.rss "~r/LightNovels" reddit
|
||||
https://www.reddit.com/r/PixelArt/new.rss "~r/PixelArt" reddit
|
||||
https://www.reddit.com/r/riprequests/new.rss "~r/riprequests" reddit
|
||||
https://www.reddit.com/r/dllinks/new.rss "~r/dllinks" reddit
|
||||
------Programming------
|
||||
https://www.reddit.com/r/learnprogramming/new.rss "~r/learnprogramming" reddit
|
||||
https://www.reddit.com/r/programming/new.rss "~r/programming" reddit
|
||||
https://www.reddit.com/r/dailyprogrammer/new.rss "~r/dailyprogrammer" reddit
|
||||
https://www.reddit.com/r/badcode/new.rss "~r/badcode" reddit
|
||||
---------CVE-----------
|
||||
https://nvd.nist.gov/feeds/xml/cve/misc/nvd-rss.xml "~8-day vulnerabilities"
|
||||
https://nvd.nist.gov/feeds/xml/cve/misc/nvd-rss-analyzed.xml "~8-day vulnerabilities (info)"
|
||||
https://www.tenable.com/security/feed "~Tenable (security)"
|
||||
https://www.tenable.com/security/research/feed "~Tenable (security research)"
|
||||
https://www.tenable.com/blog/cyber-exposure-alerts/feed "~Tenable (cyber exposure alerts)"
|
||||
http://tools.cisco.com/security/center/psirtrss20/CiscoSecurityAdvisory.xml "~Cisco (security)"
|
||||
---------News----------
|
||||
https://news.ycombinator.com/rss "~Hacker News" news
|
||||
https://www.phoronix.com/rss.php "~Phoronix" news
|
||||
https://www.nytimes.com/svc/collections/v1/publish/https://www.nytimes.com/section/world/rss.xml "~The NewYork Times" news
|
||||
https://www.cbsnews.com/latest/rss/world "~CBS News" news
|
||||
https://www.theguardian.com/world/rss "~The Guardian" news
|
||||
-------Youtube---------
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg "~Youtube: DistroTube" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA "~Youtube: Brodie Robertson" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA "~Youtube: Mental Outlaw" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCZWadyLVO4ZnMgLrRVtS6VA "~Youtube: baby WOGUE" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCAiiOTio8Yu69c3XnR7nQBQ "~Youtube: System Crafters" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA "~Youtube: Veritasium" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UC6nSFpj9HTCZ5t-N3Rm3-HA "~Youtube: Vsauce" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCoxcjq-8xIDTYp3uz647V5A "~Youtube: Numberphile" youtube
|
||||
https://www.youtube.com/feeds/videos.xml?channel_id=UCBa659QWEk1AI4Tg--mrJ2A "~Youtube: Tom Scott" youtube
|
17
roles/newsboat/tasks/main.yml
Normal file
17
roles/newsboat/tasks/main.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/newsboat
|
||||
state: directory
|
||||
|
||||
- name: Copy RSS feeds list
|
||||
copy:
|
||||
src: urls
|
||||
dest: ~/.config/newsboat/urls
|
||||
force: yes
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/newsboat/config
|
||||
force: yes
|
54
roles/newsboat/templates/config.j2
Normal file
54
roles/newsboat/templates/config.j2
Normal file
|
@ -0,0 +1,54 @@
|
|||
auto-reload no
|
||||
refresh-on-startup no
|
||||
notify-program "notify-send"
|
||||
notify-screen yes
|
||||
notify-xterm no
|
||||
|
||||
unbind-key q
|
||||
unbind-key Q
|
||||
unbind-key j
|
||||
unbind-key k
|
||||
unbind-key g
|
||||
unbind-key m
|
||||
unbind-key f
|
||||
|
||||
browser "{{ default_browser }} %u"
|
||||
macro m set browser "mpv %u" ; open-in-browser ; set browser "{{ default_browser }} %u"
|
||||
|
||||
bind-key , macro-prefix
|
||||
bind-key j down
|
||||
bind-key k up
|
||||
bind-key G end
|
||||
bind-key g home
|
||||
bind-key d pagedown
|
||||
bind-key u pageup
|
||||
bind-key l open
|
||||
bind-key h quit
|
||||
bind-key RIGHT open
|
||||
bind-key LEFT quit
|
||||
bind-key BACKSPACE quit
|
||||
bind-key q hard-quit
|
||||
bind-key H prev-feed
|
||||
bind-key L next-feed
|
||||
bind-key c toggle-show-read-feeds
|
||||
|
||||
color background default default
|
||||
color listnormal blue default
|
||||
color listnormal_unread blue default
|
||||
color listfocus black yellow
|
||||
color listfocus_unread black yellow
|
||||
color info default black
|
||||
color article default default
|
||||
color info yellow black bold
|
||||
|
||||
highlight all "---.*---" green
|
||||
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" blue default bold
|
||||
highlight article "(^Link:.*|^Date:.*)" default default
|
||||
highlight article "https?://[^ ]+" yellow default
|
||||
highlight article "^(Title):.*$" cyan default
|
||||
highlight article "\\[[0-9][0-9]*\\]" magenta default bold
|
||||
highlight article "\\[image\\ [0-9]+\\]" yellow default bold
|
||||
highlight article "\\[embedded flash: [0-9][0-9]*\\]" yellow default bold
|
||||
highlight article ":.*\\(link\\)$" blue default
|
||||
highlight article ":.*\\(image\\)$" cyan default
|
||||
highlight article ":.*\\(embedded flash)$" magenta default
|
3
roles/npm/files/npmrc
Normal file
3
roles/npm/files/npmrc
Normal file
|
@ -0,0 +1,3 @@
|
|||
cache=${XDG_CACHE_HOME}/npm
|
||||
tmp=${XDG_RUNTIME_DIR}/npm
|
||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
11
roles/npm/tasks/main.yml
Normal file
11
roles/npm/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/npm
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
copy:
|
||||
src: npmrc
|
||||
dest: ~/.config/npm/npmrc
|
||||
force: yes
|
|
@ -40,7 +40,7 @@ if exists('b:match_words')
|
|||
for element in g:HtmlJinjaBodyElements
|
||||
let pattern = ''
|
||||
for tag in element[:-2]
|
||||
if pattern != ''
|
||||
if pattern !=? ''
|
||||
let pattern .= ':'
|
||||
endif
|
||||
let pattern .= '{%-\?\s*\<' . tag . '\>' "\_.\{-}-\?%}'
|
||||
|
|
|
@ -13,7 +13,7 @@ let b:did_indent = 1
|
|||
|
||||
" Indent within the jinja tags
|
||||
" Made by Steve Losh <steve@stevelosh.com>
|
||||
if &l:indentexpr == ''
|
||||
if &l:indentexpr ==? ''
|
||||
if &l:cindent
|
||||
let &l:indentexpr = 'cindent(v:lnum)'
|
||||
else
|
||||
|
@ -33,9 +33,9 @@ if exists('*GetDjangoIndent')
|
|||
endif
|
||||
|
||||
function! GetDjangoIndent(...)
|
||||
if a:0 && a:1 == '.'
|
||||
if a:0 && a:1 ==? '.'
|
||||
let v:lnum = line('.')
|
||||
elseif a:0 && a:1 =~ '^\d'
|
||||
elseif a:0 && a:1 =~? '^\d'
|
||||
let v:lnum = a:1
|
||||
endif
|
||||
let vcol = col('.')
|
||||
|
|
|
@ -72,11 +72,11 @@ hi def link jinjaOperator Operator
|
|||
hi def link jinjaAttribute Identifier
|
||||
hi def link jinjaTagBlock PreProc
|
||||
hi def link jinjaVarBlock PreProc
|
||||
hi def link jinjaStatement Float
|
||||
hi def link jinjaStatement Statement
|
||||
hi def link jinjaFunction Function
|
||||
hi def link jinjaTest Type
|
||||
hi def link jinjaFilter Identifier
|
||||
hi def link jinjaArgument String
|
||||
hi def link jinjaArgument Constant
|
||||
hi def link jinjaTagError Error
|
||||
hi def link jinjaVarError Error
|
||||
hi def link jinjaError Error
|
||||
|
|
|
@ -51,7 +51,7 @@ local augroups = {
|
|||
{'TextYankPost', [[* silent! lua vim.highlight.on_yank({higroup='IncSearch', timeout=300})]]}
|
||||
},
|
||||
keymaps = {
|
||||
{'FileType', '*', 'lua require("keymap").whichkeyLocal()'},
|
||||
{'BufReadPre', '*', 'lua require("keymap").whichkeyLocal()'},
|
||||
{'FileType', 'org', 'lua require("keymap").whichkeyOrg()'},
|
||||
{'FileType', 'html', 'lua require("keymap").whichkeyHtml()'},
|
||||
{'FileType', 'markdown', 'lua require("keymap").whichkeyMarkdown()'}
|
||||
|
|
|
@ -469,20 +469,24 @@ function M.filetype()
|
|||
extensions = {
|
||||
j2 = 'jinja', jinja2 = 'jinja', jinja = 'jinja',
|
||||
md = 'markdown', mkd = 'markdown',
|
||||
log = 'log', LO = 'log',
|
||||
patch = 'diff',
|
||||
toml = 'toml',
|
||||
rasi = 'css',
|
||||
vifm = 'vim',
|
||||
log = 'log', LO = 'log'
|
||||
vifm = 'vim'
|
||||
},
|
||||
literal = {
|
||||
log = 'log',
|
||||
vifmrc = 'vim',
|
||||
Vagrantfile = 'ruby'
|
||||
},
|
||||
complex = {
|
||||
['*_log'] = 'log',
|
||||
['G*_LOG'] = 'log',
|
||||
['.*waybar/config'] = 'jsonc',
|
||||
['.*lf/lfrc'] = 'sh'
|
||||
['*waybar/config'] = 'jsonc',
|
||||
['*sway*/config'] = 'config',
|
||||
['*mako/config'] = 'config',
|
||||
['*lf/lfrc'] = 'sh'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -209,6 +209,12 @@ function M.highlight_languages()
|
|||
cmd('hi! link htmlH4 markdownH4')
|
||||
cmd('hi! link htmlH5 markdownH5')
|
||||
cmd('hi! link htmlH6 markdownH6')
|
||||
|
||||
-- jinja
|
||||
hi('jinjaAttribute', c.teal, '', 'bold', '')
|
||||
hi('jinjaStatement', c.purple, '', 'bold', '')
|
||||
hi('jinjaFilter', c.teal, '', 'bold', '')
|
||||
hi('jinjaArgument', c.green, '', '', '')
|
||||
end
|
||||
|
||||
-- Treesitter (:h nvim-treesitter-highlights)
|
||||
|
@ -254,7 +260,7 @@ function M.highlight_treesitter()
|
|||
hi('TSStrike', c.orange, '', 'italic', '')
|
||||
hi('TSTitle', c.dark_blue, '', 'bold', '')
|
||||
hi('TSLiteral', c.green, '', 'italic', '')
|
||||
hi('TSURI', c.green, '', 'underline', '')
|
||||
hi('TSURI', c.green, '', '', '')
|
||||
|
||||
cmd('hi! link TSComment Comment')
|
||||
hi('TSConditional', c.blue, '', 'bold', '')
|
||||
|
|
|
@ -13,16 +13,16 @@ nvim_script_dir=${XDG_CONFIG_HOME:-$HOME/.config}/nvim/scripts
|
|||
|
||||
if [ "$1" = "-lsp" ]; then
|
||||
printf "\033[1;33mInstalling lsp servers...\033[0m\n"
|
||||
find "${nvim_script_dir}/lsp" -type f -exec printf "\033[1;34mInstalling \033[0m" \; -and -exec basename '{}' \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
find "${nvim_script_dir}/lsp" -type f -exec printf "\033[1;34mInstalling \033[1;32m" \; -and -exec basename '{}' \; -and -exec printf "\033[0m" \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
elif [ "$1" = '-dap' ]; then
|
||||
printf "\033[1;33mInstalling dap servers...\033[0m\n"
|
||||
find "${nvim_script_dir}/dap" -type f -exec printf "\033[1;34mInstalling \033[0m" \; -and -exec basename '{}' \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
find "${nvim_script_dir}/dap" -type f -exec printf "\033[1;34mInstalling \033[1;32m" \; -and -exec basename '{}' \; -and -exec printf "\033[0m" \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
elif [ "$1" = '-lint' ]; then
|
||||
printf "\033[1;33mInstalling linters and formatters...\033[0m\n"
|
||||
find "${nvim_script_dir}/lint" -type f -exec printf "\033[1;34mInstalling \033[0m" \; -and -exec basename '{}' \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
find "${nvim_script_dir}/lint" -type f -exec printf "\033[1;34mInstalling \033[1;32m" \; -and -exec basename '{}' \; -and -exec printf "\033[0m" \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
elif [ "$1" = '-all' ]; then
|
||||
printf "\033[1;33mInstalling everything...\033[0m\n"
|
||||
find "${nvim_script_dir}" -mindepth 2 -type f -exec printf "\033[1;34mInstalling \033[0m" \; -and -exec basename '{}' \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
find "${nvim_script_dir}" -mindepth 2 -type f -exec printf "\033[1;34mInstalling \033[1;32m" \; -and -exec basename '{}' \; -and -exec printf "\033[0m" \; -and -exec '{}' \; -and -exec printf '\n' \;
|
||||
else
|
||||
# Each server should have an unique name
|
||||
server_path=$(find "${nvim_script_dir}" -mindepth 2 -type f -name "$1" | head -n 1)
|
||||
|
@ -30,6 +30,6 @@ else
|
|||
printf "Incorrect server name \033[1;31m%s\033[0m.\n" "$1"
|
||||
exit 1
|
||||
fi
|
||||
printf "\033[1;34mInstalling \033[0m%s\n" "$1"
|
||||
printf "\033[1;34mInstalling \033[1;32m%s\033[0m\n" "$1"
|
||||
exec ${server_path}
|
||||
fi
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
---
|
||||
- name: Check theme name
|
||||
fail:
|
||||
msg: Theme needs to be 'nord' or 'onedark'
|
||||
when: theme != 'nord' and theme != 'onedark'
|
||||
|
||||
- name: Generate color variables
|
||||
template:
|
||||
src: palette.j2
|
||||
dest: '{{ ansible_env.PWD }}/palette.yml'
|
||||
dest: /tmp/palette.yml
|
||||
force: yes
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
---
|
||||
{% if theme == 'nord' %}
|
||||
# Colors for theming
|
||||
violet: '#8c9cff'
|
||||
{% if theme == 'nord' %}
|
||||
background: '#2e3440'
|
||||
foreground: '#d8dee9'
|
||||
grey1: '#3b4252'
|
||||
|
@ -38,7 +39,6 @@ color13: '#b48ead'
|
|||
color14: '#8fbcbb'
|
||||
color15: '#eceff4'
|
||||
{% elif theme == 'onedark' %}
|
||||
# Colors for theming
|
||||
foreground: '#abb2bf'
|
||||
background: '#282c34'
|
||||
grey1: '#3e4452'
|
||||
|
@ -52,6 +52,7 @@ cyan: '#56b6c2'
|
|||
blue: '#61afef'
|
||||
dark_blue: '#2257a0'
|
||||
red: '#e06c75'
|
||||
dark_red: '#be5046'
|
||||
orange: '#d19a66'
|
||||
yellow: '#e5c07b'
|
||||
green: '#98c379'
|
||||
|
|
300
roles/qtcreator/files/nord.creatortheme
Normal file
300
roles/qtcreator/files/nord.creatortheme
Normal file
|
@ -0,0 +1,300 @@
|
|||
[General]
|
||||
ThemeName=Nord
|
||||
PreferredStyles=Fusion
|
||||
DefaultTextEditorColorScheme=nord.xml
|
||||
|
||||
[Palette]
|
||||
shadowBackground=ff21252b
|
||||
text=ffd8dee9
|
||||
textDisabled=99d8dee9
|
||||
textHighlighted=ffabb2bf
|
||||
toolBarItem=ffd8dee9
|
||||
toolBarItemDisabled=99d8dee9
|
||||
fancyBarsNormalTextColor=ffd8dee9
|
||||
fancyBarsBoldTextColor=ffd8dee9
|
||||
hoverBackground=ff31363f
|
||||
selectedBackground=ff3a3f4b
|
||||
selectedBackgroundText=ffabb2bf
|
||||
normalBackground=ff2e3440
|
||||
alternateBackground=ff31363f
|
||||
error=ffbf616a
|
||||
warning=ffebcb8b
|
||||
success=ffa3be8c
|
||||
message=ff81a1c1
|
||||
splitter=ff181a1f
|
||||
textColorLink=81a1c1
|
||||
textColorLinkVisited=b48ead
|
||||
backgroundColorDisabled=ff21252b
|
||||
|
||||
[Colors]
|
||||
|
||||
;DS controls theme START
|
||||
DScontrolBackground=normalBackground
|
||||
DScontrolOutline=splitter
|
||||
DStextColor=text
|
||||
DSdisabledTextColor=textDisabled
|
||||
DSpanelBackground=ff454444
|
||||
DShoverHighlight=hoverBackground
|
||||
DScolumnBackground=ff363636
|
||||
DSfocusEdit=normalBackground
|
||||
DSfocusDrag=ff565656
|
||||
DScontrolBackgroundPressed=selectedBackground
|
||||
DScontrolBackgroundChecked=selectedBackground
|
||||
DSinteraction=selectedBackground
|
||||
DSsliderActiveTrack=ff7a7a7a
|
||||
DSsliderInactiveTrack=ff4d4d4d
|
||||
DSsliderHandle=ff4c566a
|
||||
DSsliderActiveTrackHover=ff7f7f7f
|
||||
DSsliderInactiveTrackHover=ff505050
|
||||
DSsliderHandleHover=ff7a7a7a
|
||||
DSsliderActiveTrackFocus=ffaaaaaa
|
||||
DSsliderInactiveTrackFocus=ff7a7a7a
|
||||
DSsliderHandleFocus=ff1d545c
|
||||
DSerrorColor=error
|
||||
DScontrolBackgroundDisabled=backgroundColorDisabled
|
||||
DScontrolOutlineDisabled=ff4d4d4d
|
||||
DStextColorDisabled=textDisabled
|
||||
DStextSelectionColor=selectedBackground
|
||||
DStextSelectedTextColor=selectedBackgroundText
|
||||
DSscrollBarTrack=ff4d4d4d
|
||||
DSscrollBarHandle=ff4c566a
|
||||
DScontrolBackgroundInteraction=ff4d4d4d
|
||||
DStranslationIndicatorBorder=splitter
|
||||
DSsectionHeadBackground=alternateBackground
|
||||
DSchangedStateText=message
|
||||
DS3DAxisXColor=error
|
||||
DS3DAxisYColor=success
|
||||
DS3DAxisZColor=message
|
||||
;DS controls theme END
|
||||
|
||||
BackgroundColorAlternate=alternateBackground
|
||||
BackgroundColorDark=shadowBackground
|
||||
BackgroundColorHover=hoverBackground
|
||||
BackgroundColorNormal=normalBackground
|
||||
BackgroundColorDisabled=backgroundColorDisabled
|
||||
BackgroundColorSelected=selectedBackground
|
||||
BadgeLabelBackgroundColorChecked=text
|
||||
BadgeLabelBackgroundColorUnchecked=text
|
||||
BadgeLabelTextColorChecked=normalBackground
|
||||
BadgeLabelTextColorUnchecked=normalBackground
|
||||
CanceledSearchTextColor=error
|
||||
ComboBoxArrowColor=toolBarItem
|
||||
ComboBoxArrowColorDisabled=toolBarItemDisabled
|
||||
ComboBoxTextColor=fancyBarsNormalTextColor
|
||||
DetailsButtonBackgroundColorHover=hoverBackground
|
||||
DetailsWidgetBackgroundColor=shadowBackground
|
||||
DockWidgetResizeHandleColor=splitter
|
||||
DoubleTabWidget1stSeparatorColor=splitter
|
||||
DoubleTabWidget1stTabActiveTextColor=text
|
||||
DoubleTabWidget1stTabBackgroundColor=normalBackground
|
||||
DoubleTabWidget1stTabInactiveTextColor=text
|
||||
DoubleTabWidget2ndSeparatorColor=toolBarItemDisabled
|
||||
DoubleTabWidget2ndTabActiveTextColor=text
|
||||
DoubleTabWidget2ndTabBackgroundColor=selectedBackground
|
||||
DoubleTabWidget2ndTabInactiveTextColor=text
|
||||
EditorPlaceholderColor=shadowBackground
|
||||
FancyToolBarSeparatorColor=toolBarItemDisabled
|
||||
FancyTabBarBackgroundColor=shadowBackground
|
||||
FancyTabBarSelectedBackgroundColor=selectedBackground
|
||||
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
|
||||
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
|
||||
FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
|
||||
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
|
||||
FancyToolButtonHoverColor=hoverBackground
|
||||
FancyToolButtonSelectedColor=selectedBackground
|
||||
FutureProgressBackgroundColor=shadowBackground
|
||||
IconsBaseColor=toolBarItem
|
||||
IconsDisabledColor=toolBarItemDisabled
|
||||
IconsInfoColor=message
|
||||
IconsInfoToolBarColor=message
|
||||
IconsWarningColor=warning
|
||||
IconsWarningToolBarColor=warning
|
||||
IconsErrorColor=error
|
||||
IconsErrorToolBarColor=error
|
||||
IconsRunColor=success
|
||||
IconsRunToolBarColor=success
|
||||
IconsStopColor=error
|
||||
IconsStopToolBarColor=error
|
||||
IconsInterruptColor=message
|
||||
IconsInterruptToolBarColor=message
|
||||
IconsDebugColor=toolBarItem
|
||||
IconsNavigationArrowsColor=warning
|
||||
IconsBuildHammerHandleColor=b06112
|
||||
IconsBuildHammerHeadColor=toolBarItem
|
||||
IconsModeWelcomeActiveColor=success
|
||||
IconsModeEditActiveColor=message
|
||||
IconsModeDesignActiveColor=warning
|
||||
IconsModeDebugActiveColor=message
|
||||
IconsModeProjectActiveColor=success
|
||||
IconsModeAnalyzeActiveColor=message
|
||||
IconsModeHelpActiveColor=warning
|
||||
IconsCodeModelKeywordColor=ff777777
|
||||
IconsCodeModelClassColor=ffc0b550
|
||||
IconsCodeModelStructColor=ff53b053
|
||||
IconsCodeModelFunctionColor=ffd34373
|
||||
IconsCodeModelVariableColor=ff2bbbcc
|
||||
IconsCodeModelEnumColor=ffc0b550
|
||||
IconsCodeModelMacroColor=ff5e81ac
|
||||
IconsCodeModelAttributeColor=ff316511
|
||||
IconsCodeModelUniformColor=ff994899
|
||||
IconsCodeModelVaryingColor=ffa08833
|
||||
IconsCodeModelOverlayBackgroundColor=normalBackground
|
||||
IconsCodeModelOverlayForegroundColor=text
|
||||
InfoBarBackground=shadowBackground
|
||||
InfoBarText=text
|
||||
MenuBarEmptyAreaBackgroundColor=shadowBackground
|
||||
MenuBarItemBackgroundColor=shadowBackground
|
||||
MenuBarItemTextColorDisabled=textDisabled
|
||||
MenuBarItemTextColorNormal=text
|
||||
MenuItemTextColorDisabled=textDisabled
|
||||
MenuItemTextColorNormal=text
|
||||
MiniProjectTargetSelectorBackgroundColor=shadowBackground
|
||||
MiniProjectTargetSelectorBorderColor=shadowBackground
|
||||
MiniProjectTargetSelectorSummaryBackgroundColor=normalBackground
|
||||
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
|
||||
PanelStatusBarBackgroundColor=shadowBackground
|
||||
PanelsWidgetSeparatorLineColor=splitter
|
||||
PanelTextColorDark=text
|
||||
PanelTextColorMid=text
|
||||
PanelTextColorLight=textHighlighted
|
||||
ProgressBarColorError=error
|
||||
ProgressBarColorFinished=success
|
||||
ProgressBarColorNormal=message
|
||||
ProgressBarTitleColor=text
|
||||
ProgressBarBackgroundColor=alternateBackground
|
||||
SplitterColor=splitter
|
||||
TextColorDisabled=textDisabled
|
||||
TextColorError=error
|
||||
TextColorHighlight=textHighlighted
|
||||
TextColorHighlightBackground=hoverBackground
|
||||
TextColorLink=textColorLink
|
||||
TextColorLinkVisited=textColorLinkVisited
|
||||
TextColorNormal=text
|
||||
ToggleButtonBackgroundColor=shadowBackground
|
||||
ToolBarBackgroundColor=shadowBackground
|
||||
TreeViewArrowColorNormal=hoverBackground
|
||||
TreeViewArrowColorSelected=text
|
||||
|
||||
OutputPanes_DebugTextColor=text
|
||||
OutputPanes_ErrorMessageTextColor=error
|
||||
OutputPanes_MessageOutput=message
|
||||
OutputPanes_NormalMessageTextColor=text
|
||||
OutputPanes_StdErrTextColor=error
|
||||
OutputPanes_StdOutTextColor=text
|
||||
OutputPanes_WarningMessageTextColor=warning
|
||||
OutputPanes_TestPassTextColor=success
|
||||
OutputPanes_TestFailTextColor=error
|
||||
OutputPanes_TestXFailTextColor=error
|
||||
OutputPanes_TestXPassTextColor=message
|
||||
OutputPanes_TestSkipTextColor=message
|
||||
OutputPanes_TestWarnTextColor=warning
|
||||
OutputPanes_TestFatalTextColor=error
|
||||
OutputPanes_TestDebugTextColor=text
|
||||
OutputPaneButtonFlashColor=error
|
||||
OutputPaneToggleButtonTextColorChecked=fancyBarsNormalTextColor
|
||||
OutputPaneToggleButtonTextColorUnchecked=fancyBarsNormalTextColor
|
||||
|
||||
Debugger_LogWindow_LogInput=ff56b6c2
|
||||
Debugger_LogWindow_LogStatus=message
|
||||
Debugger_LogWindow_LogTime=error
|
||||
|
||||
Debugger_WatchItem_ValueNormal=text
|
||||
Debugger_WatchItem_ValueInvalid=textDisabled
|
||||
Debugger_WatchItem_ValueChanged=error
|
||||
|
||||
Debugger_Breakpoint_TextMarkColor=message
|
||||
|
||||
Welcome_TextColor=text
|
||||
Welcome_ForegroundPrimaryColor=text
|
||||
Welcome_ForegroundSecondaryColor=text
|
||||
Welcome_BackgroundColor=normalBackground
|
||||
Welcome_ButtonBackgroundColor=normalBackground
|
||||
Welcome_DividerColor=splitter
|
||||
Welcome_HoverColor=hoverBackground
|
||||
Welcome_LinkColor=textColorLink
|
||||
Welcome_DisabledLinkColor=textDisabled
|
||||
|
||||
Timeline_TextColor=text
|
||||
Timeline_BackgroundColor1=normalBackground
|
||||
Timeline_BackgroundColor2=shadowBackground
|
||||
Timeline_DividerColor=splitter
|
||||
Timeline_HighlightColor=selectedBackground
|
||||
Timeline_PanelBackgroundColor=alternateBackground
|
||||
Timeline_PanelHeaderColor=normalBackground
|
||||
Timeline_HandleColor=ff4b5362
|
||||
Timeline_RangeColor=selectedBackground
|
||||
|
||||
VcsBase_FileStatusUnknown_TextColor=text
|
||||
VcsBase_FileAdded_TextColor=success
|
||||
VcsBase_FileModified_TextColor=warning
|
||||
VcsBase_FileDeleted_TextColor=error
|
||||
VcsBase_FileRenamed_TextColor=message
|
||||
VcsBase_FileUnmerged_TextColor=error
|
||||
|
||||
Bookmarks_TextMarkColor=message
|
||||
|
||||
TextEditor_SearchResult_ScrollBarColor=success
|
||||
TextEditor_CurrentLine_ScrollBarColor=message
|
||||
|
||||
ProjectExplorer_TaskError_TextMarkColor=error
|
||||
ProjectExplorer_TaskWarn_TextMarkColor=warning
|
||||
|
||||
CodeModel_Error_TextMarkColor=error
|
||||
CodeModel_Warning_TextMarkColor=warning
|
||||
|
||||
QmlDesigner_BackgroundColor=normalBackground
|
||||
QmlDesigner_HighlightColor=selectedBackground
|
||||
QmlDesigner_FormEditorSelectionColor=message
|
||||
QmlDesigner_FormEditorForegroundColor=normalBackground
|
||||
QmlDesigner_BackgroundColorDarkAlternate=shadowBackground
|
||||
QmlDesigner_BackgroundColorDarker=splitter
|
||||
QmlDesigner_BorderColor=splitter
|
||||
QmlDesigner_ButtonColor=normalBackground
|
||||
QmlDesigner_TabDark=shadowBackground
|
||||
QmlDesigner_TabLight=text
|
||||
QmlDesigner_FormeditorBackgroundColor=normalBackground
|
||||
QmlDesigner_AlternateBackgroundColor=alternateBackground
|
||||
QmlDesigner_ScrollBarHandleColor=ff4c566a
|
||||
|
||||
PaletteWindow=shadowBackground
|
||||
PaletteWindowText=text
|
||||
PaletteBase=normalBackground
|
||||
PaletteAlternateBase=alternateBackground
|
||||
PaletteButton=shadowBackground
|
||||
PaletteBrightText=error
|
||||
PaletteText=text
|
||||
PaletteButtonText=text
|
||||
PaletteButtonTextDisabled=textDisabled
|
||||
PaletteToolTipBase=hoverBackground
|
||||
PaletteHighlight=selectedBackground
|
||||
PaletteDark=shadowBackground
|
||||
PaletteHighlightedText=selectedBackgroundText
|
||||
PaletteToolTipText=text
|
||||
PaletteLink=textColorLink
|
||||
PaletteLinkVisited=textColorLinkVisited
|
||||
PaletteWindowDisabled=backgroundColorDisabled
|
||||
PaletteWindowTextDisabled=textDisabled
|
||||
PaletteBaseDisabled=backgroundColorDisabled
|
||||
PaletteTextDisabled=textDisabled
|
||||
|
||||
[Flags]
|
||||
ComboBoxDrawTextShadow=false
|
||||
DerivePaletteFromTheme=true
|
||||
DrawIndicatorBranch=true
|
||||
DrawSearchResultWidgetFrame=false
|
||||
DrawTargetSelectorBottom=false
|
||||
DrawToolBarHighlights=false
|
||||
DrawToolBarBorders=false
|
||||
ApplyThemePaletteGlobally=true
|
||||
FlatToolBars=true
|
||||
FlatSideBarIcons=true
|
||||
FlatProjectsMode=true
|
||||
FlatMenuBar=true
|
||||
ToolBarIconShadow=true
|
||||
WindowColorAsBase=true
|
||||
DarkUserInterface=true
|
||||
|
||||
[Gradients]
|
||||
DetailsWidgetHeaderGradient\1\color=normalBackground
|
||||
DetailsWidgetHeaderGradient\1\pos=1
|
||||
DetailsWidgetHeaderGradient\size=1
|
73
roles/qtcreator/files/nord.xml
Normal file
73
roles/qtcreator/files/nord.xml
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<style-scheme version="1.0" name="Nord">
|
||||
<style name="Text" foreground="#d8dee9" background="#2e3440"/>
|
||||
<style name="Link" underlineStyle="SingleUnderline"/>
|
||||
<style name="Selection" background="#3b4252"/>
|
||||
<style name="LineNumber" foreground="#4c566a" background="#2e3440" bold="true"/>
|
||||
<style name="SearchResult" foreground="#eceff4" background="#ebcb8b"/>
|
||||
<style name="SearchScope" background="#2e3440"/>
|
||||
<style name="Parentheses" foreground="#bf616a" background="#2e3440" bold="true"/>
|
||||
<style name="ParenthesesMismatch" foreground="#d8dee9" background="#bf616a" bold="true"/>
|
||||
<style name="AutoComplete" background="#3b4252"/>
|
||||
<style name="CurrentLine" background="#3b4252"/>
|
||||
<style name="CurrentLineNumber" foreground="#d8dee9" bold="true"/>
|
||||
<style name="Occurrences" background="#5e81ac"/>
|
||||
<style name="Occurrences.Unused" foreground="#d08770" underlineStyle="DashUnderline"/>
|
||||
<style name="Occurrences.Rename" background="#434c5e"/>
|
||||
<style name="Number" foreground="#b48ead"/>
|
||||
<style name="String" foreground="#a3be8c"/>
|
||||
<style name="Type" foreground="#8fbcbb"/>
|
||||
<style name="Local"/>
|
||||
<style name="Global"/>
|
||||
<style name="Field" foreground="#d8dee9"/>
|
||||
<style name="Static" foreground="#88c0d0" italic="true"/>
|
||||
<style name="VirtualMethod" foreground="#88c0d0" italic="true"/>
|
||||
<style name="Function" foreground="#88c0d0"/>
|
||||
<style name="Keyword" foreground="#81a1c1"/>
|
||||
<style name="PrimitiveType" foreground="#81a1c1"/>
|
||||
<style name="Operator" foreground="#81a1c1"/>
|
||||
<style name="Overloaded Operator" foreground="#81a1c1"/>
|
||||
<style name="Punctuation"/>
|
||||
<style name="Preprocessor" foreground="#81a1c1"/>
|
||||
<style name="Label" foreground="#bf616a" bold="true"/>
|
||||
<style name="Comment" foreground="#4c566a" italic="true"/>
|
||||
<style name="Doxygen.Comment" foreground="#4c566a" italic="true"/>
|
||||
<style name="Doxygen.Tag" foreground="#8fbcbb" bold="true"/>
|
||||
<style name="VisualWhitespace" foreground="#3b4252"/>
|
||||
<style name="QmlLocalId" foreground="#88c0d0" italic="true"/>
|
||||
<style name="QmlExternalId" foreground="#81a1c1" bold="true" italic="true"/>
|
||||
<style name="QmlTypeId" foreground="#8fbcbb"/>
|
||||
<style name="QmlRootObjectProperty" foreground="#81a1c1" italic="true"/>
|
||||
<style name="QmlScopeObjectProperty" foreground="#81a1c1" italic="true"/>
|
||||
<style name="QmlExternalObjectProperty" foreground="#88c0d0" italic="true"/>
|
||||
<style name="JsScopeVar" foreground="#b48ead" italic="true"/>
|
||||
<style name="JsImportVar" foreground="#88c0d0" italic="true"/>
|
||||
<style name="JsGlobalVar" foreground="#81a1c1"/>
|
||||
<style name="QmlStateName" foreground="#81a1c1" italic="true"/>
|
||||
<style name="Binding" foreground="#d8dee9" underlineColor="#000000"/>
|
||||
<style name="DisabledCode" foreground="#4c566a" background="#2e3440"/>
|
||||
<style name="AddedLine" foreground="#a3be8c"/>
|
||||
<style name="RemovedLine" foreground="#bf616a"/>
|
||||
<style name="DiffFile" foreground="#81a1c1"/>
|
||||
<style name="DiffLocation" foreground="#d08770"/>
|
||||
<style name="DiffFileLine" foreground="#2e3440" background="#ebcb8b"/>
|
||||
<style name="DiffContextLine" foreground="#2e3440" background="#88c0d0"/>
|
||||
<style name="DiffSourceLine" foreground="#2e3440" background="#e06c75"/>
|
||||
<style name="DiffSourceChar" foreground="#2e3440" background="#bf616a"/>
|
||||
<style name="DiffDestLine" foreground="#2e3440" background="#8fbcbb"/>
|
||||
<style name="DiffDestChar" foreground="#2e3440" background="#a3be8c"/>
|
||||
<style name="LogChangeLine" foreground="#bf616a"/>
|
||||
<style name="LogAuthorName" foreground="#81a1c1"/>
|
||||
<style name="LogCommitDate" foreground="#a3be8c"/>
|
||||
<style name="LogCommitHash" foreground="#bf616a"/>
|
||||
<style name="LogCommitSubject"/>
|
||||
<style name="LogDecoration" foreground="#b48ead"/>
|
||||
<style name="Warning" underlineColor="#d08770" underlineStyle="SingleUnderline"/>
|
||||
<style name="WarningContext" underlineColor="#d08770" underlineStyle="DotLine"/>
|
||||
<style name="Error" underlineColor="#bf616a" underlineStyle="SingleUnderline"/>
|
||||
<style name="ErrorContext" underlineColor="#bf616a" underlineStyle="DotLine"/>
|
||||
<style name="Declaration"/>
|
||||
<style name="FunctionDefinition"/>
|
||||
<style name="OutputArgument" foreground="#2e3440" background="#d8dee9" italic="true"/>
|
||||
<style name="LastStyleSentinel"/>
|
||||
</style-scheme>
|
300
roles/qtcreator/files/onedark.creatortheme
Normal file
300
roles/qtcreator/files/onedark.creatortheme
Normal file
|
@ -0,0 +1,300 @@
|
|||
[General]
|
||||
ThemeName=OneDark
|
||||
PreferredStyles=Fusion
|
||||
DefaultTextEditorColorScheme=onedark.xml
|
||||
|
||||
[Palette]
|
||||
shadowBackground=ff21252b
|
||||
text=ffabb2bf
|
||||
textDisabled=99abb2bf
|
||||
textHighlighted=ffd7dae0
|
||||
toolBarItem=ffabb2bf
|
||||
toolBarItemDisabled=99abb2bf
|
||||
fancyBarsNormalTextColor=ffabb2bf
|
||||
fancyBarsBoldTextColor=ffabb2bf
|
||||
hoverBackground=ff31363f
|
||||
selectedBackground=ff3a3f4b
|
||||
selectedBackgroundText=ffd7dae0
|
||||
normalBackground=ff282c34
|
||||
alternateBackground=ff31363f
|
||||
error=ffe06c75
|
||||
warning=ffe5c07b
|
||||
success=ff98c379
|
||||
message=ff61afef
|
||||
splitter=ff181a1f
|
||||
textColorLink=61afef
|
||||
textColorLinkVisited=c678dd
|
||||
backgroundColorDisabled=ff21252b
|
||||
|
||||
[Colors]
|
||||
|
||||
;DS controls theme START
|
||||
DScontrolBackground=normalBackground
|
||||
DScontrolOutline=splitter
|
||||
DStextColor=text
|
||||
DSdisabledTextColor=textDisabled
|
||||
DSpanelBackground=ff454444
|
||||
DShoverHighlight=hoverBackground
|
||||
DScolumnBackground=ff363636
|
||||
DSfocusEdit=normalBackground
|
||||
DSfocusDrag=ff565656
|
||||
DScontrolBackgroundPressed=selectedBackground
|
||||
DScontrolBackgroundChecked=selectedBackground
|
||||
DSinteraction=selectedBackground
|
||||
DSsliderActiveTrack=ff7a7a7a
|
||||
DSsliderInactiveTrack=ff4d4d4d
|
||||
DSsliderHandle=ff4b5362
|
||||
DSsliderActiveTrackHover=ff7f7f7f
|
||||
DSsliderInactiveTrackHover=ff505050
|
||||
DSsliderHandleHover=ff7a7a7a
|
||||
DSsliderActiveTrackFocus=ffaaaaaa
|
||||
DSsliderInactiveTrackFocus=ff7a7a7a
|
||||
DSsliderHandleFocus=ff1d545c
|
||||
DSerrorColor=error
|
||||
DScontrolBackgroundDisabled=backgroundColorDisabled
|
||||
DScontrolOutlineDisabled=ff4d4d4d
|
||||
DStextColorDisabled=textDisabled
|
||||
DStextSelectionColor=selectedBackground
|
||||
DStextSelectedTextColor=selectedBackgroundText
|
||||
DSscrollBarTrack=ff4d4d4d
|
||||
DSscrollBarHandle=ff4b5362
|
||||
DScontrolBackgroundInteraction=ff4d4d4d
|
||||
DStranslationIndicatorBorder=splitter
|
||||
DSsectionHeadBackground=alternateBackground
|
||||
DSchangedStateText=message
|
||||
DS3DAxisXColor=error
|
||||
DS3DAxisYColor=success
|
||||
DS3DAxisZColor=message
|
||||
;DS controls theme END
|
||||
|
||||
BackgroundColorAlternate=alternateBackground
|
||||
BackgroundColorDark=shadowBackground
|
||||
BackgroundColorHover=hoverBackground
|
||||
BackgroundColorNormal=normalBackground
|
||||
BackgroundColorDisabled=backgroundColorDisabled
|
||||
BackgroundColorSelected=selectedBackground
|
||||
BadgeLabelBackgroundColorChecked=text
|
||||
BadgeLabelBackgroundColorUnchecked=text
|
||||
BadgeLabelTextColorChecked=normalBackground
|
||||
BadgeLabelTextColorUnchecked=normalBackground
|
||||
CanceledSearchTextColor=error
|
||||
ComboBoxArrowColor=toolBarItem
|
||||
ComboBoxArrowColorDisabled=toolBarItemDisabled
|
||||
ComboBoxTextColor=fancyBarsNormalTextColor
|
||||
DetailsButtonBackgroundColorHover=hoverBackground
|
||||
DetailsWidgetBackgroundColor=shadowBackground
|
||||
DockWidgetResizeHandleColor=splitter
|
||||
DoubleTabWidget1stSeparatorColor=splitter
|
||||
DoubleTabWidget1stTabActiveTextColor=text
|
||||
DoubleTabWidget1stTabBackgroundColor=normalBackground
|
||||
DoubleTabWidget1stTabInactiveTextColor=text
|
||||
DoubleTabWidget2ndSeparatorColor=toolBarItemDisabled
|
||||
DoubleTabWidget2ndTabActiveTextColor=text
|
||||
DoubleTabWidget2ndTabBackgroundColor=selectedBackground
|
||||
DoubleTabWidget2ndTabInactiveTextColor=text
|
||||
EditorPlaceholderColor=shadowBackground
|
||||
FancyToolBarSeparatorColor=toolBarItemDisabled
|
||||
FancyTabBarBackgroundColor=shadowBackground
|
||||
FancyTabBarSelectedBackgroundColor=selectedBackground
|
||||
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
|
||||
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
|
||||
FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
|
||||
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
|
||||
FancyToolButtonHoverColor=hoverBackground
|
||||
FancyToolButtonSelectedColor=selectedBackground
|
||||
FutureProgressBackgroundColor=shadowBackground
|
||||
IconsBaseColor=toolBarItem
|
||||
IconsDisabledColor=toolBarItemDisabled
|
||||
IconsInfoColor=message
|
||||
IconsInfoToolBarColor=message
|
||||
IconsWarningColor=warning
|
||||
IconsWarningToolBarColor=warning
|
||||
IconsErrorColor=error
|
||||
IconsErrorToolBarColor=error
|
||||
IconsRunColor=success
|
||||
IconsRunToolBarColor=success
|
||||
IconsStopColor=error
|
||||
IconsStopToolBarColor=error
|
||||
IconsInterruptColor=message
|
||||
IconsInterruptToolBarColor=message
|
||||
IconsDebugColor=toolBarItem
|
||||
IconsNavigationArrowsColor=warning
|
||||
IconsBuildHammerHandleColor=b06112
|
||||
IconsBuildHammerHeadColor=toolBarItem
|
||||
IconsModeWelcomeActiveColor=success
|
||||
IconsModeEditActiveColor=message
|
||||
IconsModeDesignActiveColor=warning
|
||||
IconsModeDebugActiveColor=message
|
||||
IconsModeProjectActiveColor=success
|
||||
IconsModeAnalyzeActiveColor=message
|
||||
IconsModeHelpActiveColor=warning
|
||||
IconsCodeModelKeywordColor=ff777777
|
||||
IconsCodeModelClassColor=ffc0b550
|
||||
IconsCodeModelStructColor=ff53b053
|
||||
IconsCodeModelFunctionColor=ffd34373
|
||||
IconsCodeModelVariableColor=ff2bbbcc
|
||||
IconsCodeModelEnumColor=ffc0b550
|
||||
IconsCodeModelMacroColor=ff476ba0
|
||||
IconsCodeModelAttributeColor=ff316511
|
||||
IconsCodeModelUniformColor=ff994899
|
||||
IconsCodeModelVaryingColor=ffa08833
|
||||
IconsCodeModelOverlayBackgroundColor=normalBackground
|
||||
IconsCodeModelOverlayForegroundColor=text
|
||||
InfoBarBackground=shadowBackground
|
||||
InfoBarText=text
|
||||
MenuBarEmptyAreaBackgroundColor=shadowBackground
|
||||
MenuBarItemBackgroundColor=shadowBackground
|
||||
MenuBarItemTextColorDisabled=textDisabled
|
||||
MenuBarItemTextColorNormal=text
|
||||
MenuItemTextColorDisabled=textDisabled
|
||||
MenuItemTextColorNormal=text
|
||||
MiniProjectTargetSelectorBackgroundColor=shadowBackground
|
||||
MiniProjectTargetSelectorBorderColor=shadowBackground
|
||||
MiniProjectTargetSelectorSummaryBackgroundColor=normalBackground
|
||||
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
|
||||
PanelStatusBarBackgroundColor=shadowBackground
|
||||
PanelsWidgetSeparatorLineColor=splitter
|
||||
PanelTextColorDark=text
|
||||
PanelTextColorMid=text
|
||||
PanelTextColorLight=textHighlighted
|
||||
ProgressBarColorError=error
|
||||
ProgressBarColorFinished=success
|
||||
ProgressBarColorNormal=message
|
||||
ProgressBarTitleColor=text
|
||||
ProgressBarBackgroundColor=alternateBackground
|
||||
SplitterColor=splitter
|
||||
TextColorDisabled=textDisabled
|
||||
TextColorError=error
|
||||
TextColorHighlight=textHighlighted
|
||||
TextColorHighlightBackground=hoverBackground
|
||||
TextColorLink=textColorLink
|
||||
TextColorLinkVisited=textColorLinkVisited
|
||||
TextColorNormal=text
|
||||
ToggleButtonBackgroundColor=shadowBackground
|
||||
ToolBarBackgroundColor=shadowBackground
|
||||
TreeViewArrowColorNormal=hoverBackground
|
||||
TreeViewArrowColorSelected=text
|
||||
|
||||
OutputPanes_DebugTextColor=text
|
||||
OutputPanes_ErrorMessageTextColor=error
|
||||
OutputPanes_MessageOutput=message
|
||||
OutputPanes_NormalMessageTextColor=text
|
||||
OutputPanes_StdErrTextColor=error
|
||||
OutputPanes_StdOutTextColor=text
|
||||
OutputPanes_WarningMessageTextColor=warning
|
||||
OutputPanes_TestPassTextColor=success
|
||||
OutputPanes_TestFailTextColor=error
|
||||
OutputPanes_TestXFailTextColor=error
|
||||
OutputPanes_TestXPassTextColor=message
|
||||
OutputPanes_TestSkipTextColor=message
|
||||
OutputPanes_TestWarnTextColor=warning
|
||||
OutputPanes_TestFatalTextColor=error
|
||||
OutputPanes_TestDebugTextColor=text
|
||||
OutputPaneButtonFlashColor=error
|
||||
OutputPaneToggleButtonTextColorChecked=fancyBarsNormalTextColor
|
||||
OutputPaneToggleButtonTextColorUnchecked=fancyBarsNormalTextColor
|
||||
|
||||
Debugger_LogWindow_LogInput=ff56b6c2
|
||||
Debugger_LogWindow_LogStatus=message
|
||||
Debugger_LogWindow_LogTime=error
|
||||
|
||||
Debugger_WatchItem_ValueNormal=text
|
||||
Debugger_WatchItem_ValueInvalid=textDisabled
|
||||
Debugger_WatchItem_ValueChanged=error
|
||||
|
||||
Debugger_Breakpoint_TextMarkColor=message
|
||||
|
||||
Welcome_TextColor=text
|
||||
Welcome_ForegroundPrimaryColor=text
|
||||
Welcome_ForegroundSecondaryColor=text
|
||||
Welcome_BackgroundColor=normalBackground
|
||||
Welcome_ButtonBackgroundColor=normalBackground
|
||||
Welcome_DividerColor=splitter
|
||||
Welcome_HoverColor=hoverBackground
|
||||
Welcome_LinkColor=textColorLink
|
||||
Welcome_DisabledLinkColor=textDisabled
|
||||
|
||||
Timeline_TextColor=text
|
||||
Timeline_BackgroundColor1=normalBackground
|
||||
Timeline_BackgroundColor2=shadowBackground
|
||||
Timeline_DividerColor=splitter
|
||||
Timeline_HighlightColor=selectedBackground
|
||||
Timeline_PanelBackgroundColor=alternateBackground
|
||||
Timeline_PanelHeaderColor=normalBackground
|
||||
Timeline_HandleColor=ff4b5362
|
||||
Timeline_RangeColor=selectedBackground
|
||||
|
||||
VcsBase_FileStatusUnknown_TextColor=text
|
||||
VcsBase_FileAdded_TextColor=success
|
||||
VcsBase_FileModified_TextColor=warning
|
||||
VcsBase_FileDeleted_TextColor=error
|
||||
VcsBase_FileRenamed_TextColor=message
|
||||
VcsBase_FileUnmerged_TextColor=error
|
||||
|
||||
Bookmarks_TextMarkColor=message
|
||||
|
||||
TextEditor_SearchResult_ScrollBarColor=success
|
||||
TextEditor_CurrentLine_ScrollBarColor=message
|
||||
|
||||
ProjectExplorer_TaskError_TextMarkColor=error
|
||||
ProjectExplorer_TaskWarn_TextMarkColor=warning
|
||||
|
||||
CodeModel_Error_TextMarkColor=error
|
||||
CodeModel_Warning_TextMarkColor=warning
|
||||
|
||||
QmlDesigner_BackgroundColor=normalBackground
|
||||
QmlDesigner_HighlightColor=selectedBackground
|
||||
QmlDesigner_FormEditorSelectionColor=message
|
||||
QmlDesigner_FormEditorForegroundColor=normalBackground
|
||||
QmlDesigner_BackgroundColorDarkAlternate=shadowBackground
|
||||
QmlDesigner_BackgroundColorDarker=splitter
|
||||
QmlDesigner_BorderColor=splitter
|
||||
QmlDesigner_ButtonColor=normalBackground
|
||||
QmlDesigner_TabDark=shadowBackground
|
||||
QmlDesigner_TabLight=text
|
||||
QmlDesigner_FormeditorBackgroundColor=normalBackground
|
||||
QmlDesigner_AlternateBackgroundColor=alternateBackground
|
||||
QmlDesigner_ScrollBarHandleColor=ff4b5362
|
||||
|
||||
PaletteWindow=shadowBackground
|
||||
PaletteWindowText=text
|
||||
PaletteBase=normalBackground
|
||||
PaletteAlternateBase=alternateBackground
|
||||
PaletteButton=shadowBackground
|
||||
PaletteBrightText=error
|
||||
PaletteText=text
|
||||
PaletteButtonText=text
|
||||
PaletteButtonTextDisabled=textDisabled
|
||||
PaletteToolTipBase=hoverBackground
|
||||
PaletteHighlight=selectedBackground
|
||||
PaletteDark=shadowBackground
|
||||
PaletteHighlightedText=selectedBackgroundText
|
||||
PaletteToolTipText=text
|
||||
PaletteLink=textColorLink
|
||||
PaletteLinkVisited=textColorLinkVisited
|
||||
PaletteWindowDisabled=backgroundColorDisabled
|
||||
PaletteWindowTextDisabled=textDisabled
|
||||
PaletteBaseDisabled=backgroundColorDisabled
|
||||
PaletteTextDisabled=textDisabled
|
||||
|
||||
[Flags]
|
||||
ComboBoxDrawTextShadow=false
|
||||
DerivePaletteFromTheme=true
|
||||
DrawIndicatorBranch=true
|
||||
DrawSearchResultWidgetFrame=false
|
||||
DrawTargetSelectorBottom=false
|
||||
DrawToolBarHighlights=false
|
||||
DrawToolBarBorders=false
|
||||
ApplyThemePaletteGlobally=true
|
||||
FlatToolBars=true
|
||||
FlatSideBarIcons=true
|
||||
FlatProjectsMode=true
|
||||
FlatMenuBar=true
|
||||
ToolBarIconShadow=true
|
||||
WindowColorAsBase=true
|
||||
DarkUserInterface=true
|
||||
|
||||
[Gradients]
|
||||
DetailsWidgetHeaderGradient\1\color=normalBackground
|
||||
DetailsWidgetHeaderGradient\1\pos=1
|
||||
DetailsWidgetHeaderGradient\size=1
|
73
roles/qtcreator/files/onedark.xml
Normal file
73
roles/qtcreator/files/onedark.xml
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<style-scheme version="1.0" name="OneDark">
|
||||
<style name="Text" foreground="#abb2bf" background="#282c34"/>
|
||||
<style name="Link" underlineStyle="SingleUnderline"/>
|
||||
<style name="Selection" background="#3e4451"/>
|
||||
<style name="LineNumber" foreground="#4b5363"/>
|
||||
<style name="SearchResult" background="#324365"/>
|
||||
<style name="SearchScope" background="#3e4451"/>
|
||||
<style name="Parentheses" underlineColor="#61afef" underlineStyle="SingleUnderline"/>
|
||||
<style name="ParenthesesMismatch" foreground="#000000" background="#c678dd"/>
|
||||
<style name="AutoComplete" background="#3e4451"/>
|
||||
<style name="CurrentLine" background="#3a3f4b"/>
|
||||
<style name="CurrentLineNumber" foreground="#777c87"/>
|
||||
<style name="Occurrences" background="#324365"/>
|
||||
<style name="Occurrences.Unused" underlineColor="#d19a66" underlineStyle="DashUnderline"/>
|
||||
<style name="Occurrences.Rename" background="#e06c75"/>
|
||||
<style name="Number" foreground="#d19a66"/>
|
||||
<style name="String" foreground="#98c379"/>
|
||||
<style name="Type" foreground="#61afef"/>
|
||||
<style name="Local"/>
|
||||
<style name="Global"/>
|
||||
<style name="Field" foreground="#e06c75"/>
|
||||
<style name="Static" foreground="#61afef" italic="true"/>
|
||||
<style name="VirtualMethod" foreground="#61afef" italic="true"/>
|
||||
<style name="Function" foreground="#61afef"/>
|
||||
<style name="Keyword" foreground="#c678dd"/>
|
||||
<style name="PrimitiveType" foreground="#c678dd"/>
|
||||
<style name="Operator" foreground="#c678dd"/>
|
||||
<style name="Overloaded Operator" foreground="#c678dd"/>
|
||||
<style name="Punctuation"/>
|
||||
<style name="Preprocessor" foreground="#c678dd"/>
|
||||
<style name="Label" foreground="#e06c75" bold="true"/>
|
||||
<style name="Comment" foreground="#5c6370" italic="true"/>
|
||||
<style name="Doxygen.Comment" foreground="#5c6370" italic="true"/>
|
||||
<style name="Doxygen.Tag" foreground="#61afef"/>
|
||||
<style name="VisualWhitespace" foreground="#3c4049"/>
|
||||
<style name="QmlLocalId" foreground="#61afef"/>
|
||||
<style name="QmlExternalId"/>
|
||||
<style name="QmlTypeId" foreground="#61afef"/>
|
||||
<style name="QmlRootObjectProperty" foreground="#61afef"/>
|
||||
<style name="QmlScopeObjectProperty" foreground="#61afef"/>
|
||||
<style name="QmlExternalObjectProperty"/>
|
||||
<style name="JsScopeVar"/>
|
||||
<style name="JsImportVar" foreground="#d19a66"/>
|
||||
<style name="JsGlobalVar" foreground="#d19a66"/>
|
||||
<style name="QmlStateName" foreground="#61afef"/>
|
||||
<style name="Binding" foreground="#c678dd"/>
|
||||
<style name="DisabledCode" foreground="#5c6370"/>
|
||||
<style name="AddedLine" foreground="#98c379"/>
|
||||
<style name="RemovedLine" foreground="#e06c75"/>
|
||||
<style name="DiffFile" foreground="#61afef"/>
|
||||
<style name="DiffLocation" foreground="#d19a66"/>
|
||||
<style name="DiffFileLine" foreground="#000000" background="#e5c07b"/>
|
||||
<style name="DiffContextLine" foreground="#000000" background="#56b6c2"/>
|
||||
<style name="DiffSourceLine" foreground="#000000" background="#be5046"/>
|
||||
<style name="DiffSourceChar" foreground="#000000" background="#e06c75"/>
|
||||
<style name="DiffDestLine" foreground="#000000" background="#789353"/>
|
||||
<style name="DiffDestChar" foreground="#000000" background="#98c379"/>
|
||||
<style name="LogChangeLine" foreground="#e06c75"/>
|
||||
<style name="LogAuthorName" foreground="#61afef"/>
|
||||
<style name="LogCommitDate" foreground="#98c379"/>
|
||||
<style name="LogCommitHash" foreground="#e06c75"/>
|
||||
<style name="LogCommitSubject"/>
|
||||
<style name="LogDecoration" foreground="#c678dd"/>
|
||||
<style name="Warning" underlineColor="#d19a66" underlineStyle="SingleUnderline"/>
|
||||
<style name="WarningContext" underlineColor="#d19a66" underlineStyle="DotLine"/>
|
||||
<style name="Error" underlineColor="#e06c75" underlineStyle="SingleUnderline"/>
|
||||
<style name="ErrorContext" underlineColor="#e06c75" underlineStyle="DotLine"/>
|
||||
<style name="Declaration"/>
|
||||
<style name="FunctionDefinition"/>
|
||||
<style name="OutputArgument" italic="true"/>
|
||||
<style name="LastStyleSentinel"/>
|
||||
</style-scheme>
|
26
roles/qtcreator/tasks/main.yml
Normal file
26
roles/qtcreator/tasks/main.yml
Normal file
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
- name: Create config directories
|
||||
file:
|
||||
path: '~/.config/QtProject/qtcreator/{{ item }}'
|
||||
state: directory
|
||||
loop:
|
||||
- styles
|
||||
- themes
|
||||
|
||||
- name: Copy application themes
|
||||
copy:
|
||||
src: '{{ item }}'
|
||||
dest: ~/.config/QtProject/qtcreator/themes
|
||||
force: yes
|
||||
loop:
|
||||
- nord.creatortheme
|
||||
- onedark.creatortheme
|
||||
|
||||
- name: Copy editor styles
|
||||
copy:
|
||||
src: '{{ item }}'
|
||||
dest: ~/.config/QtProject/qtcreator/styles
|
||||
force: yes
|
||||
loop:
|
||||
- nord.xml
|
||||
- onedark.xml
|
300
roles/qutebrowser/files/base16-nord.py
Normal file
300
roles/qutebrowser/files/base16-nord.py
Normal file
|
@ -0,0 +1,300 @@
|
|||
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
|
||||
# Base16 qutebrowser template by theova
|
||||
# Nord scheme by arcticicestudio
|
||||
|
||||
base00 = "#2E3440"
|
||||
base01 = "#3B4252"
|
||||
base02 = "#434C5E"
|
||||
base03 = "#4C566A"
|
||||
base04 = "#D8DEE9"
|
||||
base05 = "#E5E9F0"
|
||||
base06 = "#ECEFF4"
|
||||
base07 = "#8FBCBB"
|
||||
base08 = "#BF616A"
|
||||
base09 = "#D08770"
|
||||
base0A = "#EBCB8B"
|
||||
base0B = "#A3BE8C"
|
||||
base0C = "#88C0D0"
|
||||
base0D = "#81A1C1"
|
||||
base0E = "#B48EAD"
|
||||
base0F = "#5E81AC"
|
||||
|
||||
# set qutebrowser colors
|
||||
|
||||
# Text color of the completion widget. May be a single color to use for
|
||||
# all columns or a list of three colors, one for each column.
|
||||
c.colors.completion.fg = base05
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
c.colors.completion.odd.bg = base00
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
c.colors.completion.even.bg = base00
|
||||
|
||||
# Foreground color of completion widget category headers.
|
||||
c.colors.completion.category.fg = base0A
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
c.colors.completion.category.bg = base00
|
||||
|
||||
# Top border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.top = base00
|
||||
|
||||
# Bottom border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.bottom = base00
|
||||
|
||||
# Foreground color of the selected completion item.
|
||||
c.colors.completion.item.selected.fg = base00
|
||||
|
||||
# Background color of the selected completion item.
|
||||
c.colors.completion.item.selected.bg = base0A
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.top = base02
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.bottom = base02
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
c.colors.completion.item.selected.match.fg = base0B
|
||||
|
||||
# Foreground color of the matched text in the completion.
|
||||
c.colors.completion.match.fg = base0B
|
||||
|
||||
# Color of the scrollbar handle in the completion view.
|
||||
c.colors.completion.scrollbar.fg = base05
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
c.colors.completion.scrollbar.bg = base00
|
||||
|
||||
# Background color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.bg = base01
|
||||
|
||||
# Foreground color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.fg = base04
|
||||
|
||||
# Background color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.bg = base00
|
||||
|
||||
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.fg = base05
|
||||
|
||||
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.bg = base02
|
||||
|
||||
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.fg = base05
|
||||
|
||||
# Background color for the download bar.
|
||||
c.colors.downloads.bar.bg = base00
|
||||
|
||||
# Color gradient start for download text.
|
||||
c.colors.downloads.start.fg = base00
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
c.colors.downloads.start.bg = base0D
|
||||
|
||||
# Color gradient end for download text.
|
||||
c.colors.downloads.stop.fg = base00
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
c.colors.downloads.stop.bg = base0C
|
||||
|
||||
# Foreground color for downloads with errors.
|
||||
c.colors.downloads.error.fg = base08
|
||||
|
||||
# Font color for hints.
|
||||
c.colors.hints.fg = base00
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
c.colors.hints.bg = base0A
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
c.colors.hints.match.fg = base05
|
||||
|
||||
# Text color for the keyhint widget.
|
||||
c.colors.keyhint.fg = base05
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
c.colors.keyhint.suffix.fg = base05
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
c.colors.keyhint.bg = base00
|
||||
|
||||
# Foreground color of an error message.
|
||||
c.colors.messages.error.fg = base00
|
||||
|
||||
# Background color of an error message.
|
||||
c.colors.messages.error.bg = base08
|
||||
|
||||
# Border color of an error message.
|
||||
c.colors.messages.error.border = base08
|
||||
|
||||
# Foreground color of a warning message.
|
||||
c.colors.messages.warning.fg = base00
|
||||
|
||||
# Background color of a warning message.
|
||||
c.colors.messages.warning.bg = base0E
|
||||
|
||||
# Border color of a warning message.
|
||||
c.colors.messages.warning.border = base0E
|
||||
|
||||
# Foreground color of an info message.
|
||||
c.colors.messages.info.fg = base05
|
||||
|
||||
# Background color of an info message.
|
||||
c.colors.messages.info.bg = base00
|
||||
|
||||
# Border color of an info message.
|
||||
c.colors.messages.info.border = base00
|
||||
|
||||
# Foreground color for prompts.
|
||||
c.colors.prompts.fg = base05
|
||||
|
||||
# Border used around UI elements in prompts.
|
||||
c.colors.prompts.border = base00
|
||||
|
||||
# Background color for prompts.
|
||||
c.colors.prompts.bg = base00
|
||||
|
||||
# Background color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.bg = base02
|
||||
|
||||
# Foreground color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.fg = base06
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
c.colors.statusbar.normal.fg = base0B
|
||||
|
||||
# Background color of the statusbar.
|
||||
c.colors.statusbar.normal.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.fg = base00
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.bg = base0D
|
||||
|
||||
# Foreground color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.fg = base00
|
||||
|
||||
# Background color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.bg = base0C
|
||||
|
||||
# Foreground color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.fg = base0E
|
||||
|
||||
# Background color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.bg = base01
|
||||
|
||||
# Foreground color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.fg = base05
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.fg = base05
|
||||
|
||||
# Background color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.bg = base0E
|
||||
|
||||
# Foreground color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.bg = base0D
|
||||
|
||||
# Background color of the progress bar.
|
||||
c.colors.statusbar.progress.bg = base0D
|
||||
|
||||
# Default foreground color of the URL in the statusbar.
|
||||
c.colors.statusbar.url.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on error.
|
||||
c.colors.statusbar.url.error.fg = base08
|
||||
|
||||
# Foreground color of the URL in the statusbar for hovered links.
|
||||
c.colors.statusbar.url.hover.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (http).
|
||||
c.colors.statusbar.url.success.http.fg = base0C
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
c.colors.statusbar.url.success.https.fg = base0B
|
||||
|
||||
# Foreground color of the URL in the statusbar when there's a warning.
|
||||
c.colors.statusbar.url.warn.fg = base0E
|
||||
|
||||
# Background color of the tab bar.
|
||||
c.colors.tabs.bar.bg = base00
|
||||
|
||||
# Color gradient start for the tab indicator.
|
||||
c.colors.tabs.indicator.start = base0D
|
||||
|
||||
# Color gradient end for the tab indicator.
|
||||
c.colors.tabs.indicator.stop = base0C
|
||||
|
||||
# Color for the tab indicator on errors.
|
||||
c.colors.tabs.indicator.error = base08
|
||||
|
||||
# Foreground color of unselected odd tabs.
|
||||
c.colors.tabs.odd.fg = base05
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
c.colors.tabs.odd.bg = base01
|
||||
|
||||
# Foreground color of unselected even tabs.
|
||||
c.colors.tabs.even.fg = base05
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
c.colors.tabs.even.bg = base00
|
||||
|
||||
# Background color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.bg = base0C
|
||||
|
||||
# Foreground color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.fg = base07
|
||||
|
||||
# Background color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.bg = base0B
|
||||
|
||||
# Foreground color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.fg = base07
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.bg = base02
|
||||
|
||||
# Foreground color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.fg = base05
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.fg = base05
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.fg = base05
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
c.colors.tabs.selected.even.fg = base05
|
||||
|
||||
# Background color of selected even tabs.
|
||||
c.colors.tabs.selected.even.bg = base02
|
||||
|
||||
# Background color for webpages if unset (or empty to use the theme's
|
||||
# color).
|
||||
# c.colors.webpage.bg = base00
|
300
roles/qutebrowser/files/base16-onedark.py
Normal file
300
roles/qutebrowser/files/base16-onedark.py
Normal file
|
@ -0,0 +1,300 @@
|
|||
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
|
||||
# Base16 qutebrowser template by theova
|
||||
# OneDark scheme by Lalit Magant (http://github.com/tilal6991)
|
||||
|
||||
base00 = "#282c34"
|
||||
base01 = "#353b45"
|
||||
base02 = "#3e4451"
|
||||
base03 = "#545862"
|
||||
base04 = "#565c64"
|
||||
base05 = "#abb2bf"
|
||||
base06 = "#b6bdca"
|
||||
base07 = "#c8ccd4"
|
||||
base08 = "#e06c75"
|
||||
base09 = "#d19a66"
|
||||
base0A = "#e5c07b"
|
||||
base0B = "#98c379"
|
||||
base0C = "#56b6c2"
|
||||
base0D = "#61afef"
|
||||
base0E = "#c678dd"
|
||||
base0F = "#be5046"
|
||||
|
||||
# set qutebrowser colors
|
||||
|
||||
# Text color of the completion widget. May be a single color to use for
|
||||
# all columns or a list of three colors, one for each column.
|
||||
c.colors.completion.fg = base05
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
c.colors.completion.odd.bg = base00
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
c.colors.completion.even.bg = base00
|
||||
|
||||
# Foreground color of completion widget category headers.
|
||||
c.colors.completion.category.fg = base0A
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
c.colors.completion.category.bg = base00
|
||||
|
||||
# Top border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.top = base00
|
||||
|
||||
# Bottom border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.bottom = base00
|
||||
|
||||
# Foreground color of the selected completion item.
|
||||
c.colors.completion.item.selected.fg = base00
|
||||
|
||||
# Background color of the selected completion item.
|
||||
c.colors.completion.item.selected.bg = base0A
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.top = base02
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.bottom = base02
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
c.colors.completion.item.selected.match.fg = base0B
|
||||
|
||||
# Foreground color of the matched text in the completion.
|
||||
c.colors.completion.match.fg = base0B
|
||||
|
||||
# Color of the scrollbar handle in the completion view.
|
||||
c.colors.completion.scrollbar.fg = base05
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
c.colors.completion.scrollbar.bg = base00
|
||||
|
||||
# Background color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.bg = base01
|
||||
|
||||
# Foreground color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.fg = base04
|
||||
|
||||
# Background color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.bg = base00
|
||||
|
||||
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.fg = base05
|
||||
|
||||
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.bg = base02
|
||||
|
||||
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.fg = base05
|
||||
|
||||
# Background color for the download bar.
|
||||
c.colors.downloads.bar.bg = base00
|
||||
|
||||
# Color gradient start for download text.
|
||||
c.colors.downloads.start.fg = base00
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
c.colors.downloads.start.bg = base0D
|
||||
|
||||
# Color gradient end for download text.
|
||||
c.colors.downloads.stop.fg = base00
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
c.colors.downloads.stop.bg = base0C
|
||||
|
||||
# Foreground color for downloads with errors.
|
||||
c.colors.downloads.error.fg = base08
|
||||
|
||||
# Font color for hints.
|
||||
c.colors.hints.fg = base00
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
c.colors.hints.bg = base0A
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
c.colors.hints.match.fg = base05
|
||||
|
||||
# Text color for the keyhint widget.
|
||||
c.colors.keyhint.fg = base05
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
c.colors.keyhint.suffix.fg = base05
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
c.colors.keyhint.bg = base00
|
||||
|
||||
# Foreground color of an error message.
|
||||
c.colors.messages.error.fg = base00
|
||||
|
||||
# Background color of an error message.
|
||||
c.colors.messages.error.bg = base08
|
||||
|
||||
# Border color of an error message.
|
||||
c.colors.messages.error.border = base08
|
||||
|
||||
# Foreground color of a warning message.
|
||||
c.colors.messages.warning.fg = base00
|
||||
|
||||
# Background color of a warning message.
|
||||
c.colors.messages.warning.bg = base0E
|
||||
|
||||
# Border color of a warning message.
|
||||
c.colors.messages.warning.border = base0E
|
||||
|
||||
# Foreground color of an info message.
|
||||
c.colors.messages.info.fg = base05
|
||||
|
||||
# Background color of an info message.
|
||||
c.colors.messages.info.bg = base00
|
||||
|
||||
# Border color of an info message.
|
||||
c.colors.messages.info.border = base00
|
||||
|
||||
# Foreground color for prompts.
|
||||
c.colors.prompts.fg = base05
|
||||
|
||||
# Border used around UI elements in prompts.
|
||||
c.colors.prompts.border = base00
|
||||
|
||||
# Background color for prompts.
|
||||
c.colors.prompts.bg = base00
|
||||
|
||||
# Background color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.bg = base02
|
||||
|
||||
# Foreground color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.fg = base06
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
c.colors.statusbar.normal.fg = base0B
|
||||
|
||||
# Background color of the statusbar.
|
||||
c.colors.statusbar.normal.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.fg = base00
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.bg = base0D
|
||||
|
||||
# Foreground color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.fg = base00
|
||||
|
||||
# Background color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.bg = base0C
|
||||
|
||||
# Foreground color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.fg = base0E
|
||||
|
||||
# Background color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.bg = base01
|
||||
|
||||
# Foreground color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.fg = base05
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.fg = base05
|
||||
|
||||
# Background color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.bg = base0E
|
||||
|
||||
# Foreground color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.bg = base0D
|
||||
|
||||
# Background color of the progress bar.
|
||||
c.colors.statusbar.progress.bg = base0D
|
||||
|
||||
# Default foreground color of the URL in the statusbar.
|
||||
c.colors.statusbar.url.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on error.
|
||||
c.colors.statusbar.url.error.fg = base08
|
||||
|
||||
# Foreground color of the URL in the statusbar for hovered links.
|
||||
c.colors.statusbar.url.hover.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (http).
|
||||
c.colors.statusbar.url.success.http.fg = base0C
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
c.colors.statusbar.url.success.https.fg = base0B
|
||||
|
||||
# Foreground color of the URL in the statusbar when there's a warning.
|
||||
c.colors.statusbar.url.warn.fg = base0E
|
||||
|
||||
# Background color of the tab bar.
|
||||
c.colors.tabs.bar.bg = base00
|
||||
|
||||
# Color gradient start for the tab indicator.
|
||||
c.colors.tabs.indicator.start = base0D
|
||||
|
||||
# Color gradient end for the tab indicator.
|
||||
c.colors.tabs.indicator.stop = base0C
|
||||
|
||||
# Color for the tab indicator on errors.
|
||||
c.colors.tabs.indicator.error = base08
|
||||
|
||||
# Foreground color of unselected odd tabs.
|
||||
c.colors.tabs.odd.fg = base05
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
c.colors.tabs.odd.bg = base01
|
||||
|
||||
# Foreground color of unselected even tabs.
|
||||
c.colors.tabs.even.fg = base05
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
c.colors.tabs.even.bg = base00
|
||||
|
||||
# Background color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.bg = base0C
|
||||
|
||||
# Foreground color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.fg = base07
|
||||
|
||||
# Background color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.bg = base0B
|
||||
|
||||
# Foreground color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.fg = base07
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.bg = base02
|
||||
|
||||
# Foreground color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.fg = base05
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.fg = base05
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.fg = base05
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
c.colors.tabs.selected.even.fg = base05
|
||||
|
||||
# Background color of selected even tabs.
|
||||
c.colors.tabs.selected.even.bg = base02
|
||||
|
||||
# Background color for webpages if unset (or empty to use the theme's
|
||||
# color).
|
||||
# c.colors.webpage.bg = base00
|
20
roles/qutebrowser/tasks/main.yml
Normal file
20
roles/qutebrowser/tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/qutebrowser
|
||||
state: directory
|
||||
|
||||
- name: Copy themes
|
||||
copy:
|
||||
src: '{{ item }}'
|
||||
dest: ~/.config/qutebrowser
|
||||
force: yes
|
||||
loop:
|
||||
- base16-nord.py
|
||||
- base16-onedark.py
|
||||
|
||||
- name: Copy config
|
||||
template:
|
||||
src: config.j2
|
||||
dest: ~/.config/qutebrowser/config.py
|
||||
force: yes
|
174
roles/qutebrowser/templates/config.j2
Normal file
174
roles/qutebrowser/templates/config.j2
Normal file
|
@ -0,0 +1,174 @@
|
|||
# Uncomment this to still load settings configured via autoconfig.yml
|
||||
config.load_autoconfig()
|
||||
config.source('base16-{{ theme }}.py')
|
||||
|
||||
# Settings ─────────────────────────────────────────────────────────────
|
||||
# Darkmode
|
||||
# c.colors.webpage.darkmode.enabled = True
|
||||
c.colors.webpage.preferred_color_scheme = 'dark'
|
||||
|
||||
# Confirm on quit
|
||||
c.confirm_quit = ['downloads', 'multiple-tabs']
|
||||
|
||||
# No autoplay
|
||||
c.content.autoplay = False
|
||||
|
||||
# Block canvas reading
|
||||
c.content.canvas_reading = False
|
||||
|
||||
# Cookies
|
||||
c.content.cookies.accept = 'no-3rdparty'
|
||||
# c.content.cookies.store = False
|
||||
|
||||
# Screen sharing
|
||||
c.content.desktop_capture = False
|
||||
|
||||
# Caching dns
|
||||
c.content.dns_prefetch = False
|
||||
|
||||
# Geo location requests
|
||||
c.content.geolocation = False
|
||||
|
||||
# Headers
|
||||
c.content.headers.accept_language = 'en-US,en;q=0.5'
|
||||
c.content.headers.custom = {"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"}
|
||||
c.content.headers.do_not_track = True
|
||||
c.content.headers.referer = 'same-domain'
|
||||
|
||||
# From current TorBrowser
|
||||
c.content.headers.user_agent = '{{ user_agent }}'
|
||||
|
||||
# Additional adblocking
|
||||
c.content.blocking.enabled = True
|
||||
c.content.blocking.method = 'adblock'
|
||||
c.content.blocking.adblock.lists = ["https://easylist.to/easylist/easylist.txt",
|
||||
"https://easylist.to/easylist/easyprivacy.txt",
|
||||
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/annoyances.txt",
|
||||
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt",
|
||||
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/privacy.txt",
|
||||
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/resource-abuse.txt",
|
||||
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt",
|
||||
"https://easylist-downloads.adblockplus.org/antiadblockfilters.txt",
|
||||
"https://www.fanboy.co.nz/fanboy-problematic-sites.txt",
|
||||
"https://www.fanboy.co.nz/enhancedstats.txt",
|
||||
"https://www.fanboy.co.nz/fanboy-antifacebook.txt",
|
||||
"https://www.fanboy.co.nz/fanboy-antifonts.txt",
|
||||
"https://secure.fanboy.co.nz/fanboy-annoyance.txt",
|
||||
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_2_English/filter.txt",
|
||||
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_3_Spyware/filter.txt",
|
||||
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_4_Social/filter.txt",
|
||||
"https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_14_Annoyances/filter.txt",
|
||||
"https://raw.githubusercontent.com/AdguardTeam/AdguardFilters/master/AnnoyancesFilter/sections/antiadblock.txt"]
|
||||
|
||||
# Hyperlink auditing
|
||||
c.content.hyperlink_auditing = False
|
||||
|
||||
# JavaScript
|
||||
c.content.javascript.alert = True
|
||||
c.content.javascript.can_access_clipboard = False
|
||||
c.content.javascript.can_close_tabs = False
|
||||
c.content.javascript.can_open_tabs_automatically = False
|
||||
c.content.javascript.enabled = False
|
||||
|
||||
# No recording
|
||||
c.content.media.audio_capture = False
|
||||
c.content.media.audio_video_capture = False
|
||||
c.content.media.video_capture = False
|
||||
|
||||
# Mouse lock
|
||||
c.content.mouse_lock = False
|
||||
|
||||
# No notification
|
||||
c.content.notifications.enabled = False
|
||||
|
||||
# No request for persistent storage
|
||||
c.content.persistent_storage = False
|
||||
|
||||
# Reduce animation
|
||||
c.content.prefers_reduced_motion = True
|
||||
|
||||
# Incognito
|
||||
c.content.private_browsing = True
|
||||
|
||||
# Don't allow to register protocol handlers
|
||||
c.content.register_protocol_handler = False
|
||||
|
||||
# SSL
|
||||
c.content.tls.certificate_errors = 'ask-block-thirdparty'
|
||||
|
||||
# Disable WebGL
|
||||
c.content.webgl = False
|
||||
|
||||
# WebRTC
|
||||
c.content.webrtc_ip_handling_policy = 'disable-non-proxied-udp'
|
||||
|
||||
# XSS auditing
|
||||
c.content.xss_auditing = False
|
||||
|
||||
# Download location
|
||||
c.downloads.location.directory = '$HOME/Downloads'
|
||||
c.downloads.location.remember = False
|
||||
|
||||
# Fonts
|
||||
c.fonts.completion.category = '{{ font_size }}pt {{ cjk_font }}'
|
||||
c.fonts.completion.entry = '{{ font_size }}pt {{ cjk_font }}'
|
||||
c.fonts.contextmenu = '{{ font_size }}pt {{ cjk_font }}'
|
||||
c.fonts.default_family = ['{{ cjk_font }}', 'Iosevka', 'Noto Sans']
|
||||
c.fonts.default_size = '{{ font_size }}pt'
|
||||
c.fonts.prompts = 'default_size sans-serif'
|
||||
c.fonts.statusbar = '{{ font_size }}pt {{ cjk_font }}'
|
||||
c.fonts.tabs.selected = 'bold {{ font_size }}pt {{ cjk_font }}'
|
||||
c.fonts.tabs.unselected = 'italic {{ font_size }}pt {{ cjk_font }}'
|
||||
|
||||
# Hints
|
||||
c.hints.uppercase = True
|
||||
|
||||
# Scroll bar
|
||||
c.scrolling.bar = 'overlay'
|
||||
|
||||
# Tabs
|
||||
c.tabs.last_close = 'default-page'
|
||||
c.tabs.new_position.related = 'next'
|
||||
c.tabs.new_position.stacking = True
|
||||
c.tabs.new_position.unrelated = 'prev'
|
||||
c.tabs.show = 'multiple'
|
||||
c.tabs.title.alignment = 'center'
|
||||
c.tabs.title.format = '{audio}{index}: {current_title} [{scroll_pos}]'
|
||||
|
||||
# urls
|
||||
c.url.start_pages = 'qute://help'
|
||||
c.url.default_page = 'qute://help'
|
||||
c.url.open_base_url = True
|
||||
c.url.searchengines = {'DEFAULT': 'https://search.disroot.org/?category_general=on&q={}',
|
||||
'!ddg': 'https://www.duckduckgo.com/?q={}',
|
||||
'!searx0': 'https://search.disroot.org/?category_general=on&q={}',
|
||||
'!searx1': 'https://searx.info/?category_general=on&q={}',
|
||||
'!searx2': 'https://searx.fmac.xyz/?category_general=on&q={}',
|
||||
'!searx3': 'https://searx.be/?category_general=on&q={}',
|
||||
'!searx4': 'https://searx.monicz.pl/?category_general=on&q={}',
|
||||
'!sp': 'https://startpage.com/do/search?query={}',
|
||||
'!qwant': 'https://www.qwant.com/?q={}',
|
||||
'!so': 'http://stackoverflow.com/search?q={}',
|
||||
'!github': 'https://github.com/search?utf8=\u2713&q={}',
|
||||
'!gitlab': 'https://gitlab.com/explore?utf8=\u2713&sort=latest_activity_desc&name={}',
|
||||
'!mdn': 'https://developer.mozilla.org/en-US/search?q={}',
|
||||
'!devhints': 'https://devhints.io/{}',
|
||||
'!gentoo': 'https://wiki.gentoo.org/index.php?title=Special%3ASearch&profile=default&fulltext=Search&search={}',
|
||||
'!arch': 'https://wiki.archlinux.org/index.php?search={}',
|
||||
'!wiki': 'https://en.wikipedia.org/wiki/{}',
|
||||
'!osm': 'https://www.openstreetmap.org/search?query={}',
|
||||
'!gi': 'https://www.google.com/search?tbm=isch&q={}',
|
||||
'!urban': 'https://www.urbandictionary.com/define.php?term={}',
|
||||
'!thesaurus': 'https://www.thesaurus.com/browse/{}',
|
||||
'!vocab': 'https://www.vocabulary.com/dictionary/{}',
|
||||
'!twitter': 'https://twitter.com/search?q={}',
|
||||
'!yt': 'https://www.youtube.com/results?search_query={}',
|
||||
'!odysee': 'https://odysee.com/$/search?q={}',
|
||||
'!archive': 'https://archive.org/search.php?query={}',
|
||||
'!alto': 'https://alternativeto.net/browse/search?q={}'}
|
||||
|
||||
# Bindings ─────────────────────────────────────────────────────────────
|
||||
config.bind(',m', 'hint links spawn mpv {hint-url}')
|
||||
config.bind(',y', 'hint links spawn alacritty -e yt-dlp {hint-url}')
|
||||
config.bind(',t', 'config-cycle tabs.show multiple never')
|
||||
config.bind(',T', 'set-cmd-text -s :open -t')
|
6
roles/ripgrep/files/config
Normal file
6
roles/ripgrep/files/config
Normal file
|
@ -0,0 +1,6 @@
|
|||
--hidden
|
||||
|
||||
--glob
|
||||
!git/*
|
||||
|
||||
--smart-case
|
11
roles/ripgrep/tasks/main.yml
Normal file
11
roles/ripgrep/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/ripgrep
|
||||
state: directory
|
||||
|
||||
- name: Copy config
|
||||
copy:
|
||||
src: config
|
||||
dest: ~/.config/ripgrep/config
|
||||
force: yes
|
11
roles/river/tasks/main.yml
Normal file
11
roles/river/tasks/main.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
- name: Create config directory
|
||||
file:
|
||||
path: ~/.config/river
|
||||
state: directory
|
||||
|
||||
- name: Copy init
|
||||
template:
|
||||
src: init.j2
|
||||
dest: ~/.config/river/init
|
||||
mode: 0755
|
14
roles/river/templates/by_host/alpine-tp/init.j2
Normal file
14
roles/river/templates/by_host/alpine-tp/init.j2
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Output configuration ─────────────────────────────────────────────────────────
|
||||
|
||||
riverctl spawn 'wlr-randr --output eDP-1 --mode 1920x1080@60.000000Hz --pos -1920,0 --transform normal --scale 1.000000 --output HDMI-A-1 --mode 1920x1080@60.000000Hz --pos 0,0 --transform normal --scale 1.000000'
|
||||
|
||||
# Inputs ───────────────────────────────────────────────────────────────────────
|
||||
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad events disabled-on-external-mouse
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad drag enabled
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad disable-while-typing enabled
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad natural-scroll enabled
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad tap enabled
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad tap-button-map left-right-middle
|
||||
riverctl input 2:7:SynPS/2_Synaptics_TouchPad scroll-method two-finger
|
||||
|
232
roles/river/templates/init.j2
Normal file
232
roles/river/templates/init.j2
Normal file
|
@ -0,0 +1,232 @@
|
|||
#!/bin/sh
|
||||
|
||||
export XKB_DEFAULT_LAYOUT="us,ru"
|
||||
export XKB_DEFAULT_OPTIONS="grp:rctrl_rshift_toggle"
|
||||
|
||||
# Startup commands ─────────────────────────────────────────────────────────────
|
||||
|
||||
# Inform dbus about the environment
|
||||
riverctl spawn 'dbus-update-activationn-environment DISPLAY WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP'
|
||||
|
||||
riverctl spawn '~/.local/libexec/wayland/launch_pipewire'
|
||||
riverctl spawn '~/.local/libexec/wayland/launch_mpd'
|
||||
riverctl spawn '~/.local/libexec/wayland/start_notify'
|
||||
riverctl spawn '~/.local/libexec/wayland/launch_waybar'
|
||||
riverctl spawn '~/.local/libexec/wayland/clipboard --start'
|
||||
riverctl spawn '~/.local/libexec/wayland/wlwpp'
|
||||
riverctl spawn '/usr/libexec/xdg-desktop-portal-wlr'
|
||||
riverctl spawn '/usr/libexec/xdg-desktop-portal-gtk'
|
||||
riverctl spawn 'swayidle -w before-sleep swaylock'
|
||||
riverctl spawn 'mpDris2'
|
||||
|
||||
{% include 'by_host/' + ansible_hostname + '/init.j2' ignore missing %}
|
||||
|
||||
# Looks ────────────────────────────────────────────────────────────────────────
|
||||
|
||||
# Gtk theme
|
||||
riverctl spawn 'gsettings set org.gnome.desktop.interface gtk-theme {{ gtk_theme }}'
|
||||
riverctl spawn 'gsettings set org.gnome.desktop.interface icon-theme {{ icon_theme }}'
|
||||
riverctl spawn 'gsettings set org.gnome.desktop.interface cursor-theme {{ cursor_theme }}'
|
||||
riverctl spawn 'gsettings set org.gnome.desktop.interface cursor-size {{ cursor_size }}'
|
||||
|
||||
# Cursor theme
|
||||
riverctl xcursor-theme {{ cursor_theme }} {{ cursor_size }}
|
||||
|
||||
# Borders
|
||||
riverctl border-width 2
|
||||
riverctl border-color-focused 0x{{ white2 | regex_replace('^#', '') }}
|
||||
riverctl border-color-unfocused 0x{{ blue | regex_replace('^#', '') }}
|
||||
riverctl border-color-urgent 0x{{ red | regex_replace('^#', '') }}
|
||||
|
||||
# Background (if no wallpaper is presented)
|
||||
riverctl background-color 0x{{ background | regex_replace('^#', '') }}
|
||||
|
||||
# Bindings ─────────────────────────────────────────────────────────────────────
|
||||
|
||||
# Use the "logo" key as the primary modifier
|
||||
mod="Mod4"
|
||||
|
||||
# Terminals
|
||||
riverctl map normal $mod Return spawn alacritty
|
||||
riverctl map normal $mod+Shift Return spawn foot
|
||||
|
||||
# Launcher
|
||||
riverctl map normal $mod D spawn 'wofi --show=drun'
|
||||
riverctl map normal $mod+Control D spawn 'wofi --show=run'
|
||||
|
||||
# Web search
|
||||
riverctl map normal $mod+Mod1 S spawn '~/.local/libexec/wayland/searchmenu --wofi'
|
||||
|
||||
# Manga
|
||||
riverctl map normal $mod+Mod1 M spawn '~/.local/libexec/wayland/mangamenu --wofi'
|
||||
|
||||
# Clipboard manager
|
||||
riverctl map normal $mod+Mod1 D spawn '~/.local/libexec/wayland/clipboard --wofi'
|
||||
riverctl map normal $mod+Mod1 C spawn '~/.local/libexec/wayland/clipboard --clear'
|
||||
riverctl map normal $mod C spawn '~/.local/libexec/wayland/clipboard --wofi-clear'
|
||||
|
||||
# Dismiss notifications
|
||||
riverctl map normal $mod+Mod1 N spawn '~/.local/libexec/wayland/dismiss_notify'
|
||||
|
||||
# Emacs
|
||||
riverctl map normal $mod+Mod1 E spawn 'emacsclient -c -a emacs'
|
||||
|
||||
# Screenshot
|
||||
riverctl map normal $mod Print spawn '~/.local/libexec/wayland/screenshot --full'
|
||||
riverctl map normal None Print spawn '~/.local/libexec/wayland/screenshot --region'
|
||||
riverctl map normal Mod1 Print spawn '~/.local/libexec/wayland/screenshot --region-optional'
|
||||
riverctl map normal Control Print spawn '~/.local/libexec/wayland/screeshot --full-optional'
|
||||
|
||||
# Mod+Q to close the focused view
|
||||
riverctl map normal $mod Q close
|
||||
|
||||
# Mod+Z to lock the screen
|
||||
riverctl map normal $mod Z spawn swaylock
|
||||
|
||||
# Mod+Alt+Q to exit river
|
||||
riverctl map normal $mod+Mod1 Q exit
|
||||
|
||||
# Mod+J and Mod+K to focus the next/previous view in the layout stack
|
||||
riverctl map normal $mod J focus-view next
|
||||
riverctl map normal $mod K focus-view previous
|
||||
|
||||
# Mod+Shift+J and Mod+Shift+K to swap the focused view with the next/previous
|
||||
# view in the layout stack
|
||||
riverctl map normal $mod+Shift J swap next
|
||||
riverctl map normal $mod+Shift K swap previous
|
||||
|
||||
# Mod+Period and Mod+Comma to focus the next/previous output
|
||||
riverctl map normal $mod Period focus-output next
|
||||
riverctl map normal $mod Comma focus-output previous
|
||||
|
||||
# Mod+Shift+{Period,Comma} to send the focused view to the next/previous output
|
||||
riverctl map normal $mod+Shift Period send-to-output next
|
||||
riverctl map normal $mod+Shift Comma send-to-output previous
|
||||
|
||||
# Mod+E to bump the focused view to the top of the layout stack
|
||||
riverctl map normal $mod E zoom
|
||||
|
||||
# Mod+H and Mod+L to decrease/increase the main_factor value of rivertile by 0.02
|
||||
riverctl map normal $mod H send-layout-cmd rivertile 'main-ratio -0.02'
|
||||
riverctl map normal $mod L send-layout-cmd rivertile 'main-ratio +0.02'
|
||||
|
||||
# Mod+Shift+H and Mod+Shift+L to increment/decrement the main_count value of rivertile
|
||||
riverctl map normal $mod+Shift H send-layout-cmd rivertile 'main-count +1'
|
||||
riverctl map normal $mod+Shift L send-layout-cmd rivertile 'main-count -1'
|
||||
|
||||
# Mod+Alt+{H,J,K,L} to move views
|
||||
riverctl map normal $mod+Mod1 H move left 100
|
||||
riverctl map normal $mod+Mod1 J move down 100
|
||||
riverctl map normal $mod+Mod1 K move up 100
|
||||
riverctl map normal $mod+Mod1 L move right 100
|
||||
|
||||
# Mod+Control+{H,J,K,L} to resize views
|
||||
riverctl map normal $mod+Control H resize horizontal -100
|
||||
riverctl map normal $mod+Control J resize vertical 100
|
||||
riverctl map normal $mod+Control K resize vertical -100
|
||||
riverctl map normal $mod+Control L resize horizontal 100
|
||||
|
||||
# Mod+Alt+Control+{H,J,K,L} to snap views to screen edges
|
||||
riverctl map normal $mod+Mod1+Control H snap left
|
||||
riverctl map normal $mod+Mod1+Control J snap down
|
||||
riverctl map normal $mod+Mod1+Control K snap up
|
||||
riverctl map normal $mod+Mod1+Control L snap right
|
||||
|
||||
# Mod + Left Mouse Button to move views
|
||||
riverctl map-pointer normal $mod BTN_LEFT move-view
|
||||
|
||||
# Mod + Right Mouse Button to resize views
|
||||
riverctl map-pointer normal $mod BTN_RIGHT resize-view
|
||||
|
||||
for i in $(seq 1 9)
|
||||
do
|
||||
tags=$((1 << (i - 1)))
|
||||
|
||||
# Mod+[1-9] to focus tag [0-8]
|
||||
riverctl map normal $mod $i set-focused-tags $tags
|
||||
|
||||
# Mod+Shift+[1-9] to tag focused view with tag [0-8]
|
||||
riverctl map normal $mod+Shift $i set-view-tags $tags
|
||||
|
||||
# Mod+Ctrl+[1-9] to toggle focus of tag [0-8]
|
||||
riverctl map normal $mod+Control $i toggle-focused-tags $tags
|
||||
|
||||
# Mod+Shift+Ctrl+[1-9] to toggle tag [0-8] of focused view
|
||||
riverctl map normal $mod+Shift+Control $i toggle-view-tags $tags
|
||||
done
|
||||
|
||||
# Mod+0 to focus all tags
|
||||
# Mod+Shift+0 to tag focused view with all tags
|
||||
all_tags=$(((1 << 32) - 1))
|
||||
riverctl map normal $mod 0 set-focused-tags $all_tags
|
||||
riverctl map normal $mod+Shift 0 set-view-tags $all_tags
|
||||
|
||||
# Mod+Space to toggle float
|
||||
riverctl map normal $mod Space toggle-float
|
||||
|
||||
# Mod+F to toggle fullscreen
|
||||
riverctl map normal $mod F toggle-fullscreen
|
||||
|
||||
# Control+Alt+{H,J,K,L} to change layout orientation
|
||||
riverctl map normal Mod1+Control H send-layout-cmd rivertile 'main-location left'
|
||||
riverctl map normal Mod1+Control J send-layout-cmd rivertile 'main-location bottom'
|
||||
riverctl map normal Mod1+Control K send-layout-cmd rivertile 'main-location top'
|
||||
riverctl map normal Mod1+Control L send-layout-cmd rivertile 'main-location right'
|
||||
|
||||
# Declare a passthrough mode. This mode has only a single mapping to return to
|
||||
# normal mode. This makes it useful for testing a nested wayland compositor
|
||||
riverctl declare-mode passthrough
|
||||
|
||||
# Mod+F11 to enter passthrough mode
|
||||
riverctl map normal $mod F11 enter-mode passthrough
|
||||
|
||||
# Mod+F11 to return to normal mode
|
||||
riverctl map passthrough $mod F11 enter-mode normal
|
||||
|
||||
# Various media key mapping examples for both normal and locked mode which do
|
||||
# not have a modifier
|
||||
for mode in normal locked
|
||||
do
|
||||
# Eject the optical drive
|
||||
riverctl map $mode None XF86Eject spawn 'eject -T'
|
||||
|
||||
# Control pulse audio volume
|
||||
riverctl map $mode None XF86AudioRaiseVolume spawn '~/.local/libexec/wayland/volumecontrol increase'
|
||||
riverctl map $mode None XF86AudioLowerVolume spawn '~/.local/libexec/wayland/volumecontrol decrease'
|
||||
riverctl map $mode None XF86AudioMute spawn '~/.local/libexec/wayland/volumecontrol toggle'
|
||||
|
||||
# Control MPRIS aware media players with playerctl (https://github.com/altdesktop/playerctl)
|
||||
riverctl map $mode None XF86AudioMedia spawn 'playerctl play-pause'
|
||||
riverctl map $mode None XF86AudioPlay spawn 'playerctl play-pause'
|
||||
riverctl map $mode None XF86AudioPrev spawn 'playerctl previous'
|
||||
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
|
||||
|
||||
# Control screen backlight brightness
|
||||
riverctl map $mode None XF86MonBrightnessUp spawn '~/.local/libexec/wayland/brightness up'
|
||||
riverctl map $mode None XF86MonBrightnessDown spawn '~/.local/libexec/wayland/brightness down'
|
||||
done
|
||||
|
||||
# Rules ────────────────────────────────────────────────────────────────────────
|
||||
|
||||
# Set repeat rate
|
||||
riverctl set-repeat 50 300
|
||||
|
||||
# Cursor
|
||||
riverctl focus-follows-cursor normal
|
||||
riverctl set-cursor-warp on-output-change
|
||||
|
||||
# New window position
|
||||
riverctl attach-mode bottom
|
||||
|
||||
# Set app-ids of views which should float
|
||||
riverctl float-filter-add app-id 'float'
|
||||
riverctl float-filter-add app-id 'popup'
|
||||
riverctl float-filter-add app-id 'swappy'
|
||||
riverctl float-filter-add app-id 'info.febvre.Komikku'
|
||||
|
||||
# Set app-ids of views which should use client side decorations
|
||||
riverctl csd-filter-add app-id 'swappy'
|
||||
|
||||
# Default layout
|
||||
riverctl default-layout rivertile
|
||||
exec rivertile -view-padding 4 -outer-padding 4 -main-location left -main-count 1 -main-ratio 0.54
|
|
@ -7,7 +7,7 @@ underline=$(tput smul)
|
|||
esc=$(tput sgr0)
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
fzf --no-multi < /usr/share/dict/american-english | xargs -t -r dict
|
||||
fzf --prompt "Find word: " --no-multi < /usr/share/dict/american-english | xargs -t -r dict
|
||||
else
|
||||
curl -s "dict://dict.org/d:$1" | sed -n -e '/^151.*/,/^\./p' | sed -e 's/^151.*//g' -e '/^\./D' -e '/^\s*1\./i\\' -e "s/{\([^{]*\)}/${esc}${bold}${underline}\1${esc}/g" -e "s/^\($1\)\(\W\)/${esc}${bold}${red}\1${esc}\2/gI" -e "s/^\(\s*\)\([0-9]\.\)/\1${esc}${bold}${cyan}\2${esc}/g" -e 's/--/—/g' -e 's/—\(\w\)/— \1/g'
|
||||
fi
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = "-a" ]; then
|
||||
apk list -a | awk -F' ' '{print $1}' | sed 's/-[^-]*-r[0-9]*//g' | sort | fzf --multi --preview 'apk info -a {}'
|
||||
apk list -a | awk -F' ' '{print $1}' | sed 's/-[^-]*-r[0-9]*//g' | sort | fzf --multi --prompt "Packages: " --preview 'apk info -a {}'
|
||||
elif [ "$1" = "-i" ]; then
|
||||
apk list -I | awk -F' ' '{print $1}' | sed 's/-[^-]*-r[0-9]*//g' | sort | fzf --multi --preview 'apk info -a {}'
|
||||
apk list -I | awk -F' ' '{print $1}' | sed 's/-[^-]*-r[0-9]*//g' | sort | fzf --multi --prompt "Packages: " --preview 'apk info -a {}'
|
||||
elif [ "$1" = "-m" ]; then
|
||||
fzf --multi --preview 'apk info -a {}' < /etc/apk/world
|
||||
fzf --multi --prompt "Packages: " --preview 'apk info -a {}' < /etc/apk/world
|
||||
else
|
||||
echo "Usage:
|
||||
-a: list all packages
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# In case of using seatd (need the user to be in _seatd group)
|
||||
# In case of using seatd (need the user to be in 'seat' group)
|
||||
if [ -z "${XDG_RUNTIME_DIR}" ]
|
||||
then
|
||||
userid=$(id -u ${USER})
|
||||
|
@ -22,5 +22,5 @@ export MOZ_ENABLE_WAYLAND=1
|
|||
#export SDL_VIDEODRIVER=wayland
|
||||
|
||||
export XDG_CURRENT_DESKTOP="$1"
|
||||
# $HOME/.config/emacs-config/doom/bin/doom env
|
||||
exec dbus-run-session "$@" > "${XDG_RUNTIME_DIR}/$1-$(date "+%Y-%m-%d").log" 2>&1
|
||||
# $HOME/.config/emacs/bin/doom env
|
||||
exec dbus-run-session "$@" > "${XDG_RUNTIME_DIR}/$1-$(date "+%Y-%m-%d").log" 2>&1 && exit
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
mute=$(pulsemixer --get-mute)
|
||||
|
||||
if [ "$mute" -eq 1 ] || [ "$mute" = "true" ]
|
||||
then
|
||||
echo "婢 muted"
|
||||
else
|
||||
volume=$(pulsemixer --get-volume)
|
||||
left=$(echo "$volume" | cut -d' ' -f1)
|
||||
right=$(echo "$volume" | cut -d' ' -f2)
|
||||
average=$(((left+right)/2))
|
||||
echo "墳 $average%"
|
||||
fi
|
10
roles/scripts/files/libexec/wayland/launch_mpd
Executable file
10
roles/scripts/files/libexec/wayland/launch_mpd
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Terminate already running mpd instance
|
||||
mpd --kill
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x mpd >/dev/null; do sleep 1; done
|
||||
|
||||
# Relaunch
|
||||
exec mpd --no-daemon
|
11
roles/scripts/files/libexec/wayland/launch_pipeiwre
Executable file
11
roles/scripts/files/libexec/wayland/launch_pipeiwre
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Terminate already running pipewire session
|
||||
# We can launch pipewire-pulse and wireplumber in the config, so don't need to kill here
|
||||
pkill -9 pipewire
|
||||
|
||||
# Wait until it is fully killed
|
||||
while pgrep -x pipewire >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch again
|
||||
exec pipewire
|
10
roles/scripts/files/libexec/wayland/launch_waybar
Executable file
10
roles/scripts/files/libexec/wayland/launch_waybar
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
pkill -9 waybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x waybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch main
|
||||
exec waybar
|
|
@ -1,9 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
mangadir="$HOME/Pictures/gallery-dl/Manga"
|
||||
case $1 in
|
||||
--fzf)
|
||||
menu1="fzf -e --no-multi"
|
||||
menu2="${menu1}"
|
||||
menu1="fzf -e --no-multi --prompt 'Manga: '"
|
||||
menu2="fzf -e --no-multi --prompt 'Chapter: '"
|
||||
;;
|
||||
--wofi)
|
||||
menu1="wofi -d -p Manga"
|
||||
|
@ -14,14 +15,14 @@ case $1 in
|
|||
;;
|
||||
esac
|
||||
|
||||
manga=$(find ~/gallery-dl/Manga -type f -exec basename '{}' \; | ${menu1})
|
||||
manga=$(find "${mangadir}" -type f -exec basename '{}' \; | ${menu1})
|
||||
|
||||
if [ -n "$manga" ]
|
||||
then
|
||||
chapter=$(find ~/gallery-dl/Manga/"${manga}" -type f -exec basename '{}' \; | ${menu2})
|
||||
if [ -n "$chapter" ]
|
||||
chapter=$(find "${mangadir}/${manga}" -type f -exec basename '{}' \; | ${menu2})
|
||||
if [ -n "${chapter}" ]
|
||||
then
|
||||
zathura ~/gallery-dl/Manga/"${manga}"/"${chapter}" &
|
||||
zathura "${mangadir}/${manga}"/"${chapter}" &
|
||||
else
|
||||
mangamenu "$1"
|
||||
fi
|
||||
|
|
0
roles/scripts/templates/brightness.j2
Executable file → Normal file
0
roles/scripts/templates/brightness.j2
Executable file → Normal file
27
roles/scripts/templates/clipboard.j2
Executable file → Normal file
27
roles/scripts/templates/clipboard.j2
Executable file → Normal file
|
@ -1,15 +1,20 @@
|
|||
#!/bin/sh
|
||||
|
||||
case $1 in
|
||||
--wofi)
|
||||
clipman pick --tool wofi -T'-p "Clipboard " -i -O default'
|
||||
;;
|
||||
--fzf)
|
||||
clipman pick --tool fzf -T'--no-multi -e'
|
||||
;;
|
||||
--clear)
|
||||
clipman clear --all && notify-send -i "$HOME/.config/{{ notification }}/clipboard.png" "Clipboard cleared"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
{% if clipboard == 'clipman' %}
|
||||
--wofi) clipman pick --tool wofi -T'-p "Clipboard " -i -O default' ;;
|
||||
--fzf) clipman pick --tool fzf -T'--prompt "Clipboard " --no-multi -e' ;;
|
||||
--wofi-clear) clipman clear --tool wofi -T'-p "Clear clipboard " -i -O default' ;;
|
||||
--fzf-clear) clipman clear --tool fzf -T'--prompt "Clear clipboard " -e' ;;
|
||||
--start) wl-paste -t text --watch clipman store --no-persist ;;
|
||||
--clear) clipman clear --all && notify-send -i "$HOME/.config/{{ notification }}/clipboard.png" "Clipboard cleared" ;;
|
||||
{% elif clipboard == 'cliphist' %}
|
||||
--wofi) cliphist list | wofi -p "Clipboard " -i -O default | cliphist decode | wl-copy ;;
|
||||
--fzf) cliphist list | fzf --prompt "Clipboard " --no-multi -e | cliphist decode | wl-copy ;;
|
||||
--wofi-clear) cliphist list | wofi -p "Clear clipboard " -i -O default | cliphist delete ;;
|
||||
--fzf-clear) cliphist list | fzf --prompt "Clear clipboard " -e | cliphist delete ;;
|
||||
--start) wl-paste --watch cliphist store ;;
|
||||
--clear) rm -f "$XDG_CACHE_HOME/cliphist/db" && notify-send -i "$HOME/.config/{{ notification }}/clipboard.png" "Clipboard cleared" ;;
|
||||
{% endif %}
|
||||
*) ;;
|
||||
esac
|
||||
|
|
0
roles/scripts/templates/dismiss_notify.j2
Executable file → Normal file
0
roles/scripts/templates/dismiss_notify.j2
Executable file → Normal file
0
roles/scripts/templates/screenshot.j2
Executable file → Normal file
0
roles/scripts/templates/screenshot.j2
Executable file → Normal file
7
roles/scripts/templates/start_notify.j2
Normal file
7
roles/scripts/templates/start_notify.j2
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
{% if notification == 'dunst' %}
|
||||
exec dunst -config ~/.config/dunst/dunstrc
|
||||
{% elif notification == 'mako' %}
|
||||
exec mako -c ~/.config/mako/config
|
||||
{% endif %}
|
0
roles/scripts/templates/touchpad.j2
Executable file → Normal file
0
roles/scripts/templates/touchpad.j2
Executable file → Normal file
0
roles/scripts/templates/volumecontrol.j2
Executable file → Normal file
0
roles/scripts/templates/volumecontrol.j2
Executable file → Normal file
18
roles/shells/files/config.toml
Normal file
18
roles/shells/files/config.toml
Normal file
|
@ -0,0 +1,18 @@
|
|||
skip_welcome_message = true
|
||||
startup = [
|
||||
"zoxide init nushell --hook prompt | save ~/.local/share/nu/zoxide.nu",
|
||||
"source ~/.local/share/nu/zoxide.nu",
|
||||
"starship init nu | save ~/.local/share/nu/starship.nu",
|
||||
"source ~/.local/share/nu/starship.nu"
|
||||
]
|
||||
prompt = "starship_prompt"
|
||||
|
||||
[line_editor]
|
||||
completion_type = "list"
|
||||
edit_mode = "vi"
|
||||
|
||||
[textview]
|
||||
pager = "less -R"
|
||||
paging_mode = "quitifonescreen"
|
||||
true_color = true
|
||||
theme = "base16"
|
|
@ -10,9 +10,9 @@ alias mkdir='mkdir -pv'
|
|||
# alias lt='exa --tree'
|
||||
abbr tmux 'TERM=screen-256color command tmux'
|
||||
|
||||
# vim
|
||||
# neovim
|
||||
abbr v nvim
|
||||
abbr vi 'fzf | xargs -r nvim -o'
|
||||
abbr vi 'fzf --prompt "Edit files: " | xargs nvim'
|
||||
|
||||
# emacs
|
||||
alias doom='$HOME/.config/emacs/bin/doom'
|
5
roles/shells/files/fish/conf.d/gpg-agent.fish
Normal file
5
roles/shells/files/fish/conf.d/gpg-agent.fish
Normal file
|
@ -0,0 +1,5 @@
|
|||
if not pgrep -u "$USER" gpg-agent >/dev/null
|
||||
gpg-agent --daemon >/dev/null
|
||||
end
|
||||
|
||||
gpg-connect-agent updatestartuptty /bye >/dev/null
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue