mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-15 14:42:37 +00:00
Compare commits
482 Commits
lazy-nvim
...
737f9bfb2c
| Author | SHA1 | Date | |
|---|---|---|---|
|
737f9bfb2c
|
|||
|
654c61a460
|
|||
|
6f14542b7d
|
|||
|
63e698acb5
|
|||
|
aec01d5876
|
|||
|
95ffc9fa44
|
|||
|
b45503717f
|
|||
|
8acc2e6647
|
|||
|
f5705e9809
|
|||
|
eda3213f72
|
|||
|
d21e9931eb
|
|||
|
ed76943b79
|
|||
|
4909aa1fcb
|
|||
|
fcfbfac7dd
|
|||
|
281c26ed71
|
|||
|
cb479a5370
|
|||
|
32bdafff4f
|
|||
|
1006821a9c
|
|||
|
3b89eb4877
|
|||
|
45fa5196a7
|
|||
|
f94d724d67
|
|||
|
a6fcc8a460
|
|||
|
3799a81f05
|
|||
|
97ed707936
|
|||
|
|
6aee095859 | ||
|
|
461d06f681 | ||
|
|
2f626d4664 | ||
| b87348da96 | |||
|
4fcd2f43fd
|
|||
|
d1dffb632f
|
|||
|
1196849c3b
|
|||
|
e77b3e7535
|
|||
|
ee2898053b
|
|||
|
f1202d77f3
|
|||
|
087d7963e8
|
|||
|
8b25509344
|
|||
|
0034ac6d87
|
|||
|
5c6409c2e9
|
|||
|
8a63efd6cf
|
|||
|
7d4a0714d0
|
|||
|
b454c5d01d
|
|||
|
e003be5bee
|
|||
|
0bb288b3d6
|
|||
|
23a5dc0bdc
|
|||
|
72ff2e6316
|
|||
|
390230e532
|
|||
|
a006539bf1
|
|||
|
6332eafea5
|
|||
|
933ce337a1
|
|||
|
ae73074f6a
|
|||
|
63c8645051
|
|||
|
aec425c7d2
|
|||
|
fa6a482f2f
|
|||
|
dff77ae065
|
|||
|
bac516d446
|
|||
|
4674b132f3
|
|||
|
fd22a4ab4a
|
|||
|
18fce8e2bb
|
|||
|
0922f7578f
|
|||
|
335b60f43c
|
|||
|
99110dea2a
|
|||
|
2eb831e565
|
|||
|
53c439a418
|
|||
|
77c168cc99
|
|||
|
cfc846e2f7
|
|||
|
55d7199315
|
|||
|
5ddf6c3927
|
|||
|
dd9c018f99
|
|||
|
1eea0b84a7
|
|||
|
8d21e9a9fe
|
|||
|
52b78aadf8
|
|||
|
7178a12893
|
|||
|
931903d18c
|
|||
|
7024182f49
|
|||
|
7aec9d1610
|
|||
|
5946a177fb
|
|||
|
7c08fec16b
|
|||
|
78e40a9401
|
|||
|
b5198a5df6
|
|||
|
54fe479ee1
|
|||
|
503df7ce33
|
|||
|
009efbb952
|
|||
|
b1fb505ac5
|
|||
|
6721b2a8c5
|
|||
|
a4a560eb3d
|
|||
|
a7e6bc893c
|
|||
|
90c97263cb
|
|||
|
dccb1ca0a3
|
|||
|
f729bedc99
|
|||
|
4edf92e034
|
|||
|
5e8fbbcbab
|
|||
|
6d6f24467f
|
|||
|
cc47106e74
|
|||
|
bad3282dc5
|
|||
|
33e6683369
|
|||
|
c38348e62c
|
|||
|
55257e7c28
|
|||
|
318e7c7f95
|
|||
|
b6ce570f1d
|
|||
|
f911bfb7f1
|
|||
|
d32d0cf64f
|
|||
|
1def0356d7
|
|||
|
4d4b8c9945
|
|||
|
cedb6d8ab7
|
|||
|
eae42b40b8
|
|||
|
42e962d439
|
|||
|
27767d3948
|
|||
|
8bb6d35acd
|
|||
|
50191dde0c
|
|||
|
d4f85a6786
|
|||
|
1ee8cad635
|
|||
|
93fe3b6864
|
|||
|
e23e861101
|
|||
|
45bcf8771c
|
|||
|
ab2f4356a3
|
|||
|
26bc6635af
|
|||
|
0b166ad757
|
|||
|
eb4c6990ec
|
|||
|
f37b5f1db2
|
|||
|
dccf54e115
|
|||
|
c88d070b86
|
|||
|
1305b6708c
|
|||
|
e15a0ef007
|
|||
|
6a14830189
|
|||
|
ede7e4288b
|
|||
|
026a998fc4
|
|||
|
a7033b749e
|
|||
|
7d4e518479
|
|||
|
2d878f8c63
|
|||
|
cefdf21fc8
|
|||
|
c89b0e307c
|
|||
|
c383471903
|
|||
|
ba9a343452
|
|||
|
d78ec7f853
|
|||
|
4ae6389ae8
|
|||
|
e60f049f10
|
|||
|
a0a958defb
|
|||
|
b9481443a7
|
|||
|
a9f7317e30
|
|||
|
07272176cd
|
|||
|
51e2173084
|
|||
|
4314d28c01
|
|||
|
41760ac195
|
|||
|
edc3e9c74e
|
|||
|
eddb346e30
|
|||
|
1a3442dee7
|
|||
|
a05e8f41bd
|
|||
|
c6a0056ad6
|
|||
|
d5ab230d3f
|
|||
|
474746e296
|
|||
|
1a729e7281
|
|||
|
5aceabd878
|
|||
|
ea6737e55c
|
|||
|
28903f8078
|
|||
|
e5baef9bac
|
|||
|
9ae31715a3
|
|||
|
15b488f3a5
|
|||
|
6946389fac
|
|||
|
7903860e32
|
|||
|
8ddf08eb4b
|
|||
|
6b1e1412c3
|
|||
|
2ee186b8a2
|
|||
|
a42aad3fec
|
|||
|
35b7dca7e4
|
|||
|
129f452045
|
|||
|
824d3e20da
|
|||
|
cf7903e9ed
|
|||
|
60656734f1
|
|||
|
d277706034
|
|||
|
1e94c4181f
|
|||
|
bef4bbea5f
|
|||
|
460d9bb180
|
|||
|
2ea4540cba
|
|||
|
73d4da7106
|
|||
|
6107a658bb
|
|||
|
29dc54f5ae
|
|||
|
f10875412a
|
|||
|
379319dac7
|
|||
|
f660c0fa23
|
|||
|
81428fde31
|
|||
|
b7edc19958
|
|||
|
8bc955b12f
|
|||
| 28c71ee752 | |||
|
920d87f8e0
|
|||
|
d90146fde3
|
|||
|
40fe096baa
|
|||
|
9dd5559af5
|
|||
|
c96dd116c9
|
|||
|
92fbde1e00
|
|||
|
b77180638a
|
|||
|
a06f1cc2a6
|
|||
|
2a54c8c599
|
|||
|
dddcb877d6
|
|||
|
0bd1e6242d
|
|||
|
e8de865417
|
|||
|
3825ef78ff
|
|||
|
81582b2194
|
|||
|
9363055e5a
|
|||
|
3230fb7007
|
|||
|
6f11d99043
|
|||
|
802ea082c8
|
|||
|
9cb3792223
|
|||
|
3041d0a5e5
|
|||
|
ecf3e98e25
|
|||
|
cbe4ebc538
|
|||
|
511c7307b6
|
|||
|
30ac84ecac
|
|||
|
547cc41436
|
|||
|
3fd33cd92e
|
|||
|
8c83898abf
|
|||
|
3fc1054206
|
|||
|
6c6c5c507d
|
|||
|
b627d68ae3
|
|||
|
d8feb9535d
|
|||
|
73973aed67
|
|||
|
534a902512
|
|||
|
5dc1b33da8
|
|||
|
4624fa48d3
|
|||
|
fa0cf72ae0
|
|||
|
e10715940f
|
|||
|
a5ca5b4f63
|
|||
|
26b98e444d
|
|||
|
3796572324
|
|||
|
3382c4b165
|
|||
|
afdedc5acf
|
|||
|
ad5ade6679
|
|||
|
994ff17ceb
|
|||
|
ccc2367bc3
|
|||
|
7f98d4046f
|
|||
|
98804b3aa5
|
|||
|
53db3f3e8f
|
|||
|
86422bd68b
|
|||
|
95139d50ba
|
|||
|
15b1aded69
|
|||
|
dcac27db37
|
|||
|
a71ae05e5b
|
|||
|
9a1b00610e
|
|||
|
4f47e288ea
|
|||
|
963fcd2810
|
|||
|
9ead148f34
|
|||
|
0d8364eaf9
|
|||
|
4d42fa4dab
|
|||
|
f23adad4b0
|
|||
|
44f5c35d38
|
|||
|
25ddde6e12
|
|||
|
4a023203bd
|
|||
|
5f07ffede9
|
|||
|
6cdf85b4e3
|
|||
|
876e7f6d0e
|
|||
|
b78fb64bd3
|
|||
|
ee7854eafc
|
|||
|
ef961fcfa8
|
|||
|
6d44edc94d
|
|||
|
381d272da1
|
|||
|
38e77e8fcd
|
|||
|
2a5c2cdc58
|
|||
|
0949f9e9fa
|
|||
|
2c7bd9123f
|
|||
|
f325d61131
|
|||
|
ae13738a4d
|
|||
|
6c84428179
|
|||
|
d27f2ad490
|
|||
|
ea7033bea8
|
|||
|
a835414bd1
|
|||
|
82341d87df
|
|||
|
9e48ba0a77
|
|||
|
3518ba059f
|
|||
|
c8e869c853
|
|||
|
b1633707c2
|
|||
|
5f45954d98
|
|||
|
4fb2b70004
|
|||
|
a86116056f
|
|||
|
f43cd2c543
|
|||
|
48d0e16f6a
|
|||
|
27d66acb6e
|
|||
|
af77a986e2
|
|||
|
1dd7460ac4
|
|||
|
3badd6a046
|
|||
|
0a9e065b4d
|
|||
|
8ac60b4196
|
|||
|
7f26013d1c
|
|||
|
42cef6e0c4
|
|||
|
241c43767c
|
|||
|
4b39a3eb95
|
|||
|
1e427911ac
|
|||
|
0c15983dae
|
|||
|
68d3f5a183
|
|||
|
d9ea8d80c6
|
|||
|
eed9c143ea
|
|||
|
d06648864e
|
|||
|
9bb33cfaee
|
|||
|
917ac3ff2a
|
|||
|
23bd867430
|
|||
|
2e3c750979
|
|||
|
eff01f42fd
|
|||
|
8a17c5ad80
|
|||
|
d8891e40fc
|
|||
|
f6f45a8c58
|
|||
|
3b75e6e918
|
|||
|
2813d5b56d
|
|||
|
b3476a4af2
|
|||
|
49524fef66
|
|||
|
15eedbfd1e
|
|||
|
365baec18a
|
|||
|
051a418d0b
|
|||
|
f7484147f7
|
|||
|
2334f33cdb
|
|||
|
33c011067f
|
|||
|
2d687e8c61
|
|||
|
377f5849f7
|
|||
|
37d8e4c678
|
|||
|
edf62341df
|
|||
|
9f9854e9d5
|
|||
|
ef45abdd16
|
|||
|
23c4afabbc
|
|||
|
329589612b
|
|||
|
87b901f6c0
|
|||
|
c0c5e92184
|
|||
|
728c77a2d2
|
|||
|
319a63ddcc
|
|||
|
6a6c6ace8a
|
|||
|
4dbd2864c1
|
|||
|
7b75cca4d7
|
|||
|
be1ab62d8f
|
|||
|
a379a9ce60
|
|||
|
3c172a4597
|
|||
|
3f91ec849d
|
|||
|
326ce37b02
|
|||
|
54b6377407
|
|||
|
61258c8a32
|
|||
|
ffcb53f6e2
|
|||
|
9c6d5a1e91
|
|||
|
a344d29ca4
|
|||
|
a70e1a70b4
|
|||
|
53bad22017
|
|||
|
8a9a378f18
|
|||
|
65e8de5b75
|
|||
|
b860ff8858
|
|||
|
6e33524859
|
|||
|
6599d90e39
|
|||
|
6158763985
|
|||
|
9b8e30bde3
|
|||
|
094a77c22e
|
|||
|
91e05a1345
|
|||
|
d9445d4e89
|
|||
|
87594a5d96
|
|||
|
6759e4e85b
|
|||
|
712b209c86
|
|||
| 19fbce7dd1 | |||
| 48b4278ae9 | |||
| 47930ad6da | |||
| a9d76c5107 | |||
| c4da654111 | |||
| 557da77caf | |||
| 01a7c4845f | |||
| 1ae41a0fac | |||
| a696e4e658 | |||
| 6527ad88df | |||
| cbf26b10e7 | |||
| a9d7f24d24 | |||
| 2d39db3401 | |||
| 1e26df8ef0 | |||
| d653110ec2 | |||
| 128dd695b9 | |||
| a2558e0296 | |||
| 19285a539d | |||
| 6c0eda81d5 | |||
| 842bf84c25 | |||
| f6bad2b0f5 | |||
| 47ea7ba28a | |||
| 54408de2cf | |||
| a2e6d3e825 | |||
| 090b0fb2f3 | |||
| 2bab3d516c | |||
| 9ef283fda1 | |||
| 881905f203 | |||
| 55be390f7f | |||
| 3763775bb6 | |||
| b61004554a | |||
| 0f8e56394d | |||
| 2434fb52e2 | |||
| cd8808ab74 | |||
| fb235ab19d | |||
| 1db62e3457 | |||
| 411f660cbb | |||
| 5572c8f0e3 | |||
| d258f14376 | |||
| 7660587a33 | |||
| aafdef33e3 | |||
| bcd9742b37 | |||
| c0714cb010 | |||
| 8e20f20b4f | |||
| eae33a6705 | |||
| 17bc6ef41b | |||
| 9a05bd20d8 | |||
| bc342d28c8 | |||
| 148916909a | |||
| f362789006 | |||
| 367cae9748 | |||
| 8e46610a7b | |||
| ff870c0f1b | |||
| d34059c34d | |||
| 016e4d459f | |||
| cead1bc85e | |||
| c296a1492f | |||
| 892966d27a | |||
| b53d239cd3 | |||
| cd95365149 | |||
| ba8a64a447 | |||
| d15d3b406f | |||
| 9cc99ff03d | |||
| d3a383102b | |||
| c1b1381f24 | |||
| 0f58b00f97 | |||
| 05b36efeea | |||
| 30ff7b7652 | |||
| a3c3ed1d23 | |||
|
|
0294c4e5bc | ||
|
|
be24adf2aa | ||
|
|
2b4ecf3939 | ||
|
|
ce99e7dd76 | ||
| 3fcb57d090 | |||
| 346ff30f4a | |||
| a8e8228696 | |||
| 2f6630b272 | |||
|
|
a328615cbf | ||
|
|
385c17811d | ||
| 92a4571bff | |||
| 3a5adc07ad | |||
|
|
fa02ac9889 | ||
|
|
e3ff780999 | ||
| 64b5e4b21c | |||
| 00749e3be7 | |||
|
|
7690713f46 | ||
|
|
5927ef7fb3 | ||
| e90c491a47 | |||
| f55eca41f0 | |||
| 6cb0744e92 | |||
|
|
5555c14327 | ||
|
|
353b669f27 | ||
|
|
f0a5d85dea | ||
| f643b45432 | |||
| 427fd1d063 | |||
| ca0c0b1ca0 | |||
|
|
19229a2b90 | ||
|
|
e8772df72e | ||
|
|
660ff7d94d | ||
|
|
7c5c642ae5 | ||
|
|
742f26a81c | ||
|
|
7f13161948 | ||
|
|
00c5e0cca6 | ||
|
|
c930fb7e7a | ||
| be0bb66e09 | |||
| 8d68b1033a | |||
| 4b37f8afcb | |||
|
|
fcf8c83beb | ||
|
|
0e77478075 | ||
| a8c4191d96 | |||
| 56cfaf4360 | |||
| 35a5cf15c5 | |||
| 3896bab4fb | |||
|
|
9acb92154a | ||
|
|
e519322fb2 | ||
| aa8e3847a2 | |||
| 2de739ec68 | |||
| 1d08232c52 | |||
| 607f1b20b9 | |||
|
|
cc6dd26184 | ||
|
|
220dddc930 | ||
| 966c050875 | |||
| 275baa228c | |||
|
|
437b4f5002 | ||
|
|
ab1a45d421 | ||
|
|
663673dfd3 | ||
|
|
7673963158 | ||
|
|
433c6cf59f | ||
|
|
8d396ff46f | ||
| 6204b5f7b3 | |||
| 26f78217f7 | |||
| 42827b7154 | |||
| e3dd7a80f6 | |||
|
|
5cbb1affd5 |
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,7 +1,5 @@
|
||||
**/.DS_Store
|
||||
**/Brewfile.lock.json
|
||||
**/plugins
|
||||
**/plugin
|
||||
**/.zcompdump*
|
||||
**/.zcompdump
|
||||
**/.zcompcache
|
||||
@@ -11,4 +9,12 @@
|
||||
**/completions/*
|
||||
**/.netrwhist
|
||||
**/.zshrc-local
|
||||
nvim/lazy-lock.json
|
||||
facebook-bot/config/*
|
||||
facebook-bot/config/*
|
||||
**/tmp
|
||||
ansible/tmp/*
|
||||
ansible/collections/*
|
||||
ansible/galaxy_cache/*
|
||||
ansible/galaxy_token
|
||||
**/lazy-lock.json
|
||||
**/*.target.wants/*
|
||||
|
||||
82
.luarc.json
Normal file
82
.luarc.json
Normal file
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"workspace.library": [
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/types/stable",
|
||||
"/opt/homebrew/Cellar/neovim/0.9.2/share/nvim/runtime/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/bufdelete.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/diffview.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lsp_signature.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neo-tree.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope-fzf-native.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lspconfig/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-cmp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter-textobjects/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nui.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nightfox.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-buffer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-path/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lsp-installer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-cmdline/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lazy.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-spell/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/wrapping.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-calc/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/which-key.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason-lspconfig.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/formatter.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-nvim-lsp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-emoji/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-web-devicons/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/plenary.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neogit/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/overseer.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lualine.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lspkind-nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/swift.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/toggleterm.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/types/stable",
|
||||
"/opt/homebrew/Cellar/neovim/0.9.2/share/nvim/runtime/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/bufdelete.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/diffview.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lsp_signature.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neo-tree.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neodev.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope-fzf-native.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lspconfig/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-cmp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter-textobjects/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nui.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nightfox.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-buffer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-path/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-treesitter/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-lsp-installer/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-cmdline/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lazy.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-spell/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/wrapping.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-calc/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/which-key.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason-lspconfig.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/formatter.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-nvim-lsp/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/cmp-emoji/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/nvim-web-devicons/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/plenary.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/neogit/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/overseer.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lualine.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/mason.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/telescope.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/lspkind-nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/swift.nvim/lua",
|
||||
"/Users/michael/.local/share/m-housh/lazy/toggleterm.nvim/lua",
|
||||
"/Users/michael/.dotfiles/nvim/m-housh/lua",
|
||||
"/Users/michael/.dotfiles/nvim/m-housh/lua",
|
||||
"${3rd}/luv/library",
|
||||
"${3rd}/luassert/library"
|
||||
]
|
||||
}
|
||||
3
.markdownlint.jsonc
Normal file
3
.markdownlint.jsonc
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"MD013": { "code_blocks": false }
|
||||
}
|
||||
2
.prettierrc.yaml
Normal file
2
.prettierrc.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
proseWrap: always
|
||||
printWidth: 80
|
||||
35
Makefile
35
Makefile
@@ -1,35 +0,0 @@
|
||||
BREWPATH ?= /opt/homebrew/bin
|
||||
BREW = $(BREWPATH)/brew
|
||||
DOTS = $(BREWPATH)/dots
|
||||
APPDIR ?= /Applications
|
||||
|
||||
# This does not work inside of a make command.
|
||||
bootstrap-homebrew:
|
||||
xcode-select --install || true
|
||||
source "$(PWD)/scripts/install-brew.sh"
|
||||
|
||||
# Install the dots application manager.
|
||||
install-dots:
|
||||
"$(BREW)" tap m-housh/formula
|
||||
"$(BREW)" install dots
|
||||
|
||||
bootstrap-minimal: bootstrap-homebrew install-dots
|
||||
"$(DOTS)" install --minimal "$(APPDIR)"
|
||||
|
||||
bootstrap: bootstrap-homebrew install-dots
|
||||
"$(DOTS)" install --full "$(APPDIR)"
|
||||
|
||||
# make a local zsh configuration file, to extend
|
||||
# the normal .zshrc for configuration that is only
|
||||
# relevant on the local machine.
|
||||
zshrc-local:
|
||||
# check if a file already exists or not and create it if not.
|
||||
test -f "$(PWD)/zsh/config/.zshrc-local" \
|
||||
|| echo "#!/usr/bin/env zsh" > "$(PWD)/zsh/config/.zshrc-local"
|
||||
# add symlink to appropriate location if doesn't exist.
|
||||
test -L "$(HOME)/.config/zsh/.zshrc-local" \
|
||||
|| ln -sfv "$(PWD)/zsh/config/.zshrc-local" "$(HOME)/.config/zsh/"
|
||||
# open the file to edit.
|
||||
vim "$(PWD)/zsh/config/.zshrc-local"
|
||||
|
||||
default: bootstrap
|
||||
32
TODO.md
32
TODO.md
@@ -1,4 +1,32 @@
|
||||
# TODO
|
||||
|
||||
- Remove brewfiles and use the `dots` app instead.
|
||||
- Add helix to `dots` app.
|
||||
- Add zsh functions to dots cli manager.
|
||||
- Add tmux plugins to dots cli manager.
|
||||
- Add tmux-powerline linking to `dots` cli manager.
|
||||
- Clean up zet commands, maybe make a gum / fzf filter script.
|
||||
- Update README to reflect ansible installation
|
||||
- Update ansible to do gpg installation.
|
||||
- Update ansible to include sketchybar.
|
||||
|
||||
# Arch Todos
|
||||
|
||||
- Separate scripts that are used for configurations / store them somewhere aside
|
||||
from `~/.local/bin`
|
||||
- Clipse didn't work when installed on a new machine when I try to use the
|
||||
config in the dotfiles, but works if I use the default config. Need to explore
|
||||
why (current thoughts are it has to do with creating the
|
||||
clipboard_history.json file and not letting clipse do it automatically).
|
||||
- Set sddm login theme, currently it doesn't allow me to echo values into the
|
||||
/etc/sddm.conf file, also need to edit the theme in
|
||||
`/usr/share/sddm/themes/catppuccin-mocha/theme.conf` to use the wallpaper as a
|
||||
background image.
|
||||
- Note: The background needs to be copied into the theme's background
|
||||
directory. It didn't seem to work when I just set the path to somewhere in
|
||||
my home directory.
|
||||
- Add script to generate yubikey authentication using the pam-u2f module
|
||||
[documentation](https://wiki.archlinux.org/title/Universal_2nd_Factor).
|
||||
- Note: that the directory this is stored in MUST be ~/.config/Yubico (I tried
|
||||
using ~/.config/yubico and it didn't work)
|
||||
- Move keyboard (kanata) systemd service to be started as a '--user' service, as
|
||||
it seems to not work when used on a desktop (mac mini) vs. laptop.
|
||||
- Add neomutt configuration files into the repo (or probably a private repo)
|
||||
|
||||
29
bootstrap
Executable file
29
bootstrap
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Bootstraps a new machine, installing configuration, packages, and webapps.
|
||||
#
|
||||
|
||||
if [ -z "$DEV_ENV" ]; then
|
||||
echo "env var DEV_ENV needs to be present"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# if i just did DEV_ENV=$(pwd) ./run then this is needed for the rest of the
|
||||
# scripts
|
||||
export DEV_ENV="$DEV_ENV"
|
||||
|
||||
args=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
if [[ "$1" =~ dry ]]; then
|
||||
args="--dry-run"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Args to bootstrap scripts: $args"
|
||||
echo "Installing packages may require your password multiple times."
|
||||
|
||||
echo "Running packages" && $DEV_ENV/run "$args"
|
||||
echo "Installing configuration" && $DEV_ENV/dev-env "$args"
|
||||
echo "Installing webapps" && $DEV_ENV/webapp "$args"
|
||||
echo "Starting system services" && $DEV_ENV/system "$args"
|
||||
158
dev-env
Executable file
158
dev-env
Executable file
@@ -0,0 +1,158 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Adapted from https://github.com/ThePrimeagen/dev/blob/master/dev-env
|
||||
#
|
||||
# Copies configuration files to their appropriate places.
|
||||
|
||||
dry_run="0"
|
||||
|
||||
if [ -z "$XDG_CONFIG_HOME" ]; then
|
||||
echo "no xdg config home"
|
||||
echo "using ~/.config"
|
||||
XDG_CONFIG_HOME=$HOME/.config
|
||||
fi
|
||||
|
||||
if [ -z "$XDG_DATA_HOME" ]; then
|
||||
echo "no xdg data home"
|
||||
echo "using ~/.local/share"
|
||||
XDG_DATA_HOME=$HOME/.local/share
|
||||
fi
|
||||
|
||||
if [ -z "$DEV_ENV" ]; then
|
||||
echo "env var DEV_ENV needs to be present"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $1 =~ ^--dry ]]; then
|
||||
dry_run="1"
|
||||
fi
|
||||
|
||||
log() {
|
||||
if [[ $dry_run == "1" ]]; then
|
||||
echo "[DRY_RUN]: $1"
|
||||
else
|
||||
echo "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
log "env: $DEV_ENV"
|
||||
|
||||
# Removes a destination directory and copies all files to the destination.
|
||||
update_dirs() {
|
||||
log "copying over files from: $1"
|
||||
pushd $1 &>/dev/null
|
||||
(
|
||||
# Copy everything except systemd, share, and zsh folders, they need treated differently.
|
||||
configs=$(
|
||||
find . -mindepth 1 -maxdepth 1 -type d \
|
||||
\( -name "systemd" -o -name "zsh" -o -name "share" -o -name "scripts" -o -name "kanata" \) \
|
||||
-prune -o -type d -print
|
||||
)
|
||||
for c in $configs; do
|
||||
directory=${2%/}/${c#./}
|
||||
log " removing: rm -rf $directory"
|
||||
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
rm -rf $directory
|
||||
fi
|
||||
|
||||
log " copying env: cp $c $2"
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
cp -r ./$c $2
|
||||
fi
|
||||
done
|
||||
|
||||
)
|
||||
popd &>/dev/null
|
||||
}
|
||||
|
||||
# Removes a destination file and copies a single file to the destination.
|
||||
copy() {
|
||||
log "removing: $2"
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
rm $2 &>/dev/null
|
||||
fi
|
||||
log "copying: $1 to $2"
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
cp $1 $2
|
||||
fi
|
||||
}
|
||||
|
||||
# Copy all files from a directory into another directory.
|
||||
copy_files() {
|
||||
log "copying over files from: $1"
|
||||
pushd "$1" &>/dev/null || exit 1
|
||||
(
|
||||
for f in $(find . -mindepth 1 -maxdepth 1 -type f); do
|
||||
|
||||
declare dest
|
||||
dest="$2/$(basename "$f")"
|
||||
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
rm -rf $dest >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
log " copying env: cp $f $dest"
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
cp $f $dest
|
||||
fi
|
||||
done
|
||||
)
|
||||
popd &>/dev/null || exit 1
|
||||
}
|
||||
|
||||
############################## MAIN ##############################
|
||||
|
||||
# CONFIG
|
||||
update_dirs $DEV_ENV/env/.config $XDG_CONFIG_HOME
|
||||
update_dirs $DEV_ENV/env/.local $HOME/.local
|
||||
|
||||
# SCRIPTS
|
||||
mkdir -p ~/.local/scripts/{hypr,utils} >/dev/null 2>&1
|
||||
mkdir -p ~/.local/scripts/utils/kanatactl >/dev/null 2>&1
|
||||
update_dirs $DEV_ENV/env/.local/scripts/hypr $HOME/.local/scripts/hypr
|
||||
copy_files "$DEV_ENV/env/.local/scripts/utils/kanatactl" "$HOME/.local/scripts/utils/kanatactl"
|
||||
copy_files $DEV_ENV/env/.local/scripts $HOME/.local/scripts
|
||||
|
||||
# SYSTEMD
|
||||
mkdir -p $XDG_CONFIG_HOME/systemd/user >/dev/null 2>&1
|
||||
copy_files $DEV_ENV/env/.config/systemd/user $XDG_CONFIG_HOME/systemd/user
|
||||
|
||||
# ZSH
|
||||
# NOTE: This keeps from clobbering zsh history and plugins vs. wiping the entire directory and
|
||||
# copying configuration.
|
||||
copy $DEV_ENV/env/.zshenv $HOME/.zshenv
|
||||
mkdir -p $XDG_CONFIG_HOME/zsh >/dev/null 2>&1
|
||||
update_dirs $DEV_ENV/env/.config/zsh $XDG_CONFIG_HOME/zsh # copies sup-directories.
|
||||
copy_files $DEV_ENV/env/.config/zsh $XDG_CONFIG_HOME/zsh # copies files in the root directory.
|
||||
|
||||
# TMUX
|
||||
copy $DEV_ENV/env/.tmux.conf $HOME/.tmux.conf
|
||||
|
||||
# GPG
|
||||
mkdir $HOME/.gnupg >/dev/null 2>&1
|
||||
copy_files $DEV_ENV/env/.gnupg $HOME/.gnupg
|
||||
|
||||
# Wallpapers
|
||||
mkdir $HOME/wallpapers >/dev/null 2>&1
|
||||
copy_files $DEV_ENV/env/wallpapers $HOME/wallpapers
|
||||
|
||||
# MISC
|
||||
mkdir $HOME/Pictures >/dev/null 2>&1
|
||||
mkdir -p $XDG_DATA_HOME/clipse/tmp_files
|
||||
copy $DEV_ENV/dev-env $HOME/.local/scripts/dev-env
|
||||
|
||||
mkdir -p $XDG_DATA_HOME/applications/icons
|
||||
copy_files $DEV_ENV/env/.local/share/applications $XDG_DATA_HOME/applications
|
||||
copy_files $DEV_ENV/env/.local/share/applications/icons $XDG_DATA_HOME/applications/icons
|
||||
|
||||
# Custom package builds.
|
||||
mkdir $HOME/pkgbuilds
|
||||
update_dirs $DEV_ENV/env/pkgbuilds $HOME/pkgbuilds
|
||||
|
||||
if [[ $dry_run == "0" ]]; then
|
||||
systemctl --user daemon-reload
|
||||
hyprctl reload
|
||||
espanso service restart
|
||||
exec zsh -l
|
||||
fi
|
||||
35
env/.config/clipse/config.json
vendored
Normal file
35
env/.config/clipse/config.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"allowDuplicates": false,
|
||||
"historyFile": "$XDG_DATA_HOME/clipse/clipboard_history.json",
|
||||
"maxHistory": 50,
|
||||
"logFile": "$XDG_DATA_HOME/clipse/clipse.log",
|
||||
"themeFile": "custom_theme.json",
|
||||
"tempDir": "$XDG_DATA_HOME/clipse/tmp_files",
|
||||
"keyBindings": {
|
||||
"choose": "enter",
|
||||
"clearSelected": "S",
|
||||
"down": "down",
|
||||
"end": "end",
|
||||
"filter": "/",
|
||||
"home": "home",
|
||||
"more": "?",
|
||||
"nextPage": "right",
|
||||
"prevPage": "left",
|
||||
"preview": " ",
|
||||
"quit": "q",
|
||||
"remove": "x",
|
||||
"selectDown": "ctrl+down",
|
||||
"selectSingle": "s",
|
||||
"selectUp": "ctrl+up",
|
||||
"togglePin": "p",
|
||||
"togglePinned": "tab",
|
||||
"up": "up",
|
||||
"yankFilter": "ctrl+s"
|
||||
},
|
||||
"imageDisplay": {
|
||||
"type": "basic",
|
||||
"scaleX": 9,
|
||||
"scaleY": 9,
|
||||
"heightCut": 2
|
||||
}
|
||||
}
|
||||
29
env/.config/clipse/custom_theme.json
vendored
Normal file
29
env/.config/clipse/custom_theme.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"useCustomTheme": true,
|
||||
"TitleFore": "#6F4CBC",
|
||||
"TitleBack": "#1e1e2e",
|
||||
"TitleInfo": "#3498db",
|
||||
"NormalTitle": "#ffffff",
|
||||
"DimmedTitle": "#808080",
|
||||
"SelectedTitle": "#FF69B4",
|
||||
"NormalDesc": "#808080",
|
||||
"DimmedDesc": "#808080",
|
||||
"SelectedDesc": "#FF69B4",
|
||||
"StatusMsg": "#2ecc71",
|
||||
"PinIndicatorColor": "#FFD700",
|
||||
"SelectedBorder": "#3498db",
|
||||
"SelectedDescBorder": "#3498db",
|
||||
"FilteredMatch": "#ffffff",
|
||||
"FilterPrompt": "#2ecc71",
|
||||
"FilterInfo": "#3498db",
|
||||
"FilterText": "#ffffff",
|
||||
"FilterCursor": "#FFD700",
|
||||
"HelpKey": "#999999",
|
||||
"HelpDesc": "#808080",
|
||||
"PageActiveDot": "#3498db",
|
||||
"PageInactiveDot": "#808080",
|
||||
"DividerDot": "#3498db",
|
||||
"PreviewedText": "#ffffff",
|
||||
"PreviewBorder": "#3498db"
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@
|
||||
# --- Auto-restart
|
||||
|
||||
# Enable/disable the config auto-reload after a file change is detected.
|
||||
# auto_restart: false
|
||||
|
||||
auto_restart: true
|
||||
# --- Clipboard threshold
|
||||
|
||||
# Because injecting long texts char-by-char is a slow operation, espanso automatically
|
||||
# uses the clipboard if the text is longer than 'clipboard_threshold' characters.
|
||||
# clipboard_threshold: 100
|
||||
|
||||
#
|
||||
show_notifications: false
|
||||
# For a list of all the available options, visit the official docs at: https://espanso.org/docs/
|
||||
@@ -12,5 +12,6 @@ imports:
|
||||
- "./email.yml"
|
||||
- "./housecallpro.yml"
|
||||
- "./links.yml"
|
||||
- './symbols.yml'
|
||||
|
||||
|
||||
@@ -4,8 +4,11 @@ matches:
|
||||
# Email Addresses
|
||||
- trigger: ":@hhe"
|
||||
replace: "mhoush@houshhomeenergy.com"
|
||||
- trigger: ":@service"
|
||||
- trigger: ":@w"
|
||||
replace: "mhoush@houshhomeenergy.com"
|
||||
- trigger: ":@ser"
|
||||
replace: "service@houshhomeenergy.com"
|
||||
- trigger: ":@me"
|
||||
replace: "michael@mhoush.com"
|
||||
|
||||
- trigger: ":@p"
|
||||
replace: "michael@mhoush.com"
|
||||
14
env/.config/espanso/match/packages/actually-all-emojis-spaces/README.md
vendored
Normal file
14
env/.config/espanso/match/packages/actually-all-emojis-spaces/README.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
## Actually All Emojis
|
||||
|
||||
An up-to-date package for [espanso](https://espanso.org/) which provides triggers for all emojis (`v14.0`). Emojis and codes fetched from [Unicode.org](https://unicode.org/emoji/charts/full-emoji-list.html)
|
||||
|
||||
### Usage
|
||||
|
||||
To use this package, just type the name of the emoji between two colons. For example, to use the `smile` emoji 😄, you can type: `:smile:`
|
||||
|
||||
A full list of emojis and their CLDR Short Names can be found [here](https://unicode.org/emoji/charts/full-emoji-list.html)
|
||||
|
||||
**Note**: There are two options for this package. One with spaces between words, and one with underscores. This version uses _spaces_
|
||||
For example `:kissing face:`
|
||||
|
||||
To install the version with underscores use `actually-all-emojis`
|
||||
7
env/.config/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml
vendored
Normal file
7
env/.config/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
author: Jobie Wong
|
||||
description: An updated package providing all v.14 emojis - fetched from unicode.org
|
||||
name: actually-all-emojis-spaces
|
||||
title: Actually All Emojis (Spaces)
|
||||
version: 0.1.0
|
||||
homepage: "https://github.com/jobiewong/espanso-emojis"
|
||||
tags: ["emoji", "chat"]
|
||||
2
env/.config/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml
vendored
Normal file
2
env/.config/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
hub
|
||||
3707
env/.config/espanso/match/packages/actually-all-emojis-spaces/package.yml
vendored
Normal file
3707
env/.config/espanso/match/packages/actually-all-emojis-spaces/package.yml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
env/.config/espanso/match/symbols.yml
vendored
Normal file
9
env/.config/espanso/match/symbols.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
matches:
|
||||
- trigger: ':deg:'
|
||||
replace: '°'
|
||||
- trigger: ':cmd:'
|
||||
replace: '⌘'
|
||||
- trigger: ':shift:'
|
||||
replace: '⇧'
|
||||
- trigger: ':noteq:'
|
||||
replace: '≠'
|
||||
104
env/.config/eza/theme.yml
vendored
Normal file
104
env/.config/eza/theme.yml
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
# see https://github.com/eza-community/eza-themes/blob/main/themes/catppuccin.yml
|
||||
|
||||
colourful: true
|
||||
|
||||
filekinds:
|
||||
normal: { foreground: "#BAC2DE" }
|
||||
directory: { foreground: "#89B4FA" }
|
||||
symlink: { foreground: "#89DCEB" }
|
||||
pipe: { foreground: "#7F849C" }
|
||||
block_device: { foreground: "#EBA0AC" }
|
||||
char_device: { foreground: "#EBA0AC" }
|
||||
socket: { foreground: "#585B70" }
|
||||
special: { foreground: "#CBA6F7" }
|
||||
executable: { foreground: "#A6E3A1" }
|
||||
mount_point: { foreground: "#74C7EC" }
|
||||
|
||||
perms:
|
||||
user_read: { foreground: "#CDD6F4" }
|
||||
user_write: { foreground: "#F9E2AF" }
|
||||
user_execute_file: { foreground: "#A6E3A1" }
|
||||
user_execute_other: { foreground: "#A6E3A1" }
|
||||
group_read: { foreground: "#BAC2DE" }
|
||||
group_write: { foreground: "#F9E2AF" }
|
||||
group_execute: { foreground: "#A6E3A1" }
|
||||
other_read: { foreground: "#A6ADC8" }
|
||||
other_write: { foreground: "#F9E2AF" }
|
||||
other_execute: { foreground: "#A6E3A1" }
|
||||
special_user_file: { foreground: "#CBA6F7" }
|
||||
special_other: { foreground: "#585B70" }
|
||||
attribute: { foreground: "#A6ADC8" }
|
||||
|
||||
size:
|
||||
major: { foreground: "#A6ADC8" }
|
||||
minor: { foreground: "#89DCEB" }
|
||||
number_byte: { foreground: "#CDD6F4" }
|
||||
number_kilo: { foreground: "#BAC2DE" }
|
||||
number_mega: { foreground: "#89B4FA" }
|
||||
number_giga: { foreground: "#CBA6F7" }
|
||||
number_huge: { foreground: "#CBA6F7" }
|
||||
unit_byte: { foreground: "#A6ADC8" }
|
||||
unit_kilo: { foreground: "#89B4FA" }
|
||||
unit_mega: { foreground: "#CBA6F7" }
|
||||
unit_giga: { foreground: "#CBA6F7" }
|
||||
unit_huge: { foreground: "#74C7EC" }
|
||||
|
||||
users:
|
||||
user_you: { foreground: "#CDD6F4" }
|
||||
user_root: { foreground: "#F38BA8" }
|
||||
user_other: { foreground: "#CBA6F7" }
|
||||
group_yours: { foreground: "#BAC2DE" }
|
||||
group_other: { foreground: "#7F849C" }
|
||||
group_root: { foreground: "#F38BA8" }
|
||||
|
||||
links:
|
||||
normal: { foreground: "#89DCEB" }
|
||||
multi_link_file: { foreground: "#74C7EC" }
|
||||
|
||||
git:
|
||||
new: { foreground: "#A6E3A1" }
|
||||
modified: { foreground: "#F9E2AF" }
|
||||
deleted: { foreground: "#F38BA8" }
|
||||
renamed: { foreground: "#94E2D5" }
|
||||
typechange: { foreground: "#F5C2E7" }
|
||||
ignored: { foreground: "#7F849C" }
|
||||
conflicted: { foreground: "#EBA0AC" }
|
||||
|
||||
git_repo:
|
||||
branch_main: { foreground: "#CDD6F4" }
|
||||
branch_other: { foreground: "#CBA6F7" }
|
||||
git_clean: { foreground: "#A6E3A1" }
|
||||
git_dirty: { foreground: "#F38BA8" }
|
||||
|
||||
security_context:
|
||||
colon: { foreground: "#7F849C" }
|
||||
user: { foreground: "#BAC2DE" }
|
||||
role: { foreground: "#CBA6F7" }
|
||||
typ: { foreground: "#585B70" }
|
||||
range: { foreground: "#CBA6F7" }
|
||||
|
||||
file_type:
|
||||
image: { foreground: "#F9E2AF" }
|
||||
video: { foreground: "#F38BA8" }
|
||||
music: { foreground: "#A6E3A1" }
|
||||
lossless: { foreground: "#94E2D5" }
|
||||
crypto: { foreground: "#585B70" }
|
||||
document: { foreground: "#CDD6F4" }
|
||||
compressed: { foreground: "#F5C2E7" }
|
||||
temp: { foreground: "#EBA0AC" }
|
||||
compiled: { foreground: "#74C7EC" }
|
||||
build: { foreground: "#585B70" }
|
||||
source: { foreground: "#89B4FA" }
|
||||
|
||||
punctuation: { foreground: "#7F849C" }
|
||||
date: { foreground: "#F9E2AF" }
|
||||
inode: { foreground: "#A6ADC8" }
|
||||
blocks: { foreground: "#9399B2" }
|
||||
header: { foreground: "#CDD6F4" }
|
||||
octal: { foreground: "#94E2D5" }
|
||||
flags: { foreground: "#CBA6F7" }
|
||||
|
||||
symlink_path: { foreground: "#89DCEB" }
|
||||
control_char: { foreground: "#74C7EC" }
|
||||
broken_symlink: { foreground: "#F38BA8" }
|
||||
broken_path_overlay: { foreground: "#585B70" }
|
||||
34
env/.config/ghostty/config
vendored
Normal file
34
env/.config/ghostty/config
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
theme = Catppuccin Mocha
|
||||
|
||||
confirm-close-surface = false
|
||||
|
||||
font-family = "Fira Code"
|
||||
font-size = 13
|
||||
font-thicken = false
|
||||
|
||||
window-save-state = always
|
||||
|
||||
# NOTE: This setting removes tabs, rounded borders, and window controls.
|
||||
# Also makes some of the below macos-titlebar-* things not matter, but
|
||||
# will take affect if this is set to true.
|
||||
window-decoration = true
|
||||
|
||||
copy-on-select = true
|
||||
quit-after-last-window-closed = true
|
||||
quit-after-last-window-closed-delay = 5m
|
||||
|
||||
# macos-auto-secure-input = true
|
||||
# macos-non-native-fullscreen = visible-menu
|
||||
# macos-titlebar-style = transparent
|
||||
# macos-titlebar-proxy-icon = hidden
|
||||
# macos-icon = custom-style
|
||||
|
||||
keybind = ctrl+shift+t=toggle_quick_terminal
|
||||
|
||||
# Splits
|
||||
keybind = super+j=goto_split:down
|
||||
keybind = super+h=goto_split:left
|
||||
keybind = super+k=goto_split:up
|
||||
keybind = super+l=goto_split:right
|
||||
keybind = super+shift+j=goto_split:previous
|
||||
keybind = super+shift+k=goto_split:next
|
||||
66
env/.config/git/config
vendored
Normal file
66
env/.config/git/config
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
ignorecasse = false
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[user]
|
||||
name = Michael Housh
|
||||
email = michael@mhoush.com
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[tag]
|
||||
gpgSign = true
|
||||
sort = version:refname
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
|
||||
[credential]
|
||||
helper = gopass
|
||||
|
||||
[credential "https://git.housh.dev"]
|
||||
username = michael
|
||||
|
||||
[push]
|
||||
default = simple
|
||||
autoSetupRemote = true
|
||||
followTags = true
|
||||
|
||||
[fetch]
|
||||
prune = true
|
||||
#pruneTags = true
|
||||
#all = true
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[filter "lfs"]
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
|
||||
[column]
|
||||
ui = auto
|
||||
|
||||
[branch]
|
||||
sort = committerdate
|
||||
|
||||
[diff]
|
||||
algorithm = histogram
|
||||
colorMoved = plain
|
||||
mnemonicPrefix = true
|
||||
renames = true
|
||||
|
||||
[rerere]
|
||||
enabled = true
|
||||
autoupdate = true
|
||||
|
||||
[rebase]
|
||||
autoSquash = true
|
||||
autoStash = true
|
||||
updateRefs = true
|
||||
16
env/.config/hypr/autostart.conf
vendored
Normal file
16
env/.config/hypr/autostart.conf
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
exec-once = pidof hyprpaper | uwsm app -- hyprpaper
|
||||
exec-once = pidof hypridle | uwsm app -- hypridle
|
||||
exec-once = uwsm app -- elephant
|
||||
exec-once = uwsm app -- swaync
|
||||
exec-once = uwsm app -- walker --gapplication-service &
|
||||
exec-once = uwsm app -- waybar
|
||||
exec-once = uwsm app -- clipse -listen
|
||||
|
||||
37
env/.config/hypr/env.conf
vendored
Normal file
37
env/.config/hypr/env.conf
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
# Cursor size
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
# Force all apps to use Wayland
|
||||
env = GDK_BACKEND,wayland,x11,*
|
||||
env = QT_QPA_PLATFORM,wayland;xcb
|
||||
env = QT_STYLE_OVERRIDE,kvantum
|
||||
env = SDL_VIDEODRIVER,wayland
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = OZONE_PLATFORM,wayland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
|
||||
env = GDK_SCALE=2
|
||||
|
||||
# Allow better support for screen sharing (Google Meet, Discord, etc)
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
# Use XCompose file
|
||||
env = XCOMPOSEFILE,~/.XCompose
|
||||
|
||||
# Don't show update on first launch
|
||||
ecosystem {
|
||||
no_update_news = true
|
||||
}
|
||||
34
env/.config/hypr/hypridle.conf
vendored
Normal file
34
env/.config/hypr/hypridle.conf
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 150 # 2.5min.
|
||||
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 300 # 5min
|
||||
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 330 # 5.5min
|
||||
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
121
env/.config/hypr/hyprland.conf
vendored
Normal file
121
env/.config/hypr/hyprland.conf
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
|
||||
# #######################################################################################
|
||||
# HYPRLAND - GENERAL CONFIG
|
||||
# #######################################################################################
|
||||
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hyprland.org/Configuring/
|
||||
|
||||
source = ~/.config/hypr/env.conf
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
source = ~/.config/hypr/windows.conf
|
||||
source = ~/.config/hypr/keybinds.conf
|
||||
source = ~/.config/hypr/input.conf
|
||||
source = ~/.config/hypr/autostart.conf
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 3
|
||||
gaps_out = 0, 5, 5, 5
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgb(89b4fa) rgb(f2cdcd) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle # dwindle or master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 5
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = no, please :)
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + SHIFT + P in the keybinds section below
|
||||
preserve_split = true # You probably want this
|
||||
force_split = 2 # always split to the right or bottom
|
||||
#split_width_multiplier = 1.25
|
||||
use_active_for_splits = false
|
||||
#default_split_ratio = 1.25
|
||||
split_bias = 0
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = slave
|
||||
mfact = 0.50 # Set master window to be 50%
|
||||
orientation = left # set master to be on the right.
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
focus_on_activate = true
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
109
env/.config/hypr/hyprlock.conf
vendored
Normal file
109
env/.config/hypr/hyprlock.conf
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
# sample hyprlock.conf
|
||||
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
||||
#
|
||||
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
|
||||
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
|
||||
#
|
||||
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
|
||||
#
|
||||
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
|
||||
#
|
||||
|
||||
$font = Monospace
|
||||
|
||||
general {
|
||||
hide_cursor = false
|
||||
}
|
||||
|
||||
# uncomment to enable fingerprint authentication
|
||||
# auth {
|
||||
# fingerprint {
|
||||
# enabled = true
|
||||
# ready_message = Scan fingerprint to unlock
|
||||
# present_message = Scanning...
|
||||
# retry_delay = 250 # in milliseconds
|
||||
# }
|
||||
# }
|
||||
|
||||
# NOTE: Currently enabling animations and background 'path = screenshot' causes hyprlock
|
||||
# to not work, so they are disabled.
|
||||
animations {
|
||||
enabled = false
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animaution = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
#path = screenshot
|
||||
path = ~/wallpapers/wall1.png
|
||||
blur_passes = 3
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = Input password...
|
||||
fail_text = $PAMFAIL
|
||||
|
||||
# uncomment to use a letter instead of a dot to indicate the typed password
|
||||
# dots_text_format = *
|
||||
# dots_size = 0.4
|
||||
dots_spacing = 0.3
|
||||
|
||||
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
|
||||
# hide_input = true
|
||||
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $LAYOUT[en,ru]
|
||||
font_size = 24
|
||||
onclick = hyprctl switchxkblayout all next
|
||||
|
||||
position = 250, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
3
env/.config/hypr/hyprpaper.conf
vendored
Normal file
3
env/.config/hypr/hyprpaper.conf
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
preload = /home/michael/wallpapers/wall1.png
|
||||
wallpaper = ,/home/michael/wallpapers/wall1.png
|
||||
splash = true
|
||||
36
env/.config/hypr/input.conf
vendored
Normal file
36
env/.config/hypr/input.conf
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = ctrl:nocaps
|
||||
kb_rules =
|
||||
|
||||
repeat_rate = 35
|
||||
repeat_delay = 200
|
||||
|
||||
follow_mouse = 2
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
tap-to-click = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
196
env/.config/hypr/keybinds.conf
vendored
Normal file
196
env/.config/hypr/keybinds.conf
vendored
Normal file
@@ -0,0 +1,196 @@
|
||||
##############################
|
||||
### HYPRLAND - KEYBINDINGS ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # "Command/Windows" key as main modifier
|
||||
$windowMod = ALT # Option for window controls.
|
||||
$MEH = ALT SHIFT CTRL
|
||||
$HYPER = ALT SHIFT SUPER CTRL
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
$terminal = uwsm app -- ghostty
|
||||
$browser = uwsm app -- brave
|
||||
$fileManager = $terminal -e yazi
|
||||
$fileBrowser = uwsm app -- nautilus
|
||||
$menu = uwsm app -- walker
|
||||
$scripts = ~/.local/scripts/hypr
|
||||
$pwa = $scripts/launch-webapp
|
||||
$tmuxSessionator = ~/.local/scripts/tmux-sessionator
|
||||
$clipboardHistory = com.ghostty.clipse $terminal --class=com.ghostty.clipse -e clipse
|
||||
$uninstallDesktop = $terminal --class=com.ghostty.float -e $scripts/uninstall-desktop-app
|
||||
$utilsLauncher = com.ghostty.utils-launcher $scripts/utils-launcher --launch
|
||||
$housecallPro = https://pro.housecallpro.com/app/calendar_new
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
|
||||
##############################################################################################
|
||||
# Apps / hyprland controls
|
||||
#
|
||||
# These should in general use the $mainMod prefix
|
||||
##############################################################################################
|
||||
# MOD # KEY # DESC # Action #
|
||||
##############################################################################################
|
||||
|
||||
bindd = $mainMod, SPACE, Application launcher, exec, $menu
|
||||
bindd = $mainMod, RETURN, New terminal, exec, $terminal
|
||||
bindd = $mainMod SHIFT, RETURN, New floating terminal, exec, $terminal --class=com.ghostty.float
|
||||
bindd = $mainMod, TAB, Focus previous workspace, exec, $scripts/workspacectl switch --to previous
|
||||
bindd = $mainMod, A, [A]i - launch / focus, exec, $pwa --or-focus "https://ollama.housh.dev"
|
||||
bindd = $mainMod SHIFT, A, [A]i - new window, exec, $pwa "https://ollama.housh.dev"
|
||||
bindd = $mainMod, B, New [b]rowser, exec, $browser
|
||||
bindd = $mainMod SHIFT, B, New private [b]rowser, exec, $browser --incognito
|
||||
bindd = $mainMod, C, [C]alendar, exec, $pwa --or-focus "https://www.icloud.com/calendar"
|
||||
bindd = $mainMod SHIFT, C, [C]onfig folder in tmux session, exec, $terminal -e $tmuxSessionator ~/.config
|
||||
bindd = $mainMod, D, [D]ispatch app - special workspace, exec, $pwa --special dispatch $housecallPro
|
||||
bindd = $mainMod SHIFT, D, [D]ispatch app - new window, exec, $pwa --new $housecallPro
|
||||
bindd = $mainMod, E, [E]mail - personal, exec, $pwa --or-focus "https://mail.proton.me"
|
||||
bindd = $mainMod SHIFT, E, [E]mail - work, exec, $scripts/launch --or-focus thunderbird uwsm app -- thunderbird
|
||||
bindd = $mainMod, F, [F]ile manager - terminal, exec, $fileManager
|
||||
bindd = $mainMod SHIFT, F, [F]ile manager - application, exec, $fileBrowser
|
||||
bindd = $mainMod, G, [G]itea, exec, $pwa --or-focus "https://git.housh.dev"
|
||||
bindd = $mainMod SHIFT, G, [G]ithub, exec, $pwa --or-focus "https://github.com"
|
||||
bindd = $mainMod, H, Focus window - left, movefocus, l # move window focus using vim keys
|
||||
bindd = $mainMod SHIFT, H, Workspace - back, workspace, -1
|
||||
bindd = $mainMod, J, Focus window - down, movefocus, d # move window focus using vim keys
|
||||
bindd = $mainMod, K, Focus window - up, movefocus, u # move window focus using vim keys
|
||||
bindd = $mainMod, L, Focus window - right, movefocus, r # move window focus using vim keys
|
||||
bindd = $mainMod SHIFT, L, Workspace - forward, workspace, +1
|
||||
bindd = $mainMod, M, [M]usic - apple, exec, $pwa --special music "https://music.apple.com"
|
||||
bindd = $mainMod SHIFT, M, [M]enu bar - toggle visible, exec, $scripts/waybarctl --toggle
|
||||
bindd = $mainMod, O, Purchase [o]rders, exec, $pwa --special dispatch "https://po.housh.dev"
|
||||
bindd = $mainMod, P, [P]assword manager, exec, $pwa --special pass "https://pass.proton.me"
|
||||
bindd = $mainMod SHIFT, P, [P]hotos, exec, $pwa --or-focus "https://photos.housh.dev"
|
||||
bindd = $mainMod SHIFT, R, [R]estart menu bar, exec, $scripts/waybarctl --restart
|
||||
bindd = $mainMod, S, Toggle [s]pecial workspace, togglespecialworkspace, magic # use $windowMod S to send window to the special workspace
|
||||
bindd = $mainMod, Y, [Y]ouTube, exec, $pwa --or-focus "https://youtube.com"
|
||||
bindd = $mainMod, U, [U]nifi, exec, $pwa "https://unifi.ui.com"
|
||||
bindd = $mainMod SHIFT, U, [U]tility launcher, exec, $scripts/launch --or-close $utilsLauncher
|
||||
bindd = $mainMod, V, Clipboard history, exec, $scripts/launch --or-close $clipboardHistory
|
||||
bindd = $mainMod, W, Close current window, killactive,
|
||||
bindd = $mainMod SHIFT, W, Close all windows in active workspace, exec, $scripts/windowctl close --active-workspace
|
||||
|
||||
# Switch to workspaces with mainMod + [0-9]
|
||||
bindd = $mainMod, 1, Switch to workspace [1], exec, $scripts/workspacectl switch --to 1
|
||||
bindd = $mainMod, 2, Switch to workspace [2], exec, $scripts/workspacectl switch --to 2
|
||||
bindd = $mainMod, 3, Switch to workspace [3], exec, $scripts/workspacectl switch --to 3
|
||||
bindd = $mainMod, 4, Switch to workspace [4], exec, $scripts/workspacectl switch --to 4
|
||||
bindd = $mainMod, 5, Switch to workspace [5], exec, $scripts/workspacectl switch --to 5
|
||||
bindd = $mainMod, 6, Switch to workspace [6], exec, $scripts/workspacectl switch --to 6
|
||||
bindd = $mainMod, 7, Switch to workspace [7], exec, $scripts/workspacectl switch --to 7
|
||||
bindd = $mainMod, 8, Switch to workspace [8], exec, $scripts/workspacectl switch --to 8
|
||||
bindd = $mainMod, 9, Switch to workspace [9], exec, $scripts/workspacectl switch --to 9
|
||||
bindd = $mainMod, 0, Switch to workspace 1[0], exec, $scripts/workspacectl switch --to 10
|
||||
|
||||
# Move all workspaces to a monitor
|
||||
bindd = $mainMod SHIFT, 1, Switch all workspaces to monitor [1], exec, $scripts/mv-all-workspaces-to-monitor 1
|
||||
bindd = $mainMod SHIFT, 0, Switch all workspaces to monitor [0], exec, $scripts/mv-all-workspaces-to-monitor 0
|
||||
|
||||
# Screen Shots
|
||||
bindd = $mainMod SHIFT, 3, Screenshot a monitor, exec, hyprshot --mode output --output-folder ~/Pictures
|
||||
bindd = $mainMod SHIFT, 4, Screenshot a selection, exec, hyprshot --mode region --output-folder ~/Pictures
|
||||
bindd = $mainMod SHIFT, 5, Screenshot a window, exec, hyprshot --mode window --output-folder ~/Pictures
|
||||
|
||||
# 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
|
||||
bindm = $mainMod SHIFT, mouse_down, resizewindow
|
||||
|
||||
#######################################################################################
|
||||
# Window controls
|
||||
#
|
||||
# These should in general use the $windowMod prefix
|
||||
##########################################################################################
|
||||
# MOD # KEY # DESC # Action #
|
||||
##########################################################################################
|
||||
# TODO: Decide which is prefered to switch to fullscreen.
|
||||
bindd = CTRL, F, Toggle [f]ullscreen, fullscreen,
|
||||
bindd = $windowMod, F, Toggle [f]loating, exec, $scripts/windowctl toggle-floating --active --width 80% --height 80%
|
||||
bindd = $windowMod SHIFT, F, Toggle [f]loating, exec, $scripts/windowctl toggle-floating --active
|
||||
bindd = $windowMod, H, Move window - left, movewindow, l # move windows with windowMod + vim keys
|
||||
bindd = $windowMod, J, Move window - down, movewindow, d # move windows with windowMod + vim keys
|
||||
bindd = $windowMod, K, Move window - up, movewindow, u # move windows with windowMod + vim keys
|
||||
bindd = $windowMod, L, Move window - right , movewindow, r # move windows with windowMod + vim keys
|
||||
bindd = $windowMod, M, Move window to [m]usic workspace, movetoworkspace, special:music
|
||||
bindd = $windowMod SHIFT, P, Toggle [p]seudo window mode, pseudo, # dwindle
|
||||
bindd = $windowMod, S, Move window to [s]pecial workspace, movetoworkspacesilent, special:magic
|
||||
bindd = $windowMod, W, [W]indow actions, exec, $scripts/windowctl launch action --active
|
||||
# FIX: Changes size of window, this works a different depending on if
|
||||
# the window is on the right or left of the screen.
|
||||
#
|
||||
# Resize horizontally
|
||||
bindd = $windowMod, EQUAL, Increase window size - horizontal, resizeactive, 20 0
|
||||
bindd = $windowMod, MINUS, Decrease window size - horizontal, resizeactive, -20 0
|
||||
# Resize vertically
|
||||
bindd = $windowMod SHIFT, EQUAL, Increase window size - vertical, resizeactive, 0 20
|
||||
bindd = $windowMod SHIFT, MINUS, Decrease window size - vertical, resizeactive, 0 -20
|
||||
|
||||
# Move active window to a workspace with windowMod + [0-9]
|
||||
bindd = $windowMod, 1, Move window to workspace [1], movetoworkspace, 1
|
||||
bindd = $windowMod, 2, Move window to workspace [2], movetoworkspace, 2
|
||||
bindd = $windowMod, 3, Move window to workspace [3], movetoworkspace, 3
|
||||
bindd = $windowMod, 4, Move window to workspace [4], movetoworkspace, 4
|
||||
bindd = $windowMod, 5, Move window to workspace [5], movetoworkspace, 5
|
||||
bindd = $windowMod, 6, Move window to workspace [6], movetoworkspace, 6
|
||||
bindd = $windowMod, 7, Move window to workspace [7], movetoworkspace, 7
|
||||
bindd = $windowMod, 8, Move window to workspace [8], movetoworkspace, 8
|
||||
bindd = $windowMod, 9, Move window to workspace [9], movetoworkspace, 9
|
||||
bindd = $windowMod, 0, Move window to workspace 1[0], movetoworkspace, 10
|
||||
|
||||
#######################################################################################
|
||||
# HYPER (Alt + Shift + Super + Ctrl) controls
|
||||
#
|
||||
# These should in general use the $HYPER prefix
|
||||
#######################################################################################
|
||||
# MOD # KEY # DESC # Action #
|
||||
#######################################################################################
|
||||
|
||||
bindd = $HYPER, H, [H]ide / show windows, exec, $scripts/workspacectl toggle
|
||||
bindd = $HYPER, J, Toggle split orientation, togglesplit # dwindle
|
||||
bindd = $HYPER, L, [L]ock computer, exec, hyprlock
|
||||
bindd = $HYPER, W, Close all windows, exec, $scripts/windowctl close --all
|
||||
|
||||
# Move active window to a workspace silently with HYPER + [0-9]
|
||||
bindd = $HYPER, 1, Move window to workspace silent [1], movetoworkspacesilent, 1
|
||||
bindd = $HYPER, 2, Move window to workspace silent [2], movetoworkspacesilent, 2
|
||||
bindd = $HYPER, 3, Move window to workspace silent [3], movetoworkspacesilent, 3
|
||||
bindd = $HYPER, 4, Move window to workspace silent [4], movetoworkspacesilent, 4
|
||||
bindd = $HYPER, 5, Move window to workspace silent [5], movetoworkspacesilent, 5
|
||||
bindd = $HYPER, 6, Move window to workspace silent [6], movetoworkspacesilent, 6
|
||||
bindd = $HYPER, 7, Move window to workspace silent [7], movetoworkspacesilent, 7
|
||||
bindd = $HYPER, 8, Move window to workspace silent [8], movetoworkspacesilent, 8
|
||||
bindd = $HYPER, 9, Move window to workspace silent [9], movetoworkspacesilent, 9
|
||||
bindd = $HYPER, 0, Move window to workspace silent 1[0], movetoworkspacesilent, 10
|
||||
|
||||
|
||||
#######################################################################################
|
||||
# MEH (Alt + Shift + Ctrl) controls
|
||||
#
|
||||
# These should in general use the $MEH prefix
|
||||
#######################################################################################
|
||||
# MOD # KEY # DESC # Action #
|
||||
#######################################################################################
|
||||
bindd = $MEH, L, [L]ogs picker / viewer, exec, $terminal --class=com.ghostty.float -e $scripts/utils/logs/logs-picker
|
||||
|
||||
##################################################
|
||||
# Multi-media keys
|
||||
##################################################
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
10
env/.config/hypr/monitors.conf
vendored
Normal file
10
env/.config/hypr/monitors.conf
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor= ,preferred,auto,auto
|
||||
#monitor = HDMI-A-1, preferred, 0x0, auto
|
||||
#monitor = HDMI-A-1, preferred, 0x0, 1.66667
|
||||
|
||||
|
||||
48
env/.config/hypr/windows.conf
vendored
Normal file
48
env/.config/hypr/windows.conf
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
#
|
||||
|
||||
windowrule = float, tag:floating-window
|
||||
windowrule = center, tag:floating-window
|
||||
windowrule = size 60% 60%, tag:floating-window
|
||||
|
||||
# Weather tui
|
||||
windowrule = float, class:^(com.ghostty.weather)$
|
||||
windowrule = center, class:^(com.ghostty.weather)$
|
||||
windowrule = size 90% 80%, class:^(com.ghostty.weather)$
|
||||
|
||||
# Force windows to be a floating window
|
||||
windowrule = tag +floating-window, class:^(blueberry.py|org.gnome.Nautilus|com.ghostty.float)$
|
||||
windowrule = tag +floating-window, class:^(com.ghostty.windowctl)$
|
||||
windowrule = tag +floating-window, class:^(com.ghostty.utils-launcher)$
|
||||
windowrule = tag +floating-window, class:^(com.ghostty.homelab-launcher)$
|
||||
|
||||
# Force to stay focused when visible.
|
||||
windowrule = stayfocused, class:(blueberry.py)
|
||||
windowrule = stayfocused, class:Pinentry.gtk
|
||||
windowrule = stayfocused, class:com.ghostty.float
|
||||
windowrule = stayfocused, class:com.ghostty.windowctl
|
||||
windowrule = stayfocused, class:^(com.ghostty.utils-launcher)$
|
||||
|
||||
# Clipboard history tui in floating window.
|
||||
windowrule = tag +floating-window, class:.*clipse.*
|
||||
windowrule = stayfocused, class:.*clipse.*
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Just a dash of opacity by default.
|
||||
windowrule = opacity 0.97 0.92, class:.*
|
||||
# No opacity on youtube.
|
||||
windowrule = opacity 1.0, class:.*youtube.com.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
workspace = special:hidden, invisible
|
||||
workspace = special:pass, class:.*pass.proton.me.*
|
||||
workspace = special:dispatch, class:.*pro.housecallpro.com.*
|
||||
14
env/.config/hypr/workspaces.conf
vendored
Normal file
14
env/.config/hypr/workspaces.conf
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
# Set work spaces 1-5 to be on external monitor
|
||||
workspace = 1, monitor:1
|
||||
workspace = 2, monitor:1
|
||||
workspace = 3, monitor:1
|
||||
workspace = 4, monitor:1
|
||||
workspace = 5, monitor:1
|
||||
|
||||
# Set work spaces 6-10 to be on internal monitor
|
||||
workspace = 6, monitor:0
|
||||
workspace = 7, monitor:0
|
||||
workspace = 8, monitor:0
|
||||
workspace = 9, monitor:0
|
||||
workspace = 10, monitor:0
|
||||
151
env/.config/kanata/macbook.kbd
vendored
Normal file
151
env/.config/kanata/macbook.kbd
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
;; Macbook-Pro configuration file.
|
||||
;;
|
||||
|
||||
;; Adapted from https://github.com/linkarzu/dotfiles-latest/blob/main/kanata/configs/macbook-subl.kbd
|
||||
;; Video related to this file
|
||||
;; https://youtu.be/jvJ3f4HHiMY
|
||||
|
||||
;; Kanata docs
|
||||
;; https://github.com/jtroo/kanata/blob/main/docs/config.adoc
|
||||
|
||||
;; OS key code mappings
|
||||
;; https://github.com/jtroo/kanata/blob/main/parser/src/keys/mod.rs
|
||||
|
||||
(defcfg
|
||||
process-unmapped-keys yes
|
||||
log-layer-changes no
|
||||
danger-enable-cmd yes
|
||||
concurrent-tap-hold yes
|
||||
rapid-event-delay 10
|
||||
allow-hardware-repeat false
|
||||
|
||||
;; When any non-chord activation happens, this timeout begins. Until this timeout expires
|
||||
;; all inputs will immediately skip chords processing and be processed by the active layer.
|
||||
;; chords-v2-min-idle 250
|
||||
)
|
||||
|
||||
;; Variables
|
||||
(defvar
|
||||
tap-higher 400
|
||||
tap-time 200
|
||||
tap-time-plus 300
|
||||
hold-time-plus 300
|
||||
hold-time 200
|
||||
chord-time 60
|
||||
subl-time 200
|
||||
tmux-delay 40
|
||||
)
|
||||
|
||||
;; Only one defsrc is allowed.
|
||||
;;
|
||||
;; defsrc defines the keys that will be intercepted by kanata. The order of the
|
||||
;; keys matches with deflayer declarations and all deflayer declarations must
|
||||
;; have the same number of keys as defsrc. Any keys not listed in defsrc will
|
||||
;; be passed straight to the operating system.
|
||||
(defsrc
|
||||
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12
|
||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||
tab q w e r t y u i o p [ ] \
|
||||
caps a s d f g h j k l ; ' ret
|
||||
lsft z x c v b n m , . / ▲ rsft
|
||||
lctl lalt lmet spc rmet ralt ◀ ▼ ▶
|
||||
)
|
||||
|
||||
(defalias
|
||||
;; Modifier keys - Left
|
||||
mlctl (tap-hold $tap-time $hold-time a lctl)
|
||||
mlalt (tap-hold $tap-time $hold-time s lalt)
|
||||
mlmet (tap-hold $tap-time $hold-time d lmet)
|
||||
mlsft (tap-hold $tap-time $hold-time f lsft)
|
||||
|
||||
;; Modifier keys - Right
|
||||
mrsft (tap-hold $tap-time $hold-time j rsft)
|
||||
mrmet (tap-hold $tap-time $hold-time k rmet)
|
||||
mralt (tap-hold $tap-time $hold-time l ralt)
|
||||
mrctl (tap-hold $tap-time $hold-time ; rctl)
|
||||
|
||||
mretu (tap-hold $tap-time $hold-time tab ret)
|
||||
|
||||
;; number and symbols layer trigger keys.
|
||||
mlnums (tap-hold-press $tap-time-plus $hold-time-plus lmet (layer-while-held nums_and_symbols))
|
||||
mrnums (tap-hold-press $tap-time-plus $hold-time-plus rmet (layer-while-held nums_and_symbols))
|
||||
|
||||
;; mouse layer trigger keys.
|
||||
mlms (tap-hold-press $tap-time $hold-time esc (layer-while-held mouse))
|
||||
mrms (tap-hold-press $tap-time $hold-time ret (layer-while-held mouse))
|
||||
|
||||
;; Multi
|
||||
mhypr (tap-hold $tap-time $hold-time spc (multi lsft lctl lalt lmet)) ;; Hyper key
|
||||
|
||||
;; Sublayers
|
||||
;; I implemented sublayers thanks to the help in this discussion
|
||||
;; https://github.com/jtroo/kanata/discussions/1765
|
||||
;; DO NOT USE THE SUBLAYERS IN A FREQUENTLY PRESSED KEY LIKE SPACEBAR
|
||||
;; It made typing spaces a pain in the ass, enter is not pressed to often, so it works way better
|
||||
;; msubl (tap-hold-press $subl-time $subl-time ret (layer-while-held sublayers))
|
||||
|
||||
;; Execute script
|
||||
;; maltt (cmd open "btt://execute_assigned_actions_for_trigger/?uuid=F35EF770-FAA5-448A-957D-70BB449DEB0F")
|
||||
|
||||
;; key and script at the same time
|
||||
;; maltt (tap-hold $tap-time $hold-time lsft (cmd open "btt://execute_assigned_actions_for_trigger/?uuid=F35EF770-FAA5-448A-957D-70BB449DEB0F"))
|
||||
)
|
||||
|
||||
;; Blank layer
|
||||
;; (deflayer {{NAME}}
|
||||
;; esc XX XX XX XX XX XX XX XX XX XX XX XX ;; function row
|
||||
;; grv XX XX XX XX XX XX XX XX XX XX XX XX bspc ;; number row
|
||||
;; tab XX XX XX XX XX XX XX XX XX XX XX XX XX ;; top letter row
|
||||
;; caps XX XX XX XX XX XX XX XX XX XX XX ret ;; home row
|
||||
;; lsft XX XX XX XX XX XX XX XX XX XX XX rsft ;; bottom letter row
|
||||
;; lctl lalt lmet spc rmet ralt ◀ ▼ ▶ ;; control row
|
||||
;; )
|
||||
|
||||
;; Main layer
|
||||
;;
|
||||
;; Disable most function keys, and add homerow mods.
|
||||
;;
|
||||
(deflayer main
|
||||
esc brdn bru XX XX XX XX XX XX XX mute vold volu
|
||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||
tab q w e r t y u i o p [ ] \
|
||||
@mlms @mlctl @mlalt @mlmet @mlsft g h @mrsft @mrmet @mralt @mrctl ' @mrms
|
||||
lsft z x c v b n m , . / ▲ rsft
|
||||
lctl lalt @mlnums spc @mrnums ralt ◀ ▼ ▶
|
||||
)
|
||||
|
||||
;; Number and Symbols layer
|
||||
(deflayer nums_and_symbols
|
||||
esc XX XX XX XX XX XX XX XX XX XX XX XX
|
||||
S-grv XX XX XX XX XX XX XX XX XX XX - = bspc
|
||||
grv S-1 S-9 S-0 S-2 XX XX 1 2 3 \ XX XX XX
|
||||
XX [ ] S-[ S-] XX XX 4 5 6 . XX ret
|
||||
lsft S-7 S-8 S-4 S-3 XX XX 7 8 9 / XX rsft
|
||||
lctl lalt lmet 0 rmet ralt ◀ ▼ ▶
|
||||
)
|
||||
|
||||
(defalias
|
||||
mwu (mwheel-up 50 120)
|
||||
mwd (mwheel-down 50 120)
|
||||
mwl (mwheel-left 50 120)
|
||||
mwr (mwheel-right 50 120)
|
||||
|
||||
ma↑ (movemouse-accel-up 5 1000 1 3)
|
||||
ma← (movemouse-accel-left 5 1000 1 3)
|
||||
ma↓ (movemouse-accel-down 5 1000 1 3)
|
||||
ma→ (movemouse-accel-right 5 1000 1 3)
|
||||
|
||||
sm (setmouse 32228 32228)
|
||||
|
||||
fst (movemouse-speed 200)
|
||||
)
|
||||
|
||||
;; Mouse and arrow layer
|
||||
(deflayer mouse
|
||||
esc XX XX XX XX XX XX XX XX XX XX XX XX ;; function row
|
||||
grv XX XX XX XX XX XX XX XX XX XX XX XX bspc ;; number row
|
||||
tab XX XX ▲ XX XX @mwl @mwd @mwu @mwr XX XX XX XX ;; top letter row
|
||||
caps XX ◀ ▼ ▶ XX @ma← @ma↓ @ma↑ @ma→ XX XX mrtp ;; home row
|
||||
lsft XX XX XX XX XX XX XX XX XX XX XX rsft ;; bottom letter row
|
||||
lctl lalt lmet mltp rmet ralt XX XX XX ;; control row
|
||||
)
|
||||
156
env/.config/kanata/voyager.kbd
vendored
Normal file
156
env/.config/kanata/voyager.kbd
vendored
Normal file
@@ -0,0 +1,156 @@
|
||||
;; ZSA Voyager configuration file.
|
||||
;;
|
||||
|
||||
;; Adapted from https://github.com/linkarzu/dotfiles-latest/blob/main/kanata/configs/macbook-subl.kbd
|
||||
;; Video related to this file
|
||||
;; https://youtu.be/jvJ3f4HHiMY
|
||||
|
||||
;; Kanata docs
|
||||
;; https://github.com/jtroo/kanata/blob/main/docs/config.adoc
|
||||
|
||||
;; OS key code mappings
|
||||
;; https://github.com/jtroo/kanata/blob/main/parser/src/keys/mod.rs
|
||||
|
||||
(defcfg
|
||||
process-unmapped-keys yes
|
||||
log-layer-changes no
|
||||
danger-enable-cmd yes
|
||||
concurrent-tap-hold yes
|
||||
rapid-event-delay 3
|
||||
allow-hardware-repeat false
|
||||
|
||||
;; When any non-chord activation happens, this timeout begins. Until this timeout expires
|
||||
;; all inputs will immediately skip chords processing and be processed by the active layer.
|
||||
;; chords-v2-min-idle 250
|
||||
)
|
||||
|
||||
;; Variables
|
||||
(defvar
|
||||
tap-higher 400
|
||||
tap-time 200
|
||||
tap-time-plus 300
|
||||
hold-time-plus 300
|
||||
hold-time 200
|
||||
chord-time 60
|
||||
subl-time 200
|
||||
tmux-delay 40
|
||||
)
|
||||
|
||||
;; Only one defsrc is allowed.
|
||||
;;
|
||||
;; defsrc defines the keys that will be intercepted by kanata. The order of the
|
||||
;; keys matches with deflayer declarations and all deflayer declarations must
|
||||
;; have the same number of keys as defsrc. Any keys not listed in defsrc will
|
||||
;; be passed straight to the operating system.
|
||||
(defsrc
|
||||
;;----------------LEFT-------------------;------------------RIGHT-------------------;;
|
||||
= 1 2 3 4 5 6 7 8 9 0 -
|
||||
grv q w e r t y u i o p \
|
||||
esc a s d f g h j k l ; '
|
||||
lsft z x c v b n m , . / rsft
|
||||
ret tab bspc spc
|
||||
)
|
||||
|
||||
(defalias
|
||||
;; Modifier keys - Left
|
||||
mlctl (tap-hold $tap-time $hold-time a lctl)
|
||||
mlalt (tap-hold $tap-time $hold-time s lalt)
|
||||
mlmet (tap-hold $tap-time $hold-time d lmet)
|
||||
mlsft (tap-hold $tap-time $hold-time f lsft)
|
||||
|
||||
;; Modifier keys - Right
|
||||
mrsft (tap-hold $tap-time $hold-time j rsft)
|
||||
mrmet (tap-hold $tap-time $hold-time k rmet)
|
||||
mralt (tap-hold $tap-time $hold-time l ralt)
|
||||
mrctl (tap-hold $tap-time $hold-time ; rctl)
|
||||
|
||||
mretu (tap-hold $tap-time $hold-time tab ret)
|
||||
|
||||
;; number and symbols layer trigger keys.
|
||||
mlnums (tap-hold-press $tap-time-plus $hold-time-plus ret (layer-while-held nums_and_symbols))
|
||||
mrnums (tap-hold-press $tap-time-plus $hold-time-plus spc (layer-while-held nums_and_symbols))
|
||||
|
||||
;; mouse layer trigger keys.
|
||||
mlms (tap-hold-press $tap-time $hold-time esc (layer-while-held mouse))
|
||||
mrms (tap-hold-press $tap-time $hold-time ' (layer-while-held mouse))
|
||||
|
||||
;; Multi
|
||||
mhypr (tap-hold $tap-time $hold-time bspc (multi lsft lctl lalt lmet)) ;; Hyper key
|
||||
|
||||
;; Sublayers
|
||||
;; I implemented sublayers thanks to the help in this discussion
|
||||
;; https://github.com/jtroo/kanata/discussions/1765
|
||||
;; DO NOT USE THE SUBLAYERS IN A FREQUENTLY PRESSED KEY LIKE SPACEBAR
|
||||
;; It made typing spaces a pain in the ass, enter is not pressed to often, so it works way better
|
||||
;; msubl (tap-hold-press $subl-time $subl-time ret (layer-while-held sublayers))
|
||||
|
||||
;; Execute script
|
||||
;; maltt (cmd open "btt://execute_assigned_actions_for_trigger/?uuid=F35EF770-FAA5-448A-957D-70BB449DEB0F")
|
||||
|
||||
;; key and script at the same time
|
||||
;; maltt (tap-hold $tap-time $hold-time lsft (cmd open "btt://execute_assigned_actions_for_trigger/?uuid=F35EF770-FAA5-448A-957D-70BB449DEB0F"))
|
||||
)
|
||||
|
||||
;; BLANK LAYER
|
||||
;; (deflayer {{NAME}}
|
||||
;;;;----------------LEFT-------------------;------------------RIGHT-------------------;;
|
||||
;; = 1 2 3 4 5 6 7 8 9 0 -
|
||||
;; grv q w e r t y u i o p \
|
||||
;; esc a s d f g h j k l ; '
|
||||
;; lsft z x c v b n m , . / rsft
|
||||
;; ret tab bspc spc
|
||||
;; )
|
||||
|
||||
;; Main layer
|
||||
(deflayer main
|
||||
;;----------------LEFT----------------------------;-------------------------RIGHT---------------------------;;
|
||||
= 1 2 3 4 5 6 7 8 9 0 -
|
||||
grv q w e r t y u i o p \
|
||||
@mlms @mlctl @mlalt @mlmet @mlsft g h @mrsft @mrmet @mralt @mrctl @mrms
|
||||
lsft z x c v b n m , . / rsft
|
||||
@mlnums tab @mhypr @mrnums
|
||||
)
|
||||
|
||||
(defalias
|
||||
;; Number layer modifier keys - Left
|
||||
nlctl (tap-hold $tap-time $hold-time [ lctl)
|
||||
nlalt (tap-hold $tap-time $hold-time ] lalt)
|
||||
nlmet (tap-hold $tap-time $hold-time S-[ lmet)
|
||||
nlsft (tap-hold $tap-time $hold-time S-] lsft)
|
||||
)
|
||||
|
||||
;; Number and Symbols layer
|
||||
(deflayer nums_and_symbols
|
||||
;;----------------LEFT---------------------------------;-------------------RIGHT-------------------;;
|
||||
= XX XX XX XX XX XX XX XX XX XX -
|
||||
S-grv S-1 S-9 S-0 S-2 XX - 1 2 3 \ \
|
||||
XX @nlctl @nlalt @nlmet @nlsft XX S-= 4 5 6 . '
|
||||
lsft S-7 S-8 S-3 S-4 XX S-8 7 8 9 / rsft
|
||||
@mlnums tab @mhypr 0
|
||||
)
|
||||
|
||||
(defalias
|
||||
mwu (mwheel-up 50 120)
|
||||
mwd (mwheel-down 50 120)
|
||||
mwl (mwheel-left 50 120)
|
||||
mwr (mwheel-right 50 120)
|
||||
|
||||
ma↑ (movemouse-accel-up 5 1000 1 3)
|
||||
ma← (movemouse-accel-left 5 1000 1 3)
|
||||
ma↓ (movemouse-accel-down 5 1000 1 3)
|
||||
ma→ (movemouse-accel-right 5 1000 1 3)
|
||||
|
||||
sm (setmouse 32228 32228)
|
||||
|
||||
fst (movemouse-speed 200)
|
||||
)
|
||||
|
||||
;; Mouse and arrow layer
|
||||
(deflayer mouse
|
||||
;;----------------LEFT-------------------;------------------RIGHT-------------------;;
|
||||
XX brdn bru XX XX XX XX XX mute vold volu XX
|
||||
XX XX XX ▲ XX XX @mwl @mwd @mwu @mwr XX XX
|
||||
XX XX ◀ ▼ ▶ XX @ma← @ma↓ @ma↑ @ma→ XX XX
|
||||
XX XX XX XX XX XX XX XX XX XX XX XX
|
||||
ret tab mltp mrtp
|
||||
)
|
||||
5
env/.config/npm/npmrc
vendored
Normal file
5
env/.config/npm/npmrc
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# Needs linked to ~/.config/npm/npmrc
|
||||
|
||||
prefix=${XDG_DATA_HOME}/npm
|
||||
cache=${XDG_CACHE_HOME}/npm
|
||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
||||
8
env/.config/nvim/.gitignore
vendored
Normal file
8
env/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
env/.config/nvim/.neoconf.json
vendored
Normal file
15
env/.config/nvim/.neoconf.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
201
env/.config/nvim/LICENSE
vendored
Normal file
201
env/.config/nvim/LICENSE
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
4
env/.config/nvim/README.md
vendored
Normal file
4
env/.config/nvim/README.md
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
20
env/.config/nvim/after/ftplugin/markdown.lua
vendored
Normal file
20
env/.config/nvim/after/ftplugin/markdown.lua
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Markdown specific key maps.
|
||||
--
|
||||
local todos = require("todo-comments")
|
||||
local keywords = { "WARN", "WARNING", "IMPORTANT" }
|
||||
|
||||
-- Show all the warnings in the quick fix list.
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>tw",
|
||||
"<CMD>Trouble todo toggle filter = {tag = {WARN, IMPORTANT}}<CR>",
|
||||
{ desc = "[T]odo [W]arnings" }
|
||||
)
|
||||
|
||||
vim.keymap.set("n", "]w", function()
|
||||
todos.jump_next({ keywords = keywords })
|
||||
end, { desc = "Next [W]arning" })
|
||||
|
||||
vim.keymap.set("n", "[w", function()
|
||||
todos.jump_prev({ keywords = keywords })
|
||||
end, { desc = "Previous [W]arning" })
|
||||
2
env/.config/nvim/after/ftplugin/swift.lua
vendored
Normal file
2
env/.config/nvim/after/ftplugin/swift.lua
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
15
env/.config/nvim/init.lua
vendored
Normal file
15
env/.config/nvim/init.lua
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugin
|
||||
vim.g.netrw_browsex_viewer = "xdg-open"
|
||||
|
||||
require("config.lazy")
|
||||
|
||||
vim.filetype.add({
|
||||
pattern = {
|
||||
[".*"] = function(path, bufnr)
|
||||
local first_line = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ""
|
||||
if first_line:match("^#!.*zsh") then
|
||||
return "bash"
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
27
env/.config/nvim/lazyvim.json
vendored
Normal file
27
env/.config/nvim/lazyvim.json
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.mini-snippets",
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.editor.fzf",
|
||||
"lazyvim.plugins.extras.editor.harpoon2",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.ansible",
|
||||
"lazyvim.plugins.extras.lang.clangd",
|
||||
"lazyvim.plugins.extras.lang.cmake",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.sql",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.tex",
|
||||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.lang.yaml",
|
||||
"lazyvim.plugins.extras.util.startuptime"
|
||||
],
|
||||
"install_version": 8,
|
||||
"news": {
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
86
env/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
86
env/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
local defaultGroupOptions = { clear = true }
|
||||
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
|
||||
local createCmd = vim.api.nvim_create_autocmd
|
||||
|
||||
createCmd("BufEnter", {
|
||||
pattern = "*.md",
|
||||
group = markdownGroup,
|
||||
callback = function(_)
|
||||
-- HACK: Set filetype to markdown for '.md' files.
|
||||
-- Not sure why it doesn't detect these as markdown files, but this fixes the issue.
|
||||
vim.cmd.setlocal("filetype=markdown")
|
||||
vim.cmd.setlocal("textwidth=120")
|
||||
vim.cmd.setlocal("spell spelllang=en_us")
|
||||
end,
|
||||
})
|
||||
|
||||
-- Hyprlang LSP
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
|
||||
pattern = { "*.hl", "hypr*.conf" },
|
||||
callback = function(event)
|
||||
print(string.format("starting hyprls for %s", vim.inspect(event)))
|
||||
vim.lsp.start({
|
||||
name = "hyprlang",
|
||||
cmd = { "hyprls" },
|
||||
root_dir = vim.fn.getcwd(),
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
-- Markdown
|
||||
-- createCmd("BufWritePost", {
|
||||
-- pattern = { "*.md", "*.markdown" },
|
||||
-- group = markdownGroup,
|
||||
-- callback = function(_)
|
||||
-- -- local cursor = vim.fn.getpos(".")
|
||||
-- vim.cmd("FormatWrite")
|
||||
-- -- vim.fn.setpos(".", cursor)
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
-- Set neomutt compose email file types to markdown.
|
||||
vim.api.nvim_create_autocmd("BufRead", {
|
||||
pattern = "neomutt*",
|
||||
callback = function()
|
||||
vim.cmd.setlocal("filetype=markdown")
|
||||
vim.cmd.setlocal("textwidth=120")
|
||||
vim.cmd.setlocal("spell spelllang=en_us")
|
||||
end
|
||||
})
|
||||
|
||||
-- Go
|
||||
createCmd("BufWritePre", {
|
||||
pattern = "*.go",
|
||||
callback = function()
|
||||
require("go.format").goimport()
|
||||
end,
|
||||
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
|
||||
})
|
||||
|
||||
-- GoPass
|
||||
vim.api.nvim_exec2(
|
||||
[[
|
||||
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""
|
||||
]],
|
||||
{}
|
||||
)
|
||||
|
||||
-- Highlight when yanking.
|
||||
createCmd("TextYankPost", {
|
||||
desc = "Highlight when yanking text.",
|
||||
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Force zsh scripts to use bash syntax hyighlighting.
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||
pattern = "*",
|
||||
callback = function(args)
|
||||
local first_line = vim.api.nvim_buf_get_lines(args.buf, 0, 1, false)[1] or ""
|
||||
if first_line:match("^#!.*zsh") then
|
||||
vim.bo[args.buf].filetype = "bash"
|
||||
end
|
||||
end,
|
||||
})
|
||||
54
env/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
54
env/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
local keymap = vim.keymap.set
|
||||
local default_options = { noremap = true, silent = true }
|
||||
local wk = require("which-key")
|
||||
|
||||
local wk_add = function(mode, keymaps)
|
||||
wk.add(keymaps, { mode = mode, silent = true })
|
||||
end
|
||||
|
||||
keymap("i", "jk", "<ESC>", default_options)
|
||||
|
||||
local make_executable = function()
|
||||
local file = vim.fn.expand("%:p")
|
||||
vim.cmd("silent !chmod +x " .. file)
|
||||
print("Made " .. file .. " executable")
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Normal Mode
|
||||
--------------------------------------------------------------------------------
|
||||
wk_add("n", {
|
||||
{ "<Left>", ":vertical resize +1<CR>", desc = "Resize Pane Left" },
|
||||
{ "<Right>", ":vertical resize -1<CR>", desc = "Resize Pane Right" },
|
||||
{ "<Up>", "resize -1<CR>", desc = "Resize Pane Up" },
|
||||
{ "<Down>", "resize +1<CR>", desc = "Resize Pane Down" },
|
||||
|
||||
{ "<leader>n", "<CMD>:noh<CR>", desc = "[N]o highlighting" },
|
||||
{ "<leader>s", "<CMD>:set spell!<CR>", desc = "[S]pell check toggle" },
|
||||
{ "<C-s>", "<CMD>:write<CR>", desc = "[S]ave" },
|
||||
|
||||
{ "J", ":move .+1<CR>==", desc = "Move line down" },
|
||||
{ "K", ":move .-2<CR>==", desc = "Move line up" },
|
||||
|
||||
{ "<leader>x", make_executable, desc = "Make current file e[x]ecutable" },
|
||||
{ "<leader>z", "<CMD>:ZenMode<CR>", desc = "[Z]en Mode" },
|
||||
})
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Visual Mode
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
vim.keymap.set("v", "K", ":move '<-2<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
||||
vim.keymap.set("v", "J", ":move '>+1<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
||||
|
||||
-- Toggle term key maps, that get attached when terminal is opened.
|
||||
function _G.set_terminal_keymaps()
|
||||
local opts = { buffer = 0 }
|
||||
keymap("t", "<esc>", [[<C-\><C-n>]], opts)
|
||||
end
|
||||
|
||||
vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
|
||||
69
env/.config/nvim/lua/config/lazy.lua
vendored
Normal file
69
env/.config/nvim/lua/config/lazy.lua
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
{
|
||||
import = "lazyvim.plugins.extras.editor.mini-files",
|
||||
opts = {
|
||||
options = {
|
||||
use_as_default_explorer = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
import = "lazyvim.plugins.extras.coding.blink",
|
||||
keymap = {
|
||||
preset = "enter",
|
||||
["<C-y>"] = { "select_and_accept" },
|
||||
},
|
||||
},
|
||||
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -1,11 +1,16 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
--
|
||||
local o = vim.opt
|
||||
local wo = vim.wo
|
||||
local fn = vim.fn
|
||||
|
||||
vim.cmd.set('inccommand=split')
|
||||
o.updatetime = 300 -- faster completion
|
||||
o.timeoutlen = 400 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
o.ttimeoutlen = 0 -- Time in milliseconds to wait for a key code sequence to complete
|
||||
vim.cmd.set("inccommand=split")
|
||||
o.filetype = "on"
|
||||
o.updatetime = 500 -- faster completion
|
||||
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
||||
o.backup = false -- creates a backup file
|
||||
o.swapfile = false -- enable/disable swap file creation
|
||||
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
||||
@@ -13,7 +18,7 @@ o.undofile = false -- enable/disable undo file creation
|
||||
o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory
|
||||
o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered.
|
||||
o.hidden = true -- required to keep multiple buffers and open multiple buffers
|
||||
o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||
--o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||
o.fileencoding = "utf-8" -- the encoding written to a file
|
||||
o.conceallevel = 0 -- so that `` is visible in markdown files
|
||||
o.number = true -- set numbered lines
|
||||
@@ -33,21 +38,22 @@ o.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
||||
o.tabstop = 2 -- how many columns a tab counts for
|
||||
o.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
o.cursorline = true -- highlight the current line
|
||||
o.scrolloff = 8 -- Minimal number of screen lines to keep above and below the cursor
|
||||
o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor
|
||||
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
||||
o.hlsearch = true -- highlight all matches on previous search pattern
|
||||
o.hlsearch = false -- highlight all matches on previous search pattern
|
||||
o.ignorecase = true -- ignore case in search patterns
|
||||
o.foldenable = false -- disable folding; enable with zi
|
||||
o.foldmethod = "expr"
|
||||
o.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
vim.cmd.set("nolist") -- don't show listchars.
|
||||
-- o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<"
|
||||
o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣"
|
||||
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
||||
wo.colorcolumn = "99999"
|
||||
o.wildmode = "full"
|
||||
o.lazyredraw = true -- do not redraw screen while running macros
|
||||
o.lazyredraw = false -- do not redraw screen while running macros
|
||||
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
||||
o.completeopt = {"menu", "menuone", "noselect", "noinsert"} -- A comma separated list of options for Insert mode completion
|
||||
o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion
|
||||
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
||||
o.wildignore = [[
|
||||
.git,.hg,.svn
|
||||
@@ -62,3 +68,5 @@ o.wildignore = [[
|
||||
*.swp,.lock,.DS_Store,._*
|
||||
*/tmp/*,*.so,*.swp,*.zip,**/node_modules/**,**/target/**,**.terraform/**"
|
||||
]]
|
||||
o.viminfo = "" -- disable viminfo from copying information from current session, for security.
|
||||
vim.g.snacks_animate = false
|
||||
8
env/.config/nvim/lua/plugins/cmp.lua
vendored
Normal file
8
env/.config/nvim/lua/plugins/cmp.lua
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"saghen/blink.cmp",
|
||||
opts = {
|
||||
keymap = {
|
||||
preset = "default"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
env/.config/nvim/lua/plugins/colorscheme.lua
vendored
Normal file
9
env/.config/nvim/lua/plugins/colorscheme.lua
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin",
|
||||
},
|
||||
},
|
||||
}
|
||||
4
env/.config/nvim/lua/plugins/disabled.lua
vendored
Normal file
4
env/.config/nvim/lua/plugins/disabled.lua
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
{ "nvim-neo-tree/neo-tree.nvim", enabled = false },
|
||||
{ "akinsho/bufferline.nvim", enabled = false },
|
||||
}
|
||||
23
env/.config/nvim/lua/plugins/fidget.lua
vendored
Normal file
23
env/.config/nvim/lua/plugins/fidget.lua
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
"j-hui/fidget.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
local fidget = require("fidget")
|
||||
fidget.setup({
|
||||
notification = {
|
||||
window = {
|
||||
normal_hl = "String", -- Base highlight group in the notification window
|
||||
winblend = 0, -- Background color opacity in the notification window
|
||||
border = "rounded", -- Border around the notification window
|
||||
zindex = 45, -- Stacking priority of the notification window
|
||||
max_width = 0, -- Maximum width of the notification window
|
||||
max_height = 0, -- Maximum height of the notification window
|
||||
x_padding = 1, -- Padding from right edge of window boundary
|
||||
y_padding = 1, -- Padding from bottom edge of window boundary
|
||||
align = "bottom", -- How to align the notification window
|
||||
relative = "editor", -- What the notification window position is relative to
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
30
env/.config/nvim/lua/plugins/formatter.lua
vendored
Normal file
30
env/.config/nvim/lua/plugins/formatter.lua
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
return {
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
formatters = {
|
||||
["markdown-toc"] = {
|
||||
condition = function(_, ctx)
|
||||
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
|
||||
if line:find("<!%-%- toc %-%->") then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
["markdownlint-cli2"] = {
|
||||
condition = function(_, ctx)
|
||||
local diag = vim.tbl_filter(function(d)
|
||||
return d.source == "markdownlint"
|
||||
end, vim.diagnostic.get(ctx.buf))
|
||||
return #diag > 0
|
||||
end,
|
||||
},
|
||||
},
|
||||
formatters_by_ft = {
|
||||
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
||||
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
||||
lua = { "stulua" },
|
||||
swift = { "swiftformat" },
|
||||
},
|
||||
},
|
||||
}
|
||||
78
env/.config/nvim/lua/plugins/harpoon.lua
vendored
Normal file
78
env/.config/nvim/lua/plugins/harpoon.lua
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
return {
|
||||
{
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
opts = {
|
||||
settings = {
|
||||
save_on_toggle = true,
|
||||
sync_on_ui_close = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<C-e>",
|
||||
function()
|
||||
require("harpoon").ui:toggle_quick_menu(require("harpoon"):list())
|
||||
end,
|
||||
desc = "Open Harpoon window.",
|
||||
},
|
||||
{
|
||||
"<leader>a",
|
||||
function()
|
||||
require("harpoon"):list():add()
|
||||
end,
|
||||
desc = "[A]dd to the harpoon list.",
|
||||
},
|
||||
{
|
||||
"<A-y>",
|
||||
function()
|
||||
require("harpoon"):list():select(1)
|
||||
end,
|
||||
desc = "Select first harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-u>",
|
||||
function()
|
||||
require("harpoon"):list():select(2)
|
||||
end,
|
||||
desc = "Select second harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-i>",
|
||||
function()
|
||||
require("harpoon"):list():select(3)
|
||||
end,
|
||||
desc = "Select third harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-o>",
|
||||
function()
|
||||
require("harpoon"):list():select(4)
|
||||
end,
|
||||
desc = "Select fourth harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<C-[>",
|
||||
function()
|
||||
require("harpoon"):list():prev()
|
||||
end,
|
||||
desc = "Previous harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<C-]>",
|
||||
function()
|
||||
require("harpoon"):list():next()
|
||||
end,
|
||||
desc = "Next harpoon buffer.",
|
||||
},
|
||||
-- Extensions
|
||||
require("harpoon"):extend({
|
||||
UI_CREATE = function(cx)
|
||||
vim.keymap.set("n", "<C-v>", function()
|
||||
require("harpoon").ui:select_menu_item({ vsplit = true })
|
||||
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
||||
end,
|
||||
}),
|
||||
},
|
||||
},
|
||||
}
|
||||
29
env/.config/nvim/lua/plugins/init.lua
vendored
Normal file
29
env/.config/nvim/lua/plugins/init.lua
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
-- Plugins that don't require much configuration are in here.
|
||||
--
|
||||
return {
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
opts = {
|
||||
indent = { enabled = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"christoomey/vim-tmux-navigator",
|
||||
lazy = false,
|
||||
cmd = {
|
||||
"TmuxNavigateLeft",
|
||||
"TmuxNavigateDown",
|
||||
"TmuxNavigateUp",
|
||||
"TmuxNavigateRight",
|
||||
"TmuxNavigatePrevious",
|
||||
"TmuxNavigatorProcessList",
|
||||
},
|
||||
keys = {
|
||||
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
||||
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
||||
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
||||
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
||||
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
||||
},
|
||||
},
|
||||
}
|
||||
12
env/.config/nvim/lua/plugins/lint.lua
vendored
Normal file
12
env/.config/nvim/lua/plugins/lint.lua
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-lint",
|
||||
opts = {
|
||||
linters = {
|
||||
markdownlint = {
|
||||
args = { "--config", "~/.markdownlint.jsonc", "--" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
169
env/.config/nvim/lua/plugins/lsp.lua
vendored
Normal file
169
env/.config/nvim/lua/plugins/lsp.lua
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
return {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
},
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"clangd",
|
||||
"marksman",
|
||||
"shfmt",
|
||||
"tinymist",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"cmake",
|
||||
"dockerfile",
|
||||
"editorconfig",
|
||||
"ini",
|
||||
"jq",
|
||||
"latex",
|
||||
"make",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
servers = {
|
||||
bashls = {},
|
||||
clangd = {},
|
||||
dockerls = {},
|
||||
gopls = {},
|
||||
harper_ls = {},
|
||||
jsonls = {},
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { "vim" },
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
marksman = {},
|
||||
sourcekit = {},
|
||||
tinymist = {
|
||||
settings = {
|
||||
formatterMode = "typstyle",
|
||||
},
|
||||
},
|
||||
yamlls = {},
|
||||
},
|
||||
setup = {
|
||||
clangd = function(_, opts)
|
||||
opts.capabilities.offsetEncoding = { "utf-16" }
|
||||
end,
|
||||
sourcekit = function(_, opts)
|
||||
opts.cmd = {
|
||||
vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) or nil,
|
||||
}
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- return {
|
||||
-- "neovim/nvim-lspconfig",
|
||||
-- event = { "BufReadPre", "BufNewFile" },
|
||||
-- dependencies = {
|
||||
-- "hrsh7th/cmp-nvim-lsp",
|
||||
-- { "antosha417/nvim-lsp-file-operations", config = true },
|
||||
-- "williamboman/mason.nvim",
|
||||
-- "williamboman/mason-lspconfig.nvim",
|
||||
-- {
|
||||
-- "folke/lazydev.nvim",
|
||||
-- ft = "lua",
|
||||
-- opts = {
|
||||
-- library = {
|
||||
-- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("mason").setup()
|
||||
-- require("mason-lspconfig").setup({
|
||||
-- opts = {
|
||||
-- ensure_installed = lsp_servers,
|
||||
-- },
|
||||
-- })
|
||||
-- local lspconfig = require("lspconfig")
|
||||
-- local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||
-- local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||
-- local opts = { noremap = true, silent = true }
|
||||
-- local on_attach = function(_, bufnr)
|
||||
-- opts.buffer = bufnr
|
||||
--
|
||||
-- opts.desc = "Show line diagnostics"
|
||||
-- vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
||||
--
|
||||
-- opts.desc = "Show diagnostics in Telescope"
|
||||
-- vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
||||
--
|
||||
-- opts.desc = "Show documentation for what is under cursor"
|
||||
-- vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
||||
--
|
||||
-- opts.desc = "[G]oto [D]efinition"
|
||||
-- vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
||||
--
|
||||
-- opts.desc = "[G]oto [D]eclaration"
|
||||
-- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||
--
|
||||
-- opts.desc = "LSP [C]ode [A]ction"
|
||||
-- vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||
--
|
||||
-- --opts.desc = "[R]e-[N]ame"
|
||||
-- --vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||
--
|
||||
-- opts.desc = "[R]eload or start LSP"
|
||||
-- vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
||||
--
|
||||
-- opts.desc = "Goto previous diagnostic"
|
||||
-- vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||
--
|
||||
-- opts.desc = "Goto next diagnostic"
|
||||
-- vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||
-- end
|
||||
--
|
||||
-- for _, lsp in ipairs(lsp_servers) do
|
||||
-- lspconfig[lsp].setup({
|
||||
-- capabilities = capabilities,
|
||||
-- on_attach = on_attach,
|
||||
-- on_init = function(client)
|
||||
-- -- HACK: to fix some issues with LSP
|
||||
-- -- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
||||
-- client.offset_encoding = "utf-8"
|
||||
-- end,
|
||||
-- cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
||||
-- })
|
||||
-- end
|
||||
--
|
||||
-- -- nice icons
|
||||
-- local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||
-- for type, icon in pairs(signs) do
|
||||
-- local hl = "DiagnosticSign" .. type
|
||||
-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
||||
-- end
|
||||
--
|
||||
-- -- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
||||
-- vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
||||
-- end,
|
||||
-- }
|
||||
39
env/.config/nvim/lua/plugins/luasnip.lua
vendored
Normal file
39
env/.config/nvim/lua/plugins/luasnip.lua
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
opts = function()
|
||||
LazyVim.cmp.actions.snippet_forward = function()
|
||||
if require("luasnip").jumpable(1) then
|
||||
require("luasnip").jump(1)
|
||||
return true
|
||||
end
|
||||
end
|
||||
LazyVim.cmp.actions.snippet_stop = function()
|
||||
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
|
||||
require("luasnip").unlink_current()
|
||||
return true
|
||||
end
|
||||
end
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<C-k>",
|
||||
mode = { "i", "s" },
|
||||
function()
|
||||
if ls.expand_or_jumpable() then
|
||||
ls.expand_or_jump()
|
||||
end
|
||||
end
|
||||
},
|
||||
{
|
||||
"<C-j>",
|
||||
mode = { "i", "s" },
|
||||
function()
|
||||
if ls.jumpable(-1) then
|
||||
ls.jump(-1)
|
||||
end
|
||||
end
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
40
env/.config/nvim/lua/plugins/oil.lua
vendored
Normal file
40
env/.config/nvim/lua/plugins/oil.lua
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
return {
|
||||
"stevearc/oil.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
opts = {
|
||||
columns = { "icon" },
|
||||
keymaps = {
|
||||
["<C-h>"] = false,
|
||||
["<M-h>"] = "actions.select_split",
|
||||
["<C-v>"] = {
|
||||
"actions.select",
|
||||
opts = { vertical = true },
|
||||
desc = "Open the entry in a vertical split",
|
||||
},
|
||||
view_options = {
|
||||
show_hidden = true,
|
||||
is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
||||
-- Don't show .DS_Store in output.
|
||||
-- local is_ds_store = name ~= ".DS_Store"
|
||||
-- return not is_ds_store
|
||||
return false
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
-- Show the parent directory in current window.
|
||||
{ "-", "<CMD>Oil<CR>", desc = "Open parent directory." },
|
||||
-- Open parent directory in floating window.
|
||||
{
|
||||
"<space>-",
|
||||
function()
|
||||
require("oil").toggle_float()
|
||||
end,
|
||||
desc = "Open parent directory in floating window.",
|
||||
},
|
||||
},
|
||||
}
|
||||
47
env/.config/nvim/lua/plugins/snacks.lua
vendored
Normal file
47
env/.config/nvim/lua/plugins/snacks.lua
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
-- NOTE: Header looks jacked up here, but fine when rendered in the ui.
|
||||
return {
|
||||
"folke/snacks.nvim",
|
||||
opts = {
|
||||
picker = {
|
||||
hidden = true,
|
||||
ignored = true
|
||||
},
|
||||
image = {
|
||||
doc = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
dashboard = {
|
||||
row = nil,
|
||||
col = nil,
|
||||
preset = {
|
||||
header = [[
|
||||
*
|
||||
+++++
|
||||
+++++++++
|
||||
==+++++++++++
|
||||
+===:+++++++++++*
|
||||
+======--+++++++++++*##+====
|
||||
+==========:=+++++++++++#+====
|
||||
+=============-=++++++++++++====
|
||||
+================-:+++++++++++++==
|
||||
+===================--++++++++++++++*
|
||||
+======================--+++++++++++++++*
|
||||
=========================-++++++++++++++++
|
||||
==========================:+++++++++++++++
|
||||
===========================:++++++++++++++
|
||||
===========================-.-++++++++++++
|
||||
===========================-::.=++++++++++
|
||||
===========================----..=++++++++
|
||||
===========================------..:=+++++
|
||||
===========================--------:...-++
|
||||
===========================------------:.:
|
||||
===========================---------------
|
||||
===========================---------------
|
||||
===========================---------------
|
||||
]],
|
||||
},
|
||||
|
||||
},
|
||||
},
|
||||
}
|
||||
11
env/.config/nvim/lua/plugins/telescope.lua
vendored
Normal file
11
env/.config/nvim/lua/plugins/telescope.lua
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
{
|
||||
import = "lazyvim.plugins.extras.editor.telescope",
|
||||
enabled = false,
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"swift",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
14
env/.config/nvim/lua/plugins/todo-comment.lua
vendored
Normal file
14
env/.config/nvim/lua/plugins/todo-comment.lua
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"folke/trouble.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>xt", false },
|
||||
{ "<leader>xT", false },
|
||||
{ "<leader>tq", "<CMD>Trouble todo toggle<CR>", desc = "[T]odo [Q]uick fix list." },
|
||||
{ "<leader><leader>t", "<CMD>TodoTelescope<CR>", desc = "[T]odo telescope list." },
|
||||
{ "<leader>tl", "<CMD>TodoLocList<CR>", desc = "[T]odo [L]ocation list." },
|
||||
},
|
||||
}
|
||||
15
env/.config/nvim/lua/plugins/typst-preview.lua
vendored
Normal file
15
env/.config/nvim/lua/plugins/typst-preview.lua
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
'chomosuke/typst-preview.nvim',
|
||||
ft = 'typst', -- or ft = 'typst'
|
||||
version = '1.*',
|
||||
opts = {
|
||||
debug = true,
|
||||
}, -- lazy.nvim will implicitly calls `setup {}`
|
||||
keys = {
|
||||
{
|
||||
"<leader>tp",
|
||||
"<CMD>TypstPreviewToggle<CR>",
|
||||
desc = "Toggle typst preview."
|
||||
},
|
||||
}
|
||||
}
|
||||
73
env/.config/nvim/lua/plugins/xcodebuild.lua
vendored
Normal file
73
env/.config/nvim/lua/plugins/xcodebuild.lua
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
local progress_handle
|
||||
|
||||
return {
|
||||
"wojciech-kulik/xcodebuild.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
opts = {
|
||||
show_build_progress_bar = false,
|
||||
logs = {
|
||||
auto_open_on_success_tests = false,
|
||||
auto_open_on_failed_tests = false,
|
||||
auto_open_on_success_build = false,
|
||||
auto_open_on_failed_build = false,
|
||||
auto_focus = false,
|
||||
auto_close_on_app_launch = true,
|
||||
only_summary = true,
|
||||
notify = function(message, severity)
|
||||
local fidget = require("fidget")
|
||||
if progress_handle then
|
||||
progress_handle.message = message
|
||||
if not message:find("Loading") then
|
||||
progress_handle:finish()
|
||||
progress_handle = nil
|
||||
if vim.trim(message) ~= "" then
|
||||
fidget.notify(message, severity)
|
||||
end
|
||||
end
|
||||
else
|
||||
fidget.notify(message, severity)
|
||||
end
|
||||
end,
|
||||
notify_progress = function(message)
|
||||
local progress = require("fidget.progress")
|
||||
|
||||
if progress_handle then
|
||||
progress_handle.title = ""
|
||||
progress_handle.message = message
|
||||
else
|
||||
progress_handle = progress.handle.create({
|
||||
message = message,
|
||||
lsp_client = { name = "xcodebuild.nvim" },
|
||||
})
|
||||
end
|
||||
end,
|
||||
},
|
||||
code_coverage = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>X", "<cmd>XcodebuildPicker<cr>", desc = "Show Xcodebuild Actions" },
|
||||
{ "<leader>xf", "<cmd>XcodebuildProjectManager<cr>", desc = "Show Project Manager Actions" },
|
||||
{ "<leader>xb", "<cmd>XcodebuildBuild<cr>", desc = "Build Project" },
|
||||
{ "<leader>xB", "<cmd>XcodebuildBuildForTesting<cr>", desc = "Build For Testing" },
|
||||
{ "<leader>xr", "<cmd>XcodebuildBuildRun<cr>", desc = "Build & Run Project" },
|
||||
{ "<leader>xt", "<cmd>XcodebuildTest<cr>", desc = "Run Tests" },
|
||||
{ "<leader>xt", "<cmd>XcodebuildTestSelected<cr>", desc = "Run Selected Tests" },
|
||||
{ "<leader>xT", "<cmd>XcodebuildTestClass<cr>", desc = "Run This Test Class" },
|
||||
{ "<leader>xl", "<cmd>XcodebuildToggleLogs<cr>", desc = "Toggle Xcodebuild Logs" },
|
||||
{ "<leader>xc", "<cmd>XcodebuildToggleCodeCoverage<cr>", desc = "Toggle Code Coverage" },
|
||||
{ "<leader>xC", "<cmd>XcodebuildShowCodeCoverageReport<cr>", desc = "Show Code Coverage Report" },
|
||||
{ "<leader>xe", "<cmd>XcodebuildTestExplorerToggle<cr>", desc = "Toggle Test Explorer" },
|
||||
{ "<leader>xs", "<cmd>XcodebuildFailingSnapshots<cr>", desc = "Show Failing Snapshots" },
|
||||
{ "<leader>xd", "<cmd>XcodebuildSelectDevice<cr>", desc = "Select Device" },
|
||||
{ "<leader>xp", "<cmd>XcodebuildSelectTestPlan<cr>", desc = "Select Test Plan" },
|
||||
{ "<leader>xq", "<cmd>Telescope quickfix<cr", desc = "Show QuickFix List" },
|
||||
{ "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", desc = "Quickfix Line" },
|
||||
{ "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", desc = "Show Code Actions" },
|
||||
},
|
||||
}
|
||||
17
env/.config/nvim/snippets/init.lua
vendored
Normal file
17
env/.config/nvim/snippets/init.lua
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
-- Setup snippets here.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
|
||||
ls.add_snippets("lua", {
|
||||
s("hello", {
|
||||
t('print("hello '),
|
||||
i(1),
|
||||
t(' world")'),
|
||||
}),
|
||||
})
|
||||
41
env/.config/nvim/snippets/lua.lua
vendored
Normal file
41
env/.config/nvim/snippets/lua.lua
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
-- Setup snippets here.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
|
||||
ls.add_snippets("lua", {
|
||||
-- Setup a new snippet file.
|
||||
s("sf", {
|
||||
t({
|
||||
"-- Setup snippets.",
|
||||
'local ls = require("luasnip")',
|
||||
"local s = ls.snippet",
|
||||
"local sn = ls.snippet_node",
|
||||
"local ms = ls.multi_snippet",
|
||||
"local i = ls.insert_node",
|
||||
"local f = ls.function_node",
|
||||
"local c = ls.choice_node",
|
||||
"local t = ls.text_node",
|
||||
"-- Add snippets",
|
||||
}),
|
||||
t('ls.add_snippets("'),
|
||||
i(1, "<file-type>"),
|
||||
t({
|
||||
'", {',
|
||||
"\t-- Define snippets here.",
|
||||
"})",
|
||||
}),
|
||||
}),
|
||||
s("c", {
|
||||
c(1, {
|
||||
fmt("{}", { i(1), t("debug") }),
|
||||
fmt("{}", { i(1), t("warning") }),
|
||||
}),
|
||||
}),
|
||||
})
|
||||
131
env/.config/nvim/snippets/swift.lua
vendored
Normal file
131
env/.config/nvim/snippets/swift.lua
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
-- Setup snippets.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
local rep = require("luasnip.extras").rep
|
||||
-- Add snippets
|
||||
ls.add_snippets("swift", {
|
||||
-- Add a dependency snippet.
|
||||
s({ trig = "@d", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
|
||||
|
||||
-- Add a dependency client.
|
||||
s(
|
||||
{
|
||||
trig = "@dc",
|
||||
desc = "Add a dependency client.",
|
||||
},
|
||||
fmt(
|
||||
[[
|
||||
public extension DependencyValues {{
|
||||
var {}: {} {{
|
||||
get {{ self[{}.self] }}
|
||||
set {{ self[{}.self] = newValue }}
|
||||
}}
|
||||
}}
|
||||
|
||||
@DependencyClient
|
||||
public struct {} {{
|
||||
|
||||
// Insert interface here.
|
||||
{}
|
||||
}}
|
||||
|
||||
extension {}: TestDependencyKey {{
|
||||
public static let testValue: {} = Self()
|
||||
}}
|
||||
|
||||
]],
|
||||
{
|
||||
i(1, "<name>"),
|
||||
i(2, "<Dependency>"),
|
||||
rep(2),
|
||||
rep(2),
|
||||
rep(2),
|
||||
i(0),
|
||||
rep(2),
|
||||
rep(2),
|
||||
}
|
||||
)
|
||||
),
|
||||
|
||||
s(
|
||||
{ trig = "str", desc = "Add a struct" },
|
||||
fmt(
|
||||
[[
|
||||
struct {}: {} {{
|
||||
{}
|
||||
}}
|
||||
]],
|
||||
{ i(1, "<Name>"), i(2, "<Protocols>"), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
-- Decorate a type or function with an @_spi(...)
|
||||
s({ trig = "@_s", desc = "Add spi modifier." }, fmt("@_spi({})", { i(1, "name") })),
|
||||
|
||||
-- Add an @_spi(...) import ...
|
||||
s(
|
||||
{ trig = "@_si", desc = "Import with spi." },
|
||||
fmt(
|
||||
[[
|
||||
@_spi({}) import {}
|
||||
{}
|
||||
]],
|
||||
{ i(1, "name"), i(2, "module"), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
-- Document a function
|
||||
-- TODO: add dynamic number of prameters.
|
||||
s(
|
||||
{ trig = "docf", desc = "Document a function." },
|
||||
fmt(
|
||||
[[
|
||||
/// {}
|
||||
///
|
||||
/// - Parameters:
|
||||
/// - {}: {}
|
||||
]],
|
||||
{ i(1, "A short description."), i(2, "<param>"), i(3, "Describe the parameter.") }
|
||||
)
|
||||
),
|
||||
|
||||
-- Add a parameter to a documentation string.
|
||||
s(
|
||||
{ trig = "param", desc = "Add a parameter to documentation" },
|
||||
fmt(
|
||||
[[
|
||||
/// - {}: {}
|
||||
]],
|
||||
{ i(1, "<param>"), i(2, "<description>") }
|
||||
)
|
||||
),
|
||||
|
||||
-- Add a withDependencies
|
||||
s(
|
||||
{ trig = "wd", desc = "withDependencies" },
|
||||
fmt(
|
||||
[[
|
||||
withDependencies {{
|
||||
$0.{} = {}
|
||||
}} operation: {{
|
||||
@Dependency(\.{}) var {}
|
||||
{}
|
||||
}}
|
||||
]],
|
||||
{
|
||||
i(1, "<dependency>"),
|
||||
i(2, "<override>"),
|
||||
rep(1),
|
||||
rep(1),
|
||||
i(0),
|
||||
}
|
||||
)
|
||||
),
|
||||
})
|
||||
21
env/.config/nvim/spell/en.utf-8.add
vendored
Executable file
21
env/.config/nvim/spell/en.utf-8.add
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
MeasureQuick
|
||||
Housh
|
||||
sealtite
|
||||
Subcool
|
||||
OEM
|
||||
NEC
|
||||
AHJ
|
||||
CFM
|
||||
Hydronic
|
||||
subpar
|
||||
quo
|
||||
IAQ
|
||||
wc
|
||||
HVAC
|
||||
dehumidification
|
||||
ansible
|
||||
orchestrator
|
||||
ethernet
|
||||
unifi
|
||||
wildcard
|
||||
Housh
|
||||
BIN
env/.config/nvim/spell/en.utf-8.add.spl
vendored
Executable file
BIN
env/.config/nvim/spell/en.utf-8.add.spl
vendored
Executable file
Binary file not shown.
3
env/.config/nvim/stylua.toml
vendored
Normal file
3
env/.config/nvim/stylua.toml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
105
env/.config/starship/starship.toml
vendored
Normal file
105
env/.config/starship/starship.toml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
command_timeout = 1000
|
||||
|
||||
format = """
|
||||
[](color_orange)\
|
||||
$os\
|
||||
$username\
|
||||
$hostname\
|
||||
[](bg:color_pink fg:color_orange)\
|
||||
$directory\
|
||||
[](fg:color_pink bg:color_bg1)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
$line_break$character"""
|
||||
|
||||
palette = 'catppuccin_mocha'
|
||||
|
||||
[palettes.catppuccin_mocha]
|
||||
color_fg0 = '#cad3f5'
|
||||
color_bg1 = '#1e2030'
|
||||
color_bg3 = '#24273a'
|
||||
color_blue = '#8aadf4'
|
||||
color_aqua = '#94e2d5'
|
||||
color_green = '#a6e3a1'
|
||||
color_orange = '#f5a97f'
|
||||
color_purple = '#c6a0f6'
|
||||
color_lavender = '#b4befe'
|
||||
color_red = '#ed8796'
|
||||
color_yellow = '#eed49f'
|
||||
color_grey = '#585b70'
|
||||
color_maroon = '#eba0ac'
|
||||
color_pink = '#f5c2e7'
|
||||
color_text = '#585b70'
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
style = "bold bg:color_orange fg:color_fg0"
|
||||
|
||||
[os.symbols]
|
||||
Windows = ""
|
||||
Ubuntu = ""
|
||||
SUSE = ""
|
||||
Raspbian = ""
|
||||
Mint = ""
|
||||
Macos = ""
|
||||
Manjaro = ""
|
||||
Linux = ""
|
||||
Gentoo = ""
|
||||
Fedora = ""
|
||||
Alpine = ""
|
||||
Amazon = ""
|
||||
Android = ""
|
||||
Arch = ""
|
||||
Artix = ""
|
||||
CentOS = ""
|
||||
Debian = ""
|
||||
Redhat = ""
|
||||
RedHatEnterprise = ""
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bold bg:color_orange fg:color_text"
|
||||
style_root = "bold bg:color_orange fg:color_text"
|
||||
format = '[ $user ]($style)'
|
||||
|
||||
[hostname]
|
||||
ssh_only = true
|
||||
format = '[$ssh_symbol : $hostname](bold bg:color_orange fg:color_text)'
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
style = "bold fg:color_text bg:color_pink"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
truncate_to_repo = true
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
"Developer" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:color_bg1"
|
||||
format = '[[ $symbol $branch ](bold fg:color_green bg:color_bg1)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bold bg:color_bg1"
|
||||
format = '[[($all_status$ahead_behind )](bold fg:color_green bg:color_bg1)]($style)'
|
||||
|
||||
[line_break]
|
||||
disabled = false
|
||||
|
||||
[character]
|
||||
disabled = false
|
||||
success_symbol = '[❯](bold fg:color_green)'
|
||||
error_symbol = '[❯](bold fg:color_red)'
|
||||
vimcmd_symbol = '[❮](bold fg:color_green)'
|
||||
vimcmd_replace_one_symbol = '[❮](bold fg:color_purple)'
|
||||
vimcmd_replace_symbol = '[❮](bold fg:color_purple)'
|
||||
vimcmd_visual_symbol = '[❮](bold fg:color_yellow)'
|
||||
8
env/.config/systemd/user/battery-monitor.service
vendored
Normal file
8
env/.config/systemd/user/battery-monitor.service
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Battery Monitor Service
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.local/scripts/hypr/battery-monitor
|
||||
Environment=DISPLAY=:0
|
||||
11
env/.config/systemd/user/battery-monitor.timer
vendored
Normal file
11
env/.config/systemd/user/battery-monitor.timer
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Battery Monitor Timer
|
||||
Requires=battery-monitor.service
|
||||
|
||||
[Timer]
|
||||
OnBootSec=1min
|
||||
OnUnitActiveSec=30sec
|
||||
AccuracySec=10sec
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
11
env/.config/systemd/user/logout-task.service
vendored
Normal file
11
env/.config/systemd/user/logout-task.service
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Clear clipboard history at logout
|
||||
DefaultDependencies=no
|
||||
Before=exit.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.local/scripts/hypr/clear-clipboard-history
|
||||
|
||||
[Install]
|
||||
WantedBy=exit.target
|
||||
68
env/.config/tree-sitter/config.json
vendored
Normal file
68
env/.config/tree-sitter/config.json
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"parser-directories": [
|
||||
"/home/michael/github",
|
||||
"/home/michael/src",
|
||||
"/home/michael/source",
|
||||
"/home/michael/projects",
|
||||
"/home/michael/dev",
|
||||
"/home/michael/git"
|
||||
],
|
||||
"theme": {
|
||||
"attribute": {
|
||||
"color": 124,
|
||||
"italic": true
|
||||
},
|
||||
"comment": {
|
||||
"color": 245,
|
||||
"italic": true
|
||||
},
|
||||
"constant": 94,
|
||||
"constant.builtin": {
|
||||
"bold": true,
|
||||
"color": 94
|
||||
},
|
||||
"constructor": 136,
|
||||
"embedded": null,
|
||||
"function": 26,
|
||||
"function.builtin": {
|
||||
"bold": true,
|
||||
"color": 26
|
||||
},
|
||||
"keyword": 56,
|
||||
"module": 136,
|
||||
"number": {
|
||||
"bold": true,
|
||||
"color": 94
|
||||
},
|
||||
"operator": {
|
||||
"bold": true,
|
||||
"color": 239
|
||||
},
|
||||
"property": 124,
|
||||
"property.builtin": {
|
||||
"bold": true,
|
||||
"color": 124
|
||||
},
|
||||
"punctuation": 239,
|
||||
"punctuation.bracket": 239,
|
||||
"punctuation.delimiter": 239,
|
||||
"punctuation.special": 239,
|
||||
"string": 28,
|
||||
"string.special": 30,
|
||||
"tag": 18,
|
||||
"type": 23,
|
||||
"type.builtin": {
|
||||
"bold": true,
|
||||
"color": 23
|
||||
},
|
||||
"variable": 252,
|
||||
"variable.builtin": {
|
||||
"bold": true,
|
||||
"color": 252
|
||||
},
|
||||
"variable.parameter": {
|
||||
"color": 252,
|
||||
"underline": true
|
||||
}
|
||||
}
|
||||
}
|
||||
57
env/.config/utils-launcher/config.json
vendored
Normal file
57
env/.config/utils-launcher/config.json
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
[
|
||||
{
|
||||
"name": "App - install web app",
|
||||
"description": "Install a new website as a desktop application that can be launched by an application launcher.",
|
||||
"exec": "$SCRIPTS/hypr/install-webapp"
|
||||
},
|
||||
{
|
||||
"name": "App - uninstall desktop app",
|
||||
"description": "Uninstalls desktop applications and their icon, generally used for web\napplications.\n\nIf the app was installed through a package manager, then you should\nuse the package manager to uninstall the applciation.",
|
||||
"exec": "$SCRIPTS/hypr/uninstall-desktop-app"
|
||||
},
|
||||
{
|
||||
"name": "Clipboard - clear history",
|
||||
"description": "Clear the clipboard history file.",
|
||||
"exec": "$SCRIPTS/hypr/clear-clipboard-history --notify-complete"
|
||||
},
|
||||
{
|
||||
"name": "Logs - view logs",
|
||||
"description": "View logs generated by our custom commands.",
|
||||
"exec": "$SCRIPTS/hypr/utils/logs/logs-picker"
|
||||
},
|
||||
{
|
||||
"name": "Monitors - stats / picker",
|
||||
"description": "View information from hyprctl about currently connected monitors.",
|
||||
"exec": "$SCRIPTS/hypr/monitorctl picker"
|
||||
},
|
||||
{
|
||||
"name": "Waybar - restart",
|
||||
"description": "Restart the menu bar application, useful when making changes to the configuration.",
|
||||
"exec": "$SCRIPTS/hypr/waybarctl --restart"
|
||||
},
|
||||
{
|
||||
"name": "Waybar - toggle",
|
||||
"description": "Toggle the visibility of the menu bar.",
|
||||
"exec": "$SCRIPTS/hypr/waybarctl --toggle"
|
||||
},
|
||||
{
|
||||
"name": "Windows - window stats / picker",
|
||||
"description": "View information from hyprctl about all the current windows.\n\nAllows you to choose an action you would like to perform on the selected window.",
|
||||
"exec": "$SCRIPTS/hypr/windowctl picker"
|
||||
},
|
||||
{
|
||||
"name": "Windows - close in active workspace",
|
||||
"description": "Close all windows in the currently active workspace.",
|
||||
"exec": "$SCRIPTS/hypr/windowctl close --active-workspace"
|
||||
},
|
||||
{
|
||||
"name": "Windows - close ALL",
|
||||
"description": "Close all windows in all workspaces.",
|
||||
"exec": "$SCRIPTS/hypr/windowctl close --all"
|
||||
},
|
||||
{
|
||||
"name": "Workspaces - stats / picker",
|
||||
"description": "View information from hyprctl about currently available workspaces",
|
||||
"exec": "$SCRIPTS/hypr/workspacectl picker"
|
||||
}
|
||||
]
|
||||
138
env/.config/walker/config.toml
vendored
Normal file
138
env/.config/walker/config.toml
vendored
Normal file
@@ -0,0 +1,138 @@
|
||||
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
|
||||
close_when_open = true # close walker when invoking while already opened
|
||||
selection_wrap = false # wrap list if at bottom or top
|
||||
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
|
||||
keep_open_modifier = "shift" # won't close on activation, but rather select the next item in the list
|
||||
exact_search_prefix = "'" # disable fuzzy searching
|
||||
theme = "default" # theme to use
|
||||
disable_mouse = false # disable mouse (on input and list only)
|
||||
|
||||
[shell]
|
||||
anchor_top = true
|
||||
anchor_bottom = true
|
||||
anchor_left = true
|
||||
anchor_right = true
|
||||
|
||||
[placeholders]
|
||||
"default" = { input = "Search", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
|
||||
|
||||
# [keybinds]
|
||||
# close = "Escape"
|
||||
# next = "Down"
|
||||
# previous = "Up"
|
||||
# toggle_exact = "ctrl e"
|
||||
# resume_last_query = "ctrl r"
|
||||
# quick_activate = ["F1", "F2", "F3", "F4"]
|
||||
|
||||
[providers]
|
||||
default = [
|
||||
"desktopapplications",
|
||||
"calc",
|
||||
"runner",
|
||||
"menus",
|
||||
"websearch",
|
||||
] # providers to be queried by default
|
||||
empty = ["desktopapplications"] # providers to be queried when query is empty
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = ";"
|
||||
provider = "providerlist"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "/"
|
||||
provider = "files"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "."
|
||||
provider = "symbols"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "!"
|
||||
provider = "todo"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "="
|
||||
provider = "calc"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "@"
|
||||
provider = "websearch"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = ":"
|
||||
provider = "clipboard"
|
||||
|
||||
[providers.archlinuxpkgs]
|
||||
default = "install"
|
||||
install = "Return"
|
||||
remove = "ctrl d"
|
||||
|
||||
[providers.calc]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
save = "ctrl s"
|
||||
delete = "ctrl d"
|
||||
|
||||
[providers.websearch]
|
||||
default = "search"
|
||||
search = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.providerlist]
|
||||
default = "activate"
|
||||
activate = "Return"
|
||||
|
||||
[providers.clipboard]
|
||||
time_format = "%d.%m. - %H:%M" # format for the clipboard item date
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
delete = "ctrl d"
|
||||
edit = "ctrl o"
|
||||
toggle_images_only = "ctrl i"
|
||||
|
||||
[providers.desktopapplications]
|
||||
default = "start"
|
||||
start = "Return"
|
||||
start_keep_open = "shift Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
toggle_pin = "ctrl p"
|
||||
|
||||
[providers.files]
|
||||
default = "open"
|
||||
open = "Return"
|
||||
open_dir = "ctrl Return"
|
||||
copy_path = "ctrl shift c"
|
||||
copy_file = "ctrl c"
|
||||
|
||||
[providers.todo]
|
||||
default = "save"
|
||||
save = "Return"
|
||||
delete = "ctrl d"
|
||||
mark_active = "ctrl a"
|
||||
mark_done = "ctrl f"
|
||||
clear = "ctrl x"
|
||||
|
||||
[providers.runner]
|
||||
default = "start"
|
||||
start = "Return"
|
||||
start_terminal = "shift Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.dmenu]
|
||||
default = "select"
|
||||
select = "Return"
|
||||
|
||||
[providers.symbols]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.unicode]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.menus]
|
||||
default = "activate"
|
||||
activate = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
79
env/.config/waybar/config.jsonc
vendored
Normal file
79
env/.config/waybar/config.jsonc
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
// -*- mode: jsonc -*-
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": [
|
||||
"pulseaudio",
|
||||
"tray",
|
||||
"cpu",
|
||||
"memory",
|
||||
"battery",
|
||||
"network",
|
||||
"custom/lock",
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"format": "{name}: {icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
},
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
},
|
||||
"clock": {
|
||||
"timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": "{:%d - %H:%M}",
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": " ",
|
||||
"format-ethernet": " ",
|
||||
"format-disconnected": " ",
|
||||
"interval": 5,
|
||||
"tooltip": false,
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {used:0.1f}G/{total:0.1f}G",
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", " "],
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
},
|
||||
"custom/lock": {
|
||||
"tooltip": false,
|
||||
"on-click": "sh -c '(sleep 0.5s; hyprlock)' & disown",
|
||||
"format": "",
|
||||
},
|
||||
"later": {
|
||||
"format": "<span class='icon'>{icon}</span> <span class='text'>{text}</span>",
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-full": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
},
|
||||
}
|
||||
132
env/.config/waybar/style.css
vendored
Normal file
132
env/.config/waybar/style.css
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color background rgba(24, 24, 37, 0.7);
|
||||
@define-color skyblue #89dceb;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color red #f38ba8;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color peach #fab387;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color green #a6e3a1;
|
||||
|
||||
* {
|
||||
font-family: JetbrainsMono Nerd Font;
|
||||
font-size: 15px;
|
||||
min-height: 0;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
background: transparent;
|
||||
color: @foreground;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: @background;
|
||||
border-radius: 10px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 0.4rem;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: @foreground;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @skyblue;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: #85c1dc;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#custom-music,
|
||||
#tray,
|
||||
#backlight,
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#cpu,
|
||||
#memory,
|
||||
#custom-lock,
|
||||
#custom-power {
|
||||
background-color: @background;
|
||||
padding: 0.5rem 1rem;
|
||||
margin: 5px 0;
|
||||
color: @foreground;
|
||||
/* border-radius: 0px 5px 5px 0px; */
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @foreground;
|
||||
border-radius: 5px;
|
||||
margin-right: 1rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: @red;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
#tray {
|
||||
color: @blue;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: @lavender;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: @peach;
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: @yellow;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #e5c890;
|
||||
}
|
||||
|
||||
#custom-music {
|
||||
color: #ca9ee6;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#network {
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#custom-lock {
|
||||
border-radius: 10px;
|
||||
color: @yellow;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 5px 5px 0px;
|
||||
color: #e78284;
|
||||
}
|
||||
193
env/.config/yazi/theme.toml
vendored
Normal file
193
env/.config/yazi/theme.toml
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
# https://github.com/yazi-rs/flavors.git
|
||||
# Catpuccin - Mocha
|
||||
# : Manager {{{
|
||||
|
||||
[mgr]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
# Hovered
|
||||
hovered = { reversed = true }
|
||||
preview_hovered = { underline = true }
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "#f9e2af", bold = true, italic = true, underline = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", bold = true, italic = true }
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
|
||||
|
||||
# Tab
|
||||
tab_active = { reversed = true }
|
||||
tab_inactive = {}
|
||||
tab_width = 1
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Mode {{{
|
||||
|
||||
[mode]
|
||||
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244" }
|
||||
|
||||
# Select mode
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244" }
|
||||
|
||||
# Unset mode
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Status bar {{{
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
# Progress
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
# Permissions
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
separator_style = { fg = "#313244", bg = "#313244" }
|
||||
mode_normal = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
mode_select = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
mode_unset = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
permissions_t = { fg = "#89b4fa" }
|
||||
permissions_r = { fg = "#f9e2af" }
|
||||
permissions_w = { fg = "#f38ba8" }
|
||||
permissions_x = { fg = "#a6e3a1" }
|
||||
permissions_s = { fg = "#7f849c" }
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Pick {{{
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
[select]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Input {{{
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Completion {{{
|
||||
|
||||
[completion]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Tasks {{{
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { fg = "#f5c2e7", underline = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Which {{{
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Help {{{
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
hovered = { reversed = true, bold = true }
|
||||
footer = { fg = "#313244", bg = "#cdd6f4" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Notify {{{
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#a6e3a1" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : File-specific styles {{{
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
# : }}}
|
||||
193
env/.config/yazi/theme.toml-1748966637471042
vendored
Normal file
193
env/.config/yazi/theme.toml-1748966637471042
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
# https://github.com/yazi-rs/flavors.git
|
||||
# Catpuccin - Mocha
|
||||
# : Manager {{{
|
||||
|
||||
[manager]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
# Hovered
|
||||
hovered = { reversed = true }
|
||||
preview_hovered = { underline = true }
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "#f9e2af", bold = true, italic = true, underline = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", bold = true, italic = true }
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
|
||||
|
||||
# Tab
|
||||
tab_active = { reversed = true }
|
||||
tab_inactive = {}
|
||||
tab_width = 1
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Mode {{{
|
||||
|
||||
[mode]
|
||||
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244" }
|
||||
|
||||
# Select mode
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244" }
|
||||
|
||||
# Unset mode
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Status bar {{{
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
# Progress
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
# Permissions
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
separator_style = { fg = "#313244", bg = "#313244" }
|
||||
mode_normal = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
mode_select = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
mode_unset = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
permissions_t = { fg = "#89b4fa" }
|
||||
permissions_r = { fg = "#f9e2af" }
|
||||
permissions_w = { fg = "#f38ba8" }
|
||||
permissions_x = { fg = "#a6e3a1" }
|
||||
permissions_s = { fg = "#7f849c" }
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Pick {{{
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
[select]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Input {{{
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Completion {{{
|
||||
|
||||
[completion]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Tasks {{{
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { fg = "#f5c2e7", underline = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Which {{{
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Help {{{
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
hovered = { reversed = true, bold = true }
|
||||
footer = { fg = "#313244", bg = "#cdd6f4" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Notify {{{
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#a6e3a1" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : File-specific styles {{{
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
# : }}}
|
||||
3
env/.config/yazi/yazi.toml
vendored
Normal file
3
env/.config/yazi/yazi.toml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[mgr]
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
3
env/.config/yazi/yazi.toml-1748966636821415
vendored
Normal file
3
env/.config/yazi/yazi.toml-1748966636821415
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[manager]
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
259
env/.config/zsh/.zshrc
vendored
Executable file
259
env/.config/zsh/.zshrc
vendored
Executable file
@@ -0,0 +1,259 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# _
|
||||
# _______| |__ _ __ ___
|
||||
# |_ / __| '_ \| '__/ __|
|
||||
# / /\__ \ | | | | | (__
|
||||
# /___|___/_| |_|_| \___|
|
||||
#
|
||||
#
|
||||
#------------------------------ utilites ------------------------------
|
||||
|
||||
_source_if() { test -r "$1" && source "$1" || return 0 }
|
||||
|
||||
#------------------------------ exports ------------------------------
|
||||
autoload -U up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
# Colors
|
||||
autoload -Uz colors && colors
|
||||
|
||||
#------------------------------ pager ------------------------------
|
||||
#eval "$(batman --export-env)"
|
||||
# export LESS_TERMCAP_mb="[35m" # magenta
|
||||
# export LESS_TERMCAP_md="[33m" # yellow
|
||||
# export LESS_TERMCAP_me=""
|
||||
# export LESS_TERMCAP_se=""
|
||||
# export LESS_TERMCAP_so="[34m" # blue
|
||||
# export LESS_TERMCAP_ue=""
|
||||
# export LESS_TERMCAP_so="[4m" # underline
|
||||
# export LESSHISTFILE="-"
|
||||
|
||||
#------------------------------ path ------------------------------
|
||||
|
||||
# Helper function to prepend to the $PATH
|
||||
path_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
test -d "$arg" || continue
|
||||
PATH=${PATH//:"$arg:"/:}
|
||||
PATH=${PATH/#"$arg:"/}
|
||||
PATH=${PATH/%":$arg"/}
|
||||
export PATH="$arg${PATH:+":$PATH"}"
|
||||
done
|
||||
} && export path_prepend
|
||||
|
||||
# Helper function to prepend to the $FPATH
|
||||
fpath_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
test -d "$arg" || continue
|
||||
FPATH=${FPATH//:"$arg:"/:}
|
||||
FPATH=${FPATH/#"$arg:"/}
|
||||
FPATH=${FPATH/%":$arg"/}
|
||||
export FPATH="$arg${FPATH:+":$FPATH"}"
|
||||
done
|
||||
} && export fpath_prepend
|
||||
|
||||
# last arg will be first in $PATH
|
||||
path_prepend \
|
||||
"/usr/local/bin" \
|
||||
"$HOME/.local/share/gem/bin" \
|
||||
"$GOROOT/bin" \
|
||||
"$GOPATH/bin" \
|
||||
"$XDG_DATA_HOME/bin" \
|
||||
"$XDG_DATA_HOME/npm/bin" \
|
||||
"$HOME/.local/bin" \
|
||||
"$SCRIPTS" \
|
||||
"$SCRIPTS/hypr" \
|
||||
"$SCRIPTS/mail" \
|
||||
"$HOME/.local/pnpm" \
|
||||
"$CARGO_HOME/bin" \
|
||||
"$HOME/.local/bin"
|
||||
|
||||
# last arg will be first in $FPATH
|
||||
fpath_prepend \
|
||||
"$ZDOTDIR/completions" \
|
||||
"$HOME/.local/share/zsh/completions" \
|
||||
"$HOME/.zsh/completions" \
|
||||
"$ZDOTDIR/functions"
|
||||
|
||||
autoload -Uz $fpath[1]/*(.:t)
|
||||
|
||||
#------------------------------ history ------------------------------
|
||||
setopt appendhistory # append to history
|
||||
setopt sharehistory # share history across multiple sessions
|
||||
setopt incappendhistory # adds commands as typed, not at shell exit
|
||||
setopt hist_expire_dups_first # expire duplicates first
|
||||
setopt hist_ignore_dups # do not store duplicates
|
||||
setopt hist_find_no_dups # ignore duplicates when searching
|
||||
setopt hist_reduce_blanks # do not store blank lines.
|
||||
setopt histignorespace # do not store commands that start with a space in history
|
||||
|
||||
export HISTSIZE=5000
|
||||
export HISTFILESIZE=5000
|
||||
export SAVEHIST=5000
|
||||
export HISTFILE="$XDG_CONFIG_HOME/zsh/history"
|
||||
|
||||
#set -o vi
|
||||
|
||||
#------------------------------ cdpath ------------------------------
|
||||
setopt autocd
|
||||
|
||||
# NOTE: This may be overriden in local env overrides (typically located in $XDG_DATA_HOME/zsh/env.zsh
|
||||
export CDPATH=".:$REPOS:$REPOS/ansible:$DOTFILES:$LOCAL_REPOS:$BUCKET:$HOME"
|
||||
|
||||
#------------------------------ options ------------------------------
|
||||
# (see `man zshoptions`)
|
||||
setopt chaselinks
|
||||
setopt extended_glob
|
||||
setopt glob_dots
|
||||
setopt glob_star_short
|
||||
setopt clobber
|
||||
setopt interactive_comments
|
||||
setopt aliases
|
||||
setopt auto_pushd # Push the current directory on the stack.
|
||||
setopt pushd_ignore_dups # Ignore duplicates in stack
|
||||
setopt pushd_silent # Do not print stack after pushd or popd.
|
||||
setopt CORRECT # Offers corrections on misspelled commands.
|
||||
|
||||
bindkey -v # Enable vi mode
|
||||
export KEYTIMEOUT=1 # Switch between vim mode quicker.
|
||||
|
||||
# Load Useful Functions
|
||||
_source_if "${ZDOTDIR}/zsh-functions"
|
||||
|
||||
# Plugins
|
||||
zsh_add_plugin "zsh-users/zsh-autosuggestions"
|
||||
zsh_add_plugin "zsh-users/zsh-syntax-highlighting"
|
||||
zsh_add_plugin "Aloxaf/fzf-tab"
|
||||
|
||||
#------------------------------ completions ------------------------------
|
||||
# case insensitive path-completion
|
||||
#zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
||||
|
||||
# partial completion suggestions
|
||||
zstyle ':completion:*' list-suffixes
|
||||
#
zstyle ':completion:*' expand prefix suffix
|
||||
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||
|
||||
autoload -Uz compinit; compinit # zstyle(s) should be added before this.
|
||||
zmodload zsh/complist
|
||||
_comp_options+=(globdots) # Include hidden files.
|
||||
|
||||
autoload bashcompinit && bashcompinit
|
||||
[[ -r "$PASSWORD_STORE_DIR/.extensions/completions/extensions.bash.completion" ]] && \
|
||||
source "$PASSWORD_STORE_DIR/.extensions/completions/extensions.bash.completion"
|
||||
|
||||
_source_if "$ZDOTDIR/plugins/fzf-tab/fzf-tab.plugin.zsh"
|
||||
|
||||
#------------------------------ prompt ------------------------------
|
||||
|
||||
# Prompt / managed by brew. (`brew install starship`)
|
||||
autoload -Uz promptinit; promptinit
|
||||
eval "$(starship init zsh)"
|
||||
#prompt pure
|
||||
|
||||
#------------------------------ aliases ------------------------------
|
||||
|
||||
alias bk='cd "${OLDPWD}"' # change to last directory
|
||||
alias cda='cd "$ANSIBLE_LOCAL"' # change into local ansible directory.
|
||||
alias cl='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias clear='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias czets='cd "${ZETDIR}"' # move into zettlekasten notes
|
||||
alias d='docker' # run docker commands quickly
|
||||
alias dc='docker compose' # run docker-compose commands quickly
|
||||
alias dv='dirs -v' # list directory info
|
||||
alias essh='edit-ssh-config' # edit ssh config quickly
|
||||
alias fl='find-latest' # Find the last modified file in a directory.
|
||||
alias g='git' # access git commands quickly
|
||||
alias ga='git add' # add files to git quickly
|
||||
alias gcb='git checkout -b' # checkout a new git branch, creating if needed.
|
||||
alias gco='git checkout' # checkout an already existing git branch
|
||||
alias gcm='git commit -a -m' # commit files to git quickly
|
||||
alias gp='git push' # push repo to git
|
||||
alias gs='git status' # git status quickly
|
||||
alias hn='hugo new' # generate a hugo site
|
||||
alias hnc='hugo new content' # generate new hugo site content quickly
|
||||
alias j='just' # run justfile's quickly.
|
||||
alias kb='kanatactl' # Keyboard / kanata commands.
|
||||
alias l='eza --long --git --group --links --icons --all' # better ls command.
|
||||
alias lfs='ls -lahH --color=auto "$ZDOTDIR/functions"' # List functions.
|
||||
alias ls='eza --long --git --group --links --icons --all'
|
||||
alias lt='eza --long --git --group --links --icons --tree'
|
||||
alias pass='PASSWORD_STORE_DIR=/home/michael/.local/share/gopass/stores/root gopass'
|
||||
alias pc='gopass show --clip' # get an attribute of a password file and copy to the clipboard.
|
||||
alias reload='exec zsh -l' # reload the shell, useful when making changes.
|
||||
alias s='swift' # shorthand to access swift commands
|
||||
alias st='swift test' # swift test
|
||||
alias sb='swift build' # swift build
|
||||
alias t='tmux' # access tmux quickly
|
||||
alias tka='tmux kill-server' # kill tmux server and all sessions.
|
||||
alias ts='$SCRIPTS/tmux-sessionator' # create new tmux session, fuzzy finding common locations.
|
||||
alias tss='$SCRIPTS/tmux-sessionator --choose' # attach to an existing tmux session.
|
||||
alias tls='tmux list-sessions' # list tmux sessions
|
||||
alias tks='tmux kill-session -t' # kill tmux session
|
||||
alias temp='cd $(mktemp -d)' # create a temporary directory and move into it.
|
||||
alias vi='nvim' # set vi to open neovim
|
||||
alias newf='"$SCRIPTS"/newx --function' # generate a new shell function
|
||||
alias nlnv='nvim "$LOCAL_ENV"' # open local environment overrides file in neovime
|
||||
alias nvim='unset VIMINIT && unset MYVIMRC && nvim' # alias nvim to unset vimrc, useful when using both vim & neovim
|
||||
alias nvim-mhoush='NVIM_APPNAME=m-housh && nvim' # set neovim to use my config.
|
||||
alias nvim-kickstart='NVIM_APPNAME=kickstart nvim' # set neovim to use kickstart config.
|
||||
alias nvim-lazy='NVIM_APPNAME=lazy nvim' # set neovim to use lazy config.
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts" # set wget history location.
|
||||
# GPG Yubikey restart relearn when switching keys and stubbed.
|
||||
alias yubikeyrestart='gpg-connect-agent killagent /bye && gpg-connect-agent "scd serialno" "learn --force" /bye && gpg --card-status'
|
||||
alias z='zoxide'
|
||||
|
||||
# NOTE: This needs to stay near the bottom, or it doesn't work properly.
|
||||
# Use fzf in history / search contexts.
|
||||
source <(fzf --zsh)
|
||||
#source <(kubectl completion zsh)
|
||||
|
||||
#------------------------------ local configs ------------------------------
|
||||
|
||||
# TODO: The .zshrc-local is a legacy location and should be removed once my machines are
|
||||
# use the new location in XDG_DATA_HOME.
|
||||
# HACK: These need to stay here, otherwise environment overrides do not work properly
|
||||
# I tried sourcing them in the the `.zshenv` files, but did not work.
|
||||
_source_if "$ZDOTDIR/.zshrc-local"
|
||||
_source_if "$LOCAL_ENV"
|
||||
_source_if "$SCRIPTS/catppuccin-colors"
|
||||
|
||||
# pnpm
|
||||
export PNPM_HOME="$XDG_DATA_HOME/pnpm"
|
||||
case ":$PATH:" in
|
||||
*":$PNPM_HOME:"*) ;;
|
||||
*) export PATH="$PNPM_HOME:$PATH" ;;
|
||||
esac
|
||||
# pnpm end
|
||||
|
||||
# The following lines have been added by Docker Desktop to enable Docker CLI completions.
|
||||
# fpath=(/Users/michael/.docker/completions $fpath)
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
#eval "$(ssh-agent -s)" 1>/dev/null
|
||||
|
||||
########################################
|
||||
# Set things up for using gpg-agent
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
function use-gpg-agent-for-ssh {
|
||||
SOCK="$( gpgconf --list-dirs agent-ssh-socket )"
|
||||
if [[ -n "${SOCK:-}" ]]
|
||||
then
|
||||
unset SSH_AGENT_PID
|
||||
export SSH_AUTH_SOCK="$SOCK"
|
||||
fi
|
||||
}
|
||||
use-gpg-agent-for-ssh
|
||||
|
||||
command -v direnv >/dev/null 2>&1 && eval "$(direnv hook zsh)"
|
||||
command -v zoxide >/dev/null 2>&1 && eval "$(zoxide init --cmd cd zsh)"
|
||||
5
env/.config/zsh/functions/brew-update
vendored
Executable file
5
env/.config/zsh/functions/brew-update
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
function brew-update() {
|
||||
brew update && brew upgrade --greedy && brew cleanup
|
||||
}
|
||||
6
env/.config/zsh/functions/cdots
vendored
Executable file
6
env/.config/zsh/functions/cdots
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
function cdots() {
|
||||
"$SCRIPTS/tmux-sessionator" "$DOTFILES"
|
||||
}
|
||||
|
||||
8
env/.config/zsh/functions/chmox
vendored
Executable file
8
env/.config/zsh/functions/chmox
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# makes files executable
|
||||
|
||||
function chmox() {
|
||||
[ ! -f "$1" ] && echo "usage: chmox <file>" && return 1
|
||||
chmod u+x "$1"
|
||||
}
|
||||
7
env/.config/zsh/functions/clean-screenshots
vendored
Executable file
7
env/.config/zsh/functions/clean-screenshots
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function clean-screenshots() {
|
||||
for file in "$SCREENSHOTS"/*; do
|
||||
rm "$file"
|
||||
done
|
||||
}
|
||||
23
env/.config/zsh/functions/desktop
vendored
Executable file
23
env/.config/zsh/functions/desktop
vendored
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function desktop() {
|
||||
declare hide
|
||||
declare show
|
||||
|
||||
zparseopts -D -E -K -- \
|
||||
{h,-hide}=hide \
|
||||
{s,-show}=show
|
||||
|
||||
if [ -n "$hide" ]; then
|
||||
defaults write com.apple.finder CreateDesktop false && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -n "$show" ]; then
|
||||
defaults write com.apple.finder CreateDesktop true && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Please pass in --hide | --show"
|
||||
return 1
|
||||
}
|
||||
16
env/.config/zsh/functions/dmg
vendored
Executable file
16
env/.config/zsh/functions/dmg
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Creates an encrypted disk image from a folder
|
||||
function dmg() {
|
||||
from="$1"
|
||||
to="$2"
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "Usage: dmg <fromdir> <todir>"
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
|
||||
name="$(isosec).dmg"
|
||||
hdiutil create -encryption AES-256 -srcfolder "$from" "$to/$name"
|
||||
}
|
||||
12
env/.config/zsh/functions/dp
vendored
Executable file
12
env/.config/zsh/functions/dp
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function dp() {
|
||||
[ -z "$1" ] && echo "Must supply temperature" && return 1
|
||||
[ -z "$2" ] && echo "Must supply relative humidity" && return 1
|
||||
|
||||
local temperature=$1
|
||||
local humidity=$2
|
||||
|
||||
/opt/homebrew/bin/psychrometrics dew-point --dry-bulb "$temperature" --relative-humidity "$humidity"
|
||||
|
||||
}
|
||||
5
env/.config/zsh/functions/edit-ssh-config
vendored
Executable file
5
env/.config/zsh/functions/edit-ssh-config
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function edit-ssh-config() {
|
||||
ansible-vault edit "$DOTFILES/ssh/config"
|
||||
}
|
||||
7
env/.config/zsh/functions/find-latest
vendored
Executable file
7
env/.config/zsh/functions/find-latest
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Find the last modified file in a directory.
|
||||
function find-latest() {
|
||||
local dir=$1
|
||||
echo "$(find $dir -maxdepth 1 -mindepth 1 -type f | sort -nr | head -1)"
|
||||
}
|
||||
8
env/.config/zsh/functions/gl
vendored
Executable file
8
env/.config/zsh/functions/gl
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Prettier git log
|
||||
function gl() {
|
||||
git log --graph \
|
||||
--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
|
||||
--abbrev-commit
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user