Compare commits

...

153 Commits

Author SHA1 Message Date
5613fdefa9 AquaAI alias 2025-06-21 16:36:53 -04:00
08b48fa825 Initial release of AquaAI 2025-06-21 16:32:12 -04:00
3f4190e95a Backlight animation 2025-05-11 09:07:11 -04:00
d1d88aa7b3 Hyprlock and fullscreen 2025-05-11 09:05:01 -04:00
981d514156 Use rofi 2025-04-20 17:11:51 -04:00
cce671b9fc Switch to Brave for i3 2025-04-20 15:18:36 -04:00
bd8d5a96ad Update hyprland config 2025-04-20 15:17:44 -04:00
a54305b837 Git stash alias 2025-04-17 07:06:49 -04:00
ee547a17ac Fix Reaper install 2025-04-15 08:08:23 -04:00
2a4937053d Fix audio startup on desktop 2025-02-21 18:19:22 -05:00
22ff857994 AM autocomplete 2025-02-21 13:34:52 -05:00
3debbe1eb7 Fix Davinci Resolve installer 2025-01-26 11:29:27 -05:00
e242ba7c07 Update alacritty config for new version 2025-01-26 11:23:33 -05:00
31f27a9c84 OrcaSlicer settings 2025-01-26 11:21:07 -05:00
75e898b8f7 Fix wireplumber auto connect 2025-01-26 11:15:35 -05:00
e253055758 AquaVoron 2.4 configs 2024-10-11 18:38:41 -04:00
577fde309b Use startup script for hyprland 2024-08-22 19:01:25 -04:00
0a95cc86da Framework startup programs 2024-08-20 09:40:02 -04:00
660f4d366d Hyprland config files 2024-08-15 21:33:10 -04:00
9afabc82fe Initial hyprland config 2024-08-15 18:52:07 -04:00
538016df16 Update Orcaslicer CR-10s settings 2024-07-24 06:36:05 -04:00
776978c0f9 Update appimages 2024-07-24 06:34:28 -04:00
a6f8245241 Launch Librewolf on startup 2024-06-23 09:22:03 -04:00
49abb1b949 Fix wireplumber auto connect 2024-06-23 09:21:29 -04:00
390daca277 Switch to Librewolf 2024-06-23 07:47:04 -04:00
6f807aa72f Fix dragonframe installer download 2024-05-19 10:10:49 -04:00
c19898373f Global gitignore 2024-02-18 10:01:35 -05:00
7c1593e790 Install git 2024-02-17 20:17:10 -05:00
6bedc5114b Git branch better format 2024-02-17 20:16:58 -05:00
d6fca68b54 Git remember merge conflict solve 2024-02-17 20:14:31 -05:00
c740264352 Git config 2024-02-17 20:01:51 -05:00
7dfb19f6c7 Support for new Dragonframe versioning 2024-01-23 08:22:29 -05:00
0f671a6aab Convert alacritty to toml config 2024-01-10 09:08:49 -05:00
05409b68dd Move startup to bash script 2023-12-31 18:10:50 -05:00
97872de9c7 Orcaslicer settings update 2023-12-25 17:22:34 -05:00
2bc1dbc1ed Improved PETG printing 2023-12-09 20:14:51 -05:00
82fca6f7b3 Set editor to emacs 2023-12-05 08:36:43 -05:00
f3ea013e75 Fix stock launching 2023-12-01 20:14:59 -05:00
7124a3e72a Update polybar for new script location 2023-11-29 08:35:54 -05:00
d311020284 Update start audio for new script location 2023-11-29 08:35:07 -05:00
390f8d2a0e Stow orcaslicer 2023-11-25 13:11:34 -05:00
35f7ddfe63 Use new script location 2023-11-25 10:23:31 -05:00
bafcfae28d Fix update script 2023-11-25 09:54:08 -05:00
b41a4141f2 Stow scripts 2023-11-25 09:35:34 -05:00
547eb10705 Install python libs 2023-11-24 21:34:20 -05:00
4ad576de67 i3 polkit 2023-11-24 20:03:13 -05:00
8661d65d55 Stow mako 2023-11-24 19:04:46 -05:00
cdd6f23f30 Stow waybar 2023-11-24 19:03:18 -05:00
4c1a3d0647 Stow rofi 2023-11-24 19:00:57 -05:00
5e6e96e990 Stow polybar 2023-11-24 18:58:37 -05:00
48710770b8 Stow kitty and i3status 2023-11-24 18:46:15 -05:00
694f66c435 Remove host block 2023-11-24 18:37:22 -05:00
6a177305b5 Stow i3 2023-11-24 18:25:53 -05:00
86e889e6cb Remove GTK theme 2023-11-24 18:10:52 -05:00
aa57e13930 GTK stow 2023-11-24 18:06:59 -05:00
7de6986353 Stow g13 2023-11-24 16:35:32 -05:00
11a5082632 Stow alacritty 2023-11-24 16:26:32 -05:00
e2a4b4a3e8 Move zsh to stow 2023-11-24 15:47:27 -05:00
2fdf3fab10 Update install method to use stow 2023-11-24 15:40:58 -05:00
07a406ec79 Move install script 2023-11-24 15:39:11 -05:00
b889d0d667 Wireplumber autoconnect speakers 2023-11-24 15:26:45 -05:00
f59c3a52c6 Fix yabridge installer 2023-11-24 11:11:20 -05:00
241b950ee6 Audio startup sink functions 2023-11-24 11:10:35 -05:00
c036dafc8a Disable mouse shortcuts for TF2 2023-11-24 11:07:50 -05:00
edc2b7d692 Increase terminal font size 2023-11-24 11:06:55 -05:00
79b6af74af zsh prompt style 2023-11-24 11:00:40 -05:00
1165f2ab93 Overwatch 2 from Steam 2023-08-12 10:44:23 -04:00
f061060796 Streamdeck USB rule 2023-07-02 17:31:01 -04:00
907ffb0e53 Streamdeck service 2023-07-02 17:30:25 -04:00
d441ad6e34 Factorio bindings 2023-07-02 17:28:41 -04:00
7dfe52d6e5 Hack for DaVinci Resolve libs 2023-07-02 14:40:04 -04:00
e85b63649e i3 Support for new Steam interface 2023-07-02 14:35:33 -04:00
e80a2ed715 Select newest version of Dragonframe 2023-05-13 15:48:46 -04:00
c2dd1c1942 Remove deprecated alacritty settings 2023-05-12 07:30:38 -04:00
c789c73630 Update mouse battery device name 2023-04-25 16:56:12 -04:00
083d50f223 AAX converter 2023-04-25 07:54:10 -04:00
f4686e50f7 Made scripts executable 2023-01-22 19:29:10 -05:00
37cc141f94 Add support for new i3 version 2023-01-05 15:41:51 -05:00
75e07a6ff7 Add Factorio binding 2022-12-31 11:07:30 -05:00
869a4ce634 SuperSlicer installer 2022-12-04 12:56:32 -05:00
0a3eb6a4b7 AquaMix for Clarett+ 8Pre 2022-11-10 20:01:46 -05:00
f319f26fcb Fix Dragonframe download url parser 2022-11-09 07:59:53 -05:00
2bf416ce93 Yabridge install use GitHub API 2022-09-17 10:11:49 -04:00
af38abbff2 Dragonframe User-Agent 2022-09-11 13:48:30 -04:00
8ccabe7927 Rust installer 2022-09-07 08:52:00 -04:00
60a2049634 NAS script executable 2022-09-04 15:50:24 -04:00
b61a1cc192 Change polybar desktop 2022-09-02 20:26:55 -04:00
4a369196c9 Firefox startup delay 2022-09-02 20:26:19 -04:00
4a2341ce6f Arkham Knight electric tool 2022-09-02 20:25:33 -04:00
1208f9c140 Desktop Signal startup and monitor change 2022-09-02 19:00:41 -04:00
1aa1fd18f5 Signal startup 2022-09-01 10:46:23 -04:00
0e5fd8a923 yabridge install wine-staging 2022-08-27 20:05:20 -04:00
67be4e0b36 zsh install script 2022-08-27 19:02:54 -04:00
19bd5c6dc8 Sway desktop install script 2022-08-25 08:10:59 -04:00
fc45f10664 Bitwig waybar icon 2022-08-21 19:55:35 -04:00
52091439d4 Framework automatic move program workspace 2022-08-21 19:12:13 -04:00
c33086e5f6 Mako config 2022-08-20 14:53:00 -04:00
974706a8c3 Framework program startup, scale, and screen brightness 2022-08-20 12:26:06 -04:00
a91b34cb7f Git diff branch alias 2022-08-19 13:31:50 -04:00
148a34d04f Background Nextcloud startup 2022-08-19 13:31:29 -04:00
6d04a084cc Sway lockscreen for framework 2022-08-19 13:14:41 -04:00
f5fc6c2a0e Fix Dragonframe install check 2022-08-19 12:49:22 -04:00
e3d140ebb4 Sway keyring support 2022-08-19 12:39:56 -04:00
a477f33c56 Framework touchpad acceleration 2022-08-19 12:38:16 -04:00
d4ab38d7c4 Framework wallpaper 2022-08-18 20:29:03 -04:00
1719a9bb70 Framework mouse, screen brightness, and media controls 2022-08-18 19:11:09 -04:00
b4cf9eccef Basic sway support for framework 2022-08-18 16:38:00 -04:00
c62bdae67d Tile wm config gen support for just sway 2022-08-18 15:58:35 -04:00
42728fe683 Setup settings config file 2022-08-18 15:47:34 -04:00
215f5c9bb8 Check if config is created before using it 2022-08-18 14:17:51 -04:00
be5e6212b1 Removed sudo flatpak 2022-08-14 17:58:34 -04:00
04f4a9aff2 Flatpak use sudo 2022-08-14 17:05:43 -04:00
ccd44ffcef Support for Focusrite Clarett+ 8Pre 2022-07-18 15:28:49 -04:00
bf626cbcf6 Switched interface to pro audio profile 2022-07-16 08:07:32 -04:00
b0d9ad3855 Fix ES-5 connection to ES-9 2022-07-02 20:58:25 -04:00
6f51eef489 Fixed audio startup not connecting mic and speakers 2022-06-22 17:01:13 -04:00
347df83ffe Pipewire configs 2022-04-15 18:35:09 -04:00
2c1807d668 Wayland notifications 2022-04-05 14:00:10 -04:00
a98ae738dd Arkham Knight bindings 2022-03-29 20:25:16 -04:00
ab8d6c1f22 Switched to using Wireplumber 2022-03-12 17:45:50 -05:00
6a77a0205e Changed Bitwig download URL 2022-03-10 12:40:13 -05:00
fa7684c21e Updated alacritty background 2022-03-07 16:46:11 -05:00
aa965aca44 Fixed Bitwig installer 2021-12-28 09:42:18 -05:00
728ed5527d Minecraft throw item button 2021-12-27 16:16:23 -05:00
1ef1ab2108 Merge branch 'master' of github.com:AquaMorph/dotfiles 2021-12-04 18:49:07 -05:00
74c78e877b Sway desktop background for w530 2021-12-04 18:48:57 -05:00
d250e6c3ce Added YouTube TV as video platform 2021-11-26 07:19:31 -05:00
8622360433 Among Us bindings 2021-11-14 16:30:54 -05:00
53671fb05c Rofi window text 2021-10-23 11:46:35 -04:00
c967d9634f Fixed config for new rofi format 2021-10-23 11:43:30 -04:00
4812b349b5 Initial support for sway and waybar 2021-10-22 16:37:11 -04:00
4c078fd92a Better ES-9 startup for Pipewire 2021-10-12 18:19:07 -04:00
b01c5ff59d Added Disney Plus as a video player 2021-10-12 18:12:47 -04:00
854208f469 ES-5 to Pipewire 2021-10-10 16:25:50 -04:00
117e37410e Switched to Pipewire 2021-09-25 17:57:08 -04:00
4c68a6211b Removed mouse battery from Polybar 2021-08-10 19:15:44 -04:00
34a24b2d17 Update when multiple versions of Dragonframe are installed 2021-07-14 20:59:31 -04:00
a536ee7d47 Toggle mic on w530 2021-06-21 09:34:28 -04:00
dd3b9efa61 Fixed background cursor spinning when opening terminal 2021-06-14 22:03:22 -04:00
2f0849911d Fixed background image startup on w530 2021-06-14 14:57:23 -04:00
ea23e2a4a7 Fixed Webull opening in wrong window 2021-06-14 09:22:22 -04:00
e44f969ba2 Made install scripts executable 2021-06-10 19:37:18 -04:00
a3b9b70cb7 Darker polybar 2021-06-10 17:02:59 -04:00
fb2e5616c0 Added Webull 2021-06-10 11:33:54 -04:00
25f653f6af Changed newline method 2021-06-07 09:06:29 -04:00
5d4942f074 Bitwig installer executeable 2021-06-07 08:58:49 -04:00
18409c1140 Newline between updates 2021-06-07 08:58:16 -04:00
a9142a723b Fixed spinning cursor on background 2021-05-30 12:46:48 -04:00
ed6757270c Moved alacritty url to hints 2021-05-30 11:15:39 -04:00
616405a484 Graphics toggle executable 2021-05-23 10:31:32 -04:00
5699501192 NextCloud sync client startup 2021-05-18 14:04:01 -04:00
3416d626cf Fixed keyring for all computers 2021-05-18 12:55:57 -04:00
8669d71ebc ES-9 Rule 2021-05-18 12:51:33 -04:00
137 changed files with 4086 additions and 61516 deletions

File diff suppressed because it is too large Load Diff

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
i3/config
i3/.config/i3/config
settings.conf
systemd/user/*/*

36
.zshrc
View File

@ -1,36 +0,0 @@
HISTFILE=~/.zsh_history
HISTSIZE=99999999
SAVEHIST=99999999
setopt appendhistory autocd extendedglob nomatch notify
unsetopt beep
bindkey -e
zstyle :compinstall filename '~/.zshrc'
autoload -Uz compinit
compinit
# Text Editor
alias emacs='emacs -nw'
alias e='emacs -nw'
# Other
alias i='sudo dnf install'
alias d='sudo dnf'
alias u='sh ~/.config/scripts/update.sh'
alias dot='cd ~/dotfiles'
alias h='cd ~/git/cacolglazier.com/ && hugo server'
# Git
alias c='git commit -m'
alias a='git add'
alias ga='git add -A'
alias gu='git add -u'
alias s='git status'
alias g='git'
alias p='git pull'
alias gp='git push'
export TERM=xterm
# Daisy build toolkit
GCC_PATH=~/dev/gcc-arm-none-eabi-9-2020-q2-update/bin
export PATH=$GCC_PATH:$PATH

View File

@ -7,12 +7,7 @@ A collection of config files and scripts for Fedora GNU/Linux.
Run the following command to install
```sh
cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/scripts/setup.sh
```
Install the needed Python packages
```sh
pip install -r requirements.txt
cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/install.sh
```
## Scripts

View File

@ -0,0 +1,606 @@
[bell]
animation = "EaseOutExpo"
color = "0xffffff"
duration = 0
[colors]
draw_bold_text_with_bright_colors = true
[colors.bright]
black = "0x666666"
blue = "0x7aa6da"
cyan = "0x54ced6"
green = "0x9ec400"
magenta = "0xb77ee0"
red = "0xff3334"
white = "0xffffff"
yellow = "0xe7c547"
[colors.normal]
black = "0x000000"
blue = "0x7aa6da"
cyan = "0x70c0ba"
green = "0xb9ca4a"
magenta = "0xc397d8"
red = "0xd54e53"
white = "0xeaeaea"
yellow = "0xe6c547"
[colors.primary]
background = "0x000000"
foreground = "0x0288d1"
[cursor]
style = "Block"
unfocused_hollow = true
[debug]
log_level = "Warn"
persistent_logging = false
print_events = false
render_timer = false
[font]
size = 16.0
[font.glyph_offset]
x = 0
y = 0
[font.normal]
family = "Inconsolata"
style = "Monospace"
[font.offset]
x = 0
y = 0
[[keyboard.bindings]]
action = "Paste"
key = "Paste"
[[keyboard.bindings]]
action = "Copy"
key = "Copy"
[[keyboard.bindings]]
action = "ClearLogNotice"
key = "L"
mods = "Control"
[[keyboard.bindings]]
chars = "\f"
key = "L"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3H"
key = "Home"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001BOH"
key = "Home"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[H"
key = "Home"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;3F"
key = "End"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001BOF"
key = "End"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[F"
key = "End"
mode = "~AppCursor"
[[keyboard.bindings]]
action = "ScrollPageUp"
key = "PageUp"
mode = "~Alt"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[5;2~"
key = "PageUp"
mode = "Alt"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[5;5~"
key = "PageUp"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[5;3~"
key = "PageUp"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[5~"
key = "PageUp"
[[keyboard.bindings]]
action = "ScrollPageDown"
key = "PageDown"
mode = "~Alt"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[6;2~"
key = "PageDown"
mode = "Alt"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[6;5~"
key = "PageDown"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[6;3~"
key = "PageDown"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[6~"
key = "PageDown"
[[keyboard.bindings]]
chars = "\u001B[Z"
key = "Tab"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u007F"
key = "Back"
[[keyboard.bindings]]
chars = "\u001B\u007F"
key = "Back"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[2~"
key = "Insert"
[[keyboard.bindings]]
chars = "\u001B[3~"
key = "Delete"
[[keyboard.bindings]]
chars = "\u001B[1;2D"
key = "Left"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5D"
key = "Left"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3D"
key = "Left"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[D"
key = "Left"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOD"
key = "Left"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2C"
key = "Right"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5C"
key = "Right"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3C"
key = "Right"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[C"
key = "Right"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOC"
key = "Right"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2A"
key = "Up"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5A"
key = "Up"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3A"
key = "Up"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[A"
key = "Up"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOA"
key = "Up"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001B[1;2B"
key = "Down"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5B"
key = "Down"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;3B"
key = "Down"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[B"
key = "Down"
mode = "~AppCursor"
[[keyboard.bindings]]
chars = "\u001BOB"
key = "Down"
mode = "AppCursor"
[[keyboard.bindings]]
chars = "\u001BOP"
key = "F1"
[[keyboard.bindings]]
chars = "\u001BOQ"
key = "F2"
[[keyboard.bindings]]
chars = "\u001BOR"
key = "F3"
[[keyboard.bindings]]
chars = "\u001BOS"
key = "F4"
[[keyboard.bindings]]
chars = "\u001B[15~"
key = "F5"
[[keyboard.bindings]]
chars = "\u001B[17~"
key = "F6"
[[keyboard.bindings]]
chars = "\u001B[18~"
key = "F7"
[[keyboard.bindings]]
chars = "\u001B[19~"
key = "F8"
[[keyboard.bindings]]
chars = "\u001B[20~"
key = "F9"
[[keyboard.bindings]]
chars = "\u001B[21~"
key = "F10"
[[keyboard.bindings]]
chars = "\u001B[23~"
key = "F11"
[[keyboard.bindings]]
chars = "\u001B[24~"
key = "F12"
[[keyboard.bindings]]
chars = "\u001B[1;2P"
key = "F1"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;2Q"
key = "F2"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;2R"
key = "F3"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;2S"
key = "F4"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[15;2~"
key = "F5"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[17;2~"
key = "F6"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[18;2~"
key = "F7"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[19;2~"
key = "F8"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[20;2~"
key = "F9"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[21;2~"
key = "F10"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[23;2~"
key = "F11"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[24;2~"
key = "F12"
mods = "Shift"
[[keyboard.bindings]]
chars = "\u001B[1;5P"
key = "F1"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;5Q"
key = "F2"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;5R"
key = "F3"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;5S"
key = "F4"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[15;5~"
key = "F5"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[17;5~"
key = "F6"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[18;5~"
key = "F7"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[19;5~"
key = "F8"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[20;5~"
key = "F9"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[21;5~"
key = "F10"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[23;5~"
key = "F11"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[24;5~"
key = "F12"
mods = "Control"
[[keyboard.bindings]]
chars = "\u001B[1;6P"
key = "F1"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[1;6Q"
key = "F2"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[1;6R"
key = "F3"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[1;6S"
key = "F4"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[15;6~"
key = "F5"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[17;6~"
key = "F6"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[18;6~"
key = "F7"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[19;6~"
key = "F8"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[20;6~"
key = "F9"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[21;6~"
key = "F10"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[23;6~"
key = "F11"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[24;6~"
key = "F12"
mods = "Alt"
[[keyboard.bindings]]
chars = "\u001B[1;3P"
key = "F1"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[1;3Q"
key = "F2"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[1;3R"
key = "F3"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[1;3S"
key = "F4"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[15;3~"
key = "F5"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[17;3~"
key = "F6"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[18;3~"
key = "F7"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[19;3~"
key = "F8"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[20;3~"
key = "F9"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[21;3~"
key = "F10"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[23;3~"
key = "F11"
mods = "Super"
[[keyboard.bindings]]
chars = "\u001B[24;3~"
key = "F12"
mods = "Super"
[[keyboard.bindings]]
chars = """
"""
key = "NumpadEnter"
[mouse]
hide_when_typing = false
[[mouse.bindings]]
action = "PasteSelection"
mouse = "Middle"
[scrolling]
history = 10000
multiplier = 3
[selection]
save_to_clipboard = false
semantic_escape_chars = ",│`|:\"' ()[]{}<>"
[window]
decorations = "full"
dynamic_padding = false
opacity = 0.8
startup_mode = "Windowed"
[window.dimensions]
columns = 0
lines = 0
[window.padding]
x = 4
y = 4
[general]
live_config_reload = true
working_directory = "None"

View File

@ -1,626 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: xterm-256color
window:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions:
columns: 0
lines: 0
# Window position (changes require restart)
#
# Specified in number of pixels.
# If the position is not set, the window manager will handle the placement.
#position:
# x: 0
# y: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
x: 4
y: 4
# Spread additional padding evenly around the terminal content.
dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background, but no title bar buttons
decorations: full
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
startup_mode: Windowed
# Window title
#title: Alacritty
# Window class (Linux only):
#class: Alacritty
scrolling:
# Maximum number of lines in the scrollback buffer.
# Specifying '0' will disable scrolling.
history: 10000
# Number of lines the viewport will move for every line scrolled when
# scrollback is enabled (history > 0).
multiplier: 3
# Faux Scrolling
#
# The `faux_multiplier` setting controls the number of lines the terminal
# should scroll when the alternate screen buffer is active. This is used
# to allow mouse scrolling for applications like `man`.
#
# Specifying `0` will disable faux scrolling.
multiplier: 3
# Font configuration (changes require restart)
font:
# Normal (roman) font face
normal:
# Font family
#
# Default:
# - (macOS) Menlo
# - (Linux) monospace
# - (Windows) Consolas
family: Inconsolata
# The `style` can be specified to pick a specific face.
style: Monospace #Medium #Regular
# Bold font face
#bold:
# Font family
#
# If the bold family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Bold
# Italic font face
#italic:
# Font family
#
# If the italic family is not specified, it will fall back to the
# value specified for the normal font.
#family: monospace
# The `style` can be specified to pick a specific face.
#style: Italic
# Point size
size: 14.0
# Offset is the extra space around each character. `offset.y` can be thought of
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
offset:
x: 0
y: 0
# Glyph offset determines the locations of the glyphs within their cells with
# the default being at the bottom. Increasing `x` moves the glyph to the right,
# increasing `y` moves the glyph upwards.
glyph_offset:
x: 0
y: 0
# Thin stroke font rendering (macOS only)
#
# Thin strokes are suitable for retina displays, but for non-retina screens
# it is recommended to set `use_thin_strokes` to `false`
#
# macOS >= 10.14.x:
#
# If the font quality on non-retina display looks bad then set
# `use_thin_strokes` to `true` and enable font smoothing by running the
# following command:
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
#
# This is a global setting and will require a log out or restart to take
# effect.
use_thin_strokes: true
# If `true`, bold text is drawn using the bright color variants.
draw_bold_text_with_bright_colors: true
# Colors (Tomorrow Night Bright)
colors:
# Default colors
primary:
background: '0x000000'
foreground: '0x0288d1'
# Bright and dim foreground colors
#
# The dimmed foreground color is calculated automatically if it is not present.
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
# is `false`, the normal foreground color will be used.
#dim_foreground: '0x9a9a9a'
#bright_foreground: '0xffffff'
# Cursor colors
#
# Colors which should be used to draw the terminal cursor. If these are unset,
# the cursor color will be the inverse of the cell color.
#cursor:
# text: '0x000000'
# cursor: '0xffffff'
# Selection colors
#
# Colors which should be used to draw the selection area. If selection
# background is unset, selection color will be the inverse of the cell colors.
# If only text is unset the cell text color will remain the same.
#selection:
# text: '0xeaeaea'
# background: '0x404040'
# Normal colors
normal:
black: '0x000000'
red: '0xd54e53'
green: '0xb9ca4a'
yellow: '0xe6c547'
blue: '0x7aa6da'
magenta: '0xc397d8'
cyan: '0x70c0ba'
white: '0xeaeaea'
# Bright colors
bright:
black: '0x666666'
red: '0xff3334'
green: '0x9ec400'
yellow: '0xe7c547'
blue: '0x7aa6da'
magenta: '0xb77ee0'
cyan: '0x54ced6'
white: '0xffffff'
# Dim colors
#
# If the dim colors are not set, they will be calculated automatically based
# on the `normal` colors.
#dim:
# black: '0x000000'
# red: '0x8c3336'
# green: '0x7a8530'
# yellow: '0x97822e'
# blue: '0x506d8f'
# magenta: '0x80638e'
# cyan: '0x497e7a'
# white: '0x9a9a9a'
# Indexed Colors
#
# The indexed colors include all colors from 16 to 256.
# When these are not set, they're filled with sensible defaults.
#
# Example:
# `- { index: 16, color: '0xff00ff' }`
#
indexed_colors: []
# Visual Bell
#
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
# rung, the terminal background will be set to white and transition back to the
# default background color. You can control the rate of this transition by
# setting the `duration` property (represented in milliseconds). You can also
# configure the transition function by setting the `animation` property.
#
# Values for `animation`:
# - Ease
# - EaseOut
# - EaseOutSine
# - EaseOutQuad
# - EaseOutCubic
# - EaseOutQuart
# - EaseOutQuint
# - EaseOutExpo
# - EaseOutCirc
# - Linear
#
# Specifying a `duration` of `0` will disable the visual bell.
bell:
animation: EaseOutExpo
duration: 0
color: '0xffffff'
# Background opacity
#
# Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 0.8
# Mouse bindings
#
# Available fields:
# - mouse
# - action
# - mods (optional)
#
# Values for `mouse`:
# - Middle
# - Left
# - Right
# - Numeric identifier such as `5`
#
# All available `mods` and `action` values are documented in the key binding
# section.
mouse_bindings:
- { mouse: Middle, action: PasteSelection }
mouse:
# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
double_click: { threshold: 300 }
triple_click: { threshold: 300 }
# If this is `true`, the cursor is temporarily hidden when typing.
hide_when_typing: false
url:
# URL launcher
#
# This program is executed when clicking on a text which is recognized as a URL.
# The URL is always added to the command as the last parameter.
#
# When set to `None`, URL launching will be disabled completely.
#
# Default:
# - (macOS) open
# - (Linux) xdg-open
# - (Windows) explorer
#launcher:
# program: xdg-open
# args: []
# URL modifiers
#
# These are the modifiers that need to be held down for opening URLs when clicking
# on them. The available modifiers are documented in the key binding section.
modifiers: None
selection:
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
# When set to `true`, selected text will be copied to the primary clipboard.
save_to_clipboard: false
# Allow terminal applications to change Alacritty's window title.
window.dynamic_title: true
cursor:
# Cursor style
#
# Values for `style`:
# - ▇ Block
# - _ Underline
# - | Beam
style: Block
# If this is `true`, the cursor will be rendered as a hollow box when the
# window is not focused.
unfocused_hollow: true
# Live config reload (changes require restart)
live_config_reload: true
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
# Default:
# - (Linux/macOS) /bin/bash --login
# - (Windows) powershell
#shell:
# program: /bin/bash
# args:
# - --login
# Startup directory
#
# Directory the shell is started in. If this is unset, or `None`, the working
# directory of the parent process will be used.
working_directory: None
# Windows 10 ConPTY backend (Windows only)
#
# This will enable better color support and may resolve other issues,
# however this API and its implementation is still young and so is
# disabled by default, as stability may not be as good as the winpty
# backend.
#
# Alacritty will fall back to the WinPTY automatically if the ConPTY
# backend cannot be initialized.
enable_experimental_conpty_backend: false
# Send ESC (\x1b) before characters when alt is pressed.
alt_send_esc: true
debug:
# Display the time it takes to redraw each frame.
render_timer: false
# Keep the log file after quitting Alacritty.
persistent_logging: false
# Log level
#
# Values for `log_level`:
# - None
# - Error
# - Warn
# - Info
# - Debug
# - Trace
log_level: Warn
# Print all received window events.
print_events: false
# Record all characters and escape sequences as test data.
ref_test: false
# Key bindings
#
# Key bindings are specified as a list of objects. Each binding will specify a
# key and modifiers required to trigger it, terminal modes where the binding is
# applicable, and what should be done when the key binding fires. It can either
# send a byte sequence to the running application (`chars`), execute a
# predefined action (`action`) or fork and execute a specified command plus
# arguments (`command`).
#
# Bindings are always filled by default, but will be replaced when a new binding
# with the same triggers is defined. To unset a default binding, it can be
# mapped to the `None` action.
#
# Example:
# `- { key: V, mods: Control|Shift, action: Paste }`
#
# Available fields:
# - key
# - mods (optional)
# - chars | action | command (exactly one required)
# - mode (optional)
#
# Values for `key`:
# - `A` -> `Z`
# - `F1` -> `F12`
# - `Key1` -> `Key0`
#
# A full list with available key codes can be found here:
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
#
# Instead of using the name of the keys, the `key` field also supports using
# the scancode of the desired key. Scancodes have to be specified as a
# decimal number.
# This command will allow you to display the hex scancodes for certain keys:
# `showkey --scancodes`
#
# Values for `mods`:
# - Command
# - Control
# - Option
# - Super
# - Shift
# - Alt
#
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
# Whitespace and capitalization is relevant and must match the example.
#
# Values for `chars`:
# The `chars` field writes the specified string to the terminal. This makes
# it possible to pass escape sequences.
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
# the command `showkey -a` outside of tmux.
# Note that applications use terminfo to map escape sequences back to
# keys. It is therefore required to update the terminfo when
# changing an escape sequence.
#
# Values for `action`:
# - Paste
# - PasteSelection
# - Copy
# - IncreaseFontSize
# - DecreaseFontSize
# - ResetFontSize
# - ScrollPageUp
# - ScrollPageDown
# - ScrollLineUp
# - ScrollLineDown
# - ScrollToTop
# - ScrollToBottom
# - ClearHistory
# - Hide
# - Quit
# - ClearLogNotice
# - SpawnNewInstance
# - ToggleFullscreen
# - None
#
# Values for `action` (macOS only):
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
#
# Values for `command`:
# The `command` field must be a map containing a `program` string and
# an `args` array of command line parameter strings.
#
# Example:
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
#
# Values for `mode`:
# - ~AppCursor
# - AppCursor
# - ~AppKeypad
# - AppKeypad
key_bindings:
# (Windows/Linux only)
#- { key: V, mods: Control|Shift, action: Paste }
#- { key: C, mods: Control|Shift, action: Copy }
#- { key: Insert, mods: Shift, action: PasteSelection }
#- { key: Key0, mods: Control, action: ResetFontSize }
#- { key: Equals, mods: Control, action: IncreaseFontSize }
#- { key: Add, mods: Control, action: IncreaseFontSize }
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
#- { key: Minus, mods: Control, action: DecreaseFontSize }
# (macOS only)
#- { key: Key0, mods: Command, action: ResetFontSize }
#- { key: Equals, mods: Command, action: IncreaseFontSize }
#- { key: Add, mods: Command, action: IncreaseFontSize }
#- { key: Minus, mods: Command, action: DecreaseFontSize }
#- { key: K, mods: Command, action: ClearHistory }
#- { key: K, mods: Command, chars: "\x0c" }
#- { key: V, mods: Command, action: Paste }
#- { key: C, mods: Command, action: Copy }
#- { key: H, mods: Command, action: Hide }
#- { key: Q, mods: Command, action: Quit }
#- { key: W, mods: Command, action: Quit }
- { key: Paste, action: Paste }
- { key: Copy, action: Copy }
- { key: L, mods: Control, action: ClearLogNotice }
- { key: L, mods: Control, chars: "\x0c" }
- { key: Home, mods: Alt, chars: "\x1b[1;3H" }
- { key: Home, chars: "\x1bOH", mode: AppCursor }
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
- { key: End, mods: Alt, chars: "\x1b[1;3F" }
- { key: End, chars: "\x1bOF", mode: AppCursor }
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
- { key: PageUp, mods: Alt, chars: "\x1b[5;3~" }
- { key: PageUp, chars: "\x1b[5~" }
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
- { key: PageDown, mods: Alt, chars: "\x1b[6;3~" }
- { key: PageDown, chars: "\x1b[6~" }
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
- { key: Back, chars: "\x7f" }
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
- { key: Insert, chars: "\x1b[2~" }
- { key: Delete, chars: "\x1b[3~" }
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
- { key: Left, chars: "\x1bOD", mode: AppCursor }
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
- { key: Right, chars: "\x1bOC", mode: AppCursor }
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
- { key: Up, chars: "\x1bOA", mode: AppCursor }
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
- { key: Down, chars: "\x1bOB", mode: AppCursor }
- { key: F1, chars: "\x1bOP" }
- { key: F2, chars: "\x1bOQ" }
- { key: F3, chars: "\x1bOR" }
- { key: F4, chars: "\x1bOS" }
- { key: F5, chars: "\x1b[15~" }
- { key: F6, chars: "\x1b[17~" }
- { key: F7, chars: "\x1b[18~" }
- { key: F8, chars: "\x1b[19~" }
- { key: F9, chars: "\x1b[20~" }
- { key: F10, chars: "\x1b[21~" }
- { key: F11, chars: "\x1b[23~" }
- { key: F12, chars: "\x1b[24~" }
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
- { key: NumpadEnter, chars: "\n" }

View File

@ -0,0 +1,32 @@
stickzone del STICK_PAGEUP
stickzone del STICK_PAGEDOWN
stickzone bounds STICK_LEFT 0.0 0.3 0.2 0.7
stickzone bounds STICK_RIGHT 0.8 0.3 1.0 0.7
stickzone bounds STICK_UP 0.3 0.0 0.7 0.2
stickzone bounds STICK_DOWN 0.3 0.8 0.7 1.0
# Map Toggle / Sabotage
bind LEFT KEY_TAB
# Use Vent as Imposter
bind STICK_DOWN KEY_V
# Interact
bind G22 KEY_SPACE
# Kill
bind STICK_UP KEY_Q
# Report
bind G6 KEY_R
# Role Ability
bind DOWN KEY_F
# Character Movement
bind G4 KEY_W
bind G10 KEY_A
bind G11 KEY_S
bind G12 KEY_D
rgb 255 0 0

Binary file not shown.

View File

@ -0,0 +1,39 @@
stickzone del STICK_PAGEUP
stickzone del STICK_PAGEDOWN
stickzone bounds STICK_LEFT 0.0 0.3 0.2 0.7
stickzone bounds STICK_RIGHT 0.8 0.3 1.0 0.7
stickzone bounds STICK_UP 0.3 0.0 0.7 0.2
stickzone bounds STICK_DOWN 0.3 0.8 0.7 1.0
# Character Movement
bind G4 KEY_W
bind G10 KEY_A
bind G11 KEY_S
bind G12 KEY_D
bind G22 KEY_SPACE
bind G20 KEY_RIGHTCTRL
bind G15 KEY_RIGHTCTRL
# Hook
bind STICK_UP KEY_F
bind STICK_DOWN KEY_F
# Enter Batmobile
bind DOWN KEY_E
# Detective Mode
bind G5 LEFT KEY_X
# Choose gadget
bind G14 KEY_G
# Augmented Reality Challenges
bind G19 KEY_ C
# Mission Choice
bind G1 KEY_V
# Electric Tool
bind G6 KEY_4
rgb 255 5 5

Binary file not shown.

View File

@ -0,0 +1,48 @@
stickzone del STICK_PAGEUP
stickzone del STICK_PAGEDOWN
stickzone bounds STICK_LEFT 0.0 0.3 0.2 0.7
stickzone bounds STICK_RIGHT 0.8 0.3 1.0 0.7
stickzone bounds STICK_UP 0.3 0.0 0.7 0.2
stickzone bounds STICK_DOWN 0.3 0.8 0.7 1.0
# Character screen / Confirm Window
bind G5 KEY_E
# Clear cursor / Pipette tool
bind G3 KEY_Q
# Rotate
bind G6 KEY_R
# Flip blueprints horizontal / Pickup ground item
bind G13 KEY_F
# Flip blueprints vertical
bind G14 KEY_G
# Drop Item
bind G16 KEY_Z
# Shoot selected
bind G18 KEY_C
#
bind STICK_UP KEY_1
bind STICK_RIGHT KEY_2
bind STICK_DOWN KEY_3
bind STICK_LEFT KEY_4
# Other
bind G22 KEY_SPACE
bind G15 KEY_LEFTSHIFT
bind G20 KEY_LEFTCTRL
bind DOWN KEY_ENTER
bind LEFT KEY_TAB
# Character Movement
bind G4 KEY_W
bind G10 KEY_A
bind G11 KEY_S
bind G12 KEY_D
rgb 230 145 0

Binary file not shown.

View File

@ -12,6 +12,7 @@ bind G11 KEY_S
bind G12 KEY_D
# Other
bind G3 KEY_Q
bind G5 KEY_E
bind G1 KEY_ESC
bind G22 KEY_SPACE

12
git/.gitconfig Normal file
View File

@ -0,0 +1,12 @@
[user]
name = Christian Colglazier
email = christian@cacolglazier.com
[core]
editor = emacs
excludesFile = ~/.gitignore
[rerere]
enabled = true
[column]
ui = auto
[branch]
sort = -committerdate

63
git/.gitignore vendored Normal file
View File

@ -0,0 +1,63 @@
#### Emacs ####
# -*- mode: gitignore; -*-
*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
*.elc
auto-save-list
tramp
.\#*
# Org-mode
.org-id-locations
*_archive
# flymake-mode
*_flymake.*
# eshell files
/eshell/history
/eshell/lastdir
# elpa packages
/elpa/
# reftex files
*.rel
# AUCTeX auto folder
/auto/
# cask packages
.cask/
dist/
# Flycheck
flycheck_*.el
# server auth directory
/server/
# projectiles files
.projectile
# directory configuration
.dir-locals.el
#### vim ####
# Swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
# Session
Session.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags

View File

@ -1,6 +1,6 @@
[Settings]
gtk-icon-theme-name=Flat-Remix-Blue-Dark
gtk-theme-name=Flat-Remix-GTK-Blue-Darkest-Solid
#gtk-icon-theme-name=Flat-Remix-Blue-Dark
#gtk-theme-name=Flat-Remix-GTK-Blue-Darkest-Solid
gtk-font-name=SF Pro Display 14
gtk-application-prefer-dark-theme=1
gtk-decoration-layout=0

View File

@ -1,6 +1,6 @@
[Settings]
gtk-icon-theme-name=Flat-Remix-Blue-Dark
gtk-theme-name=Flat-Remix-GTK-Blue-Darkest-Solid
#gtk-icon-theme-name=Flat-Remix-Blue-Dark
#gtk-theme-name=Flat-Remix-GTK-Blue-Darkest-Solid
gtk-font-name=SF Pro Display 14
gtk-application-prefer-dark-theme=1
gtk-decoration-layout=0

View File

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

View File

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

View File

@ -0,0 +1,4 @@
# Programs
$terminal = alacritty
$fileManager = dolphin
$menu = rofi -show combi

View File

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

View File

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

View File

@ -0,0 +1,6 @@
# Password manager update
exec-once = pass git pull
# Start up script
exec-once = ~/bin/system/system-start.sh

View File

@ -0,0 +1,2 @@
exec-once = [workspace 1 silent] brave-browser
exec-once = [workspace 2 silent] $terminal

View File

@ -7,15 +7,16 @@ workspace $wsGames output DP-4
workspace $wsResolve output DP-4
workspace $wsReaper output DP-4
workspace $wsBitwig output DP-4
workspace $ws5 output DVI-D-0
workspace $ws6 output DVI-D-0
workspace $ws7 output DVI-D-0
workspace $ws8 output DVI-D-0
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
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"
@ -29,19 +30,26 @@ 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 &
# Starts Jack for audio
exec --no-startup-id sh ~/.config/scripts/audio/system-start-audio.sh
exec --no-startup-id "workspace $1; exec alacritty"
# Startup programs
exec --no-startup-id "workspace $10"
exec --no-startup-id "workspace $15; exec flatpak run org.signal.Signal"
# Keyring
exec --no-startup-id /usr/bin/gnome-keyring-daemon --start --components=secrets
# 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
@ -72,10 +80,12 @@ 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
assign [class="^Show-splash-gtk$"] $wsBitwig
assign [class="^Bitwig Studio$"] $wsBitwig
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
@ -91,13 +101,20 @@ for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] exec --no-startup-i
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
# The side buttons move the desktop around
bindsym --whole-window button9 exec python3 ~/.config/scripts/i3-mouse.py back
bindsym --whole-window button8 exec python3 ~/.config/scripts/i3-mouse.py forward
bindsym $mod+Tab exec python3 ~/.config/scripts/i3-mouse.py thumb
# 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

View File

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

View File

@ -14,13 +14,13 @@ font pango:NimbusSans Bold 10
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec alacritty
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 -theme ~/.config/rofi/themes/aqua
bindsym $mod+d exec --no-startup-id rofi -show combi
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
@ -77,11 +77,10 @@ bindsym Ctrl+Down exec playerctl play-pause
bindsym Ctrl+Right exec playerctl next
# Gaps
set $inner 16
set $inner 8
set $outer 0
gaps inner $inner
gaps outer $outer
smart_borders no_gaps
# Define names for default workspaces
set $ws1 "1"
@ -98,6 +97,7 @@ set $wsResolve "11"
set $wsReaper "12"
set $wsBitwig "13"
set $wsGames "14"
set $wsSignal "15"
# switch to workspace
bindsym $mod+1 workspace $ws1
@ -124,9 +124,9 @@ 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 ~/.config/scripts/i3wm-config-gen.sh"
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 ~/.config/scripts/i3wm-config-gen.sh" ; restart
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'"
@ -171,8 +171,7 @@ bindsym $mod+r mode "resize"
exec_always --no-startup-id setxkbmap -option 'caps:super'
# Startup scripts
exec --no-startup-id sh ~/.config/scripts/connect-nas.sh
exec --no-startup-id systemctl --user start polybar
exec --no-startup-id ~/bin/system/system-start.sh
# class border backgr. text indicator child_border
client.focused $pink $pink $pink $pink $pink
@ -184,30 +183,31 @@ client.placeholder $blue $blue $blue $blue $blue
client.background $blue
# Removes border and title bar
for_window [class="^.*"] border pixel 4
for_window [class="^.*"] border pixel 3
#new_window 1pixel
new_float normal 4
#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 scrot '%Y:%m:%d:%H:%M:%S.png' -s -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="^Steam$" title="^Friends$"] floating enable
for_window [class="^Steam$" title="Steam - News"] floating enable
for_window [class="^Steam$" title=".* - Chat"] floating enable
for_window [class="^Steam$" title="^Settings$"] floating enable
for_window [class="^Steam$" title=".* - event started"] floating enable
for_window [class="^Steam$" title=".* CD key"] floating enable
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
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
@ -219,9 +219,12 @@ for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"
# 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 ~/.config/scripts/audio/synth-power.py -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/.config/scripts/audio/aquamix.sh -d
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
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
#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

View File

@ -5,15 +5,15 @@ 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 # mute sound
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
exec --no-startup-id exec compton &
exec --no-startup-id exec feh --bg-scale ~/Pictures/wallpaper/0001.jpg
output "*" bg ~/Pictures/wallpaper/0001.jpg fill
# Turn off the screen
bindsym XF86Launch1 exec xset -display :0.0 dpms force off
@ -24,5 +24,6 @@ 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"

41
scripts/setup.sh → install.sh Normal file → Executable file
View File

@ -1,24 +1,15 @@
#! /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/.zprofile ~/ 'n'
$dotdir/.zshrc ~/ 'n'
$dotdir/alacritty ~/.config/ 'n'
$dotdir/g13 ~/.config/ 'n'
$dotdir/gtk-3.0/settings.ini ~/.config/gtk-3.0/ 'n'
$dotdir/gtk-4.0/settings.ini ~/.config/gtk-4.0/ 'n'
$dotdir/i3 ~/.config/ 'n'
$dotdir/i3status ~/.config/ 'n'
$dotdir/kitty ~/.config/ 'n'
$dotdir/polybar ~/.config/ 'n'
$dotdir/rofi ~/.config/ 'n'
$dotdir/scripts ~/.config/ 'n'
$dotdir/systemd ~/.config/ 'n')
files=($dotdir/systemd ~/.config/ 'n'
$dotdir/settings.conf ~/.config/ 'n')
# arg parser
for arg in "$@"
@ -113,8 +104,32 @@ function systemd {
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

39
mako/.config/mako/config Normal file
View File

@ -0,0 +1,39 @@
max-history=10
sort=-time
# Bindings
on-button-left=invoke-default-action
on-button-middle=none
on-button-right=dismiss
on-touch=dismiss
on-notify=none
# Theme
font=NimbusSans 12
background-color=#00000088
text-color=#FFFFFFFF
width=400
height=100
outer-margin=11
margin=5
padding=5
border-size=3
border-color=#0288D1FF
border-radius=0
progress-color=#E91E63FF
icons=1
max-icon-size=64
icon-path=""
icon-location=left
markup=1
actions=1
history=1
text-alignment=left
default-timeout=0
ignore-timeout=0
group-by=none
max-visible=-1
output=""
layer=top
anchor=top-right

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GFSA04
updated_time = 1702867957

View File

@ -0,0 +1,40 @@
{
"fan_max_speed": [
"20"
],
"fan_min_speed": [
"10"
],
"filament_cost": [
"19.99"
],
"filament_max_volumetric_speed": [
"8"
],
"filament_settings_id": [
"PETG - Overture @CR-10s"
],
"filament_vendor": [
"Overture"
],
"from": "User",
"inherits": "My Generic PETG",
"is_custom_defined": "0",
"name": "PETG - Overture @CR-10s",
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"245"
],
"overhang_fan_speed": [
"40"
],
"pressure_advance": [
"0.26"
],
"slow_down_layer_time": [
"1"
],
"version": "1.6.1.0"
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GFSA04
updated_time = 1696802272

View File

@ -0,0 +1,34 @@
{
"enable_pressure_advance": [
"1"
],
"filament_cost": [
"19.99"
],
"filament_flow_ratio": [
"0.9025"
],
"filament_settings_id": [
"PETG - Overture"
],
"filament_vendor": [
"Overture"
],
"from": "User",
"inherits": "My Generic PETG",
"is_custom_defined": "0",
"name": "PETG - Overture",
"nozzle_temperature": [
"245"
],
"nozzle_temperature_initial_layer": [
"245"
],
"pressure_advance": [
"0.26"
],
"slow_down_layer_time": [
"1"
],
"version": "1.6.1.0"
}

View File

@ -0,0 +1,5 @@
sync_info = create
user_id =
setting_id =
base_id = GFSA04
updated_time = 1734886086

View File

@ -0,0 +1,13 @@
{
"filament_flow_ratio": [
"0.955"
],
"filament_settings_id": [
"Voron Overture PETG"
],
"from": "User",
"inherits": "Voron Generic PETG",
"is_custom_defined": "0",
"name": "Voron Overture PETG",
"version": "2.2.0.4"
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1728686097

View File

@ -0,0 +1,10 @@
{
"from": "User",
"inherits": "Voron 2.4 350 0.4 nozzle",
"is_custom_defined": "0",
"machine_start_gcode": "PRINT_START BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"name": "AquaVoron 2.4 350 0.4 nozzle",
"print_host": "192.168.20.21",
"printer_settings_id": "AquaVoron 2.4 350 0.4 nozzle",
"version": "1.8.0.0"
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GM003
updated_time = 1728686148

View File

@ -0,0 +1,13 @@
{
"from": "User",
"inherits": "Voron 2.4 350 0.6 nozzle",
"is_custom_defined": "0",
"machine_start_gcode": "PRINT_START BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"name": "AquaVoron 2.4 350 0.6 nozzle",
"print_host": "http://192.168.20.21",
"printer_settings_id": "AquaVoron 2.4 350 0.6 nozzle",
"retraction_length": [
"0.1"
],
"version": "1.8.0.0"
}

View File

@ -0,0 +1,5 @@
sync_info = create
user_id =
setting_id =
base_id = GM001
updated_time = 1695585702

View File

@ -0,0 +1,86 @@
{
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;{layer_z}\n\n",
"from": "User",
"inherits": "MyKlipper 0.4 nozzle",
"is_custom_defined": "0",
"machine_end_gcode": "END_PRINT",
"machine_max_acceleration_extruding": [
"500",
"20000"
],
"machine_max_acceleration_retracting": [
"1000",
"5000"
],
"machine_max_acceleration_x": [
"500",
"20000"
],
"machine_max_acceleration_y": [
"500",
"20000"
],
"machine_max_acceleration_z": [
"100",
"200"
],
"machine_max_jerk_e": [
"5",
"2.5"
],
"machine_max_jerk_x": [
"8",
"9"
],
"machine_max_jerk_y": [
"8",
"9"
],
"machine_max_jerk_z": [
"0.4",
"0.4"
],
"machine_max_speed_e": [
"60",
"25"
],
"machine_max_speed_z": [
"10",
"12"
],
"machine_start_gcode": "START_PRINT BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"max_layer_height": [
"0.48"
],
"name": "CR-10s 0.25 nozzle",
"nozzle_diameter": [
"0.25"
],
"nozzle_type": "brass",
"print_host": "192.168.1.5",
"printable_area": [
"0x0",
"300x0",
"300x300",
"0x300"
],
"printable_height": "400",
"printer_settings_id": "CR-10s 0.25 nozzle",
"retract_length_toolchange": [
"1"
],
"retraction_length": [
"0.5"
],
"retraction_minimum_travel": [
"2"
],
"use_firmware_retraction": "1",
"version": "1.6.1.0",
"wipe": [
"0"
],
"z_hop_types": [
"Auto Lift"
]
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1695585702

View File

@ -0,0 +1,86 @@
{
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;{layer_z}\n\n",
"from": "User",
"inherits": "MyKlipper 0.4 nozzle",
"is_custom_defined": "0",
"machine_end_gcode": "END_PRINT",
"machine_max_acceleration_extruding": [
"500",
"20000"
],
"machine_max_acceleration_retracting": [
"1000",
"5000"
],
"machine_max_acceleration_x": [
"500",
"20000"
],
"machine_max_acceleration_y": [
"500",
"20000"
],
"machine_max_acceleration_z": [
"100",
"200"
],
"machine_max_jerk_e": [
"5",
"2.5"
],
"machine_max_jerk_x": [
"8",
"9"
],
"machine_max_jerk_y": [
"8",
"9"
],
"machine_max_jerk_z": [
"0.4",
"0.4"
],
"machine_max_speed_e": [
"60",
"25"
],
"machine_max_speed_z": [
"10",
"12"
],
"machine_start_gcode": "START_PRINT BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"max_layer_height": [
"0.48"
],
"name": "CR-10s 0.4 nozzle",
"nozzle_type": "brass",
"print_host": "https://cr10.aquamorph.com",
"printable_area": [
"0x0",
"300x0",
"300x300",
"0x300"
],
"printable_height": "400",
"printer_settings_id": "CR-10s 0.4 nozzle",
"retract_length_toolchange": [
"1"
],
"retraction_length": [
"0.5"
],
"retraction_minimum_travel": [
"2"
],
"use_firmware_retraction": "1",
"version": "1.6.1.0",
"wipe": [
"0"
],
"z_hop": [
"0"
],
"z_hop_types": [
"Auto Lift"
]
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1702220626

View File

@ -0,0 +1,89 @@
{
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;{layer_z}\n\n",
"from": "User",
"inherits": "MyKlipper 0.4 nozzle",
"is_custom_defined": "0",
"machine_end_gcode": "END_PRINT",
"machine_max_acceleration_extruding": [
"500",
"20000"
],
"machine_max_acceleration_retracting": [
"1000",
"5000"
],
"machine_max_acceleration_x": [
"500",
"20000"
],
"machine_max_acceleration_y": [
"500",
"20000"
],
"machine_max_acceleration_z": [
"100",
"200"
],
"machine_max_jerk_e": [
"5",
"2.5"
],
"machine_max_jerk_x": [
"8",
"9"
],
"machine_max_jerk_y": [
"8",
"9"
],
"machine_max_jerk_z": [
"0.4",
"0.4"
],
"machine_max_speed_e": [
"60",
"25"
],
"machine_max_speed_z": [
"10",
"12"
],
"machine_start_gcode": "START_PRINT BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"max_layer_height": [
"0.48"
],
"name": "CR-10s 0.6 nozzle",
"nozzle_diameter": [
"0.6"
],
"nozzle_type": "brass",
"print_host": "192.168.20.20",
"printable_area": [
"0x0",
"300x0",
"300x300",
"0x300"
],
"printable_height": "400",
"printer_settings_id": "CR-10s 0.6 nozzle",
"retract_length_toolchange": [
"1"
],
"retraction_length": [
"0.5"
],
"retraction_minimum_travel": [
"2"
],
"use_firmware_retraction": "1",
"version": "1.6.1.0",
"wipe": [
"0"
],
"z_hop": [
"0"
],
"z_hop_types": [
"Auto Lift"
]
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1695341948

View File

@ -0,0 +1,85 @@
{
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;{layer_z}\n\n",
"from": "User",
"inherits": "MyKlipper 0.4 nozzle",
"is_custom_defined": "0",
"machine_end_gcode": "END_PRINT",
"machine_max_acceleration_extruding": [
"500",
"20000"
],
"machine_max_acceleration_retracting": [
"1000",
"5000"
],
"machine_max_acceleration_x": [
"500",
"20000"
],
"machine_max_acceleration_y": [
"500",
"20000"
],
"machine_max_acceleration_z": [
"100",
"200"
],
"machine_max_jerk_e": [
"5",
"2.5"
],
"machine_max_jerk_x": [
"8",
"9"
],
"machine_max_jerk_y": [
"8",
"9"
],
"machine_max_jerk_z": [
"0.4",
"0.4"
],
"machine_max_speed_e": [
"60",
"25"
],
"machine_max_speed_z": [
"10",
"12"
],
"machine_start_gcode": "START_PRINT BED_TEMP=[bed_temperature_initial_layer_single] EXTRUDER_TEMP=[nozzle_temperature_initial_layer]",
"max_layer_height": [
"0.48"
],
"name": "Ender 3 0.6 nozzle",
"nozzle_diameter": [
"0.6"
],
"nozzle_type": "brass",
"print_host": "192.168.1.6",
"printable_area": [
"0x0",
"235x0",
"235x235",
"0x235"
],
"printer_settings_id": "Ender 3 0.6 nozzle",
"retract_length_toolchange": [
"1"
],
"retraction_length": [
"0.5"
],
"retraction_minimum_travel": [
"2"
],
"use_firmware_retraction": "1",
"version": "1.6.1.0",
"wipe": [
"0"
],
"z_hop_types": [
"Auto Lift"
]
}

View File

@ -0,0 +1,5 @@
sync_info =
user_id =
setting_id =
base_id = GP004
updated_time = 1735702877

View File

@ -0,0 +1,9 @@
{
"brim_type": "no_brim",
"from": "User",
"inherits": "0.18mm Fine 0.6 nozzle @Voron",
"is_custom_defined": "0",
"name": "0.18mm Fine 0.6 nozzle @Voron - AquaMorph",
"print_settings_id": "0.18mm Fine 0.6 nozzle @Voron - AquaMorph",
"version": "2.2.0.4"
}

View File

@ -0,0 +1,5 @@
sync_info = update
user_id =
setting_id =
base_id = GP004
updated_time = 1702867957

View File

@ -0,0 +1,41 @@
{
"brim_type": "no_brim",
"brim_width": "10",
"default_acceleration": "0",
"enable_support": "1",
"from": "User",
"gap_infill_speed": "30",
"infill_combination": "1",
"inherits": "0.20mm Standard @MyKlipper",
"initial_layer_acceleration": "0",
"initial_layer_infill_speed": "35",
"initial_layer_line_width": "137%",
"initial_layer_speed": "20",
"inner_wall_acceleration": "0",
"inner_wall_line_width": "112%",
"inner_wall_speed": "35",
"internal_solid_infill_line_width": "112%",
"internal_solid_infill_speed": "50",
"is_custom_defined": "0",
"line_width": "100%",
"name": "0.20mm Standard CR-10s",
"outer_wall_acceleration": "0",
"outer_wall_line_width": "80%",
"outer_wall_speed": "35",
"print_settings_id": "0.20mm Standard CR-10s",
"sparse_infill_density": "30%",
"sparse_infill_line_width": "107%",
"sparse_infill_pattern": "adaptivecubic",
"sparse_infill_speed": "60",
"support_interface_speed": "30",
"support_line_width": "95%",
"support_object_xy_distance": "0.75",
"support_speed": "30",
"support_type": "tree(auto)",
"top_surface_acceleration": "0",
"top_surface_line_width": "107%",
"top_surface_speed": "30",
"travel_acceleration": "1500",
"travel_speed": "150",
"version": "1.6.1.0"
}

View File

@ -0,0 +1,5 @@
sync_info =
user_id =
setting_id =
base_id = GP004
updated_time = 1736606291

View File

@ -0,0 +1,9 @@
{
"brim_type": "no_brim",
"from": "User",
"inherits": "0.30mm Standard 0.6 nozzle @Voron",
"is_custom_defined": "0",
"name": "0.30mm Standard 0.6 nozzle @Voron - AquaMorph",
"print_settings_id": "0.30mm Standard 0.6 nozzle @Voron - AquaMorph",
"version": "2.2.0.4"
}

104
pipewire/jack.conf Normal file
View File

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

View File

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

266
pipewire/pipewire.conf Normal file
View File

@ -0,0 +1,266 @@
# Daemon 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.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
#default.clock.rate = 48000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
default.clock.min-quantum = 512
default.clock.max-quantum = 512
default.clock.quantum-limit = 512
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
#settings.check-quantum = false
#settings.check-rate = false
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
}
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.
#
audio.convert.* = audioconvert/libspa-audioconvert
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
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.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling.
{ name = libpipewire-module-rt
args = {
nice.level = -11
#rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# 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 creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# access.allowed to list an array of paths of allowed
# apps.
#access.allowed = [
# /usr/bin/pipewire-media-session
#]
# An array of rejected paths.
#access.rejected = [ ]
# An array of paths with restricted access.
#access.restricted = [ ]
# Anything not in the above lists gets assigned the
# access.force permission.
#access.force = flatpak
}
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
# Use libcanberra to play X11 Bell
#{ name = libpipewire-module-x11-bell
# args = {
# #sink.name = ""
# #sample.name = "bell-window-system"
# #x11.display = null
# #x11.xauthority = null
# }
#}
]
context.objects = [
#{ factory = <factory-name>
# [ args = { <key> = <value> ... } ]
# [ flags = [ [ nofail ] ]
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-driver"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
{ factory = adapter
args = {
factory.name = support.null-audio-sink
node.name = "sm7b"
node.description = "SM7B"
media.class = "Audio/Source/Virtual"
audio.position = "FL,FR"
}
}
{ factory = adapter
args = {
factory.name = support.null-audio-sink
node.name = "speakers"
node.description = "Speakers"
media.class = "Audio/Sink"
audio.position = "FL,FR"
}
}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
]
context.exec = [
#{ path = <program-name> [ args = "<arguments>" ] }
#
# Execute the given program with arguments.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = "" }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
]

View File

@ -1,5 +1,5 @@
[colors]
black = #88666666
black = #BB000000
blue = #0288D1
blue-light = #B3E5FC
pink = #E91E63
@ -9,7 +9,7 @@ white = #FFFFFF
[bar/aqua]
width = 100%
height = 28
height = 34
radius = 0.0
fixed-center = true
background = ${colors.black}
@ -20,9 +20,9 @@ line-color = ${colors.pink}
border-size = 0
border-color = ${colors.black}
padding-left = 0
padding-right = 2
padding-right = 3
module-margin-left = 1
module-margin-right = 2
module-margin-right = 3
font-0 = SF Pro Display:semibold:fixed:pixelsize=17;3
; Version 4.7
@ -37,7 +37,7 @@ font-5 = Font Awesome 5 Free Solid:pixelsize=70;3
modules-left = i3
modules-center = xwindow
modules-right = backlight volume network battery mouse-battery date
modules-right = backlight volume network battery date
tray-position = right
tray-padding = 2
@ -178,7 +178,7 @@ label-disconnected-underline = ${colors.pink}
[module/mouse-battery]
type = custom/script
exec = ~/.config/scripts/get-mouse-battery.sh
exec = ~/bin/get-mouse-battery.sh
label =  %output%
interval = 60

View File

@ -0,0 +1,19 @@
configuration {
modi: "window,drun,ssh,combi";
font: "sf mono medium 24";
fixed-num-lines: true;
show-icons: true;
terminal: "alacritty";
case-sensitive: false;
sidebar-mode: false;
combi-modi: "window,drun,run,ssh";
scroll-method: 0;
click-to-exit: true;
display-window: "window";
display-run: "run";
display-ssh: "ssh";
display-drun: "drun";
display-combi: "combi";
}
@import "./themes/aqua.rasi"

View File

@ -47,6 +47,7 @@ window {
background-color: @background;
border: 4;
padding: 20;
width: 30em;
}
mainbox {
border: 0;

View File

@ -1,145 +0,0 @@
configuration {
modi: "window,drun,ssh";
width: 30;
lines: 10;
columns: 1;
font: "sf mono medium 16";
bw: 1;
/* location: 0;*/
/* padding: 5;*/
/* yoffset: 0;*/
/* xoffset: 0;*/
fixed-num-lines: true;
show-icons: true;
terminal: "alacritty";
/* ssh-client: "ssh";*/
/* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/* run-command: "{cmd}";*/
/* run-list-command: "";*/
/* run-shell-command: "{terminal} -e {cmd}";*/
/* window-command: "wmctrl -i -R {window}";*/
/* window-match-fields: "all";*/
/* icon-theme: ;*/
/* drun-match-fields: "name,generic,exec,categories";*/
/* drun-show-actions: false;*/
/* drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/* disable-history: false;*/
/* ignored-prefixes: "";*/
/* sort: false;*/
/* sorting-method: ;*/
case-sensitive: false;
/* cycle: true;*/
sidebar-mode: false;
/* eh: 1;*/
/* auto-select: false;*/
/* parse-hosts: false;*/
/* parse-known-hosts: true;*/
combi-modi: "window,drun,run,ssh";
/* matching: "normal";*/
/* tokenize: true;*/
/* m: "-5";*/
/* line-margin: 2;*/
/* line-padding: 1;*/
/* filter: ;*/
/* separator-style: "dash";*/
/* hide-scrollbar: false;*/
fullscreen: false;
fake-transparency: false;
/* dpi: -1;*/
/* threads: 0;*/
scrollbar-width: 0;
scroll-method: 0;
/* fake-background: "screenshot";*/
/* window-format: "{w} {c} {t}";*/
click-to-exit: true;
/* show-match: true;*/
theme: aqua;
/* color-normal: ;*/
/* color-urgent: ;*/
/* color-active: ;*/
/* color-window: ;*/
/* max-history-size: 25;*/
/* combi-hide-mode-prefix: false;*/
/* matching-negate-char: '-' /* unsupported */;*/
/* cache-dir: ;*/
/* pid: "/run/user/1000/rofi.pid";*/
display-window: "window: ";
/* display-windowcd: ;*/
display-run: "run: ";
display-ssh: "ssh: ";
display-drun: "drun: ";
display-combi: "combi: ";
/* display-keys: ;*/
/* kb-primary-paste: "Control+V,Shift+Insert";*/
/* kb-secondary-paste: "Control+v,Insert";*/
/* kb-clear-line: "Control+w";*/
/* kb-move-front: "Control+a";*/
/* kb-move-end: "Control+e";*/
/* kb-move-word-back: "Alt+b,Control+Left";*/
/* kb-move-word-forward: "Alt+f,Control+Right";*/
/* kb-move-char-back: "Left,Control+b";*/
/* kb-move-char-forward: "Right,Control+f";*/
/* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/* kb-remove-word-forward: "Control+Alt+d";*/
/* kb-remove-char-forward: "Delete,Control+d";*/
/* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/* kb-remove-to-eol: "Control+k";*/
/* kb-remove-to-sol: "Control+u";*/
/* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/* kb-accept-custom: "Control+Return";*/
/* kb-accept-alt: "Shift+Return";*/
/* kb-delete-entry: "Shift+Delete";*/
/* kb-mode-next: "Shift+Right,Control+Tab";*/
/* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/* kb-row-left: "Control+Page_Up";*/
/* kb-row-right: "Control+Page_Down";*/
/* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/
/* kb-row-down: "Down,Control+n";*/
/* kb-row-tab: "Tab";*/
/* kb-page-prev: "Page_Up";*/
/* kb-page-next: "Page_Down";*/
/* kb-row-first: "Home,KP_Home";*/
/* kb-row-last: "End,KP_End";*/
/* kb-row-select: "Control+space";*/
/* kb-screenshot: "Alt+S";*/
/* kb-ellipsize: "Alt+period";*/
/* kb-toggle-case-sensitivity: "grave,dead_grave";*/
/* kb-toggle-sort: "Alt+grave";*/
/* kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/* kb-custom-1: "Alt+1";*/
/* kb-custom-2: "Alt+2";*/
/* kb-custom-3: "Alt+3";*/
/* kb-custom-4: "Alt+4";*/
/* kb-custom-5: "Alt+5";*/
/* kb-custom-6: "Alt+6";*/
/* kb-custom-7: "Alt+7";*/
/* kb-custom-8: "Alt+8";*/
/* kb-custom-9: "Alt+9";*/
/* kb-custom-10: "Alt+0";*/
/* kb-custom-11: "Alt+exclam";*/
/* kb-custom-12: "Alt+at";*/
/* kb-custom-13: "Alt+numbersign";*/
/* kb-custom-14: "Alt+dollar";*/
/* kb-custom-15: "Alt+percent";*/
/* kb-custom-16: "Alt+dead_circumflex";*/
/* kb-custom-17: "Alt+ampersand";*/
/* kb-custom-18: "Alt+asterisk";*/
/* kb-custom-19: "Alt+parenleft";*/
/* kb-select-1: "Super+1";*/
/* kb-select-2: "Super+2";*/
/* kb-select-3: "Super+3";*/
/* kb-select-4: "Super+4";*/
/* kb-select-5: "Super+5";*/
/* kb-select-6: "Super+6";*/
/* kb-select-7: "Super+7";*/
/* kb-select-8: "Super+8";*/
/* kb-select-9: "Super+9";*/
/* kb-select-10: "Super+0";*/
/* ml-row-left: "ScrollLeft";*/
/* ml-row-right: "ScrollRight";*/
/* ml-row-up: "ScrollUp";*/
/* ml-row-down: "ScrollDown";*/
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
}

View File

@ -0,0 +1,4 @@
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", TAG+="uaccess"

2
rules/80-es-9.rules Normal file
View File

@ -0,0 +1,2 @@
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="2485", ATTR{idProduct}=="50e0", RUN=="systemctl --user start es-9"
ACTION=="remove", SUBSYSTEM=="usb", ATTR{idVendor}=="2485", ATTR{idProduct}=="50e0", RUN=="systemctl --user stop es-9"

View File

@ -1,18 +0,0 @@
#!/bin/bash
# Script to add another audio interface if available.
# Import library
source $(dirname $(realpath ${BASH_SOURCE[0]}))/audio-lib.sh
DEVICE_NAME='ES-9'
DEVICE_NUM=$(getCardNumber $DEVICE_NAME)
checkCard $DEVICE_NAME $DEVICE_NUM
# Start up audio interface
alsa_in -d hw:$DEVICE_NUM -j "$DEVICE_NAME In" -c 16 -q 1 &
alsa_out -d hw:$DEVICE_NUM -j "$DEVICE_NAME Out" -c 16 -q 1 &
pkill es5jack || true
~/.cargo/bin/es5jack >/dev/null 2>/dev/null &
sleep 0.1
jack_connect es-5:out "$DEVICE_NAME Out:playback_9" || true

View File

@ -1,61 +0,0 @@
#! /bin/bash
# Kill Pulse
function killPulse() {
systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service
pulseaudio -k
killall pulseaudio
}
# Start Pulseaudio properly
function fixPulse() {
PULSE="$(alsamixer 2>&1 | killall alsamixer)"
if [[ $PULSE == *'Connection refused'* ]]; then
echo 'Fixing Pulseaudio'
killPulse
sleep 0.1
pulseaudio -D
fixPulse
else
echo 'Pulseaudio is working correctly'
fi
}
# Start up programs that use audio
function launchi3() {
if [ -z "$skipi3" ]; then
echo Opening i3wm sound workspaces
sleep .1 && i3-msg 'workspace 5; exec firefox'
sleep 8 && python ~/.config/scripts/start-firefox.py
fi
}
# arg parser
for arg in "$@"
do
# Skip commands for i3wm
if [[ $arg == *"-s"* ]]; then
skipi3=true
fi
done
# Close any active audio
killPulse
# Start up jack
cadence-session-start --system-start &
wait %1 && sleep 1
ladish_control sload studio
# Make start up reliable
killPulse
fixPulse
pulseaudio -D
# Eurorack audio interface
sh ~/.config/scripts/audio/es8start.sh
sh ~/.config/scripts/audio/es9start.sh
launchi3
systemctl --user restart polybar

764
scripts/bin/aquaai.sh Executable file
View File

@ -0,0 +1,764 @@
#!/usr/bin/env bash
# This is a bash script to enable interacting with LLMs via the command line.
#===============================================================================
## Modes
### Default mode
# Default mode uses the default prompt and model for AquaAI. It's nothing
# special.
### Bash mode
# This mode will help with writing bash scripts.
### CLI mode
# CLI mode prompts the AI with system information and will return terminal
# commands. If you wish to run the command simply type run and it will end the
# chat and run the command. You are responsible for validating what the command
# does before running.
### Code Review mode
# This will ask you what changes to look at and will provide a code review of
# the changes. This mode only works if you are currently in a git repo. It can
# look at the past few commits as well as changes that have yet to be committed.
### Reasoning mode
# This uses the best available reasoning model with the default prompt.
# Reasoning models take a task and break them up to subtask to pass to
# specialized models. They are very yappy and take a while to run. Can be good
# for complex tasks.
### Regex mode
# This mode will respond only with regex.
### Git mode
# This mode will respond only with git commands. If you wish to run the command
# simply type run and it will end the chat and run the command. You are
# responsible for validating what the command does before running.
## Special Input
### Edit
# You can type `edit` or `e` as a response and it will open your editor set with
# the EDITOR variable in your shell session. You can then type your query and
# save and exit. From there the program will send your query to the AI.
### Exit
# You can type `exit` or `q` to end the chat. Personally, I never do this just
# use C-c.
### Run
# If you are in cli mode you can type `run` or `r` and the script will run the
# given commands on your system. You are playing with fire with this, but fire
# is useful and fun just be careful.
### Save
# You can type `save` or `s` as a response and the chat history will be saved
# for use at another time. This will also end the chat. Chats are stored in
# `~/.local/share/aquaai`
## Adding custom modes
# There are two variables that need to be set to create a custom mode.
### $selected_model will set the model to be used for the chat.
### $system_prompt will be the prompt that controls how the AI behaves.
# introduce more noise into text generation leading to more out there responses.
#
# Defaults are set for all these but to define a custom mode you should override
# at least one of these in a function. Add a custom flag in the switch statement
# at the bottom of this file and call the function there. See `--bash` as an
# example of how to do this. From there add some documentation to the
# print_help() function and then here.
#===============================================================================
# User configurable variables.
#
# The following are settings that can be overwritten by environment variables.
# You can set these in your .bashrc to have them set each time you open a new
# shell. This script is designed not to be modified so updates can be applied by
# replacing the file with the newest version.
#
#
# Set the url of the ollama server.
#
# export AQUAAI_OLLAMA_URL='192.168.1.156:11434'
#
ollama_url=${AQUAAI_OLLAMA_URL:='https://ollama.aquamorph.com'}
#
# Set the default model.
#
# export AQUAAI_DEFAULT_MODEL='qwen2.5-7b-instruct'
#
default_model=${AQUAAI_DEFAULT_MODEL:='qwen2.5:32b-instruct'}
#
# Set the default coding model.
#
# export AQUAAI_CODING_MODEL='qwen2.5-7b-coder'
#
coding_model=${AQUAAI_CODING_MODEL:='qwen2.5-32b-coder'}
#
# In multiline mode, users can input multiple lines of text by pressing the
# Enter key. The message will be sent when the user presses C-d on the keyboard.
#
# export AQUAAI_MULTILINE_MODE=true
#
multiline_mode=${AQUAAI_MULTILINE_MODE:=false}
#
# Enable rich formatting for text output. A formatting program is required for
# this see below.
#
# export AQUAAI_RICH_FORMAT_MODE=true
#
rich_format_mode=${AQUAAI_RICH_FORMAT_MODE:=false}
#
# Path to the program used for rich formatting. I am currently using streamdown
# but you are free to use something different as long as it supports streaming
# text and markdown. Go to the GitHub repo to learn to install streamdown and
# configure: https://github.com/day50-dev/Streamdown
#
# export AQUAAI_RICH_FORMAT_PATH=~/.venv/bin/streamdown
#
rich_format_path=${AQUAAI_RICH_FORMAT_PATH:=streamdown}
#
# Ignore certificate checks.
#
# export AQUAAI_INSECURE_MODE=true
#
insecure_mode=${AQUAAI_INSECURE_MODE:=false}
#===============================================================================
# Constants.
OLLAMA_URL=${ollama_url}
CURL_FLAGS='-sN'
USER=$(whoami)
DATA_DIR="${HOME}/.local/share/aquaai"
RESPONSE_FIFO="${DATA_DIR}/.response"
# Colors.
CLEAR='\033[0m'
BLUE='\033[0;34m'
RED='\e[1;31m'
LIGHT_GRAY='\e[38;5;247m'
# Globals.
message_history=''
cli_mode=false
code_review_start=false
selected_model=${default_model}
message_history="[]"
# Error Codes.
ERROR_NO_SAVEFILE=1
ERROR_INVALID_TEMP=2
ERROR_UNKNOWN_OPTION=3
ERROR_UNKNOWN_MODEL=4
ERROR_NO_GIT_REPO=5
ERROR_INVALID_INPUT=6
ERROR_NO_AUTOSAVE=7
ERROR_INVALID_SSL=8
ERROR_UNKNOWN_SSL=9
#===============================================================================
# Set the default agent.
function set_default_agent() {
system_prompt='You are an AI assistant named AquaAI.'
system_prompt+=' Follow the users instructions carefully.'
system_prompt+=' Respond using extended markdown.'
system_prompt+=' Be as concise as possible.'
}
# Set chat to help with command line questions.
function set_cli_agent() {
local os_version=$(cat /etc/os-release | grep 'PRETTY_NAME' | \
sed 's/PRETTY_NAME=//g' | tr -d '"')
system_prompt='You are a large language model trained to assist users with an'
system_prompt+=" ${os_version} OS. Only output terminal commands."
system_prompt+=' Do not put commands in quotation marks.'
system_prompt+=' Do not put commands in markdown.'
}
# Set chat to help with bash questions.
function set_bash_agent() {
system_prompt='You are a large language model trained to assist users with'
system_prompt+=' POSIXs bash. Format output for view in a command line. Do'
system_prompt+=' not put commands in quotation marks. Use double spaces and'
system_prompt+=' the function key word. Write documentation for a function'
system_prompt+=' before the function declaration.'
}
# Set ai to help with code reviews.
function set_code_review_agent() {
system_prompt='You are a senior software engineer performing a code review'
system_prompt+=' for a colleague.'
system_prompt+=''
system_prompt+='Your report should have the following format:'
system_prompt+='# Typos'
system_prompt+='List of all typos you find.'
system_prompt+='# Formatting and Readability Issues'
system_prompt+='List of all formatting and readability issues you find.'
system_prompt+='# Security Issues'
system_prompt+='List of all security issues you find.'
system_prompt+='# Other'
system_prompt+='List of all other issues you find.'
}
# Set chat to help with git.
function set_git_agent() {
system_prompt='You are a large language model trained to assist users with'
system_prompt+=' git. Only output terminal commands.'
system_prompt+=' Do not put commands in quotation marks.'
}
# Set chat to help with regex.
function set_regex_agent() {
system_prompt='You are a large language model trained to assist users with'
system_prompt+=' regex. Only output a single regex expression.'
system_prompt+=' Use BRE and ERE regex.'
system_prompt+=' Do not put commands in quotation marks.'
}
#===============================================================================
# Set the default coding model.
function set_coding_model() {
selected_model=${coding_model}
}
# Set the default reasoning model.
function set_reasoning_model() {
selected_model='deepseek-r1:8b'
}
#===============================================================================
# Print out help menu.
function print_help() {
echo 'Interact with the AquaAI via the command line.'
echo ''
echo '--delete - delete a chat from history'
echo '-l --list - list available models'
echo '--load - load a chat from history'
echo '--restore - load last auto saved chat'
echo ''
echo '--bash - help with bash'
echo '--cli - help with command line'
echo '--code-review - code review of a git project'
echo '-r --reason - help with a reasoning model'
echo '--regex - help with regex'
echo '--git - help with git'
}
# Print out error message.
function print_error() {
local msg=${1}
printf "${RED}ERROR: ${msg}\n${CLEAR}"
}
# Check if a given program is installed on the system.
function check_program() {
if ! command -v ${1} 2>&1 >/dev/null; then
print_error "${1} not found. Please install ${1}."
exit ${ERROR_DEPENDENCY}
fi
}
# Check system for required programs.
function check_requirements() {
check_program curl
check_program jq
check_program fzf
if [ "${rich_format_mode}" == true ]; then
check_program ${rich_format_path}
fi
}
# Get list of available models.
function get_models() {
curl "${OLLAMA_URL}/api/tags" ${CURL_FLAGS}
}
# Print list of models.
function print_models() {
get_models | jq -r '.models[].model' | column -t -s $'\t'
}
# Print message variable.
function print_debug_message_history() {
echo ${message_history}
}
# Check if the model exists.
function check_if_model_exists() {
local model=${1}
local model_list=($(get_models | jq -r '.models[].model'))
for m in "${model_list[@]}"; do
if [[ "$m" == "$model" ]]; then
return 0
fi
done
print_error "model ${model} does not exists."
exit ${ERROR_UNKNOWN_MODEL}
}
# Convert string to a safe format for later use.
function convert_to_safe_text() {
echo "${1}" | jq -sR @json
}
# Set the text output color for user input.
function set_user_color() {
printf "${LIGHT_GRAY}"
}
# Set the text output color for ai response.
function set_ai_color() {
printf "${CLEAR}"
}
# Set text color to defaults.
function set_clear_color() {
printf "${CLEAR}"
}
# Print the header for the ai message
function print_ai_start_message() {
echo -e "\U1F916 AquaAI"
}
# Print the header for the ai message
function print_user_start_message() {
echo -e "\U1F464 ${USER}"
}
# Opens the user's preferred text editor to allow them to input text.
function editor_input() {
local editor=${EDITOR:=nano}
local temp_file=$(mktemp)
${editor} ${temp_file}
local user_input=$(<"$temp_file")
rm "$temp_file"
msg=${user_input}
}
# Check if current directory is managed by git.
function check_git_directory() {
if ! git rev-parse --is-inside-work-tree &> /dev/null; then
print_error 'The current directory is not inside a git repository.'
exit ${ERROR_NO_GIT_REPO}
fi
}
# Asks the user if they want to include staged git change data.
function gather_staged_changes() {
echo -n 'Do you want to include staged changes? (y/n)? '
read response
if [[ "$response" == 'y' || "$response" == 'yes' ]]; then
msg+=$(git diff --cached --patch)
fi
}
# Ask the user if they want to include changes that have not been committed.
function gather_uncommitted_changes() {
echo -n 'Do you want to include the changes'
echo -n ' you have yet to commit or stash (y/n)? '
read response
if [[ "$response" == 'y' || "$response" == 'yes' ]]; then
changes=$(git diff)
msg+=${changes}
fi
}
# Ask the user for number of commit changes to include in code review.
# Returns a list of changes for the given number of commits.
function gather_commit_changes() {
echo -n 'How many previous commits do you want to include? '
local count
read count
# Allow hitting enter as a no response.
if [ -z "$count" ]; then
return
fi
# Validate that the input is a positive integer.
if ! [[ "$count" =~ ^[0-9]+$ ]] || [ "$count" -lt 0 ]; then
print_error 'Please enter a positive integer for the number of commits.'
exit ${ERROR_INVALID_INPUT}
fi
hashes=$(git log --format=%H -n ${count})
for h in ${hashes}; do
commit_message=$(git show ${h})
msg+="${commit_message}"$'\n'
done
}
# Create fifo for chat responses.
function create_response_fifo() {
create_data_dir
if [ ! -p ${RESPONSE_FIFO} ]; then
mkfifo ${RESPONSE_FIFO}
fi
}
# Delete fifo for chat responses.
function remove_response_fifo() {
if [ -p ${RESPONSE_FIFO} ]; then
rm ${RESPONSE_FIFO}
fi
}
# Create response trap to allow user to stop AquaAI.
function create_response_trap() {
trap 'echo "AquaAI has been interrupted...";' SIGINT
}
# Remove response trap to allow user to exit program.
function remove_response_trap() {
trap - SIGINT
}
# Get the first message from a saved chat.
function get_first_chat() {
local file_path=${1}
source <(cat ${file_path} | grep message_history)
message_history=$(echo $message_history | \
jq -r '[.[] | select(.role == "user")][0].content' \
2>/dev/null | sed 's/^"//')
echo -e $message_history | sed 's/"$//' | tr -d '\n' | cut -c 1-80 \
| sed ':a;N;$!ba;s/\n//g'
}
# Get an array of all saved chat files.
function get_save_files() {
save_files=()
create_data_dir
for f in $(find "$DATA_DIR" -type f -name "*.chat"); do
save_files+=("${f}")
done
}
# Create the data directory if it does not exist.
function create_data_dir() {
if [ ! -d "$DATA_DIR" ]; then
mkdir -p "$DATA_DIR"
fi
}
# Save the current chat to a file.
function save_chat() {
create_data_dir
local filename=${1}
if [ -z "$filename" ]; then
print_error 'No filename provided.'
exit ${ERROR_NO_SAVEFILE}
fi
declare -p selected_model system_prompt \
message_history cli_mode > "${DATA_DIR}/${filename}"
}
# Save the current chat to autosave.
function autosave() {
save_chat 'autosave.chat'
echo 'Chat has been auto saved'
}
# Find all .chat files in DATA_DIR and use fzf to select one.
function select_chat_file() {
selected_file=$(select_chat_with_fzf)
if [ -z "$selected_file" ]; then
echo 'No file selected.'
exit ${ERROR_NO_SAVEFILE}
fi
}
# Delete .chat files in DATA_DIR.
function delete_chat_file() {
selected_file=$(select_chat_with_fzf)
if [ -z "$selected_file" ]; then
echo 'No file selected.'
exit ${ERROR_NO_SAVEFILE}
else
local pretty_name=$(get_first_chat ${selected_file})
echo -n "do you want to delete '${pretty_name}' (y/n)? "
read response
if [[ "$response" == 'y' || "$response" == 'yes' ]]; then
rm -- "${selected_file}"
echo "Deleted '${pretty_name}'"
fi
fi
}
# Select saved chat with fzf program.
function select_chat_with_fzf() {
get_friendly_save_names
local selected_index=$(printf "%s\n" "${friendly_save_files[@]}" \
| cat -n | fzf --with-nth 2.. \
| awk '{print $1}')
selected_index=$((${selected_index}-1))
if [[ -n $selected_index ]]; then
echo "${save_files[selected_index]}"
fi
}
# Get an array of the first message in saved chats.
function get_friendly_save_names() {
get_save_files
friendly_save_files=()
for f in "${save_files[@]}"; do
friendly_save_files+=("$(get_first_chat ${f})")
done
}
# Validate site certificate.
function check_cert() {
curl ${OLLAMA_URL} ${CURL_FLAGS} 2>&1 >/dev/null
local ec=$?
if [ "${ec}" == '60' ]; then
print_error 'unable to get local issuer certificate.'
echo 'Install the certificate on the system.'
exit ${ERROR_INVALID_SSL}
elif [ "${ec}" != '0' ]; then
print_error 'unknown ssl error.'
exit ${ERROR_UNKNOWN_SSL}
fi
}
# Update chat history
function update_history() {
local role="$1"
local content="$2"
message_history=$(echo "$message_history" \
| jq --arg role "$role" --arg content \
"$content" '. + [{"role": $role, "content": $content}]')
}
# Read input from the user.
function read_user_input() {
if [ "${multiline_mode}" == true ]; then
msg=$(awk '{if ($0 == "END") exit; else print}')
elif [ "${code_review_start}" == true ]; then
check_git_directory
msg=''
gather_uncommitted_changes
gather_staged_changes
gather_commit_changes
code_review_start=false
else
read msg
fi
}
# Handle input related to CLI mode.
function handle_cli_mode() {
# Check for cli mode
if [ ${cli_mode} == true ]; then
if [[ -z $msg || $msg == 'run' || $msg == 'r' ]]; then
set_clear_color
autosave
echo
local commands=()
# Get a list of commands
while IFS= read -r line; do
commands+=("${line}")
done <<< "$last_cmd"
for c in "${commands[@]}"; do
# Using eval to handle commands that include pipes.
if [[ "${c}" == *'|'* ]]; then
eval "${c}"
else
${c}
fi
done
exit 0
fi
fi
}
# Check for editor request.
function handle_edit() {
if [[ $msg == 'edit' || $msg == 'e' ]]; then
editor_input
set_user_color
echo "${msg}"
fi
}
# Check for debug command.
function handle_debug() {
if [[ $msg == 'debug' ]]; then
echo "model=${selected_model}"
print_debug_message_history | jq
return 1
fi
return 0
}
# Check for save command.
function handle_save() {
if [[ $msg == 'save' || $msg == 's' ]]; then
echo "Saving chat history"
save_chat "$(date +%Y%m%d%H%M%S).chat"
exit 0
fi
}
# Chat converstation loop.
function chat_loop() {
check_if_model_exists ${selected_model}
update_history 'system' "$system_prompt"
while true; do
chat
done
}
# Main chat loop.
function chat() {
# Get user input.
set_user_color
print_user_start_message
read_user_input
echo
# Handle user input.
local rc=0
handle_edit
handle_cli_mode
handle_debug
handle_save
rc=$((rc + $?))
if [ "$rc" -ne 0 ]; then
return
fi
update_history 'user' "${msg}"
# Prepare JSON payload.
JSON_PAYLOAD=$(jq -n \
--arg model "$selected_model" \
--argjson messages "$message_history" \
'{model: $model, messages: $messages, stream: true}')
set_ai_color
print_ai_start_message
create_response_fifo
create_response_trap
# Render to console.
if [ "${rich_format_mode}" == true ]; then
cat ${RESPONSE_FIFO} | ${rich_format_path} &
else
cat ${RESPONSE_FIFO} &
fi
local response=$(curl -sN "$OLLAMA_URL/api/chat" \
-d "$JSON_PAYLOAD" \
| stdbuf -o0 jq -j '.message.content // empty' \
| tee ${RESPONSE_FIFO})
wait
# Newline for AI response.
if [ "${rich_format_mode}" != true ]; then
echo
fi
# One line reponses do not print out when formatted with Streamdown.
if [[ "$rich_format_path" == *"streamdown"* && \
"${rich_format_mode}" == true ]]; then
local wc=$(echo "${response}" | wc -l)
if [ ${wc} -eq 1 ]; then
echo "${response}"
fi
fi
remove_response_trap
remove_response_fifo
echo
update_history "assistant" "${response}"
last_cmd="${response}"
}
#===============================================================================
check_requirements
if [ "${insecure_mode}" == true ]; then
CURL_FLAGS+=' -k'
else
check_cert
fi
cmd=chat_loop
set_default_agent
# Check arguments
for i in "$@"; do
case $i in
-h|--help)
cmd=print_help
;;
-l|--list)
cmd=print_models
;;
--delete)
delete_chat_file
exit 0
;;
--load)
select_chat_file
source ${selected_file}
cmd=chat_loop
;;
--restore)
if [ ! -e "${DATA_DIR}/autosave.chat" ]; then
print_error 'auto save does not exit'
exit ${ERROR_NO_AUTOSAVE}
fi
source "${DATA_DIR}/autosave.chat"
cmd=chat_loop
;;
# Modes
--bash)
set_coding_model
set_bash_agent
cmd=chat_loop
;;
--cli)
set_coding_model
set_cli_agent
cmd=chat_loop
cli_mode=true
rich_format_mode=false
;;
--code-review)
set_coding_model
set_code_review_agent
code_review_start=true
cmd=chat_loop
;;
--git)
set_coding_model
set_git_agent
cmd=chat_loop
cli_mode=true
rich_format_mode=false
;;
-r|--reason)
set_reasoning_model
cmd=chat_loop
;;
--regex)
set_coding_model
set_regex_agent
cmd=chat_loop
rich_format_mode=false
;;
# Other
-*|--*)
echo "Unknown option ${i}"
print_help
exit ERROR_UNKNOWN_OPTION
;;
esac
done
${cmd}

View File

@ -0,0 +1,11 @@
#! /bin/bash
# Load user settings from config file.
. ~/.config/settings.conf
for file in *.aax; do
convertedFile="./${file%%.*}.m4b"
if [ ! -f "$convertedFile" ]; then
ffmpeg -y -activation_bytes ${activation_bytes} -i ./${file} -codec copy $convertedFile
fi
done

View File

@ -5,7 +5,7 @@
# Import library
source $(dirname ${BASH_SOURCE[0]})/audio-lib.sh
INTERFACE_NAME='Scarlett 18i20'
INTERFACE_NAME='Clarett+ 8Pre'
INTERFACE_NUM=$(getCardNumber $INTERFACE_NAME)
checkCard "$INTERFACE_NAME" "$INTERFACE_NUM"
@ -54,6 +54,44 @@ function setStereoTwo() {
setStereo $INTERFACE_NUM 7 $1 $2 $3
}
# Sets the volume levels of the third stereo instrument.
#
# $1 monitor volume
# $2 first headphone volume
# $3 second headphone volume
function setStereoThree() {
setStereo $INTERFACE_NUM 9 $1 $2 $3
}
# Sets the volume levels of the fourth stereo instrument.
#
# $1 monitor volume
# $2 first headphone volume
# $3 second headphone volume
function setStereoFour() {
setStereo $INTERFACE_NUM 11 $1 $2 $3
}
# Sets the volume levels of the fifth stereo instrument.
#
# $1 monitor volume
# $2 first headphone volume
# $3 second headphone volume
function setStereoFive() {
setStereo $INTERFACE_NUM 13 $1 $2 $3
}
# Sets the volume levels of the sixth stereo instrument.
#
# $1 monitor volume
# $2 first headphone volume
# $3 second headphone volume
function setStereoSix() {
setStereo $INTERFACE_NUM 15 $1 $2 $3
}
# Sets the volume levels of the studio microphone.
#
# $1 monitor volume
@ -83,6 +121,10 @@ function setInstruments() {
setMonoThree $1 $2 $3
setStereoOne $1 $2 $3
setStereoTwo $1 $2 $3
setStereoThree $1 $2 $3
setStereoFour $1 $2 $3
setStereoFive $1 $2 $3
setStereoSix $1 $2 $3
}
function DAWMode() {

View File

@ -46,7 +46,7 @@ function printControls() {
# $2 matrix number
# $3 mix channel
function setMix() {
amixer -c $1 set "Matrix $(formatMatrixNum $2) Mix $3" $4
amixer -c $1 set "Mix $3 Input $(formatMatrixNum $2)" $4
}

View File

17
scripts/bin/audio/es9start.sh Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# Script to add another audio interface if available.
# Import library
source $(dirname $(realpath ${BASH_SOURCE[0]}))/audio-lib.sh
DEVICE_NAME='ES-9'
DEVICE_NUM=$(getCardNumber $DEVICE_NAME)
checkCard $DEVICE_NAME $DEVICE_NUM
# Start up ES-5
pkill es-5-pipewire || true
/opt/es-5-pipewire/es-5-pipewire >/dev/null 2>/dev/null &
sleep 0.1
jack_connect ES-5:output "$DEVICE_NAME:playback_SL" || true
jack_connect ES-5:output "$DEVICE_NAME:playback_AUX6" || true

View File

@ -4,4 +4,4 @@
pkill alsa_in
pkill alsa_out
pkill es5jack
pkill es-5-pipewire

View File

@ -0,0 +1,88 @@
#! /bin/bash
# Kill Pulse.
function killPulse() {
systemctl --user stop pulseaudio.socket
systemctl --user stop pulseaudio.service
pulseaudio -k
killall pulseaudio
}
# Start Pulseaudio properly.
function fixPulse() {
PULSE="$(alsamixer 2>&1 | killall alsamixer)"
if [[ $PULSE == *'Connection refused'* ]]; then
echo 'Fixing Pulseaudio'
killPulse
sleep 0.1
pulseaudio -D
fixPulse
else
echo 'Pulseaudio is working correctly'
fi
}
# Start up programs that use audio.
function launchi3() {
if [ -z "$skipi3" ]; then
echo Opening i3wm sound workspaces
sleep .1 && i3-msg 'workspace 5; exec brave-browser'
#sleep 5.1 && python ~/bin/start-firefox.py
fi
}
# Set up sinks.
function setupSinks() {
pactl set-default-sink speakers
pactl set-default-source sm7b
}
# Connect sinks to audio interface
function connectSinks() {
pw-link speakers:monitor_FL alsa_output.usb-Focusrite_Clarett__8Pre_00002325-00.pro-output-0:playback_AUX0
pw-link speakers:monitor_FR alsa_output.usb-Focusrite_Clarett__8Pre_00002325-00.pro-output-0:playback_AUX1
pw-link alsa_input.usb-Focusrite_Clarett__8Pre_00002325-00.pro-input-0:capture_AUX3 sm7b:input_FL
pw-link alsa_input.usb-Focusrite_Clarett__8Pre_00002325-00.pro-input-0:capture_AUX3 sm7b:input_FR
return $?
}
function renameInterface() {
for n in `seq 0 17` ; do
jack_property -p -s "alsa:pcm:2:hw:2,0:capture:capture_${n}" http://jackaudio.org/metadata/pretty-name "capture_$((n+1))"
done
for n in `seq 0 19` ; do
jack_property -p -s "alsa:pcm:2:hw:2,0:playback:playback_${n}" http://jackaudio.org/metadata/pretty-name "playback_$((n+1))"
done
for n in `seq 0 19` ; do
jack_property -p -s "alsa:pcm:2:hw:2,0:playback:monitor_${n}" http://jackaudio.org/metadata/pretty-name "monitor_$((n+1))"
done
}
# Restart the Wireplumber service.
function restartWireplumber() {
systemctl --user stop wireplumber
sleep 5
systemctl --user restart wireplumber
}
# arg parser
for arg in "$@"
do
# Skip commands for i3wm
if [[ $arg == *"-s"* ]]; then
skipi3=true
fi
done
# Wire sinks
setupSinks
# Eurorack audio interface
sh ~/bin/audio/es9start.sh
launchi3
systemctl --user restart polybar
sleep 5
restartWireplumber

0
scripts/connect-nas.sh → scripts/bin/connect-nas.sh Normal file → Executable file
View File

View File

@ -5,7 +5,7 @@ killall -q polybar
while pgrep -x polybar >/dev/null; do sleep 0.1; done
for monitor in $(xrandr -q | grep -e "\sconnected\s" | cut -d' ' -f1); do
if [ $monitor == 'DVI-D-0' ] || [ $monitor == 'LVDS-1' ]; then
if [ $monitor == 'DP-2' ] || [ $monitor == 'LVDS-1' ]; then
MONITOR=$monitor polybar aqua &
fi
done

View File

@ -0,0 +1,7 @@
#!/bin/bash
# Stop all waybar instances
killall -q waybar
while pgrep -x waybar >/dev/null; do sleep 0.1; done
waybar &

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