Compare commits

..

336 Commits

Author SHA1 Message Date
AquaMorph 390f8d2a0e Stow orcaslicer 2023-11-25 13:11:34 -05:00
AquaMorph 35f7ddfe63 Use new script location 2023-11-25 10:23:31 -05:00
AquaMorph bafcfae28d Fix update script 2023-11-25 09:54:08 -05:00
AquaMorph b41a4141f2 Stow scripts 2023-11-25 09:35:34 -05:00
AquaMorph 547eb10705 Install python libs 2023-11-24 21:34:20 -05:00
AquaMorph 4ad576de67 i3 polkit 2023-11-24 20:03:13 -05:00
AquaMorph 8661d65d55 Stow mako 2023-11-24 19:04:46 -05:00
AquaMorph cdd6f23f30 Stow waybar 2023-11-24 19:03:18 -05:00
AquaMorph 4c1a3d0647 Stow rofi 2023-11-24 19:00:57 -05:00
AquaMorph 5e6e96e990 Stow polybar 2023-11-24 18:58:37 -05:00
AquaMorph 48710770b8 Stow kitty and i3status 2023-11-24 18:46:15 -05:00
AquaMorph 694f66c435 Remove host block 2023-11-24 18:37:22 -05:00
AquaMorph 6a177305b5 Stow i3 2023-11-24 18:25:53 -05:00
AquaMorph 86e889e6cb Remove GTK theme 2023-11-24 18:10:52 -05:00
AquaMorph aa57e13930 GTK stow 2023-11-24 18:06:59 -05:00
AquaMorph 7de6986353 Stow g13 2023-11-24 16:35:32 -05:00
AquaMorph 11a5082632 Stow alacritty 2023-11-24 16:26:32 -05:00
AquaMorph e2a4b4a3e8 Move zsh to stow 2023-11-24 15:47:27 -05:00
AquaMorph 2fdf3fab10 Update install method to use stow 2023-11-24 15:40:58 -05:00
AquaMorph 07a406ec79 Move install script 2023-11-24 15:39:11 -05:00
AquaMorph b889d0d667 Wireplumber autoconnect speakers 2023-11-24 15:26:45 -05:00
AquaMorph f59c3a52c6 Fix yabridge installer 2023-11-24 11:11:20 -05:00
AquaMorph 241b950ee6 Audio startup sink functions 2023-11-24 11:10:35 -05:00
AquaMorph c036dafc8a Disable mouse shortcuts for TF2 2023-11-24 11:07:50 -05:00
AquaMorph edc2b7d692 Increase terminal font size 2023-11-24 11:06:55 -05:00
AquaMorph 79b6af74af zsh prompt style 2023-11-24 11:00:40 -05:00
AquaMorph 1165f2ab93 Overwatch 2 from Steam 2023-08-12 10:44:23 -04:00
AquaMorph f061060796 Streamdeck USB rule 2023-07-02 17:31:01 -04:00
AquaMorph 907ffb0e53 Streamdeck service 2023-07-02 17:30:25 -04:00
AquaMorph d441ad6e34 Factorio bindings 2023-07-02 17:28:41 -04:00
AquaMorph 7dfe52d6e5 Hack for DaVinci Resolve libs 2023-07-02 14:40:04 -04:00
AquaMorph e85b63649e i3 Support for new Steam interface 2023-07-02 14:35:33 -04:00
AquaMorph e80a2ed715 Select newest version of Dragonframe 2023-05-13 15:48:46 -04:00
AquaMorph c2dd1c1942 Remove deprecated alacritty settings 2023-05-12 07:30:38 -04:00
AquaMorph c789c73630 Update mouse battery device name 2023-04-25 16:56:12 -04:00
AquaMorph 083d50f223 AAX converter 2023-04-25 07:54:10 -04:00
AquaMorph f4686e50f7 Made scripts executable 2023-01-22 19:29:10 -05:00
AquaMorph 37cc141f94 Add support for new i3 version 2023-01-05 15:41:51 -05:00
AquaMorph 75e07a6ff7 Add Factorio binding 2022-12-31 11:07:30 -05:00
AquaMorph 869a4ce634 SuperSlicer installer 2022-12-04 12:56:32 -05:00
AquaMorph 0a3eb6a4b7 AquaMix for Clarett+ 8Pre 2022-11-10 20:01:46 -05:00
AquaMorph f319f26fcb Fix Dragonframe download url parser 2022-11-09 07:59:53 -05:00
AquaMorph 2bf416ce93 Yabridge install use GitHub API 2022-09-17 10:11:49 -04:00
AquaMorph af38abbff2 Dragonframe User-Agent 2022-09-11 13:48:30 -04:00
AquaMorph 8ccabe7927 Rust installer 2022-09-07 08:52:00 -04:00
AquaMorph 60a2049634 NAS script executable 2022-09-04 15:50:24 -04:00
AquaMorph b61a1cc192 Change polybar desktop 2022-09-02 20:26:55 -04:00
AquaMorph 4a369196c9 Firefox startup delay 2022-09-02 20:26:19 -04:00
AquaMorph 4a2341ce6f Arkham Knight electric tool 2022-09-02 20:25:33 -04:00
AquaMorph 1208f9c140 Desktop Signal startup and monitor change 2022-09-02 19:00:41 -04:00
AquaMorph 1aa1fd18f5 Signal startup 2022-09-01 10:46:23 -04:00
AquaMorph 0e5fd8a923 yabridge install wine-staging 2022-08-27 20:05:20 -04:00
AquaMorph 67be4e0b36 zsh install script 2022-08-27 19:02:54 -04:00
AquaMorph 19bd5c6dc8 Sway desktop install script 2022-08-25 08:10:59 -04:00
AquaMorph fc45f10664 Bitwig waybar icon 2022-08-21 19:55:35 -04:00
AquaMorph 52091439d4 Framework automatic move program workspace 2022-08-21 19:12:13 -04:00
AquaMorph c33086e5f6 Mako config 2022-08-20 14:53:00 -04:00
AquaMorph 974706a8c3 Framework program startup, scale, and screen brightness 2022-08-20 12:26:06 -04:00
AquaMorph a91b34cb7f Git diff branch alias 2022-08-19 13:31:50 -04:00
AquaMorph 148a34d04f Background Nextcloud startup 2022-08-19 13:31:29 -04:00
AquaMorph 6d04a084cc Sway lockscreen for framework 2022-08-19 13:14:41 -04:00
AquaMorph f5fc6c2a0e Fix Dragonframe install check 2022-08-19 12:49:22 -04:00
AquaMorph e3d140ebb4 Sway keyring support 2022-08-19 12:39:56 -04:00
AquaMorph a477f33c56 Framework touchpad acceleration 2022-08-19 12:38:16 -04:00
AquaMorph d4ab38d7c4 Framework wallpaper 2022-08-18 20:29:03 -04:00
AquaMorph 1719a9bb70 Framework mouse, screen brightness, and media controls 2022-08-18 19:11:09 -04:00
AquaMorph b4cf9eccef Basic sway support for framework 2022-08-18 16:38:00 -04:00
AquaMorph c62bdae67d Tile wm config gen support for just sway 2022-08-18 15:58:35 -04:00
AquaMorph 42728fe683 Setup settings config file 2022-08-18 15:47:34 -04:00
AquaMorph 215f5c9bb8 Check if config is created before using it 2022-08-18 14:17:51 -04:00
AquaMorph be5e6212b1 Removed sudo flatpak 2022-08-14 17:58:34 -04:00
AquaMorph 04f4a9aff2 Flatpak use sudo 2022-08-14 17:05:43 -04:00
AquaMorph ccd44ffcef Support for Focusrite Clarett+ 8Pre 2022-07-18 15:28:49 -04:00
AquaMorph bf626cbcf6 Switched interface to pro audio profile 2022-07-16 08:07:32 -04:00
AquaMorph b0d9ad3855 Fix ES-5 connection to ES-9 2022-07-02 20:58:25 -04:00
AquaMorph 6f51eef489 Fixed audio startup not connecting mic and speakers 2022-06-22 17:01:13 -04:00
AquaMorph 347df83ffe Pipewire configs 2022-04-15 18:35:09 -04:00
AquaMorph 2c1807d668 Wayland notifications 2022-04-05 14:00:10 -04:00
AquaMorph a98ae738dd Arkham Knight bindings 2022-03-29 20:25:16 -04:00
AquaMorph ab8d6c1f22 Switched to using Wireplumber 2022-03-12 17:45:50 -05:00
AquaMorph 6a77a0205e Changed Bitwig download URL 2022-03-10 12:40:13 -05:00
AquaMorph fa7684c21e Updated alacritty background 2022-03-07 16:46:11 -05:00
AquaMorph aa965aca44 Fixed Bitwig installer 2021-12-28 09:42:18 -05:00
AquaMorph 728ed5527d Minecraft throw item button 2021-12-27 16:16:23 -05:00
AquaMorph 1ef1ab2108 Merge branch 'master' of github.com:AquaMorph/dotfiles 2021-12-04 18:49:07 -05:00
AquaMorph 74c78e877b Sway desktop background for w530 2021-12-04 18:48:57 -05:00
AquaMorph d250e6c3ce Added YouTube TV as video platform 2021-11-26 07:19:31 -05:00
AquaMorph 8622360433 Among Us bindings 2021-11-14 16:30:54 -05:00
AquaMorph 53671fb05c Rofi window text 2021-10-23 11:46:35 -04:00
AquaMorph c967d9634f Fixed config for new rofi format 2021-10-23 11:43:30 -04:00
AquaMorph 4812b349b5 Initial support for sway and waybar 2021-10-22 16:37:11 -04:00
AquaMorph 4c078fd92a Better ES-9 startup for Pipewire 2021-10-12 18:19:07 -04:00
AquaMorph b01c5ff59d Added Disney Plus as a video player 2021-10-12 18:12:47 -04:00
AquaMorph 854208f469 ES-5 to Pipewire 2021-10-10 16:25:50 -04:00
AquaMorph 117e37410e Switched to Pipewire 2021-09-25 17:57:08 -04:00
AquaMorph 4c68a6211b Removed mouse battery from Polybar 2021-08-10 19:15:44 -04:00
AquaMorph 34a24b2d17 Update when multiple versions of Dragonframe are installed 2021-07-14 20:59:31 -04:00
AquaMorph a536ee7d47 Toggle mic on w530 2021-06-21 09:34:28 -04:00
AquaMorph dd3b9efa61 Fixed background cursor spinning when opening terminal 2021-06-14 22:03:22 -04:00
AquaMorph 2f0849911d Fixed background image startup on w530 2021-06-14 14:57:23 -04:00
AquaMorph ea23e2a4a7 Fixed Webull opening in wrong window 2021-06-14 09:22:22 -04:00
AquaMorph e44f969ba2 Made install scripts executable 2021-06-10 19:37:18 -04:00
AquaMorph a3b9b70cb7 Darker polybar 2021-06-10 17:02:59 -04:00
AquaMorph fb2e5616c0 Added Webull 2021-06-10 11:33:54 -04:00
AquaMorph 25f653f6af Changed newline method 2021-06-07 09:06:29 -04:00
AquaMorph 5d4942f074 Bitwig installer executeable 2021-06-07 08:58:49 -04:00
AquaMorph 18409c1140 Newline between updates 2021-06-07 08:58:16 -04:00
AquaMorph a9142a723b Fixed spinning cursor on background 2021-05-30 12:46:48 -04:00
AquaMorph ed6757270c Moved alacritty url to hints 2021-05-30 11:15:39 -04:00
AquaMorph 616405a484 Graphics toggle executable 2021-05-23 10:31:32 -04:00
AquaMorph 5699501192 NextCloud sync client startup 2021-05-18 14:04:01 -04:00
AquaMorph 3416d626cf Fixed keyring for all computers 2021-05-18 12:55:57 -04:00
AquaMorph 8669d71ebc ES-9 Rule 2021-05-18 12:51:33 -04:00
AquaMorph fba07b4d23 Update programs faster 2021-05-16 18:23:15 -04:00
AquaMorph 226da5bdeb Keyring on startup 2021-05-16 18:22:38 -04:00
AquaMorph cb8044639b Fixed type in minecraft binding 2021-05-03 19:04:56 -04:00
AquaMorph 26f2cb4963 Hugo alias 2021-05-03 19:04:35 -04:00
AquaMorph c596064b44 Minecraft bindings 2021-04-24 10:59:47 -04:00
AquaMorph d562d87d0a Fixed GTK Icons 2021-04-19 13:13:09 -04:00
AquaMorph 5f8e1c7e7b Fixed emacs window moving 2021-04-16 12:57:50 -04:00
AquaMorph 55fd830007 Fixed Overwatch desktop 2021-04-14 18:11:15 -04:00
AquaMorph 169ffdc1e1 Fixed DaVinci Resolve installer 2021-04-02 16:12:17 -04:00
AquaMorph bee0f3a832 Removed sudo from package version checks 2021-03-20 14:20:13 -04:00
AquaMorph a413dff644 Fixed Overwatch i3wm setup 2021-02-27 10:42:00 -05:00
AquaMorph e40ff3bd9d Close i3wm window handler restart on Bitwig launch 2021-02-26 22:26:55 -05:00
AquaMorph ec7bb7394b Fixed DaVinci Resolve installer 2021-02-25 08:08:46 -05:00
AquaMorph 10e6311851 Fixed DaVinci Resolve installer going from beta to release 2021-02-25 07:33:12 -05:00
AquaMorph 6b4545b917 i3wm Bitwig start close window monitor service 2021-02-24 22:03:56 -05:00
AquaMorph 880052d80a Fixed Bitwig DSP window triggering automation 2021-02-21 17:16:25 -05:00
AquaMorph 4d98c61049 Synth power menu 2021-02-21 08:48:17 -05:00
AquaMorph 8bf1fbdbea Automatic DAW mode for Bitwig 2021-02-20 19:25:30 -05:00
AquaMorph 32b3e12943 Systemd setup install script 2021-02-20 16:38:54 -05:00
AquaMorph e2e6c46f98 Polybar systemd service 2021-02-20 12:07:02 -05:00
AquaMorph 90a1de1a10 ES-5 startup script works with program default install 2021-02-20 09:41:02 -05:00
AquaMorph 327f36cce4 Automatic ES-9 setup 2021-02-19 09:19:33 -05:00
AquaMorph ed2ab233cd Install program directories 2021-02-16 09:37:15 -05:00
AquaMorph 38aa9bbd1b Yabridge install script 2021-02-15 12:11:34 -05:00
AquaMorph f615d3e3db Terminal on computer startup 2021-02-12 21:37:46 -05:00
AquaMorph f2dfa528ee Added more video services 2021-02-12 21:36:27 -05:00
AquaMorph 560318dfa8 Cyberpunk 2077 keybindings 2021-02-12 20:59:15 -05:00
AquaMorph 65de29ca13 Fixed error with DaVinchi Resolve installer not being executable 2021-02-11 22:08:39 -05:00
AquaMorph f1fcf55f7f Fixed interface name 2021-02-09 21:10:39 -05:00
AquaMorph a0e32f6a38 Added more video platforms 2021-01-21 08:12:44 -05:00
AquaMorph 38d6f07ce6 Firefox starting with LBRY 2021-01-17 10:59:50 -05:00
AquaMorph edce94d03c Installed package searching 2021-01-12 15:35:28 -05:00
AquaMorph dcfc056cb0 Display correct monitors on startup 2020-12-28 13:28:46 -05:00
AquaMorph 410bf4d56a Remove unused flatpak runtimes 2020-12-18 09:31:52 -05:00
AquaMorph af8c799fd1 Fixed Reaper installer 2020-12-03 09:43:23 -05:00
AquaMorph 4b53929cc2 Forking manual updates 2020-12-01 09:09:48 -05:00
AquaMorph 83510a125b DaVinci Resolve beta installs 2020-11-30 22:18:31 -05:00
AquaMorph ee8d5dbce9 Added device toggling 2020-11-26 16:28:35 -05:00
AquaMorph 80946e9761 Fixed Bitwig installer for new version 2020-11-26 12:25:55 -05:00
AquaMorph 7e0337f8a6 Davinci Resolve beta updates 2020-11-19 11:52:53 -05:00
AquaMorph 04d8aa767f Script to convert CR3 to DNG RAW 2020-11-07 17:28:55 -05:00
AquaMorph f21f0bd89f Python package dependencies 2020-10-29 10:13:30 -04:00
AquaMorph fa93d2fe9d Basic synth power CLI 2020-10-25 20:26:28 -04:00
AquaMorph 4b2e9e63b9 Synth power controls 2020-10-25 16:56:06 -04:00
AquaMorph bc4e37a398 Home Assistant post requests 2020-10-25 14:27:51 -04:00
AquaMorph 89ecb534e0 Completed get methods for Home Assistant 2020-10-25 12:42:27 -04:00
AquaMorph b33f2586b8 Basic Home Assistant wrapper 2020-10-24 21:31:16 -04:00
AquaMorph 4b91be7b57 Battery percentage 2020-10-24 11:56:28 -04:00
AquaMorph 1056b9292a Basic CLI arguments for mixer 2020-10-14 21:32:03 -04:00
AquaMorph 580f77bb11 Refactored audio scripts to new directory 2020-10-11 10:38:42 -04:00
AquaMorph d28568ee03 Audio interface mixing scripts 2020-10-10 21:16:33 -04:00
AquaMorph 87054f8ca1 Fixed update check for DaVinci Resolve betas 2020-10-09 20:01:48 -04:00
AquaMorph f0d5f70ea5 Keeweb password manager install script 2020-10-07 18:26:41 -04:00
AquaMorph 8ab9980bbf Fixed Dragonframe installer 2020-10-05 09:41:54 -04:00
AquaMorph b8c9693326 Fixed Bitwig installer 2020-09-29 09:56:21 -04:00
AquaMorph 1f44801edb Move Firefox windows to proper workspaces 2020-09-24 20:46:15 -04:00
AquaMorph 650d747791 Desktop start up with additional Firefox windows 2020-09-18 08:40:44 -04:00
AquaMorph d77e129b2c Two Point Hospital escape binding 2020-09-18 08:39:52 -04:00
AquaMorph e0a5ae73d6 Two Point Hospital bindings 2020-08-29 12:27:20 -04:00
AquaMorph ce56dd2d85 Fix package selection for Resolve installer 2020-08-27 10:04:37 -04:00
AquaMorph 29df83e3d4 Downloaders use package download function 2020-08-25 08:21:33 -04:00
AquaMorph 7e6645704a Fixed Dragonframe check 2020-08-24 20:03:38 -04:00
AquaMorph f5d9c6d2c5 Resolve automatic install 2020-08-24 16:13:45 -04:00
AquaMorph 39efa6380f Alacritty config support for newest version 2020-08-23 19:49:53 -04:00
AquaMorph 53890288ba Automatic install of Reaper 2020-08-23 13:21:48 -04:00
AquaMorph a9c4699dae Reaper version check 2020-08-23 10:13:40 -04:00
AquaMorph 4bc38eadc4 OSS program update script 2020-08-22 16:33:44 -04:00
AquaMorph e77fb9a73c Renamed installer and setup scripts 2020-08-22 09:20:24 -04:00
AquaMorph 6f6cc537cf ES-9 stop and renaming 2020-08-16 18:22:01 -04:00
AquaMorph 21bb1fb091 Improved DSP load 2020-08-16 17:29:59 -04:00
AquaMorph d51d8d18c1 Switch character buttons 2020-08-09 09:22:44 -04:00
AquaMorph 35c27924e2 Portal bindings 2020-08-08 10:05:55 -04:00
AquaMorph 914534eb93 Added escape key to Fall Guys config 2020-08-08 10:05:25 -04:00
AquaMorph c7b65101f7 Fall Guys binding 2020-08-07 16:28:40 -04:00
AquaMorph 93aedd616d Fixed audio startup 2020-07-28 19:08:53 -04:00
AquaMorph 2990cfe9b7 Simplify3D profile for CR-10s 2020-07-23 21:46:27 -04:00
AquaMorph 723dd4ac07 Daisy build enviroment 2020-07-11 22:08:17 -04:00
AquaMorph e7354ec232 Prioritized drun 2020-07-07 10:50:50 -04:00
AquaMorph f93e7739ba i3wm for window generator and Planet Coaster bindings 2020-07-05 19:24:22 -04:00
AquaMorph dd1b7376c1 Bindings for Planet Coaster 2020-07-05 16:25:25 -04:00
AquaMorph 8196c71d93 Improved gaps 2020-07-05 09:06:12 -04:00
AquaMorph 49b49fc7bb Thickened borders 2020-07-04 08:19:41 -04:00
AquaMorph dbe74db2c2 Icons for rofi 2020-07-03 13:21:08 -04:00
AquaMorph 99d0355813 Flatpak updating 2020-06-30 12:44:22 -04:00
AquaMorph 43170cf447 FPV Drone configs 2020-06-18 21:56:28 -04:00
AquaMorph 782ace88f3 Audio startup functions 2020-05-31 11:31:46 -04:00
AquaMorph d672031ad0 Smarter audio startup 2020-05-30 13:20:47 -04:00
AquaMorph 1bb6e3e9ac Update alias 2020-05-29 08:38:13 -04:00
AquaMorph f1310e517b Polybar less transparent 2020-05-25 09:53:55 -04:00
AquaMorph 012e18fb98 Two more iterations on audio startup 2020-05-25 09:53:01 -04:00
AquaMorph e165e24847 Mov file conversion 2020-05-25 09:52:06 -04:00
AquaMorph f86a577d26 Convert capitalized mp4 files 2020-05-14 17:08:55 -04:00
AquaMorph 1f9a810ea9 Fixed trackpad disable 2020-04-27 09:25:46 -04:00
AquaMorph 90c0d3b038 Doom Eternal bindings 2020-04-18 14:13:05 -04:00
AquaMorph c4e62f6db9 Toggle run level 2020-04-04 09:43:41 -04:00
AquaMorph dee02d73d9 Removed deprecated alacritty settings 2020-04-01 08:49:37 -04:00
AquaMorph d89807b8d6 Weapon switching for DOOM 2020-03-16 10:59:29 -04:00
AquaMorph 62b432be1d DOOM profile loads when game starts 2020-03-14 18:51:20 -04:00
AquaMorph 3b02692c15 Doom G13 bindings 2020-03-13 21:45:40 -04:00
AquaMorph 2a6adc46d1 Event key passed as CLI argument and use live project 2020-02-14 15:49:38 -05:00
AquaMorph 4968769ba7 Robot photo based on match schedules 2020-02-12 16:13:36 -05:00
AquaMorph a6d30fd86a Creates basic photo checklist 2020-02-11 15:24:10 -05:00
AquaMorph a94b14769a Began framework for FRC photo checklist 2020-02-10 16:21:08 -05:00
AquaMorph 21c0e69d86 Icons for polybar 2020-01-26 15:40:56 -05:00
AquaMorph 58c0118724 Support for ES-9 2020-01-18 20:07:25 -05:00
AquaMorph 580740dbd0 Resolve add to end of timeline shortcut 2020-01-14 19:24:57 -05:00
AquaMorph 33f82c4ad4 Convert audio of video files for Resolve 2020-01-13 20:10:26 -05:00
AquaMorph 0432c3ac6d Fixed script to run from any directory 2020-01-12 18:33:31 -05:00
AquaMorph 165ac2849c Restored Resolve gaps 2020-01-11 19:25:13 -05:00
AquaMorph ea06e7aed2 Audio fix 2020-01-05 21:03:06 -05:00
AquaMorph cb7e2d9cd4 Changed polybar to blue 2020-01-03 19:11:02 -05:00
AquaMorph b2e7930ef9 Audio start pulseaudio properly 2020-01-02 09:10:09 -05:00
AquaMorph 3bee06e3d7 Improved workspace formatting 2020-01-02 09:09:07 -05:00
AquaMorph 1d3e87d431 Bitwig desktop 2020-01-01 09:01:57 -05:00
AquaMorph 8a63dcd897 Removed audio hack 2019-12-31 09:06:19 -05:00
AquaMorph 9b3ab03ea3 Skip sound start program launching flag 2019-12-30 12:24:17 -05:00
AquaMorph 827b6c406b Moved installers to use library 2019-12-30 06:48:46 -05:00
AquaMorph 5714ea26cc Dragonframe installer 2019-12-29 15:12:42 -05:00
AquaMorph f167b0f12e Audio startup fixes 2019-12-29 14:33:51 -05:00
AquaMorph 39d30cd76a Reaper desktop 2019-12-28 20:24:54 -05:00
AquaMorph 585ba6e330 Git add alias 2019-12-27 22:14:52 -05:00
AquaMorph 9e39f2b2a0 Basic Reaper install script 2019-12-26 21:01:31 -05:00
AquaMorph cfa7421c0d Bitwig installer fix for crashing on startup 2019-12-25 20:37:32 -05:00
AquaMorph 012454a147 Bitwig install script 2019-12-25 20:30:40 -05:00
AquaMorph 3905df13d9 Config file generation 2019-12-25 15:16:55 -05:00
AquaMorph 0204e53cc2 Load settings 2019-12-25 12:47:30 -05:00
AquaMorph bf5e905388 Startx for laptop 2019-12-25 12:42:38 -05:00
AquaMorph be7f897dd7 Update setup on startup 2019-12-24 21:50:09 -05:00
AquaMorph 9ed5790415 Dotfiles alias 2019-12-24 21:49:26 -05:00
AquaMorph bfd5d054c2 Removed old install system 2019-12-24 12:20:33 -05:00
AquaMorph ed6dfe22b8 New Resolve desktop 2019-12-24 11:25:09 -05:00
AquaMorph 754a568335 Rofi spacing 2019-12-23 19:14:52 -05:00
AquaMorph 3b1afd08ec Self updating 2019-12-23 19:09:21 -05:00
AquaMorph c0ae64ccfb Install script uses functions 2019-12-23 17:58:31 -05:00
AquaMorph 8550832516 Install directions 2019-12-23 15:10:56 -05:00
AquaMorph b46d9d080b Working install script 2019-12-23 14:42:49 -05:00
AquaMorph d0a24b844c Root skipping flag 2019-12-23 13:56:04 -05:00
AquaMorph 2362602ed5 Cleaned formatting 2019-12-23 11:28:37 -05:00
AquaMorph 3d6fac2664 Linking directories 2019-12-23 10:50:44 -05:00
AquaMorph 46b4a3f945 Moving dotfiles to independent directory 2019-12-22 21:59:22 -05:00
AquaMorph 329aa603df Changed i3 program launcher 2019-12-14 14:55:17 -05:00
AquaMorph cd17afb1a1 Switched to Rofi 2019-12-14 14:54:37 -05:00
AquaMorph f6d509d5cc Moved interface startup to new script 2019-12-14 08:37:44 -05:00
AquaMorph fa98be2c0c Added screenshot keybindings 2019-12-14 08:37:07 -05:00
AquaMorph faa84f07c4 Improved opacity settings 2019-12-14 08:35:25 -05:00
AquaMorph f28aa3d4d2 ES-8 dynamic startup script 2019-11-16 11:36:22 -05:00
AquaMorph 01d37f6b90 Screenshot shortcut 2019-11-12 20:30:50 -05:00
AquaMorph ebcacb7bc2 Made i3 colors variables, bitwig opening and gaps shortcuts 2019-10-14 19:37:49 -04:00
AquaMorph 70361efc50 Moved i3 settings from desktop to shared 2019-10-12 15:42:09 -04:00
AquaMorph 048cddfd3e Removed duplicate i3 config 2019-10-02 21:12:35 -04:00
AquaMorph 623ae43ead Added a readme 2019-09-26 18:39:28 -04:00
AquaMorph ed0cb9e483 Git pull alias 2019-09-25 19:50:50 -04:00
AquaMorph 376e0d1303 Removed duplicate files 2019-09-25 17:52:24 -04:00
AquaMorph 975cf91c1c Capslock made to be super key 2019-09-23 21:52:02 -04:00
AquaMorph 9bfe1ab53c Skip backing up symbolic links 2019-09-23 21:33:38 -04:00
AquaMorph 5f4927b3e0 Dotfiles setup 2019-09-22 21:34:07 -04:00
AquaMorph 1828f1a99b Process fork 2019-09-21 22:07:53 -04:00
AquaMorph 14e51ee50a Set desktop wallpaper 2019-09-20 21:43:54 -04:00
AquaMorph c77cfe7a52 Moved i3 config script 2019-09-18 19:39:53 -04:00
AquaMorph 3e26cc0141 Moved i3 scripts 2019-09-18 19:30:24 -04:00
AquaMorph e0bf2a9a54 i3 cycle workspaces 2019-09-18 16:49:32 -04:00
AquaMorph aee072c7bf Gaps and gaps theming 2019-09-18 14:26:40 -04:00
AquaMorph 826eb66876 Fixed monitor fallback 2019-09-18 11:03:51 -04:00
AquaMorph ebd43ad461 Laptop i3 config 2019-09-17 21:30:18 -04:00
AquaMorph dff22f381e Git alias 2019-09-17 21:27:44 -04:00
AquaMorph fac4a81bef Fixed emacs from terminal 2019-09-17 20:50:55 -04:00
AquaMorph 18c61b64fa Better support for the laptop 2019-09-16 20:50:09 -04:00
AquaMorph 97d703070a Mouse thumb gestures move windows around 2019-09-15 19:03:50 -04:00
AquaMorph 39659417e1 Moved polybar monitor to third screen 2019-09-11 20:39:47 -04:00
AquaMorph 6f45dbc0f6 Swtich desktops with mouse buttons 2019-09-11 20:33:24 -04:00
AquaMorph ebf268e0ea Gave more used screens more virtual desktops 2019-09-10 19:14:36 -04:00
AquaMorph 9e6448c6ae Dotfiles install and backup script 2019-09-04 16:19:59 -04:00
AquaMorph 63a9f7a787 Install and backup script for hosts 2019-09-04 13:14:50 -04:00
AquaMorph b864018a7b Hosts blocking 2019-09-04 13:12:08 -04:00
AquaMorph df42eb1140 Firefox added to sound startup 2019-09-01 08:40:06 -04:00
AquaMorph 6d6049ad69 Changed font for dmenu 2019-09-01 08:36:27 -04:00
AquaMorph 383d9dc6eb Overwatch and DaVinci Resolve startup setup 2019-08-31 11:29:13 -04:00
AquaMorph d9e0917110 Removed gtk decorations 2019-08-30 21:20:12 -04:00
AquaMorph e9ef53bd5a Changed studio name 2019-08-30 20:26:17 -04:00
AquaMorph a63569a800 More resolve shortcuts 2019-08-30 20:25:24 -04:00
AquaMorph 77cd405956 GTK theme 2019-08-27 08:13:50 -04:00
AquaMorph 8b2661e4fa DaVinci Resolve keyboard shortcuts 2019-08-24 16:56:41 -04:00
AquaMorph d328f8aa90 Resolve g13 config 2019-08-24 12:16:39 -04:00
AquaMorph 28d3eccb66 Changed NAS name 2019-08-21 20:48:46 -04:00
AquaMorph 694e2abc6c Changed font 2019-08-21 20:48:19 -04:00
AquaMorph f42f59f80a Startup ES-8 interface 2019-07-31 09:50:59 -04:00
AquaMorph 723c164bb1 Faster audio startup 2019-07-28 12:46:26 -04:00
AquaMorph 7ac78a5b58 Start up system audio script 2019-07-28 11:59:19 -04:00
AquaMorph 34cea0c7c8 Connecting to NAS 2019-07-21 16:30:30 -04:00
AquaMorph 4c031c7dec File explorer for videos 2019-07-14 16:12:06 -04:00
AquaMorph 45f1e5420f Alacritty config 2019-07-13 21:44:04 -04:00
AquaMorph d42c2fcb96 File explorer shortcut 2019-07-13 21:41:23 -04:00
AquaMorph b57a941535 Impoved G13 profile menu 2019-06-22 15:40:20 -04:00
AquaMorph 99743600db Added script for Logitech G13 2019-06-21 21:14:27 -04:00
AquaMorph 1fe307a689 Removed monitor hack 2019-06-21 20:10:28 -04:00
AquaMorph 4ee7a5aea7 Added startup programs for desktop 2019-06-20 21:38:01 -04:00
AquaMorph bf7e1fb223 Monitor hack 2019-06-19 15:22:13 -04:00
AquaMorph bbe3dafed0 Created configurable i3wm config builder 2019-06-16 21:11:56 -04:00
AquaMorph 3edfb5af32 Initial support for desktop 2019-06-16 15:10:50 -04:00
AquaMorph 704ba13af2 Android Studio opens on set workspace 2018-10-10 20:56:17 -04:00
AquaMorph c41a70ee19 Auto start Firefox 2018-10-10 20:03:59 -04:00
AquaMorph 45ff1e0fef Added wifi to bar 2018-08-29 20:51:03 -04:00
AquaMorph 3bda2424ac Added backlight indicator 2018-08-29 11:13:02 -04:00
AquaMorph 434c2ea90c Added battery indicator 2018-08-29 10:58:53 -04:00
AquaMorph 26f0a146ae Improved formatting of battery 2018-08-28 21:46:45 -04:00
AquaMorph 86d4b1fdfe Added battery percentage 2018-08-28 21:39:01 -04:00
AquaMorph b3671721a2 Moved to polybar 2018-08-28 21:19:28 -04:00
AquaMorph ffee17ecc1 Fixed mouse spining on startup 2018-08-25 20:06:18 -04:00
AquaMorph 22831ca8f1 Added TrackPad disable toggle 2018-08-25 17:45:50 -04:00
AquaMorph 2420127c75 Made font slighty larger for desktop 2018-08-25 14:53:20 -04:00
AquaMorph 7f3cde64d5 Fixed volume display for i3status 2018-08-25 14:47:41 -04:00
AquaMorph e8fcd6d537 Added kitty config 2018-08-23 22:11:38 -04:00
AquaMorph d0457209f9 Fixed conflict 2018-07-31 18:40:24 -04:00
AquaMorph 28ab8e28ad Improved theming 2018-07-31 18:32:51 -04:00
AquaMorph 1c42ec4cab Added lock screen shortcut 2018-07-31 13:52:54 -04:00
AquaMorph cbf3df385c Added minor adjustments to window resize 2018-07-27 17:58:21 -04:00
AquaMorph 9fb3285e1f Changed close window command 2018-07-25 22:01:22 -04:00
AquaMorph a56363da9e Cleaned config 2018-07-25 21:58:51 -04:00
AquaMorph 2530a7fb41 Added volume percentage 2018-07-25 20:09:35 -04:00
AquaMorph cee19832d9 Improved battery design 2018-07-25 20:00:14 -04:00
AquaMorph a796a862d8 Cleaned useless statuses 2018-07-25 19:35:55 -04:00
AquaMorph 4e1af90a3a Changed battery percentage to relative to last full charge
Switched clock to 12 hours and seperated date
2018-07-25 18:43:10 -04:00
AquaMorph 72b8fdf26d Initial commit 2018-07-25 18:11:43 -04:00
153 changed files with 6908 additions and 3174 deletions
-8
View File
@@ -1,8 +0,0 @@
Commits
## Commit Message Format
Follow conventional commits style (all lowercase).
- `feat(scope): description` - New feature
- `fix(scope): description` - Bug fix
- `refactor(scope): description` - Code refactoring
- `docs(scope): description` - Documentation changes
- Example: `feat(zsh): update dotfiles` or `fix(scripts): use correct pass entry`
-1
View File
@@ -1 +0,0 @@
home
+142
View File
@@ -0,0 +1,142 @@
i3/.config/i3/config
settings.conf
systemd/user/*/*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
-147
View File
@@ -1,147 +0,0 @@
# AGENTS.md - Coding Guidelines for Agentic Operations
This repository is a personal dotfiles collection managed with [chezmoi](https://www.chezmoi.io). It contains configuration files, shell scripts, and Python utilities for system management.
## Build, Lint & Test Commands
### Running Scripts
- **Shell scripts**: `bash ./home/bin/executable_<script_name>.sh` or run directly if executable
- **Python scripts**: `python3 ./home/bin/<script_name>.py`
- **Install dependencies**: `pip install -r requirements.txt`
### Testing
No formal test framework is present. Validation is done by:
- Running scripts manually with test inputs
- Checking for runtime errors (e.g., `python3 -m py_compile <file>` for syntax)
- Verifying command outputs match expected behavior
### Single Test/Script Execution
```bash
# Run a single Python script
python3 ./home/bin/i3-mouse.py
# Run a single shell script
bash ./home/bin/executable_update.sh
# Check Python syntax without running
python3 -m py_compile ./home/bin/homeassistant.py
```
## Code Style Guidelines
### Python
#### Imports
- Use standard library imports first, then third-party imports, then local imports
- Import order: `os`, `sys`, `time``requests`, `i3ipc`, `pyautogui` → local modules
- Each import on its own line (avoid `import x, y, z`)
- Example:
```python
#!/usr/bin/env python3
import os
import sys
import datetime
from requests import get, post
import json
```
#### Naming Conventions
- **Functions**: `snake_case` (e.g., `getPoints()`, `pointsToDirection()`)
- **Classes**: `PascalCase` (e.g., `HomeAssistant`, `Direction`)
- **Constants**: `UPPER_SNAKE_CASE`
- **Private members**: prefix with underscore `_privateVar`
- Enums use `PascalCase` for class and `UPPER_SNAKE_CASE` for members
#### Formatting
- Use 4-space indentation (not tabs)
- Line length: Keep to reasonable length (~80-100 chars) where practical
- Shebang for executable scripts: `#!/usr/bin/env python3`
- Blank lines: 2 between top-level definitions, 1 between method definitions
#### Types & Documentation
- No type hints required (not present in codebase)
- Add docstring comments for classes and non-obvious functions
- Comment format: `# description` (no colons at end unless explaining)
- Example: `# Enum for mouse direction`
#### Error Handling
- Use `raise` for exceptions in API wrappers (e.g., `response.raise_for_status()`)
- Return `None` for optional/conditional operations
- Handle command availability checks: `if command -v <cmd> &> /dev/null`
### Shell Scripts
#### Shebang & Headers
- Start with: `#!/bin/bash`
- Add brief comment: `# Script purpose description`
#### Formatting
- Use 2-space indentation
- Quote variables: `"${variable}"` or `"$variable"`
- Use `function name { ... }` syntax for functions
#### Naming & Structure
- Function names: `snake_case`
- Variables: lowercase with underscores for clarity
- Check for command availability before use:
```bash
if command -v <cmd> &> /dev/null; then
<cmd> <args>
fi
```
#### Error Handling
- Use `set -e` to exit on error when appropriate
- Check command exit status: `if <command>; then ... fi`
- Redirect stderr appropriately: `2>/dev/null` or `2>&1`
### Configuration Files
- Before generating a commit, always consult `.agent/COMMITS.md` for the required style.
#### chezmoi Templates
- Dotfiles use chezmoi's templating system
- Template syntax: `{{ }}` for variables (Chezmoi specific)
- File naming: `dot_` prefix for dotfiles (e.g., `dot_zshrc`)
- Executable scripts: `executable_` prefix
#### Comments
- Use `#` for all config file comments
- Keep comments concise and descriptive
## Repository Patterns
### Commit Message Format
Follow conventional commits style (all lowercase).
- `feat(scope): description` - New feature
- `fix(scope): description` - Bug fix
- `refactor(scope): description` - Code refactoring
- `docs(scope): description` - Documentation changes
- Example: `feat(zsh): update dotfiles` or `fix(scripts): use correct pass entry`
#### Pushing Remotes
- **Do not push git repositories to remote unless explicitly instructed.**
### File Organization
- Shell scripts: `home/bin/executable_<name>.sh`
- Python scripts: `home/bin/<name>.py`
- Config files: `home/dot_config/<app>/` (following XDG spec)
- Dependencies: List in `requirements.txt`
## Key Dependencies
- **configparser** - Config file parsing
- **todoist-python** - Todoist API
- **tbapy** - TBA API for robotics
- **holidays** - Holiday detection
- **i3ipc** - i3 window manager control
- **pyautogui** - Mouse control
- **requests** - HTTP library
- **dateutil** - Date utilities
## Development Notes
- This is a personal configuration repository, not a library
- Scripts are system-level utilities and automation scripts
- No CI/CD pipeline present (manual validation)
- Target OS: Linux (Ubuntu/Fedora compatible)
- Python version: Python 3.x minimum
+14 -3
View File
@@ -2,9 +2,20 @@
A collection of config files and scripts for Fedora GNU/Linux.
## Installation
## Install
```bash
chezmoi init --apply git@github.com:AquaMorph/dotfiles.git
Run the following command to install
```sh
cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/install.sh
```
## Scripts
### frc-photo-checklist.py
Python script to generate a Todoist checklist for taking photos at an FRC event.
```sh
python frc-photo-checklist.py [Event Key]
```
+603
View File
@@ -0,0 +1,603 @@
# 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
opacity: 0.8
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: 16.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
# 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'
# 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
hints:
# 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
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" }
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1 +0,0 @@
AquaAI/glm-4.7-flash
@@ -1 +0,0 @@
AquaAI
@@ -1,7 +0,0 @@
Be as concise as possible.
Be extremely accurate.
Recommend things I would not realize I would benefit from.
Call out my misconceptions and tell me when I am wrong.
For personal matters {{ template "prompts/agent-name" . }} is encouraging but brutally honest.
Never sycophantic.
Do not use em dashes. If an em dash would normally appear, use a comma for continuing thoughts or a period if it should be a separate sentence.
-1
View File
@@ -1 +0,0 @@
You are an AI assistant named {{ template "prompts/agent-name" . }}.
-25
View File
@@ -1,25 +0,0 @@
# Scripts
## AquaAI
AquaAI is bash script that interacts with OpenAI and Ollama APIs to enable terminal based interaction with LLMs.
## connect-nas.sh
Connect to long storage NAS.
## convert-mp4-to-resolve.sh
Converts mp4 video files to a video format where the audio works with the linux version of Davinci Resolve.
## frc-photo-checklist.py
Python script to generate a Todoist checklist for taking photos at an FRC event.
```sh
python frc-photo-checklist.py [Event Key]
```
## get-mouse-battery.sh
Prints out the battery percentage of a mouse and if it is charging.
-929
View File
@@ -1,929 +0,0 @@
#!/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://ai.aquamorph.com/api'}
#
# 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}
#
# Use OpenAI api design instead of Ollama.
#
# export AQUAAI_OPENAI_API:=true
#
openai_api=${AQUAAI_OPENAI_API:=true}
#
# Set key used to authenticate with the API.
#
# export AQUAAI_KEY:=true
#
key=${AQUAAI_KEY:=''}
#===============================================================================
# Constants.
OLLAMA_URL=${ollama_url}
CURL_FLAGS=('-sN')
USER=$(whoami)
DATA_DIR="${HOME}/.local/share/aquaai"
RESPONSE_FIFO="${DATA_DIR}/.response"
AGENT_NAME='AquaAI'
# Colors.
CLEAR='\033[0m'
BLUE='\033[0;34m'
RED='\e[1;31m'
LIGHT_GRAY='\e[38;5;247m'
# Globals.
message_history="[]"
cli_mode=false
git_mode=false
code_review_start=false
selected_model=${default_model}
# 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
#===============================================================================
# Give the AI a name. It improves prompting to call it by name.
function name_agent() {
system_prompt="You are an AI assistant named ${AGENT_NAME}."
}
# Make the AI write and behave better.
function set_better_conversions() {
system_prompt+=' Be as concise as possible.'
system_prompt+=' Be extremely accurate.'
system_prompt+=' Recommend things I would not realize I would benefit from.'
system_prompt+=' Call out my misconceptions and tell me when I am wrong.'
system_prompt+=" For personal matters ${AGENT_NAME} is encouraging"
system_prompt+=' but brutally honest.'
system_prompt+=' Never sycophantic.'
system_prompt+=' Do not use em dashes. If an em dash would normally appear,'
system_prompt+=' use a comma for continuing thoughts or a period if it'
system_prompt+=' should be a separate sentence.'
}
# Set the formatting for all reponses.
function set_response_format() {
system_prompt+=' Do not wrap response in quotation marks or apostrophes.'
system_prompt+=' Do not use html to format response.'
}
# Limit format of output to just commands.
function format_for_cli() {
system_prompt+=" ${AGENT_NAME} does not put commands in quotation marks."
system_prompt+=" ${AGENT_NAME} does not put commands in markdown."
system_prompt+=" ${AGENT_NAME} only outputs terminal commands."
}
# Default prompt.
function set_default_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} follows the users instructions carefully."
system_prompt+=" ${AGENT_NAME} responds using extended markdown."
set_better_conversions
set_response_format
}
# 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 '"')
name_agent
system_prompt+=" ${AGENT_NAME} assists users with ${os_version}."
format_for_cli
set_response_format
}
# Set chat to help with bash questions.
function set_bash_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} assists users with POSIXs bash."
system_prompt+=' Format output for view in a command line.'
system_prompt+=' Do not put commands in quotation marks.'
system_prompt+=' Use double spaces and the function keyword.'
system_prompt+=' Write documentation before the function declaration.'
set_response_format
}
# Set ai to help with code reviews.
function set_code_review_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} is a senior software engineer performing a"
system_prompt+=' code review for a colleague.'
system_prompt+=''
set_better_conversions
system_prompt+=' Show code snipets when helpful.'
system_prompt+="${AGENT_NAME}'s reports 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_response_format
}
# Set chat to help with git.
function set_git_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} assists users with git."
format_for_cli
if is_git_repo; then
system_prompt+="\n\nHere is some information about the current git repo.\n"
local current_branch=$(git branch --show-current)
system_prompt+="Current branch: ${current_branch} \n"
local git_remotes=$(git remote -v)
system_prompt+="Remotes: ${git_remotes}\n"
fi
}
# Set chat to help with regex.
function set_regex_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} assists users with regex."
system_prompt+=' Only output a single regex expression.'
system_prompt+=' Use BRE and ERE regex.'
format_for_cli
}
# Set chat to help with Home Assistant.
function set_home_assistant_agent() {
name_agent
system_prompt+=" ${AGENT_NAME} assists users with Home Assistant programming."
system_prompt+=" Templating is done with Jinja2."
}
#===============================================================================
# Get the first available model from a given list.
function get_model_from_list() {
local models=("$@")
for m in "${models[@]}"; do
check_if_model_exists $m true
if [ $? -eq 0 ]; then
echo "${m}"
return
fi
done
print_error "could not find any models on the list."
exit $ERROR_UNKNOWN_MODEL
}
function load_model_from_list() {
local models=("$@")
selected_model=$(get_model_from_list "${models[@]}")
if [[ $? -ne 0 ]]; then
print_error "could not find any models on the list."
exit $ERROR_UNKNOWN_MODEL
fi
}
# Set the default coding model.
function set_coding_model() {
local models=(${coding_model}
'qwen2.5-32b-coder'
'qwen2.5-7b-coder'
'llama3.3-70b-instruct'
'hf.co/Qwen/Qwen2.5-Coder-3B-Instruct-GGUF:Q4_K_M'
'hf.co/bartowski/Qwen2.5-Coder-1.5B-Instruct-GGUF:Q4_K_M'
'qwen2.5-coder:3b'
'qwen2.5-coder:0.5b'
)
load_model_from_list "${models[@]}"
}
# Set the default reasoning model.
function set_reasoning_model() {
local models=(${reasing_model}
'qwen3-32b'
'gpt-oss-120b'
)
load_model_from_list "${models[@]}"
}
#===============================================================================
# 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 available models info.
function get_models() {
local model_path=''
if [ "${openai_api}" == true ]; then
model_path='/models'
else
model_path='/tags'
fi
curl "${CURL_FLAGS[@]}" "${OLLAMA_URL}${model_path}"
}
# Get a list of available models.
function get_models_list() {
local jq_filter=''
if [ "${openai_api}" == true ]; then
jq_filter='.data[].id'
else
jq_filter='.models[].model'
fi
get_models | jq -r ${jq_filter}
}
# Print list of models.
function print_models() {
get_models_list | column -t -s $'\t'
}
# Print message variable.
function print_message_history() {
echo ${message_history}
}
# Print message variable.
function print_debug() {
echo "Model: ${selected_model}"
echo 'System Prompt:'
print_system_prompt
echo 'Chat History:'
print_message_history | jq
}
# Print the system prompt.
function print_system_prompt() {
echo -e "${system_prompt}"
}
# Check if the model exists.
function check_if_model_exists() {
local model=${1}
local enable_rc=${2}
local model_list=($(get_models_list))
for m in "${model_list[@]}"; do
if [[ "$m" == "$model" ]]; then
return 0
fi
done
if [ ${enable_rc} ]; then
return 1
else
print_error "model ${model} does not exists."
exit $ERROR_UNKNOWN_MODEL
fi
}
# 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 is_git_repo() {
git rev-parse --is-inside-work-tree &> /dev/null
}
# 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 "${CURL_FLAGS[@]}" ${OLLAMA_URL} 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
print_debug
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
rc=$((rc + $?))
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 flags=("${CURL_FLAGS[@]}")
local chat_path=''
local filter=''
if [ "${openai_api}" == true ]; then
flags+=(-H "Content-Type: application/json")
chat_path='/chat/completions'
filter='.choices[].delta.content // empty'
else
chat_path='/api/chat'
filter='.message.content // empty'
fi
local response=$(curl "${flags[@]}" "${OLLAMA_URL}${chat_path}" \
-d "${JSON_PAYLOAD}" | stdbuf -o0 sed 's/^data: //' \
| stdbuf -o0 jq -j "${filter}" 2>/dev/null \
| 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
if [ "${openai_api}" == true ]; then
CURL_FLAGS+=(-H "Authorization: Bearer ${key}")
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
;;
-ha|--home-assistant)
set_coding_model
set_home_assistant_agent
cmd=chat_loop
rich_format_mode=false
;;
# Other
-*|--*)
echo "Unknown option ${i}"
print_help
exit ERROR_UNKNOWN_OPTION
;;
esac
done
${cmd}
@@ -1,52 +0,0 @@
#!/usr/bin/env bash
# Print help info.
function print_help() {
echo 'Control the backlight brightness with animation.'
echo
echo '-i -- increase brightness'
echo '-d -- decrease brightness'
}
# Increase backlight brightness.
function increase() {
run_animation 'light -A 0.1'
}
# Decrease backlight brightness.
function decrease() {
run_animation 'light -U 0.1'
}
# Run animation task.
function run_animation() {
local cmd="${1}"
i=0
while [ $i -lt 50 ]; do
${cmd}
sleep 0.01
((i = i + 1));
done
}
# Check arguments
for i in "$@"; do
case $i in
-h|--help)
print_help
exit 0
;;
-i)
increase
;;
-d)
decrease
;;
*)
print_help
exit 1
;;
esac
done
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Update Passwords
pass git pull
# Desktop
~/bin/connect-nas.sh
systemctl --user start polybar
systemctl --user restart streamdeck
waybar &
/usr/libexec/polkit-gnome-authentication-agent-1 &
# Keyring
dbus-update-activation-environment --all
/usr/bin/gnome-keyring-daemon --start --components=secrets,pkcs11,ssh
# NextCloud sync client
nextcloud --background &
@@ -1,5 +0,0 @@
sync_info = create
user_id =
setting_id =
base_id = GFSA04
updated_time = 1734886086
@@ -1,13 +0,0 @@
{
"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"
}
@@ -1,5 +0,0 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1728686097
@@ -1,10 +0,0 @@
{
"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"
}
@@ -1,5 +0,0 @@
sync_info = update
user_id =
setting_id =
base_id = GM003
updated_time = 1728686148
@@ -1,13 +0,0 @@
{
"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"
}
@@ -1,86 +0,0 @@
{
"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"
]
}
@@ -1,5 +0,0 @@
sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1695585702
@@ -1,5 +0,0 @@
sync_info =
user_id =
setting_id =
base_id = GP004
updated_time = 1735702877
@@ -1,9 +0,0 @@
{
"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"
}
@@ -1,5 +0,0 @@
sync_info =
user_id =
setting_id =
base_id = GP004
updated_time = 1736606291
@@ -1,9 +0,0 @@
{
"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"
}
-606
View File
@@ -1,606 +0,0 @@
[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"
-50
View File
@@ -1,50 +0,0 @@
$mainMod = SUPER
# Keybindings
bind = $mainMod, return, exec, $terminal
bind = $mainMod, Q, killactive,
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
-17
View File
@@ -1,17 +0,0 @@
# 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
-5
View File
@@ -1,5 +0,0 @@
# Programs
$terminal = alacritty
$fileManager = dolphin
$menu = rofi -show combi
$browser = brave-browser
-43
View File
@@ -1,43 +0,0 @@
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
}
gesture = 3, horizontal, workspace
-40
View File
@@ -1,40 +0,0 @@
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
-76
View File
@@ -1,76 +0,0 @@
background {
monitor =
path = $HOME/.cache/blurred_wallpaper.png
}
input-field {
monitor =
size = 200, 50
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515)
inner_color = rgb(FFFFFF)
font_color = rgb(10, 10, 10)
fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
check_color = rgb(204, 136, 34)
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = false # see below
position = 0, -20
halign = center
valign = center
}
label {
monitor =
#clock
text = cmd[update:1000] echo "$TIME"
color = rgba(200, 200, 200, 1.0)
font_size = 55
font_family = Fira Semibold
position = -100, 70
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10
}
label {
monitor =
text = $USER
color = rgba(200, 200, 200, 1.0)
font_size = 20
font_family = Fira Semibold
position = -100, 160
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10
}
image {
monitor =
path = $HOME/.cache/square_wallpaper.png
size = 280 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 4
border_color = rgb(221, 221, 221)
rotate = 0 # degrees, counter-clockwise
reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
position = 0, 200
halign = center
valign = center
}
-6
View File
@@ -1,6 +0,0 @@
# Password manager update
exec-once = pass git pull
# Start up script
exec-once = ~/bin/system/system-start.sh
@@ -1,3 +0,0 @@
exec-once = [workspace 1 silent] $browser
exec-once = [workspace 2 silent] $terminal
exec-once = [workspace 10 silent] flatpak run org.signal.Signal
-434
View File
@@ -1,434 +0,0 @@
# Set super key as mod
set $mod Mod4
# Colors
set $blue "#0288D1"
set $pink "#E91E63"
set $lpink "#FFCDD2"
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:NimbusSans Bold 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec --no-startup-id alacritty
# kill focused window
bindsym $mod+q kill
# start program launcher
bindsym $mod+d exec --no-startup-id rofi -show combi
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# Cycle workspaces
bindsym $mod+apostrophe workspace next_on_output
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
#bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# media controls
bindsym Ctrl+Left exec playerctl previous
bindsym Ctrl+Down exec playerctl play-pause
bindsym Ctrl+Right exec playerctl next
# Gaps
set $inner 8
set $outer 0
gaps inner $inner
gaps outer $outer
# Define names for default workspaces
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
set $wsResolve "11"
set $wsReaper "12"
set $wsBitwig "13"
set $wsGames "14"
set $wsSignal "15"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# reload the configuration file
bindsym $mod+Shift+c exec "sh ~/bin/i3wm-config-gen.sh"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r exec "sh ~/bin/i3wm-config-gen.sh" ; restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
bindsym Shift+j resize shrink width 1 px or 1 ppt
bindsym Shift+k resize grow height 1 px or 1 ppt
bindsym Shift+l resize shrink height 1 px or 1 ppt
bindsym Shift+semicolon resize grow width 1 px or 1 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
bindsym Shift+Left resize shrink width 1 px or 1 ppt
bindsym Shift+Down resize grow height 1 px or 1 ppt
bindsym Shift+Up resize shrink height 1 px or 1 ppt
bindsym Shift+Right resize grow width 1 px or 1 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Set caps lock key to super
exec_always --no-startup-id setxkbmap -option 'caps:super'
# Startup scripts
exec --no-startup-id ~/bin/system/system-start.sh
# class border backgr. text indicator child_border
client.focused $pink $pink $pink $pink $pink
client.focused_inactive $blue $blue $blue $blue $blue
client.unfocused $blue $blue $blue $blue $blue
client.urgent $blue $blue $blue $blue $blue
client.placeholder $blue $blue $blue $blue $blue
client.background $blue
# Removes border and title bar
for_window [class="^.*"] border pixel 3
#new_window 1pixel
#new_float normal 4
default_floating_border normal 3
#new_window normal 0 px
# Screenshots
bindsym Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
bindsym --release $mod+Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/'
bindsym $mod+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
bindsym --release $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy
bindsym $mod+n exec nautilus
bindsym $mod+m exec nautilus ~/Videos
# Steam
for_window [class="^steamwebhelper$" title="^Friends$"] floating enable
for_window [class="^steamwebhelper$" title="Steam - News"] floating enable
for_window [class="^steamwebhelper" title=".* - Chat"] floating enable
for_window [class="^steamwebhelper$" title="^Settings$"] floating enable
for_window [class="^steamwebhelper$" title=".* - event started"] floating enable
for_window [class="^steamwebhelper$" title=".* CD key"] floating enable
for_window [class="^steamwebhelper$" title="^Steam - Self Updater$"] floating enable
for_window [class="^steamwebhelper$" title="^Screenshot Uploader$"] floating enable
for_window [class="^steamwebhelper$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
# Jetbrains
for_window [class="^com-intellij-updater-Runner$" title="^Update$"] floating enable
for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"] floating enable
# DaVinci Resolve
#for_window [class="resolve"] gaps inner current set 0; gaps outer current set 0
# Bitwig
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] gaps inner set 0; gaps outer set 0
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/bin/audio/synth-power.py -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/bin/audio/aquamix.sh -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service
#Other
for_window [class="Signal"] move to workspace $wsSignal
#bindsym $mod+F5 gaps inner current set 0; gaps outer current set 0
#bindsym $mod+F6 gaps inner current set $inner; gaps outer current set $outer
{{- if eq .chezmoi.hostname "desktop" }}
# Assign workspaces to monitors
workspace $ws1 output DP-4
workspace $ws2 output DP-4
workspace $ws3 output DP-4
workspace $ws4 output DP-4
workspace $wsGames output DP-4
workspace $wsResolve output DP-4
workspace $wsReaper output DP-4
workspace $wsBitwig output DP-4
workspace $ws5 output DP-2
workspace $ws6 output DP-2
workspace $ws7 output DP-2
workspace $ws8 output DP-2
workspace $wsSignal output DP-2
workspace $ws9 output HDMI-0
workspace $ws10 output HDMI-0
exec --no-startup-id compton &
exec --no-startup-id feh --bg-scale ~/Pictures/desktop/0001.jpg &
mode "$g13" {
bindsym 1 exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0; mode "default"
bindsym 2 exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0; mode "default"
bindsym 3 exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep 0.1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0; mode "default"
bindsym 4 exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0; mode "default"
bindsym Escape mode "default"
bindsym Return mode "default"
}
set $g13 G13 Profile: [1] Overwatch [2] Resolve [3] Planet Coaster [4] Fall Guys
bindsym $mod+F1 mode "$g13"
exec_always --no-startup-id g13d --config ~/.config/g13/resolve.bind --logo ~/.config/g13/resolve.lpbm &
# Startup programs
exec --no-startup-id "workspace $10"
exec --no-startup-id "workspace $15; exec flatpak run org.signal.Signal"
# Starts Jack for audio
exec --no-startup-id "workspace $1; exec alacritty"
exec --no-startup-id sh ~/bin/audio/system-start-audio.sh
# Open Google Play Music on workspace 10
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
# Among Us
for_window [class="steam_app_945360" title="Among Us"] move to workspace $wsGames
for_window [class="steam_app_945360" title="Among Us"] exec --no-startup-id cat ~/.config/g13/among-us.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/among-us.lpbm > /tmp/g13-0
# Starting Overwatch
for_window [class="overwatch.exe" title="Overwatch"] move to workspace $wsGames
for_window [class="overwatch.exe" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
for_window [class="steam_app_2357570" title="Overwatch"] move to workspace $wsGames
for_window [class="steam_app_2357570" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
for_window [class="battle.net.exe" title="Battle.net"] move to workspace $wsGames
for_window [class="battle.net.exe" title="Blizzard Battle.net"] move to workspace $wsGames
for_window [class="Lutris"] move to workspace $ws4
# DOOM
for_window [class="Wine" title="DOOMx64vk"] move to workspace $wsGames
for_window [class="Wine" title="DOOMx64vk"] exec --no-startup-id cat ~/.config/g13/doom.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
# DOOM Eternal
for_window [title="DOOMEternal"] move to workspace $wsGames
for_window [title="DOOMEternal"] exec --no-startup-id cat ~/.config/g13/doom-eternal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
# Planet Coaster
for_window [class="planetcoaster.exe" title="Planet Coaster"] move to workspace $wsGames
for_window [class="planetcoaster.exe" title="Planet Coaster"] exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0
# Cyberpunk 2077
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] move to workspace $wsGames
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] exec --no-startup-id cat ~/.config/g13/cyberpunk-2077.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/cyberpunk-2077.lpbm > /tmp/g13-0
# Starting DaVinci Resolve
for_window [class="resolve"] move to workspace $wsResolve
for_window [class="resolve"] exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0
bindsym $mod+/ gaps inner current set 0; gaps outer current set 0
# Starting Reaper
for_window [class="REAPER"] move to workspace $wsReaper
# Steam
for_window [class="^Steam$"] move to workspace $wsGames
for_window [title="^Steam$"] move to workspace $wsGames
# Bitwig
for_window [class="^Show-splash-gtk$"] move to workspace $wsBitwig
for_window [class="^Bitwig Studio$"] move to workspace $wsBitwig
for_window [class="com.bitwig.BitwigStudio"] exec sleep 1; move to workspace $wsBitwig
# Fall Guys
for_window [title="FallGuys_client"] move to workspace $wsGames
for_window [title="FallGuys_client"] exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0
# Portal
for_window [class="hl2_linux" title="Portal - OpenGL"] move to workspace $wsGames
for_window [class="hl2_linux" title="Portal - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] move to workspace $wsGames
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
# Two Point Hospital
for_window [class="TPH.x86_64" title="Two Point Hospital"] move to workspace $wsGames
for_window [class="TPH.x86_64" title="Two Point Hospital"] exec --no-startup-id cat ~/.config/g13/two-point-hospital.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/two-point-hospital.lpbm > /tmp/g13-0
# Minecraft
for_window [class="Minecraft*" title="Minecraft*"] move to workspace $wsGames
for_window [class="Minecraft*" title="Minecraft*"] exec --no-startup-id cat ~/.config/g13/minecraft.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/minecraft.lpbm > /tmp/g13-0
# Arkham Knight
for_window [class="steam_app_208650" title="*"] move to workspace $wsGames
for_window [class="steam_app_208650" title="*"] exec --no-startup-id cat ~/.config/g13/arkham-knight.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/arkham-knight.lpbm > /tmp/g13-0
# Factorio
for_window [class="factorio" title="Factorio*"] move to workspace $wsGames
for_window [class="factorio" title="Factorio*"] exec --no-startup-id cat ~/.config/g13/factorio.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/factorio.lpbm > /tmp/g13-0
# The side buttons move the desktop around
bindsym --whole-window button9 exec --no-startup-id python3 ~/bin/i3-mouse.py back
bindsym --whole-window button8 exec --no-startup-id python3 ~/bin/i3-mouse.py forward
bindsym $mod+Tab exec --no-startup-id python3 ~/bin/i3-mouse.py thumb
{{- end }}
{{- if eq .chezmoi.hostname "framework" }}
# Display
output eDP-1 scale 1.25
# Desktop background
output "*" bg ~/Pictures/wallpaper/0000.jpg fill
# Screen brightness controls
exec light -N 1
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
# Media controls
bindsym XF86AudioPrev exec playerctl previous
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
# Lockscreen
bindsym $mod+Escape exec swaylock
# Touchpad Settings
input "2362:628:PIXA3854:00_093A:0274_Touchpad" {
accel_profile flat
click_method clickfinger
dwt disabled
natural_scroll enabled
scroll_method two_finger
tap enabled
pointer_accel 0.8
}
# Move Programs
for_window [app_id="firefox"] move to workspace $ws1
for_window [class="Emacs"] move to workspace $ws2
for_window [class="Steam"] move to workspace $wsGames
for_window [class="com.bitwig.BitwigStudio"] move to workspace $wsBitwig
# Notifications
exec mako
# Startup Programs
exec "swaymsg 'workspace $wsSignal; exec flatpak run org.signal.Signal'"
exec "swaymsg 'workspace $ws2; exec alacritty'"
exec "swaymsg 'workspace $ws1; exec brave-browser'"
{{- end }}
{{- if eq .chezmoi.hostname "w530" }}
# Screen brightness controls
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
bindsym XF86AudioMicMute exec amixer set Capture toggle # toggle mic
# Turn off trackpad
bindsym $mod+Shift+u exec sh ~/dotfiles/scripts/trackpad-toggle.sh
exec --no-startup-id ~/dotfiles/scripts/trackpad-toggle.sh
# Desktop background
output "*" bg ~/Pictures/wallpaper/0001.jpg fill
# Turn off the screen
bindsym XF86Launch1 exec xset -display :0.0 dpms force off
# Start up programs
for_window [class="Firefox"] move to workspace $ws1
for_window [class="emacs" title="emacs@*"] move to workspace $ws2
for_window [class="jetbrains-studio"] move to workspace $ws3
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
exec mako
exec --no-startup-id "firefox"
{{- end }}
@@ -1,31 +0,0 @@
---
description: Commit currently staged code in git
mode: all
model: "{{ template "models/small-brain" }}"
temperature: 0.1
tools:
write: false
edit: false
bash: true
---
{{ template "prompts/name" . }}
{{ template "prompts/agent-name" . }} is a senior software engineer committing code to a large and professional project.
Focus on:
- Writing a clear and simple commit message.
- Describe what the changes do at a high level.
- Always mention only the changes, never any file names.
- Follow the project formatting for commits.
- Only commit files that are currently staged in git.
- Only use the word add if strictly necessary.
Never:
- Never mention specific files or what files changed.
- Never add files to the staging.
Use the following command to look at the changes:
```sh
git diff --cached
```
@@ -1,29 +0,0 @@
---
description: Review code changes
mode: all
model: AquaAI/gpt-oss:20b
temperature: 0.1
tools:
write: false
edit: false
bash: true
---
{{ template "prompts/name" . }}
{{ template "prompts/agent-name" . }} is a senior software engineer performing a code review for a colleague.
{{ template "prompts/better-conversations" . }}
Show code snipets when helpful.
{{ template "prompts/agent-name" . }}'s reports should have the following format:
```
# Typos
List of all typos you find.
# Formatting and Readability Issues
List of all formatting and readability issues you find.
# Security Issues
List of all security issues you find.
# Other
List of all other issues you find.
```
-40
View File
@@ -1,40 +0,0 @@
{
"disabled_providers": ["opencode"],
"$schema": "https://opencode.ai/config.json",
"share": "disabled",
"provider": {
"AquaAI": {
"npm": "@ai-sdk/openai-compatible",
"name": "AquaAI",
"options": {
"baseURL": "https://ollama.aquamorph.com/v1"
},
"models": {
"gpt-oss:20b": {
"name": "GPT OSS 20b"
},
"gpt-oss:120b": {
"name": "GPT OSS 120b"
},
"qwen3.5:35b": {
"name": "Qwen3.5 35b"
},
"qwen3.5:4b": {
"name": "Qwen3.5 4b"
},
"hf.co/unsloth/Qwen3-4B-Instruct-2507-GGUF:Q3_K_M": {
"name": "Qwen3 4b"
},
"glm-4.7-flash": {
"name": "GLM 4.7 Flash"
},
"qwen3-coder-next": {
"name": "Qwen3 Coder Next"
},
"qwen3.5:4b": {
"name": "Test"
}
}
}
}
}
-4
View File
@@ -1,4 +0,0 @@
computer={{ .chezmoi.hostname }}
activation_bytes={{ pass "self-host/token/audible-activation-bytes" }}
AQUAAI_KEY={{ pass "self-host/token/aquaai" }}
TodoistToken={{ pass "self-host/token/todoist" }}
@@ -1,13 +0,0 @@
wireplumber.components = [
{
name = auto-connect-ports.lua, type = script/lua
provides = custom.auto-connect-ports
}
]
wireplumber.profiles = {
main = {
custom.auto-connect-ports = required
}
}
-14
View File
@@ -1,14 +0,0 @@
[user]
name = Christian Colglazier
email = christian@cacolglazier.com
[core]
editor = emacs -nw
excludesFile = ~/.gitignore
[rerere]
enabled = true
[column]
ui = auto
[branch]
sort = -committerdate
[push]
autoSetupRemote = true
-63
View File
@@ -1,63 +0,0 @@
#### 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
-86
View File
@@ -1,86 +0,0 @@
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '%b '
setopt PROMPT_SUBST
PROMPT='%F{white}%n% @%m%f %F{blue}%~%f %F{red}${vcs_info_msg_0_}%f$ '
setopt appendhistory autocd extendedglob nomatch notify
unsetopt beep
bindkey -e
zstyle :compinstall filename '~/.zshrc'
autoload -Uz compinit
compinit
HISTFILE=~/.zsh_history
HISTSIZE=99999999
SAVEHIST=99999999
source "$HOME/.config/settings.conf"
# Text Editor
export EDITOR='emacs -nw'
alias emacs="${EDITOR}"
alias e="${EDITOR}"
export TERM=xterm
# Search
alias g='grep -Irn'
# Dotfiles
alias dot='cd ~/.local/share/chezmoi'
export DOT_PROGRAM='chezmoi'
alias dota="${DOT_PROGRAM} add"
alias dotd="${DOT_PROGRAM} diff"
alias dote="${DOT_PROGRAM} edit --apply"
alias dotu="${DOT_PROGRAM} update"
# Other
alias i='sudo dnf install'
alias d='sudo dnf'
alias u='sh ~/bin/update.sh'
alias h='cd ~/git/cacolglazier.com/ && hugo server'
# OpenCode
export PATH="$HOME/.opencode/bin:$PATH"
OPENCODE='opencode'
alias o="${OPENCODE}"
alias oc="${OPENCODE} --agent commit run 'Create a commit.'"
alias ocr="${OPENCODE} --agent review --prompt 'Code review staged changes.'"
alias or="${OPENCODE} --continue"
# Git
gr() { git rebase -i HEAD~$1; }
alias c='git commit -m'
alias a='git add'
alias ga='git add -A'
alias gu='git add -u'
alias s='git status'
alias p='git pull'
alias gp='git push'
alias gd='git diff $(git rev-parse --abbrev-ref HEAD)'
alias stash='git stash create; git stash push'
alias pop='git stash pop'
# AquaAI
export AQUAAI_PATH='~/bin/aquaai.sh'
alias q=${AQUAAI_PATH}
alias qb="${AQUAAI_PATH} --bash"
alias qc="${AQUAAI_PATH} --cli"
alias qg="${AQUAAI_PATH} --git"
alias qr="${AQUAAI_PATH} --code-review"
alias qa="${AQUAAI_PATH} --home-assistant"
export AQUAAI_DEFAULT_MODEL='hf.co/unsloth/Qwen3-4B-Instruct-2507-GGUF:Q3_K_M'
export AQUAAI_CODING_MODEL='hf.co/unsloth/Qwen3-4B-Instruct-2507-GGUF:Q3_K_M'
export AQUAAI_RICH_FORMAT_MODE=false
export AQUAAI_KEY
# Daisy build toolkit
GCC_PATH=~/dev/gcc-arm-none-eabi-10-2020-q4-major/bin
export PATH=$GCC_PATH:$PATH
# AM auto complete
autoload bashcompinit
bashcompinit
source "/home/aqua/.local/share/bash-completion/completions/am"
@@ -1,26 +0,0 @@
-- Dump all Wireplumber ports
function dump(o)
if type(o) == 'table' then
local s = '{ '
for k,v in pairs(o) do
if type(k) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump(v) .. ',\n'
end
return s .. '} '
else
return tostring(o)
end
end
local port_om = ObjectManager {
Interest {
type = "port",
}
}
port_om:connect("object-added", function (om, port)
print(dump(port.properties) .. '\n\n')
end)
port_om:activate()
-13
View File
@@ -1,13 +0,0 @@
[Unit]
Description=Snapcast
After=pipewire.service
Requires=pipewire.service
[Install]
WantedBy=default.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=%h/git/audio/snapcast/bin/snapclient
ExecStop=killall -q snapclient
+120
View File
@@ -0,0 +1,120 @@
# Assign workspaces to monitors
workspace $ws1 output DP-4
workspace $ws2 output DP-4
workspace $ws3 output DP-4
workspace $ws4 output DP-4
workspace $wsGames output DP-4
workspace $wsResolve output DP-4
workspace $wsReaper output DP-4
workspace $wsBitwig output DP-4
workspace $ws5 output DP-2
workspace $ws6 output DP-2
workspace $ws7 output DP-2
workspace $ws8 output DP-2
workspace $wsSignal output DP-2
workspace $ws9 output HDMI-0
workspace $ws10 output HDMI-0
exec --no-startup-id compton &
exec --no-startup-id feh --bg-scale ~/Pictures/desktop/0001.jpg &
mode "$g13" {
bindsym 1 exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0; mode "default"
bindsym 2 exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0; mode "default"
bindsym 3 exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep 0.1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0; mode "default"
bindsym 4 exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0; mode "default"
bindsym Escape mode "default"
bindsym Return mode "default"
}
set $g13 G13 Profile: [1] Overwatch [2] Resolve [3] Planet Coaster [4] Fall Guys
bindsym $mod+F1 mode "$g13"
exec_always --no-startup-id g13d --config ~/.config/g13/resolve.bind --logo ~/.config/g13/resolve.lpbm &
# Startup programs
exec --no-startup-id "workspace $10"
exec --no-startup-id "workspace $15; exec flatpak run org.signal.Signal"
# Starts Jack for audio
exec --no-startup-id "workspace $1; exec alacritty"
exec --no-startup-id sh ~/bin/audio/system-start-audio.sh
# Open Google Play Music on workspace 10
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
# Among Us
for_window [class="steam_app_945360" title="Among Us"] move to workspace $wsGames
for_window [class="steam_app_945360" title="Among Us"] exec --no-startup-id cat ~/.config/g13/among-us.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/among-us.lpbm > /tmp/g13-0
# Starting Overwatch
for_window [class="overwatch.exe" title="Overwatch"] move to workspace $wsGames
for_window [class="overwatch.exe" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
for_window [class="steam_app_2357570" title="Overwatch"] move to workspace $wsGames
for_window [class="steam_app_2357570" title="Overwatch"] exec --no-startup-id cat ~/.config/g13/overwatch.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/overwatch.lpbm > /tmp/g13-0
for_window [class="battle.net.exe" title="Battle.net"] move to workspace $wsGames
for_window [class="battle.net.exe" title="Blizzard Battle.net"] move to workspace $wsGames
for_window [class="Lutris"] move to workspace $ws4
# DOOM
for_window [class="Wine" title="DOOMx64vk"] move to workspace $wsGames
for_window [class="Wine" title="DOOMx64vk"] exec --no-startup-id cat ~/.config/g13/doom.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
# DOOM Eternal
for_window [title="DOOMEternal"] move to workspace $wsGames
for_window [title="DOOMEternal"] exec --no-startup-id cat ~/.config/g13/doom-eternal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/doom.lpbm > /tmp/g13-0
# Planet Coaster
for_window [class="planetcoaster.exe" title="Planet Coaster"] move to workspace $wsGames
for_window [class="planetcoaster.exe" title="Planet Coaster"] exec --no-startup-id cat ~/.config/g13/planet-coaster.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/planet-coaster.lpbm > /tmp/g13-0
# Cyberpunk 2077
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] move to workspace $wsGames
for_window [class="steam_app_1091500" title="Cyberpunk 2077 (C) 2020 by CD Projekt RED"] exec --no-startup-id cat ~/.config/g13/cyberpunk-2077.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/cyberpunk-2077.lpbm > /tmp/g13-0
# Starting DaVinci Resolve
for_window [class="resolve"] move to workspace $wsResolve
for_window [class="resolve"] exec --no-startup-id cat ~/.config/g13/resolve.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/resolve.lpbm > /tmp/g13-0
bindsym $mod+/ gaps inner current set 0; gaps outer current set 0
# Starting Reaper
for_window [class="REAPER"] move to workspace $wsReaper
# Steam
for_window [class="^Steam$"] move to workspace $wsGames
for_window [title="^Steam$"] move to workspace $wsGames
# Bitwig
for_window [class="^Show-splash-gtk$"] move to workspace $wsBitwig
for_window [class="^Bitwig Studio$"] move to workspace $wsBitwig
for_window [class="com.bitwig.BitwigStudio"] exec sleep 1; move to workspace $wsBitwig
# Fall Guys
for_window [title="FallGuys_client"] move to workspace $wsGames
for_window [title="FallGuys_client"] exec --no-startup-id cat ~/.config/g13/fall-guys.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/fall-guys.lpbm > /tmp/g13-0
# Portal
for_window [class="hl2_linux" title="Portal - OpenGL"] move to workspace $wsGames
for_window [class="hl2_linux" title="Portal - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] move to workspace $wsGames
for_window [class="portal2_linux" title="PORTAL 2 - OpenGL"] exec --no-startup-id cat ~/.config/g13/portal.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/portal.lpbm > /tmp/g13-0
# Two Point Hospital
for_window [class="TPH.x86_64" title="Two Point Hospital"] move to workspace $wsGames
for_window [class="TPH.x86_64" title="Two Point Hospital"] exec --no-startup-id cat ~/.config/g13/two-point-hospital.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/two-point-hospital.lpbm > /tmp/g13-0
# Minecraft
for_window [class="Minecraft*" title="Minecraft*"] move to workspace $wsGames
for_window [class="Minecraft*" title="Minecraft*"] exec --no-startup-id cat ~/.config/g13/minecraft.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/minecraft.lpbm > /tmp/g13-0
# Arkham Knight
for_window [class="steam_app_208650" title="*"] move to workspace $wsGames
for_window [class="steam_app_208650" title="*"] exec --no-startup-id cat ~/.config/g13/arkham-knight.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/arkham-knight.lpbm > /tmp/g13-0
# Factorio
for_window [class="factorio" title="Factorio*"] move to workspace $wsGames
for_window [class="factorio" title="Factorio*"] exec --no-startup-id cat ~/.config/g13/factorio.bind > /tmp/g13-0 && sleep .1 && cat ~/.config/g13/factorio.lpbm > /tmp/g13-0
# The side buttons move the desktop around
bindsym --whole-window button9 exec --no-startup-id python3 ~/bin/i3-mouse.py back
bindsym --whole-window button8 exec --no-startup-id python3 ~/bin/i3-mouse.py forward
bindsym $mod+Tab exec --no-startup-id python3 ~/bin/i3-mouse.py thumb
+49
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 firefox'"
+241
View File
@@ -0,0 +1,241 @@
# Set super key as mod
set $mod Mod4
# Colors
set $blue "#0288D1"
set $pink "#E91E63"
set $lpink "#FFCDD2"
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:NimbusSans Bold 10
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# start a terminal
bindsym $mod+Return exec --no-startup-id alacritty
# kill focused window
bindsym $mod+q kill
# start program launcher
bindsym $mod+d exec --no-startup-id rofi -show combi
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# Cycle workspaces
bindsym $mod+apostrophe workspace next_on_output
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
#bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# media controls
bindsym Ctrl+Left exec playerctl previous
bindsym Ctrl+Down exec playerctl play-pause
bindsym Ctrl+Right exec playerctl next
# Gaps
set $inner 8
set $outer 0
gaps inner $inner
gaps outer $outer
# Define names for default workspaces
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"
set $wsResolve "11"
set $wsReaper "12"
set $wsBitwig "13"
set $wsGames "14"
set $wsSignal "15"
# switch to workspace
bindsym $mod+1 workspace $ws1
bindsym $mod+2 workspace $ws2
bindsym $mod+3 workspace $ws3
bindsym $mod+4 workspace $ws4
bindsym $mod+5 workspace $ws5
bindsym $mod+6 workspace $ws6
bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
bindsym $mod+Shift+2 move container to workspace $ws2
bindsym $mod+Shift+3 move container to workspace $ws3
bindsym $mod+Shift+4 move container to workspace $ws4
bindsym $mod+Shift+5 move container to workspace $ws5
bindsym $mod+Shift+6 move container to workspace $ws6
bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
# reload the configuration file
bindsym $mod+Shift+c exec "sh ~/bin/i3wm-config-gen.sh"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r exec "sh ~/bin/i3wm-config-gen.sh" ; restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym semicolon resize grow width 10 px or 10 ppt
bindsym Shift+j resize shrink width 1 px or 1 ppt
bindsym Shift+k resize grow height 1 px or 1 ppt
bindsym Shift+l resize shrink height 1 px or 1 ppt
bindsym Shift+semicolon resize grow width 1 px or 1 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
bindsym Shift+Left resize shrink width 1 px or 1 ppt
bindsym Shift+Down resize grow height 1 px or 1 ppt
bindsym Shift+Up resize shrink height 1 px or 1 ppt
bindsym Shift+Right resize grow width 1 px or 1 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+r mode "default"
}
bindsym $mod+r mode "resize"
# Set caps lock key to super
exec_always --no-startup-id setxkbmap -option 'caps:super'
# Startup scripts
exec --no-startup-id sh ~/bin/connect-nas.sh
exec --no-startup-id systemctl --user start polybar
exec --no-startup-id systemctl --user restart streamdeck
exec --no-startup-id waybar &
exec --no-startup-id /usr/libexec/polkit-gnome-authentication-agent-1
# class border backgr. text indicator child_border
client.focused $pink $pink $pink $pink $pink
client.focused_inactive $blue $blue $blue $blue $blue
client.unfocused $blue $blue $blue $blue $blue
client.urgent $blue $blue $blue $blue $blue
client.placeholder $blue $blue $blue $blue $blue
client.background $blue
# Removes border and title bar
for_window [class="^.*"] border pixel 3
#new_window 1pixel
#new_float normal 4
default_floating_border normal 3
#new_window normal 0 px
# Screenshots
bindsym Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
bindsym --release $mod+Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/'
bindsym $mod+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
bindsym --release $mod+Shift+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/'
# Keyring
exec --no-startup-id dbus-update-activation-environment --all
exec --no-startup-id /usr/bin/gnome-keyring-daemon --start --components=secrets,pkcs11,ssh
# NextCloud sync client
exec --no-startup-id nextcloud --background
bindsym $mod+n exec nautilus
bindsym $mod+m exec nautilus ~/Videos
# Steam
for_window [class="^steamwebhelper$" title="^Friends$"] floating enable
for_window [class="^steamwebhelper$" title="Steam - News"] floating enable
for_window [class="^steamwebhelper" title=".* - Chat"] floating enable
for_window [class="^steamwebhelper$" title="^Settings$"] floating enable
for_window [class="^steamwebhelper$" title=".* - event started"] floating enable
for_window [class="^steamwebhelper$" title=".* CD key"] floating enable
for_window [class="^steamwebhelper$" title="^Steam - Self Updater$"] floating enable
for_window [class="^steamwebhelper$" title="^Screenshot Uploader$"] floating enable
for_window [class="^steamwebhelper$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
# Jetbrains
for_window [class="^com-intellij-updater-Runner$" title="^Update$"] floating enable
for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"] floating enable
# DaVinci Resolve
#for_window [class="resolve"] gaps inner current set 0; gaps outer current set 0
# Bitwig
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] gaps inner set 0; gaps outer set 0
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/bin/audio/synth-power.py -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/bin/audio/aquamix.sh -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service
#Other
for_window [class="Signal"] move to workspace $wsSignal
#bindsym $mod+F5 gaps inner current set 0; gaps outer current set 0
#bindsym $mod+F6 gaps inner current set $inner; gaps outer current set $outer
+29
View File
@@ -0,0 +1,29 @@
# Screen brightness controls
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
# Pulse Audio controls
bindsym XF86AudioRaiseVolume exec amixer set Master 3%+ #increase sound volume
bindsym XF86AudioLowerVolume exec amixer set Master 3%- #decrease sound volume
bindsym XF86AudioMute exec amixer set Master toggle # toggle sound
bindsym XF86AudioMicMute exec amixer set Capture toggle # toggle mic
# Turn off trackpad
bindsym $mod+Shift+u exec sh ~/dotfiles/scripts/trackpad-toggle.sh
exec --no-startup-id ~/dotfiles/scripts/trackpad-toggle.sh
# Desktop background
output "*" bg ~/Pictures/wallpaper/0001.jpg fill
# Turn off the screen
bindsym XF86Launch1 exec xset -display :0.0 dpms force off
# Start up programs
for_window [class="Firefox"] move to workspace $ws1
for_window [class="emacs" title="emacs@*"] move to workspace $ws2
for_window [class="jetbrains-studio"] move to workspace $ws3
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
exec mako
exec --no-startup-id "firefox"
+62
View File
@@ -0,0 +1,62 @@
general {
output_format = "dzen2"
colors = true
interval = 5
output_format = "i3bar"
colors = true
color_good = "#0288D1"
color_degraded = "#FFCDD2"
color_bad = "#E91E63"
}
order += "disk /home"
order += "run_watch DHCP"
order += "wireless wlp3s0"
order += "ethernet eth0"
order += "volume master"
order += "brightness"
order += "battery all"
order += "tztime date"
order += "tztime local"
wireless wlp3s0 {
format_up = "%essid: %ip, %quality, %bitrate"
format_down = ""
}
ethernet eth0 {
# if you use %speed, i3status requires the cap_net_admin capability
format_up = "E: %ip (%speed)"
format_down = ""
}
battery all {
format = "%status%percentage %remaining"
format_down = "No battery"
status_chr = "⚡"
status_bat = "🔋"
status_unk = "?"
status_full = "☻"
hide_seconds = true
last_full_capacity = true
path = "/sys/class/power_supply/BAT%d/uevent"
low_threshold = 20
}
tztime date {
format = "%m/%d"
}
tztime local {
format = "%I:%M:%S"
}
disk "/home" {
format = "%free"
}
volume master {
format = "♪%volume"
format_muted = "♪~%volume"
device = "default"
}
Executable
+134
View File
@@ -0,0 +1,134 @@
#! /bin/bash
# Load user settings from config file.
if [ -e ~/.config/settings.conf ]; then
. ~/.config/settings.conf
fi
dotdir=~/dotfiles
# src dest sudo
files=($dotdir/systemd ~/.config/ 'n'
$dotdir/settings.conf ~/.config/ 'n')
# arg parser
for arg in "$@"
do
# Skip commands that need root access
if [[ $arg == *"-nr"* ]]; then
noRoot=true
fi
done
# Check emacs setup
function emacs {
if ! [ -d ~/.emacs.d ]; then
echo Installing emacs config
cd ~
git clone git@github.com:AquaMorph/.emacs.d.git
else
echo Checking for emacs config updates
cd ~/.emacs.d
git pull
fi
}
# Check managed dotfiles
function dotfiles {
echo Setting up dotfiles...
# Loop through config files
for (( i=0; i<${#files[@]} ; i+=3 )) ; do
# Check if sudo is needed
pre=''
if [[ ${files[i+2]} == *'y'* ]]; then
if [ $noRoot ]; then
echo Skipping ${files[i]} because root is required
continue
fi
pre='sudo'
fi
destPath=${files[i+1]}$(basename "${files[i]}")
# Check if file already exists
if [ -e $destPath ]; then
# Check if path is not a sybolic link
if ! [ -L $destPath ]; then
echo Backing up $destPath
$pre mv $destPath ${destPath}.bak
# File already set up
else
echo The file $destPath is already set up
continue
fi
# Create missing directories
else
$pre mkdir -p "$(dirname "$destPath")"
fi
echo Creating symbolic link from ${files[i]} to ${files[i+1]}
$pre ln -sf ${files[i]} ${files[i+1]}
done
}
# Check dotfiles for updates
function update {
echo Checking for dotfile updates
startTime=$(date +%s -r $dotdir)
cd $dotdir && git pull
endTime=$(date +%s -r $dotdir)
if (( "$startTime" < "$endTime" )); then
sh $dotdir/scripts/setup.sh
exit
fi
}
# Set up settings config file
function setup {
if [ -e $dotdir/settings.conf ]; then
echo Settings file already created
else
echo Setting up settings config...
# Computer shortname
echo What is the computer shortname?
read computer
echo computer=$computer >> $dotdir/settings.conf
fi
}
function systemd {
echo 'Setting up custom systemd services...'
systemctl --user enable es-9
systemctl --user enable i3wm-close-window
}
function stow_dotfiles {
stow wireplumber
stow zsh
stow alacritty
stow g13
stow 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
+48
View File
@@ -0,0 +1,48 @@
font_family Inconsolata Medium
font_size 12.0
# Text Spacing
adjust_line_height 0
adjust_column_width 0
cursor #FFCDD2
cursor_shape beam
cursor_blink_interval 0.0
cursor_stop_blinking_after 0.0
scrollback_lines 10000
foreground #0288D1
background #000000
selection_foreground #FFCDD2
selection_background #E91E63
# Terminal Color Table
# black
color0 #000000
color8 #767676
# red
color1 #cc0403
color9 #f2201f
# green
color2 #19cb00
color10 #23fd00
# yellow
color3 #cecb00
color11 #fffd00
# blue
color4 #0d73cc
color12 #1a8fff
# magenta
color5 #cb1ed1
color13 #fd28ff
# cyan
color6 #0dcdcd
color14 #14ffff
# white
color7 #dddddd
color15 #ffffff
background_opacity 0.0
dynamic_background_opacity no
dim_opacity 0.75
@@ -2,4 +2,4 @@ sync_info = update
user_id =
setting_id =
base_id = GFSA04
updated_time = 1702867957
updated_time = 1697299895
@@ -1,10 +1,4 @@
{
"fan_max_speed": [
"20"
],
"fan_min_speed": [
"10"
],
"filament_cost": [
"19.99"
],
@@ -27,9 +21,6 @@
"nozzle_temperature_initial_layer": [
"245"
],
"overhang_fan_speed": [
"40"
],
"pressure_advance": [
"0.26"
],
@@ -54,7 +54,7 @@
],
"name": "CR-10s 0.4 nozzle",
"nozzle_type": "brass",
"print_host": "https://cr10.aquamorph.com",
"print_host": "192.168.1.5",
"printable_area": [
"0x0",
"300x0",
@@ -77,9 +77,6 @@
"wipe": [
"0"
],
"z_hop": [
"0"
],
"z_hop_types": [
"Auto Lift"
]
@@ -2,4 +2,4 @@ sync_info = update
user_id =
setting_id =
base_id = GM001
updated_time = 1702220626
updated_time = 1700927332
@@ -57,7 +57,7 @@
"0.6"
],
"nozzle_type": "brass",
"print_host": "192.168.20.20",
"print_host": "192.168.1.5",
"printable_area": [
"0x0",
"300x0",
@@ -2,4 +2,4 @@ sync_info = update
user_id =
setting_id =
base_id = GP004
updated_time = 1702867957
updated_time = 1697250231
@@ -1,5 +1,5 @@
{
"brim_type": "no_brim",
"brim_type": "brim_ears",
"brim_width": "10",
"default_acceleration": "0",
"enable_support": "1",
@@ -13,7 +13,7 @@
"initial_layer_speed": "20",
"inner_wall_acceleration": "0",
"inner_wall_line_width": "112%",
"inner_wall_speed": "35",
"inner_wall_speed": "40",
"internal_solid_infill_line_width": "112%",
"internal_solid_infill_speed": "50",
"is_custom_defined": "0",
@@ -21,15 +21,13 @@
"name": "0.20mm Standard CR-10s",
"outer_wall_acceleration": "0",
"outer_wall_line_width": "80%",
"outer_wall_speed": "35",
"outer_wall_speed": "40",
"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",
+104
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
}
}
}
]
+139
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
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" }
]
@@ -178,7 +178,7 @@ label-disconnected-underline = ${colors.pink}
[module/mouse-battery]
type = custom/script
exec = ~/bin/get-mouse-battery.sh
exec = ~/.config/scripts/get-mouse-battery.sh
label =  %output%
interval = 60

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