Compare commits

...
12 Commits
218 changed files with 1588121 additions and 7199 deletions
+19
View File
@@ -0,0 +1,19 @@
encryption = "age"
[age]
identity = "~/.config/chezmoi/key"
recipient = "age1pq1q8zvperhkgayvaeyppanuwml6l54a2ehp8au3z96qzsympcjxhsvzdk9exks48fufdr3xaq8n65tque5xmfe5q6gjelsv55y6wa38fxxnurujk8dzup9zl9j3343mvdndnl0y20uejscwe3lfzn382ftspcespwdkpy063nz2ne4jalf5amuk9uuhyq7gezyg0ryhps2vwrsesckqe3md9nt50szym5zwmc9n3mq4faxahrlvystfcs4wq9ccjv9552v5x34vjs5zn83qy4skktkgvppdga95kt9jjx2fc3jvtqrusrf8rr3qlpckz0nqxndcqkstxlte3n8tjmuahnj8ph4prfhn899ze9wnxyznregyu6nnj365rry86rdagj53fwg0x6n9zhx62e2x7jshzyydahzp264efhakf9llacfvlwx6efe2sppk5zfsp0m8vgeyv3fvrxqrv3y4zj6cgj29kdlc6mvtpeqrcxkkd0xcka44p2287nphx6shwk426jl3v8qedtg5n6rcq68r454dfhxffr356gj6x3sc7a6890pkn55qa63s74nju4ytakmzescsrxamd6psgx8vjrcyvxfqlapywd74z5456dr2h3s49yud9ekzly7gcl04jss9kg8zelgfnqatslz6qtv6tzrgcqzm2rqc3asjylh2vhe9ze3qvtnucnqkddzygqtkr99apg67r23ur6ey2dznw5j546qq3uxnf4vydj8wv9cxd0xzs8xvn9cxu93xt5kxnr8j3ry2al7rszczu5faf24wqqh835uevdwn2r5szjvjdrtg7fw4zgkcpft2fgqm35fafavvulezhj44d5jy6yly4zmckeh4xpfh82zkwkegav373t65upepvykqfgcnwvtsatewmska82ud76ak37gw0x94xycwszq8sm29q4gpq9f8f2eyk6dj8aqhmdurr7hh87scqf4sjt669w95fsyrkr7eynltw8u3fcaur2yq44yk6sgr38wlnrxlcxzmv4st5d5c0zwjprds3kn26j5d6arx7gxw8nrgs57cetjnx586h25ltv2hh5c27xvdj20l2cpd7434mkscfe0jp395mphsyrl0hfh69vvxvh3yyq7a2eeqvc03fcnkfju5lksvexg3nr43qtgk5wqcw36h4z4jy772qdusu6x8wsnh23c9v48cfvm5q3r6x79ptr63sdrejd9gpun9wwckp5r0qusp7g9qysyt8yz9235e0reungjlaz2pnvaqksuaxjy2fpyn8f4uvg82rtlhq8f3373np259sq3fl39d32whyk62a5dukf7se6qkaykwwxgcprp0patv5prfukyjdtpx3ym40nnye9a8m9snk4g2xyenwh6wcldt230c6zvanp3vyfmtvc6tsdgmsvu62n5jkw2cfc9yzxyv9st72ampfns3e96ymack4fvz49p6c7vq0xf84380axzs9ajx9ssdwwra4auczj3f4uutpwh4rypmdxs3y2qvutzh0am08yq5w6wjwgv6yad2aex3s2s2gmzwllw2tpnlzv2vejnm3t24zrlkyfhcuqu0a5ppfex3r2ekrwsy4lz9w045wen4tms7pg638zu3wwg7fjrf6ctjtsjh8yuxf58gcwpy50ym8xg30n2gr09kmp9dyaeqsespdfvz9m4085pk25jdtdhprr8dh9m44wyndc8zhsz4gwx26kkyscq7kctd3lxpl8jwszkjyk9tmqrxyvjxe29c7w8g0qcqulnc326xwpt9nrgqssww0wnya3w42392dwpukthq79zvzlw60qruh6vnnxe6w849ajxe3lss8e0rthnq6gpfm0f0q754nvn9f05xvz3ptj5kch6d5hpzgwdkrjuw7rrwxhs7gdn3gkk6puvs62yge6zrg7jalyx"
[data]
{{ $system := promptStringOnce . "system" "Which system class is this machine?" "desktop" }}
system = {{ $system | quote }}
{{ $gaming := promptBoolOnce . "gaming" "Should gaming packages (e.g. Steam, heroic) be installed?" }}
gaming = {{ $gaming }}
{{ $email := promptStringOnce . "email" "What is your email address (git)" }}
email = {{ $email | quote }}
{{ $name := promptStringOnce . "name" "What is your name (git)" }}
name = {{ $name | quote }}
{{ $osProber := promptBoolOnce . "os_prober" "Enable GRUB os-prober to detect other operating systems?" }}
os_prober = {{ $osProber }}
{{ $remoteAccess := promptBoolOnce . "remote_access" "Install remote access tools (e.g. rustdesk)?" }}
remote_access = {{ $remoteAccess }}
+2
View File
@@ -0,0 +1,2 @@
assets/
README.md
+4 -3
View File
@@ -1,4 +1,5 @@
roles/z
roles/test
error.log error.log
callback_plugins/__pycache__ .callback_plugins/__pycache__
# chezmoi local state — never committed
.chezmoi/
*.chezmoi.state
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,639 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IE9za1ZlclpD
d1RZeGQzY2pXT3Y0d3BuTzByOFdSV2JORzh1cGVLQ09ubmwvdGRZaFZpa2RJVEhC
SGVIWUxVR3BrWDlXWkRQN2UyeGNaQ3N2TGcyZEw4eXhMNmp2MDFOWXQwcFVoa3ZU
Z0FsR2w1VVpPRnUyVG1kYnJ1WlBTY1hLZ2g2dVRCZ1ZvN202MVM0ZjlpZENtbmVx
MkduRzlWb3B6N2Vic3M0Ry8wZVhtQ3E5TSs4cnVOUDBnSEZkQVVBL20vc1lsM2I1
amxsVkVBdnR1RjgyNWhUWGlBZ2Q1VjFtSktDNGw5TXJQUml4ZWI0N0lLRnNoMUN3
aVB6NzN5WVhwTDhRaThxZi80bERLU2pPNS81VzF1bUN4QWVHU3lyV3FYaGRVdUQ2
Rm9VSW12SzdQMmVNRnd0WWt3dUVTNXRyb0ZRRFFEWWhFL3haQVlIT1dNY0JkbS9x
ZU85c3cyanhKTzk4b09iRFU4ZWhPWWR5dnpDSUFvU0ZpUVRkbmwrNnRZNjhCOVdv
djlOK3kycFhJQ2N6ZFl1TEY4SFpyamNkTkNENGl4dkFkODU5YlE3WDdqUnVEQjhX
T0pqU3B2VFVISldiL3l0ek5YTVQxUTE5SUo0YTJiS3ozZlBmNzhpVUhoNVd6YlVQ
TzNPQmRiaFZkOXkvNHRUWmVhSzcvMjlndFcvcHpQam9COTJyMk0reVQxNEVkQmxO
ekppakc2a0dSNHZQYkI2Y015UEsvSys0SEZYR2VweXRlUHBtakZkWDllcXVtTmxB
R0hkZjVpYWlpMEpOa2R4bFlQc3BUczJOeUZjVWc3Y24wTzBSWmhTenY5K2U2bTUw
QktodXI1MHR6cEV0bE9CZXYrcDNVSFhzQ3BRUGlidGZkaVVEZnh5QlFLRytxM29h
Q1dGS0VQQ3RqL3pCdVF4WkhpUnJ3WVA5UXgxRjYySjFERGJJREpxTGxRa2wvTXF6
RlVLZFNnSjhkOXNKYjZUajFzR0dSd0kzeTRmSDBvYkQ4aWlIMkttcVltbUlVcWMz
MUlqZVJpeDNaQTFDY0U1N0t0MTdrVEFDWEYzRmozUGVJNXppNWFzdGtlZng0MFJa
VHI0dkNCbzNMeXdGazNtbUdLZEh3ODlJTGo4YjVDMXQ0akhIZHNLK3I3TEJ6cndy
QUpTeGdwMCt3SllvVjBERktLQ3RTWmk2VjIxbDBCeFd5UzJ0WEVNK2c4Vy9MOC85
OVlGM3FjVnpHYTJiS1VwQW13Z1pzSzd2NGVWbUIrZnRYZlMyZ2wza0Z1RTJQeHlM
aXY2a24yM3RRNC9icGQ1OENqamYxc08wOW1rTlErT0EwNml6NDgrUC9oK3ZqamR2
TFZqTi9qdklSQm0xUnFBWFlzVWR5VnRORERwdndaRE85SHNiU29YbGRuYVlkYS83
dVBlZVFDSnBiTWFIa29hcFA5Y2VvOTltZDY5RkM4UnQ0TndzNWhCbG9mRUh3a2tV
T08zVzNndlFuaXB1SFcrZEJIcXovY25ZendkcTRTWkQ5aVk0REJVSGJDbnMxSjdJ
em1iall5NmV6djR0cTVyVkRQM0tKWk0yTWFxd3k0UitNekNOR2tGMnJSV0FlQzJ2
aDVTNjI1Q01wTHp2U3c1c0R4eWNXNjRHelA0NEZ6cFcxWWdPRkhZUkpBNnRUY1Zz
WHMwNTFPZTF3Q3dvR1MrOTgxNWhCVkdBUStpamgxRmRVVFZlMnZ3SjJOZTF5OFBV
djdRY0grYjFlUkdHb2JBOVMxcTNQZXYvUWltRGVlYTlHb25zODZCYW9mMmZSSDQx
VE55dVAycnB1VkkwdHRQRFBPTGFycEFJTTZJMEF0VDZDbWgzd3dyWFB6MDY3RkE2
Z3BKUjR4NEFTWmZ1TkFBaHVZd082VWU1V1pEblhsQkNJTmJ5NzBhdUtQbVlpT2Zz
ZUxMQ251Z3lsanRmUkl6dEJqZjVnYjZFZk40a1ZUYjBpMTZxMjFhc1ZoRHhPdwpp
L3JRb3MyanNGeHRKR1NxTUhWT01hNEpnY1htQ0ZQYUIrUE5OR2k3elRJCi0tLSBJ
QjlnRTRGRkN0QVIxalhNRWltK2Zid01QdDZQWll0N0pQMzRmc1N1OGtJCjWJxorI
I0Rgh58FtPmbuZAGXRZ+sSPF7UO61aUWQ1I5TmMjtwHqDer5JDlOHh3akaFkDA/k
OnO77N/bQb87MpzzfJThplR3WcXggK/YrY1To5NWwq6VuNRVutTQloz6jJeHnCc3
v6waxXPEWwVOHMapuUetif4Lncup6otBM/ZGUNOuTiMangsXdCzNqEcJE1orHfdn
c20glyVmC3Q5/Q6chkemINv7s0cdhWXdFZfMYGDTX3xMFu/kL0yzyGUWGRRm5kIy
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
rvWs6yHrXBaQ51l8csfZ
-----END AGE ENCRYPTED FILE-----
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+38 -37
View File
@@ -1,46 +1,47 @@
# Installation # Dotfiles
Clone the repo and execute the `install.sh` script.<br/> Dotfiles managed by [chezmoi](https://www.chezmoi.io/). The repo works on
Or use this command: Arch and Ubuntu (not complete) and has three machine classes: **server**, **desktop**, and **laptop**.
## First-time install on a new machine
### 1. Install prerequisites
```bash ```bash
bash -c "$(curl -fsSL https://gitea.keuledrive.de/Keule2/Dotfiles/raw/branch/main/install.sh)" # Arch
``` sudo pacman -S git curl age jq chezmoi
Or this command to use arguments:
```bash # Ubuntu
curl -fsSL "https://gitea.keuledrive.de/Keule2/Dotfiles/raw/branch/main/install.sh" | bash -s -- -e "system=server" sudo apt-get install git curl age jq chezmoi
``` ```
# Update ### 2. Encryption key
Just execute the `install.sh` script again. The age key needs to be placed at `~/.config/chezmoi/key`
With following permissions
# Usage
All additional parameters are passed to the ansible playbook. This means that you can skip tags or only execute desired tags.<br/>
Example: Skip alacritty
```bash ```bash
./install.sh --skip-tags alacritty chmod 600 ~/.config/chezmoi/key
```
Example: Only execute alacritty and fish
```bash
./install.sh -t alacritty,fish
``` ```
# Settings ### 3. Init and Apply
There are two ways to set settings/values. ```bash
1. Create/Edit: `$HOME/.config/dotfiles/values.yml` chezmoi init --apply https://gitea.keuledrive.de/Keule2/Dotfiles
2. Edit: `$HOME/.dotfiles/group_vars/all` ```
Will prompt some questions for template data.
## Ansible Vault ## Usage
Vault password file: `$HOME/.config/dotfiles/vault-password.txt` | Command | Effect |
|---|---|
| `chezmoi apply` | apply any local changes to dotfiles and run-once scripts |
| `chezmoi update` | `git pull` + `apply` |
| `chezmoi edit <file>` | open a tracked file in `$EDITOR` |
| `chezmoi cd` | shell into the source dir |
| `chezmoi diff` | show pending changes against your home |
| `chezmoi managed` | list files chezmoi manages |
## Settings ## Changing the system class
### System Edit the config file
|Value |Desc |Default| ```bash
|------------|-------------------------------------------------------|-------| $EDITOR ~/.config/chezmoi/chezmoi.toml # change [data].system
|server |Minimal installation (CMD tools) | | chezmoi apply
|desktop |Install WM and desktop applications |x | ```
|desktop_full|Install additional packages for the desktop (e.g. wine)| |
<br/>
# TODO ## TODO
- AGS: Bar, AppLauncher, PowerMenu, Notifications, Calculator, Emoji-Picker, ... - Check packages e.g. gaming Steam/Lutris
- Ubuntu/Debian Support
- ...
-4
View File
@@ -1,4 +0,0 @@
[defaults]
stdout_callback = beautiful_output
# Use the stdout_callback when running ad-hoc commands.
bin_ansible_callbacks = True
+8
View File
@@ -0,0 +1,8 @@
[/]
accent-color='red'
color-scheme='prefer-dark'
cursor-size=24
cursor-theme='breeze_cursors'
font-name='CaskaydiaCove Nerd Font 12'
gtk-theme='adw-gtk3-dark'
icon-theme='Papirus-Dark'

Before

Width:  |  Height:  |  Size: 822 KiB

After

Width:  |  Height:  |  Size: 822 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 529 B

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 515 B

Before

Width:  |  Height:  |  Size: 1012 B

After

Width:  |  Height:  |  Size: 1012 B

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 515 B

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 508 B

Before

Width:  |  Height:  |  Size: 540 B

After

Width:  |  Height:  |  Size: 540 B

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 552 B

After

Width:  |  Height:  |  Size: 552 B

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 529 B

After

Width:  |  Height:  |  Size: 529 B

Before

Width:  |  Height:  |  Size: 513 B

After

Width:  |  Height:  |  Size: 513 B

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 515 B

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 508 B

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 535 B

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 547 B

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 553 B

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 553 B

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 546 B

After

Width:  |  Height:  |  Size: 546 B

File diff suppressed because it is too large Load Diff
+35 -13
View File
@@ -12,7 +12,7 @@ fi
## Functions ## Functions
# Yazi # Yazi
function ya() { function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXX")" local tmp="$(mktemp -t "yazi-cwd.XXXXX")"
yazi "$@" --cwd-file="$tmp" yazi "$@" --cwd-file="$tmp"
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
@@ -21,22 +21,42 @@ function ya() {
rm -f -- "$tmp" rm -f -- "$tmp"
} }
# Chezmoi apply changes from current chezmoi DIR
function ca() {
chezmoi apply "$(chezmoi target-path "${1:-.}")"
}
isbusy() {
local path="${1:-}"
if [ -z "$path" ]; then
echo "Usage: isbusy <path>" >&2
return 1
fi
if ! path="$(realpath -e -- "$path" 2>/dev/null)"; then
echo "isbusy: cannot resolve '$1'" >&2
return 1
fi
sudo lsof +f -- "$path"
}
## Aliases ## Aliases
# Replace ls with eza # Replace ls with eza
alias ls='eza -al --color=always --group-directories-first' # preferred listing if [ -f /usr/bin/eza ]; then
alias la='eza -a --color=always --group-directories-first' # all files and dirs alias ls='eza -al --color=always --group-directories-first --icons=auto' # preferred listing
alias ll='eza -l --color=always --group-directories-first' # long format alias la='eza -a --color=always --group-directories-first --icons=auto' # all files and dirs
alias lt='eza -aT --color=always --group-directories-first' # tree listing alias ll='eza -l --color=always --group-directories-first --icons=auto' # long format
alias l.='eza -ald --color=always --group-directories-first .*' # show only dotfiles alias lt='eza -aT --color=always --group-directories-first --icons=auto' # tree listing
alias l.='eza -ald --color=always --group-directories-first --icons=auto .*' # show only dotfiles
fi
# Replace cat with bat # Replace cat with bat
if [ -f /usr/bin/bat ]; then if [ -f /usr/bin/bat ]; then
alias cat='bat --style header --style snip --style changes --style header' alias cat='bat --style header --style snip --style changes --style header'
fi fi
# Replace yay with paru # Replace paru with yay
if [ -f /usr/bin/paru ]; then if [ -f /usr/bin/yay ]; then
alias yay='paru' alias paru='yay'
fi fi
# Aliases # Aliases
@@ -56,12 +76,14 @@ alias rmpkg="sudo pacman -Rdd"
alias tarnow='tar -acf ' alias tarnow='tar -acf '
alias untar='tar -zxvf ' alias untar='tar -zxvf '
alias wget='wget -c ' alias wget='wget -c '
# Cleanup orphaned packages # Cleanup orphaned packages
alias cleanup='sudo pacman -Rns `pacman -Qtdq`' alias cleanup='sudo pacman -Rns `pacman -Qtdq`'
# Get the error messages from journalctl # Get the error messages from journalctl
alias jctl="journalctl -p 3 -xb" alias jctl="journalctl -p 3 -xb"
# Recent installed packages # Recent installed packages
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" alias ripp="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl"
if [ -f /usr/bin/fastfetch ]; then
fastfetch
fi
@@ -0,0 +1,8 @@
{
"maxHistory": 10000,
"maxEntrySize": 5242880,
"autoClearDays": 0,
"clearAtStartup": false,
"disabled": false,
"maxPinned": 25
}
@@ -0,0 +1,25 @@
{
"calculator": {
"enabled": true,
"trigger": "="
},
"dankKDEConnect": {
"enabled": true,
"showOngoingMedia": true,
"selectedDeviceId": "15974e85541146b0b914d5928c541df9"
},
"emojiLauncher": {
"enabled": true,
"recentEmojis": "🧇"
},
"quickCapture": {
"enabled": true
},
"dankPomodoroTimer": {
"enabled": true,
"workDuration": "60"
},
"timer": {
"enabled": true
}
}
+915
View File
@@ -0,0 +1,915 @@
{
"currentThemeName": "dynamic",
"currentThemeCategory": "dynamic",
"customThemeFile": "/home/keule/.config/DankMaterialShell/themes/catppuccin/theme.json",
"registryThemeVariants": {
"catppuccin": {
"dark": {
"flavor": "mocha",
"accent": "mauve"
}
}
},
"matugenScheme": "scheme-vibrant",
"matugenContrast": 0,
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
"popupTransparency": 1,
"dockTransparency": 1,
"widgetBackgroundColor": "sch",
"widgetBackgroundCustomColor": "#6750A4",
"widgetBackgroundCustomStrength": 0.5,
"widgetColorMode": "default",
"controlCenterTileColorMode": "primary",
"buttonColorMode": "primary",
"cornerRadius": 12,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
"hyprlandLayoutGapsOverride": -1,
"hyprlandLayoutGapsOutOverride": 2,
"hyprlandLayoutRadiusOverride": -1,
"hyprlandLayoutBorderSize": 1,
"hyprlandResizeOnBorder": false,
"mangoLayoutGapsOverride": -1,
"mangoLayoutGapsOutOverride": -1,
"mangoLayoutRadiusOverride": -1,
"mangoLayoutBorderSize": -1,
"mangoTrackpadNaturalScrolling": true,
"firstDayOfWeek": 1,
"showWeekNumber": false,
"calendarBackend": "dankcal",
"clockFormat": "24h",
"showSeconds": false,
"padHours12Hour": false,
"useFahrenheit": false,
"windSpeedUnit": "kmh",
"nightModeEnabled": false,
"animationSpeed": 1,
"customAnimationDuration": 500,
"syncComponentAnimationSpeeds": true,
"popoutAnimationSpeed": 1,
"popoutCustomAnimationDuration": 150,
"modalAnimationSpeed": 1,
"modalCustomAnimationDuration": 150,
"enableRippleEffects": true,
"animationVariant": 1,
"motionEffect": 1,
"m3ElevationEnabled": true,
"m3ElevationIntensity": 12,
"m3ElevationOpacity": 30,
"m3ElevationColorMode": "default",
"m3ElevationLightDirection": "top",
"m3ElevationCustomColor": "#000000",
"modalElevationEnabled": true,
"popoutElevationEnabled": true,
"barElevationEnabled": true,
"blurEnabled": false,
"blurForegroundLayers": true,
"blurLayerOutlineOpacity": 0.12,
"blurBorderEnabled": true,
"blurBorderColor": "outline",
"blurBorderCustomColor": "#ffffff",
"blurBorderOpacity": 0.35,
"wallpaperFillMode": "Fill",
"blurredWallpaperLayer": false,
"blurWallpaperOnOverview": false,
"wallpaperBackgroundColorMode": "black",
"wallpaperBackgroundCustomColor": "#000000",
"showLauncherButton": true,
"showWorkspaceSwitcher": true,
"showFocusedWindow": true,
"showWeather": true,
"showMusic": true,
"showClipboard": true,
"showCpuUsage": true,
"showMemUsage": true,
"showCpuTemp": true,
"showGpuTemp": true,
"selectedGpuIndex": 0,
"enabledGpuPciIds": [],
"showSystemTray": true,
"systemTrayIconTintMode": "none",
"systemTrayIconTintSaturation": 50,
"systemTrayIconTintStrength": 135,
"showClock": true,
"showNotificationButton": true,
"showBattery": true,
"showBatteryPercent": true,
"showBatteryPercentOnlyOnBattery": false,
"showBatteryTime": false,
"showBatteryTimeOnlyOnBattery": false,
"batteryPillStyle": false,
"batteryPillPercentSign": false,
"showControlCenterButton": true,
"showCapsLockIndicator": true,
"controlCenterShowNetworkIcon": true,
"controlCenterShowBluetoothIcon": true,
"controlCenterShowAudioIcon": true,
"controlCenterShowAudioPercent": false,
"controlCenterShowVpnIcon": true,
"controlCenterShowBrightnessIcon": false,
"controlCenterShowBrightnessPercent": false,
"controlCenterShowMicIcon": false,
"controlCenterShowMicPercent": true,
"controlCenterShowBatteryIcon": false,
"controlCenterShowPrinterIcon": false,
"controlCenterShowScreenSharingIcon": true,
"controlCenterShowIdleInhibitorIcon": false,
"controlCenterShowDoNotDisturbIcon": false,
"showPrivacyButton": true,
"privacyShowMicIcon": true,
"privacyShowCameraIcon": true,
"privacyShowScreenShareIcon": true,
"controlCenterWidgets": [
{
"id": "volumeSlider",
"enabled": true,
"width": 50
},
{
"id": "brightnessSlider",
"enabled": true,
"width": 50,
"deviceName": "ddc:i2c-6"
},
{
"id": "bluetooth",
"enabled": true,
"width": 50
},
{
"id": "wifi",
"enabled": true,
"width": 50
},
{
"id": "audioOutput",
"enabled": true,
"width": 50
},
{
"id": "audioInput",
"enabled": true,
"width": 50
},
{
"id": "idleInhibitor",
"enabled": true,
"width": 25
},
{
"id": "builtin_cups",
"enabled": true,
"width": 50
},
{
"id": "doNotDisturb",
"enabled": true,
"width": 25
},
{
"id": "diskUsage",
"enabled": true,
"width": 50,
"instanceId": "ms68kqnzaiq66pavhle",
"mountPath": "/",
"showMountPath": true
},
{
"id": "nightMode",
"enabled": true,
"width": 25
},
{
"id": "darkMode",
"enabled": true,
"width": 25
}
],
"showWorkspaceIndex": true,
"showWorkspaceName": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
"showWorkspaceApps": false,
"workspaceDragReorder": true,
"maxWorkspaceIcons": 3,
"workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"groupActiveWorkspaceApps": false,
"workspaceFollowFocus": true,
"showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false,
"workspaceActiveAppHighlightEnabled": false,
"workspaceColorMode": "default",
"workspaceFocusedCustomColor": "#6750A4",
"workspaceOccupiedColorMode": "none",
"workspaceOccupiedCustomColor": "#625B71",
"workspaceUnfocusedColorMode": "default",
"workspaceUnfocusedCustomColor": "#49454E",
"workspaceUrgentColorMode": "default",
"workspaceUrgentCustomColor": "#B3261E",
"workspaceFocusedBorderEnabled": false,
"workspaceFocusedBorderColor": "primary",
"workspaceFocusedBorderCustomColor": "#6750A4",
"workspaceFocusedBorderThickness": 2,
"workspaceUnfocusedMonitorSeparateAppearance": false,
"workspaceUnfocusedMonitorColorMode": "default",
"workspaceUnfocusedMonitorFocusedCustomColor": "#6750A4",
"workspaceUnfocusedMonitorOccupiedColorMode": "none",
"workspaceUnfocusedMonitorOccupiedCustomColor": "#625B71",
"workspaceUnfocusedMonitorUnfocusedColorMode": "default",
"workspaceUnfocusedMonitorUnfocusedCustomColor": "#49454E",
"workspaceUnfocusedMonitorUrgentColorMode": "default",
"workspaceUnfocusedMonitorUrgentCustomColor": "#B3261E",
"workspaceUnfocusedMonitorBorderEnabled": false,
"workspaceUnfocusedMonitorBorderColor": "primary",
"workspaceUnfocusedMonitorBorderCustomColor": "#6750A4",
"workspaceUnfocusedMonitorBorderThickness": 2,
"workspaceNameIcons": {},
"waveProgressEnabled": true,
"scrollTitleEnabled": true,
"mediaAdaptiveWidthEnabled": true,
"audioVisualizerEnabled": true,
"mediaUseAlbumArtAccent": true,
"audioScrollMode": "volume",
"audioWheelScrollAmount": 5,
"audioDeviceScrollVolumeEnabled": false,
"mediaExcludePlayers": [],
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"focusedWindowSize": 1,
"focusedWindowShowIcon": true,
"runningAppsCompactMode": true,
"barMaxVisibleApps": 0,
"barMaxVisibleRunningApps": 0,
"barShowOverflowBadge": true,
"trayAutoOverflow": true,
"trayPopupSingleLine": true,
"trayMaxVisibleItems": 0,
"appsDockHideIndicators": false,
"appsDockColorizeActive": false,
"appsDockActiveColorMode": "primary",
"appsDockEnlargeOnHover": false,
"appsDockEnlargePercentage": 125,
"appsDockIconSizePercentage": 100,
"keyboardLayoutNameCompactMode": false,
"keyboardLayoutNameShowIcon": false,
"runningAppsCurrentWorkspace": true,
"runningAppsGroupByApp": false,
"runningAppsCurrentMonitor": false,
"appIdSubstitutions": [],
"centeringMode": "geometric",
"clockDateFormat": "d.MM.yyyy",
"lockDateFormat": "ddd d MMM yyyy",
"greeterRememberLastSession": true,
"greeterRememberLastUser": true,
"greeterAutoLogin": false,
"greeterEnableFprint": false,
"greeterEnableU2f": false,
"greeterWallpaperPath": "",
"greeterLockDateFormat": "",
"greeterFontFamily": "",
"greeterWallpaperFillMode": "",
"greeterPamExternallyManaged": false,
"greeterSyncPending": false,
"greeterSyncBaseline": {},
"mediaSize": 1,
"appLauncherViewMode": "list",
"spotlightModalViewMode": "list",
"browserPickerViewMode": "grid",
"browserUsageHistory": {
"firefox": {
"count": 1,
"lastUsed": 1785456198620,
"name": "Firefox"
}
},
"appPickerViewMode": "grid",
"filePickerUsageHistory": {
"com.mitchellh.ghostty": {
"count": 4,
"lastUsed": 1785435157739,
"name": "Ghostty"
},
"thunar": {
"count": 2,
"lastUsed": 1785366990917,
"name": "Thunar File Manager"
}
},
"sortAppsAlphabetically": false,
"appLauncherGridColumns": 4,
"spotlightCloseNiriOverview": true,
"rememberLastQuery": true,
"rememberLastMode": true,
"spotlightSectionViewModes": {},
"appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true,
"niriOverviewLauncherStyle": "full",
"dankLauncherV2Size": "large",
"dankLauncherV2ShowSourceBadges": true,
"dankLauncherV2BorderEnabled": true,
"dankLauncherV2BorderThickness": 2,
"dankLauncherV2BorderColor": "primary",
"dankLauncherV2ShowFooter": true,
"dankLauncherV2UnloadOnClose": false,
"dankLauncherV2IncludeFilesInAll": true,
"dankLauncherV2IncludeFoldersInAll": true,
"launcherUseOverlayLayer": false,
"launcherStyle": "full",
"spotlightBarShowModeChips": false,
"keybindsFloatingWindow": false,
"useAutoLocation": false,
"weatherEnabled": true,
"dashTabs": [
{
"id": "overview",
"enabled": true
},
{
"id": "media",
"enabled": true
},
{
"id": "wallpaper",
"enabled": true
},
{
"id": "weather",
"enabled": true
},
{
"id": "settings",
"enabled": true
}
],
"networkPreference": "wifi",
"iconThemeDark": "System Default",
"iconThemeLight": "System Default",
"iconThemePerMode": false,
"lastAppliedIconTheme": "",
"cursorSettings": {
"theme": "breeze_cursors",
"size": 24,
"niri": {
"hideWhenTyping": false,
"hideAfterInactiveMs": 0
},
"hyprland": {
"hideOnKeyPress": false,
"hideOnTouch": false,
"inactiveTimeout": 0
},
"mango": {
"cursorHideTimeout": 0
}
},
"launcherLogoMode": "os",
"launcherLogoCustomPath": "",
"launcherLogoColorOverride": "",
"launcherLogoColorInvertOnMode": false,
"launcherLogoBrightness": 0.5,
"launcherLogoContrast": 1,
"launcherLogoSizeOffset": 0,
"fontFamily": "CaskaydiaCove Nerd Font",
"monoFontFamily": "CaskaydiaCove Nerd Font Mono",
"fontWeight": 400,
"fontScale": 1,
"textRenderType": 0,
"textRenderQuality": 0,
"notepadUseMonospace": true,
"notepadFontFamily": "",
"notepadFontSize": 14,
"notificationSummaryFontSize": 0,
"notificationBodyFontSize": 0,
"notepadShowLineNumbers": false,
"notepadAutoSave": false,
"notepadSlideoutSide": "right",
"notepadDefaultMode": "slideout",
"notepadTransparencyOverride": -1,
"notepadLastCustomTransparency": 0.7,
"notepadUseCompositorGap": false,
"notepadEdgeGap": 0,
"soundsEnabled": true,
"useSystemSoundTheme": false,
"soundLogin": false,
"soundNewNotification": true,
"soundVolumeChanged": true,
"soundPluggedIn": true,
"muteSoundsWhenMediaPlaying": true,
"acMonitorTimeout": 0,
"acLockTimeout": 300,
"acSuspendTimeout": 1800,
"acSuspendBehavior": 0,
"acProfileName": "",
"acPostLockMonitorTimeout": 120,
"batteryMonitorTimeout": 0,
"batteryLockTimeout": 0,
"batterySuspendTimeout": 0,
"batterySuspendBehavior": 0,
"batteryProfileName": "",
"batteryPostLockMonitorTimeout": 0,
"batteryChargeLimit": 100,
"batteryNotifyChargeLimit": false,
"batteryCriticalThreshold": 10,
"batteryNotifyCritical": true,
"batteryLowThreshold": 20,
"batteryNotifyLow": false,
"batteryChargeLimitNotificationType": 0,
"batteryLowNotificationType": 0,
"batteryCriticalNotificationType": 1,
"batteryAutoPowerSaver": false,
"lockBeforeSuspend": true,
"loginctlLockIntegration": true,
"fadeToLockEnabled": true,
"fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
"launchPrefix": "",
"gtkThemingEnabled": false,
"qtThemingEnabled": false,
"syncModeWithPortal": true,
"terminalsAlwaysDark": false,
"muxType": "tmux",
"muxUseCustomCommand": false,
"muxCustomCommand": "",
"muxSessionFilter": "",
"runDmsMatugenTemplates": true,
"matugenTemplateGtk": true,
"matugenTemplateNiri": false,
"matugenTemplateHyprland": true,
"matugenTemplateMangowc": false,
"matugenTemplateQt5ct": true,
"matugenTemplateQt6ct": true,
"matugenTemplateFirefox": false,
"matugenTemplatePywalfox": true,
"matugenTemplateZenBrowser": false,
"matugenTemplateVesktop": true,
"matugenTemplateVencord": true,
"matugenTemplateEquibop": false,
"matugenTemplateGhostty": true,
"matugenTemplateKitty": false,
"matugenTemplateFoot": false,
"matugenTemplateAlacritty": false,
"matugenTemplateNeovim": false,
"matugenTemplateWezterm": false,
"matugenTemplateDgop": true,
"matugenTemplateKcolorscheme": true,
"matugenTemplateVscode": true,
"matugenTemplateEmacs": false,
"matugenTemplateZed": false,
"matugenTemplateNeovimSettings": {
"dark": {
"baseTheme": "github_dark",
"harmony": 0.5
},
"light": {
"baseTheme": "github_light",
"harmony": 0.5
}
},
"matugenTemplateNeovimSetBackground": true,
"showDock": false,
"dockAutoHide": false,
"dockSmartAutoHide": false,
"dockUseOverlayLayer": false,
"dockGroupByApp": true,
"dockRestoreSpecialWorkspaceOnClick": false,
"dockOpenOnOverview": false,
"dockPosition": 1,
"dockSpacing": 4,
"dockBottomGap": 0,
"dockMargin": 1,
"dockIconSize": 40,
"dockIndicatorStyle": "circle",
"dockBorderEnabled": false,
"dockBorderColor": "surfaceText",
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"dockIsolateDisplays": false,
"dockLauncherEnabled": true,
"dockLauncherLogoMode": "apps",
"dockLauncherLogoCustomPath": "",
"dockLauncherLogoColorOverride": "",
"dockLauncherLogoSizeOffset": 0,
"dockLauncherLogoBrightness": 0.5,
"dockLauncherLogoContrast": 1,
"dockMaxVisibleApps": 0,
"dockMaxVisibleRunningApps": 0,
"dockShowOverflowBadge": true,
"dockShowTrash": true,
"dockTrashFileManager": "default",
"dockTrashCustomCommand": "",
"notificationOverlayEnabled": false,
"notificationPopupShadowEnabled": true,
"notificationPopupPrivacyMode": false,
"notificationForegroundLayers": true,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
"lockScreenShowSystemIcons": true,
"lockScreenShowTime": true,
"lockScreenShowDate": true,
"lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true,
"lockScreenShowMediaPlayer": true,
"lockScreenPowerOffMonitorsOnLock": false,
"lockAtStartup": false,
"enableFprint": false,
"maxFprintTries": 15,
"enableU2f": false,
"u2fMode": "or",
"lockPamPath": "",
"lockPamInlineFprint": false,
"lockPamInlineU2f": false,
"lockPamExternallyManaged": false,
"lockU2fPamPath": "",
"lockScreenInactiveColor": "#000000",
"lockScreenNotificationMode": 2,
"lockScreenVideoEnabled": false,
"lockScreenVideoPath": "",
"lockScreenVideoCycling": false,
"lockScreenWallpaperPath": "",
"lockScreenWallpaperFillMode": "",
"lockScreenFontFamily": "",
"hideBrightnessSlider": false,
"notificationTimeoutLow": 5000,
"notificationTimeoutNormal": 5000,
"notificationTimeoutCritical": 0,
"notificationCompactMode": true,
"notificationShowTimeoutBar": false,
"notificationDedupeEnabled": true,
"notificationPopupPosition": 0,
"notificationAnimationSpeed": 1,
"notificationCustomAnimationDuration": 400,
"notificationHistoryEnabled": true,
"notificationHistoryMaxCount": 50,
"notificationHistoryMaxAgeDays": 7,
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
"notificationRules": [],
"notificationFocusedMonitor": false,
"osdAlwaysShowValue": true,
"osdPosition": 5,
"osdVolumeEnabled": true,
"osdMediaVolumeEnabled": true,
"osdMediaPlaybackEnabled": false,
"osdBrightnessEnabled": true,
"osdIdleInhibitorEnabled": true,
"osdMicMuteEnabled": true,
"osdCapsLockEnabled": true,
"osdPowerProfileEnabled": true,
"osdAudioOutputEnabled": true,
"powerActionConfirm": true,
"powerActionHoldDuration": 0.5,
"powerMenuActions": [
"reboot",
"logout",
"poweroff",
"lock",
"suspend",
"restart"
],
"powerMenuDefaultAction": "logout",
"powerMenuGridLayout": false,
"customPowerActionLock": "",
"customPowerActionLogout": "",
"customPowerActionSuspend": "",
"customPowerActionHibernate": "",
"customPowerActionReboot": "",
"customPowerActionPowerOff": "",
"updaterHideWidget": false,
"updaterCheckOnStart": true,
"updaterUseCustomCommand": false,
"updaterCustomCommand": "",
"updaterTerminalAdditionalParams": "",
"updaterIntervalSeconds": 86400,
"updaterIncludeFlatpak": true,
"updaterAllowAUR": false,
"updaterIgnoredPackages": [],
"displayNameMode": "system",
"screenPreferences": {
"lockScreen": [
{
"name": "HDMI-A-2",
"model": "Kamvas 16"
},
{
"name": "HDMI-A-1",
"model": "Q32G3WG3R3"
}
]
},
"showOnLastDisplay": {},
"niriOutputSettings": {},
"hyprlandOutputSettings": {},
"displayProfiles": {},
"activeDisplayProfile": {},
"displayProfileAutoSelect": false,
"displayShowDisconnected": false,
"displaySnapToEdge": true,
"connectedFrameBarStyleBackups": {},
"barConfigs": [
{
"id": "default",
"name": "Main Bar",
"enabled": true,
"position": 0,
"screenPreferences": [
"all"
],
"showOnLastDisplay": true,
"leftWidgets": [
"launcherButton",
"workspaceSwitcher",
{
"id": "focusedWindow",
"enabled": true,
"focusedWindowSize": 1,
"focusedWindowCompactMode": false
}
],
"centerWidgets": [
{
"id": "cpuUsage",
"enabled": true,
"minimumWidth": true
},
"memUsage",
{
"id": "network_speed_monitor",
"enabled": false
},
"music",
"clock",
"weather",
{
"id": "colorPicker",
"enabled": true
},
{
"id": "quickCapture",
"enabled": true
}
],
"rightWidgets": [
{
"id": "systemTray",
"enabled": true,
"trayUseInlineExpansion": false,
"trayAutoOverflow": true
},
"notificationButton",
{
"id": "dankKDEConnect",
"enabled": true
},
{
"id": "systemUpdate",
"enabled": true
},
{
"id": "timer",
"enabled": true
},
{
"id": "capsLockIndicator",
"enabled": true
},
{
"id": "privacyIndicator",
"enabled": true
},
{
"id": "vpn",
"enabled": true
},
"controlCenterButton",
{
"id": "powerMenuButton",
"enabled": true
}
],
"spacing": 3,
"innerPadding": 4,
"barInsetPadding": 4,
"bottomGap": 0,
"transparency": 1,
"widgetTransparency": 1,
"squareCorners": false,
"noBackground": false,
"maximizeWidgetIcons": false,
"maximizeWidgetText": false,
"removeWidgetPadding": false,
"widgetPadding": 8,
"gothCornersEnabled": false,
"gothCornerRadiusOverride": false,
"gothCornerRadiusValue": 12,
"borderEnabled": false,
"borderColor": "surfaceText",
"borderOpacity": 1,
"borderThickness": 1,
"widgetOutlineEnabled": false,
"widgetOutlineColor": "primary",
"widgetOutlineOpacity": 1,
"widgetOutlineThickness": 1,
"fontScale": 1,
"iconScale": 1,
"autoHide": false,
"autoHideStrict": false,
"autoHideDelay": 250,
"showOnWindowsOpen": false,
"openOnOverview": false,
"visible": true,
"popupGapsAuto": true,
"popupGapsManual": 4,
"maximizeDetection": true,
"useOverlayLayer": false,
"scrollEnabled": true,
"scrollXBehavior": "column",
"scrollYBehavior": "workspace",
"shadowIntensity": 0,
"shadowOpacity": 60,
"shadowColorMode": "default",
"shadowCustomColor": "#000000",
"clickThrough": false,
"hoverPopouts": false,
"hoverPopoutDelay": 150
}
],
"desktopClockEnabled": false,
"desktopClockStyle": "analog",
"desktopClockTransparency": 0.8,
"desktopClockColorMode": "primary",
"desktopClockCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"desktopClockShowDate": true,
"desktopClockShowAnalogNumbers": false,
"desktopClockShowAnalogSeconds": true,
"desktopClockX": -1,
"desktopClockY": -1,
"desktopClockWidth": 280,
"desktopClockHeight": 180,
"desktopClockDisplayPreferences": [
"all"
],
"systemMonitorEnabled": false,
"systemMonitorShowHeader": true,
"systemMonitorTransparency": 0.8,
"systemMonitorColorMode": "primary",
"systemMonitorCustomColor": {
"r": 1,
"g": 1,
"b": 1,
"a": 1,
"hsvHue": -1,
"hsvSaturation": 0,
"hsvValue": 1,
"hslHue": -1,
"hslSaturation": 0,
"hslLightness": 1,
"valid": true
},
"systemMonitorShowCpu": true,
"systemMonitorShowCpuGraph": true,
"systemMonitorShowCpuTemp": true,
"systemMonitorShowGpuTemp": false,
"systemMonitorGpuPciId": "",
"systemMonitorShowMemory": true,
"systemMonitorShowMemoryGraph": true,
"systemMonitorShowNetwork": true,
"systemMonitorShowNetworkGraph": true,
"systemMonitorShowDisk": true,
"systemMonitorShowTopProcesses": false,
"systemMonitorTopProcessCount": 3,
"systemMonitorTopProcessSortBy": "cpu",
"systemMonitorGraphInterval": 60,
"systemMonitorLayoutMode": "auto",
"systemMonitorX": -1,
"systemMonitorY": -1,
"systemMonitorWidth": 320,
"systemMonitorHeight": 480,
"systemMonitorDisplayPreferences": [
"all"
],
"systemMonitorVariants": [],
"desktopWidgetPositions": {},
"desktopWidgetGridSettings": {},
"desktopWidgetInstances": [
{
"id": "dw_1785291452137_36l2ubjwl",
"widgetType": "systemMonitor",
"name": "System Monitor",
"enabled": true,
"config": {
"showHeader": false,
"transparency": 0.8,
"colorMode": "primary",
"customColor": "#ffffff",
"showCpu": true,
"showCpuGraph": true,
"showCpuTemp": true,
"showGpuTemp": true,
"gpuPciId": "1002:747e",
"showMemory": true,
"showMemoryGraph": true,
"showNetwork": true,
"showNetworkGraph": true,
"showDisk": true,
"showTopProcesses": true,
"topProcessCount": 3,
"topProcessSortBy": "memory",
"layoutMode": "list",
"graphInterval": 60,
"displayPreferences": [
"all"
],
"syncPositionAcrossScreens": false,
"clickThrough": false
},
"positions": {
"DP-2": {
"width": 320,
"height": 480,
"x": 3513.9765625,
"y": 58.0390625
},
"HDMI-A-2": {
"width": 320,
"height": 480,
"x": 1589.69921875,
"y": 53.02734375
},
"HDMI-A-1": {
"width": 336.5390625,
"height": 526.99609375,
"x": 2216.2578125,
"y": 51.86328125
},
"_synced": {
"x": 0.4583333333333333,
"y": 0.3888888888888889,
"width": 320,
"height": 480
}
}
}
],
"desktopWidgetGroups": [],
"builtInPluginSettings": {
"dms_settings_search": {
"trigger": "?"
},
"dms_clipboard_search": {
"trigger": "cb"
}
},
"clipboardClickToPaste": false,
"clipboardEnterToPaste": false,
"clipboardRememberTypeFilter": false,
"clipboardTypeFilter": "all",
"clipboardVisibleEntryActions": [
"pin",
"edit",
"delete"
],
"launcherPluginVisibility": {
"emojiLauncher": {
"allowWithoutTrigger": true
}
},
"launcherPluginOrder": [],
"frameEnabled": false,
"frameThickness": 16,
"frameRounding": 23,
"frameColor": "",
"frameOpacity": 1,
"frameScreenPreferences": [
"all"
],
"frameBarSize": 40,
"frameShowOnOverview": false,
"frameBlurEnabled": true,
"frameCloseGaps": true,
"frameLauncherEmergeSide": "bottom",
"frameLauncherArcExtender": false,
"frameLauncherEdgeHover": false,
"frameMode": "connected",
"barInsetPaddingShared": -1,
"barInsetPaddingSyncAll": false,
"frameBarInsetPadding": -1,
"configVersion": 13
}
@@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" width="280" height="240" viewBox="0 0 280 240">
<g transform="translate(0, 0)">
<rect width="280" height="240" fill="#1e1e2e"/>
<rect width="280" height="26" fill="#1e1e2e"/>
<rect x="12" y="9" width="20" height="8" rx="4" fill="#cba6f7"/>
<circle cx="40" cy="13" r="3" fill="#a6adc8"/>
<circle cx="50" cy="13" r="3" fill="#a6adc8"/>
<text x="140" y="17" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="10" font-weight="600" text-anchor="middle" fill="#cba6f7">9:41</text>
<circle cx="238" cy="13" r="4" fill="#89b4fa"/>
<circle cx="252" cy="13" r="4" fill="#fab387"/>
<circle cx="266" cy="13" r="4" fill="#f38ba8"/>
<rect x="14" y="38" width="252" height="190" rx="12" fill="#1e1e2e" stroke="#6c7086" stroke-opacity="0.5"/>
<text x="28" y="61" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="12.5" font-weight="600" fill="#cdd6f4">Catppuccin Mocha Mauve (dark)</text>
<text x="28" y="77" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" fill="#a6adc8">Secondary text</text>
<rect x="26" y="87" width="228" height="50" rx="8" fill="#313244"/>
<text x="38" y="105" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="10" font-weight="500" fill="#cdd6f4">Nested card</text>
<text x="38" y="120" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9" fill="#a6adc8">Body text on an elevated surface</text>
<rect x="26" y="145" width="228" height="22" rx="6" fill="#181825" stroke="#6c7086" stroke-opacity="0.4"/>
<text x="38" y="160" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9" fill="#a6adc8">Search</text>
<rect x="26" y="175" width="78" height="22" rx="11" fill="#cba6f7"/>
<text x="65" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" font-weight="600" text-anchor="middle" fill="#1e1e2e">Button</text>
<rect x="112" y="175" width="70" height="22" rx="11" fill="#cba6f7" fill-opacity="0.15"/>
<text x="147" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" font-weight="500" text-anchor="middle" fill="#cba6f7">Accent</text>
<rect x="190" y="175" width="64" height="22" rx="11" fill="#45475a"/>
<text x="222" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" text-anchor="middle" fill="#cdd6f4">Chip</text>
<circle cx="34" cy="212" r="7" fill="#cba6f7"/>
<circle cx="54" cy="212" r="7" fill="#b4befe"/>
<circle cx="74" cy="212" r="7" fill="#f38ba8"/>
<circle cx="94" cy="212" r="7" fill="#fab387"/>
<circle cx="114" cy="212" r="7" fill="#89b4fa"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" width="280" height="240" viewBox="0 0 280 240">
<g transform="translate(0, 0)">
<rect width="280" height="240" fill="#eff1f5"/>
<rect width="280" height="26" fill="#e6e9ef"/>
<rect x="12" y="9" width="20" height="8" rx="4" fill="#8839ef"/>
<circle cx="40" cy="13" r="3" fill="#6c6f85"/>
<circle cx="50" cy="13" r="3" fill="#6c6f85"/>
<text x="140" y="17" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="10" font-weight="600" text-anchor="middle" fill="#8839ef">9:41</text>
<circle cx="238" cy="13" r="4" fill="#1e66f5"/>
<circle cx="252" cy="13" r="4" fill="#fe640b"/>
<circle cx="266" cy="13" r="4" fill="#d20f39"/>
<rect x="14" y="38" width="252" height="190" rx="12" fill="#e6e9ef" stroke="#9ca0b0" stroke-opacity="0.5"/>
<text x="28" y="61" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="12.5" font-weight="600" fill="#4c4f69">Catppuccin Latte Mauve (light)</text>
<text x="28" y="77" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" fill="#6c6f85">Secondary text</text>
<rect x="26" y="87" width="228" height="50" rx="8" fill="#ccd0da"/>
<text x="38" y="105" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="10" font-weight="500" fill="#4c4f69">Nested card</text>
<text x="38" y="120" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9" fill="#6c6f85">Body text on an elevated surface</text>
<rect x="26" y="145" width="228" height="22" rx="6" fill="#e6e9ef" stroke="#9ca0b0" stroke-opacity="0.4"/>
<text x="38" y="160" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9" fill="#6c6f85">Search</text>
<rect x="26" y="175" width="78" height="22" rx="11" fill="#8839ef"/>
<text x="65" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" font-weight="600" text-anchor="middle" fill="#eff1f5">Button</text>
<rect x="112" y="175" width="70" height="22" rx="11" fill="#8839ef" fill-opacity="0.15"/>
<text x="147" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" font-weight="500" text-anchor="middle" fill="#8839ef">Accent</text>
<rect x="190" y="175" width="64" height="22" rx="11" fill="#bcc0cc"/>
<text x="222" y="190" font-family="system-ui, -apple-system, Segoe UI, sans-serif" font-size="9.5" text-anchor="middle" fill="#4c4f69">Chip</text>
<circle cx="34" cy="212" r="7" fill="#8839ef"/>
<circle cx="54" cy="212" r="7" fill="#7287fd"/>
<circle cx="74" cy="212" r="7" fill="#d20f39"/>
<circle cx="94" cy="212" r="7" fill="#fe640b"/>
<circle cx="114" cy="212" r="7" fill="#1e66f5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,555 @@
{
"id": "catppuccin",
"name": "Catppuccin",
"version": "1.0.0",
"author": "Avenge Media",
"description": "Soothing pastel theme for the high-spirited",
"dark": {},
"light": {},
"variants": {
"type": "multi",
"defaults": {
"dark": {
"accent": "mauve",
"flavor": "mocha"
},
"light": {
"accent": "mauve",
"flavor": "latte"
}
},
"flavors": [
{
"id": "mocha",
"name": "Mocha",
"dark": {
"surface": "#181825",
"surfaceText": "#cdd6f4",
"surfaceVariant": "#1e1e2e",
"surfaceVariantText": "#a6adc8",
"background": "#1e1e2e",
"backgroundText": "#cdd6f4",
"outline": "#6c7086",
"surfaceContainer": "#1e1e2e",
"surfaceContainerHigh": "#313244",
"surfaceContainerHighest": "#45475a",
"error": "#f38ba8",
"warning": "#fab387",
"info": "#89b4fa"
},
"light": {}
},
{
"id": "macchiato",
"name": "Macchiato",
"dark": {
"surface": "#1e2030",
"surfaceText": "#cad3f5",
"surfaceVariant": "#24273a",
"surfaceVariantText": "#a5adcb",
"background": "#24273a",
"backgroundText": "#cad3f5",
"outline": "#6e738d",
"surfaceContainer": "#24273a",
"surfaceContainerHigh": "#363a4f",
"surfaceContainerHighest": "#494d64",
"error": "#ed8796",
"warning": "#f5a97f",
"info": "#8aadf4"
},
"light": {}
},
{
"id": "frappe",
"name": "Frappé",
"dark": {
"surface": "#292c3c",
"surfaceText": "#c6d0f5",
"surfaceVariant": "#303446",
"surfaceVariantText": "#a5adce",
"background": "#303446",
"backgroundText": "#c6d0f5",
"outline": "#737994",
"surfaceContainer": "#303446",
"surfaceContainerHigh": "#414559",
"surfaceContainerHighest": "#51576d",
"error": "#e78284",
"warning": "#ef9f76",
"info": "#8caaee"
},
"light": {}
},
{
"id": "latte",
"name": "Latte",
"dark": {},
"light": {
"surface": "#e6e9ef",
"surfaceText": "#4c4f69",
"surfaceVariant": "#eff1f5",
"surfaceVariantText": "#6c6f85",
"background": "#eff1f5",
"backgroundText": "#4c4f69",
"outline": "#9ca0b0",
"surfaceContainer": "#e6e9ef",
"surfaceContainerHigh": "#ccd0da",
"surfaceContainerHighest": "#bcc0cc",
"error": "#d20f39",
"warning": "#fe640b",
"info": "#1e66f5"
}
}
],
"accents": [
{
"frappe": {
"primary": "#f2d5cf",
"primaryText": "#303446",
"primaryContainer": "#76534f",
"secondary": "#eebebe",
"surfaceTint": "#3a2f33"
},
"id": "rosewater",
"latte": {
"primary": "#dc8a78",
"primaryText": "#eff1f5",
"primaryContainer": "#f6e7e3",
"secondary": "#dd7878",
"surfaceTint": "#f6e7e3"
},
"macchiato": {
"primary": "#f4dbd6",
"primaryText": "#24273a",
"primaryContainer": "#7a5853",
"secondary": "#f0c6c6",
"surfaceTint": "#3b3035"
},
"mocha": {
"primary": "#f5e0dc",
"primaryText": "#1e1e2e",
"primaryContainer": "#7d5d56",
"secondary": "#f2cdcd",
"surfaceTint": "#3d3237"
},
"name": "Rosewater"
},
{
"frappe": {
"primary": "#eebebe",
"primaryText": "#303446",
"primaryContainer": "#744f52",
"secondary": "#f2d5cf",
"surfaceTint": "#392e31"
},
"id": "flamingo",
"latte": {
"primary": "#dd7878",
"primaryText": "#eff1f5",
"primaryContainer": "#f6e5e5",
"secondary": "#dc8a78",
"surfaceTint": "#f6e5e5"
},
"macchiato": {
"primary": "#f0c6c6",
"primaryText": "#24273a",
"primaryContainer": "#775256",
"secondary": "#f4dbd6",
"surfaceTint": "#3a3033"
},
"mocha": {
"primary": "#f2cdcd",
"primaryText": "#1e1e2e",
"primaryContainer": "#7a555a",
"secondary": "#f5e0dc",
"surfaceTint": "#3c3134"
},
"name": "Flamingo"
},
{
"frappe": {
"primary": "#f4b8e4",
"primaryText": "#303446",
"primaryContainer": "#793d65",
"secondary": "#ca9ee6",
"surfaceTint": "#3c2e37"
},
"id": "pink",
"latte": {
"primary": "#ea76cb",
"primaryText": "#eff1f5",
"primaryContainer": "#f7d7ee",
"secondary": "#8839ef",
"surfaceTint": "#f7d7ee"
},
"macchiato": {
"primary": "#f5bde6",
"primaryText": "#24273a",
"primaryContainer": "#7a3e67",
"secondary": "#c6a0f6",
"surfaceTint": "#3d2f38"
},
"mocha": {
"primary": "#f5c2e7",
"primaryText": "#1e1e2e",
"primaryContainer": "#7a3f69",
"secondary": "#cba6f7",
"surfaceTint": "#3d2f39"
},
"name": "Pink"
},
{
"frappe": {
"primary": "#ca9ee6",
"primaryText": "#303446",
"primaryContainer": "#542f79",
"secondary": "#babbf1",
"surfaceTint": "#33293c"
},
"id": "mauve",
"latte": {
"primary": "#8839ef",
"primaryText": "#eff1f5",
"primaryContainer": "#eadcff",
"secondary": "#7287fd",
"surfaceTint": "#eadcff"
},
"macchiato": {
"primary": "#c6a0f6",
"primaryText": "#24273a",
"primaryContainer": "#532f7d",
"secondary": "#b7bdf8",
"surfaceTint": "#32293e"
},
"mocha": {
"primary": "#cba6f7",
"primaryText": "#1e1e2e",
"primaryContainer": "#55307f",
"secondary": "#b4befe",
"surfaceTint": "#33293f"
},
"name": "Mauve"
},
{
"frappe": {
"primary": "#e78284",
"primaryText": "#303446",
"primaryContainer": "#692233",
"secondary": "#ea999c",
"surfaceTint": "#38272e"
},
"id": "red",
"latte": {
"primary": "#d20f39",
"primaryText": "#eff1f5",
"primaryContainer": "#f6d0d6",
"secondary": "#e64553",
"surfaceTint": "#f6d0d6"
},
"macchiato": {
"primary": "#ed8796",
"primaryText": "#24273a",
"primaryContainer": "#6c2336",
"secondary": "#ee99a0",
"surfaceTint": "#3a2830"
},
"mocha": {
"primary": "#f38ba8",
"primaryText": "#1e1e2e",
"primaryContainer": "#6f2438",
"secondary": "#eba0ac",
"surfaceTint": "#3c2930"
},
"name": "Red"
},
{
"frappe": {
"primary": "#ea999c",
"primaryText": "#303446",
"primaryContainer": "#69333d",
"secondary": "#e78284",
"surfaceTint": "#382a2f"
},
"id": "maroon",
"latte": {
"primary": "#e64553",
"primaryText": "#eff1f5",
"primaryContainer": "#f7d8dc",
"secondary": "#d20f39",
"surfaceTint": "#f7d8dc"
},
"macchiato": {
"primary": "#ee99a0",
"primaryText": "#24273a",
"primaryContainer": "#6b343f",
"secondary": "#ed8796",
"surfaceTint": "#392b30"
},
"mocha": {
"primary": "#eba0ac",
"primaryText": "#1e1e2e",
"primaryContainer": "#6d3641",
"secondary": "#f38ba8",
"surfaceTint": "#3a2c31"
},
"name": "Maroon"
},
{
"frappe": {
"primary": "#ef9f76",
"primaryText": "#303446",
"primaryContainer": "#6d3e24",
"secondary": "#e5c890",
"surfaceTint": "#382e27"
},
"id": "peach",
"latte": {
"primary": "#fe640b",
"primaryText": "#eff1f5",
"primaryContainer": "#ffe4d5",
"secondary": "#df8e1d",
"surfaceTint": "#ffe4d5"
},
"macchiato": {
"primary": "#f5a97f",
"primaryText": "#24273a",
"primaryContainer": "#704025",
"secondary": "#eed49f",
"surfaceTint": "#3a2f28"
},
"mocha": {
"primary": "#fab387",
"primaryText": "#1e1e2e",
"primaryContainer": "#734226",
"secondary": "#f9e2af",
"surfaceTint": "#3b3028"
},
"name": "Peach"
},
{
"frappe": {
"primary": "#e5c890",
"primaryText": "#303446",
"primaryContainer": "#68542c",
"secondary": "#a6d189",
"surfaceTint": "#383428"
},
"id": "yellow",
"latte": {
"primary": "#df8e1d",
"primaryText": "#eff1f5",
"primaryContainer": "#fff6d6",
"secondary": "#40a02b",
"surfaceTint": "#fff6d6"
},
"macchiato": {
"primary": "#eed49f",
"primaryText": "#24273a",
"primaryContainer": "#6b572e",
"secondary": "#a6da95",
"surfaceTint": "#393529"
},
"mocha": {
"primary": "#f9e2af",
"primaryText": "#1e1e2e",
"primaryContainer": "#6e5a2f",
"secondary": "#a6e3a1",
"surfaceTint": "#3a362a"
},
"name": "Yellow"
},
{
"frappe": {
"primary": "#a6d189",
"primaryText": "#303446",
"primaryContainer": "#2d5932",
"secondary": "#81c8be",
"surfaceTint": "#2a362b"
},
"id": "green",
"latte": {
"primary": "#40a02b",
"primaryText": "#eff1f5",
"primaryContainer": "#dff4e0",
"secondary": "#179299",
"surfaceTint": "#dff4e0"
},
"macchiato": {
"primary": "#a6da95",
"primaryText": "#24273a",
"primaryContainer": "#2e5c34",
"secondary": "#8bd5ca",
"surfaceTint": "#2b372c"
},
"mocha": {
"primary": "#a6e3a1",
"primaryText": "#1e1e2e",
"primaryContainer": "#2f5f36",
"secondary": "#94e2d5",
"surfaceTint": "#2b382c"
},
"name": "Green"
},
{
"frappe": {
"primary": "#81c8be",
"primaryText": "#303446",
"primaryContainer": "#2c5853",
"secondary": "#99d1db",
"surfaceTint": "#2a3634"
},
"id": "teal",
"latte": {
"primary": "#179299",
"primaryText": "#eff1f5",
"primaryContainer": "#daf3f1",
"secondary": "#04a5e5",
"surfaceTint": "#daf3f1"
},
"macchiato": {
"primary": "#8bd5ca",
"primaryText": "#24273a",
"primaryContainer": "#2d5b56",
"secondary": "#91d7e3",
"surfaceTint": "#2b3735"
},
"mocha": {
"primary": "#94e2d5",
"primaryText": "#1e1e2e",
"primaryContainer": "#2e5e59",
"secondary": "#89dceb",
"surfaceTint": "#2b3836"
},
"name": "Teal"
},
{
"frappe": {
"primary": "#99d1db",
"primaryText": "#303446",
"primaryContainer": "#245464",
"secondary": "#85c1dc",
"surfaceTint": "#283438"
},
"id": "sky",
"latte": {
"primary": "#04a5e5",
"primaryText": "#eff1f5",
"primaryContainer": "#dbf1fb",
"secondary": "#209fb5",
"surfaceTint": "#dbf1fb"
},
"macchiato": {
"primary": "#91d7e3",
"primaryText": "#24273a",
"primaryContainer": "#245667",
"secondary": "#7dc4e4",
"surfaceTint": "#293539"
},
"mocha": {
"primary": "#89dceb",
"primaryText": "#1e1e2e",
"primaryContainer": "#24586a",
"secondary": "#74c7ec",
"surfaceTint": "#29363a"
},
"name": "Sky"
},
{
"frappe": {
"primary": "#85c1dc",
"primaryText": "#303446",
"primaryContainer": "#1f4967",
"secondary": "#8caaee",
"surfaceTint": "#27323a"
},
"id": "sapphire",
"latte": {
"primary": "#209fb5",
"primaryText": "#eff1f5",
"primaryContainer": "#def3f8",
"secondary": "#1e66f5",
"surfaceTint": "#def3f8"
},
"macchiato": {
"primary": "#7dc4e4",
"primaryText": "#24273a",
"primaryContainer": "#1f4b6b",
"secondary": "#8aadf4",
"surfaceTint": "#27333b"
},
"mocha": {
"primary": "#74c7ec",
"primaryText": "#1e1e2e",
"primaryContainer": "#1f4d6f",
"secondary": "#89b4fa",
"surfaceTint": "#27343c"
},
"name": "Sapphire"
},
{
"frappe": {
"primary": "#8caaee",
"primaryText": "#303446",
"primaryContainer": "#243d6f",
"secondary": "#babbf1",
"surfaceTint": "#282f3b"
},
"id": "blue",
"latte": {
"primary": "#1e66f5",
"primaryText": "#eff1f5",
"primaryContainer": "#e0e9ff",
"secondary": "#7287fd",
"surfaceTint": "#e0e9ff"
},
"macchiato": {
"primary": "#8aadf4",
"primaryText": "#24273a",
"primaryContainer": "#243e72",
"secondary": "#b7bdf8",
"surfaceTint": "#29303c"
},
"mocha": {
"primary": "#89b4fa",
"primaryText": "#1e1e2e",
"primaryContainer": "#243f75",
"secondary": "#b4befe",
"surfaceTint": "#29313d"
},
"name": "Blue"
},
{
"frappe": {
"primary": "#babbf1",
"primaryText": "#303446",
"primaryContainer": "#3d427b",
"secondary": "#ca9ee6",
"surfaceTint": "#2e2f3e"
},
"id": "lavender",
"latte": {
"primary": "#7287fd",
"primaryText": "#eff1f5",
"primaryContainer": "#e5e8ff",
"secondary": "#8839ef",
"surfaceTint": "#e5e8ff"
},
"macchiato": {
"primary": "#b7bdf8",
"primaryText": "#24273a",
"primaryContainer": "#3e437e",
"secondary": "#c6a0f6",
"surfaceTint": "#2f303f"
},
"mocha": {
"primary": "#b4befe",
"primaryText": "#1e1e2e",
"primaryContainer": "#3f4481",
"secondary": "#cba6f7",
"surfaceTint": "#2f3140"
},
"name": "Lavender"
}
]
},
"sourceDir": "catppuccin"
}
@@ -0,0 +1,37 @@
# This file was created by fish when upgrading to version 4.3, to migrate
# theme variables from universal to global scope.
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
# To customize your theme, delete this file and see
# help interactive#syntax-highlighting
# or
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
# for appropriate commands to add to ~/.config/fish/config.fish instead.
# See also the release notes for fish 4.3.0 (run `help relnotes`).
set --global fish_color_autosuggestion brblack
set --global fish_color_cancel -r
set --global fish_color_command blue
set --global fish_color_comment red
set --global fish_color_cwd green
set --global fish_color_cwd_root red
set --global fish_color_end green
set --global fish_color_error brred
set --global fish_color_escape brcyan
set --global fish_color_history_current --bold
set --global fish_color_host normal
set --global fish_color_host_remote yellow
set --global fish_color_normal normal
set --global fish_color_operator brcyan
set --global fish_color_param cyan
set --global fish_color_quote yellow
set --global fish_color_redirection cyan --bold
set --global fish_color_search_match white --background=brblack
set --global fish_color_selection white --bold --background=brblack
set --global fish_color_status red
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline
set --global fish_pager_color_completion normal
set --global fish_pager_color_description yellow -i
set --global fish_pager_color_prefix normal --bold --underline
set --global fish_pager_color_progress brwhite --background=cyan
set --global fish_pager_color_selected_background -r
@@ -21,11 +21,14 @@ if test -d ~/.local/bin
end end
end end
## Plugin configuration # Add ~/go to PATH
# Set settings for https://github.com/franciscolourenco/done if test -d ~/go/bin
set -U __done_min_cmd_duration 10000 if not contains -- ~/go/bin $PATH
set -U __done_notification_urgency_level low set -p PATH ~/go/bin
end
end
## Plugin configuration
# Starship prompt # Starship prompt
if type -q starship && status --is-interactive if type -q starship && status --is-interactive
starship init fish | source starship init fish | source
@@ -39,7 +42,7 @@ end
## Functions ## Functions
# Fish command history # Fish command history
function history function history
builtin history --show-time='%F %T ' builtin history --reverse --show-time='%F %T '
end end
function ba --argument filename function ba --argument filename
@@ -54,7 +57,7 @@ function cp_bar
kill $cpid &> /dev/null kill $cpid &> /dev/null
end end
function unzip -a input_file function unzipc -a input_file
if test -z "$input_file" if test -z "$input_file"
echo "Usage: unzip <filename.zip>" echo "Usage: unzip <filename.zip>"
return 1 return 1
@@ -70,7 +73,7 @@ function unzip -a input_file
command unzip "$input_file" -d "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'" command unzip "$input_file" -d "$folder_name" && echo "File '$input_file' successfully extracted to '$folder_name/'"
end end
function untar -a input_file function untarc -a input_file
if test -z "$input_file" if test -z "$input_file"
echo "Usage: untar <filename.zip>" echo "Usage: untar <filename.zip>"
return 1 return 1
@@ -114,23 +117,55 @@ function mvn-run -a mainClass -d "Run your current maven project"
end end
# Yazi wrapper # Yazi wrapper
function ya function y
set tmp (mktemp -t "yazi-cwd.XXXXX") set tmp (mktemp -t "yazi-cwd.XXXXXX")
yazi $argv --cwd-file="$tmp" yazi $argv --cwd-file="$tmp"
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] if read -z cwd < "$tmp"; and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
cd "$cwd" builtin cd -- "$cwd"
end
rm -f -- "$tmp"
end
# Convert webm to opus
function w2o
for f in *.webm
ffmpeg -i "$f" -map 0:a:0 -c:a copy (path change-extension opus "$f")
and rm "$f"
end end
rm -f -- "$tmp" end
# Chezmoi apply changes from current chezmoi DIR
function ca
set -l path "."
if test (count $argv) -gt 0
set path $argv[1]
end
chezmoi apply (chezmoi target-path $path)
end
function isbusy
set -l path "$argv[1]"
if test -z "$path"
echo "Usage: isbusy <path>" >&2
return 1
end
set path (realpath -e -- "$path" 2>/dev/null)
or begin
echo "isbusy: cannot resolve '$argv[1]'" >&2
return 1
end
sudo lsof +f -- "$path"
end end
## Aliases ## Aliases
# Replace ls with eza # Replace ls with eza
if type -q eza if type -q eza
alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing alias ls='eza -al --color=always --group-directories-first --icons=auto' # preferred listing
alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs alias la='eza -a --color=always --group-directories-first --icons=auto' # all files and dirs
alias ll='eza -l --color=always --group-directories-first --icons' # long format alias ll='eza -l --color=always --group-directories-first --icons=auto' # long format
alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing alias lt='eza -aT --color=always --group-directories-first --icons=auto' # tree listing
alias l.='eza -ald --color=always --group-directories-first --icons .*' # show only dotfiles alias l.='eza -ald --color=always --group-directories-first --icons=auto .*' # show only dotfiles
end end
# Replace cat with bat # Replace cat with bat
@@ -155,7 +190,7 @@ alias nano=nvim
alias cls='clear' alias cls='clear'
alias please='sudo' alias please='sudo'
alias ip='ip -color' alias ip='ip -color'
alias wip=curl https://ipinfo.io/ip alias wip='curl https://ipinfo.io/ip'
alias mkdirs='mkdir --parents' alias mkdirs='mkdir --parents'
alias grubup="sudo update-grub" alias grubup="sudo update-grub"
alias fixpacman="sudo rm /var/lib/pacman/db.lck" alias fixpacman="sudo rm /var/lib/pacman/db.lck"
@@ -178,8 +213,10 @@ alias bigpkg="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages ac
alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # Cleanup orphaned packages alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # Cleanup orphaned packages
alias jctl="journalctl -p 3 -xb" # Get the error messages from journalctl alias jctl="journalctl -p 3 -xb" # Get the error messages from journalctl
alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" # Recent installed packages alias ripp="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" # Recent installed packages
alias h="cliphist list | fzf | cliphist decode | wl-copy" alias ch="cliphist list | fzf | cliphist decode | wl-copy"
alias dirsize="du -h --max-depth=1"
# Get fastest mirrors # Get fastest mirrors
alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist"
+68
View File
@@ -0,0 +1,68 @@
# Font Configuration
font-family = CaskaydiaMono Nerd Font
font-size = 12
# Window Configuration
window-decoration = false
window-padding-x = 0
window-padding-y = 0
background-opacity = 1.0
# Cursor Configuration
cursor-style = block
cursor-style-blink = true
# Scrollback
scrollback-limit = 10485760
# Terminal features
mouse-hide-while-typing = true
copy-on-select = false
confirm-close-surface = false
mouse-scroll-multiplier = 0.6
app-notifications = no-clipboard-copy, no-config-reload
# Working directory
window-inherit-working-directory = false
working-directory = home
# Notifications
notify-on-command-finish = unfocused
notify-on-command-finish-action = bell,notify
notify-on-command-finish-after = 5s
# Key bindings for common actions
# keybind = ctrl+shift+,=reload_config ## Default reload config shortcut
keybind = ctrl+shift+n=new_window
keybind = ctrl+t=new_tab
keybind = ctrl+plus=increase_font_size:1
keybind = ctrl+minus=decrease_font_size:1
keybind = ctrl+zero=reset_font_size
keybind = ctrl+enter=unbind
keybind = ctrl+1=goto_tab:1
keybind = ctrl+2=goto_tab:2
keybind = ctrl+3=goto_tab:3
keybind = ctrl+4=goto_tab:4
keybind = ctrl+5=goto_tab:5
keybind = ctrl+6=goto_tab:6
keybind = ctrl+7=goto_tab:7
keybind = ctrl+8=goto_tab:8
keybind = ctrl+9=goto_tab:9
# GTK
gtk-titlebar = false
gtk-single-instance = false
# Shell integration
shell-integration = detect
shell-integration-features = cursor, sudo, title, no-cursor, ssh-env
keybind = shift+enter=text:\n
# Theme
unfocused-split-opacity = 0.7
unfocused-split-fill = #44464f
background-opacity = 0.8
background-blur = true
# Dank color generation
theme = dankcolors
+22
View File
@@ -0,0 +1,22 @@
background = #191114
foreground = #eedfe3
cursor-color = #ffb0d1
selection-background = #6e334f
selection-foreground = #eedfe3
palette = 0=#191114
palette = 1=#ff7279
palette = 2=#a0ff7f
palette = 3=#ffe172
palette = 4=#f298bd
palette = 5=#76324f
palette = 6=#ffb0d1
palette = 7=#ffeff6
palette = 8=#a5999e
palette = 9=#ff9fa4
palette = 10=#bcffa5
palette = 11=#ffeca5
palette = 12=#ffbbd7
palette = 13=#ffc7de
palette = 14=#ffdbea
palette = 15=#fff8fb
@@ -0,0 +1,39 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IGNZRXdIZ24r
ZCswV01GQS95dzVIQUJRSVllVldpUEFWTkZibjVET203emU3b1I0bUdkeTNnYVdO
bDVhQmxrMWF6cktMdFd4T2Y5OHRhb2RMMk5PWUJiaWZaRlRPdUNYTmk5QTh0K1BR
d2UzcUd5Lzg3N1Jjeng2bHVreXl2YVZBWXBNTm5Xc1NtTU9vdDRUTkZXUWNEeGdX
MENGUkVzNFIvdE1oSndUOE1mSWFYSHZub3YvY1RKVTdRVEFKYUtiOHhNTHZWRitU
NXY1cTBhNFl6Z3FLUDU1c0pVSVdpa0pHV216cStHT1ErSTU4RzZRVHkzVWE2U1Mx
YXZNUjJmWEtVS2R1STRIVXM0dFRxK2FSenIrTGZXTDZKU0FIMlF6eElseE9vMlBk
RkM4RHMrdFZLVWNScElpamRMYytXL0NpQlhoWTlIUXZMb3Q4dVRRWkhtRmRzcU8y
NHc2RmZJVE1mUGp4SHNoL2xNWWtLY0UxaVh5cjk2d2Y4RzE2TFZMNjlaL1NFM1g4
dVowK2dRd3BJK1dVdnNHV1FlbGRtckJlcWI0SUM0MHFpN3JZK1RnSUlxZ1RFMk0z
ZFQ3N05CVEtLTGszcTFuNk5IQTRIZmhnY2FzZkFYR2VDNktwNFA0THhxWkpUbVVL
Sm1Ka21GTEYzd1RSMnUvc0F2eWhQbEZmK25VTHRtdW5tNlB2SWJseVpXUlhZckYr
U3A5aTVrZERKQjZrQWJXT2l1QkFSYmF6MExZNnRmZzdOekxjTU9qZW1pT3BHN0N1
RFBHMUlXQXpsbFkzVFhOUDhTKzdYUlZTbWFjZ2RqS2NLNEhxRDF2UXU4RnAwUW84
TDNxdnV4UU9LREQ5R0dsbjRrRlRhVjM1VXNmWkFlRmk0SzRmSjNPRnpMK3Q4VTgv
YkRJemNYNGlrVkdYdmpHSTJzblM5SHErSW9IVGRoNU96TC96RjJRMkwwOG5TbTBv
ZnpSRU1DZWw1OTExWTNpYzQ1MHo5UXZqSjNPSGY4R0RyQldSTVA1MWdhQ1Fmc2Jz
QjdjK1YxdjdOWldQY25oRmZzU0I1YWNMdGVNbCs5OUlWUmNRL2JYc2hicVMyWnU3
Z3N6VFRGejNKMzRSUzNoSVlsZVFPNzFLOXpNMWc0RW5YWXdiMDREd2ZQbVdzbm5q
MW9uQUMzK3BMbVpTYVpkbjBmVC9KQk1RVGdhVVZ6WmtpMmN4ZWxlckNPTzNQWWxN
cTJhdlBBdjRISitXeVBYOHVTU0x2VVY5WGQ1MUlYditvVFhkK0tMdVdYdFBmWTFy
UHNXT1h1NGFGVlUwS3RtR0hkT0k4c1l3aHlaa1VGaGZaai9iZE1ZQTNIQnpTY1N6
b2djTDNMV2gvNDVqSy9wcHVJbUU5MURMQjArYndzdFpmVTRwditxY014aXk5S1RT
aXB1QVJUVmtMTS91RHQ1c1VzQllJVWlrQ0Jrd1pkY204UCsvQ1ZydTlzYWxiTkVP
UlBaSUxFSGRGTmFJTUllOFZjMmQ2ZGtOdEkvcmZVaTl2M04raUlpYjhhalJRWHhs
UUZ0UG9hVmFFcEFkWGg5YlFPeWhETHl0aU80OFBKMHlEcUxjcStGdzh4Uy9BTFNt
MGROUjN5YlFwT1RmbXhTS0t0cDNleFEwMW9EN2QzNkYxaU1EdStnemRob1ovOXVu
V242enFTNHNrSThuWVF4NlZOUktDS2pnSFdDbXpzbWVFTXBSYzBLd1RBVDBESHdx
MnBjaFoyQlFUU3hsRUtRU3JKN1MyYUF0bWhmNVJWL3Y0N2pHWExtQnFudVNqSU5M
cVJxcEk4djVJYlFFc21qM0hIRDJwRjVXcHJxZm1SSWpvTkZOQWxjWkU2T2ZjWGRP
Z1dVMmpIYkE2aDhSb3NFYUNtR2NoTzcvSXRpS0R6SDRjaFZCeTA4Slk1aEdiMzRT
YnFHZ3VGd2diWDFpd2tJeENFeTdPNHFrN0htNUtSY0lIQnZMbUdKU1UrMHdLQQpK
NlYwZHA1TE1UVW1oMWE5SldqZlJKZnBqQzJ0VlAwempoc3RYRk80bnFFCi0tLSAy
NGxXeXhpVVRCdG5XSHhJSGhIL2NTQ2tpazhNc3BTWGVLK0ZWRW5MMWJJCh6NOfbc
7tamEsDzZ+lU5rtuIHCaeMCHGOyxq3Is2ZUyWo9ofbWbYOpDsmZIIeYyDSnjHd0H
j7ueHatEOJESJf0s7FOCsXZ3I3VRE+/ClfdZCQJM5Sz2xYNQI/6SNzQcnjpL89H1
539xEfDw2TKH4FHvj1LsWTX5l47yTMgEP/Mxqp0NW0/qfPmYEj1G7Q==
-----END AGE ENCRYPTED FILE-----
@@ -1,8 +1,8 @@
[Settings] [Settings]
gtk-theme-name=Catppuccin-Macchiato-Standard-Sapphire-Dark gtk-theme-name=adw-gtk3-dark
gtk-icon-theme-name=Papirus gtk-icon-theme-name=Papirus-Dark
gtk-font-name=CaskaydiaCove Nerd Font 12 gtk-font-name=CaskaydiaCove Nerd Font 12
gtk-cursor-theme-name=Breeze gtk-cursor-theme-name=breeze_cursors
gtk-cursor-theme-size=24 gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_ICONS gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
@@ -14,4 +14,4 @@ gtk-xft-antialias=1
gtk-xft-hinting=1 gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=0 gtk-application-prefer-dark-theme=1
+7
View File
@@ -0,0 +1,7 @@
[Settings]
gtk-theme-name=adw-gtk3-dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=CaskaydiaCove Nerd Font 12
gtk-cursor-theme-name=breeze_cursors
gtk-cursor-theme-size=24
gtk-application-prefer-dark-theme=1
+38
View File
@@ -0,0 +1,38 @@
-- DMS user keybind overrides (edit via Control Center or dms; do not remove this header)
hl.unbind("CTRL + SHIFT + Escape")
hl.bind("CTRL + SHIFT + Escape", hl.dsp.exec_cmd("dms ipc call processlist focusOrToggle"), { description = "dms ipc call processlist focusOrToggle" })
hl.unbind("SUPER + CTRL + S")
hl.bind("SUPER + CTRL + S", hl.dsp.exec_cmd("dms ipc call quickCapture screenshot window edit"), { description = "screenshot window" })
hl.unbind("SUPER + I")
hl.bind("SUPER + I", hl.dsp.exec_cmd("dms ipc notifications toggle"), { description = "notification toggle" })
hl.unbind("SUPER + N")
hl.bind("SUPER + N", hl.dsp.exec_cmd("dms ipc call notepad toggle"), { description = "dms ipc call notepad toggle" })
hl.unbind("SUPER + O")
hl.bind("SUPER + O", hl.dsp.exec_cmd("dms ipc call lock lock"), { description = "dms ipc call lock lock" })
hl.unbind("SUPER + SHIFT + B")
hl.bind("SUPER + SHIFT + B", hl.dsp.exec_cmd("dms ipc call mpris previous"), { locked = true, description = "dms ipc call mpris previous" })
hl.unbind("SUPER + SHIFT + N")
hl.bind("SUPER + SHIFT + N", hl.dsp.exec_cmd("dms ipc call mpris next"), { locked = true, description = "dms ipc call mpris next" })
hl.unbind("SUPER + SHIFT + P")
hl.bind("SUPER + SHIFT + P", hl.dsp.exec_cmd("dms ipc call mpris playPause"), { locked = true, description = "dms ipc call mpris playPause" })
hl.unbind("SUPER + SHIFT + S")
hl.bind("SUPER + SHIFT + S", hl.dsp.exec_cmd("dms ipc call quickCapture screenshot region edit"), { description = "screenshot region" })
hl.unbind("SUPER + SHIFT + T")
hl.bind("SUPER + SHIFT + T", hl.dsp.exec_cmd("dms ipc call timer toggle"), { description = "timer toggle" })
hl.unbind("SUPER + B")
hl.bind("SUPER + B", hl.dsp.exec_cmd("xdg-open https://"), { description = "browser" })
hl.unbind("SUPER + E")
hl.bind("SUPER + E", hl.dsp.exec_cmd("thunar"))
hl.unbind("SUPER + SHIFT + O")
hl.bind("SUPER + SHIFT + O", hl.dsp.dpms({ action = "toggle" }), { description = "dpms toggle" })
hl.unbind("CTRL + ALT + Delete")
hl.unbind("CTRL + SHIFT + T")
hl.unbind("SUPER + C")
hl.bind("SUPER + C", hl.dsp.window.close(), { description = "Close window" })
hl.unbind("SUPER + CTRL + F")
hl.unbind("SUPER + F")
hl.bind("SUPER + F", hl.dsp.window.float({ action = "toggle" }), { description = "Float/unfloat window" })
hl.unbind("SUPER + M")
hl.bind("SUPER + M", hl.dsp.window.fullscreen({ mode = "maximized", action = "toggle" }), { description = "Toggle maximization" })
hl.unbind("SUPER + Q")
+171
View File
@@ -0,0 +1,171 @@
-- DMS default keybinds (Hyprland 0.55+ Lua)
-- === Application Launchers ===
hl.bind("SUPER + T", hl.dsp.exec_cmd("ghostty"))
hl.bind("SUPER + space", hl.dsp.exec_cmd("dms ipc call spotlight toggle"))
hl.bind("ALT + space", hl.dsp.exec_cmd("dms ipc call spotlight-bar toggle"))
hl.bind("SUPER + V", hl.dsp.exec_cmd("dms ipc call clipboard toggle"))
hl.bind("SUPER + M", hl.dsp.exec_cmd("dms ipc call processlist focusOrToggle"))
hl.bind("SUPER + comma", hl.dsp.exec_cmd("dms ipc call settings focusOrToggle"))
hl.bind("SUPER + N", hl.dsp.exec_cmd("dms ipc call notifications toggle"))
hl.bind("SUPER + SHIFT + N", hl.dsp.exec_cmd("dms ipc call notepad toggle"))
hl.bind("SUPER + Y", hl.dsp.exec_cmd("dms ipc call dash toggle wallpaper"))
hl.bind("SUPER + TAB", hl.dsp.exec_cmd("dms ipc call hypr toggleOverview"))
hl.bind("SUPER + O", hl.dsp.exec_cmd("dms ipc call hypr toggleOverview"))
hl.bind("SUPER + X", hl.dsp.exec_cmd("dms ipc call powermenu toggle"))
-- === Cheat sheet
hl.bind("SUPER + SHIFT + Slash", hl.dsp.exec_cmd("dms ipc call keybinds toggle hyprland"))
-- === Security ===
hl.bind("SUPER + ALT + L", hl.dsp.exec_cmd("dms ipc call lock lock"))
hl.bind("SUPER + SHIFT + E", hl.dsp.exit())
hl.bind("CTRL + ALT + Delete", hl.dsp.exec_cmd("dms ipc call processlist focusOrToggle"))
-- === Audio Controls ===
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("dms ipc call audio increment 3"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("dms ipc call audio decrement 3"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("dms ipc call audio mute"), { locked = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("dms ipc call audio micmute"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("dms ipc call mpris playPause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("dms ipc call mpris playPause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("dms ipc call mpris previous"), { locked = true })
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("dms ipc call mpris next"), { locked = true })
hl.bind("CTRL + XF86AudioRaiseVolume", hl.dsp.exec_cmd("dms ipc call mpris increment 3"), { locked = true, repeating = true })
hl.bind("CTRL + XF86AudioLowerVolume", hl.dsp.exec_cmd("dms ipc call mpris decrement 3"), { locked = true, repeating = true })
-- === Brightness Controls ===
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd([[dms ipc call brightness increment 5 ""]]), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd([[dms ipc call brightness decrement 5 ""]]), { locked = true, repeating = true })
-- === Window Management ===
hl.bind("SUPER + Q", hl.dsp.window.close())
hl.bind("SUPER + F", hl.dsp.window.fullscreen({ mode = "maximized", action = "toggle" }))
hl.bind("SUPER + SHIFT + F", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }))
hl.bind("SUPER + SHIFT + T", hl.dsp.window.float({ action = "toggle" }))
hl.bind("SUPER + W", hl.dsp.group.toggle())
hl.bind("SUPER + SHIFT + W", hl.dsp.exec_cmd("dms ipc call window-rules toggle"))
-- === Focus Navigation ===
hl.bind("SUPER + left", hl.dsp.focus({ direction = "l" }))
hl.bind("SUPER + down", hl.dsp.focus({ direction = "d" }))
hl.bind("SUPER + up", hl.dsp.focus({ direction = "u" }))
hl.bind("SUPER + right", hl.dsp.focus({ direction = "r" }))
hl.bind("SUPER + H", hl.dsp.focus({ direction = "l" }))
hl.bind("SUPER + J", hl.dsp.focus({ direction = "d" }))
hl.bind("SUPER + K", hl.dsp.focus({ direction = "u" }))
hl.bind("SUPER + L", hl.dsp.focus({ direction = "r" }))
-- === Window Movement ===
hl.bind("SUPER + SHIFT + left", hl.dsp.window.move({ direction = "l" }))
hl.bind("SUPER + SHIFT + down", hl.dsp.window.move({ direction = "d" }))
hl.bind("SUPER + SHIFT + up", hl.dsp.window.move({ direction = "u" }))
hl.bind("SUPER + SHIFT + right", hl.dsp.window.move({ direction = "r" }))
hl.bind("SUPER + SHIFT + H", hl.dsp.window.move({ direction = "l" }))
hl.bind("SUPER + SHIFT + J", hl.dsp.window.move({ direction = "d" }))
hl.bind("SUPER + SHIFT + K", hl.dsp.window.move({ direction = "u" }))
hl.bind("SUPER + SHIFT + L", hl.dsp.window.move({ direction = "r" }))
-- === Column Navigation ===
hl.bind("SUPER + Home", hl.dsp.focus({ window = "first" }))
hl.bind("SUPER + End", hl.dsp.focus({ window = "last" }))
-- === Monitor Navigation ===
hl.bind("SUPER + CTRL + left", hl.dsp.focus({ monitor = "l" }))
hl.bind("SUPER + CTRL + right", hl.dsp.focus({ monitor = "r" }))
hl.bind("SUPER + CTRL + H", hl.dsp.focus({ monitor = "l" }))
hl.bind("SUPER + CTRL + J", hl.dsp.focus({ monitor = "d" }))
hl.bind("SUPER + CTRL + K", hl.dsp.focus({ monitor = "u" }))
hl.bind("SUPER + CTRL + L", hl.dsp.focus({ monitor = "r" }))
-- === Move to Monitor ===
hl.bind("SUPER + SHIFT + CTRL + left", hl.dsp.window.move({ monitor = "l" }))
hl.bind("SUPER + SHIFT + CTRL + down", hl.dsp.window.move({ monitor = "d" }))
hl.bind("SUPER + SHIFT + CTRL + up", hl.dsp.window.move({ monitor = "u" }))
hl.bind("SUPER + SHIFT + CTRL + right", hl.dsp.window.move({ monitor = "r" }))
hl.bind("SUPER + SHIFT + CTRL + H", hl.dsp.window.move({ monitor = "l" }))
hl.bind("SUPER + SHIFT + CTRL + J", hl.dsp.window.move({ monitor = "d" }))
hl.bind("SUPER + SHIFT + CTRL + K", hl.dsp.window.move({ monitor = "u" }))
hl.bind("SUPER + SHIFT + CTRL + L", hl.dsp.window.move({ monitor = "r" }))
-- === Workspace Navigation ===
hl.bind("SUPER + Page_Down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind("SUPER + Page_Up", hl.dsp.focus({ workspace = "e-1" }))
hl.bind("SUPER + U", hl.dsp.focus({ workspace = "e+1" }))
hl.bind("SUPER + I", hl.dsp.focus({ workspace = "e-1" }))
hl.bind("SUPER + CTRL + down", hl.dsp.window.move({ workspace = "e+1" }))
hl.bind("SUPER + CTRL + up", hl.dsp.window.move({ workspace = "e-1" }))
hl.bind("SUPER + CTRL + U", hl.dsp.window.move({ workspace = "e+1" }))
hl.bind("SUPER + CTRL + I", hl.dsp.window.move({ workspace = "e-1" }))
-- === Workspace Management ===
hl.bind("CTRL + SHIFT + R", hl.dsp.exec_cmd("dms ipc call workspace-rename open"))
-- === Move Workspaces ===
hl.bind("SUPER + SHIFT + Page_Down", hl.dsp.window.move({ workspace = "e+1" }))
hl.bind("SUPER + SHIFT + Page_Up", hl.dsp.window.move({ workspace = "e-1" }))
hl.bind("SUPER + SHIFT + U", hl.dsp.window.move({ workspace = "e+1" }))
hl.bind("SUPER + SHIFT + I", hl.dsp.window.move({ workspace = "e-1" }))
-- === Mouse Wheel Navigation ===
hl.bind("SUPER + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind("SUPER + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
hl.bind("SUPER + CTRL + mouse_down", hl.dsp.window.move({ workspace = "e+1" }))
hl.bind("SUPER + CTRL + mouse_up", hl.dsp.window.move({ workspace = "e-1" }))
-- === Touchpad Gestures ===
hl.gesture({ fingers = 3, direction = "horizontal", action = "workspace" })
-- === Numbered Workspaces ===
hl.bind("SUPER + 1", hl.dsp.focus({ workspace = "1" }))
hl.bind("SUPER + 2", hl.dsp.focus({ workspace = "2" }))
hl.bind("SUPER + 3", hl.dsp.focus({ workspace = "3" }))
hl.bind("SUPER + 4", hl.dsp.focus({ workspace = "4" }))
hl.bind("SUPER + 5", hl.dsp.focus({ workspace = "5" }))
hl.bind("SUPER + 6", hl.dsp.focus({ workspace = "6" }))
hl.bind("SUPER + 7", hl.dsp.focus({ workspace = "7" }))
hl.bind("SUPER + 8", hl.dsp.focus({ workspace = "8" }))
hl.bind("SUPER + 9", hl.dsp.focus({ workspace = "9" }))
-- === Move to Numbered Workspaces ===
hl.bind("SUPER + SHIFT + 1", hl.dsp.window.move({ workspace = "1" }))
hl.bind("SUPER + SHIFT + 2", hl.dsp.window.move({ workspace = "2" }))
hl.bind("SUPER + SHIFT + 3", hl.dsp.window.move({ workspace = "3" }))
hl.bind("SUPER + SHIFT + 4", hl.dsp.window.move({ workspace = "4" }))
hl.bind("SUPER + SHIFT + 5", hl.dsp.window.move({ workspace = "5" }))
hl.bind("SUPER + SHIFT + 6", hl.dsp.window.move({ workspace = "6" }))
hl.bind("SUPER + SHIFT + 7", hl.dsp.window.move({ workspace = "7" }))
hl.bind("SUPER + SHIFT + 8", hl.dsp.window.move({ workspace = "8" }))
hl.bind("SUPER + SHIFT + 9", hl.dsp.window.move({ workspace = "9" }))
-- === Column Management ===
hl.bind("SUPER + bracketleft", hl.dsp.layout("preselect l"))
hl.bind("SUPER + bracketright", hl.dsp.layout("preselect r"))
-- === Sizing & Layout ===
hl.bind("SUPER + R", hl.dsp.layout("togglesplit"))
hl.bind("SUPER + CTRL + F", hl.dsp.window.fullscreen({ mode = "maximized", action = "set" }))
-- === Move/resize windows with mainMod + LMB/RMB and dragging ===
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Move window" })
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Resize window" })
hl.bind("SUPER + code:20", hl.dsp.window.resize({ x = -100, y = 0, relative = true }), { description = "Expand window left" })
hl.bind("SUPER + code:21", hl.dsp.window.resize({ x = 100, y = 0, relative = true }), { description = "Shrink window left" })
-- === Manual Sizing ===
hl.bind("SUPER + minus", hl.dsp.window.resize({ x = -100, y = 0, relative = true }), { repeating = true })
hl.bind("SUPER + equal", hl.dsp.window.resize({ x = 100, y = 0, relative = true }), { repeating = true })
hl.bind("SUPER + SHIFT + minus", hl.dsp.window.resize({ x = 0, y = -100, relative = true }), { repeating = true })
hl.bind("SUPER + SHIFT + equal", hl.dsp.window.resize({ x = 0, y = 100, relative = true }), { repeating = true })
-- === Screenshots ===
hl.bind("Print", hl.dsp.exec_cmd("dms screenshot"))
hl.bind("CTRL + Print", hl.dsp.exec_cmd("dms screenshot full"))
hl.bind("ALT + Print", hl.dsp.exec_cmd("dms screenshot window"))
-- === Display Profiles ===
hl.bind("SUPER + P", hl.dsp.exec_cmd("dms ipc outputs cycleProfile"))
-- === System Controls ===
hl.bind("SUPER + SHIFT + P", hl.dsp.dpms({ action = "toggle" }))
+27
View File
@@ -0,0 +1,27 @@
-- Auto-generated by DMS Matugen hook — do not edit manually.
-- Remove require("dms.colors") from hyprland.lua to override.
hl.config({
general = {
col = {
active_border = "rgb(9fd49b)",
inactive_border = "rgb(8c9388)",
},
},
group = {
col = {
border_active = "rgb(9fd49b)",
border_inactive = "rgb(8c9388)",
border_locked_active = "rgb(ffb4ab)",
border_locked_inactive = "rgb(8c9388)",
},
groupbar = {
col = {
active = "rgb(9fd49b)",
inactive = "rgb(8c9388)",
locked_active = "rgb(ffb4ab)",
locked_inactive = "rgb(8c9388)",
},
},
},
})
+6
View File
@@ -0,0 +1,6 @@
-- Auto-generated by DMS — do not edit manually
hl.env("HYPRCURSOR_THEME", "breeze_cursors")
hl.env("XCURSOR_THEME", "breeze_cursors")
hl.env("HYPRCURSOR_SIZE", "24")
hl.env("XCURSOR_SIZE", "24")
+18
View File
@@ -0,0 +1,18 @@
-- Auto-generated by DMS — do not edit manually
hl.config({
general = {
gaps_in = 4,
gaps_out = 4,
border_size = 1,
resize_on_border = false,
},
decoration = {
rounding = 12,
},
})
hl.layer_rule({
match = { namespace = "^dms:bar$" },
xray = true,
})
+10
View File
@@ -0,0 +1,10 @@
-- Auto-generated by DMS — do not edit manually
hl.monitor({ output = "", mode = "preferred", position = "0x0", scale = 1 })
{{ if eq .system "desktop" }}
hl.monitor({ output = "HDMI-A-2", mode = "1920x1080@60.000", position = "6400x1080", scale = 1, vrr = 0 })
hl.monitor({ output = "DP-2", mode = "3840x2160@120.000", position = "2560x0", scale = 1, vrr = 0 })
hl.monitor({ output = "HDMI-A-1", mode = "2560x1440@119.998", position = "0x0", scale = 1, vrr = 0 })
{{ else if eq .system "laptop" }}
hl.monitor({ output = "eDP-1", mode = "preferred", position = "0x0", scale = 1 })
{{ end }}
+8
View File
@@ -0,0 +1,8 @@
-- DMS Window Rules — managed by DankMaterialShell
-- Do not edit manually; changes may be overwritten
-- DMS-RULE: id=wr_1785350111586245435, name=feishin
hl.window_rule({ match = { class = "^feishin$" }, workspace = "2" })
-- DMS-RULE: id=wr_1785350520619777540, name=vesktop
hl.window_rule({ match = { class = "^vesktop$" }, workspace = "6" })
+112
View File
@@ -0,0 +1,112 @@
-- Hyprland configuration (Lua) — https://wiki.hypr.land/Configuring/Start/
hl.config({ autogenerated = false })
hl.on("hyprland.start", function()
-- DMS_STARTUP_BEGIN
hl.exec_cmd("dbus-update-activation-environment --systemd --all")
hl.exec_cmd("systemctl --user start hyprland-session.target")
-- DMS_STARTUP_END
-- Auto Start Applications
{{ if or (eq .system "desktop") (eq .system "laptop") }}
hl.exec_cmd("dcal run -d --hidden")
hl.exec_cmd("kdeconnectd")
{{ end }}
{{ if eq .system "desktop" }}
hl.exec_cmd("feishin")
hl.exec_cmd("vesktop")
{{ end }}
end)
hl.config({
input = {
kb_layout = "us",
numlock_by_default = true,
follow_mouse = 1,
repeat_delay = 300,
touchpad = {
tap_to_click = true,
natural_scroll = true,
{{ if eq .system "laptop" }}
disable_while_typing = true,
{{ end }}
},
},
general = {
gaps_in = 4,
gaps_out = 4,
border_size = 1,
layout = "dwindle",
},
decoration = {
rounding = 12,
active_opacity = 1.0,
inactive_opacity = 0.97,
dim_inactive = true,
dim_strength = 0.1,
shadow = {
enabled = true,
range = 30,
render_power = 5,
offset = "0 5",
color = "rgba(00000070)",
},
blur = {
enabled = true,
size = 8,
},
},
dwindle = {
preserve_split = true,
},
master = {
mfact = 0.5,
},
})
hl.animation({ leaf = "windowsIn", enabled = true, speed = 3, bezier = "default" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 3, bezier = "default" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 5, bezier = "default" })
hl.animation({ leaf = "windowsMove", enabled = true, speed = 4, bezier = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 3, bezier = "default" })
hl.layer_rule({ match = { namespace = "^(quickshell)$" }, no_anim = true })
hl.layer_rule({ match = { namespace = "^dms:.*" }, no_anim = true })
-- Workspaces rules
{{ if eq .system "desktop" }}
hl.workspace_rule({ workspace = "1", monitor = "HDMI-A-1" })
hl.workspace_rule({ workspace = "2", monitor = "HDMI-A-1" })
hl.workspace_rule({ workspace = "3", monitor = "DP-2" })
hl.workspace_rule({ workspace = "4", monitor = "DP-2" })
hl.workspace_rule({ workspace = "5", monitor = "DP-2" })
hl.workspace_rule({ workspace = "6", monitor = "HDMI-A-2" })
hl.workspace_rule({ workspace = "7", monitor = "HDMI-A-2" })
{{ else if eq .system "laptop" }}
hl.workspace_rule({ workspace = "1", monitor = "eDP-1" })
hl.workspace_rule({ workspace = "2", monitor = "eDP-1" })
hl.workspace_rule({ workspace = "3", monitor = "eDP-1" })
hl.workspace_rule({ workspace = "4", monitor = "eDP-1" })
hl.workspace_rule({ workspace = "5", monitor = "eDP-1" })
{{ end }}
-- Env vars
hl.env("XDG_MENU_PREFIX", "plasma-")
hl.env("QT_QPA_PLATFORM", "wayland")
hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
hl.env("TERMINAL", "ghostty")
hl.env("EDITOR", "nvim")
hl.env("VISUAL", "nvim")
-- Dank Material Shell
require("dms.colors")
require("dms.outputs")
require("dms.layout")
require("dms.cursor")
require("dms.binds")
require("dms.binds-user")
require("dms.windowrules")
@@ -0,0 +1,39 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IHptWXI5WGhN
b1BERExMeFNmN3lZaitINmFwWFNmYXB6SGJtOE1xODF2L3pTdWZFYThSYU9DVXA0
SU9mNkJvQnBhc01XRkcyZThVTDRvY3ZOWHBhN3RmK1orZSs4aXBBK0dtQWo0Z0tk
U0pPeWxSc05sN2ZydnpCOUVsZGJjZjI3SHNSTldlSnJuNzFjckdlU2w5ZHcyaksx
U2NkcWtQQzRvVm4xeFcrU0c2Y083NGt1VDgxMlk0YjhiZ3ZPZTc5d2FEbDlqOGY2
UXV3RmhlaTZ5RHdHRXo5Q2xwRHVYdE1PYVZSeGRsOFNnaFRGQ0tDOUE2STg0cTJR
aVR1eFRsOFNzc2E4TGIwVDV0R3pEdDNqcUU0T1ZsM2U2N2dTRnJzZ2xnQ0lGS0d3
Q1pFUzExYlY4Y1Z3QmRkTE15aTIwcENaRzFSSjNFKy9xU2ZqTFhudE9xRWJHTllC
aHVJS0k1U1NpdzZ0UTd6bkU0SE1GN0QvdjZPWFZDMFNyRlJjamhpYTI4dlpmL1px
Z252WDd5SVM0RXh2WVBZQnk1REwyVDUwcE9kR3czOVpwTERLc2doZHphU1NuYzdW
TmdqK2hOUFpaVFQ4ZkpicGRiVWs1aVBkdzlWOEV5WnlJS0c1L1NWZTlTYkdWVWlz
SHZlRmFHL0FsdVRoNmNBdE1KWGk2VFFYOTUzVEVVZDBUYmYxek95aXRIVWJWc2tj
dlNHcEg0SWM5Q1RUNVU4eDlkRXAva3ZtcnZDbUxHVzFZUC9yeXEwVStuZVdSRWNW
aW8vaXhjWk1wZkdjbkEyS2JxL0xIOGNUbXJIWXE2UFV0c0dyYkZnUmJwVGtrcVdF
Q1hQaExvRC9NQlp3WlRHQ0Rwb0dJRUtQK3o3Sk5PTnBLUFFUa0Q1UExQVXZYWjBC
Mk1ldjN3MC81RDBTRXlXVkt2bVhtNzJMZ2VJdXF6WXlNOVBmdExScGxrQlpTM2tp
S0ZRRm84dWlmNS9SY25LOGpkekM0VnZlUXNGbXNrWjFuNDVxSE5yVER0M3N3NVE0
QTZGZUYycndMVnpnUjlPbFJIR0dCNmxnd1QwTm1oOEhTNFJmWjZTMjFFYzRYK3Ev
SWdNOTgyZDdxblVrT2dQZHM5UGlsTFg0a0JtdTVNZEh2eGxoOG54aktzcHdtZDZI
YkFLcERvU29mbGlORGc5VC9lYkp6Rk9ST2VjbU0zU2ZEWHN2Q1VFb0lxalIyWFY1
YjV0MS90S3BXbjdhOGMxemJUbnVxdkh2ZHpBRDUwTkc1N01MeW1wQzJaVkY5djFF
WWhOK0hMRFNPZjEwb0dKSnhSYjczcjBPUEwzbnZRdDYzblB4d0RISXlJSnU5RWky
VVZaRUlndDRieFJqdzFsQ21KSW52dnlqTHF0aEJpOWFNbFJWNU93SnFxTzRvTEMx
OVBaNW1jMkl6eFNxYmdUWm83djd3ZENNaXYrbjlBVWdaNDBIM1NCdnZHT29xME1U
VUhMZDRlS2I4T0NkVmVzcFcxdHBwamE0Q0pQQk1KTHd3Y1VkMGx0VmNmUzRnT24w
cmNWMHovcHhEWFhQM0lBYVViaDA4bHREN05jczRBR29pczN6R3htaVA4MlhLUmNY
V0FXWDdKNG0yVXVwV3c5Rkoxb0xaUE1yS1VRb1BBcDRDQ1psSFdNbzlramk4Mk5i
UlBhWVJiREliTkpEc0VlaDlBc2JoWU5lb1orNkZyQmg2eGUwYVErZzJrdkhyYVdU
dmRzbHZRU1VzKzYwNHl3T0t2cm4vMnQ5dHYyUUoveFNyd1ZQL0RKaW1ZSGEwRDNp
aWNobGNESUZ1Vk05UW9xODIxNG9KYUJ3QlhQNWxQK21qcVNJeGd5c1loNElMMUkz
U1g4eU5hNVJZVDMrZDk0dmN0UTZBSUJOSnFqeGljZnczdG05NXhuL09PdGRocWlj
eGxVeHplaStxd01iR3cwQzEwa2ZvajlWdkhVclhpdTRmN3draHM5Z0RLVFNJQQpl
VHZJSkNFa3lPa2N5Kzd0MU1LdnljOHJHY1dJWDRtUUZkcjVGNWdaU1NNCi0tLSAz
cVpWTS9wSERVMlFkYkNKOVEvMW1WZjEydFpiWWNPWVhmQTllckNTM3E0Cnvo7Ni7
LiaDSr/LkiLgF6putH34pXBTg00ChPjomKzdskVr+vEs/iU/DTw3a7mQp4fJXJ2T
LKVlDJEdAefSpu3MMNctlPgqfAV3szvvBcPUTRHKgZQe0CrOM5RDiAIFmMCYx+gO
uKMBYBMW
-----END AGE ENCRYPTED FILE-----
@@ -0,0 +1,38 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IE5QYjJRSUhY
dGxPZ0xkZzdwbk1TMjBJdll6UFFibGNIcWt5dWZjN1g5eVBEVy94WlNKMWRnVXFJ
SUI5NVRkRXNTa1JGcjBnZTVsNkk4R3JBVkNvQ0RMQkhweklra2pXTm9RdGlmazlS
U0VhQ0l4QjBSd1lFaVdxc1IzdXdDQ08wVTEyS3JJd3lzU1dHMGZPYVErd0Fqcmxm
TEJ0WnR5UGtTVE9rZDc2TFp3aU5Ja2VkY2dEWlRtTzhlZ1V6TElObkZYOGlrUTJ3
YXZnZUtTbk1SYlVJa2ZUb0lPTVhFNkhFMS9tL3VrVnlmTU9MZ3d5RUZRTENiRTBp
bEs5VnFDQUlwVWJNRzBsYzNmNEIxR2svV3R0dzR2N0lGd2JBdUc0Mk54aFVjRGE4
NXY2ZUNON3JrbmR2U3JmOCs4Um5GT0xnemVuZWJxZGczV3ozaU1RVTg2ZFRheXBQ
V2U2SVMyMFJqNEZNWk9sNElaWVlQbitmVVk4c012aWhTR0dCUlM3Qk5wL0FlMGtZ
QTdORHQ3VWYwYUxUT2dtNmtvUVJhanFVU3ZMUmNVRCtteHEzekp4cDFnNWR4Z0Fn
d09KU2dHZ1BYRU1UbWYxVFZKWU54QjFVRVpIZVJCZW1TK09pQWtVWmRma1NKNTl2
OHlWekZySVhwQThORDQ0R09KSVpmV3prbEhHbkJLSzBwVkhJaGxsVDBPcEtyQmR2
VFl2YjJ0aFdOR2o5OWhiSFY4eDZUQVlCZjl4Nys3QVQ2a3RyWHNFend6clBtVStI
S0ZZT0FWd09ZR0J3QU9lRDJEUUZMTVBvS2VvdkoyZlNLM3M3a2FaQUNhUzl0NWtR
ZVJPVTlkWk9RSUdYYkpJaHdibEc0aDMvbUlabmJRZ2thUENjeFl6bXZuNHV0Vk1G
OFVSNEpES29OejhybDFHUlBHcWwrTzR2ZFUrd2IyVTJjU010d3JHSFBmV1RSY0Uz
VkhHZytma0pRaGZCcFVsVnIzMUNvZUhEaWlQblpWZlFkR0dyOTZOVm5IdnR0S2N2
YVFGVksveE0rL0lROVNHaTlrS1VZdlZmWk9PcDlkRml4QVNDalFESlJuNW5qUndr
QnZkVjlWRldndERKU2VyNU1Ea3ZKK3lzSVlTK05JanBuTUVZOHpaRThqWjRQTlRy
aFdPYmpoY05ab3ltM3lMcFZJV3J5bWNDMTZSa0szUjFyZHJobjBDdnB5a2QrT3dQ
Y0VNU3gveW03b3NsQ2ErcUpjTmtsU2hLZWdMSUVlK09iYlRhcW5NV2xTRUk4bHNO
R3NUdDZXVG41RXcvUXd3UjM4K1JDYjhLR3BmbEJKZ0VkdjNmRm5CQkxNaUxkZ1RU
ZktneFdkVjNaR094QW84blJUT2MzQkhZM3ArOVlCU3Qzaktpem1FSnhJQVhXQXhv
eUozb0UwRHFDeG9GMUJ0SGFjRm1LOFRhTkt3RlRQaWVmWlJ1ZzdCeThtM2dzNDdN
c0w4c1B1Y2RLWm8vQS8zNE5NWkNUN1ZJVmt0a0gwdnRPaGZkeHFGVEwrUzZEWGd5
S0FwUmtuQjVQMkJpY3RCejJIRDJhRS9zbStXWUR0Tk9MYUcvdHVIcjQ0TG16ZnZR
WmxIT3h2UFFmTjhiVVJubno5a3pFQWJjZURDM0NDSGhXd1Vlejc4Wk5PZ20xQ0Vl
ZUw5VWQ0eUdIRmRIN2lKbFEydGk2cFpuU2JrWkMwTlhxTXNueDdDYk9hYlZ0R241
YURpanh6OWhXN0I4OExJdndWcDFXVS9KbkhwQzJUUUZEVzlOWXMyQWI0R085R2ho
ZFlzTThjdm5HK0xsaWY3TFY3QkhrUWROWUpjdVBkaGZiMDUxVWRtU2Nkbi9MYldH
cWlOR28zWTdFWDc2OHNwYTdvZ2JCbjkxMHhScWJXVWZnSGhha0RpNTJWQkk3Rmds
M1k2T3IrNE1lRUFvWUwwM2dFOENRRVoreVVOMU1aRmhFcHBRa1h5V2NYQldmdwpC
d2xuK1ZNVVd3TGlvdWV1TFBGcXJ2YkRvLytTd2gwbW11V3dscUZvMVdRCi0tLSBt
VWlEUXVJRVplWk95NnJ6aWk0M21PZEZJNmlFaElyZ1RIbGg2b2N4bEdnCr/X/gOx
E+iWN1KBHhQCDa/UjtfrQB+ELIxT+mY3ONPBTofrV4asXxNnEm5fSP0BCu1y3k2e
ujDsa/ulg0shpkFA7oaj
-----END AGE ENCRYPTED FILE-----
@@ -0,0 +1,50 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IDhIZXlPbTE4
U0VFdER5R0kyMElvS2ZlSkk1YzQxSFhjb1VyTHMrRVdHNmRXRFJEbkNManlmeWt3
RWNGV2wxdldKMU1NOXZtS0hjTU5NR1Z1c2lJZ1FVQ0JHUmZFaE1SSWtOTkQ3enBF
bzNVTC9acWo1akRrWDBWYmZUcUlMTmZVNVJONE85Q0o3TjZaY3RLeDAyTytjVG1J
bmhaRWtpeWJLODY2aWRyY0tKb1BhT1BabXlOZGN6RVgzZ29raWdJOGRRRXlKMndt
U1F6cmxla2pQVkNqYW4xOGtsK0lQa2V2UVNtbEpFNWEzQThzM3pUWWFMRGRwa1ZZ
blBWMFkxM1EyRkphZ2k4VnFzV3dLTitLcFVnUXRjUWJPZ1Z6eG05aHZDeDk0bmRC
RTRub3VEUUVVOEJ3QkxYc0tVZTBZRDNrTEhPUnpFcmkyeUd3UGhHUDVJV1hVbjdt
a0pFZmJjWDNtdzY5MVF2bXdWdlhKNlRYVU5CVzlNMHJMdGdXMHhlRXB3KzFYNkFy
aVFLdCtMd0NyM2lBWlpSZk5KV0RzUkxqWm01UnA3SXovOVJzS2lCR3o0TUFEWTh3
aXF2L0V3bThNV2cwaGRVdDZHTmtzUzBiZFlZQklXV3ZzMHcvUWw5Tm4vSzcvWnMw
NzAyRlZ2d3g0b2VOazZ4NEdPK1E5ZC9MN0tDcUhJdTVSZ2ZXd1FNYnovSFJnTnps
Ty9rWStkQXRRT2x3ZlZyVHpqa2M0SWdEaXQrUTBlVzdWemgvdjliU21XNVB5VU1w
Vmlid0pFY3Q1emFVUWZxeVVJVi85dEpRWlFqWUZ2NWxoaUw4RXNacVpWUDhiZ0NJ
S1Y2M2ZqNkNuLzY2aytxWjU5WW0weE9IZ2NpZUxJbFl6dE5MYTQ5UWtLbHVBeFpz
OEtLMGVZZGNCeUdpZ1ZqaDBvNmZDUWx1dzhpUUhtVHlVUFZWb0lDSHVTb295UzFG
WDJXNlZZckRMYWw3cDR6L3AwN1BGS0l2allIcmhwTkNMYTh2T0FPUis1Z3VsYXdr
VmwwVHpZWWRzNW9hSHQzeWJ5Mm5namRLanhJS0NqbXBHeU1ZREpYVXZVRGJZU1JP
ZURVVHF5UXR1eklqd1VRcHRyTGRQWXFxOXg4d3FoRkZGRHUyQ3RpQitESVZnN2ww
U243aFI5ZUYwamo0MzYwd1VyU1ZHVEszTGowN0o4Q2p4MEl0b0hXWEE5MjZHUnhK
NFpVbU93anJibmFDQlh2NFFQODFzbkNJVlpyT0xJSklDYnYxZzQ3dkI3N0Yzbmtj
dEc3dlBhaU5qV1QwSzBWbVd0YzdCaE9UcnE0d0htTFhvSHFvSCtOZGpBbVpxaUQx
K1kxV3Q5UUFvaDdocWxFdFVsTmJ4RXJqblhHVmFjNS9ja2JDRXpuUjdoS0hLSlhP
UWk1MUZFY2VqeDRLVW5CZUZYclFCaVFZRC9pdEhZOEF2eGpoVHpyVUk4VENpQXJv
M1ZpTHhMd3AzRm9aQzg1dEpDNFZIbldpd2llTGZqUStkVU1PZ0JVVzYyVXFkNlhN
aGU2NWVUQks3S0k3RDJ0M3Y2VitieHBuT05pbFZDdkNCbE50Y0FDYiszbXNRbzRV
Wm94Wm5LYzR1Y0hhMWp0ckgwZG9CamtKdWt2UmsreU9RMFFXcmhPTDg1ZFUvb3Zl
cWJ4S3g4WFZBMnE5SmtMR1BBWGM2U3BTa090RnJuOTlhb1dIUTAzVVZQMHE1Y0k3
UzJsMTVCTzZuMXVlWHBuaEorOXBDb3NJZWZzcmNZV2VlK0VHSG9kTWtyT2o4Slc0
NitRd3pGUkRvOXVKdVJ3eE4vM3FtWlMvdEl5dU9qbkxYeTlEeVZod2k1QlY3Y0tN
cnBOa3NZZGs5cS8zVXZhbXZDc0ppYkxlRkNxaTRFN1NiQTRhK0Z1Kzh2RDRndFBK
UUwva3ZrVTdVTFBrZEd3REdwUXBqZHVyU0h3WVIzeTMvWmUxUHY0djQ1SGxkUQo3
WUhyS1pxenIwYnhNeHA4Wm8vcFVKZklQMmNqNGZSOE5QckliMkpiaEpZCi0tLSBS
Zy9tN2NRbWE5M0VDRXUxY0lHMHplT3BPb3hWUDdwT0cvY09sNTN2b1M4CrWDuL+H
AOvMkQFfO7qwb7X7yflE8qmyQB/SebWhcVAhiAFG8GCvuxOD6sCohXyOxaw9vIX4
5/nzWlQDWzTUpmLmJZXFYmqFObisTrKI74/bAZwxuTb4Tlysv7d/Piu2cTwPgONX
zSlFXSi5UtpTeZ3xj7Tkl9KCL02ZQCWcXFwbiBZg8phFne/ypywKPwlVYnui+hpc
aLz/qm+wf/Ykz7x1SDN7AvQNYwHd264e3iRmAIUULYFtfiMMr39rvl2cATaM5jU5
M2UZ0jKI/vwr2obHpXpMRJibihYaZb7N0G3h2ydpP+djdN7guNoisbinegYhIDEe
+bG+QWCxiTgnjZQNtj2derQ53BckUNCxnNp/ElzhAYKCS+G1CyL8L7OGrLvOAnDx
Y8C8df/Gzp99O2TlXocTCw8Haytxu6c/K/nizakI7xYYeCWvBBKRSdN4bR3JDpi2
vWUPwOZicwJo1olNw+wXm5jdyXlYkuWdwNVsNKq2XgQKCBAtoTYUruYJqEAgQx3f
lfQx1kRWQlQ9gJSN9sAoteeDial6WaZtMM7N2Uc1EuxGFvV0ozhy9DvX0f+X9fgr
Uh50oULVnP1UKxe39ASbqzGjhOE/g+DvDptXu2VigDeKflz6ckQ2iyxDel0Wu+B5
S/KBXPWN2NNJxEIT8wBdulRG4R+BxMLOIxxdAs8pFd/OIxgyEjVDFTbW/hPln840
wqjm5Bof1+vQ8Lh9FfU+Fj3aZH2W3+WDfFK2lTVbuFx5mPXwImhDrbnrb+KEHr0A
Gz29Qwf9sKPla4bsH43yfz2wTSUSOLCetprfJx4Vn8GRb7l31iagpmqk98jFp9Wg
1CWEeqhkqw9EnB72I7Og36Kj7OkjB58mIwg=
-----END AGE ENCRYPTED FILE-----
@@ -0,0 +1,42 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IHlRYmdVZnBQ
N21PODZaYkprcERVYjFBWGlKR1FLbHZ2ZWZuSHVmUndzckZ5eVJxd2twVXh0SjE2
WmdyZmxRaVJMM3RxWVd1b0Y1dFhCU21tNTNmSE9IZ0dLMDZCd09WOFRKeGU5dHl4
THVUR0xnNGRUekdSTHVha0ZVZGt0WVhwN2xHUiswWlVyc0tEaU1qM3V1Q2F0NGJa
TW5KNkx3NmZacWZQVkE2UEN1Y1FGVUlXTkhEWFBKd0ZJWVMvYlVaQmRueG5sOUo0
ZWdpcWdPVzVYdWU4SkR3RE9xNW1SY05yV1d0TzBtazdqQ1RRYXo1R0VYc1BDVngy
RVIrVkRxYWdOTXVka3gzYytsaHRlT0IwSm1jRGNpb09FaGUxSVB6NG1SK09icC9X
T3ZVRlVncXlzR29XbkJ6Lzcydm5UclhtcHJ6SVVxL0pjSWZVbHN3VVRHRHNlZmor
RUdTZzRhMUdOZUFvWUp0YThld3R3d0w2ajNqWTNNek4xR0NDb3E5aTYxV1VqSGIx
S0o4OFJwS1h3SFBXMUU0dU45dlYxaWhlY1Vac3Ntblo2Z3EzVkVMNThpSE1YWUg4
VldsbDF2djhUeXRlWkRTdDV6dGhQZ1hWL3QvZXd4ZVhqeGFkdGlGRUZWS2Y4OGlF
dm94dC96cG04MmhxU3UrTTRybHVtQlFOK01HK3p2Mzg5bzc4V0d5UjhIRTluRnZB
WmZtajhGb1laMVVSV2dZWWM5NFhza1ArL25oTkNKU2wzclVtYjZYQnpraWl3QjFE
aDZMMUw2R2ZMd1FOb1RtVDFGUXRZU2o4MzE5V1JlekdLQkF1T3pDcG1YeENpSGQv
NFVtTGc4OGxYOXJMakVHN2U2aGtkZ3A2WTRIckdZNWdadHMyNWkrMHoyN0dTY2Jk
cjQyWWVPQzhDdVNSdTBPbWw1b3gzRFNYRkpGS01CNDczVGN6emxXTkREOWNJUkNX
UjIvNEZIOU12SElZUi9FKytyNVp6QnBkdUtxYkJlbmZHWXQzdjFJYXl6alpjMTdE
eHRzVDgzaEFXQmMyQmpYRlBDRG1kU1RRUGgxaXZybytMN0NCRFgvaEZ1bVRnZ0lY
cUNXdWRJSk90TmovbnBIN3F1UVFXbkRLbmRycnRwaDBlamFqOHZkZjBWbEsvMUI5
Y3ZQU2RvSWczeHJSWHNvZ1BVekcyR2VXWHdhMzZNMnE3cmhrcitvUVVJWElUQkQy
d3BibFpudUx5dnVXb2NvL2VoWHkrMkVFSzNlRVovL29tSkZJdDdxYkwwVkJaallL
cmtjb3FyRXBHaXBrTXhMQkRVNjJrdGlXVXhGUU9ZT3dLcE8xajZBcmRkWWFRVlE5
b2Fwc3FyUzI5WGUxSFZTK3pxRU4wdlNZOTUyc0NUd3l6WThQcEgxLzFodHpyY2pt
a1FDOUZUSnNUUk4xS2taV2E0dnhZOFB1OCtsc2lUVkFSUkRoNStUaExtTkRtZDdi
SkZJMWpQMWxJNEI1Mzh0SkNHVVVha0h3SGtDOXMyRFp1ZVM2cGUxb1YwVE5vMXo0
VERZc0c4d09KakVHT3d3MytOeDBzdjdacU5ONVlVcVNjMk1ma1pkMjk4K2JoZk44
OW1WcjlJUUoxWDNKNnBONTVBTXhOVlNFeTRHdXk2T3c2KzNmVk4xRjdDZnZNSlhE
Q0lWRUF2VUtNajVlcUFBcjdtMUIxWVNiUVRiZlZBRlFYQlFpMlFNaGdqM3QvWEE5
dGhad3ZQeE5lbGdRdTBvZlBOWlBkOEUxOGVWTi9ZRXBvZEd2WURMdjUvZVFGbEVo
UVZwNVhpakx5dldCTTNhbmMvQXExWFBYRHRUTmFMdVpzam9NV01UaytpRmRCTlU5
ZDkybVVQc3BJc1BCLysrUU9oZHVFdDR5WlNDcXNjeXEvbmpyZi9oYlh5UmhNUHVF
R0p2WkR4R1BzcVgzdEoveFdrd1Z4RFpKNjZuK2ljMk93UXlsOVdtcTlwTTNQUQpV
UURXQ2ZrdU8xZWYvbGlSbzlobW91dlViODFzclNrazZvZXM1VjQrdE84Ci0tLSBx
SGl0VWR0U3RoNEwrT2lydER6YTlTcER1UmdWZkJaVDEvdGN4eTI3TEhRCu1sT4Ef
bjR8bCkI2VnB2YrNuks3AlcTiub3mqQMCOTVa9C1ECqH4n882NaJNJpnjRwCcTau
1UPnR7Zk5NMUXmONLgFwjyoll6PDZMVNmejQtF48D99WArAlZy+v2i+1Yt97AkNP
VERMq0Ng0dflnDv8qHbT0UBupdu4P83vRiHDegPk2dDr8MYA9EDY+tZ6QSlcKkcs
xhh6dOxQz6ijsK41oBtUspSGLS0ADd1IGxavhnkWQ7Kv9x5EgjZdvGNPKYZk6Sym
0pTy0RfNVUOL4rsYUcE+bXzqqoQB6TD9c3fb5sftTAD48KIKOlO7NvVFHgq0hwRX
KiBrTzVifuNXk2k8kCc=
-----END AGE ENCRYPTED FILE-----
@@ -0,0 +1,52 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IG1sa2VtNzY4eDI1NTE5IFAxL29veG9z
ZGt0VXVCNHAwdzR0T3ZWN1k5U0Q4QjAzbjNacG1UZGlISDlJSnMvMG8ra0E0Nnh0
d1BaWWYxVGRxQ0JzRGFhNjV1Mkhac2VyYUoyTzI5OGttL0tHVHowUVpaM3dVS2VU
UUZ0dW1GOFBHblBuMlFPbmVkMVRnbjV4WUt2RVpTTVBRWUh6TS9YdGFVR0FuNHlP
OU4rYlN0OS9XQWYvWlIrTGdwNXNmcitlVWRDamxhdHdMdTdjVUVReXhwSnVYSmZV
ekkyN25CNXNXWXcwV2k1NlFFS255M0RiVVFwelhseHhMSEhXZW1UT3o1N2phbUFZ
bmsvbnBydzlJNE04ZU9WRjR0eVFoZlc4RGlmbm53aGE2c2NhelVIZndXdjhIOHdt
Ny9SVHREdmxkb0hBaEk1dm9FUHp5U0ZvZHBCL2M0dTcxcVlVVnFHR0pIaWJodU15
NVB3aVJQTzRCWVp1dVlKaXpPd3U3WTFlMC9rL2poTzJYR2tEUlNRWUp5N3RZVFR5
M1dVUnhzZnlEYnpBR0pWVTNucjNtRFIvZnc1QUVoV2JudGU0OUJYZU5vUzllYXhs
YUxZRnQ4ekxxY3gwWXRIL01JRjRDUXBBNUJQTHZLTWpTaCtqclhlNFcvSmoydmJy
S3dDbVVjVnUyeE9jbGxCa3FlaldWbXFEZStLQzc2aXBkWFpYRDNtLytRS1FZQ2lu
cEdGYnAzNElPOXkra2s5d2l4R2h5S2V6UDBvT1lSeDFvSVRwYnZzbHZTRGdDTzFo
RUd3dHZNZGpDRWZyN1RHOGdXRll5czFjMy9ETmg4Z2dkbzZqbnFBRU1CYk1kRE5P
SmIzSVc2OHRWbUFRMm1KM2VnTkNxRHozQkI0ZDJwSU01ZUxOWUNTK1RkaEs4eTZV
eU50VjEwdTczMWt0Ukt0N2U4Yk1ScUE0eFB2YXltcEdDV0tNZ09mWE04Z1Q2cXZm
Wm5vWEg4UXY5ZFl0QzdlVUlLZElEdWw1NUt5ZDJWeVJTdjBaRjU1Uk9oZU4vczJm
aXhZc2ZkdHUrVTBjNzBMRGM4b0VVWWlkbHd2Qm5RbjN0dENHZkZXVEhNRSs5Q05F
U1AycTdtREZqNU5MUWM3MkhVQ2NJem5QV0xiMVNnMHorUnNYSTk1dDhJZ0VpZ3p0
dndRR3ZFOVkzNDlGZjBiS3BBVnB5QTJOMHNreUhFTkdtamhtMm9VZ1dHSlpBRkk3
VTdxMzZaa1FTQmNBNU1XWUVzYzVVODJqWHhIbUNoY3JXS3JEYk1peUhscS9PZGtv
Q1o0WVVVcWxaY2JZbldJTUUxbmFwQ0VOUURmQ3E4WkMvd2wyT09XQXJRRmh1MFNF
WUU5Qms2dUVpYU1RaW5nZkpXQytveG90RkxJdWJuaDloTUJCLzk0QTk5MEZCNjRZ
VmhMM2t1SWVrcktDMGhkbFdXOFJuZFlvKys0SnlnUWo1a3l0QkRsaFBZSFRjMkJD
U1dWZFRwMGJTVFhsMWtSZHNiMmo4UUhGbmFLb2tPVTZHT3dJaUJLU0U1NVVjMlFq
YXVweEZadzJFbzc3NytBdkR0cC82MzhmeVRKTThLVmRMMzVReDlaWHZCa3pFNkFU
bzFTdC96M29TQ3BEcDMxTGw1bmtsL005WXcvSVNEakpEeDJpemRJQ0ZPRmFFeStP
dlN4NnEyMFF0Y2dVOSttTi9LT0t1cytQT1hJWVM5MmN4V2x6VTFNUmw3RDFaWmo0
aEFVOHZObWlzbFRGcmhkNjhFTVNmRG5NLzY1cloyNU1GTmVwM1pjTERzQm1hMXR2
YXJqKzBUMVhnS2hDL2hjNGIxYXl6TUloUWpxYW12MHJyZXRRQXRTWSt4ZEtOL1ZC
ZDlid1RaNmRjUFEvaEdjL281T282KzlkNnp6YURkckM3bUNaMWlRWHVoTHdUNCt6
TlVZdDF2MjFRVHQvZk5FZ1ltMi8yNDZvVU1xaVJNUkVQN0dKdkM0QWpQV1VVdwp3
YmMzSzlQUFN1K3lRK3Vjc095VUV6VW9yMFBuKzZSUmh3VXpKdGhIdC9rCi0tLSBs
ZlJyUW82d09qNDBTWm00M21pMHM4QVRMdFN5cndEQ2JqS01RZDFseDJjCpIPPagR
MtWSIJ0DFxifFmoSjXNOzQcnfh80MAHj0dEtkgtZVO13SFlPccWOxQE9NwnAYFH5
ilYd6Gqh1mdhiBrNOOIUXz5ml/X9N+NIecQnwMZrxvwxPJ0WVkwhnulPCp5P878p
gcgjD6zVuoNHvCf0GQocFWZor86iBn8yLe/tkudH/xiDU8ba3TImv+scFgnimUZQ
SL4zookGcQDUuSxXUiHApIMmX11i9AhHPosIToGbzIBKh9kAIla0kURJaurybn6T
hTrnGft3mylD8x3e9TX9ZAY7GpH3EglzYZKtFg7/GKuHZybxtTxzJms92UExT2uF
ZZG/l82ESLvErzP+yockX9GHYlSeprwA8LJDsJDoBN0JQY2sIkbkhnHC7AOBeDhU
zcIiubSzetI29iv5HHVYaxoTrHBzOOQSAUKAR39XSdsrvkWJIb2VHV70gFByfGFh
VcltAjnC+iV9C3tIW3ZX7brcKJ9z8cT3olAMtKhcc+qwajpZmJlOx/3+wy9+/EG7
ppCpCiX4cfdZsk1Ti/Ox5uTYIf3YfXge4X3L1whu/cX9F64xTiOHNLii3ALWDu9p
EWNVTo+XjRUJ40tH6uQ3cO8OxVeIK9XhShy3LURTUrDhWHwFZ6FrQH/jliyExxUU
6tuPq1Di/PMBFtDqU1FMppgPG34RhKVGO9/D7/VK99u8xSWdff5iM0loE3OW2xvH
KGsZxHKmyW5AI+0HJvxGUm/O+QUomCi0RvttssvEsZx038mJamVSplosBJF+blg0
3Dv4B6h4EKNPxS6ck/KLk1IY9NdEoh//nG16/vg/vnjuxE7p7vDEZMD/98iQU3zw
axw+XffVo01IkqZ88ynCX61AxanLtLhz2HfvtdZtVAKvREkZS+AhuzaVasjjPkWb
OHPfF0IBSQQ8es3qwJvescC0WVLTK+iRGuPO738k80Q+M6PixkdqI2d5anKF9xJY
EpNkpQ==
-----END AGE ENCRYPTED FILE-----
+6
View File
@@ -0,0 +1,6 @@
[config]
version_check = false
[templates.feishin_dms]
input_path = '~/.config/matugen/templates/feishin/dms-theme.json'
output_path = '~/.config/feishin/Themes/dms-theme.json'
@@ -0,0 +1,19 @@
{
"mode": "dark",
"extends": "defaultDark",
"colors": {
"background": "{{colors.background.default.hex}}",
"background-alternate": "{{colors.surface_container_low.default.hex}}",
"surface": "{{colors.surface_container.default.hex}}",
"surface-foreground": "{{colors.on_surface.default.hex}}",
"foreground": "{{colors.on_background.default.hex}}",
"foreground-muted": "{{colors.on_surface_variant.default.hex}}",
"primary": "{{colors.primary.default.hex}}",
"black": "{{colors.background.default.hex}}",
"white": "{{colors.surface.default.hex}}",
"state-error": "{{colors.error.default.hex}}",
"state-info": "{{colors.tertiary.default.hex}}",
"state-warning": "{{colors.secondary.default.hex}}",
"state-success": "#4caf50"
}
}
+34
View File
@@ -0,0 +1,34 @@
# AstroNvim Template
**NOTE:** This is for AstroNvim v6+
A template for getting started with [AstroNvim](https://github.com/AstroNvim/AstroNvim)
## 🛠️ Installation
#### Make a backup of your current nvim and shared folder
```shell
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
mv ~/.local/state/nvim ~/.local/state/nvim.bak
mv ~/.cache/nvim ~/.cache/nvim.bak
```
#### Create a new user repository from this template
Press the "Use this template" button above to create a new repository to store your user configuration.
You can also just clone this repository directly if you do not want to track your user configuration in GitHub.
#### Clone the repository
```shell
git clone https://github.com/<your_user>/<your_repository> ~/.config/nvim
```
#### Start Neovim
```shell
nvim
```
+27
View File
@@ -0,0 +1,27 @@
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
-- stylua: ignore
local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
if vim.v.shell_error ~= 0 then
-- stylua: ignore
vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
vim.fn.getchar()
vim.cmd.quit()
end
end
vim.opt.rtp:prepend(lazypath)
-- validate that lazy is available
if not pcall(require, "lazy") then
-- stylua: ignore
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
vim.fn.getchar()
vim.cmd.quit()
end
require "lazy_setup"
require "polish"
+16
View File
@@ -0,0 +1,16 @@
-- if true then return {} end
-- AstroCommunity: import any community modules here
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
-- This guarantees that the specs are processed before any user plugins.
---@type LazySpec
return {
"AstroNvim/astrocommunity",
{ import = "astrocommunity.pack.lua" },
{ import = "astrocommunity.media.vim-wakatime" },
{ import = "astrocommunity.search.grug-far-nvim" },
{ import = "astrocommunity.lsp.nvim-java" },
{ import = "astrocommunity.pack.vue" },
{ import = "astrocommunity.git.diffview-nvim" },
}
+32
View File
@@ -0,0 +1,32 @@
require("lazy").setup({
{
"AstroNvim/AstroNvim",
version = "^6", -- Remove version tracking to elect for nightly AstroNvim
import = "astronvim.plugins",
opts = { -- AstroNvim options must be set here with the `import` key
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins
},
},
{ import = "community" },
{ import = "plugins" },
} --[[@as LazySpec]], {
-- Configure any other `lazy.nvim` configuration options here
install = { colorscheme = { "astrotheme", "habamax" } },
ui = { backdrop = 100 },
performance = {
rtp = {
-- disable some rtp plugins, add more to your liking
disabled_plugins = {
"gzip",
"netrwPlugin",
"tarPlugin",
"tohtml",
"zipPlugin",
},
},
},
} --[[@as LazyConfig]])
+85
View File
@@ -0,0 +1,85 @@
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
-- Configuration documentation can be found with `:h astrocore`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astrocore",
---@type AstroCoreOpts
opts = {
-- Configure core features of AstroNvim
features = {
large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
autopairs = true, -- enable autopairs at start
cmp = true, -- enable completion at start
diagnostics = { virtual_text = true, virtual_lines = false }, -- diagnostic settings on startup
highlighturl = true, -- highlight URLs at start
notifications = true, -- enable notifications at start
},
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
diagnostics = {
virtual_text = true,
underline = true,
},
-- passed to `vim.filetype.add`
filetypes = {
-- see `:h vim.filetype.add` for usage
extension = {
foo = "fooscript",
},
filename = {
[".foorc"] = "fooscript",
},
pattern = {
[".*/etc/foo/.*"] = "fooscript",
},
},
-- vim options can be configured here
options = {
opt = { -- vim.opt.<key>
relativenumber = true, -- sets vim.opt.relativenumber
number = true, -- sets vim.opt.number
spell = false, -- sets vim.opt.spell
signcolumn = "yes", -- sets vim.opt.signcolumn to yes
wrap = false, -- sets vim.opt.wrap
},
g = { -- vim.g.<key>
-- configure global vim variables (vim.g)
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
-- This can be found in the `lua/lazy_setup.lua` file
},
},
-- Mappings can be configured through AstroCore as well.
-- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
mappings = {
-- first key is the mode
n = {
-- second key is the lefthand side of the map
-- navigate buffer tabs
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" },
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" },
-- mappings seen under group name "Buffer"
["<Leader>bd"] = {
function()
require("astroui.status.heirline").buffer_picker(
function(bufnr) require("astrocore.buffer").close(bufnr) end
)
end,
desc = "Close buffer from tabline",
},
-- tables with just a `desc` key will be registered with which-key if it's installed
-- this is useful for naming menus
-- ["<Leader>b"] = { desc = "Buffers" },
-- setting a mapping to false will disable it
-- ["<C-S>"] = false,
},
},
},
}
+110
View File
@@ -0,0 +1,110 @@
-- if true then return {} end
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
-- Configuration documentation can be found with `:h astrolsp`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astrolsp",
---@type AstroLSPOpts
opts = {
-- Configuration table of features provided by AstroLSP
features = {
codelens = true, -- enable/disable codelens refresh on start
inlay_hints = false, -- enable/disable inlay hints on start
semantic_tokens = true, -- enable/disable semantic token highlighting
},
-- customize lsp formatting options
formatting = {
-- control auto formatting on save
format_on_save = {
enabled = true, -- enable or disable format on save globally
allow_filetypes = { -- enable format on save for specified filetypes only
-- "go",
},
ignore_filetypes = { -- disable format on save for specified filetypes
-- "python",
},
},
disabled = { -- disable formatting capabilities for the listed language servers
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
-- "lua_ls",
},
timeout_ms = 1000, -- default format timeout
-- filter = function(client) -- fully override the default formatting function
-- return true
-- end
},
-- enable servers that you already have installed without mason
servers = {
"ccls",
},
-- customize language server configuration passed to `vim.lsp.config`
-- client specific configuration can also go in `lsp/` in your configuration root (see `:h lsp-config`)
config = {
clangd = {
enabled = false,
},
ccls = {
cmd = { "ccls" },
filetypes = { "cpp", "c" },
},
},
-- customize how language servers are attached
handlers = {
-- a function with the key `*` modifies the default handler, functions takes the server name as the parameter
-- ["*"] = function(server) vim.lsp.enable(server) end
-- the key is the server that is being setup with `vim.lsp.config`
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
},
-- Configure buffer local auto commands to add when attaching a language server
autocmds = {
-- first key is the `augroup` to add the auto commands to (:h augroup)
lsp_codelens_refresh = {
-- Optional condition to create/delete auto command group
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
-- the auto commands will be deleted for that buffer
cond = "textDocument/codeLens",
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
-- list of auto commands to set
{
-- events to trigger
event = { "InsertLeave", "BufEnter" },
-- the rest of the autocmd options (:h nvim_create_autocmd)
desc = "Refresh codelens (buffer)",
callback = function(args)
if require("astrolsp").config.features.codelens then vim.lsp.codelens.enable(true, { bufnr = args.buf }) end
end,
},
},
},
-- mappings to be set up on attaching of a language server
mappings = {
n = {
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
gD = {
function() vim.lsp.buf.declaration() end,
desc = "Declaration of current symbol",
cond = "textDocument/declaration",
},
["<Leader>uY"] = {
function() require("astrolsp.toggles").buffer_semantic_tokens() end,
desc = "Toggle LSP semantic highlight (buffer)",
cond = function(client)
return client:supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil
end,
},
},
},
-- A custom `on_attach` function to be run after the default `on_attach` function
-- takes two parameters `client` and `bufnr` (`:h lsp-attach`)
on_attach = function(client, bufnr)
-- this would disable semanticTokensProvider for all clients
-- client.server_capabilities.semanticTokensProvider = nil
end,
},
}
+39
View File
@@ -0,0 +1,39 @@
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
-- AstroUI provides the basis for configuring the AstroNvim User Interface
-- Configuration documentation can be found with `:h astroui`
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
-- as this provides autocomplete and documentation while editing
---@type LazySpec
return {
"AstroNvim/astroui",
---@type AstroUIOpts
opts = {
-- change colorscheme
colorscheme = "astrodark",
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
highlights = {
init = { -- this table overrides highlights in all themes
-- Normal = { bg = "#000000" },
},
astrodark = { -- a table of overrides/changes when applying the astrotheme theme
-- Normal = { bg = "#000000" },
},
},
-- Icons can be configured throughout the interface
icons = {
-- configure the loading of the lsp in the status line
LSPLoading1 = "",
LSPLoading2 = "",
LSPLoading3 = "",
LSPLoading4 = "",
LSPLoading5 = "",
LSPLoading6 = "",
LSPLoading7 = "",
LSPLoading8 = "",
LSPLoading9 = "",
LSPLoading10 = "",
},
},
}
+83
View File
@@ -0,0 +1,83 @@
return {
{
"AstroNvim/astrocore",
---@type AstroCoreOpts
opts = {
mappings = {
n = {
["<Leader><space>"] = {
function() require("snacks").picker.buffers() end,
desc = "Find buffers",
},
["<Leader>F"] = {
function()
require("snacks").picker.files {
hidden = true,
ignored = true,
}
end,
desc = "Find buffers",
},
["<Leader>ss"] = {
function()
local aerial_avail, aerial = pcall(require, "aerial")
if aerial_avail and aerial.snacks_picker then
aerial.snacks_picker()
else
require("snacks").picker.lsp_symbols()
end
end,
desc = "Search symbols",
},
["<Leader>fj"] = {
"<cmd>%!jq .<CR>",
desc = "Format Json",
},
["<Leader>w"] = {
"<cmd>:noautocmd w<CR>",
desc = "Save Fileeee",
},
-- quick save
-- ["<C-s>"] = { ":w!<cr>", desc = "Save File" },
-- Git
["<Leader>vd"] = {
"<cmd>DiffviewOpen<CR>",
desc = "Diffview",
},
["<Leader>vD"] = {
"<cmd>DiffviewOpen HEAD^!<CR>",
desc = "Diffview Last Commit",
},
["<Leader>vl"] = {
function()
require("snacks").picker.git_log {
confirm = function(picker, item)
picker:close()
vim.cmd("DiffviewOpen " .. item.commit .. "^!")
end,
}
end,
silent = true,
desc = "Diff Commit",
},
["<Leader>vh"] = {
"<cmd>DiffviewFileHistory %<CR>",
desc = "File History",
},
["<Leader>vH"] = {
"<cmd>DiffviewFileHistory<CR>",
desc = "Repo History",
},
["<Leader>vr"] = {
"<cmd>DiffviewRefresh<CR>",
desc = "Diffview Refresh",
},
["<Leader>vc"] = {
"<cmd>DiffviewClose<CR>",
desc = "Diffview Close",
},
},
},
},
},
}
+45
View File
@@ -0,0 +1,45 @@
-- if true then return {} end
-- Customize Mason
---@type LazySpec
return {
-- use mason-tool-installer for automatically installing Mason packages
{
"WhoIsSethDaniel/mason-tool-installer.nvim",
-- overrides `require("mason-tool-installer").setup(...)`
opts = {
-- Make sure to use the names found in `:Mason`
ensure_installed = {
-- install language servers
"lua-language-server",
"angular-language-server",
"typescript-language-server",
"gopls",
"html-lsp",
"css-lsp",
"c3-lsp",
"json-lsp",
"shellcheck",
-- "clangd",
-- "cmake-language-server",
"csharp-language-server",
"dockerfile-language-server",
-- "docker-compose-language-service",
"kotlin-language-server",
"postgres-language-server",
"python-lsp-server",
"rust-analyzer",
-- install formatters
"stylua",
-- install debuggers
"debugpy",
-- install any other package
"tree-sitter-cli",
},
},
},
}
+11
View File
@@ -0,0 +1,11 @@
return {
"nvim-neo-tree/neo-tree.nvim",
opts = {
filesystem = {
filtered_items = {
hide_dotfiles = false,
hide_gitignored = false,
},
},
},
}

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