Compare commits

...

2 Commits

Author SHA1 Message Date
Anton Volnuhin
ac46863b48 harden install script and fix fish config portability
Install script:
- fix package availability (skim/fedora, fd-find/debian, direnv+goku/macos)
- add CLI flags for non-interactive mode (--skip-timezone, --skip-neovim-bootstrap, etc.)
- template STEPS count per OS for correct TUI layout
- add brew shellenv for fresh Apple Silicon, timeout portability
- pam_ssh_agent_auth availability check with warning for Fedora 42+
- fix fisher detection, authorized_keys whole-line dedup

Fish config:
- replace set -gx PATH with idempotent fish_add_path
- guard direnv/cargo sourcing for missing tools
- fix hardcoded /home/anton/ and /Users/anton/ paths
- remove unused micromamba/conda setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-02 18:35:11 +03:00
Anton Volnuhin
e838936be2 back to kitty, uv, small changes in karabiner 2025-03-02 01:17:58 +03:00
7 changed files with 556 additions and 306 deletions

View File

@ -14,13 +14,13 @@
smudge = git-lfs smudge -- %f
[credential "https://gitea.setia.cloud"]
provider = generic
[credential]
helper =
helper = /usr/local/share/gcm-core/git-credential-manager
[credential "https://dev.azure.com"]
useHttpPath = true
[http]
postBuffer = 157286400
version = HTTP/1.1
[pack]
window = 1
[credential]
helper =
helper = /usr/local/share/gcm-core/git-credential-manager
[credential "https://dev.azure.com"]
useHttpPath = true

View File

@ -1,5 +1,4 @@
{
"version" : 1,
"defaultDestination" : {
"littleArc" : {
"_0" : {
@ -23,51 +22,7 @@
"id" : "F3E12D83-550F-4925-9E51-8F52146CD73D",
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "mokum.place",
"_0" : {
"contains" : {
}
}
}
},
"id" : "99982173-6D2A-4721-952D-796D5EE2C52E"
}
]
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "C7927EA9-ADC2-4C26-B3F9-B7CF0CE2AD0D"
}
}
}
},
"sourceComponents" : [
{
"id" : "B0C2D84D-71D2-442E-9CF4-60C7AA6B6492",
"componentType" : {
"urlMatch" : {
"_1" : "twitter.com",
"_0" : {
"contains" : {
}
}
}
}
}
],
"id" : "5968A140-4015-4DFE-B4E7-4D3361E36650"
},
{
"sourceComponents" : [
{
"id" : "0B6DBD0B-28E4-4E9F-A727-809B88988359",
"id" : "99982173-6D2A-4721-952D-796D5EE2C52E",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -75,12 +30,29 @@
}
},
"_1" : "reddit.com"
"_1" : "mokum.place"
}
}
}
]
},
{
"sourceComponents" : [
{
"id" : "B0C2D84D-71D2-442E-9CF4-60C7AA6B6492",
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "twitter.com"
}
}
}
],
"id" : "A43B8887-4705-4BBC-A143-7F4FF1B321AE",
"id" : "5968A140-4015-4DFE-B4E7-4D3361E36650",
"destination" : {
"space" : {
"_0" : {
@ -92,19 +64,18 @@
}
},
{
"id" : "A43B8887-4705-4BBC-A143-7F4FF1B321AE",
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
"_0" : "C7927EA9-ADC2-4C26-B3F9-B7CF0CE2AD0D"
}
}
}
},
"id" : "4DEDEA39-D173-477A-95C7-4D52E05A80A7",
"sourceComponents" : [
{
"id" : "AD40F6CD-9785-4836-9DD2-873986354D3E",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -112,13 +83,30 @@
}
},
"_1" : "gitea.setia.cloud"
"_1" : "reddit.com"
}
}
},
"id" : "0B6DBD0B-28E4-4E9F-A727-809B88988359"
}
]
},
{
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "gitea.setia.cloud",
"_0" : {
"contains" : {
}
}
}
},
"id" : "AD40F6CD-9785-4836-9DD2-873986354D3E"
}
],
"id" : "4DEDEA39-D173-477A-95C7-4D52E05A80A7",
"destination" : {
"space" : {
"_0" : {
@ -127,7 +115,9 @@
}
}
}
},
}
},
{
"id" : "223DA53A-93F0-4696-82CE-E05F7A652FA6",
"sourceComponents" : [
{
@ -143,13 +133,20 @@
}
}
}
]
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
}
}
}
}
},
{
"id" : "346644F6-271C-4425-9F80-E68BAF6916B6",
"sourceComponents" : [
{
"id" : "376A73E6-1519-4823-AD2D-BFC01B2744B1",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -159,7 +156,8 @@
},
"_1" : "rust-lang.com"
}
}
},
"id" : "376A73E6-1519-4823-AD2D-BFC01B2744B1"
}
],
"destination" : {
@ -170,75 +168,67 @@
}
}
}
}
},
"id" : "346644F6-271C-4425-9F80-E68BAF6916B6"
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
}
}
}
},
"id" : "ACDAB8D6-5364-4FF5-8DB2-87ED0E4232FD",
"sourceComponents" : [
{
"id" : "781555E3-FF9D-4232-B277-F3E4DFD18EBC",
"componentType" : {
"urlMatch" : {
"_1" : "go.dev",
"_0" : {
"contains" : {
}
},
"_1" : "go.dev"
}
}
}
}
],
"id" : "ACDAB8D6-5364-4FF5-8DB2-87ED0E4232FD",
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
}
}
}
}
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
}
}
}
},
"id" : "8132E9C3-EF60-4769-884D-FA393D7A0D50",
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "gitlab"
}
},
"id" : "39D8214F-B15D-44F6-93BD-E5073A064649"
}
]
},
{
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "gitlab",
"_0" : {
"contains" : {
}
}
}
},
"id" : "39D8214F-B15D-44F6-93BD-E5073A064649"
}
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "C320F03E-A200-4AAB-BAD0-1A9198B6B71B"
"_0" : "37B2E76F-5DBD-447E-835C-E6D8A9B11D40"
}
}
}
},
"id" : "9B5C6962-7BC4-4A09-8F8B-D23904B483AC",
"id" : "8132E9C3-EF60-4769-884D-FA393D7A0D50"
},
{
"sourceComponents" : [
{
"id" : "EBBF2F5E-564F-476B-9A17-B1A723AF2767",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -248,13 +238,21 @@
},
"_1" : "moneysend"
}
},
"id" : "EBBF2F5E-564F-476B-9A17-B1A723AF2767"
}
}
]
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "C320F03E-A200-4AAB-BAD0-1A9198B6B71B"
}
}
}
},
"id" : "9B5C6962-7BC4-4A09-8F8B-D23904B483AC"
},
{
"id" : "1A272988-7410-45DB-B199-250FD896DBE5",
"sourceComponents" : [
{
"componentType" : {
@ -278,13 +276,22 @@
}
}
}
}
},
"id" : "1A272988-7410-45DB-B199-250FD896DBE5"
},
{
"destination" : {
"space" : {
"_0" : {
"mostRecent" : {
}
}
}
},
"id" : "9CF1E782-6517-43AF-BCB3-62C6F53331BE",
"sourceComponents" : [
{
"id" : "866EE41F-0892-441B-8374-6A4C5BE88614",
"componentType" : {
"urlMatch" : {
"_1" : "raiffeisen.ru",
@ -294,18 +301,10 @@
}
}
}
}
},
"id" : "866EE41F-0892-441B-8374-6A4C5BE88614"
}
],
"destination" : {
"space" : {
"_0" : {
"mostRecent" : {
}
}
}
}
]
},
{
"destination" : {
@ -319,7 +318,6 @@
},
"sourceComponents" : [
{
"id" : "01512154-0791-4215-A54A-31228DE92F59",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -329,7 +327,8 @@
},
"_1" : "meet.google.com"
}
}
},
"id" : "01512154-0791-4215-A54A-31228DE92F59"
}
],
"id" : "1C4508FB-8C06-4E08-8EF7-939E6F688245"
@ -362,15 +361,6 @@
]
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "709CF1C8-CD12-458C-BC35-2AF9FBE5EE25"
}
}
}
},
"id" : "7F8A1995-1975-4CB2-B39F-78EF1B7322D8",
"sourceComponents" : [
{
@ -386,7 +376,16 @@
}
}
}
]
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "709CF1C8-CD12-458C-BC35-2AF9FBE5EE25"
}
}
}
}
},
{
"id" : "39414599-4A94-4C6D-88C6-751FC509FE8C",
@ -401,22 +400,21 @@
},
"sourceComponents" : [
{
"id" : "96B9DA7C-6175-42B3-A6AD-724748FC9D94",
"componentType" : {
"urlMatch" : {
"_1" : "grabcad.com",
"_0" : {
"contains" : {
}
},
"_1" : "grabcad.com"
}
}
}
},
"id" : "96B9DA7C-6175-42B3-A6AD-724748FC9D94"
}
]
},
{
"id" : "08982E0B-EE79-4DE2-B24E-C7C351BE45BE",
"sourceComponents" : [
{
"id" : "BA5BBCDF-BE64-45FE-9A92-265A6A644614",
@ -432,6 +430,7 @@
}
}
],
"id" : "08982E0B-EE79-4DE2-B24E-C7C351BE45BE",
"destination" : {
"space" : {
"_0" : {
@ -443,6 +442,7 @@
}
},
{
"id" : "E9378031-A45E-4F9D-8AD3-4483FEE6F316",
"destination" : {
"space" : {
"_0" : {
@ -452,17 +452,16 @@
}
}
},
"id" : "E9378031-A45E-4F9D-8AD3-4483FEE6F316",
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "thingiverse.com",
"_0" : {
"contains" : {
}
}
},
"_1" : "thingiverse.com"
}
},
"id" : "6BC08DC1-1583-435F-A4CB-B2802B17EB32"
@ -470,19 +469,8 @@
]
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "3179C1E2-5270-4716-8A30-AC0786CB1767",
"sourceComponents" : [
{
"id" : "2D59E369-EC18-48AC-A634-8B423B6BC943",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -492,25 +480,8 @@
},
"_1" : "setia.cloud"
}
}
}
]
},
{
"id" : "8949C753-5DF5-4DA6-9EE3-3A2B91CA7BD3",
"sourceComponents" : [
{
"id" : "3C6610AD-2B2F-4305-9F3D-7E3FE7273762",
"componentType" : {
"urlMatch" : {
"_1" : "192.168.39",
"_0" : {
"contains" : {
}
}
}
}
},
"id" : "2D59E369-EC18-48AC-A634-8B423B6BC943"
}
],
"destination" : {
@ -521,7 +492,35 @@
}
}
}
}
},
"id" : "3179C1E2-5270-4716-8A30-AC0786CB1767"
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "8949C753-5DF5-4DA6-9EE3-3A2B91CA7BD3",
"sourceComponents" : [
{
"id" : "3C6610AD-2B2F-4305-9F3D-7E3FE7273762",
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "192.168.39"
}
}
}
]
},
{
"id" : "5C612B1D-7053-47B2-923C-F930FA443D1D",
@ -551,70 +550,16 @@
}
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "4A06B66A-9EAB-4614-8B77-B5CF7A8220B3",
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "192.168.20.20",
"_0" : {
"contains" : {
}
}
}
},
"id" : "10A812AC-B7E5-4220-848B-75C19A214194"
}
]
},
{
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "blackbox.place",
"_0" : {
"contains" : {
}
}
}
},
"id" : "343B0E23-00D4-41A7-AAD5-59095DEBE92C"
}
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "F6F495BC-1FC1-4CD9-8070-DE2586C8012A"
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "5850B5E5-4537-409C-82D2-E787AC2AF800",
"sourceComponents" : [
{
"componentType" : {
@ -624,7 +569,61 @@
}
},
"_1" : "home.setia.ru"
"_1" : "192.168.20.20"
}
},
"id" : "10A812AC-B7E5-4220-848B-75C19A214194"
}
]
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"id" : "F6F495BC-1FC1-4CD9-8070-DE2586C8012A",
"sourceComponents" : [
{
"id" : "343B0E23-00D4-41A7-AAD5-59095DEBE92C",
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "blackbox.place"
}
}
}
]
},
{
"id" : "5850B5E5-4537-409C-82D2-E787AC2AF800",
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "75BB4AC1-7C83-421C-BA54-90438B375EAA"
}
}
}
},
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "home.setia.ru",
"_0" : {
"contains" : {
}
}
}
},
"id" : "73E4B6A0-F6E5-4C0C-A861-F5CDA692B095"
@ -632,7 +631,21 @@
]
},
{
"id" : "EDD5208D-5FE7-49DF-A125-BE52606C7E3C",
"sourceComponents" : [
{
"id" : "7953D947-DBFF-4E32-AB08-7853E61FA2DE",
"componentType" : {
"urlMatch" : {
"_1" : "bakai.kg",
"_0" : {
"contains" : {
}
}
}
}
}
],
"destination" : {
"space" : {
"_0" : {
@ -642,9 +655,12 @@
}
}
},
"id" : "EDD5208D-5FE7-49DF-A125-BE52606C7E3C"
},
{
"id" : "CF8018F3-3201-493B-B3D9-F5BBC4862B47",
"sourceComponents" : [
{
"id" : "7953D947-DBFF-4E32-AB08-7853E61FA2DE",
"componentType" : {
"urlMatch" : {
"_0" : {
@ -652,11 +668,157 @@
}
},
"_1" : "bakai.kg"
"_1" : "rbc.ru"
}
},
"id" : "48AA6B45-5B47-4C88-AF98-64FDB4A3F205"
}
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
}
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
},
"id" : "11DF0321-8415-48FF-A5D8-36FEEC2E87FF",
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "lenta.ru"
}
},
"id" : "E3618C4A-AAB3-47D8-88F2-5C2E020F620A"
}
]
},
{
"id" : "2B08B01C-58A3-4B89-BE4C-37175DD4C05D",
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_1" : "ft.com",
"_0" : {
"contains" : {
}
}
}
},
"id" : "95219885-547F-4E03-AA36-66D1CDBD9677"
}
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
}
},
{
"sourceComponents" : [
{
"id" : "549AE999-27DB-4625-9FF2-0B77A0DC487C",
"componentType" : {
"urlMatch" : {
"_1" : "wsj.com",
"_0" : {
"contains" : {
}
}
}
}
}
],
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
},
"id" : "447D31B9-FC85-4531-9260-0C797ED893C6"
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
},
"id" : "FB393F7D-EECE-491A-9F04-1AF5C66310ED",
"sourceComponents" : [
{
"id" : "A4AABA0D-986E-4F3F-9DE3-15E938DD5BFB",
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "pravda.com.ua"
}
}
}
]
},
{
"destination" : {
"space" : {
"_0" : {
"space" : {
"_0" : "804F8243-14DB-4F79-8200-C3B1F0A99BBC"
}
}
}
},
"sourceComponents" : [
{
"componentType" : {
"urlMatch" : {
"_0" : {
"contains" : {
}
},
"_1" : "theverge.com"
}
},
"id" : "1E3DA576-EC30-4B5D-9042-9361CA731B70"
}
],
"id" : "8002BCFF-6EA2-48E9-80C5-64B3E30BA653"
}
]
],
"version" : 1
}

View File

@ -9,10 +9,11 @@
:applications {:keykey ["^com\\.chekazuja\\.keykey$"]
:arc ["^company\\.thebrowser\\.Browser$"]
:kitty ["^net\\.kovidgoyal\\.kitty$"]
:wezterm ["^com.github.wez.wezterm$"]
:webapp ["^com\\.apple\\.Safari\\.WebApp\\..+$"]
:perplexity ["^com\\.apple\\.Safari\\.WebApp\\.F9855FA5-EDE4-4A23-A3BD-BC8ACE1CD430$"]
:perplexity ["^ai\\.perplexity\\.mac$"]
:gemini ["^com\\.apple\\.Safari\\.WebApp\\.1550A740-0D4C-4C62-BA9B-438AA340471C$"]
:copilot ["^com\\.apple\\.Safari\\.WebApp\\.8693C89E-9B7E-4E3D-A8E1-C2EB22E28784$"]
:webui ["^com\\.apple\\.Safari\\.WebApp\\.2455BCD9-4CA6-415F-80D8-2FA98F05FC97$"]
@ -26,7 +27,9 @@
:wiki ["^com\\.Unite\\.SetiaWiki$"]
:jupyter ["^org\\.jupyter\\.jupyterlab-desktop$"]
:dataspell ["^com\\.jetbrains\\.dataspell$"]
:vikunja ["^com\\.Unite\\.Vikunja$"]}
:vikunja ["^com\\.Unite\\.Vikunja$"]
:tana ["^inc\\.tana\\.desktop$"]
:gfn ["^com\\.nvidia\\.gfnpc\\.mall$"]}
:input-sources {:en {:language "en"}
:ru {:language "ru"}}
@ -86,27 +89,45 @@
]}
{:des "Tab as Hyper(⌘+⌥+^+⇧)"
:rules [[:tab [:!!left_shift] [:!left_command] {:alone :tab}]]}
:rules [:capskey
[:tab :!!Sleft_command]]}
{:des "⌘W->⌘H in Tana"
:rules [:tana [:!Cw :!Ch]]}
{:des "Caps+↑, Caps+↓ to Control+Opt+arrow"
:rules [[:##up_arrow :!TOup_arrow :capskey]
[:##down_arrow :!TOdown_arrow :capskey]
[:##1 :!!1 :capskey]
[:##2 :!!2 :capskey]
[:##3 :!!3 :capskey]
:rules [[:up_arrow :!QESup_arrow :capskey]
[:down_arrow :!QESdown_arrow :capskey]
[:1 :!QE1 :capskey]
[:2 :!QE2 :capskey]
[:4 :!!4 :capskey]
[:!S1 :!QES1 :capskey]
[:!S2 :!QES2 :capskey]
[:!Sup_arrow :!QESm :capskey]
[:!Sdown_arrow :!QESn :capskey]
[:3 :!QE3 :capskey]
[:5 :!TS5 :capskey]
[:equal_sign :!QEequal_sign :capskey]
[:##left_arrow :!!1 :capskey]
[:##right_arrow :!!2 :capskey]]}
{:des "Caps+T to start Kitty, Caps+B->Bing, Caps+G->Bard, Caps+O->Poe, Caps+P->ChatGPT4, Caps+␣->AllGPT"
:rules [:capskey
[:t [[:open "/Applications/kitty.app"] {:input :en}] :!kitty]
[:t [:!Ct {:input :en}] :kitty]
[:r [[:open "/Applications/WezTerm.app"] {:input :en}] :!wezterm]
[:r :!Ct :wezterm]
[:a [[:open "/Applications/Arc.app"] {:input :en}]]
[:r [[:open "/Applications/kitty.app"] {:input :en}] :!kitty]
[:r [:!Ct {:input :en}] :kitty]
[:k [[:open "/Applications/WezTerm.app"] {:input :en}] :!wezterm]
[:k :!Ct :wezterm]
[:a [[:open "/Applications/Arc.app"] {:input :en}] :!arc]
[:a :!Ch :arc]
[:g [:open "/Users/anton/Applications/Gemini.app"] :!gemini]
[:g :!Ch :gemini]
[:t [:open "/Applications/Tana.app"] :!tana]
[:t :!Ch :tana]
[:c [:open "/Users/anton/Applications/Copilot.app"] :!copilot]
[:c :!Ch :copilot]
[:y [:open "/Applications/You.app"] :!youcom]
@ -119,11 +140,8 @@
[:w :!Cw :wiki]
[:open_bracket [:open "/Applications/ChatGPT.app"] :!chatgpt]
[:open_bracket :!Cw :chatgpt]
[:o [:open "/Applications/openai.app"] :!openai]
[:o :!Ch :openai]
[:p [:open "/Users/anton/Applications/webui.app"] :!webui]
[:p :!Ch :webui]
[:i [:open "/Users/anton/Applications/Perplexity.app"] :!perplexity]
[:p :!!p]
[:i [:open "/Applications/Perplexity.app"] :!perplexity]
[:i :!Ch :perplexity]
[:l [:open "/Applications/LibreChat.app"] :!librechat]
[:l :!Ch :librechat]

View File

@ -72,7 +72,7 @@ font_features Menligaturized-Regular -liga
#font_family MesloLGS NF
shell .
allow_remote_control yes
font_size 16
font_size 15
#macos_thicken_font 1
text_composition_strategy 1.7 50
@ -751,7 +751,7 @@ touch_scroll_multiplier 1.58
#: suffix of "c" on the width/height values to have them interpreted
#: as number of cells instead of pixels.
enabled_layouts grid, fat, tall, vertical
enabled_layouts fat, grid, tall, vertical
#: The enabled window layouts. A comma separated list of layout names.
#: The special value all means all layouts. The first listed layout

View File

@ -1,12 +1,12 @@
set -gx PATH /usr/local/opt/coreutils/libexec/gnubin $PATH
set -gx PATH /opt/homebrew/coreutils/libexec/gnubin $PATH
set -gx PATH /opt/homebrew/bin $PATH
set -gx PATH /usr/local/bin $PATH
set -gx PATH /snap/bin $PATH
fish_add_path /opt/homebrew/bin
fish_add_path /opt/homebrew/coreutils/libexec/gnubin
fish_add_path /usr/local/opt/coreutils/libexec/gnubin
fish_add_path /usr/local/bin
fish_add_path /snap/bin
fish_add_path $HOME/.local/bin
fish_add_path $HOME/.cargo/bin
fish_add_path $HOME/.go/bin
set -gx GOPATH $HOME/.go
set -gx PATH $HOME/.local/bin $PATH
set -gx PATH $HOME/.cargo/bin $PATH
set -gx PATH $HOME/.go/bin $PATH
set -gx EDITOR nvim
set fish_color_valid_path
set -g fish_greeting
@ -73,21 +73,9 @@ function winbox
~/dev/winbox/run.sh&
end
function conda
micromamba $argv
end
if [ -e /opt/homebrew/bin/micromamba ]
# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
set -gx MAMBA_EXE "/opt/homebrew/bin/micromamba"
set -gx MAMBA_ROOT_PREFIX "/Users/anton/micromamba"
$MAMBA_EXE shell hook --shell fish --root-prefix $MAMBA_ROOT_PREFIX | source
# <<< mamba initialize <<<
end
if [ -e /home/anton/.nix-profile/etc/profile.d/nix.fish ];
source /home/anton/.nix-profile/etc/profile.d/nix.fish;
if test -e $HOME/.nix-profile/etc/profile.d/nix.fish
source $HOME/.nix-profile/etc/profile.d/nix.fish
end
# The next line updates PATH for the Google Cloud SDK.
@ -96,9 +84,27 @@ if [ -f ~/dev/google-cloud-sdk/path.fish.inc ]
end
direnv hook fish | source
if type -q direnv
direnv hook fish | source
end
if [ -f ~/.config/op/plugins.sh ]
source ~/.config/op/plugins.sh
end
fish_vi_key_bindings
#fish_vi_key_bindings
# bun
set -gx BUN_INSTALL "$HOME/.bun"
fish_add_path $HOME/.bun/bin
if test -f "$HOME/.cargo/env.fish"
source "$HOME/.cargo/env.fish"
end
fish_add_path $HOME/dev/screenpipe/target/debug
# Added by LM Studio CLI (lms)
fish_add_path $HOME/.cache/lm-studio/bin
# Added by OrbStack: command-line tools and integration
# This won't be added again if you remove it.
source ~/.orbstack/shell/init.fish 2>/dev/null || :

View File

@ -7,13 +7,13 @@ local act = wezterm.action
config.scrollback_lines = 5000000
config.enable_scroll_bar = false
config.native_macos_fullscreen_mode = false
config.default_cursor_style = 'BlinkingBar'
-- config.animation_fps = 1
config.front_end = "WebGpu"
config.cursor_blink_ease_in = 'Constant'
config.cursor_blink_ease_out = 'Constant'
config.selection_word_boundary = ' \t\n{}[]()"\'`,;/'
-- This is where you actually apply your config choices
config.ssh_domains = {
@ -29,6 +29,11 @@ config.ssh_domains = {
}
config.keys = {
{
key = 'f',
mods = 'OPT',
action = wezterm.action.ToggleFullScreen,
},
{
key = ',',
mods = 'CMD',
action = act.SpawnCommandInNewTab {
@ -56,14 +61,14 @@ config.keys = {
action = act.DetachDomain { DomainName = 'devhost' },
},
{
key = '"',
key = '|',
mods = 'CMD',
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' },
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' },
},
{
key = 'Enter',
mods = 'CMD',
action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' },
action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' },
},
{
key = 'p',
@ -75,6 +80,9 @@ config.keys = {
config.window_decorations = "RESIZE|INTEGRATED_BUTTONS"
config.initial_cols = 127
config.initial_rows = 67
config.window_background_opacity = 1
config.text_background_opacity = 1
config.macos_window_background_blur = 10
config.quit_when_all_windows_are_closed = false
@ -112,7 +120,7 @@ config.window_frame = {
border_left_width = '1cell',
border_right_width = '0.5cell',
border_bottom_height = '0.25cell',
border_top_height = '1.15cell',
border_top_height = '1.2cell',
border_left_color = '#1c2836',
border_right_color = '#1c2836',
border_bottom_color = '#1c2836',

View File

@ -17,12 +17,46 @@
#Config
{{ if eq .chezmoi.os "darwin" -}}
STEPS=9
{{ else if eq .chezmoi.os "freebsd" -}}
STEPS=9
{{ else if eq .chezmoi.osRelease.id "ubuntu" -}}
STEPS=14
{{ else if eq .chezmoi.osRelease.id "debian" -}}
STEPS=13
{{ else -}}
STEPS=12
{{ end -}}
PAD_LEN=4
BASE_PACKAGES="gnupg curl wget git"
ACT_PACKAGES="ripgrep unzip htop fzf bat gawk jq nnn tmux mc nethogs ngrep mtr gcc"
# Non-interactive mode flags
ASSUME_YES=0
NON_INTERACTIVE=0
SKIP_TIMEZONE=0
SKIP_AUTH_KEYS=0
SKIP_SHELL_CHANGE=0
SKIP_NVIM_BOOTSTRAP=0
while [ $# -gt 0 ]; do
case "$1" in
--yes) ASSUME_YES=1 ;;
--non-interactive) NON_INTERACTIVE=1 ;;
--skip-timezone) SKIP_TIMEZONE=1 ;;
--skip-authorized-keys) SKIP_AUTH_KEYS=1 ;;
--skip-shell-change) SKIP_SHELL_CHANGE=1 ;;
--skip-neovim-bootstrap) SKIP_NVIM_BOOTSTRAP=1 ;;
*) echo "Unknown option: $1"; exit 2 ;;
esac
shift
done
# Timeout portability (macOS has gtimeout via coreutils, not timeout)
TIMEOUT_BIN="$(command -v timeout || command -v gtimeout || true)"
#Colors
Green='\033[0;32m' # Green
Blue='\033[0;34m' # Blue
@ -55,7 +89,8 @@ read
#Setup
TERM_WIDTH_BASE=$(stty size|awk '{print $2}')
TERM_WIDTH_BASE=$(stty size 2>/dev/null | awk '{print $2}')
TERM_WIDTH_BASE=${TERM_WIDTH_BASE:-80}
PADDING=$(printf "%${PAD_LEN}s") # 4 spaces of padding
TERM_WIDTH=$(($TERM_WIDTH_BASE - $PAD_LEN))
USER=$(whoami)
@ -125,9 +160,14 @@ new_line "Update caches and upgrade packages"
{{ else if eq .chezmoi.os "darwin" -}}
if ! type brew; then
if ! command -v brew >/dev/null 2>&1; then
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2>&1|pad
fi
if [ -x /opt/homebrew/bin/brew ]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
elif [ -x /usr/local/bin/brew ]; then
eval "$(/usr/local/bin/brew shellenv)"
fi
brew update 2>&1|pad
{{ else if eq .chezmoi.osRelease.id "fedora" "almalinux" "rocky" -}}
@ -150,7 +190,7 @@ new_line "Install base packages"
sudo pkg install --yes $BASE_PACKAGES py39-pipx direnv 2>&1|pad
{{ else if eq .chezmoi.os "darwin" -}}
brew install -q $BASE_PACKAGES python pipx 2>&1|pad
brew install -q $BASE_PACKAGES python pipx direnv goku 2>&1|pad
{{ else if eq .chezmoi.osRelease.id "fedora" -}}
sudo dnf install $BASE_PACKAGES direnv kitty-terminfo util-linux-user pipx -y 2>&1|pad
@ -221,12 +261,24 @@ sudo pkg install --yes $ACT_PACKAGES neovim fish atuin lazygit fd-find pam_ssh_a
brew install -q fish neovim $ACT_PACKAGES atuin jump fd sk dust lazygit 2>&1|pad
{{ else if eq .chezmoi.osRelease.id "fedora" -}}
sudo dnf install neovim fish $ACT_PACKAGES fd-find skim pam_ssh_agent_auth -y 2>&1|pad
PAM_SSH_PKG=""
if dnf list --quiet pam_ssh_agent_auth >/dev/null 2>&1; then
PAM_SSH_PKG="pam_ssh_agent_auth"
else
echo -e "${Yello}WARNING: pam_ssh_agent_auth not available in repos. sudo via SSH agent won't work.${NC}"
fi
sudo dnf install neovim fish $ACT_PACKAGES fd-find ${PAM_SSH_PKG:+$PAM_SSH_PKG} -y 2>&1|pad
new_line "via NIX"
nix-env -iA nixpkgs.atuin nixpkgs.jump nixpkgs.du-dust nixpkgs.lazygit 2>&1|pad
nix-env -iA nixpkgs.atuin nixpkgs.jump nixpkgs.du-dust nixpkgs.lazygit nixpkgs.skim 2>&1|pad
{{ else if eq .chezmoi.osRelease.id "almalinux" "rocky" -}}
sudo dnf install neovim fish $ACT_PACKAGES fd-find pam_ssh_agent_auth -y 2>&1|pad
PAM_SSH_PKG=""
if dnf list --quiet pam_ssh_agent_auth >/dev/null 2>&1; then
PAM_SSH_PKG="pam_ssh_agent_auth"
else
echo -e "${Yello}WARNING: pam_ssh_agent_auth not available in repos. sudo via SSH agent won't work.${NC}"
fi
sudo dnf install neovim fish $ACT_PACKAGES fd-find ${PAM_SSH_PKG:+$PAM_SSH_PKG} -y 2>&1|pad
new_line "via NIX"
nix-env -iA nixpkgs.fish nixpkgs.neovim nixpkgs.direnv nixpkgs.atuin nixpkgs.jump nixpkgs.du-dust nixpkgs.lazygit 2>&1|pad
@ -238,7 +290,7 @@ new_line "via NIX"
{{ else if eq .chezmoi.osRelease.id "debian" "ubuntu" -}}
sudo apt-get install fish -y 2>&1|pad
sudo apt-get install neovim -y 2>&1|pad
sudo apt-get install $ACT_PACKAGES libpam-ssh-agent-auth -y 2>&1|pad
sudo apt-get install $ACT_PACKAGES fd-find libpam-ssh-agent-auth -y 2>&1|pad
new_line "via NIX"
nix-env -iA nixpkgs.neovim nixpkgs.lazygit nixpkgs.jump nixpkgs.skim nixpkgs.du-dust nixpkgs.atuin 2>&1|pad
@ -251,18 +303,22 @@ mkdir ~/.ssh 2>/dev/null || true
cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.old 2>/dev/null || true
##print only unique lines
cat ~/.ssh/authorized_keys.old <(echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdqIDeRKDOh7NQDcqnmLH/6M0ys7Wt/SEnF6ZYqroiH") 2>/dev/null | awk '!seen[$1]++' > ~/.ssh/authorized_keys
cat ~/.ssh/authorized_keys.old <(echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPdqIDeRKDOh7NQDcqnmLH/6M0ys7Wt/SEnF6ZYqroiH") 2>/dev/null | awk 'NF && !seen[$0]++' > ~/.ssh/authorized_keys
if [ "$SKIP_NVIM_BOOTSTRAP" -eq 0 ]; then
new_line "Waiting for neovim plugins and lsm compilations..."
timeout 60s nvim --headless -c "sleep 1" -c ":Lazy! sync" -c "sleep 10" -c "qa" 2>&1|pad
timeout 60s nvim --headless -c "sleep 1" -c ":MasonUpdate" -c "sleep 5" -c "qa" 2>&1|pad
timeout 60s nvim --headless -c "sleep 1" -c ":MasonInstall lua-language-server" -c "sleep 5" -c "qa" 2>&1|pad
timeout 60s nvim --headless -c "sleep 1" -c ":MasonInstall rust-analyzer" -c "sleep 5" -c "qa" 2>&1|pad
timeout 60s nvim --headless -c "sleep 1" -c ":TSUpdate" -c "sleep 5" -c "qa" 2>&1|pad
${TIMEOUT_BIN:+$TIMEOUT_BIN 60s} nvim --headless -c "sleep 1" -c ":Lazy! sync" -c "sleep 10" -c "qa" 2>&1|pad
${TIMEOUT_BIN:+$TIMEOUT_BIN 60s} nvim --headless -c "sleep 1" -c ":MasonUpdate" -c "sleep 5" -c "qa" 2>&1|pad
${TIMEOUT_BIN:+$TIMEOUT_BIN 60s} nvim --headless -c "sleep 1" -c ":MasonInstall lua-language-server" -c "sleep 5" -c "qa" 2>&1|pad
${TIMEOUT_BIN:+$TIMEOUT_BIN 60s} nvim --headless -c "sleep 1" -c ":MasonInstall rust-analyzer" -c "sleep 5" -c "qa" 2>&1|pad
${TIMEOUT_BIN:+$TIMEOUT_BIN 60s} nvim --headless -c "sleep 1" -c ":TSUpdate" -c "sleep 5" -c "qa" 2>&1|pad
fi
{{ if eq .chezmoi.os "linux" -}}
new_line "Setting timezone to Moscow"
sudo timedatectl set-timezone Europe/Moscow
if [ "$SKIP_TIMEZONE" -eq 0 ]; then
new_line "Setting timezone to Moscow"
sudo timedatectl set-timezone Europe/Moscow
fi
{{ end -}}
new_line "Installing shell-gpt"
@ -270,7 +326,7 @@ pipx install shell-gpt 2>&1|pad
new_line "Install fisher plugin manager for fish"
## Install fisher plugin manager for fish, so that we may update in after plugin list sync by chezmoi
if ! fish -c fisher &>/dev/null
if ! fish -c "type -q fisher" &>/dev/null
then
fish -c "curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher update" 2>&1|pad
fi