Compare commits

...

55 Commits

Author SHA1 Message Date
5613fdefa9 AquaAI alias 2025-06-21 16:36:53 -04:00
08b48fa825 Initial release of AquaAI 2025-06-21 16:32:12 -04:00
3f4190e95a Backlight animation 2025-05-11 09:07:11 -04:00
d1d88aa7b3 Hyprlock and fullscreen 2025-05-11 09:05:01 -04:00
981d514156 Use rofi 2025-04-20 17:11:51 -04:00
cce671b9fc Switch to Brave for i3 2025-04-20 15:18:36 -04:00
bd8d5a96ad Update hyprland config 2025-04-20 15:17:44 -04:00
a54305b837 Git stash alias 2025-04-17 07:06:49 -04:00
ee547a17ac Fix Reaper install 2025-04-15 08:08:23 -04:00
2a4937053d Fix audio startup on desktop 2025-02-21 18:19:22 -05:00
22ff857994 AM autocomplete 2025-02-21 13:34:52 -05:00
3debbe1eb7 Fix Davinci Resolve installer 2025-01-26 11:29:27 -05:00
e242ba7c07 Update alacritty config for new version 2025-01-26 11:23:33 -05:00
31f27a9c84 OrcaSlicer settings 2025-01-26 11:21:07 -05:00
75e898b8f7 Fix wireplumber auto connect 2025-01-26 11:15:35 -05:00
e253055758 AquaVoron 2.4 configs 2024-10-11 18:38:41 -04:00
577fde309b Use startup script for hyprland 2024-08-22 19:01:25 -04:00
0a95cc86da Framework startup programs 2024-08-20 09:40:02 -04:00
660f4d366d Hyprland config files 2024-08-15 21:33:10 -04:00
9afabc82fe Initial hyprland config 2024-08-15 18:52:07 -04:00
538016df16 Update Orcaslicer CR-10s settings 2024-07-24 06:36:05 -04:00
776978c0f9 Update appimages 2024-07-24 06:34:28 -04:00
a6f8245241 Launch Librewolf on startup 2024-06-23 09:22:03 -04:00
49abb1b949 Fix wireplumber auto connect 2024-06-23 09:21:29 -04:00
390daca277 Switch to Librewolf 2024-06-23 07:47:04 -04:00
6f807aa72f Fix dragonframe installer download 2024-05-19 10:10:49 -04:00
c19898373f Global gitignore 2024-02-18 10:01:35 -05:00
7c1593e790 Install git 2024-02-17 20:17:10 -05:00
6bedc5114b Git branch better format 2024-02-17 20:16:58 -05:00
d6fca68b54 Git remember merge conflict solve 2024-02-17 20:14:31 -05:00
c740264352 Git config 2024-02-17 20:01:51 -05:00
7dfb19f6c7 Support for new Dragonframe versioning 2024-01-23 08:22:29 -05:00
0f671a6aab Convert alacritty to toml config 2024-01-10 09:08:49 -05:00
05409b68dd Move startup to bash script 2023-12-31 18:10:50 -05:00
97872de9c7 Orcaslicer settings update 2023-12-25 17:22:34 -05:00
2bc1dbc1ed Improved PETG printing 2023-12-09 20:14:51 -05:00
82fca6f7b3 Set editor to emacs 2023-12-05 08:36:43 -05:00
f3ea013e75 Fix stock launching 2023-12-01 20:14:59 -05:00
7124a3e72a Update polybar for new script location 2023-11-29 08:35:54 -05:00
d311020284 Update start audio for new script location 2023-11-29 08:35:07 -05:00
390f8d2a0e Stow orcaslicer 2023-11-25 13:11:34 -05:00
35f7ddfe63 Use new script location 2023-11-25 10:23:31 -05:00
bafcfae28d Fix update script 2023-11-25 09:54:08 -05:00
b41a4141f2 Stow scripts 2023-11-25 09:35:34 -05:00
547eb10705 Install python libs 2023-11-24 21:34:20 -05:00
4ad576de67 i3 polkit 2023-11-24 20:03:13 -05:00
8661d65d55 Stow mako 2023-11-24 19:04:46 -05:00
cdd6f23f30 Stow waybar 2023-11-24 19:03:18 -05:00
4c1a3d0647 Stow rofi 2023-11-24 19:00:57 -05:00
5e6e96e990 Stow polybar 2023-11-24 18:58:37 -05:00
48710770b8 Stow kitty and i3status 2023-11-24 18:46:15 -05:00
694f66c435 Remove host block 2023-11-24 18:37:22 -05:00
6a177305b5 Stow i3 2023-11-24 18:25:53 -05:00
86e889e6cb Remove GTK theme 2023-11-24 18:10:52 -05:00
aa57e13930 GTK stow 2023-11-24 18:06:59 -05:00
102 changed files with 2485 additions and 61210 deletions

File diff suppressed because it is too large Load Diff

2
.gitignore vendored
View File

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

View File

@ -9,11 +9,6 @@ Run the following command to install
```sh ```sh
cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/install.sh cd ~ && git clone git@github.com:AquaMorph/dotfiles.git && sh ~/dotfiles/install.sh
``` ```
Install the needed Python packages
```sh
pip install -r requirements.txt
```
## Scripts ## Scripts

View File

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

View File

@ -1,603 +0,0 @@
# Configuration for Alacritty, the GPU enhanced terminal emulator.
# Any items in the `env` entry below will be added as
# environment variables. Some entries may override variables
# set by alacritty itself.
#env:
# TERM variable
#
# This value is used to set the `$TERM` environment variable for
# each instance of Alacritty. If it is not present, alacritty will
# check the local terminfo database and use `alacritty` if it is
# available, otherwise `xterm-256color` is used.
#TERM: xterm-256color
window:
# Window dimensions (changes require restart)
#
# Specified in number of columns/lines, not pixels.
# If both are `0`, this setting is ignored.
dimensions:
columns: 0
lines: 0
# Window position (changes require restart)
#
# Specified in number of pixels.
# If the position is not set, the window manager will handle the placement.
#position:
# x: 0
# y: 0
# Window padding (changes require restart)
#
# Blank space added around the window in pixels. This padding is scaled
# by DPI and the specified value is always added at both opposing sides.
padding:
x: 4
y: 4
# Spread additional padding evenly around the terminal content.
dynamic_padding: false
# Window decorations
#
# Values for `decorations`:
# - full: Borders and title bar
# - none: Neither borders nor title bar
#
# Values for `decorations` (macOS only):
# - transparent: Title bar, transparent background and title bar buttons
# - buttonless: Title bar, transparent background, but no title bar buttons
decorations: full
# Startup Mode (changes require restart)
#
# Values for `startup_mode`:
# - Windowed
# - Maximized
# - Fullscreen
#
# Values for `startup_mode` (macOS only):
# - SimpleFullscreen
startup_mode: Windowed
# Window title
#title: Alacritty
# Window class (Linux only):
#class: Alacritty
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" }

12
git/.gitconfig Normal file
View File

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

63
git/.gitignore vendored Normal file
View File

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

View File

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

View File

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

View File

@ -0,0 +1,52 @@
$mainMod = SUPER
# Keybindings
bind = $mainMod, return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = $mainMod, C, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, L, exec, hyprlock
bind = $mainMod, F, fullscreen
# Move focus window
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

View File

@ -0,0 +1,17 @@
# Screen brightness controls
exec-once = light -N 1
bind = ,XF86MonBrightnessUp, exec, ~/bin/system/backlight-ctl.sh -i
bind = ,XF86MonBrightnessDown, exec, ~/bin/system/backlight-ctl.sh -d
# Pulse Audio controls
bind = ,XF86AudioRaiseVolume, exec, amixer set Master 3%+ #increase sound volume
bind = ,XF86AudioLowerVolume, exec, amixer set Master 3%- #decrease sound volume
bind = ,XF86AudioMute, exec, amixer set Master toggle # toggle sound
# Media controls
bind = ,XF86AudioPrev, exec, playerctl previous
bind = ,XF86AudioPlay, exec, playerctl play-pause
bind = ,XF86AudioNext, exec, playerctl next
# Lockscreen
bind = $mainMod, escape, exec, swaylock

View File

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

View File

@ -0,0 +1,44 @@
general {
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgba(e91e63ee) rgba(ffcdd2ee) 45deg
col.inactive_border = rgba(0288d1aa)
layout = dwindle
allow_tearing = false
}
decoration {
rounding = 5
blur {
enabled = true
size = 3
passes = 1
}
}
animations {
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 3, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 2, default
}
dwindle {
pseudotile = yes
preserve_split = yes
force_split = 2
}
master {
orientation = right
}
gestures {
workspace_swipe = on
}

View File

@ -0,0 +1,40 @@
monitor=eDP-1,2256x1504@60,auto,1.175
# Enviroment
source = ~/.config/hypr/env.conf
# Startup programs
source = ~/.config/hypr/startup-all.conf
source = ~/.config/hypr/startup-framework.conf
# Default env vars
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct
source = ~/.config/hypr/general.conf
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = yes
}
sensitivity = 0
}
xwayland {
force_zero_scaling = true
}
misc {
force_default_wallpaper = 0
}
windowrulev2 = suppressevent maximize, class:.*
source = ~/.config/hypr/bind-all.conf
source = ~/.config/hypr/bind-framework.conf

View File

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

View File

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

View File

@ -36,7 +36,7 @@ exec --no-startup-id "workspace $15; exec flatpak run org.signal.Signal"
# Starts Jack for audio # Starts Jack for audio
exec --no-startup-id "workspace $1; exec alacritty" exec --no-startup-id "workspace $1; exec alacritty"
exec --no-startup-id sh ~/.config/scripts/audio/system-start-audio.sh exec --no-startup-id sh ~/bin/audio/system-start-audio.sh
# Open Google Play Music on workspace 10 # Open Google Play Music on workspace 10
for_window [title="Google Play Music Desktop Player"] move to workspace $ws10 for_window [title="Google Play Music Desktop Player"] move to workspace $ws10
@ -114,7 +114,7 @@ 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 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 # The side buttons move the desktop around
bindsym --whole-window button9 exec --no-startup-id python3 ~/.config/scripts/i3-mouse.py back bindsym --whole-window button9 exec --no-startup-id python3 ~/bin/i3-mouse.py back
bindsym --whole-window button8 exec --no-startup-id python3 ~/.config/scripts/i3-mouse.py forward bindsym --whole-window button8 exec --no-startup-id python3 ~/bin/i3-mouse.py forward
bindsym $mod+Tab exec --no-startup-id python3 ~/.config/scripts/i3-mouse.py thumb bindsym $mod+Tab exec --no-startup-id python3 ~/bin/i3-mouse.py thumb

View File

@ -45,5 +45,5 @@ exec mako
# Startup Programs # Startup Programs
exec "swaymsg 'workspace $wsSignal; exec flatpak run org.signal.Signal'" exec "swaymsg 'workspace $wsSignal; exec flatpak run org.signal.Signal'"
exec "swaymsg 'workspace $ws2; exec alacritty'" exec "swaymsg 'workspace $ws2; exec alacritty'"
exec "swaymsg 'workspace $ws1; exec firefox'" exec "swaymsg 'workspace $ws1; exec brave-browser'"

View File

@ -20,7 +20,7 @@ bindsym $mod+Return exec --no-startup-id alacritty
bindsym $mod+q kill bindsym $mod+q kill
# start program launcher # start program launcher
bindsym $mod+d exec --no-startup-id rofi -show combi bindsym $mod+d exec --no-startup-id rofi -show combi
# change focus # change focus
bindsym $mod+j focus left bindsym $mod+j focus left
bindsym $mod+k focus down bindsym $mod+k focus down
@ -124,9 +124,9 @@ bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10 bindsym $mod+Shift+0 move container to workspace $ws10
# reload the configuration file # reload the configuration file
bindsym $mod+Shift+c exec "sh ~/.config/scripts/i3wm-config-gen.sh" bindsym $mod+Shift+c exec "sh ~/bin/i3wm-config-gen.sh"
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r exec "sh ~/.config/scripts/i3wm-config-gen.sh" ; restart bindsym $mod+Shift+r exec "sh ~/bin/i3wm-config-gen.sh" ; restart
# exit i3 (logs you out of your X session) # 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'" bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
@ -171,10 +171,7 @@ bindsym $mod+r mode "resize"
exec_always --no-startup-id setxkbmap -option 'caps:super' exec_always --no-startup-id setxkbmap -option 'caps:super'
# Startup scripts # Startup scripts
exec --no-startup-id sh ~/.config/scripts/connect-nas.sh exec --no-startup-id ~/bin/system/system-start.sh
exec --no-startup-id systemctl --user start polybar
exec --no-startup-id systemctl --user restart streamdeck
exec --no-startup-id waybar &
# class border backgr. text indicator child_border # class border backgr. text indicator child_border
client.focused $pink $pink $pink $pink $pink client.focused $pink $pink $pink $pink $pink
@ -196,14 +193,7 @@ default_floating_border normal 3
bindsym Print exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/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 --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 $mod+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -e 'mv $f ~/Pictures/screenshots/'
bindsym --release $mod+Shift+s exec scrot '%Y:%m:%d:%H:%M:%S.png' -s -e 'mv $f ~/Pictures/screenshots/' bindsym --release $mod+Shift+s exec grim -g "$(slurp)" - | wl-copy
# 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+n exec nautilus
bindsym $mod+m exec nautilus ~/Videos bindsym $mod+m exec nautilus ~/Videos
@ -229,8 +219,8 @@ for_window [instance="^sun-awt-X11-XDialogPeer$" title="^Complete Installation$"
# Bitwig # 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"] gaps inner set 0; gaps outer set 0
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/.config/scripts/audio/synth-power.py -d for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec python ~/bin/audio/synth-power.py -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/.config/scripts/audio/aquamix.sh -d for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec sh ~/bin/audio/aquamix.sh -d
for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service for_window [class="^Bitwig Studio$" title="^Bitwig Studio"] exec systemctl --user restart i3wm-close-window.service
#Other #Other

View File

@ -8,17 +8,7 @@ fi
dotdir=~/dotfiles dotdir=~/dotfiles
# src dest sudo # src dest sudo
files=($dotdir/gtk-3.0/settings.ini ~/.config/gtk-3.0/ 'n' files=($dotdir/systemd ~/.config/ 'n'
$dotdir/gtk-4.0/settings.ini ~/.config/gtk-4.0/ 'n'
$dotdir/i3 ~/.config/ 'n'
$dotdir/i3status ~/.config/ 'n'
$dotdir/kitty ~/.config/ 'n'
$dotdir/polybar ~/.config/ 'n'
$dotdir/rofi ~/.config/ 'n'
$dotdir/scripts ~/.config/ 'n'
$dotdir/systemd ~/.config/ 'n'
$dotdir/waybar ~/.config/ 'n'
$dotdir/mako ~/.config/ 'n'
$dotdir/settings.conf ~/.config/ 'n') $dotdir/settings.conf ~/.config/ 'n')
# arg parser # arg parser
@ -119,6 +109,21 @@ function stow_dotfiles {
stow zsh stow zsh
stow alacritty stow alacritty
stow g13 stow g13
stow git
stow gtk
stow i3
stow i3status
stow kitty
stow polybar
stow rofi
stow waybar
stow mako
stow scripts
stow orcaslicer
}
function install_python_libs {
pip install -r requirements.txt
} }
setup setup
@ -126,4 +131,5 @@ systemd
update update
dotfiles dotfiles
stow_dotfiles stow_dotfiles
install_python_libs
emacs emacs

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -178,7 +178,7 @@ label-disconnected-underline = ${colors.pink}
[module/mouse-battery] [module/mouse-battery]
type = custom/script type = custom/script
exec = ~/.config/scripts/get-mouse-battery.sh exec = ~/bin/get-mouse-battery.sh
label =  %output% label =  %output%
interval = 60 interval = 60

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

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

View File

@ -26,8 +26,8 @@ function fixPulse() {
function launchi3() { function launchi3() {
if [ -z "$skipi3" ]; then if [ -z "$skipi3" ]; then
echo Opening i3wm sound workspaces echo Opening i3wm sound workspaces
sleep .1 && i3-msg 'workspace 5; exec firefox' sleep .1 && i3-msg 'workspace 5; exec brave-browser'
sleep 5.1 && python ~/.config/scripts/start-firefox.py #sleep 5.1 && python ~/bin/start-firefox.py
fi fi
} }
@ -59,6 +59,13 @@ function renameInterface() {
done done
} }
# Restart the Wireplumber service.
function restartWireplumber() {
systemctl --user stop wireplumber
sleep 5
systemctl --user restart wireplumber
}
# arg parser # arg parser
for arg in "$@" for arg in "$@"
do do
@ -70,20 +77,12 @@ done
# Wire sinks # Wire sinks
setupSinks setupSinks
connectSinks
status=$?
while [[ $status -eq 0 ]]; do
echo "Connecting Sinks"
connectSinks
status=$?
sleep 1
done
# Rename Audio Devices
#renameInterface
# Eurorack audio interface # Eurorack audio interface
sh ~/.config/scripts/audio/es9start.sh sh ~/bin/audio/es9start.sh
launchi3 launchi3
systemctl --user restart polybar systemctl --user restart polybar
sleep 5
restartWireplumber

View File

@ -33,9 +33,9 @@ def getURLId(url):
# getURLVersion() returns the url version number. # getURLVersion() returns the url version number.
def getURLVersion(url): def getURLVersion(url):
if 'Beta' in url['downloadTitle']: if 'Beta' in url['downloadTitle']:
beta = re.search('Beta \d+', url['downloadTitle']) beta = re.search('Beta \\d+', url['downloadTitle'])
if beta: if beta:
beta = re.search('\d+', beta.group()).group() beta = re.search('\\d+', beta.group()).group()
else: else:
beta = '99' beta = '99'
return '{}.{}.{}.{}'.format(url['major'], url['minor'], url['releaseNum'], beta) return '{}.{}.{}.{}'.format(url['major'], url['minor'], url['releaseNum'], beta)

View File

@ -5,11 +5,19 @@
# Import library # Import library
source $(dirname ${BASH_SOURCE[0]})/install-lib.sh source $(dirname ${BASH_SOURCE[0]})/install-lib.sh
dragonframe=$(searchProgramInstalled dragonframe | \ # Fix issue with shared library files.
function postInstallFix() {
sudo rm /opt/dragonframe2024/lib/libtiff.so.5
sudo rm /opt/dragonframe2024/lib/libudev.so.0
sudo ln -s -f /lib64/libudev.so.1 /opt/dragonframe2024/lib/libudev.so.0
}
dragonframe=$(searchProgramInstalled dragonframe20* | \
awk 'END {print $(NF-2), $(NF-1), $NF}') awk 'END {print $(NF-2), $(NF-1), $NF}')
dragonframeVersion=$(echo $dragonframe | awk '{print $2;}' | filterVersion) dragonframeVersion=$(echo $dragonframe | awk '{print $2;}' | filterVersion)
agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0'
url=$(curl -s https://www.dragonframe.com/downloads/ \ url=$(curl -s https://www.dragonframe.com/downloads/ \
-A "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0" | \ -A $agent | \
grep .rpm | grep downloadButton | grep downloadButton | \ grep .rpm | grep downloadButton | grep downloadButton | \
grep -io 'https://[a-z0-9+-._/]*.rpm' | head -n 1) grep -io 'https://[a-z0-9+-._/]*.rpm' | head -n 1)
urlVersion=$(echo $url | awk -F "-" '{ print $2 }') urlVersion=$(echo $url | awk -F "-" '{ print $2 }')
@ -21,8 +29,13 @@ echo Installing Dragonframe $urlVersion
# Setting up and downloading package # Setting up and downloading package
mkdir -p ~/Downloads/installers/dragonframe mkdir -p ~/Downloads/installers/dragonframe
cd ~/Downloads/installers/dragonframe cd ~/Downloads/installers/dragonframe
wget $url
installer=$(basename "$url")
curl -s $url \
-A $agent \
-o $installer
# Install package # Install package
sudo dnf install $(basename "$url") -y sudo dnf install $installer -y

View File

@ -7,10 +7,10 @@ source $(dirname ${BASH_SOURCE[0]})/install-lib.sh
# Get download url # Get download url
reaperVersion=$(head /opt/REAPER/whatsnew.txt | filterVersion) reaperVersion=$(head /opt/REAPER/whatsnew.txt | filterVersion)
reaperSite='https://www.reaper.fm/' reaperSite='https://www.reaper.fm'
downloadPage=$(curl -s ${reaperSite}download.php) downloadPage=$(curl -s "${reaperSite}/download.php")
urlVersion=$(echo "$downloadPage" | grep -A 2 'Linux x86_64' | filterVersion) urlVersion=$(echo "$downloadPage" | grep -A 2 'Linux x86_64' | filterVersion)
url=$reaperSite$(echo "$downloadPage" | grep linux_x86_64 | grep -Po '(?<=href=")[^"]*') url="${reaperSite}/$(echo "$downloadPage" | grep linux_x86_64 | grep -Po '(?<=href=")[^"]*'| head -n 1)"
checkUptoDate Reaper $reaperVersion $urlVersion checkUptoDate Reaper $reaperVersion $urlVersion

View File

@ -5,6 +5,20 @@
# Import library # Import library
source $(dirname ${BASH_SOURCE[0]})/install-lib.sh source $(dirname ${BASH_SOURCE[0]})/install-lib.sh
# Graphics card fix
function graphicsCardFix() {
sudo rm /etc/OpenCL/vendors/mesa.icd
sudo rm /etc/OpenCL/vendors/pocl.icd
}
# gLib fix
function glibFix() {
sudo mkdir /opt/resolve/libs/_disabled
sudo mv /opt/resolve/libs/libglib-2.0.so* /opt/resolve/libs/_disabled
sudo mv /opt/resolve/libs/libgio-2.0.so* /opt/resolve/libs/_disabled
sudo mv /opt/resolve/libs/libgmodule-2.0.so* /opt/resolve/libs/_disabled
}
versionFile=/opt/resolve/version.txt versionFile=/opt/resolve/version.txt
resolveVersion=$(cat /opt/resolve/docs/ReadMe.html | grep 'DaVinci Resolve Studio' | filterVersion) resolveVersion=$(cat /opt/resolve/docs/ReadMe.html | grep 'DaVinci Resolve Studio' | filterVersion)
@ -77,18 +91,12 @@ if [ ! -f ./*${installerName}_Linux.run ]; then
fi fi
echo "Installing ./*${installerName}_Linux.run" echo "Installing ./*${installerName}_Linux.run"
chmod +x ./*${installerName}_Linux.run chmod +x ./*${installerName}_Linux.run
sudo ./*${installerName}_Linux.run -i -y sudo SKIP_PACKAGE_CHECK=1 ./*${installerName}_Linux.run -i -y
# Version number backup # Version number backup
sudo echo $urlVersion > $versionFile sudo echo $urlVersion > $versionFile
# Graphics card fix glibFix
sudo rm /etc/OpenCL/vendors/mesa.icd
sudo rm /etc/OpenCL/vendors/pocl.icd
# gLib fix
sudo mkdir /opt/resolve/libs/_disabled
sudo mv /opt/resolve/libs/libglib-2.0.so* /opt/resolve/libs/_disabled
# Keyboard mapping fix # Keyboard mapping fix
setxkbmap -option 'caps:super' setxkbmap -option 'caps:super'

View File

@ -26,5 +26,5 @@ def closed():
return False return False
if (openToday() and not closed()): if (openToday() and not closed()):
print("Open") print("Open")
os.system("i3-msg 'workspace 10; exec firefox --new-window robinhood.com \ os.system("i3-msg 'workspace 10; exec librewolf --new-window robinhood.com \
&& sleep 1 && firefox -new-tab app.webull.com/watch'") && sleep 1 && firefox -new-tab app.webull.com/watch'")

View File

@ -54,32 +54,32 @@ def isProgramRunning(name, windows, workspace):
return False return False
def isPagesLoaded(firefoxWindows): def isPagesLoaded(windows):
for w in firefoxWindows: for w in windows:
if 'http' not in w.name: if 'http' not in w.name:
return True return True
return True return True
i3 = Connection() i3 = Connection()
firefoxWindows = filterWindowsByClass('firefox', getWindows(i3)) windows = filterWindowsByClass('librewolf-default', getWindows(i3))
while(not isPagesLoaded(firefoxWindows)): while(not isPagesLoaded(windows)):
time.sleep(0.1) time.sleep(0.1)
switchWorkspace('10') switchWorkspace('10')
switchWorkspace('1') switchWorkspace('1')
# Music # Music
if not isProgramRunning(['music.youtube.com'], firefoxWindows, '10'): if not isProgramRunning(['music.youtube.com'], windows, '10'):
launchProgram('firefox --new-window music.youtube.com', '10') launchProgram('librewolf --new-window music.youtube.com', '10')
# Stocks # Stocks
if not isProgramRunning(['Robinhood', 'Webull'], firefoxWindows, '10'): if not isProgramRunning(['Robinhood', 'Webull'], windows, '10'):
os.system('python ~/.config/scripts/launch-stocks-tracker.py') os.system('python ~/bin/launch-stocks-tracker.py')
# Videos # Videos
if not isProgramRunning(['odysee.com', 'lbry.tv', 'www.youtube.com', if not isProgramRunning(['odysee.com', 'lbry.tv', 'www.youtube.com',
' - YouTube', 'hulu.com', 'netflix.com', ' - YouTube', 'hulu.com', 'netflix.com',
'disneyplus.com', 'tv.youtube.com'], 'disneyplus.com', 'tv.youtube.com'],
firefoxWindows, '10'): windows, '10'):
launchProgram('firefox --new-window youtube.com/feed/subscriptions', '10') launchProgram('librewolf --new-window youtube.com/feed/subscriptions', '10')
launchProgram('sleep 1 && firefox -new-tab odysee.com/$/following', '10') launchProgram('sleep 1 && librewolf -new-tab odysee.com/$/following', '10')

View File

@ -0,0 +1,52 @@
#!/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

View File

@ -0,0 +1,18 @@
#!/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 &

View File

@ -28,6 +28,11 @@ function flatpakUpdate {
fi fi
} }
# Appimage Updater
function appimageUpdate {
am update
}
# Checks if a program is installed and if it is runs an updater script # Checks if a program is installed and if it is runs an updater script
function updateProgram { function updateProgram {
if command -v $1 &> /dev/null; then if command -v $1 &> /dev/null; then
@ -39,12 +44,13 @@ function updateProgram {
function manualUpdate { function manualUpdate {
if command -v dnf &> /dev/null; then if command -v dnf &> /dev/null; then
echo Updating manually installed programs... echo Updating manually installed programs...
updateProgram bitwig-studio ~/.config/scripts/installers/bitwig-install.sh & SCRIPT_PATH="$HOME/bin/installers"
updateProgram /opt/dragonframe5/bin/Dragonframe ~/.config/scripts/installers/dragonframe-install.sh & updateProgram bitwig-studio $SCRIPT_PATH/bitwig-install.sh &
updateProgram reaper ~/.config/scripts/installers/reaper-install.sh & updateProgram /opt/dragonframe5/bin/Dragonframe $SCRIPT_PATH/dragonframe-install.sh &
updateProgram /opt/resolve/bin/resolve ~/.config/scripts/installers/resolve-install.sh & updateProgram reaper $SCRIPT_PATH/reaper-install.sh &
updateProgram /opt/keeweb/keeweb ~/.config/scripts/installers/keeweb-install.sh & updateProgram /opt/resolve/bin/resolve $SCRIPT_PATH/resolve-install.sh &
updateProgram yabridgectl ~/.config/scripts/installers/yabridge-install.sh & updateProgram /opt/keeweb/keeweb $SCRIPT_PATH/keeweb-install.sh &
updateProgram yabridgectl $SCRIPT_PATH/yabridge-install.sh &
wait wait
fi fi
} }
@ -54,4 +60,7 @@ aptUpdate
echo '' echo ''
flatpakUpdate flatpakUpdate
echo '' echo ''
appimageUpdate
echo ''
manualUpdate manualUpdate

View File

@ -4,5 +4,5 @@ Description=Polybar
[Service] [Service]
Type=oneshot Type=oneshot
RemainAfterExit=true RemainAfterExit=true
ExecStart=%h/.config/scripts/desktop/polybar-start.sh ExecStart=%h/bin/desktop/polybar-start.sh
ExecStop=killall -q polybar ExecStop=killall -q polybar

View File

@ -3,8 +3,8 @@
"output": ["DVI-D-0", "LVDS-1", "eDP-1"], "output": ["DVI-D-0", "LVDS-1", "eDP-1"],
"position": "top", "position": "top",
"height": 35, // Waybar height (to be removed for auto height) "height": 35, // Waybar height (to be removed for auto height)
"modules-left": ["sway/workspaces", "sway/mode", "custom/media"], "modules-left": ["hyprland/workspaces", "hyprland/mode", "sway/workspaces", "sway/mode", "custom/media"],
"modules-center": ["sway/window"], "modules-center": ["hyprland/window", "sway/window"],
"modules-right": ["pulseaudio", "network", "backlight", "battery", "tray", "clock"], "modules-right": ["pulseaudio", "network", "backlight", "battery", "tray", "clock"],
// Modules configuration // Modules configuration
"sway/workspaces": { "sway/workspaces": {
@ -23,6 +23,22 @@
"default": "" "default": ""
} }
}, },
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{icon}",
"format-icons": {
"1": "1",
"2": "",
"3": "3",
"4": "4",
"5": "5",
"13": "♫",
"urgent": "",
"focused": "",
"default": ""
}
},
"keyboard-state": { "keyboard-state": {
"numlock": true, "numlock": true,
"capslock": true, "capslock": true,
@ -35,6 +51,9 @@
"sway/mode": { "sway/mode": {
"format": "<span style=\"italic\">{}</span>" "format": "<span style=\"italic\">{}</span>"
}, },
"hyprland/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"tray": { "tray": {
// "icon-size": 21, // "icon-size": 21,
"spacing": 10 "spacing": 10

View File

@ -1 +0,0 @@
load_script("/home/aqua/.config/wireplumber/scripts/auto-connect-ports.lua")

View File

@ -0,0 +1,13 @@
wireplumber.components = [
{
name = auto-connect-ports.lua, type = script/lua
provides = custom.auto-connect-ports
}
]
wireplumber.profiles = {
main = {
custom.auto-connect-ports = required
}
}

View File

@ -7,7 +7,7 @@
-- Link two ports together -- Link two ports together
function link_port(output_port, input_port) function link_port(output_port, input_port)
if not input_port or not output_port then if not input_port or not output_port then
return false return nil
end end
local link_args = { local link_args = {
@ -29,7 +29,7 @@ function link_port(output_port, input_port)
local link = Link("link-factory", link_args) local link = Link("link-factory", link_args)
link:activate(1) link:activate(1)
return true return link
end end
-- Automatically link ports together by their specific audio channels. -- Automatically link ports together by their specific audio channels.
@ -72,6 +72,8 @@ function auto_connect_ports(args)
} }
} }
local links = {}
local input_om = ObjectManager { local input_om = ObjectManager {
Interest { Interest {
type = "port", type = "port",
@ -96,22 +98,40 @@ function auto_connect_ports(args)
Constraint { "port.direction", "equals", "in" } Constraint { "port.direction", "equals", "in" }
} }
} }
end end
function _connect() function _connect()
local delete_links = unless and unless:get_n_objects() > 0 local delete_links = unless and unless:get_n_objects() > 0
print("Delete links", delete_links) if delete_links then
for _i, link in pairs(links) do
link:request_destroy()
end
for output_name, input_name in pairs(args.connect) do links = {}
local output = output_om:lookup { Constraint { "audio.channel", "equals", output_name } }
local input = input_om:lookup { Constraint { "audio.channel", "equals", input_name } } return
end
for output_name, input_names in pairs(args.connect) do
local input_names = input_names[1] == nil and { input_names } or input_names
if delete_links then if delete_links then
delete_link(all_links, output, input)
else else
link_port(output, input) -- Iterate through all the output ports with the correct channel name
for output in output_om:iterate { Constraint { "audio.channel", "equals", output_name } } do
for _i, input_name in pairs(input_names) do
-- Iterate through all the input ports with the correct channel name
for input in input_om:iterate { Constraint { "audio.channel", "equals", input_name } } do
-- Link all the nodes
local link = link_port(output, input)
if link then
table.insert(links, link)
end
end
end
end
end end
end end
end end
@ -131,25 +151,15 @@ function auto_connect_ports(args)
end end
end end
-- pw-cli list-objects | grep object.path -- pw-cli list-objects | grep object.path
-- Connect to speakers -- Connect to speakers
auto_connect_ports { auto_connect_ports {
output = Constraint { "object.path", "matches", "speakers:*" }, output = Constraint { "object.path", "matches", "speakers:*" },
input = Constraint { "object.path", "matches", "alsa:pcm:2:hw:2,0:playback:*" }, input = Constraint { "object.path", "matches", "alsa:acp:C8Pre:0:playback:*" },
connect = { connect = {
["FL"] = "AUX0", ["FL"] = "AUX0",
["FR"] = "AUX1" ["FR"] = "AUX1"
} }
} }
-- Connect to mic
auto_connect_ports {
output = Constraint { "object.path", "matches", "alsa:pcm:2:hw:2,0:capture:*" },
input = Constraint { "object.path", "matches", "sm7b-processed:" },
connect = {
["AUX0"] = "FL",
["AUX1"] = "FR"
}
}

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