mirror of
https://github.com/AquaMorph/dotfiles.git
synced 2026-09-05 10:49:17 +00:00
Compare commits
382
Commits
main
..
db87f08104
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db87f08104 | ||
|
|
2a872b895f | ||
|
|
cc54f6e5d5 | ||
|
|
8764d4446b | ||
|
|
5985673d8c | ||
|
|
d21f532b70 | ||
|
|
5613fdefa9 | ||
|
|
08b48fa825 | ||
|
|
3f4190e95a | ||
|
|
d1d88aa7b3 | ||
|
|
981d514156 | ||
|
|
cce671b9fc | ||
|
|
bd8d5a96ad | ||
|
|
a54305b837 | ||
|
|
ee547a17ac | ||
|
|
2a4937053d | ||
|
|
22ff857994 | ||
|
|
3debbe1eb7 | ||
|
|
e242ba7c07 | ||
|
|
31f27a9c84 | ||
|
|
75e898b8f7 | ||
|
|
e253055758 | ||
|
|
577fde309b | ||
|
|
0a95cc86da | ||
|
|
660f4d366d | ||
|
|
9afabc82fe | ||
|
|
538016df16 | ||
|
|
776978c0f9 | ||
|
|
a6f8245241 | ||
|
|
49abb1b949 | ||
|
|
390daca277 | ||
|
|
6f807aa72f | ||
|
|
c19898373f | ||
|
|
7c1593e790 | ||
|
|
6bedc5114b | ||
|
|
d6fca68b54 | ||
|
|
c740264352 | ||
|
|
7dfb19f6c7 | ||
|
|
0f671a6aab | ||
|
|
05409b68dd | ||
|
|
97872de9c7 | ||
|
|
2bc1dbc1ed | ||
|
|
82fca6f7b3 | ||
|
|
f3ea013e75 | ||
|
|
7124a3e72a | ||
|
|
d311020284 | ||
|
|
390f8d2a0e | ||
|
|
35f7ddfe63 | ||
|
|
bafcfae28d | ||
|
|
b41a4141f2 | ||
|
|
547eb10705 | ||
|
|
4ad576de67 | ||
|
|
8661d65d55 | ||
|
|
cdd6f23f30 | ||
|
|
4c1a3d0647 | ||
|
|
5e6e96e990 | ||
|
|
48710770b8 | ||
|
|
694f66c435 | ||
|
|
6a177305b5 | ||
|
|
86e889e6cb | ||
|
|
aa57e13930 | ||
|
|
7de6986353 | ||
|
|
11a5082632 | ||
|
|
e2a4b4a3e8 | ||
|
|
2fdf3fab10 | ||
|
|
07a406ec79 | ||
|
|
b889d0d667 | ||
|
|
f59c3a52c6 | ||
|
|
241b950ee6 | ||
|
|
c036dafc8a | ||
|
|
edc2b7d692 | ||
|
|
79b6af74af | ||
|
|
1165f2ab93 | ||
|
|
f061060796 | ||
|
|
907ffb0e53 | ||
|
|
d441ad6e34 | ||
|
|
7dfe52d6e5 | ||
|
|
e85b63649e | ||
|
|
e80a2ed715 | ||
|
|
c2dd1c1942 | ||
|
|
c789c73630 | ||
|
|
083d50f223 | ||
|
|
f4686e50f7 | ||
|
|
37cc141f94 | ||
|
|
75e07a6ff7 | ||
|
|
869a4ce634 | ||
|
|
0a3eb6a4b7 | ||
|
|
f319f26fcb | ||
|
|
2bf416ce93 | ||
|
|
af38abbff2 | ||
|
|
8ccabe7927 | ||
|
|
60a2049634 | ||
|
|
b61a1cc192 | ||
|
|
4a369196c9 | ||
|
|
4a2341ce6f | ||
|
|
1208f9c140 | ||
|
|
1aa1fd18f5 | ||
|
|
0e5fd8a923 | ||
|
|
67be4e0b36 | ||
|
|
19bd5c6dc8 | ||
|
|
fc45f10664 | ||
|
|
52091439d4 | ||
|
|
c33086e5f6 | ||
|
|
974706a8c3 | ||
|
|
a91b34cb7f | ||
|
|
148a34d04f | ||
|
|
6d04a084cc | ||
|
|
f5fc6c2a0e | ||
|
|
e3d140ebb4 | ||
|
|
a477f33c56 | ||
|
|
d4ab38d7c4 | ||
|
|
1719a9bb70 | ||
|
|
b4cf9eccef | ||
|
|
c62bdae67d | ||
|
|
42728fe683 | ||
|
|
215f5c9bb8 | ||
|
|
be5e6212b1 | ||
|
|
04f4a9aff2 | ||
|
|
ccd44ffcef | ||
|
|
bf626cbcf6 | ||
|
|
b0d9ad3855 | ||
|
|
6f51eef489 | ||
|
|
347df83ffe | ||
|
|
2c1807d668 | ||
|
|
a98ae738dd | ||
|
|
ab8d6c1f22 | ||
|
|
6a77a0205e | ||
|
|
fa7684c21e | ||
|
|
aa965aca44 | ||
|
|
728ed5527d | ||
|
|
1ef1ab2108 | ||
|
|
74c78e877b | ||
|
|
d250e6c3ce | ||
|
|
8622360433 | ||
|
|
53671fb05c | ||
|
|
c967d9634f | ||
|
|
4812b349b5 | ||
|
|
4c078fd92a | ||
|
|
b01c5ff59d | ||
|
|
854208f469 | ||
|
|
117e37410e | ||
|
|
4c68a6211b | ||
|
|
34a24b2d17 | ||
|
|
a536ee7d47 | ||
|
|
dd3b9efa61 | ||
|
|
2f0849911d | ||
|
|
ea23e2a4a7 | ||
|
|
e44f969ba2 | ||
|
|
a3b9b70cb7 | ||
|
|
fb2e5616c0 | ||
|
|
25f653f6af | ||
|
|
5d4942f074 | ||
|
|
18409c1140 | ||
|
|
a9142a723b | ||
|
|
ed6757270c | ||
|
|
616405a484 | ||
|
|
5699501192 | ||
|
|
3416d626cf | ||
|
|
8669d71ebc | ||
|
|
fba07b4d23 | ||
|
|
226da5bdeb | ||
|
|
cb8044639b | ||
|
|
26f2cb4963 | ||
|
|
c596064b44 | ||
|
|
d562d87d0a | ||
|
|
5f8e1c7e7b | ||
|
|
55fd830007 | ||
|
|
169ffdc1e1 | ||
|
|
bee0f3a832 | ||
|
|
a413dff644 | ||
|
|
e40ff3bd9d | ||
|
|
ec7bb7394b | ||
|
|
10e6311851 | ||
|
|
6b4545b917 | ||
|
|
880052d80a | ||
|
|
4d98c61049 | ||
|
|
8bf1fbdbea | ||
|
|
32b3e12943 | ||
|
|
e2e6c46f98 | ||
|
|
90a1de1a10 | ||
|
|
327f36cce4 | ||
|
|
ed2ab233cd | ||
|
|
38aa9bbd1b | ||
|
|
f615d3e3db | ||
|
|
f2dfa528ee | ||
|
|
560318dfa8 | ||
|
|
65de29ca13 | ||
|
|
f1fcf55f7f | ||
|
|
a0e32f6a38 | ||
|
|
38d6f07ce6 | ||
|
|
edce94d03c | ||
|
|
dcfc056cb0 | ||
|
|
410bf4d56a | ||
|
|
af8c799fd1 | ||
|
|
4b53929cc2 | ||
|
|
83510a125b | ||
|
|
ee8d5dbce9 | ||
|
|
80946e9761 | ||
|
|
7e0337f8a6 | ||
|
|
04d8aa767f | ||
|
|
f21f0bd89f | ||
|
|
fa93d2fe9d | ||
|
|
4b2e9e63b9 | ||
|
|
bc4e37a398 | ||
|
|
89ecb534e0 | ||
|
|
b33f2586b8 | ||
|
|
4b91be7b57 | ||
|
|
1056b9292a | ||
|
|
580f77bb11 | ||
|
|
d28568ee03 | ||
|
|
87054f8ca1 | ||
|
|
f0d5f70ea5 | ||
|
|
8ab9980bbf | ||
|
|
b8c9693326 | ||
|
|
1f44801edb | ||
|
|
650d747791 | ||
|
|
d77e129b2c | ||
|
|
e0a5ae73d6 | ||
|
|
ce56dd2d85 | ||
|
|
29df83e3d4 | ||
|
|
7e6645704a | ||
|
|
f5d9c6d2c5 | ||
|
|
39efa6380f | ||
|
|
53890288ba | ||
|
|
a9c4699dae | ||
|
|
4bc38eadc4 | ||
|
|
e77fb9a73c | ||
|
|
6f6cc537cf | ||
|
|
21bb1fb091 | ||
|
|
d51d8d18c1 | ||
|
|
35c27924e2 | ||
|
|
914534eb93 | ||
|
|
c7b65101f7 | ||
|
|
93aedd616d | ||
|
|
2990cfe9b7 | ||
|
|
723dd4ac07 | ||
|
|
e7354ec232 | ||
|
|
f93e7739ba | ||
|
|
dd1b7376c1 | ||
|
|
8196c71d93 | ||
|
|
49b49fc7bb | ||
|
|
dbe74db2c2 | ||
|
|
99d0355813 | ||
|
|
43170cf447 | ||
|
|
782ace88f3 | ||
|
|
d672031ad0 | ||
|
|
1bb6e3e9ac | ||
|
|
f1310e517b | ||
|
|
012e18fb98 | ||
|
|
e165e24847 | ||
|
|
f86a577d26 | ||
|
|
1f9a810ea9 | ||
|
|
90c0d3b038 | ||
|
|
c4e62f6db9 | ||
|
|
dee02d73d9 | ||
|
|
d89807b8d6 | ||
|
|
62b432be1d | ||
|
|
3b02692c15 | ||
|
|
2a6adc46d1 | ||
|
|
4968769ba7 | ||
|
|
a6d30fd86a | ||
|
|
a94b14769a | ||
|
|
21c0e69d86 | ||
|
|
58c0118724 | ||
|
|
580740dbd0 | ||
|
|
33f82c4ad4 | ||
|
|
0432c3ac6d | ||
|
|
165ac2849c | ||
|
|
ea06e7aed2 | ||
|
|
cb7e2d9cd4 | ||
|
|
b2e7930ef9 | ||
|
|
3bee06e3d7 | ||
|
|
1d3e87d431 | ||
|
|
8a63dcd897 | ||
|
|
9b3ab03ea3 | ||
|
|
827b6c406b | ||
|
|
5714ea26cc | ||
|
|
f167b0f12e | ||
|
|
39d30cd76a | ||
|
|
585ba6e330 | ||
|
|
9e39f2b2a0 | ||
|
|
cfa7421c0d | ||
|
|
012454a147 | ||
|
|
3905df13d9 | ||
|
|
0204e53cc2 | ||
|
|
bf5e905388 | ||
|
|
be7f897dd7 | ||
|
|
9ed5790415 | ||
|
|
bfd5d054c2 | ||
|
|
ed6dfe22b8 | ||
|
|
754a568335 | ||
|
|
3b1afd08ec | ||
|
|
c0ae64ccfb | ||
|
|
8550832516 | ||
|
|
b46d9d080b | ||
|
|
d0a24b844c | ||
|
|
2362602ed5 | ||
|
|
3d6fac2664 | ||
|
|
46b4a3f945 | ||
|
|
329aa603df | ||
|
|
cd17afb1a1 | ||
|
|
f6d509d5cc | ||
|
|
fa98be2c0c | ||
|
|
faa84f07c4 | ||
|
|
f28aa3d4d2 | ||
|
|
01d37f6b90 | ||
|
|
ebcacb7bc2 | ||
|
|
70361efc50 | ||
|
|
048cddfd3e | ||
|
|
623ae43ead | ||
|
|
ed0cb9e483 | ||
|
|
376e0d1303 | ||
|
|
975cf91c1c | ||
|
|
9bfe1ab53c | ||
|
|
5f4927b3e0 | ||
|
|
1828f1a99b | ||
|
|
14e51ee50a | ||
|
|
c77cfe7a52 | ||
|
|
3e26cc0141 | ||
|
|
e0bf2a9a54 | ||
|
|
aee072c7bf | ||
|
|
826eb66876 | ||
|
|
ebd43ad461 | ||
|
|
dff22f381e | ||
|
|
fac4a81bef | ||
|
|
18c61b64fa | ||
|
|
97d703070a | ||
|
|
39659417e1 | ||
|
|
6f45dbc0f6 | ||
|
|
ebf268e0ea | ||
|
|
9e6448c6ae | ||
|
|
63a9f7a787 | ||
|
|
b864018a7b | ||
|
|
df42eb1140 | ||
|
|
6d6049ad69 | ||
|
|
383d9dc6eb | ||
|
|
d9e0917110 | ||
|
|
e9ef53bd5a | ||
|
|
a63569a800 | ||
|
|
77cd405956 | ||
|
|
8b2661e4fa | ||
|
|
d328f8aa90 | ||
|
|
28d3eccb66 | ||
|
|
694e2abc6c | ||
|
|
f42f59f80a | ||
|
|
723c164bb1 | ||
|
|
7ac78a5b58 | ||
|
|
34cea0c7c8 | ||
|
|
4c031c7dec | ||
|
|
45f1e5420f | ||
|
|
d42c2fcb96 | ||
|
|
b57a941535 | ||
|
|
99743600db | ||
|
|
1fe307a689 | ||
|
|
4ee7a5aea7 | ||
|
|
bf7e1fb223 | ||
|
|
bbe3dafed0 | ||
|
|
3edfb5af32 | ||
|
|
704ba13af2 | ||
|
|
c41a70ee19 | ||
|
|
45ff1e0fef | ||
|
|
3bda2424ac | ||
|
|
434c2ea90c | ||
|
|
26f0a146ae | ||
|
|
86d4b1fdfe | ||
|
|
b3671721a2 | ||
|
|
ffee17ecc1 | ||
|
|
22831ca8f1 | ||
|
|
2420127c75 | ||
|
|
7f3cde64d5 | ||
|
|
e8fcd6d537 | ||
|
|
d0457209f9 | ||
|
|
28ab8e28ad | ||
|
|
1c42ec4cab | ||
|
|
cbf3df385c | ||
|
|
9fb3285e1f | ||
|
|
a56363da9e | ||
|
|
2530a7fb41 | ||
|
|
cee19832d9 | ||
|
|
a796a862d8 | ||
|
|
4e1af90a3a | ||
|
|
72b8fdf26d |
@@ -1,8 +0,0 @@
|
||||
Commits
|
||||
## Commit Message Format
|
||||
Follow conventional commits style (all lowercase).
|
||||
- `feat(scope): description` - New feature
|
||||
- `fix(scope): description` - Bug fix
|
||||
- `refactor(scope): description` - Code refactoring
|
||||
- `docs(scope): description` - Documentation changes
|
||||
- Example: `feat(zsh): update dotfiles` or `fix(scripts): use correct pass entry`
|
||||
@@ -1 +0,0 @@
|
||||
home
|
||||
+142
@@ -0,0 +1,142 @@
|
||||
i3/.config/i3/config
|
||||
settings.conf
|
||||
systemd/user/*/*
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
@@ -1,139 +0,0 @@
|
||||
# AGENTS.md - Coding Guidelines for Agentic Operations
|
||||
|
||||
This repository is a personal dotfiles collection managed with [chezmoi](https://www.chezmoi.io). It contains configuration files, shell scripts, and Python utilities for system management.
|
||||
|
||||
## Build, Lint & Test Commands
|
||||
|
||||
### Running Scripts
|
||||
- **Shell scripts**: `bash ./home/bin/executable_<script_name>.sh` or run directly if executable
|
||||
- **Python scripts**: `python3 ./home/bin/<script_name>.py`
|
||||
- **Install dependencies**: `pip install -r requirements.txt`
|
||||
|
||||
### Testing
|
||||
No formal test framework is present. Validation is done by:
|
||||
- Running scripts manually with test inputs
|
||||
- Checking for runtime errors (e.g., `python3 -m py_compile <file>` for syntax)
|
||||
- Verifying command outputs match expected behavior
|
||||
|
||||
### Single Test/Script Execution
|
||||
```bash
|
||||
# Run a single Python script
|
||||
python3 ./home/bin/i3-mouse.py
|
||||
|
||||
# Run a single shell script
|
||||
bash ./home/bin/executable_update.sh
|
||||
|
||||
# Check Python syntax without running
|
||||
python3 -m py_compile ./home/bin/homeassistant.py
|
||||
```
|
||||
|
||||
## Code Style Guidelines
|
||||
|
||||
### Python
|
||||
|
||||
#### Imports
|
||||
- Use standard library imports first, then third-party imports, then local imports
|
||||
- Import order: `os`, `sys`, `time` → `requests`, `i3ipc`, `pyautogui` → local modules
|
||||
- Each import on its own line (avoid `import x, y, z`)
|
||||
- Example:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import datetime
|
||||
from requests import get, post
|
||||
import json
|
||||
```
|
||||
|
||||
#### Naming Conventions
|
||||
- **Functions**: `snake_case` (e.g., `getPoints()`, `pointsToDirection()`)
|
||||
- **Classes**: `PascalCase` (e.g., `HomeAssistant`, `Direction`)
|
||||
- **Constants**: `UPPER_SNAKE_CASE`
|
||||
- **Private members**: prefix with underscore `_privateVar`
|
||||
- Enums use `PascalCase` for class and `UPPER_SNAKE_CASE` for members
|
||||
|
||||
#### Formatting
|
||||
- Use 4-space indentation (not tabs)
|
||||
- Line length: Keep to reasonable length (~80-100 chars) where practical
|
||||
- Shebang for executable scripts: `#!/usr/bin/env python3`
|
||||
- Blank lines: 2 between top-level definitions, 1 between method definitions
|
||||
|
||||
#### Types & Documentation
|
||||
- No type hints required (not present in codebase)
|
||||
- Add docstring comments for classes and non-obvious functions
|
||||
- Comment format: `# description` (no colons at end unless explaining)
|
||||
- Example: `# Enum for mouse direction`
|
||||
|
||||
#### Error Handling
|
||||
- Use `raise` for exceptions in API wrappers (e.g., `response.raise_for_status()`)
|
||||
- Return `None` for optional/conditional operations
|
||||
- Handle command availability checks: `if command -v <cmd> &> /dev/null`
|
||||
|
||||
### Shell Scripts
|
||||
|
||||
#### Shebang & Headers
|
||||
- Start with: `#!/bin/bash`
|
||||
- Add brief comment: `# Script purpose description`
|
||||
|
||||
#### Formatting
|
||||
- Use 2-space indentation
|
||||
- Quote variables: `"${variable}"` or `"$variable"`
|
||||
- Use `function name { ... }` syntax for functions
|
||||
|
||||
#### Naming & Structure
|
||||
- Function names: `snake_case`
|
||||
- Variables: lowercase with underscores for clarity
|
||||
- Check for command availability before use:
|
||||
```bash
|
||||
if command -v <cmd> &> /dev/null; then
|
||||
<cmd> <args>
|
||||
fi
|
||||
```
|
||||
|
||||
#### Error Handling
|
||||
- Use `set -e` to exit on error when appropriate
|
||||
- Check command exit status: `if <command>; then ... fi`
|
||||
- Redirect stderr appropriately: `2>/dev/null` or `2>&1`
|
||||
|
||||
#### chezmoi Templates
|
||||
- Dotfiles use chezmoi's templating system
|
||||
- Template syntax: `{{ }}` for variables (Chezmoi specific)
|
||||
- File naming: `dot_` prefix for dotfiles (e.g., `dot_zshrc`)
|
||||
- Executable scripts: `executable_` prefix
|
||||
|
||||
#### Comments
|
||||
- Use `#` for all config file comments
|
||||
- Keep comments concise and descriptive
|
||||
|
||||
## Repository Patterns
|
||||
|
||||
### Commit Message Format
|
||||
- Before generating a commit, always consult @.agents/COMMITS.md for the required style.
|
||||
|
||||
#### Pushing Remotes
|
||||
- **Do not push git repositories to remote unless explicitly instructed.**
|
||||
|
||||
### File Organization
|
||||
- Shell scripts: `home/bin/executable_<name>.sh`
|
||||
- Python scripts: `home/bin/<name>.py`
|
||||
- Config files: `home/dot_config/<app>/` (following XDG spec)
|
||||
- Dependencies: List in `requirements.txt`
|
||||
|
||||
## Key Dependencies
|
||||
|
||||
- **configparser** - Config file parsing
|
||||
- **todoist-python** - Todoist API
|
||||
- **tbapy** - TBA API for robotics
|
||||
- **holidays** - Holiday detection
|
||||
- **i3ipc** - i3 window manager control
|
||||
- **pyautogui** - Mouse control
|
||||
- **requests** - HTTP library
|
||||
- **dateutil** - Date utilities
|
||||
|
||||
## Development Notes
|
||||
|
||||
- This is a personal configuration repository, not a library
|
||||
- Scripts are system-level utilities and automation scripts
|
||||
- No CI/CD pipeline present (manual validation)
|
||||
- Target OS: Linux (Ubuntu/Fedora compatible)
|
||||
- Python version: Python 3.x minimum
|
||||
@@ -2,9 +2,20 @@
|
||||
|
||||
A collection of config files and scripts for Fedora GNU/Linux.
|
||||
|
||||
## Installation
|
||||
## Install
|
||||
|
||||
```bash
|
||||
chezmoi init --apply git@github.com:AquaMorph/dotfiles.git
|
||||
Run the following command to install
|
||||
|
||||
```sh
|
||||
cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/install.sh
|
||||
```
|
||||
|
||||
## Scripts
|
||||
|
||||
### frc-photo-checklist.py
|
||||
|
||||
Python script to generate a Todoist checklist for taking photos at an FRC event.
|
||||
|
||||
```sh
|
||||
python frc-photo-checklist.py [Event Key]
|
||||
```
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
name = Christian Colglazier
|
||||
email = christian@cacolglazier.com
|
||||
[core]
|
||||
editor = emacs -nw
|
||||
editor = emacs
|
||||
excludesFile = ~/.gitignore
|
||||
[rerere]
|
||||
enabled = true
|
||||
@@ -10,5 +10,3 @@
|
||||
ui = auto
|
||||
[branch]
|
||||
sort = -committerdate
|
||||
[push]
|
||||
autoSetupRemote = true
|
||||
@@ -1 +0,0 @@
|
||||
AquaAI/glm-4.7-flash
|
||||
@@ -1 +0,0 @@
|
||||
openai/gpt-5.6-luna-fast
|
||||
@@ -1 +0,0 @@
|
||||
AquaAI
|
||||
@@ -1,7 +0,0 @@
|
||||
Be as concise as possible.
|
||||
Be extremely accurate.
|
||||
Recommend things I would not realize I would benefit from.
|
||||
Call out my misconceptions and tell me when I am wrong.
|
||||
For personal matters {{ template "prompts/agent-name" . }} is encouraging but brutally honest.
|
||||
Never sycophantic.
|
||||
Do not use em dashes. If an em dash would normally appear, use a comma for continuing thoughts or a period if it should be a separate sentence.
|
||||
@@ -1 +0,0 @@
|
||||
You are an AI assistant named {{ template "prompts/agent-name" . }}.
|
||||
@@ -1,25 +0,0 @@
|
||||
# Scripts
|
||||
|
||||
## AquaAI
|
||||
|
||||
AquaAI is bash script that interacts with OpenAI and Ollama APIs to enable terminal based interaction with LLMs.
|
||||
|
||||
## connect-nas.sh
|
||||
|
||||
Connect to long storage NAS.
|
||||
|
||||
## convert-mp4-to-resolve.sh
|
||||
|
||||
Converts mp4 video files to a video format where the audio works with the linux version of Davinci Resolve.
|
||||
|
||||
## frc-photo-checklist.py
|
||||
|
||||
Python script to generate a Todoist checklist for taking photos at an FRC event.
|
||||
|
||||
```sh
|
||||
python frc-photo-checklist.py [Event Key]
|
||||
```
|
||||
|
||||
## get-mouse-battery.sh
|
||||
|
||||
Prints out the battery percentage of a mouse and if it is charging.
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Restore Brave and place its windows after they finish opening.
|
||||
|
||||
preferences="$HOME/.config/BraveSoftware/Brave-Browser/Default/Preferences"
|
||||
|
||||
function enable_session_restore {
|
||||
if [ ! -f "$preferences" ] || ! command -v jq &> /dev/null; then
|
||||
return
|
||||
fi
|
||||
|
||||
temp_file="$(mktemp "${preferences}.XXXXXX")"
|
||||
if jq '.session.restore_on_startup = 1 | .profile.exit_type = "Normal"' \
|
||||
"$preferences" > "$temp_file"; then
|
||||
mv "$temp_file" "$preferences"
|
||||
else
|
||||
rm -f "$temp_file"
|
||||
fi
|
||||
}
|
||||
|
||||
enable_session_restore
|
||||
|
||||
if [ -n "$HYPRLAND_INSTANCE_SIGNATURE" ]; then
|
||||
brave-browser --restore-last-session &
|
||||
|
||||
# Signal starts after Brave and can steal focus while its window is mapping.
|
||||
# Wait for both startup windows, then make Brave the final focused window.
|
||||
for _ in {1..80}; do
|
||||
sleep 0.25
|
||||
if hyprctl clients -j | jq -e '
|
||||
any(.[]; .class == "brave-browser") and
|
||||
any(.[]; .class == "org.signal.Signal")
|
||||
' > /dev/null; then
|
||||
sleep 0.5
|
||||
break
|
||||
fi
|
||||
done
|
||||
hyprctl eval \
|
||||
'hl.dispatch(hl.dsp.focus({ workspace = "1" }))' > /dev/null
|
||||
exit 0
|
||||
fi
|
||||
|
||||
i3-msg 'workspace 9; append_layout ~/.config/i3/brave-workspace-9.json; workspace 5'
|
||||
brave-browser --restore-last-session &
|
||||
|
||||
# Brave creates restored windows asynchronously and after startup focus has moved.
|
||||
for _ in {1..20}; do
|
||||
sleep 0.5
|
||||
i3-msg '[class="^Brave-browser$" workspace="^(?!9$).*"] move to workspace 5' \
|
||||
> /dev/null
|
||||
done
|
||||
@@ -1,29 +0,0 @@
|
||||
local programs = require("env")
|
||||
local main_mod = "SUPER"
|
||||
|
||||
hl.bind(main_mod .. " + return", hl.dsp.exec_cmd(programs.terminal))
|
||||
hl.bind(main_mod .. " + Q", hl.dsp.window.close())
|
||||
hl.bind(main_mod .. " + E", hl.dsp.exec_cmd(programs.file_manager))
|
||||
hl.bind(main_mod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(main_mod .. " + D", hl.dsp.exec_cmd(programs.menu))
|
||||
hl.bind(main_mod .. " + P", hl.dsp.window.pseudo())
|
||||
hl.bind(main_mod .. " + J", hl.dsp.layout("togglesplit"))
|
||||
hl.bind(main_mod .. " + L", hl.dsp.exec_cmd("hyprlock"))
|
||||
hl.bind(main_mod .. " + F", hl.dsp.window.fullscreen())
|
||||
|
||||
hl.bind(main_mod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(main_mod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(main_mod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(main_mod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
for workspace = 1, 10 do
|
||||
local key = workspace % 10
|
||||
hl.bind(main_mod .. " + " .. key, hl.dsp.focus({ workspace = workspace }))
|
||||
hl.bind(main_mod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = workspace }))
|
||||
end
|
||||
|
||||
hl.bind(main_mod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(main_mod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
hl.bind(main_mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(main_mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
@@ -1,18 +0,0 @@
|
||||
local main_mod = "SUPER"
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("light -N 1")
|
||||
end)
|
||||
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("~/bin/system/backlight-ctl.sh -i"))
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("~/bin/system/backlight-ctl.sh -d"))
|
||||
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("amixer set Master 3%+"))
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("amixer set Master 3%-"))
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("amixer set Master toggle"))
|
||||
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"))
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"))
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"))
|
||||
|
||||
hl.bind(main_mod .. " + escape", hl.dsp.exec_cmd("swaylock"))
|
||||
@@ -1,9 +0,0 @@
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt5ct")
|
||||
|
||||
return {
|
||||
terminal = "alacritty",
|
||||
file_manager = "dolphin",
|
||||
menu = "rofi -show combi",
|
||||
browser = "brave-browser",
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 5,
|
||||
border_size = 2,
|
||||
col = {
|
||||
active_border = {
|
||||
colors = { "rgba(e91e63ee)", "rgba(ffcdd2ee)" },
|
||||
angle = 45,
|
||||
},
|
||||
inactive_border = "rgba(0288d1aa)",
|
||||
},
|
||||
layout = "dwindle",
|
||||
allow_tearing = false,
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 5,
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true,
|
||||
force_split = 2,
|
||||
},
|
||||
|
||||
master = {
|
||||
orientation = "right",
|
||||
},
|
||||
})
|
||||
|
||||
hl.curve("myBezier", {
|
||||
type = "bezier",
|
||||
points = { { 0.05, 0.9 }, { 0.1, 1.05 } },
|
||||
})
|
||||
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 3, bezier = "myBezier" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 7, bezier = "default", style = "popin 80%" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "borderangle", enabled = true, speed = 8, bezier = "default" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 7, bezier = "default" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 2, bezier = "default" })
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace",
|
||||
})
|
||||
@@ -1,21 +0,0 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300
|
||||
on-timeout = loginctl lock-session
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 1200
|
||||
on-timeout = sh -c 'test "$(cat /sys/class/power_supply/ACAD/online)" = 0 && systemctl suspend'
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "2256x1504@60",
|
||||
position = "auto",
|
||||
scale = 1.175,
|
||||
})
|
||||
|
||||
require("env")
|
||||
|
||||
require("startup-all")
|
||||
require("startup-framework")
|
||||
|
||||
require("general")
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "",
|
||||
kb_rules = "",
|
||||
follow_mouse = 1,
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
},
|
||||
sensitivity = 0,
|
||||
},
|
||||
|
||||
xwayland = {
|
||||
force_zero_scaling = true,
|
||||
},
|
||||
|
||||
misc = {
|
||||
force_default_wallpaper = 0,
|
||||
},
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "signal-workspace",
|
||||
match = { class = "^org\\.signal\\.Signal$" },
|
||||
workspace = "10",
|
||||
})
|
||||
|
||||
require("bind-all")
|
||||
require("bind-framework")
|
||||
@@ -1,99 +0,0 @@
|
||||
auth {
|
||||
pam {
|
||||
module = password-auth
|
||||
}
|
||||
|
||||
fingerprint {
|
||||
enabled = true
|
||||
}
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/Pictures/wallpaper/0000.jpg
|
||||
blur_size = 2
|
||||
blur_passes = 1
|
||||
noise = 0.01
|
||||
contrast = 1.08
|
||||
brightness = 0.68
|
||||
vibrancy = 0.22
|
||||
vibrancy_darkness = 0.15
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] date +"%H:%M"
|
||||
color = rgb(9DEBFF)
|
||||
font_size = 104
|
||||
font_family = Noto Sans Mono
|
||||
position = 0, 230
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 3
|
||||
shadow_size = 10
|
||||
shadow_color = rgba(00D9FF55)
|
||||
}
|
||||
|
||||
shape {
|
||||
monitor =
|
||||
size = 460, 2
|
||||
color = rgb(00D9FF)
|
||||
position = 0, 152
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
shape {
|
||||
monitor =
|
||||
size = 110, 2
|
||||
color = rgb(FF2A9D)
|
||||
position = 285, 152
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = // $USER
|
||||
color = rgb(FF5CB8)
|
||||
font_size = 18
|
||||
font_family = Noto Sans Mono
|
||||
position = 0, 112
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 2
|
||||
shadow_size = 7
|
||||
shadow_color = rgba(FF2A9D66)
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 340, 54
|
||||
outline_thickness = 2
|
||||
dots_size = 0.22
|
||||
dots_spacing = 0.3
|
||||
dots_center = true
|
||||
dots_rounding = -1
|
||||
outer_color = rgb(00D9FF)
|
||||
inner_color = rgba(3, 7, 18, 0.82)
|
||||
font_color = rgb(FF5CB8)
|
||||
fade_on_empty = true
|
||||
fade_timeout = 1000
|
||||
placeholder_text =
|
||||
hide_input = false
|
||||
rounding = 4
|
||||
check_color = rgb(FF2A9D)
|
||||
fail_color = rgb(FF2A9D)
|
||||
fail_text =
|
||||
capslock_color = -1
|
||||
numlock_color = -1
|
||||
bothlock_color = -1
|
||||
invert_numlock = false # change color if numlock is off
|
||||
swap_font_color = false # see below
|
||||
position = 0, -35
|
||||
halign = center
|
||||
valign = center
|
||||
shadow_passes = 3
|
||||
shadow_size = 10
|
||||
shadow_color = rgba(00D9FF55)
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("swaybg --image ~/Pictures/wallpaper/0000.jpg --mode fill")
|
||||
hl.exec_cmd("pass git pull")
|
||||
hl.exec_cmd("~/bin/system/system-start.sh")
|
||||
hl.exec_cmd("hypridle")
|
||||
end)
|
||||
@@ -1,7 +0,0 @@
|
||||
local programs = require("env")
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("~/bin/start-brave.sh", { workspace = "1 silent" })
|
||||
hl.exec_cmd(programs.terminal, { workspace = "2 silent" })
|
||||
hl.exec_cmd("flatpak run org.signal.Signal", { workspace = "10 silent" })
|
||||
end)
|
||||
@@ -1,32 +0,0 @@
|
||||
{
|
||||
"border": "normal",
|
||||
"floating": "auto_off",
|
||||
"layout": "splitv",
|
||||
"type": "con",
|
||||
"nodes": [
|
||||
{
|
||||
"border": "pixel",
|
||||
"floating": "auto_off",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^Brave-browser$",
|
||||
"title": ".*Music Assistant.*"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
},
|
||||
{
|
||||
"border": "pixel",
|
||||
"floating": "auto_off",
|
||||
"percent": 0.5,
|
||||
"swallows": [
|
||||
{
|
||||
"class": "^Brave-browser$",
|
||||
"title": ".*YouTube.*"
|
||||
}
|
||||
],
|
||||
"type": "con"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,435 +0,0 @@
|
||||
# Set super key as mod
|
||||
set $mod Mod4
|
||||
|
||||
# Colors
|
||||
set $blue "#0288D1"
|
||||
set $pink "#E91E63"
|
||||
set $lpink "#FFCDD2"
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:NimbusSans Bold 10
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec --no-startup-id alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec --no-startup-id rofi -show combi
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# Cycle workspaces
|
||||
bindsym $mod+apostrophe workspace next_on_output
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
#bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# media controls
|
||||
bindsym Ctrl+Left exec playerctl previous
|
||||
bindsym Ctrl+Down exec playerctl play-pause
|
||||
bindsym Ctrl+Right exec playerctl next
|
||||
|
||||
# Gaps
|
||||
set $inner 8
|
||||
set $outer 0
|
||||
gaps inner $inner
|
||||
gaps outer $outer
|
||||
|
||||
# Define names for default workspaces
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
set $wsResolve "11"
|
||||
set $wsReaper "12"
|
||||
set $wsBitwig "13"
|
||||
set $wsGames "14"
|
||||
set $wsSignal "15"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c exec "sh ~/bin/i3wm-config-gen.sh"
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r exec "sh ~/bin/i3wm-config-gen.sh" ; restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+j resize shrink width 1 px or 1 ppt
|
||||
bindsym Shift+k resize grow height 1 px or 1 ppt
|
||||
bindsym Shift+l resize shrink height 1 px or 1 ppt
|
||||
bindsym Shift+semicolon resize grow width 1 px or 1 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+Left resize shrink width 1 px or 1 ppt
|
||||
bindsym Shift+Down resize grow height 1 px or 1 ppt
|
||||
bindsym Shift+Up resize shrink height 1 px or 1 ppt
|
||||
bindsym Shift+Right resize grow width 1 px or 1 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Set caps lock key to super
|
||||
exec_always --no-startup-id setxkbmap -option 'caps:super'
|
||||
|
||||
# Startup scripts
|
||||
exec --no-startup-id ~/bin/system/system-start.sh
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused $pink $pink $pink $pink $pink
|
||||
client.focused_inactive $blue $blue $blue $blue $blue
|
||||
client.unfocused $blue $blue $blue $blue $blue
|
||||
client.urgent $blue $blue $blue $blue $blue
|
||||
client.placeholder $blue $blue $blue $blue $blue
|
||||
|
||||
client.background $blue
|
||||
|
||||
# Removes border and title bar
|
||||
for_window [class="^.*"] border pixel 3
|
||||
#new_window 1pixel
|
||||
#new_float normal 4
|
||||
default_floating_border normal 3
|
||||
#new_window normal 0 px
|
||||
|
||||
# Screenshots
|
||||
bindsym Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym --release $mod+Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym $mod+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym --release $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy
|
||||
|
||||
bindsym $mod+n exec nautilus
|
||||
bindsym $mod+m exec nautilus ~/Videos
|
||||
|
||||
# Steam
|
||||
for_window [class="^steamwebhelper$" title="^Friends$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="Steam - News"] floating enable
|
||||
for_window [class="^steamwebhelper" title=".* - Chat"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Settings$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title=".* - event started"] floating enable
|
||||
for_window [class="^steamwebhelper$" title=".* CD key"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Steam - Self Updater$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Screenshot Uploader$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Steam Guard - Computer Authorization Required$"] floating enable
|
||||
for_window [title="^Steam Keyboard$"] floating enable
|
||||
|
||||
# Jetbrains
|
||||
for_window [class="^com-intellij-updater-Runner$" title="^Update$"] floating enable
|
||||
for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"] floating enable
|
||||
|
||||
# DaVinci Resolve
|
||||
#for_window [class="resolve"] gaps inner current set 0; gaps outer current set 0
|
||||
|
||||
# Bitwig
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] gaps inner set 0; gaps outer set 0
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/bin/audio/synth-power.py -d
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/bin/audio/aquamix.sh -d
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service
|
||||
|
||||
#Other
|
||||
for_window [class="Signal"] move to workspace $wsSignal; urgent disable
|
||||
for_window [class="^Brick$"] move to workspace $ws2
|
||||
|
||||
#bindsym $mod+F5 gaps inner current set 0; gaps outer current set 0
|
||||
#bindsym $mod+F6 gaps inner current set $inner; gaps outer current set $outer
|
||||
|
||||
{{- if eq .chezmoi.hostname "desktop" }}
|
||||
# Assign workspaces to monitors
|
||||
workspace $ws1 output DP-4
|
||||
workspace $ws2 output DP-4
|
||||
workspace $ws3 output DP-4
|
||||
workspace $ws4 output DP-4
|
||||
workspace $wsGames output DP-4
|
||||
workspace $wsResolve output DP-4
|
||||
workspace $wsReaper output DP-4
|
||||
workspace $wsBitwig output DP-4
|
||||
workspace $ws5 output DP-2
|
||||
workspace $ws6 output DP-2
|
||||
workspace $ws7 output DP-2
|
||||
workspace $ws8 output DP-2
|
||||
workspace $wsSignal output DP-2
|
||||
workspace $ws9 output HDMI-0
|
||||
workspace $ws10 output HDMI-0
|
||||
|
||||
exec --no-startup-id picom --backend glx --daemon
|
||||
exec --no-startup-id feh --bg-scale ~/Pictures/desktop/0001.jpg &
|
||||
|
||||
mode "$g13" {
|
||||
bindsym 1 exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 2 exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 3 exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep 0.1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 4 exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym Return mode "default"
|
||||
}
|
||||
set $g13 G13 Profile: [1] Overwatch [2] Resolve [3] Planet Coaster [4] Fall Guys
|
||||
bindsym $mod+F1 mode "$g13"
|
||||
exec_always --no-startup-id g13d --config ~/.config/g13/resolve.bind --logo ~/.config/g13/resolve.lpbm &
|
||||
|
||||
# Startup programs
|
||||
exec --no-startup-id flatpak run org.signal.Signal
|
||||
exec --no-startup-id ~/bin/start-brave.sh
|
||||
exec --no-startup-id i3-msg "workspace $ws1; exec alacritty"
|
||||
|
||||
# Starts Jack for audio
|
||||
exec --no-startup-id sh ~/bin/audio/system-start-audio.sh
|
||||
|
||||
# Open Google Play Music on workspace 10
|
||||
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
|
||||
|
||||
# Among Us
|
||||
for_window [class="steam_app_945360" title="Among Us"] move to workspace $wsGames
|
||||
for_window [class="steam_app_945360" title="Among Us"] exec --no-startup-id cat ~/.config/g13/among-us.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/among-us.lpbm > /tmp/g13-0
|
||||
|
||||
# Starting Overwatch
|
||||
for_window [class="overwatch.exe" title="Overwatch"] move to workspace $wsGames
|
||||
for_window [class="overwatch.exe" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
|
||||
for_window [class="steam_app_2357570" title="Overwatch"] move to workspace $wsGames
|
||||
for_window [class="steam_app_2357570" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
|
||||
for_window [class="battle.net.exe" title="Battle.net"] move to workspace $wsGames
|
||||
for_window [class="battle.net.exe" title="Blizzard Battle.net"] move to workspace $wsGames
|
||||
for_window [class="Lutris"] move to workspace $ws4
|
||||
|
||||
# DOOM
|
||||
for_window [class="Wine" title="DOOMx64vk"] move to workspace $wsGames
|
||||
for_window [class="Wine" title="DOOMx64vk"] exec --no-startup-id cat ~/.config/g13/doom.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
|
||||
|
||||
# DOOM Eternal
|
||||
for_window [title="DOOMEternal"] move to workspace $wsGames
|
||||
for_window [title="DOOMEternal"] exec --no-startup-id cat ~/.config/g13/doom-eternal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
|
||||
|
||||
# Planet Coaster
|
||||
for_window [class="planetcoaster.exe" title="Planet Coaster"] move to workspace $wsGames
|
||||
for_window [class="planetcoaster.exe" title="Planet Coaster"] exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0
|
||||
|
||||
# Cyberpunk 2077
|
||||
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] move to workspace $wsGames
|
||||
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] exec --no-startup-id cat ~/.config/g13/cyberpunk-2077.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/cyberpunk-2077.lpbm > /tmp/g13-0
|
||||
|
||||
# Starting DaVinci Resolve
|
||||
for_window [class="resolve"] move to workspace $wsResolve
|
||||
for_window [class="resolve"] exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0
|
||||
bindsym $mod+/ gaps inner current set 0; gaps outer current set 0
|
||||
|
||||
# Starting Reaper
|
||||
for_window [class="REAPER"] move to workspace $wsReaper
|
||||
|
||||
# Steam
|
||||
for_window [class="^Steam$"] move to workspace $wsGames
|
||||
for_window [title="^Steam$"] move to workspace $wsGames
|
||||
|
||||
# Bitwig
|
||||
for_window [class="^Show-splash-gtk$"] move to workspace $wsBitwig
|
||||
for_window [class="^Bitwig Studio$"] move to workspace $wsBitwig
|
||||
for_window [class="com.bitwig.BitwigStudio"] exec sleep 1; move to workspace $wsBitwig
|
||||
|
||||
# Fall Guys
|
||||
for_window [title="FallGuys_client"] move to workspace $wsGames
|
||||
for_window [title="FallGuys_client"] exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0
|
||||
|
||||
# Portal
|
||||
for_window [class="hl2_linux" title="Portal - OpenGL"] move to workspace $wsGames
|
||||
for_window [class="hl2_linux" title="Portal - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
|
||||
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] move to workspace $wsGames
|
||||
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
|
||||
|
||||
# Two Point Hospital
|
||||
for_window [class="TPH.x86_64" title="Two Point Hospital"] move to workspace $wsGames
|
||||
for_window [class="TPH.x86_64" title="Two Point Hospital"] exec --no-startup-id cat ~/.config/g13/two-point-hospital.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/two-point-hospital.lpbm > /tmp/g13-0
|
||||
|
||||
# Minecraft
|
||||
for_window [class="Minecraft*" title="Minecraft*"] move to workspace $wsGames
|
||||
for_window [class="Minecraft*" title="Minecraft*"] exec --no-startup-id cat ~/.config/g13/minecraft.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/minecraft.lpbm > /tmp/g13-0
|
||||
|
||||
# Arkham Knight
|
||||
for_window [class="steam_app_208650" title=".*"] move to workspace $wsGames
|
||||
for_window [class="steam_app_208650" title=".*"] exec --no-startup-id cat ~/.config/g13/arkham-knight.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/arkham-knight.lpbm > /tmp/g13-0
|
||||
|
||||
# Factorio
|
||||
for_window [class="factorio" title="Factorio*"] move to workspace $wsGames
|
||||
for_window [class="factorio" title="Factorio*"] exec --no-startup-id cat ~/.config/g13/factorio.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/factorio.lpbm > /tmp/g13-0
|
||||
|
||||
# The side buttons move the desktop around
|
||||
bindsym --whole-window button9 exec --no-startup-id python3 ~/bin/i3-mouse.py back
|
||||
bindsym --whole-window button8 exec --no-startup-id python3 ~/bin/i3-mouse.py forward
|
||||
bindsym $mod+Tab exec --no-startup-id python3 ~/bin/i3-mouse.py thumb
|
||||
{{- end }}
|
||||
|
||||
{{- if eq .chezmoi.hostname "framework" }}
|
||||
# Display
|
||||
output eDP-1 scale 1.25
|
||||
|
||||
# Desktop background
|
||||
output "*" bg ~/Pictures/wallpaper/0000.jpg fill
|
||||
|
||||
# Screen brightness controls
|
||||
exec light -N 1
|
||||
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
|
||||
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
|
||||
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
|
||||
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
|
||||
|
||||
# Media controls
|
||||
bindsym XF86AudioPrev exec playerctl previous
|
||||
bindsym XF86AudioPlay exec playerctl play-pause
|
||||
bindsym XF86AudioNext exec playerctl next
|
||||
|
||||
# Lockscreen
|
||||
bindsym $mod+Escape exec swaylock
|
||||
|
||||
# Touchpad Settings
|
||||
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
|
||||
accel_profile flat
|
||||
click_method clickfinger
|
||||
dwt disabled
|
||||
natural_scroll enabled
|
||||
scroll_method two_finger
|
||||
tap enabled
|
||||
pointer_accel 0.8
|
||||
}
|
||||
|
||||
# Move Programs
|
||||
for_window [app_id="firefox"] move to workspace $ws1
|
||||
for_window [class="Emacs"] move to workspace $ws2
|
||||
for_window [class="Steam"] move to workspace $wsGames
|
||||
for_window [class="com.bitwig.BitwigStudio"] move to workspace $wsBitwig
|
||||
|
||||
# Notifications
|
||||
exec mako
|
||||
|
||||
# Startup Programs
|
||||
exec "swaymsg 'workspace $wsSignal; exec flatpak run org.signal.Signal'"
|
||||
exec "swaymsg 'workspace $ws2; exec alacritty'"
|
||||
exec "swaymsg 'workspace $ws1; exec brave-browser'"
|
||||
{{- end }}
|
||||
|
||||
{{- if eq .chezmoi.hostname "w530" }}
|
||||
# Screen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
|
||||
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
|
||||
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
|
||||
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
|
||||
bindsym XF86AudioMicMute exec amixer set Capture toggle # toggle mic
|
||||
|
||||
# Turn off trackpad
|
||||
bindsym $mod+Shift+u exec sh ~/dotfiles/scripts/trackpad-toggle.sh
|
||||
exec --no-startup-id ~/dotfiles/scripts/trackpad-toggle.sh
|
||||
|
||||
# Desktop background
|
||||
output "*" bg ~/Pictures/wallpaper/0001.jpg fill
|
||||
|
||||
# Turn off the screen
|
||||
bindsym XF86Launch1 exec xset -display :0.0 dpms force off
|
||||
|
||||
# Start up programs
|
||||
for_window [class="Firefox"] move to workspace $ws1
|
||||
for_window [class="emacs" title="emacs@*"] move to workspace $ws2
|
||||
for_window [class="jetbrains-studio"] move to workspace $ws3
|
||||
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
|
||||
|
||||
exec mako
|
||||
exec --no-startup-id "firefox"
|
||||
{{- end }}
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
description: Commit currently staged code in git
|
||||
mode: all
|
||||
model: {{ template "models/small-brain" }}
|
||||
temperature: 0.1
|
||||
tools:
|
||||
write: false
|
||||
edit: false
|
||||
bash: true
|
||||
---
|
||||
|
||||
{{ template "prompts/name" . }}
|
||||
|
||||
{{ template "prompts/agent-name" . }} is a senior software engineer committing code to a large and professional project.
|
||||
|
||||
Focus on:
|
||||
- Writing a clear and simple commit message.
|
||||
- Describe what the changes do at a high level.
|
||||
- Always mention only the changes, never any file names.
|
||||
- Follow the project formatting for commits.
|
||||
- Only commit files that are currently staged in git.
|
||||
- Only use the word add if strictly necessary.
|
||||
|
||||
Never:
|
||||
- Never mention specific files or what files changed.
|
||||
- Never add files to the staging.
|
||||
|
||||
Use the following command to look at the changes:
|
||||
```sh
|
||||
git diff --cached
|
||||
```
|
||||
@@ -1,29 +0,0 @@
|
||||
---
|
||||
description: Review code changes
|
||||
mode: all
|
||||
model: AquaAI/gpt-oss:20b
|
||||
temperature: 0.1
|
||||
tools:
|
||||
write: false
|
||||
edit: false
|
||||
bash: true
|
||||
---
|
||||
|
||||
{{ template "prompts/name" . }}
|
||||
|
||||
{{ template "prompts/agent-name" . }} is a senior software engineer performing a code review for a colleague.
|
||||
|
||||
{{ template "prompts/better-conversations" . }}
|
||||
|
||||
Show code snipets when helpful.
|
||||
{{ template "prompts/agent-name" . }}'s reports should have the following format:
|
||||
```
|
||||
# Typos
|
||||
List of all typos you find.
|
||||
# Formatting and Readability Issues
|
||||
List of all formatting and readability issues you find.
|
||||
# Security Issues
|
||||
List of all security issues you find.
|
||||
# Other
|
||||
List of all other issues you find.
|
||||
```
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"disabled_providers": ["opencode"],
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"share": "disabled",
|
||||
"provider": {
|
||||
"AquaAI": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "AquaAI",
|
||||
"options": {
|
||||
"baseURL": "https://ollama.aquamorph.com/v1"
|
||||
},
|
||||
"models": {
|
||||
"gpt-oss:20b": {
|
||||
"name": "GPT OSS 20b"
|
||||
},
|
||||
"gpt-oss:120b": {
|
||||
"name": "GPT OSS 120b"
|
||||
},
|
||||
"qwen3.5:35b": {
|
||||
"name": "Qwen3.5 35b"
|
||||
},
|
||||
"qwen3.5:4b": {
|
||||
"name": "Qwen3.5 4b"
|
||||
},
|
||||
"hf.co/unsloth/Qwen3-4B-Instruct-2507-GGUF:Q3_K_M": {
|
||||
"name": "Qwen3 4b"
|
||||
},
|
||||
"glm-4.7-flash": {
|
||||
"name": "GLM 4.7 Flash"
|
||||
},
|
||||
"qwen3-coder-next": {
|
||||
"name": "Qwen3 Coder Next"
|
||||
},
|
||||
"qwen3.5:4b": {
|
||||
"name": "Test"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
computer={{ .chezmoi.hostname }}
|
||||
activation_bytes={{ pass "self-host/token/audible-activation-bytes" }}
|
||||
AQUAAI_KEY={{ pass "self-host/token/aquaai" }}
|
||||
TodoistToken={{ pass "self-host/token/todoist" }}
|
||||
@@ -1,12 +0,0 @@
|
||||
[Unit]
|
||||
Description=Snapcast
|
||||
After=pipewire.service
|
||||
Requires=pipewire.service
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=%h/git/audio/snapcast/bin/snapclient --player pipewire
|
||||
Restart=on-failure
|
||||
@@ -0,0 +1,52 @@
|
||||
$mainMod = SUPER
|
||||
|
||||
# Keybindings
|
||||
bind = $mainMod, return, exec, $terminal
|
||||
bind = $mainMod, Q, killactive,
|
||||
bind = $mainMod, C, exit,
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, D, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, togglesplit, # dwindle
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
bind = $mainMod, F, fullscreen
|
||||
|
||||
|
||||
# Move focus window
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
@@ -0,0 +1,17 @@
|
||||
# Screen brightness controls
|
||||
exec-once = light -N 1
|
||||
bind = ,XF86MonBrightnessUp, exec, ~/bin/system/backlight-ctl.sh -i
|
||||
bind = ,XF86MonBrightnessDown, exec, ~/bin/system/backlight-ctl.sh -d
|
||||
|
||||
# Pulse Audio controls
|
||||
bind = ,XF86AudioRaiseVolume, exec, amixer set Master 3%+ #increase sound volume
|
||||
bind = ,XF86AudioLowerVolume, exec, amixer set Master 3%- #decrease sound volume
|
||||
bind = ,XF86AudioMute, exec, amixer set Master toggle # toggle sound
|
||||
|
||||
# Media controls
|
||||
bind = ,XF86AudioPrev, exec, playerctl previous
|
||||
bind = ,XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = ,XF86AudioNext, exec, playerctl next
|
||||
|
||||
# Lockscreen
|
||||
bind = $mainMod, escape, exec, swaylock
|
||||
@@ -0,0 +1,4 @@
|
||||
# Programs
|
||||
$terminal = alacritty
|
||||
$fileManager = dolphin
|
||||
$menu = rofi -show combi
|
||||
@@ -0,0 +1,44 @@
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 5
|
||||
border_size = 2
|
||||
col.active_border = rgba(e91e63ee) rgba(ffcdd2ee) 45deg
|
||||
col.inactive_border = rgba(0288d1aa)
|
||||
layout = dwindle
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
rounding = 5
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
}
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
animation = windows, 1, 3, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 2, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = yes
|
||||
preserve_split = yes
|
||||
force_split = 2
|
||||
}
|
||||
|
||||
master {
|
||||
orientation = right
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = on
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
monitor=eDP-1,2256x1504@60,auto,1.175
|
||||
|
||||
# Enviroment
|
||||
source = ~/.config/hypr/env.conf
|
||||
|
||||
# Startup programs
|
||||
source = ~/.config/hypr/startup-all.conf
|
||||
source = ~/.config/hypr/startup-framework.conf
|
||||
|
||||
# Default env vars
|
||||
env = XCURSOR_SIZE,24
|
||||
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
|
||||
source = ~/.config/hypr/general.conf
|
||||
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
follow_mouse = 1
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
sensitivity = 0
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
misc {
|
||||
force_default_wallpaper = 0
|
||||
}
|
||||
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
source = ~/.config/hypr/bind-all.conf
|
||||
source = ~/.config/hypr/bind-framework.conf
|
||||
@@ -0,0 +1,6 @@
|
||||
# Password manager update
|
||||
exec-once = pass git pull
|
||||
|
||||
# Start up script
|
||||
exec-once = ~/bin/system/system-start.sh
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
exec-once = [workspace 1 silent] brave-browser
|
||||
exec-once = [workspace 2 silent] $terminal
|
||||
@@ -0,0 +1,120 @@
|
||||
# Assign workspaces to monitors
|
||||
workspace $ws1 output DP-4
|
||||
workspace $ws2 output DP-4
|
||||
workspace $ws3 output DP-4
|
||||
workspace $ws4 output DP-4
|
||||
workspace $wsGames output DP-4
|
||||
workspace $wsResolve output DP-4
|
||||
workspace $wsReaper output DP-4
|
||||
workspace $wsBitwig output DP-4
|
||||
workspace $ws5 output DP-2
|
||||
workspace $ws6 output DP-2
|
||||
workspace $ws7 output DP-2
|
||||
workspace $ws8 output DP-2
|
||||
workspace $wsSignal output DP-2
|
||||
workspace $ws9 output HDMI-0
|
||||
workspace $ws10 output HDMI-0
|
||||
|
||||
exec --no-startup-id compton &
|
||||
exec --no-startup-id feh --bg-scale ~/Pictures/desktop/0001.jpg &
|
||||
|
||||
mode "$g13" {
|
||||
bindsym 1 exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 2 exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 3 exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep 0.1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym 4 exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0; mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym Return mode "default"
|
||||
}
|
||||
set $g13 G13 Profile: [1] Overwatch [2] Resolve [3] Planet Coaster [4] Fall Guys
|
||||
bindsym $mod+F1 mode "$g13"
|
||||
exec_always --no-startup-id g13d --config ~/.config/g13/resolve.bind --logo ~/.config/g13/resolve.lpbm &
|
||||
|
||||
# Startup programs
|
||||
exec --no-startup-id "workspace $10"
|
||||
exec --no-startup-id "workspace $15; exec flatpak run org.signal.Signal"
|
||||
|
||||
# Starts Jack for audio
|
||||
exec --no-startup-id "workspace $1; exec alacritty"
|
||||
exec --no-startup-id sh ~/bin/audio/system-start-audio.sh
|
||||
|
||||
# Open Google Play Music on workspace 10
|
||||
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
|
||||
|
||||
# Among Us
|
||||
for_window [class="steam_app_945360" title="Among Us"] move to workspace $wsGames
|
||||
for_window [class="steam_app_945360" title="Among Us"] exec --no-startup-id cat ~/.config/g13/among-us.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/among-us.lpbm > /tmp/g13-0
|
||||
|
||||
# Starting Overwatch
|
||||
for_window [class="overwatch.exe" title="Overwatch"] move to workspace $wsGames
|
||||
for_window [class="overwatch.exe" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
|
||||
for_window [class="steam_app_2357570" title="Overwatch"] move to workspace $wsGames
|
||||
for_window [class="steam_app_2357570" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
|
||||
for_window [class="battle.net.exe" title="Battle.net"] move to workspace $wsGames
|
||||
for_window [class="battle.net.exe" title="Blizzard Battle.net"] move to workspace $wsGames
|
||||
for_window [class="Lutris"] move to workspace $ws4
|
||||
|
||||
# DOOM
|
||||
for_window [class="Wine" title="DOOMx64vk"] move to workspace $wsGames
|
||||
for_window [class="Wine" title="DOOMx64vk"] exec --no-startup-id cat ~/.config/g13/doom.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
|
||||
|
||||
# DOOM Eternal
|
||||
for_window [title="DOOMEternal"] move to workspace $wsGames
|
||||
for_window [title="DOOMEternal"] exec --no-startup-id cat ~/.config/g13/doom-eternal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
|
||||
|
||||
# Planet Coaster
|
||||
for_window [class="planetcoaster.exe" title="Planet Coaster"] move to workspace $wsGames
|
||||
for_window [class="planetcoaster.exe" title="Planet Coaster"] exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0
|
||||
|
||||
# Cyberpunk 2077
|
||||
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] move to workspace $wsGames
|
||||
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] exec --no-startup-id cat ~/.config/g13/cyberpunk-2077.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/cyberpunk-2077.lpbm > /tmp/g13-0
|
||||
|
||||
# Starting DaVinci Resolve
|
||||
for_window [class="resolve"] move to workspace $wsResolve
|
||||
for_window [class="resolve"] exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0
|
||||
bindsym $mod+/ gaps inner current set 0; gaps outer current set 0
|
||||
|
||||
# Starting Reaper
|
||||
for_window [class="REAPER"] move to workspace $wsReaper
|
||||
|
||||
# Steam
|
||||
for_window [class="^Steam$"] move to workspace $wsGames
|
||||
for_window [title="^Steam$"] move to workspace $wsGames
|
||||
|
||||
# Bitwig
|
||||
for_window [class="^Show-splash-gtk$"] move to workspace $wsBitwig
|
||||
for_window [class="^Bitwig Studio$"] move to workspace $wsBitwig
|
||||
for_window [class="com.bitwig.BitwigStudio"] exec sleep 1; move to workspace $wsBitwig
|
||||
|
||||
# Fall Guys
|
||||
for_window [title="FallGuys_client"] move to workspace $wsGames
|
||||
for_window [title="FallGuys_client"] exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0
|
||||
|
||||
# Portal
|
||||
for_window [class="hl2_linux" title="Portal - OpenGL"] move to workspace $wsGames
|
||||
for_window [class="hl2_linux" title="Portal - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
|
||||
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] move to workspace $wsGames
|
||||
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
|
||||
|
||||
# Two Point Hospital
|
||||
for_window [class="TPH.x86_64" title="Two Point Hospital"] move to workspace $wsGames
|
||||
for_window [class="TPH.x86_64" title="Two Point Hospital"] exec --no-startup-id cat ~/.config/g13/two-point-hospital.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/two-point-hospital.lpbm > /tmp/g13-0
|
||||
|
||||
# Minecraft
|
||||
for_window [class="Minecraft*" title="Minecraft*"] move to workspace $wsGames
|
||||
for_window [class="Minecraft*" title="Minecraft*"] exec --no-startup-id cat ~/.config/g13/minecraft.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/minecraft.lpbm > /tmp/g13-0
|
||||
|
||||
# Arkham Knight
|
||||
for_window [class="steam_app_208650" title="*"] move to workspace $wsGames
|
||||
for_window [class="steam_app_208650" title="*"] exec --no-startup-id cat ~/.config/g13/arkham-knight.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/arkham-knight.lpbm > /tmp/g13-0
|
||||
|
||||
# Factorio
|
||||
for_window [class="factorio" title="Factorio*"] move to workspace $wsGames
|
||||
for_window [class="factorio" title="Factorio*"] exec --no-startup-id cat ~/.config/g13/factorio.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/factorio.lpbm > /tmp/g13-0
|
||||
|
||||
# The side buttons move the desktop around
|
||||
bindsym --whole-window button9 exec --no-startup-id python3 ~/bin/i3-mouse.py back
|
||||
bindsym --whole-window button8 exec --no-startup-id python3 ~/bin/i3-mouse.py forward
|
||||
bindsym $mod+Tab exec --no-startup-id python3 ~/bin/i3-mouse.py thumb
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
# Display
|
||||
output eDP-1 scale 1.25
|
||||
|
||||
# Desktop background
|
||||
output "*" bg ~/Pictures/wallpaper/0000.jpg fill
|
||||
|
||||
# Screen brightness controls
|
||||
exec light -N 1
|
||||
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
|
||||
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
|
||||
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
|
||||
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
|
||||
|
||||
# Media controls
|
||||
bindsym XF86AudioPrev exec playerctl previous
|
||||
bindsym XF86AudioPlay exec playerctl play-pause
|
||||
bindsym XF86AudioNext exec playerctl next
|
||||
|
||||
# Lockscreen
|
||||
bindsym $mod+Escape exec swaylock
|
||||
|
||||
# Touchpad Settings
|
||||
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
|
||||
accel_profile flat
|
||||
click_method clickfinger
|
||||
dwt disabled
|
||||
natural_scroll enabled
|
||||
scroll_method two_finger
|
||||
tap enabled
|
||||
pointer_accel 0.8
|
||||
}
|
||||
|
||||
# Move Programs
|
||||
for_window [app_id="firefox"] move to workspace $ws1
|
||||
for_window [class="Emacs"] move to workspace $ws2
|
||||
for_window [class="Steam"] move to workspace $wsGames
|
||||
for_window [class="com.bitwig.BitwigStudio"] move to workspace $wsBitwig
|
||||
|
||||
# Notifications
|
||||
exec mako
|
||||
|
||||
# Startup Programs
|
||||
exec "swaymsg 'workspace $wsSignal; exec flatpak run org.signal.Signal'"
|
||||
exec "swaymsg 'workspace $ws2; exec alacritty'"
|
||||
exec "swaymsg 'workspace $ws1; exec brave-browser'"
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
# Set super key as mod
|
||||
set $mod Mod4
|
||||
|
||||
# Colors
|
||||
set $blue "#0288D1"
|
||||
set $pink "#E91E63"
|
||||
set $lpink "#FFCDD2"
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:NimbusSans Bold 10
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec --no-startup-id alacritty
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# start program launcher
|
||||
bindsym $mod+d exec --no-startup-id rofi -show combi
|
||||
# change focus
|
||||
bindsym $mod+j focus left
|
||||
bindsym $mod+k focus down
|
||||
bindsym $mod+l focus up
|
||||
bindsym $mod+semicolon focus right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+j move left
|
||||
bindsym $mod+Shift+k move down
|
||||
bindsym $mod+Shift+l move up
|
||||
bindsym $mod+Shift+semicolon move right
|
||||
|
||||
# alternatively, you can use the cursor keys:
|
||||
bindsym $mod+Shift+Left move left
|
||||
bindsym $mod+Shift+Down move down
|
||||
bindsym $mod+Shift+Up move up
|
||||
bindsym $mod+Shift+Right move right
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# Cycle workspaces
|
||||
bindsym $mod+apostrophe workspace next_on_output
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
#bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# media controls
|
||||
bindsym Ctrl+Left exec playerctl previous
|
||||
bindsym Ctrl+Down exec playerctl play-pause
|
||||
bindsym Ctrl+Right exec playerctl next
|
||||
|
||||
# Gaps
|
||||
set $inner 8
|
||||
set $outer 0
|
||||
gaps inner $inner
|
||||
gaps outer $outer
|
||||
|
||||
# Define names for default workspaces
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
set $wsResolve "11"
|
||||
set $wsReaper "12"
|
||||
set $wsBitwig "13"
|
||||
set $wsGames "14"
|
||||
set $wsSignal "15"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace $ws1
|
||||
bindsym $mod+2 workspace $ws2
|
||||
bindsym $mod+3 workspace $ws3
|
||||
bindsym $mod+4 workspace $ws4
|
||||
bindsym $mod+5 workspace $ws5
|
||||
bindsym $mod+6 workspace $ws6
|
||||
bindsym $mod+7 workspace $ws7
|
||||
bindsym $mod+8 workspace $ws8
|
||||
bindsym $mod+9 workspace $ws9
|
||||
bindsym $mod+0 workspace $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c exec "sh ~/bin/i3wm-config-gen.sh"
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r exec "sh ~/bin/i3wm-config-gen.sh" ; restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym j resize shrink width 10 px or 10 ppt
|
||||
bindsym k resize grow height 10 px or 10 ppt
|
||||
bindsym l resize shrink height 10 px or 10 ppt
|
||||
bindsym semicolon resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+j resize shrink width 1 px or 1 ppt
|
||||
bindsym Shift+k resize grow height 1 px or 1 ppt
|
||||
bindsym Shift+l resize shrink height 1 px or 1 ppt
|
||||
bindsym Shift+semicolon resize grow width 1 px or 1 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+Left resize shrink width 1 px or 1 ppt
|
||||
bindsym Shift+Down resize grow height 1 px or 1 ppt
|
||||
bindsym Shift+Up resize shrink height 1 px or 1 ppt
|
||||
bindsym Shift+Right resize grow width 1 px or 1 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Set caps lock key to super
|
||||
exec_always --no-startup-id setxkbmap -option 'caps:super'
|
||||
|
||||
# Startup scripts
|
||||
exec --no-startup-id ~/bin/system/system-start.sh
|
||||
|
||||
# class border backgr. text indicator child_border
|
||||
client.focused $pink $pink $pink $pink $pink
|
||||
client.focused_inactive $blue $blue $blue $blue $blue
|
||||
client.unfocused $blue $blue $blue $blue $blue
|
||||
client.urgent $blue $blue $blue $blue $blue
|
||||
client.placeholder $blue $blue $blue $blue $blue
|
||||
|
||||
client.background $blue
|
||||
|
||||
# Removes border and title bar
|
||||
for_window [class="^.*"] border pixel 3
|
||||
#new_window 1pixel
|
||||
#new_float normal 4
|
||||
default_floating_border normal 3
|
||||
#new_window normal 0 px
|
||||
|
||||
# Screenshots
|
||||
bindsym Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym --release $mod+Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym $mod+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
|
||||
bindsym --release $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy
|
||||
|
||||
bindsym $mod+n exec nautilus
|
||||
bindsym $mod+m exec nautilus ~/Videos
|
||||
|
||||
# Steam
|
||||
for_window [class="^steamwebhelper$" title="^Friends$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="Steam - News"] floating enable
|
||||
for_window [class="^steamwebhelper" title=".* - Chat"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Settings$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title=".* - event started"] floating enable
|
||||
for_window [class="^steamwebhelper$" title=".* CD key"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Steam - Self Updater$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Screenshot Uploader$"] floating enable
|
||||
for_window [class="^steamwebhelper$" title="^Steam Guard - Computer Authorization Required$"] floating enable
|
||||
for_window [title="^Steam Keyboard$"] floating enable
|
||||
|
||||
# Jetbrains
|
||||
for_window [class="^com-intellij-updater-Runner$" title="^Update$"] floating enable
|
||||
for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"] floating enable
|
||||
|
||||
# DaVinci Resolve
|
||||
#for_window [class="resolve"] gaps inner current set 0; gaps outer current set 0
|
||||
|
||||
# Bitwig
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] gaps inner set 0; gaps outer set 0
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/bin/audio/synth-power.py -d
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/bin/audio/aquamix.sh -d
|
||||
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service
|
||||
|
||||
#Other
|
||||
for_window [class="Signal"] move to workspace $wsSignal
|
||||
|
||||
#bindsym $mod+F5 gaps inner current set 0; gaps outer current set 0
|
||||
#bindsym $mod+F6 gaps inner current set $inner; gaps outer current set $outer
|
||||
@@ -0,0 +1,29 @@
|
||||
# Screen brightness controls
|
||||
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
|
||||
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
|
||||
|
||||
# Pulse Audio controls
|
||||
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
|
||||
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
|
||||
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
|
||||
bindsym XF86AudioMicMute exec amixer set Capture toggle # toggle mic
|
||||
|
||||
# Turn off trackpad
|
||||
bindsym $mod+Shift+u exec sh ~/dotfiles/scripts/trackpad-toggle.sh
|
||||
exec --no-startup-id ~/dotfiles/scripts/trackpad-toggle.sh
|
||||
|
||||
# Desktop background
|
||||
output "*" bg ~/Pictures/wallpaper/0001.jpg fill
|
||||
|
||||
# Turn off the screen
|
||||
bindsym XF86Launch1 exec xset -display :0.0 dpms force off
|
||||
|
||||
# Start up programs
|
||||
for_window [class="Firefox"] move to workspace $ws1
|
||||
for_window [class="emacs" title="emacs@*"] move to workspace $ws2
|
||||
for_window [class="jetbrains-studio"] move to workspace $ws3
|
||||
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
|
||||
|
||||
exec mako
|
||||
exec --no-startup-id "firefox"
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
general {
|
||||
output_format = "dzen2"
|
||||
colors = true
|
||||
interval = 5
|
||||
output_format = "i3bar"
|
||||
colors = true
|
||||
color_good = "#0288D1"
|
||||
color_degraded = "#FFCDD2"
|
||||
color_bad = "#E91E63"
|
||||
}
|
||||
|
||||
order += "disk /home"
|
||||
order += "run_watch DHCP"
|
||||
order += "wireless wlp3s0"
|
||||
order += "ethernet eth0"
|
||||
order += "volume master"
|
||||
order += "brightness"
|
||||
order += "battery all"
|
||||
order += "tztime date"
|
||||
order += "tztime local"
|
||||
|
||||
wireless wlp3s0 {
|
||||
format_up = "%essid: %ip, %quality, %bitrate"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
ethernet eth0 {
|
||||
# if you use %speed, i3status requires the cap_net_admin capability
|
||||
format_up = "E: %ip (%speed)"
|
||||
format_down = ""
|
||||
}
|
||||
|
||||
battery all {
|
||||
format = "%status%percentage %remaining"
|
||||
format_down = "No battery"
|
||||
status_chr = "⚡"
|
||||
status_bat = "🔋"
|
||||
status_unk = "?"
|
||||
status_full = "☻"
|
||||
hide_seconds = true
|
||||
last_full_capacity = true
|
||||
path = "/sys/class/power_supply/BAT%d/uevent"
|
||||
low_threshold = 20
|
||||
}
|
||||
|
||||
tztime date {
|
||||
format = "%m/%d"
|
||||
}
|
||||
|
||||
tztime local {
|
||||
format = "%I:%M:%S"
|
||||
}
|
||||
|
||||
disk "/home" {
|
||||
format = "%free"
|
||||
}
|
||||
|
||||
volume master {
|
||||
format = "♪%volume"
|
||||
format_muted = "♪~%volume"
|
||||
device = "default"
|
||||
}
|
||||
Executable
+135
@@ -0,0 +1,135 @@
|
||||
#! /bin/bash
|
||||
|
||||
# Load user settings from config file.
|
||||
if [ -e ~/.config/settings.conf ]; then
|
||||
. ~/.config/settings.conf
|
||||
fi
|
||||
|
||||
dotdir=~/dotfiles
|
||||
|
||||
# src dest sudo
|
||||
files=($dotdir/systemd ~/.config/ 'n'
|
||||
$dotdir/settings.conf ~/.config/ 'n')
|
||||
|
||||
# arg parser
|
||||
for arg in "$@"
|
||||
do
|
||||
# Skip commands that need root access
|
||||
if [[ $arg == *"-nr"* ]]; then
|
||||
noRoot=true
|
||||
fi
|
||||
done
|
||||
|
||||
# Check emacs setup
|
||||
function emacs {
|
||||
if ! [ -d ~/.emacs.d ]; then
|
||||
echo Installing emacs config
|
||||
cd ~
|
||||
git clone git@github.com:AquaMorph/.emacs.d.git
|
||||
else
|
||||
echo Checking for emacs config updates
|
||||
cd ~/.emacs.d
|
||||
git pull
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
# Check managed dotfiles
|
||||
function dotfiles {
|
||||
echo Setting up dotfiles...
|
||||
|
||||
# Loop through config files
|
||||
for (( i=0; i<${#files[@]} ; i+=3 )) ; do
|
||||
# Check if sudo is needed
|
||||
pre=''
|
||||
if [[ ${files[i+2]} == *'y'* ]]; then
|
||||
if [ $noRoot ]; then
|
||||
echo Skipping ${files[i]} because root is required
|
||||
continue
|
||||
fi
|
||||
pre='sudo'
|
||||
fi
|
||||
|
||||
destPath=${files[i+1]}$(basename "${files[i]}")
|
||||
|
||||
# Check if file already exists
|
||||
if [ -e $destPath ]; then
|
||||
# Check if path is not a sybolic link
|
||||
if ! [ -L $destPath ]; then
|
||||
echo Backing up $destPath
|
||||
$pre mv $destPath ${destPath}.bak
|
||||
# File already set up
|
||||
else
|
||||
echo The file $destPath is already set up
|
||||
continue
|
||||
fi
|
||||
# Create missing directories
|
||||
else
|
||||
$pre mkdir -p "$(dirname "$destPath")"
|
||||
fi
|
||||
echo Creating symbolic link from ${files[i]} to ${files[i+1]}
|
||||
$pre ln -sf ${files[i]} ${files[i+1]}
|
||||
done
|
||||
}
|
||||
|
||||
# Check dotfiles for updates
|
||||
function update {
|
||||
echo Checking for dotfile updates
|
||||
startTime=$(date +%s -r $dotdir)
|
||||
cd $dotdir && git pull
|
||||
endTime=$(date +%s -r $dotdir)
|
||||
if (( "$startTime" < "$endTime" )); then
|
||||
sh $dotdir/scripts/setup.sh
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
# Set up settings config file
|
||||
function setup {
|
||||
if [ -e $dotdir/settings.conf ]; then
|
||||
echo Settings file already created
|
||||
else
|
||||
echo Setting up settings config...
|
||||
|
||||
# Computer shortname
|
||||
echo What is the computer shortname?
|
||||
read computer
|
||||
echo computer=$computer >> $dotdir/settings.conf
|
||||
fi
|
||||
}
|
||||
|
||||
function systemd {
|
||||
echo 'Setting up custom systemd services...'
|
||||
systemctl --user enable es-9
|
||||
systemctl --user enable i3wm-close-window
|
||||
}
|
||||
|
||||
function stow_dotfiles {
|
||||
stow wireplumber
|
||||
stow zsh
|
||||
stow alacritty
|
||||
stow g13
|
||||
stow git
|
||||
stow gtk
|
||||
stow i3
|
||||
stow i3status
|
||||
stow kitty
|
||||
stow polybar
|
||||
stow rofi
|
||||
stow waybar
|
||||
stow mako
|
||||
stow scripts
|
||||
stow orcaslicer
|
||||
}
|
||||
|
||||
function install_python_libs {
|
||||
pip install -r requirements.txt
|
||||
}
|
||||
|
||||
setup
|
||||
systemd
|
||||
update
|
||||
dotfiles
|
||||
stow_dotfiles
|
||||
install_python_libs
|
||||
emacs
|
||||
@@ -0,0 +1,48 @@
|
||||
font_family Inconsolata Medium
|
||||
font_size 12.0
|
||||
|
||||
# Text Spacing
|
||||
adjust_line_height 0
|
||||
adjust_column_width 0
|
||||
|
||||
cursor #FFCDD2
|
||||
cursor_shape beam
|
||||
cursor_blink_interval 0.0
|
||||
cursor_stop_blinking_after 0.0
|
||||
|
||||
scrollback_lines 10000
|
||||
|
||||
foreground #0288D1
|
||||
background #000000
|
||||
selection_foreground #FFCDD2
|
||||
selection_background #E91E63
|
||||
|
||||
# Terminal Color Table
|
||||
# black
|
||||
color0 #000000
|
||||
color8 #767676
|
||||
# red
|
||||
color1 #cc0403
|
||||
color9 #f2201f
|
||||
# green
|
||||
color2 #19cb00
|
||||
color10 #23fd00
|
||||
# yellow
|
||||
color3 #cecb00
|
||||
color11 #fffd00
|
||||
# blue
|
||||
color4 #0d73cc
|
||||
color12 #1a8fff
|
||||
# magenta
|
||||
color5 #cb1ed1
|
||||
color13 #fd28ff
|
||||
# cyan
|
||||
color6 #0dcdcd
|
||||
color14 #14ffff
|
||||
# white
|
||||
color7 #dddddd
|
||||
color15 #ffffff
|
||||
|
||||
background_opacity 0.0
|
||||
dynamic_background_opacity no
|
||||
dim_opacity 0.75
|
||||
@@ -0,0 +1,104 @@
|
||||
# JACK client config file for PipeWire version "0.3.48" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/jack.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/jack.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
mem.mlock-all = true
|
||||
log.level = 0
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
#<factory-name regex> = <library-name>
|
||||
#
|
||||
# Used to find spa factory names. It maps an spa factory name
|
||||
# regular expression to a library name that should contain
|
||||
# that factory.
|
||||
#
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
#{ name = <module-name>
|
||||
# [ args = { <key> = <value> ... } ]
|
||||
# [ flags = [ [ ifexists ] [ nofail ] ]
|
||||
#}
|
||||
#
|
||||
# Loads a module with the given parameters.
|
||||
# If ifexists is given, the module is ignored when it is not found.
|
||||
# If nofail is given, module initialization failures are ignored.
|
||||
#
|
||||
#
|
||||
# Boost the data thread priority.
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
#rt.prio = 88
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
|
||||
# The native communication protocol.
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
|
||||
# Allows creating nodes that run in the context of the
|
||||
# client. Is used by all clients that want to provide
|
||||
# data to PipeWire.
|
||||
{ name = libpipewire-module-client-node }
|
||||
|
||||
# Allows applications to create metadata objects. It creates
|
||||
# a factory for Metadata objects.
|
||||
{ name = libpipewire-module-metadata }
|
||||
]
|
||||
|
||||
# global properties for all jack clients
|
||||
jack.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.rate = 1/48000
|
||||
#node.quantum = 1024/48000
|
||||
#node.lock-quantum = true
|
||||
#node.force-quantum = 0
|
||||
#jack.show-monitor = true
|
||||
#jack.merge-monitor = false
|
||||
#jack.short-name = false
|
||||
#jack.filter-name = false
|
||||
#
|
||||
# allow: Don't restrict self connect requests
|
||||
# fail-external: Fail self connect requests to external ports only
|
||||
# ignore-external: Ignore self connect requests to external ports only
|
||||
# fail-all: Fail all self connect requests
|
||||
# ignore-all: Ignore all self connect requests
|
||||
#jack.self-connect-mode = allow
|
||||
#jack.locked-process = true
|
||||
#jack.default-as-system = false
|
||||
}
|
||||
|
||||
# client specific properties
|
||||
jack.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# all keys must match the value. ~ starts regex.
|
||||
#client.name = "Carla"
|
||||
#application.process.binary = "jack_simple_client"
|
||||
#application.name = "~jack_simple_client.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.latency = 512/48000
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,139 @@
|
||||
# PulseAudio config file for PipeWire version "0.3.48" #
|
||||
#
|
||||
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||
# or in ~/.config/pipewire for local changes.
|
||||
#
|
||||
# It is also possible to place a file with an updated section in
|
||||
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
|
||||
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
|
||||
#
|
||||
|
||||
context.properties = {
|
||||
## Configure properties in the system.
|
||||
#mem.warn-mlock = false
|
||||
#mem.allow-mlock = true
|
||||
mem.mlock-all = true
|
||||
#log.level = 2
|
||||
|
||||
#default.clock.quantum-limit = 8192
|
||||
}
|
||||
|
||||
context.spa-libs = {
|
||||
audio.convert.* = audioconvert/libspa-audioconvert
|
||||
support.* = support/libspa-support
|
||||
}
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-rt
|
||||
args = {
|
||||
nice.level = -11
|
||||
#rt.prio = 88
|
||||
#rt.time.soft = -1
|
||||
#rt.time.hard = -1
|
||||
}
|
||||
flags = [ ifexists nofail ]
|
||||
}
|
||||
{ name = libpipewire-module-protocol-native }
|
||||
{ name = libpipewire-module-client-node }
|
||||
{ name = libpipewire-module-adapter }
|
||||
{ name = libpipewire-module-metadata }
|
||||
|
||||
{ name = libpipewire-module-protocol-pulse
|
||||
args = {
|
||||
# the addresses this server listens on
|
||||
server.address = [
|
||||
"unix:native"
|
||||
#"unix:/tmp/something" # absolute paths may be used
|
||||
#"tcp:4713" # IPv4 and IPv6 on all addresses
|
||||
#"tcp:[::]:9999" # IPv6 on all addresses
|
||||
#"tcp:127.0.0.1:8888" # IPv4 on a single address
|
||||
#
|
||||
#{ address = "tcp:4713" # address
|
||||
# max-clients = 64 # maximum number of clients
|
||||
# listen-backlog = 32 # backlog in the server listen queue
|
||||
# client.access = "restricted" # permissions for clients
|
||||
#}
|
||||
]
|
||||
#pulse.min.req = 256/48000 # 5ms
|
||||
#pulse.default.req = 960/48000 # 20 milliseconds
|
||||
#pulse.min.frag = 256/48000 # 5ms
|
||||
#pulse.default.frag = 96000/48000 # 2 seconds
|
||||
#pulse.default.tlength = 96000/48000 # 2 seconds
|
||||
#pulse.min.quantum = 256/48000 # 5ms
|
||||
#pulse.default.format = F32
|
||||
#pulse.default.position = [ FL FR ]
|
||||
# These overrides are only applied when running in a vm.
|
||||
vm.overrides = {
|
||||
pulse.min.quantum = 1024/48000 # 22ms
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
# Extra modules can be loaded here. Setup in default.pa can be moved here
|
||||
context.exec = [
|
||||
{ path = "pactl" args = "load-module module-always-sink" }
|
||||
#{ path = "pactl" args = "load-module module-switch-on-connect" }
|
||||
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
|
||||
]
|
||||
|
||||
stream.properties = {
|
||||
#node.latency = 1024/48000
|
||||
#node.autoconnect = true
|
||||
#resample.quality = 4
|
||||
#channelmix.normalize = true
|
||||
#channelmix.mix-lfe = false
|
||||
#channelmix.upmix = false
|
||||
#channelmix.lfe-cutoff = 0
|
||||
#channelmix.fc-cutoff = 0
|
||||
#channelmix.rear-delay = 12.0
|
||||
#channelmix.stereo-widen = 0.0
|
||||
#channelmix.hilbert-taps = 0
|
||||
}
|
||||
|
||||
# client/stream specific properties
|
||||
pulse.rules = [
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
# all keys must match the value. ~ starts regex.
|
||||
#client.name = "Firefox"
|
||||
#application.process.binary = "teams"
|
||||
#application.name = "~speech-dispatcher.*"
|
||||
}
|
||||
]
|
||||
actions = {
|
||||
update-props = {
|
||||
#node.latency = 512/48000
|
||||
}
|
||||
# Possible quirks:"
|
||||
# force-s16-info forces sink and source info as S16 format
|
||||
# remove-capture-dont-move removes the capture DONT_MOVE flag
|
||||
#quirks = [ ]
|
||||
}
|
||||
}
|
||||
{
|
||||
# skype does not want to use devices that don't have an S16 sample format.
|
||||
matches = [
|
||||
{ application.process.binary = "teams" }
|
||||
{ application.process.binary = "skypeforlinux" }
|
||||
]
|
||||
actions = { quirks = [ force-s16-info ] }
|
||||
}
|
||||
{
|
||||
# firefox marks the capture streams as don't move and then they
|
||||
# can't be moved with pavucontrol or other tools.
|
||||
matches = [ { application.process.binary = "firefox" } ]
|
||||
actions = { quirks = [ remove-capture-dont-move ] }
|
||||
}
|
||||
{
|
||||
# speech dispatcher asks for too small latency and then underruns.
|
||||
matches = [ { application.name = "~speech-dispatcher*" } ]
|
||||
actions = {
|
||||
update-props = {
|
||||
pulse.min.req = 1024/48000 # 21ms
|
||||
pulse.min.quantum = 1024/48000 # 21ms
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user