Compare commits
18 Commits
0f7e79849d
...
master
Author | SHA1 | Date | |
---|---|---|---|
bac37b6b67 | |||
79e501a461 | |||
cca255ba83 | |||
1f717b9d6d | |||
e2a0d8fb32 | |||
fc429a2f3f | |||
0a765ae781 | |||
db8203219d | |||
f48178a488 | |||
68582d6054 | |||
e456e3fd45 | |||
55abc4e267 | |||
506321ee1b | |||
3803f20cb1 | |||
dbd98d0b47 | |||
95b73b38f8 | |||
440c2bdacb | |||
7431c5f191 |
4
dot_cargo/config.toml
Normal file
4
dot_cargo/config.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[target.'cfg(target_os = "linux")']
|
||||
linker = "clang"
|
||||
rustflags = ["-C", "link-arg=--ld-path=/home/joe/.local/share/mise/shims/mold"]
|
||||
|
@@ -13,7 +13,6 @@ size = 10
|
||||
padding.x = 14
|
||||
padding.y = 14
|
||||
decorations = "None"
|
||||
opacity = 0.98
|
||||
|
||||
[keyboard]
|
||||
bindings = [
|
||||
|
@@ -9,4 +9,3 @@ exec = ~/.local/bin/assign-workspace-monitors
|
||||
# autostart various apps in their own special workspaces
|
||||
exec-once = [workspace special:slack silent] slack
|
||||
exec-once = [workspace special:1password silent] 1password
|
||||
exec-once = [workspace special:creddy silent; float; size 800 600] uwsm app -- creddy
|
||||
|
@@ -6,32 +6,44 @@ bindd = SUPER, return, Terminal, exec, $terminal --working-directory=$(omarchy-c
|
||||
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
|
||||
bindd = SUPER, B, Browser, exec, $browser
|
||||
bindd = SUPER, M, Music, exec, uwsm app -- spotify
|
||||
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
|
||||
bindd = SUPER, N, Notes, exec, heynote
|
||||
bindd = SUPER, T, Activity, exec, $terminal -e btop
|
||||
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
|
||||
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
|
||||
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
|
||||
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
|
||||
bindd = SUPER ALT, D, Docker, exec, $terminal -e lazydocker
|
||||
|
||||
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
|
||||
bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
||||
bindd = SUPER SHIFT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
||||
bindd = SUPER, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
|
||||
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
|
||||
bindd = SUPER, A, Claude, exec, omarchy-launch-webapp "https://claude.ai/new"
|
||||
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://mail.google.com/mail/u/0/"
|
||||
bindd = SUPER, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
|
||||
bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-webapp "https://web.whatsapp.com/"
|
||||
bindd = SUPER, G, GitLab, exec, omarchy-launch-webapp "https://gitlab.modg.net/"
|
||||
bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-webapp "https://messages.google.com/web/conversations"
|
||||
bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
||||
bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
||||
bindd = SUPER, O, modgoffice, exec, omarchy-launch-webapp "https://office.modg.org"
|
||||
|
||||
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space
|
||||
# unbind = SUPER, Space
|
||||
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
|
||||
# lazy apps: Launch if not currently running, otherwise just switch to that app
|
||||
bindd = SUPER, D, Open/focus DataGrip, exec, ~/.local/bin/lazy-app class:jetbrains-datagrip ~/.local/share/JetBrains/Toolbox/apps/datagrip/bin/datagrip
|
||||
|
||||
# keybinds for special workspaces
|
||||
# omarchy uses swapwindow for these binds, but I prefer movewindow so that it can cross monitor boundaries
|
||||
unbind = SUPER SHIFT, left
|
||||
unbind = SUPER SHIFT, right
|
||||
unbind = SUPER SHIFT, up
|
||||
unbind = SUPER SHIFT, down
|
||||
bindd = SUPER SHIFT, left, Move window to the left, movewindow, l
|
||||
bindd = SUPER SHIFT, right, Move window to the right, movewindow, r
|
||||
bindd = SUPER SHIFT, up, Move window up, movewindow, u
|
||||
bindd = SUPER SHIFT, down, Move window down, movewindow, d
|
||||
|
||||
bindd = SUPER ALT, left, Move current workspace to the left, movecurrentworkspacetomonitor, l
|
||||
bindd = SUPER ALT, right, Move current workspace to the right, movecurrentworkspacetomonitor, r
|
||||
bindd = SUPER ALT, up, Move current workspace up, movecurrentworkspacetomonitor, u
|
||||
bindd = SUPER ALT, down, Move current workspace down, movecurrentworkspacetomonitor, d
|
||||
|
||||
# create a new workspace
|
||||
bindd = SUPER, grave, Create a mew workspace, exec, ~/.local/bin/new-workspace
|
||||
|
||||
# keybinds for background apps
|
||||
bindd = SUPER, S, Show/hide Slack, togglespecialworkspace, slack
|
||||
bindd = SUPER, period, Show/hide 1Password, togglespecialworkspace, 1password
|
||||
bindd = SUPER, Z, Show/hide Creddy, togglespecialworkspace, creddy
|
||||
bindd = SUPER, period, 1Password quick access, exec, 1password --quick-access
|
||||
bindd = SUPER CTRL, period, Show/hide 1Password, togglespecialworkspace, 1password
|
||||
bindd = SUPER, Z, Show Creddy, exec, creddy shortcut show-window
|
||||
|
||||
# I'm used to super+L to lock screen
|
||||
bindd = SUPER, L, Lock screen, exec, omarchy-lock-screen
|
||||
@@ -39,3 +51,16 @@ bindd = SUPER, L, Lock screen, exec, omarchy-lock-screen
|
||||
# I don't want ctrl+alt+delete to affect my "special" apps
|
||||
unbind = CTRL ALT, DELETE
|
||||
bindd = CTRL ALT, DELETE, Close all windows (except special), exec, ~/.local/bin/close-non-special-windows
|
||||
|
||||
# for WHATEVER reason, hyprland refuses to use the numeric symbols for keypad keys,
|
||||
# so we have to use the navigation symbols instead
|
||||
bindd = SUPER, KP_End, Switch to workspace 1, workspace, 1
|
||||
bindd = SUPER, KP_Down, Switch to workspace 2, workspace, 2
|
||||
bindd = SUPER, KP_Next, Switch to workspace 3, workspace, 3
|
||||
bindd = SUPER, KP_Left, Switch to workspace 4, workspace, 4
|
||||
bindd = SUPER, KP_Begin, Switch to workspace 5, workspace, 5
|
||||
bindd = SUPER, KP_Right, Switch to workspace 6, workspace, 6
|
||||
bindd = SUPER, KP_Home, Switch to workspace 7, workspace, 7
|
||||
bindd = SUPER, KP_Up, Switch to workspace 8, workspace, 8
|
||||
bindd = SUPER, kp_Prior, Switch to workspace 9, workspace, 9
|
||||
|
||||
|
@@ -17,3 +17,5 @@ source = ~/.config/hypr/input.conf
|
||||
source = ~/.config/hypr/bindings.conf
|
||||
source = ~/.config/hypr/envs.conf
|
||||
source = ~/.config/hypr/autostart.conf
|
||||
source = ~/.config/hypr/windows.conf
|
||||
|
||||
|
@@ -13,6 +13,9 @@ input {
|
||||
# Increase sensitity for mouse/trackpack (default: 0)
|
||||
sensitivity = -0.25
|
||||
|
||||
# enable numlock automatically
|
||||
numlock_by_default = true
|
||||
|
||||
touchpad {
|
||||
# Use natural (inverse) scrolling
|
||||
# natural_scroll = true
|
||||
|
@@ -4,7 +4,7 @@
|
||||
# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch)
|
||||
|
||||
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
|
||||
env = GDK_SCALE,2
|
||||
env = GDK_SCALE,1.5
|
||||
monitor = , preferred, auto, auto
|
||||
|
||||
# Good compromise for 27" or 32" 4K monitors (but fractional!)
|
||||
|
18
dot_config/hypr/windows.conf
Normal file
18
dot_config/hypr/windows.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
# datagrip gets its own named workspace
|
||||
windowrule = workspace name:DataGrip, class:jetbrains-datagrip
|
||||
|
||||
# creddy gets some special treatment
|
||||
windowrule = workspace special:creddy, class:creddy
|
||||
windowrule = float, class:creddy
|
||||
windowrule = size 800 600, class:creddy
|
||||
# this just gets ignored when monitor 2 isn't present, which is perfect
|
||||
windowrule = monitor 2, class:creddy
|
||||
|
||||
windowrule = workspace special:slack, class:Slack
|
||||
|
||||
# excluding floating windows allows the unlock and quick-access popups to show in any workspace
|
||||
windowrule = workspace special:1password, class:1Password, floating:0
|
||||
# quick-access popup doesn't resize automatically when its content changes
|
||||
# windowrule = size 550 404, class:1Password, title:Quick.*
|
||||
windowrule = persistentsize, class:1Password, title:Quick.*
|
||||
|
@@ -1,5 +1,6 @@
|
||||
[settings]
|
||||
idiomatic_version_file_enable_tools = ["ruby"]
|
||||
experimental = true
|
||||
|
||||
[settings.ruby]
|
||||
ruby_build_opts = "CC=gcc-14 CXX=g++-14"
|
||||
@@ -12,8 +13,20 @@ node = "lts"
|
||||
rust = "latest"
|
||||
uv = "latest"
|
||||
yay = "latest"
|
||||
k9s = "latest"
|
||||
awscli = "latest"
|
||||
kubectl = "latest"
|
||||
difftastic = "latest"
|
||||
|
||||
[tools."gitlab:tools/setconf"]
|
||||
version = "latest"
|
||||
api_url = "https://gitlab.modg.net/api/v4"
|
||||
bin = "setconf"
|
||||
|
||||
[tools."pipx:harlequin"]
|
||||
version = "latest"
|
||||
extras = "postgres,odbc"
|
||||
|
||||
[settings.python]
|
||||
uv_venv_auto = true
|
||||
|
||||
|
111
dot_config/waybar/config.jsonc
Normal file
111
dot_config/waybar/config.jsonc
Normal file
@@ -0,0 +1,111 @@
|
||||
{
|
||||
"reload_style_on_change": true,
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"spacing": 0,
|
||||
"height": 26,
|
||||
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
|
||||
"modules-center": ["clock", "custom/update"],
|
||||
"modules-right": [
|
||||
"group/tray-expander",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"cpu",
|
||||
"battery"
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
},
|
||||
"custom/omarchy": {
|
||||
"format": "<span font='omarchy'>\ue900</span>",
|
||||
"on-click": "omarchy-menu",
|
||||
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
|
||||
},
|
||||
"custom/update": {
|
||||
"format": "",
|
||||
"exec": "omarchy-update-available",
|
||||
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
|
||||
"tooltip-format": "Omarchy update available",
|
||||
"interval": 3600
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "",
|
||||
"on-click": "alacritty -e btop"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%A %H:%M}",
|
||||
"format-alt": "{:%d %B W%V %Y}",
|
||||
"tooltip": false,
|
||||
"on-click-right": "omarchy-cmd-tzupdate"
|
||||
},
|
||||
"network": {
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"format": "{icon}",
|
||||
"format-wifi": "{icon}",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"interval": 3,
|
||||
"spacing": 1,
|
||||
"on-click": "alacritty --class=Impala -e impala"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-discharging": "{icon}",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-icons": {
|
||||
"charging": ["", "", "", "", "", "", "", "", "", ""],
|
||||
"default": ["", "", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
"format-full": "",
|
||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
||||
"interval": 5,
|
||||
"on-click": "omarchy-menu power",
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "Devices connected: {num_connections}",
|
||||
"on-click": "blueberry"
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon}",
|
||||
"on-click": "alacritty --class=Wiremix -e wiremix",
|
||||
"on-click-right": "pamixer -t",
|
||||
"tooltip-format": "Playing at {volume}%",
|
||||
"scroll-step": 5,
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
"group/tray-expander": {
|
||||
"orientation": "inherit",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"children-class": "tray-group-item"
|
||||
},
|
||||
"modules": ["custom/expand-icon", "tray"]
|
||||
},
|
||||
"custom/expand-icon": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 12,
|
||||
"spacing": 12
|
||||
}
|
||||
}
|
67
dot_config/waybar/style.css
Normal file
67
dot_config/waybar/style.css
Normal file
@@ -0,0 +1,67 @@
|
||||
@import "../omarchy/current/theme/waybar.css";
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
/* color: @foreground; */
|
||||
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
font-family: CaskaydiaMono Nerd Font;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
all: initial;
|
||||
padding: 0 6px;
|
||||
margin: 0 1.5px;
|
||||
min-width: 9px;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #bfe28c;
|
||||
}
|
||||
|
||||
#tray,
|
||||
#cpu,
|
||||
#battery,
|
||||
#network,
|
||||
#bluetooth,
|
||||
#pulseaudio,
|
||||
#custom-omarchy,
|
||||
#custom-update {
|
||||
min-width: 12px;
|
||||
margin: 0 7.5px;
|
||||
}
|
||||
|
||||
#custom-expand-icon {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
#custom-update {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin-left: 8.75px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
opacity: 0;
|
||||
}
|
71
dot_config/zed/settings.json
Normal file
71
dot_config/zed/settings.json
Normal file
@@ -0,0 +1,71 @@
|
||||
// Zed settings
|
||||
//
|
||||
// For information on how to configure Zed, see the Zed
|
||||
// documentation: https://zed.dev/docs/configuring-zed
|
||||
//
|
||||
// To see all of Zed's default settings without changing your
|
||||
// custom settings, run `zed: open default settings` from the
|
||||
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||
{
|
||||
"agent": {
|
||||
"model_parameters": [],
|
||||
"default_profile": "write"
|
||||
},
|
||||
// "features": {
|
||||
// "edit_prediction_provider": "none"
|
||||
// },
|
||||
"always_treat_brackets_as_autoclosed": true,
|
||||
"tab_size": 4,
|
||||
"base_keymap": "SublimeText",
|
||||
"format_on_save": "off",
|
||||
"ui_font_size": 16,
|
||||
"buffer_font_size": 15,
|
||||
"buffer_font_features": {
|
||||
"calt": false
|
||||
},
|
||||
"theme": {
|
||||
"mode": "system",
|
||||
"light": "One Light",
|
||||
"dark": "One Dark"
|
||||
},
|
||||
"languages": {
|
||||
"JSON": {
|
||||
"tab_size": 2
|
||||
},
|
||||
"JSONC": {
|
||||
"tab_size": 2
|
||||
},
|
||||
"Elixir": {
|
||||
"tab_size": 2
|
||||
},
|
||||
"Markdown": {
|
||||
"soft_wrap": "editor_width"
|
||||
},
|
||||
"Jinja2": {
|
||||
"remove_trailing_whitespace_on_save": false
|
||||
},
|
||||
"YAML": {
|
||||
"tab_size": 2
|
||||
}
|
||||
},
|
||||
"file_types": {
|
||||
"Markdown": ["svx"]
|
||||
},
|
||||
"experimental.theme_overrides": {
|
||||
// use with One Dark Pro theme
|
||||
// "editor.document_highlight.read_background": "#74ade81a",
|
||||
"syntax": {
|
||||
"operator": {
|
||||
"color": "#fa428f"
|
||||
},
|
||||
"string.doc": {
|
||||
"color": "#a2a3a7"
|
||||
}
|
||||
// use with One Dark Pro theme
|
||||
// "punctuation.special": {
|
||||
// "color": "#b1574b",
|
||||
// },
|
||||
}
|
||||
}
|
||||
|
||||
}
|
35
dot_local/bin/executable_assign-workspace-monitors
Normal file
35
dot_local/bin/executable_assign-workspace-monitors
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
|
||||
CONFIG = {
|
||||
'Samsung Electric Company LS27A800U HCJW301093': 1,
|
||||
'Seanix Technology Inc NX-EDG27X C6F0K3CN07UL': 2,
|
||||
'BOE 0x0BCA': 3
|
||||
}
|
||||
|
||||
|
||||
p = subprocess.run(
|
||||
['hyprctl', 'monitors', '-j'],
|
||||
capture_output=True,
|
||||
check=True,
|
||||
encoding='utf-8'
|
||||
)
|
||||
monitors = json.loads(p.stdout)
|
||||
print('monitors:', monitors)
|
||||
|
||||
if set(m['description'] for m in monitors) == CONFIG.keys():
|
||||
print('config matched, assigning:')
|
||||
dispatches = []
|
||||
for m in monitors:
|
||||
workspace = CONFIG[m['description']]
|
||||
# move workspace to desired monitor
|
||||
dispatches.append(f"dispatch moveworkspacetomonitor {workspace} {m['name']}")
|
||||
# focus the workspace so that it's visible after moving
|
||||
dispatches.append(f"workspace {workspace}")
|
||||
cmd = ['hyprctl', '--batch', ' ; '.join(dispatches)]
|
||||
print('\n'.join(cmd))
|
||||
subprocess.run(cmd, check=True)
|
||||
else:
|
||||
print('config not matched')
|
4
dot_local/bin/executable_clear-downloads
Normal file
4
dot_local/bin/executable_clear-downloads
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# clear all files in ~/Downloads older than 24h
|
||||
fd --changed-before 1d --full-path ~/Downloads --exec-batch rm -rf
|
3
dot_local/bin/executable_docker-credential-creddy
Normal file
3
dot_local/bin/executable_docker-credential-creddy
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
creddy docker $@
|
@@ -2,5 +2,9 @@
|
||||
|
||||
sudo pacman -U https://git.jfmonty2.com/jfmonty2/creddy/releases/download/v0.6.5/creddy-0.6.5-1-x86_64.pkg.tar.zst
|
||||
sudo pacman -S unixodbc
|
||||
sudo pacman -S vulkan-radeon
|
||||
sudo pacman -R amdvlk
|
||||
|
||||
yay aur/msodbcsql17
|
||||
yay msodbcsql17
|
||||
yay wayfreeze-git
|
||||
yay heynote-bin
|
||||
|
7
dot_local/bin/executable_new-workspace
Normal file
7
dot_local/bin/executable_new-workspace
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# generate ids from 1-100, remove the ids of existing workspaces, take the
|
||||
# first of the remaining numbers and you have the first available workspace id
|
||||
FIRST_AVAILABLE=$(hyprctl workspaces -j | jq '[range(1; 100)] - map(.id) | .[0]')
|
||||
|
||||
hyprctl dispatch workspace $FIRST_AVAILABLE
|
6
private_dot_docker/config.json
Normal file
6
private_dot_docker/config.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"auths": {
|
||||
"686562827170.dkr.ecr.us-east-1.amazonaws.com": {}
|
||||
},
|
||||
"credsStore": "creddy"
|
||||
}
|
Reference in New Issue
Block a user